cdg5/kern.asm
2016-09-27 13:27:25 +08:00

38727 lines
1.7 MiB

/***********************************************************
nk_start
************************************************************
Entry point from Trampoline on NewWorld.
Only continues loading if the DR (data address translation) bit of the MSR is unset. Be not fooled by the linking call, which never returns. If DR is set, then we RFI to a location *in* the ConfigInfo struct with DR and IR unset, and r9 containing the address of our caller
************************************************************
Xrefs:
"boot_newworld"
************************************************************
> r3 = ConfigInfo
> r4 = processor_info
> r5 = sys_info
> r6 = boot_r6
> r7 = rtas_fourcc
> r8 = rtas_proc
> r9 = boot_hw_info
***********************************************************/
nk_start: /* < outside referer */
b nk_start_0xc # 00000
.long 0x0228000c # 00004
.long 0x04000000 # 00008
nk_start_0xc:
crclr 4*cr5 + eq # 0000c
mfmsr r0 # 00010
rlwinm. r0, r0, 0, 27, 27 # 00014
# r3 = ConfigInfo
# r4 = processor_info
# r5 = sys_info
# r6 = boot_r6
# r7 = rtas_fourcc
# r8 = rtas_proc
# r9 = boot_hw_info
beql- new_world # 00018
mflr r9 # 0001c
addi r9, r9, -0x1c # 00020
addi r12, r3, 0x40 # ConfigInfo.bl_fffff93c_from_start
mfmsr r11 # 00028
li r10, -0x7fd0 # 0002c
andc r11, r11, r10 # 00030
mtspr 26/*srr0*/, r12 # 00034
mtspr 27/*srr1*/, r11 # 00038
rfi # 0003c
/***********************************************************
replace_old_kernel
************************************************************
Xrefs:
"boot_oldworld"
***********************************************************/
crset 4*cr5 + eq # 00040
li r0, 0x00 # 00044
lis r12, 0x00 # 00048
ori r12, r12, 0xa000 # 0004c
mr r13, r4 # 00050
replace_old_kernel_0x14:
addic. r12, r12, -0x04 # 00054
stwx r0, r13, r12 # 00058
bgt+ replace_old_kernel_0x14 # 0005c
mfspr r11, 272/*sprg0*/ # 00060
lis r1, 0x00 # 00064
ori r1, r1, 0xa000 # 00068
add r1, r1, r4 # 0006c
li r12, 0x1000 # 00070
replace_old_kernel_0x34:
addic. r12, r12, -0x04 # 00074
lwzx r10, r11, r12 # 00078
stwx r10, r1, r12 # 0007c
bgt+ replace_old_kernel_0x34 # 00080
lis r12, -0x01 # 00084
ori r12, r12, 0x6000 # 00088
add r12, r12, r1 # 0008c
stw r12, -0x0020( r1) # 00090
# r1 = kdp
bl wipe_irp # 00094
mr r23, r7 # 00098
cmpwi r6, 0x00 # 0009c
stw r11, 0x05a0( r1) # 000a0
stw r9, 0x05a4( r1) # 000a4
bne- replace_old_kernel_0x70 # 000a8
addi r6, r1, 0x1000 # 000ac
replace_old_kernel_0x70:
stw r6, 0x05a8( r1) # 000b0
stw r3, 0x064c( r1) # 000b4
stw r5, -0x0900( r1) # 000b8
stw r1, -0x0004( r1) # 000bc
addi r12, r1, -0x340 # 000c0
li r10, -0x01 # 000c4
stw r10, 0x0000(r12) # 000c8
lwz r3, 0x0630( r1) # 000cc
# r3 = ConfigInfo
bl get_pih_addr # 000d0
# r12 = clobbered
# r7 = pih_pa
stw r7, 0x05b0( r1) # 000d4
88: bl 99f # 000d8
99: mflr r12 # 000dc
addi r12, r12, nk_start - 88b - 4 # 000e0
stw r12, 0x064c( r1) # 000e4
lis r10, funny_debug_place@h # 000e8
ori r10, r10, funny_debug_place@l # 000ec
add r12, r10, r12 # 000f0
stw r12, 0x0650( r1) # 000f4
lwz r12, -0x0010( r1) # 000f8
li r10, 0x00 # 000fc
rlwimi r10, r12, 0, 12, 15 # 00100
rlwimi r10, r12, 0, 28, 30 # 00104
stw r10, -0x0968( r1) # 00108
mfmsr r12 # 0010c
andi. r12, r12, 0x40 # 00110
ori r12, r12, 0xd032 # 00114
stw r12, -0x0964( r1) # 00118
mtspr 272/*sprg0*/, r1 # 0011c
lhz r12, 0x0fe4(r11) # 00120
cmpwi r12, 0x101 # 00124
bgt- replace_old_kernel_0x10c # 00128
lwz r12, 0x065c( r1) # 0012c
stw r12, -0x0014( r1) # 00130
lwz r12, 0x0660( r1) # 00134
oris r12, r12, 0x20 # 00138
stw r12, -0x0010( r1) # 0013c
lwz r12, 0x0664( r1) # 00140
stw r12, -0x000c( r1) # 00144
b replace_old_kernel_0x130 # 00148
replace_old_kernel_0x10c:
cmpwi r12, 0x200 # 0014c
bge- undo_failed_kernel_replacement # 00150
lwz r12, -0x0014(r11) # 00154
stw r12, -0x0014( r1) # 00158
lwz r12, -0x0010(r11) # 0015c
oris r12, r12, 0x20 # 00160
stw r12, -0x0010( r1) # 00164
lwz r12, -0x000c(r11) # 00168
stw r12, -0x000c( r1) # 0016c
replace_old_kernel_0x130:
lwz r12, 0x0340(r11) # 00170
lwz r10, 0x05b4(r11) # 00174
cmpw r12, r10 # 00178
beq- replace_old_kernel_0x198 # 0017c
stw r12, 0x05b4( r1) # 00180
stw r0, 0x06b4( r1) # 00184
lwz r10, 0x05b0(r11) # 00188
stw r10, 0x06c0( r1) # 0018c
lwz r10, 0x05b4(r11) # 00190
stw r10, 0x06c4( r1) # 00194
lwz r10, 0x05b8(r11) # 00198
stw r10, 0x06c8( r1) # 0019c
lwz r10, 0x05bc(r11) # 001a0
stw r10, 0x06cc( r1) # 001a4
stw r0, 0x06d0( r1) # 001a8
stw r0, 0x06d4( r1) # 001ac
stw r0, 0x06d8( r1) # 001b0
stw r0, 0x06dc( r1) # 001b4
stw r0, 0x06e0( r1) # 001b8
stw r0, 0x06e4( r1) # 001bc
stw r0, 0x06e8( r1) # 001c0
stw r0, 0x06ec( r1) # 001c4
stw r0, 0x06f0( r1) # 001c8
stw r0, 0x06f4( r1) # 001cc
stw r0, 0x06f8( r1) # 001d0
stw r0, 0x06fc( r1) # 001d4
replace_old_kernel_0x198:
lwz r12, 0x0684( r1) # 001d8
subf r12, r11, r12 # 001dc
add r12, r12, r1 # 001e0
stw r12, 0x0684( r1) # 001e4
lwz r12, 0x066c( r1) # 001e8
subf r12, r11, r12 # 001ec
add r12, r12, r1 # 001f0
stw r12, 0x066c( r1) # 001f4
lwz r12, 0x05e8( r1) # 001f8
subf r12, r11, r12 # 001fc
add r12, r12, r1 # 00200
stw r12, 0x05e8( r1) # 00204
li r12, 0x200 # 00208
addi r10, r1, 0xdc0 # 0020c
replace_old_kernel_0x1d0:
addic. r12, r12, -0x04 # 00210
stwx r0, r10, r12 # 00214
bgt+ replace_old_kernel_0x1d0 # 00218
li r12, 0x00 # 0021c
addi r10, r1, 0xfc0 # 00220
bl major_0x00400 # 00224
stw r10, 0x0fc0( r1) # 00228
stw r0, 0x0fc4( r1) # 0022c
lhz r12, 0x0fce( r1) # 00230
addi r10, r1, -0x4d0 # 00234
lwz r9, 0x0fc8( r1) # 00238
bl major_0x00400 # 0023c
stw r10, 0x0fc8( r1) # 00240
lhz r12, 0x0fd6( r1) # 00244
lwz r10, -0x0020( r1) # 00248
addi r10, r10, 0xf00 # 0024c
lwz r9, 0x0fd0( r1) # 00250
bl major_0x00400 # 00254
stw r10, 0x0fd0( r1) # 00258
lhz r12, 0x0fde( r1) # 0025c
addi r10, r1, 0xf20 # 00260
lwz r9, 0x0fd8( r1) # 00264
bl major_0x00400 # 00268
stw r10, 0x0fd8( r1) # 0026c
stw r10, 0x0ff8( r1) # 00270
lhz r10, 0x0fdc( r1) # 00274
cmplwi r10, 0x112 # 00278
bge- replace_old_kernel_0x258 # 0027c
li r12, 160 # 00280
li r10, 0x112 # 00284
sth r12, 0x0fde( r1) # 00288
sth r12, 0x0ffe( r1) # 0028c
sth r10, 0x0fdc( r1) # 00290
sth r10, 0x0ffc( r1) # 00294
replace_old_kernel_0x258:
lhz r12, 0x0fee( r1) # 00298
addi r10, r1, -0x5d0 # 0029c
lwz r9, 0x0fe8( r1) # 002a0
bl major_0x00400 # 002a4
stw r10, 0x0fe8( r1) # 002a8
lhz r12, 0x0ff6( r1) # 002ac
lwz r10, -0x0020( r1) # 002b0
addi r10, r10, 0xdc0 # 002b4
lwz r9, 0x0ff0( r1) # 002b8
bl major_0x00400 # 002bc
stw r10, 0x0ff0( r1) # 002c0
lhz r12, 0x0fe6( r1) # 002c4
addi r10, r1, 0xdc0 # 002c8
lwz r9, 0x0fe0( r1) # 002cc
bl major_0x00400 # 002d0
stw r10, 0x0fe0( r1) # 002d4
li r12, 0x160 # 002d8
sth r12, 0x0fe6( r1) # 002dc
li r12, 0x228 # 002e0
sth r12, 0x0fe4( r1) # 002e4
lwz r8, 0x0f2c( r1) # 002e8
stw r8, -0x0438( r1) # 002ec
lwz r8, 0x0edc( r1) # 002f0
ori r8, r8, 0x01 # 002f4
cmplwi r23, 0x27f3 # 002f8
blt- replace_old_kernel_0x2c4 # 002fc
ori r8, r8, 0x10 # 00300
replace_old_kernel_0x2c4:
stw r8, 0x0edc( r1) # 00304
# r1 = kdp
bl init_log # 00308
bl 1f # 0030c
.ascii "Hello from the replacement multitasking NanoKernel. Version: "
.short 0 # 0034d
.align 2 # 0034f
1: mflr r8 # 00350
bl print_string # 00354
mr r8, r12 # 00358
bl print_hexshort # 0035c
bl 1f # 00360
.ascii "^n Old KDP: " # 00364
.short 0 # 00370
.align 2 # 00372
1: mflr r8 # 00374
bl print_string # 00378
mr r8, r11 # 0037c
bl print_hexword_spc # 00380
bl 1f # 00384
.ascii " new KDP: " # 00388
.short 0 # 00392
.align 2 # 00394
1: mflr r8 # 00394
bl print_string # 00398
mr r8, r1 # 0039c
bl print_hexword_spc # 003a0
bl 1f # 003a4
.ascii " new irp: " # 003a8
.short 0 # 003b2
.align 2 # 003b4
1: mflr r8 # 003b4
bl print_string # 003b8
lwz r8, -0x0020( r1) # 003bc
mr r8, r8 # 003c0
bl print_hexword_spc # 003c4
bl 1f # 003c8
.ascii "ROM vers: " # 003cc
.short 0 # 003d6
.align 2 # 003d8
1: mflr r8 # 003d8
bl print_string # 003dc
mr r8, r23 # 003e0
bl print_hexshort # 003e4
bl 1f # 003e8
.ascii "^n" # 003ec
.short 0 # 003ee
.align 2 # 003f0
1: mflr r8 # 003f0
bl print_string # 003f4
lwz r6, 0x0658( r1) # 003f8
# r1 = kdp
b setup # 003fc
/***********************************************************
major_0x00400
************************************************************
Xrefs:
replace_old_kernel
***********************************************************/
major_0x00400: /* < outside referer */
lwz r22, 0x0630( r1) # 00400
lwz r22, 0x009c(r22) # 00404
subf r9, r22, r9 # 00408
cmplwi r9, 0x1000 # 0040c
bge- major_0x00400_0x6c # 00410
add r21, r9, r11 # 00414
major_0x00400_0x18:
addic. r12, r12, -0x04 # 00418
blt- major_0x00400_0x2c # 0041c
lwzx r9, r21, r12 # 00420
stwx r9, r10, r12 # 00424
bgt+ major_0x00400_0x18 # 00428
major_0x00400_0x2c:
lwz r22, 0x0630( r1) # 0042c
lwz r22, 0x00a0(r22) # 00430
subf r10, r1, r10 # 00434
lis r21, -0x01 # 00438
ori r21, r21, 0x7000 # 0043c
cmpw r10, r21 # 00440
blt- major_0x00400_0x50 # 00444
add r10, r10, r22 # 00448
blr # 0044c
major_0x00400_0x50:
lwz r22, 0x0630( r1) # 00450
lwz r22, 0x009c(r22) # 00454
lwz r21, -0x0020( r1) # 00458
add r10, r10, r1 # 0045c
subf r10, r21, r10 # 00460
add r10, r10, r22 # 00464
blr # 00468
major_0x00400_0x6c:
add r9, r9, r22 # 0046c
lwz r22, 0x0630( r1) # 00470
lwz r22, 0x00a0(r22) # 00474
subf r9, r22, r9 # 00478
add r21, r9, r11 # 0047c
b major_0x00400_0x18 # 00480
/***********************************************************
wipe_irp
************************************************************
Fill the irp with 0x68f1.
************************************************************
Xrefs:
replace_old_kernel
new_world
************************************************************
> r1 = kdp
***********************************************************/
wipe_irp: /* < outside referer */
lwz r12, -0x0020( r1) # kdp.irp # 00484
wipe_irp_0x4:
lis r10, 0x68f1 # 00488
ori r10, r10, 0x68f1 # 0048c
stw r10, 0x0000(r12) # 00490
stw r10, 0x0004(r12) # 00494
addi r12, r12, 0x08 # 00498
andi. r10, r12, 0xfff # 0049c
bne+ wipe_irp_0x4 # 004a0
blr # 004a4
/***********************************************************
new_world
************************************************************
1. Fill segment registers very basically.
2. Zero the BAT.
3. Lay out the kernel's memory and copy some tables.
4. Print the first debug message: "Hello from..."
5. Choose an interrupt handler.
6. Copy some ConfigInfo stuff.
7. Override info for old CPUs then go to main setup.
8. Do something with caches for newer G4s.
************************************************************
Xrefs:
nk_start
************************************************************
> r3 = ConfigInfo
> r4 = processor_info
> r5 = sys_info
> r6 = boot_r6
> r7 = rtas_fourcc
> r8 = rtas_proc
> r9 = boot_hw_info
***********************************************************/
new_world: /* < outside referer */
li r0, 0x00 # 004a8
# Load seg reg 0 with 0x20000000 and all others with zeros
isync # 004ac
lis r12, 0x2000 # 004b0
mtsr 0x00, r12 # 004b4
mtsr 0x01, r0 # 004b8
mtsr 0x02, r0 # 004bc
mtsr 0x03, r0 # 004c0
mtsr 0x04, r0 # 004c4
mtsr 0x05, r0 # 004c8
mtsr 0x06, r0 # 004cc
mtsr 0x07, r0 # 004d0
mtsr 0x08, r0 # 004d4
mtsr 0x09, r0 # 004d8
mtsr 0x0a, r0 # 004dc
mtsr 0x0b, r0 # 004e0
mtsr 0x0c, r0 # 004e4
mtsr 0x0d, r0 # 004e8
mtsr 0x0e, r0 # 004ec
mtsr 0x0f, r0 # 004f0
isync # 004f4
# Get all but lowest bit of CPU version
mfspr r12, 287/*pvr*/ # 004f8
rlwinm. r12, r12, 0, 0, 14 # 004fc
bne- not_601 # 00500
# CPU is 601:
mtspr 21/*rtcl*/, r0 # 00504
mtspr 20/*rtcu*/, r0 # 00508
mtspr 529/*ibat0l*/, r0 # 0050c
mtspr 531/*ibat1l*/, r0 # 00510
mtspr 533/*ibat2l*/, r0 # 00514
mtspr 535/*ibat3l*/, r0 # 00518
b end_if_601 # 0051c
not_601:
mtspr 284/*tbl*/, r0 # 00520
mtspr 285/*tbu*/, r0 # 00524
mtspr 528/*ibat0u*/, r0 # 00528
mtspr 530/*ibat1u*/, r0 # 0052c
mtspr 532/*ibat2u*/, r0 # 00530
mtspr 534/*ibat3u*/, r0 # 00534
mtspr 536/*dbat0u*/, r0 # 00538
mtspr 538/*dbat1u*/, r0 # 0053c
mtspr 540/*dbat2u*/, r0 # 00540
mtspr 542/*dbat3u*/, r0 # 00544
end_if_601:
lwz r12, 0x0360( r3) # ConfigInfo.phys_ram_base # 00548
addi r10, r5, 0x2c # sys_info.phys_toolboxrom # 0054c
# search sys_info for the physical address of the Toolbox ROM
new_world_0xa8:
lwzu r11, 0x0008(r10) # 00550
cmpwi r11, 0x00 # 00554
beq+ new_world_0xa8 # 00558
# now r11=toolbox and r12=ram
# Some really tricky stuff happens here with the memory data.
# The location of the KDP and the irp get chosen.
subf r11, r12, r11 # 0055c
srawi r11, r11, 31 # 00560
andc r12, r12, r11 # 00564
lwz r11, 0x0000(r10) # 00568
subf r11, r12, r11 # 0056c
stw r11, 0x0000(r10) # 00570
lwz r11, -0x0004(r10) # 00574
add r11, r11, r12 # 00578
stw r11, -0x0004(r10) # 0057c
lwz r11, 0x0000( r5) # sys_info.u32_ram_size # 00580
addis r15, r11, 0x01 # 00584
cmpwi r15, 0x00 # 00588
bgt- new_world_0xec # 0058c
addi r11, r11, -0x1000 # 00590
new_world_0xec:
subf r11, r12, r11 # 00594
stw r11, 0x0000( r5) # sys_info.u32_ram_size # 00598
lwz r15, 0x0000( r5) # sys_info.u32_ram_size # 0059c
addi r15, r15, -0x01 # 005a0
cntlzw r12, r15 # 005a4
lis r14, 0x1ff # 005a8
srw r14, r14, r12 # 005ac
ori r14, r14, 0xffff # 005b0
clrlwi r14, r14, 0x0a # 005b4
addis r15, r15, 0x40 # 005b8
rlwinm r15, r15, 22, 10, 19 # 005bc
add r15, r15, r14 # 005c0
lis r10, 0x00 # 005c4
ori r10, r10, 0xc001 # 005c8
add r15, r15, r10 # 005cc
addi r10, r5, 0x100 # sys_info.0x100 # 005d0
new_world_0x12c:
lwz r11, -0x0004(r10) # 005d4
lwzu r12, -0x0008(r10) # 005d8
add r11, r12, r11 # 005dc
andc r13, r11, r14 # 005e0
subf r13, r15, r13 # 005e4
cmplw r13, r12 # 005e8
blt+ new_world_0x12c # 005ec
cmplw r13, r11 # 005f0
bgt+ new_world_0x12c # 005f4
add r12, r13, r15 # 005f8
subf r12, r14, r12 # 005fc
rlwimi r12, r14, 16, 16, 31 # 00600
mtspr 25/*sdr1*/, r12 # 00604
rlwinm r11, r12, 0, 0, 15 # 00608
lis r1, -0x01 # 0060c
ori r1, r1, 0xe000 # 00610
add r1, r1, r11 # 00614
mtspr 272/*sprg0*/, r1 # 00618
lwz r11, 0x07b0( r1) # kdp.0x7b0 # 0061c
cmpw r12, r11 # 00620
lis r11, 0x7fff # 00624
bne- new_world_0x18c # 00628
subf r11, r13, r1 # 0062c
addi r11, r11, 0x700 # 00630
new_world_0x18c:
subf r12, r14, r15 # 00634
addi r12, r12, -0x01 # 00638
new_world_0x194:
addic. r12, r12, -0x04 # 0063c
subf r10, r11, r12 # 00640
cmplwi cr7, r10, 520 # 00644
ble- cr7, new_world_0x1a8 # 00648
stwx r0, r13, r12 # 0064c
new_world_0x1a8:
bne+ new_world_0x194 # 00650
stw r1, -0x0004( r1) # kdp.-0x4 # 00654
lis r12, -0x01 # 00658
ori r12, r12, 0x6000 # 0065c
add r12, r12, r1 # 00660
stw r12, -0x0020( r1) # kdp.irp # 00664
# r1 = kdp
bl wipe_irp # 00668
lis r12, 0x5254 # 0066c
ori r12, r12, 0x4153 # 00670
cmpw r7, r12 # 00674
bne- no_rtas # 00678
stw r8, 0x0908( r1) # kdp.rtas_proc # 0067c
lwz r7, 0x0038( r9) # hw_info.rtas_private_data
stw r7, 0x090c( r1) # kdp.rtas_private_data # 00684
lwz r11, -0x0020( r1) # kdp.irp # 00688
addi r11, r11, 0xf00 # 0068c
li r10, 0xc0 # 00690
new_world_0x1ec:
addic. r10, r10, -0x04 # 00694
lwzx r12, r9, r10 # 00698
stwx r12, r11, r10 # 0069c
bgt+ new_world_0x1ec # 006a0
stw r23, -0x0900( r1) # kdp.-0x900 # 006a4
b end_if_rtas # 006a8
no_rtas:
stw r0, 0x0908( r1) # kdp.rtas_proc # 006ac
stw r0, 0x090c( r1) # kdp.rtas_private_data # 006b0
end_if_rtas:
addi r11, r1, 0xf20 # kdp.u32_pvr # 006b4
li r10, 160 # 006b8
new_world_0x214:
addic. r10, r10, -0x04 # 006bc
lwzx r12, r4, r10 # 006c0
stwx r12, r11, r10 # 006c4
bgt+ new_world_0x214 # 006c8
lwz r11, -0x0020( r1) # kdp.irp # 006cc
addi r11, r11, 0xdc0 # 006d0
li r10, 320 # 006d4
new_world_0x230:
addic. r10, r10, -0x04 # 006d8
lwzx r12, r5, r10 # 006dc
stwx r12, r11, r10 # 006e0
bgt+ new_world_0x230 # 006e4
cmpwi r6, 0x00 # 006e8
beq- new_world_0x260 # 006ec
addi r11, r1, -0x5d0 # kdp.-0x5d0 # 006f0
li r10, 0x100 # 006f4
new_world_0x250:
addic. r10, r10, -0x04 # 006f8
lwzx r12, r6, r10 # 006fc
stwx r12, r11, r10 # 00700
bgt+ new_world_0x250 # 00704
new_world_0x260:
stw r3, 0x0630( r1) # kdp.pa_ConfigInfo # 00708
lwz r9, 0x0630( r1) # kdp.pa_ConfigInfo # 0070c
lhz r8, 0x0378( r9) # 00710
cmplwi r8, 0x101 # 00714
lwz r8, 0x0edc( r1) # kdp.0xedc # 00718
blt- new_world_0x28c # 0071c
lwz r8, 0x0388( r9) # 00720
rlwinm. r8, r8, 0, 30, 30 # 00724
lwz r8, 0x0edc( r1) # kdp.0xedc # 00728
beq- new_world_0x28c # 0072c
ori r8, r8, 0x08 # 00730
new_world_0x28c:
ori r8, r8, 0x01 # 00734
ori r8, r8, 0x10 # 00738
stw r8, 0x0edc( r1) # kdp.0xedc # 0073c
addi r9, r1, -0x340 # kdp.-0x340 # 00740
li r8, -0x01 # 00744
stw r8, 0x0000( r9) # 00748
# r1 = kdp
bl init_log # 0074c
bl 1f # 00750
.ascii "Hello from the builtin multitasking NanoKernel. Version: "
.short 0 # 0078d
.align 2 # 0078f
1: mflr r8 # 00790
bl print_string # 00794
li r8, 0x228 # 00798
mr r8, r8 # 0079c
bl print_hexshort # 007a0
bl 1f # 007a4
.ascii "^n" # 007a8
.short 0 # 007aa
.align 2 # 007ac
1: mflr r8 # 007ac
bl print_string # 007b0
stw r13, 0x0638( r1) # kdp.0x638 # 007b4
lwz r12, 0x064c( r1) # kdp.phys_kern_base # 007b8
# r3 = ConfigInfo
bl get_pih_addr # 007bc
# r12 = clobbered
# r7 = pih_pa
stw r7, 0x05b0( r1) # kdp.pih_proc_ptr # 007c0
lwz r11, -0x0020( r1) # kdp.irp # 007c4
addi r12, r14, 0x01 # 007c8
stw r12, 0x0dcc(r11) # 007cc
addi r8, r1, 0x1000 # kdp.0x1000 # 007d0
stw r8, 0x0634( r1) # kdp.pa_edp # 007d4
add r12, r13, r15 # 007d8
stw r12, 0x063c( r1) # kdp.0x63c # 007dc
lwz r12, 0x0360( r3) # ConfigInfo.phys_ram_base # 007e0
stw r12, 0x0640( r1) # kdp.phys_ram_base # 007e4
lwz r12, 0x035c( r3) # ConfigInfo.40820160 # 007e8
stw r12, 0x0644( r1) # kdp.configinfo_40820160 # 007ec
lwz r12, 0x00ac( r3) # ConfigInfo.logi_EmulatorCode
lwz r11, 0x0084( r3) # ConfigInfo.emu_offset_e8c0
add r12, r12, r11 # 007f8
stw r12, 0x0648( r1) # kdp.emu_e8c0 # 007fc
88: bl 99f # 00800
99: mflr r12 # 00804
addi r12, r12, nk_start - 88b - 4 # 00808
stw r12, 0x064c( r1) # kdp.phys_kern_base # 0080c
lis r11, funny_debug_place@h # 00810
ori r11, r11, funny_debug_place@l # 00814
add r12, r11, r12 # 00818
stw r12, 0x0650( r1) # kdp.phys_funny_debug_place
lwz r12, 0x00a4( r3) # ConfigInfo.logi_EmulatorData
lwz r11, 0x0078( r3) # ConfigInfo.00000100 # 00824
add r12, r12, r11 # 00828
stw r12, 0x0654( r1) # kdp.0x654 # 0082c
add r12, r8, r11 # 00830
stw r12, 0x0658( r1) # kdp.system_context # 00834
stw r12, -0x0014( r1) # kdp.-0x14 # 00838
lwz r12, 0x0088( r3) # ConfigInfo.0x88 # 0083c
stw r12, 0x0670( r1) # kdp.0x670 # 00840
lwz r12, 0x008c( r3) # ConfigInfo.0x8c # 00844
stw r12, 0x0678( r1) # kdp.0x678 # 00848
lwz r12, 0x0090( r3) # ConfigInfo.0x90 # 0084c
stw r12, 0x0674( r1) # kdp.0x674 # 00850
lwz r12, 0x007c( r3) # ConfigInfo.0x7c # 00854
add r12, r8, r12 # 00858
stw r12, 0x067c( r1) # kdp.0x67c # 0085c
lwz r12, 0x035c( r3) # ConfigInfo.40820160 # 00860
addi r12, r12, 0x7c # 00864
stw r12, 0x0680( r1) # kdp.0x680 # 00868
lwz r12, 0x00b4( r3) # ConfigInfo.0xb4 # 0086c
stw r12, 0x0688( r1) # kdp.0x688 # 00870
addi r13, r1, 0x920 # kdp.0x920 # 00874
lwz r12, 0x00b8( r3) # ConfigInfo.0xb8 # 00878
stw r13, 0x0684( r1) # kdp.0x684 # 0087c
add r13, r13, r12 # 00880
stw r13, 0x066c( r1) # kdp.0x66c # 00884
stw r0, 0x0910( r1) # kdp.0x910 # 00888
lwz r11, 0x00a0( r3) # ConfigInfo.logi_KernelData
addi r12, r11, 0xfc0 # 00890
stw r12, 0x0fc0( r1) # kdp.0xfc0 # 00894
stw r0, 0x0fc4( r1) # kdp.0xfc4 # 00898
lwz r11, 0x00a0( r3) # ConfigInfo.logi_KernelData
addi r12, r11, -0x4d0 # 008a0
stw r12, 0x0fc8( r1) # kdp.0xfc8 # 008a4
li r12, 0x100 # 008a8
sth r12, 0x0fcc( r1) # kdp.0xfcc # 008ac
li r12, 0x80 # 008b0
sth r12, 0x0fce( r1) # kdp.0xfce # 008b4
lwz r11, 0x009c( r3) # ConfigInfo.logi_InfoRecord
addi r12, r11, 0xf00 # 008bc
stw r12, 0x0fd0( r1) # kdp.0xfd0 # 008c0
li r12, 0x108 # 008c4
sth r12, 0x0fd4( r1) # kdp.0xfd4 # 008c8
li r12, 0xc0 # 008cc
sth r12, 0x0fd6( r1) # kdp.0xfd6 # 008d0
lwz r11, 0x00a0( r3) # ConfigInfo.logi_KernelData
addi r12, r11, 0xf20 # 008d8
stw r12, 0x0fd8( r1) # kdp.0xfd8 # 008dc
li r12, 0x112 # 008e0
sth r12, 0x0fdc( r1) # kdp.0xfdc # 008e4
li r12, 160 # 008e8
sth r12, 0x0fde( r1) # kdp.0xfde # 008ec
lwz r11, 0x00a0( r3) # ConfigInfo.logi_KernelData
addi r12, r11, 0xdc0 # 008f4
stw r12, 0x0fe0( r1) # kdp.0xfe0 # 008f8
li r12, 0x228 # 008fc
sth r12, 0x0fe4( r1) # kdp.u16_version # 00900
li r12, 0x160 # 00904
sth r12, 0x0fe6( r1) # kdp.0xfe6 # 00908
lwz r11, 0x00a0( r3) # ConfigInfo.logi_KernelData
addi r12, r11, -0x5d0 # 00910
stw r12, 0x0fe8( r1) # kdp.0xfe8 # 00914
li r12, 0x100 # 00918
sth r12, 0x0fec( r1) # kdp.0xfec # 0091c
li r12, 0x100 # 00920
sth r12, 0x0fee( r1) # kdp.0xfee # 00924
lwz r11, 0x009c( r3) # ConfigInfo.logi_InfoRecord
addi r12, r11, 0xdc0 # 0092c
stw r12, 0x0ff0( r1) # kdp.0xff0 # 00930
li r12, 0x107 # 00934
sth r12, 0x0ff4( r1) # kdp.0xff4 # 00938
li r12, 320 # 0093c
sth r12, 0x0ff6( r1) # kdp.0xff6 # 00940
lwz r11, 0x00a0( r3) # ConfigInfo.logi_KernelData
addi r12, r11, 0xf20 # 00948
stw r12, 0x0ff8( r1) # kdp.0xff8 # 0094c
li r12, 0x112 # 00950
sth r12, 0x0ffc( r1) # kdp.0xffc # 00954
li r12, 160 # 00958
sth r12, 0x0ffe( r1) # kdp.0xffe # 0095c
lwz r11, 0x0074( r3) # ConfigInfo.0x74 # 00960
lwz r12, 0x0064( r3) # ConfigInfo.rom_version_string_16char
stwux r12, r11, r8 # 00968
lwz r12, 0x0068( r3) # ConfigInfo.0x68 # 0096c
stw r12, 0x0004(r11) # 00970
lwz r12, 0x006c( r3) # ConfigInfo.0x6c # 00974
stw r12, 0x0008(r11) # 00978
lwz r12, 0x0070( r3) # ConfigInfo.0x70 # 0097c
stw r12, 0x000c(r11) # 00980
lwz r12, 0x00ac( r3) # ConfigInfo.logi_EmulatorCode
lwz r11, 0x0080( r3) # ConfigInfo.emu_offset_80 # 00988
add r12, r11, r12 # 0098c
lwz r11, 0x0078( r3) # ConfigInfo.00000100 # 00990
add r11, r11, r8 # 00994
stw r12, 0x0084(r11) # 00998
lwz r12, 0x00a4( r3) # ConfigInfo.logi_EmulatorData
stw r12, 0x0094(r11) # 009a0
lwz r12, 0x00a8( r3) # ConfigInfo.logi_DispatchTable
stw r12, 0x009c(r11) # 009a8
lwz r12, 0x0648( r1) # kdp.emu_e8c0 # 009ac
stw r12, 0x005c(r11) # 009b0
lwz r10, 0x0640( r1) # kdp.phys_ram_base # 009b4
li r9, 0x2000 # 009b8
new_world_0x514:
addic. r9, r9, -0x04 # 009bc
stwx r0, r10, r9 # 009c0
bne+ new_world_0x514 # 009c4
lwz r11, 0x00b0( r3) # ConfigInfo.0xb0 # 009c8
lwz r10, 0x0640( r1) # kdp.phys_ram_base # 009cc
lwzux r9, r11, r3 # 009d0
new_world_0x52c:
mr. r9, r9 # 009d4
beq- new_world_0x544 # 009d8
lwzu r12, 0x0004(r11) # 009dc
stwx r12, r10, r9 # 009e0
lwzu r9, 0x0004(r11) # 009e4
b new_world_0x52c # 009e8
new_world_0x544:
lwz r11, -0x0020( r1) # kdp.irp # 009ec
lwz r11, 0x0f70(r11) # 009f0
lis r12, 0x486e # 009f4
ori r12, r12, 0x666f # 009f8
cmplw r12, r11 # 009fc
# r1 = kdp
beq- new_world_final_common # 00a00
mfspr r12, 287/*pvr*/ # 00a04
stw r12, 0x0f20( r1) # kdp.u32_pvr # 00a08
srwi r12, r12, 16 # 00a0c
lwz r11, 0x064c( r1) # kdp.phys_kern_base # 00a10
addi r10, r1, 0xf30 # kdp.u32_cpuinfo_page_size # 00a14
li r9, 0x24 # 00a18
# check for several (some unknown) pre-7410 CPUs, and load their info
cmpwi r12, 0x01 # 00a1c
addi r11, r11, cpuinfo_override_table - nk_start # 00a20
# r3 = ConfigInfo
# r4 = processor_info
# r5 = sys_info
# r6 = boot_r6
# r9 = cpuinfo_size
# r10 = kdp_cpuinfo
# r11 = static_cpuinfo
beq- new_world_hardcode_cpu_info # 00a24
cmpwi r12, 0x03 # 00a28
addi r11, r11, 0x24 # 00a2c
# r3 = ConfigInfo
# r4 = processor_info
# r5 = sys_info
# r6 = boot_r6
# r9 = cpuinfo_size
# r10 = kdp_cpuinfo
# r11 = static_cpuinfo
beq- new_world_hardcode_cpu_info # 00a30
cmpwi r12, 0x04 # 00a34
addi r11, r11, 0x24 # 00a38
# r3 = ConfigInfo
# r4 = processor_info
# r5 = sys_info
# r6 = boot_r6
# r9 = cpuinfo_size
# r10 = kdp_cpuinfo
# r11 = static_cpuinfo
beq- new_world_hardcode_cpu_info # 00a3c
cmpwi r12, 0x06 # 00a40
addi r11, r11, 0x24 # 00a44
# r3 = ConfigInfo
# r4 = processor_info
# r5 = sys_info
# r6 = boot_r6
# r9 = cpuinfo_size
# r10 = kdp_cpuinfo
# r11 = static_cpuinfo
beq- new_world_hardcode_cpu_info # 00a48
cmpwi r12, 0x07 # 00a4c
addi r11, r11, 0x24 # 00a50
# r3 = ConfigInfo
# r4 = processor_info
# r5 = sys_info
# r6 = boot_r6
# r9 = cpuinfo_size
# r10 = kdp_cpuinfo
# r11 = static_cpuinfo
beq- new_world_hardcode_cpu_info # 00a54
cmpwi r12, 0x08 # 00a58
addi r11, r11, 0x24 # 00a5c
# r3 = ConfigInfo
# r4 = processor_info
# r5 = sys_info
# r6 = boot_r6
# r9 = cpuinfo_size
# r10 = kdp_cpuinfo
# r11 = static_cpuinfo
beq- new_world_hardcode_cpu_info # 00a60
cmpwi r12, 0x09 # 00a64
addi r11, r11, 0x24 # 00a68
# r3 = ConfigInfo
# r4 = processor_info
# r5 = sys_info
# r6 = boot_r6
# r9 = cpuinfo_size
# r10 = kdp_cpuinfo
# r11 = static_cpuinfo
beq- new_world_hardcode_cpu_info # 00a6c
cmpwi r12, 0x0a # 00a70
# r3 = ConfigInfo
# r4 = processor_info
# r5 = sys_info
# r6 = boot_r6
# r9 = cpuinfo_size
# r10 = kdp_cpuinfo
# r11 = static_cpuinfo
beq- new_world_hardcode_cpu_info # 00a74
cmpwi r12, 0x0c # 00a78
addi r11, r11, 0x24 # 00a7c
# r3 = ConfigInfo
# r4 = processor_info
# r5 = sys_info
# r6 = boot_r6
# r9 = cpuinfo_size
# r10 = kdp_cpuinfo
# r11 = static_cpuinfo
beq- new_world_hardcode_cpu_info # 00a80
cmpwi r12, 0x0d # 00a84
addi r11, r11, 0x24 # 00a88
# r3 = ConfigInfo
# r4 = processor_info
# r5 = sys_info
# r6 = boot_r6
# r9 = cpuinfo_size
# r10 = kdp_cpuinfo
# r11 = static_cpuinfo
beq- new_world_hardcode_cpu_info # 00a8c
# get base of page table (why?)
mfspr r22, 25/*sdr1*/ # 00a90
# r21 = SDR1 & 0xffff0000
rlwinm r21, r22, 0, 0, 15 # 00a94
# r22 = (SDR1 << 16) & 0x007F0000
rlwinm r22, r22, 16, 9, 15 # 00a98
addis r22, r22, 0x01 # 00a9c
li r15, 0x00 # 00aa0
li r12, 0x1a # 00aa4
mtctr r12 # 00aa8
lwz r12, -0x0020( r1) # kdp.irp # 00aac
addi r10, r12, 0xec0 # 00ab0
new_world_0x60c:
lwz r11, -0x0004(r10) # 00ab4
lwzu r12, -0x0008(r10) # 00ab8
subf r9, r12, r21 # 00abc
cmplw r9, r11 # 00ac0
bge- new_world_0x624 # 00ac4
mr r11, r9 # 00ac8
new_world_0x624:
cmplw r11, r15 # 00acc
ble- new_world_0x634 # 00ad0
mr r13, r12 # 00ad4
mr r15, r11 # 00ad8
new_world_0x634:
bdnz+ new_world_0x60c # 00adc
addi r12, r22, -0x01 # 00ae0
neg r11, r13 # 00ae4
and r12, r11, r12 # 00ae8
add r13, r13, r12 # 00aec
subf r15, r12, r15 # 00af0
rlwinm r15, r15, 0, 0, 21 # 00af4
li r11, 0x1000 # 00af8
stw r11, 0x0f30( r1) # kdp.u32_cpuinfo_page_size
li r11, -0x01 # 00b00
li r10, 0x400 # 00b04
new_world_0x660:
addic. r10, r10, -0x04 # 00b08
stwx r11, r21, r10 # 00b0c
bne+ new_world_0x660 # 00b10
dcbz r0, r21 # 00b14
new_world_0x670:
addi r10, r10, 0x01 # 00b18
lbzx r11, r21, r10 # 00b1c
cmpwi r11, 0x00 # 00b20
beq+ new_world_0x670 # 00b24
sth r10, 0x0f3c( r1) # kdp.u16_cpuinfo_coherency_block_size
sth r10, 0x0f3e( r1) # kdp.u16_cpuinfo_reservation_granule_size
sth r10, 0x0f46( r1) # kdp.u16_cpuinfo_dcache_block_size_touch
sth r10, 0x0f48( r1) # kdp.u16_cpuinfo_icache_block_size
sth r10, 0x0f4a( r1) # kdp.u16_cpuinfo_dcache_block_size
lis r12, -0x8000 # 00b3c
add r11, r21, r22 # 00b40
addi r11, r11, -0xe6e # 00b44
addis r10, r21, 0x01 # 00b48
new_world_0x6a4:
stwu r11, -0x0004(r10) # 00b4c
rlwimi r12, r10, 29, 29, 31 # 00b50
stwu r12, -0x0004(r10) # 00b54
cmpw r10, r21 # 00b58
rlwinm r9, r10, 9, 7, 19 # 00b5c
tlbie r9 # 00b60
bne+ new_world_0x6a4 # 00b64
sync # 00b68
isync # 00b6c
lwz r11, 0x064c( r1) # kdp.phys_kern_base # 00b70
li r12, (copied_code_1_end - copied_code_1) / 4 # 00b74
mtctr r12 # 00b78
add r20, r21, r22 # 00b7c
addi r11, r11, copied_code_1_end - nk_start # 00b80
new_world_0x6dc:
lwzu r12, -0x0004(r11) # 00b84
stwu r12, -0x0004(r20) # 00b88
dcbst r0, r20 # 00b8c
sync # 00b90
icbi r0, r20 # 00b94
bdnz+ new_world_0x6dc # 00b98
sync # 00b9c
isync # 00ba0
stw r0, 0x0f34( r1) # kdp.u32_cpuinfo_dcache_size
li r17, 0x00 # 00ba8
li r18, 0x200 # 00bac
li r19, 0x00 # 00bb0
li r16, -0x01 # 00bb4
b new_world_0x720 # 00bb8
new_world_0x714:
addi r17, r17, 0x200 # 00bbc
cmplw r17, r15 # 00bc0
bge- new_world_0x734 # 00bc4
new_world_0x720:
mtlr r20 # 00bc8
blrl # 00bcc
ble+ new_world_0x714 # 00bd0
addi r12, r17, -0x200 # 00bd4
stw r12, 0x0f34( r1) # kdp.u32_cpuinfo_dcache_size
new_world_0x734:
li r12, 0x01 # 00bdc
sth r12, 0x0f4e( r1) # kdp.u16_cpuinfo_dcache_assoc
lwz r18, 0x0f34( r1) # kdp.u32_cpuinfo_dcache_size
mr r17, r18 # 00be8
li r19, 0x00 # 00bec
li r16, -0x01 # 00bf0
b new_world_0x75c # 00bf4
new_world_0x750:
add r17, r17, r18 # 00bf8
cmplw r17, r15 # 00bfc
bge- new_world_0x774 # 00c00
new_world_0x75c:
mtlr r20 # 00c04
blrl # 00c08
ble+ new_world_0x750 # 00c0c
subf r17, r18, r17 # 00c10
divwu r12, r17, r18 # 00c14
sth r12, 0x0f4e( r1) # kdp.u16_cpuinfo_dcache_assoc
new_world_0x774:
lwz r17, 0x0f34( r1) # kdp.u32_cpuinfo_dcache_size
lhz r18, 0x0f4e( r1) # kdp.u16_cpuinfo_dcache_assoc
slwi r17, r17, 1 # 00c24
divwu r18, r17, r18 # 00c28
srwi r19, r18, 1 # 00c2c
li r14, 0x200 # 00c30
add r19, r19, r14 # 00c34
li r16, -0x01 # 00c38
b new_world_0x7ac # 00c3c
new_world_0x798:
lhz r12, 0x0f4a( r1) # kdp.u16_cpuinfo_dcache_block_size
cmplw r14, r12 # 00c44
ble- new_world_0x7bc # 00c48
srwi r14, r14, 1 # 00c4c
subf r19, r14, r19 # 00c50
new_world_0x7ac:
mtlr r20 # 00c54
blrl # 00c58
ble+ new_world_0x798 # 00c5c
slwi r12, r14, 1 # 00c60
new_world_0x7bc:
sth r12, 0x0f44( r1) # kdp.u16_cpuinfo_dcache_line_size
mtspr 25/*sdr1*/, r21 # 00c68
mr r14, r13 # 00c6c
li r13, 0xff0 # 00c70
sth r0, 0x0f50( r1) # kdp.u16_cpuinfo_tlb_size # 00c74
li r17, 0x00 # 00c78
lwz r18, 0x0f30( r1) # kdp.u32_cpuinfo_page_size
li r19, 0x00 # 00c80
li r16, -0x01 # 00c84
b new_world_0x7f4 # 00c88
new_world_0x7e4:
add r17, r17, r18 # 00c8c
lis r12, 0x3f # 00c90
cmplw r17, r12 # 00c94
bge- new_world_0x82c # 00c98
new_world_0x7f4:
mtlr r20 # 00c9c
mfmsr r12 # 00ca0
ori r12, r12, 0x10 # 00ca4
mtmsr r12 # 00ca8
isync # 00cac
blrl # 00cb0
mfmsr r12 # 00cb4
rlwinm r12, r12, 0, 28, 26 # 00cb8
mtmsr r12 # 00cbc
isync # 00cc0
ble+ new_world_0x7e4 # 00cc4
subf r17, r18, r17 # 00cc8
divwu r12, r17, r18 # 00ccc
sth r12, 0x0f50( r1) # kdp.u16_cpuinfo_tlb_size # 00cd0
new_world_0x82c:
li r12, 0x01 # 00cd4
sth r12, 0x0f52( r1) # kdp.u16_cpuinfo_tlb_assoc
li r17, 0x00 # 00cdc
lis r18, 0x40 # 00ce0
li r19, 0x00 # 00ce4
li r16, -0x01 # 00ce8
b new_world_0x858 # 00cec
new_world_0x848:
add r17, r17, r18 # 00cf0
lis r12, 0x200 # 00cf4
cmplw r17, r12 # 00cf8
bge- new_world_0x890 # 00cfc
new_world_0x858:
mtlr r20 # 00d00
mfmsr r12 # 00d04
ori r12, r12, 0x10 # 00d08
mtmsr r12 # 00d0c
isync # 00d10
blrl # 00d14
mfmsr r12 # 00d18
rlwinm r12, r12, 0, 28, 26 # 00d1c
mtmsr r12 # 00d20
isync # 00d24
ble+ new_world_0x848 # 00d28
subf r17, r18, r17 # 00d2c
divwu r12, r17, r18 # 00d30
sth r12, 0x0f52( r1) # kdp.u16_cpuinfo_tlb_assoc
new_world_0x890:
mr r13, r14 # 00d38
addi r12, r22, -0x01 # 00d3c
srwi r12, r12, 16 # 00d40
or r12, r12, r21 # 00d44
mtspr 25/*sdr1*/, r12 # 00d48
lwz r12, 0x0f34( r1) # kdp.u32_cpuinfo_dcache_size
stw r12, 0x0f38( r1) # kdp.u32_cpuinfo_icache_size
lhz r12, 0x0f4e( r1) # kdp.u16_cpuinfo_dcache_assoc
sth r12, 0x0f4c( r1) # kdp.u16_cpuinfo_icache_assoc
lhz r12, 0x0f44( r1) # kdp.u16_cpuinfo_dcache_line_size
sth r12, 0x0f42( r1) # kdp.u16_cpuinfo_icache_line_size
lis r11, 0x3960 # 00d64
stw r11, 0x0000(r21) # 00d68
lis r11, 0x4e80 # 00d6c
ori r11, r11, 0x20 # 00d70
stw r11, 0x0004(r21) # 00d74
dcbst r0, r21 # 00d78
sync # 00d7c
icbi r0, r21 # 00d80
sync # 00d84
isync # 00d88
mtlr r21 # 00d8c
blrl # 00d90
li r11, 0x01 # 00d94
sth r11, 0x0002(r21) # 00d98
sync # 00d9c
isync # 00da0
mtlr r21 # 00da4
blrl # 00da8
sth r11, 0x0f40( r1) # kdp.u16_cpuinfo_unified_caches
cmpwi r11, 0x01 # 00db0
beq- skip_cache_hackery_never # 00db4
lwz r11, 0x064c( r1) # kdp.phys_kern_base # 00db8
li r12, (copied_code_2_end - copied_code_2) / 4 # 00dbc
mtctr r12 # 00dc0
add r20, r21, r22 # 00dc4
addi r11, r11, copied_code_2_end - nk_start # 00dc8
new_world_0x924:
lwzu r12, -0x0004(r11) # 00dcc
stwu r12, -0x0004(r20) # 00dd0
dcbst r0, r20 # 00dd4
sync # 00dd8
icbi r0, r20 # 00ddc
bdnz+ new_world_0x924 # 00de0
sync # 00de4
isync # 00de8
subf r12, r21, r20 # 00dec
mulli r12, r12, 0x80 # 00df0
cmplw r12, r15 # 00df4
bge- new_world_0x958 # 00df8
mr r15, r12 # 00dfc
new_world_0x958:
add r12, r13, r15 # 00e00
mr r11, r20 # 00e04
lis r10, 0x4e80 # 00e08
ori r10, r10, 0x20 # 00e0c
new_world_0x968:
lwzu r9, -0x0200(r12) # 00e10
stw r10, 0x0000(r12) # 00e14
cmpw r12, r13 # 00e18
stwu r9, -0x0004(r11) # 00e1c
dcbst r0, r12 # 00e20
sync # 00e24
icbi r0, r12 # 00e28
bne+ new_world_0x968 # 00e2c
sync # 00e30
isync # 00e34
stw r0, 0x0f38( r1) # kdp.u32_cpuinfo_icache_size
li r17, 0x00 # 00e3c
li r18, 0x200 # 00e40
li r19, 0x00 # 00e44
li r16, -0x01 # 00e48
b new_world_0x9b4 # 00e4c
new_world_0x9a8:
addi r17, r17, 0x200 # 00e50
cmplw r17, r15 # 00e54
bge- new_world_0x9c8 # 00e58
new_world_0x9b4:
mtlr r20 # 00e5c
blrl # 00e60
ble+ new_world_0x9a8 # 00e64
addi r12, r17, -0x200 # 00e68
stw r12, 0x0f38( r1) # kdp.u32_cpuinfo_icache_size
new_world_0x9c8:
li r12, 0x01 # 00e70
sth r12, 0x0f4c( r1) # kdp.u16_cpuinfo_icache_assoc
lwz r18, 0x0f38( r1) # kdp.u32_cpuinfo_icache_size
mr r17, r18 # 00e7c
li r19, 0x00 # 00e80
li r16, -0x01 # 00e84
b new_world_0x9f0 # 00e88
new_world_0x9e4:
add r17, r17, r18 # 00e8c
cmplw r17, r15 # 00e90
bge- new_world_0xa08 # 00e94
new_world_0x9f0:
mtlr r20 # 00e98
blrl # 00e9c
ble+ new_world_0x9e4 # 00ea0
subf r17, r18, r17 # 00ea4
divwu r12, r17, r18 # 00ea8
sth r12, 0x0f4c( r1) # kdp.u16_cpuinfo_icache_assoc
new_world_0xa08:
add r12, r13, r15 # 00eb0
mr r11, r20 # 00eb4
new_world_0xa10:
lwzu r9, -0x0004(r11) # 00eb8
stwu r9, -0x0200(r12) # 00ebc
cmpw r12, r13 # 00ec0
dcbst r0, r12 # 00ec4
sync # 00ec8
icbi r0, r12 # 00ecc
bne+ new_world_0xa10 # 00ed0
sync # 00ed4
isync # 00ed8
lwz r17, 0x0f38( r1) # kdp.u32_cpuinfo_icache_size
lhz r18, 0x0f4c( r1) # kdp.u16_cpuinfo_icache_assoc
divwu r18, r17, r18 # 00ee4
slwi r17, r17, 1 # 00ee8
add r12, r13, r17 # 00eec
addi r11, r21, -0x04 # 00ef0
new_world_0xa4c:
subf r12, r18, r12 # 00ef4
li r14, 0x400 # 00ef8
new_world_0xa54:
rlwinm. r14, r14, 31, 0, 28 # 00efc
lwzx r9, r12, r14 # 00f00
lis r10, 0x4e80 # 00f04
ori r10, r10, 0x20 # 00f08
stwx r10, r12, r14 # 00f0c
stwu r9, 0x0004(r11) # 00f10
dcbst r12, r14 # 00f14
sync # 00f18
icbi r12, r14 # 00f1c
addi r14, r14, 0x04 # 00f20
lwzx r9, r12, r14 # 00f24
lis r10, 0x4bff # 00f28
ori r10, r10, 0xfffc # 00f2c
stwx r10, r12, r14 # 00f30
stwu r9, 0x0004(r11) # 00f34
dcbst r12, r14 # 00f38
sync # 00f3c
icbi r12, r14 # 00f40
bne+ new_world_0xa54 # 00f44
cmpw r12, r13 # 00f48
bne+ new_world_0xa4c # 00f4c
sync # 00f50
isync # 00f54
mr r19, r18 # 00f58
slwi r18, r18, 1 # 00f5c
li r14, 0x200 # 00f60
add r19, r19, r14 # 00f64
li r16, -0x01 # 00f68
b new_world_0xadc # 00f6c
new_world_0xac8:
li r12, 0x08 # 00f70
cmplw r14, r12 # 00f74
ble- new_world_0xaec # 00f78
srwi r14, r14, 1 # 00f7c
subf r19, r14, r19 # 00f80
new_world_0xadc:
mtlr r20 # 00f84
blrl # 00f88
ble+ new_world_0xac8 # 00f8c
slwi r12, r14, 1 # 00f90
new_world_0xaec:
sth r12, 0x0f42( r1) # kdp.u16_cpuinfo_icache_line_size
srwi r18, r18, 1 # 00f98
add r12, r13, r17 # 00f9c
addi r11, r21, -0x04 # 00fa0
new_world_0xafc:
subf r12, r18, r12 # 00fa4
li r14, 0x400 # 00fa8
new_world_0xb04:
rlwinm. r14, r14, 31, 0, 28 # 00fac
lwzu r9, 0x0004(r11) # 00fb0
stwx r9, r12, r14 # 00fb4
addi r14, r14, 0x04 # 00fb8
lwzu r9, 0x0004(r11) # 00fbc
stwx r9, r12, r14 # 00fc0
bne+ new_world_0xb04 # 00fc4
cmpw r12, r13 # 00fc8
bne+ new_world_0xafc # 00fcc
skip_cache_hackery_never:
# r1 = kdp
b new_world_final_common # 00fd0
/***********************************************************
copied_code_1
************************************************************
Xrefs:
new_world
***********************************************************/
copied_code_1: /* < outside referer */
li r10, 0x03 # 00fd4
copied_code_1_0x4:
li r12, 0x800 # 00fd8
mtctr r12 # 00fdc
add r19, r19, r13 # 00fe0
li r11, 0x00 # 00fe4
mtspr 22/*dec*/, r11 # 00fe8
copied_code_1_0x18:
subf r12, r17, r11 # 00fec
srawi r12, r12, 31 # 00ff0
and r11, r11, r12 # 00ff4
lbzx r12, r13, r11 # 00ff8
add r12, r12, r12 # 00ffc
lbzx r12, r19, r11 # 01000
add r12, r12, r12 # 01004
add r11, r11, r18 # 01008
bdnz+ copied_code_1_0x18 # 0100c
subf r19, r13, r19 # 01010
mfspr r12, 22/*dec*/ # 01014
neg r12, r12 # 01018
cmplw r12, r16 # 0101c
bgt- copied_code_1_0x54 # 01020
mr r16, r12 # 01024
copied_code_1_0x54:
srwi r11, r12, 7 # 01028
subf r12, r11, r12 # 0102c
cmpw r12, r16 # 01030
blelr- # 01034
addic. r10, r10, -0x01 # 01038
bgt+ copied_code_1_0x4 # 0103c
cmpw r12, r16 # 01040
blr # 01044
.long 0x4c00012c # 01048
.long 0x4c00012c # 0104c
.long 0x4c00012c # 01050
.long 0x4c00012c # 01054
.long 0x4c00012c # 01058
.long 0x4c00012c # 0105c
.long 0x4c00012c # 01060
.long 0x4c00012c # 01064
.long 0x4c00012c # 01068
.long 0x4c00012c # 0106c
.long 0x4c00012c # 01070
.long 0x4c00012c # 01074
.long 0x4c00012c # 01078
.long 0x4c00012c # 0107c
.long 0x4c00012c # 01080
.long 0x4c00012c # 01084
copied_code_1_end: /* < outside referer */
/***********************************************************
copied_code_2
************************************************************
Xrefs:
new_world
***********************************************************/
copied_code_2: /* < outside referer */
li r10, 0x03 # 01088
mflr r9 # 0108c
copied_code_2_0x8:
li r12, 0x800 # 01090
mtctr r12 # 01094
add r19, r19, r13 # 01098
li r11, 0x00 # 0109c
mtspr 22/*dec*/, r11 # 010a0
copied_code_2_0x1c:
subf r12, r17, r11 # 010a4
srawi r12, r12, 31 # 010a8
and r11, r11, r12 # 010ac
add r12, r13, r11 # 010b0
mtlr r12 # 010b4
blrl # 010b8
add r12, r19, r11 # 010bc
mtlr r12 # 010c0
blrl # 010c4
add r11, r11, r18 # 010c8
bdnz+ copied_code_2_0x1c # 010cc
subf r19, r13, r19 # 010d0
mfspr r12, 22/*dec*/ # 010d4
neg r12, r12 # 010d8
cmplw r12, r16 # 010dc
bgt- copied_code_2_0x60 # 010e0
mr r16, r12 # 010e4
copied_code_2_0x60:
srwi r11, r12, 7 # 010e8
subf r12, r11, r12 # 010ec
cmpw r12, r16 # 010f0
mtlr r9 # 010f4
blelr- # 010f8
addic. r10, r10, -0x01 # 010fc
bgt+ copied_code_2_0x8 # 01100
cmpw r12, r16 # 01104
blr # 01108
.long 0x4c00012c # 0110c
.long 0x4c00012c # 01110
.long 0x4c00012c # 01114
.long 0x4c00012c # 01118
.long 0x4c00012c # 0111c
.long 0x4c00012c # 01120
.long 0x4c00012c # 01124
.long 0x4c00012c # 01128
.long 0x4c00012c # 0112c
.long 0x4c00012c # 01130
.long 0x4c00012c # 01134
.long 0x4c00012c # 01138
.long 0x4c00012c # 0113c
.long 0x4c00012c # 01140
.long 0x4c00012c # 01144
.long 0x4c00012c # 01148
copied_code_2_end: /* < outside referer */
/***********************************************************
cpu_pre_7410_infobytes_1
***********************************************************/
.long 0x0300031b # 0114c
.long 0x0a1b1b1b # 01150
.long 0x1b0a0a03 # 01154
.long 0x1b0b0303 # 01158
/***********************************************************
cpu_7410plus_infobytes_1
***********************************************************/
.long 0x031b0303 # 0115c
.long 0x03030303 # 01160
.long 0x03030303 # 01164
.long 0x1b030303 # 01168
/***********************************************************
cpu_pre_7410_infobytes_2
***********************************************************/
.long 0x01000102 # 0116c
.long 0x01020202 # 01170
.long 0x02010101 # 01174
.long 0x02020202 # 01178
/***********************************************************
cpu_7410plus_infobytes_2
***********************************************************/
.long 0x02020202 # 0117c
.long 0x01020202 # 01180
.long 0x02020202 # 01184
.long 0x02020202 # 01188
/***********************************************************
cpu_pre_7410_infolongs
***********************************************************/
.long 0 # 0118c
.long 0 # 01190
.long 0 # 01194
.long 0 # 01198
.long 0 # 0119c
.long 0 # 011a0
.long 0 # 011a4
.long 0 # 011a8
.long 0x00000007 # 011ac
.long 0 # 011b0
.long 0 # 011b4
.long 0 # 011b8
.long 0x0000001f # 011bc
.long 0 # 011c0
.long 0 # 011c4
.long 0 # 011c8
/***********************************************************
cpu_7410plus_infolongs
***********************************************************/
.long 0x0000001f # 011cc
.long 0x0000001f # 011d0
.long 0 # 011d4
.long 0 # 011d8
.long 0 # 011dc
.long 0 # 011e0
.long 0 # 011e4
.long 0 # 011e8
.long 0 # 011ec
.long 0 # 011f0
.long 0 # 011f4
.long 0 # 011f8
.long 0x0000001f # 011fc
.long 0 # 01200
.long 0 # 01204
.long 0 # 01208
/***********************************************************
cpuinfo_override_table
************************************************************
For 7400(only) and earlier CPUs. Overwrites info in KDP copied from bootloader.
***********************************************************/
cpuinfo_override_table: /* < outside referer */
.long 0x00001000 # 0120c
.long 0x00008000 # 01210
.long 0x00008000 # 01214
.long 0x00200020 # 01218
.long 0x00010040 # 0121c
.long 0x00400020 # 01220
.long 0x00200020 # 01224
.long 0x00080008 # 01228
.long 0x01000002 # 0122c
.long 0x00001000 # 01230
.long 0x00002000 # 01234
.long 0x00002000 # 01238
.long 0x00200020 # 0123c
.long 0x00000020 # 01240
.long 0x00200020 # 01244
.long 0x00200020 # 01248
.long 0x00020002 # 0124c
.long 0x00400002 # 01250
.long 0x00001000 # 01254
.long 0x00004000 # 01258
.long 0x00004000 # 0125c
.long 0x00200020 # 01260
.long 0x00000020 # 01264
.long 0x00200020 # 01268
.long 0x00200020 # 0126c
.long 0x00040004 # 01270
.long 0x00800002 # 01274
.long 0x00001000 # 01278
.long 0x00004000 # 0127c
.long 0x00004000 # 01280
.long 0x00200020 # 01284
.long 0x00000020 # 01288
.long 0x00200020 # 0128c
.long 0x00200020 # 01290
.long 0x00040004 # 01294
.long 0x00400002 # 01298
.long 0x00001000 # 0129c
.long 0x00004000 # 012a0
.long 0x00004000 # 012a4
.long 0x00200020 # 012a8
.long 0x00000020 # 012ac
.long 0x00200020 # 012b0
.long 0x00200020 # 012b4
.long 0x00040004 # 012b8
.long 0x00400002 # 012bc
.long 0x00001000 # 012c0
.long 0x00008000 # 012c4
.long 0x00008000 # 012c8
.long 0x00200020 # 012cc
.long 0x00000020 # 012d0
.long 0x00200020 # 012d4
.long 0x00200020 # 012d8
.long 0x00080008 # 012dc
.long 0x00800002 # 012e0
.long 0x00001000 # 012e4
.long 0x00008000 # 012e8
.long 0x00008000 # 012ec
.long 0x00200020 # 012f0
.long 0x00000020 # 012f4
.long 0x00200020 # 012f8
.long 0x00200020 # 012fc
.long 0x00040004 # 01300
.long 0x00800002 # 01304
.long 0x00001000 # 01308
.long 0x00008000 # 0130c
.long 0x00008000 # 01310
.long 0x00200020 # 01314
.long 0x00000020 # 01318
.long 0x00200020 # 0131c
.long 0x00200020 # 01320
.long 0x00080008 # 01324
.long 0x00800002 # 01328
.long 0x00001000 # 0132c
.long 0x00008000 # 01330
.long 0x00008000 # 01334
.long 0x00200020 # 01338
.long 0x00000020 # 0133c
.long 0x00200020 # 01340
.long 0x00200020 # 01344
.long 0x00080008 # 01348
.long 0x01000004 # 0134c
/***********************************************************
new_world_hardcode_cpu_info
************************************************************
All G3s and earler, plus the G4-7400 (only). Overwrite part of the CPU info that we got from the bootloader (the important bits), and go to setup.
************************************************************
Xrefs:
new_world
************************************************************
> r3 = ConfigInfo
> r4 = processor_info
> r5 = sys_info
> r6 = boot_r6
> r9 = cpuinfo_size
> r10 = kdp_cpuinfo
> r11 = static_cpuinfo
***********************************************************/
new_world_hardcode_cpu_info: /* < outside referer */
addic. r9, r9, -0x04 # 01350
lwzx r12, r11, r9 # 01354
stwx r12, r10, r9 # 01358
bgt+ new_world_hardcode_cpu_info # 0135c
/***********************************************************
new_world_final_common
************************************************************
Xrefs:
new_world
new_world_hardcode_cpu_info
************************************************************
> r1 = kdp
***********************************************************/
new_world_final_common: /* < outside referer */
li r8, 0x112 # 01360
sth r8, 0x0fdc( r1) # kdp.0xfdc # 01364
lwz r9, 0x0f2c( r1) # kdp.u32_timebase_freq # 01368
stw r9, 0x0f88( r1) # kdp.0xf88 # 0136c
lwz r9, 0x0f28( r1) # kdp.u32_bus_freq # 01370
stw r9, 0x0f84( r1) # kdp.0xf84 # 01374
lwz r9, 0x0f24( r1) # kdp.u32_cpu_clock_freq # 01378
stw r9, 0x0f80( r1) # kdp.0xf80 # 0137c
li r9, 0x00 # 01380
sth r9, 0x0f7e( r1) # kdp.0xf7e # 01384
lwz r8, 0x0f2c( r1) # kdp.u32_timebase_freq # 01388
stw r8, -0x0438( r1) # kdp.-0x438 # 0138c
lwz r9, 0x064c( r1) # kdp.phys_kern_base # 01390
lis r8, rfi_to_kern@h # 01394
ori r8, r8, rfi_to_kern@l # 01398
add r8, r8, r9 # 0139c
stw r8, 0x037c( r1) # kdp.0x37c # 013a0
lis r8, major_0x04bc0@h # 013a4
ori r8, r8, major_0x04bc0@l # 013a8
add r8, r8, r9 # 013ac
stw r8, 0x039c( r1) # kdp.0x39c # 013b0
addi r8, r1, 0x360 # kdp.0x360 # 013b4
mtspr 275/*sprg3*/, r8 # 013b8
lis r8, 0x04 # 013bc
mtspr 0/*mq*/, r8 # 013c0
li r8, 0x00 # 013c4
mfspr r8, 0/*mq*/ # 013c8
stw r8, -0x0968( r1) # kdp.-0x968 # 013cc
oris r9, r8, 0x08 # 013d0
stw r9, 0x0000( r1) # kdp.0x0 # 013d4
addi r9, r1, 0x00 # kdp.0x0 # 013d8
lvewx v0, r0, r9 # 013dc
stw r8, 0x0000( r1) # kdp.0x0 # 013e0
stvewx v0, r0, r9 # 013e4
lwz r8, 0x0000( r1) # kdp.0x0 # 013e8
stw r8, -0x0968( r1) # kdp.-0x968 # 013ec
oris r7, r8, 160 # 013f0
stw r7, -0x0010( r1) # kdp.-0x10 # 013f4
lwz r6, 0x0658( r1) # kdp.system_context # 013f8
lwz r10, 0x0648( r1) # kdp.emu_e8c0 # 013fc
mfmsr r14 # 01400
rlwinm r14, r14, 0, 7, 5 # 01404
andi. r14, r14, 0x40 # 01408
ori r15, r14, 0x1012 # 0140c
ori r11, r14, 0xd032 # 01410
stw r11, -0x0964( r1) # kdp.-0x964 # 01414
li r13, 0x00 # 01418
li r12, 0x00 # 0141c
li r0, 0x00 # 01420
li r2, 0x00 # 01424
li r3, 0x00 # 01428
li r4, 0x00 # 0142c
/***********************************************************
setup_new_world
************************************************************
Sometimes (?) on NewWorld machines, blue issues a 68k reset trap to reinit the kernel. Rene says that this is necessary to set up address spaces.
************************************************************
Xrefs:
new_world_final_common
non_skeleton_reset_trap
************************************************************
> r1 = kdp
***********************************************************/
setup_new_world: /* < outside referer */
crclr 4*cr5 + eq # 01430
/***********************************************************
setup
************************************************************
Final common pathway. Prints a whole heap of stuff.
cr5.eq is set for OldWorld, unset for NewWorld
************************************************************
Xrefs:
replace_old_kernel
setup_new_world
************************************************************
> r1 = kdp
***********************************************************/
setup: /* < outside referer */
mfxer r17 # 01434
stw r17, 0x00d4( r6) # 01438
bl 1f # 0143c
.ascii "Kernel code base at 0x" # 01440
.short 0 # 01456
.align 2 # 01458
1: mflr r8 # 01458
bl print_string # 0145c
lwz r8, 0x064c( r1) # kdp.phys_kern_base # 01460
mr r8, r8 # 01464
bl print_hexword_spc # 01468
bl 1f # 0146c
.ascii " Physical RAM size 0x" # 01470
.short 0 # 01485
.align 2 # 01487
1: mflr r8 # 01488
bl print_string # 0148c
lwz r8, -0x0020( r1) # kdp.irp # 01490
lwz r8, 0x0dc0( r8) # 01494
mr r8, r8 # 01498
bl print_hexword_spc # 0149c
bl 1f # 014a0
.ascii "bytes^n" # 014a4
.short 0 # 014ab
.align 2 # 014ad
1: mflr r8 # 014b0
bl print_string # 014b4
# Copy 64b from 0xfc0(kdp) to 0xfc0(irp)...
lis r22, 0x00 # 014b8
ori r22, r22, 0x40 # 014bc
lwz r9, -0x0020( r1) # kdp.irp # 014c0
addi r8, r1, 0xfc0 # kdp.0xfc0 # 014c4
addi r9, r9, 0xfc0 # 014c8
setup_0x98:
addic. r22, r22, -0x04 # 014cc
lwzx r0, r22, r8 # 014d0
stwx r0, r22, r9 # 014d4
bgt+ setup_0x98 # 014d8
# ...done
lwz r26, 0x0630( r1) # kdp.pa_ConfigInfo # 014dc
lwz r25, 0x064c( r1) # kdp.phys_kern_base # 014e0
lwz r18, 0x0684( r1) # kdp.0x684 # 014e4
# Fill SIX vector tables, in kdp and below, with CRASHes...
lis r23, panic@h # 014e8
ori r23, r23, panic@l # 014ec
add r23, r23, r25 # 014f0
addi r8, r1, 0x360 # kdp.0x360 # 014f4
li r22, 0xc0 # 014f8
# r8 = dest
# r22 = len in bytes
# r23 = fillword
bl wordfill # 014fc
addi r8, r1, 0x420 # kdp.0x420 # 01500
li r22, 0xc0 # 01504
# r8 = dest
# r22 = len in bytes
# r23 = fillword
bl wordfill # 01508
addi r8, r1, 0x4e0 # kdp.0x4e0 # 0150c
li r22, 0xc0 # 01510
# r8 = dest
# r22 = len in bytes
# r23 = fillword
bl wordfill # 01514
addi r8, r1, -0x8d0 # kdp.-0x8d0 # 01518
li r22, 0xc0 # 0151c
# r8 = dest
# r22 = len in bytes
# r23 = fillword
bl wordfill # 01520
addi r8, r1, -0x750 # kdp.-0x750 # 01524
li r22, 0xc0 # 01528
# r8 = dest
# r22 = len in bytes
# r23 = fillword
bl wordfill # 0152c
# ...done
# Fill ONE vector table, below kdp, with something ELSE...
lis r23, rfi_to_kern@h # 01530
ori r23, r23, rfi_to_kern@l # 01534
add r23, r23, r25 # 01538
addi r8, r1, -0x690 # kdp.-0x690 # 0153c
li r22, 0xc0 # 01540
# r8 = dest
# r22 = len in bytes
# r23 = fillword
bl wordfill # 01544
# ...done
addi r9, r1, 0x360 # kdp.0x360 # 01548
# Point SPRG3=vecBase at one of those tables.
mtspr 275/*sprg3*/, r9 # 0154c
addi r8, r1, 0x420 # kdp.0x420 # 01550
lis r23, panic@h # 01554
ori r23, r23, panic@l # 01558
add r23, r23, r25 # 0155c
stw r23, 0x0004( r9) # kdp.0x364 # 01560
stw r23, 0x0004( r8) # kdp.0x424 # 01564
lis r23, major_0x03940_0xc4@h # 01568
ori r23, r23, major_0x03940_0xc4@l # 0156c
add r23, r23, r25 # 01570
stw r23, 0x0008( r9) # kdp.0x368 # 01574
stw r23, 0x0008( r8) # kdp.0x428 # 01578
lis r23, major_0x032c0@h # 0157c
ori r23, r23, major_0x032c0@l # 01580
add r23, r23, r25 # 01584
stw r23, 0x000c( r9) # kdp.0x36c # 01588
stw r23, 0x000c( r8) # kdp.0x42c # 0158c
lis r23, major_0x03940@h # 01590
ori r23, r23, major_0x03940@l # 01594
add r23, r23, r25 # 01598
stw r23, 0x0010( r9) # kdp.0x370 # 0159c
stw r23, 0x0010( r8) # kdp.0x430 # 015a0
lis r23, major_0x04880@h # 015a4
ori r23, r23, major_0x04880@l # 015a8
add r23, r23, r25 # 015ac
stw r23, 0x0014( r9) # kdp.0x374 # 015b0
lis r23, major_0x046e0@h # 015b4
ori r23, r23, major_0x046e0@l # 015b8
add r23, r23, r25 # 015bc
stw r23, 0x0014( r8) # kdp.0x434 # 015c0
lis r23, major_0x03460@h # 015c4
ori r23, r23, major_0x03460@l # 015c8
add r23, r23, r25 # 015cc
stw r23, 0x0018( r9) # kdp.0x378 # 015d0
stw r23, 0x0018( r8) # kdp.0x438 # 015d4
lis r23, major_0x04700@h # 015d8
ori r23, r23, major_0x04700@l # 015dc
add r23, r23, r25 # 015e0
stw r23, 0x001c( r9) # kdp.0x37c # 015e4
stw r23, 0x001c( r8) # kdp.0x43c # 015e8
lis r23, major_0x03da0@h # 015ec
ori r23, r23, major_0x03da0@l # 015f0
add r23, r23, r25 # 015f4
stw r23, 0x0020( r9) # kdp.0x380 # 015f8
stw r23, 0x0020( r8) # kdp.0x440 # 015fc
lis r23, major_0x03200@h # 01600
ori r23, r23, major_0x03200@l # 01604
add r23, r23, r25 # 01608
stw r23, 0x0024( r9) # kdp.0x384 # 0160c
stw r23, 0x0024( r8) # kdp.0x444 # 01610
lis r23, sc_vector@h # 01614
ori r23, r23, sc_vector@l # 01618
add r23, r23, r25 # 0161c
stw r23, 0x0030( r9) # kdp.0x390 # 01620
stw r23, 0x0030( r8) # kdp.0x450 # 01624
lis r23, major_0x04240@h # 01628
ori r23, r23, major_0x04240@l # 0162c
add r23, r23, r25 # 01630
stw r23, 0x003c( r9) # kdp.0x39c # 01634
stw r23, 0x003c( r8) # kdp.0x45c # 01638
lis r23, major_0x04b60@h # 0163c
ori r23, r23, major_0x04b60@l # 01640
add r23, r23, r25 # 01644
stw r23, 0x0034( r9) # kdp.0x394 # 01648
stw r23, 0x0034( r8) # kdp.0x454 # 0164c
stw r23, 0x0080( r9) # kdp.0x3e0 # 01650
stw r23, 0x0080( r8) # kdp.0x4a0 # 01654
lis r23, major_0x07440@h # 01658
ori r23, r23, major_0x07440@l # 0165c
add r23, r23, r25 # 01660
stw r23, 0x0058( r9) # kdp.0x3b8 # 01664
stw r23, 0x0058( r8) # kdp.0x478 # 01668
lis r23, major_0x04300@h # 0166c
ori r23, r23, major_0x04300@l # 01670
add r23, r23, r25 # 01674
stw r23, 0x005c( r9) # kdp.0x3bc # 01678
stw r23, 0x005c( r8) # kdp.0x47c # 0167c
addi r8, r1, 0x4e0 # kdp.0x4e0 # 01680
lis r23, panic@h # 01684
ori r23, r23, panic@l # 01688
add r23, r23, r25 # 0168c
stw r23, 0x0004( r8) # kdp.0x4e4 # 01690
lis r23, major_0x035a0_0x228@h # 01694
ori r23, r23, major_0x035a0_0x228@l # 01698
add r23, r23, r25 # 0169c
stw r23, 0x0008( r8) # kdp.0x4e8 # 016a0
lis r23, major_0x035a0@h # 016a4
ori r23, r23, major_0x035a0@l # 016a8
add r23, r23, r25 # 016ac
stw r23, 0x000c( r8) # kdp.0x4ec # 016b0
lis r23, sc_vector@h # 016b4
ori r23, r23, sc_vector@l # 016b8
add r23, r23, r25 # 016bc
stw r23, 0x0030( r8) # kdp.0x510 # 016c0
lis r23, major_0x04a20@h # 016c4
ori r23, r23, major_0x04a20@l # 016c8
add r23, r23, r25 # 016cc
addi r8, r1, -0x8d0 # kdp.-0x8d0 # 016d0
li r22, 0xc0 # 016d4
# r8 = dest
# r22 = len in bytes
# r23 = fillword
bl wordfill # 016d8
lis r23, panic@h # 016dc
ori r23, r23, panic@l # 016e0
add r23, r23, r25 # 016e4
stw r23, 0x0004( r8) # kdp.-0x8cc # 016e8
lis r23, major_0x032c0@h # 016ec
ori r23, r23, major_0x032c0@l # 016f0
add r23, r23, r25 # 016f4
stw r23, 0x000c( r8) # kdp.-0x8c4 # 016f8
lis r23, major_0x03940@h # 016fc
ori r23, r23, major_0x03940@l # 01700
add r23, r23, r25 # 01704
stw r23, 0x0010( r8) # kdp.-0x8c0 # 01708
lis r23, major_0x03460@h # 0170c
ori r23, r23, major_0x03460@l # 01710
add r23, r23, r25 # 01714
stw r23, 0x0018( r8) # kdp.-0x8b8 # 01718
bl panic_offset_to_r1_minus_0x810_x48__0x9dfc_to_prev_plus_4_20_36
addi r8, r1, -0x750 # kdp.-0x750 # 01720
lis r23, panic@h # 01724
ori r23, r23, panic@l # 01728
add r23, r23, r25 # 0172c
stw r23, 0x0004( r8) # kdp.-0x74c # 01730
lis r23, major_0x03940_0xc4@h # 01734
ori r23, r23, major_0x03940_0xc4@l # 01738
add r23, r23, r25 # 0173c
stw r23, 0x0008( r8) # kdp.-0x748 # 01740
lis r23, dsi_vector@h # 01744
ori r23, r23, dsi_vector@l # 01748
add r23, r23, r25 # 0174c
stw r23, 0x000c( r8) # kdp.-0x744 # 01750
lis r23, sc_vector@h # 01754
ori r23, r23, sc_vector@l # 01758
add r23, r23, r25 # 0175c
stw r23, 0x0030( r8) # kdp.-0x720 # 01760
lis r23, major_0x046d0@h # 01764
ori r23, r23, major_0x046d0@l # 01768
add r23, r23, r25 # 0176c
addi r8, r1, 0x5f0 # kdp.0x5f0 # 01770
li r22, 0x40 # 01774
loop_memset:
addic. r22, r22, -0x04 # 01778
stwx r23, r8, r22 # 0177c
bne+ loop_memset # 01780
lis r23, major_0x03be0_0x18@h # 01784
ori r23, r23, major_0x03be0_0x18@l # 01788
add r23, r23, r25 # 0178c
stw r23, 0x0000( r8) # kdp.0x5f0 # 01790
lis r23, major_0x043a0@h # 01794
ori r23, r23, major_0x043a0@l # 01798
add r23, r23, r25 # 0179c
stw r23, 0x0004( r8) # kdp.0x5f4 # 017a0
lis r23, reset_trap@h # 017a4
ori r23, r23, reset_trap@l # 017a8
add r23, r23, r25 # 017ac
stw r23, 0x0008( r8) # kdp.0x5f8 # 017b0
lis r23, major_0x08640@h # 017b4
ori r23, r23, major_0x08640@l # 017b8
add r23, r23, r25 # 017bc
stw r23, 0x000c( r8) # kdp.0x5fc # 017c0
lis r23, pih_indirect@h # 017c4
ori r23, r23, pih_indirect@l # 017c8
add r23, r23, r25 # 017cc
stw r23, 0x0010( r8) # kdp.0x600 # 017d0
lis r23, bootstrap_cpu@h # 017d4
ori r23, r23, bootstrap_cpu@l # 017d8
add r23, r23, r25 # 017dc
stw r23, 0x0014( r8) # kdp.0x604 # 017e0
lis r23, rtas_call@h # 017e4
ori r23, r23, rtas_call@l # 017e8
add r23, r23, r25 # 017ec
stw r23, 0x0018( r8) # kdp.0x608 # 017f0
lis r23, major_0x0a8c0@h # 017f4
ori r23, r23, major_0x0a8c0@l # 017f8
add r23, r23, r25 # 017fc
stw r23, 0x001c( r8) # kdp.0x60c # 01800
lis r23, syscall@h # 01804
ori r23, r23, syscall@l # 01808
add r23, r23, r25 # 0180c
stw r23, 0x0020( r8) # kdp.0x610 # 01810
lis r23, regsave_debug@h # 01814
ori r23, r23, regsave_debug@l # 01818
add r23, r23, r25 # 0181c
stw r23, 0x003c( r8) # kdp.0x62c # 01820
# super boring stuff over. now cpu-specific stuff!
# (I have only listed CPUs that I think Apple used)
# PVR = version << 16 | revision
# Pre-G3:
# 0001 = 601
# 0003 = 603
# 0006 = 603e
# 0007 = 606ev/606r
# 0004 = 604
# 0004 = 604e
# G3:
# 0008 = 750/750CX/750CXe/755
# 0007 = 750FX
# G4:
# 000c = 7400
# 800c = 7410
# 8000 = 7450
# 8001 = 7445/7455
# 8002 = 7447/7457 (upgrades only!)
# G5:
# 0039 = 970
# 003c = 970FX
mfspr r23, 287/*pvr*/ # 01824
srwi r23, r23, 16 # 01828
andi. r8, r23, 0x8000 # 0182c
bne- G4_7410_or_later # 01830
# pre-7410 CPUs (not that a 7400 is anything like a G3)
cmplwi r23, 0x0f # 01834
# the only CPUs >= 0x0010 are G5s
ble- skip_zeroing_G5 # 01838
li r23, 0x00 # 0183c
skip_zeroing_G5:
add r8, r25, r23 # 01840
lbz r23, 0x114c( r8) # 01844
stb r23, 0x06b8( r1) # kdp.0x6b8 # 01848
lbz r23, 0x116c( r8) # 0184c
stb r23, 0x06b9( r1) # kdp.0x6b9 # 01850
mfspr r23, 287/*pvr*/ # 01854
srwi r23, r23, 16 # 01858
slwi r23, r23, 2 # 0185c
add r8, r25, r23 # 01860
lwz r23, 0x118c( r8) # 01864
stw r23, 0x0f68( r1) # kdp.0xf68 # 01868
b post_cpu_specific # 0186c
# clear the high (8000) bit and have fun
G4_7410_or_later:
andi. r23, r23, 0x7fff # 01870
cmplwi r23, 0x0f # 01874
ble- skip_spoofing_weird_G4 # 01878
# treat 8010 (doesnt exist) as 8FF0 -- why??
li r23, -0x10 # 0187c
skip_spoofing_weird_G4:
add r8, r25, r23 # 01880
lbz r23, 0x115c( r8) # 01884
stb r23, 0x06b8( r1) # kdp.0x6b8 # 01888
lbz r23, 0x117c( r8) # 0188c
stb r23, 0x06b9( r1) # kdp.0x6b9 # 01890
mfspr r23, 287/*pvr*/ # 01894
srwi r23, r23, 16 # 01898
andi. r23, r23, 0x7fff # 0189c
slwi r23, r23, 2 # 018a0
add r8, r25, r23 # 018a4
lwz r23, 0x11cc( r8) # 018a8
stw r23, 0x0f68( r1) # kdp.0xf68 # 018ac
# im not even going to complain that this compiler is so dumb
b post_cpu_specific # 018b0
# fill a buncha r1 stuff with 0xFFFFFFFF
post_cpu_specific:
li r23, -0x01 # 018b4
stw r23, 0x0340( r1) # kdp.0x340 # 018b8
stw r23, 0x0348( r1) # kdp.0x348 # 018bc
stw r23, 0x0350( r1) # kdp.0x350 # 018c0
stw r23, 0x0358( r1) # kdp.0x358 # 018c4
# Initialise the seven kernel locks with zero in the count field...
li r23, 0x00 # 018c8
stw r23, -0x0b90( r1) # kdp.htab_lock # 018cc
stw r23, -0x0b70( r1) # kdp.pih_lock # 018d0
stw r23, -0x0b50( r1) # kdp.sch_lock # 018d4
stw r23, -0x0b30( r1) # kdp.thud_lock # 018d8
stw r23, -0x0b10( r1) # kdp.rtas_lock # 018dc
stw r23, -0x0af0( r1) # kdp.dbug_lock # 018e0
stw r23, -0x0ad0( r1) # kdp.pool_lock # 018e4
# ...and a name in the fourcc field.
lis r23, 256 * 'h'+'t' # 018e8
ori r23, r23, 256 * 'a'+'b' # 018ec
stw r23, -0x0b8c( r1) # kdp.-0xb8c # 018f0
lis r23, 256 * 'p'+'i' # 018f4
ori r23, r23, 256 * 'h'+' ' # 018f8
stw r23, -0x0b6c( r1) # kdp.-0xb6c # 018fc
lis r23, 256 * 's'+'c' # 01900
ori r23, r23, 256 * 'h'+' ' # 01904
stw r23, -0x0b4c( r1) # kdp.-0xb4c # 01908
lis r23, 256 * 't'+'h' # 0190c
ori r23, r23, 256 * 'u'+'d' # 01910
stw r23, -0x0b2c( r1) # kdp.-0xb2c # 01914
lis r23, 256 * 'r'+'t' # 01918
ori r23, r23, 256 * 'a'+'s' # 0191c
stw r23, -0x0b0c( r1) # kdp.-0xb0c # 01920
lis r23, 256 * 'd'+'b' # 01924
ori r23, r23, 256 * 'u'+'g' # 01928
stw r23, -0x0aec( r1) # kdp.-0xaec # 0192c
lis r23, 256 * 'p'+'o' # 01930
ori r23, r23, 256 * 'o'+'l' # 01934
stw r23, -0x0acc( r1) # kdp.-0xacc # 01938
lis r17, 0x7fff # 0193c
ori r17, r17, 0xdead # 01940
stw r17, -0x08e0( r1) # kdp.-0x8e0 # 01944
stw r17, -0x08dc( r1) # kdp.-0x8dc # 01948
stw r17, -0x08d8( r1) # kdp.-0x8d8 # 0194c
stw r17, -0x08d4( r1) # kdp.-0x8d4 # 01950
# Now what?
bl store_some_junk # 01954
bl major_0x15144 # 01958
lwz r7, -0x0010( r1) # kdp.-0x10 # 0195c
li r8, 0x20 # 01960
# r1 = kdp
bl boring # 01964
mr. r31, r8 # 01968
beq- panic_wrapper_0x02940 # 0196c
li r9, 0x01 # 01970
bl major_0x151b0 # 01974
stw r31, -0x041c( r1) # kdp.system_address_space # 01978
stw r8, 0x0000(r31) # 0197c
stw r8, 0x0ec0( r1) # kdp.0xec0 # 01980
lis r8, 256 * 'P'+'R' # 01984
ori r8, r8, 256 * 'O'+'C' # 01988
stw r8, 0x0004(r31) # 0198c
li r8, 0x02 # 01990
stw r8, 0x0010(r31) # 01994
addi r30, r1, -0xa94 # kdp.-0xa94 # 01998
lis r17, 256 * 'G'+'R' # 0199c
stw r30, 0x0008(r30) # 019a0
ori r17, r17, 256 * 'P'+'S' # 019a4
stw r30, 0x000c(r30) # 019a8
stw r17, 0x0004(r30) # 019ac
li r8, 0x58 # 019b0
# r1 = kdp
bl boring # 019b4
mr. r31, r8 # 019b8
beq- panic_wrapper_0x02940 # 019bc
addi r17, r31, 0x10 # 019c0
stw r30, 0x0000(r17) # 019c4
stw r30, 0x0008(r17) # 019c8
lwz r18, 0x000c(r30) # 019cc
stw r18, 0x000c(r17) # 019d0
stw r17, 0x0008(r18) # 019d4
stw r17, 0x000c(r30) # 019d8
addi r29, r31, 0x00 # 019dc
lis r17, 0x4347 # 019e0
stw r29, 0x0008(r29) # 019e4
ori r17, r17, 0x5250 # 019e8
stw r29, 0x000c(r29) # 019ec
stw r17, 0x0004(r29) # 019f0
mr r8, r31 # 019f4
li r9, 0x0a # 019f8
bl major_0x151b0 # 019fc
stw r8, 0x0000(r31) # 01a00
mr r16, r8 # 01a04
bl 1f # 01a08
.ascii "Created motherboard coherence group. ID " # 01a0c
.short 0 # 01a34
.align 2 # 01a36
1: mflr r8 # 01a38
bl print_string # 01a3c
mr r8, r16 # 01a40
bl print_hexword_spc # 01a44
bl 1f # 01a48
.ascii "^n" # 01a4c
.short 0 # 01a4e
.align 2 # 01a50
1: mflr r8 # 01a50
bl print_string # 01a54
li r16, 0x01 # 01a58
stw r16, 0x0020(r31) # 01a5c
stw r16, 0x0024(r31) # 01a60
addi r31, r1, -0x340 # kdp.-0x340 # 01a64
addi r30, r31, 0x20 # 01a68
mr r8, r31 # 01a6c
li r9, 0x07 # 01a70
bl major_0x151b0 # 01a74
stw r8, 0x0000(r31) # 01a78
lis r8, 0x4350 # 01a7c
ori r8, r8, 0x5520 # 01a80
stw r8, 0x0004(r31) # 01a84
addi r17, r31, 0x08 # 01a88
stw r29, 0x0000(r17) # 01a8c
stw r29, 0x0008(r17) # 01a90
lwz r18, 0x000c(r29) # 01a94
stw r18, 0x000c(r17) # 01a98
stw r17, 0x0008(r18) # 01a9c
stw r17, 0x000c(r29) # 01aa0
lis r8, 0x00 # 01aa4
ori r8, r8, 0x0f # 01aa8
stw r8, 0x0018(r31) # 01aac
addi r8, r1, -0xb90 # kdp.htab_lock # 01ab0
stw r8, 0x0308(r30) # 01ab4
stw r1, 0x031c(r30) # 01ab8
li r8, 0x00 # 01abc
stw r8, 0x0318(r30) # 01ac0
sth r8, 0x020a(r30) # 01ac4
lis r8, 0x7469 # 01ac8
ori r8, r8, 0x6d65 # 01acc
stw r8, 0x0004(r30) # 01ad0
li r8, 0x04 # 01ad4
stb r8, 0x0014(r30) # 01ad8
li r8, 0x01 # 01adc
stb r8, 0x0016(r30) # 01ae0
li r8, 0x00 # 01ae4
stb r8, 0x0017(r30) # 01ae8
lis r8, 0x7fff # 01aec
ori r8, r8, 0xffff # 01af0
stw r8, 0x0038(r30) # 01af4
oris r8, r8, 0xffff # 01af8
stw r8, 0x003c(r30) # 01afc
lwz r26, 0x0630( r1) # kdp.pa_ConfigInfo # 01b00
addi r9, r26, 0x2c8 # 01b04
addi r8, r1, 0x27c # kdp.0x27c # 01b08
li r22, 0x80 # 01b0c
setup_0x6dc:
lwzu r20, 0x0004( r9) # 01b10
lwzu r21, 0x0004( r9) # 01b14
stwu r20, 0x0004( r8) # 01b18
rlwinm r23, r21, 0, 23, 21 # 01b1c
cmpw r21, r23 # 01b20
beq- setup_0x6f8 # 01b24
add r21, r23, r26 # 01b28
setup_0x6f8:
addic. r22, r22, -0x08 # 01b2c
stwu r21, 0x0004( r8) # 01b30
bgt+ setup_0x6dc # 01b34
li r8, 0x00 # 01b38
lwz r9, -0x041c( r1) # kdp.system_address_space # 01b3c
bl NKCreateAddressSpaceSub # 01b40
cmpwi r8, 0x00 # 01b44
mr r30, r9 # 01b48
bne- panic_wrapper_0x02940 # 01b4c
lwz r31, -0x041c( r1) # kdp.system_address_space # 01b50
lwz r16, 0x0000(r30) # 01b54
stw r16, 0x000c(r31) # 01b58
stw r16, -0x0424( r1) # kdp.-0x424 # 01b5c
stw r30, 0x0014(r31) # 01b60
stw r30, -0x001c( r1) # kdp.-0x1c # 01b64
stw r30, -0x03fc( r1) # kdp.-0x3fc # 01b68
bl 1f # 01b6c
.ascii "Created system address space. ID " # 01b70
.short 0 # 01b91
.align 2 # 01b93
1: mflr r8 # 01b94
bl print_string # 01b98
mr r8, r16 # 01b9c
bl print_hexword_spc # 01ba0
bl 1f # 01ba4
.ascii "^n BATs " # 01ba8
.short 0 # 01bb0
.align 2 # 01bb2
1: mflr r8 # 01bb4
bl print_string # 01bb8
lwz r16, 0x0288( r1) # kdp.bat0l # 01bbc
lwz r17, 0x028c( r1) # kdp.bat0u # 01bc0
stw r16, 0x0080(r30) # 01bc4
stw r17, 0x0084(r30) # 01bc8
mr r8, r16 # 01bcc
bl print_hexword_spc # 01bd0
mr r8, r17 # 01bd4
bl print_hexword_spc # 01bd8
bl 1f # 01bdc
.ascii " " # 01be0
.short 0 # 01be2
.align 2 # 01be4
1: mflr r8 # 01be4
bl print_string # 01be8
lwz r16, 0x0298( r1) # kdp.bat1l # 01bec
lwz r17, 0x029c( r1) # kdp.bat1u # 01bf0
stw r16, 0x0088(r30) # 01bf4
stw r17, 0x008c(r30) # 01bf8
mr r8, r16 # 01bfc
bl print_hexword_spc # 01c00
mr r8, r17 # 01c04
bl print_hexword_spc # 01c08
bl 1f # 01c0c
.ascii " " # 01c10
.short 0 # 01c12
.align 2 # 01c14
1: mflr r8 # 01c14
bl print_string # 01c18
lwz r16, 0x02a8( r1) # kdp.bat2l # 01c1c
lwz r17, 0x02ac( r1) # kdp.bat2u # 01c20
stw r16, 0x0090(r30) # 01c24
stw r17, 0x0094(r30) # 01c28
mr r8, r16 # 01c2c
bl print_hexword_spc # 01c30
mr r8, r17 # 01c34
bl print_hexword_spc # 01c38
bl 1f # 01c3c
.ascii " " # 01c40
.short 0 # 01c42
.align 2 # 01c44
1: mflr r8 # 01c44
bl print_string # 01c48
lwz r16, 0x02b8( r1) # kdp.bat3l # 01c4c
lwz r17, 0x02bc( r1) # kdp.bat3u # 01c50
stw r16, 0x0098(r30) # 01c54
stw r17, 0x009c(r30) # 01c58
mr r8, r16 # 01c5c
bl print_hexword_spc # 01c60
mr r8, r17 # 01c64
bl print_hexword_spc # 01c68
bl 1f # 01c6c
.ascii "^n" # 01c70
.short 0 # 01c72
.align 2 # 01c74
1: mflr r8 # 01c74
bl print_string # 01c78
bl major_0x0f384 # 01c7c
addi r9, r1, -0xa44 # kdp.-0xa44 # 01c80
lis r8, 0x444c # 01c84
stw r9, 0x0008( r9) # 01c88
ori r8, r8, 0x5951 # 01c8c
stw r9, 0x000c( r9) # 01c90
stw r8, 0x0004( r9) # 01c94
addi r9, r1, -0xa34 # kdp.-0xa34 # 01c98
lis r8, 0x4442 # 01c9c
stw r9, 0x0008( r9) # 01ca0
ori r8, r8, 0x5547 # 01ca4
stw r9, 0x000c( r9) # 01ca8
stw r8, 0x0004( r9) # 01cac
addi r8, r1, -0xa24 # kdp.-0xa24 # 01cb0
li r9, 0x04 # 01cb4
bl major_0x151b0 # 01cb8
addi r9, r1, -0xa24 # kdp.-0xa24 # 01cbc
stw r8, 0x0000( r9) # 01cc0
stw r8, 0x0ec8( r1) # kdp.0xec8 # 01cc4
lis r16, 0x5041 # 01cc8
stw r9, 0x0008( r9) # 01ccc
ori r16, r16, 0x4751 # 01cd0
stw r9, 0x000c( r9) # 01cd4
stw r16, 0x0004( r9) # 01cd8
li r8, 0x00 # 01cdc
stw r8, -0x0a00( r1) # kdp.-0xa00 # 01ce0
stw r8, -0x09fc( r1) # kdp.-0x9fc # 01ce4
addi r9, r1, -0xa14 # kdp.-0xa14 # 01ce8
lis r16, 0x4e4f # 01cec
stw r9, 0x0008( r9) # 01cf0
ori r16, r16, 0x5451 # 01cf4
stw r9, 0x000c( r9) # 01cf8
stw r16, 0x0004( r9) # 01cfc
bl say_nanodebugger_activated # 01d00
# r1 = kdp
bl init_rdyqs # 01d04
lwz r8, -0x001c( r1) # kdp.-0x1c # 01d08
li r9, 0x00 # 01d0c
bl major_0x13f78 # 01d10
lwz r8, -0x041c( r1) # kdp.system_address_space # 01d14
bl mktask # 01d18
mr. r31, r8 # 01d1c
beq- panic_wrapper_0x02940 # 01d20
lwz r8, 0x0000(r31) # 01d24
stw r8, 0x0ec4( r1) # kdp.blue_task # 01d28
li r8, -0x01 # 01d2c
sth r8, -0x043c( r1) # kdp.-0x43c # 01d30
stw r31, -0x08f0( r1) # kdp.-0x8f0 # 01d34
stw r31, -0x0008( r1) # kdp.-0x8 # 01d38
lis r8, 256 * 'b'+'l' # 01d3c
ori r8, r8, 256 * 'u'+'e' # 01d40
stw r8, 0x0074(r31) # 01d44
li r8, 0x02 # 01d48
stb r8, 0x0018(r31) # 01d4c
lis r8, 0x03 # 01d50
ori r8, r8, 0x28 # 01d54
stw r8, 0x0064(r31) # 01d58
li r8, 200 # 01d5c
stw r8, 0x001c(r31) # 01d60
li r8, 0x02 # 01d64
stb r8, 0x0019(r31) # 01d68
lhz r8, -0x0116( r1) # kdp.-0x116 # 01d6c
sth r8, 0x001a(r31) # 01d70
lwz r8, -0x0340( r1) # kdp.-0x340 # 01d74
stw r8, 0x0078(r31) # 01d78
lwz r6, 0x0658( r1) # kdp.system_context # 01d7c
stw r6, 0x0088(r31) # 01d80
lwz r16, 0x01d8(r31) # 01d84
stw r16, 0x00d8( r6) # 01d88
bl 1f # 01d8c
.ascii "System context at 0x" # 01d90
.short 0 # 01da4
.align 2 # 01da6
1: mflr r8 # 01da8
bl print_string # 01dac
mr r8, r6 # 01db0
bl print_hexword_spc # 01db4
bl 1f # 01db8
.ascii " Vector save area at 0x" # 01dbc
.short 0 # 01dd3
.align 2 # 01dd5
1: mflr r8 # 01dd8
bl print_string # 01ddc
mr r8, r16 # 01de0
bl print_hexword_spc # 01de4
bl 1f # 01de8
.ascii " SDR1 0x" # 01dec
.short 0 # 01df4
.align 2 # 01df6
1: mflr r8 # 01df8
bl print_string # 01dfc
mfspr r8, 25/*sdr1*/ # 01e00
mr r8, r8 # 01e04
bl print_hexword_spc # 01e08
bl 1f # 01e0c
.ascii "^n" # 01e10
.short 0 # 01e12
.align 2 # 01e14
1: mflr r8 # 01e14
bl print_string # 01e18
bl 1f # 01e1c
.ascii "Adding blue task " # 01e20
.short 0 # 01e31
.align 2 # 01e33
1: mflr r8 # 01e34
bl print_string # 01e38
lwz r8, 0x0000(r31) # 01e3c
mr r8, r8 # 01e40
bl print_hexword_spc # 01e44
bl 1f # 01e48
.ascii "to the ready queue^n" # 01e4c
.short 0 # 01e60
.align 2 # 01e62
1: mflr r8 # 01e64
bl print_string # 01e68
addi r16, r31, 0x08 # 01e6c
lwz r17, 0x0008(r16) # 01e70
lwz r18, 0x000c(r16) # 01e74
stw r17, 0x0008(r18) # 01e78
stw r18, 0x000c(r17) # 01e7c
li r17, 0x00 # 01e80
stw r17, 0x0008(r16) # 01e84
stw r17, 0x000c(r16) # 01e88
mr r8, r31 # 01e8c
bl major_0x13ed8_0x8 # 01e90
bl major_0x149d4_0x8 # 01e94
bl major_0x14af8_0xa0 # 01e98
bl say_starting_timeslicing # 01e9c
mr r31, r7 # 01ea0
rlwinm r7, r7, 0, 13, 11 # 01ea4
lwz r8, -0x041c( r1) # kdp.system_address_space # 01ea8
bl mktask # 01eac
mr r7, r31 # 01eb0
mr. r31, r8 # 01eb4
beq- panic_wrapper_0x02940 # 01eb8
lis r8, 256 * 'i'+'d' # 01ebc
ori r8, r8, 256 * 'l'+'e' # 01ec0
stw r8, 0x0074(r31) # 01ec4
lis r8, 0x0a # 01ec8
ori r8, r8, 0x40 # 01ecc
stw r8, 0x0064(r31) # 01ed0
li r8, 0x01 # 01ed4
stw r8, 0x001c(r31) # 01ed8
li r8, 0x03 # 01edc
stb r8, 0x0019(r31) # 01ee0
lhz r8, -0x0116( r1) # kdp.-0x116 # 01ee4
sth r8, 0x001a(r31) # 01ee8
lwz r8, -0x0340( r1) # kdp.-0x340 # 01eec
stw r8, 0x0078(r31) # 01ef0
lwz r8, 0x0100(r31) # 01ef4
oris r8, r8, 0x40 # 01ef8
stw r8, 0x0100(r31) # 01efc
lwz r8, 0x064c( r1) # kdp.phys_kern_base # 01f00
lis r26, major_0x14bcc_0x338@h # 01f04
ori r26, r26, major_0x14bcc_0x338@l # 01f08
add r8, r8, r26 # 01f0c
stw r8, 0x01fc(r31) # 01f10
lwz r8, 0x01a4(r31) # 01f14
andi. r8, r8, 0xbfcf # 01f18
stw r8, 0x01a4(r31) # 01f1c
addi r30, r1, -0x340 # kdp.-0x340 # 01f20
stw r31, 0x001c(r30) # 01f24
bl 1f # 01f28
.ascii "Adding idle task " # 01f2c
.short 0 # 01f3d
.align 2 # 01f3f
1: mflr r8 # 01f40
bl print_string # 01f44
lwz r8, 0x0000(r31) # 01f48
mr r8, r8 # 01f4c
bl print_hexword_spc # 01f50
bl 1f # 01f54
.ascii "to the ready queue^n" # 01f58
.short 0 # 01f6c
.align 2 # 01f6e
1: mflr r8 # 01f70
bl print_string # 01f74
addi r16, r31, 0x08 # 01f78
lwz r17, 0x0008(r16) # 01f7c
lwz r18, 0x000c(r16) # 01f80
stw r17, 0x0008(r18) # 01f84
stw r18, 0x000c(r17) # 01f88
li r17, 0x00 # 01f8c
stw r17, 0x0008(r16) # 01f90
stw r17, 0x000c(r16) # 01f94
mr r8, r31 # 01f98
bl major_0x13ed8_0x8 # 01f9c
bl major_0x149d4_0x8 # 01fa0
li r8, 0x00 # 01fa4
lwz r9, -0x041c( r1) # kdp.system_address_space # 01fa8
bl NKCreateAddressSpaceSub # 01fac
cmpwi r8, 0x00 # 01fb0
mr r30, r9 # 01fb4
lwz r31, -0x0324( r1) # kdp.-0x324 # 01fb8
bne- panic_wrapper_0x02940 # 01fbc
stw r30, 0x0070(r31) # 01fc0
lwz r7, -0x0010( r1) # kdp.-0x10 # 01fc4
lwz r26, 0x0630( r1) # kdp.pa_ConfigInfo # 01fc8
lwz r18, 0x0684( r1) # kdp.0x684 # 01fcc
beq- cr5, setup_0xbcc # 01fd0
mfspr r8, 25/*sdr1*/ # 01fd4
rlwinm r22, r8, 16, 7, 15 # 01fd8
rlwinm r8, r8, 0, 0, 15 # 01fdc
ori r22, r22, 0xffc0 # 01fe0
stw r8, 0x06a4( r1) # kdp.0x6a4 # 01fe4
stw r22, 0x06a0( r1) # kdp.0x6a0 # 01fe8
li r23, 0x00 # 01fec
addi r22, r22, 0x40 # 01ff0
setup_0xbc0:
addic. r22, r22, -0x04 # 01ff4
stwx r23, r8, r22 # 01ff8
bgt+ setup_0xbc0 # 01ffc
setup_0xbcc:
bl major_0x055e0 # 02000
beq- cr5, setup_0xc10 # 02004
lwz r9, 0x00bc(r26) # 02008
lwz r22, 0x00b8(r26) # 0200c
add r9, r9, r26 # 02010
setup_0xbe0:
addi r22, r22, -0x04 # 02014
lwzx r21, r9, r22 # 02018
andi. r23, r21, 0xa00 # 0201c
cmpwi r23, 0x200 # 02020
bne- setup_0xbfc # 02024
rlwinm r21, r21, 0, 23, 21 # 02028
add r21, r21, r26 # 0202c
setup_0xbfc:
stwx r21, r18, r22 # 02030
addic. r22, r22, -0x04 # 02034
lwzx r20, r9, r22 # 02038
stwx r20, r18, r22 # 0203c
bgt+ setup_0xbe0 # 02040
setup_0xc10:
lwz r8, 0x00c0(r26) # 02044
add r8, r18, r8 # 02048
lis r19, -0x01 # 0204c
ori r19, r19, 0x6000 # 02050
add r19, r19, r1 # 02054
lwz r23, 0x0004( r8) # 02058
rlwimi r23, r19, 0, 0, 19 # 0205c
stw r23, 0x0004( r8) # 02060
lwz r8, 0x00c4(r26) # 02064
add r8, r18, r8 # 02068
lis r19, -0x01 # 0206c
ori r19, r19, 0x7000 # 02070
add r19, r1, r19 # 02074
lis r22, 0x00 # 02078
ori r22, r22, 0x09 # 0207c
lwz r23, 0x0004( r8) # 02080
rlwimi r23, r19, 0, 0, 19 # 02084
stw r23, 0x0004( r8) # 02088
sth r22, 0x0002( r8) # 0208c
lhz r23, 0x0000( r8) # 02090
subf r23, r22, r23 # 02094
sth r23, 0x0000( r8) # 02098
lwz r19, 0x0634( r1) # kdp.pa_edp # 0209c
lwz r8, 0x00c8(r26) # 020a0
add r8, r18, r8 # 020a4
lwz r23, 0x0004( r8) # 020a8
rlwimi r23, r19, 0, 0, 19 # 020ac
stw r23, 0x0004( r8) # 020b0
addi r9, r26, 200 # 020b4
addi r8, r1, 0x7c # kdp.0x7c # 020b8
li r22, 0x200 # 020bc
setup_0xc8c:
lwzu r23, 0x0004( r9) # 020c0
addic. r22, r22, -0x08 # 020c4
add r23, r18, r23 # 020c8
stwu r23, 0x0004( r8) # 020cc
lwzu r23, 0x0004( r9) # 020d0
oris r23, r23, 0x2000 # 020d4
stwu r23, 0x0004( r8) # 020d8
bgt+ setup_0xc8c # 020dc
addi r23, r1, 0x80 # kdp.0x80 # 020e0
stw r23, 0x05c8( r1) # kdp.0x5c8 # 020e4
lwz r23, 0x034c(r26) # 020e8
stw r23, 0x05cc( r1) # kdp.0x5cc # 020ec
addi r23, r1, 0x100 # kdp.0x100 # 020f0
stw r23, 0x05d0( r1) # kdp.0x5d0 # 020f4
lwz r23, 0x0350(r26) # 020f8
stw r23, 0x05d4( r1) # kdp.0x5d4 # 020fc
addi r23, r1, 0x180 # kdp.0x180 # 02100
stw r23, 0x05d8( r1) # kdp.0x5d8 # 02104
lwz r23, 0x0354(r26) # 02108
stw r23, 0x05dc( r1) # kdp.0x5dc # 0210c
addi r23, r1, 0x200 # kdp.0x200 # 02110
stw r23, 0x05e0( r1) # kdp.0x5e0 # 02114
lwz r23, 0x0358(r26) # 02118
stw r23, 0x05e4( r1) # kdp.0x5e4 # 0211c
li r22, 0x00 # 02120
addi r19, r1, 120 # kdp.0x78 # 02124
b setup_0xd00 # 02128
setup_0xcf8:
addi r8, r8, 0x08 # 0212c
b setup_0xd04 # 02130
setup_0xd00:
lwzu r8, 0x0008(r19) # 02134
setup_0xd04:
lwz r30, 0x0000( r8) # 02138
lwz r31, 0x0004( r8) # 0213c
cmplwi cr7, r30, 0xffff # 02140
rlwinm. r31, r31, 0, 20, 21 # 02144
bgt- cr7, setup_0xd30 # 02148
cmpwi cr6, r31, 0xc00 # 0214c
beq- setup_0xd30 # 02150
beq+ cr6, setup_0xcf8 # 02154
add r22, r22, r30 # 02158
addi r22, r22, 0x01 # 0215c
beq+ cr7, setup_0xd00 # 02160
setup_0xd30:
stw r22, 0x06b4( r1) # kdp.VMMaxVirtualPages # 02164
beq- cr5, setup_0xdac # 02168
lwz r21, 0x0638( r1) # kdp.0x638 # 0216c
lwz r20, 0x063c( r1) # kdp.0x63c # 02170
stw r21, 0x06b0( r1) # kdp.0x6b0 # 02174
lwz r30, -0x0020( r1) # kdp.irp # 02178
addi r29, r21, -0x04 # 0217c
addi r19, r30, 0xde8 # 02180
lwz r23, 0x0688( r1) # kdp.0x688 # 02184
li r30, 0x01 # 02188
rlwimi r30, r23, 1, 25, 25 # 0218c
rlwimi r30, r23, 31, 26, 26 # 02190
xori r30, r30, 0x20 # 02194
rlwimi r30, r23, 29, 27, 27 # 02198
rlwimi r30, r23, 27, 28, 28 # 0219c
li r23, 0x1a # 021a0
setup_0xd70:
addic. r23, r23, -0x01 # 021a4
blt- setup_0xdac # 021a8
lwzu r31, 0x0008(r19) # 021ac
lwz r22, 0x0004(r19) # 021b0
or r31, r31, r30 # 021b4
setup_0xd84:
cmplwi r22, 0x1000 # 021b8
cmplw cr6, r31, r21 # 021bc
cmplw cr7, r31, r20 # 021c0
addi r22, r22, -0x1000 # 021c4
blt+ setup_0xd70 # 021c8
blt- cr6, setup_0xda0 # 021cc
blt- cr7, setup_0xda4 # 021d0
setup_0xda0:
stwu r31, 0x0004(r29) # 021d4
setup_0xda4:
addi r31, r31, 0x1000 # 021d8
b setup_0xd84 # 021dc
setup_0xdac:
beq- cr5, setup_0xe30 # 021e0
subf r22, r21, r29 # 021e4
addi r8, r22, 0x1000 # 021e8
srwi r17, r22, 13 # 021ec
addi r17, r17, 0x12 # 021f0
bl 1f # 021f4
.ascii "Priming the system free list with " # 021f8
.short 0 # 0221a
.align 2 # 0221c
1: mflr r8 # 0221c
bl print_string # 02220
mr r8, r17 # 02224
bl print_decimal # 02228
bl 1f # 0222c
.ascii "pages.^n" # 02230
.short 0 # 02238
.align 2 # 0223a
1: mflr r8 # 0223c
bl print_string # 02240
setup_0xe10:
lwz r8, 0x0000(r29) # 02244
rlwinm r8, r8, 0, 0, 19 # 02248
# r1 = kdp
# r8 = maybe the page
bl free_list_add_page # 0224c
addi r17, r17, -0x01 # 02250
addi r29, r29, -0x04 # 02254
cmpwi r17, 0x00 # 02258
bgt+ setup_0xe10 # 0225c
b setup_0xebc # 02260
setup_0xe30:
lwz r8, 0x05a8( r1) # kdp.0x5a8 # 02264
addi r18, r1, 0x2000 # kdp.0x2000 # 02268
subf. r8, r18, r8 # 0226c
blt- setup_0xebc # 02270
addi r8, r8, 0x1000 # 02274
srwi r17, r8, 12 # 02278
bl 1f # 0227c
.ascii "Priming the system free list with " # 02280
.short 0 # 022a2
.align 2 # 022a4
1: mflr r8 # 022a4
bl print_string # 022a8
mr r8, r17 # 022ac
bl print_decimal # 022b0
bl 1f # 022b4
.ascii "system heap pages.^n" # 022b8
.short 0 # 022cc
.align 2 # 022ce
1: mflr r8 # 022d0
bl print_string # 022d4
setup_0xea4:
rlwinm r8, r18, 0, 0, 19 # 022d8
# r1 = kdp
# r8 = maybe the page
bl free_list_add_page # 022dc
addi r17, r17, -0x01 # 022e0
addi r18, r18, 0x1000 # 022e4
cmpwi r17, 0x00 # 022e8
bgt+ setup_0xea4 # 022ec
setup_0xebc:
bl 1f # 022f0
.ascii "VMMaxVirtualPages: " # 022f4
.short 0 # 02307
.align 2 # 02309
1: mflr r8 # 0230c
bl print_string # 02310
lwz r8, 0x06b4( r1) # kdp.VMMaxVirtualPages # 02314
mr r8, r8 # 02318
bl print_hexword_spc # 0231c
bl 1f # 02320
.ascii "VMLogicalPages: " # 02324
.short 0 # 02334
.align 2 # 02336
1: mflr r8 # 02338
bl print_string # 0233c
lwz r8, 0x06a8( r1) # kdp.phys_pages # 02340
mr r8, r8 # 02344
bl print_hexword_spc # 02348
bl 1f # 0234c
.ascii "^n" # 02350
.short 0 # 02352
.align 2 # 02354
1: mflr r8 # 02354
bl print_string # 02358
bl 1f # 0235c
.ascii "Interrupt handler kind: " # 02360
.short 0 # 02378
.align 2 # 0237a
1: mflr r8 # 0237c
bl print_string # 02380
lwz r8, 0x0630( r1) # kdp.pa_ConfigInfo # 02384
lbz r8, 0x0098( r8) # 02388
mr r8, r8 # 0238c
bl print_twodig_decimal # 02390
bl 1f # 02394
.ascii "^n" # 02398
.short 0 # 0239a
.align 2 # 0239c
1: mflr r8 # 0239c
bl print_string # 023a0
beq- cr5, finish_old_world # 023a4
subf r22, r21, r29 # 023a8
lwz r8, 0x06b4( r1) # kdp.VMMaxVirtualPages # 023ac
slwi r8, r8, 2 # 023b0
cmplw r22, r8 # 023b4
addi r19, r22, 0x04 # 023b8
srwi r19, r19, 2 # 023bc
stw r19, 0x06ac( r1) # kdp.logi_pages # 023c0
blt- setup_0xf98 # 023c4
addi r22, r8, -0x04 # 023c8
setup_0xf98:
li r30, 0x00 # 023cc
lwz r8, -0x0020( r1) # kdp.irp # 023d0
addi r19, r22, 0x04 # 023d4
slwi r19, r19, 10 # 023d8
ori r30, r30, 0xffff # 023dc
stw r19, 0x0dc4( r8) # 023e0
srwi r22, r22, 2 # 023e4
stw r19, 0x0dc8( r8) # 023e8
srwi r19, r19, 12 # 023ec
stw r19, 0x06a8( r1) # kdp.phys_pages # 023f0
addi r29, r1, 0x6bc # kdp.0x6bc # 023f4
addi r19, r1, 120 # kdp.0x78 # 023f8
setup_0xfc8:
cmplwi r22, 0xffff # 023fc
lwzu r8, 0x0008(r19) # 02400
rotlwi r31, r21, 0x0a # 02404
ori r31, r31, 0xc00 # 02408
stw r30, 0x0000( r8) # 0240c
stw r31, 0x0004( r8) # 02410
stwu r21, 0x0004(r29) # 02414
addis r21, r21, 0x04 # 02418
addis r22, r22, -0x01 # 0241c
bgt+ setup_0xfc8 # 02420
sth r22, 0x0002( r8) # 02424
lwz r17, 0x06a8( r1) # kdp.phys_pages # 02428
lwz r18, 0x06ac( r1) # kdp.logi_pages # 0242c
stw r17, 0x06ac( r1) # kdp.logi_pages # 02430
subf. r18, r17, r18 # 02434
slwi r31, r17, 12 # 02438
ble- setup_skip_grabbing_more_pages # 0243c
bl 1f # 02440
.ascii "Physical RAM greater than the initial logical area.^n Moving "
.short 0 # 02481
.align 2 # 02483
1: mflr r8 # 02484
bl print_string # 02488
mr r8, r18 # 0248c
bl print_decimal # 02490
bl 1f # 02494
.ascii "pages into the system free page list.^n" # 02498
.short 0 # 024bf
.align 2 # 024c1
1: mflr r8 # 024c4
bl print_string # 024c8
setup_0x1098:
mr r8, r31 # 024cc
# r1 = kdp
# r8 = maybe the page
bl free_list_add_page # 024d0
addi r31, r31, 0x1000 # 024d4
addi r18, r18, -0x01 # 024d8
cmpwi r18, 0x00 # 024dc
bgt+ setup_0x1098 # 024e0
setup_skip_grabbing_more_pages:
bl convert_pmdts_to_areas # 024e4
addi r29, r1, 0x5e0 # kdp.0x5e0 # 024e8
bl major_0x05278 # 024ec
bl major_0x055e0 # 024f0
bl major_0x06870 # 024f4
bl 1f # 024f8
.ascii "Reset system - Into the 68K fire: " # 024fc
.short 0 # 0251e
.align 2 # 02520
1: mflr r8 # 02520
bl print_string # 02524
mr r8, r11 # 02528
bl print_hexword_spc # 0252c
mr r8, r10 # 02530
bl print_hexword_spc # 02534
bl 1f # 02538
.ascii "^n" # 0253c
.short 0 # 0253e
.align 2 # 02540
1: mflr r8 # 02540
bl print_string # 02544
lwz r9, 0x00d4( r6) # 02548
mfspr r8, 272/*sprg0*/ # 0254c
mtxer r9 # 02550
# r6 = ewa
bl restore_registers_from_r14 # 02554
# r1 = kdp
b pih_indirect # 02558
finish_old_world:
addi r29, r1, 0x5e8 # kdp.0x5e8 # 0255c
bl major_0x05278 # 02560
bl major_0x055e0 # 02564
bl convert_pmdts_to_areas # 02568
bl major_0x06870 # 0256c
lwz r27, 0x0630( r1) # kdp.pa_ConfigInfo # 02570
lwz r27, 0x0094(r27) # 02574
bl major_0x05524 # 02578
beq- setup_0x1160 # 0257c
li r30, 0x00 # 02580
stw r30, -0x0004(r29) # 02584
eieio # 02588
stw r30, 0x0000(r29) # 0258c
sync # 02590
setup_0x1160:
bl major_0x04c20 # 02594
lwz r27, 0x0630( r1) # kdp.pa_ConfigInfo # 02598
lwz r27, 0x009c(r27) # 0259c
bl major_0x05524 # 025a0
beq- setup_0x1188 # 025a4
li r30, 0x00 # 025a8
stw r30, -0x0004(r29) # 025ac
eieio # 025b0
stw r30, 0x0000(r29) # 025b4
sync # 025b8
setup_0x1188:
bl major_0x04c20 # 025bc
lwz r27, 0x0630( r1) # kdp.pa_ConfigInfo # 025c0
lwz r27, 0x00a0(r27) # 025c4
lis r19, 0x00 # 025c8
ori r19, r19, 0xa000 # 025cc
subf r19, r19, r27 # 025d0
setup_0x11a0:
bl major_0x05524 # 025d4
beq- setup_0x11bc # 025d8
li r30, 0x00 # 025dc
stw r30, -0x0004(r29) # 025e0
eieio # 025e4
stw r30, 0x0000(r29) # 025e8
sync # 025ec
setup_0x11bc:
bl major_0x04c20 # 025f0
cmplw r27, r19 # 025f4
addi r27, r27, -0x1000 # 025f8
bgt+ setup_0x11a0 # 025fc
lwz r27, 0x0630( r1) # kdp.pa_ConfigInfo # 02600
lwz r27, 0x00a4(r27) # 02604
bl major_0x05524 # 02608
beq- setup_0x11f0 # 0260c
li r30, 0x00 # 02610
stw r30, -0x0004(r29) # 02614
eieio # 02618
stw r30, 0x0000(r29) # 0261c
sync # 02620
setup_0x11f0:
bl major_0x04c20 # 02624
bl 1f # 02628
.ascii "Nanokernel replaced. Returning to boot process^n"
.short 0 # 0265c
.align 2 # 0265e
1: mflr r8 # 02660
bl print_string # 02664
addi r9, r1, 0x420 # kdp.0x420 # 02668
mtspr 275/*sprg3*/, r9 # 0266c
# r1 = kdp
b old_world_rfi_to_userspace_boot # 02670
/***********************************************************
undo_failed_kernel_replacement
************************************************************
Inits or reinits the log
************************************************************
Xrefs:
replace_old_kernel
***********************************************************/
undo_failed_kernel_replacement: /* < outside referer */
# r1 = kdp
bl init_log # 02674
bl 1f # 02678
.ascii "Nanokernel NOT replaced. Returning to boot process^n"
.short 0 # 026b0
.align 2 # 026b2
1: mflr r8 # 026b4
bl print_string # 026b8
lwz r8, 0x05a0( r1) # 026bc
mtspr 272/*sprg0*/, r8 # 026c0
addi r9, r8, 0x420 # 026c4
mtspr 275/*sprg3*/, r9 # 026c8
/***********************************************************
old_world_rfi_to_userspace_boot
************************************************************
Xrefs:
setup
undo_failed_kernel_replacement
************************************************************
> r1 = kdp
***********************************************************/
old_world_rfi_to_userspace_boot: /* < outside referer */
lwz r4, 0x0648( r1) # kdp.emu_e8c0 # 026cc
lwz r8, 0x05a4( r1) # kdp.0x5a4 # 026d0
lwz r9, -0x0964( r1) # kdp.-0x964 # 026d4
addi r8, r8, 0x26e8 # 026d8
mtspr 26/*srr0*/, r8 # 026dc
mtspr 27/*srr1*/, r9 # 026e0
rfi # 026e4
.long 0x386000ff # 026e8
.long 0x7c8803a6 # 026ec
/***********************************************************
major_0x026f0
***********************************************************/
.long 0x4e800021 # 026f0
/***********************************************************
major_0x026f4
***********************************************************/
.long 0x4800000c # 026f4
.long 0x60000000 # 026f8
.long 0x60000000 # 026fc
/***********************************************************
lock
************************************************************
Gets something from -0x340(ewa)
Lock struct: word@0=count, word@16=holder
Return pretty quick-smart if we get the lock.
If hands must be dirtied, put r22-r31 into EWA.
************************************************************
Xrefs:
major_0x02ccc
major_0x03200
major_0x035a0
major_0x03940
dsi_vector
major_0x04240
major_0x04300
major_0x08640
rtas_call
major_0x0b144
NKRegisterCpuPlugin
major_0x0b3cc
major_0x0b45c
major_0x0b4a4
nk_yield_with_hint
major_0x0b640
major_0x0b664
major_0x0b960
major_0x0ba80
major_0x0bb20
NKStopScheduling
NKRegisterThermalHandler
NKRegisterPMFHandler
NKMarkPMFTask
NKSetClockStep
NKSetClockDriftCorrection
major_0x0c3ac
NKRegisterExternalHandler
major_0x0c52c
major_0x0c5e0
major_0x0c680
major_0x0c778
major_0x0c830
major_0x0c968
major_0x0cac0
major_0x0cb00
major_0x0cb8c
major_0x0cc80
major_0x0ccbc
major_0x0cd9c
major_0x0ce48
major_0x0ced4
major_0x0d010
major_0x0d06c
major_0x0d158
major_0x0d204
major_0x0d278
major_0x0d324
major_0x0d504
major_0x0d678
major_0x0d6b4
major_0x0d70c
major_0x0d798
major_0x0d818
major_0x0d8a0
major_0x0d9a8
major_0x0da20
major_0x0da8c
major_0x0dacc
major_0x0dc0c
major_0x0dc88
major_0x0dd64
major_0x0e284
major_0x0e548
major_0x0e604
major_0x0e76c
major_0x0e894
major_0x0e90c
NKThrowException
major_0x0ea58
major_0x0ec54
major_0x0ec8c
major_0x0f050
major_0x0f288
major_0x0f2b8
NKSetTaskType
major_0x0f7b8
major_0x0f9f8
NKSetTaskAddressSpace
major_0x0fb34
createarea
major_0x10414
major_0x104ec
major_0x1070c
major_0x108fc
NKSetAreaAccess
major_0x10de0
major_0x10e94
major_0x10ee0
major_0x11040
major_0x11098
major_0x11104
major_0x111d4
major_0x11360
major_0x1139c
major_0x11490
NKMapPage
NKUnmapPages
NKMakePhysicallyContiguous
NKLockPages
NKUnlockPages
NKHoldPages
NKUnholdPages
major_0x11ebc
major_0x11fac
major_0x120a8
major_0x12110
major_0x121d4
major_0x12248
boring
looks_like_poolextend
major_0x142a8
major_0x14bcc
interrupt_blue
NKPropogateExternalInterrupt
pdm_pih_01
pbx_pih_03
gazelle_pih_05
tnt_pih_02
gossamer_pih_07
unknown_pih_10
cordyceps_pih_04
newworld_pih_06
unknown_pih_08
print
panic
************************************************************
> r8 = lock
***********************************************************/
lock: /* < outside referer */
lwarx r9, r0, r8 # 02700
cmpwi r9, 0x00 # 02704
mfspr r9, 272/*sprg0*/ # 02708
bne- lock_already_held # 0270c
lwz r9, -0x0340( r9) # kdp.-0x340 # 02710
sync # 02714
stwcx. r9, r0, r8 # 02718
bne+ lock # 0271c
mflr r9 # 02720
stw r9, 0x0010( r8) # lock.holder # 02724
isync # 02728
blr # 0272c
lock_already_held:
stmw r22, -0x0094( r9) # kdp.-0x94 # 02730
mr r22, r9 # 02734
mflr r30 # 02738
mr r31, r8 # 0273c
lwz r29, -0x0340(r22) # 02740
lwz r28, 0x0000(r31) # 02744
stw r30, -0x0098(r22) # 02748
cmpw r28, r29 # 0274c
bne+ lock_0x84 # 02750
bl spinlock_what # 02754
bl 1f # 02758
.ascii "Recursive spinlock ***^n" # 0275c
.short 0 # 02774
.align 2 # 02776
1: mflr r8 # 02778
bl print_string # 0277c
bl panic_wrapper_0x02940 # 02780
lock_0x84:
bl lock_0x184 # 02784
mr r24, r28 # 02788
mr r25, r29 # 0278c
lwz r30, -0x0004(r22) # 02790
mfspr r29, 22/*dec*/ # 02794
lwz r28, -0x0438(r30) # 02798
slwi r28, r28, 3 # 0279c
subf r29, r28, r29 # 027a0
b lock_0xc0 # 027a4
lock_0xa8:
lwz r30, -0x0004(r22) # 027a8
lwz r28, -0x0b30(r30) # 027ac
cmpwi r28, 0x00 # 027b0
beq- lock_0xc0 # 027b4
mfspr r29, 22/*dec*/ # 027b8
addis r29, r29, -0x01 # 027bc
lock_0xc0:
mfspr r28, 22/*dec*/ # 027c0
subf. r28, r29, r28 # 027c4
bgt- lock_0x118 # 027c8
bl spinlock_what # 027cc
bl 1f # 027d0
.ascii "Timeout - locked CpuID " # 027d4
.short 0 # 027eb
.align 2 # 027ed
1: mflr r8 # 027f0
bl print_string # 027f4
mr r8, r30 # 027f8
bl print_hexword_spc # 027fc
bl 1f # 02800
.ascii "***^n" # 02804
.short 0 # 02809
.align 2 # 0280b
1: mflr r8 # 0280c
bl print_string # 02810
bl panic_wrapper_0x02940 # 02814
lock_0x118:
lwz r30, 0x0000(r31) # 02818
cmpwi r30, 0x00 # 0281c
bne+ lock_0xa8 # 02820
lock_0x124:
lwarx r30, r0, r31 # 02824
cmpwi r30, 0x00 # 02828
bne+ lock_0xa8 # 0282c
lwz r30, -0x0340(r22) # 02830
sync # 02834
stwcx. r30, r0, r31 # 02838
bne+ lock_0x124 # 0283c
mfxer r30 # 02840
bl lock_0x184 # 02844
lwz r27, -0x0098(r22) # 02848
subfc r29, r25, r29 # 0284c
lwz r25, 0x000c(r31) # 02850
subfe r28, r24, r28 # 02854
lwz r24, 0x0008(r31) # 02858
addc r25, r25, r29 # 0285c
adde r24, r24, r28 # 02860
stw r25, 0x000c(r31) # 02864
stw r24, 0x0008(r31) # 02868
mtlr r27 # 0286c
stw r27, 0x0010(r31) # 02870
mtxer r30 # 02874
mr r8, r22 # 02878
lmw r22, -0x0094( r8) # lock.-0x94 # 0287c
blr # 02880
lock_0x184:
mftbu r28 # 02884
mftb r29, 0x10c # 02888
mftbu r27 # 0288c
cmpw r28, r27 # 02890
beqlr+ # 02894
b lock_0x184 # 02898
/***********************************************************
spinlock_what
************************************************************
Xrefs:
lock
***********************************************************/
spinlock_what: /* < outside referer */
mfspr r28, 272/*sprg0*/ # 0289c
mflr r27 # 028a0
lwz r29, -0x0340(r28) # 028a4
bl 1f # 028a8
.ascii "^n*** On CPU " # 028ac
.short 0 # 028b9
.align 2 # 028bb
1: mflr r8 # 028bc
bl print_string # 028c0
mr r8, r29 # 028c4
bl print_hexword_spc # 028c8
bl 1f # 028cc
.ascii "spinlock 0x" # 028d0
.short 0 # 028db
.align 2 # 028dd
1: mflr r8 # 028e0
bl print_string # 028e4
mr r8, r31 # 028e8
bl print_hexword_spc # 028ec
lwz r8, 0x0004(r31) # 028f0
rotlwi r8, r8, 0x08 # 028f4
bl print_char # 028f8
rotlwi r8, r8, 0x08 # 028fc
bl print_char # 02900
rotlwi r8, r8, 0x08 # 02904
bl print_char # 02908
rotlwi r8, r8, 0x08 # 0290c
bl print_char # 02910
lwz r29, -0x0098(r28) # 02914
bl 1f # 02918
.ascii " caller 0x" # 0291c
.short 0 # 02926
.align 2 # 02928
1: mflr r8 # 02928
bl print_string # 0292c
mr r8, r29 # 02930
bl print_hexword_spc # 02934
mtlr r27 # 02938
blr # 0293c
/***********************************************************
panic_wrapper_0x02940
************************************************************
Xrefs:
setup
lock
***********************************************************/
panic_wrapper_0x02940: /* < outside referer */
b panic # 02940
/***********************************************************
major_0x02944
***********************************************************/
.long 0x4800001c # 02944
.long 0x60000000 # 02948
.long 0x60000000 # 0294c
.long 0x60000000 # 02950
.long 0x60000000 # 02954
.long 0x60000000 # 02958
.long 0x60000000 # 0295c
/***********************************************************
panic_wrapper_0x02960
************************************************************
Xrefs:
major_0x02ccc
major_0x035a0
regsave_debug
major_0x046e0
***********************************************************/
panic_wrapper_0x02960: /* < outside referer */
b panic # 02960
/***********************************************************
major_0x02964
************************************************************
Xrefs:
major_0x02ccc
***********************************************************/
major_0x02964: /* < outside referer */
b major_0x0b0fc # 02964
/***********************************************************
major_0x02968
***********************************************************/
.long 0x48000018 # 02968
.long 0x60000000 # 0296c
.long 0x60000000 # 02970
.long 0x60000000 # 02974
.long 0x60000000 # 02978
.long 0x60000000 # 0297c
/***********************************************************
major_0x02980
************************************************************
Xrefs:
major_0x02ccc
major_0x03460
major_0x035a0
major_0x03940
major_0x03be0
major_0x04180
major_0x043a0
major_0x046d0
major_0x046e0
major_0x04700
major_0x04b60
major_0x05808
major_0x06a14
***********************************************************/
major_0x02980: /* < outside referer */
mfspr r1, 272/*sprg0*/ # 02980
mtspr 275/*sprg3*/, r24 # 02984
lwz r9, -0x000c( r1) # 02988
rlwinm r23, r17, 31, 27, 31 # 0298c
rlwnm. r9, r9, r8, 0x00, 0x00 # 02990
bsol- cr3, major_0x02980_0x100 # 02994
lwz r6, -0x0014( r1) # 02998
ori r7, r16, 0x10 # 0299c
neg r23, r23 # 029a0
mtcrf 0x3f, r7 # 029a4
add r19, r19, r23 # 029a8
rlwimi r7, r8, 24, 0, 7 # 029ac
lwz r1, -0x0004( r1) # 029b0
slwi r8, r8, 2 # 029b4
add r8, r8, r1 # 029b8
lwz r9, 0x0dc0( r8) # 029bc
addi r9, r9, 0x01 # 029c0
stw r9, 0x0dc0( r8) # 029c4
srwi r9, r7, 24 # 029c8
mfspr r1, 272/*sprg0*/ # 029cc
lwz r8, 0x0000( r1) # 029d0
stw r8, 0x0104( r6) # 029d4
lwz r8, 0x001c( r1) # 029d8
stw r8, 0x013c( r6) # 029dc
lwz r8, 0x0020( r1) # 029e0
stw r8, 0x0144( r6) # 029e4
lwz r8, 0x0024( r1) # 029e8
stw r8, 0x014c( r6) # 029ec
lwz r8, 0x0028( r1) # 029f0
stw r8, 0x0154( r6) # 029f4
lwz r8, 0x002c( r1) # 029f8
stw r8, 0x015c( r6) # 029fc
lwz r8, 0x0030( r1) # 02a00
stw r8, 0x0164( r6) # 02a04
lwz r8, 0x0034( r1) # 02a08
stw r8, 0x016c( r6) # 02a0c
cmpwi cr1, r9, 0x14 # 02a10
blt- cr4, major_0x04a20_0x18 # 02a14
bne- cr2, major_0x02ccc_0x310 # 02a18
blt- major_0x02980_0xa8 # 02a1c
bne- cr1, major_0x02980_0x178 # 02a20
b major_0x02ccc_0x310 # 02a24
major_0x02980_0xa8:
mfspr r1, 272/*sprg0*/ # 02a28
stw r10, 0x0084( r6) # 02a2c
stw r12, 0x008c( r6) # 02a30
stw r3, 0x0094( r6) # 02a34
stw r4, 0x009c( r6) # 02a38
lwz r8, -0x000c( r1) # 02a3c
stw r7, 0x0040( r6) # 02a40
stw r8, 0x0044( r6) # 02a44
li r8, 0x00 # 02a48
lwz r10, 0x004c( r6) # 02a4c
stw r8, -0x000c( r1) # 02a50
lwz r1, -0x0004( r1) # 02a54
lwz r4, 0x0054( r6) # 02a58
lwz r3, 0x0654( r1) # 02a5c
blt- cr2, major_0x02980_0xec # 02a60
lwz r3, 0x05b4( r1) # 02a64
rlwinm r11, r11, 0, 17, 15 # 02a68
major_0x02980_0xec:
lwz r12, 0x0648( r1) # 02a6c
bsol- cr6, major_0x02980_0x114 # 02a70
rlwinm r7, r7, 0, 29, 16 # 02a74
rlwimi r11, r7, 0, 20, 23 # 02a78
b skeleton_key # 02a7c
major_0x02980_0x100:
lwz r2, 0x0008( r1) # 02a80
lwz r3, 0x000c( r1) # 02a84
lwz r4, 0x0010( r1) # 02a88
lwz r5, 0x0014( r1) # 02a8c
blr # 02a90
major_0x02980_0x114: /* < outside referer */
mfspr r8, 272/*sprg0*/ # 02a94
stw r17, 0x0064( r6) # 02a98
stw r20, 0x0068( r6) # 02a9c
stw r21, 0x006c( r6) # 02aa0
stw r19, 0x0074( r6) # 02aa4
stw r18, 0x007c( r6) # 02aa8
lmw r14, 0x0038( r8) # 02aac
blr # 02ab0
major_0x02980_0x134: /* < outside referer */
mfspr r1, 272/*sprg0*/ # 02ab4
mtcrf 0x3f, r7 # 02ab8
lwz r9, -0x000c( r1) # 02abc
lwz r1, -0x0004( r1) # 02ac0
rlwnm. r9, r9, r8, 0x00, 0x00 # 02ac4
rlwimi r7, r8, 24, 0, 7 # 02ac8
slwi r8, r8, 2 # 02acc
add r8, r8, r1 # 02ad0
lwz r9, 0x0dc0( r8) # 02ad4
addi r9, r9, 0x01 # 02ad8
stw r9, 0x0dc0( r8) # 02adc
srwi r9, r7, 24 # 02ae0
blt- cr4, major_0x04a20_0x18 # 02ae4
bne- cr2, major_0x02ccc_0x2a4 # 02ae8
cmpwi cr1, r9, 0x0c # 02aec
blt+ major_0x02980_0xa8 # 02af0
beq- cr1, major_0x02ccc_0x2a4 # 02af4
major_0x02980_0x178: /* < outside referer */
lwz r1, -0x0004( r1) # 02af8
lwz r9, 0x0658( r1) # 02afc
addi r8, r1, 0x360 # 02b00
mtspr 275/*sprg3*/, r8 # 02b04
bltl- cr2, major_0x02ccc_0x108 # 02b08
major_0x02980_0x18c: /* < outside referer */
mfspr r1, 272/*sprg0*/ # 02b0c
lwz r8, -0x000c( r1) # 02b10
stw r7, 0x0000( r6) # 02b14
stw r8, 0x0004( r6) # 02b18
bns- cr6, major_0x02980_0x1b8 # 02b1c
stw r17, 0x0024( r6) # 02b20
stw r20, 0x0028( r6) # 02b24
stw r21, 0x002c( r6) # 02b28
stw r19, 0x0034( r6) # 02b2c
stw r18, 0x003c( r6) # 02b30
lmw r14, 0x0038( r1) # 02b34
major_0x02980_0x1b8:
mfxer r8 # 02b38
stw r13, 0x00dc( r6) # 02b3c
stw r8, 0x00d4( r6) # 02b40
stw r12, 0x00ec( r6) # 02b44
mfctr r8 # 02b48
stw r10, 0x00fc( r6) # 02b4c
stw r8, 0x00f4( r6) # 02b50
ble- cr3, major_0x02980_0x1e8 # 02b54
lwz r8, 0x00c4( r9) # 02b58
mfspr r12, 0/*mq*/ # 02b5c
mtspr 0/*mq*/, r8 # 02b60
stw r12, 0x00c4( r6) # 02b64
major_0x02980_0x1e8:
lwz r8, 0x0004( r1) # 02b68
stw r8, 0x010c( r6) # 02b6c
stw r2, 0x0114( r6) # 02b70
stw r3, 0x011c( r6) # 02b74
stw r4, 0x0124( r6) # 02b78
lwz r8, 0x0018( r1) # 02b7c
stw r5, 0x012c( r6) # 02b80
stw r8, 0x0134( r6) # 02b84
stw r14, 0x0174( r6) # 02b88
stw r15, 0x017c( r6) # 02b8c
stw r16, 0x0184( r6) # 02b90
stw r17, 0x018c( r6) # 02b94
stw r18, 0x0194( r6) # 02b98
stw r19, 0x019c( r6) # 02b9c
stw r20, 0x01a4( r6) # 02ba0
stw r21, 0x01ac( r6) # 02ba4
stw r22, 0x01b4( r6) # 02ba8
stw r23, 0x01bc( r6) # 02bac
stw r24, 0x01c4( r6) # 02bb0
stw r25, 0x01cc( r6) # 02bb4
stw r26, 0x01d4( r6) # 02bb8
andi. r8, r11, 0x2000 # 02bbc
stw r27, 0x01dc( r6) # 02bc0
stw r28, 0x01e4( r6) # 02bc4
stw r29, 0x01ec( r6) # 02bc8
stw r30, 0x01f4( r6) # 02bcc
stw r31, 0x01fc( r6) # 02bd0
bnel- major_0x03da0_0x12c # 02bd4
bge- cr3, major_0x02980_0x260 # 02bd8
bl major_0x13c90 # 02bdc
major_0x02980_0x260:
stw r11, 0x00a4( r6) # 02be0
lwz r8, 0x0000( r9) # 02be4
stw r9, -0x0014( r1) # 02be8
xoris r7, r7, 0x80 # 02bec
rlwimi r11, r8, 0, 20, 23 # 02bf0
mr r6, r9 # 02bf4
rlwimi r7, r8, 0, 17, 31 # 02bf8
andi. r8, r11, 0x900 # 02bfc
lwz r8, 0x0004( r6) # 02c00
lwz r13, 0x00dc( r6) # 02c04
stw r8, -0x000c( r1) # 02c08
lwz r8, 0x00d4( r6) # 02c0c
lwz r12, 0x00ec( r6) # 02c10
mtxer r8 # 02c14
lwz r8, 0x00f4( r6) # 02c18
lwz r10, 0x00fc( r6) # 02c1c
mtctr r8 # 02c20
bnel- major_0x03da0_0x80 # 02c24
lwarx r8, r0, r1 # 02c28
sync # 02c2c
stwcx. r8, r0, r1 # 02c30
lwz r29, 0x00d8( r6) # 02c34
lwz r8, 0x010c( r6) # 02c38
cmpwi r29, 0x00 # 02c3c
stw r8, 0x0004( r1) # 02c40
lwz r28, 0x0210(r29) # 02c44
beq- major_0x02980_0x2d0 # 02c48
mtspr 256/*vrsave*/, r28 # 02c4c
major_0x02980_0x2d0:
lwz r2, 0x0114( r6) # 02c50
lwz r3, 0x011c( r6) # 02c54
lwz r4, 0x0124( r6) # 02c58
lwz r8, 0x0134( r6) # 02c5c
lwz r5, 0x012c( r6) # 02c60
stw r8, 0x0018( r1) # 02c64
lwz r14, 0x0174( r6) # 02c68
lwz r15, 0x017c( r6) # 02c6c
lwz r16, 0x0184( r6) # 02c70
lwz r17, 0x018c( r6) # 02c74
lwz r18, 0x0194( r6) # 02c78
lwz r19, 0x019c( r6) # 02c7c
lwz r20, 0x01a4( r6) # 02c80
lwz r21, 0x01ac( r6) # 02c84
lwz r22, 0x01b4( r6) # 02c88
lwz r23, 0x01bc( r6) # 02c8c
lwz r24, 0x01c4( r6) # 02c90
lwz r25, 0x01cc( r6) # 02c94
lwz r26, 0x01d4( r6) # 02c98
lwz r27, 0x01dc( r6) # 02c9c
lwz r28, 0x01e4( r6) # 02ca0
lwz r29, 0x01ec( r6) # 02ca4
lwz r30, 0x01f4( r6) # 02ca8
lwz r31, 0x01fc( r6) # 02cac
/***********************************************************
skeleton_key
************************************************************
Called when a Gary reset trap is called. When else?
************************************************************
Xrefs:
major_0x02980
major_0x03200
major_0x03940
major_0x03be0
major_0x04240
major_0x04300
major_0x043a0
reset_trap
major_0x04700
major_0x04880
major_0x08794
major_0x09dfc
major_0x0a600
rtas_call
major_0x0a8c0
syscall_return
interrupt_blue
***********************************************************/
skeleton_key: /* < outside referer */
andi. r8, r7, 0x30 # 02cb0
mfspr r1, 272/*sprg0*/ # 02cb4
bnel- major_0x02ccc # 02cb8
li r8, 0x00 # 02cbc
stw r7, -0x0010( r1) # 02cc0
stw r8, -0x0114( r1) # 02cc4
b major_0x142a8 # 02cc8
/***********************************************************
major_0x02ccc
************************************************************
Xrefs:
major_0x02980
skeleton_key
***********************************************************/
major_0x02ccc: /* < outside referer */
mtcrf 0x3f, r7 # 02ccc
bns- cr6, major_0x02ccc_0x18 # 02cd0
rlwinm r7, r7, 0, 28, 26 # 02cd4
bso- cr7, major_0x02ccc_0x30 # 02cd8
rlwinm r7, r7, 0, 27, 25 # 02cdc
b major_0x02ccc_0x2c # 02ce0
major_0x02ccc_0x18:
bne- cr6, major_0x02ccc_0x2c # 02ce4
rlwinm r7, r7, 0, 27, 25 # 02ce8
stw r7, -0x0010( r1) # 02cec
li r8, 0x08 # 02cf0
b major_0x02980_0x134 # 02cf4
major_0x02ccc_0x2c:
blr # 02cf8
major_0x02ccc_0x30:
rlwinm. r8, r7, 0, 8, 8 # 02cfc
beq- major_0x02ccc_0x108 # 02d00
stw r7, -0x0010( r1) # 02d04
lwz r8, 0x0104( r6) # 02d08
stw r8, 0x0000( r1) # 02d0c
stw r2, 0x0008( r1) # 02d10
stw r3, 0x000c( r1) # 02d14
stw r4, 0x0010( r1) # 02d18
stw r5, 0x0014( r1) # 02d1c
lwz r8, 0x013c( r6) # 02d20
stw r8, 0x001c( r1) # 02d24
lwz r8, 0x0144( r6) # 02d28
stw r8, 0x0020( r1) # 02d2c
lwz r8, 0x014c( r6) # 02d30
stw r8, 0x0024( r1) # 02d34
lwz r8, 0x0154( r6) # 02d38
stw r8, 0x0028( r1) # 02d3c
lwz r8, 0x015c( r6) # 02d40
stw r8, 0x002c( r1) # 02d44
lwz r8, 0x0164( r6) # 02d48
stw r8, 0x0030( r1) # 02d4c
lwz r8, 0x016c( r6) # 02d50
stw r8, 0x0034( r1) # 02d54
stmw r14, 0x0038( r1) # 02d58
lwz r8, -0x0004( r1) # 02d5c
lwz r17, 0x0024( r9) # 02d60
lwz r20, 0x0028( r9) # 02d64
lwz r21, 0x002c( r9) # 02d68
lwz r19, 0x0034( r9) # 02d6c
lwz r18, 0x003c( r9) # 02d70
rlwinm r16, r7, 0, 28, 26 # 02d74
lwz r25, 0x0650( r8) # 02d78
rlwinm. r22, r17, 31, 27, 31 # 02d7c
add r19, r19, r22 # 02d80
rlwimi r25, r17, 7, 25, 30 # 02d84
lhz r26, 0x0d20(r25) # 02d88
rlwimi r25, r19, 1, 28, 30 # 02d8c
stw r16, -0x0010( r1) # 02d90
rlwimi r26, r26, 8, 8, 15 # 02d94
rlwimi r25, r17, 4, 23, 27 # 02d98
mtcrf 0x10, r26 # 02d9c
lha r22, 0x0c00(r25) # 02da0
addi r23, r8, 0x4e0 # 02da4
add r22, r22, r25 # 02da8
mfspr r24, 275/*sprg3*/ # 02dac
mtlr r22 # 02db0
mtspr 275/*sprg3*/, r23 # 02db4
mfmsr r14 # 02db8
ori r15, r14, 0x10 # 02dbc
mtmsr r15 # 02dc0
isync # 02dc4
rlwimi r25, r26, 2, 22, 29 # 02dc8
bnelr- # 02dcc
b major_0x05808_0x114 # 02dd0
major_0x02ccc_0x108: /* < outside referer */
# r6 = ewa
bl save_registers_from_r14 # 02dd4
# r8 = sprg0 (not used by me)
lwz r31, -0x0008( r8) # 02dd8
lwz r8, 0x00f4(r31) # 02ddc
# r8 = id
bl id_kind # 02de0
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x04 # 02de4
mr r30, r8 # 02de8
bnel- major_0x02ccc_0x20c # 02dec
lwz r28, 0x0028(r30) # 02df0
cmpwi r28, 0x00 # 02df4
beql- major_0x02ccc_0x20c # 02df8
mr r8, r8 # 02dfc
mr r9, r9 # 02e00
addi r8, r1, -0xb50 # 02e04
# r8 = lock
bl lock # 02e08
mr r8, r8 # 02e0c
mr r9, r9 # 02e10
lwz r29, 0x0064(r31) # 02e14
ori r29, r29, 0x200 # 02e18
ori r29, r29, 0x1000 # 02e1c
stw r29, 0x0064(r31) # 02e20
lwz r17, 0x0008(r28) # 02e24
stw r17, 0x0028(r30) # 02e28
lwz r17, 0x0000(r31) # 02e2c
stw r17, 0x0010(r28) # 02e30
li r18, -0x7271 # 02e34
stw r18, 0x0014(r28) # 02e38
stw r18, 0x00f8(r31) # 02e3c
stw r10, 0x0018(r28) # 02e40
bl 1f # 02e44
.ascii "Blue task suspended. Notifying exception handler - srr1/0 "
.short 0 # 02e82
.align 2 # 02e84
1: mflr r8 # 02e84
bl print_string # 02e88
mr r8, r11 # 02e8c
bl print_hexword_spc # 02e90
mr r8, r10 # 02e94
bl print_hexword_spc # 02e98
bl 1f # 02e9c
.ascii "lr " # 02ea0
.short 0 # 02ea3
.align 2 # 02ea5
1: mflr r8 # 02ea8
bl print_string # 02eac
mr r8, r12 # 02eb0
bl print_hexword_spc # 02eb4
bl 1f # 02eb8
.ascii "^n" # 02ebc
.short 0 # 02ebe
.align 2 # 02ec0
1: mflr r8 # 02ec0
bl print_string # 02ec4
mr r31, r30 # 02ec8
mr r8, r28 # 02ecc
bl major_0x0c8b4 # 02ed0
b major_0x142dc # 02ed4
major_0x02ccc_0x20c:
mflr r16 # 02ed8
bl 1f # 02edc
.ascii "Blue task terminated - no exception handler registered - srr1/0 "
.short 0 # 02f20
.align 2 # 02f22
1: mflr r8 # 02f24
bl print_string # 02f28
mr r8, r11 # 02f2c
bl print_hexword_spc # 02f30
mr r8, r10 # 02f34
bl print_hexword_spc # 02f38
bl 1f # 02f3c
.ascii "lr " # 02f40
.short 0 # 02f43
.align 2 # 02f45
1: mflr r8 # 02f48
bl print_string # 02f4c
mr r8, r12 # 02f50
bl print_hexword_spc # 02f54
bl 1f # 02f58
.ascii "^n" # 02f5c
.short 0 # 02f5e
.align 2 # 02f60
1: mflr r8 # 02f60
bl print_string # 02f64
mtlr r16 # 02f68
b panic_wrapper_0x02960 # 02f6c
major_0x02ccc_0x2a4: /* < outside referer */
bsol+ cr6, panic_wrapper_0x02960 # 02f70
# r6 = ewa
bl save_registers_from_r14 # 02f74
# r8 = sprg0 (not used by me)
mr r30, r10 # 02f78
lwz r29, 0x0018( r8) # 02f7c
lwz r31, -0x0008( r8) # 02f80
stw r29, 0x0134( r6) # 02f84
stw r30, 0x0074( r6) # 02f88
stw r7, 0x0040( r6) # 02f8c
lwz r1, -0x0004( r1) # 02f90
mr r28, r8 # 02f94
mr r29, r9 # 02f98
addi r8, r1, -0xb50 # 02f9c
# r8 = lock
bl lock # 02fa0
mr r8, r28 # 02fa4
mr r9, r29 # 02fa8
mr r8, r31 # 02fac
bl major_0x13e4c # 02fb0
lwz r16, 0x0064(r31) # 02fb4
srwi r8, r7, 24 # 02fb8
rlwinm. r16, r16, 0, 9, 9 # 02fbc
cmpwi cr1, r8, 0x0c # 02fc0
bne- major_0x02ccc_0x524 # 02fc4
bne- cr1, major_0x02ccc_0x524 # 02fc8
lwz r8, 0x00e0(r31) # 02fcc
addi r8, r8, 0x01 # 02fd0
stw r8, 0x00e0(r31) # 02fd4
b major_0x02ccc_0x380 # 02fd8
major_0x02ccc_0x310: /* < outside referer */
bnsl+ cr6, panic_wrapper_0x02960 # 02fdc
bl major_0x02980_0x114 # 02fe0
stw r10, 0x0084( r6) # 02fe4
rlwinm r7, r7, 0, 28, 26 # 02fe8
# r6 = ewa
bl save_registers_from_r14 # 02fec
# r8 = sprg0 (not used by me)
lwz r30, 0x0074( r6) # 02ff0
lwz r29, 0x0018( r8) # 02ff4
lwz r31, -0x0008( r8) # 02ff8
stw r29, 0x0134( r6) # 02ffc
stw r7, 0x0040( r6) # 03000
lwz r1, -0x0004( r1) # 03004
mr r28, r8 # 03008
mr r29, r9 # 0300c
addi r8, r1, -0xb50 # 03010
# r8 = lock
bl lock # 03014
mr r8, r28 # 03018
mr r9, r29 # 0301c
mr r8, r31 # 03020
bl major_0x13e4c # 03024
lwz r16, 0x0064(r31) # 03028
srwi r8, r7, 24 # 0302c
rlwinm. r16, r16, 0, 9, 9 # 03030
cmpwi cr1, r8, 0x14 # 03034
bne- major_0x02ccc_0x524 # 03038
bne- cr1, major_0x02ccc_0x524 # 0303c
lwz r8, 0x00e4(r31) # 03040
addi r8, r8, 0x01 # 03044
stw r8, 0x00e4(r31) # 03048
major_0x02ccc_0x380:
mfspr r14, 272/*sprg0*/ # 0304c
rlwinm r7, r7, 0, 27, 25 # 03050
rlwinm r7, r7, 0, 0, 30 # 03054
lwz r29, -0x00e4(r14) # 03058
lis r17, 0x4152 # 0305c
ori r17, r17, 0x4541 # 03060
lwz r16, 0x0004(r29) # 03064
cmplw r16, r17 # 03068
bnel+ panic_wrapper_0x02960 # 0306c
lwz r17, 0x0034(r29) # 03070
addi r17, r17, 0x01 # 03074
stw r17, 0x0034(r29) # 03078
lwz r8, 0x0018(r29) # 0307c
# r8 = id
bl id_kind # 03080
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
lwz r16, 0x06b4( r1) # 03084
cmpwi r9, 0x0c # 03088
cmpwi cr1, r16, 0x00 # 0308c
mr r26, r8 # 03090
bne- major_0x02ccc_0x430 # 03094
beq- cr1, major_0x02ccc_0x3d4 # 03098
beq- cr2, major_0x02ccc_0x430 # 0309c
major_0x02ccc_0x3d4:
lwz r16, 0x0064(r31) # 030a0
addi r17, r31, 0x08 # 030a4
addi r18, r31, 160 # 030a8
stw r18, 0x0000(r17) # 030ac
stw r18, 0x0008(r17) # 030b0
lwz r19, 0x000c(r18) # 030b4
stw r19, 0x000c(r17) # 030b8
stw r17, 0x0008(r19) # 030bc
stw r17, 0x000c(r18) # 030c0
li r17, 0x01 # 030c4
ori r16, r16, 0x2000 # 030c8
stw r17, 0x00b0(r31) # 030cc
stw r16, 0x0064(r31) # 030d0
rlwinm r30, r30, 0, 0, 19 # 030d4
lwz r27, 0x0000(r29) # 030d8
lwz r28, 0x0000(r31) # 030dc
stw r30, 0x0010(r26) # 030e0
stw r27, 0x0014(r26) # 030e4
stw r28, 0x0018(r26) # 030e8
mr r30, r26 # 030ec
bl major_0x0db04 # 030f0
cmpwi r8, 0x00 # 030f4
beq+ major_0x02964 # 030f8
major_0x02ccc_0x430:
mfcr r28 # 030fc
li r8, 0x1c # 03100
beq- cr2, major_0x02ccc_0x4a8 # 03104
bl boring_with_crset # 03108
mr. r26, r8 # 0310c
beq- major_0x02ccc_0x50c # 03110
addi r17, r31, 0x08 # 03114
addi r18, r31, 160 # 03118
stw r18, 0x0000(r17) # 0311c
stw r18, 0x0008(r17) # 03120
lwz r19, 0x000c(r18) # 03124
stw r19, 0x000c(r17) # 03128
stw r17, 0x0008(r19) # 0312c
stw r17, 0x000c(r18) # 03130
li r17, 0x01 # 03134
stw r17, 0x00b0(r31) # 03138
lwz r27, 0x0000(r29) # 0313c
lis r8, 0x6e6f # 03140
ori r8, r8, 0x7465 # 03144
lwz r29, 0x00a0(r31) # 03148
stw r27, 0x0010(r26) # 0314c
stw r29, 0x0014(r26) # 03150
stw r8, 0x0004(r26) # 03154
stw r30, 0x0018(r26) # 03158
mr r8, r26 # 0315c
addi r31, r1, -0xa24 # 03160
bl major_0x0c8b4 # 03164
lwz r8, -0x0410( r1) # 03168
bl major_0x0dce8 # 0316c
b major_0x0b0fc # 03170
major_0x02ccc_0x4a8:
mr r8, r31 # 03174
bl major_0x13ed8_0x8 # 03178
sync # 0317c
lwz r31, -0x0b50( r1) # 03180
cmpwi cr1, r31, 0x00 # 03184
li r31, 0x00 # 03188
bne+ cr1, major_0x02ccc_0x4cc # 0318c
mflr r31 # 03190
bl panic # 03194
major_0x02ccc_0x4cc:
stw r31, -0x0b50( r1) # 03198
mtcr r28 # 0319c
bns- cr6, major_0x02ccc_0x504 # 031a0
lwz r8, 0x0064( r6) # 031a4
lwz r9, 0x0068( r6) # 031a8
stw r8, 0x0024( r6) # 031ac
stw r9, 0x0028( r6) # 031b0
lwz r8, 0x006c( r6) # 031b4
lwz r9, 0x0074( r6) # 031b8
stw r8, 0x002c( r6) # 031bc
stw r9, 0x0034( r6) # 031c0
lwz r8, 0x007c( r6) # 031c4
stw r8, 0x003c( r6) # 031c8
crclr 4*cr6 + so # 031cc
major_0x02ccc_0x504:
# r6 = ewa
bl restore_registers_from_r14 # 031d0
b major_0x02980_0x178 # 031d4
major_0x02ccc_0x50c:
li r16, 0x02 # 031d8
stb r16, 0x0019(r31) # 031dc
mr r8, r31 # 031e0
bl major_0x13ed8_0x8 # 031e4
bl major_0x14af8_0xa0 # 031e8
b major_0x0b0fc # 031ec
major_0x02ccc_0x524:
b major_0x0ea58_0xe4 # 031f0
/***********************************************************
major_0x031f4
***********************************************************/
.long 0x4800000c # 031f4
.long 0x60000000 # 031f8
.long 0x60000000 # 031fc
/***********************************************************
major_0x03200
************************************************************
Xrefs:
"lisori_caller"
***********************************************************/
major_0x03200: /* < outside referer */
# r6 = saved at *(ewa + 0x18)
# sprg1 = saved at *(ewa + 4)
# rN (0,7,8,9,10,11,12,13, not r1) = saved at *(*(ewa - 0x14) + 0x104 + 8*N)
bl int_prepare # 03200
# r0 = 0
# r1 = *(ewa - 4)
# r6 = kdp
# r7 = *(ewa - 0x10) # flags?
# r8 = ewa
# r10 = srr0
# r11 = srr1
# r12 = sprg2
# r13 = cr
lwz r8, 0x05a0( r1) # 03204
rlwinm. r9, r11, 0, 16, 16 # 03208
cmpwi cr1, r8, 0x00 # 0320c
beq- major_0x03940_0x170 # 03210
beq- cr1, major_0x03200_0x54 # 03214
stw r16, 0x0184( r6) # 03218
stw r17, 0x018c( r6) # 0321c
stw r18, 0x0194( r6) # 03220
stw r25, 0x01cc( r6) # 03224
bl major_0x14a98 # 03228
ble- major_0x03200_0x48 # 0322c
lwz r8, -0x09d4( r1) # 03230
mtspr 22/*dec*/, r8 # 03234
lwz r16, 0x0184( r6) # 03238
lwz r17, 0x018c( r6) # 0323c
lwz r18, 0x0194( r6) # 03240
b skeleton_key # 03244
major_0x03200_0x48:
lwz r16, 0x0184( r6) # 03248
lwz r17, 0x018c( r6) # 0324c
lwz r18, 0x0194( r6) # 03250
major_0x03200_0x54:
# r6 = ewa
bl save_registers_from_r14 # 03254
# r8 = sprg0 (not used by me)
mr r8, r8 # 03258
mr r9, r9 # 0325c
addi r8, r1, -0xb50 # 03260
# r8 = lock
bl lock # 03264
mr r8, r8 # 03268
mr r9, r9 # 0326c
lwz r8, 0x0e8c( r1) # 03270
addi r8, r8, 0x01 # 03274
stw r8, 0x0e8c( r1) # 03278
bl major_0x12e88_0x24 # 0327c
sync # 03280
lwz r8, -0x0b50( r1) # 03284
cmpwi cr1, r8, 0x00 # 03288
li r8, 0x00 # 0328c
bne+ cr1, major_0x03200_0x9c # 03290
mflr r8 # 03294
bl panic # 03298
major_0x03200_0x9c:
stw r8, -0x0b50( r1) # 0329c
# r6 = ewa
bl restore_registers_from_r14 # 032a0
b skeleton_key # 032a4
/***********************************************************
major_0x032a8
***********************************************************/
.long 0x48000018 # 032a8
.long 0x60000000 # 032ac
.long 0x60000000 # 032b0
.long 0x60000000 # 032b4
.long 0x60000000 # 032b8
.long 0x60000000 # 032bc
/***********************************************************
major_0x032c0
************************************************************
Xrefs:
"lisori_caller"
major_0x06a14
***********************************************************/
major_0x032c0: /* < outside referer */
mfspr r1, 272/*sprg0*/ # 032c0
stmw r2, 0x0008( r1) # 032c4
mfspr r11, 273/*sprg1*/ # 032c8
stw r0, 0x0000( r1) # 032cc
stw r11, 0x0004( r1) # 032d0
li r0, 0x00 # 032d4
mfspr r10, 26/*srr0*/ # 032d8
mfspr r11, 27/*srr1*/ # 032dc
mfspr r12, 274/*sprg2*/ # 032e0
mfcr r13 # 032e4
mfspr r24, 275/*sprg3*/ # 032e8
lwz r16, -0x0010( r1) # 032ec
lwz r1, -0x0004( r1) # 032f0
mfspr r26, 18/*dsisr*/ # 032f4
addi r23, r1, 0x4e0 # 032f8
andis. r28, r26, 0x400 # 032fc
mtspr 275/*sprg3*/, r23 # 03300
mfmsr r14 # 03304
bne- major_0x032c0_0x100 # 03308
ori r15, r14, 0x10 # 0330c
mtmsr r15 # 03310
isync # 03314
lwz r27, 0x0000(r10) # 03318
mtmsr r14 # 0331c
isync # 03320
major_0x032c0_0x64: /* < outside referer */
rlwinm. r18, r27, 18, 25, 29 # 03324
lwz r25, 0x0650( r1) # 03328
li r21, 0x00 # 0332c
mfspr r1, 272/*sprg0*/ # 03330
beq- major_0x032c0_0x7c # 03334
lwzx r18, r1, r18 # 03338
major_0x032c0_0x7c:
andis. r26, r27, 0xec00 # 0333c
lwz r16, -0x0010( r1) # 03340
rlwinm r17, r27, 0, 6, 15 # 03344
rlwimi r16, r16, 27, 26, 26 # 03348
bge- major_0x032c0_0xbc # 0334c
rlwimi r25, r27, 7, 26, 29 # 03350
rlwimi r25, r27, 12, 25, 25 # 03354
lwz r26, 0x0b80(r25) # 03358
extsh r23, r27 # 0335c
rlwimi r25, r26, 26, 22, 29 # 03360
mtlr r25 # 03364
mtcr r26 # 03368
add r18, r18, r23 # 0336c
crclr 4*cr5 + so # 03370
rlwimi r17, r26, 6, 26, 5 # 03374
blr # 03378
major_0x032c0_0xbc:
rlwimi r25, r27, 27, 26, 29 # 0337c
rlwimi r25, r27, 0, 25, 25 # 03380
rlwimi r25, r27, 6, 23, 24 # 03384
rlwimi r25, r27, 4, 22, 22 # 03388
lwz r26, 0x0800(r25) # 0338c
rlwinm r23, r27, 23, 25, 29 # 03390
rlwimi r25, r26, 26, 22, 29 # 03394
mtlr r25 # 03398
mtcr r26 # 0339c
lwzx r23, r1, r23 # 033a0
crclr 4*cr5 + so # 033a4
rlwimi r17, r26, 6, 26, 5 # 033a8
add r18, r18, r23 # 033ac
blelr- cr3 # 033b0
neg r23, r23 # 033b4
add r18, r18, r23 # 033b8
blr # 033bc
major_0x032c0_0x100:
ori r15, r14, 0x10 # 033c0
mr r28, r16 # 033c4
mfspr r18, 19/*dar*/ # 033c8
mfspr r19, 18/*dsisr*/ # 033cc
mtmsr r15 # 033d0
isync # 033d4
lwz r27, 0x0000(r10) # 033d8
mtmsr r14 # 033dc
isync # 033e0
mtspr 275/*sprg3*/, r24 # 033e4
lwz r1, -0x0004( r1) # 033e8
mr r31, r19 # 033ec
mr r8, r18 # 033f0
li r9, 0x00 # 033f4
bl major_0x12248_0x38c # 033f8
mr r16, r28 # 033fc
crset 4*cr3 + so # 03400
mfspr r1, 272/*sprg0*/ # 03404
beq- major_0x032c0_0x190 # 03408
mr r18, r8 # 0340c
rlwinm r28, r27, 13, 25, 29 # 03410
andis. r9, r31, 0x200 # 03414
rlwimi r18, r17, 0, 0, 19 # 03418
beq- major_0x032c0_0x17c # 0341c
lwzx r31, r1, r28 # 03420
stwcx. r31, r0, r18 # 03424
sync # 03428
dcbf r0, r18 # 0342c
mfcr r31 # 03430
rlwimi r13, r31, 0, 0, 3 # 03434
b major_0x06000_0x5a0 # 03438
major_0x032c0_0x17c:
lwarx r31, r0, r18 # 0343c
sync # 03440
dcbf r0, r18 # 03444
stwx r31, r1, r28 # 03448
b major_0x06000_0x5a0 # 0344c
major_0x032c0_0x190:
addi r10, r10, -0x04 # 03450
b major_0x06000_0x5a0 # 03454
/***********************************************************
major_0x03458
***********************************************************/
.long 0x60000000 # 03458
.long 0x60000000 # 0345c
/***********************************************************
major_0x03460
************************************************************
Xrefs:
"lisori_caller"
major_0x05808
***********************************************************/
major_0x03460: /* < outside referer */
mfspr r1, 272/*sprg0*/ # 03460
stmw r2, 0x0008( r1) # 03464
mfspr r11, 273/*sprg1*/ # 03468
stw r0, 0x0000( r1) # 0346c
stw r11, 0x0004( r1) # 03470
li r0, 0x00 # 03474
lwz r11, -0x0008( r1) # 03478
lwz r16, -0x0010( r1) # 0347c
lwz r21, 0x0064(r11) # 03480
lwz r1, -0x0004( r1) # 03484
lwz r11, 0x0e84( r1) # 03488
addi r11, r11, 0x01 # 0348c
stw r11, 0x0e84( r1) # 03490
mfspr r10, 26/*srr0*/ # 03494
mfspr r11, 27/*srr1*/ # 03498
mfspr r12, 274/*sprg2*/ # 0349c
mfcr r13 # 034a0
mfspr r24, 275/*sprg3*/ # 034a4
mfspr r27, 18/*dsisr*/ # 034a8
mfspr r18, 19/*dar*/ # 034ac
rlwinm. r21, r21, 0, 9, 9 # 034b0
addi r23, r1, 0x4e0 # 034b4
bne- major_0x03460_0x108 # 034b8
clrlwi. r21, r11, 0x1f # 034bc
lwz r25, 0x0650( r1) # 034c0
bne- major_0x03460_0x108 # 034c4
rlwinm. r21, r27, 17, 30, 31 # 034c8
rlwinm r17, r27, 16, 6, 15 # 034cc
mfspr r1, 272/*sprg0*/ # 034d0
rlwimi r25, r27, 24, 23, 29 # 034d4
rlwimi r16, r16, 27, 26, 26 # 034d8
bne- major_0x03460_0xa4 # 034dc
lwz r26, 0x0b80(r25) # 034e0
mfmsr r14 # 034e4
rlwimi r25, r26, 26, 22, 29 # 034e8
mtlr r25 # 034ec
ori r15, r14, 0x10 # 034f0
mtcr r26 # 034f4
rlwimi r17, r26, 6, 26, 5 # 034f8
crclr 4*cr5 + so # 034fc
blr # 03500
major_0x03460_0xa4:
lwz r26, 0x0a00(r25) # 03504
mfmsr r14 # 03508
mtspr 275/*sprg3*/, r23 # 0350c
rlwimi r25, r26, 26, 22, 29 # 03510
mtlr r25 # 03514
ori r15, r14, 0x10 # 03518
mtcr r26 # 0351c
rlwimi r17, r26, 6, 26, 5 # 03520
crclr 4*cr5 + so # 03524
bgelr- cr3 # 03528
mtmsr r15 # 0352c
isync # 03530
lwz r27, 0x0000(r10) # 03534
mtmsr r14 # 03538
isync # 0353c
mtspr 275/*sprg3*/, r24 # 03540
blr # 03544
major_0x03460_0xe8: /* < outside referer */
sync # 03548
mtmsr r14 # 0354c
isync # 03550
mflr r23 # 03554
icbi r0, r23 # 03558
sync # 0355c
isync # 03560
blr # 03564
major_0x03460_0x108:
li r8, 0x00 # 03568
lis r17, -0x100 # 0356c
mtcr r8 # 03570
mr r19, r18 # 03574
rlwimi r17, r27, 7, 31, 31 # 03578
xori r17, r17, 0x01 # 0357c
li r8, 0x18 # 03580
b major_0x02980 # 03584
/***********************************************************
major_0x03588
***********************************************************/
.long 0x48000018 # 03588
.long 0x60000000 # 0358c
.long 0x60000000 # 03590
.long 0x60000000 # 03594
.long 0x60000000 # 03598
.long 0x60000000 # 0359c
/***********************************************************
major_0x035a0
************************************************************
Xrefs:
"lisori_caller"
***********************************************************/
major_0x035a0: /* < outside referer */
mfspr r1, 272/*sprg0*/ # 035a0
mfspr r31, 18/*dsisr*/ # 035a4
mfspr r27, 19/*dar*/ # 035a8
andis. r28, r31, 0xc030 # 035ac
lwz r1, -0x0004( r1) # 035b0
bne- major_0x035a0_0x1c8 # 035b4
mfspr r30, 27/*srr1*/ # 035b8
andi. r28, r30, 0x4000 # 035bc
mfspr r30, 272/*sprg0*/ # 035c0
beq- major_0x035a0_0x100 # 035c4
stw r8, -0x00e0(r30) # 035c8
stw r9, -0x00dc(r30) # 035cc
mfcr r8 # 035d0
stw r16, -0x00d8(r30) # 035d4
stw r17, -0x00d4(r30) # 035d8
stw r18, -0x00d0(r30) # 035dc
stw r19, -0x00cc(r30) # 035e0
stw r8, -0x00c8(r30) # 035e4
lwz r8, -0x001c(r30) # 035e8
mr r9, r27 # 035ec
bl major_0x10320_0xcc # 035f0
lwz r16, 0x0024( r8) # 035f4
lwz r17, 0x0028( r8) # 035f8
cmplw r27, r16 # 035fc
cmplw cr7, r27, r17 # 03600
blt- major_0x035a0_0xe0 # 03604
bgt- cr7, major_0x035a0_0xe0 # 03608
mr r31, r8 # 0360c
mr r8, r27 # 03610
bl major_0x12248_0x1e4 # 03614
beq- major_0x035a0_0xe0 # 03618
lwz r8, 0x0000(r30) # 0361c
lwz r16, 0x0098(r31) # 03620
rlwinm r28, r8, 0, 29, 30 # 03624
cmpwi cr7, r28, 0x04 # 03628
cmpwi r28, 0x02 # 0362c
beq- cr7, major_0x035a0_0xe0 # 03630
beq- major_0x035a0_0xe0 # 03634
major_0x035a0_0x98:
addi r17, r31, 0x90 # 03638
cmpw r16, r17 # 0363c
addi r17, r16, 0x14 # 03640
beq- major_0x035a0_0x158 # 03644
lwz r9, 0x0010(r16) # 03648
add r9, r9, r17 # 0364c
major_0x035a0_0xb0:
lwz r18, 0x0000(r17) # 03650
cmplw cr7, r17, r9 # 03654
lwz r19, 0x0004(r17) # 03658
bgt- cr7, major_0x035a0_0xd8 # 0365c
cmplw r27, r18 # 03660
cmplw cr7, r27, r19 # 03664
blt- major_0x035a0_0xd0 # 03668
ble- cr7, major_0x035a0_0xe0 # 0366c
major_0x035a0_0xd0:
addi r17, r17, 0x08 # 03670
b major_0x035a0_0xb0 # 03674
major_0x035a0_0xd8:
lwz r16, 0x0008(r16) # 03678
b major_0x035a0_0x98 # 0367c
major_0x035a0_0xe0:
mfspr r30, 272/*sprg0*/ # 03680
mfspr r31, 18/*dsisr*/ # 03684
lwz r8, -0x00e0(r30) # 03688
lwz r9, -0x00dc(r30) # 0368c
lwz r16, -0x00d8(r30) # 03690
lwz r17, -0x00d4(r30) # 03694
lwz r18, -0x00d0(r30) # 03698
lwz r19, -0x00cc(r30) # 0369c
major_0x035a0_0x100:
andis. r28, r31, 0x800 # 036a0
addi r29, r1, 800 # 036a4
bnel- major_0x054b8 # 036a8
li r28, 0x43 # 036ac
and r28, r31, r28 # 036b0
cmpwi cr7, r28, 0x43 # 036b4
beql+ panic_wrapper_0x02960 # 036b8
mfspr r28, 274/*sprg2*/ # 036bc
mtlr r28 # 036c0
bne- cr7, major_0x035a0_0x144 # 036c4
mfspr r28, 26/*srr0*/ # 036c8
addi r28, r28, 0x04 # 036cc
lwz r26, 0x0e90( r1) # 036d0
mtspr 26/*srr0*/, r28 # 036d4
addi r26, r26, 0x01 # 036d8
stw r26, 0x0e90( r1) # 036dc
b major_0x035a0_0x19c # 036e0
major_0x035a0_0x144:
andi. r28, r31, 0x03 # 036e4
li r8, 0x16 # 036e8
beq+ major_0x02980 # 036ec
li r8, 0x15 # 036f0
b major_0x02980 # 036f4
major_0x035a0_0x158:
mfspr r30, 272/*sprg0*/ # 036f8
lwz r16, 0x0f00( r1) # 036fc
lwz r8, -0x00c8(r30) # 03700
addi r16, r16, 0x01 # 03704
mtcr r8 # 03708
lwz r9, -0x00dc(r30) # 0370c
stw r16, 0x0f00( r1) # 03710
lwz r16, -0x00d8(r30) # 03714
lwz r17, -0x00d4(r30) # 03718
lwz r18, -0x00d0(r30) # 0371c
lwz r19, -0x00cc(r30) # 03720
lwz r8, -0x00e0(r30) # 03724
mfspr r29, 27/*srr1*/ # 03728
mfspr r28, 274/*sprg2*/ # 0372c
rlwinm r29, r29, 0, 18, 16 # 03730
mtlr r28 # 03734
mtspr 27/*srr1*/, r29 # 03738
major_0x035a0_0x19c:
mfspr r1, 273/*sprg1*/ # 0373c
rlwinm r26, r25, 30, 24, 31 # 03740
rfi # 03744
.long 0 # 03748
.long 0 # 0374c
.long 0 # 03750
.long 0 # 03754
.long 0 # 03758
.long 0 # 0375c
.long 0 # 03760
.long 0 # 03764
major_0x035a0_0x1c8:
andis. r28, r31, 0x8010 # 03768
bne- major_0x035a0_0x374 # 0376c
mr r28, r8 # 03770
mr r31, r9 # 03774
addi r8, r1, -0xb90 # 03778
# r8 = lock
bl lock # 0377c
mr r8, r28 # 03780
mr r9, r31 # 03784
bl major_0x04c20 # 03788
sync # 0378c
lwz r28, -0x0b90( r1) # 03790
cmpwi cr1, r28, 0x00 # 03794
li r28, 0x00 # 03798
bne+ cr1, major_0x035a0_0x208 # 0379c
mflr r28 # 037a0
bl panic # 037a4
major_0x035a0_0x208:
stw r28, -0x0b90( r1) # 037a8
mfspr r28, 274/*sprg2*/ # 037ac
mtlr r28 # 037b0
beq+ major_0x035a0_0x19c # 037b4
li r8, 0x12 # 037b8
bge+ major_0x02980 # 037bc
li r8, 0x14 # 037c0
b major_0x02980 # 037c4
major_0x035a0_0x228: /* < outside referer */
mfspr r1, 272/*sprg0*/ # 037c8
mr r28, r8 # 037cc
lwz r27, -0x0340( r1) # 037d0
bl 1f # 037d4
.ascii "CPU " # 037d8
.short 0 # 037dc
.align 2 # 037de
1: mflr r8 # 037e0
bl print_string # 037e4
mr r8, r27 # 037e8
bl print_hexword_spc # 037ec
bl 1f # 037f0
.ascii "MemRetry machine check - last EA " # 037f4
.short 0 # 03815
.align 2 # 03817
1: mflr r8 # 03818
bl print_string # 0381c
lwz r1, -0x0004( r1) # 03820
lwz r27, 0x0694( r1) # 03824
mr r8, r27 # 03828
bl print_hexword_spc # 0382c
bl 1f # 03830
.ascii " SRR1 " # 03834
.short 0 # 0383a
.align 2 # 0383c
1: mflr r8 # 0383c
bl print_string # 03840
mfspr r8, 27/*srr1*/ # 03844
mr r8, r8 # 03848
bl print_hexword_spc # 0384c
bl 1f # 03850
.ascii " SRR0 " # 03854
.short 0 # 0385a
.align 2 # 0385c
1: mflr r8 # 0385c
bl print_string # 03860
mfspr r8, 26/*srr0*/ # 03864
mr r8, r8 # 03868
bl print_hexword_spc # 0386c
bl 1f # 03870
.ascii "^n" # 03874
.short 0 # 03876
.align 2 # 03878
1: mflr r8 # 03878
bl print_string # 0387c
mr r8, r28 # 03880
lwz r1, -0x0004( r1) # 03884
lwz r27, 0x0694( r1) # 03888
subf r28, r19, r27 # 0388c
cmpwi r28, -0x10 # 03890
blt- major_0x035a0_0x374 # 03894
cmpwi r28, 0x10 # 03898
bgt- major_0x035a0_0x374 # 0389c
mr r28, r8 # 038a0
mr r29, r9 # 038a4
addi r8, r1, -0xb90 # 038a8
# r8 = lock
bl lock # 038ac
mr r8, r28 # 038b0
mr r9, r29 # 038b4
lwz r28, 0x0e98( r1) # 038b8
addi r28, r28, 0x01 # 038bc
stw r28, 0x0e98( r1) # 038c0
lwz r29, 0x0698( r1) # 038c4
li r28, 0x00 # 038c8
stw r28, 0x0000(r29) # 038cc
mfspr r28, 287/*pvr*/ # 038d0
rlwinm. r28, r28, 0, 0, 14 # 038d4
sync # 038d8
tlbie r27 # 038dc
beq- major_0x035a0_0x34c # 038e0
sync # 038e4
tlbsync # 038e8
major_0x035a0_0x34c:
sync # 038ec
isync # 038f0
sync # 038f4
lwz r28, -0x0b90( r1) # 038f8
cmpwi cr1, r28, 0x00 # 038fc
li r28, 0x00 # 03900
bne+ cr1, major_0x035a0_0x370 # 03904
mflr r28 # 03908
bl panic # 0390c
major_0x035a0_0x370:
stw r28, -0x0b90( r1) # 03910
major_0x035a0_0x374:
cmplw r10, r19 # 03914
li r8, 0x13 # 03918
bne+ major_0x02980 # 0391c
mfspr r1, 272/*sprg0*/ # 03920
mtspr 275/*sprg3*/, r24 # 03924
lmw r14, 0x0038( r1) # 03928
li r8, 0x0b # 0392c
b major_0x02980_0x134 # 03930
/***********************************************************
major_0x03934
***********************************************************/
.long 0x4800000c # 03934
.long 0x60000000 # 03938
.long 0x60000000 # 0393c
/***********************************************************
major_0x03940
************************************************************
Xrefs:
"lisori_caller"
major_0x03200
dsi_vector
major_0x04240
major_0x04300
major_0x04880
***********************************************************/
major_0x03940: /* < outside referer */
# r6 = saved at *(ewa + 0x18)
# sprg1 = saved at *(ewa + 4)
# rN (0,7,8,9,10,11,12,13, not r1) = saved at *(*(ewa - 0x14) + 0x104 + 8*N)
bl int_prepare # 03940
# r0 = 0
# r1 = *(ewa - 4)
# r6 = kdp
# r7 = *(ewa - 0x10) # flags?
# r8 = ewa
# r10 = srr0
# r11 = srr1
# r12 = sprg2
# r13 = cr
andis. r8, r11, 0x4020 # 03944
beq- major_0x03940_0xb0 # 03948
mfspr r8, 272/*sprg0*/ # 0394c
stmw r14, 0x0038( r8) # 03950
mr r28, r8 # 03954
mr r31, r9 # 03958
addi r8, r1, -0xb90 # 0395c
# r8 = lock
bl lock # 03960
mr r8, r28 # 03964
mr r9, r31 # 03968
mr r27, r10 # 0396c
bl major_0x04c20 # 03970
sync # 03974
lwz r28, -0x0b90( r1) # 03978
cmpwi cr1, r28, 0x00 # 0397c
li r28, 0x00 # 03980
bne+ cr1, major_0x03940_0x50 # 03984
mflr r28 # 03988
bl panic # 0398c
major_0x03940_0x50:
stw r28, -0x0b90( r1) # 03990
mfspr r8, 272/*sprg0*/ # 03994
bne- major_0x03940_0x9c # 03998
mfspr r24, 275/*sprg3*/ # 0399c
mfmsr r14 # 039a0
ori r15, r14, 0x10 # 039a4
addi r23, r1, 0x4e0 # 039a8
mtspr 275/*sprg3*/, r23 # 039ac
mr r19, r10 # 039b0
mtmsr r15 # 039b4
isync # 039b8
lbz r23, 0x0000(r19) # 039bc
sync # 039c0
mtmsr r14 # 039c4
isync # 039c8
mfspr r8, 272/*sprg0*/ # 039cc
mtspr 275/*sprg3*/, r24 # 039d0
lmw r14, 0x0038( r8) # 039d4
b skeleton_key # 039d8
major_0x03940_0x9c: /* < outside referer */
lmw r14, 0x0038( r8) # 039dc
li r8, 0x0c # 039e0
blt+ major_0x02980_0x134 # 039e4
li r8, 0x0a # 039e8
b major_0x02980_0x134 # 039ec
major_0x03940_0xb0: /* < outside referer */
andis. r8, r11, 0x800 # 039f0
li r8, 0x0e # 039f4
bne+ major_0x02980_0x134 # 039f8
li r8, 0x0b # 039fc
b major_0x02980_0x134 # 03a00
major_0x03940_0xc4: /* < outside referer */
# r6 = saved at *(ewa + 0x18)
# sprg1 = saved at *(ewa + 4)
# rN (0,7,8,9,10,11,12,13, not r1) = saved at *(*(ewa - 0x14) + 0x104 + 8*N)
bl int_prepare # 03a04
# r0 = 0
# r1 = *(ewa - 4)
# r6 = kdp
# r7 = *(ewa - 0x10) # flags?
# r8 = ewa
# r10 = srr0
# r11 = srr1
# r12 = sprg2
# r13 = cr
lwz r9, -0x0340( r8) # 03a08
bl 1f # 03a0c
.ascii "CPU " # 03a10
.short 0 # 03a14
.align 2 # 03a16
1: mflr r8 # 03a18
bl print_string # 03a1c
mr r8, r9 # 03a20
bl print_hexword_spc # 03a24
bl 1f # 03a28
.ascii "Machine check at " # 03a2c
.short 0 # 03a3d
.align 2 # 03a3f
1: mflr r8 # 03a40
bl print_string # 03a44
mr r8, r11 # 03a48
bl print_hexword_spc # 03a4c
mr r8, r10 # 03a50
bl print_hexword_spc # 03a54
bl 1f # 03a58
.ascii "- last unmapped EA " # 03a5c
.short 0 # 03a6f
.align 2 # 03a71
1: mflr r8 # 03a74
bl print_string # 03a78
lwz r8, 0x0694( r1) # 03a7c
mr r8, r8 # 03a80
bl print_hexword_spc # 03a84
bl 1f # 03a88
.ascii "^n" # 03a8c
.short 0 # 03a8e
.align 2 # 03a90
1: mflr r8 # 03a90
bl print_string # 03a94
rlwinm. r8, r11, 0, 2, 2 # 03a98
beq- major_0x03940_0x168 # 03a9c
bl major_0x0a8c0_0x39c # 03aa0
b skeleton_key # 03aa4
major_0x03940_0x168:
li r8, 0x07 # 03aa8
b major_0x02980_0x134 # 03aac
major_0x03940_0x170: /* < outside referer */
bl 1f # 03ab0
.ascii "*** CPU MALFUNCTION - Masked interrupt punched through. SRR1/0 "
.short 0 # 03af3
.align 2 # 03af5
1: mflr r8 # 03af8
bl print_string # 03afc
mr r8, r11 # 03b00
bl print_hexword_spc # 03b04
mr r8, r10 # 03b08
bl print_hexword_spc # 03b0c
bl 1f # 03b10
.ascii "^n" # 03b14
.short 0 # 03b16
.align 2 # 03b18
1: mflr r8 # 03b18
bl print_string # 03b1c
lis r10, -0x4523 # 03b20
ori r10, r10, 0xcb00 # 03b24
li r8, 0x07 # 03b28
b major_0x02980_0x134 # 03b2c
/***********************************************************
major_0x03b30
***********************************************************/
.long 0x48000010 # 03b30
.long 0x60000000 # 03b34
.long 0x60000000 # 03b38
.long 0x60000000 # 03b3c
/***********************************************************
dsi_vector
************************************************************
Xrefs:
"lisori_caller"
***********************************************************/
dsi_vector: /* < outside referer */
mfspr r8, 18/*dsisr*/ # 03b40
rlwimi r11, r8, 0, 0, 9 # 03b44
andis. r8, r11, 0x4020 # 03b48
beq+ major_0x03940_0xb0 # 03b4c
mfspr r8, 272/*sprg0*/ # 03b50
stmw r14, 0x0038( r8) # 03b54
lwz r1, -0x0004( r8) # 03b58
mr r28, r8 # 03b5c
mr r31, r9 # 03b60
addi r8, r1, -0xb90 # 03b64
# r8 = lock
bl lock # 03b68
mr r8, r28 # 03b6c
mr r9, r31 # 03b70
mfspr r27, 19/*dar*/ # 03b74
bl major_0x04c20 # 03b78
sync # 03b7c
lwz r28, -0x0b90( r1) # 03b80
cmpwi cr1, r28, 0x00 # 03b84
li r28, 0x00 # 03b88
bne+ cr1, dsi_vector_0x58 # 03b8c
mflr r28 # 03b90
bl panic # 03b94
dsi_vector_0x58:
stw r28, -0x0b90( r1) # 03b98
mfspr r8, 272/*sprg0*/ # 03b9c
bne+ major_0x03940_0x9c # 03ba0
lmw r14, 0x0038( r8) # 03ba4
mfspr r1, 274/*sprg2*/ # 03ba8
mtlr r1 # 03bac
mfspr r1, 273/*sprg1*/ # 03bb0
rfi # 03bb4
.long 0 # 03bb8
.long 0 # 03bbc
.long 0 # 03bc0
.long 0 # 03bc4
.long 0 # 03bc8
.long 0 # 03bcc
.long 0 # 03bd0
.long 0 # 03bd4
/***********************************************************
major_0x03bd8
***********************************************************/
.long 0x60000000 # 03bd8
.long 0x60000000 # 03bdc
/***********************************************************
major_0x03be0
************************************************************
Xrefs:
"lisori_caller"
***********************************************************/
.long 0x81610e40 # 03be0
.long 0x7d8a6378 # 03be4
.long 0x396b0001 # 03be8
.long 0x91610e40 # 03bec
.long 0x7d7b02a6 # 03bf0
.long 0x50e7deb4 # 03bf4
major_0x03be0_0x18: /* < outside referer */
ori r11, r11, 0x8000 # 03bf8
mtcrf 0x3f, r7 # 03bfc
cmplwi cr1, r3, 0x01 # 03c00
blt- cr4, major_0x04a20_0x18 # 03c04
blt- cr1, major_0x03be0_0x58 # 03c08
beq- cr1, major_0x03be0_0x90 # 03c0c
addi r8, r3, -0x20 # 03c10
lwz r9, 0x0eac( r1) # 03c14
cmplwi r8, 0xe0 # 03c18
addi r9, r9, 0x01 # 03c1c
stw r9, 0x0eac( r1) # 03c20
mfspr r1, 272/*sprg0*/ # 03c24
rlwimi r7, r3, 24, 0, 7 # 03c28
blt- major_0x03be0_0xe8 # 03c2c
li r8, 0x02 # 03c30
b major_0x02980_0x134 # 03c34
major_0x03be0_0x58:
mfspr r1, 272/*sprg0*/ # 03c38
lwz r8, 0x0040( r6) # 03c3c
lwz r10, 0x0084( r6) # 03c40
rlwimi r7, r8, 0, 17, 7 # 03c44
lwz r8, 0x0044( r6) # 03c48
rlwimi r11, r7, 0, 20, 23 # 03c4c
stw r8, -0x000c( r1) # 03c50
andi. r8, r11, 0x900 # 03c54
lwz r12, 0x008c( r6) # 03c58
lwz r3, 0x0094( r6) # 03c5c
lwz r4, 0x009c( r6) # 03c60
bnel- major_0x03da0_0x78 # 03c64
addi r9, r6, 0x40 # 03c68
b skeleton_key # 03c6c
major_0x03be0_0x90:
lwz r9, 0x0ea8( r1) # 03c70
lwz r8, 0x0040( r6) # 03c74
addi r9, r9, 0x01 # 03c78
stw r9, 0x0ea8( r1) # 03c7c
mfspr r1, 272/*sprg0*/ # 03c80
lwz r10, 0x0084( r6) # 03c84
rlwimi r7, r8, 0, 17, 7 # 03c88
lwz r8, 0x0044( r6) # 03c8c
mtcrf 0x0f, r7 # 03c90
rlwimi r11, r7, 0, 20, 23 # 03c94
stw r8, -0x000c( r1) # 03c98
lwz r12, 0x008c( r6) # 03c9c
lwz r3, 0x0094( r6) # 03ca0
lwz r4, 0x009c( r6) # 03ca4
bne- cr2, major_0x03be0_0xe8 # 03ca8
bns- cr6, major_0x03be0_0xe8 # 03cac
stmw r14, 0x0038( r1) # 03cb0
lwz r17, 0x0064( r6) # 03cb4
lwz r20, 0x0068( r6) # 03cb8
lwz r21, 0x006c( r6) # 03cbc
lwz r19, 0x0074( r6) # 03cc0
lwz r18, 0x007c( r6) # 03cc4
major_0x03be0_0xe8:
beq+ cr2, major_0x02980_0x178 # 03cc8
crclr 4*cr6 + so # 03ccc
mfspr r10, 26/*srr0*/ # 03cd0
li r8, 0x02 # 03cd4
b major_0x02980_0x134 # 03cd8
/***********************************************************
major_0x03cdc
***********************************************************/
.long 0x60000000 # 03cdc
/***********************************************************
save_all_registers
************************************************************
Xrefs:
major_0x04240
major_0x04300
***********************************************************/
save_all_registers: /* < outside referer */
mfspr r1, 272/*sprg0*/ # 03ce0
stw r6, 0x0018( r1) # 03ce4
mfspr r6, 273/*sprg1*/ # 03ce8
stw r6, 0x0004( r1) # 03cec
lwz r6, -0x0014( r1) # 03cf0
stw r0, 0x0104( r6) # 03cf4
stw r7, 0x013c( r6) # 03cf8
stw r8, 0x0144( r6) # 03cfc
stw r9, 0x014c( r6) # 03d00
stw r10, 0x0154( r6) # 03d04
stw r11, 0x015c( r6) # 03d08
stw r12, 0x0164( r6) # 03d0c
stw r13, 0x016c( r6) # 03d10
li r0, 0x00 # 03d14
mfspr r10, 26/*srr0*/ # 03d18
mfspr r11, 27/*srr1*/ # 03d1c
mfcr r13 # 03d20
mfspr r12, 274/*sprg2*/ # 03d24
lwz r7, -0x0010( r1) # 03d28
lwz r1, -0x0004( r1) # 03d2c
# r6 = ewa
b save_registers_from_r14 # 03d30
# r8 = sprg0 (not used by me)
/***********************************************************
major_0x03d34
***********************************************************/
.long 0x4800000c # 03d34
.long 0x60000000 # 03d38
.long 0x60000000 # 03d3c
/***********************************************************
int_prepare
************************************************************
Xrefs:
major_0x03200
major_0x03940
major_0x04180
major_0x046d0
major_0x046e0
major_0x04700
major_0x04880
sc_vector
major_0x04b60
major_0x07440
************************************************************
> r6 = saved at *(ewa + 0x18)
> sprg1 = saved at *(ewa + 4)
> rN (0,7,8,9,10,11,12,13, not r1) = saved at *(*(ewa - 0x14) + 0x104 + 8*N)
< r0 = 0
< r1 = *(ewa - 4)
< r6 = kdp
< r7 = *(ewa - 0x10) # flags?
< r8 = ewa
< r10 = srr0
< r11 = srr1
< r12 = sprg2
< r13 = cr
***********************************************************/
int_prepare: /* < outside referer */
mfspr r1, 272/*sprg0*/ # 03d40
stw r6, 0x0018( r1) # 03d44
mfspr r6, 273/*sprg1*/ # 03d48
stw r6, 0x0004( r1) # 03d4c
lwz r6, -0x0014( r1) # 03d50
stw r0, 0x0104( r6) # 03d54
stw r7, 0x013c( r6) # 03d58
stw r8, 0x0144( r6) # 03d5c
stw r9, 0x014c( r6) # 03d60
stw r10, 0x0154( r6) # 03d64
stw r11, 0x015c( r6) # 03d68
stw r12, 0x0164( r6) # 03d6c
stw r13, 0x016c( r6) # 03d70
li r0, 0x00 # 03d74
mfspr r10, 26/*srr0*/ # 03d78
mfspr r11, 27/*srr1*/ # 03d7c
mfcr r13 # 03d80
mfspr r12, 274/*sprg2*/ # 03d84
mr r8, r1 # 03d88
lwz r7, -0x0010( r1) # 03d8c
lwz r1, -0x0004( r1) # 03d90
blr # 03d94
/***********************************************************
major_0x03d98
***********************************************************/
.long 0x60000000 # 03d98
.long 0x60000000 # 03d9c
/***********************************************************
major_0x03da0
************************************************************
Xrefs:
"lisori_caller"
major_0x02980
major_0x03be0
rtas_call
***********************************************************/
major_0x03da0: /* < outside referer */
mfspr r1, 272/*sprg0*/ # 03da0
stw r11, -0x0290( r1) # 03da4
stw r6, -0x028c( r1) # 03da8
lwz r6, -0x0004( r1) # 03dac
lwz r11, 0x0e88( r6) # 03db0
addi r11, r11, 0x01 # 03db4
stw r11, 0x0e88( r6) # 03db8
mfspr r11, 27/*srr1*/ # 03dbc
ori r11, r11, 0x2000 # 03dc0
mtspr 27/*srr1*/, r11 # 03dc4
mfmsr r11 # 03dc8
ori r11, r11, 0x2000 # 03dcc
lwz r6, -0x0014( r1) # 03dd0
mtmsr r11 # 03dd4
isync # 03dd8
bl major_0x03da0_0xa0 # 03ddc
lwz r11, -0x0290( r1) # 03de0
lwz r6, -0x028c( r1) # 03de4
mfspr r1, 274/*sprg2*/ # 03de8
mtlr r1 # 03dec
mfspr r1, 273/*sprg1*/ # 03df0
rfi # 03df4
.long 0 # 03df8
.long 0 # 03dfc
.long 0 # 03e00
.long 0 # 03e04
.long 0 # 03e08
.long 0 # 03e0c
.long 0 # 03e10
.long 0 # 03e14
major_0x03da0_0x78: /* < outside referer */
rlwinm. r8, r11, 0, 18, 18 # 03e18
bnelr- # 03e1c
major_0x03da0_0x80: /* < outside referer */
lwz r8, 0x00e4( r6) # 03e20
rlwinm. r8, r8, 1, 0, 0 # 03e24
mfmsr r8 # 03e28
ori r8, r8, 0x2000 # 03e2c
beqlr- # 03e30
mtmsr r8 # 03e34
isync # 03e38
ori r11, r11, 0x2000 # 03e3c
major_0x03da0_0xa0:
lfd f31, 0x00e0( r6) # 03e40
lfd f0, 0x0200( r6) # 03e44
lfd f1, 0x0208( r6) # 03e48
lfd f2, 0x0210( r6) # 03e4c
lfd f3, 0x0218( r6) # 03e50
lfd f4, 0x0220( r6) # 03e54
lfd f5, 0x0228( r6) # 03e58
lfd f6, 0x0230( r6) # 03e5c
lfd f7, 0x0238( r6) # 03e60
mtfsf 0xff, f31 # 03e64
lfd f8, 0x0240( r6) # 03e68
lfd f9, 0x0248( r6) # 03e6c
lfd f10, 0x0250( r6) # 03e70
lfd f11, 0x0258( r6) # 03e74
lfd f12, 0x0260( r6) # 03e78
lfd f13, 0x0268( r6) # 03e7c
lfd f14, 0x0270( r6) # 03e80
lfd f15, 0x0278( r6) # 03e84
lfd f16, 0x0280( r6) # 03e88
lfd f17, 0x0288( r6) # 03e8c
lfd f18, 0x0290( r6) # 03e90
lfd f19, 0x0298( r6) # 03e94
lfd f20, 0x02a0( r6) # 03e98
lfd f21, 0x02a8( r6) # 03e9c
lfd f22, 0x02b0( r6) # 03ea0
lfd f23, 0x02b8( r6) # 03ea4
lfd f24, 0x02c0( r6) # 03ea8
lfd f25, 0x02c8( r6) # 03eac
lfd f26, 0x02d0( r6) # 03eb0
lfd f27, 0x02d8( r6) # 03eb4
lfd f28, 0x02e0( r6) # 03eb8
lfd f29, 0x02e8( r6) # 03ebc
lfd f30, 0x02f0( r6) # 03ec0
lfd f31, 0x02f8( r6) # 03ec4
blr # 03ec8
major_0x03da0_0x12c: /* < outside referer */
mfmsr r8 # 03ecc
ori r8, r8, 0x2000 # 03ed0
mtmsr r8 # 03ed4
isync # 03ed8
rlwinm r11, r11, 0, 19, 17 # 03edc
stfd f0, 0x0200( r6) # 03ee0
stfd f1, 0x0208( r6) # 03ee4
stfd f2, 0x0210( r6) # 03ee8
stfd f3, 0x0218( r6) # 03eec
stfd f4, 0x0220( r6) # 03ef0
stfd f5, 0x0228( r6) # 03ef4
stfd f6, 0x0230( r6) # 03ef8
stfd f7, 0x0238( r6) # 03efc
stfd f8, 0x0240( r6) # 03f00
stfd f9, 0x0248( r6) # 03f04
stfd f10, 0x0250( r6) # 03f08
stfd f11, 0x0258( r6) # 03f0c
stfd f12, 0x0260( r6) # 03f10
stfd f13, 0x0268( r6) # 03f14
stfd f14, 0x0270( r6) # 03f18
stfd f15, 0x0278( r6) # 03f1c
stfd f16, 0x0280( r6) # 03f20
stfd f17, 0x0288( r6) # 03f24
stfd f18, 0x0290( r6) # 03f28
stfd f19, 0x0298( r6) # 03f2c
stfd f20, 0x02a0( r6) # 03f30
stfd f21, 0x02a8( r6) # 03f34
stfd f22, 0x02b0( r6) # 03f38
stfd f23, 0x02b8( r6) # 03f3c
mffs f0 # 03f40
stfd f24, 0x02c0( r6) # 03f44
stfd f25, 0x02c8( r6) # 03f48
stfd f26, 0x02d0( r6) # 03f4c
stfd f27, 0x02d8( r6) # 03f50
stfd f28, 0x02e0( r6) # 03f54
stfd f29, 0x02e8( r6) # 03f58
stfd f30, 0x02f0( r6) # 03f5c
stfd f31, 0x02f8( r6) # 03f60
stfd f0, 0x00e0( r6) # 03f64
blr # 03f68
.long 0xc801fd20 # 03f6c
.long 0x48002630 # 03f70
.long 0xc821fd20 # 03f74
.long 0x48002628 # 03f78
.long 0xc841fd20 # 03f7c
.long 0x48002620 # 03f80
.long 0xc861fd20 # 03f84
.long 0x48002618 # 03f88
.long 0xc881fd20 # 03f8c
.long 0x48002610 # 03f90
.long 0xc8a1fd20 # 03f94
.long 0x48002608 # 03f98
.long 0xc8c1fd20 # 03f9c
.long 0x48002600 # 03fa0
.long 0xc8e1fd20 # 03fa4
.long 0x480025f8 # 03fa8
.long 0xc901fd20 # 03fac
.long 0x480025f0 # 03fb0
.long 0xc921fd20 # 03fb4
.long 0x480025e8 # 03fb8
.long 0xc941fd20 # 03fbc
.long 0x480025e0 # 03fc0
.long 0xc961fd20 # 03fc4
.long 0x480025d8 # 03fc8
.long 0xc981fd20 # 03fcc
.long 0x480025d0 # 03fd0
.long 0xc9a1fd20 # 03fd4
.long 0x480025c8 # 03fd8
.long 0xc9c1fd20 # 03fdc
.long 0x480025c0 # 03fe0
.long 0xc9e1fd20 # 03fe4
.long 0x480025b8 # 03fe8
.long 0xca01fd20 # 03fec
.long 0x480025b0 # 03ff0
.long 0xca21fd20 # 03ff4
.long 0x480025a8 # 03ff8
.long 0xca41fd20 # 03ffc
.long 0x480025a0 # 04000
.long 0xca61fd20 # 04004
.long 0x48002598 # 04008
.long 0xca81fd20 # 0400c
.long 0x48002590 # 04010
.long 0xcaa1fd20 # 04014
.long 0x48002588 # 04018
.long 0xcac1fd20 # 0401c
.long 0x48002580 # 04020
.long 0xcae1fd20 # 04024
.long 0x48002578 # 04028
.long 0xcb01fd20 # 0402c
.long 0x48002570 # 04030
.long 0xcb21fd20 # 04034
.long 0x48002568 # 04038
.long 0xcb41fd20 # 0403c
.long 0x48002560 # 04040
.long 0xcb61fd20 # 04044
.long 0x48002558 # 04048
.long 0xcb81fd20 # 0404c
.long 0x48002550 # 04050
.long 0xcba1fd20 # 04054
.long 0x48002548 # 04058
.long 0xcbc1fd20 # 0405c
.long 0x48002540 # 04060
.long 0xcbe1fd20 # 04064
.long 0x48002538 # 04068
.long 0xd801fd20 # 0406c
.long 0x480017cc # 04070
.long 0xd821fd20 # 04074
.long 0x480017c4 # 04078
.long 0xd841fd20 # 0407c
.long 0x480017bc # 04080
.long 0xd861fd20 # 04084
.long 0x480017b4 # 04088
.long 0xd881fd20 # 0408c
.long 0x480017ac # 04090
.long 0xd8a1fd20 # 04094
.long 0x480017a4 # 04098
.long 0xd8c1fd20 # 0409c
.long 0x4800179c # 040a0
.long 0xd8e1fd20 # 040a4
.long 0x48001794 # 040a8
.long 0xd901fd20 # 040ac
.long 0x4800178c # 040b0
.long 0xd921fd20 # 040b4
.long 0x48001784 # 040b8
.long 0xd941fd20 # 040bc
.long 0x4800177c # 040c0
.long 0xd961fd20 # 040c4
.long 0x48001774 # 040c8
.long 0xd981fd20 # 040cc
.long 0x4800176c # 040d0
.long 0xd9a1fd20 # 040d4
.long 0x48001764 # 040d8
.long 0xd9c1fd20 # 040dc
.long 0x4800175c # 040e0
.long 0xd9e1fd20 # 040e4
.long 0x48001754 # 040e8
.long 0xda01fd20 # 040ec
.long 0x4800174c # 040f0
.long 0xda21fd20 # 040f4
.long 0x48001744 # 040f8
.long 0xda41fd20 # 040fc
.long 0x4800173c # 04100
.long 0xda61fd20 # 04104
.long 0x48001734 # 04108
.long 0xda81fd20 # 0410c
.long 0x4800172c # 04110
.long 0xdaa1fd20 # 04114
.long 0x48001724 # 04118
.long 0xdac1fd20 # 0411c
.long 0x4800171c # 04120
.long 0xdae1fd20 # 04124
.long 0x48001714 # 04128
.long 0xdb01fd20 # 0412c
.long 0x4800170c # 04130
.long 0xdb21fd20 # 04134
.long 0x48001704 # 04138
.long 0xdb41fd20 # 0413c
.long 0x480016fc # 04140
.long 0xdb61fd20 # 04144
.long 0x480016f4 # 04148
.long 0xdb81fd20 # 0414c
.long 0x480016ec # 04150
.long 0xdba1fd20 # 04154
.long 0x480016e4 # 04158
.long 0xdbc1fd20 # 0415c
.long 0x480016dc # 04160
.long 0xdbe1fd20 # 04164
.long 0x480016d4 # 04168
/***********************************************************
major_0x0416c
***********************************************************/
.long 0x48000014 # 0416c
.long 0x60000000 # 04170
.long 0x60000000 # 04174
.long 0x60000000 # 04178
.long 0x60000000 # 0417c
/***********************************************************
major_0x04180
************************************************************
Xrefs:
major_0x04240
***********************************************************/
major_0x04180: /* < outside referer */
stw r6, -0x0290( r1) # 04180
stw r10, -0x028c( r1) # 04184
stw r11, -0x0288( r1) # 04188
lwz r6, -0x0014( r1) # 0418c
lwz r10, 0x00d8( r6) # 04190
mfspr r11, 27/*srr1*/ # 04194
cmpwi r10, 0x00 # 04198
beql- major_0x04180_0x9c # 0419c
oris r11, r11, 0x200 # 041a0
stw r9, -0x027c( r1) # 041a4
mtspr 27/*srr1*/, r11 # 041a8
mfmsr r11 # 041ac
oris r11, r11, 0x200 # 041b0
mtmsr r11 # 041b4
isync # 041b8
bl major_0x13988_0xd8 # 041bc
lwz r8, -0x0004( r1) # 041c0
lwz r11, 0x0ed4( r8) # 041c4
addi r11, r11, 0x01 # 041c8
stw r11, 0x0ed4( r8) # 041cc
mtcr r13 # 041d0
lwz r6, -0x0290( r1) # 041d4
lwz r10, -0x028c( r1) # 041d8
lwz r11, -0x0288( r1) # 041dc
lwz r13, -0x0284( r1) # 041e0
lwz r8, -0x0280( r1) # 041e4
lwz r9, -0x027c( r1) # 041e8
mfspr r1, 274/*sprg2*/ # 041ec
mtlr r1 # 041f0
mfspr r1, 273/*sprg1*/ # 041f4
rfi # 041f8
.long 0 # 041fc
.long 0 # 04200
.long 0 # 04204
.long 0 # 04208
.long 0 # 0420c
.long 0 # 04210
.long 0 # 04214
.long 0 # 04218
major_0x04180_0x9c:
mtcr r13 # 0421c
lwz r6, -0x0290( r1) # 04220
lwz r10, -0x028c( r1) # 04224
lwz r11, -0x0288( r1) # 04228
lwz r13, -0x0284( r1) # 0422c
# r6 = saved at *(ewa + 0x18)
# sprg1 = saved at *(ewa + 4)
# rN (0,7,8,9,10,11,12,13, not r1) = saved at *(*(ewa - 0x14) + 0x104 + 8*N)
bl int_prepare # 04230
# r0 = 0
# r1 = *(ewa - 4)
# r6 = kdp
# r7 = *(ewa - 0x10) # flags?
# r8 = ewa
# r10 = srr0
# r11 = srr1
# r12 = sprg2
# r13 = cr
li r8, 0x04 # 04234
b major_0x02980_0x134 # 04238
/***********************************************************
major_0x0423c
***********************************************************/
.long 0x60000000 # 0423c
/***********************************************************
major_0x04240
************************************************************
Xrefs:
"lisori_caller"
***********************************************************/
major_0x04240: /* < outside referer */
mtlr r1 # 04240
mfspr r1, 272/*sprg0*/ # 04244
stw r8, -0x0280( r1) # 04248
stw r13, -0x0284( r1) # 0424c
mflr r8 # 04250
mfcr r13 # 04254
cmpwi r8, 0xf20 # 04258
beq+ major_0x04180 # 0425c
mtcr r13 # 04260
lwz r13, -0x0284( r1) # 04264
lwz r8, -0x0280( r1) # 04268
bl save_all_registers # 0426c
mr r28, r8 # 04270
rlwinm. r9, r11, 0, 16, 16 # 04274
beq+ major_0x03940_0x170 # 04278
mr r8, r8 # 0427c
mr r9, r9 # 04280
addi r8, r1, -0xb50 # 04284
# r8 = lock
bl lock # 04288
mr r8, r8 # 0428c
mr r9, r9 # 04290
lwz r8, -0x0414( r1) # 04294
# r8 = id
bl id_kind # 04298
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0c # 0429c
mr r30, r8 # 042a0
bne- major_0x04240_0x88 # 042a4
lwz r16, -0x0340(r28) # 042a8
lwz r17, -0x0008(r28) # 042ac
stw r16, 0x0010(r30) # 042b0
lwz r16, 0x0000(r17) # 042b4
stw r16, 0x0014(r30) # 042b8
mfspr r16, 0x3bb # 042bc
stw r16, 0x0018(r30) # 042c0
bl major_0x0db04 # 042c4
major_0x04240_0x88:
sync # 042c8
lwz r8, -0x0b50( r1) # 042cc
cmpwi cr1, r8, 0x00 # 042d0
li r8, 0x00 # 042d4
bne+ cr1, major_0x04240_0xa4 # 042d8
mflr r8 # 042dc
bl panic # 042e0
major_0x04240_0xa4:
stw r8, -0x0b50( r1) # 042e4
# r6 = ewa
bl restore_registers_from_r14 # 042e8
b skeleton_key # 042ec
/***********************************************************
major_0x042f0
***********************************************************/
.long 0x48000010 # 042f0
.long 0x60000000 # 042f4
.long 0x60000000 # 042f8
.long 0x60000000 # 042fc
/***********************************************************
major_0x04300
************************************************************
Xrefs:
"lisori_caller"
***********************************************************/
major_0x04300: /* < outside referer */
bl save_all_registers # 04300
mr r28, r8 # 04304
rlwinm. r9, r11, 0, 16, 16 # 04308
beq+ major_0x03940_0x170 # 0430c
bl 1f # 04310
.ascii "Thermal event^n" # 04314
.short 0 # 04323
.align 2 # 04325
1: mflr r8 # 04328
bl print_string # 0432c
mr r8, r8 # 04330
mr r9, r9 # 04334
addi r8, r1, -0xb50 # 04338
# r8 = lock
bl lock # 0433c
mr r8, r8 # 04340
mr r9, r9 # 04344
lwz r8, -0x0418( r1) # 04348
# r8 = id
bl id_kind # 0434c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0c # 04350
mr r30, r8 # 04354
bne- major_0x04300_0x68 # 04358
lwz r16, -0x0340(r28) # 0435c
stw r16, 0x0010(r30) # 04360
bl major_0x0db04 # 04364
major_0x04300_0x68:
sync # 04368
lwz r8, -0x0b50( r1) # 0436c
cmpwi cr1, r8, 0x00 # 04370
li r8, 0x00 # 04374
bne+ cr1, major_0x04300_0x84 # 04378
mflr r8 # 0437c
bl panic # 04380
major_0x04300_0x84:
stw r8, -0x0b50( r1) # 04384
# r6 = ewa
bl restore_registers_from_r14 # 04388
b skeleton_key # 0438c
/***********************************************************
major_0x04390
***********************************************************/
.long 0x48000010 # 04390
.long 0x60000000 # 04394
.long 0x60000000 # 04398
.long 0x60000000 # 0439c
/***********************************************************
major_0x043a0
************************************************************
Xrefs:
"lisori_caller"
***********************************************************/
major_0x043a0: /* < outside referer */
mtcrf 0x3f, r7 # 043a0
bnel+ cr2, skeleton_key # 043a4
and. r8, r4, r13 # 043a8
lwz r9, 0x0340( r1) # 043ac
rlwinm r8, r3, 0, 0, 25 # 043b0
cmpw cr1, r8, r9 # 043b4
bne+ skeleton_key # 043b8
lwz r9, 0x0344( r1) # 043bc
bne- cr1, major_0x043a0_0x48 # 043c0
major_0x043a0_0x24:
addi r8, r1, 0x420 # 043c4
mtspr 275/*sprg3*/, r8 # 043c8
lwz r8, 0x0648( r1) # 043cc
mtcrf 0x3f, r7 # 043d0
mfspr r1, 272/*sprg0*/ # 043d4
clrlwi r7, r7, 0x08 # 043d8
stw r8, 0x005c( r9) # 043dc
stw r9, -0x0014( r1) # 043e0
b major_0x02980_0x18c # 043e4
major_0x043a0_0x48:
lwz r9, 0x0348( r1) # 043e8
cmpw cr1, r8, r9 # 043ec
beq- cr1, major_0x043a0_0x130 # 043f0
lwz r9, 0x0350( r1) # 043f4
cmpw cr1, r8, r9 # 043f8
beq- cr1, major_0x043a0_0x110 # 043fc
lwz r9, 0x0358( r1) # 04400
cmpw cr1, r8, r9 # 04404
beq- cr1, major_0x043a0_0xf0 # 04408
mfspr r1, 272/*sprg0*/ # 0440c
stmw r14, 0x0038( r1) # 04410
lwz r1, -0x0004( r1) # 04414
cmpw cr1, r8, r6 # 04418
beq- cr1, major_0x043a0_0x154 # 0441c
mr r27, r8 # 04420
addi r29, r1, 800 # 04424
bl major_0x054b8 # 04428
clrlwi r23, r8, 0x14 # 0442c
beq- major_0x043a0_0x154 # 04430
cmplwi r23, 0xd00 # 04434
mr r9, r8 # 04438
mr r8, r31 # 0443c
ble- major_0x043a0_0xc4 # 04440
addi r27, r27, 0x1000 # 04444
addi r29, r1, 800 # 04448
bl major_0x054b8 # 0444c
beq- major_0x043a0_0x154 # 04450
addi r31, r31, -0x1000 # 04454
xor r23, r8, r31 # 04458
rlwinm. r23, r23, 0, 25, 22 # 0445c
bne- major_0x043a0_0x154 # 04460
major_0x043a0_0xc4:
clrlwi r23, r31, 0x1e # 04464
cmpwi r23, 0x03 # 04468
rlwimi r8, r9, 0, 20, 31 # 0446c
beq- major_0x043a0_0x154 # 04470
lwz r23, 0x0ea4( r1) # 04474
addi r23, r23, 0x01 # 04478
stw r23, 0x0ea4( r1) # 0447c
mfspr r1, 272/*sprg0*/ # 04480
lmw r14, 0x0038( r1) # 04484
lwz r1, -0x0004( r1) # 04488
stw r8, 0x035c( r1) # 0448c
major_0x043a0_0xf0:
lwz r8, 0x0350( r1) # 04490
stw r9, 0x0350( r1) # 04494
stw r8, 0x0358( r1) # 04498
lwz r9, 0x035c( r1) # 0449c
lwz r8, 0x0354( r1) # 044a0
stw r9, 0x0354( r1) # 044a4
stw r8, 0x035c( r1) # 044a8
lwz r9, 0x0350( r1) # 044ac
major_0x043a0_0x110:
lwz r8, 0x0348( r1) # 044b0
stw r9, 0x0348( r1) # 044b4
stw r8, 0x0350( r1) # 044b8
lwz r9, 0x0354( r1) # 044bc
lwz r8, 0x034c( r1) # 044c0
stw r9, 0x034c( r1) # 044c4
stw r8, 0x0354( r1) # 044c8
lwz r9, 0x0348( r1) # 044cc
major_0x043a0_0x130:
lwz r8, 0x0340( r1) # 044d0
stw r9, 0x0340( r1) # 044d4
stw r9, 0x05b4( r1) # 044d8
stw r8, 0x0348( r1) # 044dc
lwz r9, 0x034c( r1) # 044e0
lwz r8, 0x0344( r1) # 044e4
stw r9, 0x0344( r1) # 044e8
stw r8, 0x034c( r1) # 044ec
b major_0x043a0_0x24 # 044f0
major_0x043a0_0x154:
mfspr r1, 272/*sprg0*/ # 044f4
lmw r14, 0x0038( r1) # 044f8
lwz r1, -0x0004( r1) # 044fc
li r8, 0x02 # 04500
b major_0x02980_0x134 # 04504
/***********************************************************
wordfill
************************************************************
Xrefs:
setup
panic_offset_to_r1_minus_0x810_x48__0x9dfc_to_prev_plus_4_20_36
************************************************************
> r8 = dest
> r22 = len in bytes
> r23 = fillword
***********************************************************/
wordfill: /* < outside referer */
addic. r22, r22, -0x04 # 04508
stwx r23, r8, r22 # 0450c
bne+ wordfill # 04510
blr # 04514
/***********************************************************
major_0x04518
***********************************************************/
.long 0x60000000 # 04518
.long 0x60000000 # 0451c
/***********************************************************
reset_trap
************************************************************
Handle a 68k reset trap.
Some messing around with 601 RTC vs later timebase registers.
If Gary Davidian's first name and birthdate were in the 68k's A0/A1 (the 'skeleton key'), do something. Otherwise, farm it out to non_skeleton_reset_trap.
************************************************************
Xrefs:
"lisori_caller"
************************************************************
> r3 = a0
> r4 = a1
***********************************************************/
reset_trap: /* < outside referer */
# r6 = ewa
bl save_registers_from_r14 # 04520
# r8 = sprg0 (not used by me)
mfspr r9, 287/*pvr*/ # 04524
rlwinm. r9, r9, 0, 0, 14 # 04528
xoris r8, r3, 256 * 'G'+'a' # 0452c
beq- reset_trap_cpu_not_601 # 04530
mftb r9, 0x10c # 04534
b reset_trap_endif # 04538
reset_trap_cpu_not_601:
mfspr r9, 5/*rtcl*/ # 0453c
reset_trap_endif:
andis. r9, r9, 0xffff # 04540
cmplwi r8, 256 * 'r'+'y' # 04544
bne- non_skeleton_reset_trap # 04548
xoris r8, r4, 0x505 # 0454c
cmplwi r8, 0x1956 # 04550
bne- non_skeleton_reset_trap # 04554
andc r11, r11, r5 # 04558
lwz r8, 0x013c( r6) # 0455c
or r11, r11, r8 # 04560
bl 1f # 04564
.ascii "Skeleton key inserted at" # 04568
.short 0 # 04580
.align 2 # 04582
1: mflr r8 # 04584
bl print_string # 04588
mr r8, r11 # 0458c
bl print_hexword_spc # 04590
mr r8, r10 # 04594
bl print_hexword_spc # 04598
bl 1f # 0459c
.ascii "^n" # 045a0
.short 0 # 045a2
.align 2 # 045a4
1: mflr r8 # 045a4
bl print_string # 045a8
b skeleton_key # 045ac
/***********************************************************
non_skeleton_reset_trap
************************************************************
A 68k reset trap without Gary Davidian's magic numbers.
************************************************************
Xrefs:
reset_trap
***********************************************************/
non_skeleton_reset_trap: /* < outside referer */
bl 1f # 045b0
.ascii "ResetSystem trap entered^n" # 045b4
.short 0 # 045ce
.align 2 # 045d0
1: mflr r8 # 045d0
bl print_string # 045d4
lwz r8, 0x05a0( r1) # 045d8
cmpwi r8, 0x00 # 045dc
# r1 = kdp
beq+ setup_new_world # 045e0
bl 1f # 045e4
.ascii "Unplugging the replacement nanokernel^n" # 045e8
.short 0 # 0460f
.align 2 # 04611
1: mflr r8 # 04614
bl print_string # 04618
lwz r8, 0x05a0( r1) # 0461c
mfspr r1, 272/*sprg0*/ # 04620
addi r9, r8, 0x360 # 04624
mtspr 272/*sprg0*/, r8 # 04628
mtspr 275/*sprg3*/, r9 # 0462c
lwz r9, 0x0004( r1) # 04630
stw r9, 0x0004( r8) # 04634
lwz r9, 0x0018( r1) # 04638
stw r9, 0x0018( r8) # 0463c
stw r6, 0x065c( r8) # 04640
stw r7, 0x0660( r8) # 04644
lwz r9, -0x000c( r1) # 04648
stw r9, 0x0664( r8) # 0464c
# r6 = ewa
bl restore_registers_from_r14 # 04650
addi r10, r10, -0x04 # 04654
lwz r1, -0x0004( r1) # 04658
# sprg0 = for r1 and r6
# r1 = kdp
# r6 = register restore area
# r7 = flag to insert into XER
# r10 = new srr0 (return location)
# r11 = new srr1
# r12 = lr restore
# r13 = cr restore
b int_teardown # 0465c
/***********************************************************
pih_indirect
************************************************************
Xrefs:
"lisori_caller"
setup
major_0x04880
************************************************************
> r1 = kdp
***********************************************************/
pih_indirect: /* < outside referer */
lwz r9, 0x05b0( r1) # kdp.pih_proc_ptr # 04660
mtlr r9 # 04664
blr # 04668
/***********************************************************
major_0x0466c
***********************************************************/
.long 0x48000014 # 0466c
.long 0x60000000 # 04670
.long 0x60000000 # 04674
.long 0x60000000 # 04678
.long 0x60000000 # 0467c
/***********************************************************
regsave_debug
************************************************************
r2-r5 and r14-r31 (real registers) and r6-r13 (regsave) into compact area, then debug.
************************************************************
Xrefs:
"lisori_caller"
************************************************************
> r1 = compact area
***********************************************************/
regsave_debug: /* < outside referer */
stw r2, 0x0008( r1) # 04680
stw r3, 0x000c( r1) # 04684
stw r4, 0x0010( r1) # 04688
stw r5, 0x0014( r1) # 0468c
lwz r8, 0x013c( r6) # 04690
lwz r9, 0x0144( r6) # 04694
stw r8, 0x001c( r1) # 04698
stw r9, 0x0020( r1) # 0469c
lwz r8, 0x014c( r6) # 046a0
lwz r9, 0x0154( r6) # 046a4
stw r8, 0x0024( r1) # 046a8
stw r9, 0x0028( r1) # 046ac
lwz r8, 0x015c( r6) # 046b0
lwz r9, 0x0164( r6) # 046b4
stw r8, 0x002c( r1) # 046b8
stw r9, 0x0030( r1) # 046bc
lwz r8, 0x016c( r6) # 046c0
stw r8, 0x0034( r1) # 046c4
stmw r14, 0x0038( r1) # 046c8
bl panic_wrapper_0x02960 # 046cc
/***********************************************************
major_0x046d0
************************************************************
Xrefs:
"lisori_caller"
regsave_debug
***********************************************************/
major_0x046d0: /* < outside referer */
# r6 = saved at *(ewa + 0x18)
# sprg1 = saved at *(ewa + 4)
# rN (0,7,8,9,10,11,12,13, not r1) = saved at *(*(ewa - 0x14) + 0x104 + 8*N)
bl int_prepare # 046d0
# r0 = 0
# r1 = *(ewa - 4)
# r6 = kdp
# r7 = *(ewa - 0x10) # flags?
# r8 = ewa
# r10 = srr0
# r11 = srr1
# r12 = sprg2
# r13 = cr
li r8, 0x02 # 046d4
b major_0x02980_0x134 # 046d8
/***********************************************************
major_0x046dc
***********************************************************/
.long 0x60000000 # 046dc
/***********************************************************
major_0x046e0
************************************************************
Xrefs:
"lisori_caller"
***********************************************************/
major_0x046e0: /* < outside referer */
# r6 = saved at *(ewa + 0x18)
# sprg1 = saved at *(ewa + 4)
# rN (0,7,8,9,10,11,12,13, not r1) = saved at *(*(ewa - 0x14) + 0x104 + 8*N)
bl int_prepare # 046e0
# r0 = 0
# r1 = *(ewa - 4)
# r6 = kdp
# r7 = *(ewa - 0x10) # flags?
# r8 = ewa
# r10 = srr0
# r11 = srr1
# r12 = sprg2
# r13 = cr
mtcrf 0x3f, r7 # 046e4
bnel+ cr2, panic_wrapper_0x02960 # 046e8
li r8, 0x00 # 046ec
b major_0x02980_0x134 # 046f0
/***********************************************************
major_0x046f4
***********************************************************/
.long 0x4800000c # 046f4
.long 0x60000000 # 046f8
.long 0x60000000 # 046fc
/***********************************************************
major_0x04700
************************************************************
Xrefs:
"lisori_caller"
***********************************************************/
major_0x04700: /* < outside referer */
# r6 = saved at *(ewa + 0x18)
# sprg1 = saved at *(ewa + 4)
# rN (0,7,8,9,10,11,12,13, not r1) = saved at *(*(ewa - 0x14) + 0x104 + 8*N)
bl int_prepare # 04700
# r0 = 0
# r1 = *(ewa - 4)
# r6 = kdp
# r7 = *(ewa - 0x10) # flags?
# r8 = ewa
# r10 = srr0
# r11 = srr1
# r12 = sprg2
# r13 = cr
lwz r8, 0x0648( r1) # 04704
mtcr r11 # 04708
xor r8, r10, r8 # 0470c
bne- cr3, major_0x04700_0x144 # 04710
cmplwi r8, 0x00 # 04714
cmplwi cr1, r8, 0x20 # 04718
beq- major_0x04700_0x120 # 0471c
beq- cr1, major_0x04700_0x120 # 04720
cmplwi r8, 0x0c # 04724
cmplwi cr1, r8, 0x40 # 04728
beq- major_0x04700_0x120 # 0472c
blt- cr1, major_0x04700_0x110 # 04730
bne- cr6, major_0x04700_0x58 # 04734
stw r14, 0x0174( r6) # 04738
mfspr r14, 275/*sprg3*/ # 0473c
addi r8, r1, -0x750 # 04740
mfmsr r9 # 04744
mtspr 275/*sprg3*/, r8 # 04748
ori r8, r9, 0x10 # 0474c
mtmsr r8 # 04750
isync # 04754
major_0x04700_0x58:
lwz r8, 0x0000(r10) # 04758
bne- cr6, major_0x04700_0x74 # 0475c
isync # 04760
mtmsr r9 # 04764
isync # 04768
mtspr 275/*sprg3*/, r14 # 0476c
lwz r14, 0x0174( r6) # 04770
major_0x04700_0x74:
mtcr r7 # 04774
xoris r8, r8, 0xfff # 04778
cmplwi r8, 0x10 # 0477c
cmplwi cr1, r8, 0x00 # 04780
bge- major_0x04700_0x150 # 04784
cmplwi cr7, r8, 0x08 # 04788
cmplwi r8, 0x03 # 0478c
slwi r8, r8, 2 # 04790
beq- cr1, major_0x04700_0xac # 04794
beq- cr7, major_0x04700_0xd0 # 04798
beq- major_0x04700_0xac # 0479c
blt- cr4, major_0x04700_0x150 # 047a0
blt- cr2, major_0x04700_0xac # 047a4
ble- cr2, major_0x04700_0x150 # 047a8
major_0x04700_0xac:
add r8, r8, r1 # 047ac
lwz r9, 0x0e40( r8) # 047b0
addi r9, r9, 0x01 # 047b4
stw r9, 0x0e40( r8) # 047b8
major_0x04700_0xbc:
lwz r8, 0x05f0( r8) # 047bc
mtlr r8 # 047c0
addi r10, r10, 0x04 # 047c4
rlwimi r7, r7, 27, 26, 26 # 047c8
blr # 047cc
major_0x04700_0xd0:
lwz r9, 0x0104( r6) # 047d0
add r8, r8, r1 # 047d4
cmpwi r9, -0x01 # 047d8
lwz r9, 0x0e40( r8) # 047dc
addi r9, r9, 0x01 # 047e0
stw r9, 0x0e40( r8) # 047e4
bne+ major_0x04700_0xbc # 047e8
addi r10, r10, 0x04 # 047ec
rlwimi r7, r7, 27, 26, 26 # 047f0
mfspr r8, 272/*sprg0*/ # 047f4
rlwimi r13, r7, 8, 2, 2 # 047f8
lwz r9, -0x0008( r8) # 047fc
xoris r13, r13, 0x2000 # 04800
lwz r8, 0x00ec( r9) # 04804
stw r8, 0x0104( r6) # 04808
b skeleton_key # 0480c
major_0x04700_0x110:
mtcr r7 # 04810
blt- cr4, major_0x04700_0x150 # 04814
blt- cr2, major_0x04700_0x120 # 04818
ble- cr2, major_0x04700_0x150 # 0481c
major_0x04700_0x120:
add r8, r8, r1 # 04820
lwz r9, 0x0e40( r8) # 04824
lwz r10, 0x05f0( r8) # 04828
addi r9, r9, 0x01 # 0482c
stw r9, 0x0e40( r8) # 04830
mtlr r10 # 04834
mr r10, r12 # 04838
rlwimi r7, r7, 27, 26, 26 # 0483c
blr # 04840
major_0x04700_0x144:
blt+ cr3, major_0x06a14 # 04844
bgt- cr3, major_0x06a14 # 04848
bso- cr2, major_0x04700_0x160 # 0484c
major_0x04700_0x150:
rlwinm r8, r11, 17, 28, 29 # 04850
addi r8, r8, 0x4b3 # 04854
rlwnm r8, r8, r8, 0x1c, 0x1f # 04858
b major_0x02980_0x134 # 0485c
major_0x04700_0x160:
li r8, 0x03 # 04860
bso+ cr3, major_0x02980_0x134 # 04864
addi r10, r10, 0x04 # 04868
rlwimi r7, r7, 27, 26, 26 # 0486c
b major_0x02980_0x134 # 04870
/***********************************************************
major_0x04874
***********************************************************/
.long 0x4800000c # 04874
.long 0x60000000 # 04878
.long 0x60000000 # 0487c
/***********************************************************
major_0x04880
************************************************************
Xrefs:
"lisori_caller"
***********************************************************/
major_0x04880: /* < outside referer */
# r6 = saved at *(ewa + 0x18)
# sprg1 = saved at *(ewa + 4)
# rN (0,7,8,9,10,11,12,13, not r1) = saved at *(*(ewa - 0x14) + 0x104 + 8*N)
bl int_prepare # 04880
# r0 = 0
# r1 = *(ewa - 4)
# r6 = kdp
# r7 = *(ewa - 0x10) # flags?
# r8 = ewa
# r10 = srr0
# r11 = srr1
# r12 = sprg2
# r13 = cr
rlwinm. r9, r11, 0, 16, 16 # 04884
beq+ major_0x03940_0x170 # 04888
lwz r9, -0x0338( r8) # 0488c
lwz r9, 0x0020( r9) # 04890
cmpwi r9, 0x02 # 04894
# r1 = kdp
blt+ pih_indirect # 04898
# r6 = ewa
bl save_registers_from_r14 # 0489c
# r8 = sprg0 (not used by me)
li r9, 0x09 # 048a0
stw r9, -0x0238( r8) # 048a4
li r8, 0x01 # 048a8
# r7 = flags
# r8 = usually 2?
bl SIGP # 048ac
# r6 = ewa
bl restore_registers_from_r14 # 048b0
cmpwi r8, -0x725e # 048b4
cmpwi cr1, r8, -0x725d # 048b8
cmpwi cr2, r8, -0x725f # 048bc
# r1 = kdp
beq+ pih_indirect # 048c0
beq+ cr1, skeleton_key # 048c4
# r1 = kdp
bne+ cr2, pih_indirect # 048c8
mfspr r9, 272/*sprg0*/ # 048cc
li r8, 0x01 # 048d0
stb r8, -0x0118( r9) # 048d4
b skeleton_key # 048d8
/***********************************************************
major_0x048dc
***********************************************************/
.long 0x60000000 # 048dc
/***********************************************************
SIGP
************************************************************
Really need to figure out what this does...
************************************************************
Xrefs:
major_0x04880
major_0x0ba80
major_0x0bb20
major_0x0bc2c
major_0x0bccc
NKCpuPlugin
major_0x14af8
major_0x16bb4
************************************************************
> r7 = flags
> r8 = usually 2?
***********************************************************/
SIGP: /* < outside referer */
mfspr r23, 272/*sprg0*/ # 048e0
mtcr r7 # 048e4
lwz r16, -0x001c(r23) # 048e8
slwi r20, r3, 2 # 048ec
stw r16, -0x02ac(r23) # 048f0
blt- cr4, major_0x04a20_0x18 # 048f4
cmpwi cr2, r8, 0x00 # 048f8
lwz r18, -0x0238(r23) # 048fc
beq- cr2, SIGP_0x28 # 04900
slwi r20, r18, 2 # 04904
SIGP_0x28:
lwz r22, -0x0338(r23) # 04908
li r8, -0x7266 # 0490c
lwz r17, 0x0038(r22) # 04910
lwz r16, 0x0044(r22) # 04914
mr. r17, r17 # 04918
beqlr- # 0491c
slwi r16, r16, 2 # 04920
li r8, -0x7267 # 04924
cmplw r20, r16 # 04928
bgelr- # 0492c
stw r10, -0x02d0(r23) # 04930
stw r11, -0x02cc(r23) # 04934
stw r12, -0x02c8(r23) # 04938
stw r13, -0x02c4(r23) # 0493c
mfxer r16 # 04940
mfctr r17 # 04944
stw r16, -0x02c0(r23) # 04948
mflr r16 # 0494c
stw r17, -0x02bc(r23) # 04950
stw r16, -0x02b8(r23) # 04954
stw r6, -0x02b4(r23) # 04958
stw r7, -0x02b0(r23) # 0495c
lwz r9, -0x001c(r23) # 04960
lwz r8, 0x004c(r22) # 04964
cmpw r9, r8 # 04968
beq- SIGP_0x94 # 0496c
bl major_0x13f78 # 04970
SIGP_0x94:
lwz r16, 0x0004(r23) # 04974
lwz r17, 0x0018(r23) # 04978
stw r16, 0x010c( r6) # 0497c
stw r2, 0x0114( r6) # 04980
stw r3, 0x011c( r6) # 04984
stw r4, 0x0124( r6) # 04988
stw r5, 0x012c( r6) # 0498c
stw r17, 0x0134( r6) # 04990
lwz r17, 0x0648( r1) # 04994
lhz r16, -0x0116(r23) # 04998
lwz r19, -0x0964( r1) # 0499c
slwi r16, r16, 2 # 049a0
rlwinm r19, r19, 0, 18, 15 # 049a4
lwz r8, 0x003c(r22) # 049a8
lwz r9, 0x0040(r22) # 049ac
lwzx r20, r8, r20 # 049b0
lwz r18, 0x0000(r20) # 049b4
mtlr r17 # 049b8
mtspr 26/*srr0*/, r18 # 049bc
mtspr 27/*srr1*/, r19 # 049c0
lwzx r1, r9, r16 # 049c4
lwz r2, 0x0004(r20) # 049c8
srwi r3, r16, 2 # 049cc
ori r7, r7, 0x8000 # 049d0
mr r16, r6 # 049d4
stw r7, -0x0010(r23) # 049d8
addi r6, r23, -0x318 # 049dc
stw r6, -0x0014(r23) # 049e0
beq- cr2, SIGP_0x128 # 049e4
lwz r4, -0x0234(r23) # 049e8
lwz r5, -0x0230(r23) # 049ec
lwz r6, -0x022c(r23) # 049f0
lwz r7, -0x0228(r23) # 049f4
lwz r8, -0x0224(r23) # 049f8
lwz r9, -0x0220(r23) # 049fc
lwz r10, -0x021c(r23) # 04a00
rfi # 04a04
SIGP_0x128:
lwz r6, 0x0134(r16) # 04a08
lwz r7, 0x013c(r16) # 04a0c
lwz r8, 0x0144(r16) # 04a10
lwz r9, 0x014c(r16) # 04a14
lwz r10, 0x0154(r16) # 04a18
rfi # 04a1c
/***********************************************************
major_0x04a20
************************************************************
Xrefs:
"lisori_caller"
major_0x02980
major_0x03be0
SIGP
***********************************************************/
major_0x04a20: /* < outside referer */
mfspr r23, 272/*sprg0*/ # 04a20
lwz r6, -0x0014(r23) # 04a24
lwz r7, -0x0010(r23) # 04a28
lwz r1, -0x0004(r23) # 04a2c
mfspr r10, 26/*srr0*/ # 04a30
mfspr r11, 27/*srr1*/ # 04a34
major_0x04a20_0x18: /* < outside referer */
mfspr r23, 272/*sprg0*/ # 04a38
lwz r7, -0x02b0(r23) # 04a3c
andis. r8, r11, 0x02 # 04a40
stw r7, -0x0010(r23) # 04a44
bne- major_0x04a20_0x30 # 04a48
li r3, -0x7265 # 04a4c
major_0x04a20_0x30:
lwz r8, -0x02ac(r23) # 04a50
lwz r9, -0x001c(r23) # 04a54
cmpw r9, r8 # 04a58
beq- major_0x04a20_0x44 # 04a5c
bl major_0x13f78 # 04a60
major_0x04a20_0x44:
lwz r10, -0x02d0(r23) # 04a64
lwz r11, -0x02cc(r23) # 04a68
lwz r12, -0x02c8(r23) # 04a6c
lwz r13, -0x02c4(r23) # 04a70
lwz r8, -0x02c0(r23) # 04a74
lwz r9, -0x02bc(r23) # 04a78
mtxer r8 # 04a7c
lwz r8, -0x02b8(r23) # 04a80
lwz r6, -0x02b4(r23) # 04a84
mtctr r9 # 04a88
stw r6, -0x0014(r23) # 04a8c
mtlr r8 # 04a90
mr r8, r3 # 04a94
mr r9, r4 # 04a98
lwz r16, 0x010c( r6) # 04a9c
lwz r2, 0x0114( r6) # 04aa0
lwz r3, 0x011c( r6) # 04aa4
lwz r4, 0x0124( r6) # 04aa8
lwz r5, 0x012c( r6) # 04aac
lwz r17, 0x0134( r6) # 04ab0
stw r16, 0x0004(r23) # 04ab4
stw r17, 0x0018(r23) # 04ab8
blr # 04abc
/***********************************************************
sc_vector
************************************************************
Not fully sure about this one
************************************************************
Xrefs:
"lisori_caller"
***********************************************************/
sc_vector: /* < outside referer */
cmpwi r0, -0x03 # 04ac0
bne- sc_vector_0x2c # 04ac4
mfspr r1, 27/*srr1*/ # 04ac8
rlwinm. r0, r1, 26, 26, 27 # 04acc
rlwinm r1, r1, 0, 18, 16 # 04ad0
blt- sc_vector_0x1c # 04ad4
mtspr 27/*srr1*/, r1 # 04ad8
sc_vector_0x1c:
mfspr r1, 274/*sprg2*/ # 04adc
mtlr r1 # 04ae0
mfspr r1, 273/*sprg1*/ # 04ae4
rfi # 04ae8
sc_vector_0x2c:
cmpwi r0, -0x01 # 04aec
mfspr r1, 272/*sprg0*/ # 04af0
bne- sc_vector_0x50 # 04af4
lwz r0, -0x0010( r1) # 04af8
mfspr r1, 274/*sprg2*/ # 04afc
rlwinm. r0, r0, 0, 10, 10 # 04b00
mtlr r1 # 04b04
mfspr r1, 273/*sprg1*/ # 04b08
rfi # 04b0c
sc_vector_0x50:
cmpwi r0, -0x02 # 04b10
bne- sc_vector_not_special # 04b14
lwz r0, -0x0010( r1) # 04b18
lwz r1, -0x0008( r1) # 04b1c
rlwinm. r0, r0, 0, 10, 10 # 04b20
lwz r0, 0x00ec( r1) # 04b24
mfspr r1, 274/*sprg2*/ # 04b28
mtlr r1 # 04b2c
mfspr r1, 273/*sprg1*/ # 04b30
rfi # 04b34
sc_vector_not_special:
# r6 = saved at *(ewa + 0x18)
# sprg1 = saved at *(ewa + 4)
# rN (0,7,8,9,10,11,12,13, not r1) = saved at *(*(ewa - 0x14) + 0x104 + 8*N)
bl int_prepare # 04b38
# r0 = 0
# r1 = *(ewa - 4)
# r6 = kdp
# r7 = *(ewa - 0x10) # flags?
# r8 = ewa
# r10 = srr0
# r11 = srr1
# r12 = sprg2
# r13 = cr
lwz r9, 0x0e60( r1) # 04b3c
addi r9, r9, 0x01 # 04b40
stw r9, 0x0e60( r1) # 04b44
oris r11, r11, 0x02 # 04b48
rlwimi r7, r7, 27, 26, 26 # 04b4c
# r1 = kdp
# r6 = save area
b syscall # 04b50
/***********************************************************
major_0x04b54
***********************************************************/
.long 0x4800000c # 04b54
.long 0x60000000 # 04b58
.long 0x60000000 # 04b5c
/***********************************************************
major_0x04b60
************************************************************
Xrefs:
"lisori_caller"
***********************************************************/
major_0x04b60: /* < outside referer */
# r6 = saved at *(ewa + 0x18)
# sprg1 = saved at *(ewa + 4)
# rN (0,7,8,9,10,11,12,13, not r1) = saved at *(*(ewa - 0x14) + 0x104 + 8*N)
bl int_prepare # 04b60
# r0 = 0
# r1 = *(ewa - 4)
# r6 = kdp
# r7 = *(ewa - 0x10) # flags?
# r8 = ewa
# r10 = srr0
# r11 = srr1
# r12 = sprg2
# r13 = cr
li r8, 0x08 # 04b64
b major_0x02980_0x134 # 04b68
/***********************************************************
major_0x04b6c
***********************************************************/
.long 0x48000014 # 04b6c
.long 0x60000000 # 04b70
.long 0x60000000 # 04b74
.long 0x60000000 # 04b78
.long 0x60000000 # 04b7c
/***********************************************************
rfi_to_kern
************************************************************
NB: I named this function too early. I do not understand it.
incr_srr0__copy_sprg2_to_lr__copy_sprg1_to_r1__rfi
The convention is:
SPRG0: ("EWA" -- core-specific Exception Work Area)
"Software may load a unique physical address in this register to identify an area of memory reserved for use by the first-level exception handler. This area must be unique for each processor in the system."
SPRG1: ("r1" -- kernel data page)
"This register may be used as a scratch register by the first-level exception handler to save the content of a GPR. That GPR then can be loaded from SPRG0 and used as a base register to save other GPRs to memory."
SPRG2: ("LR" -- return address?)
"This register may be used by the operating system as needed."
SPRG3: ("vecBase" -- super useful)
"This register may be used by the operating system as needed."
************************************************************
Xrefs:
"lisori_caller"
***********************************************************/
rfi_to_kern: /* < outside referer */
mfspr r1, 26/*srr0*/ # 04b80
addi r1, r1, 0x04 # 04b84
mtspr 26/*srr0*/, r1 # 04b88
mfspr r1, 274/*sprg2*/ # 04b8c
mtlr r1 # 04b90
mfspr r1, 273/*sprg1*/ # 04b94
rfi # 04b98
.long 0 # 04b9c
.long 0 # 04ba0
.long 0 # 04ba4
.long 0 # 04ba8
.long 0 # 04bac
.long 0 # 04bb0
.long 0 # 04bb4
.long 0 # 04bb8
/***********************************************************
major_0x04bbc
***********************************************************/
.long 0x60000000 # 04bbc
/***********************************************************
major_0x04bc0
************************************************************
Xrefs:
"lisori_caller"
***********************************************************/
major_0x04bc0: /* < outside referer */
mfspr r1, 27/*srr1*/ # 04bc0
oris r1, r1, 0x200 # 04bc4
mtspr 27/*srr1*/, r1 # 04bc8
mfspr r1, 274/*sprg2*/ # 04bcc
mtlr r1 # 04bd0
mfspr r1, 273/*sprg1*/ # 04bd4
rfi # 04bd8
.long 0 # 04bdc
.long 0 # 04be0
.long 0 # 04be4
.long 0 # 04be8
.long 0 # 04bec
.long 0 # 04bf0
.long 0 # 04bf4
.long 0 # 04bf8
/***********************************************************
major_0x04bfc
***********************************************************/
.long 0x60000000 # 04bfc
/***********************************************************
panic_wrapper_0x04c00
************************************************************
Xrefs:
major_0x04c20
***********************************************************/
panic_wrapper_0x04c00: /* < outside referer */
b panic # 04c00
/***********************************************************
major_0x04c04
***********************************************************/
.long 0x4800001c # 04c04
.long 0x60000000 # 04c08
.long 0x60000000 # 04c0c
.long 0x60000000 # 04c10
.long 0x60000000 # 04c14
.long 0x60000000 # 04c18
.long 0x60000000 # 04c1c
/***********************************************************
major_0x04c20
************************************************************
Xrefs:
setup
major_0x035a0
major_0x03940
dsi_vector
major_0x08794
print_memory_logical
***********************************************************/
major_0x04c20: /* < outside referer */
mfspr r29, 272/*sprg0*/ # 04c20
mflr r28 # 04c24
stw r8, -0x00dc(r29) # 04c28
mfcr r8 # 04c2c
stw r9, -0x00d8(r29) # 04c30
stw r8, -0x00a4(r29) # 04c34
stw r14, -0x00d4(r29) # 04c38
stw r15, -0x00d0(r29) # 04c3c
stw r16, -0x00cc(r29) # 04c40
stw r17, -0x00c8(r29) # 04c44
stw r18, -0x00c4(r29) # 04c48
stw r19, -0x00c0(r29) # 04c4c
stw r20, -0x00bc(r29) # 04c50
stw r21, -0x00b8(r29) # 04c54
stw r22, -0x00b4(r29) # 04c58
stw r28, -0x00e0(r29) # 04c5c
b major_0x04c20_0x88 # 04c60
major_0x04c20_0x44:
mfspr r29, 272/*sprg0*/ # 04c64
lwz r8, -0x00a4(r29) # 04c68
lwz r28, -0x00e0(r29) # 04c6c
mtcrf 0x7f, r8 # 04c70
lwz r8, -0x00dc(r29) # 04c74
mtlr r28 # 04c78
lwz r9, -0x00d8(r29) # 04c7c
lwz r14, -0x00d4(r29) # 04c80
lwz r15, -0x00d0(r29) # 04c84
lwz r16, -0x00cc(r29) # 04c88
lwz r17, -0x00c8(r29) # 04c8c
lwz r18, -0x00c4(r29) # 04c90
lwz r19, -0x00c0(r29) # 04c94
lwz r20, -0x00bc(r29) # 04c98
lwz r21, -0x00b8(r29) # 04c9c
lwz r22, -0x00b4(r29) # 04ca0
blr # 04ca4
major_0x04c20_0x88:
mfspr r30, 272/*sprg0*/ # 04ca8
mr r9, r27 # 04cac
lwz r8, -0x001c(r30) # 04cb0
bl major_0x10320_0xcc # 04cb4
mr r31, r8 # 04cb8
stw r8, -0x00e4(r30) # 04cbc
stw r27, -0x00e8(r30) # 04cc0
lwz r16, 0x0024(r31) # 04cc4
lwz r17, 0x0020(r31) # 04cc8
cmplw r16, r27 # 04ccc
lwz r18, 0x007c(r31) # 04cd0
bgt- major_0x04c20_0x1a0 # 04cd4
bgt+ major_0x04c20_0x44 # 04cd8
and r28, r27, r18 # 04cdc
rlwinm. r26, r17, 0, 16, 16 # 04ce0
lwz r17, 0x0038(r31) # 04ce4
beq- major_0x04c20_0xfc # 04ce8
lwz r18, 0x0070(r31) # 04cec
subf r19, r16, r28 # 04cf0
clrlwi r31, r18, 0x1e # 04cf4
cmpwi cr7, r17, -0x01 # 04cf8
cmpwi cr6, r31, 0x00 # 04cfc
beq- cr7, major_0x04c20_0x1a0 # 04d00
beq+ cr6, major_0x04c20_0x44 # 04d04
cmpwi r17, 0x01 # 04d08
add r31, r18, r19 # 04d0c
blt+ major_0x04c20_0x44 # 04d10
li r26, 0x00 # 04d14
b major_0x04c20_0x208 # 04d18
major_0x04c20_0xfc:
mr r8, r27 # 04d1c
bl major_0x12248_0x1e4 # 04d20
lwz r28, 0x0000(r30) # 04d24
mr r26, r30 # 04d28
mr r8, r27 # 04d2c
bl major_0x12248_0x254 # 04d30
beq- major_0x04c20_0x12c # 04d34
lhz r16, 0x0000(r30) # 04d38
rlwinm. r8, r16, 0, 16, 16 # 04d3c
bne- major_0x04c20_0x12c # 04d40
srwi r16, r16, 1 # 04d44
sth r16, 0x0000(r30) # 04d48
major_0x04c20_0x12c:
lwz r8, 0x0024(r31) # 04d4c
lwz r9, 0x06b4( r1) # 04d50
cmpwi r8, 0x00 # 04d54
cmpwi cr6, r9, 0x00 # 04d58
li r8, 0x801 # 04d5c
li r9, 0x01 # 04d60
bne- major_0x04c20_0x154 # 04d64
beq- cr6, major_0x04c20_0x154 # 04d68
li r8, 0x881 # 04d6c
li r9, 0x81 # 04d70
major_0x04c20_0x154:
lwz r31, 0x0688( r1) # 04d74
and. r30, r28, r8 # 04d78
rlwimi r31, r28, 0, 0, 19 # 04d7c
cmplwi cr6, r30, 0x800 # 04d80
cmplwi r30, 0x01 # 04d84
bge- cr6, major_0x04c20_0x2ec # 04d88
cmplw cr7, r30, r9 # 04d8c
ori r31, r31, 0x100 # 04d90
rlwimi r31, r28, 28, 28, 28 # 04d94
rlwimi r31, r28, 3, 24, 24 # 04d98
rlwimi r31, r28, 31, 26, 26 # 04d9c
rlwimi r31, r28, 1, 25, 25 # 04da0
xori r31, r31, 0x40 # 04da4
rlwimi r31, r28, 30, 31, 31 # 04da8
rlwimi r31, r28, 0, 30, 30 # 04dac
xori r31, r31, 0x02 # 04db0
beq- major_0x04c20_0x208 # 04db4
blt+ cr7, major_0x04c20_0x44 # 04db8
bl panic_wrapper_0x04c00 # 04dbc
major_0x04c20_0x1a0:
lwz r29, 0x05e8( r1) # 04dc0
rlwinm r28, r27, 7, 25, 28 # 04dc4
lwzx r29, r29, r28 # 04dc8
rlwinm r28, r27, 20, 16, 31 # 04dcc
lhz r30, 0x0000(r29) # 04dd0
b major_0x04c20_0x1bc # 04dd4
major_0x04c20_0x1b8:
lhzu r30, 0x0008(r29) # 04dd8
major_0x04c20_0x1bc:
lhz r31, 0x0002(r29) # 04ddc
subf r30, r30, r28 # 04de0
cmplw cr7, r30, r31 # 04de4
bgt+ cr7, major_0x04c20_0x1b8 # 04de8
lwz r28, 0x0690( r1) # 04dec
lwz r31, 0x0004(r29) # 04df0
cmpwi cr7, r28, 0x00 # 04df4
bnel- cr7, major_0x04c20_0x314 # 04df8
rlwinm. r26, r31, 23, 29, 30 # 04dfc
cmplwi cr7, r26, 0x06 # 04e00
beq- major_0x04c20_0x200 # 04e04
cmplwi cr6, r26, 0x02 # 04e08
beq- cr7, major_0x04c20_0x368 # 04e0c
beq- cr6, major_0x04c20_0x3b8 # 04e10
b major_0x04c20_0x44 # 04e14
.long 0x41800168 # 04e18
.long 0x418101bc # 04e1c
major_0x04c20_0x200:
slwi r28, r30, 12 # 04e20
add r31, r31, r28 # 04e24
major_0x04c20_0x208:
mfsrin r30, r27 # 04e28
rlwinm r28, r27, 26, 10, 25 # 04e2c
rlwinm r30, r30, 6, 7, 25 # 04e30
xor r28, r28, r30 # 04e34
lwz r30, 0x06a0( r1) # 04e38
lwz r29, 0x06a4( r1) # 04e3c
and r28, r28, r30 # 04e40
or. r29, r29, r28 # 04e44
major_0x04c20_0x228:
lwz r30, 0x0000(r29) # 04e48
lwz r28, 0x0008(r29) # 04e4c
cmpwi cr6, r30, 0x00 # 04e50
lwz r30, 0x0010(r29) # 04e54
cmpwi cr7, r28, 0x00 # 04e58
lwzu r28, 0x0018(r29) # 04e5c
bge- cr6, major_0x04c20_0x298 # 04e60
cmpwi cr6, r30, 0x00 # 04e64
lwzu r30, 0x0008(r29) # 04e68
bge- cr7, major_0x04c20_0x298 # 04e6c
cmpwi cr7, r28, 0x00 # 04e70
lwzu r28, 0x0008(r29) # 04e74
bge- cr6, major_0x04c20_0x298 # 04e78
cmpwi cr6, r30, 0x00 # 04e7c
lwzu r30, 0x0008(r29) # 04e80
bge- cr7, major_0x04c20_0x298 # 04e84
cmpwi cr7, r28, 0x00 # 04e88
lwzu r28, 0x0008(r29) # 04e8c
bge- cr6, major_0x04c20_0x298 # 04e90
cmpwi cr6, r30, 0x00 # 04e94
addi r29, r29, 0x08 # 04e98
bge- cr7, major_0x04c20_0x298 # 04e9c
cmpwi cr7, r28, 0x00 # 04ea0
addi r29, r29, 0x08 # 04ea4
bge- cr6, major_0x04c20_0x298 # 04ea8
rlwinm r28, r31, 0, 26, 26 # 04eac
addi r29, r29, 0x08 # 04eb0
blt- cr7, major_0x04c20_0x3e0 # 04eb4
major_0x04c20_0x298:
cmpwi r26, 0x00 # 04eb8
mfsrin r28, r27 # 04ebc
rlwinm r30, r27, 10, 26, 31 # 04ec0
stw r27, 0x0694( r1) # 04ec4
oris r30, r30, 0x8000 # 04ec8
ori r31, r31, 0x100 # 04ecc
rlwimi r30, r31, 27, 25, 25 # 04ed0
rlwinm r31, r31, 0, 21, 19 # 04ed4
rlwimi r30, r28, 7, 1, 24 # 04ed8
stw r31, -0x0014(r29) # 04edc
eieio # 04ee0
stwu r30, -0x0018(r29) # 04ee4
sync # 04ee8
lwz r28, 0x0e94( r1) # 04eec
stw r29, 0x0698( r1) # 04ef0
addi r28, r28, 0x01 # 04ef4
stw r28, 0x0e94( r1) # 04ef8
beq+ major_0x04c20_0x44 # 04efc
cmpwi r26, 0x5a5a # 04f00
bne- major_0x04c20_0x2f4 # 04f04
stw r29, 0x0690( r1) # 04f08
major_0x04c20_0x2ec:
cmpw r29, r29 # 04f0c
b major_0x04c20_0x44 # 04f10
major_0x04c20_0x2f4:
lwz r28, 0x0000(r26) # 04f14
lwz r30, 0x06a4( r1) # 04f18
ori r28, r28, 0x800 # 04f1c
subf r30, r30, r29 # 04f20
cmpw r29, r29 # 04f24
rlwimi r28, r30, 9, 0, 19 # 04f28
stw r28, 0x0000(r26) # 04f2c
b major_0x04c20_0x44 # 04f30
major_0x04c20_0x314:
lwz r28, 0x0e98( r1) # 04f34
lwz r29, 0x0690( r1) # 04f38
addi r28, r28, 0x01 # 04f3c
stw r28, 0x0e98( r1) # 04f40
li r28, 0x00 # 04f44
stw r28, 0x0000(r29) # 04f48
lwz r29, 0x068c( r1) # 04f4c
stw r28, 0x068c( r1) # 04f50
stw r28, 0x0690( r1) # 04f54
mfspr r28, 287/*pvr*/ # 04f58
rlwinm. r28, r28, 0, 0, 14 # 04f5c
sync # 04f60
tlbie r29 # 04f64
beq- major_0x04c20_0x354 # 04f68
sync # 04f6c
tlbsync # 04f70
major_0x04c20_0x354:
sync # 04f74
isync # 04f78
blr # 04f7c
.long 0x57fca803 # 04f80
.long 0x40800068 # 04f84
major_0x04c20_0x368:
slwi r28, r30, 2 # 04f88
rlwinm r26, r31, 22, 0, 29 # 04f8c
lwzux r28, r26, r28 # 04f90
lwz r31, 0x0688( r1) # 04f94
andi. r30, r28, 0x881 # 04f98
rlwimi r31, r28, 0, 0, 19 # 04f9c
cmplwi cr6, r30, 0x800 # 04fa0
cmplwi cr7, r30, 0x81 # 04fa4
cmplwi r30, 0x01 # 04fa8
bge+ cr6, major_0x04c20_0x2ec # 04fac
cmplwi cr7, r30, 0x81 # 04fb0
ori r31, r31, 0x100 # 04fb4
rlwimi r31, r28, 3, 24, 24 # 04fb8
rlwimi r31, r28, 31, 26, 26 # 04fbc
rlwimi r31, r28, 1, 25, 25 # 04fc0
xori r31, r31, 0x40 # 04fc4
rlwimi r31, r28, 30, 31, 31 # 04fc8
beq+ major_0x04c20_0x208 # 04fcc
blt+ cr7, major_0x04c20_0x44 # 04fd0
bl panic_wrapper_0x04c00 # 04fd4
major_0x04c20_0x3b8:
ori r28, r27, 0xfff # 04fd8
stw r28, 0x068c( r1) # 04fdc
rlwinm r31, r31, 0, 22, 19 # 04fe0
li r26, 0x5a5a # 04fe4
b major_0x04c20_0x208 # 04fe8
.long 0x4181fc78 # 04fec
.long 0x4bfffc11 # 04ff0
.long 0x3ba105c8 # 04ff4
.long 0x48000281 # 04ff8
.long 0x4bfffc68 # 04ffc
major_0x04c20_0x3e0:
cmplw cr6, r28, r26 # 05000
addi r29, r29, -0x50 # 05004
ble- cr6, major_0x04c20_0x400 # 05008
crnot r2, r2 # 0500c
lwz r30, 0x06a0( r1) # 05010
xori r31, r31, 0x800 # 05014
xor r29, r29, r30 # 05018
beq+ major_0x04c20_0x228 # 0501c
major_0x04c20_0x400:
lwz r26, 0x069c( r1) # 05020
crclr 4*cr6 + eq # 05024
rlwimi r26, r29, 0, 0, 25 # 05028
li r9, 0x08 # 0502c
addi r29, r26, 0x08 # 05030
b major_0x04c20_0x428 # 05034
.long 0x409a0008 # 05038
.long 0x7fbaeb78 # 0503c
major_0x04c20_0x420:
cmpw cr6, r29, r26 # 05040
addi r29, r29, 0x08 # 05044
major_0x04c20_0x428:
rlwimi r29, r26, 0, 0, 25 # 05048
lwz r31, 0x0004(r29) # 0504c
lwz r30, 0x0000(r29) # 05050
beq- cr6, major_0x04c20_0x444 # 05054
rlwinm r28, r31, 30, 25, 25 # 05058
andc. r28, r28, r30 # 0505c
bne+ major_0x04c20_0x420 # 05060
major_0x04c20_0x444:
addi r9, r9, -0x01 # 05064
cmpwi cr7, r9, 0x00 # 05068
rlwinm r31, r30, 0, 25, 25 # 0506c
blel+ cr7, panic_wrapper_0x04c00 # 05070
rlwinm r28, r30, 1, 0, 3 # 05074
neg r31, r31 # 05078
rlwimi r28, r30, 22, 4, 9 # 0507c
xor r31, r31, r29 # 05080
rlwimi r28, r30, 5, 10, 19 # 05084
rlwinm r31, r31, 6, 10, 19 # 05088
xor r28, r28, r31 # 0508c
xoris r30, r30, 0x8000 # 05090
lwz r31, 0x0e9c( r1) # 05094
stw r29, 0x069c( r1) # 05098
addi r31, r31, 0x01 # 0509c
stw r31, 0x0e9c( r1) # 050a0
lwz r31, 0x0e98( r1) # 050a4
stw r30, 0x0000(r29) # 050a8
addi r31, r31, 0x01 # 050ac
stw r31, 0x0e98( r1) # 050b0
sync # 050b4
mfspr r31, 287/*pvr*/ # 050b8
rlwinm. r31, r31, 0, 0, 14 # 050bc
tlbie r28 # 050c0
beq- major_0x04c20_0x4b0 # 050c4
sync # 050c8
tlbsync # 050cc
major_0x04c20_0x4b0:
sync # 050d0
isync # 050d4
li r8, -0x01 # 050d8
stw r8, 0x0340( r1) # 050dc
stw r8, 0x0348( r1) # 050e0
stw r8, 0x0350( r1) # 050e4
stw r8, 0x0358( r1) # 050e8
mfspr r8, 272/*sprg0*/ # 050ec
mr r9, r28 # 050f0
lwz r8, -0x001c( r8) # 050f4
bl major_0x10320_0xcc # 050f8
lwz r16, 0x0024( r8) # 050fc
mr r31, r8 # 05100
cmplw r16, r28 # 05104
mr r8, r28 # 05108
bgt- major_0x04c20_0x600 # 0510c
bgt+ panic_wrapper_0x04c00 # 05110
bl major_0x12248_0x1e4 # 05114
mr r26, r30 # 05118
beql+ major_0x04c20_0x88 # 0511c
major_0x04c20_0x500:
lwz r28, 0x0000(r26) # 05120
lwz r31, 0x0004(r29) # 05124
andi. r30, r28, 0x800 # 05128
rlwinm r30, r28, 23, 9, 28 # 0512c
xor r30, r30, r29 # 05130
beq+ panic_wrapper_0x04c00 # 05134
andi. r30, r30, 0xffff # 05138
xori r28, r28, 0x800 # 0513c
bne+ panic_wrapper_0x04c00 # 05140
rlwimi r28, r31, 0, 0, 19 # 05144
rlwimi r28, r31, 29, 27, 27 # 05148
rlwimi r28, r31, 27, 28, 28 # 0514c
stw r28, 0x0000(r26) # 05150
bl major_0x04c20_0x88 # 05154
bl 1f # 05158
.ascii "PTEG overflow: EA " # 0515c
.short 0 # 0516e
.align 2 # 05170
1: mflr r8 # 05170
bl print_string # 05174
mr r8, r27 # 05178
bl print_hexword_spc # 0517c
bl 1f # 05180
.ascii "Victim EA: " # 05184
.short 0 # 0518f
.align 2 # 05191
1: mflr r8 # 05194
bl print_string # 05198
mr r8, r28 # 0519c
bl print_hexword_spc # 051a0
bl 1f # 051a4
.ascii "MapInfo: " # 051a8
.short 0 # 051b1
.align 2 # 051b3
1: mflr r8 # 051b4
bl print_string # 051b8
mr r8, r29 # 051bc
bl print_hexword_spc # 051c0
lwz r16, 0x0000(r26) # 051c4
mr r8, r26 # 051c8
bl print_hexword_spc # 051cc
mr r8, r16 # 051d0
bl print_hexword_spc # 051d4
bl 1f # 051d8
.ascii " PTE: " # 051dc
.short 0 # 051e2
.align 2 # 051e4
1: mflr r8 # 051e4
bl print_string # 051e8
lwz r16, 0x0000(r29) # 051ec
lwz r17, 0x0004(r29) # 051f0
mr r8, r29 # 051f4
bl print_hexword_spc # 051f8
mr r8, r16 # 051fc
bl print_hexword_spc # 05200
mr r8, r17 # 05204
bl print_hexword_spc # 05208
bl 1f # 0520c
.ascii "^n" # 05210
.short 0 # 05212
.align 2 # 05214
1: mflr r8 # 05214
bl print_string # 05218
bl major_0x04c20_0x88 # 0521c
major_0x04c20_0x600:
lwz r26, 0x05e8( r1) # 05220
rlwinm r30, r28, 7, 25, 28 # 05224
lwzx r26, r26, r30 # 05228
major_0x04c20_0x60c:
lhz r30, 0x0000(r26) # 0522c
rlwinm r31, r28, 20, 16, 31 # 05230
subf r30, r30, r31 # 05234
lhz r31, 0x0002(r26) # 05238
addi r26, r26, 0x08 # 0523c
cmplw cr7, r30, r31 # 05240
lwz r31, -0x0004(r26) # 05244
andi. r31, r31, 0xe01 # 05248
cmpwi r31, 0xa01 # 0524c
bgt+ cr7, major_0x04c20_0x60c # 05250
beq+ major_0x04c20_0x60c # 05254
lwz r26, -0x0004(r26) # 05258
slwi r30, r30, 2 # 0525c
rlwinm r31, r26, 22, 30, 31 # 05260
cmpwi cr7, r31, 0x03 # 05264
rlwinm r26, r26, 22, 0, 29 # 05268
add r26, r26, r30 # 0526c
bnel+ cr7, major_0x04c20_0x88 # 05270
b major_0x04c20_0x500 # 05274
/***********************************************************
major_0x05278
************************************************************
Xrefs:
setup
***********************************************************/
major_0x05278: /* < outside referer */
sync # 05278
isync # 0527c
lwz r28, 0x0000(r29) # 05280
stw r28, 0x05e8( r1) # 05284
addi r28, r28, 0x84 # 05288
lis r31, 0x00 # 0528c
major_0x05278_0x18:
lwzu r30, -0x0008(r28) # 05290
addis r31, r31, -0x1000 # 05294
mr. r31, r31 # 05298
mtsrin r30, r31 # 0529c
bne+ major_0x05278_0x18 # 052a0
isync # 052a4
lwz r28, 0x0004(r29) # 052a8
mfspr r31, 287/*pvr*/ # 052ac
rlwinm. r31, r31, 0, 0, 14 # 052b0
addi r29, r1, 0x00 # 052b4
stw r28, 0x05ec( r1) # 052b8
beq- major_0x05278_0x168 # 052bc
li r30, 0x00 # 052c0
mtspr 528/*ibat0u*/, r30 # 052c4
mtspr 530/*ibat1u*/, r30 # 052c8
mtspr 532/*ibat2u*/, r30 # 052cc
mtspr 534/*ibat3u*/, r30 # 052d0
mtspr 536/*dbat0u*/, r30 # 052d4
mtspr 538/*dbat1u*/, r30 # 052d8
mtspr 540/*dbat2u*/, r30 # 052dc
mtspr 542/*dbat3u*/, r30 # 052e0
rlwimi r29, r28, 7, 25, 28 # 052e4
lwz r31, 0x0284(r29) # 052e8
lwz r30, 0x0280(r29) # 052ec
rlwinm r31, r31, 0, 29, 27 # 052f0
mtspr 529/*ibat0l*/, r31 # 052f4
mtspr 528/*ibat0u*/, r30 # 052f8
stw r31, 0x0304( r1) # 052fc
stw r30, 0x0300( r1) # 05300
rlwimi r29, r28, 11, 25, 28 # 05304
lwz r31, 0x0284(r29) # 05308
lwz r30, 0x0280(r29) # 0530c
rlwinm r31, r31, 0, 29, 27 # 05310
mtspr 531/*ibat1l*/, r31 # 05314
mtspr 530/*ibat1u*/, r30 # 05318
stw r31, 0x030c( r1) # 0531c
stw r30, 0x0308( r1) # 05320
rlwimi r29, r28, 15, 25, 28 # 05324
lwz r31, 0x0284(r29) # 05328
lwz r30, 0x0280(r29) # 0532c
rlwinm r31, r31, 0, 29, 27 # 05330
mtspr 533/*ibat2l*/, r31 # 05334
mtspr 532/*ibat2u*/, r30 # 05338
stw r31, 0x0314( r1) # 0533c
stw r30, 0x0310( r1) # 05340
rlwimi r29, r28, 19, 25, 28 # 05344
lwz r31, 0x0284(r29) # 05348
lwz r30, 0x0280(r29) # 0534c
rlwinm r31, r31, 0, 29, 27 # 05350
mtspr 535/*ibat3l*/, r31 # 05354
mtspr 534/*ibat3u*/, r30 # 05358
stw r31, 0x031c( r1) # 0535c
stw r30, 0x0318( r1) # 05360
rlwimi r29, r28, 23, 25, 28 # 05364
lwz r31, 0x0284(r29) # 05368
lwz r30, 0x0280(r29) # 0536c
mtspr 537/*dbat0l*/, r31 # 05370
mtspr 536/*dbat0u*/, r30 # 05374
stw r31, 0x0324( r1) # 05378
stw r30, 0x0320( r1) # 0537c
rlwimi r29, r28, 27, 25, 28 # 05380
lwz r31, 0x0284(r29) # 05384
lwz r30, 0x0280(r29) # 05388
mtspr 539/*dbat1l*/, r31 # 0538c
mtspr 538/*dbat1u*/, r30 # 05390
stw r31, 0x032c( r1) # 05394
stw r30, 0x0328( r1) # 05398
rlwimi r29, r28, 31, 25, 28 # 0539c
lwz r31, 0x0284(r29) # 053a0
lwz r30, 0x0280(r29) # 053a4
mtspr 541/*dbat2l*/, r31 # 053a8
mtspr 540/*dbat2u*/, r30 # 053ac
stw r31, 0x0334( r1) # 053b0
stw r30, 0x0330( r1) # 053b4
rlwimi r29, r28, 3, 25, 28 # 053b8
lwz r31, 0x0284(r29) # 053bc
lwz r30, 0x0280(r29) # 053c0
mtspr 543/*dbat3l*/, r31 # 053c4
mtspr 542/*dbat3u*/, r30 # 053c8
stw r31, 0x033c( r1) # 053cc
stw r30, 0x0338( r1) # 053d0
isync # 053d4
cmpw r29, r29 # 053d8
blr # 053dc
major_0x05278_0x168:
rlwimi r29, r28, 7, 25, 28 # 053e0
lwz r30, 0x0280(r29) # 053e4
lwz r31, 0x0284(r29) # 053e8
stw r30, 0x0300( r1) # 053ec
stw r31, 0x0304( r1) # 053f0
stw r30, 0x0320( r1) # 053f4
stw r31, 0x0324( r1) # 053f8
rlwimi r30, r31, 0, 25, 31 # 053fc
mtspr 528/*ibat0u*/, r30 # 05400
lwz r30, 0x0280(r29) # 05404
rlwimi r31, r30, 30, 26, 31 # 05408
rlwimi r31, r30, 6, 25, 25 # 0540c
mtspr 529/*ibat0l*/, r31 # 05410
rlwimi r29, r28, 11, 25, 28 # 05414
lwz r30, 0x0280(r29) # 05418
lwz r31, 0x0284(r29) # 0541c
stw r30, 0x0308( r1) # 05420
stw r31, 0x030c( r1) # 05424
stw r30, 0x0328( r1) # 05428
stw r31, 0x032c( r1) # 0542c
rlwimi r30, r31, 0, 25, 31 # 05430
mtspr 530/*ibat1u*/, r30 # 05434
lwz r30, 0x0280(r29) # 05438
rlwimi r31, r30, 30, 26, 31 # 0543c
rlwimi r31, r30, 6, 25, 25 # 05440
mtspr 531/*ibat1l*/, r31 # 05444
rlwimi r29, r28, 15, 25, 28 # 05448
lwz r30, 0x0280(r29) # 0544c
lwz r31, 0x0284(r29) # 05450
stw r30, 0x0310( r1) # 05454
stw r31, 0x0314( r1) # 05458
stw r30, 0x0330( r1) # 0545c
stw r31, 0x0334( r1) # 05460
rlwimi r30, r31, 0, 25, 31 # 05464
mtspr 532/*ibat2u*/, r30 # 05468
lwz r30, 0x0280(r29) # 0546c
rlwimi r31, r30, 30, 26, 31 # 05470
rlwimi r31, r30, 6, 25, 25 # 05474
mtspr 533/*ibat2l*/, r31 # 05478
rlwimi r29, r28, 19, 25, 28 # 0547c
lwz r30, 0x0280(r29) # 05480
lwz r31, 0x0284(r29) # 05484
stw r30, 0x0318( r1) # 05488
stw r31, 0x031c( r1) # 0548c
stw r30, 0x0338( r1) # 05490
stw r31, 0x033c( r1) # 05494
rlwimi r30, r31, 0, 25, 31 # 05498
mtspr 534/*ibat3u*/, r30 # 0549c
lwz r30, 0x0280(r29) # 054a0
rlwimi r31, r30, 30, 26, 31 # 054a4
rlwimi r31, r30, 6, 25, 25 # 054a8
mtspr 535/*ibat3l*/, r31 # 054ac
cmpw r29, r29 # 054b0
blr # 054b4
/***********************************************************
major_0x054b8
************************************************************
Xrefs:
major_0x035a0
major_0x043a0
rtas_call
NKRegisterCpuPlugin
major_0x16bb4
***********************************************************/
major_0x054b8: /* < outside referer */
lwz r30, 0x0000(r29) # 054b8
li r28, -0x01 # 054bc
rlwimi r28, r30, 15, 0, 14 # 054c0
xor r31, r27, r30 # 054c4
andc. r31, r31, r28 # 054c8
beq- major_0x054b8_0x54 # 054cc
lwzu r30, 0x0008(r29) # 054d0
rlwimi r28, r30, 15, 0, 14 # 054d4
xor r31, r27, r30 # 054d8
andc. r31, r31, r28 # 054dc
beq- major_0x054b8_0x54 # 054e0
lwzu r30, 0x0008(r29) # 054e4
rlwimi r28, r30, 15, 0, 14 # 054e8
xor r31, r27, r30 # 054ec
andc. r31, r31, r28 # 054f0
beq- major_0x054b8_0x54 # 054f4
lwzu r30, 0x0008(r29) # 054f8
rlwimi r28, r30, 15, 0, 14 # 054fc
xor r31, r27, r30 # 05500
andc. r31, r31, r28 # 05504
bne- major_0x05524 # 05508
major_0x054b8_0x54:
andi. r31, r30, 0x01 # 0550c
rlwinm r28, r28, 0, 8, 19 # 05510
lwzu r31, 0x0004(r29) # 05514
and r28, r27, r28 # 05518
or r31, r31, r28 # 0551c
bnelr- # 05520
/***********************************************************
major_0x05524
************************************************************
Xrefs:
setup
major_0x054b8
print_memory_logical
major_0x18c08
***********************************************************/
major_0x05524: /* < outside referer */
mfsrin r31, r27 # 05524
rlwinm r30, r27, 10, 26, 31 # 05528
rlwimi r30, r31, 7, 1, 24 # 0552c
rlwinm r28, r27, 26, 10, 25 # 05530
oris r30, r30, 0x8000 # 05534
rlwinm r31, r31, 6, 7, 25 # 05538
xor r28, r28, r31 # 0553c
lwz r31, 0x06a0( r1) # 05540
lwz r29, 0x06a4( r1) # 05544
and r28, r28, r31 # 05548
or. r29, r29, r28 # 0554c
major_0x05524_0x2c:
lwz r31, 0x0000(r29) # 05550
lwz r28, 0x0008(r29) # 05554
cmpw cr6, r30, r31 # 05558
lwz r31, 0x0010(r29) # 0555c
cmpw cr7, r30, r28 # 05560
lwzu r28, 0x0018(r29) # 05564
bne- cr6, major_0x05524_0x50 # 05568
major_0x05524_0x48:
lwzu r31, -0x0014(r29) # 0556c
blr # 05570
major_0x05524_0x50:
cmpw cr6, r30, r31 # 05574
lwzu r31, 0x0008(r29) # 05578
beq+ cr7, major_0x05524_0x48 # 0557c
cmpw cr7, r30, r28 # 05580
lwzu r28, 0x0008(r29) # 05584
beq+ cr6, major_0x05524_0x48 # 05588
cmpw cr6, r30, r31 # 0558c
lwzu r31, 0x0008(r29) # 05590
beq+ cr7, major_0x05524_0x48 # 05594
cmpw cr7, r30, r28 # 05598
lwzu r28, 0x0008(r29) # 0559c
beq+ cr6, major_0x05524_0x48 # 055a0
cmpw cr6, r30, r31 # 055a4
lwzu r31, -0x000c(r29) # 055a8
beqlr- cr7 # 055ac
cmpw cr7, r30, r28 # 055b0
lwzu r31, 0x0008(r29) # 055b4
beqlr- cr6 # 055b8
lwzu r31, 0x0008(r29) # 055bc
beqlr- cr7 # 055c0
lwz r31, 0x06a0( r1) # 055c4
xori r30, r30, 0x40 # 055c8
andi. r28, r30, 0x40 # 055cc
addi r29, r29, -0x3c # 055d0
xor r29, r29, r31 # 055d4
bne+ major_0x05524_0x2c # 055d8
blr # 055dc
/***********************************************************
major_0x055e0
************************************************************
Xrefs:
setup
major_0x14bcc
major_0x16bb4
***********************************************************/
major_0x055e0: /* < outside referer */
lhz r29, 0x0f50( r1) # 055e0
slwi r29, r29, 12 # 055e4
major_0x055e0_0x8:
addi r29, r29, -0x1000 # 055e8
cmpwi r29, 0x00 # 055ec
tlbie r29 # 055f0
bgt+ major_0x055e0_0x8 # 055f4
mfspr r29, 287/*pvr*/ # 055f8
rlwinm. r29, r29, 0, 0, 14 # 055fc
sync # 05600
beqlr- # 05604
tlbsync # 05608
sync # 0560c
isync # 05610
blr # 05614
/***********************************************************
major_0x05618
***********************************************************/
.long 0x60000000 # 05618
.long 0x60000000 # 0561c
/***********************************************************
major_0x05620
***********************************************************/
.long 0x480001e0 # 05620
.long 0x60000000 # 05624
.long 0x60000000 # 05628
.long 0x60000000 # 0562c
.long 0x60000000 # 05630
.long 0x60000000 # 05634
.long 0x60000000 # 05638
.long 0x60000000 # 0563c
.long 0x60000000 # 05640
.long 0x60000000 # 05644
.long 0x60000000 # 05648
.long 0x60000000 # 0564c
.long 0x60000000 # 05650
.long 0x60000000 # 05654
.long 0x60000000 # 05658
.long 0x60000000 # 0565c
.long 0x60000000 # 05660
.long 0x60000000 # 05664
.long 0x60000000 # 05668
.long 0x60000000 # 0566c
.long 0x60000000 # 05670
.long 0x60000000 # 05674
.long 0x60000000 # 05678
.long 0x60000000 # 0567c
.long 0x60000000 # 05680
.long 0x60000000 # 05684
.long 0x60000000 # 05688
.long 0x60000000 # 0568c
.long 0x60000000 # 05690
.long 0x60000000 # 05694
.long 0x60000000 # 05698
.long 0x60000000 # 0569c
.long 0x60000000 # 056a0
.long 0x60000000 # 056a4
.long 0x60000000 # 056a8
.long 0x60000000 # 056ac
.long 0x60000000 # 056b0
.long 0x60000000 # 056b4
.long 0x60000000 # 056b8
.long 0x60000000 # 056bc
.long 0x60000000 # 056c0
.long 0x60000000 # 056c4
.long 0x60000000 # 056c8
.long 0x60000000 # 056cc
.long 0x60000000 # 056d0
.long 0x60000000 # 056d4
.long 0x60000000 # 056d8
.long 0x60000000 # 056dc
.long 0x60000000 # 056e0
.long 0x60000000 # 056e4
.long 0x60000000 # 056e8
.long 0x60000000 # 056ec
.long 0x60000000 # 056f0
.long 0x60000000 # 056f4
.long 0x60000000 # 056f8
.long 0x60000000 # 056fc
.long 0x60000000 # 05700
.long 0x60000000 # 05704
.long 0x60000000 # 05708
.long 0x60000000 # 0570c
.long 0x60000000 # 05710
.long 0x60000000 # 05714
.long 0x60000000 # 05718
.long 0x60000000 # 0571c
.long 0x60000000 # 05720
.long 0x60000000 # 05724
.long 0x60000000 # 05728
.long 0x60000000 # 0572c
.long 0x60000000 # 05730
.long 0x60000000 # 05734
.long 0x60000000 # 05738
.long 0x60000000 # 0573c
.long 0x60000000 # 05740
.long 0x60000000 # 05744
.long 0x60000000 # 05748
.long 0x60000000 # 0574c
.long 0x60000000 # 05750
.long 0x60000000 # 05754
.long 0x60000000 # 05758
.long 0x60000000 # 0575c
.long 0x60000000 # 05760
.long 0x60000000 # 05764
.long 0x60000000 # 05768
.long 0x60000000 # 0576c
.long 0x60000000 # 05770
.long 0x60000000 # 05774
.long 0x60000000 # 05778
.long 0x60000000 # 0577c
.long 0x60000000 # 05780
.long 0x60000000 # 05784
.long 0x60000000 # 05788
.long 0x60000000 # 0578c
.long 0x60000000 # 05790
.long 0x60000000 # 05794
.long 0x60000000 # 05798
.long 0x60000000 # 0579c
.long 0x60000000 # 057a0
.long 0x60000000 # 057a4
.long 0x60000000 # 057a8
.long 0x60000000 # 057ac
.long 0x60000000 # 057b0
.long 0x60000000 # 057b4
.long 0x60000000 # 057b8
.long 0x60000000 # 057bc
.long 0x60000000 # 057c0
.long 0x60000000 # 057c4
.long 0x60000000 # 057c8
.long 0x60000000 # 057cc
.long 0x60000000 # 057d0
.long 0x60000000 # 057d4
.long 0x60000000 # 057d8
.long 0x60000000 # 057dc
.long 0x60000000 # 057e0
.long 0x60000000 # 057e4
.long 0x60000000 # 057e8
.long 0x60000000 # 057ec
.long 0x60000000 # 057f0
.long 0x60000000 # 057f4
.long 0x60000000 # 057f8
.long 0x60000000 # 057fc
/***********************************************************
funny_debug_place
************************************************************
Xrefs:
"lisori_caller"
"who_the_hell_knows"
***********************************************************/
funny_debug_place: /* < outside referer */
bl panic # 05800
b major_0x05808_0x244 # 05804
/***********************************************************
major_0x05808
************************************************************
Xrefs:
major_0x02ccc
funny_debug_place
major_0x06000
***********************************************************/
.long 0x56310414 # 05808
.long 0x4ffff982 # 0580c
.long 0x4800000c # 05810
.long 0x56310414 # 05814
.long 0x4ffffa42 # 05818
.long 0x5733002a # 0581c
.long 0x52337638 # 05820
.long 0x3a73e86c # 05824
.long 0x7e6803a6 # 05828
.long 0x516e04a4 # 0582c
.long 0x7dc00124 # 05830
.long 0x4c00012c # 05834
.long 0x4e800020 # 05838
.long 0x616b2000 # 0583c
.long 0x8281fd20 # 05840
.long 0x82a1fd24 # 05844
.long 0x419f00a0 # 05848
.long 0x5697657e # 0584c
.long 0x2c170380 # 05850
.long 0x529418b8 # 05854
.long 0x52b41f7e # 05858
.long 0x7e95a378 # 0585c
.long 0x41810088 # 05860
.long 0x2c17036a # 05864
.long 0x56950000 # 05868
.long 0x4180007c # 0586c
.long 0x66940080 # 05870
.long 0x7ef700d0 # 05874
.long 0x5694023e # 05878
.long 0x7e94bc30 # 0587c
.long 0x5295fa7e # 05880
.long 0x48000064 # 05884
.long 0x563c6e7a # 05888
.long 0x7ea1e42c # 0588c
.long 0x48000054 # 05890
.long 0x563c6e7a # 05894
.long 0x3aa10002 # 05898
.long 0x7eb5e62c # 0589c
.long 0x48000044 # 058a0
.long 0x563c6e7a # 058a4
.long 0x7ea1e02e # 058a8
.long 0x4800003c # 058ac
.long 0x563c6e7a # 058b0
.long 0x7ea1e02e # 058b4
.long 0x4ef7ba42 # 058b8
.long 0x48000028 # 058bc
.long 0x56520036 # 058c0
.long 0x516f018c # 058c4
.long 0x4800001c # 058c8
.long 0x5652003c # 058cc
.long 0x48000014 # 058d0
.long 0x5652003a # 058d4
.long 0x4800000c # 058d8
.long 0x563c6e7a # 058dc
.long 0x7ea1e02e # 058e0
.long 0x56310414 # 058e4
.long 0x5636feff # 058e8
.long 0x7e72b214 # 058ec
.long 0x480002bc # 058f0
.long 0x56b7843e # 058f4
.long 0xb2f3fffc # 058f8
.long 0x3a31fffc # 058fc
.long 0xb2b3fffe # 05900
.long 0x48000018 # 05904
.long 0xa2f3fffc # 05908
.long 0x3a31fffc # 0590c
.long 0x52f5801e # 05910
.long 0xa2f3fffe # 05914
.long 0x52f5043e # 05918
major_0x05808_0x114: /* < outside referer */
li r0, -0x03 # 0591c
sc # 05920
bl major_0x03460_0xe8 # 05924
rlwinm. r28, r17, 18, 25, 29 # 05928
mtlr r25 # 0592c
mfspr r1, 272/*sprg0*/ # 05930
cror r2, r2, r14 # 05934
mtspr 275/*sprg3*/, r24 # 05938
beqlr- # 0593c
crset 4*cr3 + so # 05940
stwx r18, r1, r28 # 05944
blr # 05948
.long 0x7eb50734 # 0594c
.long 0x563c6e7a # 05950
.long 0x4def7a42 # 05954
.long 0x7ea1e12e # 05958
.long 0x48000c44 # 0595c
.long 0x56b5801e # 05960
.long 0x563c6e7a # 05964
.long 0x4def7a42 # 05968
.long 0x7ea1e52c # 0596c
.long 0x48000c30 # 05970
.long 0x48000e34 # 05974
.long 0x5737002a # 05978
.long 0x52377638 # 0597c
.long 0x3af7e76c # 05980
.long 0x7ee803a6 # 05984
.long 0x9281fd20 # 05988
.long 0x92a1fd24 # 0598c
.long 0x516e04a4 # 05990
.long 0x7dc00124 # 05994
.long 0x4c00012c # 05998
.long 0x616b2000 # 0599c
.long 0x4e800020 # 059a0
.long 0x563c6e7b # 059a4
.long 0x5637967a # 059a8
.long 0x7f9cb800 # 059ac
.long 0x3e310020 # 059b0
.long 0x41820008 # 059b4
.long 0x419e0008 # 059b8
.long 0x7ea1e12e # 059bc
.long 0x2c1c007c # 059c0
.long 0x3ac00009 # 059c4
.long 0x52d106be # 059c8
.long 0x3a730004 # 059cc
.long 0x408201dc # 059d0
.long 0x48000bcc # 059d4
.long 0x3e310020 # 059d8
.long 0x563c6e7b # 059dc
.long 0x41820bc0 # 059e0
.long 0x7ea1e02e # 059e4
.long 0x3ac00008 # 059e8
.long 0x52d106be # 059ec
.long 0x3a730004 # 059f0
.long 0x480001b8 # 059f4
.long 0x82a1fffc # 059f8
.long 0xa2b50f4a # 059fc
.long 0x7eb500d0 # 05a00
.long 0x7e53a838 # 05a04
.long 0x4800001c # 05a08
.long 0x82a1fffc # 05a0c
.long 0xa2b50f4a # 05a10
.long 0x3ab5fff8 # 05a14
.long 0x7e76a839 # 05a18
.long 0x56730038 # 05a1c
.long 0x41820b80 # 05a20
.long 0x3ac00010 # 05a24
.long 0x52d106bf # 05a28
.long 0x3a730008 # 05a2c
.long 0x3a800000 # 05a30
.long 0x3aa00000 # 05a34
.long 0x48000174 # 05a38
.long 0x56100732 # 05a3c
.long 0x394afffc # 05a40
.long 0x9201fff0 # 05a44
.long 0x48000b58 # 05a48
major_0x05808_0x244: /* < outside referer */
li r8, 0x12 # 05a4c
b major_0x02980 # 05a50
.long 0x3adbf800 # 05a54
.long 0x56d6aefe # 05a58
.long 0x48000014 # 05a5c
.long 0x7ec102a6 # 05a60
.long 0x72d6007f # 05a64
.long 0x3ad6ffff # 05a68
.long 0x41820b34 # 05a6c
.long 0x52d12572 # 05a70
.long 0x7ed6b0f8 # 05a74
.long 0x52d1d10a # 05a78
.long 0x7e539378 # 05a7c
.long 0x48000be0 # 05a80
.long 0x723607c0 # 05a84
.long 0x3f910020 # 05a88
.long 0x53910194 # 05a8c
.long 0x3a31ffc0 # 05a90
.long 0x40820bcc # 05a94
.long 0x48000b08 # 05a98
.long 0x3adbf800 # 05a9c
.long 0x56d6aefe # 05aa0
.long 0x3f9b03e0 # 05aa4
.long 0x5391b428 # 05aa8
.long 0x48000018 # 05aac
.long 0x7ec102a6 # 05ab0
.long 0x72d6007f # 05ab4
.long 0x53710428 # 05ab8
.long 0x3ad6ffff # 05abc
.long 0x41820ae0 # 05ac0
.long 0x7637001f # 05ac4
.long 0x52d12572 # 05ac8
.long 0x7ed6b0f8 # 05acc
.long 0x52d1d10a # 05ad0
.long 0x7e539378 # 05ad4
.long 0x40820bf0 # 05ad8
.long 0x52312ade # 05adc
.long 0x48000be8 # 05ae0
.long 0x723607c0 # 05ae4
.long 0x563c6e7a # 05ae8
.long 0x40820bb0 # 05aec
.long 0x56364ef8 # 05af0
.long 0x7eb5b030 # 05af4
.long 0x48000ba4 # 05af8
.long 0x5636e67b # 05afc
.long 0x563c6e7a # 05b00
.long 0x40820bf0 # 05b04
.long 0x56374ef8 # 05b08
.long 0x7eb5b830 # 05b0c
.long 0x48000be4 # 05b10
.long 0x7ec102a6 # 05b14
.long 0x72d6007f # 05b18
.long 0x53710428 # 05b1c
.long 0x5371e0c6 # 05b20
.long 0x7f9bb000 # 05b24
.long 0x41820c58 # 05b28
.long 0x3ad6ffff # 05b2c
.long 0x7637001f # 05b30
.long 0x52d12572 # 05b34
.long 0x7ed6b0f8 # 05b38
.long 0x52d1d10a # 05b3c
.long 0x7e539378 # 05b40
.long 0x40820b84 # 05b44
.long 0x52312ade # 05b48
.long 0x48000b7c # 05b4c
.long 0x3a802b20 # 05b50
.long 0x48000cd0 # 05b54
.long 0x5652003c # 05b58
.long 0x3a802c20 # 05b5c
.long 0x48000cc4 # 05b60
.long 0x5652003a # 05b64
.long 0x3a802d20 # 05b68
.long 0x48000cb8 # 05b6c
.long 0x3ae1fd20 # 05b70
.long 0x3a802720 # 05b74
.long 0x5257073e # 05b78
.long 0x9ab70000 # 05b7c
.long 0x48000c80 # 05b80
.long 0x3ae1fd20 # 05b84
.long 0x3a802820 # 05b88
.long 0x5257073e # 05b8c
.long 0xb2b70000 # 05b90
.long 0x48000c6c # 05b94
.long 0x3ae1fd20 # 05b98
.long 0x3a802920 # 05b9c
.long 0x5257073e # 05ba0
.long 0x92b70000 # 05ba4
.long 0x48000c58 # 05ba8
major_0x05808_0x3a4: /* < outside referer */
lwz r1, -0x0004( r1) # 05bac
rlwinm r25, r25, 0, 0, 21 # 05bb0
rlwimi r25, r19, 1, 28, 30 # 05bb4
rlwimi r25, r17, 4, 23, 27 # 05bb8
lha r22, 0x0c00(r25) # 05bbc
addi r23, r1, 0x4e0 # 05bc0
add r22, r22, r25 # 05bc4
mfspr r1, 272/*sprg0*/ # 05bc8
mtlr r22 # 05bcc
ori r15, r15, 0x4000 # 05bd0
mtspr 275/*sprg3*/, r23 # 05bd4
mtmsr r15 # 05bd8
isync # 05bdc
rlwimi r25, r26, 2, 22, 29 # 05be0
bnelr- # 05be4
b major_0x05808_0x114 # 05be8
.long 0x8af3fff8 # 05bec
.long 0x3a31fffe # 05bf0
.long 0x52f4c00e # 05bf4
.long 0xa2f3fff9 # 05bf8
.long 0x3a31fffc # 05bfc
.long 0x52f4422e # 05c00
.long 0x48000010 # 05c04
.long 0x8af3fffa # 05c08
.long 0x3a31fffe # 05c0c
.long 0x52f4442e # 05c10
.long 0x82f3fffb # 05c14
.long 0x3a31fff8 # 05c18
.long 0x52f4463e # 05c1c
.long 0x52f5402e # 05c20
.long 0x4800006c # 05c24
.long 0x8af3fff8 # 05c28
.long 0x3a31fffe # 05c2c
.long 0x52f4c00e # 05c30
.long 0x82f3fff9 # 05c34
.long 0x3a31fff8 # 05c38
.long 0x52f4c23e # 05c3c
.long 0x52f5c00e # 05c40
.long 0x48000030 # 05c44
.long 0x8af3fffa # 05c48
.long 0x3a31fffe # 05c4c
.long 0x52f4442e # 05c50
.long 0xa2f3fffb # 05c54
.long 0x3a31fffc # 05c58
.long 0x52f4c63e # 05c5c
.long 0x52f5c00e # 05c60
.long 0x48000010 # 05c64
.long 0x8af3fffc # 05c68
.long 0x3a31fffe # 05c6c
.long 0x52f5c00e # 05c70
.long 0xa2f3fffd # 05c74
.long 0x3a31fffc # 05c78
.long 0x52f5422e # 05c7c
.long 0x48000010 # 05c80
.long 0x8af3fffe # 05c84
.long 0x3a31fffe # 05c88
.long 0x52f5442e # 05c8c
.long 0x8af3ffff # 05c90
.long 0x52f5063e # 05c94
.long 0x4bfffc84 # 05c98
.long 0xa2f3fff8 # 05c9c
.long 0x3a31fffc # 05ca0
.long 0x52f4801e # 05ca4
.long 0x48000010 # 05ca8
.long 0x8af3fff9 # 05cac
.long 0x3a31fffe # 05cb0
.long 0x52f4821e # 05cb4
.long 0x82f3fffa # 05cb8
.long 0x3a31fff8 # 05cbc
.long 0x52f4843e # 05cc0
.long 0x52f5801e # 05cc4
.long 0x4bfffc4c # 05cc8
.long 0x8af3fffb # 05ccc
.long 0x3a31fffe # 05cd0
.long 0x52f4063e # 05cd4
.long 0x4bfffc30 # 05cd8
.long 0x8af3fffd # 05cdc
.long 0x3a31fffe # 05ce0
.long 0x52f5821e # 05ce4
.long 0x4bfffc2c # 05ce8
.long 0x8293fff8 # 05cec
.long 0x3a31fff8 # 05cf0
.long 0x82b3fffc # 05cf4
.long 0x4bfffc24 # 05cf8
.long 0x8af3fff9 # 05cfc
.long 0x3a31fffe # 05d00
.long 0x52f4821e # 05d04
.long 0xa2f3fffa # 05d08
.long 0x3a31fffc # 05d0c
.long 0x52f4043e # 05d10
.long 0x82b3fffc # 05d14
.long 0x4bfffc04 # 05d18
.long 0x8af3fffb # 05d1c
.long 0x3a31fffe # 05d20
.long 0x52f4063e # 05d24
.long 0x82b3fffc # 05d28
.long 0x4bfffbf0 # 05d2c
.long 0x4197000c # 05d30
.long 0x82b3fffc # 05d34
.long 0x4bfffbe4 # 05d38
.long 0x3ae0fffc # 05d3c
.long 0x7eb79828 # 05d40
.long 0x4bfffbd8 # 05d44
.long 0x8293fff8 # 05d48
.long 0x82b3fffc # 05d4c
.long 0x4bfffbcc # 05d50
.long 0x5737002a # 05d54
.long 0x52377638 # 05d58
.long 0x3af72620 # 05d5c
.long 0x7ee803a6 # 05d60
.long 0x7e579378 # 05d64
.long 0x656b0200 # 05d68
.long 0x4e800020 # 05d6c
.long 0x5697463e # 05d70
.long 0x9af3fff8 # 05d74
.long 0x3a31fffe # 05d78
.long 0x5697c23e # 05d7c
.long 0xb2f3fff9 # 05d80
.long 0x3a31fffc # 05d84
.long 0x48000010 # 05d88
.long 0x5697c23e # 05d8c
.long 0x9af3fffa # 05d90
.long 0x3a31fffe # 05d94
.long 0x56b7c23e # 05d98
.long 0x5297c00e # 05d9c
.long 0x92f3fffb # 05da0
.long 0x3a31fff8 # 05da4
.long 0x9ab3ffff # 05da8
.long 0x4bfffb70 # 05dac
.long 0x5697463e # 05db0
.long 0x9af3fff8 # 05db4
.long 0x3a31fffe # 05db8
.long 0x56b7463e # 05dbc
.long 0x5297402e # 05dc0
.long 0x92f3fff9 # 05dc4
.long 0x3a31fff8 # 05dc8
.long 0x48000030 # 05dcc
.long 0x5697c23e # 05dd0
.long 0x9af3fffa # 05dd4
.long 0x3a31fffe # 05dd8
.long 0x56b7463e # 05ddc
.long 0x5297442e # 05de0
.long 0xb2f3fffb # 05de4
.long 0x3a31fffc # 05de8
.long 0x48000010 # 05dec
.long 0x56b7463e # 05df0
.long 0x9af3fffc # 05df4
.long 0x3a31fffe # 05df8
.long 0x56b7c23e # 05dfc
.long 0xb2f3fffd # 05e00
.long 0x3a31fffc # 05e04
.long 0x9ab3ffff # 05e08
.long 0x4bfffb10 # 05e0c
.long 0x56b7c23e # 05e10
.long 0x9af3fffe # 05e14
.long 0x3a31fffe # 05e18
.long 0x9ab3ffff # 05e1c
.long 0x4bfffafc # 05e20
.long 0x5697843e # 05e24
.long 0xb2f3fff8 # 05e28
.long 0x3a31fffc # 05e2c
.long 0x48000010 # 05e30
.long 0x5697843e # 05e34
.long 0x9af3fff9 # 05e38
.long 0x3a31fffe # 05e3c
.long 0x56b7843e # 05e40
.long 0x5297801e # 05e44
.long 0x92f3fffa # 05e48
.long 0x3a31fff8 # 05e4c
.long 0xb2b3fffe # 05e50
.long 0x4bfffac8 # 05e54
.long 0x9a93fffb # 05e58
.long 0x3a31fffe # 05e5c
.long 0x4bfffa94 # 05e60
.long 0x56b7843e # 05e64
.long 0x9af3fffd # 05e68
.long 0x3a31fffe # 05e6c
.long 0xb2b3fffe # 05e70
.long 0x4bfffaa8 # 05e74
.long 0x9293fff8 # 05e78
.long 0x3a31fff8 # 05e7c
.long 0x92b3fffc # 05e80
.long 0x4bfffa98 # 05e84
.long 0x5697843e # 05e88
.long 0x9af3fff9 # 05e8c
.long 0x3a31fffe # 05e90
.long 0xb293fffa # 05e94
.long 0x3a31fffc # 05e98
.long 0x92b3fffc # 05e9c
.long 0x4bfffa7c # 05ea0
.long 0x9a93fffb # 05ea4
.long 0x3a31fffe # 05ea8
.long 0x92b3fffc # 05eac
.long 0x4bfffa6c # 05eb0
.long 0x4197000c # 05eb4
.long 0x92b3fffc # 05eb8
.long 0x4bfffa60 # 05ebc
.long 0x3ae0fffc # 05ec0
.long 0x7eb7992d # 05ec4
.long 0x4c00012c # 05ec8
.long 0x7ee00026 # 05ecc
.long 0x52ed0006 # 05ed0
.long 0x4bfffa48 # 05ed4
.long 0x9293fff8 # 05ed8
.long 0x92b3fffc # 05edc
.long 0x4bfffa3c # 05ee0
.long 0x5737002a # 05ee4
.long 0x52377638 # 05ee8
.long 0x3af72a20 # 05eec
.long 0x7ee803a6 # 05ef0
.long 0x7e579378 # 05ef4
.long 0x656b0200 # 05ef8
.long 0x4e800020 # 05efc
/***********************************************************
major_0x05f00
***********************************************************/
.long 0x48000100 # 05f00
.long 0x60000000 # 05f04
.long 0x60000000 # 05f08
.long 0x60000000 # 05f0c
.long 0x60000000 # 05f10
.long 0x60000000 # 05f14
.long 0x60000000 # 05f18
.long 0x60000000 # 05f1c
.long 0x60000000 # 05f20
.long 0x60000000 # 05f24
.long 0x60000000 # 05f28
.long 0x60000000 # 05f2c
.long 0x60000000 # 05f30
.long 0x60000000 # 05f34
.long 0x60000000 # 05f38
.long 0x60000000 # 05f3c
.long 0x60000000 # 05f40
.long 0x60000000 # 05f44
.long 0x60000000 # 05f48
.long 0x60000000 # 05f4c
.long 0x60000000 # 05f50
.long 0x60000000 # 05f54
.long 0x60000000 # 05f58
.long 0x60000000 # 05f5c
.long 0x60000000 # 05f60
.long 0x60000000 # 05f64
.long 0x60000000 # 05f68
.long 0x60000000 # 05f6c
.long 0x60000000 # 05f70
.long 0x60000000 # 05f74
.long 0x60000000 # 05f78
.long 0x60000000 # 05f7c
.long 0x60000000 # 05f80
.long 0x60000000 # 05f84
.long 0x60000000 # 05f88
.long 0x60000000 # 05f8c
.long 0x60000000 # 05f90
.long 0x60000000 # 05f94
.long 0x60000000 # 05f98
.long 0x60000000 # 05f9c
.long 0x60000000 # 05fa0
.long 0x60000000 # 05fa4
.long 0x60000000 # 05fa8
.long 0x60000000 # 05fac
.long 0x60000000 # 05fb0
.long 0x60000000 # 05fb4
.long 0x60000000 # 05fb8
.long 0x60000000 # 05fbc
.long 0x60000000 # 05fc0
.long 0x60000000 # 05fc4
.long 0x60000000 # 05fc8
.long 0x60000000 # 05fcc
.long 0x60000000 # 05fd0
.long 0x60000000 # 05fd4
.long 0x60000000 # 05fd8
.long 0x60000000 # 05fdc
.long 0x60000000 # 05fe0
.long 0x60000000 # 05fe4
.long 0x60000000 # 05fe8
.long 0x60000000 # 05fec
.long 0x60000000 # 05ff0
.long 0x60000000 # 05ff4
.long 0x60000000 # 05ff8
.long 0x60000000 # 05ffc
/***********************************************************
major_0x06000
************************************************************
Xrefs:
major_0x032c0
major_0x06a14
major_0x07658
***********************************************************/
.long 0x25402e54 # 06000
.long 0x45500001 # 06004
.long 0x07f00001 # 06008
.long 0x07f00001 # 0600c
.long 0x07f00001 # 06010
.long 0x07f00001 # 06014
.long 0x07f00001 # 06018
.long 0x07f00001 # 0601c
.long 0x07f00001 # 06020
.long 0x07f00001 # 06024
.long 0x07f00001 # 06028
.long 0x07f00001 # 0602c
.long 0x44303954 # 06030
.long 0x24603954 # 06034
.long 0x41303757 # 06038
.long 0x07f00001 # 0603c
.long 0x07f00001 # 06040
.long 0x07f00001 # 06044
.long 0x07f00001 # 06048
.long 0x07f00001 # 0604c
.long 0x07f00001 # 06050
.long 0x07f00001 # 06054
.long 0x07f00001 # 06058
.long 0x07f00001 # 0605c
.long 0x07f00001 # 06060
.long 0x07f00001 # 06064
.long 0x07f00001 # 06068
.long 0x07f00001 # 0606c
.long 0x44303a54 # 06070
.long 0x45b30001 # 06074
.long 0x41302957 # 06078
.long 0x41f20001 # 0607c
.long 0x44303954 # 06080
.long 0x07f00001 # 06084
.long 0x41303757 # 06088
.long 0x07f00001 # 0608c
.long 0x268bc5bf # 06090
.long 0x24603954 # 06094
.long 0x07f00001 # 06098
.long 0x07f00001 # 0609c
.long 0x260bacb9 # 060a0
.long 0x260fa7b9 # 060a4
.long 0x224298a1 # 060a8
.long 0x224e95a1 # 060ac
.long 0x07f00001 # 060b0
.long 0x07f00001 # 060b4
.long 0x07f00001 # 060b8
.long 0x07f00001 # 060bc
.long 0x44303a54 # 060c0
.long 0x07f00001 # 060c4
.long 0x41302957 # 060c8
.long 0x07f00001 # 060cc
.long 0x07f00001 # 060d0
.long 0x24603a57 # 060d4
.long 0x07f00001 # 060d8
.long 0x07f00001 # 060dc
.long 0x07f00001 # 060e0
.long 0x07f00001 # 060e4
.long 0x07f00001 # 060e8
.long 0x07f00001 # 060ec
.long 0x07f00001 # 060f0
.long 0x07f00001 # 060f4
.long 0x07f00001 # 060f8
.long 0x07f00001 # 060fc
.long 0x07f00001 # 06100
.long 0x0fe23a8f # 06104
.long 0x21602c57 # 06108
.long 0x41700001 # 0610c
.long 0x0fe23a8f # 06110
.long 0x07f00001 # 06114
.long 0x07f00001 # 06118
.long 0x07f00001 # 0611c
.long 0x24a23a59 # 06120
.long 0x07f00001 # 06124
.long 0x21202257 # 06128
.long 0x07f00001 # 0612c
.long 0x14923a58 # 06130
.long 0x07f00001 # 06134
.long 0x11102557 # 06138
.long 0x0fe23a8f # 0613c
.long 0x07f00001 # 06140
.long 0x07f00001 # 06144
.long 0x07f00001 # 06148
.long 0x0fe23a8f # 0614c
.long 0x07f03993 # 06150
.long 0x07f00001 # 06154
.long 0x03f03793 # 06158
.long 0x07f00001 # 0615c
.long 0x07f00001 # 06160
.long 0x07f00001 # 06164
.long 0x07f00001 # 06168
.long 0x07f00001 # 0616c
.long 0x07f00001 # 06170
.long 0x07f00001 # 06174
.long 0x07f00001 # 06178
.long 0x43027e83 # 0617c
.long 0x0f5039dc # 06180
.long 0x277035e6 # 06184
.long 0x0b90d457 # 06188
.long 0x23b0d957 # 0618c
.long 0x14103954 # 06190
.long 0x14503953 # 06194
.long 0x11103757 # 06198
.long 0x25a33a69 # 0619c
.long 0x24e0395d # 061a0
.long 0x44f0395e # 061a4
.long 0x21200257 # 061a8
.long 0x41300557 # 061ac
.long 0x07f00001 # 061b0
.long 0x07f00001 # 061b4
.long 0x07f00001 # 061b8
.long 0x21200557 # 061bc
.long 0x176033e1 # 061c0
.long 0x87403057 # 061c4
.long 0x23a0d657 # 061c8
.long 0x83803057 # 061cc
.long 0x14103a54 # 061d0
.long 0x87403057 # 061d4
.long 0x11102957 # 061d8
.long 0x83803057 # 061dc
.long 0x24e03a5d # 061e0
.long 0x44f03a5e # 061e4
.long 0x21200357 # 061e8
.long 0x41300657 # 061ec
.long 0x07f00001 # 061f0
.long 0x07f00001 # 061f4
.long 0x07f00001 # 061f8
.long 0x07f00001 # 061fc
.long 0x25402e54 # 06200
.long 0x45500001 # 06204
.long 0x07f00001 # 06208
.long 0x07f00001 # 0620c
.long 0x07f00001 # 06210
.long 0x07f00001 # 06214
.long 0x07f00001 # 06218
.long 0x07f00001 # 0621c
.long 0x07f00001 # 06220
.long 0x07f00001 # 06224
.long 0x07f00001 # 06228
.long 0x07f00001 # 0622c
.long 0x44303954 # 06230
.long 0x24603954 # 06234
.long 0x41303757 # 06238
.long 0x07f00001 # 0623c
.long 0x07f00001 # 06240
.long 0x07f00001 # 06244
.long 0x07f00001 # 06248
.long 0x07f00001 # 0624c
.long 0x07f00001 # 06250
.long 0x07f00001 # 06254
.long 0x07f00001 # 06258
.long 0x07f00001 # 0625c
.long 0x07f00001 # 06260
.long 0x07f00001 # 06264
.long 0x07f00001 # 06268
.long 0x07f00001 # 0626c
.long 0x44303a54 # 06270
.long 0x45b30001 # 06274
.long 0x41302957 # 06278
.long 0x41f20001 # 0627c
.long 0x44303954 # 06280
.long 0x07f00001 # 06284
.long 0x41303757 # 06288
.long 0x07f00001 # 0628c
.long 0x268bc5bf # 06290
.long 0x24603954 # 06294
.long 0x07f00001 # 06298
.long 0x07f00001 # 0629c
.long 0x260bacb9 # 062a0
.long 0x260fa7b9 # 062a4
.long 0x224298a1 # 062a8
.long 0x224e95a1 # 062ac
.long 0x07f00001 # 062b0
.long 0x07f00001 # 062b4
.long 0x07f00001 # 062b8
.long 0x07f00001 # 062bc
.long 0x44303a54 # 062c0
.long 0x07f00001 # 062c4
.long 0x41302957 # 062c8
.long 0x07f00001 # 062cc
.long 0x07f00001 # 062d0
.long 0x24603a57 # 062d4
.long 0x07f00001 # 062d8
.long 0x07f00001 # 062dc
.long 0x07f00001 # 062e0
.long 0x07f00001 # 062e4
.long 0x07f00001 # 062e8
.long 0x07f00001 # 062ec
.long 0x07f00001 # 062f0
.long 0x07f00001 # 062f4
.long 0x07f00001 # 062f8
.long 0x07f00001 # 062fc
.long 0x07f00001 # 06300
.long 0x0fe23a8f # 06304
.long 0x21602c57 # 06308
.long 0x41700001 # 0630c
.long 0x0fe23a8f # 06310
.long 0x07f00001 # 06314
.long 0x07f00001 # 06318
.long 0x07f00001 # 0631c
.long 0x24a23a59 # 06320
.long 0x07f00001 # 06324
.long 0x21202257 # 06328
.long 0x07f00001 # 0632c
.long 0x14923a58 # 06330
.long 0x07f00001 # 06334
.long 0x11102557 # 06338
.long 0x0fe23a8f # 0633c
.long 0x0fe23a8f # 06340
.long 0x07f00001 # 06344
.long 0x07f00001 # 06348
.long 0x0fe23a8f # 0634c
.long 0x07f03993 # 06350
.long 0x07f00001 # 06354
.long 0x03f03793 # 06358
.long 0x07f00001 # 0635c
.long 0x07f00001 # 06360
.long 0x07f00001 # 06364
.long 0x07f00001 # 06368
.long 0x07f00001 # 0636c
.long 0x07f00001 # 06370
.long 0x07f00001 # 06374
.long 0x07f00001 # 06378
.long 0x43027e83 # 0637c
.long 0x24203954 # 06380
.long 0x0c003954 # 06384
.long 0x21203757 # 06388
.long 0x09003757 # 0638c
.long 0x14103954 # 06390
.long 0x14503953 # 06394
.long 0x11103757 # 06398
.long 0x25a33a69 # 0639c
.long 0x24e0395d # 063a0
.long 0x44f0395e # 063a4
.long 0x21200257 # 063a8
.long 0x41300557 # 063ac
.long 0x07f00001 # 063b0
.long 0x07f00001 # 063b4
.long 0x07f00001 # 063b8
.long 0x21200557 # 063bc
.long 0x24203a54 # 063c0
.long 0x0c003a54 # 063c4
.long 0x21202957 # 063c8
.long 0x09002957 # 063cc
.long 0x14103a54 # 063d0
.long 0x14503a53 # 063d4
.long 0x11102957 # 063d8
.long 0x21e22976 # 063dc
.long 0x24e03a5d # 063e0
.long 0x44f03a5e # 063e4
.long 0x21200357 # 063e8
.long 0x41300657 # 063ec
.long 0x07f00001 # 063f0
.long 0x07f00001 # 063f4
.long 0x07f00001 # 063f8
.long 0x07f00001 # 063fc
.long 0x06e406e2 # 06400
.long 0x06e006de # 06404
.long 0x06dc06da # 06408
.long 0x06d806d6 # 0640c
.long 0x05440542 # 06410
.long 0x0540053e # 06414
.long 0x053c053a # 06418
.long 0x05380536 # 0641c
.long 0x05fc05fa # 06420
.long 0x05f805f6 # 06424
.long 0x05f405f2 # 06428
.long 0x05f005ee # 0642c
.long 0x0460045e # 06430
.long 0x045c045a # 06434
.long 0x04580456 # 06438
.long 0x04540452 # 0643c
.long 0x063005ce # 06440
.long 0x062c05ca # 06444
.long 0x062805c6 # 06448
.long 0x062405c2 # 0644c
.long 0x00c40432 # 06450
.long 0x00c0042e # 06454
.long 0x00bc042a # 06458
.long 0x00b80426 # 0645c
.long 0x0604059a # 06460
.long 0x06000596 # 06464
.long 0x05fc0592 # 06468
.long 0x05f8058e # 0646c
.long 0x046c0402 # 06470
.long 0x046803fe # 06474
.long 0x046403fa # 06478
.long 0x046003f6 # 0647c
.long 0x0634056e # 06480
.long 0x0070056a # 06484
.long 0x062c0566 # 06488
.long 0x00680562 # 0648c
.long 0x04a003d6 # 06490
.long 0x007403d2 # 06494
.long 0x049803ce # 06498
.long 0x006c03ca # 0649c
.long 0x060404f6 # 064a0
.long 0x05b40536 # 064a4
.long 0x05fc04ee # 064a8
.long 0x05ac052e # 064ac
.long 0x046c0362 # 064b0
.long 0x0418039e # 064b4
.long 0x0464035a # 064b8
.long 0x04100396 # 064bc
.long 0x05d404ca # 064c0
.long 0x057c050a # 064c4
.long 0x05cc04c2 # 064c8
.long 0x05740502 # 064cc
.long 0x04380336 # 064d0
.long 0x03e40372 # 064d4
.long 0x0430032e # 064d8
.long 0x03dc036a # 064dc
.long 0x05a8049a # 064e0
.long 0x055004d6 # 064e4
.long 0x05a00492 # 064e8
.long 0x054804ce # 064ec
.long 0x040c0306 # 064f0
.long 0x03b8033e # 064f4
.long 0x040402fe # 064f8
.long 0x03b00336 # 064fc
.long 0x05d8046e # 06500
.long 0x052004aa # 06504
.long 0x05700466 # 06508
.long 0x051804a2 # 0650c
.long 0x043802da # 06510
.long 0x03880312 # 06514
.long 0x03d402d2 # 06518
.long 0x0380030a # 0651c
.long 0x01540154 # 06520
.long 0x01540154 # 06524
.long 0x01010153 # 06528
.long 0x01540101 # 0652c
.long 0x01010358 # 06530
.long 0x03590101 # 06534
.long 0x01010101 # 06538
.long 0x015d015e # 0653c
.long 0x01570157 # 06540
.long 0x01570157 # 06544
.long 0x01540101 # 06548
.long 0x01570101 # 0654c
.long 0x01010101 # 06550
.long 0x03690301 # 06554
.long 0x01010101 # 06558
.long 0x03760301 # 0655c
.long 0x03b903b9 # 06560
.long 0x03b903b9 # 06564
.long 0x03a103a1 # 06568
.long 0x03a103a1 # 0656c
.long 0x03bf03bf # 06570
.long 0x03bf03bf # 06574
.long 0x03bf03bf # 06578
.long 0x03bf03bf # 0657c
.long 0x03830101 # 06580
.long 0x01010101 # 06584
.long 0x015701dc # 06588
.long 0x01e101e6 # 0658c
.long 0x01570157 # 06590
.long 0x01570157 # 06594
.long 0x01010101 # 06598
.long 0x038f0193 # 0659c
major_0x06000_0x5a0: /* < outside referer */
li r0, -0x03 # 065a0
sc # 065a4
andi. r23, r16, 0x20 # 065a8
addi r10, r10, 0x04 # 065ac
mfspr r1, 272/*sprg0*/ # 065b0
mtspr 26/*srr0*/, r10 # 065b4
mtspr 27/*srr1*/, r11 # 065b8
bne- major_0x06000_0x630 # 065bc
mtlr r12 # 065c0
bns- cr3, major_0x06000_0x5fc # 065c4
major_0x06000_0x5c8: /* < outside referer */
mtcr r13 # 065c8
lmw r2, 0x0008( r1) # 065cc
lwz r0, 0x0000( r1) # 065d0
lwz r1, 0x0004( r1) # 065d4
rfi # 065d8
.long 0 # 065dc
.long 0 # 065e0
.long 0 # 065e4
.long 0 # 065e8
.long 0 # 065ec
.long 0 # 065f0
.long 0 # 065f4
.long 0 # 065f8
major_0x06000_0x5fc:
mtcr r13 # 065fc
lmw r10, 0x0028( r1) # 06600
lwz r0, 0x0000( r1) # 06604
lwz r1, 0x0004( r1) # 06608
rfi # 0660c
.long 0 # 06610
.long 0 # 06614
.long 0 # 06618
.long 0 # 0661c
.long 0 # 06620
.long 0 # 06624
.long 0 # 06628
.long 0 # 0662c
major_0x06000_0x630: /* < outside referer */
mfspr r24, 275/*sprg3*/ # 06630
mtspr 274/*sprg2*/, r12 # 06634
rlwinm r16, r16, 0, 27, 25 # 06638
lwz r12, 0x0034(r24) # 0663c
stw r16, -0x0010( r1) # 06640
mtcr r13 # 06644
mtlr r12 # 06648
lmw r2, 0x0008( r1) # 0664c
lwz r0, 0x0000( r1) # 06650
lwz r1, 0x0004( r1) # 06654
mtspr 273/*sprg1*/, r1 # 06658
blrl # 0665c
andi. r23, r17, 0x7c0 # 06660
rlwinm r28, r17, 13, 25, 29 # 06664
lwzx r21, r1, r28 # 06668
li r22, 0x08 # 0666c
rlwimi r17, r22, 0, 26, 31 # 06670
addi r19, r19, 0x04 # 06674
bne+ major_0x05808_0x3a4 # 06678
rlwinm r22, r17, 9, 27, 28 # 0667c
srw r21, r21, r22 # 06680
rlwinm r22, r17, 6, 30, 31 # 06684
neg r22, r22 # 06688
add r19, r19, r22 # 0668c
addi r22, r22, 0x04 # 06690
rlwimi. r17, r22, 1, 26, 30 # 06694
b major_0x05808_0x3a4 # 06698
.long 0x5637967a # 0669c
.long 0x7f9cb800 # 066a0
.long 0x5637be7a # 066a4
.long 0x7f1cb800 # 066a8
.long 0x419e000c # 066ac
.long 0x419a0008 # 066b0
.long 0x7ea1e12e # 066b4
.long 0x3f910020 # 066b8
.long 0x53910194 # 066bc
.long 0x3a31ffc0 # 066c0
.long 0x4182fedc # 066c4
.long 0x723707c0 # 066c8
.long 0x3ac00009 # 066cc
.long 0x52d106be # 066d0
.long 0x3a730004 # 066d4
.long 0x4082f4d4 # 066d8
.long 0x563637be # 066dc
.long 0x7ed600d0 # 066e0
.long 0x7e73b214 # 066e4
.long 0x3ad60004 # 066e8
.long 0x52d10ebd # 066ec
.long 0x4bfff4bc # 066f0
.long 0x5637967a # 066f4
.long 0x7f9cb800 # 066f8
.long 0x5637be7a # 066fc
.long 0x7f1cb800 # 06700
.long 0x419e000c # 06704
.long 0x419a0008 # 06708
.long 0x7ea1e12e # 0670c
.long 0x3f910020 # 06710
.long 0x53910194 # 06714
.long 0x3a31ffc0 # 06718
.long 0x7ed6b0f8 # 0671c
.long 0x523637be # 06720
.long 0x3b800001 # 06724
.long 0x7ee102a6 # 06728
.long 0x56f7c63e # 0672c
.long 0x56b4463e # 06730
.long 0x7f94b800 # 06734
.long 0x7ed6e215 # 06738
.long 0x419e0044 # 0673c
.long 0x41820040 # 06740
.long 0x56b4863e # 06744
.long 0x7f94b800 # 06748
.long 0x7ed6e215 # 0674c
.long 0x419e0030 # 06750
.long 0x4182002c # 06754
.long 0x56b4c63e # 06758
.long 0x7f94b800 # 0675c
.long 0x7ed6e215 # 06760
.long 0x419e001c # 06764
.long 0x41820018 # 06768
.long 0x56b4063e # 0676c
.long 0x7f94b800 # 06770
.long 0x7ed6e215 # 06774
.long 0x419e0008 # 06778
.long 0x4082ff4c # 0677c
.long 0x563c00c7 # 06780
.long 0x7ee102a6 # 06784
.long 0x7ed6ba14 # 06788
.long 0x52d7067e # 0678c
.long 0x7ee103a6 # 06790
.long 0x4182fe0c # 06794
.long 0x7ee00026 # 06798
.long 0x56f707be # 0679c
.long 0x52ede006 # 067a0
.long 0x4bfffdfc # 067a4
.long 0x56b40000 # 067a8
.long 0x7e95aa79 # 067ac
.long 0x4182f1c8 # 067b0
.long 0x56b78471 # 067b4
.long 0x3af70080 # 067b8
.long 0x52b4e97e # 067bc
.long 0x7ef70734 # 067c0
.long 0x52b40042 # 067c4
.long 0x56b5e804 # 067c8
.long 0x3af7bf80 # 067cc
.long 0x52f40088 # 067d0
.long 0x4082f1a4 # 067d4
.long 0x56b5653e # 067d8
.long 0x52956026 # 067dc
.long 0x7eb70034 # 067e0
.long 0x7eb5b830 # 067e4
.long 0x7ef700d0 # 067e8
.long 0x52b4ab3e # 067ec
.long 0x3af70380 # 067f0
.long 0x56b5a814 # 067f4
.long 0x52f4a056 # 067f8
.long 0x4bfff17c # 067fc
.long 0x5735002a # 06800
.long 0x52357638 # 06804
.long 0x516e018c # 06808
.long 0x7eb5a214 # 0680c
.long 0x7dc00124 # 06810
.long 0x7ea803a6 # 06814
.long 0x4c00012c # 06818
.long 0x656b0200 # 0681c
.long 0x4e800020 # 06820
.long 0x5733002a # 06824
.long 0x52337638 # 06828
.long 0x7e73a214 # 0682c
.long 0x7e6803a6 # 06830
.long 0x516e018c # 06834
.long 0x3ae1fd20 # 06838
.long 0x7dc00124 # 0683c
.long 0x5257073e # 06840
.long 0x4c00012c # 06844
.long 0x4e800020 # 06848
.long 0x656b0200 # 0684c
.long 0x8ab70000 # 06850
.long 0x4bfff090 # 06854
.long 0x656b0200 # 06858
.long 0xa2b70000 # 0685c
.long 0x4bfff084 # 06860
.long 0x656b0200 # 06864
.long 0x82b70000 # 06868
.long 0x4bfff078 # 0686c
/***********************************************************
major_0x06870
************************************************************
Xrefs:
setup
***********************************************************/
major_0x06870: /* < outside referer */
li r23, 0x00 # 06870
lwz r21, 0x064c( r1) # 06874
lwz r20, 0x037c( r1) # 06878
lis r18, rfi_to_kern@h # 0687c
ori r18, r18, rfi_to_kern@l # 06880
add r21, r18, r21 # 06884
stw r21, 0x037c( r1) # 06888
li r18, 0x00 # 0688c
mtspr 0x3b8, r18 # 06890
not r19, r18 # 06894
mfspr r19, 0x3b8 # 06898
xor r17, r18, r19 # 0689c
mtspr 0x3b9, r18 # 068a0
not r19, r18 # 068a4
mfspr r19, 0x3b9 # 068a8
xor r19, r18, r19 # 068ac
or r17, r17, r19 # 068b0
mtspr 0x3ba, r18 # 068b4
not r19, r18 # 068b8
mfspr r19, 0x3ba # 068bc
xor r19, r18, r19 # 068c0
or r17, r17, r19 # 068c4
mtspr 0x3bb, r18 # 068c8
not r19, r18 # 068cc
mfspr r19, 0x3bb # 068d0
xor r19, r18, r19 # 068d4
or. r17, r17, r19 # 068d8
bne- major_0x06870_0x74 # 068dc
ori r23, r23, 0x01 # 068e0
major_0x06870_0x74:
mr. r23, r23 # 068e4
beq- major_0x06870_0x10c # 068e8
mtspr 0x3bc, r18 # 068ec
not r19, r18 # 068f0
mfspr r19, 0x3bc # 068f4
xor r17, r18, r19 # 068f8
mtspr 0x3bd, r18 # 068fc
not r19, r18 # 06900
mfspr r19, 0x3bd # 06904
xor r19, r18, r19 # 06908
or r17, r17, r19 # 0690c
mtspr 0x3be, r18 # 06910
not r19, r18 # 06914
mfspr r19, 0x3be # 06918
xor r19, r18, r19 # 0691c
or. r17, r17, r19 # 06920
bne- major_0x06870_0xbc # 06924
ori r23, r23, 0x02 # 06928
major_0x06870_0xbc:
li r18, -0x5560 # 0692c
mtspr 0x3bf, r18 # 06930
not r19, r18 # 06934
mfspr r19, 0x3bf # 06938
xor. r17, r18, r19 # 0693c
beq- major_0x06870_0xd8 # 06940
ori r23, r23, 0x04 # 06944
major_0x06870_0xd8:
li r18, 0x00 # 06948
mtspr 0x3b0, r18 # 0694c
not r19, r18 # 06950
mfspr r19, 0x3b0 # 06954
xor r17, r18, r19 # 06958
li r18, 0x00 # 0695c
mtspr 0x3b7, r18 # 06960
not r19, r18 # 06964
mfspr r19, 0x3b7 # 06968
xor r19, r18, r19 # 0696c
or. r17, r17, r19 # 06970
bne- major_0x06870_0x10c # 06974
ori r23, r23, 0x08 # 06978
major_0x06870_0x10c:
stw r20, 0x037c( r1) # 0697c
mr. r23, r23 # 06980
stw r23, 0x05c0( r1) # 06984
li r23, 0x00 # 06988
oris r23, r23, 0x02 # 0698c
oris r23, r23, 0x01 # 06990
beq- major_0x06870_0x12c # 06994
ori r23, r23, 0x2000 # 06998
major_0x06870_0x12c:
stw r23, 0x05b8( r1) # 0699c
lis r20, -0x7fa8 # 069a0
ori r20, r20, 0x7ff3 # 069a4
lis r21, -0x29da # 069a8
ori r21, r21, 0x11e3 # 069ac
lwz r19, 0x0f2c( r1) # 069b0
cntlzw r23, r19 # 069b4
slw r19, r19, r23 # 069b8
cmpw cr1, r20, r19 # 069bc
addi r23, r23, 0x02 # 069c0
xor. r24, r24, r24 # 069c4
bge- cr1, major_0x06870_0x180 # 069c8
addi r23, r23, -0x01 # 069cc
major_0x06870_0x160:
cmpwi cr1, r20, 0x00 # 069d0
slwi r20, r20, 1 # 069d4
rlwimi r20, r21, 1, 31, 31 # 069d8
cmplw cr2, r20, r19 # 069dc
rlwinm. r24, r24, 1, 0, 30 # 069e0
slwi r21, r21, 1 # 069e4
blt- cr1, major_0x06870_0x180 # 069e8
blt- cr2, major_0x06870_0x188 # 069ec
major_0x06870_0x180:
subf r20, r19, r20 # 069f0
ori r24, r24, 0x01 # 069f4
major_0x06870_0x188:
bge+ major_0x06870_0x160 # 069f8
stw r24, 0x05bc( r1) # 069fc
stb r23, 0x05b8( r1) # 06a00
li r21, 0x20 # 06a04
subf r21, r23, r21 # 06a08
stb r21, 0x05bb( r1) # 06a0c
blr # 06a10
/***********************************************************
major_0x06a14
************************************************************
Xrefs:
major_0x04700
***********************************************************/
major_0x06a14: /* < outside referer */
mfspr r1, 272/*sprg0*/ # 06a14
lwz r8, 0x0104( r6) # 06a18
stw r8, 0x0000( r1) # 06a1c
stw r2, 0x0008( r1) # 06a20
stw r3, 0x000c( r1) # 06a24
stw r4, 0x0010( r1) # 06a28
stw r5, 0x0014( r1) # 06a2c
stmw r14, 0x0038( r1) # 06a30
mr r16, r7 # 06a34
lwz r7, 0x013c( r6) # 06a38
stw r7, 0x001c( r1) # 06a3c
lwz r8, 0x0144( r6) # 06a40
stw r8, 0x0020( r1) # 06a44
lwz r9, 0x014c( r6) # 06a48
stw r9, 0x0024( r1) # 06a4c
lwz r23, 0x0154( r6) # 06a50
stw r23, 0x0028( r1) # 06a54
lwz r23, 0x015c( r6) # 06a58
stw r23, 0x002c( r1) # 06a5c
lwz r23, 0x0164( r6) # 06a60
stw r23, 0x0030( r1) # 06a64
lwz r23, 0x016c( r6) # 06a68
stw r23, 0x0034( r1) # 06a6c
lwz r1, -0x0004( r1) # 06a70
addi r22, r6, 0xc4 # 06a74
lwz r23, 0x0ea0( r1) # 06a78
lwz r25, 0x0650( r1) # 06a7c
addi r23, r23, 0x01 # 06a80
stw r23, 0x0ea0( r1) # 06a84
mfspr r24, 275/*sprg3*/ # 06a88
addi r23, r1, 0x4e0 # 06a8c
mfmsr r14 # 06a90
ori r15, r14, 0x10 # 06a94
mtspr 275/*sprg3*/, r23 # 06a98
mtmsr r15 # 06a9c
isync # 06aa0
lwz r27, 0x0000(r10) # 06aa4
mtmsr r14 # 06aa8
isync # 06aac
mtspr 275/*sprg3*/, r24 # 06ab0
srwi r23, r27, 26 # 06ab4
cmpwi cr6, r23, 0x09 # 06ab8
cmpwi r23, 0x16 # 06abc
cmpwi cr1, r23, 0x1f # 06ac0
lwz r20, 0x05b8( r1) # 06ac4
rlwinm r21, r16, 15, 14, 14 # 06ac8
neg r21, r21 # 06acc
rlwimi r21, r16, 14, 16, 16 # 06ad0
or r21, r21, r20 # 06ad4
rlwimi r21, r27, 0, 21, 31 # 06ad8
rlwimi r16, r16, 27, 26, 26 # 06adc
mfspr r1, 272/*sprg0*/ # 06ae0
rlwinm r17, r27, 13, 25, 29 # 06ae4
rlwinm r18, r27, 18, 25, 29 # 06ae8
beq- cr6, major_0x06a14_0x2b4 # 06aec
mtcrf 0x3f, r21 # 06af0
rlwinm r19, r27, 23, 25, 29 # 06af4
beq- major_0x06a14_0x9bc # 06af8
bne- cr1, major_0x06a14_0x110 # 06afc
rlwinm r21, r27, 2, 24, 28 # 06b00
add r21, r21, r25 # 06b04
lwz r20, 0x1374(r21) # 06b08
rlwinm r23, r27, 26, 27, 31 # 06b0c
lwz r21, 0x1378(r21) # 06b10
rotlw. r20, r20, r23 # 06b14
add r21, r21, r25 # 06b18
mtlr r21 # 06b1c
bltlr- # 06b20
major_0x06a14_0x110:
ble- cr1, major_0x06a14_0x124 # 06b24
lis r20, 0x5556 # 06b28
ori r20, r20, 0x5500 # 06b2c
rotlw. r20, r20, r23 # 06b30
blt- major_0x06a14_0xa04 # 06b34
major_0x06a14_0x124:
mtcrf 0x70, r11 # 06b38
li r8, 0x04 # 06b3c
ble- cr3, major_0x06a14_0x140 # 06b40
mtcrf 0x0f, r11 # 06b44
li r8, 0x04 # 06b48
ble- cr4, major_0x06a14_0x140 # 06b4c
li r8, 0x05 # 06b50
major_0x06a14_0x140:
lwz r6, -0x0004( r1) # 06b54
lwz r9, 0x0ea0( r6) # 06b58
lmw r14, 0x0038( r1) # 06b5c
addi r9, r9, -0x01 # 06b60
stw r9, 0x0ea0( r6) # 06b64
lwz r6, -0x0014( r1) # 06b68
lwz r7, -0x0010( r1) # 06b6c
b major_0x02980_0x134 # 06b70
.long 0 # 06b74
.long 0x00001338 # 06b78
.long 0 # 06b7c
.long 0x00001338 # 06b80
.long 0 # 06b84
.long 0x00001338 # 06b88
.long 0 # 06b8c
.long 0x00001338 # 06b90
.long 0 # 06b94
.long 0x00001338 # 06b98
.long 0 # 06b9c
.long 0x00001338 # 06ba0
.long 0 # 06ba4
.long 0x00001338 # 06ba8
.long 0 # 06bac
.long 0x00001338 # 06bb0
.long 0x00910091 # 06bb4
.long 0x0000148c # 06bb8
.long 0 # 06bbc
.long 0x00001338 # 06bc0
.long 0 # 06bc4
.long 0x00001338 # 06bc8
.long 0x10301030 # 06bcc
.long 0x0000151c # 06bd0
.long 0 # 06bd4
.long 0x00001338 # 06bd8
.long 0 # 06bdc
.long 0x00001338 # 06be0
.long 0 # 06be4
.long 0x00001338 # 06be8
.long 0 # 06bec
.long 0x00001338 # 06bf0
.long 0 # 06bf4
.long 0x00001338 # 06bf8
.long 0 # 06bfc
.long 0x00001338 # 06c00
.long 0 # 06c04
.long 0x00001338 # 06c08
.long 0x00328000 # 06c0c
.long 0x000016d0 # 06c10
.long 0 # 06c14
.long 0x00001338 # 06c18
.long 0x0080a000 # 06c1c
.long 0x00001c18 # 06c20
.long 0 # 06c24
.long 0x00001338 # 06c28
.long 0x55545502 # 06c2c
.long 0x00001c20 # 06c30
.long 0x0f000f0c # 06c34
.long 0x00001ad0 # 06c38
.long 0x0a008a08 # 06c3c
.long 0x00001aa8 # 06c40
.long 0 # 06c44
.long 0x00001338 # 06c48
.long 0 # 06c4c
.long 0x00001338 # 06c50
.long 0 # 06c54
.long 0x00001338 # 06c58
.long 0x80008000 # 06c5c
.long 0x00001b8c # 06c60
.long 0 # 06c64
.long 0x00001338 # 06c68
.long 0 # 06c6c
.long 0x00001338 # 06c70
.long 0x92960000 # 06c74
.long 0x409f000c # 06c78
.long 0x7ee00026 # 06c7c
.long 0x52ed0006 # 06c80
major_0x06a14_0x270:
stwx r21, r1, r17 # 06c84
b major_0x06000_0x5a0 # 06c88
.long 0x408bfeac # 06c8c
.long 0x7e41902e # 06c90
.long 0x40980058 # 06c94
.long 0x41950018 # 06c98
.long 0x7e559379 # 06c9c
.long 0x4ef70182 # 06ca0
.long 0x4097ffd4 # 06ca4
.long 0x7eb200d1 # 06ca8
.long 0x4bffffcc # 06cac
.long 0x3aa00000 # 06cb0
.long 0x7eb2ae15 # 06cb4
.long 0x4ef70182 # 06cb8
.long 0x4097ffbc # 06cbc
.long 0x7eb204d1 # 06cc0
.long 0x4bffffb4 # 06cc4
major_0x06a14_0x2b4:
mtcrf 0x3f, r21 # 06cc8
bns+ cr2, major_0x06a14_0x124 # 06ccc
lwzx r18, r1, r18 # 06cd0
extsh r19, r27 # 06cd4
cmpw cr1, r19, r18 # 06cd8
subf r21, r21, r21 # 06cdc
blt+ cr1, major_0x06a14_0x270 # 06ce0
subf r21, r18, r19 # 06ce4
b major_0x06a14_0x270 # 06ce8
.long 0x7e61982e # 06cec
.long 0x41950018 # 06cf0
.long 0x7c939000 # 06cf4
.long 0x7eb5a851 # 06cf8
.long 0x4184ff7c # 06cfc
.long 0x7eb29851 # 06d00
.long 0x4bffff74 # 06d04
.long 0x7c939000 # 06d08
.long 0x7eb5ac51 # 06d0c
.long 0x4184ff68 # 06d10
.long 0x7eb29c51 # 06d14
.long 0x4bffff60 # 06d18
.long 0x4088fe1c # 06d1c
.long 0x7e61982e # 06d20
.long 0x7e41902e # 06d24
.long 0x40960190 # 06d28
.long 0x2c930000 # 06d2c
.long 0x41990018 # 06d30
.long 0x83160000 # 06d34
.long 0x57150ffe # 06d38
.long 0x7eb59215 # 06d3c
.long 0x40820050 # 06d40
.long 0x7f12c378 # 06d44
.long 0x2c13ffff # 06d48
.long 0x41950028 # 06d4c
.long 0x41820018 # 06d50
.long 0x4186002c # 06d54
.long 0x7eb29bd6 # 06d58
.long 0x7e9599d6 # 06d5c
.long 0x7e949051 # 06d60
.long 0x4bffff10 # 06d64
.long 0x7eb200d0 # 06d68
.long 0x7e929051 # 06d6c
.long 0x4bffff04 # 06d70
.long 0x7eb29fd6 # 06d74
.long 0x4182fff0 # 06d78
.long 0x4086ffe0 # 06d7c
.long 0x565717bc # 06d80
.long 0x3ab7ffff # 06d84
.long 0x7e549379 # 06d88
.long 0x4bfffee8 # 06d8c
.long 0x7f4102a6 # 06d90
.long 0x41860104 # 06d94
.long 0x2c130000 # 06d98
.long 0x2c920000 # 06d9c
.long 0x4ce02182 # 06da0
.long 0x40800008 # 06da4
.long 0x7e7300d0 # 06da8
.long 0x4084000c # 06dac
.long 0x23180000 # 06db0
.long 0x7e520190 # 06db4
.long 0x7c129840 # 06db8
.long 0x408000dc # 06dbc
.long 0x7e750034 # 06dc0
.long 0x7e52c278 # 06dc4
.long 0x7e73a830 # 06dc8
.long 0x5e52a83e # 06dcc
.long 0x7f18a830 # 06dd0
.long 0x7e52c278 # 06dd4
.long 0x5677843e # 06dd8
.long 0x7e92bb96 # 06ddc
.long 0x7ef4b9d6 # 06de0
.long 0x7e579050 # 06de4
.long 0x5652801e # 06de8
.long 0x5312843e # 06dec
.long 0x5718801e # 06df0
.long 0x5677043e # 06df4
.long 0x7ef4b9d6 # 06df8
.long 0x7e579010 # 06dfc
.long 0x7ef7b911 # 06e00
.long 0x7f18a214 # 06e04
.long 0x40800014 # 06e08
.long 0x7e529814 # 06e0c
.long 0x7ef70195 # 06e10
.long 0x3b18ffff # 06e14
.long 0x4180fff4 # 06e18
.long 0x5677843e # 06e1c
.long 0x7e92bb96 # 06e20
.long 0x7ef4b9d6 # 06e24
.long 0x7e579050 # 06e28
.long 0x5652801e # 06e2c
.long 0x5312843e # 06e30
.long 0x5718801e # 06e34
.long 0x5677043e # 06e38
.long 0x7ef4b9d6 # 06e3c
.long 0x7e579010 # 06e40
.long 0x7ef7b911 # 06e44
.long 0x7f18a214 # 06e48
.long 0x40800014 # 06e4c
.long 0x7e529814 # 06e50
.long 0x7ef70195 # 06e54
.long 0x3b18ffff # 06e58
.long 0x4180fff4 # 06e5c
.long 0x7e54ac30 # 06e60
.long 0x7f15c379 # 06e64
.long 0x40840008 # 06e68
.long 0x7e9400d0 # 06e6c
.long 0x40870008 # 06e70
.long 0x7eb500d1 # 06e74
.long 0x40950014 # 06e78
.long 0x4c003982 # 06e7c
.long 0x575a0080 # 06e80
.long 0x40800008 # 06e84
.long 0x675ac000 # 06e88
.long 0x7f4103a6 # 06e8c
.long 0x7e94a379 # 06e90
.long 0x4bfffde0 # 06e94
.long 0x40950008 # 06e98
.long 0x675ac000 # 06e9c
.long 0x7f4103a6 # 06ea0
.long 0x7e5590f8 # 06ea4
.long 0x56570ffe # 06ea8
.long 0x7f14c379 # 06eac
.long 0x7eb7aa14 # 06eb0
.long 0x4bfffdc0 # 06eb4
.long 0x7eb29896 # 06eb8
.long 0x4195000c # 06ebc
.long 0x7e9299d7 # 06ec0
.long 0x4bfffdb0 # 06ec4
.long 0x7e929dd7 # 06ec8
.long 0x4bfffda8 # 06ecc
.long 0x41990208 # 06ed0
.long 0x41950390 # 06ed4
.long 0x2c120040 # 06ed8
.long 0x2c920000 # 06edc
.long 0x2f120004 # 06ee0
.long 0x41970254 # 06ee4
.long 0x40800110 # 06ee8
.long 0x4c000182 # 06eec
.long 0x41860044 # 06ef0
.long 0x419a004c # 06ef4
.long 0x2c920014 # 06ef8
.long 0x2f120018 # 06efc
.long 0x41860050 # 06f00
.long 0x419a00c4 # 06f04
.long 0x2c920020 # 06f08
.long 0x2f120024 # 06f0c
.long 0x418600c4 # 06f10
.long 0x419a00d4 # 06f14
.long 0x2f120010 # 06f18
.long 0x7e41902e # 06f1c
.long 0x7e61982e # 06f20
.long 0x7eb29a15 # 06f24
.long 0x419a0028 # 06f28
.long 0x408efc0c # 06f2c
.long 0x48000424 # 06f30
.long 0x4088fc04 # 06f34
.long 0x82b60000 # 06f38
.long 0x4bfffd3c # 06f3c
.long 0x408efbf8 # 06f40
.long 0x7da80120 # 06f44
.long 0x7ea102a7 # 06f48
.long 0x4bfffd2c # 06f4c
.long 0x4089fbe8 # 06f50
.long 0x82c1fffc # 06f54
.long 0x7e8d42e6 # 06f58
.long 0x7eac42e6 # 06f5c
.long 0x7eed42e6 # 06f60
.long 0x7c97a040 # 06f64
.long 0x40a6fff0 # 06f68
.long 0x82f605bc # 06f6c
.long 0x8a5605b8 # 06f70
.long 0x8a7605bb # 06f74
.long 0x7ed4b9d6 # 06f78
.long 0x7f15b816 # 06f7c
.long 0x7ed6c214 # 06f80
.long 0x409a0024 # 06f84
.long 0x7c96c040 # 06f88
.long 0x7ed69c30 # 06f8c
.long 0x7eb4b816 # 06f90
.long 0x40a40008 # 06f94
.long 0x3ab50001 # 06f98
.long 0x7eb59030 # 06f9c
.long 0x7eb5b214 # 06fa0
.long 0x4bfffcd4 # 06fa4
.long 0x7eb5b9d6 # 06fa8
.long 0x7eb59c30 # 06fac
.long 0x7ed69030 # 06fb0
.long 0x7eb5b214 # 06fb4
.long 0x3ee03b9a # 06fb8
.long 0x62f7ca00 # 06fbc
.long 0x7eb5b816 # 06fc0
.long 0x4bfffcb4 # 06fc4
.long 0x408afb70 # 06fc8
.long 0x7eb602a6 # 06fcc
.long 0x4bfffca8 # 06fd0
.long 0x408efb64 # 06fd4
.long 0x7da80120 # 06fd8
.long 0x7d8803a6 # 06fdc
.long 0x7ea802a7 # 06fe0
.long 0x4bfffc94 # 06fe4
.long 0x408efb50 # 06fe8
.long 0x7da80120 # 06fec
.long 0x7ea902a7 # 06ff0
.long 0x4bfffc84 # 06ff4
.long 0x82e1fffc # 06ff8
.long 0x7da80120 # 06ffc
.long 0x82f705c0 # 07000
.long 0x5773adbe # 07004
.long 0x289303e8 # 07008
.long 0x41860070 # 0700c
.long 0x56f7a216 # 07010
.long 0x4092fb30 # 07014
.long 0x7ee20120 # 07018
.long 0x2893031d # 0701c
.long 0x41860078 # 07020
.long 0x2893033d # 07024
.long 0x41860078 # 07028
.long 0x2893035d # 0702c
.long 0x41860078 # 07030
.long 0x2893037d # 07034
.long 0x41860078 # 07038
.long 0x4189000c # 0703c
.long 0x289303fd # 07040
.long 0x4186008c # 07044
.long 0x408afafc # 07048
.long 0x2893039d # 0704c
.long 0x41860068 # 07050
.long 0x289303bd # 07054
.long 0x41860068 # 07058
.long 0x289303dd # 0705c
.long 0x41860068 # 07060
.long 0x4088fae0 # 07064
.long 0x2893021d # 07068
.long 0x4186001c # 0706c
.long 0x289302fd # 07070
.long 0x4186001c # 07074
.long 0x4bfffacc # 07078
.long 0x4091fac8 # 0707c
.long 0x7ebf42a7 # 07080
.long 0x4bfffbf4 # 07084
.long 0x7eb0eaa7 # 07088
.long 0x4bfffbec # 0708c
.long 0x7eb7eaa7 # 07090
.long 0x4bfffbe4 # 07094
.long 0x7eb8eaa7 # 07098
.long 0x4bfffbdc # 0709c
.long 0x7eb9eaa7 # 070a0
.long 0x4bfffbd4 # 070a4
.long 0x7ebaeaa7 # 070a8
.long 0x4bfffbcc # 070ac
.long 0x7ebbeaa7 # 070b0
.long 0x4bfffbc4 # 070b4
.long 0x7ebceaa7 # 070b8
.long 0x4bfffbbc # 070bc
.long 0x7ebdeaa7 # 070c0
.long 0x4bfffbb4 # 070c4
.long 0x7ebeeaa7 # 070c8
.long 0x4bfffbac # 070cc
.long 0x7ebfeaa7 # 070d0
.long 0x4bfffba4 # 070d4
.long 0x5777adbe # 070d8
.long 0x28970188 # 070dc
.long 0x2b1701a8 # 070e0
.long 0x4c46d382 # 070e4
.long 0x4082fa50 # 070e8
.long 0x7e8402a6 # 070ec
.long 0x7ea502a6 # 070f0
.long 0x7ee402a6 # 070f4
.long 0x7ef7a279 # 070f8
.long 0x3ee03b9a # 070fc
.long 0x62f7ca00 # 07100
.long 0x40a2ffe8 # 07104
.long 0x7f0002a6 # 07108
.long 0x4def7a42 # 0710c
.long 0x7e74b9d6 # 07110
.long 0x7f0003a6 # 07114
.long 0x7eb59a14 # 07118
.long 0x4186fb68 # 0711c
.long 0x7c159840 # 07120
.long 0x7eb4b816 # 07124
.long 0x7f0003a6 # 07128
.long 0x4080fb58 # 0712c
.long 0x3ab50001 # 07130
.long 0x4bfffb50 # 07134
.long 0x7e21882e # 07138
.long 0x4080005c # 0713c
.long 0x7e318b79 # 07140
.long 0x41860020 # 07144
.long 0x408ef9f0 # 07148
.long 0x419a0024 # 0714c
.long 0x2c920020 # 07150
.long 0x2f120024 # 07154
.long 0x41860024 # 07158
.long 0x419a0030 # 0715c
.long 0x480001f4 # 07160
.long 0x4088f9d4 # 07164
.long 0x92360000 # 07168
.long 0x480001e8 # 0716c
.long 0x7da80120 # 07170
.long 0x7e2103a7 # 07174
.long 0x480001dc # 07178
.long 0x7da80120 # 0717c
.long 0x7e2c8b78 # 07180
.long 0x7e2803a7 # 07184
.long 0x480001cc # 07188
.long 0x7da80120 # 0718c
.long 0x7e2903a7 # 07190
.long 0x480001c0 # 07194
.long 0x82e1fffc # 07198
.long 0x4092f9a8 # 0719c
.long 0x82f705c0 # 071a0
.long 0x7da80120 # 071a4
.long 0x56f7a216 # 071a8
.long 0x5773adbe # 071ac
.long 0x7ee20120 # 071b0
.long 0x2893031d # 071b4
.long 0x4186006c # 071b8
.long 0x2893033d # 071bc
.long 0x4186006c # 071c0
.long 0x2893035d # 071c4
.long 0x4186006c # 071c8
.long 0x2893037d # 071cc
.long 0x4186006c # 071d0
.long 0x4189000c # 071d4
.long 0x289303fd # 071d8
.long 0x41860080 # 071dc
.long 0x408af964 # 071e0
.long 0x2893039d # 071e4
.long 0x4186005c # 071e8
.long 0x289303bd # 071ec
.long 0x4186005c # 071f0
.long 0x289303dd # 071f4
.long 0x4186005c # 071f8
.long 0x4088f948 # 071fc
.long 0x2893021d # 07200
.long 0x41860010 # 07204
.long 0x289302fd # 07208
.long 0x41860010 # 0720c
.long 0x4bfff934 # 07210
.long 0x7e30eba7 # 07214
.long 0x4800013c # 07218
.long 0x7e37eba7 # 0721c
.long 0x48000134 # 07220
.long 0x7e38eba7 # 07224
.long 0x4800012c # 07228
.long 0x7e39eba7 # 0722c
.long 0x48000124 # 07230
.long 0x7e3aeba7 # 07234
.long 0x4800011c # 07238
.long 0x7e3beba7 # 0723c
.long 0x48000114 # 07240
.long 0x7e3ceba7 # 07244
.long 0x4800010c # 07248
.long 0x7e3deba7 # 0724c
.long 0x48000104 # 07250
.long 0x7e3eeba7 # 07254
.long 0x480000fc # 07258
.long 0x7e3feba7 # 0725c
.long 0x480000f4 # 07260
.long 0x82e1fffc # 07264
.long 0x408cf8d0 # 07268
.long 0x5772873f # 0726c
.long 0x5775873c # 07270
.long 0x2c95000a # 07274
.long 0x3a521a98 # 07278
.long 0x7e5990ae # 0727c
.long 0x3ab70f20 # 07280
.long 0x4186000c # 07284
.long 0x7eb5922e # 07288
.long 0x4bfff9ec # 0728c
.long 0x7eb5902e # 07290
.long 0x4bfff9e4 # 07294
.long 0x24242424 # 07298
.long 0x26282a20 # 0729c
.long 0x2c2e1814 # 072a0
.long 0x22242424 # 072a4
.long 0x7e61982e # 072a8
.long 0x567306fe # 072ac
.long 0x4197006c # 072b0
.long 0x408bf884 # 072b4
.long 0x7e21882e # 072b8
.long 0x3ee08000 # 072bc
.long 0x7ea1902e # 072c0
.long 0x7ef79c30 # 072c4
.long 0x7e319c30 # 072c8
.long 0x4800013c # 072cc
.long 0x41990048 # 072d0
.long 0x7e61982e # 072d4
.long 0x567306be # 072d8
.long 0x40980040 # 072dc
.long 0x2c13001f # 072e0
.long 0x4ef7b842 # 072e4
.long 0x40810034 # 072e8
.long 0x4088f84c # 072ec
.long 0x82960000 # 072f0
.long 0x3ae0ffff # 072f4
.long 0x567306fe # 072f8
.long 0x41950010 # 072fc
.long 0x7ef79830 # 07300
.long 0x7e95b839 # 07304
.long 0x48000048 # 07308
.long 0x7ef79c30 # 0730c
.long 0x7e95b839 # 07310
.long 0x4800003c # 07314
.long 0x5773aefe # 07318
.long 0x4088f81c # 0731c
.long 0x7e21882e # 07320
.long 0x41950040 # 07324
.long 0x7e359831 # 07328
.long 0x5e34983e # 0732c
.long 0x4098001c # 07330
.long 0x3ae0ffff # 07334
.long 0x7ef79830 # 07338
.long 0x82760000 # 0733c
.long 0x7e77b878 # 07340
.long 0x7eb5bb79 # 07344
.long 0x40970008 # 07348
.long 0x92960000 # 0734c
major_0x06a14_0x93c:
stwx r21, r1, r18 # 07350
bns+ cr7, major_0x06000_0x5a0 # 07354
mfcr r23 # 07358
rlwimi r13, r23, 0, 0, 3 # 0735c
b major_0x06000_0x5a0 # 07360
.long 0x7e9300d0 # 07364
.long 0x5e34a03e # 07368
.long 0x41960018 # 0736c
.long 0x7e359c31 # 07370
.long 0x4098ffd8 # 07374
.long 0x3ae0ffff # 07378
.long 0x7ef79c30 # 0737c
.long 0x4bffffbc # 07380
.long 0x7e359e31 # 07384
.long 0x4bffffc4 # 07388
.long 0x408bf7ac # 0738c
.long 0x7e61982e # 07390
.long 0x7e21882e # 07394
.long 0x41950024 # 07398
.long 0x3aa0ffff # 0739c
.long 0x7e719850 # 073a0
.long 0x7e7398f8 # 073a4
.long 0x567306fe # 073a8
.long 0x7e3100d0 # 073ac
.long 0x7eb59830 # 073b0
.long 0x5eb5883f # 073b4
.long 0x4bffff98 # 073b8
.long 0x7ea1902e # 073bc
.long 0x7e319838 # 073c0
.long 0x7eb59878 # 073c4
.long 0x7eb58b79 # 073c8
.long 0x4bffff84 # 073cc
major_0x06a14_0x9bc:
bns+ cr2, major_0x06a14_0x124 # 073d0
lwzx r17, r1, r17 # 073d4
rlwinm r20, r27, 26, 27, 31 # 073d8
lwzx r19, r1, r19 # 073dc
rlwinm r21, r27, 31, 27, 31 # 073e0
li r23, -0x01 # 073e4
subf r21, r20, r21 # 073e8
not r21, r21 # 073ec
clrlwi r21, r21, 0x1b # 073f0
neg r20, r20 # 073f4
slw r23, r23, r21 # 073f8
lwzx r21, r1, r18 # 073fc
rotlw r23, r23, r20 # 07400
rotlw r17, r17, r19 # 07404
and r17, r17, r23 # 07408
andc r21, r21, r23 # 0740c
or. r21, r21, r17 # 07410
b major_0x06a14_0x93c # 07414
major_0x06a14_0xa04:
ble+ cr3, major_0x06a14_0x124 # 07418
b major_0x032c0_0x64 # 0741c
.long 0x4199fff8 # 07420
.long 0x4090f714 # 07424
.long 0x4bffbefc # 07428
/***********************************************************
major_0x0742c
***********************************************************/
.long 0x48000014 # 0742c
.long 0x60000000 # 07430
.long 0x60000000 # 07434
.long 0x60000000 # 07438
.long 0x60000000 # 0743c
/***********************************************************
major_0x07440
************************************************************
Xrefs:
"lisori_caller"
***********************************************************/
major_0x07440: /* < outside referer */
# r6 = saved at *(ewa + 0x18)
# sprg1 = saved at *(ewa + 4)
# rN (0,7,8,9,10,11,12,13, not r1) = saved at *(*(ewa - 0x14) + 0x104 + 8*N)
bl int_prepare # 07440
# r0 = 0
# r1 = *(ewa - 4)
# r6 = kdp
# r7 = *(ewa - 0x10) # flags?
# r8 = ewa
# r10 = srr0
# r11 = srr1
# r12 = sprg2
# r13 = cr
mfspr r1, 272/*sprg0*/ # 07444
lwz r8, 0x0104( r6) # 07448
stw r8, 0x0000( r1) # 0744c
stw r2, 0x0008( r1) # 07450
stw r3, 0x000c( r1) # 07454
stw r4, 0x0010( r1) # 07458
stw r5, 0x0014( r1) # 0745c
stmw r14, 0x0038( r1) # 07460
mr r16, r7 # 07464
lwz r7, 0x013c( r6) # 07468
stw r7, 0x001c( r1) # 0746c
lwz r8, 0x0144( r6) # 07470
stw r8, 0x0020( r1) # 07474
lwz r9, 0x014c( r6) # 07478
stw r9, 0x0024( r1) # 0747c
lwz r23, 0x0154( r6) # 07480
stw r23, 0x0028( r1) # 07484
lwz r23, 0x015c( r6) # 07488
stw r23, 0x002c( r1) # 0748c
lwz r23, 0x0164( r6) # 07490
stw r23, 0x0030( r1) # 07494
lwz r23, 0x016c( r6) # 07498
stw r23, 0x0034( r1) # 0749c
lwz r1, -0x0004( r1) # 074a0
addi r22, r6, 0xc4 # 074a4
mfspr r24, 275/*sprg3*/ # 074a8
addi r23, r1, 0x4e0 # 074ac
mfmsr r14 # 074b0
oris r14, r14, 0x200 # 074b4
ori r15, r14, 0x10 # 074b8
mtspr 275/*sprg3*/, r23 # 074bc
mtmsr r15 # 074c0
isync # 074c4
lwz r27, 0x0000(r10) # 074c8
mtmsr r14 # 074cc
isync # 074d0
mtspr 275/*sprg3*/, r24 # 074d4
lwz r24, 0x00d8( r6) # 074d8
addi r24, r24, 0x00 # 074dc
li r8, 0x00 # 074e0
stvx v0, r24, r8 # 074e4
li r9, 0x10 # 074e8
stvx v1, r24, r9 # 074ec
li r8, 0x20 # 074f0
stvx v2, r24, r8 # 074f4
li r9, 0x30 # 074f8
stvx v3, r24, r9 # 074fc
li r8, 0x40 # 07500
stvx v4, r24, r8 # 07504
li r9, 0x50 # 07508
stvx v5, r24, r9 # 0750c
li r8, 0x60 # 07510
stvx v6, r24, r8 # 07514
li r9, 0x70 # 07518
stvx v7, r24, r9 # 0751c
li r8, 0x80 # 07520
stvx v8, r24, r8 # 07524
li r9, 0x90 # 07528
stvx v9, r24, r9 # 0752c
li r8, 160 # 07530
stvx v10, r24, r8 # 07534
li r9, 0xb0 # 07538
stvx v11, r24, r9 # 0753c
li r8, 0xc0 # 07540
stvx v12, r24, r8 # 07544
li r9, 0xd0 # 07548
stvx v13, r24, r9 # 0754c
li r8, 0xe0 # 07550
stvx v14, r24, r8 # 07554
li r9, 240 # 07558
stvx v15, r24, r9 # 0755c
li r8, 0x100 # 07560
stvx v16, r24, r8 # 07564
li r9, 0x110 # 07568
stvx v17, r24, r9 # 0756c
li r8, 0x120 # 07570
stvx v18, r24, r8 # 07574
li r9, 0x130 # 07578
stvx v19, r24, r9 # 0757c
li r8, 320 # 07580
stvx v20, r24, r8 # 07584
li r9, 0x150 # 07588
stvx v21, r24, r9 # 0758c
li r8, 0x160 # 07590
stvx v22, r24, r8 # 07594
li r9, 0x170 # 07598
stvx v23, r24, r9 # 0759c
li r8, 0x180 # 075a0
stvx v24, r24, r8 # 075a4
li r9, 400 # 075a8
stvx v25, r24, r9 # 075ac
li r8, 0x1a0 # 075b0
stvx v26, r24, r8 # 075b4
li r9, 0x1b0 # 075b8
stvx v27, r24, r9 # 075bc
li r8, 0x1c0 # 075c0
stvx v28, r24, r8 # 075c4
li r9, 0x1d0 # 075c8
stvx v29, r24, r9 # 075cc
li r8, 480 # 075d0
stvx v30, r24, r8 # 075d4
li r9, 0x1f0 # 075d8
stvx v31, r24, r9 # 075dc
lwz r23, 0x0ed8( r1) # 075e0
lwz r25, 0x0650( r1) # 075e4
addi r23, r23, 0x01 # 075e8
stw r23, 0x0ed8( r1) # 075ec
rlwinm. r8, r27, 26, 0, 0 # 075f0
rlwinm r9, r27, 24, 30, 31 # 075f4
cmpwi cr1, r9, 0x03 # 075f8
cmpwi cr2, r9, 0x00 # 075fc
rlwinm r17, r27, 15, 23, 27 # 07600
rlwinm r18, r27, 20, 23, 27 # 07604
rlwinm r19, r27, 25, 23, 27 # 07608
blt- major_0x07658_0x180 # 0760c
beq- cr2, major_0x07658_0x224 # 07610
bgt- cr1, major_0x07658_0x60 # 07614
lvx v3, r24, r19 # 07618
vspltisw v31, 0x00 # 0761c
vspltisw v29, 0x01 # 07620
vcfux v29, v29, 0x00 # 07624
vspltisw v30, -0x01 # 07628
vspltisw v22, 0x09 # 0762c
vsrw v28, v30, v22 # 07630
vslw v27, v30, v30 # 07634
vnor v26, v28, v27 # 07638
vsraw v24, v3, v30 # 0763c
vand v23, v3, v28 # 07640
vcmpequw v23, v23, v31 # 07644
vand v22, v3, v26 # 07648
vcmpequw v22, v22, v31 # 0764c
vandc v25, v22, v23 # 07650
lwz r9, 0x064c( r1) # 07654
/***********************************************************
major_0x07658
************************************************************
Xrefs:
"lisori_caller"
major_0x07440
major_0x07980
major_0x07ac0
major_0x07d10
***********************************************************/
lis r8, major_0x07658_0x1c@h # 07658
ori r8, r8, major_0x07658_0x1c@l # 0765c
add r9, r9, r8 # 07660
rlwinm r8, r27, 28, 26, 29 # 07664
add r9, r9, r8 # 07668
mtlr r9 # 0766c
blr # 07670
major_0x07658_0x1c:
b panic # 07674
b panic # 07678
b panic # 0767c
b panic # 07680
b major_0x07ac0_0x14c # 07684
b major_0x07ac0_0x100 # 07688
b major_0x07ac0_0x24c # 0768c
b major_0x07ac0_0x220 # 07690
b major_0x07658_0x2b8 # 07694
b major_0x07658_0x2c8 # 07698
b major_0x07658_0x2d8 # 0769c
b major_0x07658_0x2e8 # 076a0
b panic # 076a4
b panic # 076a8
b major_0x07658_0x2fc # 076ac
b major_0x07980_0x100 # 076b0
major_0x07658_0x5c: /* < outside referer */
stvx v1, r24, r17 # 076b4
major_0x07658_0x60: /* < outside referer */
li r8, 0x00 # 076b8
lvx v0, r24, r8 # 076bc
li r8, 0x10 # 076c0
lvx v1, r24, r8 # 076c4
li r8, 0x20 # 076c8
lvx v2, r24, r8 # 076cc
li r8, 0x30 # 076d0
lvx v3, r24, r8 # 076d4
li r8, 0x40 # 076d8
lvx v4, r24, r8 # 076dc
li r8, 0x50 # 076e0
lvx v5, r24, r8 # 076e4
li r8, 0x60 # 076e8
lvx v6, r24, r8 # 076ec
li r8, 0x70 # 076f0
lvx v7, r24, r8 # 076f4
li r8, 0x80 # 076f8
lvx v8, r24, r8 # 076fc
li r8, 0x90 # 07700
lvx v9, r24, r8 # 07704
li r8, 160 # 07708
lvx v10, r24, r8 # 0770c
li r8, 0xb0 # 07710
lvx v11, r24, r8 # 07714
li r8, 0xc0 # 07718
lvx v12, r24, r8 # 0771c
li r8, 0xd0 # 07720
lvx v13, r24, r8 # 07724
li r8, 0xe0 # 07728
lvx v14, r24, r8 # 0772c
li r8, 240 # 07730
lvx v15, r24, r8 # 07734
li r8, 0x100 # 07738
lvx v16, r24, r8 # 0773c
li r8, 0x110 # 07740
lvx v17, r24, r8 # 07744
li r8, 0x120 # 07748
lvx v18, r24, r8 # 0774c
li r8, 0x130 # 07750
lvx v19, r24, r8 # 07754
li r8, 320 # 07758
lvx v20, r24, r8 # 0775c
li r8, 0x150 # 07760
lvx v21, r24, r8 # 07764
li r8, 0x160 # 07768
lvx v22, r24, r8 # 0776c
li r8, 0x170 # 07770
lvx v23, r24, r8 # 07774
li r8, 0x180 # 07778
lvx v24, r24, r8 # 0777c
li r8, 400 # 07780
lvx v25, r24, r8 # 07784
li r8, 0x1a0 # 07788
lvx v26, r24, r8 # 0778c
li r8, 0x1b0 # 07790
lvx v27, r24, r8 # 07794
li r8, 0x1c0 # 07798
lvx v28, r24, r8 # 0779c
li r8, 0x1d0 # 077a0
lvx v29, r24, r8 # 077a4
li r8, 480 # 077a8
lvx v30, r24, r8 # 077ac
li r8, 0x1f0 # 077b0
lvx v31, r24, r8 # 077b4
andi. r23, r16, 0x20 # 077b8
addi r10, r10, 0x04 # 077bc
mfspr r1, 272/*sprg0*/ # 077c0
mtspr 26/*srr0*/, r10 # 077c4
mtspr 27/*srr1*/, r11 # 077c8
bne+ major_0x06000_0x630 # 077cc
mtlr r12 # 077d0
b major_0x06000_0x5c8 # 077d4
major_0x07658_0x180: /* < outside referer */
rlwinm r22, r27, 30, 23, 27 # 077d8
mfmsr r14 # 077dc
ori r15, r14, 0x2000 # 077e0
mtmsr r15 # 077e4
isync # 077e8
rlwinm. r8, r11, 0, 18, 18 # 077ec
beq- major_0x07658_0x1b4 # 077f0
stfd f0, 0x0200( r6) # 077f4
mffs f0 # 077f8
stfd f1, 0x0208( r6) # 077fc
stfd f2, 0x0210( r6) # 07800
stfd f3, 0x0218( r6) # 07804
stfd f0, 0x00e0( r6) # 07808
major_0x07658_0x1b4:
.long 0xff80010c # 0780c
crmove r30, r2 # 07810
rlwinm. r9, r27, 31, 0, 0 # 07814
li r8, 0x03 # 07818
crmove r26, r0 # 0781c
major_0x07658_0x1c8:
lfsx f0, r24, r18 # 07820
addic. r8, r8, -0x01 # 07824
lfsx f1, r24, r19 # 07828
lfsx f2, r24, r22 # 0782c
bne- cr6, major_0x07658_0x1f0 # 07830
fnmsubs f3, f0, f2, f1 # 07834
stfsx f3, r24, r17 # 07838
addi r24, r24, 0x04 # 0783c
bge+ major_0x07658_0x1c8 # 07840
b major_0x07658_0x200 # 07844
major_0x07658_0x1f0:
fmadds f3, f0, f2, f1 # 07848
stfsx f3, r24, r17 # 0784c
addi r24, r24, 0x04 # 07850
bge+ major_0x07658_0x1c8 # 07854
major_0x07658_0x200:
addi r24, r24, -0x10 # 07858
beq+ cr7, major_0x07658_0x60 # 0785c
lfd f0, 0x00e0( r6) # 07860
mtfsf 0xff, f0 # 07864
lfd f0, 0x0200( r6) # 07868
lfd f1, 0x0208( r6) # 0786c
lfd f2, 0x0210( r6) # 07870
lfd f3, 0x0218( r6) # 07874
b major_0x07658_0x60 # 07878
major_0x07658_0x224: /* < outside referer */
mfmsr r14 # 0787c
ori r15, r14, 0x2000 # 07880
mtmsr r15 # 07884
isync # 07888
rlwinm. r8, r11, 0, 18, 18 # 0788c
beq- major_0x07658_0x250 # 07890
stfd f0, 0x0200( r6) # 07894
mffs f0 # 07898
stfd f1, 0x0208( r6) # 0789c
stfd f3, 0x0218( r6) # 078a0
stfd f0, 0x00e0( r6) # 078a4
major_0x07658_0x250:
.long 0xff80010c # 078a8
crmove r30, r2 # 078ac
rlwinm. r9, r27, 25, 0, 0 # 078b0
li r8, 0x03 # 078b4
crmove r26, r0 # 078b8
major_0x07658_0x264:
lfsx f0, r24, r18 # 078bc
addic. r8, r8, -0x01 # 078c0
lfsx f1, r24, r19 # 078c4
bne- cr6, major_0x07658_0x288 # 078c8
fsubs f3, f0, f1 # 078cc
stfsx f3, r24, r17 # 078d0
addi r24, r24, 0x04 # 078d4
bge+ major_0x07658_0x264 # 078d8
b major_0x07658_0x298 # 078dc
major_0x07658_0x288:
fadds f3, f0, f1 # 078e0
stfsx f3, r24, r17 # 078e4
addi r24, r24, 0x04 # 078e8
bge+ major_0x07658_0x264 # 078ec
major_0x07658_0x298:
addi r24, r24, -0x10 # 078f0
beq+ cr7, major_0x07658_0x60 # 078f4
lfd f0, 0x00e0( r6) # 078f8
mtfsf 0xff, f0 # 078fc
lfd f0, 0x0200( r6) # 07900
lfd f1, 0x0208( r6) # 07904
lfd f3, 0x0218( r6) # 07908
b major_0x07658_0x60 # 0790c
major_0x07658_0x2b8:
vsel v22, v31, v27, v24 # 07910
vsel v23, v3, v22, v25 # 07914
vrfin v1, v23 # 07918
b major_0x07658_0x5c # 0791c
major_0x07658_0x2c8:
vsel v22, v31, v27, v24 # 07920
vsel v23, v3, v22, v25 # 07924
vrfiz v1, v23 # 07928
b major_0x07658_0x5c # 0792c
major_0x07658_0x2d8:
vsel v22, v29, v27, v24 # 07930
vsel v23, v3, v22, v25 # 07934
vrfip v1, v23 # 07938
b major_0x07658_0x5c # 0793c
major_0x07658_0x2e8:
vor v29, v29, v27 # 07940
vsel v22, v31, v29, v24 # 07944
vsel v23, v3, v22, v25 # 07948
vrfim v1, v23 # 0794c
b major_0x07658_0x5c # 07950
major_0x07658_0x2fc:
vsel v23, v3, v31, v25 # 07954
lwz r9, 0x064c( r1) # 07958
/***********************************************************
major_0x0795c
************************************************************
Xrefs:
major_0x07658
***********************************************************/
lis r8, major_0x07980@h # 0795c
ori r8, r8, major_0x07980@l # 07960
add r8, r8, r9 # 07964
srwi r9, r18, 1 # 07968
add r8, r8, r9 # 0796c
mtlr r8 # 07970
blr # 07974
/***********************************************************
major_0x07978
***********************************************************/
.long 0x60000000 # 07978
.long 0x60000000 # 0797c
/***********************************************************
major_0x07980
************************************************************
Xrefs:
"lisori_caller"
major_0x07658
***********************************************************/
major_0x07980: /* < outside referer */
vctuxs v1, v23, 0x00 # 07980
b major_0x07658_0x5c # 07984
.long 0x1021bb8a # 07988
.long 0x4bfffd28 # 0798c
.long 0x1022bb8a # 07990
.long 0x4bfffd20 # 07994
.long 0x1023bb8a # 07998
.long 0x4bfffd18 # 0799c
.long 0x1024bb8a # 079a0
.long 0x4bfffd10 # 079a4
.long 0x1025bb8a # 079a8
.long 0x4bfffd08 # 079ac
.long 0x1026bb8a # 079b0
.long 0x4bfffd00 # 079b4
.long 0x1027bb8a # 079b8
.long 0x4bfffcf8 # 079bc
.long 0x1028bb8a # 079c0
.long 0x4bfffcf0 # 079c4
.long 0x1029bb8a # 079c8
.long 0x4bfffce8 # 079cc
.long 0x102abb8a # 079d0
.long 0x4bfffce0 # 079d4
.long 0x102bbb8a # 079d8
.long 0x4bfffcd8 # 079dc
.long 0x102cbb8a # 079e0
.long 0x4bfffcd0 # 079e4
.long 0x102dbb8a # 079e8
.long 0x4bfffcc8 # 079ec
.long 0x102ebb8a # 079f0
.long 0x4bfffcc0 # 079f4
.long 0x102fbb8a # 079f8
.long 0x4bfffcb8 # 079fc
.long 0x1030bb8a # 07a00
.long 0x4bfffcb0 # 07a04
.long 0x1031bb8a # 07a08
.long 0x4bfffca8 # 07a0c
.long 0x1032bb8a # 07a10
.long 0x4bfffca0 # 07a14
.long 0x1033bb8a # 07a18
.long 0x4bfffc98 # 07a1c
.long 0x1034bb8a # 07a20
.long 0x4bfffc90 # 07a24
.long 0x1035bb8a # 07a28
.long 0x4bfffc88 # 07a2c
.long 0x1036bb8a # 07a30
.long 0x4bfffc80 # 07a34
.long 0x1037bb8a # 07a38
.long 0x4bfffc78 # 07a3c
.long 0x1038bb8a # 07a40
.long 0x4bfffc70 # 07a44
.long 0x1039bb8a # 07a48
.long 0x4bfffc68 # 07a4c
.long 0x103abb8a # 07a50
.long 0x4bfffc60 # 07a54
.long 0x103bbb8a # 07a58
.long 0x4bfffc58 # 07a5c
.long 0x103cbb8a # 07a60
.long 0x4bfffc50 # 07a64
.long 0x103dbb8a # 07a68
.long 0x4bfffc48 # 07a6c
.long 0x103ebb8a # 07a70
.long 0x4bfffc40 # 07a74
.long 0x103fbb8a # 07a78
.long 0x4bfffc38 # 07a7c
major_0x07980_0x100: /* < outside referer */
vsel v23, v3, v31, v25 # 07a80
lwz r9, 0x064c( r1) # 07a84
/***********************************************************
major_0x07a88
************************************************************
Xrefs:
major_0x07980
***********************************************************/
lis r8, major_0x07ac0@h # 07a88
ori r8, r8, major_0x07ac0@l # 07a8c
add r8, r8, r9 # 07a90
srwi r9, r18, 1 # 07a94
add r8, r8, r9 # 07a98
mtlr r8 # 07a9c
blr # 07aa0
/***********************************************************
major_0x07aa4
***********************************************************/
.long 0x4800001c # 07aa4
.long 0x60000000 # 07aa8
.long 0x60000000 # 07aac
.long 0x60000000 # 07ab0
.long 0x60000000 # 07ab4
.long 0x60000000 # 07ab8
.long 0x60000000 # 07abc
/***********************************************************
major_0x07ac0
************************************************************
Xrefs:
"lisori_caller"
major_0x07658
***********************************************************/
major_0x07ac0: /* < outside referer */
vctsxs v1, v23, 0x00 # 07ac0
b major_0x07658_0x5c # 07ac4
.long 0x1021bbca # 07ac8
.long 0x4bfffbe8 # 07acc
.long 0x1022bbca # 07ad0
.long 0x4bfffbe0 # 07ad4
.long 0x1023bbca # 07ad8
.long 0x4bfffbd8 # 07adc
.long 0x1024bbca # 07ae0
.long 0x4bfffbd0 # 07ae4
.long 0x1025bbca # 07ae8
.long 0x4bfffbc8 # 07aec
.long 0x1026bbca # 07af0
.long 0x4bfffbc0 # 07af4
.long 0x1027bbca # 07af8
.long 0x4bfffbb8 # 07afc
.long 0x1028bbca # 07b00
.long 0x4bfffbb0 # 07b04
.long 0x1029bbca # 07b08
.long 0x4bfffba8 # 07b0c
.long 0x102abbca # 07b10
.long 0x4bfffba0 # 07b14
.long 0x102bbbca # 07b18
.long 0x4bfffb98 # 07b1c
.long 0x102cbbca # 07b20
.long 0x4bfffb90 # 07b24
.long 0x102dbbca # 07b28
.long 0x4bfffb88 # 07b2c
.long 0x102ebbca # 07b30
.long 0x4bfffb80 # 07b34
.long 0x102fbbca # 07b38
.long 0x4bfffb78 # 07b3c
.long 0x1030bbca # 07b40
.long 0x4bfffb70 # 07b44
.long 0x1031bbca # 07b48
.long 0x4bfffb68 # 07b4c
.long 0x1032bbca # 07b50
.long 0x4bfffb60 # 07b54
.long 0x1033bbca # 07b58
.long 0x4bfffb58 # 07b5c
.long 0x1034bbca # 07b60
.long 0x4bfffb50 # 07b64
.long 0x1035bbca # 07b68
.long 0x4bfffb48 # 07b6c
.long 0x1036bbca # 07b70
.long 0x4bfffb40 # 07b74
.long 0x1037bbca # 07b78
.long 0x4bfffb38 # 07b7c
.long 0x1038bbca # 07b80
.long 0x4bfffb30 # 07b84
.long 0x1039bbca # 07b88
.long 0x4bfffb28 # 07b8c
.long 0x103abbca # 07b90
.long 0x4bfffb20 # 07b94
.long 0x103bbbca # 07b98
.long 0x4bfffb18 # 07b9c
.long 0x103cbbca # 07ba0
.long 0x4bfffb10 # 07ba4
.long 0x103dbbca # 07ba8
.long 0x4bfffb08 # 07bac
.long 0x103ebbca # 07bb0
.long 0x4bfffb00 # 07bb4
.long 0x103fbbca # 07bb8
.long 0x4bfffaf8 # 07bbc
major_0x07ac0_0x100: /* < outside referer */
bl major_0x07d80_0x20 # 07bc0
vspltisw v19, 0x01 # 07bc4
vadduwm v22, v22, v19 # 07bc8
vspltisw v23, -0x07 # 07bcc
vsrw v21, v23, v23 # 07bd0
vsubuwm v23, v21, v22 # 07bd4
vspltisw v21, -0x09 # 07bd8
vslw v23, v23, v21 # 07bdc
vrsqrtefp v19, v23 # 07be0
vslw v20, v3, v22 # 07be4
vor v23, v29, v27 # 07be8
vsel v23, v31, v23, v24 # 07bec
vsel v21, v3, v23, v25 # 07bf0
vandc v25, v25, v24 # 07bf4
vrsqrtefp v20, v20 # 07bf8
vrsqrtefp v21, v21 # 07bfc
vmaddfp v1, v20, v19, v27 # 07c00
vsel v1, v21, v1, v25 # 07c04
b major_0x07658_0x5c # 07c08
major_0x07ac0_0x14c: /* < outside referer */
bl major_0x07d80_0x20 # 07c0c
vspltisw v19, 0x01 # 07c10
vadduwm v22, v22, v19 # 07c14
vslw v20, v3, v22 # 07c18
vsel v20, v31, v20, v25 # 07c1c
vrefp v20, v20 # 07c20
vspltisw v21, -0x09 # 07c24
vandc v23, v20, v27 # 07c28
vsrw v23, v23, v21 # 07c2c
mfvscr v29 # 07c30
vsrw v19, v30, v19 # 07c34
vsrw v19, v19, v21 # 07c38
vaddubs v23, v22, v23 # 07c3c
mtvscr v29 # 07c40
vcmpequw v22, v23, v19 # 07c44
vslw v23, v23, v21 # 07c48
vsel v23, v20, v23, v26 # 07c4c
vand v22, v22, v28 # 07c50
vsel v23, v23, v31, v22 # 07c54
vsel v20, v31, v27, v24 # 07c58
vsel v1, v23, v30, v20 # 07c5c
vspltisw v19, 0x01 # 07c60
vslw v22, v3, v19 # 07c64
vspltisw v23, -0x04 # 07c68
vsraw v22, v22, v21 # 07c6c
vsraw v22, v22, v19 # 07c70
vcmpgtuw v23, v22, v23 # 07c74
vcmpequw v19, v22, v30 # 07c78
vandc v23, v23, v19 # 07c7c
vspltisw v19, 0x02 # 07c80
vsubuwm v22, v22, v19 # 07c84
vslw v22, v22, v21 # 07c88
vsel v22, v3, v22, v26 # 07c8c
vsel v22, v31, v22, v23 # 07c90
vrefp v22, v22 # 07c94
vspltisw v19, 0x01 # 07c98
vandc v22, v22, v27 # 07c9c
vslw v29, v19, v21 # 07ca0
vor v28, v28, v29 # 07ca4
vcmpgtuw v28, v22, v28 # 07ca8
vsrw v29, v29, v19 # 07cac
vsel v22, v22, v31, v26 # 07cb0
vsrw v22, v22, v19 # 07cb4
vor v22, v22, v29 # 07cb8
vsel v19, v19, v31, v28 # 07cbc
vsrw v22, v22, v19 # 07cc0
vor v22, v22, v20 # 07cc4
vsel v1, v1, v22, v23 # 07cc8
vor v25, v25, v23 # 07ccc
vsel v23, v3, v31, v25 # 07cd0
vrefp v23, v23 # 07cd4
vsel v1, v23, v1, v25 # 07cd8
b major_0x07658_0x5c # 07cdc
major_0x07ac0_0x220: /* < outside referer */
bl major_0x07d80_0x20 # 07ce0
vspltisw v19, 0x01 # 07ce4
vadduwm v22, v22, v19 # 07ce8
vslw v20, v3, v22 # 07cec
vsel v23, v3, v20, v25 # 07cf0
vlogefp v23, v23 # 07cf4
vsubsws v22, v31, v22 # 07cf8
vcfsx v22, v22, 0x00 # 07cfc
vaddfp v1, v22, v23 # 07d00
vsel v1, v23, v1, v25 # 07d04
b major_0x07658_0x5c # 07d08
major_0x07ac0_0x24c: /* < outside referer */
lwz r9, 0x064c( r1) # 07d0c
/***********************************************************
major_0x07d10
************************************************************
Xrefs:
major_0x07ac0
***********************************************************/
lis r8, major_0x07d80_0x10@h # 07d10
ori r8, r8, major_0x07d80_0x10@l # 07d14
add r8, r8, r9 # 07d18
lvx v23, r0, r8 # 07d1c
vspltw v21, v23, 0x03 # 07d20
vspltw v20, v23, 0x00 # 07d24
vcmpgefp v21, v3, v21 # 07d28
vcmpgtfp v20, v3, v20 # 07d2c
vspltw v19, v23, 0x02 # 07d30
vandc v22, v21, v20 # 07d34
vsel v29, v31, v3, v22 # 07d38
vaddfp v29, v29, v19 # 07d3c
vsel v19, v3, v29, v22 # 07d40
vexptefp v1, v19 # 07d44
vspltisw v25, -0x09 # 07d48
vspltw v23, v23, 0x01 # 07d4c
vsrw v19, v1, v25 # 07d50
vspltisw v29, 0x01 # 07d54
vsubuwm v19, v23, v19 # 07d58
vslw v26, v29, v25 # 07d5c
vsel v28, v31, v1, v28 # 07d60
vor v28, v28, v26 # 07d64
vsrw v28, v28, v19 # 07d68
vsel v1, v1, v28, v22 # 07d6c
b major_0x07658_0x5c # 07d70
/***********************************************************
major_0x07d74
***********************************************************/
.long 0x4800000c # 07d74
.long 0x60000000 # 07d78
.long 0x60000000 # 07d7c
/***********************************************************
major_0x07d80
************************************************************
Xrefs:
major_0x07ac0
***********************************************************/
major_0x07d80: /* < outside referer */
.long 0x17030202 # 07d80
.long 0x01010101 # 07d84
.long 0 # 07d88
.long 0 # 07d8c
major_0x07d80_0x10: /* < outside referer */
.long 0xc2fc0004 # 07d90
.long 0x00000041 # 07d94
.long 0x42800000 # 07d98
.long 0xc3150001 # 07d9c
major_0x07d80_0x20: /* < outside referer */
vspltisw v23, 0x09 # 07da0
vslw v19, v3, v23 # 07da4
lwz r9, 0x064c( r1) # 07da8
/***********************************************************
major_0x07dac
************************************************************
Xrefs:
major_0x07d80
***********************************************************/
lis r8, major_0x07d80@h # 07dac
ori r8, r8, major_0x07d80@l # 07db0
add r8, r8, r9 # 07db4
lvx v23, r0, r8 # 07db8
vperm v22, v23, v23, v19 # 07dbc
vspltisw v21, 0x04 # 07dc0
vsrw v21, v19, v21 # 07dc4
vperm v21, v23, v23, v21 # 07dc8
li r8, 0x00 # 07dcc
lvsl v20, r8, r8 # 07dd0
vspltisw v23, 0x03 # 07dd4
vslw v20, v20, v23 # 07dd8
vspltisb v23, 0x04 # 07ddc
vaddubm v19, v20, v23 # 07de0
vspltw v20, v20, 0x00 # 07de4
vspltw v19, v19, 0x00 # 07de8
vaddubm v21, v21, v20 # 07dec
vaddubm v22, v22, v19 # 07df0
vminub v22, v22, v21 # 07df4
vsldoi v21, v22, v22, 0x02 # 07df8
vminub v22, v22, v21 # 07dfc
vsldoi v21, v22, v22, 0x01 # 07e00
vminub v22, v22, v21 # 07e04
vspltisw v21, -0x08 # 07e08
vsrw v22, v22, v21 # 07e0c
blr # 07e10
/***********************************************************
major_0x07e14
***********************************************************/
.long 0x4800000c # 07e14
.long 0x60000000 # 07e18
.long 0x60000000 # 07e1c
/***********************************************************
major_0x07e20
***********************************************************/
.long 0x7c00b8ce # 07e20
.long 0x4bffdaf8 # 07e24
.long 0x7c20b8ce # 07e28
.long 0x4bffdaf0 # 07e2c
.long 0x7c40b8ce # 07e30
.long 0x4bffdae8 # 07e34
.long 0x7c60b8ce # 07e38
.long 0x4bffdae0 # 07e3c
.long 0x7c80b8ce # 07e40
.long 0x4bffdad8 # 07e44
.long 0x7ca0b8ce # 07e48
.long 0x4bffdad0 # 07e4c
.long 0x7cc0b8ce # 07e50
.long 0x4bffdac8 # 07e54
.long 0x7ce0b8ce # 07e58
.long 0x4bffdac0 # 07e5c
.long 0x7d00b8ce # 07e60
.long 0x4bffdab8 # 07e64
.long 0x7d20b8ce # 07e68
.long 0x4bffdab0 # 07e6c
.long 0x7d40b8ce # 07e70
.long 0x4bffdaa8 # 07e74
.long 0x7d60b8ce # 07e78
.long 0x4bffdaa0 # 07e7c
.long 0x7d80b8ce # 07e80
.long 0x4bffda98 # 07e84
.long 0x7da0b8ce # 07e88
.long 0x4bffda90 # 07e8c
.long 0x7dc0b8ce # 07e90
.long 0x4bffda88 # 07e94
.long 0x7de0b8ce # 07e98
.long 0x4bffda80 # 07e9c
.long 0x7e00b8ce # 07ea0
.long 0x4bffda78 # 07ea4
.long 0x7e20b8ce # 07ea8
.long 0x4bffda70 # 07eac
.long 0x7e40b8ce # 07eb0
.long 0x4bffda68 # 07eb4
.long 0x7e60b8ce # 07eb8
.long 0x4bffda60 # 07ebc
.long 0x7e80b8ce # 07ec0
.long 0x4bffda58 # 07ec4
.long 0x7ea0b8ce # 07ec8
.long 0x4bffda50 # 07ecc
.long 0x7ec0b8ce # 07ed0
.long 0x4bffda48 # 07ed4
.long 0x7ee0b8ce # 07ed8
.long 0x4bffda40 # 07edc
.long 0x7f00b8ce # 07ee0
.long 0x4bffda38 # 07ee4
.long 0x7f20b8ce # 07ee8
.long 0x4bffda30 # 07eec
.long 0x7f40b8ce # 07ef0
.long 0x4bffda28 # 07ef4
.long 0x7f60b8ce # 07ef8
.long 0x4bffda20 # 07efc
.long 0x7f80b8ce # 07f00
.long 0x4bffda18 # 07f04
.long 0x7fa0b8ce # 07f08
.long 0x4bffda10 # 07f0c
.long 0x7fc0b8ce # 07f10
.long 0x4bffda08 # 07f14
.long 0x7fe0b8ce # 07f18
.long 0x4bffda00 # 07f1c
.long 0x7c00b80e # 07f20
.long 0x4bffe67c # 07f24
.long 0x7c20b80e # 07f28
.long 0x4bffe674 # 07f2c
.long 0x7c40b80e # 07f30
.long 0x4bffe66c # 07f34
.long 0x7c60b80e # 07f38
.long 0x4bffe664 # 07f3c
.long 0x7c80b80e # 07f40
.long 0x4bffe65c # 07f44
.long 0x7ca0b80e # 07f48
.long 0x4bffe654 # 07f4c
.long 0x7cc0b80e # 07f50
.long 0x4bffe64c # 07f54
.long 0x7ce0b80e # 07f58
.long 0x4bffe644 # 07f5c
.long 0x7d00b80e # 07f60
.long 0x4bffe63c # 07f64
.long 0x7d20b80e # 07f68
.long 0x4bffe634 # 07f6c
.long 0x7d40b80e # 07f70
.long 0x4bffe62c # 07f74
.long 0x7d60b80e # 07f78
.long 0x4bffe624 # 07f7c
.long 0x7d80b80e # 07f80
.long 0x4bffe61c # 07f84
.long 0x7da0b80e # 07f88
.long 0x4bffe614 # 07f8c
.long 0x7dc0b80e # 07f90
.long 0x4bffe60c # 07f94
.long 0x7de0b80e # 07f98
.long 0x4bffe604 # 07f9c
.long 0x7e00b80e # 07fa0
.long 0x4bffe5fc # 07fa4
.long 0x7e20b80e # 07fa8
.long 0x4bffe5f4 # 07fac
.long 0x7e40b80e # 07fb0
.long 0x4bffe5ec # 07fb4
.long 0x7e60b80e # 07fb8
.long 0x4bffe5e4 # 07fbc
.long 0x7e80b80e # 07fc0
.long 0x4bffe5dc # 07fc4
.long 0x7ea0b80e # 07fc8
.long 0x4bffe5d4 # 07fcc
.long 0x7ec0b80e # 07fd0
.long 0x4bffe5cc # 07fd4
.long 0x7ee0b80e # 07fd8
.long 0x4bffe5c4 # 07fdc
.long 0x7f00b80e # 07fe0
.long 0x4bffe5bc # 07fe4
.long 0x7f20b80e # 07fe8
.long 0x4bffe5b4 # 07fec
.long 0x7f40b80e # 07ff0
.long 0x4bffe5ac # 07ff4
.long 0x7f60b80e # 07ff8
.long 0x4bffe5a4 # 07ffc
.long 0x7f80b80e # 08000
.long 0x4bffe59c # 08004
.long 0x7fa0b80e # 08008
.long 0x4bffe594 # 0800c
.long 0x7fc0b80e # 08010
.long 0x4bffe58c # 08014
.long 0x7fe0b80e # 08018
.long 0x4bffe584 # 0801c
.long 0x7c00b84e # 08020
.long 0x4bffe57c # 08024
.long 0x7c20b84e # 08028
.long 0x4bffe574 # 0802c
.long 0x7c40b84e # 08030
.long 0x4bffe56c # 08034
.long 0x7c60b84e # 08038
.long 0x4bffe564 # 0803c
.long 0x7c80b84e # 08040
.long 0x4bffe55c # 08044
.long 0x7ca0b84e # 08048
.long 0x4bffe554 # 0804c
.long 0x7cc0b84e # 08050
.long 0x4bffe54c # 08054
.long 0x7ce0b84e # 08058
.long 0x4bffe544 # 0805c
.long 0x7d00b84e # 08060
.long 0x4bffe53c # 08064
.long 0x7d20b84e # 08068
.long 0x4bffe534 # 0806c
.long 0x7d40b84e # 08070
.long 0x4bffe52c # 08074
.long 0x7d60b84e # 08078
.long 0x4bffe524 # 0807c
.long 0x7d80b84e # 08080
.long 0x4bffe51c # 08084
.long 0x7da0b84e # 08088
.long 0x4bffe514 # 0808c
.long 0x7dc0b84e # 08090
.long 0x4bffe50c # 08094
.long 0x7de0b84e # 08098
.long 0x4bffe504 # 0809c
.long 0x7e00b84e # 080a0
.long 0x4bffe4fc # 080a4
.long 0x7e20b84e # 080a8
.long 0x4bffe4f4 # 080ac
.long 0x7e40b84e # 080b0
.long 0x4bffe4ec # 080b4
.long 0x7e60b84e # 080b8
.long 0x4bffe4e4 # 080bc
.long 0x7e80b84e # 080c0
.long 0x4bffe4dc # 080c4
.long 0x7ea0b84e # 080c8
.long 0x4bffe4d4 # 080cc
.long 0x7ec0b84e # 080d0
.long 0x4bffe4cc # 080d4
.long 0x7ee0b84e # 080d8
.long 0x4bffe4c4 # 080dc
.long 0x7f00b84e # 080e0
.long 0x4bffe4bc # 080e4
.long 0x7f20b84e # 080e8
.long 0x4bffe4b4 # 080ec
.long 0x7f40b84e # 080f0
.long 0x4bffe4ac # 080f4
.long 0x7f60b84e # 080f8
.long 0x4bffe4a4 # 080fc
.long 0x7f80b84e # 08100
.long 0x4bffe49c # 08104
.long 0x7fa0b84e # 08108
.long 0x4bffe494 # 0810c
.long 0x7fc0b84e # 08110
.long 0x4bffe48c # 08114
.long 0x7fe0b84e # 08118
.long 0x4bffe484 # 0811c
.long 0x7c00b88e # 08120
.long 0x4bffe47c # 08124
.long 0x7c20b88e # 08128
.long 0x4bffe474 # 0812c
.long 0x7c40b88e # 08130
.long 0x4bffe46c # 08134
.long 0x7c60b88e # 08138
.long 0x4bffe464 # 0813c
.long 0x7c80b88e # 08140
.long 0x4bffe45c # 08144
.long 0x7ca0b88e # 08148
.long 0x4bffe454 # 0814c
.long 0x7cc0b88e # 08150
.long 0x4bffe44c # 08154
.long 0x7ce0b88e # 08158
.long 0x4bffe444 # 0815c
.long 0x7d00b88e # 08160
.long 0x4bffe43c # 08164
.long 0x7d20b88e # 08168
.long 0x4bffe434 # 0816c
.long 0x7d40b88e # 08170
.long 0x4bffe42c # 08174
.long 0x7d60b88e # 08178
.long 0x4bffe424 # 0817c
.long 0x7d80b88e # 08180
.long 0x4bffe41c # 08184
.long 0x7da0b88e # 08188
.long 0x4bffe414 # 0818c
.long 0x7dc0b88e # 08190
.long 0x4bffe40c # 08194
.long 0x7de0b88e # 08198
.long 0x4bffe404 # 0819c
.long 0x7e00b88e # 081a0
.long 0x4bffe3fc # 081a4
.long 0x7e20b88e # 081a8
.long 0x4bffe3f4 # 081ac
.long 0x7e40b88e # 081b0
.long 0x4bffe3ec # 081b4
.long 0x7e60b88e # 081b8
.long 0x4bffe3e4 # 081bc
.long 0x7e80b88e # 081c0
.long 0x4bffe3dc # 081c4
.long 0x7ea0b88e # 081c8
.long 0x4bffe3d4 # 081cc
.long 0x7ec0b88e # 081d0
.long 0x4bffe3cc # 081d4
.long 0x7ee0b88e # 081d8
.long 0x4bffe3c4 # 081dc
.long 0x7f00b88e # 081e0
.long 0x4bffe3bc # 081e4
.long 0x7f20b88e # 081e8
.long 0x4bffe3b4 # 081ec
.long 0x7f40b88e # 081f0
.long 0x4bffe3ac # 081f4
.long 0x7f60b88e # 081f8
.long 0x4bffe3a4 # 081fc
.long 0x7f80b88e # 08200
.long 0x4bffe39c # 08204
.long 0x7fa0b88e # 08208
.long 0x4bffe394 # 0820c
.long 0x7fc0b88e # 08210
.long 0x4bffe38c # 08214
.long 0x7fe0b88e # 08218
.long 0x4bffe384 # 0821c
.long 0x7c00b9ce # 08220
.long 0x4bffd6f8 # 08224
.long 0x7c20b9ce # 08228
.long 0x4bffd6f0 # 0822c
.long 0x7c40b9ce # 08230
.long 0x4bffd6e8 # 08234
.long 0x7c60b9ce # 08238
.long 0x4bffd6e0 # 0823c
.long 0x7c80b9ce # 08240
.long 0x4bffd6d8 # 08244
.long 0x7ca0b9ce # 08248
.long 0x4bffd6d0 # 0824c
.long 0x7cc0b9ce # 08250
.long 0x4bffd6c8 # 08254
.long 0x7ce0b9ce # 08258
.long 0x4bffd6c0 # 0825c
.long 0x7d00b9ce # 08260
.long 0x4bffd6b8 # 08264
.long 0x7d20b9ce # 08268
.long 0x4bffd6b0 # 0826c
.long 0x7d40b9ce # 08270
.long 0x4bffd6a8 # 08274
.long 0x7d60b9ce # 08278
.long 0x4bffd6a0 # 0827c
.long 0x7d80b9ce # 08280
.long 0x4bffd698 # 08284
.long 0x7da0b9ce # 08288
.long 0x4bffd690 # 0828c
.long 0x7dc0b9ce # 08290
.long 0x4bffd688 # 08294
.long 0x7de0b9ce # 08298
.long 0x4bffd680 # 0829c
.long 0x7e00b9ce # 082a0
.long 0x4bffd678 # 082a4
.long 0x7e20b9ce # 082a8
.long 0x4bffd670 # 082ac
.long 0x7e40b9ce # 082b0
.long 0x4bffd668 # 082b4
.long 0x7e60b9ce # 082b8
.long 0x4bffd660 # 082bc
.long 0x7e80b9ce # 082c0
.long 0x4bffd658 # 082c4
.long 0x7ea0b9ce # 082c8
.long 0x4bffd650 # 082cc
.long 0x7ec0b9ce # 082d0
.long 0x4bffd648 # 082d4
.long 0x7ee0b9ce # 082d8
.long 0x4bffd640 # 082dc
.long 0x7f00b9ce # 082e0
.long 0x4bffd638 # 082e4
.long 0x7f20b9ce # 082e8
.long 0x4bffd630 # 082ec
.long 0x7f40b9ce # 082f0
.long 0x4bffd628 # 082f4
.long 0x7f60b9ce # 082f8
.long 0x4bffd620 # 082fc
.long 0x7f80b9ce # 08300
.long 0x4bffd618 # 08304
.long 0x7fa0b9ce # 08308
.long 0x4bffd610 # 0830c
.long 0x7fc0b9ce # 08310
.long 0x4bffd608 # 08314
.long 0x7fe0b9ce # 08318
.long 0x4bffd600 # 0831c
.long 0x7c00b90e # 08320
.long 0x4bffe528 # 08324
.long 0x7c20b90e # 08328
.long 0x4bffe520 # 0832c
.long 0x7c40b90e # 08330
.long 0x4bffe518 # 08334
.long 0x7c60b90e # 08338
.long 0x4bffe510 # 0833c
.long 0x7c80b90e # 08340
.long 0x4bffe508 # 08344
.long 0x7ca0b90e # 08348
.long 0x4bffe500 # 0834c
.long 0x7cc0b90e # 08350
.long 0x4bffe4f8 # 08354
.long 0x7ce0b90e # 08358
.long 0x4bffe4f0 # 0835c
.long 0x7d00b90e # 08360
.long 0x4bffe4e8 # 08364
.long 0x7d20b90e # 08368
.long 0x4bffe4e0 # 0836c
.long 0x7d40b90e # 08370
.long 0x4bffe4d8 # 08374
.long 0x7d60b90e # 08378
.long 0x4bffe4d0 # 0837c
.long 0x7d80b90e # 08380
.long 0x4bffe4c8 # 08384
.long 0x7da0b90e # 08388
.long 0x4bffe4c0 # 0838c
.long 0x7dc0b90e # 08390
.long 0x4bffe4b8 # 08394
.long 0x7de0b90e # 08398
.long 0x4bffe4b0 # 0839c
.long 0x7e00b90e # 083a0
.long 0x4bffe4a8 # 083a4
.long 0x7e20b90e # 083a8
.long 0x4bffe4a0 # 083ac
.long 0x7e40b90e # 083b0
.long 0x4bffe498 # 083b4
.long 0x7e60b90e # 083b8
.long 0x4bffe490 # 083bc
.long 0x7e80b90e # 083c0
.long 0x4bffe488 # 083c4
.long 0x7ea0b90e # 083c8
.long 0x4bffe480 # 083cc
.long 0x7ec0b90e # 083d0
.long 0x4bffe478 # 083d4
.long 0x7ee0b90e # 083d8
.long 0x4bffe470 # 083dc
.long 0x7f00b90e # 083e0
.long 0x4bffe468 # 083e4
.long 0x7f20b90e # 083e8
.long 0x4bffe460 # 083ec
.long 0x7f40b90e # 083f0
.long 0x4bffe458 # 083f4
.long 0x7f60b90e # 083f8
.long 0x4bffe450 # 083fc
.long 0x7f80b90e # 08400
.long 0x4bffe448 # 08404
.long 0x7fa0b90e # 08408
.long 0x4bffe440 # 0840c
.long 0x7fc0b90e # 08410
.long 0x4bffe438 # 08414
.long 0x7fe0b90e # 08418
.long 0x4bffe430 # 0841c
.long 0x7c00b94e # 08420
.long 0x4bffe434 # 08424
.long 0x7c20b94e # 08428
.long 0x4bffe42c # 0842c
.long 0x7c40b94e # 08430
.long 0x4bffe424 # 08434
.long 0x7c60b94e # 08438
.long 0x4bffe41c # 0843c
.long 0x7c80b94e # 08440
.long 0x4bffe414 # 08444
.long 0x7ca0b94e # 08448
.long 0x4bffe40c # 0844c
.long 0x7cc0b94e # 08450
.long 0x4bffe404 # 08454
.long 0x7ce0b94e # 08458
.long 0x4bffe3fc # 0845c
.long 0x7d00b94e # 08460
.long 0x4bffe3f4 # 08464
.long 0x7d20b94e # 08468
.long 0x4bffe3ec # 0846c
.long 0x7d40b94e # 08470
.long 0x4bffe3e4 # 08474
.long 0x7d60b94e # 08478
.long 0x4bffe3dc # 0847c
.long 0x7d80b94e # 08480
.long 0x4bffe3d4 # 08484
.long 0x7da0b94e # 08488
.long 0x4bffe3cc # 0848c
.long 0x7dc0b94e # 08490
.long 0x4bffe3c4 # 08494
.long 0x7de0b94e # 08498
.long 0x4bffe3bc # 0849c
.long 0x7e00b94e # 084a0
.long 0x4bffe3b4 # 084a4
.long 0x7e20b94e # 084a8
.long 0x4bffe3ac # 084ac
.long 0x7e40b94e # 084b0
.long 0x4bffe3a4 # 084b4
.long 0x7e60b94e # 084b8
.long 0x4bffe39c # 084bc
.long 0x7e80b94e # 084c0
.long 0x4bffe394 # 084c4
.long 0x7ea0b94e # 084c8
.long 0x4bffe38c # 084cc
.long 0x7ec0b94e # 084d0
.long 0x4bffe384 # 084d4
.long 0x7ee0b94e # 084d8
.long 0x4bffe37c # 084dc
.long 0x7f00b94e # 084e0
.long 0x4bffe374 # 084e4
.long 0x7f20b94e # 084e8
.long 0x4bffe36c # 084ec
.long 0x7f40b94e # 084f0
.long 0x4bffe364 # 084f4
.long 0x7f60b94e # 084f8
.long 0x4bffe35c # 084fc
.long 0x7f80b94e # 08500
.long 0x4bffe354 # 08504
.long 0x7fa0b94e # 08508
.long 0x4bffe34c # 0850c
.long 0x7fc0b94e # 08510
.long 0x4bffe344 # 08514
.long 0x7fe0b94e # 08518
.long 0x4bffe33c # 0851c
.long 0x7c00b98e # 08520
.long 0x4bffe340 # 08524
.long 0x7c20b98e # 08528
.long 0x4bffe338 # 0852c
.long 0x7c40b98e # 08530
.long 0x4bffe330 # 08534
.long 0x7c60b98e # 08538
.long 0x4bffe328 # 0853c
.long 0x7c80b98e # 08540
.long 0x4bffe320 # 08544
.long 0x7ca0b98e # 08548
.long 0x4bffe318 # 0854c
.long 0x7cc0b98e # 08550
.long 0x4bffe310 # 08554
.long 0x7ce0b98e # 08558
.long 0x4bffe308 # 0855c
.long 0x7d00b98e # 08560
.long 0x4bffe300 # 08564
.long 0x7d20b98e # 08568
.long 0x4bffe2f8 # 0856c
.long 0x7d40b98e # 08570
.long 0x4bffe2f0 # 08574
.long 0x7d60b98e # 08578
.long 0x4bffe2e8 # 0857c
.long 0x7d80b98e # 08580
.long 0x4bffe2e0 # 08584
.long 0x7da0b98e # 08588
.long 0x4bffe2d8 # 0858c
.long 0x7dc0b98e # 08590
.long 0x4bffe2d0 # 08594
.long 0x7de0b98e # 08598
.long 0x4bffe2c8 # 0859c
.long 0x7e00b98e # 085a0
.long 0x4bffe2c0 # 085a4
.long 0x7e20b98e # 085a8
.long 0x4bffe2b8 # 085ac
.long 0x7e40b98e # 085b0
.long 0x4bffe2b0 # 085b4
.long 0x7e60b98e # 085b8
.long 0x4bffe2a8 # 085bc
.long 0x7e80b98e # 085c0
.long 0x4bffe2a0 # 085c4
.long 0x7ea0b98e # 085c8
.long 0x4bffe298 # 085cc
.long 0x7ec0b98e # 085d0
.long 0x4bffe290 # 085d4
.long 0x7ee0b98e # 085d8
.long 0x4bffe288 # 085dc
.long 0x7f00b98e # 085e0
.long 0x4bffe280 # 085e4
.long 0x7f20b98e # 085e8
.long 0x4bffe278 # 085ec
.long 0x7f40b98e # 085f0
.long 0x4bffe270 # 085f4
.long 0x7f60b98e # 085f8
.long 0x4bffe268 # 085fc
.long 0x7f80b98e # 08600
.long 0x4bffe260 # 08604
.long 0x7fa0b98e # 08608
.long 0x4bffe258 # 0860c
.long 0x7fc0b98e # 08610
.long 0x4bffe250 # 08614
.long 0x7fe0b98e # 08618
.long 0x4bffe248 # 0861c
/***********************************************************
panic_wrapper_0x08620
************************************************************
Xrefs:
major_0x08794
***********************************************************/
panic_wrapper_0x08620: /* < outside referer */
b panic # 08620
/***********************************************************
major_0x08624
***********************************************************/
.long 0x4800001c # 08624
.long 0x60000000 # 08628
.long 0x60000000 # 0862c
.long 0x60000000 # 08630
.long 0x60000000 # 08634
.long 0x60000000 # 08638
.long 0x60000000 # 0863c
/***********************************************************
major_0x08640
************************************************************
Xrefs:
"lisori_caller"
***********************************************************/
major_0x08640: /* < outside referer */
mr r8, r8 # 08640
mr r9, r9 # 08644
addi r8, r1, -0xb90 # 08648
# r8 = lock
bl lock # 0864c
mr r8, r8 # 08650
mr r9, r9 # 08654
mfspr r8, 272/*sprg0*/ # 08658
stw r7, -0x0010( r8) # 0865c
lwz r6, 0x0018( r8) # 08660
stw r14, 0x0038( r8) # 08664
stw r15, 0x003c( r8) # 08668
stw r16, 0x0040( r8) # 0866c
mfspr r9, 287/*pvr*/ # 08670
srwi r9, r9, 16 # 08674
cmpwi cr2, r9, 0x09 # 08678
beq- major_0x08640_0x44 # 0867c
cmpwi cr2, r9, 0x0a # 08680
major_0x08640_0x44:
lwz r7, 0x0ee8( r1) # 08684
rlwinm r8, r3, 2, 20, 29 # 08688
cmplwi r7, 0x00 # 0868c
beq- major_0x08640_0x60 # 08690
lwzx r9, r7, r8 # 08694
addi r9, r9, 0x01 # 08698
stwx r9, r7, r8 # 0869c
major_0x08640_0x60:
lwz r7, 0x064c( r1) # 086a0
b major_0x08640_0x138 # 086a4
major_0x08640_0x68: /* < outside referer */
.long 0x000088bc # 086a8
.long 0x000087c4 # 086ac
.long 0x000087fc # 086b0
.long 0x00008e44 # 086b4
.long 0x00008e7c # 086b8
.long 0x00008e2c # 086bc
.long 0x00009630 # 086c0
.long 0x000094ac # 086c4
.long 0x000093a0 # 086c8
.long 0x0000941c # 086cc
.long 0x00008ca0 # 086d0
.long 0x00008784 # 086d4
.long 0x00008c14 # 086d8
.long 0x00008794 # 086dc
.long 0x00008790 # 086e0
.long 0x0000878c # 086e4
.long 0x00008788 # 086e8
.long 0x00008f1c # 086ec
.long 0x00009218 # 086f0
.long 0x00008cbc # 086f4
.long 0x00009530 # 086f8
.long 0x000094f4 # 086fc
.long 0x00008e58 # 08700
.long 0x00009428 # 08704
.long 0x00009014 # 08708
.long 0x00009620 # 0870c
major_0x08640_0xd0: /* < outside referer */
.long 0x000087c4 # 08710
.long 0x000087c4 # 08714
.long 0x000087fc # 08718
.long 0x00008e44 # 0871c
.long 0x000087a8 # 08720
.long 0x000087a4 # 08724
.long 0x000087a0 # 08728
.long 0x000094ac # 0872c
.long 0x000093a0 # 08730
.long 0x00008794 # 08734
.long 0x00008ca0 # 08738
.long 0x0000878c # 0873c
.long 0x00008788 # 08740
.long 0x00008794 # 08744
.long 0x00008790 # 08748
.long 0x0000878c # 0874c
.long 0x00008788 # 08750
.long 0x00008f1c # 08754
.long 0x00009218 # 08758
.long 0x00008cbc # 0875c
.long 0x00009530 # 08760
.long 0x00008764 # 08764
.long 0x00008760 # 08768
.long 0x0000875c # 0876c
.long 0x00009014 # 08770
.long 0x00008754 # 08774
major_0x08640_0x138:
lwz r9, 0x06b4( r1) # 08778
cmplwi r3, 0x1a # 0877c
cmpwi cr1, r9, 0x00 # 08780
rlwimi r7, r3, 2, 23, 29 # 08784
/***********************************************************
major_0x08788
************************************************************
Xrefs:
major_0x08640
***********************************************************/
lis r8, major_0x08640_0x68@h # 08788
ori r8, r8, major_0x08640_0x68@l # 0878c
bne- cr1, major_0x08794_0x8 # 08790
/***********************************************************
major_0x08794
************************************************************
Xrefs:
"temp"
major_0x08788
major_0x0b144
***********************************************************/
lis r8, major_0x08640_0xd0@h # 08794
ori r8, r8, major_0x08640_0xd0@l # 08798
major_0x08794_0x8: /* < outside referer */
lwzx r8, r8, r7 # 0879c
lwz r9, 0x06a8( r1) # 087a0
add r8, r8, r7 # 087a4
mtlr r8 # 087a8
bltlr- # 087ac
major_0x08794_0x1c:
li r3, -0x01 # 087b0
b major_0x08794_0x34 # 087b4
.long 0x4bfffff8 # 087b8
.long 0x38600000 # 087bc
.long 0x48000008 # 087c0
major_0x08794_0x30:
li r3, 0x01 # 087c4
major_0x08794_0x34:
mfspr r8, 272/*sprg0*/ # 087c8
lwz r14, 0x0038( r8) # 087cc
lwz r15, 0x003c( r8) # 087d0
lwz r16, 0x0040( r8) # 087d4
lwz r7, -0x0010( r8) # 087d8
lwz r6, -0x0014( r8) # 087dc
sync # 087e0
lwz r8, -0x0b90( r1) # 087e4
cmpwi cr1, r8, 0x00 # 087e8
li r8, 0x00 # 087ec
bne+ cr1, major_0x08794_0x68 # 087f0
mflr r8 # 087f4
bl panic # 087f8
major_0x08794_0x68:
stw r8, -0x0b90( r1) # 087fc
b skeleton_key # 08800
mfspr r8, 272/*sprg0*/ # 08804
stmw r29, 0x0074( r8) # 08808
lwz r29, 0x05a8( r1) # 0880c
lwz r30, 0x064c( r1) # 08810
lwz r31, 0x05a4( r1) # 08814
subf r30, r30, r29 # 08818
cmpwi r31, 0x00 # 0881c
add r30, r30, r31 # 08820
beq- major_0x08794_0x11c # 08824
li r8, 0x00 # 08828
stw r8, 0x05a4( r1) # 0882c
bl 1f # 08830
.ascii "Protecting the nanokernel: " # 08834
.short 0 # 0884f
.align 2 # 08851
1: mflr r8 # 08854
bl print_string # 08858
mr r8, r31 # 0885c
bl print_hexword_spc # 08860
mr r8, r30 # 08864
bl print_hexword_spc # 08868
bl 1f # 0886c
.ascii "^n" # 08870
.short 0 # 08872
.align 2 # 08874
1: mflr r8 # 08874
bl print_string # 08878
addi r29, r1, 0x1000 # 0887c
major_0x08794_0xec:
srwi r4, r31, 12 # 08880
lwz r9, 0x06a8( r1) # 08884
bl major_0x08794_0x1268 # 08888
bge- cr4, major_0x08794_0x11c # 0888c
bltl- cr5, major_0x08794_0x134c # 08890
bgel- cr5, major_0x08794_0x13e0 # 08894
ori r16, r16, 0x400 # 08898
rlwimi r9, r29, 0, 0, 19 # 0889c
bl major_0x08794_0x13ac # 088a0
addi r31, r31, 0x1000 # 088a4
cmplw r31, r30 # 088a8
ble+ major_0x08794_0xec # 088ac
major_0x08794_0x11c:
mfspr r8, 272/*sprg0*/ # 088b0
lmw r29, 0x0074( r8) # 088b4
b major_0x08794_0x30 # 088b8
.long 0x48000015 # 088bc
.long 0x4c656761 # 088c0
.long 0x63792056 # 088c4
.long 0x4d496e69 # 088c8
.long 0x74200000 # 088cc
.long 0x7d0802a6 # 088d0
.long 0x4800db0d # 088d4
.long 0x7c882378 # 088d8
.long 0x4800de35 # 088dc
.long 0x7ca82b78 # 088e0
.long 0x4800de2d # 088e4
.long 0x48000009 # 088e8
.long 0x5e6e0000 # 088ec
.long 0x7d0802a6 # 088f0
.long 0x4800daed # 088f4
.long 0x80e106b0 # 088f8
.long 0x810106c0 # 088fc
.long 0x7c074000 # 08900
.long 0x4082fec0 # 08904
.long 0x908106a8 # 08908
.long 0x90a106b0 # 0890c
.long 0x80c105e8 # 08910
.long 0x38a00000 # 08914
.long 0x38800000 # 08918
.long 0x81060000 # 0891c
.long 0x38c60008 # 08920
.long 0xa0680000 # 08924
.long 0xa0e80002 # 08928
.long 0x81080004 # 0892c
.long 0x38e70001 # 08930
.long 0x2c830000 # 08934
.long 0x71030c00 # 08938
.long 0x2c030c00 # 0893c
.long 0x4082008c # 08940
.long 0x4086fcdd # 08944
.long 0x550fb03a # 08948
.long 0x386106c0 # 0894c
.long 0x50a3173a # 08950
.long 0x91e30000 # 08954
.long 0x54a3801e # 08958
.long 0x7c032000 # 0895c
.long 0x4082fcc1 # 08960
.long 0x820f0000 # 08964
.long 0x38e7ffff # 08968
.long 0x72030001 # 0896c
.long 0x4182fcb1 # 08970
.long 0x72030800 # 08974
.long 0x41820044 # 08978
.long 0x81c106a4 # 0897c
.long 0x5603ba78 # 08980
.long 0x7d0e186e # 08984
.long 0x812e0004 # 08988
.long 0x75038000 # 0898c
.long 0x4182fc91 # 08990
.long 0x71230003 # 08994
.long 0x2c030000 # 08998
.long 0x4182fc85 # 0899c
.long 0x56038dbe # 089a0
.long 0x5103542a # 089a4
.long 0x5103ab1e # 089a8
.long 0x7c032000 # 089ac
.long 0x4082fc71 # 089b0
.long 0x4800112d # 089b4
.long 0x48001189 # 089b8
.long 0x2c070000 # 089bc
.long 0x39ef0004 # 089c0
.long 0x38840001 # 089c4
.long 0x4082ff9c # 089c8
.long 0x80e106b4 # 089cc
.long 0x38a50001 # 089d0
.long 0x38e7ffff # 089d4
.long 0x54e7843e # 089d8
.long 0x7c053800 # 089dc
.long 0x4081ff3c # 089e0
.long 0x80e106ac # 089e4
.long 0x7c043800 # 089e8
.long 0x4082fc35 # 089ec
.long 0x80a106b0 # 089f0
.long 0x808106a8 # 089f4
.long 0x70a70fff # 089f8
.long 0x38600002 # 089fc
.long 0x40820230 # 08a00
.long 0x80e106b4 # 08a04
.long 0x7c072040 # 08a08
.long 0x38600003 # 08a0c
.long 0x41800220 # 08a10
.long 0x38e403ff # 08a14
.long 0x54e6b2be # 08a18
.long 0x54a8a33e # 08a1c
.long 0x7d083214 # 08a20
.long 0x812106ac # 08a24
.long 0x7c084840 # 08a28
.long 0x38600004 # 08a2c
.long 0x41810200 # 08a30
.long 0x7c044840 # 08a34
.long 0x38600005 # 08a38
.long 0x418001f4 # 08a3c
.long 0x54a7a33e # 08a40
.long 0x48001259 # 08a44
.long 0x912106b0 # 08a48
.long 0x7d2f4b78 # 08a4c
.long 0x54a7a33e # 08a50
.long 0x7ce73214 # 08a54
.long 0x38e7ffff # 08a58
.long 0x48001241 # 08a5c
.long 0x7d2f4850 # 08a60
.long 0x5529a33e # 08a64
.long 0x39290001 # 08a68
.long 0x7c093000 # 08a6c
.long 0x38600006 # 08a70
.long 0x408201bc # 08a74
.long 0x908106a8 # 08a78
.long 0x8101ffe0 # 08a7c
.long 0x54876026 # 08a80
.long 0x90e80dc8 # 08a84
.long 0x5487103a # 08a88
.long 0x39000000 # 08a8c
.long 0x38e7fffc # 08a90
.long 0x2c070000 # 08a94
.long 0x7d0f392e # 08a98
.long 0x4082fff4 # 08a9c
.long 0x80e106ac # 08aa0
.long 0x54e6103a # 08aa4
.long 0x38c6fffc # 08aa8
.long 0x54c7f0be # 08aac
.long 0x480011ed # 08ab0
.long 0x2c060000 # 08ab4
.long 0x61300021 # 08ab8
.long 0x7e0f312e # 08abc
.long 0x4082ffe8 # 08ac0
.long 0x81e106b0 # 08ac4
.long 0x54a7b2be # 08ac8
.long 0x7def3a14 # 08acc
.long 0x80a106a8 # 08ad0
.long 0x820f0000 # 08ad4
.long 0x72070001 # 08ad8
.long 0x4182fb45 # 08adc
.long 0x62100404 # 08ae0
.long 0x920f0000 # 08ae4
.long 0x38a5fc00 # 08ae8
.long 0x2c050000 # 08aec
.long 0x39ef0004 # 08af0
.long 0x4181ffe0 # 08af4
.long 0x812106b4 # 08af8
.long 0x80c105e8 # 08afc
.long 0x3929ffff # 08b00
.long 0x39000a00 # 08b04
.long 0x6107ffff # 08b08
.long 0x2809ffff # 08b0c
.long 0x80660000 # 08b10
.long 0x38c60008 # 08b14
.long 0x90e30000 # 08b18
.long 0x91030004 # 08b1c
.long 0x90e30008 # 08b20
.long 0x9103000c # 08b24
.long 0x3d29ffff # 08b28
.long 0x4181ffe0 # 08b2c
.long 0xb1230002 # 08b30
.long 0xb123000a # 08b34
.long 0x80c105e8 # 08b38
.long 0x812106a8 # 08b3c
.long 0x81e106b0 # 08b40
.long 0x81060000 # 08b44
.long 0x3ce00001 # 08b48
.long 0x5523843f # 08b4c
.long 0x40820008 # 08b50
.long 0x7d274b78 # 08b54
.long 0x7d274851 # 08b58
.long 0x38e7ffff # 08b5c
.long 0x90e80000 # 08b60
.long 0x55e755a6 # 08b64
.long 0x60e70c00 # 08b68
.long 0x90e80004 # 08b6c
.long 0x3def0004 # 08b70
.long 0x38c60008 # 08b74
.long 0x4082ffcc # 08b78
.long 0x7d3042a6 # 08b7c
.long 0x80c9ffec # 08b80
.long 0x4800ad29 # 08b84
.long 0x8109ffe4 # 08b88
.long 0x39200000 # 08b8c
.long 0x4800785d # 08b90
.long 0x82080024 # 08b94
.long 0x2c100000 # 08b98
.long 0x4082fa84 # 08b9c
.long 0x3a000000 # 08ba0
.long 0x9208003c # 08ba4
.long 0x820106b0 # 08ba8
.long 0x92080040 # 08bac
.long 0x820106a8 # 08bb0
.long 0x56106026 # 08bb4
.long 0x9208002c # 08bb8
.long 0x3a10ffff # 08bbc
.long 0x92080028 # 08bc0
.long 0x7d114378 # 08bc4
.long 0x48000019 # 08bc8
.long 0x41646a75 # 08bcc
.long 0x7374696e # 08bd0
.long 0x67206172 # 08bd4
.long 0x65612000 # 08bd8
.long 0 # 08bdc
.long 0x7d0802a6 # 08be0
.long 0x4800d7fd # 08be4
.long 0x81110000 # 08be8
.long 0x7d084378 # 08bec
.long 0x4800db21 # 08bf0
.long 0x48000011 # 08bf4
.long 0x746f2073 # 08bf8
.long 0x697a6520 # 08bfc
.long 0 # 08c00
.long 0x7d0802a6 # 08c04
.long 0x4800d7d9 # 08c08
.long 0x8111002c # 08c0c
.long 0x7d084378 # 08c10
.long 0x4800dafd # 08c14
.long 0x48000009 # 08c18
.long 0x5e6e0000 # 08c1c
.long 0x7d0802a6 # 08c20
.long 0x4800d7bd # 08c24
.long 0x4800acf5 # 08c28
.long 0x4bfffb90 # 08c2c
.long 0x80e106ac # 08c30
.long 0x810106c0 # 08c34
.long 0x90e106a8 # 08c38
.long 0x910106b0 # 08c3c
.long 0x4bfffb88 # 08c40
.long 0x48000db9 # 08c44
.long 0x4090fb68 # 08c48
.long 0x4195fb64 # 08c4c
.long 0x409ffb60 # 08c50
.long 0x4199fb5c # 08c54
.long 0x409afb58 # 08c58
.long 0x41940e85 # 08c5c
.long 0x41940ee1 # 08c60
.long 0x7de67b78 # 08c64
.long 0x7ca42b78 # 08c68
.long 0x7e058378 # 08c6c
.long 0x812106a8 # 08c70
.long 0x48000d89 # 08c74
.long 0x4090fb38 # 08c78
.long 0x4195fb34 # 08c7c
.long 0x409ffb30 # 08c80
.long 0x4199fb2c # 08c84
.long 0x409afb28 # 08c88
.long 0x41940e55 # 08c8c
.long 0x41940eb1 # 08c90
.long 0x90af0000 # 08c94
.long 0x92060000 # 08c98
.long 0x54a40026 # 08c9c
.long 0x56050026 # 08ca0
.long 0x39201000 # 08ca4
.long 0x38c00004 # 08ca8
.long 0x7d264851 # 08cac
.long 0x7ce4482e # 08cb0
.long 0x7d05482e # 08cb4
.long 0x7ce5492e # 08cb8
.long 0x7d04492e # 08cbc
.long 0x4082ffec # 08cc0
.long 0x4bfffb04 # 08cc4
.long 0x40860030 # 08cc8
.long 0x7d3042a6 # 08ccc
.long 0x80c9ffec # 08cd0
.long 0x4800abd9 # 08cd4
.long 0x549d6026 # 08cd8
.long 0x480000ad # 08cdc
.long 0x41800010 # 08ce0
.long 0x409f014c # 08ce4
.long 0x5623a33e # 08ce8
.long 0x4800014c # 08cec
.long 0x4800ac2d # 08cf0
.long 0x812106a8 # 08cf4
.long 0x48000d05 # 08cf8
.long 0x409ffab4 # 08cfc
.long 0x5523a33e # 08d00
.long 0x4bfffac4 # 08d04
.long 0x40860050 # 08d08
.long 0x7d3042a6 # 08d0c
.long 0x80c9ffec # 08d10
.long 0x4800ab99 # 08d14
.long 0x549d6026 # 08d18
.long 0x4800006d # 08d1c
.long 0x41800030 # 08d20
.long 0x807e0000 # 08d24
.long 0x4182001c # 08d28
.long 0x409f0018 # 08d2c
.long 0x40940014 # 08d30
.long 0x480097f5 # 08d34
.long 0x48009845 # 08d38
.long 0x807e0000 # 08d3c
.long 0x52230026 # 08d40
.long 0x3a000882 # 08d44
.long 0x7c638078 # 08d48
.long 0x480000ec # 08d4c
.long 0x4800abcd # 08d50
.long 0x812106a8 # 08d54
.long 0x48000ca5 # 08d58
.long 0x7e038378 # 08d5c
.long 0x409f001c # 08d60
.long 0x51230026 # 08d64
.long 0x40940014 # 08d68
.long 0x48000d75 # 08d6c
.long 0x48000dbd # 08d70
.long 0x7e038378 # 08d74
.long 0x51230026 # 08d78
.long 0x39000882 # 08d7c
.long 0x7c634078 # 08d80
.long 0x4bfffa44 # 08d84
.long 0x7f9042a6 # 08d88
.long 0x7f6802a6 # 08d8c
.long 0x7fa9eb78 # 08d90
.long 0x811cffe4 # 08d94
.long 0x48007655 # 08d98
.long 0x7d1f4378 # 08d9c
.long 0x821f0024 # 08da0
.long 0x823f0028 # 08da4
.long 0x825f0020 # 08da8
.long 0x7c1d8040 # 08dac
.long 0x7c9d8840 # 08db0
.long 0x41800048 # 08db4
.long 0x41850044 # 08db8
.long 0x56480421 # 08dbc
.long 0x827f0070 # 08dc0
.long 0x41820050 # 08dc4
.long 0x823f0038 # 08dc8
.long 0x56730026 # 08dcc
.long 0x2c110000 # 08dd0
.long 0x7e50e850 # 08dd4
.long 0x41820024 # 08dd8
.long 0x7f6803a6 # 08ddc
.long 0x4c000182 # 08de0
.long 0x4c421242 # 08de4
.long 0x7e329a14 # 08de8
.long 0x3bdf0074 # 08dec
.long 0x4ffffa42 # 08df0
.long 0x52320026 # 08df4
.long 0x4e800020 # 08df8
.long 0x7f6803a6 # 08dfc
.long 0x57a8273e # 08e00
.long 0x2c080007 # 08e04
.long 0x41820028 # 08e08
.long 0x4c000242 # 08e0c
.long 0x4e800020 # 08e10
.long 0x7fa8eb78 # 08e14
.long 0x48009615 # 08e18
.long 0x480096dd # 08e1c
.long 0x7f6803a6 # 08e20
.long 0x4c000182 # 08e24
.long 0x4c421182 # 08e28
.long 0x4e800020 # 08e2c
.long 0x4800aaed # 08e30
.long 0x4bfff97c # 08e34
.long 0x4800aae5 # 08e38
.long 0x4bfff98c # 08e3c
.long 0x48000bbd # 08e40
.long 0x419ff980 # 08e44
.long 0x560387fe # 08e48
.long 0x4bfff97c # 08e4c
.long 0x40860030 # 08e50
.long 0x7d3042a6 # 08e54
.long 0x80c9ffec # 08e58
.long 0x4800aa51 # 08e5c
.long 0x549d6026 # 08e60
.long 0x4bffff25 # 08e64
.long 0x41800010 # 08e68
.long 0x821e0000 # 08e6c
.long 0x56030ffe # 08e70
.long 0x4bffffc4 # 08e74
.long 0x4800aaa5 # 08e78
.long 0x812106a8 # 08e7c
.long 0x48000b7d # 08e80
.long 0x560307fe # 08e84
.long 0x4bfff940 # 08e88
.long 0x48000b71 # 08e8c
.long 0x5603e7fe # 08e90
.long 0x68630001 # 08e94
.long 0x4094f930 # 08e98
.long 0x48000c45 # 08e9c
.long 0x48000c8d # 08ea0
.long 0x5603e7fe # 08ea4
.long 0x68630001 # 08ea8
.long 0x4bfff91c # 08eac
.long 0x5529103b # 08eb0
.long 0x81e106b0 # 08eb4
.long 0x81c106a4 # 08eb8
.long 0x7def4a14 # 08ebc
.long 0x5524f0be # 08ec0
.long 0x38a00100 # 08ec4
.long 0x38c00008 # 08ec8
.long 0x860ffffc # 08ecc
.long 0x3884ffff # 08ed0
.long 0x7e007120 # 08ed4
.long 0x2c040000 # 08ed8
.long 0x5607ba78 # 08edc
.long 0x409f002c # 08ee0
.long 0x4094001c # 08ee4
.long 0x7dce3a14 # 08ee8
.long 0x810e0000 # 08eec
.long 0x48000bf1 # 08ef0
.long 0x7d292878 # 08ef4
.long 0x48000c49 # 08ef8
.long 0x7dc77050 # 08efc
.long 0x521035ac # 08f00
.long 0x7e103078 # 08f04
.long 0x920f0000 # 08f08
.long 0x4082ffc0 # 08f0c
.long 0x4bfff8b8 # 08f10
.long 0x7f8802a6 # 08f14
.long 0x7d1d4378 # 08f18
.long 0x7d3e4b78 # 08f1c
.long 0x7e5042a6 # 08f20
.long 0x54896026 # 08f24
.long 0x8112ffe4 # 08f28
.long 0x480074c1 # 08f2c
.long 0x82280020 # 08f30
.long 0x82080024 # 08f34
.long 0x56320421 # 08f38
.long 0x7c904840 # 08f3c
.long 0x4182f6e0 # 08f40
.long 0x4185f6dc # 08f44
.long 0x3a00ffff # 08f48
.long 0x7f8803a6 # 08f4c
.long 0x92080038 # 08f50
.long 0x7fa8eb78 # 08f54
.long 0x7fc9f378 # 08f58
.long 0x4e800020 # 08f5c
.long 0x40860004 # 08f60
.long 0x48000a99 # 08f64
.long 0x56070674 # 08f68
.long 0x2c070020 # 08f6c
.long 0x409ff840 # 08f70
.long 0x4182f854 # 08f74
.long 0x40900028 # 08f78
.long 0x41940b65 # 08f7c
.long 0x40940bf5 # 08f80
.long 0x561006f0 # 08f84
.long 0x552906f0 # 08f88
.long 0x80e10688 # 08f8c
.long 0x50e906f8 # 08f90
.long 0x62100020 # 08f94
.long 0x48000b91 # 08f98
.long 0x4bfff82c # 08f9c
.long 0x5487873e # 08fa0
.long 0x2c070008 # 08fa4
.long 0x4180f808 # 08fa8
.long 0x4099f804 # 08fac
.long 0x48000025 # 08fb0
.long 0x564d4d61 # 08fb4
.long 0x6b655061 # 08fb8
.long 0x67654361 # 08fbc
.long 0x63686561 # 08fc0
.long 0x626c6520 # 08fc4
.long 0x666f7220 # 08fc8
.long 0x492f4f20 # 08fcc
.long 0 # 08fd0
.long 0x7d0802a6 # 08fd4
.long 0x4800d409 # 08fd8
.long 0x7c882378 # 08fdc
.long 0x4800d731 # 08fe0
.long 0x48000009 # 08fe4
.long 0x5e6e0000 # 08fe8
.long 0x7d0802a6 # 08fec
.long 0x4800d3f1 # 08ff0
.long 0x7cd042a6 # 08ff4
.long 0x80c6ffec # 08ff8
.long 0x4800a8b1 # 08ffc
.long 0x4bffff15 # 09000
.long 0x4800a919 # 09004
.long 0x80af000c # 09008
.long 0x70a60e01 # 0900c
.long 0x2c060a01 # 09010
.long 0x41820038 # 09014
.long 0x39effff8 # 09018
.long 0x80af0004 # 0901c
.long 0xa0cf0000 # 09020
.long 0x70a50c00 # 09024
.long 0xa0af0002 # 09028
.long 0x4082f784 # 0902c
.long 0x38a50001 # 09030
.long 0x7cc62a14 # 09034
.long 0x7cc62278 # 09038
.long 0x70c6ffff # 0903c
.long 0x4082f770 # 09040
.long 0xb0af0002 # 09044
.long 0x4800013c # 09048
.long 0x80af0000 # 0904c
.long 0x80cf0004 # 09050
.long 0x90af0008 # 09054
.long 0x90cf000c # 09058
.long 0x5485801e # 0905c
.long 0x90af0000 # 09060
.long 0x54856026 # 09064
.long 0x60a50012 # 09068
.long 0x90af0004 # 0906c
.long 0x48000114 # 09070
.long 0x40860004 # 09074
.long 0x48000985 # 09078
.long 0x56070675 # 0907c
.long 0x409ff730 # 09080
.long 0x4182f744 # 09084
.long 0x40900028 # 09088
.long 0x41940a55 # 0908c
.long 0x40940ae5 # 09090
.long 0x561006f0 # 09094
.long 0x552906f0 # 09098
.long 0x80e10688 # 0909c
.long 0x50e906f8 # 090a0
.long 0x61290040 # 090a4
.long 0x48000a81 # 090a8
.long 0x480001f0 # 090ac
.long 0x5487873e # 090b0
.long 0x2c070008 # 090b4
.long 0x4180f6f8 # 090b8
.long 0x4099f6f4 # 090bc
.long 0x48000029 # 090c0
.long 0x564d4d61 # 090c4
.long 0x6b655061 # 090c8
.long 0x67655772 # 090cc
.long 0x69746554 # 090d0
.long 0x68726f75 # 090d4
.long 0x67682066 # 090d8
.long 0x6f722049 # 090dc
.long 0x2f4f2000 # 090e0
.long 0 # 090e4
.long 0x7d0802a6 # 090e8
.long 0x4800d2f5 # 090ec
.long 0x7c882378 # 090f0
.long 0x4800d61d # 090f4
.long 0x48000009 # 090f8
.long 0x5e6e0000 # 090fc
.long 0x7d0802a6 # 09100
.long 0x4800d2dd # 09104
.long 0x7cd042a6 # 09108
.long 0x80c6ffec # 0910c
.long 0x4800a79d # 09110
.long 0x4bfffe01 # 09114
.long 0x4800a805 # 09118
.long 0x80af000c # 0911c
.long 0x70a60e01 # 09120
.long 0x2c060a01 # 09124
.long 0x41820038 # 09128
.long 0x39effff8 # 0912c
.long 0x80af0004 # 09130
.long 0xa0cf0000 # 09134
.long 0x70a50c00 # 09138
.long 0xa0af0002 # 0913c
.long 0x4082f670 # 09140
.long 0x38a50001 # 09144
.long 0x7cc62a14 # 09148
.long 0x7cc62278 # 0914c
.long 0x70c6ffff # 09150
.long 0x4082f65c # 09154
.long 0xb0af0002 # 09158
.long 0x48000028 # 0915c
.long 0x80af0000 # 09160
.long 0x80cf0004 # 09164
.long 0x90af0008 # 09168
.long 0x90cf000c # 0916c
.long 0x5485801e # 09170
.long 0x90af0000 # 09174
.long 0x54856026 # 09178
.long 0x60a50052 # 0917c
.long 0x90af0004 # 09180
.long 0x81e106a0 # 09184
.long 0x81c106a4 # 09188
.long 0x54866026 # 0918c
.long 0x7cc03526 # 09190
.long 0x54c83828 # 09194
.long 0x7cc62278 # 09198
.long 0x54c73032 # 0919c
.long 0x7def3838 # 091a0
.long 0x5088b6be # 091a4
.long 0x4c421242 # 091a8
.long 0x65088000 # 091ac
.long 0x7cee786e # 091b0
.long 0x81ee0008 # 091b4
.long 0x80ce0010 # 091b8
.long 0x80ae0018 # 091bc
.long 0x7c874040 # 091c0
.long 0x7d0f4040 # 091c4
.long 0x7d864040 # 091c8
.long 0x7e054040 # 091cc
.long 0x4186007c # 091d0
.long 0x418a0074 # 091d4
.long 0x418e006c # 091d8
.long 0x41920064 # 091dc
.long 0x84ee0020 # 091e0
.long 0x81ee0008 # 091e4
.long 0x80ce0010 # 091e8
.long 0x80ae0018 # 091ec
.long 0x7c874040 # 091f0
.long 0x7d0f4040 # 091f4
.long 0x7d864040 # 091f8
.long 0x7e054040 # 091fc
.long 0x4186004c # 09200
.long 0x418a0044 # 09204
.long 0x418e003c # 09208
.long 0x41920034 # 0920c
.long 0x4c421042 # 09210
.long 0x81e106a0 # 09214
.long 0x81c106a4 # 09218
.long 0x54866026 # 0921c
.long 0x7cc03526 # 09220
.long 0x7cc62278 # 09224
.long 0x7cc630f8 # 09228
.long 0x54c73032 # 0922c
.long 0x7def3838 # 09230
.long 0x69080040 # 09234
.long 0x4082ff78 # 09238
.long 0x4bfff58c # 0923c
.long 0x39ce0008 # 09240
.long 0x39ce0008 # 09244
.long 0x39ce0008 # 09248
.long 0x48000895 # 0924c
.long 0x39000000 # 09250
.long 0x39200000 # 09254
.long 0x480008d5 # 09258
.long 0x4bfff56c # 0925c
.long 0x40860004 # 09260
.long 0x48000799 # 09264
.long 0x56070674 # 09268
.long 0x2c070060 # 0926c
.long 0x409ff540 # 09270
.long 0x4182f554 # 09274
.long 0x40900060 # 09278
.long 0x41940865 # 0927c
.long 0x409408f5 # 09280
.long 0x552906f0 # 09284
.long 0x80e10688 # 09288
.long 0x50e906f8 # 0928c
.long 0x62100060 # 09290
.long 0x61290020 # 09294
.long 0x48000891 # 09298
.long 0x55240026 # 0929c
.long 0xa1010f4a # 092a0
.long 0x7ca44214 # 092a4
.long 0x38e01000 # 092a8
.long 0x5508083c # 092ac
.long 0x7ce83851 # 092b0
.long 0x7c0720ac # 092b4
.long 0x7c0728ac # 092b8
.long 0x7c0004ac # 092bc
.long 0x7c0727ac # 092c0
.long 0x7c072fac # 092c4
.long 0x4082ffe8 # 092c8
.long 0x7c0004ac # 092cc
.long 0x4c00012c # 092d0
.long 0x4bfff4f4 # 092d4
.long 0x5487873e # 092d8
.long 0x2c070008 # 092dc
.long 0x4180f4d0 # 092e0
.long 0x4199f4cc # 092e4
.long 0x48000029 # 092e8
.long 0x564d4d61 # 092ec
.long 0x6b655061 # 092f0
.long 0x67654e6f # 092f4
.long 0x6e436163 # 092f8
.long 0x68656162 # 092fc
.long 0x6c652066 # 09300
.long 0x6f722049 # 09304
.long 0x2f4f2000 # 09308
.long 0 # 0930c
.long 0x7d0802a6 # 09310
.long 0x4800d0cd # 09314
.long 0x7c882378 # 09318
.long 0x4800d3f5 # 0931c
.long 0x48000009 # 09320
.long 0x5e6e0000 # 09324
.long 0x7d0802a6 # 09328
.long 0x4800d0b5 # 0932c
.long 0x7cd042a6 # 09330
.long 0x80c6ffec # 09334
.long 0x4800a575 # 09338
.long 0x4bfffbd9 # 0933c
.long 0x4800a5dd # 09340
.long 0x80af0004 # 09344
.long 0x54a6a33e # 09348
.long 0x7c062000 # 0934c
.long 0x4082f460 # 09350
.long 0x3ce00000 # 09354
.long 0x3d000000 # 09358
.long 0x3d200000 # 0935c
.long 0x54a6a33e # 09360
.long 0xa10f0002 # 09364
.long 0xa0ef0000 # 09368
.long 0x38c60001 # 0936c
.long 0x2c080000 # 09370
.long 0x41820020 # 09374
.long 0x38e70001 # 09378
.long 0x3908ffff # 0937c
.long 0x50c56026 # 09380
.long 0xb0ef0000 # 09384
.long 0xb10f0002 # 09388
.long 0x90af0004 # 0938c
.long 0x4bfffdf4 # 09390
.long 0x3cc00000 # 09394
.long 0x80ef0008 # 09398
.long 0x810f000c # 0939c
.long 0x3ca00000 # 093a0
.long 0x60c60a01 # 093a4
.long 0x90ef0000 # 093a8
.long 0x910f0004 # 093ac
.long 0x90af0008 # 093b0
.long 0x90cf000c # 093b4
.long 0x7c0078ac # 093b8
.long 0x4bfffdc8 # 093bc
.long 0x40860058 # 093c0
.long 0x7d3042a6 # 093c4
.long 0x80c9ffec # 093c8
.long 0x4800a4e1 # 093cc
.long 0x549d6026 # 093d0
.long 0x4bfff9b5 # 093d4
.long 0x41800038 # 093d8
.long 0x4182fa54 # 093dc
.long 0x409f0010 # 093e0
.long 0x4094000c # 093e4
.long 0x48009141 # 093e8
.long 0x480091a5 # 093ec
.long 0x825e0000 # 093f0
.long 0x5652003c # 093f4
.long 0x925e0000 # 093f8
.long 0x825f0068 # 093fc
.long 0x823f0038 # 09400
.long 0x7e328850 # 09404
.long 0x923f0038 # 09408
.long 0x4bfffa2c # 0940c
.long 0x4800a50d # 09410
.long 0x812106a8 # 09414
.long 0x480005e5 # 09418
.long 0x4090f394 # 0941c
.long 0x4195f390 # 09420
.long 0x419406bd # 09424
.long 0x41940719 # 09428
.long 0x50b083de # 0942c
.long 0x38e00001 # 09430
.long 0x7e103878 # 09434
.long 0x920f0000 # 09438
.long 0x4bfff38c # 0943c
.long 0x480005bd # 09440
.long 0x4090f36c # 09444
.long 0x409ff368 # 09448
.long 0x41940695 # 0944c
.long 0x418a001c # 09450
.long 0x40940721 # 09454
.long 0x38e00180 # 09458
.long 0x7d293878 # 0945c
.long 0x62100100 # 09460
.long 0x480006c5 # 09464
.long 0x4bfff360 # 09468
.long 0x40940709 # 0946c
.long 0x62100100 # 09470
.long 0x38e00018 # 09474
.long 0x7e103878 # 09478
.long 0x480006c5 # 0947c
.long 0x4bfff348 # 09480
.long 0x7c044840 # 09484
.long 0x7c854840 # 09488
.long 0x7ce42a14 # 0948c
.long 0x7d074840 # 09490
.long 0x4080f31c # 09494
.long 0x4185f318 # 09498
.long 0x4189f314 # 0949c
.long 0x81e106b0 # 094a0
.long 0x54e8103a # 094a4
.long 0x38e00001 # 094a8
.long 0x3908fffc # 094ac
.long 0x7ca72851 # 094b0
.long 0x7e0f402e # 094b4
.long 0x4180f310 # 094b8
.long 0x50d03e30 # 094bc
.long 0x7e0f412e # 094c0
.long 0x4bffffe8 # 094c4
.long 0x40860058 # 094c8
.long 0x7d3042a6 # 094cc
.long 0x80c9ffec # 094d0
.long 0x4800a3d9 # 094d4
.long 0x549d6026 # 094d8
.long 0x54ba6026 # 094dc
.long 0x4bfff8a9 # 094e0
.long 0x41800034 # 094e4
.long 0x4182f948 # 094e8
.long 0x419ff944 # 094ec
.long 0x4194f131 # 094f0
.long 0x821e0000 # 094f4
.long 0x50b06026 # 094f8
.long 0x62100001 # 094fc
.long 0x921e0000 # 09500
.long 0x825f0068 # 09504
.long 0x823f0038 # 09508
.long 0x7e319214 # 0950c
.long 0x923f0038 # 09510
.long 0x4bfff924 # 09514
.long 0x4800a405 # 09518
.long 0x812106a8 # 0951c
.long 0x480004dd # 09520
.long 0x4090f28c # 09524
.long 0x419ff288 # 09528
.long 0x4194f0f5 # 0952c
.long 0x50b06026 # 09530
.long 0x62100001 # 09534
.long 0x920f0000 # 09538
.long 0x48000639 # 0953c
.long 0x480005e9 # 09540
.long 0x4bfff284 # 09544
.long 0x5484a33e # 09548
.long 0x7c044840 # 0954c
.long 0x38604000 # 09550
.long 0x4080f274 # 09554
.long 0x480004a5 # 09558
.long 0x38600400 # 0955c
.long 0x409ff268 # 09560
.long 0x38600000 # 09564
.long 0x60638000 # 09568
.long 0x409df25c # 0956c
.long 0x2c060000 # 09570
.long 0x4182f254 # 09574
.long 0x38600800 # 09578
.long 0x4bfff24c # 0957c
.long 0x40860064 # 09580
.long 0x7d3042a6 # 09584
.long 0x80c9ffec # 09588
.long 0x4800a321 # 0958c
.long 0x7c9a2378 # 09590
.long 0x54bd6026 # 09594
.long 0x4bfff7f1 # 09598
.long 0x41800040 # 0959c
.long 0x4182f890 # 095a0
.long 0x409f0010 # 095a4
.long 0x4094000c # 095a8
.long 0x48008f7d # 095ac
.long 0x48008fe1 # 095b0
.long 0x825e0000 # 095b4
.long 0x7e48d278 # 095b8
.long 0x38600461 # 095bc
.long 0x5243c77a # 095c0
.long 0x7c634039 # 095c4
.long 0x4082f868 # 095c8
.long 0x7108011c # 095cc
.long 0x7e524278 # 095d0
.long 0x925e0000 # 095d4
.long 0x4bfff860 # 095d8
.long 0x4800a341 # 095dc
.long 0x812106a8 # 095e0
.long 0x7c862378 # 095e4
.long 0x7ca42b78 # 095e8
.long 0x48000411 # 095ec
.long 0x4090f1c0 # 095f0
.long 0x7e073278 # 095f4
.long 0x38600461 # 095f8
.long 0x5203c77a # 095fc
.long 0x7c633839 # 09600
.long 0x4082f1ac # 09604
.long 0x70e7011c # 09608
.long 0x7e103a78 # 0960c
.long 0x920f0000 # 09610
.long 0x4094f1b4 # 09614
.long 0x480004c9 # 09618
.long 0x820f0000 # 0961c
.long 0x408a0014 # 09620
.long 0x72070008 # 09624
.long 0x4082000c # 09628
.long 0x48000515 # 0962c
.long 0x4bfff198 # 09630
.long 0x52092dee # 09634
.long 0x52091e30 # 09638
.long 0x5209f7fe # 0963c
.long 0x480004ed # 09640
.long 0x4bfff184 # 09644
.long 0x480003b5 # 09648
.long 0x409ff170 # 0964c
.long 0x4090f160 # 09650
.long 0x4194048d # 09654
.long 0x419c0024 # 09658
.long 0x409b0020 # 0965c
.long 0x6a100010 # 09660
.long 0x62100100 # 09664
.long 0x920f0000 # 09668
.long 0x4094f158 # 0966c
.long 0x69290080 # 09670
.long 0x480004b9 # 09674
.long 0x4bfff14c # 09678
.long 0x419404b1 # 0967c
.long 0x4bfff13c # 09680
.long 0x80e106b0 # 09684
.long 0x810106c0 # 09688
.long 0x2f050000 # 0968c
.long 0x7f874000 # 09690
.long 0x7c873378 # 09694
.long 0x54e70017 # 09698
.long 0x4099f114 # 0969c
.long 0x812106a8 # 096a0
.long 0x409ef10c # 096a4
.long 0x7c872378 # 096a8
.long 0x4082f104 # 096ac
.long 0x7d244b78 # 096b0
.long 0x54c66026 # 096b4
.long 0x8121fbf8 # 096b8
.long 0x4dce7182 # 096bc
.long 0x2f060000 # 096c0
.long 0x7f892840 # 096c4
.long 0x409a0028 # 096c8
.long 0x419c0024 # 096cc
.long 0x8121fbf4 # 096d0
.long 0x7c854850 # 096d4
.long 0x5484103a # 096d8
.long 0x81e106b0 # 096dc
.long 0x7def2214 # 096e0
.long 0x5484f0be # 096e4
.long 0x4dce7242 # 096e8
.long 0x48000058 # 096ec
.long 0x812106a8 # 096f0
.long 0x38a5ffff # 096f4
.long 0x3884ffff # 096f8
.long 0x48000301 # 096fc
.long 0x419403e1 # 09700
.long 0x4194043d # 09704
.long 0x812106a8 # 09708
.long 0x7d044850 # 0970c
.long 0x7f854040 # 09710
.long 0x7e083039 # 09714
.long 0x409cffe0 # 09718
.long 0x4082ffdc # 0971c
.long 0x2f060000 # 09720
.long 0x419a0020 # 09724
.long 0x54a8103a # 09728
.long 0x7d0f402e # 0972c
.long 0x54ae6026 # 09730
.long 0x7dce8214 # 09734
.long 0x7d087278 # 09738
.long 0x55080027 # 0973c
.long 0x4082ffb8 # 09740
.long 0x54e46026 # 09744
.long 0x812106b4 # 09748
.long 0x7f874840 # 0974c
.long 0x54e90017 # 09750
.long 0x419cf05c # 09754
.long 0x4082f058 # 09758
.long 0x81c105e8 # 0975c
.long 0x54e99e78 # 09760
.long 0x7dce482e # 09764
.long 0x54e9043e # 09768
.long 0xa10e0000 # 0976c
.long 0x48000008 # 09770
.long 0xa50e0008 # 09774
.long 0xa20e0002 # 09778
.long 0x7d084850 # 0977c
.long 0x7f888040 # 09780
.long 0x419dfff0 # 09784
.long 0x7d082a14 # 09788
.long 0x7f888040 # 0978c
.long 0x419df020 # 09790
.long 0x820e0004 # 09794
.long 0x54e8801e # 09798
.long 0x72100e01 # 0979c
.long 0x2c100a01 # 097a0
.long 0x7d082b78 # 097a4
.long 0x38a50001 # 097a8
.long 0x4082f004 # 097ac
.long 0x910e0000 # 097b0
.long 0x409a01b9 # 097b4
.long 0x7de77b78 # 097b8
.long 0x55ef503e # 097bc
.long 0x61ef0c00 # 097c0
.long 0x91ee0004 # 097c4
.long 0x408e0020 # 097c8
.long 0x8101fbf8 # 097cc
.long 0x7d054050 # 097d0
.long 0x9101fbf8 # 097d4
.long 0x8101fbf4 # 097d8
.long 0x7d054050 # 097dc
.long 0x9101fbf4 # 097e0
.long 0x48000044 # 097e4
.long 0x80e106ac # 097e8
.long 0x7ce53850 # 097ec
.long 0x90e106ac # 097f0
.long 0x90e106a8 # 097f4
.long 0x80a1ffe0 # 097f8
.long 0x54e86026 # 097fc
.long 0x91050dc4 # 09800
.long 0x91050dc8 # 09804
.long 0x7dc57378 # 09808
.long 0x80e106b4 # 0980c
.long 0x39000a00 # 09810
.long 0x480001ad # 09814
.long 0x80e106ac # 09818
.long 0x39000c00 # 0981c
.long 0x480001a1 # 09820
.long 0x7cae2b78 # 09824
.long 0x7cd042a6 # 09828
.long 0x80c6ffec # 0982c
.long 0x4800a07d # 09830
.long 0x7dde7378 # 09834
.long 0x48000029 # 09838
.long 0x20564d41 # 0983c
.long 0x6c6c6f63 # 09840
.long 0x6174654d # 09844
.long 0x656d6f72 # 09848
.long 0x79202d20 # 0984c
.long 0x63726561 # 09850
.long 0x74696e67 # 09854
.long 0x20617265 # 09858
.long 0x61000000 # 0985c
.long 0x7d0802a6 # 09860
.long 0x4800cb7d # 09864
.long 0x390000a0 # 09868
.long 0x48008fb1 # 0986c
.long 0x7d1f4379 # 09870
.long 0x4182edac # 09874
.long 0x823e0004 # 09878
.long 0xa21e0002 # 0987c
.long 0x3d006172 # 09880
.long 0x61086561 # 09884
.long 0x911f0004 # 09888
.long 0x3a100001 # 0988c
.long 0x7c8f2378 # 09890
.long 0x56106026 # 09894
.long 0x8101fbe4 # 09898
.long 0x81080014 # 0989c
.long 0x911f006c # 098a0
.long 0x91ff0024 # 098a4
.long 0x921f002c # 098a8
.long 0x921f0038 # 098ac
.long 0x39000000 # 098b0
.long 0x911f0030 # 098b4
.long 0x4800000d # 098b8
.long 0x20617420 # 098bc
.long 0x30780000 # 098c0
.long 0x7d0802a6 # 098c4
.long 0x4800cb19 # 098c8
.long 0x7de87b78 # 098cc
.long 0x4800ce41 # 098d0
.long 0x7e088378 # 098d4
.long 0x4800ce39 # 098d8
.long 0x48000009 # 098dc
.long 0x5e6e0000 # 098e0
.long 0x7d0802a6 # 098e4
.long 0x4800caf9 # 098e8
.long 0x39000007 # 098ec
.long 0x911f001c # 098f0
.long 0x3d000000 # 098f4
.long 0x6108600c # 098f8
.long 0x911f0020 # 098fc
.long 0x5628b03a # 09900
.long 0x911f0040 # 09904
.long 0x811f0008 # 09908
.long 0x610800c0 # 0990c
.long 0x911f0008 # 09910
.long 0x7fe8fb78 # 09914
.long 0x480062d5 # 09918
.long 0x2c090000 # 0991c
.long 0x4082ed00 # 09920
.long 0x7d1f4378 # 09924
.long 0x7d3042a6 # 09928
.long 0x8109ffe4 # 0992c
.long 0x39200000 # 09930
.long 0x48006ab9 # 09934
.long 0x82080024 # 09938
.long 0x2c100000 # 0993c
.long 0x4082ece0 # 09940
.long 0x820106a8 # 09944
.long 0x8228002c # 09948
.long 0x56106026 # 0994c
.long 0x7c118000 # 09950
.long 0x41820010 # 09954
.long 0x9208002c # 09958
.long 0x3a10ffff # 0995c
.long 0x92080028 # 09960
.long 0x48009fb9 # 09964
.long 0x4bffee5c # 09968
.long 0x820f0000 # 0996c
.long 0x80e106ac # 09970
.long 0x810106b0 # 09974
.long 0x54e7103a # 09978
.long 0x7ce74214 # 0997c
.long 0x54a8103a # 09980
.long 0x7ce83850 # 09984
.long 0x7c0f3840 # 09988
.long 0x4d820020 # 0998c
.long 0x38e7fffc # 09990
.long 0x7d2f402e # 09994
.long 0x7c0f3840 # 09998
.long 0x912f0000 # 0999c
.long 0x39ef0004 # 099a0
.long 0x4180fff0 # 099a4
.long 0x2c080004 # 099a8
.long 0x3908fffc # 099ac
.long 0x96070004 # 099b0
.long 0x3a101000 # 099b4
.long 0x4181fff0 # 099b8
.long 0x4e800020 # 099bc
.long 0x39c10078 # 099c0
.long 0x81e106b0 # 099c4
.long 0x38e7ffff # 099c8
.long 0x2f880c00 # 099cc
.long 0x2807ffff # 099d0
.long 0x860e0008 # 099d4
.long 0x409e000c # 099d8
.long 0x55e8503e # 099dc
.long 0x61080c00 # 099e0
.long 0x91100004 # 099e4
.long 0x3def0004 # 099e8
.long 0x3ce7ffff # 099ec
.long 0x4181ffe0 # 099f0
.long 0xb0f00002 # 099f4
.long 0x4e800020 # 099f8
major_0x08794_0x1268: /* < outside referer */
cmplw cr4, r4, r9 # 099fc
lwz r15, 0x06b0( r1) # 09a00
slwi r8, r4, 2 # 09a04
bge- cr4, major_0x08794_0x12a8 # 09a08
major_0x08794_0x1278:
lwzux r16, r15, r8 # 09a0c
lwz r14, 0x06a4( r1) # 09a10
mtcrf 0x07, r16 # 09a14
rlwinm r8, r16, 23, 9, 28 # 09a18
rlwinm r9, r16, 0, 0, 19 # 09a1c
bgelr- cr5 # 09a20
lwzux r8, r14, r8 # 09a24
lwz r9, 0x0004(r14) # 09a28
mtcrf 0x80, r8 # 09a2c
bns+ cr7, panic_wrapper_0x08620 # 09a30
bltlr- # 09a34
bl panic_wrapper_0x08620 # 09a38
major_0x08794_0x12a8:
lwz r9, 0x06b4( r1) # 09a3c
cmplw cr4, r4, r9 # 09a40
rlwinm. r9, r4, 0, 0, 11 # 09a44
blt+ cr4, major_0x08794_0x1c # 09a48
bne+ major_0x08794_0x1c # 09a4c
lwz r15, 0x05e8( r1) # 09a50
rlwinm r9, r4, 19, 25, 28 # 09a54
lwzx r15, r15, r9 # 09a58
clrlwi r9, r4, 0x10 # 09a5c
lhz r8, 0x0000(r15) # 09a60
b major_0x08794_0x12d8 # 09a64
major_0x08794_0x12d4:
lhzu r8, 0x0008(r15) # 09a68
major_0x08794_0x12d8:
lhz r16, 0x0002(r15) # 09a6c
subf r8, r8, r9 # 09a70
cmplw cr4, r8, r16 # 09a74
bgt+ cr4, major_0x08794_0x12d4 # 09a78
lwz r9, 0x0004(r15) # 09a7c
andi. r16, r9, 0xc00 # 09a80
cmpwi cr6, r16, 0x400 # 09a84
cmpwi cr7, r16, 0xc00 # 09a88
beq- major_0x08794_0x1314 # 09a8c
beq- cr6, major_0x08794_0x131c # 09a90
bne+ cr7, major_0x08794_0x1c # 09a94
slwi r8, r8, 2 # 09a98
rlwinm r15, r9, 22, 0, 29 # 09a9c
crset 4*cr4 + lt # 09aa0
b major_0x08794_0x1278 # 09aa4
major_0x08794_0x1314:
slwi r8, r8, 12 # 09aa8
add r9, r9, r8 # 09aac
major_0x08794_0x131c:
rlwinm r16, r9, 0, 0, 19 # 09ab0
crclr 4*cr4 + lt # 09ab4
rlwinm r9, r9, 0, 22, 19 # 09ab8
rlwimi r16, r9, 1, 25, 25 # 09abc
rlwimi r16, r9, 31, 26, 26 # 09ac0
xori r16, r16, 0x20 # 09ac4
rlwimi r16, r9, 29, 27, 27 # 09ac8
rlwimi r16, r9, 27, 28, 28 # 09acc
rlwimi r16, r9, 2, 29, 29 # 09ad0
ori r16, r16, 0x01 # 09ad4
mtcrf 0x07, r16 # 09ad8
blr # 09adc
major_0x08794_0x134c: /* < outside referer */
mfspr r9, 287/*pvr*/ # 09ae0
clrlwi r8, r8, 0x01 # 09ae4
rlwinm. r9, r9, 0, 0, 14 # 09ae8
stw r8, 0x0000(r14) # 09aec
slwi r9, r4, 12 # 09af0
sync # 09af4
tlbie r9 # 09af8
beq- major_0x08794_0x1374 # 09afc
sync # 09b00
tlbsync # 09b04
major_0x08794_0x1374:
sync # 09b08
isync # 09b0c
lwz r9, 0x0004(r14) # 09b10
oris r8, r8, 0x8000 # 09b14
rlwimi r16, r9, 29, 27, 27 # 09b18
rlwimi r16, r9, 27, 28, 28 # 09b1c
mtcrf 0x07, r16 # 09b20
blr # 09b24
major_0x08794_0x1394: /* < outside referer */
stw r16, 0x0000(r15) # 09b28
stw r9, 0x0004(r14) # 09b2c
eieio # 09b30
stw r8, 0x0000(r14) # 09b34
sync # 09b38
blr # 09b3c
major_0x08794_0x13ac:
lwz r8, 0x0e98( r1) # 09b40
rlwinm r16, r16, 0, 21, 19 # 09b44
addi r8, r8, 0x01 # 09b48
stw r8, 0x0e98( r1) # 09b4c
rlwimi r16, r9, 0, 0, 19 # 09b50
li r8, -0x01 # 09b54
stw r8, 0x0340( r1) # 09b58
stw r8, 0x0348( r1) # 09b5c
stw r8, 0x0350( r1) # 09b60
stw r8, 0x0358( r1) # 09b64
li r8, 0x00 # 09b68
li r9, 0x00 # 09b6c
b major_0x08794_0x1394 # 09b70
major_0x08794_0x13e0: /* < outside referer */
lwz r8, 0x06a0( r1) # 09b74
lwz r14, 0x06a4( r1) # 09b78
slwi r9, r4, 12 # 09b7c
mfsrin r6, r9 # 09b80
xor r9, r6, r4 # 09b84
slwi r7, r9, 6 # 09b88
and r8, r8, r7 # 09b8c
lwzux r7, r14, r8 # 09b90
lwz r8, 0x0008(r14) # 09b94
lwz r9, 0x0010(r14) # 09b98
lwz r5, 0x0018(r14) # 09b9c
cmpwi r7, 0x00 # 09ba0
cmpwi cr1, r8, 0x00 # 09ba4
cmpwi cr2, r9, 0x00 # 09ba8
cmpwi cr3, r5, 0x00 # 09bac
bge- major_0x08794_0x1468 # 09bb0
bge- cr1, major_0x08794_0x1464 # 09bb4
bge- cr2, major_0x08794_0x1460 # 09bb8
bge- cr3, major_0x08794_0x145c # 09bbc
lwzu r7, 0x0020(r14) # 09bc0
lwz r8, 0x0008(r14) # 09bc4
lwz r9, 0x0010(r14) # 09bc8
lwz r5, 0x0018(r14) # 09bcc
cmpwi r7, 0x00 # 09bd0
cmpwi cr1, r8, 0x00 # 09bd4
cmpwi cr2, r9, 0x00 # 09bd8
cmpwi cr3, r5, 0x00 # 09bdc
bge- major_0x08794_0x1468 # 09be0
bge- cr1, major_0x08794_0x1464 # 09be4
bge- cr2, major_0x08794_0x1460 # 09be8
blt- cr3, major_0x08794_0x14b8 # 09bec
major_0x08794_0x145c:
addi r14, r14, 0x08 # 09bf0
major_0x08794_0x1460:
addi r14, r14, 0x08 # 09bf4
major_0x08794_0x1464:
addi r14, r14, 0x08 # 09bf8
major_0x08794_0x1468:
lwz r9, 0x0e94( r1) # 09bfc
rlwinm r8, r6, 7, 1, 24 # 09c00
addi r9, r9, 0x01 # 09c04
stw r9, 0x0e94( r1) # 09c08
rlwimi r8, r4, 22, 26, 31 # 09c0c
lwz r9, 0x0688( r1) # 09c10
oris r8, r8, 0x8000 # 09c14
rlwimi r9, r16, 0, 0, 19 # 09c18
ori r9, r9, 0x100 # 09c1c
ori r16, r16, 0x08 # 09c20
rlwimi r9, r16, 3, 24, 24 # 09c24
rlwimi r9, r16, 31, 26, 26 # 09c28
rlwimi r9, r16, 1, 25, 25 # 09c2c
xori r9, r9, 0x40 # 09c30
rlwimi r9, r16, 30, 31, 31 # 09c34
lwz r7, 0x06a4( r1) # 09c38
ori r16, r16, 0x801 # 09c3c
subf r7, r7, r14 # 09c40
rlwimi r16, r7, 9, 0, 19 # 09c44
blr # 09c48
major_0x08794_0x14b8:
mr r7, r27 # 09c4c
mr r8, r29 # 09c50
mr r9, r30 # 09c54
mr r5, r31 # 09c58
mr r16, r28 # 09c5c
mr r14, r26 # 09c60
mflr r6 # 09c64
slwi r27, r4, 12 # 09c68
bl major_0x04c20 # 09c6c
bnel+ panic_wrapper_0x08620 # 09c70
mr r27, r7 # 09c74
mr r29, r8 # 09c78
mr r30, r9 # 09c7c
mr r31, r5 # 09c80
mr r28, r16 # 09c84
mr r26, r14 # 09c88
lwz r9, 0x06a8( r1) # 09c8c
bl major_0x08794_0x1268 # 09c90
mtlr r6 # 09c94
b major_0x08794_0x134c # 09c98
.long 0x390106c0 # 09c9c
.long 0x812106ac # 09ca0
.long 0x50e896ba # 09ca4
.long 0x7c074840 # 09ca8
.long 0x81080000 # 09cac
.long 0x54e713ba # 09cb0
.long 0x4080eafc # 09cb4
.long 0x7d28382e # 09cb8
.long 0x55290026 # 09cbc
.long 0x4e800020 # 09cc0
/***********************************************************
major_0x09cc4
***********************************************************/
.long 0x4800001c # 09cc4
.long 0x60000000 # 09cc8
.long 0x60000000 # 09ccc
.long 0x60000000 # 09cd0
.long 0x60000000 # 09cd4
.long 0x60000000 # 09cd8
.long 0x60000000 # 09cdc
/***********************************************************
panic_offset_to_r1_minus_0x810_x48__0x9dfc_to_prev_plus_4_20_36
************************************************************
Xrefs:
setup
***********************************************************/
panic_offset_to_r1_minus_0x810_x48__0x9dfc_to_prev_plus_4_20_36: /* < outside referer */
mflr r9 # 09ce0
lis r23, panic@h # 09ce4
ori r23, r23, panic@l # 09ce8
add r23, r23, r25 # 09cec
addi r8, r1, -0x810 # 09cf0
li r22, 0xc0 # 09cf4
# r8 = dest
# r22 = len in bytes
# r23 = fillword
bl wordfill # 09cf8
mtlr r9 # 09cfc
lis r23, major_0x09dfc@h # 09d00
ori r23, r23, major_0x09dfc@l # 09d04
add r23, r23, r25 # 09d08
stw r23, 0x0004( r8) # 09d0c
stw r23, 0x0014( r8) # 09d10
stw r23, 0x0024( r8) # 09d14
blr # 09d18
/***********************************************************
major_0x09d1c
***********************************************************/
.long 0x60000000 # 09d1c
/***********************************************************
bootstrap_cpu
************************************************************
NB: I was probably wrong about this.
Contains a (very rare) mtsprg0 instruction.
************************************************************
Xrefs:
"lisori_caller"
***********************************************************/
bootstrap_cpu: /* < outside referer */
mtcr r7 # 09d20
lwz r4, 0x0670( r1) # 09d24
cmplwi cr7, r3, 0x0b # 09d28
mr r9, r13 # 09d2c
blt- cr2, bootstrap_cpu_0x18 # 09d30
lwz r9, -0x0440( r1) # 09d34
bootstrap_cpu_0x18:
and. r8, r4, r9 # 09d38
bgt- cr7, major_0x09dfc_0x60 # 09d3c
bne- major_0x09dfc_0x58 # 09d40
cmplwi cr7, r3, 0x0b # 09d44
beq- cr7, major_0x0a600_0x1c # 09d48
cmplwi cr7, r3, 0x08 # 09d4c
beq- cr7, major_0x09dfc_0x68 # 09d50
cmplwi cr7, r3, 0x09 # 09d54
beq- cr7, major_0x0a600_0x10 # 09d58
stw r26, 0x01d4( r6) # 09d5c
stw r27, 0x01dc( r6) # 09d60
stw r28, 0x01e4( r6) # 09d64
stw r29, 0x01ec( r6) # 09d68
stw r30, 0x01f4( r6) # 09d6c
stw r31, 0x01fc( r6) # 09d70
mfspr r31, 275/*sprg3*/ # 09d74
addi r8, r1, -0x810 # 09d78
mtspr 275/*sprg3*/, r8 # 09d7c
rlwinm r26, r3, 0, 29, 29 # 09d80
clrlwi r3, r3, 0x1e # 09d84
lbz r8, 0x06b8( r1) # 09d88
slwi r3, r3, 1 # 09d8c
addi r3, r3, 0x1a # 09d90
rlwnm r3, r8, r3, 0x1e, 0x1f # 09d94
cmpwi r3, 0x00 # 09d98
beq- major_0x09dfc_0x50 # 09d9c
lbz r9, 0x06b9( r1) # 09da0
cmpwi r9, 0x00 # 09da4
beq- bootstrap_cpu_0xb0 # 09da8
mfspr r27, 1008/*hid0*/ # 09dac
mr r8, r27 # 09db0
cmpwi r9, 0x01 # 09db4
beq- bootstrap_cpu_0xa8 # 09db8
oris r9, r3, 0x100 # 09dbc
srw r9, r9, r9 # 09dc0
rlwimi r8, r9, 0, 8, 10 # 09dc4
bootstrap_cpu_0xa8:
oris r8, r8, 0x01 # 09dc8
mtspr 1008/*hid0*/, r8 # 09dcc
bootstrap_cpu_0xb0:
cmplwi r26, 0x04 # 09dd0
beql- major_0x0a8c0_0x258 # 09dd4
mfmsr r8 # 09dd8
ori r8, r8, 0x8002 # 09ddc
cmplwi r3, 0x00 # 09de0
beq- bootstrap_cpu_0xcc # 09de4
oris r8, r8, 0x04 # 09de8
bootstrap_cpu_0xcc:
sync # 09dec
mtmsr r8 # 09df0
isync # 09df4
bootstrap_cpu_0xd8:
b bootstrap_cpu_0xd8 # 09df8
/***********************************************************
major_0x09dfc
************************************************************
Xrefs:
"lisori_caller"
bootstrap_cpu
***********************************************************/
major_0x09dfc: /* < outside referer */
lbz r8, 0x06b9( r1) # 09dfc
cmpwi r8, 0x00 # 09e00
beq- major_0x09dfc_0x10 # 09e04
mtspr 1008/*hid0*/, r27 # 09e08
major_0x09dfc_0x10:
mfspr r1, 274/*sprg2*/ # 09e0c
mtlr r1 # 09e10
mfspr r1, 273/*sprg1*/ # 09e14
lis r9, 0x7fff # 09e18
mfspr r8, 22/*dec*/ # 09e1c
mtspr 22/*dec*/, r9 # 09e20
mtspr 22/*dec*/, r8 # 09e24
li r3, 0x00 # 09e28
major_0x09dfc_0x30:
mtspr 275/*sprg3*/, r31 # 09e2c
lwz r26, 0x01d4( r6) # 09e30
lwz r27, 0x01dc( r6) # 09e34
lwz r28, 0x01e4( r6) # 09e38
lwz r29, 0x01ec( r6) # 09e3c
lwz r30, 0x01f4( r6) # 09e40
lwz r31, 0x01fc( r6) # 09e44
b skeleton_key # 09e48
major_0x09dfc_0x50: /* < outside referer */
li r3, -0x7267 # 09e4c
b major_0x09dfc_0x30 # 09e50
major_0x09dfc_0x58: /* < outside referer */
li r3, 0x00 # 09e54
b skeleton_key # 09e58
major_0x09dfc_0x60: /* < outside referer */
li r3, -0x01 # 09e5c
b skeleton_key # 09e60
major_0x09dfc_0x68: /* < outside referer */
mfspr r9, 272/*sprg0*/ # 09e64
lwz r8, -0x0338( r9) # 09e68
lwz r9, 0x0024( r8) # 09e6c
cmpwi r9, 0x01 # 09e70
li r3, -0x7267 # 09e74
bgt+ skeleton_key # 09e78
stw r26, 0x01d4( r6) # 09e7c
stw r27, 0x01dc( r6) # 09e80
stw r28, 0x01e4( r6) # 09e84
stw r29, 0x01ec( r6) # 09e88
stw r30, 0x01f4( r6) # 09e8c
stw r31, 0x01fc( r6) # 09e90
bl major_0x0a8c0_0x258 # 09e94
mfspr r9, 1008/*hid0*/ # 09e98
rlwinm r9, r9, 0, 18, 16 # 09e9c
rlwinm r9, r9, 0, 17, 15 # 09ea0
mtspr 1008/*hid0*/, r9 # 09ea4
sync # 09ea8
isync # 09eac
lwz r26, 0x0f68( r1) # 09eb0
andi. r26, r26, 0x01 # 09eb4
beq- major_0x09dfc_0xdc # 09eb8
mfspr r9, 1017/*l2cr*/ # 09ebc
clrlwi r9, r9, 0x01 # 09ec0
mtspr 1017/*l2cr*/, r9 # 09ec4
sync # 09ec8
isync # 09ecc
addi r8, r1, -0x4d0 # 09ed0
stw r9, 0x0050( r8) # 09ed4
major_0x09dfc_0xdc:
stw r7, 0x0000( r6) # 09ed8
stw r2, 0x0114( r6) # 09edc
stw r3, 0x011c( r6) # 09ee0
stw r4, 0x0124( r6) # 09ee4
stw r5, 0x012c( r6) # 09ee8
stw r14, 0x0174( r6) # 09eec
stw r15, 0x017c( r6) # 09ef0
stw r16, 0x0184( r6) # 09ef4
stw r17, 0x018c( r6) # 09ef8
stw r18, 0x0194( r6) # 09efc
stw r19, 0x019c( r6) # 09f00
stw r20, 0x01a4( r6) # 09f04
stw r21, 0x01ac( r6) # 09f08
stw r22, 0x01b4( r6) # 09f0c
stw r23, 0x01bc( r6) # 09f10
stw r24, 0x01c4( r6) # 09f14
stw r25, 0x01cc( r6) # 09f18
stw r13, 0x00dc( r6) # 09f1c
andi. r8, r11, 0x2000 # 09f20
beq- major_0x09dfc_0x1c4 # 09f24
mfmsr r8 # 09f28
ori r8, r8, 0x2000 # 09f2c
mtmsr r8 # 09f30
isync # 09f34
stfd f0, 0x0200( r6) # 09f38
stfd f1, 0x0208( r6) # 09f3c
stfd f2, 0x0210( r6) # 09f40
stfd f3, 0x0218( r6) # 09f44
stfd f4, 0x0220( r6) # 09f48
stfd f5, 0x0228( r6) # 09f4c
stfd f6, 0x0230( r6) # 09f50
stfd f7, 0x0238( r6) # 09f54
stfd f8, 0x0240( r6) # 09f58
stfd f9, 0x0248( r6) # 09f5c
stfd f10, 0x0250( r6) # 09f60
stfd f11, 0x0258( r6) # 09f64
stfd f12, 0x0260( r6) # 09f68
stfd f13, 0x0268( r6) # 09f6c
stfd f14, 0x0270( r6) # 09f70
stfd f15, 0x0278( r6) # 09f74
stfd f16, 0x0280( r6) # 09f78
mffs f0 # 09f7c
stfd f17, 0x0288( r6) # 09f80
stfd f18, 0x0290( r6) # 09f84
stfd f19, 0x0298( r6) # 09f88
stfd f20, 0x02a0( r6) # 09f8c
stfd f21, 0x02a8( r6) # 09f90
stfd f22, 0x02b0( r6) # 09f94
stfd f23, 0x02b8( r6) # 09f98
stfd f24, 0x02c0( r6) # 09f9c
stfd f25, 0x02c8( r6) # 09fa0
stfd f26, 0x02d0( r6) # 09fa4
stfd f27, 0x02d8( r6) # 09fa8
stfd f28, 0x02e0( r6) # 09fac
stfd f29, 0x02e8( r6) # 09fb0
stfd f30, 0x02f0( r6) # 09fb4
stfd f31, 0x02f8( r6) # 09fb8
stfd f0, 0x00e0( r6) # 09fbc
major_0x09dfc_0x1c4:
mfxer r9 # 09fc0
addi r16, r1, -0x4d0 # 09fc4
stw r9, 0x00d4( r6) # 09fc8
mfctr r9 # 09fcc
stw r9, 0x00f0( r6) # 09fd0
stw r12, 0x00e8( r6) # 09fd4
stw r10, 0x0054(r16) # 09fd8
stw r11, 0x0058(r16) # 09fdc
mfspr r9, 1008/*hid0*/ # 09fe0
stw r9, 0x0064(r16) # 09fe4
major_0x09dfc_0x1ec:
mftbu r9 # 09fe8
stw r9, 0x005c(r16) # 09fec
mftb r9, 0x10c # 09ff0
stw r9, 0x0060(r16) # 09ff4
mftbu r8 # 09ff8
lwz r9, 0x005c(r16) # 09ffc
cmpw r8, r9 # 0a000
bne+ major_0x09dfc_0x1ec # 0a004
mfmsr r9 # 0a008
stw r9, 0x006c(r16) # 0a00c
mfspr r9, 25/*sdr1*/ # 0a010
stw r9, 0x0070(r16) # 0a014
mfspr r9, 536/*dbat0u*/ # 0a018
stw r9, 0x0000(r16) # 0a01c
mfspr r9, 537/*dbat0l*/ # 0a020
stw r9, 0x0004(r16) # 0a024
mfspr r9, 538/*dbat1u*/ # 0a028
stw r9, 0x0008(r16) # 0a02c
mfspr r9, 539/*dbat1l*/ # 0a030
stw r9, 0x000c(r16) # 0a034
mfspr r9, 540/*dbat2u*/ # 0a038
stw r9, 0x0010(r16) # 0a03c
mfspr r9, 541/*dbat2l*/ # 0a040
stw r9, 0x0014(r16) # 0a044
mfspr r9, 542/*dbat3u*/ # 0a048
stw r9, 0x0018(r16) # 0a04c
mfspr r9, 543/*dbat3l*/ # 0a050
stw r9, 0x001c(r16) # 0a054
mfspr r9, 528/*ibat0u*/ # 0a058
stw r9, 0x0020(r16) # 0a05c
mfspr r9, 529/*ibat0l*/ # 0a060
stw r9, 0x0024(r16) # 0a064
mfspr r9, 530/*ibat1u*/ # 0a068
stw r9, 0x0028(r16) # 0a06c
mfspr r9, 531/*ibat1l*/ # 0a070
stw r9, 0x002c(r16) # 0a074
mfspr r9, 532/*ibat2u*/ # 0a078
stw r9, 0x0030(r16) # 0a07c
mfspr r9, 533/*ibat2l*/ # 0a080
stw r9, 0x0034(r16) # 0a084
mfspr r9, 534/*ibat3u*/ # 0a088
stw r9, 0x0038(r16) # 0a08c
mfspr r9, 535/*ibat3l*/ # 0a090
stw r9, 0x003c(r16) # 0a094
mfspr r9, 272/*sprg0*/ # 0a098
stw r9, 0x0040(r16) # 0a09c
mfspr r9, 273/*sprg1*/ # 0a0a0
stw r9, 0x0044(r16) # 0a0a4
mfspr r9, 274/*sprg2*/ # 0a0a8
stw r9, 0x0048(r16) # 0a0ac
mfspr r9, 275/*sprg3*/ # 0a0b0
stw r9, 0x004c(r16) # 0a0b4
stw r6, 0x007c(r16) # 0a0b8
bl major_0x09dfc_0x5c8 # 0a0bc
lwz r1, 0x0004( r1) # 0a0c0
addi r16, r1, -0x4d0 # 0a0c4
lis r8, 0x100 # 0a0c8
ori r8, r8, 0x00 # 0a0cc
lis r9, 0x00 # 0a0d0
major_0x09dfc_0x2d8:
addis r9, r9, -0x1000 # 0a0d4
addis r8, r8, -0x10 # 0a0d8
mr. r9, r9 # 0a0dc
mtsrin r8, r9 # 0a0e0
bne+ major_0x09dfc_0x2d8 # 0a0e4
isync # 0a0e8
mfspr r9, 1008/*hid0*/ # 0a0ec
li r8, 0x800 # 0a0f0
ori r8, r8, 0x200 # 0a0f4
or r9, r9, r8 # 0a0f8
mtspr 1008/*hid0*/, r9 # 0a0fc
isync # 0a100
andc r9, r9, r8 # 0a104
mtspr 1008/*hid0*/, r9 # 0a108
isync # 0a10c
ori r9, r9, 0x8000 # 0a110
ori r9, r9, 0x4000 # 0a114
mtspr 1008/*hid0*/, r9 # 0a118
isync # 0a11c
lwz r26, 0x0f68( r1) # 0a120
andi. r26, r26, 0x01 # 0a124
beq- major_0x09dfc_0x3b8 # 0a128
lwz r8, 0x0f54( r1) # 0a12c
mr. r8, r8 # 0a130
beq- major_0x09dfc_0x3b8 # 0a134
mfspr r9, 1008/*hid0*/ # 0a138
rlwinm r9, r9, 0, 12, 10 # 0a13c
mtspr 1008/*hid0*/, r9 # 0a140
isync # 0a144
lwz r9, 0x0050(r16) # 0a148
mtspr 1017/*l2cr*/, r9 # 0a14c
sync # 0a150
isync # 0a154
lis r8, 0x20 # 0a158
or r8, r9, r8 # 0a15c
mtspr 1017/*l2cr*/, r8 # 0a160
sync # 0a164
isync # 0a168
major_0x09dfc_0x370:
mfspr r8, 1017/*l2cr*/ # 0a16c
rlwinm. r8, r8, 31, 0, 0 # 0a170
bne+ major_0x09dfc_0x370 # 0a174
mfspr r8, 1017/*l2cr*/ # 0a178
lis r9, -0x21 # 0a17c
ori r9, r9, 0xffff # 0a180
and r8, r8, r9 # 0a184
mtspr 1017/*l2cr*/, r8 # 0a188
sync # 0a18c
mfspr r8, 1008/*hid0*/ # 0a190
oris r8, r8, 0x10 # 0a194
mtspr 1008/*hid0*/, r8 # 0a198
isync # 0a19c
mfspr r8, 1017/*l2cr*/ # 0a1a0
oris r8, r8, 0x8000 # 0a1a4
mtspr 1017/*l2cr*/, r8 # 0a1a8
sync # 0a1ac
isync # 0a1b0
major_0x09dfc_0x3b8:
lwz r6, 0x007c(r16) # 0a1b4
lwz r7, 0x0000( r6) # 0a1b8
lwz r13, 0x00dc( r6) # 0a1bc
lwz r9, 0x00f0( r6) # 0a1c0
mtctr r9 # 0a1c4
lwz r12, 0x00e8( r6) # 0a1c8
lwz r9, 0x00d4( r6) # 0a1cc
mtxer r9 # 0a1d0
lwz r10, 0x0054(r16) # 0a1d4
lwz r11, 0x0058(r16) # 0a1d8
lwz r2, 0x0114( r6) # 0a1dc
lwz r3, 0x011c( r6) # 0a1e0
lwz r4, 0x0124( r6) # 0a1e4
lwz r5, 0x012c( r6) # 0a1e8
lwz r14, 0x0174( r6) # 0a1ec
lwz r15, 0x017c( r6) # 0a1f0
lwz r17, 0x018c( r6) # 0a1f4
lwz r18, 0x0194( r6) # 0a1f8
lwz r19, 0x019c( r6) # 0a1fc
lwz r20, 0x01a4( r6) # 0a200
lwz r21, 0x01ac( r6) # 0a204
lwz r22, 0x01b4( r6) # 0a208
lwz r23, 0x01bc( r6) # 0a20c
lwz r24, 0x01c4( r6) # 0a210
lwz r25, 0x01cc( r6) # 0a214
lwz r26, 0x01d4( r6) # 0a218
lwz r27, 0x01dc( r6) # 0a21c
lwz r28, 0x01e4( r6) # 0a220
lwz r29, 0x01ec( r6) # 0a224
lwz r30, 0x01f4( r6) # 0a228
lwz r31, 0x01fc( r6) # 0a22c
andi. r8, r11, 0x2000 # 0a230
beq- major_0x09dfc_0x4d4 # 0a234
mfmsr r8 # 0a238
ori r8, r8, 0x2000 # 0a23c
mtmsr r8 # 0a240
isync # 0a244
lfd f31, 0x00e0( r6) # 0a248
lfd f0, 0x0200( r6) # 0a24c
lfd f1, 0x0208( r6) # 0a250
lfd f2, 0x0210( r6) # 0a254
lfd f3, 0x0218( r6) # 0a258
lfd f4, 0x0220( r6) # 0a25c
lfd f5, 0x0228( r6) # 0a260
lfd f6, 0x0230( r6) # 0a264
lfd f7, 0x0238( r6) # 0a268
lfd f8, 0x0240( r6) # 0a26c
mtfsf 0xff, f31 # 0a270
lfd f9, 0x0248( r6) # 0a274
lfd f10, 0x0250( r6) # 0a278
lfd f11, 0x0258( r6) # 0a27c
lfd f12, 0x0260( r6) # 0a280
lfd f13, 0x0268( r6) # 0a284
lfd f14, 0x0270( r6) # 0a288
lfd f15, 0x0278( r6) # 0a28c
lfd f16, 0x0280( r6) # 0a290
lfd f17, 0x0288( r6) # 0a294
lfd f18, 0x0290( r6) # 0a298
lfd f19, 0x0298( r6) # 0a29c
lfd f20, 0x02a0( r6) # 0a2a0
lfd f21, 0x02a8( r6) # 0a2a4
lfd f22, 0x02b0( r6) # 0a2a8
lfd f23, 0x02b8( r6) # 0a2ac
lfd f24, 0x02c0( r6) # 0a2b0
lfd f25, 0x02c8( r6) # 0a2b4
lfd f26, 0x02d0( r6) # 0a2b8
lfd f27, 0x02d8( r6) # 0a2bc
lfd f28, 0x02e0( r6) # 0a2c0
lfd f29, 0x02e8( r6) # 0a2c4
lfd f30, 0x02f0( r6) # 0a2c8
lfd f31, 0x02f8( r6) # 0a2cc
major_0x09dfc_0x4d4:
lwz r9, 0x0064(r16) # 0a2d0
ori r9, r9, 0x8000 # 0a2d4
ori r9, r9, 0x4000 # 0a2d8
mtspr 1008/*hid0*/, r9 # 0a2dc
sync # 0a2e0
isync # 0a2e4
lwz r9, 0x005c(r16) # 0a2e8
mtspr 285/*tbu*/, r9 # 0a2ec
lwz r9, 0x0060(r16) # 0a2f0
mtspr 284/*tbl*/, r9 # 0a2f4
li r9, 0x01 # 0a2f8
mtspr 22/*dec*/, r9 # 0a2fc
lwz r9, 0x006c(r16) # 0a300
mtmsr r9 # 0a304
sync # 0a308
isync # 0a30c
lwz r9, 0x0070(r16) # 0a310
mtspr 25/*sdr1*/, r9 # 0a314
lwz r9, 0x0040(r16) # 0a318
mtspr 272/*sprg0*/, r9 # 0a31c
lwz r9, 0x0044(r16) # 0a320
mtspr 273/*sprg1*/, r9 # 0a324
lwz r9, 0x0048(r16) # 0a328
mtspr 274/*sprg2*/, r9 # 0a32c
lwz r9, 0x004c(r16) # 0a330
mtspr 275/*sprg3*/, r9 # 0a334
lwz r9, 0x0000(r16) # 0a338
mtspr 536/*dbat0u*/, r9 # 0a33c
lwz r9, 0x0004(r16) # 0a340
mtspr 537/*dbat0l*/, r9 # 0a344
lwz r9, 0x0008(r16) # 0a348
mtspr 538/*dbat1u*/, r9 # 0a34c
lwz r9, 0x000c(r16) # 0a350
mtspr 539/*dbat1l*/, r9 # 0a354
lwz r9, 0x0010(r16) # 0a358
mtspr 540/*dbat2u*/, r9 # 0a35c
lwz r9, 0x0014(r16) # 0a360
mtspr 541/*dbat2l*/, r9 # 0a364
lwz r9, 0x0018(r16) # 0a368
mtspr 542/*dbat3u*/, r9 # 0a36c
lwz r9, 0x001c(r16) # 0a370
mtspr 543/*dbat3l*/, r9 # 0a374
lwz r9, 0x0020(r16) # 0a378
mtspr 528/*ibat0u*/, r9 # 0a37c
lwz r9, 0x0024(r16) # 0a380
mtspr 529/*ibat0l*/, r9 # 0a384
lwz r9, 0x0028(r16) # 0a388
mtspr 530/*ibat1u*/, r9 # 0a38c
lwz r9, 0x002c(r16) # 0a390
mtspr 531/*ibat1l*/, r9 # 0a394
lwz r9, 0x0030(r16) # 0a398
mtspr 532/*ibat2u*/, r9 # 0a39c
lwz r9, 0x0034(r16) # 0a3a0
mtspr 533/*ibat2l*/, r9 # 0a3a4
lwz r9, 0x0038(r16) # 0a3a8
mtspr 534/*ibat3u*/, r9 # 0a3ac
lwz r9, 0x003c(r16) # 0a3b0
mtspr 535/*ibat3l*/, r9 # 0a3b4
lwz r16, 0x0184( r6) # 0a3b8
li r3, 0x00 # 0a3bc
b skeleton_key # 0a3c0
major_0x09dfc_0x5c8:
mflr r9 # 0a3c4
stw r9, 0x0074(r16) # 0a3c8
stw r1, 0x0078(r16) # 0a3cc
addi r9, r16, 0x74 # 0a3d0
li r0, 0x00 # 0a3d4
stw r9, 0x0000( r0) # 0a3d8
lis r9, 0x4c61 # 0a3dc
ori r9, r9, 0x7273 # 0a3e0
stw r9, 0x0004( r0) # 0a3e4
mfspr r9, 1008/*hid0*/ # 0a3e8
andis. r9, r9, 0x20 # 0a3ec
mtspr 1008/*hid0*/, r9 # 0a3f0
mfmsr r8 # 0a3f4
oris r8, r8, 0x04 # 0a3f8
mfspr r9, 1008/*hid0*/ # 0a3fc
ori r9, r9, 0x8000 # 0a400
mtspr 1008/*hid0*/, r9 # 0a404
88: bl 99f # 0a408
99: mflr r9 # 0a40c
addi r9, r9, major_0x0a600 - 88b - 4 # 0a410
lis r1, -0x3502 # 0a414
ori r1, r1, 0xbabe # 0a418
b major_0x0a500 # 0a41c
/***********************************************************
major_0x0a420
***********************************************************/
.long 0x480000e0 # 0a420
.long 0x60000000 # 0a424
.long 0x60000000 # 0a428
.long 0x60000000 # 0a42c
.long 0x60000000 # 0a430
.long 0x60000000 # 0a434
.long 0x60000000 # 0a438
.long 0x60000000 # 0a43c
.long 0x60000000 # 0a440
.long 0x60000000 # 0a444
.long 0x60000000 # 0a448
.long 0x60000000 # 0a44c
.long 0x60000000 # 0a450
.long 0x60000000 # 0a454
.long 0x60000000 # 0a458
.long 0x60000000 # 0a45c
.long 0x60000000 # 0a460
.long 0x60000000 # 0a464
.long 0x60000000 # 0a468
.long 0x60000000 # 0a46c
.long 0x60000000 # 0a470
.long 0x60000000 # 0a474
.long 0x60000000 # 0a478
.long 0x60000000 # 0a47c
.long 0x60000000 # 0a480
.long 0x60000000 # 0a484
.long 0x60000000 # 0a488
.long 0x60000000 # 0a48c
.long 0x60000000 # 0a490
.long 0x60000000 # 0a494
.long 0x60000000 # 0a498
.long 0x60000000 # 0a49c
.long 0x60000000 # 0a4a0
.long 0x60000000 # 0a4a4
.long 0x60000000 # 0a4a8
.long 0x60000000 # 0a4ac
.long 0x60000000 # 0a4b0
.long 0x60000000 # 0a4b4
.long 0x60000000 # 0a4b8
.long 0x60000000 # 0a4bc
.long 0x60000000 # 0a4c0
.long 0x60000000 # 0a4c4
.long 0x60000000 # 0a4c8
.long 0x60000000 # 0a4cc
.long 0x60000000 # 0a4d0
.long 0x60000000 # 0a4d4
.long 0x60000000 # 0a4d8
.long 0x60000000 # 0a4dc
.long 0x60000000 # 0a4e0
.long 0x60000000 # 0a4e4
.long 0x60000000 # 0a4e8
.long 0x60000000 # 0a4ec
.long 0x60000000 # 0a4f0
.long 0x60000000 # 0a4f4
.long 0x60000000 # 0a4f8
.long 0x60000000 # 0a4fc
/***********************************************************
major_0x0a500
************************************************************
Xrefs:
major_0x09dfc
***********************************************************/
major_0x0a500: /* < outside referer */
sync # 0a500
mtmsr r8 # 0a504
isync # 0a508
cmpwi r1, 0x00 # 0a50c
beq+ major_0x0a500 # 0a510
lwz r0, 0x0000( r9) # 0a514
andi. r1, r1, 0x00 # 0a518
b major_0x0a500 # 0a51c
/***********************************************************
major_0x0a520
***********************************************************/
.long 0x480000e0 # 0a520
.long 0x60000000 # 0a524
.long 0x60000000 # 0a528
.long 0x60000000 # 0a52c
.long 0x60000000 # 0a530
.long 0x60000000 # 0a534
.long 0x60000000 # 0a538
.long 0x60000000 # 0a53c
.long 0x60000000 # 0a540
.long 0x60000000 # 0a544
.long 0x60000000 # 0a548
.long 0x60000000 # 0a54c
.long 0x60000000 # 0a550
.long 0x60000000 # 0a554
.long 0x60000000 # 0a558
.long 0x60000000 # 0a55c
.long 0x60000000 # 0a560
.long 0x60000000 # 0a564
.long 0x60000000 # 0a568
.long 0x60000000 # 0a56c
.long 0x60000000 # 0a570
.long 0x60000000 # 0a574
.long 0x60000000 # 0a578
.long 0x60000000 # 0a57c
.long 0x60000000 # 0a580
.long 0x60000000 # 0a584
.long 0x60000000 # 0a588
.long 0x60000000 # 0a58c
.long 0x60000000 # 0a590
.long 0x60000000 # 0a594
.long 0x60000000 # 0a598
.long 0x60000000 # 0a59c
.long 0x60000000 # 0a5a0
.long 0x60000000 # 0a5a4
.long 0x60000000 # 0a5a8
.long 0x60000000 # 0a5ac
.long 0x60000000 # 0a5b0
.long 0x60000000 # 0a5b4
.long 0x60000000 # 0a5b8
.long 0x60000000 # 0a5bc
.long 0x60000000 # 0a5c0
.long 0x60000000 # 0a5c4
.long 0x60000000 # 0a5c8
.long 0x60000000 # 0a5cc
.long 0x60000000 # 0a5d0
.long 0x60000000 # 0a5d4
.long 0x60000000 # 0a5d8
.long 0x60000000 # 0a5dc
.long 0x60000000 # 0a5e0
.long 0x60000000 # 0a5e4
.long 0x60000000 # 0a5e8
.long 0x60000000 # 0a5ec
.long 0x60000000 # 0a5f0
.long 0x60000000 # 0a5f4
.long 0x60000000 # 0a5f8
.long 0x60000000 # 0a5fc
/***********************************************************
major_0x0a600
************************************************************
Xrefs:
bootstrap_cpu
***********************************************************/
major_0x0a600: /* < outside referer */
.long 0 # 0a600
.long 0 # 0a604
.long 0 # 0a608
.long 0 # 0a60c
major_0x0a600_0x10: /* < outside referer */
mtspr 0x3fb, r5 # 0a610
li r3, 0x00 # 0a614
b skeleton_key # 0a618
major_0x0a600_0x1c: /* < outside referer */
b major_0x0a600_0x1c # 0a61c
/***********************************************************
panic_wrapper_0x0a620
************************************************************
Xrefs:
rtas_call
***********************************************************/
panic_wrapper_0x0a620: /* < outside referer */
b panic # 0a620
/***********************************************************
major_0x0a624
***********************************************************/
.long 0x4800001c # 0a624
.long 0x60000000 # 0a628
.long 0x60000000 # 0a62c
.long 0x60000000 # 0a630
.long 0x60000000 # 0a634
.long 0x60000000 # 0a638
.long 0x60000000 # 0a63c
/***********************************************************
rtas_call
************************************************************
Only major that hits the RTAS globals.
RTAS requires some specific context stuff.
************************************************************
Xrefs:
"lisori_caller"
************************************************************
> r1 = kdp
> r6 = some kind of place
> r7 = some kind of flags
***********************************************************/
rtas_call: /* < outside referer */
lwz r8, 0x0908( r1) # kdp.rtas_proc # 0a640
cmpwi r8, 0x00 # 0a644
bne- rtas_is_available # 0a648
li r3, -0x01 # 0a64c
b skeleton_key # 0a650
rtas_is_available:
mr r8, r8 # 0a654
mr r9, r9 # 0a658
addi r8, r1, -0xb10 # kdp.rtas_lock # 0a65c
# r8 = lock
bl lock # 0a660
mr r8, r8 # 0a664
mr r9, r9 # 0a668
mtcrf 0x3f, r7 # 0a66c
lwz r9, 0x0658( r1) # kdp.system_context # 0a670
lwz r8, -0x000c( r1) # kdp.-0xc # 0a674
stw r7, 0x0000( r6) # 0a678
stw r8, 0x0004( r6) # 0a67c
bns- cr6, rtas_call_0x5c # 0a680
stw r17, 0x0024( r6) # 0a684
stw r20, 0x0028( r6) # 0a688
stw r21, 0x002c( r6) # 0a68c
stw r19, 0x0034( r6) # 0a690
stw r18, 0x003c( r6) # 0a694
lmw r14, 0x0038( r1) # kdp.0x38 # 0a698
rtas_call_0x5c:
mfxer r8 # 0a69c
stw r13, 0x00dc( r6) # 0a6a0
stw r8, 0x00d4( r6) # 0a6a4
stw r12, 0x00ec( r6) # 0a6a8
mfctr r8 # 0a6ac
stw r10, 0x00fc( r6) # 0a6b0
stw r8, 0x00f4( r6) # 0a6b4
ble- cr3, rtas_call_0x8c # 0a6b8
lwz r8, 0x00c4( r9) # 0a6bc
mfspr r12, 0/*mq*/ # 0a6c0
mtspr 0/*mq*/, r8 # 0a6c4
stw r12, 0x00c4( r6) # 0a6c8
rtas_call_0x8c:
lwz r8, 0x0004( r1) # kdp.0x4 # 0a6cc
stw r8, 0x010c( r6) # 0a6d0
stw r2, 0x0114( r6) # 0a6d4
stw r3, 0x011c( r6) # 0a6d8
stw r4, 0x0124( r6) # 0a6dc
lwz r8, 0x0018( r1) # kdp.0x18 # 0a6e0
stw r5, 0x012c( r6) # 0a6e4
stw r8, 0x0134( r6) # 0a6e8
andi. r8, r11, 0x2000 # 0a6ec
stw r14, 0x0174( r6) # 0a6f0
stw r15, 0x017c( r6) # 0a6f4
stw r16, 0x0184( r6) # 0a6f8
stw r17, 0x018c( r6) # 0a6fc
stw r18, 0x0194( r6) # 0a700
stw r19, 0x019c( r6) # 0a704
stw r20, 0x01a4( r6) # 0a708
stw r21, 0x01ac( r6) # 0a70c
stw r22, 0x01b4( r6) # 0a710
stw r23, 0x01bc( r6) # 0a714
stw r24, 0x01c4( r6) # 0a718
stw r25, 0x01cc( r6) # 0a71c
stw r26, 0x01d4( r6) # 0a720
stw r27, 0x01dc( r6) # 0a724
stw r28, 0x01e4( r6) # 0a728
stw r29, 0x01ec( r6) # 0a72c
stw r30, 0x01f4( r6) # 0a730
stw r31, 0x01fc( r6) # 0a734
bnel+ major_0x03da0_0x12c # 0a738
stw r11, 0x00a4( r6) # 0a73c
mr r27, r3 # 0a740
addi r29, r1, 800 # kdp.0x320 # 0a744
bl major_0x054b8 # 0a748
beql+ panic_wrapper_0x0a620 # 0a74c
rlwimi r3, r31, 0, 0, 19 # 0a750
lhz r8, 0x0004( r3) # 0a754
cmpwi r8, 0x00 # 0a758
beq- rtas_call_0x14c # 0a75c
slwi r8, r8, 2 # 0a760
lwzx r27, r8, r3 # 0a764
addi r29, r1, 800 # kdp.0x320 # 0a768
bl major_0x054b8 # 0a76c
beql+ panic_wrapper_0x0a620 # 0a770
lwzx r9, r8, r3 # 0a774
rlwimi r9, r31, 0, 0, 19 # 0a778
stwx r9, r8, r3 # 0a77c
li r9, 0x00 # 0a780
sth r9, 0x0004( r3) # 0a784
dcbf r8, r3 # 0a788
rtas_call_0x14c:
li r9, 0x04 # 0a78c
dcbf r9, r3 # 0a790
sync # 0a794
isync # 0a798
lwz r4, 0x090c( r1) # kdp.rtas_private_data # 0a79c
mfmsr r8 # 0a7a0
andi. r8, r8, 0x10cf # 0a7a4
mtmsr r8 # 0a7a8
isync # 0a7ac
mr r28, r3 # 0a7b0
lwz r9, 0x0908( r1) # kdp.rtas_proc # 0a7b4
bl rtas_make_actual_call # 0a7b8
mfspr r1, 272/*sprg0*/ # 0a7bc
lwz r6, -0x0014( r1) # kdp.-0x14 # 0a7c0
clrlwi r29, r28, 0x14 # 0a7c4
subfic r29, r29, 0x1000 # 0a7c8
lhz r27, 0x0f4a( r1) # kdp.u16_cpuinfo_dcache_block_size
rtas_call_0x190:
subf. r29, r27, r29 # 0a7d0
dcbf r29, r28 # 0a7d4
sync # 0a7d8
icbi r29, r28 # 0a7dc
bge+ rtas_call_0x190 # 0a7e0
sync # 0a7e4
isync # 0a7e8
lwz r8, 0x0000( r6) # 0a7ec
lwz r11, 0x00a4( r6) # 0a7f0
mr r7, r8 # 0a7f4
andi. r8, r11, 0x900 # 0a7f8
lwz r8, 0x0004( r6) # 0a7fc
lwz r13, 0x00dc( r6) # 0a800
stw r8, -0x000c( r1) # kdp.-0xc # 0a804
lwz r8, 0x00d4( r6) # 0a808
lwz r12, 0x00ec( r6) # 0a80c
mtxer r8 # 0a810
lwz r8, 0x00f4( r6) # 0a814
lwz r10, 0x00fc( r6) # 0a818
mtctr r8 # 0a81c
bnel+ major_0x03da0_0x80 # 0a820
lwz r8, 0x010c( r6) # 0a824
stw r8, 0x0004( r1) # kdp.0x4 # 0a828
lwz r2, 0x0114( r6) # 0a82c
lwz r3, 0x011c( r6) # 0a830
lwz r4, 0x0124( r6) # 0a834
lwz r8, 0x0134( r6) # 0a838
lwz r5, 0x012c( r6) # 0a83c
stw r8, 0x0018( r1) # kdp.0x18 # 0a840
lwz r14, 0x0174( r6) # 0a844
lwz r15, 0x017c( r6) # 0a848
lwz r16, 0x0184( r6) # 0a84c
lwz r17, 0x018c( r6) # 0a850
lwz r18, 0x0194( r6) # 0a854
lwz r19, 0x019c( r6) # 0a858
lwz r20, 0x01a4( r6) # 0a85c
lwz r21, 0x01ac( r6) # 0a860
lwz r22, 0x01b4( r6) # 0a864
lwz r23, 0x01bc( r6) # 0a868
lwz r24, 0x01c4( r6) # 0a86c
lwz r25, 0x01cc( r6) # 0a870
lwz r26, 0x01d4( r6) # 0a874
lwz r27, 0x01dc( r6) # 0a878
lwz r28, 0x01e4( r6) # 0a87c
lwz r29, 0x01ec( r6) # 0a880
lwz r30, 0x01f4( r6) # 0a884
lwz r31, 0x01fc( r6) # 0a888
sync # 0a88c
lwz r8, -0x0b10( r1) # kdp.rtas_lock # 0a890
cmpwi cr1, r8, 0x00 # 0a894
li r8, 0x00 # 0a898
bne+ cr1, rtas_call_0x268 # 0a89c
mflr r8 # 0a8a0
bl panic # 0a8a4
rtas_call_0x268:
stw r8, -0x0b10( r1) # kdp.rtas_lock # 0a8a8
li r3, 0x00 # 0a8ac
b skeleton_key # 0a8b0
rtas_make_actual_call:
mtctr r9 # 0a8b4
bctr # 0a8b8
/***********************************************************
major_0x0a8bc
***********************************************************/
.long 0x60000000 # 0a8bc
/***********************************************************
major_0x0a8c0
************************************************************
Xrefs:
"lisori_caller"
major_0x03940
bootstrap_cpu
major_0x09dfc
***********************************************************/
major_0x0a8c0: /* < outside referer */
stw r21, 0x01ac( r6) # 0a8c0
stw r22, 0x01b4( r6) # 0a8c4
stw r23, 0x01bc( r6) # 0a8c8
clrlwi r8, r3, 0x10 # 0a8cc
cmplwi r8, 0x02 # 0a8d0
bgt- major_0x0a8c0_0x4c # 0a8d4
lwz r8, 0x0f68( r1) # 0a8d8
andi. r8, r8, 0x01 # 0a8dc
beq- major_0x0a8c0_0x178 # 0a8e0
rlwinm. r9, r3, 0, 2, 2 # 0a8e4
bnel- major_0x0a8c0_0x1e4 # 0a8e8
srwi r8, r3, 30 # 0a8ec
cmpwi r8, 0x03 # 0a8f0
beq- major_0x0a8c0_0xd8 # 0a8f4
clrlwi r8, r3, 0x10 # 0a8f8
cmplwi r8, 0x01 # 0a8fc
beq- major_0x0a8c0_0x58 # 0a900
cmplwi r8, 0x02 # 0a904
beq- major_0x0a8c0_0xb8 # 0a908
major_0x0a8c0_0x4c:
lis r3, -0x01 # 0a90c
ori r3, r3, 0xfffe # 0a910
b major_0x0a8c0_0x1c4 # 0a914
major_0x0a8c0_0x58:
rlwinm. r9, r3, 0, 1, 1 # 0a918
bne- major_0x0a8c0_0x74 # 0a91c
rlwinm. r9, r3, 0, 0, 0 # 0a920
bne- major_0x0a8c0_0x98 # 0a924
rlwinm. r9, r3, 0, 3, 3 # 0a928
bl major_0x0a8c0_0x258 # 0a92c
b major_0x0a8c0_0x1c4 # 0a930
major_0x0a8c0_0x74:
bl major_0x0a8c0_0x258 # 0a934
rlwinm r22, r3, 0, 4, 5 # 0a938
srwi r22, r22, 12 # 0a93c
mfspr r21, 1008/*hid0*/ # 0a940
andc r21, r21, r22 # 0a944
sync # 0a948
mtspr 1008/*hid0*/, r21 # 0a94c
li r3, 0x00 # 0a950
b major_0x0a8c0_0x1c4 # 0a954
major_0x0a8c0_0x98:
rlwinm r22, r3, 0, 4, 5 # 0a958
srwi r22, r22, 12 # 0a95c
mfspr r21, 1008/*hid0*/ # 0a960
or r21, r21, r22 # 0a964
sync # 0a968
mtspr 1008/*hid0*/, r21 # 0a96c
li r3, 0x00 # 0a970
b major_0x0a8c0_0x1c4 # 0a974
major_0x0a8c0_0xb8:
rlwinm. r9, r3, 0, 1, 1 # 0a978
bne- major_0x0a8c0_0x180 # 0a97c
rlwinm. r9, r3, 0, 0, 0 # 0a980
bne- major_0x0a8c0_0xe8 # 0a984
rlwinm. r9, r3, 0, 3, 3 # 0a988
bne- major_0x0a8c0_0xe4 # 0a98c
rlwinm. r9, r3, 0, 2, 2 # 0a990
bne- major_0x0a8c0_0x1c4 # 0a994
major_0x0a8c0_0xd8:
lis r3, -0x01 # 0a998
ori r3, r3, 0xfffc # 0a99c
b major_0x0a8c0_0x1c4 # 0a9a0
major_0x0a8c0_0xe4:
bl major_0x0a8c0_0x180 # 0a9a4
major_0x0a8c0_0xe8:
mfspr r21, 1017/*l2cr*/ # 0a9a8
sync # 0a9ac
andis. r21, r21, 0x8000 # 0a9b0
bne- major_0x0a8c0_0x1c4 # 0a9b4
lwz r8, 0x0f54( r1) # 0a9b8
and. r8, r8, r8 # 0a9bc
beq- major_0x0a8c0_0x178 # 0a9c0
mfspr r21, 1008/*hid0*/ # 0a9c4
rlwinm r8, r21, 0, 12, 10 # 0a9c8
mtspr 1008/*hid0*/, r8 # 0a9cc
sync # 0a9d0
addi r8, r1, -0x4d0 # 0a9d4
lwz r8, 0x0050( r8) # 0a9d8
and. r8, r8, r8 # 0a9dc
beq- major_0x0a8c0_0x1c4 # 0a9e0
sync # 0a9e4
lis r9, 0x20 # 0a9e8
or r8, r8, r9 # 0a9ec
mtspr 1017/*l2cr*/, r8 # 0a9f0
sync # 0a9f4
major_0x0a8c0_0x138:
mfspr r8, 1017/*l2cr*/ # 0a9f8
sync # 0a9fc
andi. r9, r8, 0x01 # 0aa00
bne+ major_0x0a8c0_0x138 # 0aa04
lis r9, 0x20 # 0aa08
andc r8, r8, r9 # 0aa0c
mtspr 1017/*l2cr*/, r8 # 0aa10
sync # 0aa14
lis r9, -0x8000 # 0aa18
or r8, r8, r9 # 0aa1c
mtspr 1017/*l2cr*/, r8 # 0aa20
sync # 0aa24
mtspr 1008/*hid0*/, r21 # 0aa28
sync # 0aa2c
li r3, 0x00 # 0aa30
b major_0x0a8c0_0x1c4 # 0aa34
major_0x0a8c0_0x178:
li r3, -0x02 # 0aa38
b major_0x0a8c0_0x1c4 # 0aa3c
major_0x0a8c0_0x180:
mfspr r22, 1017/*l2cr*/ # 0aa40
sync # 0aa44
andis. r22, r22, 0x8000 # 0aa48
beq- major_0x0a8c0_0x1c4 # 0aa4c
bl major_0x0a8c0_0x258 # 0aa50
mfspr r22, 1017/*l2cr*/ # 0aa54
sync # 0aa58
clrlwi r22, r22, 0x01 # 0aa5c
mtspr 1017/*l2cr*/, r22 # 0aa60
sync # 0aa64
addi r8, r1, -0x4d0 # 0aa68
stw r22, 0x0050( r8) # 0aa6c
sync # 0aa70
rlwinm r22, r22, 0, 7, 3 # 0aa74
oris r22, r22, 0x10 # 0aa78
mtspr 1017/*l2cr*/, r22 # 0aa7c
sync # 0aa80
major_0x0a8c0_0x1c4:
ori r23, r23, 0xffff # 0aa84
oris r3, r3, 0xffff # 0aa88
and r3, r3, r23 # 0aa8c
major_0x0a8c0_0x1d0:
lwz r21, 0x01ac( r6) # 0aa90
lwz r22, 0x01b4( r6) # 0aa94
lwz r23, 0x01bc( r6) # 0aa98
sync # 0aa9c
b skeleton_key # 0aaa0
major_0x0a8c0_0x1e4:
clrlwi r8, r3, 0x10 # 0aaa4
cmplwi r8, 0x01 # 0aaa8
beq- major_0x0a8c0_0x204 # 0aaac
cmplwi r8, 0x02 # 0aab0
beq- major_0x0a8c0_0x218 # 0aab4
lis r3, -0x01 # 0aab8
ori r3, r3, 0xfffb # 0aabc
b major_0x0a8c0_0x1d0 # 0aac0
major_0x0a8c0_0x204:
mfspr r21, 1008/*hid0*/ # 0aac4
rlwinm. r21, r21, 12, 4, 5 # 0aac8
beq- major_0x0a8c0_0x24c # 0aacc
oris r23, r21, 0x8000 # 0aad0
blr # 0aad4
major_0x0a8c0_0x218:
lwz r8, 0x0f54( r1) # 0aad8
and. r8, r8, r8 # 0aadc
beq+ major_0x0a8c0_0x178 # 0aae0
mfspr r21, 1008/*hid0*/ # 0aae4
rlwinm r21, r21, 12, 4, 5 # 0aae8
mfspr r22, 1017/*l2cr*/ # 0aaec
rlwinm r22, r22, 5, 4, 4 # 0aaf0
andc r21, r21, r22 # 0aaf4
mfspr r22, 1017/*l2cr*/ # 0aaf8
andis. r22, r22, 0x8000 # 0aafc
beq- major_0x0a8c0_0x24c # 0ab00
or r23, r21, r22 # 0ab04
blr # 0ab08
major_0x0a8c0_0x24c:
lis r23, 0x4000 # 0ab0c
ori r23, r23, 0x00 # 0ab10
blr # 0ab14
major_0x0a8c0_0x258: /* < outside referer */
mfctr r8 # 0ab18
stw r25, 0x01cc( r6) # 0ab1c
stw r24, 0x01c4( r6) # 0ab20
stw r8, 0x00f4( r6) # 0ab24
lhz r25, 0x0f44( r1) # 0ab28
and. r25, r25, r25 # 0ab2c
cntlzw r8, r25 # 0ab30
beq- major_0x0a8c0_0x338 # 0ab34
subfic r9, r8, 0x1f # 0ab38
lwz r8, 0x0f34( r1) # 0ab3c
and. r8, r8, r8 # 0ab40
beq- major_0x0a8c0_0x338 # 0ab44
lwz r24, 0x0f68( r1) # 0ab48
mtcr r24 # 0ab4c
bso- cr6, major_0x0a8c0_0x350 # 0ab50
bne- cr7, major_0x0a8c0_0x2a4 # 0ab54
slwi r24, r8, 1 # 0ab58
add r8, r8, r24 # 0ab5c
srwi r8, r8, 1 # 0ab60
major_0x0a8c0_0x2a4:
srw r8, r8, r9 # 0ab64
mtctr r8 # 0ab68
lwz r8, 0x0630( r1) # 0ab6c
lwz r9, 0x0028( r8) # 0ab70
add r8, r8, r9 # 0ab74
major_0x0a8c0_0x2b8:
lwzux r9, r8, r25 # 0ab78
bdnz+ major_0x0a8c0_0x2b8 # 0ab7c
lwz r24, 0x0f68( r1) # 0ab80
andi. r24, r24, 0x01 # 0ab84
beq- major_0x0a8c0_0x338 # 0ab88
mfspr r24, 1017/*l2cr*/ # 0ab8c
andis. r24, r24, 0x8000 # 0ab90
beq- major_0x0a8c0_0x338 # 0ab94
lhz r25, 0x0f60( r1) # 0ab98
and. r25, r25, r25 # 0ab9c
cntlzw r8, r25 # 0aba0
beq- major_0x0a8c0_0x338 # 0aba4
subfic r9, r8, 0x1f # 0aba8
lwz r8, 0x0f54( r1) # 0abac
and. r8, r8, r8 # 0abb0
beq- major_0x0a8c0_0x338 # 0abb4
srw r8, r8, r9 # 0abb8
mtctr r8 # 0abbc
mfspr r24, 1017/*l2cr*/ # 0abc0
oris r24, r24, 0x40 # 0abc4
mtspr 1017/*l2cr*/, r24 # 0abc8
isync # 0abcc
lwz r8, 0x0630( r1) # 0abd0
lwz r9, 0x0028( r8) # 0abd4
add r8, r8, r9 # 0abd8
addis r8, r8, 0x19 # 0abdc
neg r25, r25 # 0abe0
major_0x0a8c0_0x324:
lwzux r9, r8, r25 # 0abe4
bdnz+ major_0x0a8c0_0x324 # 0abe8
rlwinm r24, r24, 0, 10, 8 # 0abec
mtspr 1017/*l2cr*/, r24 # 0abf0
isync # 0abf4
major_0x0a8c0_0x338:
lwz r8, 0x00f4( r6) # 0abf8
lwz r25, 0x01cc( r6) # 0abfc
lwz r24, 0x01c4( r6) # 0ac00
sync # 0ac04
mtctr r8 # 0ac08
blr # 0ac0c
major_0x0a8c0_0x350:
dssall # 0ac10
sync # 0ac14
mfspr r8, 0x3f6 # 0ac18
oris r8, r8, 0x80 # 0ac1c
mtspr 0x3f6, r8 # 0ac20
sync # 0ac24
major_0x0a8c0_0x368:
mfspr r8, 0x3f6 # 0ac28
sync # 0ac2c
andis. r8, r8, 0x80 # 0ac30
bne+ major_0x0a8c0_0x368 # 0ac34
mfspr r8, 1017/*l2cr*/ # 0ac38
ori r8, r8, 0x800 # 0ac3c
mtspr 1017/*l2cr*/, r8 # 0ac40
sync # 0ac44
major_0x0a8c0_0x388:
mfspr r8, 1017/*l2cr*/ # 0ac48
sync # 0ac4c
andi. r8, r8, 0x800 # 0ac50
bne+ major_0x0a8c0_0x388 # 0ac54
b major_0x0a8c0_0x338 # 0ac58
major_0x0a8c0_0x39c: /* < outside referer */
lwz r8, 0x0f68( r1) # 0ac5c
mtcr r8 # 0ac60
bnslr- cr6 # 0ac64
dssall # 0ac68
sync # 0ac6c
mfspr r8, 0x3f6 # 0ac70
oris r8, r8, 0x80 # 0ac74
mtspr 0x3f6, r8 # 0ac78
sync # 0ac7c
major_0x0a8c0_0x3c0:
mfspr r8, 0x3f6 # 0ac80
sync # 0ac84
andis. r8, r8, 0x80 # 0ac88
bne+ major_0x0a8c0_0x3c0 # 0ac8c
blr # 0ac90
/***********************************************************
major_0x0ac94
***********************************************************/
.long 0x4800000c # 0ac94
.long 0x60000000 # 0ac98
.long 0x60000000 # 0ac9c
/***********************************************************
syscall
************************************************************
Xrefs:
"lisori_caller"
sc_vector
************************************************************
> r1 = kdp
> r6 = save area
***********************************************************/
syscall: /* < outside referer */
# r6 = ewa
bl save_registers_from_r14 # 0aca0
# r8 = sprg0 (not used by me)
lwz r8, 0x0018( r8) # 0aca4
lwz r14, 0x064c( r1) # kdp.phys_kern_base # 0aca8
lwz r15, 0x0104( r6) # 0acac
stw r8, 0x0134( r6) # 0acb0
b syscall_0x230 # 0acb4
syscall_tbl:
.long (syscall_tbl-.) + (major_0x0b144-nk_start) # 0acb8
.long (syscall_tbl-.) + (major_0x0b248-nk_start) # 0acbc
.long (syscall_tbl-.) + (NKRegisterCpuPlugin-nk_start)
.long (syscall_tbl-.) + (nk_cpu_count-nk_start) # 0acc4
.long (syscall_tbl-.) + (major_0x0b3cc-nk_start) # 0acc8
.long (syscall_tbl-.) + (major_0x0b45c-nk_start) # 0accc
.long (syscall_tbl-.) + (major_0x0b4a4-nk_start) # 0acd0
.long (syscall_tbl-.) + (major_0x0e284-nk_start) # 0acd4
.long (syscall_tbl-.) + (major_0x0e548-nk_start) # 0acd8
.long (syscall_tbl-.) + (major_0x0e604-nk_start) # 0acdc
.long (syscall_tbl-.) + (major_0x0e76c-nk_start) # 0ace0
.long (syscall_tbl-.) + (major_0x0e850-nk_start) # 0ace4
.long (syscall_tbl-.) + (major_0x0e880-nk_start) # 0ace8
.long (syscall_tbl-.) + (nk_yield_with_hint-nk_start)
.long (syscall_tbl-.) + (major_0x0e894-nk_start) # 0acf0
.long (syscall_tbl-.) + (major_0x0c5e0-nk_start) # 0acf4
.long (syscall_tbl-.) + (major_0x0c680-nk_start) # 0acf8
.long (syscall_tbl-.) + (major_0x0c830-nk_start) # 0acfc
.long (syscall_tbl-.) + (major_0x0c968-nk_start) # 0ad00
.long (syscall_tbl-.) + (major_0x0cac0-nk_start) # 0ad04
.long (syscall_tbl-.) + (major_0x0cb00-nk_start) # 0ad08
.long (syscall_tbl-.) + (major_0x0cd9c-nk_start) # 0ad0c
.long (syscall_tbl-.) + (major_0x0ccbc-nk_start) # 0ad10
.long (syscall_tbl-.) + (major_0x0cb8c-nk_start) # 0ad14
.long (syscall_tbl-.) + (major_0x0cc80-nk_start) # 0ad18
.long (syscall_tbl-.) + (major_0x0ce48-nk_start) # 0ad1c
.long (syscall_tbl-.) + (major_0x0d158-nk_start) # 0ad20
.long (syscall_tbl-.) + (major_0x0ced4-nk_start) # 0ad24
.long (syscall_tbl-.) + (major_0x0d06c-nk_start) # 0ad28
.long (syscall_tbl-.) + (major_0x0d010-nk_start) # 0ad2c
.long (syscall_tbl-.) + (major_0x0d818-nk_start) # 0ad30
.long (syscall_tbl-.) + (major_0x0d8a0-nk_start) # 0ad34
.long (syscall_tbl-.) + (major_0x0d9a8-nk_start) # 0ad38
.long (syscall_tbl-.) + (major_0x0b640-nk_start) # 0ad3c
.long (syscall_tbl-.) + (major_0x0b720-nk_start) # 0ad40
.long (syscall_tbl-.) + (major_0x0b73c-nk_start) # 0ad44
.long (syscall_tbl-.) + (major_0x0b750-nk_start) # 0ad48
.long (syscall_tbl-.) + (nk_get_next_id_unowned-nk_start)
.long (syscall_tbl-.) + (major_0x0b8b8-nk_start) # 0ad50
.long (syscall_tbl-.) + (major_0x0c778-nk_start) # 0ad54
.long (syscall_tbl-.) + (major_0x0d70c-nk_start) # 0ad58
.long (syscall_tbl-.) + (major_0x0d798-nk_start) # 0ad5c
.long (syscall_tbl-.) + (major_0x0b960-nk_start) # 0ad60
.long (syscall_tbl-.) + (major_0x0ba80-nk_start) # 0ad64
.long (syscall_tbl-.) + (major_0x0bb20-nk_start) # 0ad68
.long (syscall_tbl-.) + (NKStopScheduling-nk_start)
.long (syscall_tbl-.) + (NKCpuPlugin-nk_start) # 0ad70
.long (syscall_tbl-.) + (major_0x0be10-nk_start) # 0ad74
.long (syscall_tbl-.) + (_bad_syscall-nk_start) # 0ad78
.long (syscall_tbl-.) + (major_0x0d204-nk_start) # 0ad7c
.long (syscall_tbl-.) + (major_0x0d278-nk_start) # 0ad80
.long (syscall_tbl-.) + (major_0x0d324-nk_start) # 0ad84
.long (syscall_tbl-.) + (major_0x0d504-nk_start) # 0ad88
.long (syscall_tbl-.) + (major_0x0d678-nk_start) # 0ad8c
.long (syscall_tbl-.) + (major_0x0d6b4-nk_start) # 0ad90
.long (syscall_tbl-.) + (major_0x0b664-nk_start) # 0ad94
.long (syscall_tbl-.) + (major_0x0e90c-nk_start) # 0ad98
.long (syscall_tbl-.) + (NKThrowException-nk_start)
.long (syscall_tbl-.) + (major_0x0ea58-nk_start) # 0ada0
.long (syscall_tbl-.) + (major_0x0ec54-nk_start) # 0ada4
.long (syscall_tbl-.) + (major_0x0ec8c-nk_start) # 0ada8
.long (syscall_tbl-.) + (major_0x0f050-nk_start) # 0adac
.long (syscall_tbl-.) + (major_0x0b90c-nk_start) # 0adb0
.long (syscall_tbl-.) + (major_0x0f288-nk_start) # 0adb4
.long (syscall_tbl-.) + (major_0x0da20-nk_start) # 0adb8
.long (syscall_tbl-.) + (major_0x0da8c-nk_start) # 0adbc
.long (syscall_tbl-.) + (major_0x0dc0c-nk_start) # 0adc0
.long (syscall_tbl-.) + (major_0x0dacc-nk_start) # 0adc4
.long (syscall_tbl-.) + (NKGetPageSizeClasses-nk_start)
.long (syscall_tbl-.) + (NKGetPageSize-nk_start) # 0adcc
.long (syscall_tbl-.) + (major_0x0f7b8-nk_start) # 0add0
.long (syscall_tbl-.) + (major_0x0f9f8-nk_start) # 0add4
.long (syscall_tbl-.) + (major_0x0fb34-nk_start) # 0add8
.long (syscall_tbl-.) + (major_0x10414-nk_start) # 0addc
.long (syscall_tbl-.) + (major_0x104ec-nk_start) # 0ade0
.long (syscall_tbl-.) + (major_0x1070c-nk_start) # 0ade4
.long (syscall_tbl-.) + (NKSetAreaAccess-nk_start) # 0ade8
.long (syscall_tbl-.) + (major_0x10e94-nk_start) # 0adec
.long (syscall_tbl-.) + (major_0x10ee0-nk_start) # 0adf0
.long (syscall_tbl-.) + (major_0x10ff0-nk_start) # 0adf4
.long (syscall_tbl-.) + (major_0x11040-nk_start) # 0adf8
.long (syscall_tbl-.) + (major_0x11104-nk_start) # 0adfc
.long (syscall_tbl-.) + (major_0x11360-nk_start) # 0ae00
.long (syscall_tbl-.) + (major_0x1139c-nk_start) # 0ae04
.long (syscall_tbl-.) + (major_0x11490-nk_start) # 0ae08
.long (syscall_tbl-.) + (NKMapPage-nk_start) # 0ae0c
.long (syscall_tbl-.) + (NKUnmapPages-nk_start) # 0ae10
.long (syscall_tbl-.) + (NKLockPages-nk_start) # 0ae14
.long (syscall_tbl-.) + (NKUnlockPages-nk_start) # 0ae18
.long (syscall_tbl-.) + (NKHoldPages-nk_start) # 0ae1c
.long (syscall_tbl-.) + (NKUnholdPages-nk_start) # 0ae20
.long (syscall_tbl-.) + (major_0x11ebc-nk_start) # 0ae24
.long (syscall_tbl-.) + (major_0x11fac-nk_start) # 0ae28
.long (syscall_tbl-.) + (major_0x120a8-nk_start) # 0ae2c
.long (syscall_tbl-.) + (major_0x12110-nk_start) # 0ae30
.long (syscall_tbl-.) + (major_0x12248-nk_start) # 0ae34
.long (syscall_tbl-.) + (NKxprintf-nk_start) # 0ae38
.long (syscall_tbl-.) + (major_0x0beac-nk_start) # 0ae3c
.long (syscall_tbl-.) + (major_0x111d4-nk_start) # 0ae40
.long (syscall_tbl-.) + (NKSetBlueProcessID-nk_start)
.long (syscall_tbl-.) + (NKGetFreePageCount-nk_start)
.long (syscall_tbl-.) + (NKGetUnheldFreePageCount-nk_start)
.long (syscall_tbl-.) + (major_0x16b90-nk_start) # 0ae50
.long (syscall_tbl-.) + (major_0x16bb4-nk_start) # 0ae54
.long (syscall_tbl-.) + (NKRegisterThermalHandler-nk_start)
.long (syscall_tbl-.) + (NKRegisterPMFHandler-nk_start)
.long (syscall_tbl-.) + (NKMarkPMFTask-nk_start) # 0ae60
.long (syscall_tbl-.) + (major_0x0bfc8-nk_start) # 0ae64
.long (syscall_tbl-.) + (major_0x0c070-nk_start) # 0ae68
.long (syscall_tbl-.) + (bad_syscall-nk_start) # 0ae6c
.long (syscall_tbl-.) + (bad_syscall-nk_start) # 0ae70
.long (syscall_tbl-.) + (bad_syscall-nk_start) # 0ae74
.long (syscall_tbl-.) + (bad_syscall-nk_start) # 0ae78
.long (syscall_tbl-.) + (bad_syscall-nk_start) # 0ae7c
.long (syscall_tbl-.) + (major_0x0f2b8-nk_start) # 0ae80
.long (syscall_tbl-.) + (major_0x0c3ac-nk_start) # 0ae84
.long (syscall_tbl-.) + (nk_get_next_id_owned-nk_start)
.long (syscall_tbl-.) + (NKCurrentAddressSpace-nk_start)
.long (syscall_tbl-.) + (NKHomeAddressSpace-nk_start)
.long (syscall_tbl-.) + (NKSetTaskAddressSpace-nk_start)
.long (syscall_tbl-.) + (major_0x0dd64-nk_start) # 0ae98
.long (syscall_tbl-.) + (NKRegisterExternalHandler-nk_start)
.long (syscall_tbl-.) + (NKPropogateExternalInterrupt-nk_start)
.long (syscall_tbl-.) + (major_0x10de0-nk_start) # 0aea4
.long (syscall_tbl-.) + (major_0x0bed8-nk_start) # 0aea8
.long (syscall_tbl-.) + (major_0x11098-nk_start) # 0aeac
.long (syscall_tbl-.) + (NKSetTaskType-nk_start) # 0aeb0
.long (syscall_tbl-.) + (NKMakePhysicallyContiguous-nk_start)
.long (syscall_tbl-.) + (major_0x0dc88-nk_start) # 0aeb8
.long (syscall_tbl-.) + (major_0x121d4-nk_start) # 0aebc
.long (syscall_tbl-.) + (major_0x108fc-nk_start) # 0aec0
.long (syscall_tbl-.) + (NKSetClockStep-nk_start) # 0aec4
.long (syscall_tbl-.) + (NKSetClockDriftCorrection-nk_start)
.long (syscall_tbl-.) + (major_0x0c52c-nk_start) # 0aecc
# Increment a counter. All but LS 10 bits ignored, giving 1024 entries.
# r16 = &perf_tbl
# r17 = offset into counter table
syscall_0x230:
lwz r16, 0x0ef4( r1) # kdp.0xef4 # 0aed0
rlwinm r17, r15, 2, 20, 29 # 0aed4
cmplwi r16, 0x00 # 0aed8
beq- syscall_skip_counter # 0aedc
lwzx r18, r16, r17 # 0aee0
addi r18, r18, 0x01 # 0aee4
stwx r18, r16, r17 # 0aee8
# r14 = offset of entry in jump table
# r16 = offset of jump table in kernel
# r15 = content of entry
# jump assumes kernel mapped at zero
syscall_skip_counter:
cmplwi r15, (syscall_0x230-syscall_tbl)/4 # 0aeec
rlwimi r14, r15, 2, 21, 29 # 0aef0
lis r16, syscall_tbl@h # 0aef4
ori r16, r16, syscall_tbl@l # 0aef8
lwzx r15, r16, r14 # 0aefc
add r15, r15, r14 # 0af00
mtlr r15 # 0af04
bltlr- # 0af08
/***********************************************************
bad_syscall
************************************************************
syscall 109
syscall 110
syscall 111
syscall 112
syscall 113
Handler for out-of-range or unimplemented (debug) syscalls.
************************************************************
Xrefs:
syscall
major_0x0af14
_bad_syscall
***********************************************************/
bad_syscall: /* < outside referer */
li r3, -0x04 # 0af0c
b syscall_return # 0af10
/***********************************************************
major_0x0af14
************************************************************
Xrefs:
major_0x1070c
***********************************************************/
major_0x0af14: /* < outside referer */
sync # 0af14
lwz r16, -0x0b50( r1) # 0af18
cmpwi cr1, r16, 0x00 # 0af1c
li r16, 0x00 # 0af20
bne+ cr1, major_0x0af14_0x1c # 0af24
mflr r16 # 0af28
bl panic # 0af2c
major_0x0af14_0x1c:
stw r16, -0x0b50( r1) # 0af30
b bad_syscall # 0af34
/***********************************************************
syscall_return_assert_lock_unheld
************************************************************
Xrefs:
NKRegisterCpuPlugin
major_0x0b3cc
major_0x0b45c
major_0x0b664
major_0x0b960
major_0x0ba80
major_0x0bb20
NKStopScheduling
NKRegisterThermalHandler
NKRegisterPMFHandler
NKMarkPMFTask
NKSetClockStep
NKSetClockDriftCorrection
major_0x0c3ac
NKRegisterExternalHandler
major_0x0c52c
major_0x0c5e0
major_0x0c680
major_0x0c778
major_0x0c830
major_0x0c968
major_0x0cac0
major_0x0cb00
major_0x0cb8c
major_0x0cc80
major_0x0cd9c
major_0x0ce48
major_0x0ced4
major_0x0d010
major_0x0d06c
major_0x0d158
major_0x0d204
major_0x0d278
major_0x0d324
major_0x0d504
major_0x0d678
major_0x0d6b4
major_0x0d70c
major_0x0d818
major_0x0d8a0
major_0x0d9a8
major_0x0da20
major_0x0da8c
major_0x0dc0c
major_0x0dc88
major_0x0dd64
major_0x0e284
major_0x0e548
major_0x0e76c
major_0x0e894
major_0x0e90c
major_0x0ea58
major_0x0ec54
major_0x0ec8c
major_0x0f050
major_0x0f288
major_0x0f2b8
NKSetTaskType
major_0x0f9f8
NKSetTaskAddressSpace
major_0x104ec
major_0x1070c
major_0x108fc
NKSetAreaAccess
major_0x10de0
major_0x10e94
major_0x10ee0
major_0x11040
major_0x11098
major_0x11104
major_0x111d4
major_0x11360
NKMapPage
NKUnmapPages
NKMakePhysicallyContiguous
NKLockPages
NKUnlockPages
NKHoldPages
NKUnholdPages
major_0x11ebc
major_0x11fac
major_0x120a8
major_0x12110
major_0x121d4
major_0x12248
************************************************************
> r1 = kdp
***********************************************************/
syscall_return_assert_lock_unheld: /* < outside referer */
sync # 0af38
lwz r16, -0x0b50( r1) # kdp.sch_lock # 0af3c
cmpwi cr1, r16, 0x00 # 0af40
li r16, 0x00 # 0af44
bne+ cr1, syscall_return_assert_lock_unheld_0x1c # 0af48
mflr r16 # 0af4c
bl panic # 0af50
syscall_return_assert_lock_unheld_0x1c:
stw r16, -0x0b50( r1) # kdp.sch_lock # 0af54
/***********************************************************
syscall_return_noErr
************************************************************
Xrefs:
syscall_return_assert_lock_unheld
major_0x0b144
major_0x0b4a4
major_0x0b664
major_0x0b720
major_0x0b73c
major_0x0b750
nk_get_next_id_unowned
nk_get_next_id_owned
major_0x0b8b8
major_0x0b90c
major_0x0bccc
major_0x0be10
NKxprintf
NKSetBlueProcessID
major_0x0bfc8
major_0x0c070
NKSetClockDriftCorrection
major_0x0d798
major_0x10ff0
major_0x1139c
major_0x16b90
***********************************************************/
syscall_return_noErr: /* < outside referer */
li r3, 0x00 # 0af58
b syscall_return # 0af5c
/***********************************************************
major_0x0af60
************************************************************
Xrefs:
NKRegisterCpuPlugin
major_0x0b3cc
major_0x0b45c
major_0x0b4a4
major_0x0b720
major_0x0b960
major_0x0ba80
major_0x0bb20
NKStopScheduling
major_0x0c3ac
major_0x0c5e0
major_0x0c778
major_0x0c830
major_0x0c968
major_0x0cac0
major_0x0cb00
major_0x0cb8c
major_0x0cc80
major_0x0ce48
major_0x0ced4
major_0x0d010
major_0x0d06c
major_0x0d204
major_0x0d504
major_0x0d678
major_0x0d70c
major_0x0d8a0
major_0x0da20
major_0x0e284
major_0x0e548
major_0x0e604
major_0x0e76c
NKThrowException
major_0x0ea58
major_0x0ec8c
major_0x0f050
major_0x0f2b8
major_0x0f7b8
major_0x0f9f8
NKSetTaskAddressSpace
major_0x0fb34
major_0x10414
major_0x104ec
major_0x1070c
major_0x108fc
major_0x1139c
NKMapPage
NKUnmapPages
NKMakePhysicallyContiguous
NKLockPages
NKHoldPages
major_0x11ebc
major_0x11fac
major_0x12110
major_0x12248
***********************************************************/
major_0x0af60: /* < outside referer */
sync # 0af60
lwz r16, -0x0b50( r1) # 0af64
cmpwi cr1, r16, 0x00 # 0af68
li r16, 0x00 # 0af6c
bne+ cr1, major_0x0af60_0x1c # 0af70
mflr r16 # 0af74
bl panic # 0af78
major_0x0af60_0x1c:
stw r16, -0x0b50( r1) # 0af7c
major_0x0af60_0x20: /* < outside referer */
mfspr r16, 287/*pvr*/ # 0af80
rlwinm. r16, r16, 0, 0, 14 # 0af84
beq- major_0x0af60_0x34 # 0af88
mftb r4, 0x10c # 0af8c
b major_0x0af60_0x38 # 0af90
major_0x0af60_0x34:
mfspr r4, 5/*rtcl*/ # 0af94
major_0x0af60_0x38:
xori r16, r4, 0x1007 # 0af98
xoris r16, r16, 0x1950 # 0af9c
stw r16, -0x096c( r1) # 0afa0
li r3, -0x726e # 0afa4
b syscall_return # 0afa8
.long 0x38608d91 # 0afac
.long 0x48000174 # 0afb0
major_0x0af60_0x54: /* < outside referer */
sync # 0afb4
lwz r16, -0x0b50( r1) # 0afb8
cmpwi cr1, r16, 0x00 # 0afbc
li r16, 0x00 # 0afc0
bne+ cr1, major_0x0af60_0x70 # 0afc4
mflr r16 # 0afc8
bl panic # 0afcc
major_0x0af60_0x70:
stw r16, -0x0b50( r1) # 0afd0
li r3, -0x7270 # 0afd4
b syscall_return # 0afd8
major_0x0af60_0x7c: /* < outside referer */
sync # 0afdc
lwz r16, -0x0b50( r1) # 0afe0
cmpwi cr1, r16, 0x00 # 0afe4
li r16, 0x00 # 0afe8
bne+ cr1, major_0x0af60_0x98 # 0afec
mflr r16 # 0aff0
bl panic # 0aff4
major_0x0af60_0x98:
stw r16, -0x0b50( r1) # 0aff8
li r3, -0x7271 # 0affc
b syscall_return # 0b000
major_0x0af60_0xa4: /* < outside referer */
sync # 0b004
lwz r16, -0x0b50( r1) # 0b008
cmpwi cr1, r16, 0x00 # 0b00c
li r16, 0x00 # 0b010
bne+ cr1, major_0x0af60_0xc0 # 0b014
mflr r16 # 0b018
bl panic # 0b01c
major_0x0af60_0xc0:
stw r16, -0x0b50( r1) # 0b020
/***********************************************************
syscall_return_kMPInsufficientResourcesErr
************************************************************
Xrefs:
major_0x0af60
major_0x0b144
NKRegisterCpuPlugin
major_0x0be10
NKxprintf
NKSetBlueProcessID
NKSetClockStep
NKSetClockDriftCorrection
major_0x0c778
major_0x0cb00
major_0x0e284
major_0x11360
NKPropogateExternalInterrupt
major_0x16b80
***********************************************************/
syscall_return_kMPInsufficientResourcesErr: /* < outside referer */
li r3, -0x7272 # 0b024
b syscall_return # 0b028
/***********************************************************
major_0x0b02c
************************************************************
Xrefs:
major_0x0c968
major_0x0cb8c
major_0x0ced4
major_0x0d504
***********************************************************/
major_0x0b02c: /* < outside referer */
sync # 0b02c
lwz r16, -0x0b50( r1) # 0b030
cmpwi cr1, r16, 0x00 # 0b034
li r16, 0x00 # 0b038
bne+ cr1, major_0x0b02c_0x1c # 0b03c
mflr r16 # 0b040
bl panic # 0b044
major_0x0b02c_0x1c:
stw r16, -0x0b50( r1) # 0b048
/***********************************************************
syscall_return_wtf
************************************************************
Xrefs:
major_0x0b02c
major_0x0b640
***********************************************************/
syscall_return_wtf: /* < outside referer */
li r3, -0x726d # 0b04c
b syscall_return # 0b050
/***********************************************************
major_0x0b054
************************************************************
Xrefs:
major_0x0dc88
major_0x0dd64
major_0x10414
major_0x1070c
major_0x108fc
NKSetAreaAccess
major_0x10de0
major_0x10ee0
major_0x11040
major_0x11098
major_0x11104
major_0x111d4
NKMapPage
NKUnmapPages
NKMakePhysicallyContiguous
NKLockPages
NKUnlockPages
NKHoldPages
NKUnholdPages
major_0x11ebc
major_0x11fac
major_0x120a8
major_0x12110
major_0x121d4
***********************************************************/
major_0x0b054: /* < outside referer */
sync # 0b054
lwz r16, -0x0b50( r1) # 0b058
cmpwi cr1, r16, 0x00 # 0b05c
li r16, 0x00 # 0b060
bne+ cr1, major_0x0b054_0x1c # 0b064
mflr r16 # 0b068
bl panic # 0b06c
major_0x0b054_0x1c:
stw r16, -0x0b50( r1) # 0b070
/***********************************************************
syscall_return_paramErr
************************************************************
Xrefs:
major_0x0b054
nk_get_next_id_owned
major_0x0bfc8
major_0x0c070
NKSetClockStep
NKGetPageSize
major_0x12248
NKPropogateExternalInterrupt
major_0x16b80
***********************************************************/
syscall_return_paramErr: /* < outside referer */
li r3, -0x32 # 0b074
b syscall_return # 0b078
/***********************************************************
major_0x0b07c
************************************************************
Xrefs:
NKRegisterCpuPlugin
major_0x0b3cc
major_0x0b45c
major_0x0b4a4
major_0x0ba80
major_0x0bb20
NKStopScheduling
NKRegisterThermalHandler
NKRegisterPMFHandler
NKMarkPMFTask
major_0x0c3ac
NKRegisterExternalHandler
major_0x0c680
major_0x0c778
major_0x0c830
major_0x0c968
major_0x0cac0
major_0x0cb8c
major_0x0cc80
major_0x0ccbc
major_0x0cd9c
major_0x0ced4
major_0x0d010
major_0x0d06c
major_0x0d158
major_0x0d278
major_0x0d324
major_0x0d504
major_0x0d678
major_0x0d6b4
major_0x0d798
major_0x0d818
major_0x0d8a0
major_0x0d9a8
major_0x0da8c
major_0x0dacc
major_0x0dc0c
major_0x0dc88
major_0x0e284
major_0x0e548
major_0x0e604
major_0x0e76c
major_0x0e894
major_0x0e90c
NKThrowException
major_0x0ea58
major_0x0ec54
major_0x0ec8c
major_0x0f050
major_0x0f288
major_0x0f2b8
NKSetTaskType
major_0x0f9f8
NKSetTaskAddressSpace
major_0x0fb34
major_0x10414
major_0x104ec
major_0x1070c
major_0x108fc
NKSetAreaAccess
major_0x10de0
major_0x10e94
major_0x10ee0
major_0x11040
major_0x11098
major_0x11104
major_0x111d4
major_0x11360
NKMapPage
NKUnmapPages
NKMakePhysicallyContiguous
NKLockPages
NKUnlockPages
NKHoldPages
NKUnholdPages
major_0x11ebc
major_0x11fac
major_0x120a8
major_0x12110
major_0x121d4
***********************************************************/
major_0x0b07c: /* < outside referer */
sync # 0b07c
lwz r16, -0x0b50( r1) # 0b080
cmpwi cr1, r16, 0x00 # 0b084
li r16, 0x00 # 0b088
bne+ cr1, major_0x0b07c_0x1c # 0b08c
mflr r16 # 0b090
bl panic # 0b094
major_0x0b07c_0x1c:
stw r16, -0x0b50( r1) # 0b098
li r3, -0x725c # 0b09c
b syscall_return # 0b0a0
major_0x0b07c_0x28: /* < outside referer */
sync # 0b0a4
lwz r16, -0x0b50( r1) # 0b0a8
cmpwi cr1, r16, 0x00 # 0b0ac
li r16, 0x00 # 0b0b0
bne+ cr1, major_0x0b07c_0x44 # 0b0b4
mflr r16 # 0b0b8
bl panic # 0b0bc
major_0x0b07c_0x44:
stw r16, -0x0b50( r1) # 0b0c0
/***********************************************************
syscall_return_kMPInvalidIDErr
************************************************************
Xrefs:
major_0x0b07c
NKRegisterCpuPlugin
major_0x0b73c
major_0x0b750
nk_get_next_id_unowned
nk_get_next_id_owned
major_0x0b8b8
major_0x0b90c
major_0x0b960
NKSetBlueProcessID
major_0x0e894
major_0x10ff0
***********************************************************/
syscall_return_kMPInvalidIDErr: /* < outside referer */
li r3, -0x7273 # 0b0c4
b syscall_return # 0b0c8
/***********************************************************
major_0x0b0cc
************************************************************
Xrefs:
NKLockPages
NKUnlockPages
NKHoldPages
NKUnholdPages
***********************************************************/
major_0x0b0cc: /* < outside referer */
sync # 0b0cc
lwz r16, -0x0b50( r1) # 0b0d0
cmpwi cr1, r16, 0x00 # 0b0d4
li r16, 0x00 # 0b0d8
bne+ cr1, major_0x0b0cc_0x1c # 0b0dc
mflr r16 # 0b0e0
bl panic # 0b0e4
major_0x0b0cc_0x1c:
stw r16, -0x0b50( r1) # 0b0e8
li r3, -0x725a # 0b0ec
b syscall_return # 0b0f0
/***********************************************************
syscall_return_noErr_again
************************************************************
Xrefs:
major_0x0b248
***********************************************************/
syscall_return_noErr_again: /* < outside referer */
li r3, 0x00 # 0b0f4
b syscall_return # 0b0f8
/***********************************************************
major_0x0b0fc
************************************************************
Xrefs:
major_0x02964
major_0x02ccc
major_0x0b664
major_0x0c968
major_0x0cb8c
major_0x0ccbc
major_0x0ced4
major_0x0d504
major_0x0dacc
major_0x0e604
NKThrowException
major_0x0ea58
major_0x0ec8c
major_0x0f050
NKSetTaskAddressSpace
major_0x11104
major_0x111d4
***********************************************************/
major_0x0b0fc: /* < outside referer */
crclr 4*cr2 + eq # 0b0fc
b syscall_return_0x4 # 0b100
major_0x0b0fc_0x8: /* < outside referer */
sync # 0b104
lwz r16, -0x0b50( r1) # 0b108
cmpwi cr1, r16, 0x00 # 0b10c
li r16, 0x00 # 0b110
bne+ cr1, major_0x0b0fc_0x24 # 0b114
mflr r16 # 0b118
bl panic # 0b11c
major_0x0b0fc_0x24:
stw r16, -0x0b50( r1) # 0b120
/***********************************************************
syscall_return
************************************************************
Xrefs:
bad_syscall
syscall_return_noErr
major_0x0af60
syscall_return_kMPInsufficientResourcesErr
syscall_return_wtf
syscall_return_paramErr
major_0x0b07c
syscall_return_kMPInvalidIDErr
major_0x0b0cc
syscall_return_noErr_again
major_0x0b0fc
nk_cpu_count
major_0x0b4a4
nk_yield_with_hint
NKCpuPlugin
major_0x0beac
major_0x0bed8
major_0x0e850
major_0x0e880
NKGetPageSizeClasses
NKGetPageSize
major_0x0f7b8
NKCurrentAddressSpace
NKHomeAddressSpace
major_0x0fb34
major_0x10414
major_0x11490
NKGetFreePageCount
NKGetUnheldFreePageCount
major_0x16b80
***********************************************************/
syscall_return: /* < outside referer */
crset 4*cr2 + eq # 0b124
syscall_return_0x4: /* < outside referer */
mfspr r8, 272/*sprg0*/ # 0b128
lwz r9, 0x0134( r6) # 0b12c
stw r9, 0x0018( r8) # 0b130
bne- cr2, syscall_return_0x1c # 0b134
# r6 = ewa
bl restore_registers_from_r14 # 0b138
b skeleton_key # 0b13c
syscall_return_0x1c:
b major_0x142dc # 0b140
/***********************************************************
major_0x0b144
************************************************************
syscall 0
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0b144: /* < outside referer */
andi. r16, r3, 0xfff # 0b144
mr r30, r7 # 0b148
mr r29, r6 # 0b14c
bne+ syscall_return_kMPInsufficientResourcesErr # 0b150
rlwinm. r4, r3, 20, 12, 31 # 0b154
lwz r9, 0x06a8( r1) # 0b158
beq+ syscall_return_kMPInsufficientResourcesErr # 0b15c
cmplw r4, r9 # 0b160
bge+ syscall_return_kMPInsufficientResourcesErr # 0b164
mr r17, r8 # 0b168
mr r18, r9 # 0b16c
addi r8, r1, -0xb90 # 0b170
# r8 = lock
bl lock # 0b174
mr r8, r17 # 0b178
mr r9, r18 # 0b17c
bl major_0x08794_0x1268 # 0b180
bge- cr4, major_0x0b144_0xd8 # 0b184
bgt- cr5, major_0x0b144_0xd8 # 0b188
bns- cr7, major_0x0b144_0xd8 # 0b18c
bgt- cr7, major_0x0b144_0xd8 # 0b190
bltl+ cr5, major_0x08794_0x134c # 0b194
bgel+ cr5, major_0x08794_0x13e0 # 0b198
ori r16, r16, 0x404 # 0b19c
li r31, 0x03 # 0b1a0
rlwimi r9, r31, 0, 30, 31 # 0b1a4
bl major_0x08794_0x1394 # 0b1a8
mr r7, r30 # 0b1ac
mr r6, r29 # 0b1b0
sync # 0b1b4
lwz r16, -0x0b90( r1) # 0b1b8
cmpwi cr1, r16, 0x00 # 0b1bc
li r16, 0x00 # 0b1c0
bne+ cr1, major_0x0b144_0x8c # 0b1c4
mflr r16 # 0b1c8
bl panic # 0b1cc
major_0x0b144_0x8c:
stw r16, -0x0b90( r1) # 0b1d0
mr r16, r8 # 0b1d4
mr r17, r9 # 0b1d8
addi r8, r1, -0xad0 # 0b1dc
# r8 = lock
bl lock # 0b1e0
mr r8, r16 # 0b1e4
mr r9, r17 # 0b1e8
rlwinm r8, r9, 0, 0, 19 # 0b1ec
mr r9, r3 # 0b1f0
# r1 = kdp
# r8 = anywhere in new page (phys)
# r9 = page_virt
bl poolextend # 0b1f4
sync # 0b1f8
lwz r16, -0x0ad0( r1) # 0b1fc
cmpwi cr1, r16, 0x00 # 0b200
li r16, 0x00 # 0b204
bne+ cr1, major_0x0b144_0xd0 # 0b208
mflr r16 # 0b20c
bl panic # 0b210
major_0x0b144_0xd0:
stw r16, -0x0ad0( r1) # 0b214
b syscall_return_noErr # 0b218
major_0x0b144_0xd8:
mr r7, r30 # 0b21c
mr r6, r29 # 0b220
sync # 0b224
lwz r16, -0x0b90( r1) # 0b228
cmpwi cr1, r16, 0x00 # 0b22c
li r16, 0x00 # 0b230
bne+ cr1, major_0x0b144_0xfc # 0b234
mflr r16 # 0b238
bl panic # 0b23c
major_0x0b144_0xfc:
stw r16, -0x0b90( r1) # 0b240
b syscall_return_kMPInsufficientResourcesErr # 0b244
/***********************************************************
major_0x0b248
************************************************************
syscall 1
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0b248: /* < outside referer */
b syscall_return_noErr_again # 0b248
/***********************************************************
NKRegisterCpuPlugin
************************************************************
syscall 2
************************************************************
Xrefs:
syscall
***********************************************************/
NKRegisterCpuPlugin: /* < outside referer */
mfspr r14, 272/*sprg0*/ # 0b24c
lwz r15, -0x0008(r14) # 0b250
lwz r16, 0x0134( r6) # 0b254
andi. r8, r4, 0xfff # 0b258
bne+ syscall_return_kMPInsufficientResourcesErr # 0b25c
andi. r8, r5, 0xfff # 0b260
cmpwi cr1, r5, 0x00 # 0b264
bne+ syscall_return_kMPInsufficientResourcesErr # 0b268
beq+ cr1, syscall_return_kMPInsufficientResourcesErr
mr r18, r8 # 0b270
mr r19, r9 # 0b274
addi r8, r1, -0xb50 # 0b278
# r8 = lock
bl lock # 0b27c
mr r8, r18 # 0b280
mr r9, r19 # 0b284
mr. r8, r3 # 0b288
bne- NKRegisterCpuPlugin_0x50 # 0b28c
mfspr r15, 272/*sprg0*/ # 0b290
lwz r14, -0x0338(r15) # 0b294
b NKRegisterCpuPlugin_0x60 # 0b298
NKRegisterCpuPlugin_0x50:
# r8 = id
bl id_kind # 0b29c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0a # 0b2a0
mr r14, r8 # 0b2a4
bne+ syscall_return_kMPInvalidIDErr # 0b2a8
NKRegisterCpuPlugin_0x60:
cmpwi r16, 0x00 # 0b2ac
bne- NKRegisterCpuPlugin_0x74 # 0b2b0
stw r16, 0x0038(r14) # 0b2b4
stw r16, 0x0034(r14) # 0b2b8
b major_0x0b07c_0x28 # 0b2bc
NKRegisterCpuPlugin_0x74:
add r17, r4, r5 # 0b2c0
cmplw r16, r4 # 0b2c4
cmplw cr1, r16, r17 # 0b2c8
blt+ major_0x0af60_0xa4 # 0b2cc
bge+ cr1, major_0x0af60_0xa4 # 0b2d0
lwz r19, 0x0038(r14) # 0b2d4
mr. r19, r19 # 0b2d8
bne+ major_0x0b07c_0x28 # 0b2dc
mr r27, r4 # 0b2e0
addi r29, r1, 800 # 0b2e4
bl major_0x054b8 # 0b2e8
beq+ major_0x0af60_0xa4 # 0b2ec
rlwinm r18, r31, 0, 0, 19 # 0b2f0
mr r27, r16 # 0b2f4
mr r19, r16 # 0b2f8
addi r29, r1, 800 # 0b2fc
bl major_0x054b8 # 0b300
beq+ major_0x0af60_0xa4 # 0b304
rlwimi r19, r31, 0, 0, 19 # 0b308
stw r4, 0x0028(r14) # 0b30c
stw r18, 0x002c(r14) # 0b310
stw r5, 0x0030(r14) # 0b314
stw r16, 0x0034(r14) # 0b318
stw r19, 0x0038(r14) # 0b31c
lwz r27, 0x0000(r19) # 0b320
addi r29, r1, 800 # 0b324
bl major_0x054b8 # 0b328
beq+ major_0x0af60_0xa4 # 0b32c
rlwimi r27, r31, 0, 0, 19 # 0b330
stw r27, 0x0040(r14) # 0b334
mfspr r16, 272/*sprg0*/ # 0b338
lwz r17, -0x001c(r16) # 0b33c
stw r17, 0x004c(r14) # 0b340
addi r16, r19, 0x20 # 0b344
stw r16, 0x003c(r14) # 0b348
addi r16, r16, -0x04 # 0b34c
lwz r17, 0x001c(r19) # 0b350
cmplwi r17, 0x40 # 0b354
stw r17, 0x0044(r14) # 0b358
bgt+ major_0x0af60_0xa4 # 0b35c
NKRegisterCpuPlugin_0x114:
lwzu r27, 0x0004(r16) # 0b360
addi r29, r1, 800 # 0b364
bl major_0x054b8 # 0b368
beq+ major_0x0af60_0xa4 # 0b36c
addi r17, r17, -0x01 # 0b370
rlwimi r27, r31, 0, 0, 19 # 0b374
cmpwi r17, 0x00 # 0b378
stw r27, 0x0000(r16) # 0b37c
bgt+ NKRegisterCpuPlugin_0x114 # 0b380
bl 1f # 0b384
.ascii "CPU plugin registered^n" # 0b388
.short 0 # 0b39f
.align 2 # 0b3a1
1: mflr r8 # 0b3a4
bl print_string # 0b3a8
# r1 = kdp
b syscall_return_assert_lock_unheld # 0b3ac
/***********************************************************
nk_cpu_count
************************************************************
syscall 3
Called by MPProcessors and MPProcessorsScheduled
************************************************************
Xrefs:
syscall
************************************************************
> r3 = 0:all, 1:scheduled
< r3 = cpu_count
***********************************************************/
nk_cpu_count: /* < outside referer */
mfspr r15, 272/*sprg0*/ # 0b3b0
lwz r14, -0x0338(r15) # 0b3b4
mr. r8, r3 # 0b3b8
lwz r3, 0x0020(r14) # 0b3bc
beq+ syscall_return # 0b3c0
lwz r3, 0x0024(r14) # 0b3c4
b syscall_return # 0b3c8
/***********************************************************
major_0x0b3cc
************************************************************
syscall 4
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0b3cc: /* < outside referer */
mr r16, r8 # 0b3cc
mr r17, r9 # 0b3d0
addi r8, r1, -0xb50 # 0b3d4
# r8 = lock
bl lock # 0b3d8
mr r8, r16 # 0b3dc
mr r9, r17 # 0b3e0
mr. r8, r3 # 0b3e4
bne- major_0x0b3cc_0x28 # 0b3e8
lwz r3, -0x0424( r1) # 0b3ec
mr r8, r3 # 0b3f0
major_0x0b3cc_0x28:
# r8 = id
bl id_kind # 0b3f4
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x08 # 0b3f8
mr r30, r8 # 0b3fc
bne+ major_0x0b07c_0x28 # 0b400
li r8, 0x20 # 0b404
# r1 = kdp
bl boring # 0b408
mr. r31, r8 # 0b40c
beq+ major_0x0af60 # 0b410
li r9, 0x01 # 0b414
bl major_0x151b0 # 0b418
cmpwi r8, 0x00 # 0b41c
bne- major_0x0b3cc_0x64 # 0b420
mr r8, r31 # 0b424
bl looks_like_poolextend # 0b428
b major_0x0af60 # 0b42c
major_0x0b3cc_0x64:
stw r8, 0x0000(r31) # 0b430
lis r16, 0x5052 # 0b434
ori r16, r16, 0x4f43 # 0b438
stw r16, 0x0004(r31) # 0b43c
stw r3, 0x000c(r31) # 0b440
stw r30, 0x0014(r31) # 0b444
lwz r17, 0x0018(r31) # 0b448
addi r17, r17, 0x01 # 0b44c
stw r17, 0x0018(r31) # 0b450
mr r5, r8 # 0b454
# r1 = kdp
b syscall_return_assert_lock_unheld # 0b458
/***********************************************************
major_0x0b45c
************************************************************
syscall 5
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0b45c: /* < outside referer */
mr r16, r8 # 0b45c
mr r17, r9 # 0b460
addi r8, r1, -0xb50 # 0b464
# r8 = lock
bl lock # 0b468
mr r8, r16 # 0b46c
mr r9, r17 # 0b470
mr r8, r3 # 0b474
# r8 = id
bl id_kind # 0b478
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x01 # 0b47c
bne+ major_0x0b07c_0x28 # 0b480
mr r31, r8 # 0b484
lwz r16, 0x0008(r31) # 0b488
rlwinm. r17, r16, 0, 30, 30 # 0b48c
bne+ major_0x0af60_0xa4 # 0b490
ori r16, r16, 0x02 # 0b494
stw r16, 0x0008(r31) # 0b498
mr r8, r3 # 0b49c
# r1 = kdp
b syscall_return_assert_lock_unheld # 0b4a0
/***********************************************************
major_0x0b4a4
************************************************************
syscall 6
************************************************************
Xrefs:
syscall
NKStopScheduling
major_0x0e604
NKThrowException
***********************************************************/
major_0x0b4a4: /* < outside referer */
mr r16, r8 # 0b4a4
mr r17, r9 # 0b4a8
addi r8, r1, -0xb50 # 0b4ac
# r8 = lock
bl lock # 0b4b0
mr r8, r16 # 0b4b4
mr r9, r17 # 0b4b8
mr r8, r3 # 0b4bc
# r8 = id
bl id_kind # 0b4c0
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x01 # 0b4c4
bne+ major_0x0b07c_0x28 # 0b4c8
mr r31, r8 # 0b4cc
lwz r16, 0x0008(r31) # 0b4d0
lwz r17, 0x0010(r31) # 0b4d4
rlwinm. r8, r16, 0, 30, 30 # 0b4d8
cmpwi cr1, r17, 0x00 # 0b4dc
beq+ major_0x0af60_0xa4 # 0b4e0
bne+ cr1, major_0x0af60_0xa4 # 0b4e4
mr r8, r3 # 0b4e8
bl major_0x15300 # 0b4ec
sync # 0b4f0
lwz r16, -0x0b50( r1) # 0b4f4
cmpwi cr1, r16, 0x00 # 0b4f8
li r16, 0x00 # 0b4fc
bne+ cr1, major_0x0b4a4_0x68 # 0b500
mflr r16 # 0b504
bl panic # 0b508
major_0x0b4a4_0x68:
stw r16, -0x0b50( r1) # 0b50c
mr r8, r31 # 0b510
bl looks_like_poolextend # 0b514
b syscall_return_noErr # 0b518
major_0x0b4a4_0x78: /* < outside referer */
mr r16, r8 # 0b51c
mr r17, r9 # 0b520
addi r8, r1, -0xb50 # 0b524
# r8 = lock
bl lock # 0b528
mr r8, r16 # 0b52c
mr r9, r17 # 0b530
mfspr r16, 272/*sprg0*/ # 0b534
rlwinm. r8, r7, 0, 10, 10 # 0b538
lwz r17, 0x0658( r1) # 0b53c
lwz r31, -0x0008(r16) # 0b540
beq- major_0x0b4a4_0xb4 # 0b544
lwz r8, 0x00cc(r17) # 0b548
rlwinm r8, r8, 0, 24, 21 # 0b54c
oris r8, r8, 0x8000 # 0b550
stw r8, 0x00cc(r17) # 0b554
major_0x0b4a4_0xb4:
mr r8, r31 # 0b558
bl major_0x13e4c # 0b55c
li r16, 0x02 # 0b560
stb r16, 0x0019(r31) # 0b564
bl major_0x13ed8_0x8 # 0b568
mr r8, r31 # 0b56c
bl major_0x14af8 # 0b570
sync # 0b574
lwz r16, -0x0b50( r1) # 0b578
cmpwi cr1, r16, 0x00 # 0b57c
li r16, 0x00 # 0b580
bne+ cr1, major_0x0b4a4_0xec # 0b584
mflr r16 # 0b588
bl panic # 0b58c
major_0x0b4a4_0xec:
stw r16, -0x0b50( r1) # 0b590
b syscall_return # 0b594
/***********************************************************
nk_yield_with_hint
************************************************************
syscall 13
************************************************************
Xrefs:
syscall
***********************************************************/
nk_yield_with_hint: /* < outside referer */
mr r16, r8 # 0b598
mr r17, r9 # 0b59c
addi r8, r1, -0xb50 # 0b5a0
# r8 = lock
bl lock # 0b5a4
mr r8, r16 # 0b5a8
mr r9, r17 # 0b5ac
mfspr r16, 272/*sprg0*/ # 0b5b0
rlwinm. r8, r7, 0, 10, 10 # 0b5b4
lwz r17, 0x0658( r1) # 0b5b8
lwz r31, -0x0008(r16) # 0b5bc
beq- nk_yield_with_hint_0x68 # 0b5c0
clrlwi. r8, r3, 0x1f # 0b5c4
lwz r8, 0x00cc(r17) # 0b5c8
rlwinm r8, r8, 0, 24, 21 # 0b5cc
oris r8, r8, 0x8000 # 0b5d0
stw r8, 0x00cc(r17) # 0b5d4
beq- nk_yield_with_hint_0x68 # 0b5d8
lbz r16, 0x0019(r31) # 0b5dc
cmpwi r16, 0x02 # 0b5e0
bge- nk_yield_with_hint_0x7c # 0b5e4
mr r8, r31 # 0b5e8
bl major_0x13e4c # 0b5ec
li r16, 0x02 # 0b5f0
stb r16, 0x0019(r31) # 0b5f4
bl major_0x13ed8 # 0b5f8
b nk_yield_with_hint_0x7c # 0b5fc
nk_yield_with_hint_0x68:
mr r8, r31 # 0b600
bl major_0x13e4c # 0b604
li r16, 0x02 # 0b608
stb r16, 0x0019(r31) # 0b60c
bl major_0x13ed8_0x8 # 0b610
nk_yield_with_hint_0x7c:
mr r8, r31 # 0b614
bl major_0x14af8 # 0b618
sync # 0b61c
lwz r16, -0x0b50( r1) # 0b620
cmpwi cr1, r16, 0x00 # 0b624
li r16, 0x00 # 0b628
bne+ cr1, nk_yield_with_hint_0xa0 # 0b62c
mflr r16 # 0b630
bl panic # 0b634
nk_yield_with_hint_0xa0:
stw r16, -0x0b50( r1) # 0b638
b syscall_return # 0b63c
/***********************************************************
major_0x0b640
************************************************************
syscall 33
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0b640: /* < outside referer */
rlwinm. r8, r7, 0, 10, 10 # 0b640
bne+ syscall_return_wtf # 0b644
mr r16, r8 # 0b648
mr r17, r9 # 0b64c
addi r8, r1, -0xb50 # 0b650
# r8 = lock
bl lock # 0b654
mr r8, r16 # 0b658
mr r9, r17 # 0b65c
b major_0x0b664_0x60 # 0b660
/***********************************************************
major_0x0b664
************************************************************
syscall 55
************************************************************
Xrefs:
syscall
major_0x0b640
***********************************************************/
major_0x0b664: /* < outside referer */
rlwinm. r8, r7, 0, 10, 10 # 0b664
lwz r16, 0x0e80( r1) # 0b668
beq- major_0x0b664_0x60 # 0b66c
lwz r17, -0x08e4( r1) # 0b670
lwz r18, 0x0658( r1) # 0b674
cmpw r16, r17 # 0b678
stw r16, -0x08e4( r1) # 0b67c
bne+ syscall_return_noErr # 0b680
lwz r8, 0x00cc(r18) # 0b684
rlwinm r8, r8, 0, 24, 21 # 0b688
oris r8, r8, 0x8000 # 0b68c
stw r8, 0x00cc(r18) # 0b690
mr r16, r8 # 0b694
mr r17, r9 # 0b698
addi r8, r1, -0xb50 # 0b69c
# r8 = lock
bl lock # 0b6a0
mr r8, r16 # 0b6a4
mr r9, r17 # 0b6a8
lwz r16, -0x0410( r1) # 0b6ac
cmpwi r16, -0x01 # 0b6b0
li r16, 0x00 # 0b6b4
bne- major_0x0b664_0x60 # 0b6b8
stw r16, -0x0410( r1) # 0b6bc
# r1 = kdp
b syscall_return_assert_lock_unheld # 0b6c0
major_0x0b664_0x60: /* < outside referer */
mfspr r16, 272/*sprg0*/ # 0b6c4
li r17, 0x01 # 0b6c8
lwz r31, -0x0008(r16) # 0b6cc
addi r16, r31, 0x20 # 0b6d0
stb r17, 0x0014(r16) # 0b6d4
clrlwi r3, r3, 0x01 # 0b6d8
stw r3, 0x0038(r16) # 0b6dc
stw r4, 0x003c(r16) # 0b6e0
stw r31, 0x0018(r16) # 0b6e4
mr r8, r16 # 0b6e8
bl major_0x130f0_0x524 # 0b6ec
mr r8, r31 # 0b6f0
bl major_0x13e4c # 0b6f4
addi r16, r1, -0xa44 # 0b6f8
addi r17, r31, 0x08 # 0b6fc
stw r16, 0x0000(r17) # 0b700
stw r16, 0x0008(r17) # 0b704
lwz r18, 0x000c(r16) # 0b708
stw r18, 0x000c(r17) # 0b70c
stw r17, 0x0008(r18) # 0b710
stw r17, 0x000c(r16) # 0b714
li r3, 0x00 # 0b718
b major_0x0b0fc # 0b71c
/***********************************************************
major_0x0b720
************************************************************
syscall 34
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0b720: /* < outside referer */
mr r8, r3 # 0b720
mr r9, r4 # 0b724
bl major_0x151b0 # 0b728
cmpwi r8, 0x00 # 0b72c
beq+ major_0x0af60_0x20 # 0b730
mr r5, r8 # 0b734
b syscall_return_noErr # 0b738
/***********************************************************
major_0x0b73c
************************************************************
syscall 35
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0b73c: /* < outside referer */
mr r8, r3 # 0b73c
bl major_0x15300 # 0b740
cmpwi r8, 0x01 # 0b744
beq+ syscall_return_noErr # 0b748
b syscall_return_kMPInvalidIDErr # 0b74c
/***********************************************************
major_0x0b750
************************************************************
syscall 36
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0b750: /* < outside referer */
mr r8, r3 # 0b750
# r8 = id
bl id_kind # 0b754
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x00 # 0b758
mr r4, r9 # 0b75c
mr r5, r8 # 0b760
bne+ syscall_return_noErr # 0b764
b syscall_return_kMPInvalidIDErr # 0b768
/***********************************************************
nk_get_next_id_unowned
************************************************************
syscall 37
Replace the provided process/coherence/console ID with the "next" one. IDs were opaque but were only longs. Wrapped by MPGetNext*ID, which indirects the opaque ID structure.
From MP docs: A coherence group is the set of processors and other bus controllers that have cache-coherent access to memory. Mac OS 9 defines only one coherence group, which is all the processors that can access internal memory (RAM). Other coherence groups are possible; for example, a PCI card with its own memory and processors can comprise a coherence group.
************************************************************
Xrefs:
syscall
************************************************************
> r3 = kind (process=1,coherence=10,console=13)
> r4 = prev_id
< r3 = MP result code
< r4 = next_id
***********************************************************/
nk_get_next_id_unowned: /* < outside referer */
mr r8, r4 # 0b76c
mr r9, r3 # 0b770
bl major_0x153e0 # 0b774
cmpwi r8, 0x00 # 0b778
mr r4, r8 # 0b77c
bne+ syscall_return_noErr # 0b780
b syscall_return_kMPInvalidIDErr # 0b784
/***********************************************************
nk_get_next_id_owned
************************************************************
syscall 116
Replace the provided address space/task/queue/semaphore/critical region/timer/event/notification ID with the "next" one. IDs were opaque but were only longs. Wrapped by MPGetNext*ID, which indirects the opaque ID structure. Differs from nk_get_next_id_unowned because it deals in objects owned by a particular process.
************************************************************
Xrefs:
syscall
************************************************************
> r3 = owningProcessID
> r4 = kind (task=2,timer=3,queue=4,sema=5,crit_rgn=6,addr_spc=8,evt=9,notif=12)
> r5 = prev_id
< r3 = MP result code
< r5 = next_id
***********************************************************/
nk_get_next_id_owned: /* < outside referer */
mr r8, r3 # 0b788
# r8 = id
bl id_kind # 0b78c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x01 # 0b790
bne+ syscall_return_kMPInvalidIDErr # 0b794
try_another_id:
mr r8, r5 # 0b798
mr r9, r4 # 0b79c
bl major_0x153e0 # 0b7a0
mr. r5, r8 # 0b7a4
beq+ syscall_return_kMPInvalidIDErr # 0b7a8
# r8 = id
bl id_kind # 0b7ac
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r4, 0x02 # 0b7b0
cmpwi cr1, r4, 0x03 # 0b7b4
beq- want_task_id # 0b7b8
beq- cr1, want_timer_id # 0b7bc
cmpwi r4, 0x04 # 0b7c0
cmpwi cr1, r4, 0x05 # 0b7c4
beq- want_queue_id # 0b7c8
beq- cr1, want_sema_id # 0b7cc
cmpwi r4, 0x06 # 0b7d0
cmpwi cr1, r4, 0x08 # 0b7d4
beq- want_critrgn_id # 0b7d8
beq- cr1, want_addrspc_id # 0b7dc
cmpwi r4, 0x09 # 0b7e0
cmpwi cr1, r4, 0x0b # 0b7e4
beq- want_evt_id # 0b7e8
beq- cr1, want_11_id # 0b7ec
cmpwi r4, 0x0c # 0b7f0
cmpwi cr1, r4, 0x0d # 0b7f4
beq- want_notif_id # 0b7f8
beq- cr1, want_13_id # 0b7fc
b syscall_return_paramErr # 0b800
want_task_id:
lwz r17, 0x0064( r8) # 0b804
lwz r9, 0x0060( r8) # 0b808
rlwinm. r17, r17, 0, 15, 15 # 0b80c
beq- nk_get_next_id_owned_0x94 # 0b810
lwz r9, -0x041c( r1) # 0b814
lwz r9, 0x0000( r9) # 0b818
nk_get_next_id_owned_0x94:
cmpw r9, r3 # 0b81c
bne+ try_another_id # 0b820
b syscall_return_noErr # 0b824
want_timer_id:
lwz r9, 0x0010( r8) # 0b828
cmpw r9, r3 # 0b82c
bne+ try_another_id # 0b830
b syscall_return_noErr # 0b834
want_queue_id:
lwz r9, 0x0020( r8) # 0b838
cmpw r9, r3 # 0b83c
bne+ try_another_id # 0b840
b syscall_return_noErr # 0b844
want_sema_id:
lwz r9, 0x0018( r8) # 0b848
cmpw r9, r3 # 0b84c
bne+ try_another_id # 0b850
b syscall_return_noErr # 0b854
want_critrgn_id:
lwz r9, 0x0010( r8) # 0b858
cmpw r9, r3 # 0b85c
bne+ try_another_id # 0b860
b syscall_return_noErr # 0b864
want_addrspc_id:
lwz r9, 0x0074( r8) # 0b868
cmpw r9, r3 # 0b86c
bne+ try_another_id # 0b870
b syscall_return_noErr # 0b874
want_evt_id:
lwz r9, 0x0014( r8) # 0b878
cmpw r9, r3 # 0b87c
bne+ try_another_id # 0b880
b syscall_return_noErr # 0b884
want_11_id:
lwz r9, 0x000c( r8) # 0b888
cmpw r9, r3 # 0b88c
bne+ try_another_id # 0b890
b syscall_return_noErr # 0b894
want_notif_id:
lwz r9, 0x0008( r8) # 0b898
cmpw r9, r3 # 0b89c
bne+ try_another_id # 0b8a0
b syscall_return_noErr # 0b8a4
want_13_id:
lwz r9, 0x0008( r8) # 0b8a8
cmpw r9, r3 # 0b8ac
bne+ try_another_id # 0b8b0
b syscall_return_noErr # 0b8b4
/***********************************************************
major_0x0b8b8
************************************************************
syscall 38
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0b8b8: /* < outside referer */
mr r8, r3 # 0b8b8
# r8 = id
bl id_kind # 0b8bc
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x01 # 0b8c0
bne+ syscall_return_kMPInvalidIDErr # 0b8c4
mr r31, r8 # 0b8c8
major_0x0b8b8_0x14:
mr r8, r4 # 0b8cc
li r9, 0x02 # 0b8d0
bl major_0x153e0 # 0b8d4
cmpwi r8, 0x00 # 0b8d8
beq+ syscall_return_kMPInvalidIDErr # 0b8dc
mr r4, r8 # 0b8e0
# r8 = id
bl id_kind # 0b8e4
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
lwz r17, 0x0064( r8) # 0b8e8
lwz r16, 0x0060( r8) # 0b8ec
rlwinm. r17, r17, 0, 15, 15 # 0b8f0
beq- major_0x0b8b8_0x48 # 0b8f4
lwz r16, -0x041c( r1) # 0b8f8
lwz r16, 0x0000(r16) # 0b8fc
major_0x0b8b8_0x48:
cmpw r16, r3 # 0b900
beq+ syscall_return_noErr # 0b904
b major_0x0b8b8_0x14 # 0b908
/***********************************************************
major_0x0b90c
************************************************************
syscall 62
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0b90c: /* < outside referer */
mr. r8, r3 # 0b90c
bne- major_0x0b90c_0x18 # 0b910
mfspr r15, 272/*sprg0*/ # 0b914
lwz r31, -0x0338(r15) # 0b918
lwz r3, 0x0000(r31) # 0b91c
b major_0x0b90c_0x24 # 0b920
major_0x0b90c_0x18:
# r8 = id
bl id_kind # 0b924
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0a # 0b928
bne+ syscall_return_kMPInvalidIDErr # 0b92c
major_0x0b90c_0x24:
mr r8, r4 # 0b930
li r9, 0x07 # 0b934
bl major_0x153e0 # 0b938
cmpwi r8, 0x00 # 0b93c
beq+ syscall_return_kMPInvalidIDErr # 0b940
mr r4, r8 # 0b944
# r8 = id
bl id_kind # 0b948
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
lwz r16, 0x0008( r8) # 0b94c
lwz r17, 0x0000(r16) # 0b950
cmpw r17, r3 # 0b954
bne+ major_0x0b90c_0x24 # 0b958
b syscall_return_noErr # 0b95c
/***********************************************************
major_0x0b960
************************************************************
syscall 42
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0b960: /* < outside referer */
mr. r8, r3 # 0b960
bne- major_0x0b960_0x14 # 0b964
mfspr r15, 272/*sprg0*/ # 0b968
lwz r30, -0x0338(r15) # 0b96c
b major_0x0b960_0x24 # 0b970
major_0x0b960_0x14:
# r8 = id
bl id_kind # 0b974
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0a # 0b978
mr r30, r8 # 0b97c
bne+ syscall_return_kMPInvalidIDErr # 0b980
major_0x0b960_0x24:
li r8, 960 # 0b984
# r1 = kdp
bl boring # 0b988
mr. r31, r8 # 0b98c
beq+ major_0x0af60_0x20 # 0b990
mr r16, r8 # 0b994
mr r17, r9 # 0b998
addi r8, r1, -0xb50 # 0b99c
# r8 = lock
bl lock # 0b9a0
mr r8, r16 # 0b9a4
mr r9, r17 # 0b9a8
li r9, 0x07 # 0b9ac
bl major_0x151b0 # 0b9b0
cmpwi r8, 0x00 # 0b9b4
bne+ major_0x0b960_0x68 # 0b9b8
mr r8, r31 # 0b9bc
bl looks_like_poolextend # 0b9c0
b major_0x0af60 # 0b9c4
major_0x0b960_0x68:
stw r8, 0x0000(r31) # 0b9c8
lis r16, 0x4350 # 0b9cc
ori r16, r16, 0x5520 # 0b9d0
stw r8, 0x0134( r6) # 0b9d4
stw r16, 0x0004(r31) # 0b9d8
lwz r17, 0x0020(r30) # 0b9dc
addi r17, r17, 0x01 # 0b9e0
stw r17, 0x0020(r30) # 0b9e4
addi r16, r31, 0x08 # 0b9e8
stw r30, 0x0000(r16) # 0b9ec
stw r30, 0x0008(r16) # 0b9f0
lwz r17, 0x000c(r30) # 0b9f4
stw r17, 0x000c(r16) # 0b9f8
stw r16, 0x0008(r17) # 0b9fc
stw r16, 0x000c(r30) # 0ba00
lis r8, 0x00 # 0ba04
ori r8, r8, 0x0b # 0ba08
lis r8, 0x00 # 0ba0c
ori r8, r8, 0x06 # 0ba10
stw r8, 0x0018(r31) # 0ba14
addi r30, r31, 0x20 # 0ba18
addi r8, r1, -0xb90 # 0ba1c
stw r8, 0x0308(r30) # 0ba20
stw r1, 0x031c(r30) # 0ba24
li r8, 0x00 # 0ba28
stw r8, 0x0318(r30) # 0ba2c
li r8, -0x01 # 0ba30
sth r4, 0x020a(r30) # 0ba34
stb r8, 0x0209(r30) # 0ba38
lwz r8, -0x0020( r1) # 0ba3c
stw r8, 0x0300(r30) # 0ba40
lis r8, 0x7469 # 0ba44
ori r8, r8, 0x6d65 # 0ba48
stw r8, 0x0004(r30) # 0ba4c
li r8, 0x04 # 0ba50
stb r8, 0x0014(r30) # 0ba54
li r8, 0x01 # 0ba58
stb r8, 0x0016(r30) # 0ba5c
li r8, 0x00 # 0ba60
stb r8, 0x0017(r30) # 0ba64
lis r8, 0x7fff # 0ba68
ori r8, r8, 0xffff # 0ba6c
stw r8, 0x0038(r30) # 0ba70
oris r8, r8, 0xffff # 0ba74
stw r8, 0x003c(r30) # 0ba78
# r1 = kdp
b syscall_return_assert_lock_unheld # 0ba7c
/***********************************************************
major_0x0ba80
************************************************************
syscall 43
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0ba80: /* < outside referer */
mr r16, r8 # 0ba80
mr r17, r9 # 0ba84
addi r8, r1, -0xb50 # 0ba88
# r8 = lock
bl lock # 0ba8c
mr r8, r16 # 0ba90
mr r9, r17 # 0ba94
mr r8, r3 # 0ba98
# r8 = id
bl id_kind # 0ba9c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x07 # 0baa0
mr r31, r8 # 0baa4
bne+ major_0x0b07c_0x28 # 0baa8
lwz r16, 0x0018(r31) # 0baac
lis r17, 0x00 # 0bab0
ori r17, r17, 0x09 # 0bab4
and. r17, r17, r16 # 0bab8
bne+ major_0x0af60_0xa4 # 0babc
mfspr r15, 272/*sprg0*/ # 0bac0
li r16, 0x04 # 0bac4
stw r16, -0x0238(r15) # 0bac8
lhz r16, 0x022a(r31) # 0bacc
stw r16, -0x0234(r15) # 0bad0
li r8, 0x02 # 0bad4
# r7 = flags
# r8 = usually 2?
bl SIGP # 0bad8
lwz r17, 0x0008(r31) # 0badc
addi r16, r31, 0x08 # 0bae0
lwz r18, 0x0020(r17) # 0bae4
addi r18, r18, -0x01 # 0bae8
stw r18, 0x0020(r17) # 0baec
lwz r17, 0x0008(r16) # 0baf0
lwz r18, 0x000c(r16) # 0baf4
stw r17, 0x0008(r18) # 0baf8
stw r18, 0x000c(r17) # 0bafc
li r17, 0x00 # 0bb00
stw r17, 0x0008(r16) # 0bb04
stw r17, 0x000c(r16) # 0bb08
mr r8, r31 # 0bb0c
bl looks_like_poolextend # 0bb10
mr r8, r3 # 0bb14
bl major_0x15300 # 0bb18
# r1 = kdp
b syscall_return_assert_lock_unheld # 0bb1c
/***********************************************************
major_0x0bb20
************************************************************
syscall 44
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0bb20: /* < outside referer */
mr r16, r8 # 0bb20
mr r17, r9 # 0bb24
addi r8, r1, -0xb50 # 0bb28
# r8 = lock
bl lock # 0bb2c
mr r8, r16 # 0bb30
mr r9, r17 # 0bb34
mr r8, r3 # 0bb38
# r8 = id
bl id_kind # 0bb3c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x07 # 0bb40
bne+ major_0x0b07c_0x28 # 0bb44
mr r30, r8 # 0bb48
lwz r16, 0x0018(r30) # 0bb4c
rlwinm. r8, r16, 0, 28, 28 # 0bb50
# r1 = kdp
bne+ syscall_return_assert_lock_unheld # 0bb54
mfspr r15, 272/*sprg0*/ # 0bb58
li r16, 0x04 # 0bb5c
stw r16, -0x0238(r15) # 0bb60
lhz r16, 0x022a(r30) # 0bb64
stw r16, -0x0234(r15) # 0bb68
bl 1f # 0bb6c
.ascii "SIGP kResetProcessor^n" # 0bb70
.short 0 # 0bb86
.align 2 # 0bb88
1: mflr r8 # 0bb88
bl print_string # 0bb8c
li r8, 0x02 # 0bb90
# r7 = flags
# r8 = usually 2?
bl SIGP # 0bb94
cmpwi r8, -0x7264 # 0bb98
cmpwi cr1, r8, 0x00 # 0bb9c
beq+ major_0x0af60_0xa4 # 0bba0
bne+ cr1, major_0x0af60_0xa4 # 0bba4
bl 1f # 0bba8
.ascii "Creating idle task^n" # 0bbac
.short 0 # 0bbc0
.align 2 # 0bbc2
1: mflr r8 # 0bbc4
bl print_string # 0bbc8
mr r31, r7 # 0bbcc
rlwinm r7, r7, 0, 13, 11 # 0bbd0
lwz r8, -0x041c( r1) # 0bbd4
bl mktask # 0bbd8
mr r7, r31 # 0bbdc
mr. r31, r8 # 0bbe0
beq+ major_0x0af60 # 0bbe4
stw r31, 0x001c(r30) # 0bbe8
lis r8, 0x6964 # 0bbec
ori r8, r8, 0x6c65 # 0bbf0
stw r8, 0x0074(r31) # 0bbf4
lis r8, 0x08 # 0bbf8
ori r8, r8, 0x40 # 0bbfc
stw r8, 0x0064(r31) # 0bc00
li r8, 0x01 # 0bc04
stw r8, 0x001c(r31) # 0bc08
li r8, 0x03 # 0bc0c
stb r8, 0x0019(r31) # 0bc10
lhz r8, 0x022a(r30) # 0bc14
sth r8, 0x001a(r31) # 0bc18
lwz r8, 0x0100(r31) # 0bc1c
oris r8, r8, 0x40 # 0bc20
stw r8, 0x0100(r31) # 0bc24
lwz r8, 0x064c( r1) # 0bc28
/***********************************************************
major_0x0bc2c
************************************************************
Xrefs:
major_0x0bb20
***********************************************************/
lis r26, major_0x14bcc_0x338@h # 0bc2c
ori r26, r26, major_0x14bcc_0x338@l # 0bc30
add r8, r8, r26 # 0bc34
stw r8, 0x01fc(r31) # 0bc38
lwz r8, 0x01a4(r31) # 0bc3c
andi. r8, r8, 0xbfcf # 0bc40
stw r8, 0x01a4(r31) # 0bc44
sync # 0bc48
lwz r16, -0x0b50( r1) # 0bc4c
cmpwi cr1, r16, 0x00 # 0bc50
li r16, 0x00 # 0bc54
bne+ cr1, major_0x0bc2c_0x38 # 0bc58
mflr r16 # 0bc5c
bl panic # 0bc60
major_0x0bc2c_0x38:
stw r16, -0x0b50( r1) # 0bc64
mfspr r15, 272/*sprg0*/ # 0bc68
li r16, 0x08 # 0bc6c
stw r16, -0x0238(r15) # 0bc70
lhz r16, 0x022a(r30) # 0bc74
stw r16, -0x0234(r15) # 0bc78
major_0x0bc2c_0x50:
bl 1f # 0bc7c
.ascii "SIGP kSynchClock^n" # 0bc80
.short 0 # 0bc92
.align 2 # 0bc94
1: mflr r8 # 0bc94
bl print_string # 0bc98
li r8, 0x02 # 0bc9c
# r7 = flags
# r8 = usually 2?
bl SIGP # 0bca0
cmpwi r8, -0x7264 # 0bca4
cmpwi cr1, r8, 0x00 # 0bca8
beq+ major_0x0bc2c_0x50 # 0bcac
bne- cr1, panic_wrapper_0x0c5d4 # 0bcb0
mfspr r15, 272/*sprg0*/ # 0bcb4
li r16, 0x01 # 0bcb8
stw r16, -0x0238(r15) # 0bcbc
lhz r16, 0x022a(r30) # 0bcc0
stw r16, -0x0234(r15) # 0bcc4
lwz r16, 0x064c( r1) # 0bcc8
/***********************************************************
major_0x0bccc
************************************************************
Xrefs:
major_0x0bc2c
***********************************************************/
lis r17, major_0x14bcc@h # 0bccc
ori r17, r17, major_0x14bcc@l # 0bcd0
add r16, r16, r17 # 0bcd4
stw r16, -0x0230(r15) # 0bcd8
stw r30, -0x022c(r15) # 0bcdc
major_0x0bccc_0x14:
bl 1f # 0bce0
.ascii "SIGP kStartProcessor^n" # 0bce4
.short 0 # 0bcfa
.align 2 # 0bcfc
1: mflr r8 # 0bcfc
bl print_string # 0bd00
li r8, 0x04 # 0bd04
# r7 = flags
# r8 = usually 2?
bl SIGP # 0bd08
cmpwi r8, -0x7264 # 0bd0c
cmpwi cr1, r8, 0x00 # 0bd10
beq+ major_0x0bccc_0x14 # 0bd14
bne- cr1, panic_wrapper_0x0c5d4 # 0bd18
bl 1f # 0bd1c
.ascii "Processor scheduled^n" # 0bd20
.short 0 # 0bd35
.align 2 # 0bd37
1: mflr r8 # 0bd38
bl print_string # 0bd3c
b syscall_return_noErr # 0bd40
/***********************************************************
NKStopScheduling
************************************************************
syscall 45
************************************************************
Xrefs:
syscall
***********************************************************/
NKStopScheduling: /* < outside referer */
mr r16, r8 # 0bd44
mr r17, r9 # 0bd48
addi r8, r1, -0xb50 # 0bd4c
# r8 = lock
bl lock # 0bd50
mr r8, r16 # 0bd54
mr r9, r17 # 0bd58
mr r8, r3 # 0bd5c
# r8 = id
bl id_kind # 0bd60
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x07 # 0bd64
bne+ major_0x0b07c_0x28 # 0bd68
mr r30, r8 # 0bd6c
lwz r16, 0x0018(r30) # 0bd70
rlwinm. r8, r16, 0, 28, 28 # 0bd74
# r1 = kdp
beq+ syscall_return_assert_lock_unheld # 0bd78
lwz r31, 0x001c(r30) # 0bd7c
clrlwi. r8, r16, 0x1f # 0bd80
bne+ major_0x0af60_0xa4 # 0bd84
lbz r17, 0x0019(r31) # 0bd88
cmpwi r17, 0x00 # 0bd8c
beq- NKStopScheduling_0x94 # 0bd90
lwz r17, 0x0064(r31) # 0bd94
oris r17, r17, 0x80 # 0bd98
stw r17, 0x0064(r31) # 0bd9c
mr r8, r31 # 0bda0
bl major_0x13e4c # 0bda4
li r17, 0x00 # 0bda8
stb r17, 0x0019(r31) # 0bdac
mr r8, r31 # 0bdb0
bl major_0x13ed8 # 0bdb4
bl major_0x149d4_0x8 # 0bdb8
mr r8, r31 # 0bdbc
bl major_0x14af8_0xa0 # 0bdc0
lwz r8, 0x064c( r1) # 0bdc4
lis r9, major_0x14bcc_0x438@h # 0bdc8
ori r9, r9, major_0x14bcc_0x438@l # 0bdcc
add r8, r8, r9 # 0bdd0
stw r8, 0x01fc(r31) # 0bdd4
NKStopScheduling_0x94:
sync # 0bdd8
lwz r16, -0x0b50( r1) # 0bddc
cmpwi cr1, r16, 0x00 # 0bde0
li r16, 0x00 # 0bde4
bne+ cr1, NKStopScheduling_0xb0 # 0bde8
mflr r16 # 0bdec
bl panic # 0bdf0
NKStopScheduling_0xb0:
stw r16, -0x0b50( r1) # 0bdf4
b major_0x0b4a4_0x78 # 0bdf8
/***********************************************************
NKCpuPlugin
************************************************************
syscall 46
************************************************************
Xrefs:
syscall
***********************************************************/
NKCpuPlugin: /* < outside referer */
li r8, 0x00 # 0bdfc
# r7 = flags
# r8 = usually 2?
bl SIGP # 0be00
mr r3, r8 # 0be04
mr r4, r9 # 0be08
b syscall_return # 0be0c
/***********************************************************
major_0x0be10
************************************************************
syscall 47
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0be10: /* < outside referer */
rlwinm. r8, r7, 0, 12, 12 # 0be10
lwz r15, 0x00d8( r6) # 0be14
beq+ syscall_return_kMPInsufficientResourcesErr # 0be18
cmpwi r15, 0x00 # 0be1c
mr r16, r2 # 0be20
beq+ syscall_return_kMPInsufficientResourcesErr # 0be24
mr r17, r3 # 0be28
mr r18, r4 # 0be2c
mr r19, r5 # 0be30
bl major_0x13c90 # 0be34
mr r2, r16 # 0be38
mr r3, r17 # 0be3c
mr r4, r18 # 0be40
mr r5, r19 # 0be44
b syscall_return_noErr # 0be48
/***********************************************************
_bad_syscall
************************************************************
syscall 48
************************************************************
Xrefs:
syscall
***********************************************************/
_bad_syscall: /* < outside referer */
b bad_syscall # 0be4c
/***********************************************************
NKxprintf
************************************************************
syscall 96
************************************************************
Xrefs:
syscall
***********************************************************/
NKxprintf: /* < outside referer */
rlwinm. r9, r11, 0, 27, 27 # 0be50
mr r8, r3 # 0be54
beq- NKxprintf_0x1c # 0be58
li r9, 0x00 # 0be5c
bl major_0x12248_0x38c # 0be60
beq- NKxprintf_0x24 # 0be64
rlwimi r8, r17, 0, 0, 19 # 0be68
NKxprintf_0x1c:
bl print_string # 0be6c
b syscall_return_noErr # 0be70
NKxprintf_0x24:
bl 1f # 0be74
.ascii "NKxprintf (V->P translation error)^n" # 0be78
.short 0 # 0be9c
.align 2 # 0be9e
1: mflr r8 # 0bea0
bl print_string # 0bea4
b syscall_return_kMPInsufficientResourcesErr # 0bea8
/***********************************************************
major_0x0beac
************************************************************
syscall 97
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0beac: /* < outside referer */
mr r8, r3 # 0beac
cmpwi r4, 0x01 # 0beb0
cmpwi cr1, r4, 0x02 # 0beb4
beq- major_0x0beac_0x24 # 0beb8
beq- cr1, major_0x0beac_0x1c # 0bebc
bl print_hexword_spc # 0bec0
b syscall_return # 0bec4
major_0x0beac_0x1c:
bl print_hexshort # 0bec8
b syscall_return # 0becc
major_0x0beac_0x24:
bl print_twodig_decimal # 0bed0
b syscall_return # 0bed4
/***********************************************************
major_0x0bed8
************************************************************
syscall 124
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0bed8: /* < outside referer */
mr r8, r3 # 0bed8
bl print_decimal # 0bedc
b syscall_return # 0bee0
/***********************************************************
NKSetBlueProcessID
************************************************************
syscall 99
************************************************************
Xrefs:
syscall
***********************************************************/
NKSetBlueProcessID: /* < outside referer */
mfspr r16, 272/*sprg0*/ # 0bee4
rlwinm. r8, r7, 0, 10, 10 # 0bee8
lwz r31, -0x0008(r16) # 0beec
beq+ syscall_return_kMPInsufficientResourcesErr # 0bef0
mr r8, r3 # 0bef4
# r8 = id
bl id_kind # 0bef8
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x01 # 0befc
bne+ syscall_return_kMPInvalidIDErr # 0bf00
stw r3, 0x0060(r31) # 0bf04
stw r4, 0x00ec(r31) # 0bf08
b syscall_return_noErr # 0bf0c
/***********************************************************
NKRegisterThermalHandler
************************************************************
syscall 104
************************************************************
Xrefs:
syscall
***********************************************************/
NKRegisterThermalHandler: /* < outside referer */
mr r16, r8 # 0bf10
mr r17, r9 # 0bf14
addi r8, r1, -0xb50 # 0bf18
# r8 = lock
bl lock # 0bf1c
mr r8, r16 # 0bf20
mr r9, r17 # 0bf24
mr. r8, r3 # 0bf28
beq- NKRegisterThermalHandler_0x2c # 0bf2c
# r8 = id
bl id_kind # 0bf30
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0c # 0bf34
bne+ major_0x0b07c_0x28 # 0bf38
NKRegisterThermalHandler_0x2c:
stw r3, -0x0418( r1) # 0bf3c
# r1 = kdp
b syscall_return_assert_lock_unheld # 0bf40
/***********************************************************
NKRegisterPMFHandler
************************************************************
syscall 105
************************************************************
Xrefs:
syscall
***********************************************************/
NKRegisterPMFHandler: /* < outside referer */
mr r16, r8 # 0bf44
mr r17, r9 # 0bf48
addi r8, r1, -0xb50 # 0bf4c
# r8 = lock
bl lock # 0bf50
mr r8, r16 # 0bf54
mr r9, r17 # 0bf58
mr. r8, r3 # 0bf5c
beq- NKRegisterPMFHandler_0x2c # 0bf60
# r8 = id
bl id_kind # 0bf64
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0c # 0bf68
bne+ major_0x0b07c_0x28 # 0bf6c
NKRegisterPMFHandler_0x2c:
stw r3, -0x0414( r1) # 0bf70
# r1 = kdp
b syscall_return_assert_lock_unheld # 0bf74
/***********************************************************
NKMarkPMFTask
************************************************************
syscall 106
************************************************************
Xrefs:
syscall
***********************************************************/
NKMarkPMFTask: /* < outside referer */
mr r16, r8 # 0bf78
mr r17, r9 # 0bf7c
addi r8, r1, -0xb50 # 0bf80
# r8 = lock
bl lock # 0bf84
mr r8, r16 # 0bf88
mr r9, r17 # 0bf8c
mfspr r30, 272/*sprg0*/ # 0bf90
mr. r8, r3 # 0bf94
lwz r31, -0x0008(r30) # 0bf98
beq- NKMarkPMFTask_0x38 # 0bf9c
# r8 = id
bl id_kind # 0bfa0
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x02 # 0bfa4
mr r31, r8 # 0bfa8
bne+ major_0x0b07c_0x28 # 0bfac
NKMarkPMFTask_0x38:
lwz r17, 0x0064(r31) # 0bfb0
rlwimi r17, r4, 10, 21, 21 # 0bfb4
stw r17, 0x0064(r31) # 0bfb8
mr r8, r31 # 0bfbc
bl major_0x14af8_0xa0 # 0bfc0
# r1 = kdp
b syscall_return_assert_lock_unheld # 0bfc4
/***********************************************************
major_0x0bfc8
************************************************************
syscall 107
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0bfc8: /* < outside referer */
cmpwi r3, 0x05 # 0bfc8
cmpwi cr1, r3, 0x02 # 0bfcc
beq- major_0x0bfc8_0x58 # 0bfd0
beq- cr1, major_0x0bfc8_0x94 # 0bfd4
cmpwi r3, 0x03 # 0bfd8
cmpwi cr1, r3, 0x04 # 0bfdc
beq- major_0x0bfc8_0x80 # 0bfe0
beq- cr1, major_0x0bfc8_0x6c # 0bfe4
cmpwi r3, 0x07 # 0bfe8
cmpwi cr1, r3, 0x06 # 0bfec
beq- major_0x0bfc8_0x44 # 0bff0
bne+ cr1, syscall_return_paramErr # 0bff4
lwz r4, 0x0fd0( r1) # 0bff8
lhz r16, 0x0fd6( r1) # 0bffc
lhz r5, 0x0fd4( r1) # 0c000
stw r16, 0x0134( r6) # 0c004
b syscall_return_noErr # 0c008
major_0x0bfc8_0x44:
lwz r4, 0x0fc8( r1) # 0c00c
lhz r16, 0x0fce( r1) # 0c010
lhz r5, 0x0fcc( r1) # 0c014
stw r16, 0x0134( r6) # 0c018
b syscall_return_noErr # 0c01c
major_0x0bfc8_0x58:
lwz r4, 0x0fd8( r1) # 0c020
lhz r16, 0x0fde( r1) # 0c024
lhz r5, 0x0fdc( r1) # 0c028
stw r16, 0x0134( r6) # 0c02c
b syscall_return_noErr # 0c030
major_0x0bfc8_0x6c:
lwz r4, 0x0fe0( r1) # 0c034
lhz r16, 0x0fe6( r1) # 0c038
lhz r5, 0x0fe4( r1) # 0c03c
stw r16, 0x0134( r6) # 0c040
b syscall_return_noErr # 0c044
major_0x0bfc8_0x80:
lwz r4, 0x0fe8( r1) # 0c048
lhz r16, 0x0fee( r1) # 0c04c
lhz r5, 0x0fec( r1) # 0c050
stw r16, 0x0134( r6) # 0c054
b syscall_return_noErr # 0c058
major_0x0bfc8_0x94:
lwz r4, 0x0ff0( r1) # 0c05c
lhz r16, 0x0ff6( r1) # 0c060
lhz r5, 0x0ff4( r1) # 0c064
stw r16, 0x0134( r6) # 0c068
b syscall_return_noErr # 0c06c
/***********************************************************
major_0x0c070
************************************************************
syscall 108
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0c070: /* < outside referer */
cmplwi r3, 0x02 # 0c070
bge+ syscall_return_paramErr # 0c074
mulli r17, r3, 0x10 # 0c078
addi r18, r1, 0xf80 # 0c07c
add r18, r17, r18 # 0c080
lwz r16, 0x0134( r6) # 0c084
stw r4, 0x0000(r18) # 0c088
stw r5, 0x0004(r18) # 0c08c
stw r16, 0x0008(r18) # 0c090
bl 1f # 0c094
.ascii "Clock rates for step " # 0c098
.short 0 # 0c0ad
.align 2 # 0c0af
1: mflr r8 # 0c0b0
bl print_string # 0c0b4
mr r8, r3 # 0c0b8
bl print_decimal # 0c0bc
bl 1f # 0c0c0
.ascii "- Cpu " # 0c0c4
.short 0 # 0c0ca
.align 2 # 0c0cc
1: mflr r8 # 0c0cc
bl print_string # 0c0d0
mr r8, r4 # 0c0d4
bl print_decimal # 0c0d8
bl 1f # 0c0dc
.ascii "- Bus " # 0c0e0
.short 0 # 0c0e6
.align 2 # 0c0e8
1: mflr r8 # 0c0e8
bl print_string # 0c0ec
mr r8, r5 # 0c0f0
bl print_decimal # 0c0f4
bl 1f # 0c0f8
.ascii "- Dec " # 0c0fc
.short 0 # 0c102
.align 2 # 0c104
1: mflr r8 # 0c104
bl print_string # 0c108
mr r8, r16 # 0c10c
bl print_decimal # 0c110
bl 1f # 0c114
.ascii "Hz^n" # 0c118
.short 0 # 0c11c
.align 2 # 0c11e
1: mflr r8 # 0c120
bl print_string # 0c124
b syscall_return_noErr # 0c128
/***********************************************************
NKSetClockStep
************************************************************
syscall 131
Debug string matches MPLibrary!
0xf7e(r1) = clock_step (half-word)
************************************************************
Xrefs:
syscall
************************************************************
> r3 = new_clock_step # (half-word)
***********************************************************/
NKSetClockStep: /* < outside referer */
mfspr r9, 272/*sprg0*/ # 0c12c
lwz r8, -0x0338( r9) # 0c130
lwz r9, 0x0024( r8) # 0c134
cmpwi r9, 0x01 # 0c138
bgt+ syscall_return_kMPInsufficientResourcesErr # 0c13c
lhz r19, 0x0f7e( r1) # 0c140
bl 1f # 0c144
.ascii "NKSetClockStep - current " # 0c148
.short 0 # 0c161
.align 2 # 0c163
1: mflr r8 # 0c164
bl print_string # 0c168
mr r8, r19 # 0c16c
bl print_decimal # 0c170
bl 1f # 0c174
.ascii " new " # 0c178
.short 0 # 0c17d
.align 2 # 0c17f
1: mflr r8 # 0c180
bl print_string # 0c184
mr r8, r3 # 0c188
bl print_decimal # 0c18c
bl 1f # 0c190
.ascii "^n" # 0c194
.short 0 # 0c196
.align 2 # 0c198
1: mflr r8 # 0c198
bl print_string # 0c19c
cmplwi r3, 0x02 # 0c1a0
cmpw cr1, r3, r19 # 0c1a4
bge+ syscall_return_paramErr # 0c1a8
beq+ cr1, syscall_return_kMPInsufficientResourcesErr
mulli r17, r3, 0x10 # 0c1b0
addi r18, r1, 0xf80 # 0c1b4
sth r17, 0x0f7e( r1) # 0c1b8
add r18, r17, r18 # 0c1bc
lwz r16, 0x0000(r18) # 0c1c0
lwz r17, 0x0004(r18) # 0c1c4
stw r16, 0x0f24( r1) # 0c1c8
stw r17, 0x0f28( r1) # 0c1cc
lwz r16, 0x0f88( r1) # 0c1d0
stw r16, 0x0f2c( r1) # 0c1d4
mr r16, r8 # 0c1d8
mr r17, r9 # 0c1dc
addi r8, r1, -0xb50 # 0c1e0
# r8 = lock
bl lock # 0c1e4
mr r8, r16 # 0c1e8
mr r9, r17 # 0c1ec
lwz r16, 0x0008(r18) # 0c1f0
stw r16, -0x0438( r1) # 0c1f4
bgt- cr1, NKSetClockStep_0xec # 0c1f8
lwz r31, -0x0434( r1) # 0c1fc
lbz r18, 0x0017(r31) # 0c200
cmpwi r18, 0x00 # 0c204
# r1 = kdp
beq+ syscall_return_assert_lock_unheld # 0c208
mr r8, r31 # 0c20c
bl major_0x130f0_0x5d8 # 0c210
# r1 = kdp
b syscall_return_assert_lock_unheld # 0c214
NKSetClockStep_0xec:
lwz r31, -0x0434( r1) # 0c218
lbz r18, 0x0017(r31) # 0c21c
cmpwi r18, 0x01 # 0c220
# r1 = kdp
beq+ syscall_return_assert_lock_unheld # 0c224
bl bizarre # 0c228
stw r8, 0x0038(r31) # 0c22c
stw r9, 0x003c(r31) # 0c230
mr r8, r31 # 0c234
bl major_0x130f0_0x524 # 0c238
# r1 = kdp
b syscall_return_assert_lock_unheld # 0c23c
/***********************************************************
NKSetClockDriftCorrection
************************************************************
syscall 132
There's a one-billion constant in here, for fractional expression.
-0x36c(r1) = tb_drift_numerator
-0x368(r1) = tb_drift_denominator
************************************************************
Xrefs:
syscall
************************************************************
> r3 = to
***********************************************************/
NKSetClockDriftCorrection: /* < outside referer */
lwz r31, -0x0364( r1) # 0c240
mfspr r9, 272/*sprg0*/ # 0c244
cmpwi r31, 0x00 # 0c248
beq+ syscall_return_kMPInsufficientResourcesErr # 0c24c
lwz r8, -0x0338( r9) # 0c250
lwz r9, 0x0024( r8) # 0c254
cmpwi r9, 0x01 # 0c258
bgt+ syscall_return_kMPInsufficientResourcesErr # 0c25c
lwz r19, 0x0fa0( r1) # 0c260
cmpwi r3, 0x00 # 0c264
cmpw cr1, r3, r19 # 0c268
stw r3, 0x0fa0( r1) # 0c26c
beq- NKSetClockDriftCorrection_0x12c # 0c270
beq+ cr1, syscall_return_noErr # 0c274
lis r16, 0x3b9a # 0c278
ori r16, r16, 0xca00 # 0c27c
lwz r17, 0x0f88( r1) # 0c280
srwi r17, r17, 7 # 0c284
divw r18, r16, r3 # 0c288
cmpw r18, r17 # 0c28c
bge- NKSetClockDriftCorrection_0x64 # 0c290
divw r16, r16, r17 # 0c294
mr r18, r17 # 0c298
divw r17, r3, r16 # 0c29c
b NKSetClockDriftCorrection_0x6c # 0c2a0
NKSetClockDriftCorrection_0x64:
rlwinm r17, r3, 2, 30, 30 # 0c2a4
addi r17, r17, 0x01 # 0c2a8
NKSetClockDriftCorrection_0x6c:
stw r17, -0x036c( r1) # 0c2ac
stw r18, -0x0368( r1) # 0c2b0
bl 1f # 0c2b4
.ascii "TB drift adjusted to " # 0c2b8
.short 0 # 0c2cd
.align 2 # 0c2cf
1: mflr r8 # 0c2d0
bl print_string # 0c2d4
mr r8, r3 # 0c2d8
bl print_decimal # 0c2dc
bl 1f # 0c2e0
.ascii " ppb ( " # 0c2e4
.short 0 # 0c2eb
.align 2 # 0c2ed
1: mflr r8 # 0c2f0
bl print_string # 0c2f4
mr r8, r17 # 0c2f8
bl print_decimal # 0c2fc
bl 1f # 0c300
.ascii "/ " # 0c304
.short 0 # 0c306
.align 2 # 0c308
1: mflr r8 # 0c308
bl print_string # 0c30c
mr r8, r18 # 0c310
bl print_decimal # 0c314
bl 1f # 0c318
.ascii ")^n" # 0c31c
.short 0 # 0c31f
.align 2 # 0c321
1: mflr r8 # 0c324
bl print_string # 0c328
mr r16, r8 # 0c32c
mr r17, r9 # 0c330
addi r8, r1, -0xb50 # 0c334
# r8 = lock
bl lock # 0c338
mr r8, r16 # 0c33c
mr r9, r17 # 0c340
lwz r31, -0x0364( r1) # 0c344
lbz r18, 0x0017(r31) # 0c348
cmpwi r18, 0x01 # 0c34c
# r1 = kdp
beq+ syscall_return_assert_lock_unheld # 0c350
bl bizarre # 0c354
stw r8, 0x0038(r31) # 0c358
stw r9, 0x003c(r31) # 0c35c
mr r8, r31 # 0c360
bl major_0x130f0_0x524 # 0c364
# r1 = kdp
b syscall_return_assert_lock_unheld # 0c368
NKSetClockDriftCorrection_0x12c:
mr r16, r8 # 0c36c
mr r17, r9 # 0c370
addi r8, r1, -0xb50 # 0c374
# r8 = lock
bl lock # 0c378
mr r8, r16 # 0c37c
mr r9, r17 # 0c380
li r17, 0x00 # 0c384
stw r17, -0x036c( r1) # 0c388
stw r17, -0x0368( r1) # 0c38c
lwz r31, -0x0364( r1) # 0c390
lbz r18, 0x0017(r31) # 0c394
cmpwi r18, 0x00 # 0c398
# r1 = kdp
beq+ syscall_return_assert_lock_unheld # 0c39c
mr r8, r31 # 0c3a0
bl major_0x130f0_0x5d8 # 0c3a4
# r1 = kdp
b syscall_return_assert_lock_unheld # 0c3a8
/***********************************************************
major_0x0c3ac
************************************************************
syscall 115
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0c3ac: /* < outside referer */
mr r16, r8 # 0c3ac
mr r17, r9 # 0c3b0
addi r8, r1, -0xb50 # 0c3b4
# r8 = lock
bl lock # 0c3b8
mr r8, r16 # 0c3bc
mr r9, r17 # 0c3c0
mr r8, r3 # 0c3c4
# r8 = id
bl id_kind # 0c3c8
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0d # 0c3cc
mr r31, r8 # 0c3d0
bne+ major_0x0b07c_0x28 # 0c3d4
lwz r30, 0x000c(r31) # 0c3d8
cmpwi r30, 0x00 # 0c3dc
bne- major_0x0c3ac_0x94 # 0c3e0
mr r16, r8 # 0c3e4
mr r17, r9 # 0c3e8
addi r8, r1, -0xaf0 # 0c3ec
# r8 = lock
bl lock # 0c3f0
mr r8, r16 # 0c3f4
mr r9, r17 # 0c3f8
lwz r30, -0x0404( r1) # 0c3fc
major_0x0c3ac_0x54:
addi r30, r30, 0x01 # 0c400
andi. r29, r30, 0xfff # 0c404
bne- major_0x0c3ac_0x64 # 0c408
lwz r30, -0x1000(r30) # 0c40c
major_0x0c3ac_0x64:
lbz r16, 0x0000(r30) # 0c410
cmpwi r16, 0x00 # 0c414
beq+ major_0x0c3ac_0x54 # 0c418
stw r30, 0x000c(r31) # 0c41c
sync # 0c420
lwz r16, -0x0af0( r1) # 0c424
cmpwi cr1, r16, 0x00 # 0c428
li r16, 0x00 # 0c42c
bne+ cr1, major_0x0c3ac_0x90 # 0c430
mflr r16 # 0c434
bl panic # 0c438
major_0x0c3ac_0x90:
stw r16, -0x0af0( r1) # 0c43c
major_0x0c3ac_0x94:
cmpwi r5, 0x00 # 0c440
ble+ major_0x0af60_0xa4 # 0c444
rlwinm. r9, r11, 0, 27, 27 # 0c448
mr r8, r4 # 0c44c
crmove r30, r2 # 0c450
beq- major_0x0c3ac_0xd0 # 0c454
li r9, 0x00 # 0c458
bl major_0x12248_0x45c # 0c45c
beq+ major_0x0af60_0xa4 # 0c460
add r8, r4, r5 # 0c464
li r9, 0x00 # 0c468
addi r8, r8, -0x01 # 0c46c
mr r30, r8 # 0c470
bl major_0x12248_0x45c # 0c474
beq+ major_0x0af60_0xa4 # 0c478
major_0x0c3ac_0xd0:
lwz r28, -0x0404( r1) # 0c47c
lwz r29, 0x000c(r31) # 0c480
li r5, 0x00 # 0c484
not r27, r4 # 0c488
major_0x0c3ac_0xe0:
cmpw r28, r29 # 0c48c
cmplw cr1, r4, r30 # 0c490
beq- major_0x0c3ac_0x144 # 0c494
bgt- cr1, major_0x0c3ac_0x144 # 0c498
rlwinm r16, r4, 0, 0, 19 # 0c49c
mr r8, r4 # 0c4a0
beq- cr7, major_0x0c3ac_0x11c # 0c4a4
cmpw r16, r27 # 0c4a8
mr r17, r26 # 0c4ac
beq- major_0x0c3ac_0x11c # 0c4b0
mr r27, r16 # 0c4b4
li r9, 0x00 # 0c4b8
bl major_0x12248_0x45c # 0c4bc
beq+ major_0x0af60_0xa4 # 0c4c0
mr r26, r17 # 0c4c4
major_0x0c3ac_0x11c:
rlwimi r17, r4, 0, 20, 31 # 0c4c8
lbz r8, 0x0000(r29) # 0c4cc
addi r29, r29, 0x01 # 0c4d0
andi. r16, r29, 0xfff # 0c4d4
bne+ major_0x0c3ac_0x134 # 0c4d8
lwz r29, -0x1000(r29) # 0c4dc
major_0x0c3ac_0x134:
stb r8, 0x0000(r17) # 0c4e0
addi r5, r5, 0x01 # 0c4e4
addi r4, r4, 0x01 # 0c4e8
b major_0x0c3ac_0xe0 # 0c4ec
major_0x0c3ac_0x144:
stw r29, 0x000c(r31) # 0c4f0
# r1 = kdp
b syscall_return_assert_lock_unheld # 0c4f4
/***********************************************************
NKRegisterExternalHandler
************************************************************
syscall 121
************************************************************
Xrefs:
syscall
***********************************************************/
NKRegisterExternalHandler: /* < outside referer */
mr r16, r8 # 0c4f8
mr r17, r9 # 0c4fc
addi r8, r1, -0xb50 # 0c500
# r8 = lock
bl lock # 0c504
mr r8, r16 # 0c508
mr r9, r17 # 0c50c
mr. r8, r3 # 0c510
beq- NKRegisterExternalHandler_0x2c # 0c514
# r8 = id
bl id_kind # 0c518
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0c # 0c51c
bne+ major_0x0b07c_0x28 # 0c520
NKRegisterExternalHandler_0x2c:
stw r3, -0x0428( r1) # 0c524
# r1 = kdp
b syscall_return_assert_lock_unheld # 0c528
/***********************************************************
major_0x0c52c
************************************************************
syscall 133
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0c52c: /* < outside referer */
mr r16, r8 # 0c52c
mr r17, r9 # 0c530
addi r8, r1, -0xb50 # 0c534
# r8 = lock
bl lock # 0c538
mr r8, r16 # 0c53c
mr r9, r17 # 0c540
cmpw r3, r0 # 0c544
lwz r16, 0x0edc( r1) # 0c548
li r17, 0x0b # 0c54c
blt- major_0x0c52c_0x34 # 0c550
and r3, r3, r17 # 0c554
or r16, r16, r3 # 0c558
b major_0x0c52c_0x3c # 0c55c
major_0x0c52c_0x34:
orc r3, r3, r17 # 0c560
and r16, r16, r3 # 0c564
major_0x0c52c_0x3c:
stw r16, 0x0edc( r1) # 0c568
srawi r16, r4, 16 # 0c56c
extsh r17, r4 # 0c570
cmpwi r16, -0x01 # 0c574
cmpwi cr1, r17, -0x01 # 0c578
beq- major_0x0c52c_0x60 # 0c57c
bgt- major_0x0c52c_0x5c # 0c580
li r16, 0x00 # 0c584
major_0x0c52c_0x5c:
sth r16, -0x0360( r1) # 0c588
major_0x0c52c_0x60:
beq- cr1, major_0x0c52c_0x70 # 0c58c
bgt- cr1, major_0x0c52c_0x6c # 0c590
li r17, 0x00 # 0c594
major_0x0c52c_0x6c:
sth r17, -0x035e( r1) # 0c598
major_0x0c52c_0x70:
srawi r16, r5, 16 # 0c59c
extsh r17, r5 # 0c5a0
cmpwi r16, -0x01 # 0c5a4
cmpwi cr1, r17, -0x01 # 0c5a8
beq- major_0x0c52c_0x90 # 0c5ac
bgt- major_0x0c52c_0x8c # 0c5b0
li r16, 0x00 # 0c5b4
major_0x0c52c_0x8c:
sth r16, -0x035c( r1) # 0c5b8
major_0x0c52c_0x90:
beq- cr1, major_0x0c52c_0xa0 # 0c5bc
bgt- cr1, major_0x0c52c_0x9c # 0c5c0
li r17, 0x00 # 0c5c4
major_0x0c52c_0x9c:
sth r17, -0x035a( r1) # 0c5c8
major_0x0c52c_0xa0:
bl major_0x18a98 # 0c5cc
# r1 = kdp
b syscall_return_assert_lock_unheld # 0c5d0
/***********************************************************
panic_wrapper_0x0c5d4
************************************************************
Xrefs:
major_0x0bc2c
major_0x0bccc
***********************************************************/
panic_wrapper_0x0c5d4: /* < outside referer */
b panic # 0c5d4
/***********************************************************
major_0x0c5d8
***********************************************************/
.long 0x60000000 # 0c5d8
.long 0x60000000 # 0c5dc
/***********************************************************
major_0x0c5e0
************************************************************
syscall 15
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0c5e0: /* < outside referer */
li r8, 0x34 # 0c5e0
bl boring_with_crset # 0c5e4
mr. r31, r8 # 0c5e8
beq+ major_0x0af60_0x20 # 0c5ec
lis r16, 0x4d53 # 0c5f0
stw r8, 0x0008( r8) # 0c5f4
ori r16, r16, 0x4751 # 0c5f8
stw r8, 0x000c( r8) # 0c5fc
stw r16, 0x0004( r8) # 0c600
addi r9, r8, 0x10 # 0c604
lis r16, 0x4e4f # 0c608
stw r9, 0x0008( r9) # 0c60c
ori r16, r16, 0x5451 # 0c610
stw r9, 0x000c( r9) # 0c614
stw r16, 0x0004( r9) # 0c618
mr r16, r8 # 0c61c
mr r17, r9 # 0c620
addi r8, r1, -0xb50 # 0c624
# r8 = lock
bl lock # 0c628
mr r8, r16 # 0c62c
mr r9, r17 # 0c630
li r9, 0x04 # 0c634
bl major_0x151b0 # 0c638
cmpwi r8, 0x00 # 0c63c
bne+ major_0x0c5e0_0x70 # 0c640
mr r8, r31 # 0c644
bl looks_like_poolextend # 0c648
b major_0x0af60 # 0c64c
major_0x0c5e0_0x70:
mfspr r30, 272/*sprg0*/ # 0c650
lwz r30, -0x0008(r30) # 0c654
stw r8, 0x0000(r31) # 0c658
lwz r17, 0x0060(r30) # 0c65c
stw r17, 0x0020(r31) # 0c660
mr r4, r8 # 0c664
li r17, 0x00 # 0c668
stw r17, 0x0024(r31) # 0c66c
stw r17, 0x0028(r31) # 0c670
stw r17, 0x002c(r31) # 0c674
stw r17, 0x0030(r31) # 0c678
# r1 = kdp
b syscall_return_assert_lock_unheld # 0c67c
/***********************************************************
major_0x0c680
************************************************************
syscall 16
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0c680: /* < outside referer */
mr r16, r8 # 0c680
mr r17, r9 # 0c684
addi r8, r1, -0xb50 # 0c688
# r8 = lock
bl lock # 0c68c
mr r8, r16 # 0c690
mr r9, r17 # 0c694
mr r8, r3 # 0c698
# r8 = id
bl id_kind # 0c69c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x04 # 0c6a0
mr r31, r8 # 0c6a4
bne+ major_0x0b07c_0x28 # 0c6a8
major_0x0c680_0x2c:
addi r30, r31, 0x10 # 0c6ac
lwz r8, 0x0018(r31) # 0c6b0
cmpw r8, r30 # 0c6b4
beq- major_0x0c680_0x60 # 0c6b8
lwz r16, 0x0008( r8) # 0c6bc
lwz r17, 0x000c( r8) # 0c6c0
stw r16, 0x0008(r17) # 0c6c4
stw r17, 0x000c(r16) # 0c6c8
li r16, 0x00 # 0c6cc
stw r16, 0x0008( r8) # 0c6d0
stw r16, 0x000c( r8) # 0c6d4
bl looks_like_poolextend # 0c6d8
b major_0x0c680_0x2c # 0c6dc
major_0x0c680_0x60:
lwz r30, 0x0028(r31) # 0c6e0
major_0x0c680_0x64:
mr. r8, r30 # 0c6e4
beq- major_0x0c680_0x78 # 0c6e8
lwz r30, 0x0008(r30) # 0c6ec
bl looks_like_poolextend # 0c6f0
b major_0x0c680_0x64 # 0c6f4
major_0x0c680_0x78:
mr r8, r3 # 0c6f8
bl major_0x0dce8 # 0c6fc
major_0x0c680_0x80:
addi r30, r31, 0x00 # 0c700
lwz r16, 0x0008(r31) # 0c704
cmpw r16, r30 # 0c708
addi r8, r16, -0x08 # 0c70c
beq- major_0x0c680_0xe4 # 0c710
lwz r17, 0x0088( r8) # 0c714
li r18, -0x726f # 0c718
stw r18, 0x011c(r17) # 0c71c
lbz r17, 0x0037( r8) # 0c720
cmpwi r17, 0x01 # 0c724
bne- major_0x0c680_0xb4 # 0c728
addi r8, r8, 0x20 # 0c72c
bl major_0x130f0_0x5d8 # 0c730
major_0x0c680_0xb4:
lwz r16, 0x0008(r31) # 0c734
lwz r17, 0x0008(r16) # 0c738
lwz r18, 0x000c(r16) # 0c73c
stw r17, 0x0008(r18) # 0c740
stw r18, 0x000c(r17) # 0c744
li r17, 0x00 # 0c748
stw r17, 0x0008(r16) # 0c74c
stw r17, 0x000c(r16) # 0c750
addi r8, r16, -0x08 # 0c754
bl major_0x13ed8_0x8 # 0c758
bl major_0x14af8 # 0c75c
b major_0x0c680_0x80 # 0c760
major_0x0c680_0xe4:
mr r8, r31 # 0c764
bl looks_like_poolextend # 0c768
mr r8, r3 # 0c76c
bl major_0x15300 # 0c770
# r1 = kdp
b syscall_return_assert_lock_unheld # 0c774
/***********************************************************
major_0x0c778
************************************************************
syscall 39
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0c778: /* < outside referer */
cmpwi r4, 0x00 # 0c778
blt+ syscall_return_kMPInsufficientResourcesErr # 0c77c
mr r16, r8 # 0c780
mr r17, r9 # 0c784
addi r8, r1, -0xb50 # 0c788
# r8 = lock
bl lock # 0c78c
mr r8, r16 # 0c790
mr r9, r17 # 0c794
mr r8, r3 # 0c798
# r8 = id
bl id_kind # 0c79c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x04 # 0c7a0
mr r31, r8 # 0c7a4
bne+ major_0x0b07c_0x28 # 0c7a8
lwz r29, 0x0024(r31) # 0c7ac
lwz r30, 0x0028(r31) # 0c7b0
cmpw r29, r4 # 0c7b4
# r1 = kdp
beq+ syscall_return_assert_lock_unheld # 0c7b8
blt- major_0x0c778_0x7c # 0c7bc
major_0x0c778_0x48:
mr. r8, r30 # 0c7c0
beq- major_0x0c778_0x70 # 0c7c4
addi r29, r29, -0x01 # 0c7c8
lwz r30, 0x0008(r30) # 0c7cc
bl looks_like_poolextend # 0c7d0
cmpw r29, r4 # 0c7d4
bgt+ major_0x0c778_0x48 # 0c7d8
stw r4, 0x0024(r31) # 0c7dc
stw r30, 0x0028(r31) # 0c7e0
# r1 = kdp
b syscall_return_assert_lock_unheld # 0c7e4
major_0x0c778_0x70:
stw r29, 0x0024(r31) # 0c7e8
stw r30, 0x0028(r31) # 0c7ec
b major_0x0af60_0xa4 # 0c7f0
major_0x0c778_0x7c:
li r8, 0x1c # 0c7f4
bl boring_with_crset # 0c7f8
cmpwi r8, 0x00 # 0c7fc
beq+ major_0x0af60 # 0c800
addi r29, r29, 0x01 # 0c804
lis r17, 0x6e6f # 0c808
ori r17, r17, 0x7472 # 0c80c
stw r17, 0x0004( r8) # 0c810
stw r30, 0x0008( r8) # 0c814
stw r29, 0x0024(r31) # 0c818
cmpw r29, r4 # 0c81c
stw r8, 0x0028(r31) # 0c820
mr r30, r8 # 0c824
blt+ major_0x0c778_0x7c # 0c828
# r1 = kdp
b syscall_return_assert_lock_unheld # 0c82c
/***********************************************************
major_0x0c830
************************************************************
syscall 17
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0c830: /* < outside referer */
mr r16, r8 # 0c830
mr r17, r9 # 0c834
addi r8, r1, -0xb50 # 0c838
# r8 = lock
bl lock # 0c83c
mr r8, r16 # 0c840
mr r9, r17 # 0c844
mr r8, r3 # 0c848
# r8 = id
bl id_kind # 0c84c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x04 # 0c850
mr r31, r8 # 0c854
bne+ major_0x0b07c_0x28 # 0c858
lwz r16, 0x0024(r31) # 0c85c
li r8, 0x1c # 0c860
cmpwi r16, 0x00 # 0c864
bne- major_0x0c830_0x58 # 0c868
bl boring_with_crset # 0c86c
cmpwi r8, 0x00 # 0c870
beq+ major_0x0af60 # 0c874
lis r17, 0x6e6f # 0c878
ori r17, r17, 0x7465 # 0c87c
stw r17, 0x0004( r8) # 0c880
b major_0x0c830_0x6c # 0c884
major_0x0c830_0x58:
lwz r17, 0x0028(r31) # 0c888
mr. r8, r17 # 0c88c
beq+ major_0x0af60_0xa4 # 0c890
lwz r17, 0x0008(r17) # 0c894
stw r17, 0x0028(r31) # 0c898
major_0x0c830_0x6c:
lwz r16, 0x0134( r6) # 0c89c
stw r4, 0x0010( r8) # 0c8a0
stw r5, 0x0014( r8) # 0c8a4
stw r16, 0x0018( r8) # 0c8a8
bl major_0x0c8b4 # 0c8ac
# r1 = kdp
b syscall_return_assert_lock_unheld # 0c8b0
/***********************************************************
major_0x0c8b4
************************************************************
Xrefs:
major_0x02ccc
major_0x0c830
major_0x0db04
major_0x0e604
major_0x0ea58
***********************************************************/
major_0x0c8b4: /* < outside referer */
addi r17, r31, 0x10 # 0c8b4
stw r17, 0x0000( r8) # 0c8b8
stw r17, 0x0008( r8) # 0c8bc
lwz r16, 0x000c(r17) # 0c8c0
stw r16, 0x000c( r8) # 0c8c4
stw r8, 0x0008(r16) # 0c8c8
stw r8, 0x000c(r17) # 0c8cc
lwz r18, 0x0030(r31) # 0c8d0
addi r18, r18, 0x01 # 0c8d4
stw r18, 0x0030(r31) # 0c8d8
mflr r27 # 0c8dc
lwz r8, 0x0000(r31) # 0c8e0
bl major_0x0dce8 # 0c8e4
lwz r16, 0x0008(r31) # 0c8e8
cmpw r16, r31 # 0c8ec
addi r8, r16, -0x08 # 0c8f0
beq- major_0x0c8b4_0xac # 0c8f4
lwz r17, 0x0088( r8) # 0c8f8
lwz r18, 0x00fc(r17) # 0c8fc
addi r18, r18, -0x04 # 0c900
stw r18, 0x00fc(r17) # 0c904
lbz r17, 0x0037( r8) # 0c908
cmpwi r17, 0x01 # 0c90c
bne- major_0x0c8b4_0x68 # 0c910
addi r8, r8, 0x20 # 0c914
bl major_0x130f0_0x5d8 # 0c918
major_0x0c8b4_0x68:
lwz r16, 0x0008(r31) # 0c91c
lwz r17, 0x0008(r16) # 0c920
lwz r18, 0x000c(r16) # 0c924
stw r17, 0x0008(r18) # 0c928
stw r18, 0x000c(r17) # 0c92c
li r17, 0x00 # 0c930
stw r17, 0x0008(r16) # 0c934
stw r17, 0x000c(r16) # 0c938
lwz r18, 0x002c(r31) # 0c93c
addi r18, r18, -0x01 # 0c940
stw r18, 0x002c(r31) # 0c944
addi r8, r16, -0x08 # 0c948
li r17, 0x01 # 0c94c
stb r17, 0x0019( r8) # 0c950
bl major_0x13ed8_0x8 # 0c954
bl major_0x149d4_0x8 # 0c958
bl major_0x14af8 # 0c95c
major_0x0c8b4_0xac:
mtlr r27 # 0c960
blr # 0c964
/***********************************************************
major_0x0c968
************************************************************
syscall 18
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0c968: /* < outside referer */
mr r16, r8 # 0c968
mr r17, r9 # 0c96c
addi r8, r1, -0xb50 # 0c970
# r8 = lock
bl lock # 0c974
mr r8, r16 # 0c978
mr r9, r17 # 0c97c
mr r8, r3 # 0c980
# r8 = id
bl id_kind # 0c984
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x04 # 0c988
bne+ major_0x0b07c_0x28 # 0c98c
mr r31, r8 # 0c990
lwz r16, 0x0018(r31) # 0c994
addi r17, r31, 0x10 # 0c998
cmpw r16, r17 # 0c99c
beq- major_0x0c968_0x9c # 0c9a0
lwz r4, 0x0010(r16) # 0c9a4
lwz r5, 0x0014(r16) # 0c9a8
lwz r17, 0x0018(r16) # 0c9ac
stw r17, 0x0134( r6) # 0c9b0
lwz r17, 0x0008(r16) # 0c9b4
lwz r18, 0x000c(r16) # 0c9b8
stw r17, 0x0008(r18) # 0c9bc
stw r18, 0x000c(r17) # 0c9c0
li r17, 0x00 # 0c9c4
stw r17, 0x0008(r16) # 0c9c8
stw r17, 0x000c(r16) # 0c9cc
lwz r18, 0x0030(r31) # 0c9d0
addi r18, r18, -0x01 # 0c9d4
stw r18, 0x0030(r31) # 0c9d8
lbz r17, 0x0007(r16) # 0c9dc
mr r8, r16 # 0c9e0
cmpwi r17, 0x72 # 0c9e4
beq- major_0x0c968_0x8c # 0c9e8
bl looks_like_poolextend # 0c9ec
# r1 = kdp
b syscall_return_assert_lock_unheld # 0c9f0
major_0x0c968_0x8c:
lwz r17, 0x0028(r31) # 0c9f4
stw r16, 0x0028(r31) # 0c9f8
stw r17, 0x0008(r16) # 0c9fc
# r1 = kdp
b syscall_return_assert_lock_unheld # 0ca00
major_0x0c968_0x9c:
lwz r17, 0x013c( r6) # 0ca04
mfspr r30, 272/*sprg0*/ # 0ca08
cmpwi r17, 0x00 # 0ca0c
lwz r19, -0x0008(r30) # 0ca10
beq+ major_0x0af60_0x54 # 0ca14
lwz r16, 0x0064(r19) # 0ca18
rlwinm. r16, r16, 0, 15, 15 # 0ca1c
beq- major_0x0c968_0xc4 # 0ca20
stw r3, -0x0410( r1) # 0ca24
b major_0x0b02c # 0ca28
major_0x0c968_0xc4:
mr r8, r19 # 0ca2c
bl major_0x13e4c # 0ca30
lwz r19, -0x0008(r30) # 0ca34
addi r16, r31, 0x00 # 0ca38
addi r17, r19, 0x08 # 0ca3c
stw r16, 0x0000(r17) # 0ca40
stw r16, 0x0008(r17) # 0ca44
lwz r18, 0x000c(r16) # 0ca48
stw r18, 0x000c(r17) # 0ca4c
stw r17, 0x0008(r18) # 0ca50
stw r17, 0x000c(r16) # 0ca54
lwz r18, 0x002c(r31) # 0ca58
addi r18, r18, 0x01 # 0ca5c
stw r18, 0x002c(r31) # 0ca60
lis r16, 0x7fff # 0ca64
lwz r17, 0x013c( r6) # 0ca68
ori r16, r16, 0xffff # 0ca6c
addi r30, r19, 0x20 # 0ca70
cmpw r17, r16 # 0ca74
li r16, 0x02 # 0ca78
beq- major_0x0c968_0x154 # 0ca7c
stb r16, 0x0014(r30) # 0ca80
stw r19, 0x0018(r30) # 0ca84
mr r8, r17 # 0ca88
# r1 = kdp
# r8 = multiple (pos: /250; neg: /250000)
bl scale_timebase # 0ca8c
# r8 = hi
# r9 = lo
mr r27, r8 # 0ca90
mr r28, r9 # 0ca94
bl bizarre # 0ca98
mfxer r16 # 0ca9c
addc r9, r9, r28 # 0caa0
adde r8, r8, r27 # 0caa4
mtxer r16 # 0caa8
stw r8, 0x0038(r30) # 0caac
stw r9, 0x003c(r30) # 0cab0
mr r8, r30 # 0cab4
bl major_0x130f0_0x524 # 0cab8
major_0x0c968_0x154:
b major_0x0b0fc # 0cabc
/***********************************************************
major_0x0cac0
************************************************************
syscall 19
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0cac0: /* < outside referer */
mr r16, r8 # 0cac0
mr r17, r9 # 0cac4
addi r8, r1, -0xb50 # 0cac8
# r8 = lock
bl lock # 0cacc
mr r8, r16 # 0cad0
mr r9, r17 # 0cad4
mr r8, r3 # 0cad8
# r8 = id
bl id_kind # 0cadc
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x04 # 0cae0
bne+ major_0x0b07c_0x28 # 0cae4
mr r31, r8 # 0cae8
lwz r16, 0x0018(r31) # 0caec
addi r17, r31, 0x10 # 0caf0
cmpw r16, r17 # 0caf4
beq+ major_0x0af60_0x54 # 0caf8
# r1 = kdp
b syscall_return_assert_lock_unheld # 0cafc
/***********************************************************
major_0x0cb00
************************************************************
syscall 20
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0cb00: /* < outside referer */
cmpw r4, r3 # 0cb00
bgt+ syscall_return_kMPInsufficientResourcesErr # 0cb04
li r8, 0x20 # 0cb08
bl boring_with_crset # 0cb0c
mr. r31, r8 # 0cb10
beq+ major_0x0af60_0x20 # 0cb14
lis r16, 0x5345 # 0cb18
stw r31, 0x0008(r31) # 0cb1c
ori r16, r16, 0x4d41 # 0cb20
stw r31, 0x000c(r31) # 0cb24
stw r16, 0x0004(r31) # 0cb28
mr r16, r8 # 0cb2c
mr r17, r9 # 0cb30
addi r8, r1, -0xb50 # 0cb34
# r8 = lock
bl lock # 0cb38
mr r8, r16 # 0cb3c
mr r9, r17 # 0cb40
li r9, 0x05 # 0cb44
bl major_0x151b0 # 0cb48
cmpwi r8, 0x00 # 0cb4c
bne+ major_0x0cb00_0x60 # 0cb50
mr r8, r31 # 0cb54
bl looks_like_poolextend # 0cb58
b major_0x0af60 # 0cb5c
major_0x0cb00_0x60:
li r18, 0x00 # 0cb60
stw r8, 0x0000(r31) # 0cb64
mfspr r30, 272/*sprg0*/ # 0cb68
lwz r30, -0x0008(r30) # 0cb6c
stw r3, 0x0014(r31) # 0cb70
stw r4, 0x0010(r31) # 0cb74
lwz r17, 0x0060(r30) # 0cb78
stw r18, 0x001c(r31) # 0cb7c
stw r17, 0x0018(r31) # 0cb80
mr r5, r8 # 0cb84
# r1 = kdp
b syscall_return_assert_lock_unheld # 0cb88
/***********************************************************
major_0x0cb8c
************************************************************
syscall 23
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0cb8c: /* < outside referer */
mr r16, r8 # 0cb8c
mr r17, r9 # 0cb90
addi r8, r1, -0xb50 # 0cb94
# r8 = lock
bl lock # 0cb98
mr r8, r16 # 0cb9c
mr r9, r17 # 0cba0
mr r8, r3 # 0cba4
# r8 = id
bl id_kind # 0cba8
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x05 # 0cbac
bne+ major_0x0b07c_0x28 # 0cbb0
mr r31, r8 # 0cbb4
lwz r16, 0x0010(r31) # 0cbb8
cmpwi r16, 0x00 # 0cbbc
addi r16, r16, -0x01 # 0cbc0
ble- major_0x0cb8c_0x44 # 0cbc4
stw r16, 0x0010(r31) # 0cbc8
# r1 = kdp
b syscall_return_assert_lock_unheld # 0cbcc
major_0x0cb8c_0x44:
cmpwi r4, 0x00 # 0cbd0
mfspr r30, 272/*sprg0*/ # 0cbd4
beq+ major_0x0af60_0x54 # 0cbd8
lwz r8, -0x0008(r30) # 0cbdc
lwz r16, 0x0064( r8) # 0cbe0
rlwinm. r16, r16, 0, 15, 15 # 0cbe4
beq- major_0x0cb8c_0x68 # 0cbe8
stw r3, -0x0410( r1) # 0cbec
b major_0x0b02c # 0cbf0
major_0x0cb8c_0x68:
bl major_0x13e4c # 0cbf4
addi r16, r31, 0x00 # 0cbf8
addi r17, r8, 0x08 # 0cbfc
stw r16, 0x0000(r17) # 0cc00
stw r16, 0x0008(r17) # 0cc04
lwz r18, 0x000c(r16) # 0cc08
stw r18, 0x000c(r17) # 0cc0c
stw r17, 0x0008(r18) # 0cc10
stw r17, 0x000c(r16) # 0cc14
lwz r18, 0x001c(r31) # 0cc18
addi r18, r18, 0x01 # 0cc1c
stw r18, 0x001c(r31) # 0cc20
lis r16, 0x7fff # 0cc24
addi r30, r8, 0x20 # 0cc28
ori r16, r16, 0xffff # 0cc2c
cmpw r4, r16 # 0cc30
li r17, 0x02 # 0cc34
beq- major_0x0cb8c_0xec # 0cc38
stb r17, 0x0014(r30) # 0cc3c
stw r8, 0x0018(r30) # 0cc40
mr r8, r4 # 0cc44
# r1 = kdp
# r8 = multiple (pos: /250; neg: /250000)
bl scale_timebase # 0cc48
# r8 = hi
# r9 = lo
mr r27, r8 # 0cc4c
mr r28, r9 # 0cc50
bl bizarre # 0cc54
mfxer r16 # 0cc58
addc r9, r9, r28 # 0cc5c
adde r8, r8, r27 # 0cc60
mtxer r16 # 0cc64
stw r8, 0x0038(r30) # 0cc68
stw r9, 0x003c(r30) # 0cc6c
mr r8, r30 # 0cc70
bl major_0x130f0_0x524 # 0cc74
major_0x0cb8c_0xec:
li r3, 0x00 # 0cc78
b major_0x0b0fc # 0cc7c
/***********************************************************
major_0x0cc80
************************************************************
syscall 24
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0cc80: /* < outside referer */
mr r16, r8 # 0cc80
mr r17, r9 # 0cc84
addi r8, r1, -0xb50 # 0cc88
# r8 = lock
bl lock # 0cc8c
mr r8, r16 # 0cc90
mr r9, r17 # 0cc94
mr r8, r3 # 0cc98
# r8 = id
bl id_kind # 0cc9c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x05 # 0cca0
bne+ major_0x0b07c_0x28 # 0cca4
mr r31, r8 # 0cca8
lwz r16, 0x0010(r31) # 0ccac
cmpwi r16, 0x00 # 0ccb0
ble+ major_0x0af60_0x54 # 0ccb4
# r1 = kdp
b syscall_return_assert_lock_unheld # 0ccb8
/***********************************************************
major_0x0ccbc
************************************************************
syscall 22
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0ccbc: /* < outside referer */
mr r16, r8 # 0ccbc
mr r17, r9 # 0ccc0
addi r8, r1, -0xb50 # 0ccc4
# r8 = lock
bl lock # 0ccc8
mr r8, r16 # 0cccc
mr r9, r17 # 0ccd0
mr r8, r3 # 0ccd4
# r8 = id
bl id_kind # 0ccd8
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x05 # 0ccdc
mr r31, r8 # 0cce0
bne+ major_0x0b07c_0x28 # 0cce4
bl major_0x0ccf4 # 0cce8
mr r3, r8 # 0ccec
b major_0x0b0fc_0x8 # 0ccf0
/***********************************************************
major_0x0ccf4
************************************************************
Xrefs:
major_0x0ccbc
major_0x0db04
***********************************************************/
major_0x0ccf4: /* < outside referer */
mflr r27 # 0ccf4
lwz r8, 0x0000(r31) # 0ccf8
bl major_0x0dce8 # 0ccfc
lwz r16, 0x0008(r31) # 0cd00
cmpw r16, r31 # 0cd04
beq- major_0x0ccf4_0x80 # 0cd08
addi r8, r16, -0x08 # 0cd0c
lbz r17, 0x0037( r8) # 0cd10
cmpwi r17, 0x01 # 0cd14
bne- major_0x0ccf4_0x30 # 0cd18
addi r8, r8, 0x20 # 0cd1c
bl major_0x130f0_0x5d8 # 0cd20
major_0x0ccf4_0x30:
lwz r16, 0x0008(r31) # 0cd24
lwz r17, 0x0008(r16) # 0cd28
lwz r18, 0x000c(r16) # 0cd2c
stw r17, 0x0008(r18) # 0cd30
stw r18, 0x000c(r17) # 0cd34
li r17, 0x00 # 0cd38
stw r17, 0x0008(r16) # 0cd3c
stw r17, 0x000c(r16) # 0cd40
lwz r18, 0x001c(r31) # 0cd44
addi r18, r18, -0x01 # 0cd48
stw r18, 0x001c(r31) # 0cd4c
addi r8, r16, -0x08 # 0cd50
li r17, 0x01 # 0cd54
stb r17, 0x0019( r8) # 0cd58
bl major_0x13ed8_0x8 # 0cd5c
bl major_0x149d4_0x8 # 0cd60
bl major_0x14af8 # 0cd64
mtlr r27 # 0cd68
li r8, 0x00 # 0cd6c
blr # 0cd70
major_0x0ccf4_0x80:
mtlr r27 # 0cd74
lwz r16, 0x0010(r31) # 0cd78
lwz r17, 0x0014(r31) # 0cd7c
cmpw r16, r17 # 0cd80
addi r16, r16, 0x01 # 0cd84
li r8, -0x7272 # 0cd88
bgelr- # 0cd8c
stw r16, 0x0010(r31) # 0cd90
li r8, 0x00 # 0cd94
blr # 0cd98
/***********************************************************
major_0x0cd9c
************************************************************
syscall 21
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0cd9c: /* < outside referer */
mr r16, r8 # 0cd9c
mr r17, r9 # 0cda0
addi r8, r1, -0xb50 # 0cda4
# r8 = lock
bl lock # 0cda8
mr r8, r16 # 0cdac
mr r9, r17 # 0cdb0
mr r8, r3 # 0cdb4
# r8 = id
bl id_kind # 0cdb8
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x05 # 0cdbc
mr r31, r8 # 0cdc0
bne+ major_0x0b07c_0x28 # 0cdc4
mr r8, r3 # 0cdc8
bl major_0x0dce8 # 0cdcc
major_0x0cd9c_0x34:
addi r30, r31, 0x00 # 0cdd0
lwz r16, 0x0008(r31) # 0cdd4
cmpw r16, r30 # 0cdd8
addi r8, r16, -0x08 # 0cddc
beq- major_0x0cd9c_0x98 # 0cde0
lwz r17, 0x0088( r8) # 0cde4
li r18, -0x726f # 0cde8
stw r18, 0x011c(r17) # 0cdec
lbz r17, 0x0037( r8) # 0cdf0
cmpwi r17, 0x01 # 0cdf4
bne- major_0x0cd9c_0x68 # 0cdf8
addi r8, r8, 0x20 # 0cdfc
bl major_0x130f0_0x5d8 # 0ce00
major_0x0cd9c_0x68:
lwz r16, 0x0008(r31) # 0ce04
lwz r17, 0x0008(r16) # 0ce08
lwz r18, 0x000c(r16) # 0ce0c
stw r17, 0x0008(r18) # 0ce10
stw r18, 0x000c(r17) # 0ce14
li r17, 0x00 # 0ce18
stw r17, 0x0008(r16) # 0ce1c
stw r17, 0x000c(r16) # 0ce20
addi r8, r16, -0x08 # 0ce24
bl major_0x13ed8_0x8 # 0ce28
bl major_0x14af8 # 0ce2c
b major_0x0cd9c_0x34 # 0ce30
major_0x0cd9c_0x98:
mr r8, r31 # 0ce34
bl looks_like_poolextend # 0ce38
mr r8, r3 # 0ce3c
bl major_0x15300 # 0ce40
# r1 = kdp
b syscall_return_assert_lock_unheld # 0ce44
/***********************************************************
major_0x0ce48
************************************************************
syscall 25
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0ce48: /* < outside referer */
li r8, 0x24 # 0ce48
bl boring_with_crset # 0ce4c
mr. r31, r8 # 0ce50
beq+ major_0x0af60_0x20 # 0ce54
lis r16, 0x4352 # 0ce58
stw r31, 0x0008(r31) # 0ce5c
ori r16, r16, 0x474e # 0ce60
stw r31, 0x000c(r31) # 0ce64
stw r16, 0x0004(r31) # 0ce68
mr r16, r8 # 0ce6c
mr r17, r9 # 0ce70
addi r8, r1, -0xb50 # 0ce74
# r8 = lock
bl lock # 0ce78
mr r8, r16 # 0ce7c
mr r9, r17 # 0ce80
li r9, 0x06 # 0ce84
bl major_0x151b0 # 0ce88
cmpwi r8, 0x00 # 0ce8c
bne+ major_0x0ce48_0x58 # 0ce90
mr r8, r31 # 0ce94
bl looks_like_poolextend # 0ce98
b major_0x0af60 # 0ce9c
major_0x0ce48_0x58:
li r18, 0x00 # 0cea0
mfspr r30, 272/*sprg0*/ # 0cea4
lwz r30, -0x0008(r30) # 0cea8
li r16, 0x00 # 0ceac
stw r8, 0x0000(r31) # 0ceb0
stw r16, 0x0014(r31) # 0ceb4
stw r16, 0x001c(r31) # 0ceb8
stw r16, 0x0018(r31) # 0cebc
lwz r17, 0x0060(r30) # 0cec0
stw r18, 0x0020(r31) # 0cec4
stw r17, 0x0010(r31) # 0cec8
mr r4, r8 # 0cecc
# r1 = kdp
b syscall_return_assert_lock_unheld # 0ced0
/***********************************************************
major_0x0ced4
************************************************************
syscall 27
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0ced4: /* < outside referer */
mr r16, r8 # 0ced4
mr r17, r9 # 0ced8
addi r8, r1, -0xb50 # 0cedc
# r8 = lock
bl lock # 0cee0
mr r8, r16 # 0cee4
mr r9, r17 # 0cee8
mr r8, r3 # 0ceec
# r8 = id
bl id_kind # 0cef0
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x06 # 0cef4
bne+ major_0x0b07c_0x28 # 0cef8
mr r31, r8 # 0cefc
mfspr r17, 272/*sprg0*/ # 0cf00
lwz r18, 0x0014(r31) # 0cf04
lwz r30, -0x0008(r17) # 0cf08
cmpwi r18, 0x00 # 0cf0c
lwz r16, 0x0018(r31) # 0cf10
beq- major_0x0ced4_0x64 # 0cf14
lwz r17, 0x001c(r31) # 0cf18
cmpw r16, r30 # 0cf1c
cmpw cr1, r17, r5 # 0cf20
bne- major_0x0ced4_0x78 # 0cf24
bne- cr1, major_0x0ced4_0x78 # 0cf28
addi r18, r18, 0x01 # 0cf2c
stw r18, 0x0014(r31) # 0cf30
# r1 = kdp
b syscall_return_assert_lock_unheld # 0cf34
major_0x0ced4_0x64:
addi r18, r18, 0x01 # 0cf38
stw r30, 0x0018(r31) # 0cf3c
stw r5, 0x001c(r31) # 0cf40
stw r18, 0x0014(r31) # 0cf44
# r1 = kdp
b syscall_return_assert_lock_unheld # 0cf48
major_0x0ced4_0x78:
lwz r8, 0x0000(r16) # 0cf4c
# r8 = id
bl id_kind # 0cf50
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x02 # 0cf54
bne+ major_0x0af60_0x7c # 0cf58
lwz r8, 0x001c(r31) # 0cf5c
# r8 = id
bl id_kind # 0cf60
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x01 # 0cf64
bne+ major_0x0af60_0x7c # 0cf68
cmpwi r4, 0x00 # 0cf6c
lwz r16, 0x0064(r30) # 0cf70
beq+ major_0x0af60_0x54 # 0cf74
rlwinm. r16, r16, 0, 15, 15 # 0cf78
beq- major_0x0ced4_0xb4 # 0cf7c
stw r3, -0x0410( r1) # 0cf80
b major_0x0b02c # 0cf84
major_0x0ced4_0xb4:
mr r8, r30 # 0cf88
bl major_0x13e4c # 0cf8c
lis r16, 0x7fff # 0cf90
addi r18, r30, 0x08 # 0cf94
ori r16, r16, 0xffff # 0cf98
stw r31, 0x0000(r18) # 0cf9c
stw r31, 0x0008(r18) # 0cfa0
lwz r19, 0x000c(r31) # 0cfa4
stw r19, 0x000c(r18) # 0cfa8
stw r18, 0x0008(r19) # 0cfac
stw r18, 0x000c(r31) # 0cfb0
lwz r18, 0x0020(r31) # 0cfb4
addi r18, r18, 0x01 # 0cfb8
stw r18, 0x0020(r31) # 0cfbc
cmpw r4, r16 # 0cfc0
beq- major_0x0ced4_0x138 # 0cfc4
addi r29, r30, 0x20 # 0cfc8
li r8, 0x02 # 0cfcc
stw r30, 0x0018(r29) # 0cfd0
stb r8, 0x0014(r29) # 0cfd4
mr r8, r4 # 0cfd8
# r1 = kdp
# r8 = multiple (pos: /250; neg: /250000)
bl scale_timebase # 0cfdc
# r8 = hi
# r9 = lo
mr r27, r8 # 0cfe0
mr r28, r9 # 0cfe4
bl bizarre # 0cfe8
mfxer r16 # 0cfec
addc r9, r9, r28 # 0cff0
adde r8, r8, r27 # 0cff4
mtxer r16 # 0cff8
stw r8, 0x0038(r29) # 0cffc
stw r9, 0x003c(r29) # 0d000
mr r8, r29 # 0d004
bl major_0x130f0_0x524 # 0d008
major_0x0ced4_0x138:
b major_0x0b0fc # 0d00c
/***********************************************************
major_0x0d010
************************************************************
syscall 29
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0d010: /* < outside referer */
mr r16, r8 # 0d010
mr r17, r9 # 0d014
addi r8, r1, -0xb50 # 0d018
# r8 = lock
bl lock # 0d01c
mr r8, r16 # 0d020
mr r9, r17 # 0d024
mr r8, r3 # 0d028
# r8 = id
bl id_kind # 0d02c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x06 # 0d030
bne+ major_0x0b07c_0x28 # 0d034
mr r31, r8 # 0d038
mfspr r17, 272/*sprg0*/ # 0d03c
lwz r18, 0x0014(r31) # 0d040
cmpwi r18, 0x00 # 0d044
# r1 = kdp
beq+ syscall_return_assert_lock_unheld # 0d048
lwz r30, -0x0008(r17) # 0d04c
lwz r16, 0x0018(r31) # 0d050
lwz r17, 0x001c(r31) # 0d054
cmpw r16, r30 # 0d058
cmpw cr1, r17, r4 # 0d05c
bne+ major_0x0af60_0x54 # 0d060
bne+ cr1, major_0x0af60_0x54 # 0d064
# r1 = kdp
b syscall_return_assert_lock_unheld # 0d068
/***********************************************************
major_0x0d06c
************************************************************
syscall 28
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0d06c: /* < outside referer */
mr r16, r8 # 0d06c
mr r17, r9 # 0d070
addi r8, r1, -0xb50 # 0d074
# r8 = lock
bl lock # 0d078
mr r8, r16 # 0d07c
mr r9, r17 # 0d080
mr r8, r3 # 0d084
# r8 = id
bl id_kind # 0d088
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x06 # 0d08c
bne+ major_0x0b07c_0x28 # 0d090
mr r31, r8 # 0d094
mfspr r17, 272/*sprg0*/ # 0d098
lwz r16, 0x0018(r31) # 0d09c
lwz r30, -0x0008(r17) # 0d0a0
lwz r18, 0x0014(r31) # 0d0a4
lwz r17, 0x001c(r31) # 0d0a8
cmpw r16, r30 # 0d0ac
cmpw cr1, r17, r4 # 0d0b0
bne+ major_0x0af60_0xa4 # 0d0b4
bne+ cr1, major_0x0af60_0xa4 # 0d0b8
addi r18, r18, -0x01 # 0d0bc
cmpwi r18, 0x00 # 0d0c0
stw r18, 0x0014(r31) # 0d0c4
# r1 = kdp
bne+ syscall_return_assert_lock_unheld # 0d0c8
stw r18, 0x0018(r31) # 0d0cc
stw r18, 0x001c(r31) # 0d0d0
mr r8, r3 # 0d0d4
bl major_0x0dce8 # 0d0d8
lwz r16, 0x0008(r31) # 0d0dc
cmpw r16, r31 # 0d0e0
# r1 = kdp
beq+ syscall_return_assert_lock_unheld # 0d0e4
addi r8, r16, -0x08 # 0d0e8
lbz r17, 0x0037( r8) # 0d0ec
cmpwi r17, 0x01 # 0d0f0
bne- major_0x0d06c_0x94 # 0d0f4
addi r8, r8, 0x20 # 0d0f8
bl major_0x130f0_0x5d8 # 0d0fc
major_0x0d06c_0x94:
lwz r16, 0x0008(r31) # 0d100
lwz r17, 0x0008(r16) # 0d104
lwz r18, 0x000c(r16) # 0d108
stw r17, 0x0008(r18) # 0d10c
stw r18, 0x000c(r17) # 0d110
li r17, 0x00 # 0d114
stw r17, 0x0008(r16) # 0d118
stw r17, 0x000c(r16) # 0d11c
lwz r18, 0x0020(r31) # 0d120
addi r18, r18, -0x01 # 0d124
stw r18, 0x0020(r31) # 0d128
addi r8, r16, -0x08 # 0d12c
lwz r17, 0x0088( r8) # 0d130
lwz r18, 0x00fc(r17) # 0d134
addi r18, r18, -0x04 # 0d138
stw r18, 0x00fc(r17) # 0d13c
li r17, 0x01 # 0d140
stb r17, 0x0019( r8) # 0d144
bl major_0x13ed8_0x8 # 0d148
bl major_0x149d4_0x8 # 0d14c
bl major_0x14af8 # 0d150
# r1 = kdp
b syscall_return_assert_lock_unheld # 0d154
/***********************************************************
major_0x0d158
************************************************************
syscall 26
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0d158: /* < outside referer */
mr r16, r8 # 0d158
mr r17, r9 # 0d15c
addi r8, r1, -0xb50 # 0d160
# r8 = lock
bl lock # 0d164
mr r8, r16 # 0d168
mr r9, r17 # 0d16c
mr r8, r3 # 0d170
# r8 = id
bl id_kind # 0d174
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x06 # 0d178
mr r31, r8 # 0d17c
bne+ major_0x0b07c_0x28 # 0d180
mr r8, r3 # 0d184
bl major_0x0dce8 # 0d188
major_0x0d158_0x34:
addi r30, r31, 0x00 # 0d18c
lwz r16, 0x0008(r31) # 0d190
cmpw r16, r30 # 0d194
addi r8, r16, -0x08 # 0d198
beq- major_0x0d158_0x98 # 0d19c
lwz r17, 0x0088( r8) # 0d1a0
li r18, -0x726f # 0d1a4
stw r18, 0x011c(r17) # 0d1a8
lbz r17, 0x0037( r8) # 0d1ac
cmpwi r17, 0x01 # 0d1b0
bne- major_0x0d158_0x68 # 0d1b4
addi r8, r8, 0x20 # 0d1b8
bl major_0x130f0_0x5d8 # 0d1bc
major_0x0d158_0x68:
lwz r16, 0x0008(r31) # 0d1c0
lwz r17, 0x0008(r16) # 0d1c4
lwz r18, 0x000c(r16) # 0d1c8
stw r17, 0x0008(r18) # 0d1cc
stw r18, 0x000c(r17) # 0d1d0
li r17, 0x00 # 0d1d4
stw r17, 0x0008(r16) # 0d1d8
stw r17, 0x000c(r16) # 0d1dc
addi r8, r16, -0x08 # 0d1e0
bl major_0x13ed8_0x8 # 0d1e4
bl major_0x14af8 # 0d1e8
b major_0x0d158_0x34 # 0d1ec
major_0x0d158_0x98:
mr r8, r31 # 0d1f0
bl looks_like_poolextend # 0d1f4
mr r8, r3 # 0d1f8
bl major_0x15300 # 0d1fc
# r1 = kdp
b syscall_return_assert_lock_unheld # 0d200
/***********************************************************
major_0x0d204
************************************************************
syscall 49
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0d204: /* < outside referer */
li r8, 0x20 # 0d204
# r1 = kdp
bl boring # 0d208
mr. r31, r8 # 0d20c
beq+ major_0x0af60_0x20 # 0d210
lis r16, 0x4556 # 0d214
stw r8, 0x0008( r8) # 0d218
ori r16, r16, 0x4e54 # 0d21c
stw r8, 0x000c( r8) # 0d220
stw r16, 0x0004( r8) # 0d224
mr r16, r8 # 0d228
mr r17, r9 # 0d22c
addi r8, r1, -0xb50 # 0d230
# r8 = lock
bl lock # 0d234
mr r8, r16 # 0d238
mr r9, r17 # 0d23c
li r9, 0x09 # 0d240
bl major_0x151b0 # 0d244
cmpwi r8, 0x00 # 0d248
bne+ major_0x0d204_0x58 # 0d24c
mr r8, r31 # 0d250
bl looks_like_poolextend # 0d254
b major_0x0af60 # 0d258
major_0x0d204_0x58:
mfspr r30, 272/*sprg0*/ # 0d25c
lwz r30, -0x0008(r30) # 0d260
stw r8, 0x0000(r31) # 0d264
lwz r17, 0x0060(r30) # 0d268
stw r17, 0x0014(r31) # 0d26c
mr r4, r8 # 0d270
# r1 = kdp
b syscall_return_assert_lock_unheld # 0d274
/***********************************************************
major_0x0d278
************************************************************
syscall 50
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0d278: /* < outside referer */
mr r16, r8 # 0d278
mr r17, r9 # 0d27c
addi r8, r1, -0xb50 # 0d280
# r8 = lock
bl lock # 0d284
mr r8, r16 # 0d288
mr r9, r17 # 0d28c
mr r8, r3 # 0d290
# r8 = id
bl id_kind # 0d294
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x09 # 0d298
mr r31, r8 # 0d29c
bne+ major_0x0b07c_0x28 # 0d2a0
mr r8, r3 # 0d2a4
bl major_0x0dce8 # 0d2a8
major_0x0d278_0x34:
addi r30, r31, 0x00 # 0d2ac
lwz r16, 0x0008(r31) # 0d2b0
cmpw r16, r30 # 0d2b4
addi r8, r16, -0x08 # 0d2b8
beq- major_0x0d278_0x98 # 0d2bc
lwz r17, 0x0088( r8) # 0d2c0
li r18, -0x726f # 0d2c4
stw r18, 0x011c(r17) # 0d2c8
lbz r17, 0x0037( r8) # 0d2cc
cmpwi r17, 0x01 # 0d2d0
bne- major_0x0d278_0x68 # 0d2d4
addi r8, r8, 0x20 # 0d2d8
bl major_0x130f0_0x5d8 # 0d2dc
major_0x0d278_0x68:
lwz r16, 0x0008(r31) # 0d2e0
lwz r17, 0x0008(r16) # 0d2e4
lwz r18, 0x000c(r16) # 0d2e8
stw r17, 0x0008(r18) # 0d2ec
stw r18, 0x000c(r17) # 0d2f0
li r17, 0x00 # 0d2f4
stw r17, 0x0008(r16) # 0d2f8
stw r17, 0x000c(r16) # 0d2fc
addi r8, r16, -0x08 # 0d300
bl major_0x13ed8_0x8 # 0d304
bl major_0x14af8 # 0d308
b major_0x0d278_0x34 # 0d30c
major_0x0d278_0x98:
mr r8, r31 # 0d310
bl looks_like_poolextend # 0d314
mr r8, r3 # 0d318
bl major_0x15300 # 0d31c
# r1 = kdp
b syscall_return_assert_lock_unheld # 0d320
/***********************************************************
major_0x0d324
************************************************************
syscall 51
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0d324: /* < outside referer */
mr r16, r8 # 0d324
mr r17, r9 # 0d328
addi r8, r1, -0xb50 # 0d32c
# r8 = lock
bl lock # 0d330
mr r8, r16 # 0d334
mr r9, r17 # 0d338
mr r8, r3 # 0d33c
# r8 = id
bl id_kind # 0d340
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x09 # 0d344
mr r31, r8 # 0d348
bne+ major_0x0b07c_0x28 # 0d34c
mr r8, r4 # 0d350
bl major_0x0d35c # 0d354
# r1 = kdp
b syscall_return_assert_lock_unheld # 0d358
/***********************************************************
major_0x0d35c
************************************************************
Xrefs:
major_0x0d324
major_0x0db04
major_0x1139c
***********************************************************/
major_0x0d35c: /* < outside referer */
lwz r16, 0x0010(r31) # 0d35c
or r16, r16, r8 # 0d360
stw r16, 0x0010(r31) # 0d364
mflr r27 # 0d368
lwz r8, 0x0000(r31) # 0d36c
bl major_0x0dce8 # 0d370
lwz r16, 0x0008(r31) # 0d374
cmpw r16, r31 # 0d378
addi r8, r16, -0x08 # 0d37c
beq- major_0x0d35c_0x90 # 0d380
lwz r17, 0x0088( r8) # 0d384
lwz r18, 0x00fc(r17) # 0d388
addi r18, r18, -0x04 # 0d38c
stw r18, 0x00fc(r17) # 0d390
lbz r17, 0x0037( r8) # 0d394
cmpwi r17, 0x01 # 0d398
bne- major_0x0d35c_0x4c # 0d39c
addi r8, r8, 0x20 # 0d3a0
bl major_0x130f0_0x5d8 # 0d3a4
major_0x0d35c_0x4c:
lwz r16, 0x0008(r31) # 0d3a8
lwz r17, 0x0008(r16) # 0d3ac
lwz r18, 0x000c(r16) # 0d3b0
stw r17, 0x0008(r18) # 0d3b4
stw r18, 0x000c(r17) # 0d3b8
li r17, 0x00 # 0d3bc
stw r17, 0x0008(r16) # 0d3c0
stw r17, 0x000c(r16) # 0d3c4
lwz r18, 0x001c(r31) # 0d3c8
addi r18, r18, -0x01 # 0d3cc
stw r18, 0x001c(r31) # 0d3d0
addi r8, r16, -0x08 # 0d3d4
li r17, 0x01 # 0d3d8
stb r17, 0x0019( r8) # 0d3dc
bl major_0x13ed8_0x8 # 0d3e0
bl major_0x149d4_0x8 # 0d3e4
bl major_0x14af8 # 0d3e8
major_0x0d35c_0x90:
lwz r16, 0x0018(r31) # 0d3ec
rlwinm. r17, r16, 0, 27, 27 # 0d3f0
beq- major_0x0d35c_0x1a0 # 0d3f4
lwz r17, 0x0658( r1) # 0d3f8
lwz r26, -0x08f0( r1) # 0d3fc
lwz r18, 0x00c8(r17) # 0d400
lwz r19, 0x00d0(r17) # 0d404
cmpwi cr1, r18, 0x00 # 0d408
cmpwi r19, 0x00 # 0d40c
bne- cr1, major_0x0d35c_0xc8 # 0d410
bne- major_0x0d35c_0x1a0 # 0d414
lwz r8, 0x0000(r31) # 0d418
stw r8, 0x00d0(r17) # 0d41c
b major_0x0d35c_0x118 # 0d420
major_0x0d35c_0xc8:
lwz r9, 0x0634( r1) # 0d424
rlwinm r16, r16, 2, 26, 29 # 0d428
add r18, r18, r9 # 0d42c
lwzx r19, r16, r18 # 0d430
cmpwi r19, 0x00 # 0d434
bne- major_0x0d35c_0x1a0 # 0d438
lwz r8, 0x0000(r31) # 0d43c
stwx r8, r16, r18 # 0d440
li r19, 0x1c # 0d444
li r9, 0x04 # 0d448
major_0x0d35c_0xf0:
lwzx r8, r19, r18 # 0d44c
cmpwi r8, 0x00 # 0d450
bne- major_0x0d35c_0x108 # 0d454
subf. r19, r9, r19 # 0d458
bgt+ major_0x0d35c_0xf0 # 0d45c
bl panic # 0d460
major_0x0d35c_0x108:
cmplw r16, r19 # 0d464
srwi r16, r16, 2 # 0d468
blt- major_0x0d35c_0x1a0 # 0d46c
stw r16, 0x00d0(r17) # 0d470
major_0x0d35c_0x118:
lwz r16, 0x0064(r26) # 0d474
lbz r19, 0x0018(r26) # 0d478
ori r16, r16, 0x10 # 0d47c
stw r16, 0x0064(r26) # 0d480
lwz r17, -0x0440( r1) # 0d484
lwz r16, 0x0674( r1) # 0d488
lwz r8, 0x0678( r1) # 0d48c
and r16, r16, r8 # 0d490
or r17, r17, r16 # 0d494
stw r17, -0x0440( r1) # 0d498
cmpwi r19, 0x00 # 0d49c
addi r16, r26, 0x08 # 0d4a0
bne- major_0x0d35c_0x198 # 0d4a4
lwz r17, 0x0008(r16) # 0d4a8
lwz r18, 0x000c(r16) # 0d4ac
stw r17, 0x0008(r18) # 0d4b0
stw r18, 0x000c(r17) # 0d4b4
li r17, 0x00 # 0d4b8
stw r17, 0x0008(r16) # 0d4bc
stw r17, 0x000c(r16) # 0d4c0
lbz r17, 0x0037(r26) # 0d4c4
cmpwi r17, 0x01 # 0d4c8
bne- major_0x0d35c_0x17c # 0d4cc
addi r8, r26, 0x20 # 0d4d0
bl major_0x130f0_0x5d8 # 0d4d4
major_0x0d35c_0x17c:
lwz r18, -0x08f0( r1) # 0d4d8
li r16, 0x00 # 0d4dc
stb r16, 0x0019(r26) # 0d4e0
mr r8, r26 # 0d4e4
bl major_0x13ed8 # 0d4e8
mr r8, r26 # 0d4ec
bl major_0x149d4_0x8 # 0d4f0
major_0x0d35c_0x198:
mr r8, r26 # 0d4f4
bl major_0x14af8 # 0d4f8
major_0x0d35c_0x1a0:
mtlr r27 # 0d4fc
blr # 0d500
/***********************************************************
major_0x0d504
************************************************************
syscall 52
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0d504: /* < outside referer */
mr r16, r8 # 0d504
mr r17, r9 # 0d508
addi r8, r1, -0xb50 # 0d50c
# r8 = lock
bl lock # 0d510
mr r8, r16 # 0d514
mr r9, r17 # 0d518
mr r8, r3 # 0d51c
# r8 = id
bl id_kind # 0d520
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x09 # 0d524
bne+ major_0x0b07c_0x28 # 0d528
mr r31, r8 # 0d52c
lwz r16, 0x0010(r31) # 0d530
cmpwi r16, 0x00 # 0d534
beq- major_0x0d504_0xc0 # 0d538
mr r4, r16 # 0d53c
li r16, 0x00 # 0d540
stw r16, 0x0010(r31) # 0d544
lwz r16, 0x0018(r31) # 0d548
lwz r17, 0x0658( r1) # 0d54c
rlwinm. r18, r16, 0, 27, 27 # 0d550
rlwinm r16, r16, 2, 26, 29 # 0d554
# r1 = kdp
beq+ syscall_return_assert_lock_unheld # 0d558
lwz r18, 0x00c8(r17) # 0d55c
lwz r9, 0x0634( r1) # 0d560
cmpwi r18, 0x00 # 0d564
add r18, r18, r9 # 0d568
bne- major_0x0d504_0x84 # 0d56c
lwz r18, 0x00d0(r17) # 0d570
cmpw r18, r3 # 0d574
li r18, 0x00 # 0d578
# r1 = kdp
bne+ syscall_return_assert_lock_unheld # 0d57c
stw r18, 0x00d0(r17) # 0d580
# r1 = kdp
b syscall_return_assert_lock_unheld # 0d584
major_0x0d504_0x84:
lwzx r19, r16, r18 # 0d588
cmpw r19, r3 # 0d58c
li r19, 0x00 # 0d590
# r1 = kdp
bne+ syscall_return_assert_lock_unheld # 0d594
stwx r19, r16, r18 # 0d598
li r19, 0x1c # 0d59c
li r9, 0x04 # 0d5a0
major_0x0d504_0xa0:
lwzx r8, r19, r18 # 0d5a4
cmpwi r8, 0x00 # 0d5a8
bne- major_0x0d504_0xb4 # 0d5ac
subf. r19, r9, r19 # 0d5b0
bgt+ major_0x0d504_0xa0 # 0d5b4
major_0x0d504_0xb4:
srwi r19, r19, 2 # 0d5b8
stw r19, 0x00d0(r17) # 0d5bc
# r1 = kdp
b syscall_return_assert_lock_unheld # 0d5c0
major_0x0d504_0xc0:
mfspr r30, 272/*sprg0*/ # 0d5c4
cmpwi r5, 0x00 # 0d5c8
lwz r19, -0x0008(r30) # 0d5cc
beq+ major_0x0af60_0x54 # 0d5d0
lwz r16, 0x0064(r19) # 0d5d4
rlwinm. r16, r16, 0, 15, 15 # 0d5d8
beq- major_0x0d504_0xe4 # 0d5dc
stw r3, -0x0410( r1) # 0d5e0
b major_0x0b02c # 0d5e4
major_0x0d504_0xe4:
mr r8, r19 # 0d5e8
bl major_0x13e4c # 0d5ec
lwz r19, -0x0008(r30) # 0d5f0
addi r16, r31, 0x00 # 0d5f4
addi r17, r19, 0x08 # 0d5f8
stw r16, 0x0000(r17) # 0d5fc
stw r16, 0x0008(r17) # 0d600
lwz r18, 0x000c(r16) # 0d604
stw r18, 0x000c(r17) # 0d608
stw r17, 0x0008(r18) # 0d60c
stw r17, 0x000c(r16) # 0d610
lwz r18, 0x001c(r31) # 0d614
addi r18, r18, 0x01 # 0d618
stw r18, 0x001c(r31) # 0d61c
lis r16, 0x7fff # 0d620
ori r16, r16, 0xffff # 0d624
addi r30, r19, 0x20 # 0d628
cmpw r5, r16 # 0d62c
li r16, 0x02 # 0d630
beq- major_0x0d504_0x170 # 0d634
stb r16, 0x0014(r30) # 0d638
stw r19, 0x0018(r30) # 0d63c
mr r8, r5 # 0d640
# r1 = kdp
# r8 = multiple (pos: /250; neg: /250000)
bl scale_timebase # 0d644
# r8 = hi
# r9 = lo
mr r27, r8 # 0d648
mr r28, r9 # 0d64c
bl bizarre # 0d650
mfxer r16 # 0d654
addc r9, r9, r28 # 0d658
adde r8, r8, r27 # 0d65c
mtxer r16 # 0d660
stw r8, 0x0038(r30) # 0d664
stw r9, 0x003c(r30) # 0d668
mr r8, r30 # 0d66c
bl major_0x130f0_0x524 # 0d670
major_0x0d504_0x170:
b major_0x0b0fc # 0d674
/***********************************************************
major_0x0d678
************************************************************
syscall 53
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0d678: /* < outside referer */
mr r16, r8 # 0d678
mr r17, r9 # 0d67c
addi r8, r1, -0xb50 # 0d680
# r8 = lock
bl lock # 0d684
mr r8, r16 # 0d688
mr r9, r17 # 0d68c
mr r8, r3 # 0d690
# r8 = id
bl id_kind # 0d694
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x09 # 0d698
bne+ major_0x0b07c_0x28 # 0d69c
mr r31, r8 # 0d6a0
lwz r16, 0x0010(r31) # 0d6a4
cmpwi r16, 0x00 # 0d6a8
beq+ major_0x0af60_0x54 # 0d6ac
# r1 = kdp
b syscall_return_assert_lock_unheld # 0d6b0
/***********************************************************
major_0x0d6b4
************************************************************
syscall 54
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0d6b4: /* < outside referer */
mr r16, r8 # 0d6b4
mr r17, r9 # 0d6b8
addi r8, r1, -0xb50 # 0d6bc
# r8 = lock
bl lock # 0d6c0
mr r8, r16 # 0d6c4
mr r9, r17 # 0d6c8
mr r8, r3 # 0d6cc
# r8 = id
bl id_kind # 0d6d0
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x09 # 0d6d4
bne+ major_0x0b07c_0x28 # 0d6d8
mr r31, r8 # 0d6dc
li r17, 0x01 # 0d6e0
cmpwi r4, 0x00 # 0d6e4
cmplwi cr1, r4, 0x08 # 0d6e8
lwz r16, 0x0018(r31) # 0d6ec
beq- major_0x0d6b4_0x48 # 0d6f0
bgt- cr1, major_0x0d6b4_0x48 # 0d6f4
mr r17, r4 # 0d6f8
major_0x0d6b4_0x48:
ori r16, r16, 0x10 # 0d6fc
rlwimi r16, r17, 0, 28, 31 # 0d700
stw r16, 0x0018(r31) # 0d704
# r1 = kdp
b syscall_return_assert_lock_unheld # 0d708
/***********************************************************
major_0x0d70c
************************************************************
syscall 40
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0d70c: /* < outside referer */
li r8, 0x40 # 0d70c
# r1 = kdp
bl boring # 0d710
mr. r31, r8 # 0d714
beq+ major_0x0af60_0x20 # 0d718
mr r16, r8 # 0d71c
mr r17, r9 # 0d720
addi r8, r1, -0xb50 # 0d724
# r8 = lock
bl lock # 0d728
mr r8, r16 # 0d72c
mr r9, r17 # 0d730
mr r8, r31 # 0d734
li r9, 0x03 # 0d738
bl major_0x151b0 # 0d73c
cmpwi r8, 0x00 # 0d740
bne- major_0x0d70c_0x48 # 0d744
mr r8, r31 # 0d748
bl looks_like_poolextend # 0d74c
b major_0x0af60 # 0d750
major_0x0d70c_0x48:
mfspr r30, 272/*sprg0*/ # 0d754
stw r8, 0x0000(r31) # 0d758
lwz r30, -0x0008(r30) # 0d75c
mr r4, r8 # 0d760
lwz r17, 0x0060(r30) # 0d764
stw r17, 0x0010(r31) # 0d768
bl bizarre # 0d76c
stw r8, 0x0038(r31) # 0d770
stw r9, 0x003c(r31) # 0d774
lis r17, 0x5449 # 0d778
ori r17, r17, 0x4d45 # 0d77c
stw r17, 0x0004(r31) # 0d780
li r17, 0x03 # 0d784
stb r17, 0x0014(r31) # 0d788
li r17, 0x00 # 0d78c
stb r17, 0x0016(r31) # 0d790
# r1 = kdp
b syscall_return_assert_lock_unheld # 0d794
/***********************************************************
major_0x0d798
************************************************************
syscall 41
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0d798: /* < outside referer */
mr r16, r8 # 0d798
mr r17, r9 # 0d79c
addi r8, r1, -0xb50 # 0d7a0
# r8 = lock
bl lock # 0d7a4
mr r8, r16 # 0d7a8
mr r9, r17 # 0d7ac
mr r8, r3 # 0d7b0
# r8 = id
bl id_kind # 0d7b4
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x03 # 0d7b8
mr r31, r8 # 0d7bc
bne+ major_0x0b07c_0x28 # 0d7c0
mr r8, r3 # 0d7c4
bl major_0x15300 # 0d7c8
lwz r16, 0x0008(r31) # 0d7cc
cmpwi r16, 0x00 # 0d7d0
beq- major_0x0d798_0x48 # 0d7d4
mr r8, r31 # 0d7d8
bl major_0x130f0_0x5d8 # 0d7dc
major_0x0d798_0x48:
sync # 0d7e0
lwz r16, -0x0b50( r1) # 0d7e4
cmpwi cr1, r16, 0x00 # 0d7e8
li r16, 0x00 # 0d7ec
bne+ cr1, major_0x0d798_0x64 # 0d7f0
mflr r16 # 0d7f4
bl panic # 0d7f8
major_0x0d798_0x64:
stw r16, -0x0b50( r1) # 0d7fc
lwz r8, 0x001c(r31) # 0d800
cmpwi r8, 0x00 # 0d804
bnel- looks_like_poolextend # 0d808
mr r8, r31 # 0d80c
bl looks_like_poolextend # 0d810
b syscall_return_noErr # 0d814
/***********************************************************
major_0x0d818
************************************************************
syscall 30
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0d818: /* < outside referer */
mr r16, r8 # 0d818
mr r17, r9 # 0d81c
addi r8, r1, -0xb50 # 0d820
# r8 = lock
bl lock # 0d824
mr r8, r16 # 0d828
mr r9, r17 # 0d82c
mr r8, r3 # 0d830
# r8 = id
bl id_kind # 0d834
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x03 # 0d838
mr r31, r8 # 0d83c
bne+ major_0x0b07c_0x28 # 0d840
lbz r16, 0x0014(r31) # 0d844
cmpwi r16, 0x03 # 0d848
bne+ major_0x0b07c_0x28 # 0d84c
mr r8, r4 # 0d850
# r8 = id
bl id_kind # 0d854
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x05 # 0d858
cmpwi cr2, r9, 0x04 # 0d85c
beq- major_0x0d818_0x80 # 0d860
cmpwi r9, 0x09 # 0d864
beq- cr2, major_0x0d818_0x64 # 0d868
bne+ major_0x0b07c_0x28 # 0d86c
stw r4, 0x002c(r31) # 0d870
stw r5, 0x0030(r31) # 0d874
# r1 = kdp
b syscall_return_assert_lock_unheld # 0d878
major_0x0d818_0x64:
stw r4, 0x0018(r31) # 0d87c
lwz r16, 0x0134( r6) # 0d880
lwz r17, 0x013c( r6) # 0d884
stw r5, 0x0020(r31) # 0d888
stw r16, 0x0024(r31) # 0d88c
stw r17, 0x0028(r31) # 0d890
# r1 = kdp
b syscall_return_assert_lock_unheld # 0d894
major_0x0d818_0x80:
stw r4, 0x0034(r31) # 0d898
# r1 = kdp
b syscall_return_assert_lock_unheld # 0d89c
/***********************************************************
major_0x0d8a0
************************************************************
syscall 31
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0d8a0: /* < outside referer */
mr r16, r8 # 0d8a0
mr r17, r9 # 0d8a4
addi r8, r1, -0xb50 # 0d8a8
# r8 = lock
bl lock # 0d8ac
mr r8, r16 # 0d8b0
mr r9, r17 # 0d8b4
mr r8, r3 # 0d8b8
# r8 = id
bl id_kind # 0d8bc
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x03 # 0d8c0
mr r31, r8 # 0d8c4
bne+ major_0x0b07c_0x28 # 0d8c8
lbz r16, 0x0014(r31) # 0d8cc
cmpwi r16, 0x03 # 0d8d0
bne+ major_0x0b07c_0x28 # 0d8d4
lwz r16, 0x0008(r31) # 0d8d8
cmpwi r16, 0x00 # 0d8dc
mr r8, r31 # 0d8e0
beq- major_0x0d8a0_0x4c # 0d8e4
bl major_0x130f0_0x5d8 # 0d8e8
major_0x0d8a0_0x4c:
lwz r9, 0x001c(r31) # 0d8ec
lwz r8, 0x0018(r31) # 0d8f0
cmpwi r9, 0x00 # 0d8f4
cmpwi cr1, r8, 0x00 # 0d8f8
bne- major_0x0d8a0_0x9c # 0d8fc
beq- cr1, major_0x0d8a0_0x9c # 0d900
# r8 = id
bl id_kind # 0d904
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x04 # 0d908
bne- major_0x0d8a0_0x9c # 0d90c
lwz r9, 0x0024( r8) # 0d910
li r8, 0x1c # 0d914
cmpwi r9, 0x00 # 0d918
bne- major_0x0d8a0_0x9c # 0d91c
# r1 = kdp
bl boring # 0d920
mr. r30, r8 # 0d924
beq+ major_0x0af60 # 0d928
lis r8, 0x6e6f # 0d92c
ori r8, r8, 0x7465 # 0d930
stw r8, 0x0004(r30) # 0d934
stw r30, 0x001c(r31) # 0d938
major_0x0d8a0_0x9c:
lwz r16, 0x0134( r6) # 0d93c
rlwinm. r9, r16, 0, 29, 29 # 0d940
mr r8, r4 # 0d944
beq- major_0x0d8a0_0xb8 # 0d948
# r1 = kdp
# r8 = multiple (pos: /250; neg: /250000)
bl scale_timebase # 0d94c
# r8 = hi
# r9 = lo
mr r4, r8 # 0d950
mr r5, r9 # 0d954
major_0x0d8a0_0xb8:
lwz r16, 0x0134( r6) # 0d958
rlwinm. r8, r16, 0, 30, 30 # 0d95c
mfxer r17 # 0d960
beq- major_0x0d8a0_0xdc # 0d964
lwz r19, 0x003c(r31) # 0d968
lwz r18, 0x0038(r31) # 0d96c
addc r5, r5, r19 # 0d970
adde r4, r4, r18 # 0d974
mtxer r17 # 0d978
major_0x0d8a0_0xdc:
stw r4, 0x0038(r31) # 0d97c
stw r5, 0x003c(r31) # 0d980
lwz r16, 0x0134( r6) # 0d984
clrlwi. r16, r16, 0x1f # 0d988
li r17, 0x00 # 0d98c
beq- major_0x0d8a0_0xf8 # 0d990
li r17, 0x01 # 0d994
major_0x0d8a0_0xf8:
stb r17, 0x0016(r31) # 0d998
mr r8, r31 # 0d99c
bl major_0x130f0_0x524 # 0d9a0
# r1 = kdp
b syscall_return_assert_lock_unheld # 0d9a4
/***********************************************************
major_0x0d9a8
************************************************************
syscall 32
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0d9a8: /* < outside referer */
mr r16, r8 # 0d9a8
mr r17, r9 # 0d9ac
addi r8, r1, -0xb50 # 0d9b0
# r8 = lock
bl lock # 0d9b4
mr r8, r16 # 0d9b8
mr r9, r17 # 0d9bc
mr r8, r3 # 0d9c0
# r8 = id
bl id_kind # 0d9c4
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x03 # 0d9c8
mr r31, r8 # 0d9cc
bne+ major_0x0b07c_0x28 # 0d9d0
lbz r16, 0x0017(r31) # 0d9d4
cmpwi r16, 0x01 # 0d9d8
bne- major_0x0d9a8_0x58 # 0d9dc
lwz r4, 0x0038(r31) # 0d9e0
lwz r5, 0x003c(r31) # 0d9e4
bl bizarre # 0d9e8
mfxer r16 # 0d9ec
subfc r5, r9, r5 # 0d9f0
subfe. r4, r8, r4 # 0d9f4
mtxer r16 # 0d9f8
bge+ major_0x0d9a8_0x60 # 0d9fc
major_0x0d9a8_0x58:
li r4, 0x00 # 0da00
li r5, 0x00 # 0da04
major_0x0d9a8_0x60:
lwz r16, 0x0008(r31) # 0da08
cmpwi r16, 0x00 # 0da0c
mr r8, r31 # 0da10
beq- major_0x0d9a8_0x74 # 0da14
bl major_0x130f0_0x5d8 # 0da18
major_0x0d9a8_0x74:
# r1 = kdp
b syscall_return_assert_lock_unheld # 0da1c
/***********************************************************
major_0x0da20
************************************************************
syscall 64
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0da20: /* < outside referer */
li r8, 0x28 # 0da20
# r1 = kdp
bl boring # 0da24
mr. r31, r8 # 0da28
beq+ major_0x0af60_0x20 # 0da2c
lis r16, 0x4b4e # 0da30
ori r16, r16, 0x4f54 # 0da34
stw r16, 0x0004(r31) # 0da38
mr r16, r8 # 0da3c
mr r17, r9 # 0da40
addi r8, r1, -0xb50 # 0da44
# r8 = lock
bl lock # 0da48
mr r8, r16 # 0da4c
mr r9, r17 # 0da50
li r9, 0x0c # 0da54
bl major_0x151b0 # 0da58
cmpwi r8, 0x00 # 0da5c
bne+ major_0x0da20_0x50 # 0da60
mr r8, r31 # 0da64
bl looks_like_poolextend # 0da68
b major_0x0af60 # 0da6c
major_0x0da20_0x50:
mfspr r30, 272/*sprg0*/ # 0da70
lwz r30, -0x0008(r30) # 0da74
stw r8, 0x0000(r31) # 0da78
lwz r17, 0x0060(r30) # 0da7c
stw r17, 0x0008(r31) # 0da80
mr r4, r8 # 0da84
# r1 = kdp
b syscall_return_assert_lock_unheld # 0da88
/***********************************************************
major_0x0da8c
************************************************************
syscall 65
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0da8c: /* < outside referer */
mr r16, r8 # 0da8c
mr r17, r9 # 0da90
addi r8, r1, -0xb50 # 0da94
# r8 = lock
bl lock # 0da98
mr r8, r16 # 0da9c
mr r9, r17 # 0daa0
mr r8, r3 # 0daa4
# r8 = id
bl id_kind # 0daa8
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0c # 0daac
mr r31, r8 # 0dab0
bne+ major_0x0b07c_0x28 # 0dab4
mr r8, r31 # 0dab8
bl looks_like_poolextend # 0dabc
mr r8, r3 # 0dac0
bl major_0x15300 # 0dac4
# r1 = kdp
b syscall_return_assert_lock_unheld # 0dac8
/***********************************************************
major_0x0dacc
************************************************************
syscall 67
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0dacc: /* < outside referer */
mr r16, r8 # 0dacc
mr r17, r9 # 0dad0
addi r8, r1, -0xb50 # 0dad4
# r8 = lock
bl lock # 0dad8
mr r8, r16 # 0dadc
mr r9, r17 # 0dae0
mr r8, r3 # 0dae4
# r8 = id
bl id_kind # 0dae8
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0c # 0daec
mr r30, r8 # 0daf0
bne+ major_0x0b07c_0x28 # 0daf4
bl major_0x0db04 # 0daf8
mr r3, r8 # 0dafc
b major_0x0b0fc_0x8 # 0db00
/***********************************************************
major_0x0db04
************************************************************
Xrefs:
major_0x02ccc
major_0x04240
major_0x04300
major_0x0dacc
major_0x102c8
interrupt_blue
***********************************************************/
major_0x0db04: /* < outside referer */
mflr r29 # 0db04
lwz r16, 0x000c(r30) # 0db08
lwz r17, 0x0024(r30) # 0db0c
cmplwi r16, 0x00 # 0db10
cmplwi cr1, r17, 0x00 # 0db14
bne- major_0x0db04_0x28 # 0db18
bne- cr1, major_0x0db04_0x28 # 0db1c
lwz r18, 0x001c(r30) # 0db20
cmplwi r18, 0x00 # 0db24
beq- major_0x0db04_0xf0 # 0db28
major_0x0db04_0x28:
lwz r8, 0x000c(r30) # 0db2c
cmplwi r8, 0x00 # 0db30
beq- major_0x0db04_0x94 # 0db34
# r8 = id
bl id_kind # 0db38
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x04 # 0db3c
mr r31, r8 # 0db40
bne- major_0x0db04_0xfc # 0db44
lwz r16, 0x0024(r31) # 0db48
cmpwi r16, 0x00 # 0db4c
lwz r17, 0x0028(r31) # 0db50
beq- major_0x0db04_0x68 # 0db54
mr. r8, r17 # 0db58
lwz r17, 0x0008(r17) # 0db5c
beq- major_0x0db04_0xf0 # 0db60
stw r17, 0x0028(r31) # 0db64
b major_0x0db04_0x78 # 0db68
major_0x0db04_0x68:
li r8, 0x1c # 0db6c
bl boring_with_crset # 0db70
cmpwi r8, 0x00 # 0db74
beq- major_0x0db04_0xe4 # 0db78
major_0x0db04_0x78:
lwz r16, 0x0010(r30) # 0db7c
lwz r17, 0x0014(r30) # 0db80
lwz r18, 0x0018(r30) # 0db84
stw r16, 0x0010( r8) # 0db88
stw r17, 0x0014( r8) # 0db8c
stw r18, 0x0018( r8) # 0db90
bl major_0x0c8b4 # 0db94
major_0x0db04_0x94:
lwz r8, 0x0024(r30) # 0db98
cmplwi r8, 0x00 # 0db9c
beq- major_0x0db04_0xb4 # 0dba0
# r8 = id
bl id_kind # 0dba4
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x05 # 0dba8
mr r31, r8 # 0dbac
bne- major_0x0db04_0xfc # 0dbb0
bl major_0x0ccf4 # 0dbb4
major_0x0db04_0xb4:
lwz r8, 0x001c(r30) # 0dbb8
cmplwi r8, 0x00 # 0dbbc
beq- major_0x0db04_0xd8 # 0dbc0
# r8 = id
bl id_kind # 0dbc4
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x09 # 0dbc8
mr r31, r8 # 0dbcc
bne- major_0x0db04_0xfc # 0dbd0
lwz r8, 0x0020(r30) # 0dbd4
bl major_0x0d35c # 0dbd8
major_0x0db04_0xd8:
mtlr r29 # 0dbdc
li r8, 0x00 # 0dbe0
blr # 0dbe4
major_0x0db04_0xe4:
mtlr r29 # 0dbe8
li r8, -0x726e # 0dbec
blr # 0dbf0
major_0x0db04_0xf0:
mtlr r29 # 0dbf4
li r8, -0x7272 # 0dbf8
blr # 0dbfc
major_0x0db04_0xfc:
mtlr r29 # 0dc00
li r8, -0x7273 # 0dc04
blr # 0dc08
/***********************************************************
major_0x0dc0c
************************************************************
syscall 66
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0dc0c: /* < outside referer */
mr r16, r8 # 0dc0c
mr r17, r9 # 0dc10
addi r8, r1, -0xb50 # 0dc14
# r8 = lock
bl lock # 0dc18
mr r8, r16 # 0dc1c
mr r9, r17 # 0dc20
mr r8, r3 # 0dc24
# r8 = id
bl id_kind # 0dc28
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0c # 0dc2c
mr r31, r8 # 0dc30
bne+ major_0x0b07c_0x28 # 0dc34
mr r8, r4 # 0dc38
# r8 = id
bl id_kind # 0dc3c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x05 # 0dc40
cmpwi cr2, r9, 0x04 # 0dc44
beq- major_0x0dc0c_0x74 # 0dc48
cmpwi r9, 0x09 # 0dc4c
beq- cr2, major_0x0dc0c_0x58 # 0dc50
bne+ major_0x0b07c_0x28 # 0dc54
stw r4, 0x001c(r31) # 0dc58
stw r5, 0x0020(r31) # 0dc5c
# r1 = kdp
b syscall_return_assert_lock_unheld # 0dc60
major_0x0dc0c_0x58:
stw r4, 0x000c(r31) # 0dc64
lwz r16, 0x0134( r6) # 0dc68
lwz r17, 0x013c( r6) # 0dc6c
stw r5, 0x0010(r31) # 0dc70
stw r16, 0x0014(r31) # 0dc74
stw r17, 0x0018(r31) # 0dc78
# r1 = kdp
b syscall_return_assert_lock_unheld # 0dc7c
major_0x0dc0c_0x74:
stw r4, 0x0024(r31) # 0dc80
# r1 = kdp
b syscall_return_assert_lock_unheld # 0dc84
/***********************************************************
major_0x0dc88
************************************************************
syscall 128
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0dc88: /* < outside referer */
mr r16, r8 # 0dc88
mr r17, r9 # 0dc8c
addi r8, r1, -0xb50 # 0dc90
# r8 = lock
bl lock # 0dc94
mr r8, r16 # 0dc98
mr r9, r17 # 0dc9c
mr r8, r3 # 0dca0
# r8 = id
bl id_kind # 0dca4
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0c # 0dca8
mr r31, r8 # 0dcac
bne+ major_0x0b07c_0x28 # 0dcb0
cmpwi r4, 0x04 # 0dcb4
cmpwi cr1, r4, 0x09 # 0dcb8
beq- major_0x0dc88_0x40 # 0dcbc
beq- cr1, major_0x0dc88_0x58 # 0dcc0
b major_0x0b054 # 0dcc4
major_0x0dc88_0x40:
lwz r16, 0x0134( r6) # 0dcc8
lwz r17, 0x013c( r6) # 0dccc
stw r5, 0x0010(r31) # 0dcd0
stw r16, 0x0014(r31) # 0dcd4
stw r17, 0x0018(r31) # 0dcd8
# r1 = kdp
b syscall_return_assert_lock_unheld # 0dcdc
major_0x0dc88_0x58:
stw r5, 0x0020(r31) # 0dce0
# r1 = kdp
b syscall_return_assert_lock_unheld # 0dce4
/***********************************************************
major_0x0dce8
************************************************************
Xrefs:
major_0x02ccc
major_0x0c680
major_0x0c8b4
major_0x0ccf4
major_0x0cd9c
major_0x0d06c
major_0x0d158
major_0x0d278
major_0x0d35c
***********************************************************/
major_0x0dce8: /* < outside referer */
lwz r9, -0x0410( r1) # 0dce8
lwz r19, -0x08f0( r1) # 0dcec
cmpw r8, r9 # 0dcf0
bnelr- # 0dcf4
li r9, -0x01 # 0dcf8
mflr r24 # 0dcfc
stw r9, -0x0410( r1) # 0dd00
lbz r17, 0x0018(r19) # 0dd04
cmpwi r17, 0x00 # 0dd08
addi r16, r19, 0x08 # 0dd0c
bne- major_0x0dce8_0x70 # 0dd10
lwz r17, 0x0008(r16) # 0dd14
lwz r18, 0x000c(r16) # 0dd18
stw r17, 0x0008(r18) # 0dd1c
stw r18, 0x000c(r17) # 0dd20
li r17, 0x00 # 0dd24
stw r17, 0x0008(r16) # 0dd28
stw r17, 0x000c(r16) # 0dd2c
lbz r17, 0x0037(r19) # 0dd30
cmpwi r17, 0x01 # 0dd34
bne- major_0x0dce8_0x60 # 0dd38
addi r8, r19, 0x20 # 0dd3c
bl major_0x130f0_0x5d8 # 0dd40
lwz r19, -0x08f0( r1) # 0dd44
major_0x0dce8_0x60:
li r16, 0x01 # 0dd48
stb r16, 0x0019(r19) # 0dd4c
lwz r8, -0x08f0( r1) # 0dd50
bl major_0x13ed8_0x8 # 0dd54
major_0x0dce8_0x70:
lwz r8, -0x08f0( r1) # 0dd58
mtlr r24 # 0dd5c
b major_0x14af8 # 0dd60
/***********************************************************
major_0x0dd64
************************************************************
syscall 120
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0dd64: /* < outside referer */
mr r16, r8 # 0dd64
mr r17, r9 # 0dd68
addi r8, r1, -0xb50 # 0dd6c
# r8 = lock
bl lock # 0dd70
mr r8, r16 # 0dd74
mr r9, r17 # 0dd78
mr r8, r3 # 0dd7c
# r8 = id
bl id_kind # 0dd80
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
mr r31, r8 # 0dd84
cmpwi r9, 0x05 # 0dd88
cmpwi cr1, r9, 0x04 # 0dd8c
beq- major_0x0dd64_0x33c # 0dd90
beq- cr1, major_0x0dd64_0x248 # 0dd94
cmpwi r9, 0x09 # 0dd98
cmpwi cr1, r9, 0x06 # 0dd9c
beq- major_0x0dd64_0x1b4 # 0dda0
beq- cr1, major_0x0dd64_0x10c # 0dda4
cmpwi r9, 0x0c # 0dda8
cmpwi cr1, r9, 0x08 # 0ddac
beq- major_0x0dd64_0x58 # 0ddb0
beq- cr1, major_0x0dd64_0x3d8 # 0ddb4
b major_0x0b054 # 0ddb8
major_0x0dd64_0x58:
lis r8, 0x0c # 0ddbc
ori r8, r8, 0x01 # 0ddc0
cmpw r8, r4 # 0ddc4
bne+ major_0x0b054 # 0ddc8
cmplwi r5, 0x00 # 0ddcc
bne- major_0x0dd64_0xa0 # 0ddd0
lis r16, 0x0c # 0ddd4
ori r16, r16, 0x01 # 0ddd8
stw r16, 0x0134( r6) # 0dddc
lwz r16, 0x0008(r31) # 0dde0
stw r16, 0x013c( r6) # 0dde4
lwz r16, 0x0004(r31) # 0dde8
stw r16, 0x0144( r6) # 0ddec
lwz r16, 0x000c(r31) # 0ddf0
stw r16, 0x014c( r6) # 0ddf4
li r16, 0x10 # 0ddf8
stw r16, 0x0154( r6) # 0ddfc
# r1 = kdp
b syscall_return_assert_lock_unheld # 0de00
major_0x0dd64_0xa0:
cmplwi r5, 0x10 # 0de04
bne- major_0x0dd64_0xd4 # 0de08
lwz r16, 0x0010(r31) # 0de0c
stw r16, 0x0134( r6) # 0de10
lwz r16, 0x0014(r31) # 0de14
stw r16, 0x013c( r6) # 0de18
lwz r16, 0x0018(r31) # 0de1c
stw r16, 0x0144( r6) # 0de20
lwz r16, 0x001c(r31) # 0de24
stw r16, 0x014c( r6) # 0de28
li r16, 0x10 # 0de2c
stw r16, 0x0154( r6) # 0de30
# r1 = kdp
b syscall_return_assert_lock_unheld # 0de34
major_0x0dd64_0xd4:
cmplwi r5, 0x20 # 0de38
bne- major_0x0dd64_0xf8 # 0de3c
lwz r16, 0x0020(r31) # 0de40
stw r16, 0x0134( r6) # 0de44
lwz r16, 0x0024(r31) # 0de48
stw r16, 0x013c( r6) # 0de4c
li r16, 0x08 # 0de50
stw r16, 0x0154( r6) # 0de54
# r1 = kdp
b syscall_return_assert_lock_unheld # 0de58
major_0x0dd64_0xf8:
cmpwi r5, 0x28 # 0de5c
bne+ major_0x0b054 # 0de60
li r16, 0x00 # 0de64
stw r16, 0x0154( r6) # 0de68
# r1 = kdp
b syscall_return_assert_lock_unheld # 0de6c
major_0x0dd64_0x10c:
lis r8, 0x06 # 0de70
ori r8, r8, 0x01 # 0de74
cmpw r8, r4 # 0de78
bne+ major_0x0b054 # 0de7c
cmplwi r5, 0x00 # 0de80
bne- major_0x0dd64_0x154 # 0de84
lis r16, 0x06 # 0de88
ori r16, r16, 0x01 # 0de8c
stw r16, 0x0134( r6) # 0de90
lwz r16, 0x0010(r31) # 0de94
stw r16, 0x013c( r6) # 0de98
lwz r16, 0x0004(r31) # 0de9c
stw r16, 0x0144( r6) # 0dea0
lwz r16, 0x0020(r31) # 0dea4
stw r16, 0x014c( r6) # 0dea8
li r16, 0x10 # 0deac
stw r16, 0x0154( r6) # 0deb0
# r1 = kdp
b syscall_return_assert_lock_unheld # 0deb4
major_0x0dd64_0x154:
cmplwi r5, 0x10 # 0deb8
bne- major_0x0dd64_0x1a0 # 0debc
addi r17, r31, 0x00 # 0dec0
lwz r18, 0x0008(r31) # 0dec4
li r16, 0x00 # 0dec8
cmpw r17, r18 # 0decc
beq- major_0x0dd64_0x174 # 0ded0
lwz r16, -0x0008(r18) # 0ded4
major_0x0dd64_0x174:
stw r16, 0x0134( r6) # 0ded8
lwz r16, 0x0018(r31) # 0dedc
cmpwi r16, 0x00 # 0dee0
beq- major_0x0dd64_0x188 # 0dee4
lwz r16, 0x0000(r16) # 0dee8
major_0x0dd64_0x188:
stw r16, 0x013c( r6) # 0deec
lwz r16, 0x0014(r31) # 0def0
stw r16, 0x0144( r6) # 0def4
li r16, 0x0c # 0def8
stw r16, 0x0154( r6) # 0defc
# r1 = kdp
b syscall_return_assert_lock_unheld # 0df00
major_0x0dd64_0x1a0:
cmpwi r5, 0x1c # 0df04
bne+ major_0x0b054 # 0df08
li r16, 0x00 # 0df0c
stw r16, 0x0154( r6) # 0df10
# r1 = kdp
b syscall_return_assert_lock_unheld # 0df14
major_0x0dd64_0x1b4:
lis r8, 0x09 # 0df18
ori r8, r8, 0x01 # 0df1c
cmpw r8, r4 # 0df20
bne+ major_0x0b054 # 0df24
cmplwi r5, 0x00 # 0df28
bne- major_0x0dd64_0x1fc # 0df2c
lis r16, 0x09 # 0df30
ori r16, r16, 0x01 # 0df34
stw r16, 0x0134( r6) # 0df38
lwz r16, 0x0014(r31) # 0df3c
stw r16, 0x013c( r6) # 0df40
lwz r16, 0x0004(r31) # 0df44
stw r16, 0x0144( r6) # 0df48
lwz r16, 0x001c(r31) # 0df4c
stw r16, 0x014c( r6) # 0df50
li r16, 0x10 # 0df54
stw r16, 0x0154( r6) # 0df58
# r1 = kdp
b syscall_return_assert_lock_unheld # 0df5c
major_0x0dd64_0x1fc:
cmplwi r5, 0x10 # 0df60
bne- major_0x0dd64_0x234 # 0df64
addi r17, r31, 0x00 # 0df68
lwz r18, 0x0008(r31) # 0df6c
li r16, 0x00 # 0df70
cmpw r17, r18 # 0df74
beq- major_0x0dd64_0x21c # 0df78
lwz r16, -0x0008(r18) # 0df7c
major_0x0dd64_0x21c:
stw r16, 0x0134( r6) # 0df80
lwz r16, 0x0010(r31) # 0df84
stw r16, 0x013c( r6) # 0df88
li r16, 0x08 # 0df8c
stw r16, 0x0154( r6) # 0df90
# r1 = kdp
b syscall_return_assert_lock_unheld # 0df94
major_0x0dd64_0x234:
cmpwi r5, 0x18 # 0df98
bne+ major_0x0b054 # 0df9c
li r16, 0x00 # 0dfa0
stw r16, 0x0154( r6) # 0dfa4
# r1 = kdp
b syscall_return_assert_lock_unheld # 0dfa8
major_0x0dd64_0x248:
lis r8, 0x04 # 0dfac
ori r8, r8, 0x01 # 0dfb0
cmpw r8, r4 # 0dfb4
bne+ major_0x0b054 # 0dfb8
cmplwi r5, 0x00 # 0dfbc
bne- major_0x0dd64_0x290 # 0dfc0
lis r16, 0x04 # 0dfc4
ori r16, r16, 0x01 # 0dfc8
stw r16, 0x0134( r6) # 0dfcc
lwz r16, 0x0020(r31) # 0dfd0
stw r16, 0x013c( r6) # 0dfd4
lwz r16, 0x0004(r31) # 0dfd8
stw r16, 0x0144( r6) # 0dfdc
lwz r16, 0x002c(r31) # 0dfe0
stw r16, 0x014c( r6) # 0dfe4
li r16, 0x10 # 0dfe8
stw r16, 0x0154( r6) # 0dfec
# r1 = kdp
b syscall_return_assert_lock_unheld # 0dff0
major_0x0dd64_0x290:
cmplwi r5, 0x10 # 0dff4
bne- major_0x0dd64_0x2ec # 0dff8
addi r17, r31, 0x00 # 0dffc
lwz r18, 0x0008(r31) # 0e000
li r16, 0x00 # 0e004
cmpw r17, r18 # 0e008
beq- major_0x0dd64_0x2b0 # 0e00c
lwz r16, -0x0008(r18) # 0e010
major_0x0dd64_0x2b0:
stw r16, 0x0134( r6) # 0e014
lwz r16, 0x0030(r31) # 0e018
stw r16, 0x013c( r6) # 0e01c
lwz r16, 0x0024(r31) # 0e020
stw r16, 0x0144( r6) # 0e024
lwz r18, 0x0018(r31) # 0e028
addi r17, r31, 0x10 # 0e02c
li r16, 0x00 # 0e030
cmpw r17, r18 # 0e034
beq- major_0x0dd64_0x2dc # 0e038
lwz r16, 0x0010(r18) # 0e03c
major_0x0dd64_0x2dc:
stw r16, 0x014c( r6) # 0e040
li r16, 0x10 # 0e044
stw r16, 0x0154( r6) # 0e048
# r1 = kdp
b syscall_return_assert_lock_unheld # 0e04c
major_0x0dd64_0x2ec:
cmplwi r5, 0x20 # 0e050
bne- major_0x0dd64_0x328 # 0e054
lwz r18, 0x0018(r31) # 0e058
addi r17, r31, 0x10 # 0e05c
li r16, 0x00 # 0e060
cmpw r17, r18 # 0e064
li r17, 0x00 # 0e068
beq- major_0x0dd64_0x314 # 0e06c
lwz r16, 0x0014(r18) # 0e070
lwz r17, 0x0018(r18) # 0e074
major_0x0dd64_0x314:
stw r16, 0x0134( r6) # 0e078
stw r17, 0x013c( r6) # 0e07c
li r16, 0x08 # 0e080
stw r16, 0x0154( r6) # 0e084
# r1 = kdp
b syscall_return_assert_lock_unheld # 0e088
major_0x0dd64_0x328:
cmpwi r5, 0x28 # 0e08c
bne+ major_0x0b054 # 0e090
li r16, 0x00 # 0e094
stw r16, 0x0154( r6) # 0e098
# r1 = kdp
b syscall_return_assert_lock_unheld # 0e09c
major_0x0dd64_0x33c:
lis r8, 0x05 # 0e0a0
ori r8, r8, 0x01 # 0e0a4
cmpw r8, r4 # 0e0a8
bne+ major_0x0b054 # 0e0ac
cmplwi r5, 0x00 # 0e0b0
bne- major_0x0dd64_0x384 # 0e0b4
lis r16, 0x05 # 0e0b8
ori r16, r16, 0x01 # 0e0bc
stw r16, 0x0134( r6) # 0e0c0
lwz r16, 0x0018(r31) # 0e0c4
stw r16, 0x013c( r6) # 0e0c8
lwz r16, 0x0004(r31) # 0e0cc
stw r16, 0x0144( r6) # 0e0d0
lwz r16, 0x001c(r31) # 0e0d4
stw r16, 0x014c( r6) # 0e0d8
li r16, 0x10 # 0e0dc
stw r16, 0x0154( r6) # 0e0e0
# r1 = kdp
b syscall_return_assert_lock_unheld # 0e0e4
major_0x0dd64_0x384:
cmplwi r5, 0x10 # 0e0e8
bne- major_0x0dd64_0x3c4 # 0e0ec
addi r17, r31, 0x00 # 0e0f0
lwz r18, 0x0008(r31) # 0e0f4
li r16, 0x00 # 0e0f8
cmpw r17, r18 # 0e0fc
beq- major_0x0dd64_0x3a4 # 0e100
lwz r16, -0x0008(r18) # 0e104
major_0x0dd64_0x3a4:
stw r16, 0x0134( r6) # 0e108
lwz r16, 0x0014(r31) # 0e10c
stw r16, 0x013c( r6) # 0e110
lwz r16, 0x0010(r31) # 0e114
stw r16, 0x0144( r6) # 0e118
li r16, 0x0c # 0e11c
stw r16, 0x0154( r6) # 0e120
# r1 = kdp
b syscall_return_assert_lock_unheld # 0e124
major_0x0dd64_0x3c4:
cmpwi r5, 0x1c # 0e128
bne+ major_0x0b054 # 0e12c
li r16, 0x00 # 0e130
stw r16, 0x0154( r6) # 0e134
# r1 = kdp
b syscall_return_assert_lock_unheld # 0e138
major_0x0dd64_0x3d8:
lis r8, 0x08 # 0e13c
ori r8, r8, 0x01 # 0e140
cmpw r8, r4 # 0e144
bne+ major_0x0b054 # 0e148
cmplwi r5, 0x00 # 0e14c
bne- major_0x0dd64_0x420 # 0e150
lis r16, 0x08 # 0e154
ori r16, r16, 0x01 # 0e158
stw r16, 0x0134( r6) # 0e15c
lwz r16, 0x0074(r31) # 0e160
stw r16, 0x013c( r6) # 0e164
lwz r16, 0x0070(r31) # 0e168
stw r16, 0x0144( r6) # 0e16c
lwz r16, 0x000c(r31) # 0e170
stw r16, 0x014c( r6) # 0e174
li r16, 0x10 # 0e178
stw r16, 0x0154( r6) # 0e17c
# r1 = kdp
b syscall_return_assert_lock_unheld # 0e180
major_0x0dd64_0x420:
cmplwi r5, 0x10 # 0e184
bne- major_0x0dd64_0x454 # 0e188
lwz r16, 0x0030(r31) # 0e18c
stw r16, 0x0134( r6) # 0e190
lwz r16, 0x0034(r31) # 0e194
stw r16, 0x013c( r6) # 0e198
lwz r16, 0x0038(r31) # 0e19c
stw r16, 0x0144( r6) # 0e1a0
lwz r16, 0x003c(r31) # 0e1a4
stw r16, 0x014c( r6) # 0e1a8
li r16, 0x10 # 0e1ac
stw r16, 0x0154( r6) # 0e1b0
# r1 = kdp
b syscall_return_assert_lock_unheld # 0e1b4
major_0x0dd64_0x454:
cmplwi r5, 0x20 # 0e1b8
bne- major_0x0dd64_0x488 # 0e1bc
lwz r16, 0x0040(r31) # 0e1c0
stw r16, 0x0134( r6) # 0e1c4
lwz r16, 0x0044(r31) # 0e1c8
stw r16, 0x013c( r6) # 0e1cc
lwz r16, 0x0048(r31) # 0e1d0
stw r16, 0x0144( r6) # 0e1d4
lwz r16, 0x004c(r31) # 0e1d8
stw r16, 0x014c( r6) # 0e1dc
li r16, 0x10 # 0e1e0
stw r16, 0x0154( r6) # 0e1e4
# r1 = kdp
b syscall_return_assert_lock_unheld # 0e1e8
major_0x0dd64_0x488:
cmplwi r5, 0x30 # 0e1ec
bne- major_0x0dd64_0x4bc # 0e1f0
lwz r16, 0x0050(r31) # 0e1f4
stw r16, 0x0134( r6) # 0e1f8
lwz r16, 0x0054(r31) # 0e1fc
stw r16, 0x013c( r6) # 0e200
lwz r16, 0x0058(r31) # 0e204
stw r16, 0x0144( r6) # 0e208
lwz r16, 0x005c(r31) # 0e20c
stw r16, 0x014c( r6) # 0e210
li r16, 0x10 # 0e214
stw r16, 0x0154( r6) # 0e218
# r1 = kdp
b syscall_return_assert_lock_unheld # 0e21c
major_0x0dd64_0x4bc:
cmplwi r5, 0x40 # 0e220
bne- major_0x0dd64_0x4f0 # 0e224
lwz r16, 0x0060(r31) # 0e228
stw r16, 0x0134( r6) # 0e22c
lwz r16, 0x0064(r31) # 0e230
stw r16, 0x013c( r6) # 0e234
lwz r16, 0x0068(r31) # 0e238
stw r16, 0x0144( r6) # 0e23c
lwz r16, 0x006c(r31) # 0e240
stw r16, 0x014c( r6) # 0e244
li r16, 0x10 # 0e248
stw r16, 0x0154( r6) # 0e24c
# r1 = kdp
b syscall_return_assert_lock_unheld # 0e250
major_0x0dd64_0x4f0:
cmpwi r5, 0x50 # 0e254
bne+ major_0x0b054 # 0e258
li r16, 0x00 # 0e25c
stw r16, 0x0154( r6) # 0e260
# r1 = kdp
b syscall_return_assert_lock_unheld # 0e264
/***********************************************************
major_0x0e268
***********************************************************/
.long 0x48000018 # 0e268
.long 0x60000000 # 0e26c
.long 0x60000000 # 0e270
.long 0x60000000 # 0e274
.long 0x60000000 # 0e278
.long 0x60000000 # 0e27c
/***********************************************************
panic_wrapper_0x0e280
************************************************************
Xrefs:
mktask
major_0x0e548
major_0x0ec8c
major_0x0f050
***********************************************************/
panic_wrapper_0x0e280: /* < outside referer */
b panic # 0e280
/***********************************************************
major_0x0e284
************************************************************
syscall 7
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0e284: /* < outside referer */
rlwinm. r8, r5, 0, 31, 28 # 0e284
bne+ syscall_return_kMPInsufficientResourcesErr # 0e288
mr r16, r8 # 0e28c
mr r17, r9 # 0e290
addi r8, r1, -0xb50 # 0e294
# r8 = lock
bl lock # 0e298
mr r8, r16 # 0e29c
mr r9, r17 # 0e2a0
mr r8, r3 # 0e2a4
# r8 = id
bl id_kind # 0e2a8
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x01 # 0e2ac
mr r30, r8 # 0e2b0
bne+ major_0x0b07c_0x28 # 0e2b4
lwz r16, 0x0008(r30) # 0e2b8
rlwinm. r17, r16, 0, 30, 30 # 0e2bc
bne+ major_0x0af60_0xa4 # 0e2c0
bl mktask # 0e2c4
mr. r31, r8 # 0e2c8
beq+ major_0x0af60 # 0e2cc
mfspr r15, 272/*sprg0*/ # 0e2d0
lwz r17, 0x0000(r31) # 0e2d4
stw r17, 0x0154( r6) # 0e2d8
lhz r16, -0x0116(r15) # 0e2dc
sth r16, 0x001a(r31) # 0e2e0
addi r16, r31, 0x100 # 0e2e4
lwz r17, 0x013c( r6) # 0e2e8
stw r17, 0x0164(r16) # 0e2ec
lwz r17, 0x0144( r6) # 0e2f0
stw r17, 0x00fc(r16) # 0e2f4
lwz r17, 0x014c( r6) # 0e2f8
stw r17, 0x0114(r16) # 0e2fc
stw r4, 0x0098(r31) # 0e300
lwz r17, 0x0134( r6) # 0e304
stw r17, 0x00ec(r31) # 0e308
lwz r16, 0x0064(r28) # 0e30c
rlwinm. r8, r5, 0, 30, 30 # 0e310
beq- major_0x0e284_0x98 # 0e314
oris r16, r16, 0x40 # 0e318
major_0x0e284_0x98:
rlwinm. r8, r5, 0, 29, 29 # 0e31c
beq- major_0x0e284_0xa4 # 0e320
oris r16, r16, 0x02 # 0e324
major_0x0e284_0xa4:
stw r16, 0x0064(r28) # 0e328
# r1 = kdp
b syscall_return_assert_lock_unheld # 0e32c
/***********************************************************
mktask
************************************************************
Xrefs:
setup
major_0x0bb20
major_0x0e284
***********************************************************/
mktask: /* < outside referer */
mr r27, r8 # 0e330
mflr r29 # 0e334
li r8, 0x400 # 0e338
# r1 = kdp
bl boring # 0e33c
mr. r28, r8 # 0e340
beq- mktask_0x20c # 0e344
li r9, 0x02 # 0e348
bl major_0x151b0 # 0e34c
cmpwi r8, 0x00 # 0e350
beq- mktask_0x204 # 0e354
stw r8, 0x0000(r28) # 0e358
lis r8, 0x5441 # 0e35c
ori r8, r8, 0x534b # 0e360
stw r8, 0x0004(r28) # 0e364
lis r8, 0x2d2d # 0e368
ori r8, r8, 0x2d2d # 0e36c
stw r8, 0x0074(r28) # 0e370
li r8, 0x1c # 0e374
# r1 = kdp
bl boring # 0e378
cmpwi r8, 0x00 # 0e37c
stw r8, 0x009c(r28) # 0e380
beq- mktask_0x1fc # 0e384
lis r9, 0x6e6f # 0e388
ori r9, r9, 0x7465 # 0e38c
stw r9, 0x0004( r8) # 0e390
addi r16, r28, 160 # 0e394
lis r17, 0x5345 # 0e398
stw r16, 0x0008(r16) # 0e39c
ori r17, r17, 0x4d41 # 0e3a0
stw r16, 0x000c(r16) # 0e3a4
stw r17, 0x0004(r16) # 0e3a8
li r16, 0x01 # 0e3ac
stw r16, 0x00b4(r28) # 0e3b0
li r16, 0x00 # 0e3b4
stw r16, 0x00b0(r28) # 0e3b8
addi r8, r28, 160 # 0e3bc
li r9, 0x05 # 0e3c0
bl major_0x151b0 # 0e3c4
cmpwi r8, 0x00 # 0e3c8
beq- mktask_0x1f4 # 0e3cc
stw r8, 0x00a0(r28) # 0e3d0
rlwinm. r8, r7, 0, 12, 12 # 0e3d4
beq- mktask_0xe8 # 0e3d8
li r8, 0x214 # 0e3dc
# r1 = kdp
bl boring # 0e3e0
andi. r9, r8, 0x0f # 0e3e4
cmpwi cr1, r8, 0x00 # 0e3e8
bne+ panic_wrapper_0x0e280 # 0e3ec
beq- cr1, mktask_0x1ec # 0e3f0
stw r8, 0x008c(r28) # 0e3f4
stw r8, 0x01d8(r28) # 0e3f8
li r16, 0x80 # 0e3fc
addi r8, r8, -0x04 # 0e400
lwz r17, -0x08e0( r1) # 0e404
mktask_0xd8:
addi r16, r16, -0x01 # 0e408
stwu r17, 0x0004( r8) # 0e40c
cmpwi r16, 0x00 # 0e410
bgt+ mktask_0xd8 # 0e414
mktask_0xe8:
addi r16, r1, -0xa44 # 0e418
addi r17, r28, 0x08 # 0e41c
stw r16, 0x0000(r17) # 0e420
stw r16, 0x0008(r17) # 0e424
lwz r18, 0x000c(r16) # 0e428
stw r18, 0x000c(r17) # 0e42c
stw r17, 0x0008(r18) # 0e430
stw r17, 0x000c(r16) # 0e434
li r16, 0x00 # 0e438
stb r16, 0x0018(r28) # 0e43c
li r16, 0x09 # 0e440
stw r16, 0x0064(r28) # 0e444
lis r16, 0x7469 # 0e448
ori r16, r16, 0x6d65 # 0e44c
stw r16, 0x0024(r28) # 0e450
li r16, 0x01 # 0e454
stb r16, 0x0036(r28) # 0e458
li r16, 100 # 0e45c
stw r16, 0x001c(r28) # 0e460
li r16, 0x02 # 0e464
stb r16, 0x0019(r28) # 0e468
addi r16, r28, 0x100 # 0e46c
stw r16, 0x0088(r28) # 0e470
lwz r16, -0x0968( r1) # 0e474
stw r16, 0x0100(r28) # 0e478
lwz r16, -0x0964( r1) # 0e47c
stw r16, 0x01a4(r28) # 0e480
addi r16, r1, 0x360 # 0e484
stw r16, 0x00f0(r28) # 0e488
li r16, 0x00 # 0e48c
lwz r17, 0x009c(r28) # 0e490
stw r16, 0x0010(r17) # 0e494
stw r16, 0x0014(r17) # 0e498
li r16, -0x7271 # 0e49c
stw r16, 0x0018(r17) # 0e4a0
li r16, 0x00 # 0e4a4
stw r16, 0x00c0(r28) # 0e4a8
stw r16, 0x00c4(r28) # 0e4ac
stw r16, 0x00e0(r28) # 0e4b0
stw r16, 0x00e4(r28) # 0e4b4
stw r16, 0x00e8(r28) # 0e4b8
bl bizarre # 0e4bc
stw r8, 0x00c8(r28) # 0e4c0
stw r9, 0x00cc(r28) # 0e4c4
stw r8, 0x00d0(r28) # 0e4c8
stw r9, 0x00d4(r28) # 0e4cc
stw r8, 0x0080(r28) # 0e4d0
stw r9, 0x0084(r28) # 0e4d4
lwz r16, 0x0ecc( r1) # 0e4d8
addi r16, r16, 0x01 # 0e4dc
stw r16, 0x0ecc( r1) # 0e4e0
stw r27, 0x006c(r28) # 0e4e4
lwz r16, 0x0000(r27) # 0e4e8
stw r16, 0x0060(r28) # 0e4ec
lwz r17, 0x0014(r27) # 0e4f0
stw r17, 0x0070(r28) # 0e4f4
lwz r16, 0x000c(r17) # 0e4f8
addi r16, r16, 0x01 # 0e4fc
stw r16, 0x000c(r17) # 0e500
lwz r16, 0x0010(r27) # 0e504
addi r16, r16, 0x01 # 0e508
stw r16, 0x0010(r27) # 0e50c
mtlr r29 # 0e510
mr r8, r28 # 0e514
blr # 0e518
mktask_0x1ec:
lwz r8, 0x00a0(r28) # 0e51c
bl major_0x15300 # 0e520
mktask_0x1f4:
lwz r8, 0x009c(r28) # 0e524
bl looks_like_poolextend # 0e528
mktask_0x1fc:
lwz r8, 0x0000(r28) # 0e52c
bl major_0x15300 # 0e530
mktask_0x204:
mr r8, r28 # 0e534
bl looks_like_poolextend # 0e538
mktask_0x20c:
mtlr r29 # 0e53c
li r8, 0x00 # 0e540
blr # 0e544
/***********************************************************
major_0x0e548
************************************************************
syscall 8
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0e548: /* < outside referer */
mr r16, r8 # 0e548
mr r17, r9 # 0e54c
addi r8, r1, -0xb50 # 0e550
# r8 = lock
bl lock # 0e554
mr r8, r16 # 0e558
mr r9, r17 # 0e55c
mr r8, r3 # 0e560
# r8 = id
bl id_kind # 0e564
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x02 # 0e568
mr r31, r8 # 0e56c
bne+ major_0x0b07c_0x28 # 0e570
lbz r16, 0x0018(r31) # 0e574
cmpwi r16, 0x00 # 0e578
bne+ major_0x0af60_0xa4 # 0e57c
lwz r8, 0x0060(r31) # 0e580
# r8 = id
bl id_kind # 0e584
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x01 # 0e588
bne+ panic_wrapper_0x0e280 # 0e58c
lwz r16, 0x0008( r8) # 0e590
rlwinm. r17, r16, 0, 30, 30 # 0e594
bne+ major_0x0af60_0xa4 # 0e598
lwz r30, 0x0088(r31) # 0e59c
stw r4, 0x0074(r31) # 0e5a0
stw r5, 0x011c(r30) # 0e5a4
lwz r18, 0x009c(r31) # 0e5a8
lwz r16, 0x0134( r6) # 0e5ac
lwz r17, 0x013c( r6) # 0e5b0
stw r16, 0x0010(r18) # 0e5b4
stw r17, 0x0014(r18) # 0e5b8
lwz r16, 0x0144( r6) # 0e5bc
lwz r17, 0x014c( r6) # 0e5c0
stw r16, 0x010c(r30) # 0e5c4
stw r16, 0x0090(r31) # 0e5c8
stw r17, 0x0094(r31) # 0e5cc
addi r16, r31, 0x08 # 0e5d0
lwz r17, 0x0008(r16) # 0e5d4
lwz r18, 0x000c(r16) # 0e5d8
stw r17, 0x0008(r18) # 0e5dc
stw r18, 0x000c(r17) # 0e5e0
li r17, 0x00 # 0e5e4
stw r17, 0x0008(r16) # 0e5e8
stw r17, 0x000c(r16) # 0e5ec
mr r8, r31 # 0e5f0
bl major_0x13ed8_0x8 # 0e5f4
bl major_0x149d4_0x8 # 0e5f8
bl major_0x14af8 # 0e5fc
# r1 = kdp
b syscall_return_assert_lock_unheld # 0e600
/***********************************************************
major_0x0e604
************************************************************
syscall 9
************************************************************
Xrefs:
syscall
major_0x0ea58
***********************************************************/
major_0x0e604: /* < outside referer */
mr r16, r8 # 0e604
mr r17, r9 # 0e608
addi r8, r1, -0xb50 # 0e60c
# r8 = lock
bl lock # 0e610
mr r8, r16 # 0e614
mr r9, r17 # 0e618
mr r8, r3 # 0e61c
# r8 = id
bl id_kind # 0e620
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
mr r31, r8 # 0e624
cmpwi r9, 0x02 # 0e628
bne+ major_0x0b07c_0x28 # 0e62c
lwz r16, 0x0064(r31) # 0e630
lbz r17, 0x0018(r31) # 0e634
rlwinm. r18, r16, 0, 30, 30 # 0e638
cmpwi cr1, r17, 0x00 # 0e63c
bne+ major_0x0af60_0xa4 # 0e640
beq- cr1, major_0x0e604_0xb4 # 0e644
mfspr r15, 272/*sprg0*/ # 0e648
lhz r18, 0x001a(r31) # 0e64c
lhz r17, -0x0116(r15) # 0e650
cmpw r18, r17 # 0e654
beq- major_0x0e604_0xe0 # 0e658
ori r16, r16, 0x400 # 0e65c
stw r16, 0x0064(r31) # 0e660
li r17, 0x01 # 0e664
stb r17, 0x0019(r31) # 0e668
mr r8, r31 # 0e66c
bl major_0x14af8_0xa0 # 0e670
sync # 0e674
lwz r16, -0x0b50( r1) # 0e678
cmpwi cr1, r16, 0x00 # 0e67c
li r16, 0x00 # 0e680
bne+ cr1, major_0x0e604_0x8c # 0e684
mflr r16 # 0e688
bl panic # 0e68c
major_0x0e604_0x8c:
stw r16, -0x0b50( r1) # 0e690
addi r10, r10, -0x04 # 0e694
b major_0x0b4a4_0x78 # 0e698
major_0x0e604_0x98: /* < outside referer */
lwz r16, 0x0064(r31) # 0e69c
ori r16, r16, 0x02 # 0e6a0
stw r16, 0x0064(r31) # 0e6a4
lwz r17, 0x009c(r31) # 0e6a8
li r16, -0x7271 # 0e6ac
stw r16, 0x0018(r17) # 0e6b0
b major_0x0e604_0xfc # 0e6b4
major_0x0e604_0xb4:
ori r16, r16, 0x02 # 0e6b8
stw r16, 0x0064(r31) # 0e6bc
addi r16, r31, 0x08 # 0e6c0
lwz r17, 0x0008(r16) # 0e6c4
lwz r18, 0x000c(r16) # 0e6c8
stw r17, 0x0008(r18) # 0e6cc
stw r18, 0x000c(r17) # 0e6d0
li r17, 0x00 # 0e6d4
stw r17, 0x0008(r16) # 0e6d8
stw r17, 0x000c(r16) # 0e6dc
b major_0x0e604_0xf0 # 0e6e0
major_0x0e604_0xe0:
ori r16, r16, 0x02 # 0e6e4
stw r16, 0x0064(r31) # 0e6e8
mr r8, r31 # 0e6ec
bl major_0x13e4c # 0e6f0
major_0x0e604_0xf0:
lwz r17, 0x009c(r31) # 0e6f4
li r3, 0x00 # 0e6f8
stw r4, 0x0018(r17) # 0e6fc
major_0x0e604_0xfc:
addi r16, r1, -0xa44 # 0e700
addi r17, r31, 0x08 # 0e704
stw r16, 0x0000(r17) # 0e708
stw r16, 0x0008(r17) # 0e70c
lwz r18, 0x000c(r16) # 0e710
stw r18, 0x000c(r17) # 0e714
stw r17, 0x0008(r18) # 0e718
stw r17, 0x000c(r16) # 0e71c
lbz r8, 0x0037(r31) # 0e720
cmpwi r8, 0x01 # 0e724
bne- major_0x0e604_0x130 # 0e728
addi r8, r31, 0x20 # 0e72c
bl major_0x130f0_0x5d8 # 0e730
major_0x0e604_0x130:
lwz r8, 0x0098(r31) # 0e734
# r8 = id
bl id_kind # 0e738
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x04 # 0e73c
li r18, 0x00 # 0e740
lwz r17, 0x009c(r31) # 0e744
stw r18, 0x009c(r31) # 0e748
bne- major_0x0e604_0x15c # 0e74c
mr r31, r8 # 0e750
mr r8, r17 # 0e754
bl major_0x0c8b4 # 0e758
b major_0x0b0fc_0x8 # 0e75c
major_0x0e604_0x15c:
mr r8, r17 # 0e760
bl looks_like_poolextend # 0e764
b major_0x0b0fc_0x8 # 0e768
/***********************************************************
major_0x0e76c
************************************************************
syscall 10
************************************************************
Xrefs:
syscall
major_0x14bcc
***********************************************************/
major_0x0e76c: /* < outside referer */
mr r16, r8 # 0e76c
mr r17, r9 # 0e770
addi r8, r1, -0xb50 # 0e774
# r8 = lock
bl lock # 0e778
mr r8, r16 # 0e77c
mr r9, r17 # 0e780
mr r8, r3 # 0e784
# r8 = id
bl id_kind # 0e788
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x02 # 0e78c
bne+ major_0x0b07c_0x28 # 0e790
mr r31, r8 # 0e794
lbz r16, 0x0018(r31) # 0e798
cmpwi r16, 0x00 # 0e79c
bne+ major_0x0af60_0xa4 # 0e7a0
lwz r16, 0x0064(r31) # 0e7a4
rlwinm. r16, r16, 0, 30, 30 # 0e7a8
beq+ major_0x0af60_0xa4 # 0e7ac
mr r8, r31 # 0e7b0
bl major_0x0e76c_0x50 # 0e7b4
# r1 = kdp
b syscall_return_assert_lock_unheld # 0e7b8
major_0x0e76c_0x50: /* < outside referer */
mflr r27 # 0e7bc
mr r26, r8 # 0e7c0
addi r16, r26, 0x08 # 0e7c4
lwz r17, 0x0008(r16) # 0e7c8
lwz r18, 0x000c(r16) # 0e7cc
stw r17, 0x0008(r18) # 0e7d0
stw r18, 0x000c(r17) # 0e7d4
li r17, 0x00 # 0e7d8
stw r17, 0x0008(r16) # 0e7dc
stw r17, 0x000c(r16) # 0e7e0
lwz r8, 0x0000(r26) # 0e7e4
bl major_0x15300 # 0e7e8
lwz r8, 0x00a0(r26) # 0e7ec
bl major_0x15300 # 0e7f0
lwz r8, 0x009c(r26) # 0e7f4
cmpwi r8, 0x00 # 0e7f8
beq- major_0x0e76c_0x98 # 0e7fc
bl looks_like_poolextend # 0e800
major_0x0e76c_0x98:
lwz r8, 0x008c(r26) # 0e804
cmpwi r8, 0x00 # 0e808
beq- major_0x0e76c_0xa8 # 0e80c
bl looks_like_poolextend # 0e810
major_0x0e76c_0xa8:
lwz r17, 0x006c(r26) # 0e814
lwz r16, 0x0010(r17) # 0e818
addi r16, r16, -0x01 # 0e81c
stw r16, 0x0010(r17) # 0e820
lwz r17, 0x0070(r26) # 0e824
lwz r16, 0x000c(r17) # 0e828
addi r16, r16, -0x01 # 0e82c
stw r16, 0x000c(r17) # 0e830
mr r8, r26 # 0e834
bl looks_like_poolextend # 0e838
lwz r16, 0x0ecc( r1) # 0e83c
addi r16, r16, -0x01 # 0e840
stw r16, 0x0ecc( r1) # 0e844
mtlr r27 # 0e848
blr # 0e84c
/***********************************************************
major_0x0e850
************************************************************
syscall 11
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0e850: /* < outside referer */
mfspr r16, 272/*sprg0*/ # 0e850
cmpwi r3, 0x00 # 0e854
lwz r17, -0x08f0( r1) # 0e858
lwz r18, -0x0008(r16) # 0e85c
lwz r19, 0x0000(r17) # 0e860
bne- major_0x0e850_0x1c # 0e864
lwz r3, 0x0000(r18) # 0e868
major_0x0e850_0x1c:
cmpw r3, r19 # 0e86c
li r3, 0x01 # 0e870
beq+ syscall_return # 0e874
li r3, 0x00 # 0e878
b syscall_return # 0e87c
/***********************************************************
major_0x0e880
************************************************************
syscall 12
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0e880: /* < outside referer */
mfspr r14, 272/*sprg0*/ # 0e880
lwz r15, -0x0008(r14) # 0e884
lwz r3, 0x0000(r15) # 0e888
lwz r4, 0x00ec(r15) # 0e88c
b syscall_return # 0e890
/***********************************************************
major_0x0e894
************************************************************
syscall 14
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0e894: /* < outside referer */
cmpwi r4, 0x01 # 0e894
cmpwi cr1, r4, 10000 # 0e898
blt+ syscall_return_kMPInvalidIDErr # 0e89c
bgt+ cr1, syscall_return_kMPInvalidIDErr # 0e8a0
mr r16, r8 # 0e8a4
mr r17, r9 # 0e8a8
addi r8, r1, -0xb50 # 0e8ac
# r8 = lock
bl lock # 0e8b0
mr r8, r16 # 0e8b4
mr r9, r17 # 0e8b8
mr r8, r3 # 0e8bc
# r8 = id
bl id_kind # 0e8c0
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x02 # 0e8c4
bne+ major_0x0b07c_0x28 # 0e8c8
mr r31, r8 # 0e8cc
lbz r16, 0x0018(r31) # 0e8d0
cmpwi r16, 0x01 # 0e8d4
bne- major_0x0e894_0x70 # 0e8d8
lwz r16, 0x0008(r31) # 0e8dc
lwz r17, 0x001c(r31) # 0e8e0
lwz r18, 0x0014(r16) # 0e8e4
subf r17, r17, r4 # 0e8e8
add r18, r17, r18 # 0e8ec
cmpwi r17, 0x00 # 0e8f0
stw r18, 0x0014(r16) # 0e8f4
beq- major_0x0e894_0x70 # 0e8f8
mr r8, r31 # 0e8fc
bl major_0x14af8_0xa0 # 0e900
major_0x0e894_0x70:
stw r4, 0x001c(r31) # 0e904
# r1 = kdp
b syscall_return_assert_lock_unheld # 0e908
/***********************************************************
major_0x0e90c
************************************************************
syscall 56
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0e90c: /* < outside referer */
mr r16, r8 # 0e90c
mr r17, r9 # 0e910
addi r8, r1, -0xb50 # 0e914
# r8 = lock
bl lock # 0e918
mr r8, r16 # 0e91c
mr r9, r17 # 0e920
mr r8, r3 # 0e924
# r8 = id
bl id_kind # 0e928
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x02 # 0e92c
bne+ major_0x0b07c_0x28 # 0e930
mr r31, r8 # 0e934
mr r8, r4 # 0e938
# r8 = id
bl id_kind # 0e93c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x00 # 0e940
cmpwi cr1, r9, 0x04 # 0e944
beq- major_0x0e90c_0x44 # 0e948
bne+ cr1, major_0x0b07c_0x28 # 0e94c
major_0x0e90c_0x44:
mr r30, r8 # 0e950
stw r4, 0x00f4(r31) # 0e954
# r1 = kdp
b syscall_return_assert_lock_unheld # 0e958
/***********************************************************
NKThrowException
************************************************************
syscall 57
Throws an exception to a specified task.
************************************************************
Xrefs:
syscall
************************************************************
> r3 = MPTaskID task
> r4 = MPExceptionKind kind
< r3 = result code
***********************************************************/
NKThrowException: /* < outside referer */
mfspr r15, 272/*sprg0*/ # 0e95c
mr r16, r8 # 0e960
mr r17, r9 # 0e964
addi r8, r1, -0xb50 # 0e968
# r8 = lock
bl lock # 0e96c
mr r8, r16 # 0e970
mr r9, r17 # 0e974
mr r8, r3 # 0e978
# r8 = id
bl id_kind # 0e97c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x02 # 0e980
bne+ major_0x0b07c_0x28 # 0e984
mr r31, r8 # 0e988
lwz r16, 0x0064(r31) # 0e98c
mtcr r16 # 0e990
li r3, -0x7271 # 0e994
beq+ cr7, major_0x0b0fc_0x8 # 0e998
li r3, -0x726c # 0e99c
beq+ cr5, major_0x0b0fc_0x8 # 0e9a0
beq+ cr3, major_0x0af60_0xa4 # 0e9a4
lbz r17, 0x0018(r31) # 0e9a8
lhz r18, 0x001a(r31) # 0e9ac
cmpwi cr1, r17, 0x00 # 0e9b0
bne- cr1, NKThrowException_0x70 # 0e9b4
ori r16, r16, 0x600 # 0e9b8
stw r4, 0x00f8(r31) # 0e9bc
stw r16, 0x0064(r31) # 0e9c0
li r3, -0x726b # 0e9c4
b major_0x0b0fc_0x8 # 0e9c8
NKThrowException_0x70:
lhz r19, -0x0116(r15) # 0e9cc
cmpw r19, r18 # 0e9d0
bne- NKThrowException_0xb8 # 0e9d4
ori r16, r16, 0x200 # 0e9d8
stw r4, 0x00f8(r31) # 0e9dc
stw r16, 0x0064(r31) # 0e9e0
mr r8, r31 # 0e9e4
bl major_0x13e4c # 0e9e8
addi r16, r1, -0xa34 # 0e9ec
addi r17, r31, 0x08 # 0e9f0
stw r16, 0x0000(r17) # 0e9f4
stw r16, 0x0008(r17) # 0e9f8
lwz r18, 0x000c(r16) # 0e9fc
stw r18, 0x000c(r17) # 0ea00
stw r17, 0x0008(r18) # 0ea04
stw r17, 0x000c(r16) # 0ea08
li r3, -0x726c # 0ea0c
b major_0x0b0fc_0x8 # 0ea10
NKThrowException_0xb8:
lwz r3, 0x0000(r31) # 0ea14
ori r16, r16, 0x400 # 0ea18
stw r16, 0x0064(r31) # 0ea1c
li r17, 0x01 # 0ea20
stb r17, 0x0019(r31) # 0ea24
mr r8, r31 # 0ea28
bl major_0x14af8_0xa0 # 0ea2c
sync # 0ea30
lwz r16, -0x0b50( r1) # 0ea34
cmpwi cr1, r16, 0x00 # 0ea38
li r16, 0x00 # 0ea3c
bne+ cr1, NKThrowException_0xf0 # 0ea40
mflr r16 # 0ea44
bl panic # 0ea48
NKThrowException_0xf0:
stw r16, -0x0b50( r1) # 0ea4c
addi r10, r10, -0x04 # 0ea50
b major_0x0b4a4_0x78 # 0ea54
/***********************************************************
major_0x0ea58
************************************************************
syscall 58
************************************************************
Xrefs:
major_0x02ccc
syscall
major_0x0ec8c
***********************************************************/
major_0x0ea58: /* < outside referer */
mr r16, r8 # 0ea58
mr r17, r9 # 0ea5c
addi r8, r1, -0xb50 # 0ea60
# r8 = lock
bl lock # 0ea64
mr r8, r16 # 0ea68
mr r9, r17 # 0ea6c
mr r8, r3 # 0ea70
# r8 = id
bl id_kind # 0ea74
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x02 # 0ea78
bne+ major_0x0b07c_0x28 # 0ea7c
mr r31, r8 # 0ea80
lwz r29, 0x0064(r31) # 0ea84
mtcr r29 # 0ea88
li r3, -0x7271 # 0ea8c
beq+ cr7, major_0x0b0fc_0x8 # 0ea90
beq- cr4, major_0x0ea58_0x44 # 0ea94
bne+ cr5, major_0x0af60_0xa4 # 0ea98
major_0x0ea58_0x44:
mtcr r4 # 0ea9c
lwz r30, 0x0088(r31) # 0eaa0
bns- cr7, major_0x0ea58_0x68 # 0eaa4
li r8, 0x1c # 0eaa8
bl boring_with_crset # 0eaac
cmpwi r8, 0x00 # 0eab0
beq+ major_0x0af60 # 0eab4
li r3, 0x00 # 0eab8
b major_0x0ea58_0x114 # 0eabc
major_0x0ea58_0x68:
li r17, 0x3800 # 0eac0
rlwinm. r8, r29, 0, 18, 18 # 0eac4
andc r29, r29, r17 # 0eac8
li r17, 0x00 # 0eacc
bne- cr7, major_0x0ea58_0x80 # 0ead0
ori r17, r17, 0x400 # 0ead4
major_0x0ea58_0x80:
ble- cr7, major_0x0ea58_0x88 # 0ead8
ori r17, r17, 0x200 # 0eadc
major_0x0ea58_0x88:
lwz r18, 0x00a4(r30) # 0eae0
rlwimi r18, r17, 0, 21, 22 # 0eae4
stw r18, 0x00a4(r30) # 0eae8
li r19, 0x600 # 0eaec
lwz r17, 0x0008(r31) # 0eaf0
addi r18, r1, -0xa34 # 0eaf4
andc r29, r29, r19 # 0eaf8
cmpw cr1, r17, r18 # 0eafc
stw r29, 0x0064(r31) # 0eb00
bne- major_0x0ea58_0xb4 # 0eb04
bne- cr1, major_0x0ea58_0xe0 # 0eb08
major_0x0ea58_0xb4:
addi r16, r31, 0x08 # 0eb0c
lwz r17, 0x0008(r16) # 0eb10
lwz r18, 0x000c(r16) # 0eb14
stw r17, 0x0008(r18) # 0eb18
stw r18, 0x000c(r17) # 0eb1c
li r17, 0x00 # 0eb20
stw r17, 0x0008(r16) # 0eb24
stw r17, 0x000c(r16) # 0eb28
mr r8, r31 # 0eb2c
bl major_0x13ed8_0x8 # 0eb30
bl major_0x14af8 # 0eb34
major_0x0ea58_0xe0:
# r1 = kdp
b syscall_return_assert_lock_unheld # 0eb38
major_0x0ea58_0xe4: /* < outside referer */
addi r16, r1, -0xa34 # 0eb3c
addi r17, r31, 0x08 # 0eb40
stw r16, 0x0000(r17) # 0eb44
stw r16, 0x0008(r17) # 0eb48
lwz r18, 0x000c(r16) # 0eb4c
stw r18, 0x000c(r17) # 0eb50
stw r17, 0x0008(r18) # 0eb54
stw r17, 0x000c(r16) # 0eb58
li r8, 0x1c # 0eb5c
bl boring_with_crset # 0eb60
lwz r29, 0x0064(r31) # 0eb64
ori r29, r29, 0x200 # 0eb68
major_0x0ea58_0x114:
mtcr r29 # 0eb6c
mr r28, r8 # 0eb70
beq- cr3, major_0x0ea58_0x13c # 0eb74
blt- cr5, major_0x0ea58_0x13c # 0eb78
lwz r8, -0x08e8( r1) # 0eb7c
# r8 = id
bl id_kind # 0eb80
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x04 # 0eb84
mr r30, r8 # 0eb88
ori r29, r29, 0x800 # 0eb8c
beq- major_0x0ea58_0x184 # 0eb90
major_0x0ea58_0x13c:
bso- cr4, major_0x0ea58_0x158 # 0eb94
lwz r8, 0x00f4(r31) # 0eb98
# r8 = id
bl id_kind # 0eb9c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x04 # 0eba0
mr r30, r8 # 0eba4
ori r29, r29, 0x1000 # 0eba8
beq- major_0x0ea58_0x184 # 0ebac
major_0x0ea58_0x158:
mr. r8, r28 # 0ebb0
bnel- looks_like_poolextend # 0ebb4
addi r16, r31, 0x08 # 0ebb8
lwz r17, 0x0008(r16) # 0ebbc
lwz r18, 0x000c(r16) # 0ebc0
stw r17, 0x0008(r18) # 0ebc4
stw r18, 0x000c(r17) # 0ebc8
li r17, 0x00 # 0ebcc
stw r17, 0x0008(r16) # 0ebd0
stw r17, 0x000c(r16) # 0ebd4
b major_0x0e604_0x98 # 0ebd8
major_0x0ea58_0x184:
mr. r8, r28 # 0ebdc
stw r29, 0x0064(r31) # 0ebe0
bne- major_0x0ea58_0x1a4 # 0ebe4
lwz r8, 0x0028(r30) # 0ebe8
cmpwi r8, 0x00 # 0ebec
beq+ major_0x0ea58_0x114 # 0ebf0
lwz r17, 0x0008( r8) # 0ebf4
stw r17, 0x0028(r30) # 0ebf8
major_0x0ea58_0x1a4:
bl major_0x0ea58_0x1dc # 0ebfc
lwz r16, 0x0088(r31) # 0ec00
lwz r17, 0x0000(r31) # 0ec04
mflr r18 # 0ec08
stw r17, 0x0010( r8) # 0ec0c
lwz r17, 0x0074(r16) # 0ec10
lbz r19, 0x0040(r16) # 0ec14
lbzx r18, r18, r19 # 0ec18
stw r18, 0x0014( r8) # 0ec1c
stw r17, 0x0018( r8) # 0ec20
stw r18, 0x00f8(r31) # 0ec24
mr r31, r30 # 0ec28
bl major_0x0c8b4 # 0ec2c
b major_0x0b0fc_0x8 # 0ec30
major_0x0ea58_0x1dc: /* < outside referer */
blrl # 0ec34
.long 0x0002020d # 0ec38
.long 0x01080003 # 0ec3c
.long 0x090a0403 # 0ec40
.long 0x07000500 # 0ec44
.long 0x0b0b0403 # 0ec48
.long 0x07060505 # 0ec4c
.long 0x11000000 # 0ec50
/***********************************************************
major_0x0ec54
************************************************************
syscall 59
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0ec54: /* < outside referer */
mr r16, r8 # 0ec54
mr r17, r9 # 0ec58
addi r8, r1, -0xb50 # 0ec5c
# r8 = lock
bl lock # 0ec60
mr r8, r16 # 0ec64
mr r9, r17 # 0ec68
mr. r8, r3 # 0ec6c
beq- major_0x0ec54_0x30 # 0ec70
# r8 = id
bl id_kind # 0ec74
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x04 # 0ec78
bne+ major_0x0b07c_0x28 # 0ec7c
mr r31, r8 # 0ec80
major_0x0ec54_0x30:
stw r3, -0x08e8( r1) # 0ec84
# r1 = kdp
b syscall_return_assert_lock_unheld # 0ec88
/***********************************************************
major_0x0ec8c
************************************************************
syscall 60
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0ec8c: /* < outside referer */
mr r16, r8 # 0ec8c
mr r17, r9 # 0ec90
addi r8, r1, -0xb50 # 0ec94
# r8 = lock
bl lock # 0ec98
mr r8, r16 # 0ec9c
mr r9, r17 # 0eca0
mr r8, r3 # 0eca4
# r8 = id
bl id_kind # 0eca8
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x02 # 0ecac
bne+ major_0x0b07c_0x28 # 0ecb0
mr r31, r8 # 0ecb4
cmpwi r4, 0x05 # 0ecb8
beq- major_0x0ec8c_0x288 # 0ecbc
lwz r16, 0x0064(r31) # 0ecc0
mtcr r16 # 0ecc4
li r3, -0x7271 # 0ecc8
beq+ cr7, major_0x0b0fc_0x8 # 0eccc
beq- cr4, major_0x0ec8c_0x4c # 0ecd0
bne+ cr5, major_0x0af60_0xa4 # 0ecd4
major_0x0ec8c_0x4c:
lbz r16, 0x0018(r31) # 0ecd8
cmpwi r16, 0x00 # 0ecdc
bne+ major_0x0af60_0xa4 # 0ece0
cmpwi r4, 0x00 # 0ece4
cmpwi cr1, r4, 0x01 # 0ece8
beq- major_0x0ec8c_0xf8 # 0ecec
beq- cr1, major_0x0ec8c_0x10c # 0ecf0
cmpwi r4, 0x02 # 0ecf4
cmpwi cr1, r4, 0x03 # 0ecf8
beq- major_0x0ec8c_0x150 # 0ecfc
beq- cr1, major_0x0ec8c_0x1c0 # 0ed00
cmpwi r4, 0x04 # 0ed04
bne+ major_0x0af60_0xa4 # 0ed08
lwz r16, 0x0088(r31) # 0ed0c
li r17, 0x00 # 0ed10
cmplwi r5, 0x00 # 0ed14
cmplwi cr1, r5, 0x04 # 0ed18
beq- major_0x0ec8c_0xac # 0ed1c
beq- cr1, major_0x0ec8c_0xc0 # 0ed20
cmplwi r5, 0x08 # 0ed24
cmplwi cr1, r5, 0x0c # 0ed28
beq- major_0x0ec8c_0xc8 # 0ed2c
beq- cr1, major_0x0ec8c_0xd0 # 0ed30
b major_0x0af60_0xa4 # 0ed34
major_0x0ec8c_0xac:
lwz r8, 0x0070(r31) # 0ed38
lwz r9, 0x0074(r16) # 0ed3c
bl major_0x10320_0xcc # 0ed40
lwz r17, 0x0000( r8) # 0ed44
b major_0x0ec8c_0x36c # 0ed48
major_0x0ec8c_0xc0:
lwz r17, 0x0074(r16) # 0ed4c
b major_0x0ec8c_0x36c # 0ed50
major_0x0ec8c_0xc8:
lwz r17, 0x00f8(r31) # 0ed54
b major_0x0ec8c_0x36c # 0ed58
major_0x0ec8c_0xd0:
lwz r17, 0x0040(r16) # 0ed5c
lwz r18, 0x0064(r16) # 0ed60
rlwinm. r8, r17, 0, 27, 27 # 0ed64
li r17, 0x02 # 0ed68
beq- major_0x0ec8c_0x36c # 0ed6c
rlwinm. r8, r18, 0, 1, 1 # 0ed70
li r17, 0x01 # 0ed74
bne- major_0x0ec8c_0x36c # 0ed78
li r17, 0x00 # 0ed7c
b major_0x0ec8c_0x36c # 0ed80
major_0x0ec8c_0xf8:
lwz r16, 0x0088(r31) # 0ed84
cmplwi cr1, r5, 0xf8 # 0ed88
andi. r17, r5, 0x07 # 0ed8c
addi r16, r16, 0xfc # 0ed90
b major_0x0ec8c_0x124 # 0ed94
major_0x0ec8c_0x10c:
lwz r16, 0x0088(r31) # 0ed98
cmplwi r5, 0x100 # 0ed9c
cmplwi cr1, r5, 0xf8 # 0eda0
beq- major_0x0ec8c_0x144 # 0eda4
andi. r17, r5, 0x07 # 0eda8
addi r16, r16, 0x1fc # 0edac
major_0x0ec8c_0x124:
add r16, r16, r5 # 0edb0
bgt+ cr1, major_0x0af60_0xa4 # 0edb4
bne+ major_0x0af60_0xa4 # 0edb8
lwzu r17, 0x0004(r16) # 0edbc
lwzu r18, 0x0004(r16) # 0edc0
lwzu r19, 0x0004(r16) # 0edc4
lwzu r20, 0x0004(r16) # 0edc8
b major_0x0ec8c_0x3a8 # 0edcc
major_0x0ec8c_0x144:
lwz r17, 0x00e4(r16) # 0edd0
li r18, 0x00 # 0edd4
b major_0x0ec8c_0x37c # 0edd8
major_0x0ec8c_0x150:
lwz r16, 0x0088(r31) # 0eddc
rlwinm. r8, r7, 0, 12, 12 # 0ede0
lwz r16, 0x00d8(r16) # 0ede4
beq+ major_0x0af60_0xa4 # 0ede8
cmplwi cr3, r16, 0x00 # 0edec
cmplwi r5, 0x200 # 0edf0
cmplwi cr2, r5, 0x210 # 0edf4
cmplwi cr1, r5, 0x1f0 # 0edf8
beql+ cr3, panic_wrapper_0x0e280 # 0edfc
beq- major_0x0ec8c_0x1a4 # 0ee00
beq- cr2, major_0x0ec8c_0x1b8 # 0ee04
andi. r8, r5, 0x0f # 0ee08
add r16, r16, r5 # 0ee0c
addi r16, r16, -0x04 # 0ee10
bgt+ cr1, major_0x0af60_0xa4 # 0ee14
bne+ major_0x0af60_0xa4 # 0ee18
lwzu r17, 0x0004(r16) # 0ee1c
lwzu r18, 0x0004(r16) # 0ee20
lwzu r19, 0x0004(r16) # 0ee24
lwzu r20, 0x0004(r16) # 0ee28
b major_0x0ec8c_0x3a8 # 0ee2c
major_0x0ec8c_0x1a4:
lwz r17, 0x0200(r16) # 0ee30
lwz r18, 0x0204(r16) # 0ee34
lwz r19, 0x0208(r16) # 0ee38
lwz r20, 0x020c(r16) # 0ee3c
b major_0x0ec8c_0x3a8 # 0ee40
major_0x0ec8c_0x1b8:
lwz r17, 0x0210(r16) # 0ee44
b major_0x0ec8c_0x36c # 0ee48
major_0x0ec8c_0x1c0:
lwz r16, 0x0088(r31) # 0ee4c
li r17, 0x00 # 0ee50
cmplwi r5, 0x00 # 0ee54
cmplwi cr1, r5, 0x08 # 0ee58
beq- major_0x0ec8c_0x21c # 0ee5c
beq- cr1, major_0x0ec8c_0x228 # 0ee60
cmplwi r5, 0x10 # 0ee64
cmplwi cr1, r5, 0x30 # 0ee68
beq- major_0x0ec8c_0x234 # 0ee6c
beq- cr1, major_0x0ec8c_0x240 # 0ee70
cmplwi r5, 0x1c # 0ee74
cmplwi cr1, r5, 0x20 # 0ee78
beq- major_0x0ec8c_0x24c # 0ee7c
beq- cr1, major_0x0ec8c_0x254 # 0ee80
cmplwi r5, 0x24 # 0ee84
cmplwi cr1, r5, 0x28 # 0ee88
beq- major_0x0ec8c_0x25c # 0ee8c
beq- cr1, major_0x0ec8c_0x264 # 0ee90
cmplwi r5, 0x2c # 0ee94
cmplwi cr1, r5, 0x18 # 0ee98
beq- major_0x0ec8c_0x278 # 0ee9c
beq- cr1, major_0x0ec8c_0x280 # 0eea0
b major_0x0af60_0xa4 # 0eea4
major_0x0ec8c_0x21c:
lwz r17, 0x00f0(r16) # 0eea8
lwz r18, 0x00f4(r16) # 0eeac
b major_0x0ec8c_0x37c # 0eeb0
major_0x0ec8c_0x228:
lwz r17, 0x00e8(r16) # 0eeb4
lwz r18, 0x00ec(r16) # 0eeb8
b major_0x0ec8c_0x37c # 0eebc
major_0x0ec8c_0x234:
lwz r17, 0x00f8(r16) # 0eec0
lwz r18, 0x00fc(r16) # 0eec4
b major_0x0ec8c_0x37c # 0eec8
major_0x0ec8c_0x240:
lwz r17, 0x0070(r16) # 0eecc
lwz r18, 0x0074(r16) # 0eed0
b major_0x0ec8c_0x37c # 0eed4
major_0x0ec8c_0x24c:
lwz r17, 0x00d4(r16) # 0eed8
b major_0x0ec8c_0x36c # 0eedc
major_0x0ec8c_0x254:
lwz r17, 0x00a4(r16) # 0eee0
b major_0x0ec8c_0x36c # 0eee4
major_0x0ec8c_0x25c:
lwz r17, 0x00c4(r16) # 0eee8
b major_0x0ec8c_0x36c # 0eeec
major_0x0ec8c_0x264:
lbz r17, 0x0040(r16) # 0eef0
bl major_0x0ea58_0x1dc # 0eef4
mflr r18 # 0eef8
lbzx r17, r18, r17 # 0eefc
b major_0x0ec8c_0x36c # 0ef00
major_0x0ec8c_0x278:
li r17, 0x00 # 0ef04
b major_0x0ec8c_0x36c # 0ef08
major_0x0ec8c_0x280:
lwz r17, 0x00dc(r16) # 0ef0c
b major_0x0ec8c_0x36c # 0ef10
major_0x0ec8c_0x288:
cmplwi cr1, r5, 0x04 # 0ef14
cmplwi r5, 0x14 # 0ef18
beq- cr1, major_0x0ec8c_0x2c4 # 0ef1c
beq- major_0x0ec8c_0x2e4 # 0ef20
cmplwi cr1, r5, 0x20 # 0ef24
cmplwi r5, 0x30 # 0ef28
beq- cr1, major_0x0ec8c_0x2f4 # 0ef2c
beq- major_0x0ec8c_0x308 # 0ef30
cmpwi cr1, r5, 0x40 # 0ef34
cmplwi r5, 0x3c # 0ef38
beq- cr1, major_0x0ec8c_0x320 # 0ef3c
beq- major_0x0ec8c_0x318 # 0ef40
cmpwi cr1, r5, 0x50 # 0ef44
beq- cr1, major_0x0ec8c_0x34c # 0ef48
b major_0x0af60_0xa4 # 0ef4c
major_0x0ec8c_0x2c4:
lwz r17, 0x0074(r31) # 0ef50
lwz r18, 0x0008(r31) # 0ef54
lwz r18, 0x0004(r18) # 0ef58
lhz r19, 0x001a(r31) # 0ef5c
lbz r20, 0x0018(r31) # 0ef60
rlwimi r19, r20, 16, 8, 15 # 0ef64
lwz r20, 0x001c(r31) # 0ef68
b major_0x0ec8c_0x3a8 # 0ef6c
major_0x0ec8c_0x2e4:
lwz r17, 0x0060(r31) # 0ef70
lwz r18, 0x00c0(r31) # 0ef74
lwz r19, 0x00c4(r31) # 0ef78
b major_0x0ec8c_0x390 # 0ef7c
major_0x0ec8c_0x2f4:
lwz r17, 0x00c8(r31) # 0ef80
lwz r18, 0x00cc(r31) # 0ef84
lwz r19, 0x00d0(r31) # 0ef88
lwz r20, 0x00d4(r31) # 0ef8c
b major_0x0ec8c_0x3a8 # 0ef90
major_0x0ec8c_0x308:
lwz r17, 0x00e0(r31) # 0ef94
lwz r18, 0x00e4(r31) # 0ef98
lwz r19, 0x00e8(r31) # 0ef9c
b major_0x0ec8c_0x390 # 0efa0
major_0x0ec8c_0x318:
lwz r17, 0x0078(r31) # 0efa4
b major_0x0ec8c_0x36c # 0efa8
major_0x0ec8c_0x320:
lbz r20, 0x0018(r31) # 0efac
li r17, 0x00 # 0efb0
lwz r16, 0x0008(r31) # 0efb4
lwz r18, 0x0070(r31) # 0efb8
cmpwi r20, 0x00 # 0efbc
lwz r19, 0x0094(r31) # 0efc0
lwz r20, 0x0090(r31) # 0efc4
lwz r18, 0x0000(r18) # 0efc8
bne- major_0x0ec8c_0x3a8 # 0efcc
lwz r17, 0x0000(r16) # 0efd0
b major_0x0ec8c_0x3a8 # 0efd4
major_0x0ec8c_0x34c:
mfspr r18, 272/*sprg0*/ # 0efd8
lwz r20, 0x0088(r31) # 0efdc
lwz r19, -0x0008(r18) # 0efe0
cmpw r19, r31 # 0efe4
lwz r17, 0x0004(r18) # 0efe8
beq- major_0x0ec8c_0x36c # 0efec
lwz r17, 0x010c(r20) # 0eff0
b major_0x0ec8c_0x36c # 0eff4
major_0x0ec8c_0x36c:
li r21, 0x04 # 0eff8
stw r17, 0x0134( r6) # 0effc
stw r21, 0x0154( r6) # 0f000
# r1 = kdp
b syscall_return_assert_lock_unheld # 0f004
major_0x0ec8c_0x37c:
li r21, 0x08 # 0f008
stw r17, 0x0134( r6) # 0f00c
stw r18, 0x013c( r6) # 0f010
stw r21, 0x0154( r6) # 0f014
# r1 = kdp
b syscall_return_assert_lock_unheld # 0f018
major_0x0ec8c_0x390:
li r21, 0x0c # 0f01c
stw r17, 0x0134( r6) # 0f020
stw r18, 0x013c( r6) # 0f024
stw r19, 0x0144( r6) # 0f028
stw r21, 0x0154( r6) # 0f02c
# r1 = kdp
b syscall_return_assert_lock_unheld # 0f030
major_0x0ec8c_0x3a8:
li r21, 0x10 # 0f034
stw r17, 0x0134( r6) # 0f038
stw r18, 0x013c( r6) # 0f03c
stw r19, 0x0144( r6) # 0f040
stw r20, 0x014c( r6) # 0f044
stw r21, 0x0154( r6) # 0f048
# r1 = kdp
b syscall_return_assert_lock_unheld # 0f04c
/***********************************************************
major_0x0f050
************************************************************
syscall 61
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0f050: /* < outside referer */
mr r16, r8 # 0f050
mr r17, r9 # 0f054
addi r8, r1, -0xb50 # 0f058
# r8 = lock
bl lock # 0f05c
mr r8, r16 # 0f060
mr r9, r17 # 0f064
mr r8, r3 # 0f068
# r8 = id
bl id_kind # 0f06c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x02 # 0f070
bne+ major_0x0b07c_0x28 # 0f074
mr r31, r8 # 0f078
lwz r16, 0x0064(r31) # 0f07c
mtcr r16 # 0f080
li r3, -0x7271 # 0f084
beq+ cr7, major_0x0b0fc_0x8 # 0f088
beq- cr4, major_0x0f050_0x44 # 0f08c
bne+ cr5, major_0x0af60_0xa4 # 0f090
major_0x0f050_0x44:
lbz r16, 0x0018(r31) # 0f094
cmpwi r16, 0x00 # 0f098
bne+ major_0x0af60_0xa4 # 0f09c
lwz r17, 0x0134( r6) # 0f0a0
lwz r18, 0x013c( r6) # 0f0a4
lwz r19, 0x0144( r6) # 0f0a8
lwz r20, 0x014c( r6) # 0f0ac
cmpwi r4, 0x00 # 0f0b0
cmpwi cr1, r4, 0x01 # 0f0b4
beq- major_0x0f050_0x84 # 0f0b8
beq- cr1, major_0x0f050_0x98 # 0f0bc
cmpwi r4, 0x02 # 0f0c0
cmpwi cr1, r4, 0x03 # 0f0c4
beq- major_0x0f050_0xe8 # 0f0c8
beq- cr1, major_0x0f050_0x170 # 0f0cc
b major_0x0af60_0xa4 # 0f0d0
major_0x0f050_0x84:
lwz r16, 0x0088(r31) # 0f0d4
cmplwi cr1, r5, 0xf8 # 0f0d8
andi. r8, r5, 0x07 # 0f0dc
addi r16, r16, 0xfc # 0f0e0
b major_0x0f050_0xb0 # 0f0e4
major_0x0f050_0x98:
lwz r16, 0x0088(r31) # 0f0e8
cmplwi r5, 0x100 # 0f0ec
cmplwi cr1, r5, 0xf8 # 0f0f0
beq- major_0x0f050_0xd8 # 0f0f4
andi. r8, r5, 0x07 # 0f0f8
addi r16, r16, 0x1fc # 0f0fc
major_0x0f050_0xb0:
add r16, r16, r5 # 0f100
bgt+ cr1, major_0x0af60_0xa4 # 0f104
bne+ major_0x0af60_0xa4 # 0f108
li r21, 0x10 # 0f10c
stwu r17, 0x0004(r16) # 0f110
stwu r18, 0x0004(r16) # 0f114
stwu r19, 0x0004(r16) # 0f118
stwu r20, 0x0004(r16) # 0f11c
stw r21, 0x0154( r6) # 0f120
# r1 = kdp
b syscall_return_assert_lock_unheld # 0f124
major_0x0f050_0xd8:
li r21, 0x04 # 0f128
stw r17, 0x00e4(r16) # 0f12c
stw r21, 0x0154( r6) # 0f130
# r1 = kdp
b syscall_return_assert_lock_unheld # 0f134
major_0x0f050_0xe8:
lwz r16, 0x0088(r31) # 0f138
rlwinm. r8, r7, 0, 12, 12 # 0f13c
lwz r16, 0x00d8(r16) # 0f140
beq+ major_0x0af60_0xa4 # 0f144
cmplwi cr3, r16, 0x00 # 0f148
cmplwi r5, 0x200 # 0f14c
cmplwi cr2, r5, 0x210 # 0f150
cmplwi cr1, r5, 0x1f0 # 0f154
beql+ cr3, panic_wrapper_0x0e280 # 0f158
beq- major_0x0f050_0x144 # 0f15c
beq- cr2, major_0x0f050_0x160 # 0f160
andi. r8, r5, 0x0f # 0f164
add r16, r16, r5 # 0f168
addi r16, r16, -0x04 # 0f16c
bgt+ cr1, major_0x0af60_0xa4 # 0f170
bne+ major_0x0af60_0xa4 # 0f174
li r21, 0x10 # 0f178
stwu r17, 0x0004(r16) # 0f17c
stwu r18, 0x0004(r16) # 0f180
stwu r19, 0x0004(r16) # 0f184
stwu r20, 0x0004(r16) # 0f188
stw r21, 0x0154( r6) # 0f18c
# r1 = kdp
b syscall_return_assert_lock_unheld # 0f190
major_0x0f050_0x144:
li r21, 0x10 # 0f194
stw r17, 0x0200(r16) # 0f198
stw r18, 0x0204(r16) # 0f19c
stw r19, 0x0208(r16) # 0f1a0
stw r20, 0x020c(r16) # 0f1a4
stw r21, 0x0154( r6) # 0f1a8
# r1 = kdp
b syscall_return_assert_lock_unheld # 0f1ac
major_0x0f050_0x160:
li r21, 0x04 # 0f1b0
stw r17, 0x0210(r16) # 0f1b4
stw r21, 0x0154( r6) # 0f1b8
# r1 = kdp
b syscall_return_assert_lock_unheld # 0f1bc
major_0x0f050_0x170:
lwz r16, 0x0088(r31) # 0f1c0
cmplwi r5, 0x00 # 0f1c4
cmplwi cr1, r5, 0x08 # 0f1c8
beq- major_0x0f050_0x1b0 # 0f1cc
beq- cr1, major_0x0f050_0x1c4 # 0f1d0
cmplwi r5, 0x10 # 0f1d4
beq- major_0x0f050_0x1d8 # 0f1d8
cmplwi r5, 0x1c # 0f1dc
cmplwi cr1, r5, 0x20 # 0f1e0
beq- major_0x0f050_0x1ec # 0f1e4
beq- cr1, major_0x0f050_0x1fc # 0f1e8
cmplwi r5, 0x24 # 0f1ec
cmplwi cr1, r5, 0x18 # 0f1f0
beq- major_0x0f050_0x218 # 0f1f4
beq- cr1, major_0x0f050_0x228 # 0f1f8
b major_0x0af60_0xa4 # 0f1fc
major_0x0f050_0x1b0:
li r21, 0x08 # 0f200
stw r17, 0x00f0(r16) # 0f204
stw r18, 0x00f4(r16) # 0f208
stw r21, 0x0154( r6) # 0f20c
# r1 = kdp
b syscall_return_assert_lock_unheld # 0f210
major_0x0f050_0x1c4:
li r21, 0x08 # 0f214
stw r17, 0x00e8(r16) # 0f218
stw r18, 0x00ec(r16) # 0f21c
stw r21, 0x0154( r6) # 0f220
# r1 = kdp
b syscall_return_assert_lock_unheld # 0f224
major_0x0f050_0x1d8:
li r21, 0x08 # 0f228
stw r17, 0x00f8(r16) # 0f22c
stw r18, 0x00fc(r16) # 0f230
stw r21, 0x0154( r6) # 0f234
# r1 = kdp
b syscall_return_assert_lock_unheld # 0f238
major_0x0f050_0x1ec:
li r21, 0x04 # 0f23c
stw r17, 0x00d4(r16) # 0f240
stw r21, 0x0154( r6) # 0f244
# r1 = kdp
b syscall_return_assert_lock_unheld # 0f248
major_0x0f050_0x1fc:
li r21, 0x04 # 0f24c
lwz r18, 0x00a4(r16) # 0f250
rlwimi r18, r17, 0, 20, 23 # 0f254
rlwimi r18, r17, 0, 31, 31 # 0f258
stw r18, 0x00a4(r16) # 0f25c
stw r21, 0x0154( r6) # 0f260
# r1 = kdp
b syscall_return_assert_lock_unheld # 0f264
major_0x0f050_0x218:
li r21, 0x04 # 0f268
stw r17, 0x00c4(r16) # 0f26c
stw r21, 0x0154( r6) # 0f270
# r1 = kdp
b syscall_return_assert_lock_unheld # 0f274
major_0x0f050_0x228:
li r21, 0x04 # 0f278
stw r17, 0x00dc(r16) # 0f27c
stw r21, 0x0154( r6) # 0f280
# r1 = kdp
b syscall_return_assert_lock_unheld # 0f284
/***********************************************************
major_0x0f288
************************************************************
syscall 63
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0f288: /* < outside referer */
mr r16, r8 # 0f288
mr r17, r9 # 0f28c
addi r8, r1, -0xb50 # 0f290
# r8 = lock
bl lock # 0f294
mr r8, r16 # 0f298
mr r9, r17 # 0f29c
mr r8, r3 # 0f2a0
# r8 = id
bl id_kind # 0f2a4
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x02 # 0f2a8
bne+ major_0x0b07c_0x28 # 0f2ac
stw r4, 0x00ec( r8) # 0f2b0
# r1 = kdp
b syscall_return_assert_lock_unheld # 0f2b4
/***********************************************************
major_0x0f2b8
************************************************************
syscall 114
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0f2b8: /* < outside referer */
mr r16, r8 # 0f2b8
mr r17, r9 # 0f2bc
addi r8, r1, -0xb50 # 0f2c0
# r8 = lock
bl lock # 0f2c4
mr r8, r16 # 0f2c8
mr r9, r17 # 0f2cc
mr r8, r3 # 0f2d0
# r8 = id
bl id_kind # 0f2d4
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x02 # 0f2d8
mr r31, r8 # 0f2dc
bne+ major_0x0b07c_0x28 # 0f2e0
mr r8, r4 # 0f2e4
# r8 = id
bl id_kind # 0f2e8
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x07 # 0f2ec
mr r30, r8 # 0f2f0
bne+ major_0x0b07c_0x28 # 0f2f4
lwz r16, 0x0064(r31) # 0f2f8
lwz r17, 0x00e8(r31) # 0f2fc
rlwinm. r8, r16, 0, 30, 30 # 0f300
cmplw cr1, r17, r5 # 0f304
lwz r18, 0x0018(r30) # 0f308
bne+ major_0x0af60_0xa4 # 0f30c
bne+ cr1, major_0x0af60_0xa4 # 0f310
rlwinm. r8, r18, 0, 28, 28 # 0f314
cmplwi cr1, r17, 0x04 # 0f318
beq+ major_0x0af60_0xa4 # 0f31c
lwz r16, 0x0064(r31) # 0f320
lhz r17, 0x022a(r30) # 0f324
ori r16, r16, 0x40 # 0f328
stw r16, 0x0064(r31) # 0f32c
sth r17, 0x001a(r31) # 0f330
rlwinm. r8, r16, 0, 26, 26 # 0f334
mr r8, r31 # 0f338
bne- major_0x0f2b8_0x90 # 0f33c
bl major_0x13e4c # 0f340
bl major_0x13ed8_0x8 # 0f344
major_0x0f2b8_0x90:
bl major_0x14af8 # 0f348
# r1 = kdp
b syscall_return_assert_lock_unheld # 0f34c
/***********************************************************
NKSetTaskType
************************************************************
syscall 126
************************************************************
Xrefs:
syscall
***********************************************************/
NKSetTaskType: /* < outside referer */
mr r16, r8 # 0f350
mr r17, r9 # 0f354
addi r8, r1, -0xb50 # 0f358
# r8 = lock
bl lock # 0f35c
mr r8, r16 # 0f360
mr r9, r17 # 0f364
mr r8, r3 # 0f368
# r8 = id
bl id_kind # 0f36c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x02 # 0f370
bne+ major_0x0b07c_0x28 # 0f374
stw r4, 0x0074( r8) # 0f378
# r1 = kdp
b syscall_return_assert_lock_unheld # 0f37c
/***********************************************************
panic_wrapper_0x0f380
************************************************************
Xrefs:
convert_pmdts_to_areas
major_0x1070c
major_0x108fc
NKSetAreaAccess
major_0x10de0
major_0x111d4
major_0x1139c
free_list_add_page
NKMapPage
NKUnmapPages
NKMakePhysicallyContiguous
NKLockPages
NKHoldPages
major_0x12110
major_0x12248
***********************************************************/
panic_wrapper_0x0f380: /* < outside referer */
b panic # 0f380
/***********************************************************
major_0x0f384
************************************************************
Xrefs:
setup
***********************************************************/
major_0x0f384: /* < outside referer */
addi r9, r1, -0x450 # 0f384
lis r8, 0x5048 # 0f388
stw r9, 0x0008( r9) # 0f38c
ori r8, r8, 0x5953 # 0f390
stw r9, 0x000c( r9) # 0f394
stw r8, 0x0004( r9) # 0f398
li r8, 0x00 # 0f39c
stw r8, -0x0430( r1) # 0f3a0
stw r8, -0x042c( r1) # 0f3a4
stw r8, -0x03f4( r1) # 0f3a8
lwz r8, -0x03fc( r1) # 0f3ac
stw r8, -0x03f8( r1) # 0f3b0
blr # 0f3b4
/***********************************************************
convert_pmdts_to_areas
************************************************************
Pretty obvious from log output.
************************************************************
Xrefs:
setup
***********************************************************/
convert_pmdts_to_areas: /* < outside referer */
mflr r16 # 0f3b8
mfcr r17 # 0f3bc
stw r16, -0x0278( r1) # 0f3c0
stw r17, -0x0274( r1) # 0f3c4
bl 1f # 0f3c8
.ascii "Converting PMDTs to areas^n" # 0f3cc
.short 0 # 0f3e7
.align 2 # 0f3e9
1: mflr r8 # 0f3ec
bl print_string # 0f3f0
lwz r17, -0x042c( r1) # 0f3f4
lwz r16, 0x06ac( r1) # 0f3f8
add r17, r17, r16 # 0f3fc
stw r17, -0x042c( r1) # 0f400
addi r27, r1, 120 # 0f404
lis r26, 0x00 # 0f408
convert_pmdts_to_areas_0x54:
lwzu r25, 0x0008(r27) # 0f40c
b convert_pmdts_to_areas_0x60 # 0f410
convert_pmdts_to_areas_0x5c:
addi r25, r25, 0x08 # 0f414
convert_pmdts_to_areas_0x60:
lwz r17, 0x0004(r25) # 0f418
lhz r15, 0x0000(r25) # 0f41c
andi. r8, r17, 0xe00 # 0f420
lhz r16, 0x0002(r25) # 0f424
cmplwi r8, 0x00 # 0f428
cmplwi cr1, r8, 0xc00 # 0f42c
beq- convert_pmdts_to_areas_0x178 # 0f430
beq- cr1, convert_pmdts_to_areas_0x2e4 # 0f434
cmplwi cr2, r15, 0x00 # 0f438
cmplwi cr3, r16, 0xffff # 0f43c
bne+ cr2, convert_pmdts_to_areas_0x5c # 0f440
bne+ cr3, convert_pmdts_to_areas_0x5c # 0f444
addis r26, r26, 0x1000 # 0f448
cmplwi r26, 0x00 # 0f44c
bne+ convert_pmdts_to_areas_0x54 # 0f450
li r8, 160 # 0f454
# r1 = kdp
bl boring # 0f458
mr. r31, r8 # 0f45c
beq+ panic_wrapper_0x0f380 # 0f460
lwz r8, -0x001c( r1) # 0f464
stw r8, 0x006c(r31) # 0f468
lis r15, 0x68f1 # 0f46c
ori r15, r15, 0x68f1 # 0f470
stw r15, 0x0024(r31) # 0f474
li r16, 0x1000 # 0f478
stw r16, 0x002c(r31) # 0f47c
lis r8, 0x00 # 0f480
ori r8, r8, 0x8000 # 0f484
stw r8, 0x0030(r31) # 0f488
li r8, 0x00 # 0f48c
stw r8, 0x001c(r31) # 0f490
lis r8, 0x00 # 0f494
ori r8, r8, 0xe00c # 0f498
stw r8, 0x0020(r31) # 0f49c
mr r8, r31 # 0f4a0
bl createarea # 0f4a4
cmpwi r9, 0x00 # 0f4a8
beq- convert_pmdts_to_areas_0x100 # 0f4ac
mr r8, r31 # 0f4b0
bl looks_like_poolextend # 0f4b4
convert_pmdts_to_areas_0x100:
li r8, 160 # 0f4b8
# r1 = kdp
bl boring # 0f4bc
mr. r31, r8 # 0f4c0
beq+ panic_wrapper_0x0f380 # 0f4c4
lwz r8, -0x001c( r1) # 0f4c8
stw r8, 0x006c(r31) # 0f4cc
lis r15, -0x2153 # 0f4d0
ori r15, r15, 0xbeef # 0f4d4
stw r15, 0x0024(r31) # 0f4d8
li r16, 0x1000 # 0f4dc
stw r16, 0x002c(r31) # 0f4e0
lis r8, 0x00 # 0f4e4
ori r8, r8, 0x8000 # 0f4e8
stw r8, 0x0030(r31) # 0f4ec
li r8, 0x00 # 0f4f0
stw r8, 0x001c(r31) # 0f4f4
lis r8, 0x00 # 0f4f8
ori r8, r8, 0xe00c # 0f4fc
stw r8, 0x0020(r31) # 0f500
mr r8, r31 # 0f504
bl createarea # 0f508
cmpwi r9, 0x00 # 0f50c
beq- convert_pmdts_to_areas_0x164 # 0f510
mr r8, r31 # 0f514
bl looks_like_poolextend # 0f518
convert_pmdts_to_areas_0x164:
lwz r16, -0x0278( r1) # 0f51c
lwz r17, -0x0274( r1) # 0f520
mtlr r16 # 0f524
mtcr r17 # 0f528
blr # 0f52c
convert_pmdts_to_areas_0x178:
lwz r8, -0x026c( r1) # 0f530
cmpwi r8, 0x00 # 0f534
beq- convert_pmdts_to_areas_0x198 # 0f538
bl createarea # 0f53c
cmpwi r9, 0x00 # 0f540
bne+ panic_wrapper_0x0f380 # 0f544
li r8, 0x00 # 0f548
stw r8, -0x026c( r1) # 0f54c
convert_pmdts_to_areas_0x198:
li r8, 160 # 0f550
# r1 = kdp
bl boring # 0f554
mr. r31, r8 # 0f558
beq+ panic_wrapper_0x0f380 # 0f55c
lwz r17, 0x0004(r25) # 0f560
lhz r15, 0x0000(r25) # 0f564
lhz r16, 0x0002(r25) # 0f568
lis r8, 0x6172 # 0f56c
ori r8, r8, 0x6561 # 0f570
stw r8, 0x0004(r31) # 0f574
slwi r15, r15, 12 # 0f578
addi r16, r16, 0x01 # 0f57c
add r15, r15, r26 # 0f580
slwi r16, r16, 12 # 0f584
lwz r8, 0x0ec0( r1) # 0f588
stw r8, 0x000c(r31) # 0f58c
lwz r8, -0x001c( r1) # 0f590
stw r8, 0x006c(r31) # 0f594
stw r15, 0x0024(r31) # 0f598
stw r16, 0x002c(r31) # 0f59c
stw r16, 0x0038(r31) # 0f5a0
li r8, 0x00 # 0f5a4
stw r8, 0x0030(r31) # 0f5a8
lwz r18, 0x007c(r31) # 0f5ac
rlwinm r9, r17, 0, 0, 19 # 0f5b0
stw r9, 0x0070(r31) # 0f5b4
andi. r16, r17, 0x03 # 0f5b8
bne- convert_pmdts_to_areas_0x20c # 0f5bc
ori r17, r17, 0x02 # 0f5c0
convert_pmdts_to_areas_0x20c:
bl major_0x10d38_0x58 # 0f5c4
stw r18, 0x001c(r31) # 0f5c8
convert_pmdts_to_areas_0x214:
lis r8, 0x00 # 0f5cc
ori r8, r8, 0xe00c # 0f5d0
stw r8, 0x0020(r31) # 0f5d4
mr r8, r31 # 0f5d8
bl createarea # 0f5dc
cmpwi r9, 0x00 # 0f5e0
mr r31, r8 # 0f5e4
beq+ convert_pmdts_to_areas_0x5c # 0f5e8
lwz r9, 0x0024(r31) # 0f5ec
lwz r8, 0x006c(r31) # 0f5f0
bl major_0x10320_0xcc # 0f5f4
mr r24, r8 # 0f5f8
lwz r15, 0x0024(r31) # 0f5fc
lwz r16, 0x0024(r24) # 0f600
lwz r17, 0x0028(r31) # 0f604
subf. r16, r15, r16 # 0f608
stw r17, -0x0270( r1) # 0f60c
stw r16, 0x002c(r31) # 0f610
beq- convert_pmdts_to_areas_0x2b0 # 0f614
bltl+ panic_wrapper_0x0f380 # 0f618
mr r8, r31 # 0f61c
bl createarea # 0f620
cmpwi r9, 0x00 # 0f624
mr r30, r8 # 0f628
bnel+ panic_wrapper_0x0f380 # 0f62c
lwz r15, 0x0028(r24) # 0f630
lwz r16, -0x0270( r1) # 0f634
subf. r16, r15, r16 # 0f638
ble+ convert_pmdts_to_areas_0x5c # 0f63c
li r8, 160 # 0f640
# r1 = kdp
bl boring # 0f644
mr. r31, r8 # 0f648
beq+ panic_wrapper_0x0f380 # 0f64c
li r8, 0x9c # 0f650
convert_pmdts_to_areas_0x29c:
lwzx r9, r8, r30 # 0f654
stwx r9, r8, r31 # 0f658
cmpwi r8, 0x00 # 0f65c
addi r8, r8, -0x04 # 0f660
bgt+ convert_pmdts_to_areas_0x29c # 0f664
convert_pmdts_to_areas_0x2b0:
lwz r9, 0x0024(r31) # 0f668
lwz r15, 0x0028(r24) # 0f66c
lwz r16, -0x0270( r1) # 0f670
subf. r16, r15, r16 # 0f674
addi r15, r15, 0x01 # 0f678
blel+ panic_wrapper_0x0f380 # 0f67c
stw r16, 0x002c(r31) # 0f680
stw r15, 0x0024(r31) # 0f684
subf r9, r9, r15 # 0f688
lwz r8, 0x0070(r31) # 0f68c
add r8, r8, r9 # 0f690
stw r8, 0x0070(r31) # 0f694
b convert_pmdts_to_areas_0x214 # 0f698
convert_pmdts_to_areas_0x2e4:
li r8, 160 # 0f69c
# r1 = kdp
bl boring # 0f6a0
mr. r31, r8 # 0f6a4
beq+ panic_wrapper_0x0f380 # 0f6a8
lwz r17, 0x0004(r25) # 0f6ac
lhz r15, 0x0000(r25) # 0f6b0
lhz r16, 0x0002(r25) # 0f6b4
lis r8, 0x6172 # 0f6b8
ori r8, r8, 0x6561 # 0f6bc
stw r8, 0x0004(r31) # 0f6c0
slwi r15, r15, 12 # 0f6c4
addi r16, r16, 0x01 # 0f6c8
add r15, r15, r26 # 0f6cc
slwi r16, r16, 12 # 0f6d0
lwz r8, 0x0ec0( r1) # 0f6d4
stw r8, 0x000c(r31) # 0f6d8
lwz r8, -0x001c( r1) # 0f6dc
stw r8, 0x006c(r31) # 0f6e0
stw r15, 0x0024(r31) # 0f6e4
stw r16, 0x002c(r31) # 0f6e8
stw r16, 0x0038(r31) # 0f6ec
li r8, 0x00 # 0f6f0
stw r8, 0x0030(r31) # 0f6f4
li r8, 0x07 # 0f6f8
stw r8, 0x001c(r31) # 0f6fc
lis r8, 0x00 # 0f700
ori r8, r8, 0x600c # 0f704
stw r8, 0x0020(r31) # 0f708
rlwinm r8, r17, 22, 0, 29 # 0f70c
stw r8, 0x0040(r31) # 0f710
lwz r8, 0x0008(r31) # 0f714
ori r8, r8, 0x40 # 0f718
lwz r9, -0x0430( r1) # 0f71c
cmpwi r9, 0x00 # 0f720
bgt- convert_pmdts_to_areas_0x374 # 0f724
ori r8, r8, 0x80 # 0f728
convert_pmdts_to_areas_0x374:
stw r8, 0x0008(r31) # 0f72c
cmpwi r15, 0x00 # 0f730
bne- convert_pmdts_to_areas_0x388 # 0f734
stw r31, -0x026c( r1) # 0f738
b convert_pmdts_to_areas_0x5c # 0f73c
convert_pmdts_to_areas_0x388:
lwz r18, -0x026c( r1) # 0f740
cmpwi r18, 0x00 # 0f744
beq- convert_pmdts_to_areas_0x3c8 # 0f748
lwz r8, 0x0024(r18) # 0f74c
lwz r9, 0x002c(r18) # 0f750
add r19, r8, r9 # 0f754
cmplw r19, r15 # 0f758
bne- convert_pmdts_to_areas_0x3c8 # 0f75c
add r9, r9, r16 # 0f760
addi r19, r9, -0x01 # 0f764
stw r9, 0x002c(r18) # 0f768
stw r9, 0x0038(r18) # 0f76c
stw r19, 0x0028(r18) # 0f770
mr r8, r31 # 0f774
bl looks_like_poolextend # 0f778
b convert_pmdts_to_areas_0x5c # 0f77c
convert_pmdts_to_areas_0x3c8:
lwz r8, 0x0008(r31) # 0f780
ori r8, r8, 0x80 # 0f784
stw r8, 0x0008(r31) # 0f788
mr r8, r31 # 0f78c
bl createarea # 0f790
cmpwi r9, 0x00 # 0f794
bne+ panic_wrapper_0x0f380 # 0f798
b convert_pmdts_to_areas_0x5c # 0f79c
/***********************************************************
NKGetPageSizeClasses
************************************************************
syscall 68
************************************************************
Xrefs:
syscall
************************************************************
> r1 = kdp
< r3 = pageClass
***********************************************************/
NKGetPageSizeClasses: /* < outside referer */
li r3, 0x01 # 0f7a0
b syscall_return # 0f7a4
/***********************************************************
NKGetPageSize
************************************************************
syscall 69
************************************************************
Xrefs:
syscall
************************************************************
> r1 = kdp
> r3 = pageClass
< r3 = byteCount
***********************************************************/
NKGetPageSize: /* < outside referer */
cmpwi r3, 0x01 # 0f7a8
bne+ syscall_return_paramErr # 0f7ac
lwz r3, 0x0f30( r1) # kdp.u32_cpuinfo_page_size
b syscall_return # 0f7b4
/***********************************************************
major_0x0f7b8
************************************************************
syscall 70
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0f7b8: /* < outside referer */
mr r16, r8 # 0f7b8
mr r17, r9 # 0f7bc
addi r8, r1, -0xb50 # 0f7c0
# r8 = lock
bl lock # 0f7c4
mr r8, r16 # 0f7c8
mr r9, r17 # 0f7cc
mfspr r16, 272/*sprg0*/ # 0f7d0
lwz r17, -0x0008(r16) # 0f7d4
mr r8, r3 # 0f7d8
lwz r9, 0x006c(r17) # 0f7dc
lwz r16, 0x0008( r9) # 0f7e0
rlwinm. r16, r16, 0, 30, 30 # 0f7e4
bne+ major_0x0af60_0xa4 # 0f7e8
bl NKCreateAddressSpaceSub # 0f7ec
sync # 0f7f0
lwz r16, -0x0b50( r1) # 0f7f4
cmpwi cr1, r16, 0x00 # 0f7f8
li r16, 0x00 # 0f7fc
bne+ cr1, major_0x0f7b8_0x54 # 0f800
mflr r16 # 0f804
bl panic # 0f808
major_0x0f7b8_0x54:
stw r16, -0x0b50( r1) # 0f80c
mr. r3, r8 # 0f810
li r4, 0x00 # 0f814
bne+ syscall_return # 0f818
lwz r4, 0x0000( r9) # 0f81c
b syscall_return # 0f820
/***********************************************************
NKCreateAddressSpaceSub
************************************************************
Guessing by strings -- but maybe that name applies to syscall?
************************************************************
Xrefs:
setup
major_0x0f7b8
***********************************************************/
NKCreateAddressSpaceSub: /* < outside referer */
cmpwi r8, 0x00 # 0f824
mr r27, r9 # 0f828
mflr r30 # 0f82c
bne- NKCreateAddressSpaceSub_0x1c # 0f830
mfspr r15, 272/*sprg0*/ # 0f834
lwz r28, -0x0338(r15) # 0f838
b NKCreateAddressSpaceSub_0x30 # 0f83c
NKCreateAddressSpaceSub_0x1c:
# r8 = id
bl id_kind # 0f840
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0a # 0f844
mr r28, r8 # 0f848
bne- NKCreateAddressSpaceSub_0x1c8 # 0f84c
lwz r28, 0x0018(r28) # 0f850
NKCreateAddressSpaceSub_0x30:
lwz r29, 0x0000(r28) # 0f854
bl 1f # 0f858
.ascii "NKCreateAddressSpaceSub - group at 0x" # 0f85c
.short 0 # 0f881
.align 2 # 0f883
1: mflr r8 # 0f884
bl print_string # 0f888
mr r8, r28 # 0f88c
bl print_hexword_spc # 0f890
mr r8, r29 # 0f894
bl print_hexword_spc # 0f898
bl 1f # 0f89c
.ascii "^n" # 0f8a0
.short 0 # 0f8a2
.align 2 # 0f8a4
1: mflr r8 # 0f8a4
bl print_string # 0f8a8
li r8, 0xc0 # 0f8ac
# r1 = kdp
bl boring # 0f8b0
mr. r31, r8 # 0f8b4
beq- NKCreateAddressSpaceSub_0x1c0 # 0f8b8
stw r29, 0x0070(r31) # 0f8bc
li r9, 0x08 # 0f8c0
bl major_0x151b0 # 0f8c4
cmpwi r8, 0x00 # 0f8c8
beq- NKCreateAddressSpaceSub_0x1b8 # 0f8cc
stw r8, 0x0000(r31) # 0f8d0
lwz r16, 0x0048(r28) # 0f8d4
addi r16, r16, 0x01 # 0f8d8
clrlwi. r16, r16, 0x0c # 0f8dc
beq- NKCreateAddressSpaceSub_0x1a4 # 0f8e0
stw r16, 0x0048(r28) # 0f8e4
addi r16, r16, -0x01 # 0f8e8
li r17, 0x3c # 0f8ec
oris r16, r16, 0x2000 # 0f8f0
addi r18, r31, 0x30 # 0f8f4
NKCreateAddressSpaceSub_0xd4:
cmpwi r17, 0x00 # 0f8f8
rlwimi r16, r17, 18, 8, 11 # 0f8fc
stwx r16, r17, r18 # 0f900
addi r17, r17, -0x04 # 0f904
bne+ NKCreateAddressSpaceSub_0xd4 # 0f908
lis r8, 0x5350 # 0f90c
ori r8, r8, 0x4143 # 0f910
stw r8, 0x0004(r31) # 0f914
addi r16, r31, 0x10 # 0f918
lis r17, 0x7273 # 0f91c
stw r16, 0x0008(r16) # 0f920
ori r17, r17, 0x7276 # 0f924
stw r16, 0x000c(r16) # 0f928
stw r17, 0x0004(r16) # 0f92c
addi r16, r31, 0x20 # 0f930
lis r17, 0x6172 # 0f934
stw r16, 0x0008(r16) # 0f938
ori r17, r17, 0x6561 # 0f93c
stw r16, 0x000c(r16) # 0f940
stw r17, 0x0004(r16) # 0f944
li r8, 160 # 0f948
# r1 = kdp
bl boring # 0f94c
mr. r29, r8 # 0f950
beq- NKCreateAddressSpaceSub_0x1a0 # 0f954
lis r8, 0x4152 # 0f958
ori r8, r8, 0x4541 # 0f95c
stw r8, 0x0004(r29) # 0f960
lis r8, -0x01 # 0f964
ori r8, r8, 0xffff # 0f968
stw r8, 0x0024(r29) # 0f96c
stw r8, 0x0028(r29) # 0f970
li r8, 0x100 # 0f974
stw r8, 0x0008(r29) # 0f978
lwz r8, 0x0000(r31) # 0f97c
stw r8, 0x0010(r29) # 0f980
addi r16, r31, 0x20 # 0f984
addi r29, r29, 0x54 # 0f988
stw r16, 0x0000(r29) # 0f98c
stw r16, 0x0008(r29) # 0f990
lwz r17, 0x000c(r16) # 0f994
stw r17, 0x000c(r29) # 0f998
stw r29, 0x0008(r17) # 0f99c
stw r29, 0x000c(r16) # 0f9a0
lwz r18, 0x0000(r27) # 0f9a4
stw r18, 0x0074(r31) # 0f9a8
lwz r17, 0x0018(r27) # 0f9ac
addi r17, r17, 0x01 # 0f9b0
stw r17, 0x0018(r27) # 0f9b4
li r8, 0x00 # 0f9b8
mr r9, r31 # 0f9bc
b NKCreateAddressSpaceSub_0x1cc # 0f9c0
NKCreateAddressSpaceSub_0x1a0:
lwz r8, 0x0000(r31) # 0f9c4
NKCreateAddressSpaceSub_0x1a4:
bl major_0x15300 # 0f9c8
mr r8, r31 # 0f9cc
bl looks_like_poolextend # 0f9d0
li r8, -0x7272 # 0f9d4
b NKCreateAddressSpaceSub_0x1cc # 0f9d8
NKCreateAddressSpaceSub_0x1b8:
mr r8, r31 # 0f9dc
bl looks_like_poolextend # 0f9e0
NKCreateAddressSpaceSub_0x1c0:
li r8, -0x726e # 0f9e4
b NKCreateAddressSpaceSub_0x1cc # 0f9e8
NKCreateAddressSpaceSub_0x1c8:
li r8, -0x7273 # 0f9ec
NKCreateAddressSpaceSub_0x1cc:
mtlr r30 # 0f9f0
blr # 0f9f4
/***********************************************************
major_0x0f9f8
************************************************************
syscall 71
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0f9f8: /* < outside referer */
mr r16, r8 # 0f9f8
mr r17, r9 # 0f9fc
addi r8, r1, -0xb50 # 0fa00
# r8 = lock
bl lock # 0fa04
mr r8, r16 # 0fa08
mr r9, r17 # 0fa0c
mr r8, r3 # 0fa10
# r8 = id
bl id_kind # 0fa14
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x08 # 0fa18
bne+ major_0x0b07c_0x28 # 0fa1c
mr r31, r8 # 0fa20
lwz r16, 0x000c(r31) # 0fa24
cmpwi r16, 0x00 # 0fa28
bne+ major_0x0af60_0xa4 # 0fa2c
addi r16, r31, 0x10 # 0fa30
lwz r17, 0x0018(r31) # 0fa34
cmpw r16, r17 # 0fa38
bne+ major_0x0af60_0xa4 # 0fa3c
addi r16, r31, 0x20 # 0fa40
lwz r17, 0x0028(r31) # 0fa44
cmpw r16, r17 # 0fa48
bne+ major_0x0af60_0xa4 # 0fa4c
lwz r8, 0x0074(r31) # 0fa50
# r8 = id
bl id_kind # 0fa54
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
lwz r17, 0x0018( r8) # 0fa58
addi r17, r17, -0x01 # 0fa5c
stw r17, 0x0018( r8) # 0fa60
lwz r8, 0x0000(r31) # 0fa64
bl major_0x15300 # 0fa68
mr r8, r31 # 0fa6c
bl looks_like_poolextend # 0fa70
# r1 = kdp
b syscall_return_assert_lock_unheld # 0fa74
/***********************************************************
NKCurrentAddressSpace
************************************************************
syscall 117
************************************************************
Xrefs:
syscall
***********************************************************/
NKCurrentAddressSpace: /* < outside referer */
mfspr r16, 272/*sprg0*/ # 0fa78
lwz r17, -0x001c(r16) # 0fa7c
lwz r3, 0x0000(r17) # 0fa80
b syscall_return # 0fa84
/***********************************************************
NKHomeAddressSpace
************************************************************
syscall 118
************************************************************
Xrefs:
syscall
***********************************************************/
NKHomeAddressSpace: /* < outside referer */
mfspr r16, 272/*sprg0*/ # 0fa88
lwz r17, -0x0008(r16) # 0fa8c
lwz r18, 0x006c(r17) # 0fa90
lwz r19, 0x0014(r18) # 0fa94
lwz r3, 0x0000(r19) # 0fa98
b syscall_return # 0fa9c
/***********************************************************
NKSetTaskAddressSpace
************************************************************
syscall 119
************************************************************
Xrefs:
syscall
***********************************************************/
NKSetTaskAddressSpace: /* < outside referer */
mr r16, r8 # 0faa0
mr r17, r9 # 0faa4
addi r8, r1, -0xb50 # 0faa8
# r8 = lock
bl lock # 0faac
mr r8, r16 # 0fab0
mr r9, r17 # 0fab4
mr r8, r3 # 0fab8
# r8 = id
bl id_kind # 0fabc
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
mr r31, r8 # 0fac0
cmpwi r9, 0x02 # 0fac4
bne+ major_0x0b07c_0x28 # 0fac8
lwz r16, 0x0064(r31) # 0facc
mtcr r16 # 0fad0
li r3, -0x7271 # 0fad4
beq+ cr7, major_0x0b0fc_0x8 # 0fad8
bne+ cr5, major_0x0af60_0xa4 # 0fadc
lbz r16, 0x0018(r31) # 0fae0
cmpwi r16, 0x00 # 0fae4
bne+ major_0x0af60_0xa4 # 0fae8
mr r8, r4 # 0faec
# r8 = id
bl id_kind # 0faf0
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
mr r30, r8 # 0faf4
lwz r16, 0x0060(r31) # 0faf8
cmpwi r9, 0x08 # 0fafc
lwz r17, 0x0074(r30) # 0fb00
bne+ major_0x0b07c_0x28 # 0fb04
cmpw r16, r17 # 0fb08
bne+ major_0x0af60_0xa4 # 0fb0c
lwz r17, 0x0070(r31) # 0fb10
lwz r16, 0x000c(r17) # 0fb14
addi r16, r16, -0x01 # 0fb18
stw r16, 0x000c(r17) # 0fb1c
lwz r16, 0x000c(r30) # 0fb20
addi r16, r16, 0x01 # 0fb24
stw r16, 0x000c(r30) # 0fb28
stw r30, 0x0070(r31) # 0fb2c
# r1 = kdp
b syscall_return_assert_lock_unheld # 0fb30
/***********************************************************
major_0x0fb34
************************************************************
syscall 72
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x0fb34: /* < outside referer */
mr r16, r8 # 0fb34
mr r17, r9 # 0fb38
addi r8, r1, -0xb50 # 0fb3c
# r8 = lock
bl lock # 0fb40
mr r8, r16 # 0fb44
mr r9, r17 # 0fb48
mr. r8, r3 # 0fb4c
mfspr r28, 272/*sprg0*/ # 0fb50
lwz r30, -0x001c(r28) # 0fb54
beq- major_0x0fb34_0x38 # 0fb58
# r8 = id
bl id_kind # 0fb5c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x08 # 0fb60
mr r30, r8 # 0fb64
bne+ major_0x0b07c_0x28 # 0fb68
major_0x0fb34_0x38:
li r8, 160 # 0fb6c
# r1 = kdp
bl boring # 0fb70
mr. r31, r8 # 0fb74
beq+ major_0x0af60 # 0fb78
stw r30, 0x006c(r31) # 0fb7c
stw r4, 0x001c(r31) # 0fb80
stw r5, 0x002c(r31) # 0fb84
lwz r8, 0x0134( r6) # 0fb88
stw r8, 0x0030(r31) # 0fb8c
lwz r8, 0x013c( r6) # 0fb90
stw r8, 0x0020(r31) # 0fb94
lwz r8, 0x0144( r6) # 0fb98
stw r8, 0x0024(r31) # 0fb9c
mr r8, r31 # 0fba0
bl createarea # 0fba4
sync # 0fba8
lwz r16, -0x0b50( r1) # 0fbac
cmpwi cr1, r16, 0x00 # 0fbb0
li r16, 0x00 # 0fbb4
bne+ cr1, major_0x0fb34_0x90 # 0fbb8
mflr r16 # 0fbbc
bl panic # 0fbc0
major_0x0fb34_0x90:
stw r16, -0x0b50( r1) # 0fbc4
mr. r3, r9 # 0fbc8
bne- major_0x0fb34_0xb0 # 0fbcc
lwz r8, 0x0024(r31) # 0fbd0
stw r8, 0x0144( r6) # 0fbd4
lwz r8, 0x0000(r31) # 0fbd8
stw r8, 0x014c( r6) # 0fbdc
b syscall_return # 0fbe0
major_0x0fb34_0xb0:
bl looks_like_poolextend # 0fbe4
b syscall_return # 0fbe8
/***********************************************************
createarea
************************************************************
Xrefs:
convert_pmdts_to_areas
major_0x0fb34
major_0x10414
***********************************************************/
createarea: /* < outside referer */
mflr r16 # 0fbec
mfspr r9, 272/*sprg0*/ # 0fbf0
stw r16, -0x0040( r9) # 0fbf4
stmw r25, -0x003c( r9) # 0fbf8
mr r31, r8 # 0fbfc
li r9, -0x32 # 0fc00
lwz r16, 0x0008(r31) # 0fc04
lwz r17, 0x0020(r31) # 0fc08
rlwinm. r16, r16, 0, 28, 28 # 0fc0c
lis r16, -0x04 # 0fc10
ori r16, r16, 0x13e0 # 0fc14
beq- createarea_0x38 # 0fc18
lis r16, -0x07 # 0fc1c
ori r16, r16, 0x9be0 # 0fc20
createarea_0x38:
and. r16, r16, r17 # 0fc24
bne- major_0x10320_0xb8 # 0fc28
andi. r16, r17, 0x1f # 0fc2c
cmpwi cr1, r16, 0x0c # 0fc30
beq- createarea_0x50 # 0fc34
blt- cr1, major_0x10320_0xb8 # 0fc38
createarea_0x50:
bne- createarea_0x5c # 0fc3c
ori r17, r17, 0x0c # 0fc40
stw r17, 0x0020(r31) # 0fc44
createarea_0x5c:
andi. r16, r17, 0x1f # 0fc48
li r18, -0x01 # 0fc4c
slw r18, r18, r16 # 0fc50
stw r18, 0x0078(r31) # 0fc54
rlwinm. r16, r17, 27, 27, 31 # 0fc58
bne- major_0x10320_0xb8 # 0fc5c
addi r16, r16, 0x0c # 0fc60
li r18, -0x01 # 0fc64
slw r18, r18, r16 # 0fc68
stw r18, 0x007c(r31) # 0fc6c
neg r16, r18 # 0fc70
not r19, r18 # 0fc74
stw r16, 0x0068(r31) # 0fc78
lwz r16, 0x002c(r31) # 0fc7c
add r16, r16, r19 # 0fc80
and. r16, r16, r18 # 0fc84
stw r16, 0x002c(r31) # 0fc88
beq- major_0x10320_0xb8 # 0fc8c
lwz r18, 0x001c(r31) # 0fc90
lis r16, -0x01 # 0fc94
ori r16, r16, 0xff10 # 0fc98
and. r16, r16, r18 # 0fc9c
bne- major_0x10320_0xb8 # 0fca0
lwz r16, 0x0070(r31) # 0fca4
li r17, 0x200 # 0fca8
rlwimi r17, r16, 0, 0, 19 # 0fcac
bl major_0x10cb8 # 0fcb0
stw r16, 0x0070(r31) # 0fcb4
stw r17, 0x0074(r31) # 0fcb8
mr r8, r31 # 0fcbc
li r9, 0x0b # 0fcc0
bl major_0x151b0 # 0fcc4
cmpwi r8, 0x00 # 0fcc8
beq- major_0x10320 # 0fccc
stw r8, 0x0000(r31) # 0fcd0
mfspr r16, 272/*sprg0*/ # 0fcd4
lwz r17, -0x0008(r16) # 0fcd8
lwz r18, 0x0060(r17) # 0fcdc
lwz r30, 0x006c(r17) # 0fce0
stw r18, 0x000c(r31) # 0fce4
lwz r16, 0x006c(r31) # 0fce8
lwz r17, 0x0000(r16) # 0fcec
stw r17, 0x0010(r31) # 0fcf0
lwz r16, 0x0008(r30) # 0fcf4
rlwinm. r16, r16, 0, 30, 30 # 0fcf8
bne- major_0x10320_0x64 # 0fcfc
lis r16, 0x4152 # 0fd00
ori r16, r16, 0x4541 # 0fd04
stw r16, 0x0004(r31) # 0fd08
lwz r17, 0x0020(r31) # 0fd0c
lwz r16, 0x0030(r31) # 0fd10
addi r16, r16, 0xfff # 0fd14
rlwinm r16, r16, 0, 0, 19 # 0fd18
stw r16, 0x0030(r31) # 0fd1c
rlwinm r16, r17, 0, 17, 18 # 0fd20
cmplwi cr7, r16, 0x6000 # 0fd24
rlwinm. r16, r17, 0, 17, 17 # 0fd28
beq- cr7, createarea_0x150 # 0fd2c
bne- createarea_0x150 # 0fd30
crset 4*cr7 + gt # 0fd34
crclr 4*cr7 + lt # 0fd38
createarea_0x150:
rlwinm. r16, r17, 0, 17, 18 # 0fd3c
lwz r18, 0x0024(r31) # 0fd40
lwz r19, 0x002c(r31) # 0fd44
blt- cr7, createarea_0x16c # 0fd48
bne- createarea_0x170 # 0fd4c
li r18, 0x00 # 0fd50
b createarea_0x170 # 0fd54
createarea_0x16c:
subf r18, r19, r18 # 0fd58
createarea_0x170:
lwz r16, 0x0078(r31) # 0fd5c
and r18, r18, r16 # 0fd60
stw r18, 0x0024(r31) # 0fd64
add r16, r18, r19 # 0fd68
addi r16, r16, -0x01 # 0fd6c
stw r16, 0x0028(r31) # 0fd70
bl 1f # 0fd74
.ascii " CreateArea [ " # 0fd78
.short 0 # 0fd86
.align 2 # 0fd88
1: mflr r8 # 0fd88
bl print_string # 0fd8c
mr r8, r18 # 0fd90
bl print_hexword_spc # 0fd94
mr r8, r16 # 0fd98
bl print_hexword_spc # 0fd9c
bl 1f # 0fda0
.ascii "] ID " # 0fda4
.short 0 # 0fda9
.align 2 # 0fdab
1: mflr r8 # 0fdac
bl print_string # 0fdb0
lwz r8, 0x0000(r31) # 0fdb4
mr r8, r8 # 0fdb8
bl print_hexword_spc # 0fdbc
bgt- cr7, createarea_0x1f4 # 0fdc0
blt- cr7, createarea_0x218 # 0fdc4
bl 1f # 0fdc8
.ascii "placed" # 0fdcc
.short 0 # 0fdd2
.align 2 # 0fdd4
1: mflr r8 # 0fdd4
bl print_string # 0fdd8
b createarea_0x234 # 0fddc
createarea_0x1f4:
bl 1f # 0fde0
.ascii "placed at or above" # 0fde4
.short 0 # 0fdf6
.align 2 # 0fdf8
1: mflr r8 # 0fdf8
bl print_string # 0fdfc
b createarea_0x234 # 0fe00
createarea_0x218:
bl 1f # 0fe04
.ascii "placed below" # 0fe08
.short 0 # 0fe14
.align 2 # 0fe16
1: mflr r8 # 0fe18
bl print_string # 0fe1c
createarea_0x234:
lwz r8, 0x006c(r31) # 0fe20
lwz r16, 0x0028(r31) # 0fe24
lwz r9, 0x0024(r31) # 0fe28
cmplw r9, r16 # 0fe2c
bge- major_0x10320_0x64 # 0fe30
bl major_0x10320_0xcc # 0fe34
mr r30, r8 # 0fe38
lwz r14, 0x0024(r31) # 0fe3c
lwz r15, 0x0028(r31) # 0fe40
lwz r16, 0x0030(r31) # 0fe44
lwz r17, 0x0024(r30) # 0fe48
lwz r18, 0x0028(r30) # 0fe4c
lwz r19, 0x0030(r30) # 0fe50
lwz r21, 0x006c(r31) # 0fe54
cmpwi r17, -0x01 # 0fe58
add r8, r15, r16 # 0fe5c
add r9, r15, r19 # 0fe60
beq- createarea_0x2b8 # 0fe64
cmplw r8, r17 # 0fe68
cmplw cr1, r9, r17 # 0fe6c
bge- createarea_0x28c # 0fe70
blt- cr1, createarea_0x2b8 # 0fe74
createarea_0x28c:
beq- cr7, major_0x10320_0x64 # 0fe78
bl 1f # 0fe7c
.ascii " ... bc search^n" # 0fe80
.short 0 # 0fe90
.align 2 # 0fe92
1: mflr r8 # 0fe94
bl print_string # 0fe98
bgt- cr7, createarea_0x34c # 0fe9c
b createarea_0x31c # 0fea0
createarea_0x2b8:
addi r21, r21, 0x20 # 0fea4
lwz r20, 0x0060(r30) # 0fea8
cmpw r20, r21 # 0feac
beq- createarea_0x39c # 0feb0
addi r20, r20, -0x54 # 0feb4
lwz r17, 0x0024(r20) # 0feb8
lwz r18, 0x0028(r20) # 0febc
lwz r19, 0x0030(r20) # 0fec0
add r8, r18, r16 # 0fec4
add r9, r18, r19 # 0fec8
cmplw r8, r14 # 0fecc
cmplw cr1, r9, r14 # 0fed0
bge- createarea_0x2f0 # 0fed4
blt- cr1, createarea_0x374 # 0fed8
createarea_0x2f0:
beq- cr7, major_0x10320_0x64 # 0fedc
bl 1f # 0fee0
.ascii " ... ab search^n" # 0fee4
.short 0 # 0fef4
.align 2 # 0fef6
1: mflr r8 # 0fef8
bl print_string # 0fefc
bgt- cr7, createarea_0x34c # 0ff00
b createarea_0x31c # 0ff04
createarea_0x31c:
subf r8, r19, r17 # 0ff08
subf r9, r16, r17 # 0ff0c
cmplw r8, r9 # 0ff10
lwz r21, 0x002c(r31) # 0ff14
ble- createarea_0x334 # 0ff18
mr r8, r9 # 0ff1c
createarea_0x334:
subf r8, r21, r8 # 0ff20
cmplw r8, r14 # 0ff24
addi r18, r8, 0x01 # 0ff28
lwz r19, 0x002c(r31) # 0ff2c
bge- major_0x10320_0x64 # 0ff30
b createarea_0x170 # 0ff34
createarea_0x34c:
add r8, r18, r19 # 0ff38
add r9, r18, r16 # 0ff3c
lwz r20, 0x0078(r31) # 0ff40
cmplw r8, r9 # 0ff44
neg r21, r20 # 0ff48
bge- createarea_0x368 # 0ff4c
mr r8, r9 # 0ff50
createarea_0x368:
add r18, r8, r21 # 0ff54
lwz r19, 0x002c(r31) # 0ff58
b createarea_0x170 # 0ff5c
createarea_0x374:
addi r19, r31, 0x54 # 0ff60
addi r20, r20, 0x54 # 0ff64
lwz r16, 0x0000(r20) # 0ff68
stw r16, 0x0000(r19) # 0ff6c
lwz r16, 0x0008(r20) # 0ff70
stw r16, 0x0008(r19) # 0ff74
stw r20, 0x000c(r19) # 0ff78
stw r19, 0x000c(r16) # 0ff7c
stw r19, 0x0008(r20) # 0ff80
b createarea_0x3b8 # 0ff84
createarea_0x39c:
addi r19, r31, 0x54 # 0ff88
stw r20, 0x0000(r19) # 0ff8c
stw r20, 0x000c(r19) # 0ff90
lwz r16, 0x0008(r20) # 0ff94
stw r16, 0x0008(r19) # 0ff98
stw r19, 0x000c(r16) # 0ff9c
stw r19, 0x0008(r20) # 0ffa0
createarea_0x3b8:
addi r16, r31, 0x90 # 0ffa4
lis r17, 0x6665 # 0ffa8
stw r16, 0x0008(r16) # 0ffac
ori r17, r17, 0x6e63 # 0ffb0
stw r16, 0x000c(r16) # 0ffb4
stw r17, 0x0004(r16) # 0ffb8
lwz r16, 0x0020(r31) # 0ffbc
lwz r17, 0x0008(r31) # 0ffc0
rlwinm. r8, r16, 0, 16, 16 # 0ffc4
bne- createarea_0x64c # 0ffc8
rlwinm. r8, r17, 0, 25, 25 # 0ffcc
bne- createarea_0x41c # 0ffd0
lwz r8, 0x002c(r31) # 0ffd4
rlwinm r8, r8, 22, 10, 29 # 0ffd8
mr r29, r8 # 0ffdc
# r1 = kdp
bl boring # 0ffe0
cmpwi r8, 0x00 # 0ffe4
stw r8, 0x0040(r31) # 0ffe8
beq- createarea_0x460 # 0ffec
lwz r9, 0x002c(r31) # 0fff0
srwi r9, r9, 12 # 0fff4
bl major_0x10284 # 0fff8
lwz r17, 0x0008(r31) # 0fffc
ori r17, r17, 0x10 # 10000
stw r17, 0x0008(r31) # 10004
createarea_0x41c:
lwz r17, 0x0008(r31) # 10008
andi. r8, r17, 0x88 # 1000c
lwz r8, 0x002c(r31) # 10010
bne- createarea_0x45c # 10014
rlwinm r8, r8, 21, 11, 30 # 10018
mr r29, r8 # 1001c
# r1 = kdp
bl boring # 10020
cmpwi r8, 0x00 # 10024
stw r8, 0x003c(r31) # 10028
beq- createarea_0x460 # 1002c
lwz r9, 0x002c(r31) # 10030
srwi r9, r9, 12 # 10034
bl major_0x102a8 # 10038
lwz r16, 0x0008(r31) # 1003c
ori r16, r16, 0x01 # 10040
stw r16, 0x0008(r31) # 10044
createarea_0x45c:
b createarea_0x64c # 10048
createarea_0x460:
cmpwi r29, 0xfd8 # 1004c
ble- major_0x10320_0x20 # 10050
mr r16, r8 # 10054
mr r17, r9 # 10058
addi r8, r1, -0xad0 # 1005c
# r8 = lock
bl lock # 10060
mr r8, r16 # 10064
mr r9, r17 # 10068
lwz r17, 0x0008(r31) # 1006c
li r27, 0x00 # 10070
rlwinm. r8, r17, 0, 25, 25 # 10074
bne- createarea_0x4b4 # 10078
lwz r27, 0x002c(r31) # 1007c
srwi r27, r27, 12 # 10080
cmpwi r27, 0x400 # 10084
ble- createarea_0x4ac # 10088
ori r17, r17, 0x20 # 1008c
stw r17, 0x0008(r31) # 10090
addi r27, r27, 0x400 # 10094
createarea_0x4ac:
addi r27, r27, 0x3ff # 10098
srwi r27, r27, 10 # 1009c
createarea_0x4b4:
lwz r8, 0x0008(r31) # 100a0
li r29, 0x00 # 100a4
rlwinm. r9, r8, 0, 28, 28 # 100a8
bne- createarea_0x4e8 # 100ac
lwz r29, 0x002c(r31) # 100b0
srwi r29, r29, 12 # 100b4
cmpwi r29, 0x800 # 100b8
ble- createarea_0x4e0 # 100bc
ori r8, r8, 0x02 # 100c0
stw r8, 0x0008(r31) # 100c4
addi r29, r29, 0x800 # 100c8
createarea_0x4e0:
addi r29, r29, 0x7ff # 100cc
srwi r29, r29, 11 # 100d0
createarea_0x4e8:
lwz r18, -0x0430( r1) # 100d4
add. r8, r27, r29 # 100d8
ble- major_0x102c8 # 100dc
cmpw r8, r18 # 100e0
bgt- major_0x102c8 # 100e4
lwz r16, -0x0430( r1) # 100e8
lwz r17, -0x042c( r1) # 100ec
subf r16, r8, r16 # 100f0
subf r17, r8, r17 # 100f4
stw r16, -0x0430( r1) # 100f8
stw r17, -0x042c( r1) # 100fc
mr. r18, r27 # 10100
beq- createarea_0x5a0 # 10104
lwz r16, -0x0448( r1) # 10108
lwz r17, 0x0008(r16) # 1010c
lwz r19, 0x000c(r16) # 10110
stw r17, 0x0008(r19) # 10114
stw r19, 0x000c(r17) # 10118
li r17, 0x00 # 1011c
stw r17, 0x0008(r16) # 10120
stw r17, 0x000c(r16) # 10124
addi r18, r18, -0x01 # 10128
stw r16, 0x0040(r31) # 1012c
cmpwi r18, 0x00 # 10130
lwz r17, -0x0448( r1) # 10134
mr r8, r16 # 10138
addi r16, r16, -0x04 # 1013c
bgt- createarea_0x564 # 10140
li r9, 0x400 # 10144
bl major_0x10284 # 10148
b createarea_0x5a0 # 1014c
createarea_0x564:
lwz r19, 0x0008(r17) # 10150
lwz r20, 0x000c(r17) # 10154
stw r19, 0x0008(r20) # 10158
stw r20, 0x000c(r19) # 1015c
li r19, 0x00 # 10160
stw r19, 0x0008(r17) # 10164
stw r19, 0x000c(r17) # 10168
addi r18, r18, -0x01 # 1016c
stwu r17, 0x0004(r16) # 10170
mr r8, r17 # 10174
li r9, 0x400 # 10178
bl major_0x10284 # 1017c
lwz r17, -0x0448( r1) # 10180
cmpwi r18, 0x00 # 10184
bgt+ createarea_0x564 # 10188
createarea_0x5a0:
mr. r18, r29 # 1018c
beq- createarea_0x62c # 10190
lwz r16, -0x0448( r1) # 10194
lwz r17, 0x0008(r16) # 10198
lwz r19, 0x000c(r16) # 1019c
stw r17, 0x0008(r19) # 101a0
stw r19, 0x000c(r17) # 101a4
li r17, 0x00 # 101a8
stw r17, 0x0008(r16) # 101ac
stw r17, 0x000c(r16) # 101b0
addi r18, r18, -0x01 # 101b4
stw r16, 0x003c(r31) # 101b8
cmpwi r18, 0x00 # 101bc
lwz r17, -0x0448( r1) # 101c0
mr r8, r16 # 101c4
addi r16, r16, -0x04 # 101c8
bgt- createarea_0x5f0 # 101cc
li r9, 0x800 # 101d0
bl major_0x102a8 # 101d4
b createarea_0x62c # 101d8
createarea_0x5f0:
lwz r19, 0x0008(r17) # 101dc
lwz r20, 0x000c(r17) # 101e0
stw r19, 0x0008(r20) # 101e4
stw r20, 0x000c(r19) # 101e8
li r19, 0x00 # 101ec
stw r19, 0x0008(r17) # 101f0
stw r19, 0x000c(r17) # 101f4
addi r18, r18, -0x01 # 101f8
stwu r17, 0x0004(r16) # 101fc
mr r8, r17 # 10200
li r9, 0x800 # 10204
bl major_0x102a8 # 10208
lwz r17, -0x0448( r1) # 1020c
cmpwi r18, 0x00 # 10210
bgt+ createarea_0x5f0 # 10214
createarea_0x62c:
sync # 10218
lwz r16, -0x0ad0( r1) # 1021c
cmpwi cr1, r16, 0x00 # 10220
li r16, 0x00 # 10224
bne+ cr1, createarea_0x648 # 10228
mflr r16 # 1022c
bl panic # 10230
createarea_0x648:
stw r16, -0x0ad0( r1) # 10234
createarea_0x64c:
lwz r16, 0x0008(r31) # 10238
rlwinm. r8, r16, 0, 28, 28 # 1023c
beq- createarea_0x67c # 10240
lwz r16, 0x0044(r31) # 10244
addi r17, r31, 0x44 # 10248
stw r16, 0x0000(r17) # 1024c
stw r16, 0x0008(r17) # 10250
lwz r18, 0x000c(r16) # 10254
stw r18, 0x000c(r17) # 10258
stw r17, 0x0008(r18) # 1025c
stw r17, 0x000c(r16) # 10260
b major_0x10320_0x94 # 10264
createarea_0x67c:
addi r16, r31, 0x44 # 10268
lis r17, 0x414b # 1026c
stw r16, 0x0008(r16) # 10270
ori r17, r17, 0x4120 # 10274
stw r16, 0x000c(r16) # 10278
stw r17, 0x0004(r16) # 1027c
b major_0x10320_0x94 # 10280
/***********************************************************
major_0x10284
************************************************************
Xrefs:
createarea
***********************************************************/
major_0x10284: /* < outside referer */
addi r8, r8, -0x04 # 10284
addi r9, r9, -0x01 # 10288
lwz r20, 0x0074(r31) # 1028c
ori r20, r20, 0x200 # 10290
major_0x10284_0x10:
cmpwi r9, 0x00 # 10294
stwu r20, 0x0004( r8) # 10298
addi r9, r9, -0x01 # 1029c
bgt+ major_0x10284_0x10 # 102a0
blr # 102a4
/***********************************************************
major_0x102a8
************************************************************
Xrefs:
createarea
***********************************************************/
major_0x102a8: /* < outside referer */
addi r8, r8, -0x02 # 102a8
addi r9, r9, -0x01 # 102ac
li r20, 0x7fff # 102b0
major_0x102a8_0xc:
cmpwi r9, 0x00 # 102b4
sthu r20, 0x0002( r8) # 102b8
addi r9, r9, -0x01 # 102bc
bgt+ major_0x102a8_0xc # 102c0
blr # 102c4
/***********************************************************
major_0x102c8
************************************************************
Xrefs:
createarea
***********************************************************/
major_0x102c8: /* < outside referer */
sync # 102c8
lwz r16, -0x0ad0( r1) # 102cc
cmpwi cr1, r16, 0x00 # 102d0
li r16, 0x00 # 102d4
bne+ cr1, major_0x102c8_0x1c # 102d8
mflr r16 # 102dc
bl panic # 102e0
major_0x102c8_0x1c:
stw r16, -0x0ad0( r1) # 102e4
addi r30, r8, 0x08 # 102e8
lwz r8, -0x0420( r1) # 102ec
# r8 = id
bl id_kind # 102f0
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0c # 102f4
mr r26, r8 # 102f8
bne- major_0x10320_0x20 # 102fc
li r8, 0x02 # 10300
stw r8, 0x0010(r26) # 10304
stw r30, 0x0014(r26) # 10308
li r29, 0x00 # 1030c
stw r29, 0x0018(r26) # 10310
mr r30, r26 # 10314
bl major_0x0db04 # 10318
b major_0x10320_0x20 # 1031c
/***********************************************************
major_0x10320
************************************************************
Xrefs:
major_0x035a0
major_0x04c20
major_0x0ec8c
convert_pmdts_to_areas
createarea
major_0x102c8
major_0x11040
major_0x11098
major_0x12248
***********************************************************/
major_0x10320: /* < outside referer */
mr r8, r31 # 10320
li r9, -0x726e # 10324
b major_0x10320_0xb8 # 10328
.long 0x811f0000 # 1032c
.long 0x48004fd1 # 10330
.long 0x7fe8fb78 # 10334
.long 0x39208d8d # 10338
.long 0x4800009c # 1033c
major_0x10320_0x20: /* < outside referer */
addi r19, r31, 0x54 # 10340
lwz r16, 0x0008(r19) # 10344
lwz r17, 0x000c(r19) # 10348
stw r16, 0x0008(r17) # 1034c
stw r17, 0x000c(r16) # 10350
li r16, 0x00 # 10354
stw r16, 0x0008(r19) # 10358
stw r16, 0x000c(r19) # 1035c
lwz r16, 0x0008(r31) # 10360
lwz r8, 0x0040(r31) # 10364
rlwinm. r16, r16, 0, 25, 25 # 10368
bne- major_0x10320_0x58 # 1036c
cmpwi r8, 0x00 # 10370
bnel- looks_like_poolextend # 10374
major_0x10320_0x58:
lwz r8, 0x003c(r31) # 10378
cmpwi r8, 0x00 # 1037c
bnel- looks_like_poolextend # 10380
major_0x10320_0x64: /* < outside referer */
bl 1f # 10384
.ascii " ... skipped^n" # 10388
.short 0 # 10396
.align 2 # 10398
1: mflr r8 # 10398
bl print_string # 1039c
lwz r8, 0x0000(r31) # 103a0
bl major_0x15300 # 103a4
mr r8, r31 # 103a8
li r9, -0x7272 # 103ac
b major_0x10320_0xb8 # 103b0
major_0x10320_0x94: /* < outside referer */
bl 1f # 103b4
.ascii " ... created^n" # 103b8
.short 0 # 103c6
.align 2 # 103c8
1: mflr r8 # 103c8
bl print_string # 103cc
mr r8, r31 # 103d0
li r9, 0x00 # 103d4
major_0x10320_0xb8: /* < outside referer */
mfspr r16, 272/*sprg0*/ # 103d8
lwz r17, -0x0040(r16) # 103dc
mtlr r17 # 103e0
lmw r25, -0x003c(r16) # 103e4
blr # 103e8
major_0x10320_0xcc: /* < outside referer */
lwz r8, 0x0028( r8) # 103ec
major_0x10320_0xd0:
addi r8, r8, -0x54 # 103f0
lwz r16, 0x0024( r8) # 103f4
lwz r17, 0x0028( r8) # 103f8
cmplw r16, r9 # 103fc
cmplw cr1, r17, r9 # 10400
bgelr- # 10404
bgelr- cr1 # 10408
lwz r8, 0x005c( r8) # 1040c
b major_0x10320_0xd0 # 10410
/***********************************************************
major_0x10414
************************************************************
syscall 73
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x10414: /* < outside referer */
mr r16, r8 # 10414
mr r17, r9 # 10418
addi r8, r1, -0xb50 # 1041c
# r8 = lock
bl lock # 10420
mr r8, r16 # 10424
mr r9, r17 # 10428
mr r8, r3 # 1042c
# r8 = id
bl id_kind # 10430
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 10434
bne+ major_0x0b07c_0x28 # 10438
mr r30, r8 # 1043c
lwz r16, 0x0008(r30) # 10440
rlwinm. r8, r16, 0, 28, 28 # 10444
bne+ major_0x0b054 # 10448
li r8, 160 # 1044c
# r1 = kdp
bl boring # 10450
mr. r31, r8 # 10454
beq+ major_0x0af60 # 10458
mfspr r28, 272/*sprg0*/ # 1045c
lwz r8, -0x001c(r28) # 10460
stw r8, 0x006c(r31) # 10464
stw r3, 0x0014(r31) # 10468
stw r30, 0x0044(r31) # 1046c
stw r4, 0x001c(r31) # 10470
stw r5, 0x002c(r31) # 10474
lwz r8, 0x0134( r6) # 10478
stw r8, 0x0030(r31) # 1047c
lwz r8, 0x013c( r6) # 10480
stw r8, 0x0020(r31) # 10484
lwz r8, 0x0144( r6) # 10488
stw r8, 0x0024(r31) # 1048c
lwz r8, 0x014c( r6) # 10490
stw r8, 0x0080(r31) # 10494
li r8, 0x08 # 10498
stw r8, 0x0008(r31) # 1049c
mr r8, r31 # 104a0
bl createarea # 104a4
sync # 104a8
lwz r16, -0x0b50( r1) # 104ac
cmpwi cr1, r16, 0x00 # 104b0
li r16, 0x00 # 104b4
bne+ cr1, major_0x10414_0xb0 # 104b8
mflr r16 # 104bc
bl panic # 104c0
major_0x10414_0xb0:
stw r16, -0x0b50( r1) # 104c4
mr. r3, r9 # 104c8
bne- major_0x10414_0xd0 # 104cc
lwz r8, 0x0024(r31) # 104d0
stw r8, 0x0144( r6) # 104d4
lwz r8, 0x0000(r31) # 104d8
stw r8, 0x0154( r6) # 104dc
b syscall_return # 104e0
major_0x10414_0xd0:
bl looks_like_poolextend # 104e4
b syscall_return # 104e8
/***********************************************************
major_0x104ec
************************************************************
syscall 74
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x104ec: /* < outside referer */
mr r16, r8 # 104ec
mr r17, r9 # 104f0
addi r8, r1, -0xb50 # 104f4
# r8 = lock
bl lock # 104f8
mr r8, r16 # 104fc
mr r9, r17 # 10500
mr r8, r3 # 10504
# r8 = id
bl id_kind # 10508
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 1050c
bne+ major_0x0b07c_0x28 # 10510
mr r31, r8 # 10514
lwz r17, 0x0038(r31) # 10518
lwz r29, 0x0008(r31) # 1051c
cmpwi cr1, r17, 0x00 # 10520
rlwinm. r8, r29, 0, 29, 29 # 10524
bne+ cr1, major_0x0af60_0xa4 # 10528
bne+ major_0x0b07c # 1052c
rlwinm. r8, r29, 0, 28, 28 # 10530
lwz r16, 0x004c(r31) # 10534
bne- major_0x104ec_0x5c # 10538
addi r17, r31, 0x44 # 1053c
cmpw r16, r17 # 10540
bne+ major_0x0af60_0xa4 # 10544
major_0x104ec_0x5c:
mr r18, r8 # 10548
mr r9, r9 # 1054c
addi r8, r1, -0xb90 # 10550
# r8 = lock
bl lock # 10554
mr r8, r18 # 10558
mr r9, r9 # 1055c
addi r16, r31, 0x54 # 10560
lwz r17, 0x0008(r16) # 10564
lwz r18, 0x000c(r16) # 10568
stw r17, 0x0008(r18) # 1056c
stw r18, 0x000c(r17) # 10570
li r17, 0x00 # 10574
stw r17, 0x0008(r16) # 10578
stw r17, 0x000c(r16) # 1057c
rlwinm. r8, r29, 0, 28, 28 # 10580
addi r16, r31, 0x44 # 10584
beq- major_0x104ec_0xbc # 10588
lwz r17, 0x0008(r16) # 1058c
lwz r18, 0x000c(r16) # 10590
stw r17, 0x0008(r18) # 10594
stw r18, 0x000c(r17) # 10598
li r17, 0x00 # 1059c
stw r17, 0x0008(r16) # 105a0
stw r17, 0x000c(r16) # 105a4
major_0x104ec_0xbc:
sync # 105a8
lwz r18, -0x0b90( r1) # 105ac
cmpwi cr1, r18, 0x00 # 105b0
li r18, 0x00 # 105b4
bne+ cr1, major_0x104ec_0xd8 # 105b8
mflr r18 # 105bc
bl panic # 105c0
major_0x104ec_0xd8:
stw r18, -0x0b90( r1) # 105c4
lwz r8, 0x0040(r31) # 105c8
rlwinm. r16, r29, 0, 25, 25 # 105cc
cmpwi cr1, r8, 0x00 # 105d0
bne- major_0x104ec_0x178 # 105d4
rlwinm. r16, r29, 0, 27, 27 # 105d8
beq- cr1, major_0x104ec_0x178 # 105dc
bne- major_0x104ec_0x174 # 105e0
mr r18, r8 # 105e4
mr r9, r9 # 105e8
addi r8, r1, -0xad0 # 105ec
# r8 = lock
bl lock # 105f0
mr r8, r18 # 105f4
mr r9, r9 # 105f8
rlwinm. r16, r29, 0, 26, 26 # 105fc
beq- major_0x104ec_0x14c # 10600
lwz r19, 0x002c(r31) # 10604
mr r20, r8 # 10608
srwi r19, r19, 12 # 1060c
addi r19, r19, 0x3ff # 10610
srwi r19, r19, 10 # 10614
slwi r19, r19, 2 # 10618
addi r19, r19, -0x04 # 1061c
major_0x104ec_0x134:
lwzx r8, r19, r20 # 10620
# r1 = kdp
# r8 = maybe the page
bl free_list_add_page # 10624
cmpwi r19, 0x00 # 10628
addi r19, r19, -0x04 # 1062c
bgt+ major_0x104ec_0x134 # 10630
mr r8, r20 # 10634
major_0x104ec_0x14c:
# r1 = kdp
# r8 = maybe the page
bl free_list_add_page # 10638
sync # 1063c
lwz r18, -0x0ad0( r1) # 10640
cmpwi cr1, r18, 0x00 # 10644
li r18, 0x00 # 10648
bne+ cr1, major_0x104ec_0x16c # 1064c
mflr r18 # 10650
bl panic # 10654
major_0x104ec_0x16c:
stw r18, -0x0ad0( r1) # 10658
b major_0x104ec_0x178 # 1065c
major_0x104ec_0x174:
bl looks_like_poolextend # 10660
major_0x104ec_0x178:
lwz r8, 0x003c(r31) # 10664
clrlwi. r16, r29, 0x1f # 10668
cmpwi cr1, r8, 0x00 # 1066c
beq- cr1, major_0x104ec_0x20c # 10670
bne- major_0x104ec_0x208 # 10674
mr r18, r8 # 10678
mr r9, r9 # 1067c
addi r8, r1, -0xad0 # 10680
# r8 = lock
bl lock # 10684
mr r8, r18 # 10688
mr r9, r9 # 1068c
rlwinm. r16, r29, 0, 30, 30 # 10690
beq- major_0x104ec_0x1e0 # 10694
lwz r19, 0x002c(r31) # 10698
mr r20, r8 # 1069c
srwi r19, r19, 12 # 106a0
addi r19, r19, 0x7ff # 106a4
srwi r19, r19, 11 # 106a8
slwi r19, r19, 2 # 106ac
addi r19, r19, -0x04 # 106b0
major_0x104ec_0x1c8:
lwzx r8, r19, r20 # 106b4
# r1 = kdp
# r8 = maybe the page
bl free_list_add_page # 106b8
cmpwi r19, 0x00 # 106bc
addi r19, r19, -0x04 # 106c0
bgt+ major_0x104ec_0x1c8 # 106c4
mr r8, r20 # 106c8
major_0x104ec_0x1e0:
# r1 = kdp
# r8 = maybe the page
bl free_list_add_page # 106cc
sync # 106d0
lwz r18, -0x0ad0( r1) # 106d4
cmpwi cr1, r18, 0x00 # 106d8
li r18, 0x00 # 106dc
bne+ cr1, major_0x104ec_0x200 # 106e0
mflr r18 # 106e4
bl panic # 106e8
major_0x104ec_0x200:
stw r18, -0x0ad0( r1) # 106ec
b major_0x104ec_0x20c # 106f0
major_0x104ec_0x208:
bl looks_like_poolextend # 106f4
major_0x104ec_0x20c:
lwz r8, 0x0000(r31) # 106f8
bl major_0x15300 # 106fc
mr r8, r31 # 10700
bl looks_like_poolextend # 10704
# r1 = kdp
b syscall_return_assert_lock_unheld # 10708
/***********************************************************
major_0x1070c
************************************************************
syscall 75
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x1070c: /* < outside referer */
mr r16, r8 # 1070c
mr r17, r9 # 10710
addi r8, r1, -0xb50 # 10714
# r8 = lock
bl lock # 10718
mr r8, r16 # 1071c
mr r9, r17 # 10720
mr r8, r3 # 10724
# r8 = id
bl id_kind # 10728
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 1072c
mr r31, r8 # 10730
bne+ major_0x0b07c_0x28 # 10734
lwz r16, 0x0020(r31) # 10738
rlwinm. r8, r16, 0, 16, 16 # 1073c
bne+ major_0x0af60_0xa4 # 10740
lwz r18, 0x007c(r31) # 10744
lwz r17, 0x002c(r31) # 10748
and. r5, r5, r18 # 1074c
and r17, r17, r18 # 10750
ble+ major_0x0b054 # 10754
subf. r27, r17, r5 # 10758
# r1 = kdp
beq+ syscall_return_assert_lock_unheld # 1075c
bgt- major_0x1070c_0x1c8 # 10760
rlwinm. r8, r4, 0, 24, 24 # 10764
lwz r28, 0x0024(r31) # 10768
lwz r29, 0x0028(r31) # 1076c
bne- major_0x1070c_0x74 # 10770
add r28, r27, r29 # 10774
addi r28, r28, 0x01 # 10778
b major_0x1070c_0x7c # 1077c
major_0x1070c_0x74:
subf r29, r27, r28 # 10780
addi r29, r29, -0x01 # 10784
major_0x1070c_0x7c:
mr r14, r8 # 10788
mr r15, r9 # 1078c
addi r8, r1, -0xad0 # 10790
# r8 = lock
bl lock # 10794
mr r8, r14 # 10798
mr r9, r15 # 1079c
mr r14, r8 # 107a0
mr r15, r9 # 107a4
addi r8, r1, -0xb90 # 107a8
# r8 = lock
bl lock # 107ac
mr r8, r14 # 107b0
mr r9, r15 # 107b4
lwz r27, 0x0068(r31) # 107b8
major_0x1070c_0xb0:
mr r8, r28 # 107bc
bl major_0x12248_0x1e4 # 107c0
beq+ panic_wrapper_0x0f380 # 107c4
bl major_0x12248_0x2b0 # 107c8
bns- cr7, major_0x1070c_0xe0 # 107cc
bltl- cr5, major_0x12248_0x2e0 # 107d0
bltl- cr5, major_0x12248_0x348 # 107d4
lwz r17, 0x0000(r30) # 107d8
rlwinm r17, r17, 0, 0, 30 # 107dc
rlwinm r8, r17, 0, 0, 19 # 107e0
stw r17, 0x0000(r30) # 107e4
# r1 = kdp
# r8 = maybe the page
bl free_list_add_page # 107e8
major_0x1070c_0xe0:
add r28, r28, r27 # 107ec
cmplw r28, r29 # 107f0
ble+ major_0x1070c_0xb0 # 107f4
rlwinm. r8, r4, 0, 24, 24 # 107f8
lwz r28, 0x0024(r31) # 107fc
beq- major_0x1070c_0x138 # 10800
lwz r27, 0x0068(r31) # 10804
add r29, r29, r27 # 10808
major_0x1070c_0x100:
mr r8, r28 # 1080c
bl major_0x12248_0x1e4 # 10810
beq+ panic_wrapper_0x0f380 # 10814
mr r26, r30 # 10818
mr r8, r29 # 1081c
bl major_0x12248_0x1e4 # 10820
beq+ panic_wrapper_0x0f380 # 10824
lwz r17, 0x0000(r30) # 10828
stw r17, 0x0000(r26) # 1082c
lwz r16, 0x0028(r31) # 10830
add r28, r28, r27 # 10834
add r29, r29, r27 # 10838
cmplw r29, r16 # 1083c
ble+ major_0x1070c_0x100 # 10840
major_0x1070c_0x138:
sync # 10844
lwz r8, -0x0b90( r1) # 10848
cmpwi cr1, r8, 0x00 # 1084c
li r8, 0x00 # 10850
bne+ cr1, major_0x1070c_0x154 # 10854
mflr r8 # 10858
bl panic # 1085c
major_0x1070c_0x154:
stw r8, -0x0b90( r1) # 10860
lwz r16, 0x0008(r31) # 10864
rlwinm. r8, r16, 0, 25, 25 # 10868
bne- major_0x1070c_0x16c # 1086c
rlwinm. r8, r16, 0, 27, 27 # 10870
bne- major_0x1070c_0x16c # 10874
major_0x1070c_0x16c:
sync # 10878
lwz r8, -0x0ad0( r1) # 1087c
cmpwi cr1, r8, 0x00 # 10880
li r8, 0x00 # 10884
bne+ cr1, major_0x1070c_0x188 # 10888
mflr r8 # 1088c
bl panic # 10890
major_0x1070c_0x188:
stw r8, -0x0ad0( r1) # 10894
b major_0x1070c_0x190 # 10898
major_0x1070c_0x190:
rlwinm. r8, r4, 0, 24, 24 # 1089c
lwz r16, 0x0024(r31) # 108a0
bne- major_0x1070c_0x1b0 # 108a4
add r17, r16, r5 # 108a8
addi r17, r17, -0x01 # 108ac
stw r5, 0x002c(r31) # 108b0
stw r17, 0x0028(r31) # 108b4
# r1 = kdp
b syscall_return_assert_lock_unheld # 108b8
major_0x1070c_0x1b0:
lwz r17, 0x0028(r31) # 108bc
subf r16, r5, r17 # 108c0
stw r5, 0x002c(r31) # 108c4
addi r16, r16, 0x01 # 108c8
stw r16, 0x0024(r31) # 108cc
# r1 = kdp
b syscall_return_assert_lock_unheld # 108d0
major_0x1070c_0x1c8:
rlwinm. r8, r4, 0, 24, 24 # 108d4
lwz r28, 0x0024(r31) # 108d8
lwz r29, 0x0028(r31) # 108dc
bne+ major_0x0af14 # 108e0
add r28, r27, r29 # 108e4
addi r28, r28, 0x01 # 108e8
b major_0x1070c_0x1ec # 108ec
.long 0x7fbbe050 # 108f0
.long 0x3bbdffff # 108f4
major_0x1070c_0x1ec:
b major_0x0af14 # 108f8
/***********************************************************
major_0x108fc
************************************************************
syscall 130
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x108fc: /* < outside referer */
mr r16, r8 # 108fc
mr r17, r9 # 10900
addi r8, r1, -0xb50 # 10904
# r8 = lock
bl lock # 10908
mr r8, r16 # 1090c
mr r9, r17 # 10910
mr r8, r3 # 10914
# r8 = id
bl id_kind # 10918
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 1091c
bne+ major_0x0b07c_0x28 # 10920
mr r31, r8 # 10924
lis r16, -0x01 # 10928
ori r16, r16, 0xfff8 # 1092c
lwz r17, 0x0020(r31) # 10930
and. r16, r16, r4 # 10934
bne+ major_0x0b054 # 10938
rlwinm. r8, r17, 0, 16, 16 # 1093c
bne+ major_0x0b054 # 10940
mr r29, r5 # 10944
lwz r18, 0x0134( r6) # 10948
lwz r19, 0x0068(r31) # 1094c
lwz r16, 0x0024(r31) # 10950
cmplw r18, r19 # 10954
add r28, r18, r29 # 10958
bge+ major_0x0b054 # 1095c
lwz r17, 0x007c(r31) # 10960
addi r28, r28, -0x01 # 10964
lwz r18, 0x0020(r31) # 10968
lwz r19, 0x0028(r31) # 1096c
cmplw cr1, r29, r16 # 10970
cmplw cr2, r28, r19 # 10974
blt+ cr1, major_0x0b054 # 10978
bgt+ cr2, major_0x0b054 # 1097c
xor r8, r28, r29 # 10980
rlwinm. r8, r8, 0, 0, 19 # 10984
bne+ major_0x0b054 # 10988
mr r14, r8 # 1098c
mr r15, r9 # 10990
addi r8, r1, -0xb90 # 10994
# r8 = lock
bl lock # 10998
mr r8, r14 # 1099c
mr r9, r15 # 109a0
mr r8, r29 # 109a4
bl major_0x12248_0x1e4 # 109a8
sync # 109ac
lwz r14, -0x0b90( r1) # 109b0
cmpwi cr1, r14, 0x00 # 109b4
li r14, 0x00 # 109b8
bne+ cr1, major_0x108fc_0xcc # 109bc
mflr r14 # 109c0
bl panic # 109c4
major_0x108fc_0xcc:
stw r14, -0x0b90( r1) # 109c8
beq+ panic_wrapper_0x0f380 # 109cc
rlwinm r8, r16, 0, 29, 30 # 109d0
lwz r16, 0x0000(r30) # 109d4
cmpwi cr7, r8, 0x04 # 109d8
beq+ cr7, major_0x0b054 # 109dc
lwz r16, 0x0098(r31) # 109e0
major_0x108fc_0xe8:
addi r17, r31, 0x90 # 109e4
cmpw r16, r17 # 109e8
addi r17, r16, 0x14 # 109ec
beq- major_0x108fc_0x11c # 109f0
lwz r8, 0x0010(r16) # 109f4
cmplwi r8, 0x1f8 # 109f8
add r9, r8, r17 # 109fc
blt- major_0x108fc_0x110 # 10a00
lwz r16, 0x0008(r16) # 10a04
b major_0x108fc_0xe8 # 10a08
major_0x108fc_0x110:
addi r8, r8, 0x08 # 10a0c
addi r9, r9, 0x08 # 10a10
b major_0x108fc_0x15c # 10a14
major_0x108fc_0x11c:
li r8, 0x214 # 10a18
# r1 = kdp
bl boring # 10a1c
mr. r16, r8 # 10a20
beq+ major_0x0af60 # 10a24
addi r18, r31, 0x90 # 10a28
lis r17, 0x4645 # 10a2c
ori r17, r17, 0x4e43 # 10a30
stw r17, 0x0004(r16) # 10a34
stw r18, 0x0000(r16) # 10a38
stw r18, 0x0008(r16) # 10a3c
lwz r19, 0x000c(r18) # 10a40
stw r19, 0x000c(r16) # 10a44
stw r16, 0x0008(r19) # 10a48
stw r16, 0x000c(r18) # 10a4c
li r8, 0x00 # 10a50
addi r9, r16, 0x14 # 10a54
major_0x108fc_0x15c:
stw r8, 0x0010(r16) # 10a58
stw r29, 0x0000( r9) # 10a5c
stw r28, 0x0004( r9) # 10a60
mr r14, r8 # 10a64
mr r15, r9 # 10a68
addi r8, r1, -0xb90 # 10a6c
# r8 = lock
bl lock # 10a70
mr r8, r14 # 10a74
mr r9, r15 # 10a78
mr r8, r29 # 10a7c
bl major_0x12248_0x1e4 # 10a80
beq+ panic_wrapper_0x0f380 # 10a84
bl major_0x12248_0x2b0 # 10a88
bns- cr7, major_0x108fc_0x19c # 10a8c
bltl- cr5, major_0x12248_0x2e0 # 10a90
bltl- cr5, major_0x12248_0x348 # 10a94
major_0x108fc_0x19c:
lwz r17, 0x0000(r30) # 10a98
li r16, 0x06 # 10a9c
rlwimi r17, r16, 0, 29, 30 # 10aa0
stw r17, 0x0000(r30) # 10aa4
sync # 10aa8
lwz r14, -0x0b90( r1) # 10aac
cmpwi cr1, r14, 0x00 # 10ab0
li r14, 0x00 # 10ab4
bne+ cr1, major_0x108fc_0x1c8 # 10ab8
mflr r14 # 10abc
bl panic # 10ac0
major_0x108fc_0x1c8:
stw r14, -0x0b90( r1) # 10ac4
# r1 = kdp
b syscall_return_assert_lock_unheld # 10ac8
/***********************************************************
NKSetAreaAccess
************************************************************
syscall 76
************************************************************
Xrefs:
syscall
***********************************************************/
NKSetAreaAccess: /* < outside referer */
mr r16, r8 # 10acc
mr r17, r9 # 10ad0
addi r8, r1, -0xb50 # 10ad4
# r8 = lock
bl lock # 10ad8
mr r8, r16 # 10adc
mr r9, r17 # 10ae0
mr r8, r3 # 10ae4
# r8 = id
bl id_kind # 10ae8
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 10aec
bne+ major_0x0b07c_0x28 # 10af0
mr r31, r8 # 10af4
lis r16, -0x01 # 10af8
ori r16, r16, 0xff10 # 10afc
and. r16, r16, r4 # 10b00
bne+ major_0x0b054 # 10b04
lis r16, -0x01 # 10b08
ori r16, r16, 0xff10 # 10b0c
and. r16, r16, r5 # 10b10
bne+ major_0x0b054 # 10b14
lwz r29, 0x0134( r6) # 10b18
lwz r18, 0x013c( r6) # 10b1c
lwz r16, 0x0024(r31) # 10b20
add r28, r18, r29 # 10b24
lwz r17, 0x007c(r31) # 10b28
addi r28, r28, -0x01 # 10b2c
lwz r18, 0x0020(r31) # 10b30
lwz r19, 0x0028(r31) # 10b34
rlwinm. r8, r18, 0, 16, 16 # 10b38
cmplw cr1, r29, r16 # 10b3c
cmplw cr2, r28, r19 # 10b40
blt+ cr1, major_0x0b054 # 10b44
bgt+ cr2, major_0x0b054 # 10b48
bne- NKSetAreaAccess_0x154 # 10b4c
mr r14, r8 # 10b50
mr r15, r9 # 10b54
addi r8, r1, -0xb90 # 10b58
# r8 = lock
bl lock # 10b5c
mr r8, r14 # 10b60
mr r9, r15 # 10b64
NKSetAreaAccess_0x9c:
mr r8, r29 # 10b68
bl major_0x12248_0x1e4 # 10b6c
beq+ panic_wrapper_0x0f380 # 10b70
bl major_0x12248_0x2b0 # 10b74
bns- cr7, NKSetAreaAccess_0xb8 # 10b78
bltl- cr5, major_0x12248_0x2e0 # 10b7c
bltl- cr5, major_0x12248_0x348 # 10b80
NKSetAreaAccess_0xb8:
lwz r17, 0x0000(r30) # 10b84
bl major_0x10d38 # 10b88
and r8, r4, r5 # 10b8c
orc r9, r4, r5 # 10b90
or r18, r18, r8 # 10b94
and r18, r18, r9 # 10b98
lwz r17, 0x0000(r30) # 10b9c
rlwinm. r8, r18, 0, 26, 26 # 10ba0
bns- cr7, NKSetAreaAccess_0x118 # 10ba4
bgt- cr6, NKSetAreaAccess_0x118 # 10ba8
beq- NKSetAreaAccess_0x118 # 10bac
rlwinm r9, r17, 0, 0, 19 # 10bb0
lwz r8, 0x0068(r31) # 10bb4
NKSetAreaAccess_0xec:
addi r8, r8, -0x20 # 10bb8
dcbf r8, r9 # 10bbc
cmpwi r8, 0x00 # 10bc0
bgt+ NKSetAreaAccess_0xec # 10bc4
sync # 10bc8
lwz r8, 0x0068(r31) # 10bcc
NKSetAreaAccess_0x104:
addi r8, r8, -0x20 # 10bd0
icbi r8, r9 # 10bd4
cmpwi r8, 0x00 # 10bd8
bgt+ NKSetAreaAccess_0x104 # 10bdc
isync # 10be0
NKSetAreaAccess_0x118:
bl major_0x10cb8 # 10be4
lwz r19, 0x0068(r31) # 10be8
stw r17, 0x0000(r30) # 10bec
add r29, r29, r19 # 10bf0
subf. r8, r29, r28 # 10bf4
bge+ NKSetAreaAccess_0x9c # 10bf8
sync # 10bfc
lwz r14, -0x0b90( r1) # 10c00
cmpwi cr1, r14, 0x00 # 10c04
li r14, 0x00 # 10c08
bne+ cr1, NKSetAreaAccess_0x14c # 10c0c
mflr r14 # 10c10
bl panic # 10c14
NKSetAreaAccess_0x14c:
stw r14, -0x0b90( r1) # 10c18
# r1 = kdp
b syscall_return_assert_lock_unheld # 10c1c
NKSetAreaAccess_0x154:
bne+ cr1, major_0x0b054 # 10c20
lwz r18, 0x001c(r31) # 10c24
and r8, r4, r5 # 10c28
orc r9, r4, r5 # 10c2c
or r18, r18, r8 # 10c30
and r18, r18, r9 # 10c34
stw r18, 0x001c(r31) # 10c38
lwz r16, 0x0070(r31) # 10c3c
lwz r17, 0x0074(r31) # 10c40
bl major_0x10cb8 # 10c44
stw r16, 0x0070(r31) # 10c48
stw r17, 0x0074(r31) # 10c4c
mr r14, r8 # 10c50
mr r15, r9 # 10c54
addi r8, r1, -0xb90 # 10c58
# r8 = lock
bl lock # 10c5c
mr r8, r14 # 10c60
mr r9, r15 # 10c64
lwz r27, 0x0068(r31) # 10c68
mr r28, r19 # 10c6c
NKSetAreaAccess_0x1a4:
mr r8, r29 # 10c70
lwz r9, 0x006c(r31) # 10c74
bl major_0x12248_0x45c # 10c78
beq- NKSetAreaAccess_0x1bc # 10c7c
bl major_0x12248_0x2e0 # 10c80
bl major_0x12248_0x348 # 10c84
NKSetAreaAccess_0x1bc:
add r29, r29, r27 # 10c88
subf. r8, r29, r28 # 10c8c
bge+ NKSetAreaAccess_0x1a4 # 10c90
sync # 10c94
lwz r14, -0x0b90( r1) # 10c98
cmpwi cr1, r14, 0x00 # 10c9c
li r14, 0x00 # 10ca0
bne+ cr1, NKSetAreaAccess_0x1e4 # 10ca4
mflr r14 # 10ca8
bl panic # 10cac
NKSetAreaAccess_0x1e4:
stw r14, -0x0b90( r1) # 10cb0
# r1 = kdp
b syscall_return_assert_lock_unheld # 10cb4
/***********************************************************
major_0x10cb8
************************************************************
Xrefs:
createarea
NKSetAreaAccess
***********************************************************/
major_0x10cb8: /* < outside referer */
rlwinm r16, r16, 0, 29, 24 # 10cb8
rlwinm r17, r17, 0, 27, 23 # 10cbc
rlwinm r16, r16, 0, 0, 29 # 10cc0
rlwinm r17, r17, 0, 31, 28 # 10cc4
mtcr r18 # 10cc8
bge- cr6, major_0x10cb8_0x20 # 10ccc
ori r17, r17, 0x80 # 10cd0
ori r16, r16, 0x08 # 10cd4
major_0x10cb8_0x20:
ble- cr6, major_0x10cb8_0x2c # 10cd8
ori r16, r16, 0x40 # 10cdc
b major_0x10cb8_0x30 # 10ce0
major_0x10cb8_0x2c:
ori r17, r17, 0x20 # 10ce4
major_0x10cb8_0x30:
bne- cr6, major_0x10cb8_0x3c # 10ce8
ori r17, r17, 0x40 # 10cec
ori r16, r16, 0x20 # 10cf0
major_0x10cb8_0x3c:
ble- cr7, major_0x10cb8_0x40 # 10cf4
major_0x10cb8_0x40:
bge- cr7, major_0x10cb8_0x50 # 10cf8
ori r17, r17, 0x06 # 10cfc
ori r16, r16, 0x01 # 10d00
b major_0x10cb8_0x78 # 10d04
major_0x10cb8_0x50:
bne- cr7, major_0x10cb8_0x60 # 10d08
ori r17, r17, 0x00 # 10d0c
ori r16, r16, 0x02 # 10d10
b major_0x10cb8_0x78 # 10d14
major_0x10cb8_0x60:
bns- cr7, major_0x10cb8_0x70 # 10d18
ori r17, r17, 0x04 # 10d1c
ori r16, r16, 0x03 # 10d20
b major_0x10cb8_0x78 # 10d24
major_0x10cb8_0x70:
ori r17, r17, 0x02 # 10d28
ori r16, r16, 0x00 # 10d2c
major_0x10cb8_0x78:
ori r16, r16, 0x10 # 10d30
blr # 10d34
/***********************************************************
major_0x10d38
************************************************************
Xrefs:
convert_pmdts_to_areas
NKSetAreaAccess
major_0x10de0
***********************************************************/
major_0x10d38: /* < outside referer */
andi. r16, r17, 0x06 # 10d38
li r18, 0x00 # 10d3c
cmpwi r16, 0x02 # 10d40
cmpwi cr1, r16, 0x06 # 10d44
beq- major_0x10d38_0x28 # 10d48
li r18, 0x04 # 10d4c
andi. r16, r17, 0x04 # 10d50
ori r18, r18, 0x01 # 10d54
bne- major_0x10d38_0x28 # 10d58
ori r18, r18, 0x02 # 10d5c
major_0x10d38_0x28:
bne- cr1, major_0x10d38_0x30 # 10d60
ori r18, r18, 0x08 # 10d64
major_0x10d38_0x30:
andi. r16, r17, 0x20 # 10d68
bne- major_0x10d38_0x3c # 10d6c
ori r18, r18, 0x40 # 10d70
major_0x10d38_0x3c:
andi. r16, r17, 0x40 # 10d74
beq- major_0x10d38_0x48 # 10d78
ori r18, r18, 0x20 # 10d7c
major_0x10d38_0x48:
andi. r16, r17, 0x80 # 10d80
beq- major_0x10d38_0x54 # 10d84
ori r18, r18, 0x80 # 10d88
major_0x10d38_0x54:
blr # 10d8c
major_0x10d38_0x58: /* < outside referer */
andi. r16, r17, 0x03 # 10d90
li r18, 0x04 # 10d94
cmpwi cr1, r16, 0x01 # 10d98
beq- major_0x10d38_0x78 # 10d9c
andi. r16, r17, 0x01 # 10da0
ori r18, r18, 0x01 # 10da4
bne- major_0x10d38_0x78 # 10da8
ori r18, r18, 0x02 # 10dac
major_0x10d38_0x78:
bne- cr1, major_0x10d38_0x80 # 10db0
ori r18, r18, 0x08 # 10db4
major_0x10d38_0x80:
andi. r16, r17, 0x40 # 10db8
beq- major_0x10d38_0x8c # 10dbc
ori r18, r18, 0x40 # 10dc0
major_0x10d38_0x8c:
andi. r16, r17, 0x20 # 10dc4
beq- major_0x10d38_0x98 # 10dc8
ori r18, r18, 0x20 # 10dcc
major_0x10d38_0x98:
andi. r16, r17, 0x08 # 10dd0
beq- major_0x10d38_0xa4 # 10dd4
ori r18, r18, 0x80 # 10dd8
major_0x10d38_0xa4:
blr # 10ddc
/***********************************************************
major_0x10de0
************************************************************
syscall 123
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x10de0: /* < outside referer */
mr r16, r8 # 10de0
mr r17, r9 # 10de4
addi r8, r1, -0xb50 # 10de8
# r8 = lock
bl lock # 10dec
mr r8, r16 # 10df0
mr r9, r17 # 10df4
mr r8, r3 # 10df8
# r8 = id
bl id_kind # 10dfc
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 10e00
bne+ major_0x0b07c_0x28 # 10e04
mr r31, r8 # 10e08
lwz r16, 0x0024(r31) # 10e0c
lwz r17, 0x0028(r31) # 10e10
lwz r18, 0x0020(r31) # 10e14
cmplw r4, r16 # 10e18
cmplw cr1, r4, r17 # 10e1c
blt+ major_0x0b054 # 10e20
bgt+ cr1, major_0x0b054 # 10e24
rlwinm. r8, r18, 0, 16, 16 # 10e28
lwz r5, 0x001c(r31) # 10e2c
# r1 = kdp
bne+ syscall_return_assert_lock_unheld # 10e30
mr r14, r8 # 10e34
mr r15, r9 # 10e38
addi r8, r1, -0xb90 # 10e3c
# r8 = lock
bl lock # 10e40
mr r8, r14 # 10e44
mr r9, r15 # 10e48
mr r8, r4 # 10e4c
bl major_0x12248_0x1e4 # 10e50
beq+ panic_wrapper_0x0f380 # 10e54
bl major_0x12248_0x2b0 # 10e58
bltl- cr5, major_0x12248_0x2e0 # 10e5c
bltl- cr5, major_0x12248_0x348 # 10e60
lwz r17, 0x0000(r30) # 10e64
sync # 10e68
lwz r14, -0x0b90( r1) # 10e6c
cmpwi cr1, r14, 0x00 # 10e70
li r14, 0x00 # 10e74
bne+ cr1, major_0x10de0_0xa4 # 10e78
mflr r14 # 10e7c
bl panic # 10e80
major_0x10de0_0xa4:
stw r14, -0x0b90( r1) # 10e84
bl major_0x10d38 # 10e88
mr r5, r18 # 10e8c
# r1 = kdp
b syscall_return_assert_lock_unheld # 10e90
/***********************************************************
major_0x10e94
************************************************************
syscall 77
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x10e94: /* < outside referer */
mr r16, r8 # 10e94
mr r17, r9 # 10e98
addi r8, r1, -0xb50 # 10e9c
# r8 = lock
bl lock # 10ea0
mr r8, r16 # 10ea4
mr r9, r17 # 10ea8
mr r8, r3 # 10eac
# r8 = id
bl id_kind # 10eb0
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 10eb4
bne+ major_0x0b07c_0x28 # 10eb8
mr r31, r8 # 10ebc
mr. r8, r4 # 10ec0
beq- major_0x10e94_0x40 # 10ec4
# r8 = id
bl id_kind # 10ec8
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0c # 10ecc
bne+ major_0x0b07c_0x28 # 10ed0
major_0x10e94_0x40:
stw r4, 0x0018(r31) # 10ed4
stw r5, 0x0084(r31) # 10ed8
# r1 = kdp
b syscall_return_assert_lock_unheld # 10edc
/***********************************************************
major_0x10ee0
************************************************************
syscall 78
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x10ee0: /* < outside referer */
mr r16, r8 # 10ee0
mr r17, r9 # 10ee4
addi r8, r1, -0xb50 # 10ee8
# r8 = lock
bl lock # 10eec
mr r8, r16 # 10ef0
mr r9, r17 # 10ef4
mr r8, r3 # 10ef8
# r8 = id
bl id_kind # 10efc
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 10f00
bne+ major_0x0b07c_0x28 # 10f04
mr r31, r8 # 10f08
cmpwi r4, 0x01 # 10f0c
bne+ major_0x0b054 # 10f10
cmplwi r5, 0x00 # 10f14
bne- major_0x10ee0_0x68 # 10f18
li r16, 0x01 # 10f1c
stw r16, 0x0134( r6) # 10f20
lwz r16, 0x000c(r31) # 10f24
stw r16, 0x013c( r6) # 10f28
lwz r16, 0x0010(r31) # 10f2c
stw r16, 0x0144( r6) # 10f30
lwz r16, 0x0014(r31) # 10f34
stw r16, 0x014c( r6) # 10f38
li r16, 0x10 # 10f3c
stw r16, 0x0154( r6) # 10f40
# r1 = kdp
b syscall_return_assert_lock_unheld # 10f44
major_0x10ee0_0x68:
cmplwi r5, 0x10 # 10f48
bne- major_0x10ee0_0x9c # 10f4c
lwz r16, 0x0018(r31) # 10f50
stw r16, 0x0134( r6) # 10f54
lwz r16, 0x001c(r31) # 10f58
stw r16, 0x013c( r6) # 10f5c
lwz r16, 0x0020(r31) # 10f60
stw r16, 0x0144( r6) # 10f64
lwz r16, 0x0024(r31) # 10f68
stw r16, 0x014c( r6) # 10f6c
li r16, 0x10 # 10f70
stw r16, 0x0154( r6) # 10f74
# r1 = kdp
b syscall_return_assert_lock_unheld # 10f78
major_0x10ee0_0x9c:
cmplwi r5, 0x20 # 10f7c
bne- major_0x10ee0_0xd0 # 10f80
lwz r16, 0x002c(r31) # 10f84
stw r16, 0x0134( r6) # 10f88
lwz r16, 0x0030(r31) # 10f8c
stw r16, 0x013c( r6) # 10f90
lwz r16, 0x0034(r31) # 10f94
stw r16, 0x0144( r6) # 10f98
lwz r16, 0x0038(r31) # 10f9c
stw r16, 0x014c( r6) # 10fa0
li r16, 0x10 # 10fa4
stw r16, 0x0154( r6) # 10fa8
# r1 = kdp
b syscall_return_assert_lock_unheld # 10fac
major_0x10ee0_0xd0:
cmplwi r5, 0x30 # 10fb0
bne- major_0x10ee0_0xfc # 10fb4
lwz r16, 0x0068(r31) # 10fb8
stw r16, 0x0134( r6) # 10fbc
lwz r16, 0x0080(r31) # 10fc0
stw r16, 0x013c( r6) # 10fc4
lwz r16, 0x0084(r31) # 10fc8
stw r16, 0x0144( r6) # 10fcc
li r16, 0x0c # 10fd0
stw r16, 0x0154( r6) # 10fd4
# r1 = kdp
b syscall_return_assert_lock_unheld # 10fd8
major_0x10ee0_0xfc:
cmpwi r5, 0x3c # 10fdc
bne+ major_0x0b054 # 10fe0
li r16, 0x00 # 10fe4
stw r16, 0x0154( r6) # 10fe8
# r1 = kdp
b syscall_return_assert_lock_unheld # 10fec
/***********************************************************
major_0x10ff0
************************************************************
syscall 79
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x10ff0: /* < outside referer */
mr. r8, r3 # 10ff0
mfspr r28, 272/*sprg0*/ # 10ff4
lwz r31, -0x001c(r28) # 10ff8
beq- major_0x10ff0_0x20 # 10ffc
# r8 = id
bl id_kind # 11000
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x08 # 11004
bne+ syscall_return_kMPInvalidIDErr # 11008
mr r31, r8 # 1100c
major_0x10ff0_0x20:
lwz r3, 0x0000(r31) # 11010
major_0x10ff0_0x24:
mr r8, r4 # 11014
li r9, 0x0b # 11018
bl major_0x153e0 # 1101c
cmpwi r8, 0x00 # 11020
beq+ syscall_return_kMPInvalidIDErr # 11024
mr r4, r8 # 11028
# r8 = id
bl id_kind # 1102c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
lwz r16, 0x0010( r8) # 11030
cmpw r16, r3 # 11034
bne+ major_0x10ff0_0x24 # 11038
b syscall_return_noErr # 1103c
/***********************************************************
major_0x11040
************************************************************
syscall 80
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x11040: /* < outside referer */
mr r16, r8 # 11040
mr r17, r9 # 11044
addi r8, r1, -0xb50 # 11048
# r8 = lock
bl lock # 1104c
mr r8, r16 # 11050
mr r9, r17 # 11054
mr. r8, r3 # 11058
mfspr r9, 272/*sprg0*/ # 1105c
bne- major_0x11040_0x2c # 11060
lwz r8, -0x001c( r9) # 11064
b major_0x11040_0x38 # 11068
major_0x11040_0x2c:
# r8 = id
bl id_kind # 1106c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x08 # 11070
bne+ major_0x0b07c_0x28 # 11074
major_0x11040_0x38:
mr r9, r4 # 11078
bl major_0x10320_0xcc # 1107c
lwz r16, 0x0024( r8) # 11080
li r5, 0x00 # 11084
cmplw r16, r4 # 11088
bgt+ major_0x0b054 # 1108c
lwz r5, 0x0000( r8) # 11090
# r1 = kdp
b syscall_return_assert_lock_unheld # 11094
/***********************************************************
major_0x11098
************************************************************
syscall 125
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x11098: /* < outside referer */
mr r16, r8 # 11098
mr r17, r9 # 1109c
addi r8, r1, -0xb50 # 110a0
# r8 = lock
bl lock # 110a4
mr r8, r16 # 110a8
mr r9, r17 # 110ac
mr. r8, r3 # 110b0
mfspr r9, 272/*sprg0*/ # 110b4
bne- major_0x11098_0x2c # 110b8
lwz r8, -0x001c( r9) # 110bc
b major_0x11098_0x38 # 110c0
major_0x11098_0x2c:
# r8 = id
bl id_kind # 110c4
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x08 # 110c8
bne+ major_0x0b07c_0x28 # 110cc
major_0x11098_0x38:
mr r9, r4 # 110d0
bl major_0x10320_0xcc # 110d4
lwz r16, 0x0024( r8) # 110d8
li r5, 0x00 # 110dc
cmplw r16, r4 # 110e0
bgt- major_0x11098_0x58 # 110e4
lwz r8, 0x005c( r8) # 110e8
addi r8, r8, -0x54 # 110ec
major_0x11098_0x58:
lwz r9, 0x002c( r8) # 110f0
cmpwi r9, 0x00 # 110f4
beq+ major_0x0b054 # 110f8
lwz r5, 0x0000( r8) # 110fc
# r1 = kdp
b syscall_return_assert_lock_unheld # 11100
/***********************************************************
major_0x11104
************************************************************
syscall 81
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x11104: /* < outside referer */
mr r16, r8 # 11104
mr r17, r9 # 11108
addi r8, r1, -0xb50 # 1110c
# r8 = lock
bl lock # 11110
mr r8, r16 # 11114
mr r9, r17 # 11118
mr r8, r3 # 1111c
# r8 = id
bl id_kind # 11120
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 11124
mr r31, r8 # 11128
bne+ major_0x0b07c_0x28 # 1112c
lwz r16, 0x0024(r31) # 11130
lwz r17, 0x0028(r31) # 11134
lwz r18, 0x0020(r31) # 11138
cmplw r4, r16 # 1113c
cmplw cr1, r4, r17 # 11140
blt+ major_0x0b054 # 11144
bgt+ cr1, major_0x0b054 # 11148
rlwinm. r8, r18, 0, 16, 16 # 1114c
lwz r19, 0x0070(r31) # 11150
beq- major_0x11104_0x70 # 11154
lwz r17, 0x0038(r31) # 11158
rlwinm r19, r19, 0, 0, 19 # 1115c
cmpwi r17, 0x00 # 11160
subf r18, r16, r4 # 11164
beq+ major_0x0b054 # 11168
add r5, r18, r19 # 1116c
# r1 = kdp
b syscall_return_assert_lock_unheld # 11170
major_0x11104_0x70:
li r3, 0x00 # 11174
mr r14, r8 # 11178
mr r15, r9 # 1117c
addi r8, r1, -0xb90 # 11180
# r8 = lock
bl lock # 11184
mr r8, r14 # 11188
mr r9, r15 # 1118c
mr r8, r4 # 11190
bl major_0x12248_0x1e4 # 11194
bl major_0x12248_0x2b0 # 11198
bns- cr7, major_0x11104_0xc8 # 1119c
mr r5, r17 # 111a0
rlwimi r5, r4, 0, 20, 31 # 111a4
major_0x11104_0xa4:
sync # 111a8
lwz r8, -0x0b90( r1) # 111ac
cmpwi cr1, r8, 0x00 # 111b0
li r8, 0x00 # 111b4
bne+ cr1, major_0x11104_0xc0 # 111b8
mflr r8 # 111bc
bl panic # 111c0
major_0x11104_0xc0:
stw r8, -0x0b90( r1) # 111c4
b major_0x0b0fc_0x8 # 111c8
major_0x11104_0xc8:
li r3, -0x7272 # 111cc
b major_0x11104_0xa4 # 111d0
/***********************************************************
major_0x111d4
************************************************************
syscall 98
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x111d4: /* < outside referer */
mr r16, r8 # 111d4
mr r17, r9 # 111d8
addi r8, r1, -0xb50 # 111dc
# r8 = lock
bl lock # 111e0
mr r8, r16 # 111e4
mr r9, r17 # 111e8
mr r8, r3 # 111ec
# r8 = id
bl id_kind # 111f0
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 111f4
mr r31, r8 # 111f8
bne+ major_0x0b07c_0x28 # 111fc
lwz r16, 0x0024(r31) # 11200
lwz r17, 0x0028(r31) # 11204
mr r29, r5 # 11208
add r5, r5, r4 # 1120c
lwz r18, 0x0020(r31) # 11210
addi r5, r5, -0x01 # 11214
cmplw r4, r16 # 11218
cmplw cr1, r5, r17 # 1121c
blt+ major_0x0b054 # 11220
bgt+ cr1, major_0x0b054 # 11224
lwz r20, 0x0038(r31) # 11228
rlwinm. r8, r18, 0, 16, 16 # 1122c
cmpwi cr1, r20, 0x00 # 11230
beq- major_0x111d4_0x84 # 11234
beq+ cr1, major_0x0b054 # 11238
lwz r19, 0x0070(r31) # 1123c
subf r18, r16, r4 # 11240
rlwinm r19, r19, 0, 0, 19 # 11244
add r16, r18, r19 # 11248
stw r16, 0x0134( r6) # 1124c
stw r29, 0x013c( r6) # 11250
# r1 = kdp
b syscall_return_assert_lock_unheld # 11254
major_0x111d4_0x84:
mr r14, r8 # 11258
mr r15, r9 # 1125c
addi r8, r1, -0xb90 # 11260
# r8 = lock
bl lock # 11264
mr r8, r14 # 11268
mr r9, r15 # 1126c
mr r8, r4 # 11270
mr r28, r4 # 11274
bl major_0x12248_0x1e4 # 11278
beq+ panic_wrapper_0x0f380 # 1127c
bl major_0x12248_0x2b0 # 11280
crclr 4*cr3 + eq # 11284
li r3, 0x00 # 11288
bso- cr7, major_0x111d4_0xc4 # 1128c
crset 4*cr3 + eq # 11290
li r3, -0x7272 # 11294
major_0x111d4_0xc4:
rlwimi r17, r4, 0, 20, 31 # 11298
rlwinm r29, r17, 0, 0, 19 # 1129c
stw r17, 0x0134( r6) # 112a0
major_0x111d4_0xd0:
lwz r16, 0x0068(r31) # 112a4
add r28, r28, r16 # 112a8
add r29, r29, r16 # 112ac
cmplw cr2, r28, r5 # 112b0
bgt- cr2, major_0x111d4_0x140 # 112b4
mr r8, r28 # 112b8
bl major_0x12248_0x1e4 # 112bc
beq+ panic_wrapper_0x0f380 # 112c0
bl major_0x12248_0x2b0 # 112c4
rlwinm r17, r17, 0, 0, 19 # 112c8
crxor r31, r31, r14 # 112cc
bns- cr7, major_0x111d4_0x10c # 112d0
beq+ cr3, major_0x111d4_0xd0 # 112d4
cmplw r29, r17 # 112d8
beq+ major_0x111d4_0xd0 # 112dc
major_0x111d4_0x10c:
lwz r16, 0x007c(r31) # 112e0
and r28, r28, r16 # 112e4
subf r16, r4, r28 # 112e8
major_0x111d4_0x118:
stw r16, 0x013c( r6) # 112ec
sync # 112f0
lwz r8, -0x0b90( r1) # 112f4
cmpwi cr1, r8, 0x00 # 112f8
li r8, 0x00 # 112fc
bne+ cr1, major_0x111d4_0x138 # 11300
mflr r8 # 11304
bl panic # 11308
major_0x111d4_0x138:
stw r8, -0x0b90( r1) # 1130c
b major_0x0b0fc_0x8 # 11310
major_0x111d4_0x140:
addi r5, r5, 0x01 # 11314
beq- cr3, major_0x111d4_0x170 # 11318
mr r8, r28 # 1131c
bl major_0x12248_0x1e4 # 11320
beq+ panic_wrapper_0x0f380 # 11324
bl major_0x12248_0x2b0 # 11328
rlwinm r17, r17, 0, 0, 19 # 1132c
bns- cr7, major_0x111d4_0x170 # 11330
cmplw r29, r17 # 11334
bne- major_0x111d4_0x170 # 11338
subf r16, r4, r5 # 1133c
b major_0x111d4_0x118 # 11340
major_0x111d4_0x170:
lwz r16, 0x007c(r31) # 11344
and r28, r28, r16 # 11348
cmplw r5, r28 # 1134c
bge- major_0x111d4_0x184 # 11350
mr r28, r5 # 11354
major_0x111d4_0x184:
subf r16, r4, r28 # 11358
b major_0x111d4_0x118 # 1135c
/***********************************************************
major_0x11360
************************************************************
syscall 82
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x11360: /* < outside referer */
lwz r8, -0x0420( r1) # 11360
cmpwi r8, 0x00 # 11364
bne+ syscall_return_kMPInsufficientResourcesErr # 11368
mr r16, r8 # 1136c
mr r17, r9 # 11370
addi r8, r1, -0xb50 # 11374
# r8 = lock
bl lock # 11378
mr r8, r16 # 1137c
mr r9, r17 # 11380
mr r8, r3 # 11384
# r8 = id
bl id_kind # 11388
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0c # 1138c
bne+ major_0x0b07c_0x28 # 11390
stw r3, -0x0420( r1) # 11394
# r1 = kdp
b syscall_return_assert_lock_unheld # 11398
/***********************************************************
major_0x1139c
************************************************************
syscall 83
************************************************************
Xrefs:
syscall
NKMapPage
***********************************************************/
major_0x1139c: /* < outside referer */
mr r16, r8 # 1139c
mr r17, r9 # 113a0
addi r8, r1, -0xad0 # 113a4
# r8 = lock
bl lock # 113a8
mr r8, r16 # 113ac
mr r9, r17 # 113b0
bl major_0x1139c_0x90 # 113b4
sync # 113b8
lwz r16, -0x0ad0( r1) # 113bc
cmpwi cr1, r16, 0x00 # 113c0
li r16, 0x00 # 113c4
bne+ cr1, major_0x1139c_0x38 # 113c8
mflr r16 # 113cc
bl panic # 113d0
major_0x1139c_0x38:
stw r16, -0x0ad0( r1) # 113d4
mr. r4, r8 # 113d8
bne+ syscall_return_noErr # 113dc
mr r16, r8 # 113e0
mr r17, r9 # 113e4
addi r8, r1, -0xb50 # 113e8
# r8 = lock
bl lock # 113ec
mr r8, r16 # 113f0
mr r9, r17 # 113f4
major_0x1139c_0x5c: /* < outside referer */
lwz r8, -0x0420( r1) # 113f8
# r8 = id
bl id_kind # 113fc
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0c # 11400
mr r31, r8 # 11404
bne+ major_0x0af60_0xa4 # 11408
lwz r8, 0x001c(r31) # 1140c
# r8 = id
bl id_kind # 11410
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x09 # 11414
mr r31, r8 # 11418
bne+ major_0x0af60_0xa4 # 1141c
lwz r8, 0x0020(r31) # 11420
bl major_0x0d35c # 11424
b major_0x0af60_0xa4 # 11428
major_0x1139c_0x90: /* < outside referer */
addi r18, r1, -0x450 # 1142c
lwz r8, -0x0448( r1) # 11430
cmpw r8, r18 # 11434
beq- major_0x1139c_0xec # 11438
lwz r16, 0x0008( r8) # 1143c
lwz r17, 0x000c( r8) # 11440
stw r16, 0x0008(r17) # 11444
stw r17, 0x000c(r16) # 11448
li r16, 0x00 # 1144c
stw r16, 0x0008( r8) # 11450
stw r16, 0x000c( r8) # 11454
lwz r16, -0x0430( r1) # 11458
addi r16, r16, -0x01 # 1145c
stw r16, -0x0430( r1) # 11460
lwz r17, 0x0004( r8) # 11464
mfspr r16, 22/*dec*/ # 11468
eqv. r17, r18, r17 # 1146c
stw r16, 0x0000( r8) # 11470
bne+ panic_wrapper_0x0f380 # 11474
stw r16, 0x0004( r8) # 11478
stw r16, 0x0008( r8) # 1147c
stw r16, 0x000c( r8) # 11480
blr # 11484
major_0x1139c_0xec:
li r8, 0x00 # 11488
blr # 1148c
/***********************************************************
major_0x11490
************************************************************
syscall 84
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x11490: /* < outside referer */
mr r16, r8 # 11490
mr r17, r9 # 11494
addi r8, r1, -0xad0 # 11498
# r8 = lock
bl lock # 1149c
mr r8, r16 # 114a0
mr r9, r17 # 114a4
lwz r16, 0x0004( r3) # 114a8
lwz r17, 0x0000( r3) # 114ac
addi r18, r1, -0x450 # 114b0
eqv. r16, r16, r17 # 114b4
cmpw cr1, r17, r18 # 114b8
bne- major_0x11490_0x3c # 114bc
bne- cr1, major_0x11490_0x3c # 114c0
li r3, -0x32 # 114c4
b major_0x11490_0x48 # 114c8
major_0x11490_0x3c:
mr r8, r3 # 114cc
# r1 = kdp
# r8 = maybe the page
bl free_list_add_page # 114d0
li r3, 0x00 # 114d4
major_0x11490_0x48:
sync # 114d8
lwz r16, -0x0ad0( r1) # 114dc
cmpwi cr1, r16, 0x00 # 114e0
li r16, 0x00 # 114e4
bne+ cr1, major_0x11490_0x64 # 114e8
mflr r16 # 114ec
bl panic # 114f0
major_0x11490_0x64:
stw r16, -0x0ad0( r1) # 114f4
b syscall_return # 114f8
/***********************************************************
free_list_add_page
************************************************************
Xrefs:
setup
major_0x104ec
major_0x1070c
major_0x11490
NKUnmapPages
************************************************************
> r1 = kdp
> r8 = maybe the page
***********************************************************/
free_list_add_page: /* < outside referer */
clrlwi. r9, r8, 0x14 # 114fc
addi r9, r1, -0x450 # kdp.-0x450 # 11500
bne+ panic_wrapper_0x0f380 # 11504
stw r9, 0x0000( r8) # 11508
stw r9, 0x0008( r8) # 1150c
lwz r16, 0x000c( r9) # 11510
stw r16, 0x000c( r8) # 11514
stw r8, 0x0008(r16) # 11518
stw r8, 0x000c( r9) # 1151c
not r9, r9 # 11520
stw r9, 0x0004( r8) # 11524
lwz r8, -0x0430( r1) # kdp.-0x430 # 11528
addi r8, r8, 0x01 # 1152c
stw r8, -0x0430( r1) # kdp.-0x430 # 11530
blr # 11534
/***********************************************************
NKGetFreePageCount
************************************************************
syscall 100
************************************************************
Xrefs:
syscall
***********************************************************/
NKGetFreePageCount: /* < outside referer */
lwz r3, -0x0430( r1) # 11538
b syscall_return # 1153c
/***********************************************************
NKGetUnheldFreePageCount
************************************************************
syscall 101
************************************************************
Xrefs:
syscall
***********************************************************/
NKGetUnheldFreePageCount: /* < outside referer */
lwz r3, -0x042c( r1) # 11540
b syscall_return # 11544
/***********************************************************
NKMapPage
************************************************************
syscall 85
************************************************************
Xrefs:
syscall
***********************************************************/
NKMapPage: /* < outside referer */
mr r16, r8 # 11548
mr r17, r9 # 1154c
addi r8, r1, -0xb50 # 11550
# r8 = lock
bl lock # 11554
mr r8, r16 # 11558
mr r9, r17 # 1155c
mr r8, r3 # 11560
# r8 = id
bl id_kind # 11564
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 11568
bne+ major_0x0b07c_0x28 # 1156c
mr r31, r8 # 11570
lwz r16, 0x0008(r31) # 11574
rlwinm. r8, r16, 0, 28, 28 # 11578
bne+ major_0x0b054 # 1157c
lwz r16, 0x0024(r31) # 11580
lwz r17, 0x0028(r31) # 11584
lwz r19, 0x0020(r31) # 11588
cmplw r4, r16 # 1158c
cmplw cr1, r4, r17 # 11590
blt+ major_0x0b054 # 11594
bgt+ cr1, major_0x0b054 # 11598
rlwinm. r8, r19, 0, 16, 16 # 1159c
cmplw cr1, r4, r16 # 115a0
lwz r20, 0x0038(r31) # 115a4
beq- NKMapPage_0x8c # 115a8
bne+ cr1, major_0x0b054 # 115ac
cmpwi r20, 0x00 # 115b0
lwz r8, 0x0070(r31) # 115b4
bne+ major_0x0af60_0xa4 # 115b8
rlwimi r8, r5, 0, 0, 19 # 115bc
lwz r18, 0x007c(r31) # 115c0
lwz r20, 0x002c(r31) # 115c4
stw r8, 0x0070(r31) # 115c8
stw r20, 0x0038(r31) # 115cc
# r1 = kdp
b syscall_return_assert_lock_unheld # 115d0
NKMapPage_0x8c:
mr r14, r8 # 115d4
mr r15, r9 # 115d8
addi r8, r1, -0xb90 # 115dc
# r8 = lock
bl lock # 115e0
mr r8, r14 # 115e4
mr r9, r15 # 115e8
mr r8, r4 # 115ec
bl major_0x12248_0x1e4 # 115f0
beq+ panic_wrapper_0x0f380 # 115f4
lwz r29, 0x0000(r30) # 115f8
sync # 115fc
lwz r14, -0x0b90( r1) # 11600
cmpwi cr1, r14, 0x00 # 11604
li r14, 0x00 # 11608
bne+ cr1, NKMapPage_0xd0 # 1160c
mflr r14 # 11610
bl panic # 11614
NKMapPage_0xd0:
stw r14, -0x0b90( r1) # 11618
clrlwi. r8, r29, 0x1f # 1161c
bne+ major_0x0af60_0xa4 # 11620
lwz r17, 0x0134( r6) # 11624
rlwinm. r8, r17, 0, 30, 30 # 11628
bne- NKMapPage_0x12c # 1162c
mr r16, r8 # 11630
mr r17, r9 # 11634
addi r8, r1, -0xad0 # 11638
# r8 = lock
bl lock # 1163c
mr r8, r16 # 11640
mr r9, r17 # 11644
bl major_0x1139c_0x90 # 11648
sync # 1164c
lwz r16, -0x0ad0( r1) # 11650
cmpwi cr1, r16, 0x00 # 11654
li r16, 0x00 # 11658
bne+ cr1, NKMapPage_0x120 # 1165c
mflr r16 # 11660
bl panic # 11664
NKMapPage_0x120:
stw r16, -0x0ad0( r1) # 11668
mr. r5, r8 # 1166c
beq+ major_0x1139c_0x5c # 11670
NKMapPage_0x12c:
lwz r17, 0x0134( r6) # 11674
rlwinm. r8, r17, 0, 29, 29 # 11678
beq- NKMapPage_0x17c # 1167c
rlwinm. r8, r29, 0, 25, 25 # 11680
lwz r18, 0x0068(r31) # 11684
NKMapPage_0x140:
addi r18, r18, -0x20 # 11688
bne- NKMapPage_0x174 # 1168c
dcbst r18, r5 # 11690
NKMapPage_0x14c:
cmpwi cr1, r18, 0x00 # 11694
bgt+ cr1, NKMapPage_0x140 # 11698
sync # 1169c
lwz r18, 0x0068(r31) # 116a0
NKMapPage_0x15c:
addi r18, r18, -0x20 # 116a4
icbi r18, r5 # 116a8
cmpwi cr1, r18, 0x00 # 116ac
bgt+ cr1, NKMapPage_0x15c # 116b0
isync # 116b4
b NKMapPage_0x17c # 116b8
NKMapPage_0x174:
dcbf r18, r5 # 116bc
b NKMapPage_0x14c # 116c0
NKMapPage_0x17c:
lwz r18, 0x0068(r31) # 116c4
andi. r29, r29, 0x7e7 # 116c8
ori r29, r29, 0x01 # 116cc
rlwimi r29, r5, 0, 0, 19 # 116d0
lwz r17, 0x0038(r31) # 116d4
stw r29, 0x0000(r30) # 116d8
add r17, r17, r18 # 116dc
stw r17, 0x0038(r31) # 116e0
lwz r17, 0x0134( r6) # 116e4
clrlwi. r8, r17, 0x1f # 116e8
# r1 = kdp
beq+ syscall_return_assert_lock_unheld # 116ec
lwz r5, 0x0068(r31) # 116f0
b NKHoldPages_0x2c # 116f4
/***********************************************************
NKUnmapPages
************************************************************
syscall 86
************************************************************
Xrefs:
syscall
***********************************************************/
NKUnmapPages: /* < outside referer */
mr r16, r8 # 116f8
mr r17, r9 # 116fc
addi r8, r1, -0xb50 # 11700
# r8 = lock
bl lock # 11704
mr r8, r16 # 11708
mr r9, r17 # 1170c
mr r8, r3 # 11710
# r8 = id
bl id_kind # 11714
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 11718
bne+ major_0x0b07c_0x28 # 1171c
mr r31, r8 # 11720
lwz r8, 0x0134( r6) # 11724
lwz r16, 0x0008(r31) # 11728
rlwinm. r16, r16, 0, 28, 28 # 1172c
bne+ major_0x0b054 # 11730
clrlwi. r8, r8, 0x1f # 11734
add r5, r5, r4 # 11738
lwz r16, 0x0024(r31) # 1173c
lwz r17, 0x0028(r31) # 11740
lwz r19, 0x0020(r31) # 11744
crmove r14, r2 # 11748
addi r5, r5, -0x01 # 1174c
cmplw r4, r16 # 11750
cmplw cr1, r5, r17 # 11754
blt+ major_0x0b054 # 11758
bgt+ cr1, major_0x0b054 # 1175c
lwz r29, 0x0068(r31) # 11760
lwz r20, 0x0038(r31) # 11764
rlwinm. r8, r19, 0, 16, 16 # 11768
cmplw cr1, r4, r16 # 1176c
beq- NKUnmapPages_0xd8 # 11770
bne+ cr1, major_0x0b054 # 11774
cmpwi r20, 0x00 # 11778
li r20, 0x00 # 1177c
ble+ major_0x0af60_0xa4 # 11780
stw r20, 0x0038(r31) # 11784
mr r14, r8 # 11788
mr r15, r9 # 1178c
addi r8, r1, -0xb90 # 11790
# r8 = lock
bl lock # 11794
mr r8, r14 # 11798
mr r9, r15 # 1179c
li r30, 0x00 # 117a0
NKUnmapPages_0xac:
mr r8, r4 # 117a4
lwz r9, 0x006c(r31) # 117a8
bl major_0x12248_0x45c # 117ac
beq- NKUnmapPages_0xc4 # 117b0
bl major_0x12248_0x2e0 # 117b4
bl major_0x12248_0x348 # 117b8
NKUnmapPages_0xc4:
add r4, r4, r29 # 117bc
subf. r8, r4, r5 # 117c0
bge+ NKUnmapPages_0xac # 117c4
crclr 4*cr3 + eq # 117c8
b NKUnmapPages_0x158 # 117cc
NKUnmapPages_0xd8:
bne- cr3, NKUnmapPages_0xf4 # 117d0
mr r14, r8 # 117d4
mr r15, r9 # 117d8
addi r8, r1, -0xad0 # 117dc
# r8 = lock
bl lock # 117e0
mr r8, r14 # 117e4
mr r9, r15 # 117e8
NKUnmapPages_0xf4:
mr r14, r8 # 117ec
mr r15, r9 # 117f0
addi r8, r1, -0xb90 # 117f4
# r8 = lock
bl lock # 117f8
mr r8, r14 # 117fc
mr r9, r15 # 11800
lwz r28, 0x0038(r31) # 11804
NKUnmapPages_0x110:
mr r8, r4 # 11808
bl major_0x12248_0x1e4 # 1180c
beq+ panic_wrapper_0x0f380 # 11810
bl major_0x12248_0x2b0 # 11814
bns- cr7, NKUnmapPages_0x148 # 11818
bltl- cr5, major_0x12248_0x2e0 # 1181c
bltl- cr5, major_0x12248_0x348 # 11820
lwz r18, 0x0000(r30) # 11824
subf r28, r29, r28 # 11828
rlwinm r18, r18, 0, 0, 30 # 1182c
stw r18, 0x0000(r30) # 11830
bne- cr3, NKUnmapPages_0x148 # 11834
rlwinm r8, r18, 0, 0, 19 # 11838
# r1 = kdp
# r8 = maybe the page
bl free_list_add_page # 1183c
NKUnmapPages_0x148:
add r4, r4, r29 # 11840
subf. r8, r4, r5 # 11844
bge+ NKUnmapPages_0x110 # 11848
stw r28, 0x0038(r31) # 1184c
NKUnmapPages_0x158:
sync # 11850
lwz r14, -0x0b90( r1) # 11854
cmpwi cr1, r14, 0x00 # 11858
li r14, 0x00 # 1185c
bne+ cr1, NKUnmapPages_0x174 # 11860
mflr r14 # 11864
bl panic # 11868
NKUnmapPages_0x174:
stw r14, -0x0b90( r1) # 1186c
# r1 = kdp
bne+ cr3, syscall_return_assert_lock_unheld # 11870
sync # 11874
lwz r14, -0x0ad0( r1) # 11878
cmpwi cr1, r14, 0x00 # 1187c
li r14, 0x00 # 11880
bne+ cr1, NKUnmapPages_0x198 # 11884
mflr r14 # 11888
bl panic # 1188c
NKUnmapPages_0x198:
stw r14, -0x0ad0( r1) # 11890
# r1 = kdp
b syscall_return_assert_lock_unheld # 11894
/***********************************************************
NKMakePhysicallyContiguous
************************************************************
syscall 127
************************************************************
Xrefs:
syscall
***********************************************************/
NKMakePhysicallyContiguous: /* < outside referer */
mr r16, r8 # 11898
mr r17, r9 # 1189c
addi r8, r1, -0xb50 # 118a0
# r8 = lock
bl lock # 118a4
mr r8, r16 # 118a8
mr r9, r17 # 118ac
mr r8, r3 # 118b0
# r8 = id
bl id_kind # 118b4
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 118b8
bne+ major_0x0b07c_0x28 # 118bc
mr r31, r8 # 118c0
mr r27, r5 # 118c4
add r5, r5, r4 # 118c8
lwz r16, 0x0024(r31) # 118cc
lwz r17, 0x0028(r31) # 118d0
addi r5, r5, -0x01 # 118d4
cmplw r4, r16 # 118d8
cmplw cr1, r5, r17 # 118dc
blt+ major_0x0b054 # 118e0
bgt+ cr1, major_0x0b054 # 118e4
lwz r19, 0x0020(r31) # 118e8
lwz r29, 0x0068(r31) # 118ec
rlwinm. r8, r19, 0, 16, 16 # 118f0
bne+ major_0x0b054 # 118f4
mr r14, r8 # 118f8
mr r15, r9 # 118fc
addi r8, r1, -0xb90 # 11900
# r8 = lock
bl lock # 11904
mr r8, r14 # 11908
mr r9, r15 # 1190c
mr r27, r4 # 11910
li r28, -0x01 # 11914
NKMakePhysicallyContiguous_0x80:
mr r8, r27 # 11918
bl major_0x12248_0x1e4 # 1191c
beq+ panic_wrapper_0x0f380 # 11920
bl major_0x12248_0x2b0 # 11924
bns- cr7, NKMakePhysicallyContiguous_0x150 # 11928
rlwinm r8, r17, 0, 0, 19 # 1192c
cmpwi r28, -0x01 # 11930
cmpw cr1, r28, r8 # 11934
mr r28, r8 # 11938
beq- NKMakePhysicallyContiguous_0xac # 1193c
bne- cr1, NKMakePhysicallyContiguous_0xe0 # 11940
NKMakePhysicallyContiguous_0xac:
add r27, r27, r29 # 11944
add r28, r28, r29 # 11948
subf. r8, r27, r5 # 1194c
bge+ NKMakePhysicallyContiguous_0x80 # 11950
sync # 11954
lwz r14, -0x0b90( r1) # 11958
cmpwi cr1, r14, 0x00 # 1195c
li r14, 0x00 # 11960
bne+ cr1, NKMakePhysicallyContiguous_0xd8 # 11964
mflr r14 # 11968
bl panic # 1196c
NKMakePhysicallyContiguous_0xd8:
stw r14, -0x0b90( r1) # 11970
# r1 = kdp
b syscall_return_assert_lock_unheld # 11974
NKMakePhysicallyContiguous_0xe0:
sync # 11978
lwz r14, -0x0b90( r1) # 1197c
cmpwi cr1, r14, 0x00 # 11980
li r14, 0x00 # 11984
bne+ cr1, NKMakePhysicallyContiguous_0xfc # 11988
mflr r14 # 1198c
bl panic # 11990
NKMakePhysicallyContiguous_0xfc:
stw r14, -0x0b90( r1) # 11994
mr r16, r8 # 11998
mr r17, r9 # 1199c
addi r8, r1, -0xad0 # 119a0
# r8 = lock
bl lock # 119a4
mr r8, r16 # 119a8
mr r9, r17 # 119ac
addi r18, r1, -0x450 # 119b0
lwz r8, -0x0448( r1) # 119b4
cmpw r8, r18 # 119b8
beq- NKMakePhysicallyContiguous_0x174 # 119bc
b NKMakePhysicallyContiguous_0x174 # 119c0
.long 0x7c0004ac # 119c4
.long 0x8201f530 # 119c8
.long 0x2c900000 # 119cc
.long 0x3a000000 # 119d0
.long 0x40a6000c # 119d4
.long 0x7e0802a6 # 119d8
.long 0x48005905 # 119dc
.long 0x9201f530 # 119e0
.long 0x4bff9554 # 119e4
NKMakePhysicallyContiguous_0x150:
sync # 119e8
lwz r16, -0x0b90( r1) # 119ec
cmpwi cr1, r16, 0x00 # 119f0
li r16, 0x00 # 119f4
bne+ cr1, NKMakePhysicallyContiguous_0x16c # 119f8
mflr r16 # 119fc
bl panic # 11a00
NKMakePhysicallyContiguous_0x16c:
stw r16, -0x0b90( r1) # 11a04
b major_0x0af60_0xa4 # 11a08
NKMakePhysicallyContiguous_0x174:
sync # 11a0c
lwz r16, -0x0ad0( r1) # 11a10
cmpwi cr1, r16, 0x00 # 11a14
li r16, 0x00 # 11a18
bne+ cr1, NKMakePhysicallyContiguous_0x190 # 11a1c
mflr r16 # 11a20
bl panic # 11a24
NKMakePhysicallyContiguous_0x190:
stw r16, -0x0ad0( r1) # 11a28
b major_0x0af60_0xa4 # 11a2c
/***********************************************************
NKLockPages
************************************************************
syscall 87
************************************************************
Xrefs:
syscall
***********************************************************/
NKLockPages: /* < outside referer */
mr r16, r8 # 11a30
mr r17, r9 # 11a34
addi r8, r1, -0xb50 # 11a38
# r8 = lock
bl lock # 11a3c
mr r8, r16 # 11a40
mr r9, r17 # 11a44
mr r8, r3 # 11a48
# r8 = id
bl id_kind # 11a4c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 11a50
bne+ major_0x0b07c_0x28 # 11a54
mr r31, r8 # 11a58
mr r27, r5 # 11a5c
add r5, r5, r4 # 11a60
lwz r16, 0x0024(r31) # 11a64
lwz r17, 0x0028(r31) # 11a68
addi r5, r5, -0x01 # 11a6c
cmplw r4, r16 # 11a70
cmplw cr1, r5, r17 # 11a74
blt+ major_0x0b054 # 11a78
bgt+ cr1, major_0x0b054 # 11a7c
lwz r19, 0x0020(r31) # 11a80
lwz r29, 0x0068(r31) # 11a84
rlwinm. r8, r19, 0, 16, 16 # 11a88
bne+ major_0x0b054 # 11a8c
mr r27, r4 # 11a90
li r28, 0x00 # 11a94
NKLockPages_0x68:
mr r8, r27 # 11a98
bl major_0x12248_0x254 # 11a9c
beq+ major_0x0b054 # 11aa0
lhz r18, 0x0000(r30) # 11aa4
rlwinm r17, r18, 24, 25, 31 # 11aa8
rlwinm. r8, r18, 0, 16, 16 # 11aac
cmpwi cr1, r17, 0x7f # 11ab0
addi r28, r28, 0x01 # 11ab4
beq- NKLockPages_0x94 # 11ab8
addi r28, r28, -0x01 # 11abc
bge+ cr1, major_0x0b0cc # 11ac0
NKLockPages_0x94:
add r27, r27, r29 # 11ac4
subf. r8, r27, r5 # 11ac8
bge+ NKLockPages_0x68 # 11acc
mr r16, r8 # 11ad0
mr r17, r9 # 11ad4
addi r8, r1, -0xad0 # 11ad8
# r8 = lock
bl lock # 11adc
mr r8, r16 # 11ae0
mr r9, r17 # 11ae4
lwz r16, -0x042c( r1) # 11ae8
subf. r16, r28, r16 # 11aec
ble- NKLockPages_0xc8 # 11af0
stw r16, -0x042c( r1) # 11af4
NKLockPages_0xc8:
sync # 11af8
lwz r16, -0x0ad0( r1) # 11afc
cmpwi cr1, r16, 0x00 # 11b00
li r16, 0x00 # 11b04
bne+ cr1, NKLockPages_0xe4 # 11b08
mflr r16 # 11b0c
bl panic # 11b10
NKLockPages_0xe4:
stw r16, -0x0ad0( r1) # 11b14
ble+ major_0x0af60_0xa4 # 11b18
mr r27, r4 # 11b1c
NKLockPages_0xf0:
mr r8, r27 # 11b20
bl major_0x12248_0x254 # 11b24
beq+ panic_wrapper_0x0f380 # 11b28
lhz r18, 0x0000(r30) # 11b2c
rlwinm. r17, r18, 0, 16, 16 # 11b30
bne- NKLockPages_0x10c # 11b34
li r18, -0x8000 # 11b38
NKLockPages_0x10c:
rlwinm r17, r18, 24, 25, 31 # 11b3c
addi r17, r17, 0x01 # 11b40
rlwimi r18, r17, 8, 17, 23 # 11b44
sth r18, 0x0000(r30) # 11b48
add r27, r27, r29 # 11b4c
subf. r8, r27, r5 # 11b50
bge+ NKLockPages_0xf0 # 11b54
# r1 = kdp
b syscall_return_assert_lock_unheld # 11b58
/***********************************************************
NKUnlockPages
************************************************************
syscall 88
************************************************************
Xrefs:
syscall
***********************************************************/
NKUnlockPages: /* < outside referer */
mr r16, r8 # 11b5c
mr r17, r9 # 11b60
addi r8, r1, -0xb50 # 11b64
# r8 = lock
bl lock # 11b68
mr r8, r16 # 11b6c
mr r9, r17 # 11b70
mr r8, r3 # 11b74
# r8 = id
bl id_kind # 11b78
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 11b7c
bne+ major_0x0b07c_0x28 # 11b80
mr r31, r8 # 11b84
add r5, r5, r4 # 11b88
lwz r16, 0x0024(r31) # 11b8c
lwz r17, 0x0028(r31) # 11b90
addi r5, r5, -0x01 # 11b94
cmplw r4, r16 # 11b98
cmplw cr1, r5, r17 # 11b9c
blt+ major_0x0b054 # 11ba0
bgt+ cr1, major_0x0b054 # 11ba4
lwz r19, 0x0020(r31) # 11ba8
lwz r29, 0x0068(r31) # 11bac
rlwinm. r8, r19, 0, 16, 16 # 11bb0
bne+ major_0x0b054 # 11bb4
mr r27, r4 # 11bb8
NKUnlockPages_0x60:
mr r8, r27 # 11bbc
bl major_0x12248_0x254 # 11bc0
beq+ major_0x0b054 # 11bc4
lhz r18, 0x0000(r30) # 11bc8
rlwinm r17, r18, 24, 25, 31 # 11bcc
rlwinm. r8, r18, 0, 16, 16 # 11bd0
cmpwi cr1, r17, 0x00 # 11bd4
beq+ major_0x0b0cc # 11bd8
addi r28, r28, 0x01 # 11bdc
beq+ cr1, major_0x0b0cc # 11be0
add r27, r27, r29 # 11be4
subf. r8, r27, r5 # 11be8
bge+ NKUnlockPages_0x60 # 11bec
li r28, 0x00 # 11bf0
NKUnlockPages_0x98:
mr r8, r4 # 11bf4
bl major_0x12248_0x254 # 11bf8
beq+ major_0x0b054 # 11bfc
lhz r18, 0x0000(r30) # 11c00
rlwinm r17, r18, 24, 25, 31 # 11c04
addi r17, r17, -0x01 # 11c08
rlwimi r18, r17, 8, 17, 23 # 11c0c
clrlwi. r8, r18, 0x11 # 11c10
bne- NKUnlockPages_0xc4 # 11c14
rlwinm r18, r18, 0, 17, 15 # 11c18
addi r28, r28, 0x01 # 11c1c
NKUnlockPages_0xc4:
sth r18, 0x0000(r30) # 11c20
add r4, r4, r29 # 11c24
subf. r8, r4, r5 # 11c28
bge+ NKUnlockPages_0x98 # 11c2c
mr r16, r8 # 11c30
mr r17, r9 # 11c34
addi r8, r1, -0xad0 # 11c38
# r8 = lock
bl lock # 11c3c
mr r8, r16 # 11c40
mr r9, r17 # 11c44
lwz r16, -0x042c( r1) # 11c48
add r16, r16, r28 # 11c4c
stw r16, -0x042c( r1) # 11c50
sync # 11c54
lwz r16, -0x0ad0( r1) # 11c58
cmpwi cr1, r16, 0x00 # 11c5c
li r16, 0x00 # 11c60
bne+ cr1, NKUnlockPages_0x114 # 11c64
mflr r16 # 11c68
bl panic # 11c6c
NKUnlockPages_0x114:
stw r16, -0x0ad0( r1) # 11c70
# r1 = kdp
b syscall_return_assert_lock_unheld # 11c74
/***********************************************************
NKHoldPages
************************************************************
syscall 89
************************************************************
Xrefs:
syscall
NKMapPage
***********************************************************/
NKHoldPages: /* < outside referer */
mr r16, r8 # 11c78
mr r17, r9 # 11c7c
addi r8, r1, -0xb50 # 11c80
# r8 = lock
bl lock # 11c84
mr r8, r16 # 11c88
mr r9, r17 # 11c8c
mr r8, r3 # 11c90
# r8 = id
bl id_kind # 11c94
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 11c98
bne+ major_0x0b07c_0x28 # 11c9c
mr r31, r8 # 11ca0
NKHoldPages_0x2c: /* < outside referer */
add r5, r5, r4 # 11ca4
lwz r16, 0x0024(r31) # 11ca8
lwz r17, 0x0028(r31) # 11cac
addi r5, r5, -0x01 # 11cb0
cmplw r4, r16 # 11cb4
cmplw cr1, r5, r17 # 11cb8
blt+ major_0x0b054 # 11cbc
bgt+ cr1, major_0x0b054 # 11cc0
lwz r19, 0x0020(r31) # 11cc4
lwz r29, 0x0068(r31) # 11cc8
rlwinm. r8, r19, 0, 16, 16 # 11ccc
bne+ major_0x0b054 # 11cd0
mr r27, r4 # 11cd4
li r28, 0x00 # 11cd8
NKHoldPages_0x64:
mr r8, r27 # 11cdc
bl major_0x12248_0x254 # 11ce0
beq+ major_0x0b054 # 11ce4
lhz r18, 0x0000(r30) # 11ce8
clrlwi r17, r18, 0x18 # 11cec
rlwinm. r8, r18, 0, 16, 16 # 11cf0
cmpwi cr1, r17, 0xff # 11cf4
addi r28, r28, 0x01 # 11cf8
beq- NKHoldPages_0x90 # 11cfc
addi r28, r28, -0x01 # 11d00
bge+ cr1, major_0x0b0cc # 11d04
NKHoldPages_0x90:
add r27, r27, r29 # 11d08
subf. r8, r27, r5 # 11d0c
bge+ NKHoldPages_0x64 # 11d10
mr r16, r8 # 11d14
mr r17, r9 # 11d18
addi r8, r1, -0xad0 # 11d1c
# r8 = lock
bl lock # 11d20
mr r8, r16 # 11d24
mr r9, r17 # 11d28
lwz r16, -0x042c( r1) # 11d2c
subf. r16, r28, r16 # 11d30
ble- NKHoldPages_0xc4 # 11d34
stw r16, -0x042c( r1) # 11d38
NKHoldPages_0xc4:
sync # 11d3c
lwz r16, -0x0ad0( r1) # 11d40
cmpwi cr1, r16, 0x00 # 11d44
li r16, 0x00 # 11d48
bne+ cr1, NKHoldPages_0xe0 # 11d4c
mflr r16 # 11d50
bl panic # 11d54
NKHoldPages_0xe0:
stw r16, -0x0ad0( r1) # 11d58
ble+ major_0x0af60_0xa4 # 11d5c
mr r27, r4 # 11d60
NKHoldPages_0xec:
mr r8, r27 # 11d64
bl major_0x12248_0x254 # 11d68
beq+ panic_wrapper_0x0f380 # 11d6c
lhz r18, 0x0000(r30) # 11d70
rlwinm. r17, r18, 0, 16, 16 # 11d74
bne- NKHoldPages_0x108 # 11d78
li r18, -0x8000 # 11d7c
NKHoldPages_0x108:
clrlwi r17, r18, 0x18 # 11d80
addi r17, r17, 0x01 # 11d84
rlwimi r18, r17, 0, 24, 31 # 11d88
sth r18, 0x0000(r30) # 11d8c
add r27, r27, r29 # 11d90
subf. r8, r27, r5 # 11d94
bge+ NKHoldPages_0xec # 11d98
# r1 = kdp
b syscall_return_assert_lock_unheld # 11d9c
/***********************************************************
NKUnholdPages
************************************************************
syscall 90
************************************************************
Xrefs:
syscall
***********************************************************/
NKUnholdPages: /* < outside referer */
mr r16, r8 # 11da0
mr r17, r9 # 11da4
addi r8, r1, -0xb50 # 11da8
# r8 = lock
bl lock # 11dac
mr r8, r16 # 11db0
mr r9, r17 # 11db4
mr r8, r3 # 11db8
# r8 = id
bl id_kind # 11dbc
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 11dc0
bne+ major_0x0b07c_0x28 # 11dc4
mr r31, r8 # 11dc8
add r5, r5, r4 # 11dcc
lwz r16, 0x0024(r31) # 11dd0
lwz r17, 0x0028(r31) # 11dd4
addi r5, r5, -0x01 # 11dd8
cmplw r4, r16 # 11ddc
cmplw cr1, r5, r17 # 11de0
blt+ major_0x0b054 # 11de4
bgt+ cr1, major_0x0b054 # 11de8
lwz r19, 0x0020(r31) # 11dec
lwz r29, 0x0068(r31) # 11df0
rlwinm. r8, r19, 0, 16, 16 # 11df4
bne+ major_0x0b054 # 11df8
mr r27, r4 # 11dfc
NKUnholdPages_0x60:
mr r8, r27 # 11e00
bl major_0x12248_0x254 # 11e04
beq+ major_0x0b054 # 11e08
lhz r18, 0x0000(r30) # 11e0c
clrlwi r17, r18, 0x18 # 11e10
rlwinm. r8, r18, 0, 16, 16 # 11e14
cmpwi cr1, r17, 0x00 # 11e18
beq+ major_0x0b0cc # 11e1c
addi r28, r28, 0x01 # 11e20
beq+ cr1, major_0x0b0cc # 11e24
add r27, r27, r29 # 11e28
subf. r8, r27, r5 # 11e2c
bge+ NKUnholdPages_0x60 # 11e30
li r28, 0x00 # 11e34
NKUnholdPages_0x98:
mr r8, r4 # 11e38
bl major_0x12248_0x254 # 11e3c
beq+ major_0x0b054 # 11e40
lhz r18, 0x0000(r30) # 11e44
clrlwi r17, r18, 0x18 # 11e48
addi r17, r17, -0x01 # 11e4c
rlwimi r18, r17, 0, 24, 31 # 11e50
clrlwi. r8, r18, 0x11 # 11e54
bne- NKUnholdPages_0xc4 # 11e58
rlwinm r18, r18, 0, 17, 15 # 11e5c
addi r28, r28, 0x01 # 11e60
NKUnholdPages_0xc4:
sth r18, 0x0000(r30) # 11e64
add r4, r4, r29 # 11e68
subf. r8, r4, r5 # 11e6c
bge+ NKUnholdPages_0x98 # 11e70
mr r16, r8 # 11e74
mr r17, r9 # 11e78
addi r8, r1, -0xad0 # 11e7c
# r8 = lock
bl lock # 11e80
mr r8, r16 # 11e84
mr r9, r17 # 11e88
lwz r16, -0x042c( r1) # 11e8c
add r16, r16, r28 # 11e90
stw r16, -0x042c( r1) # 11e94
sync # 11e98
lwz r16, -0x0ad0( r1) # 11e9c
cmpwi cr1, r16, 0x00 # 11ea0
li r16, 0x00 # 11ea4
bne+ cr1, NKUnholdPages_0x114 # 11ea8
mflr r16 # 11eac
bl panic # 11eb0
NKUnholdPages_0x114:
stw r16, -0x0ad0( r1) # 11eb4
# r1 = kdp
b syscall_return_assert_lock_unheld # 11eb8
/***********************************************************
major_0x11ebc
************************************************************
syscall 91
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x11ebc: /* < outside referer */
mr r16, r8 # 11ebc
mr r17, r9 # 11ec0
addi r8, r1, -0xb50 # 11ec4
# r8 = lock
bl lock # 11ec8
mr r8, r16 # 11ecc
mr r9, r17 # 11ed0
mr r8, r3 # 11ed4
# r8 = id
bl id_kind # 11ed8
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 11edc
bne+ major_0x0b07c_0x28 # 11ee0
mr r31, r8 # 11ee4
lwz r16, 0x0024(r31) # 11ee8
lwz r17, 0x0028(r31) # 11eec
cmplw r4, r16 # 11ef0
cmplw cr1, r4, r17 # 11ef4
blt+ major_0x0b054 # 11ef8
bgt+ cr1, major_0x0b054 # 11efc
mr r14, r8 # 11f00
mr r15, r9 # 11f04
addi r8, r1, -0xb90 # 11f08
# r8 = lock
bl lock # 11f0c
mr r8, r14 # 11f10
mr r9, r15 # 11f14
mr r8, r4 # 11f18
bl major_0x12248_0x1e4 # 11f1c
beq- major_0x11ebc_0xcc # 11f20
bl major_0x12248_0x2b0 # 11f24
bltl- cr5, major_0x12248_0x2e0 # 11f28
bltl- cr5, major_0x12248_0x348 # 11f2c
lwz r29, 0x0000(r30) # 11f30
sync # 11f34
lwz r14, -0x0b90( r1) # 11f38
cmpwi cr1, r14, 0x00 # 11f3c
li r14, 0x00 # 11f40
bne+ cr1, major_0x11ebc_0x94 # 11f44
mflr r14 # 11f48
bl panic # 11f4c
major_0x11ebc_0x94:
stw r14, -0x0b90( r1) # 11f50
mr r8, r4 # 11f54
bl major_0x12248_0x254 # 11f58
li r19, 0x00 # 11f5c
beq- major_0x11ebc_0xac # 11f60
lhz r19, 0x0000(r30) # 11f64
major_0x11ebc_0xac:
andi. r5, r29, 0x319 # 11f68
rlwinm. r8, r19, 0, 16, 16 # 11f6c
rlwimi r5, r19, 0, 16, 16 # 11f70
# r1 = kdp
beq+ syscall_return_assert_lock_unheld # 11f74
rlwinm. r8, r19, 0, 17, 23 # 11f78
# r1 = kdp
beq+ syscall_return_assert_lock_unheld # 11f7c
ori r5, r5, 0x4000 # 11f80
# r1 = kdp
b syscall_return_assert_lock_unheld # 11f84
major_0x11ebc_0xcc:
sync # 11f88
lwz r14, -0x0b90( r1) # 11f8c
cmpwi cr1, r14, 0x00 # 11f90
li r14, 0x00 # 11f94
bne+ cr1, major_0x11ebc_0xe8 # 11f98
mflr r14 # 11f9c
bl panic # 11fa0
major_0x11ebc_0xe8:
stw r14, -0x0b90( r1) # 11fa4
b major_0x0af60_0xa4 # 11fa8
/***********************************************************
major_0x11fac
************************************************************
syscall 92
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x11fac: /* < outside referer */
mr r16, r8 # 11fac
mr r17, r9 # 11fb0
addi r8, r1, -0xb50 # 11fb4
# r8 = lock
bl lock # 11fb8
mr r8, r16 # 11fbc
mr r9, r17 # 11fc0
mr r8, r3 # 11fc4
# r8 = id
bl id_kind # 11fc8
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 11fcc
bne+ major_0x0b07c_0x28 # 11fd0
mr r31, r8 # 11fd4
lwz r16, 0x0008(r31) # 11fd8
rlwinm. r8, r16, 0, 28, 28 # 11fdc
bne+ major_0x0b054 # 11fe0
lwz r29, 0x0134( r6) # 11fe4
li r8, 0x318 # 11fe8
andc. r9, r5, r8 # 11fec
bne+ major_0x0b054 # 11ff0
andc. r9, r29, r8 # 11ff4
bne+ major_0x0b054 # 11ff8
lwz r16, 0x0024(r31) # 11ffc
lwz r17, 0x0028(r31) # 12000
cmplw r4, r16 # 12004
cmplw cr1, r4, r17 # 12008
blt+ major_0x0b054 # 1200c
bgt+ cr1, major_0x0b054 # 12010
mr r14, r8 # 12014
mr r15, r9 # 12018
addi r8, r1, -0xb90 # 1201c
# r8 = lock
bl lock # 12020
mr r8, r14 # 12024
mr r9, r15 # 12028
mr r8, r4 # 1202c
bl major_0x12248_0x1e4 # 12030
beq- major_0x11fac_0xd8 # 12034
bl major_0x12248_0x2b0 # 12038
bns- cr7, major_0x11fac_0x9c # 1203c
bltl- cr5, major_0x12248_0x2e0 # 12040
bltl- cr5, major_0x12248_0x348 # 12044
major_0x11fac_0x9c:
lwz r16, 0x0000(r30) # 12048
and r8, r5, r29 # 1204c
orc r9, r5, r29 # 12050
or r16, r16, r8 # 12054
and r16, r16, r9 # 12058
stw r16, 0x0000(r30) # 1205c
sync # 12060
lwz r14, -0x0b90( r1) # 12064
cmpwi cr1, r14, 0x00 # 12068
li r14, 0x00 # 1206c
bne+ cr1, major_0x11fac_0xd0 # 12070
mflr r14 # 12074
bl panic # 12078
major_0x11fac_0xd0:
stw r14, -0x0b90( r1) # 1207c
# r1 = kdp
b syscall_return_assert_lock_unheld # 12080
major_0x11fac_0xd8:
sync # 12084
lwz r14, -0x0b90( r1) # 12088
cmpwi cr1, r14, 0x00 # 1208c
li r14, 0x00 # 12090
bne+ cr1, major_0x11fac_0xf4 # 12094
mflr r14 # 12098
bl panic # 1209c
major_0x11fac_0xf4:
stw r14, -0x0b90( r1) # 120a0
b major_0x0af60_0xa4 # 120a4
/***********************************************************
major_0x120a8
************************************************************
syscall 93
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x120a8: /* < outside referer */
mr r16, r8 # 120a8
mr r17, r9 # 120ac
addi r8, r1, -0xb50 # 120b0
# r8 = lock
bl lock # 120b4
mr r8, r16 # 120b8
mr r9, r17 # 120bc
mr r8, r3 # 120c0
# r8 = id
bl id_kind # 120c4
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 120c8
bne+ major_0x0b07c_0x28 # 120cc
mr r31, r8 # 120d0
lwz r16, 0x0024(r31) # 120d4
lwz r17, 0x0028(r31) # 120d8
cmplw r4, r16 # 120dc
cmplw cr1, r4, r17 # 120e0
blt+ major_0x0b054 # 120e4
bgt+ cr1, major_0x0b054 # 120e8
mr r8, r4 # 120ec
bl major_0x12248_0x254 # 120f0
beq+ major_0x0b054 # 120f4
lhz r18, 0x0000(r30) # 120f8
rlwinm. r8, r18, 0, 16, 16 # 120fc
li r5, 0x00 # 12100
# r1 = kdp
bne+ syscall_return_assert_lock_unheld # 12104
clrlwi r5, r18, 0x11 # 12108
# r1 = kdp
b syscall_return_assert_lock_unheld # 1210c
/***********************************************************
major_0x12110
************************************************************
syscall 94
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x12110: /* < outside referer */
mr r16, r8 # 12110
mr r17, r9 # 12114
addi r8, r1, -0xb50 # 12118
# r8 = lock
bl lock # 1211c
mr r8, r16 # 12120
mr r9, r17 # 12124
mr r8, r3 # 12128
# r8 = id
bl id_kind # 1212c
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 12130
bne+ major_0x0b07c_0x28 # 12134
mr r31, r8 # 12138
lwz r16, 0x0024(r31) # 1213c
lwz r17, 0x0028(r31) # 12140
cmplw r4, r16 # 12144
cmplw cr1, r4, r17 # 12148
blt+ major_0x0b054 # 1214c
bgt+ cr1, major_0x0b054 # 12150
mr r8, r4 # 12154
bl major_0x12248_0x254 # 12158
beq+ major_0x0b054 # 1215c
cmplwi r5, 0x7fff # 12160
bgt+ major_0x0b054 # 12164
lhz r18, 0x0000(r30) # 12168
rlwinm. r8, r18, 0, 16, 16 # 1216c
bne+ major_0x0af60_0xa4 # 12170
rlwimi r18, r5, 0, 17, 31 # 12174
sth r18, 0x0000(r30) # 12178
mr r16, r8 # 1217c
mr r17, r9 # 12180
addi r8, r1, -0xb90 # 12184
# r8 = lock
bl lock # 12188
mr r8, r16 # 1218c
mr r9, r17 # 12190
mr r8, r4 # 12194
bl major_0x12248_0x1e4 # 12198
beq+ panic_wrapper_0x0f380 # 1219c
bl major_0x12248_0x2b0 # 121a0
bns- cr7, major_0x12110_0xa0 # 121a4
bltl- cr5, major_0x12248_0x2e0 # 121a8
bltl- cr5, major_0x12248_0x348 # 121ac
major_0x12110_0xa0:
sync # 121b0
lwz r16, -0x0b90( r1) # 121b4
cmpwi cr1, r16, 0x00 # 121b8
li r16, 0x00 # 121bc
bne+ cr1, major_0x12110_0xbc # 121c0
mflr r16 # 121c4
bl panic # 121c8
major_0x12110_0xbc:
stw r16, -0x0b90( r1) # 121cc
# r1 = kdp
b syscall_return_assert_lock_unheld # 121d0
/***********************************************************
major_0x121d4
************************************************************
syscall 129
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x121d4: /* < outside referer */
mr r16, r8 # 121d4
mr r17, r9 # 121d8
addi r8, r1, -0xb50 # 121dc
# r8 = lock
bl lock # 121e0
mr r8, r16 # 121e4
mr r9, r17 # 121e8
mr r8, r3 # 121ec
# r8 = id
bl id_kind # 121f0
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0b # 121f4
bne+ major_0x0b07c_0x28 # 121f8
mr r31, r8 # 121fc
lwz r16, 0x0024(r31) # 12200
lwz r17, 0x0028(r31) # 12204
cmplw r4, r16 # 12208
cmplw cr1, r4, r17 # 1220c
blt+ major_0x0b054 # 12210
bgt+ cr1, major_0x0b054 # 12214
mr r8, r4 # 12218
bl major_0x12248_0x254 # 1221c
beq+ major_0x0b054 # 12220
lhz r18, 0x0000(r30) # 12224
li r5, 0x00 # 12228
rlwinm. r8, r18, 0, 16, 16 # 1222c
li r16, 0x00 # 12230
beq- major_0x121d4_0x6c # 12234
rlwinm r16, r18, 24, 25, 31 # 12238
clrlwi r5, r18, 0x18 # 1223c
major_0x121d4_0x6c:
stw r16, 0x0134( r6) # 12240
# r1 = kdp
b syscall_return_assert_lock_unheld # 12244
/***********************************************************
major_0x12248
************************************************************
syscall 95
************************************************************
Xrefs:
major_0x032c0
major_0x035a0
major_0x04c20
syscall
NKxprintf
major_0x0c3ac
major_0x1070c
major_0x108fc
NKSetAreaAccess
major_0x10de0
major_0x11104
major_0x111d4
NKMapPage
NKUnmapPages
NKMakePhysicallyContiguous
NKLockPages
NKUnlockPages
NKHoldPages
NKUnholdPages
major_0x11ebc
major_0x11fac
major_0x120a8
major_0x12110
major_0x121d4
***********************************************************/
major_0x12248: /* < outside referer */
or. r8, r3, r4 # 12248
bne- major_0x12248_0x44 # 1224c
li r16, 0x00 # 12250
stw r16, 0x06b4( r1) # 12254
bl 1f # 12258
.ascii "Areas capability probe detected^n" # 1225c
.short 0 # 1227d
.align 2 # 1227f
1: mflr r8 # 12280
bl print_string # 12284
b syscall_return_paramErr # 12288
major_0x12248_0x44:
mr r16, r8 # 1228c
mr r17, r9 # 12290
addi r8, r1, -0xb50 # 12294
# r8 = lock
bl lock # 12298
mr r8, r16 # 1229c
mr r9, r17 # 122a0
li r28, -0x01 # 122a4
li r4, 0x00 # 122a8
li r5, 0x00 # 122ac
lwz r8, -0x042c( r1) # 122b0
cmpwi r8, 0x00 # 122b4
ble+ major_0x0af60_0xa4 # 122b8
lwz r27, -0x0438( r1) # 122bc
srwi r27, r27, 15 # 122c0
mfspr r8, 22/*dec*/ # 122c4
subf r27, r27, r8 # 122c8
lwz r8, -0x03f8( r1) # 122cc
lwz r9, -0x03f4( r1) # 122d0
mr r30, r9 # 122d4
bl major_0x10320_0xcc # 122d8
mr r31, r8 # 122dc
lwz r29, 0x0024(r31) # 122e0
cmplw r29, r30 # 122e4
bgt- major_0x12248_0xa8 # 122e8
mr r29, r30 # 122ec
major_0x12248_0xa8:
crset 4*cr2 + eq # 122f0
major_0x12248_0xac:
mfspr r9, 22/*dec*/ # 122f4
subf. r9, r27, r9 # 122f8
blt- major_0x12248_0x1c8 # 122fc
major_0x12248_0xb8:
lwz r8, 0x0020(r31) # 12300
lwz r9, 0x0018(r31) # 12304
rlwinm. r8, r8, 0, 16, 16 # 12308
cmpwi cr1, r3, 0x00 # 1230c
bne- major_0x12248_0x19c # 12310
beq- cr1, major_0x12248_0xe0 # 12314
cmpwi cr3, r9, 0x00 # 12318
beq- cr3, major_0x12248_0xe0 # 1231c
cmpw cr1, r9, r3 # 12320
bne- cr1, major_0x12248_0x19c # 12324
major_0x12248_0xe0:
lwz r9, 0x0008(r31) # 12328
rlwinm. r8, r9, 0, 28, 28 # 1232c
bne- major_0x12248_0x19c # 12330
rlwinm. r8, r9, 0, 23, 23 # 12334
bne- major_0x12248_0x19c # 12338
mr r16, r8 # 1233c
mr r17, r9 # 12340
addi r8, r1, -0xb90 # 12344
# r8 = lock
bl lock # 12348
mr r8, r16 # 1234c
mr r9, r17 # 12350
mr r8, r29 # 12354
bl major_0x12248_0x1e4 # 12358
beq+ panic_wrapper_0x0f380 # 1235c
sync # 12360
lwz r16, -0x0b90( r1) # 12364
cmpwi cr1, r16, 0x00 # 12368
li r16, 0x00 # 1236c
bne+ cr1, major_0x12248_0x134 # 12370
mflr r16 # 12374
bl panic # 12378
major_0x12248_0x134:
stw r16, -0x0b90( r1) # 1237c
lwz r16, 0x0000(r30) # 12380
clrlwi. r8, r16, 0x1f # 12384
beq- major_0x12248_0x180 # 12388
mr r8, r29 # 1238c
bl major_0x12248_0x254 # 12390
beq- major_0x12248_0x1c8 # 12394
lhz r17, 0x0000(r30) # 12398
rlwinm. r8, r17, 0, 16, 16 # 1239c
clrlwi r17, r17, 0x11 # 123a0
bne- major_0x12248_0x180 # 123a4
cmpw r17, r28 # 123a8
crclr 4*cr2 + eq # 123ac
ble- major_0x12248_0x180 # 123b0
mr r28, r17 # 123b4
lwz r4, 0x0000(r31) # 123b8
cmplwi r17, 0x7fff # 123bc
mr r5, r29 # 123c0
bge- major_0x12248_0x1c8 # 123c4
major_0x12248_0x180:
lwz r8, 0x0068(r31) # 123c8
lwz r9, 0x0028(r31) # 123cc
add r29, r29, r8 # 123d0
subf. r9, r9, r29 # 123d4
bge- major_0x12248_0x19c # 123d8
bne+ cr2, major_0x12248_0xac # 123dc
b major_0x12248_0xb8 # 123e0
major_0x12248_0x19c:
lwz r8, 0x0054(r31) # 123e4
lwz r9, 0x005c(r31) # 123e8
cmpw r8, r9 # 123ec
addi r31, r9, -0x54 # 123f0
lwz r29, 0x0024(r31) # 123f4
bne- major_0x12248_0x1c0 # 123f8
lwz r9, 0x0008( r8) # 123fc
addi r31, r9, -0x54 # 12400
lwz r29, 0x0024(r31) # 12404
major_0x12248_0x1c0:
bne+ cr2, major_0x12248_0xac # 12408
b major_0x12248_0xb8 # 1240c
major_0x12248_0x1c8:
cmpwi r4, 0x00 # 12410
stw r29, -0x03f4( r1) # 12414
beq+ major_0x0af60_0xa4 # 12418
lwz r8, 0x0068(r31) # 1241c
add r8, r8, r5 # 12420
stw r8, -0x03f4( r1) # 12424
# r1 = kdp
b syscall_return_assert_lock_unheld # 12428
major_0x12248_0x1e4: /* < outside referer */
lwz r16, 0x0024(r31) # 1242c
lwz r18, 0x0008(r31) # 12430
lwz r30, 0x0040(r31) # 12434
subf r17, r16, r8 # 12438
cmpwi r30, 0x00 # 1243c
rlwinm r17, r17, 22, 10, 29 # 12440
beqlr- # 12444
rlwinm. r16, r18, 0, 26, 26 # 12448
rlwinm r16, r17, 22, 20, 29 # 1244c
beq- major_0x12248_0x214 # 12450
rlwinm r17, r17, 0, 20, 29 # 12454
lwzx r30, r30, r16 # 12458
major_0x12248_0x214:
add. r30, r30, r17 # 1245c
blr # 12460
.long 0x821f0024 # 12464
.long 0x825f0008 # 12468
.long 0x83df0040 # 1246c
.long 0x56510739 # 12470
.long 0x7e304050 # 12474
.long 0x4182ffc4 # 12478
.long 0x83df0044 # 1247c
.long 0x825f0080 # 12480
.long 0x3bdeffbc # 12484
.long 0x7e304050 # 12488
.long 0x7e319214 # 1248c
.long 0x825e0008 # 12490
.long 0x83de0040 # 12494
.long 0x4bffffa4 # 12498
major_0x12248_0x254: /* < outside referer */
lwz r16, 0x0024(r31) # 1249c
lwz r18, 0x0008(r31) # 124a0
lwz r30, 0x003c(r31) # 124a4
rlwinm. r17, r18, 0, 28, 28 # 124a8
subf r17, r16, r8 # 124ac
beq- major_0x12248_0x288 # 124b0
lwz r30, 0x0044(r31) # 124b4
lwz r18, 0x0080(r31) # 124b8
addi r30, r30, -0x44 # 124bc
subf r17, r16, r8 # 124c0
add r17, r17, r18 # 124c4
lwz r18, 0x0008(r30) # 124c8
lwz r30, 0x003c(r30) # 124cc
major_0x12248_0x288:
cmpwi r30, 0x00 # 124d0
rlwinm r17, r17, 21, 11, 30 # 124d4
beqlr- # 124d8
rlwinm. r16, r18, 0, 30, 30 # 124dc
rlwinm r16, r17, 22, 20, 29 # 124e0
beq- major_0x12248_0x2a8 # 124e4
rlwinm r17, r17, 0, 20, 30 # 124e8
lwzx r30, r30, r16 # 124ec
major_0x12248_0x2a8:
add. r30, r30, r17 # 124f0
blr # 124f4
major_0x12248_0x2b0: /* < outside referer */
lwz r19, 0x0000(r30) # 124f8
lwz r18, 0x06a4( r1) # 124fc
mtcrf 0x07, r19 # 12500
rlwinm r17, r19, 0, 0, 19 # 12504
rlwinm r16, r19, 23, 9, 28 # 12508
bnslr- cr7 # 1250c
bgelr- cr5 # 12510
lwzux r16, r18, r16 # 12514
lwz r17, 0x0004(r18) # 12518
mtcrf 0x80, r16 # 1251c
bge+ panic_wrapper_0x0f380 # 12520
blr # 12524
major_0x12248_0x2e0: /* < outside referer */
mfspr r14, 287/*pvr*/ # 12528
clrlwi r16, r16, 0x01 # 1252c
rlwinm. r14, r14, 0, 0, 14 # 12530
stw r16, 0x0000(r18) # 12534
sync # 12538
tlbie r8 # 1253c
beq- major_0x12248_0x304 # 12540
sync # 12544
tlbsync # 12548
major_0x12248_0x304:
sync # 1254c
isync # 12550
cmpwi r30, 0x00 # 12554
lwz r14, 0x0000(r30) # 12558
lwz r17, 0x0004(r18) # 1255c
oris r16, r16, 0x8000 # 12560
beqlr- # 12564
rlwimi r14, r17, 29, 27, 27 # 12568
rlwimi r14, r17, 27, 28, 28 # 1256c
mtcrf 0x07, r14 # 12570
stw r14, 0x0000(r30) # 12574
blr # 12578
major_0x12248_0x334:
stw r17, 0x0004(r18) # 1257c
eieio # 12580
stw r16, 0x0000(r18) # 12584
sync # 12588
blr # 1258c
major_0x12248_0x348: /* < outside referer */
lwz r14, 0x0000(r30) # 12590
li r16, -0x01 # 12594
stw r16, 0x0340( r1) # 12598
stw r16, 0x0348( r1) # 1259c
stw r16, 0x0350( r1) # 125a0
stw r16, 0x0358( r1) # 125a4
lwz r16, 0x0e98( r1) # 125a8
rlwinm r14, r14, 0, 21, 19 # 125ac
addi r16, r16, 0x01 # 125b0
stw r16, 0x0e98( r1) # 125b4
rlwimi r14, r17, 0, 0, 19 # 125b8
cmpwi r30, 0x00 # 125bc
li r16, 0x00 # 125c0
li r17, 0x00 # 125c4
beq+ major_0x12248_0x334 # 125c8
stw r14, 0x0000(r30) # 125cc
b major_0x12248_0x334 # 125d0
major_0x12248_0x38c: /* < outside referer */
mr. r19, r9 # 125d4
mfspr r17, 272/*sprg0*/ # 125d8
bne- major_0x12248_0x39c # 125dc
lwz r19, -0x001c(r17) # 125e0
major_0x12248_0x39c:
addi r18, r19, 0x80 # 125e4
lwz r16, 0x0000(r18) # 125e8
li r19, -0x01 # 125ec
rlwimi r19, r16, 15, 0, 14 # 125f0
xor r17, r8, r16 # 125f4
andc. r17, r17, r19 # 125f8
beq- major_0x12248_0x444 # 125fc
lwzu r16, 0x0008(r18) # 12600
rlwimi r19, r16, 15, 0, 14 # 12604
xor r17, r8, r16 # 12608
andc. r17, r17, r19 # 1260c
beq- major_0x12248_0x444 # 12610
lwzu r16, 0x0008(r18) # 12614
rlwimi r19, r16, 15, 0, 14 # 12618
xor r17, r8, r16 # 1261c
andc. r17, r17, r19 # 12620
beq- major_0x12248_0x444 # 12624
lwzu r16, 0x0008(r18) # 12628
rlwimi r19, r16, 15, 0, 14 # 1262c
xor r17, r8, r16 # 12630
andc. r17, r17, r19 # 12634
beq- major_0x12248_0x444 # 12638
lwzu r16, 0x0008(r18) # 1263c
rlwimi r19, r16, 15, 0, 14 # 12640
xor r17, r8, r16 # 12644
andc. r17, r17, r19 # 12648
beq- major_0x12248_0x444 # 1264c
lwzu r16, 0x0008(r18) # 12650
rlwimi r19, r16, 15, 0, 14 # 12654
xor r17, r8, r16 # 12658
andc. r17, r17, r19 # 1265c
beq- major_0x12248_0x444 # 12660
lwzu r16, 0x0008(r18) # 12664
rlwimi r19, r16, 15, 0, 14 # 12668
xor r17, r8, r16 # 1266c
andc. r17, r17, r19 # 12670
beq- major_0x12248_0x444 # 12674
lwzu r16, 0x0008(r18) # 12678
rlwimi r19, r16, 15, 0, 14 # 1267c
xor r17, r8, r16 # 12680
andc. r17, r17, r19 # 12684
bne- major_0x12248_0x45c # 12688
major_0x12248_0x444:
andi. r17, r16, 0x01 # 1268c
rlwinm r19, r19, 0, 8, 19 # 12690
lwzu r17, 0x0004(r18) # 12694
and r19, r8, r19 # 12698
or r17, r17, r19 # 1269c
bnelr- # 126a0
major_0x12248_0x45c: /* < outside referer */
cmpwi r9, 0x00 # 126a4
addi r16, r9, 0x30 # 126a8
beq- major_0x12248_0x474 # 126ac
rlwinm r17, r8, 6, 26, 29 # 126b0
lwzx r17, r16, r17 # 126b4
b major_0x12248_0x478 # 126b8
major_0x12248_0x474:
mfsrin r17, r8 # 126bc
major_0x12248_0x478:
rlwinm r16, r8, 10, 26, 31 # 126c0
rlwimi r16, r17, 7, 1, 24 # 126c4
rlwinm r9, r8, 26, 10, 25 # 126c8
oris r16, r16, 0x8000 # 126cc
rlwinm r17, r17, 6, 7, 25 # 126d0
xor r9, r9, r17 # 126d4
lwz r17, 0x06a0( r1) # 126d8
lwz r18, 0x06a4( r1) # 126dc
and r9, r9, r17 # 126e0
or. r18, r18, r9 # 126e4
major_0x12248_0x4a0:
lwz r17, 0x0000(r18) # 126e8
lwz r9, 0x0008(r18) # 126ec
cmpw cr6, r16, r17 # 126f0
lwz r17, 0x0010(r18) # 126f4
cmpw cr7, r16, r9 # 126f8
lwzu r9, 0x0018(r18) # 126fc
bne- cr6, major_0x12248_0x4c4 # 12700
major_0x12248_0x4bc:
lwzu r17, -0x0014(r18) # 12704
blr # 12708
major_0x12248_0x4c4:
cmpw cr6, r16, r17 # 1270c
lwzu r17, 0x0008(r18) # 12710
beq+ cr7, major_0x12248_0x4bc # 12714
cmpw cr7, r16, r9 # 12718
lwzu r9, 0x0008(r18) # 1271c
beq+ cr6, major_0x12248_0x4bc # 12720
cmpw cr6, r16, r17 # 12724
lwzu r17, 0x0008(r18) # 12728
beq+ cr7, major_0x12248_0x4bc # 1272c
cmpw cr7, r16, r9 # 12730
lwzu r9, 0x0008(r18) # 12734
beq+ cr6, major_0x12248_0x4bc # 12738
cmpw cr6, r16, r17 # 1273c
lwzu r17, -0x000c(r18) # 12740
beqlr- cr7 # 12744
cmpw cr7, r16, r9 # 12748
lwzu r17, 0x0008(r18) # 1274c
beqlr- cr6 # 12750
lwzu r17, 0x0008(r18) # 12754
beqlr- cr7 # 12758
lwz r17, 0x06a0( r1) # 1275c
xori r16, r16, 0x40 # 12760
andi. r9, r16, 0x40 # 12764
addi r18, r18, -0x3c # 12768
xor r18, r18, r17 # 1276c
bne+ major_0x12248_0x4a0 # 12770
blr # 12774
/***********************************************************
major_0x12778
***********************************************************/
.long 0x60000000 # 12778
.long 0x60000000 # 1277c
/***********************************************************
panic_wrapper_0x12780
************************************************************
Xrefs:
boring
major_0x129fc
major_0x12a34
***********************************************************/
panic_wrapper_0x12780: /* < outside referer */
b panic # 12780
/***********************************************************
store_some_junk
************************************************************
Xrefs:
setup
***********************************************************/
store_some_junk: /* < outside referer */
lwz r8, 0x0630( r1) # 12784
lwz r8, 0x00a0( r8) # 12788
lis r9, 0x00 # 1278c
ori r9, r9, 0x7000 # 12790
subf r9, r9, r8 # 12794
stw r9, -0x0a9c( r1) # 12798
lis r9, -0x01 # 1279c
ori r9, r9, 0x9000 # 127a0
add r9, r9, r1 # 127a4
stw r9, -0x0aa0( r1) # 127a8
lis r8, 0x00 # 127ac
ori r8, r8, 0x6458 # 127b0
add r23, r8, r9 # 127b4
stw r8, 0x0000( r9) # 127b8
lis r8, -0x78be # 127bc
ori r8, r8, 0x474e # 127c0
stw r8, 0x0004( r9) # 127c4
addi r9, r9, 0x08 # 127c8
lis r8, 0x00 # 127cc
ori r8, r8, 0x6450 # 127d0
stw r8, 0x0000( r9) # 127d4
lis r8, 0x6672 # 127d8
ori r8, r8, 0x6565 # 127dc
stw r8, 0x0004( r9) # 127e0
li r8, 0x00 # 127e4
stw r8, 0x0000(r23) # 127e8
lis r8, -0x78bb # 127ec
ori r8, r8, 0x4e44 # 127f0
stw r8, 0x0004(r23) # 127f4
addi r8, r1, -0xab0 # 127f8
stw r9, 0x0008( r8) # 127fc
stw r9, 0x000c( r8) # 12800
stw r8, 0x0008( r9) # 12804
stw r8, 0x000c( r9) # 12808
lis r9, 0x504f # 1280c
ori r9, r9, 0x4f4c # 12810
stw r9, 0x0004( r8) # 12814
blr # 12818
/***********************************************************
boring
************************************************************
Xrefs:
setup
major_0x02ccc
major_0x0b3cc
major_0x0b960
major_0x0c5e0
major_0x0c778
major_0x0c830
major_0x0cb00
major_0x0ce48
major_0x0d204
major_0x0d70c
major_0x0d8a0
major_0x0da20
major_0x0db04
mktask
major_0x0ea58
convert_pmdts_to_areas
NKCreateAddressSpaceSub
major_0x0fb34
createarea
major_0x10414
major_0x108fc
say_nanodebugger_activated
major_0x15144
major_0x151b0
************************************************************
> r1 = kdp
***********************************************************/
boring: /* < outside referer */
crclr 4*cr7 + eq # 1281c
b boring_0xc # 12820
boring_with_crset: /* < outside referer */
crset 4*cr7 + eq # 12824
boring_0xc:
mflr r17 # 12828
mfspr r18, 272/*sprg0*/ # 1282c
mr r15, r8 # 12830
mr r16, r9 # 12834
addi r8, r1, -0xad0 # kdp.pool_lock # 12838
# r8 = lock
bl lock # 1283c
mr r8, r15 # 12840
mr r9, r16 # 12844
stw r17, -0x0060(r18) # 12848
stw r8, -0x005c(r18) # 1284c
boring_0x34:
cmpwi r8, 0x00 # 12850
cmpwi cr1, r8, 0xfd8 # 12854
ble+ panic_wrapper_0x12780 # 12858
bgt- cr1, boring_0xb4 # 1285c
addi r8, r8, 0x27 # 12860
rlwinm r8, r8, 0, 0, 26 # 12864
addi r14, r1, -0xab0 # kdp.-0xab0 # 12868
lwz r15, 0x0008(r14) # 1286c
boring_0x54:
cmpw r14, r15 # 12870
bne+ boring_0xbc # 12874
li r8, 0x00 # 12878
li r9, 0x01 # 1287c
lwz r16, -0x0430( r1) # kdp.-0x430 # 12880
lwz r17, -0x042c( r1) # kdp.-0x42c # 12884
subf. r16, r9, r16 # 12888
subf r17, r9, r17 # 1288c
blt- major_0x129cc # 12890
stw r16, -0x0430( r1) # kdp.-0x430 # 12894
stw r17, -0x042c( r1) # kdp.-0x42c # 12898
lwz r8, -0x0448( r1) # kdp.-0x448 # 1289c
lwz r17, 0x0008( r8) # 128a0
lwz r18, 0x000c( r8) # 128a4
stw r17, 0x0008(r18) # 128a8
stw r18, 0x000c(r17) # 128ac
li r17, 0x00 # 128b0
stw r17, 0x0008( r8) # 128b4
stw r17, 0x000c( r8) # 128b8
li r9, 0x00 # 128bc
# r1 = kdp
# r8 = anywhere in new page (phys)
# r9 = page_virt
bl poolextend # 128c0
mfspr r18, 272/*sprg0*/ # 128c4
lwz r8, -0x005c(r18) # 128c8
b boring_0x34 # 128cc
boring_0xb4:
li r8, 0x00 # 128d0
b major_0x129cc # 128d4
boring_0xbc:
lwz r16, 0x0000(r15) # 128d8
cmplw r16, r8 # 128dc
lis r20, 256 * 'f'+'r' # 128e0
bgt- boring_0x120 # 128e4
beq- boring_0x13c # 128e8
ori r20, r20, 256 * 'e'+'e' # 128ec
lwz r16, 0x0000(r15) # 128f0
add r18, r16, r15 # 128f4
lwz r19, 0x0004(r18) # 128f8
cmplw cr1, r18, r15 # 128fc
cmpw r19, r20 # 12900
ble+ cr1, panic_wrapper_0x12780 # 12904
bne- boring_0x118 # 12908
lwz r17, 0x0000(r18) # 1290c
rotlwi r19, r19, 0x08 # 12910
add r17, r17, r16 # 12914
stw r17, 0x0000(r15) # 12918
stw r19, 0x0004(r18) # 1291c
lwz r17, 0x000c(r18) # 12920
lwz r16, 0x0008(r18) # 12924
stw r16, 0x0008(r17) # 12928
stw r17, 0x000c(r16) # 1292c
b boring_0xbc # 12930
boring_0x118:
lwz r15, 0x0008(r15) # 12934
b boring_0x54 # 12938
boring_0x120:
subf r16, r8, r16 # 1293c
cmpwi r16, 0x28 # 12940
blt- boring_0x13c # 12944
stw r16, 0x0000(r15) # 12948
add r15, r15, r16 # 1294c
stw r8, 0x0000(r15) # 12950
b boring_0x14c # 12954
boring_0x13c:
lwz r14, 0x000c(r15) # 12958
lwz r16, 0x0008(r15) # 1295c
stw r16, 0x0008(r14) # 12960
stw r14, 0x000c(r16) # 12964
boring_0x14c:
lis r8, 256 * 135+'l' # 12968
ori r8, r8, 256 * 'o'+'c' # 1296c
stw r8, 0x0004(r15) # 12970
addi r8, r15, 0x08 # 12974
beq- cr7, major_0x129cc # 12978
lwz r16, 0x0000(r15) # 1297c
addi r16, r16, -0x08 # 12980
li r14, 0x00 # 12984
add r16, r16, r15 # 12988
addi r15, r15, 0x04 # 1298c
boring_0x174:
stwu r14, 0x0004(r15) # 12990
cmpw r15, r16 # 12994
ble+ boring_0x174 # 12998
b major_0x129cc # 1299c
/***********************************************************
looks_like_poolextend
************************************************************
Xrefs:
major_0x0b3cc
major_0x0b4a4
major_0x0b960
major_0x0ba80
major_0x0c5e0
major_0x0c680
major_0x0c778
major_0x0c968
major_0x0cb00
major_0x0cd9c
major_0x0ce48
major_0x0d158
major_0x0d204
major_0x0d278
major_0x0d70c
major_0x0d798
major_0x0da20
major_0x0da8c
mktask
major_0x0e604
major_0x0e76c
major_0x0ea58
convert_pmdts_to_areas
NKCreateAddressSpaceSub
major_0x0f9f8
major_0x0fb34
major_0x10320
major_0x10414
major_0x104ec
***********************************************************/
looks_like_poolextend: /* < outside referer */
mflr r17 # 129a0
mfspr r18, 272/*sprg0*/ # 129a4
mr r15, r8 # 129a8
mr r16, r9 # 129ac
addi r8, r1, -0xad0 # 129b0
# r8 = lock
bl lock # 129b4
mr r8, r15 # 129b8
mr r9, r16 # 129bc
stw r17, -0x0060(r18) # 129c0
bl major_0x129fc # 129c4
bl major_0x12a34 # 129c8
/***********************************************************
major_0x129cc
************************************************************
Xrefs:
boring
looks_like_poolextend
***********************************************************/
major_0x129cc: /* < outside referer */
mfspr r18, 272/*sprg0*/ # 129cc
sync # 129d0
lwz r15, -0x0ad0( r1) # 129d4
cmpwi cr1, r15, 0x00 # 129d8
li r15, 0x00 # 129dc
bne+ cr1, major_0x129cc_0x20 # 129e0
mflr r15 # 129e4
bl panic # 129e8
major_0x129cc_0x20:
stw r15, -0x0ad0( r1) # 129ec
lwz r17, -0x0060(r18) # 129f0
mtlr r17 # 129f4
blr # 129f8
/***********************************************************
major_0x129fc
************************************************************
Xrefs:
looks_like_poolextend
poolextend
***********************************************************/
major_0x129fc: /* < outside referer */
addi r15, r8, -0x08 # 129fc
lis r20, 0x6672 # 12a00
lhz r16, 0x0004(r15) # 12a04
ori r20, r20, 0x6565 # 12a08
cmplwi r16, 0x876c # 12a0c
bne+ panic_wrapper_0x12780 # 12a10
stw r20, 0x0004(r15) # 12a14
addi r16, r1, -0xab0 # 12a18
stw r16, 0x0008(r15) # 12a1c
lwz r17, 0x000c(r16) # 12a20
stw r17, 0x000c(r15) # 12a24
stw r15, 0x0008(r17) # 12a28
stw r15, 0x000c(r16) # 12a2c
blr # 12a30
/***********************************************************
major_0x12a34
************************************************************
Xrefs:
looks_like_poolextend
poolextend
***********************************************************/
major_0x12a34: /* < outside referer */
lis r20, 0x6672 # 12a34
lwz r16, 0x0000(r15) # 12a38
ori r20, r20, 0x6565 # 12a3c
add r18, r16, r15 # 12a40
lwz r19, 0x0004(r18) # 12a44
cmplw cr1, r18, r15 # 12a48
cmpw r19, r20 # 12a4c
ble+ cr1, panic_wrapper_0x12780 # 12a50
bnelr- # 12a54
lwz r17, 0x0000(r18) # 12a58
rotlwi r19, r19, 0x08 # 12a5c
add r17, r17, r16 # 12a60
stw r17, 0x0000(r15) # 12a64
stw r19, 0x0004(r18) # 12a68
lwz r17, 0x000c(r18) # 12a6c
lwz r16, 0x0008(r18) # 12a70
stw r16, 0x0008(r17) # 12a74
stw r17, 0x000c(r16) # 12a78
b major_0x12a34 # 12a7c
/***********************************************************
poolextend
************************************************************
0xed0(r1) = pool extends (I increment)
-0xa9c(r1) = virt last page (I update)
-0xaa0(r1) = phys last page (I update)
Assumes that cache blocks are 32 bytes! Uh-oh.
Page gets decorated like this:
000: 00 00 0f e8
004: 87 'B 'G 'N
008: 00 00 0f e8
00c: 87 'l 'o 'c
... zeros << r8 passes ptr to here
fe8: phys offset from here to prev page
fec: 87 'E 'N 'D
ff0: logical abs address of prev page
ff4: 00 00 00 00
ff8: 00 00 00 00
ffc: 00 00 00 00
************************************************************
Xrefs:
major_0x0b144
boring
************************************************************
> r1 = kdp
> r8 = anywhere in new page (phys)
> r9 = page_virt
***********************************************************/
poolextend: /* < outside referer */
mflr r14 # 12a80
rlwinm r17, r8, 0, 0, 19 # 12a84
lwz r16, 0x0ed0( r1) # kdp.0xed0 # 12a88
addi r16, r16, 0x01 # 12a8c
stw r16, 0x0ed0( r1) # kdp.0xed0 # 12a90
bl 1f # 12a94
.ascii "Extend free pool: phys 0x" # 12a98
.short 0 # 12ab1
.align 2 # 12ab3
1: mflr r8 # 12ab4
bl print_string # 12ab8
mr r8, r17 # 12abc
bl print_hexword_spc # 12ac0
bl 1f # 12ac4
.ascii " virt 0x" # 12ac8
.short 0 # 12ad0
.align 2 # 12ad2
1: mflr r8 # 12ad4
bl print_string # 12ad8
mr r8, r9 # 12adc
bl print_hexword_spc # 12ae0
bl 1f # 12ae4
.ascii " count: " # 12ae8
.short 0 # 12af0
.align 2 # 12af2
1: mflr r8 # 12af4
bl print_string # 12af8
mr r8, r16 # 12afc
bl print_decimal # 12b00
bl 1f # 12b04
.ascii "^n" # 12b08
.short 0 # 12b0a
.align 2 # 12b0c
1: mflr r8 # 12b0c
bl print_string # 12b10
li r16, 0x1000 # 12b14
poolextend_zeroloop:
addi r16, r16, -0x20 # 12b18
cmpwi r16, 0x00 # 12b1c
dcbz r16, r17 # 12b20
bgt+ poolextend_zeroloop # 12b24
# Put the funny stuff in
li r16, 0xfe8 # 12b28
stw r16, 0x0000(r17) # 12b2c
lis r16, 256 * 135+'B' # 12b30
ori r16, r16, 256 * 'G'+'N' # 12b34
stw r16, 0x0004(r17) # 12b38
addi r15, r17, 0x08 # 12b3c
li r16, 0xfe0 # 12b40
stw r16, 0x0000(r15) # 12b44
lis r16, 256 * 135+'l' # 12b48
ori r16, r16, 256 * 'o'+'c' # 12b4c
stw r16, 0x0004(r15) # 12b50
addi r15, r17, 0xfe8 # 12b54
lwz r18, -0x0aa0( r1) # kdp.-0xaa0 # 12b58
subf r18, r15, r18 # 12b5c
stw r18, 0x0000(r15) # 12b60
lis r16, 256 * 135+'E' # 12b64
ori r16, r16, 256 * 'N'+'D' # 12b68
stw r16, 0x0004(r15) # 12b6c
lwz r16, -0x0a9c( r1) # kdp.-0xa9c # 12b70
stw r16, 0x0008(r15) # 12b74
# Update globals
stw r9, -0x0a9c( r1) # kdp.-0xa9c # 12b78
stw r17, -0x0aa0( r1) # kdp.-0xaa0 # 12b7c
# Unknown func calls
addi r8, r17, 0x10 # 12b80
bl major_0x129fc # 12b84
bl major_0x12a34 # 12b88
mtlr r14 # 12b8c
blr # 12b90
/***********************************************************
major_0x12b94
***********************************************************/
.long 0x7e6802a6 # 12b94
.long 0x8281f560 # 12b98
.long 0x39140008 # 12b9c
.long 0x48000025 # 12ba0
.long 0x82340000 # 12ba4
.long 0x7e31a214 # 12ba8
.long 0x82510000 # 12bac
.long 0x2c120000 # 12bb0
.long 0x7e928a14 # 12bb4
.long 0x4082ffe4 # 12bb8
.long 0x7e6803a6 # 12bbc
.long 0x4e800020 # 12bc0
.long 0x7dc802a6 # 12bc4
.long 0x3a08fff8 # 12bc8
.long 0x82300004 # 12bcc
.long 0x3e408745 # 12bd0
.long 0x62524e44 # 12bd4
.long 0x7c119000 # 12bd8
.long 0x39200000 # 12bdc
.long 0x41820158 # 12be0
.long 0x3e40876c # 12be4
.long 0x62526f63 # 12be8
.long 0x7c119000 # 12bec
.long 0x41820038 # 12bf0
.long 0x3e406672 # 12bf4
.long 0x62526565 # 12bf8
.long 0x39200004 # 12bfc
.long 0x7c119000 # 12c00
.long 0x40820038 # 12c04
.long 0x8230000c # 12c08
.long 0x2c110000 # 12c0c
.long 0x39200005 # 12c10
.long 0x41820028 # 12c14
.long 0x82300008 # 12c18
.long 0x2c110000 # 12c1c
.long 0x39200006 # 12c20
.long 0x41820018 # 12c24
.long 0x82300000 # 12c28
.long 0x7e108a14 # 12c2c
.long 0x2c110000 # 12c30
.long 0x39200007 # 12c34
.long 0x4181ff94 # 12c38
.long 0x7d124378 # 12c3c
.long 0x4800001d # 12c40
.long 0x48656170 # 12c44
.long 0x20736567 # 12c48
.long 0x6d656e74 # 12c4c
.long 0x20636f72 # 12c50
.long 0x72757074 # 12c54
.long 0x20000000 # 12c58
.long 0x7d0802a6 # 12c5c
.long 0x48003781 # 12c60
.long 0x7d284b78 # 12c64
.long 0x48003985 # 12c68
.long 0x4800000d # 12c6c
.long 0x61742000 # 12c70
.long 0 # 12c74
.long 0x7d0802a6 # 12c78
.long 0x48003765 # 12c7c
.long 0x7e088378 # 12c80
.long 0x48003a8d # 12c84
.long 0x48000009 # 12c88
.long 0x5e6e0000 # 12c8c
.long 0x7d0802a6 # 12c90
.long 0x4800374d # 12c94
.long 0x3a10ffc0 # 12c98
.long 0x3a200008 # 12c9c
.long 0x7e088378 # 12ca0
.long 0x48003a6d # 12ca4
.long 0x48000009 # 12ca8
.long 0x20000000 # 12cac
.long 0x7d0802a6 # 12cb0
.long 0x4800372d # 12cb4
.long 0x81100000 # 12cb8
.long 0x48003a55 # 12cbc
.long 0x81100004 # 12cc0
.long 0x48003a4d # 12cc4
.long 0x81100008 # 12cc8
.long 0x48003a45 # 12ccc
.long 0x8110000c # 12cd0
.long 0x48003a3d # 12cd4
.long 0x4800000d # 12cd8
.long 0x20202a00 # 12cdc
.long 0 # 12ce0
.long 0x7d0802a6 # 12ce4
.long 0x480036f9 # 12ce8
.long 0x39000010 # 12cec
.long 0x3a10ffff # 12cf0
.long 0x7d0903a6 # 12cf4
.long 0x8d100001 # 12cf8
.long 0x2c080020 # 12cfc
.long 0x41810008 # 12d00
.long 0x39000020 # 12d04
.long 0x48003be5 # 12d08
.long 0x4200ffec # 12d0c
.long 0x4800000d # 12d10
.long 0x2a5e6e00 # 12d14
.long 0 # 12d18
.long 0x7d0802a6 # 12d1c
.long 0x480036c1 # 12d20
.long 0x3a31ffff # 12d24
.long 0x3a100001 # 12d28
.long 0x2c110000 # 12d2c
.long 0x4082ff70 # 12d30
.long 0x7e489378 # 12d34
.long 0x7dc803a6 # 12d38
.long 0x4e800020 # 12d3c
/***********************************************************
panic_wrapper_0x12d40
************************************************************
Xrefs:
say_nanodebugger_activated
major_0x12fa0
major_0x130f0
***********************************************************/
panic_wrapper_0x12d40: /* < outside referer */
b panic # 12d40
/***********************************************************
say_nanodebugger_activated
************************************************************
Xrefs:
setup
***********************************************************/
say_nanodebugger_activated: /* < outside referer */
addi r9, r1, -0xa84 # 12d44
lis r8, 0x544d # 12d48
ori r8, r8, 0x5251 # 12d4c
stw r8, 0x0004( r9) # 12d50
stw r9, 0x0008( r9) # 12d54
stw r9, 0x000c( r9) # 12d58
li r8, 0x00 # 12d5c
stb r8, 0x0014( r9) # 12d60
li r8, 0x01 # 12d64
stb r8, 0x0016( r9) # 12d68
stb r8, 0x0017( r9) # 12d6c
lis r8, 0x7fff # 12d70
ori r8, r8, 0xffff # 12d74
mtspr 22/*dec*/, r8 # 12d78
stw r8, 0x0038( r9) # 12d7c
oris r8, r8, 0xffff # 12d80
stw r8, 0x003c( r9) # 12d84
mfspr r8, 287/*pvr*/ # 12d88
rlwinm. r8, r8, 0, 0, 14 # 12d8c
beq- say_nanodebugger_activated_0x7c # 12d90
mflr r30 # 12d94
li r8, 0x40 # 12d98
# r1 = kdp
bl boring # 12d9c
mr. r31, r8 # 12da0
beq+ panic_wrapper_0x12d40 # 12da4
stw r31, -0x0434( r1) # 12da8
li r9, 0x07 # 12dac
stb r9, 0x0014(r31) # 12db0
li r9, 0x01 # 12db4
stb r9, 0x0016(r31) # 12db8
mtlr r30 # 12dbc
say_nanodebugger_activated_0x7c:
mfspr r8, 287/*pvr*/ # 12dc0
rlwinm. r8, r8, 0, 0, 14 # 12dc4
beq- say_nanodebugger_activated_0xb4 # 12dc8
mflr r30 # 12dcc
li r8, 0x40 # 12dd0
# r1 = kdp
bl boring # 12dd4
mr. r31, r8 # 12dd8
beq+ panic_wrapper_0x12d40 # 12ddc
stw r31, -0x0364( r1) # 12de0
li r9, 0x08 # 12de4
stb r9, 0x0014(r31) # 12de8
li r9, 0x01 # 12dec
stb r9, 0x0016(r31) # 12df0
mtlr r30 # 12df4
say_nanodebugger_activated_0xb4:
lwz r30, 0x0630( r1) # 12df8
lhz r31, 0x0378(r30) # 12dfc
cmplwi r31, 0x101 # 12e00
blt- say_nanodebugger_activated_0x140 # 12e04
lwz r31, 0x0388(r30) # 12e08
clrlwi. r8, r31, 0x1f # 12e0c
beq- say_nanodebugger_activated_0x140 # 12e10
lwz r8, 0x0edc( r1) # 12e14
ori r8, r8, 0x02 # 12e18
stw r8, 0x0edc( r1) # 12e1c
mflr r30 # 12e20
li r8, 0x40 # 12e24
# r1 = kdp
bl boring # 12e28
mr. r31, r8 # 12e2c
beq+ panic_wrapper_0x12d40 # 12e30
li r9, 0x06 # 12e34
stb r9, 0x0014(r31) # 12e38
li r9, 0x01 # 12e3c
stb r9, 0x0016(r31) # 12e40
bl bizarre # 12e44
stw r8, 0x0038(r31) # 12e48
stw r9, 0x003c(r31) # 12e4c
mr r8, r31 # 12e50
bl major_0x130f0_0x524 # 12e54
bl 1f # 12e58
.ascii "Nanodebugger activated.^n" # 12e5c
.short 0 # 12e75
.align 2 # 12e77
1: mflr r8 # 12e78
bl print_string # 12e7c
mtlr r30 # 12e80
say_nanodebugger_activated_0x140:
blr # 12e84
/***********************************************************
major_0x12e88
************************************************************
Xrefs:
major_0x03200
major_0x130f0
***********************************************************/
major_0x12e88: /* < outside referer */
.long 0x000130f0 # 12e88
.long 0x00013120 # 12e8c
.long 0x0001318c # 12e90
.long 0x0001324c # 12e94
.long 0x000132e8 # 12e98
.long 0x00013350 # 12e9c
.long 0x000135b8 # 12ea0
.long 0x000134bc # 12ea4
.long 0x00013524 # 12ea8
major_0x12e88_0x24: /* < outside referer */
mflr r19 # 12eac
mfspr r18, 272/*sprg0*/ # 12eb0
stw r19, -0x0258(r18) # 12eb4
major_0x12e88_0x30: /* < outside referer */
mfspr r8, 287/*pvr*/ # 12eb8
rlwinm. r8, r8, 0, 0, 14 # 12ebc
beq- major_0x12e88_0x54 # 12ec0
major_0x12e88_0x3c:
mftbu r8 # 12ec4
mftb r9, 0x10c # 12ec8
mftbu r16 # 12ecc
cmpw r8, r16 # 12ed0
bne+ major_0x12e88_0x3c # 12ed4
b major_0x12e88_0x90 # 12ed8
major_0x12e88_0x54:
mfspr r8, 4/*rtcu*/ # 12edc
mfspr r9, 5/*rtcl*/ # 12ee0
mfspr r16, 4/*rtcu*/ # 12ee4
cmpw r8, r16 # 12ee8
bne+ major_0x12e88_0x54 # 12eec
lis r16, 0x3b9a # 12ef0
ori r16, r16, 0xca00 # 12ef4
mfspr r17, 0/*mq*/ # 12ef8
.long 0x7d1040d6 # 12efc
mfspr r16, 0/*mq*/ # 12f00
mtspr 0/*mq*/, r17 # 12f04
mfxer r17 # 12f08
addc r9, r16, r9 # 12f0c
addze r8, r8 # 12f10
mtxer r17 # 12f14
major_0x12e88_0x90:
lbz r19, -0x0309(r18) # 12f18
addi r30, r18, -0x320 # 12f1c
cmpwi r19, 0x01 # 12f20
lwz r16, 0x0038(r30) # 12f24
bne- major_0x12e88_0xcc # 12f28
lwz r17, 0x003c(r30) # 12f2c
cmpw r16, r8 # 12f30
cmplw cr1, r17, r9 # 12f34
bgt- major_0x12e88_0xcc # 12f38
blt- major_0x12e88_0xbc # 12f3c
bgt- cr1, major_0x12e88_0xcc # 12f40
major_0x12e88_0xbc:
li r19, 0x00 # 12f44
stw r30, -0x0254(r18) # 12f48
stb r19, 0x0017(r30) # 12f4c
b major_0x130f0_0x208 # 12f50
major_0x12e88_0xcc:
lwz r30, -0x0a7c( r1) # 12f54
lwz r16, 0x0038(r30) # 12f58
lwz r17, 0x003c(r30) # 12f5c
cmpw r16, r8 # 12f60
cmplw cr1, r17, r9 # 12f64
bgt- major_0x12fa0_0x70 # 12f68
blt- major_0x12e88_0xec # 12f6c
bgt- cr1, major_0x12fa0_0x70 # 12f70
major_0x12e88_0xec:
lwz r19, 0x0008(r30) # 12f74
lwz r20, 0x000c(r30) # 12f78
stw r19, 0x0008(r20) # 12f7c
stw r20, 0x000c(r19) # 12f80
li r19, 0x00 # 12f84
stw r19, 0x0008(r30) # 12f88
stw r19, 0x000c(r30) # 12f8c
lwz r19, 0x064c( r1) # 12f90
lbz r20, 0x0014(r30) # 12f94
rlwimi r19, r20, 2, 23, 29 # 12f98
cmplwi r20, 0x09 # 12f9c
/***********************************************************
major_0x12fa0
************************************************************
Xrefs:
major_0x12e88
***********************************************************/
lis r20, major_0x12e88@h # 12fa0
ori r20, r20, major_0x12e88@l # 12fa4
li r21, 0x00 # 12fa8
add r20, r20, r19 # 12fac
bgel+ panic_wrapper_0x12d40 # 12fb0
stb r21, 0x0017(r30) # 12fb4
lwz r20, 0x0000(r20) # 12fb8
add r20, r20, r19 # 12fbc
mtlr r20 # 12fc0
stw r30, -0x0254(r18) # 12fc4
blr # 12fc8
.long 0x7e5042a6 # 12fcc
.long 0x83d2fdac # 12fd0
.long 0x8a7e0016 # 12fd4
.long 0x2c130001 # 12fd8
.long 0x811e0000 # 12fdc
.long 0x4182fed8 # 12fe0
.long 0x4800231d # 12fe4
.long 0x7fc8f378 # 12fe8
.long 0x4bfff9b5 # 12fec
.long 0x811e001c # 12ff0
.long 0x2c080000 # 12ff4
.long 0x41820010 # 12ff8
.long 0x4bfff9a5 # 12ffc
.long 0x39000000 # 13000
.long 0x911e001c # 13004
.long 0x7e5042a6 # 13008
.long 0x4bfffeac # 1300c
major_0x12fa0_0x70: /* < outside referer */
lwz r19, -0x0258(r18) # 13010
mtlr r19 # 13014
b major_0x13060_0x18 # 13018
/***********************************************************
say_starting_timeslicing
************************************************************
Xrefs:
setup
***********************************************************/
say_starting_timeslicing: /* < outside referer */
mfspr r19, 272/*sprg0*/ # 1301c
li r8, 0x01 # 13020
stb r8, -0x0309(r19) # 13024
li r8, 0x00 # 13028
stw r8, -0x02e8(r19) # 1302c
stw r8, -0x02e4(r19) # 13030
mflr r19 # 13034
bl 1f # 13038
.ascii "Starting timeslicing^n" # 1303c
.short 0 # 13052
.align 2 # 13054
1: mflr r8 # 13054
bl print_string # 13058
mtlr r19 # 1305c
/***********************************************************
major_0x13060
************************************************************
Xrefs:
major_0x12fa0
say_starting_timeslicing
major_0x130f0
major_0x148ec
***********************************************************/
major_0x13060: /* < outside referer */
mflr r19 # 13060
bl bizarre # 13064
mtlr r19 # 13068
major_0x13060_0xc: /* < outside referer */
lwz r18, -0x0a7c( r1) # 1306c
lwz r16, 0x0038(r18) # 13070
lwz r17, 0x003c(r18) # 13074
major_0x13060_0x18: /* < outside referer */
mfxer r20 # 13078
mfspr r19, 272/*sprg0*/ # 1307c
lis r21, 0x7fff # 13080
lbz r18, -0x0309(r19) # 13084
ori r21, r21, 0xffff # 13088
cmpwi r18, 0x01 # 1308c
bne- major_0x13060_0x58 # 13090
lwz r18, -0x02e8(r19) # 13094
lwz r19, -0x02e4(r19) # 13098
cmpw r16, r18 # 1309c
cmplw cr1, r17, r19 # 130a0
blt- major_0x13060_0x58 # 130a4
bgt- major_0x13060_0x50 # 130a8
ble- cr1, major_0x13060_0x58 # 130ac
major_0x13060_0x50:
mr r17, r19 # 130b0
mr r16, r18 # 130b4
major_0x13060_0x58:
subfc r17, r9, r17 # 130b8
subfe. r16, r8, r16 # 130bc
mtxer r20 # 130c0
blt- major_0x13060_0x84 # 130c4
bne- major_0x13060_0x7c # 130c8
cmplw r16, r21 # 130cc
bgt- major_0x13060_0x7c # 130d0
mtspr 22/*dec*/, r17 # 130d4
blr # 130d8
major_0x13060_0x7c:
mtspr 22/*dec*/, r21 # 130dc
blr # 130e0
major_0x13060_0x84:
mtspr 22/*dec*/, r21 # 130e4
mtspr 22/*dec*/, r16 # 130e8
blr # 130ec
/***********************************************************
major_0x130f0
************************************************************
Xrefs:
major_0x0b664
NKSetClockStep
NKSetClockDriftCorrection
major_0x0c680
major_0x0c8b4
major_0x0c968
major_0x0cb8c
major_0x0ccf4
major_0x0cd9c
major_0x0ced4
major_0x0d06c
major_0x0d158
major_0x0d278
major_0x0d35c
major_0x0d504
major_0x0d798
major_0x0d8a0
major_0x0d9a8
major_0x0dce8
major_0x0e604
say_nanodebugger_activated
major_0x12e88
interrupt_blue
***********************************************************/
.long 0x48000029 # 130f0
.long 0x54696d65 # 130f4
.long 0x72496e66 # 130f8
.long 0x6f726d61 # 130fc
.long 0x74696f6e # 13100
.long 0x2e6b696e # 13104
.long 0x64206973 # 13108
.long 0x207a6572 # 1310c
.long 0x6f3f3f5e # 13110
.long 0x6e000000 # 13114
.long 0x7d0802a6 # 13118
.long 0x480032c5 # 1311c
.long 0x4bfffc21 # 13120
.long 0x825e0018 # 13124
.long 0x92120080 # 13128
.long 0x92320084 # 1312c
.long 0x811e0018 # 13130
.long 0x3a000000 # 13134
.long 0x8a280018 # 13138
.long 0x82680088 # 1313c
.long 0x2c110000 # 13140
.long 0x9213011c # 13144
.long 0x4082003c # 13148
.long 0x3a080008 # 1314c
.long 0x82300008 # 13150
.long 0x8270000c # 13154
.long 0x92330008 # 13158
.long 0x9271000c # 1315c
.long 0x3a200000 # 13160
.long 0x92300008 # 13164
.long 0x9230000c # 13168
.long 0x3a200001 # 1316c
.long 0x9a280019 # 13170
.long 0x48000d6d # 13174
.long 0x48001865 # 13178
.long 0x4800197d # 1317c
.long 0x4bfffe4c # 13180
.long 0x82080064 # 13184
.long 0x561007bd # 13188
.long 0x4082fe40 # 1318c
.long 0x4bfffbb1 # 13190
.long 0x825e0018 # 13194
.long 0x92120080 # 13198
.long 0x92320084 # 1319c
.long 0x811e0018 # 131a0
.long 0x3a008d90 # 131a4
.long 0x8a280018 # 131a8
.long 0x82480088 # 131ac
.long 0x2c110000 # 131b0
.long 0x408200a0 # 131b4
.long 0x9212011c # 131b8
.long 0x81080008 # 131bc
.long 0x81080000 # 131c0
.long 0x480021bd # 131c4
.long 0x2c090004 # 131c8
.long 0x2c890005 # 131cc
.long 0x41820048 # 131d0
.long 0x41860034 # 131d4
.long 0x2c090009 # 131d8
.long 0x2c890006 # 131dc
.long 0x41820018 # 131e0
.long 0x4086fb5c # 131e4
.long 0x82080020 # 131e8
.long 0x3a10ffff # 131ec
.long 0x92080020 # 131f0
.long 0x48000030 # 131f4
.long 0x8208001c # 131f8
.long 0x3a10ffff # 131fc
.long 0x9208001c # 13200
.long 0x48000020 # 13204
.long 0x8208001c # 13208
.long 0x3a10ffff # 1320c
.long 0x9208001c # 13210
.long 0x48000010 # 13214
.long 0x8208002c # 13218
.long 0x3a10ffff # 1321c
.long 0x9208002c # 13220
.long 0x811e0018 # 13224
.long 0x3a080008 # 13228
.long 0x82300008 # 1322c
.long 0x8250000c # 13230
.long 0x92320008 # 13234
.long 0x9251000c # 13238
.long 0x3a200000 # 1323c
.long 0x92300008 # 13240
.long 0x9230000c # 13244
.long 0x48000c99 # 13248
.long 0x480018ad # 1324c
.long 0x4bfffd7c # 13250
.long 0x4bfffaec # 13254
.long 0x811e0018 # 13258
.long 0x48002125 # 1325c
.long 0x2c090004 # 13260
.long 0x7d1f4378 # 13264
.long 0x40820058 # 13268
.long 0x821f0024 # 1326c
.long 0x811e001c # 13270
.long 0x2c100000 # 13274
.long 0x2c880000 # 13278
.long 0x4182001c # 1327c
.long 0x823f0028 # 13280
.long 0x7e288b79 # 13284
.long 0x82310008 # 13288
.long 0x41820034 # 1328c
.long 0x923f0028 # 13290
.long 0x48000010 # 13294
.long 0x41860028 # 13298
.long 0x3a000000 # 1329c
.long 0x921e001c # 132a0
.long 0x821e0020 # 132a4
.long 0x823e0024 # 132a8
.long 0x825e0028 # 132ac
.long 0x92080010 # 132b0
.long 0x92280014 # 132b4
.long 0x92480018 # 132b8
.long 0x4bff95f9 # 132bc
.long 0x811e0034 # 132c0
.long 0x480020bd # 132c4
.long 0x2c090005 # 132c8
.long 0x7d1f4378 # 132cc
.long 0x40820008 # 132d0
.long 0x4bff9a21 # 132d4
.long 0x811e002c # 132d8
.long 0x480020a5 # 132dc
.long 0x2c090009 # 132e0
.long 0x7d1f4378 # 132e4
.long 0x4082000c # 132e8
.long 0x811e0030 # 132ec
.long 0x4bffa06d # 132f0
.long 0x4bfffcd8 # 132f4
major_0x130f0_0x208: /* < outside referer */
mfspr r28, 272/*sprg0*/ # 132f8
lwz r29, -0x0008(r28) # 132fc
mr r8, r29 # 13300
bl major_0x13e4c # 13304
lbz r17, 0x0019(r29) # 13308
cmpwi r17, 0x02 # 1330c
bge- major_0x130f0_0x25c # 13310
mr r8, r29 # 13314
lwz r16, 0x0038(r30) # 13318
lwz r17, 0x003c(r30) # 1331c
bl clear_cr0_lt # 13320
bge- major_0x130f0_0x248 # 13324
mr r8, r29 # 13328
bl major_0x13ed8_0x8 # 1332c
bl major_0x149d4_0x8 # 13330
b major_0x130f0_0x268 # 13334
major_0x130f0_0x248:
li r18, 0x02 # 13338
stb r18, 0x0019(r29) # 1333c
mr r8, r29 # 13340
bl major_0x13ed8_0x8 # 13344
b major_0x130f0_0x268 # 13348
major_0x130f0_0x25c:
mr r8, r29 # 1334c
bl major_0x13ed8_0x8 # 13350
bl major_0x149d4 # 13354
major_0x130f0_0x268:
bl major_0x14af8 # 13358
mfspr r18, 272/*sprg0*/ # 1335c
b major_0x12e88_0x30 # 13360
.long 0x48000019 # 13364
.long 0x48656172 # 13368
.long 0x74626561 # 1336c
.long 0x743a2045 # 13370
.long 0x78742000 # 13374
.long 0 # 13378
.long 0x7d0802a6 # 1337c
.long 0x48003061 # 13380
.long 0x82010e80 # 13384
.long 0x7e088378 # 13388
.long 0x48003261 # 1338c
.long 0x48000011 # 13390
.long 0x416c6572 # 13394
.long 0x74732000 # 13398
.long 0 # 1339c
.long 0x7d0802a6 # 133a0
.long 0x4800303d # 133a4
.long 0x82010ee0 # 133a8
.long 0x7e088378 # 133ac
.long 0x4800323d # 133b0
.long 0x48000011 # 133b4
.long 0x426c7565 # 133b8
.long 0x20637075 # 133bc
.long 0x2d000000 # 133c0
.long 0x7d0802a6 # 133c4
.long 0x48003019 # 133c8
.long 0x8221f710 # 133cc
.long 0xa211001a # 133d0
.long 0x7e088378 # 133d4
.long 0x48003385 # 133d8
.long 0x4800000d # 133dc
.long 0x73746174 # 133e0
.long 0x652d0000 # 133e4
.long 0x7d0802a6 # 133e8
.long 0x48002ff5 # 133ec
.long 0x8a110018 # 133f0
.long 0x7e088378 # 133f4
.long 0x48003365 # 133f8
.long 0x4800000d # 133fc
.long 0x7363722d # 13400
.long 0 # 13404
.long 0x7d0802a6 # 13408
.long 0x48002fd5 # 1340c
.long 0x82010658 # 13410
.long 0x82410674 # 13414
.long 0x821000dc # 13418
.long 0x7e109038 # 1341c
.long 0x7e088378 # 13420
.long 0x480032ed # 13424
.long 0x4800000d # 13428
.long 0x6d63722d # 1342c
.long 0 # 13430
.long 0x7d0802a6 # 13434
.long 0x48002fa9 # 13438
.long 0x8201fbc0 # 1343c
.long 0x7e088378 # 13440
.long 0x480032cd # 13444
.long 0x4800000d # 13448
.long 0x49504c2d # 1344c
.long 0 # 13450
.long 0x7d0802a6 # 13454
.long 0x48002f89 # 13458
.long 0x8201067c # 1345c
.long 0xa2100000 # 13460
.long 0x7e088378 # 13464
.long 0x480032cd # 13468
.long 0x4800000d # 1346c
.long 0x6553522d # 13470
.long 0 # 13474
.long 0x7d0802a6 # 13478
.long 0x48002f65 # 1347c
.long 0x82010658 # 13480
.long 0x821001cc # 13484
.long 0x72100007 # 13488
.long 0x7e088378 # 1348c
.long 0x480032cd # 13490
.long 0x48000009 # 13494
.long 0x5e6e0000 # 13498
.long 0x7d0802a6 # 1349c
.long 0x48002f41 # 134a0
.long 0x7e6102a6 # 134a4
.long 0x821e0038 # 134a8
.long 0x823e003c # 134ac
.long 0x82410f2c # 134b0
.long 0x56521838 # 134b4
.long 0x7e319014 # 134b8
.long 0x7e100194 # 134bc
.long 0x921e0038 # 134c0
.long 0x923e003c # 134c4
.long 0x7e6103a6 # 134c8
.long 0x7fc8f378 # 134cc
.long 0x48000145 # 134d0
.long 0x4bfffaf8 # 134d4
.long 0x8241fbc8 # 134d8
.long 0x82610f88 # 134dc
.long 0x7e729851 # 134e0
.long 0x4081005c # 134e4
.long 0x5673aafe # 134e8
.long 0x7e8102a6 # 134ec
.long 0x7e0d42e6 # 134f0
.long 0x7e2c42e6 # 134f4
.long 0x7e4d42e6 # 134f8
.long 0x7c109000 # 134fc
.long 0x3a400000 # 13500
.long 0x40a2ffec # 13504
.long 0x7e5c43a6 # 13508
.long 0x7e319814 # 1350c
.long 0x7e100194 # 13510
.long 0x7e1d43a6 # 13514
.long 0x7e3c43a6 # 13518
.long 0x8241fbc8 # 1351c
.long 0x5652aafe # 13520
.long 0x7e319014 # 13524
.long 0x7e100194 # 13528
.long 0x921e0038 # 1352c
.long 0x923e003c # 13530
.long 0x7e8103a6 # 13534
.long 0x7fc8f378 # 13538
.long 0x480000d9 # 1353c
.long 0x4bfffa8c # 13540
.long 0x8261fc94 # 13544
.long 0x7e8102a6 # 13548
.long 0x2c930000 # 1354c
.long 0x7e68fe70 # 13550
.long 0x41860068 # 13554
.long 0x7e0d42e6 # 13558
.long 0x7e2c42e6 # 1355c
.long 0x7e4d42e6 # 13560
.long 0x7c109000 # 13564
.long 0x3a400000 # 13568
.long 0x40a2ffec # 1356c
.long 0x7e5c43a6 # 13570
.long 0x7e719814 # 13574
.long 0x7e504114 # 13578
.long 0x7e5d43a6 # 1357c
.long 0x7e7c43a6 # 13580
.long 0x41850024 # 13584
.long 0x7e4d42e6 # 13588
.long 0x7e6c42e6 # 1358c
.long 0x7d0d42e6 # 13590
.long 0x7c124000 # 13594
.long 0x40a2fff0 # 13598
.long 0x7e719810 # 1359c
.long 0x7e509111 # 135a0
.long 0x4180ffe4 # 135a4
.long 0x8241fc98 # 135a8
.long 0x7e319014 # 135ac
.long 0x7e100194 # 135b0
.long 0x921e0038 # 135b4
.long 0x923e003c # 135b8
.long 0x7e8103a6 # 135bc
.long 0x4186fa0c # 135c0
.long 0x7fc8f378 # 135c4
.long 0x4800004d # 135c8
.long 0x4bfffa00 # 135cc
.long 0x7e6102a6 # 135d0
.long 0x821e0038 # 135d4
.long 0x823e003c # 135d8
.long 0x82410f2c # 135dc
.long 0x5652f87e # 135e0
.long 0x7e319014 # 135e4
.long 0x7e100194 # 135e8
.long 0x921e0038 # 135ec
.long 0x923e003c # 135f0
.long 0x7e6103a6 # 135f4
.long 0x7fc8f378 # 135f8
.long 0x48000019 # 135fc
.long 0x48003281 # 13600
.long 0x2c08ffff # 13604
.long 0x4182f9c4 # 13608
.long 0x48003cdd # 1360c
.long 0x4bfff9bc # 13610
major_0x130f0_0x524: /* < outside referer */
lwz r16, 0x0038( r8) # 13614
lwz r17, 0x003c( r8) # 13618
lwz r20, -0x0a7c( r1) # 1361c
lwz r18, 0x0038(r20) # 13620
lwz r19, 0x003c(r20) # 13624
cmpw r16, r18 # 13628
cmplw cr1, r17, r19 # 1362c
bgt- major_0x130f0_0x580 # 13630
blt- major_0x130f0_0x54c # 13634
bge- cr1, major_0x130f0_0x580 # 13638
major_0x130f0_0x54c:
addi r20, r1, -0xa84 # 1363c
li r18, 0x01 # 13640
stb r18, 0x0017( r8) # 13644
lwz r19, 0x0000( r8) # 13648
lwz r9, 0x0000(r20) # 1364c
stw r9, 0x0000( r8) # 13650
lwz r9, 0x0008(r20) # 13654
stw r9, 0x0008( r8) # 13658
stw r20, 0x000c( r8) # 1365c
stw r8, 0x000c( r9) # 13660
stw r8, 0x0008(r20) # 13664
stw r19, 0x0000( r8) # 13668
b major_0x13060 # 1366c
major_0x130f0_0x580:
lwz r20, -0x0a78( r1) # 13670
major_0x130f0_0x584:
lwz r18, 0x0038(r20) # 13674
lwz r19, 0x003c(r20) # 13678
cmpw r16, r18 # 1367c
cmplw cr1, r17, r19 # 13680
bgt- major_0x130f0_0x5a8 # 13684
blt- major_0x130f0_0x5a0 # 13688
bge- cr1, major_0x130f0_0x5a8 # 1368c
major_0x130f0_0x5a0:
lwz r20, 0x000c(r20) # 13690
b major_0x130f0_0x584 # 13694
major_0x130f0_0x5a8:
li r18, 0x01 # 13698
stb r18, 0x0017( r8) # 1369c
lwz r19, 0x0000( r8) # 136a0
lwz r9, 0x0000(r20) # 136a4
stw r9, 0x0000( r8) # 136a8
lwz r9, 0x0008(r20) # 136ac
stw r9, 0x0008( r8) # 136b0
stw r20, 0x000c( r8) # 136b4
stw r8, 0x000c( r9) # 136b8
stw r8, 0x0008(r20) # 136bc
stw r19, 0x0000( r8) # 136c0
blr # 136c4
major_0x130f0_0x5d8: /* < outside referer */
lwz r16, 0x0008( r8) # 136c8
cmpwi r16, 0x00 # 136cc
lwz r18, -0x0a7c( r1) # 136d0
beq+ panic_wrapper_0x12d40 # 136d4
lwz r16, 0x0008( r8) # 136d8
lwz r17, 0x000c( r8) # 136dc
stw r16, 0x0008(r17) # 136e0
stw r17, 0x000c(r16) # 136e4
li r16, 0x00 # 136e8
stw r16, 0x0008( r8) # 136ec
stw r16, 0x000c( r8) # 136f0
li r16, 0x00 # 136f4
cmpw r18, r8 # 136f8
stb r16, 0x0017( r8) # 136fc
beq+ major_0x13060 # 13700
blr # 13704
/***********************************************************
scale_timebase
************************************************************
Xrefs:
major_0x0c968
major_0x0cb8c
major_0x0ced4
major_0x0d504
major_0x0d8a0
init_rdyqs
************************************************************
> r1 = kdp
> r8 = multiple (pos: /250; neg: /250000)
< r8 = hi
< r9 = lo
***********************************************************/
scale_timebase: /* < outside referer */
mr. r17, r8 # 13708
li r19, 250 # 1370c
lwz r9, 0x0f2c( r1) # kdp.u32_timebase_freq # 13710
bgt+ scale_timebase_divisor_250 # 13714
blt+ scale_timebase_divisor_250000 # 13718
li r8, 0x00 # 1371c
li r9, 0x00 # 13720
blr # 13724
scale_timebase_divisor_250000:
neg r17, r17 # 13728
lis r19, 250000@h # 1372c
ori r19, r19, 250000@l # 13730
scale_timebase_divisor_250:
divw r19, r9, r19 # 13734
mullw r9, r19, r17 # 13738
mulhw r8, r19, r17 # 1373c
srwi r9, r9, 2 # 13740
rlwimi r9, r8, 30, 0, 1 # 13744
srwi r8, r8, 2 # 13748
blr # 1374c
/***********************************************************
bizarre
************************************************************
Xrefs:
NKSetClockStep
NKSetClockDriftCorrection
major_0x0c968
major_0x0cb8c
major_0x0ced4
major_0x0d504
major_0x0d70c
major_0x0d9a8
mktask
say_nanodebugger_activated
major_0x13060
major_0x142dc
major_0x14548
***********************************************************/
bizarre: /* < outside referer */
mfspr r8, 287/*pvr*/ # 13750
rlwinm. r8, r8, 0, 0, 14 # 13754
beq- bizarre_0x24 # 13758
bizarre_0xc:
mftbu r8 # 1375c
mftb r9, 0x10c # 13760
mftbu r16 # 13764
cmpw r8, r16 # 13768
bne+ bizarre_0xc # 1376c
b bizarre_0x60 # 13770
bizarre_0x24:
mfspr r8, 4/*rtcu*/ # 13774
mfspr r9, 5/*rtcl*/ # 13778
mfspr r16, 4/*rtcu*/ # 1377c
cmpw r8, r16 # 13780
bne+ bizarre_0x24 # 13784
lis r16, 0x3b9a # 13788
ori r16, r16, 0xca00 # 1378c
mfspr r17, 0/*mq*/ # 13790
.long 0x7d1040d6 # 13794
mfspr r16, 0/*mq*/ # 13798
mtspr 0/*mq*/, r17 # 1379c
mfxer r17 # 137a0
addc r9, r16, r9 # 137a4
addze r8, r8 # 137a8
mtxer r17 # 137ac
bizarre_0x60:
blr # 137b0
/***********************************************************
major_0x137b4
***********************************************************/
.long 0x4800000c # 137b4
.long 0x60000000 # 137b8
.long 0x60000000 # 137bc
/***********************************************************
panic_wrapper_0x137c0
************************************************************
Xrefs:
major_0x13e4c
major_0x13ed8
major_0x13f78
major_0x142dc
major_0x14548
major_0x149d4
***********************************************************/
panic_wrapper_0x137c0: /* < outside referer */
b panic # 137c0
/***********************************************************
init_rdyqs
************************************************************
Four queues, hardcoded. Not sure why. Each queue knows about 0.001042*tbfreq -- timeslicing quantum?
************************************************************
Xrefs:
setup
************************************************************
> r1 = kdp
***********************************************************/
init_rdyqs: /* < outside referer */
li r16, 0x00 # 137c4
stw r16, 0x0ecc( r1) # kdp.0xecc # 137c8
mflr r20 # 137cc
li r8, -0x412 # 137d0
# r1 = kdp
# r8 = multiple (pos: /250; neg: /250000)
bl scale_timebase # 137d4
# r8 = hi
# r9 = lo
mr r16, r8 # 137d8
mr r17, r9 # 137dc
mtlr r20 # 137e0
li r23, 0x00 # 137e4
stw r23, -0x0970( r1) # kdp.-0x970 # 137e8
addi r9, r1, -0x9f0 # kdp.-0x9f0 # 137ec
init_rdyqs_0x2c:
lis r8, 256 * 'R'+'D' # 137f0
ori r8, r8, 256 * 'Y'+'Q' # 137f4
stw r8, 0x0004( r9) # 137f8
stw r9, 0x0008( r9) # 137fc
stw r9, 0x000c( r9) # 13800
lis r8, -0x8000 # 13804
srw r8, r8, r23 # 13808
stw r8, 0x0000( r9) # 1380c
li r8, 0x00 # 13810
stw r8, 0x0010( r9) # 13814
stw r8, 0x0014( r9) # 13818
stw r16, 0x0018( r9) # 1381c
stw r17, 0x001c( r9) # 13820
mflr r20 # 13824
bl 1f # 13828
.ascii "Init ready queue " # 1382c
.short 0 # 1383d
.align 2 # 1383f
1: mflr r8 # 13840
bl print_string # 13844
mr r8, r23 # 13848
bl print_hexword_spc # 1384c
mr r8, r16 # 13850
bl print_hexword_spc # 13854
mr r8, r17 # 13858
bl print_hexword_spc # 1385c
bl 1f # 13860
.ascii "^n" # 13864
.short 0 # 13866
.align 2 # 13868
1: mflr r8 # 13868
bl print_string # 1386c
mtlr r20 # 13870
slwi r16, r16, 3 # 13874
rlwimi r16, r17, 3, 29, 31 # 13878
slwi r17, r17, 3 # 1387c
addi r23, r23, 0x01 # 13880
cmpwi r23, 0x04 # 13884
addi r9, r9, 0x20 # 13888
blt+ init_rdyqs_0x2c # 1388c
lwz r16, 0x0658( r1) # kdp.system_context # 13890
lwz r17, 0x00cc(r16) # 13894
andi. r9, r17, 0x0f # 13898
li r17, 0x02 # 1389c
bnelr- # 138a0
stw r17, 0x00cc(r16) # 138a4
blr # 138a8
/***********************************************************
save_registers_from_r14
************************************************************
Save r14-r31 to 0x174(r6), 8-byte spaced.
Looks very very optimised?
stmw not used because registers are spaced out?
************************************************************
Xrefs:
major_0x02ccc
major_0x03200
save_all_registers
reset_trap
major_0x04880
syscall
major_0x142a8
************************************************************
> r6 = ewa
< r8 = sprg0 (not used by me)
***********************************************************/
save_registers_from_r14: /* < outside referer */
li r8, 0x180 # 138ac
dcbtst r8, r6 # 138b0
stw r14, 0x0174( r6) # ewa.0x174 # 138b4
stw r15, 0x017c( r6) # ewa.0x17c # 138b8
li r8, 0x1a0 # 138bc
stw r16, 0x0184( r6) # ewa.0x184 # 138c0
dcbtst r8, r6 # 138c4
stw r17, 0x018c( r6) # ewa.0x18c # 138c8
stw r18, 0x0194( r6) # ewa.0x194 # 138cc
stw r19, 0x019c( r6) # ewa.0x19c # 138d0
/***********************************************************
save_registers_from_r20
************************************************************
Xrefs:
save_registers_from_r14
pdm_pih_01
pbx_pih_03
gazelle_pih_05
tnt_pih_02
gossamer_pih_07
unknown_pih_10
cordyceps_pih_04
newworld_pih_06
unknown_pih_08
************************************************************
> r6 = ewa
< r8 = sprg0 (not used by me)
***********************************************************/
save_registers_from_r20: /* < outside referer */
li r8, 0x1c0 # 138d4
stw r20, 0x01a4( r6) # ewa.0x1a4 # 138d8
dcbtst r8, r6 # 138dc
stw r21, 0x01ac( r6) # ewa.0x1ac # 138e0
stw r22, 0x01b4( r6) # ewa.0x1b4 # 138e4
stw r23, 0x01bc( r6) # ewa.0x1bc # 138e8
li r8, 480 # 138ec
stw r24, 0x01c4( r6) # ewa.0x1c4 # 138f0
dcbtst r8, r6 # 138f4
stw r25, 0x01cc( r6) # ewa.0x1cc # 138f8
stw r26, 0x01d4( r6) # ewa.0x1d4 # 138fc
stw r27, 0x01dc( r6) # ewa.0x1dc # 13900
stw r28, 0x01e4( r6) # ewa.0x1e4 # 13904
stw r29, 0x01ec( r6) # ewa.0x1ec # 13908
stw r30, 0x01f4( r6) # ewa.0x1f4 # 1390c
stw r31, 0x01fc( r6) # ewa.0x1fc # 13910
mfspr r8, 272/*sprg0*/ # 13914
blr # 13918
/***********************************************************
restore_registers_from_r14
************************************************************
Restore r14-r31 from 0x174(r6), 8-byte spaced.
Again, well optimised
************************************************************
Xrefs:
setup
major_0x02ccc
major_0x03200
major_0x04240
major_0x04300
non_skeleton_reset_trap
major_0x04880
syscall_return
major_0x142dc
interrupt_blue
************************************************************
> r6 = ewa
***********************************************************/
restore_registers_from_r14: /* < outside referer */
li r31, 0x180 # 1391c
dcbt r31, r6 # 13920
lwz r14, 0x0174( r6) # ewa.0x174 # 13924
lwz r15, 0x017c( r6) # ewa.0x17c # 13928
li r31, 0x1a0 # 1392c
lwz r16, 0x0184( r6) # ewa.0x184 # 13930
dcbt r31, r6 # 13934
lwz r17, 0x018c( r6) # ewa.0x18c # 13938
lwz r18, 0x0194( r6) # ewa.0x194 # 1393c
lwz r19, 0x019c( r6) # ewa.0x19c # 13940
restore_registers_from_r14_0x28: /* < outside referer */
li r31, 0x1c0 # 13944
lwz r20, 0x01a4( r6) # ewa.0x1a4 # 13948
dcbt r31, r6 # 1394c
lwz r21, 0x01ac( r6) # ewa.0x1ac # 13950
lwz r22, 0x01b4( r6) # ewa.0x1b4 # 13954
lwz r23, 0x01bc( r6) # ewa.0x1bc # 13958
li r31, 480 # 1395c
lwz r24, 0x01c4( r6) # ewa.0x1c4 # 13960
dcbt r31, r6 # 13964
lwz r25, 0x01cc( r6) # ewa.0x1cc # 13968
lwz r26, 0x01d4( r6) # ewa.0x1d4 # 1396c
lwz r27, 0x01dc( r6) # ewa.0x1dc # 13970
lwz r28, 0x01e4( r6) # ewa.0x1e4 # 13974
lwz r29, 0x01ec( r6) # ewa.0x1ec # 13978
lwz r30, 0x01f4( r6) # ewa.0x1f4 # 1397c
lwz r31, 0x01fc( r6) # ewa.0x1fc # 13980
blr # 13984
/***********************************************************
major_0x13988
************************************************************
Xrefs:
major_0x04180
major_0x14548
major_0x16bb4
***********************************************************/
major_0x13988: /* < outside referer */
mfmsr r8 # 13988
rlwinm r11, r11, 0, 19, 17 # 1398c
ori r8, r8, 0x2000 # 13990
mtmsr r8 # 13994
isync # 13998
li r8, 0x220 # 1399c
stfd f0, 0x0200( r6) # 139a0
dcbtst r8, r6 # 139a4
stfd f1, 0x0208( r6) # 139a8
stfd f2, 0x0210( r6) # 139ac
stfd f3, 0x0218( r6) # 139b0
li r8, 0x240 # 139b4
stfd f4, 0x0220( r6) # 139b8
dcbtst r8, r6 # 139bc
stfd f5, 0x0228( r6) # 139c0
stfd f6, 0x0230( r6) # 139c4
stfd f7, 0x0238( r6) # 139c8
li r8, 0x260 # 139cc
stfd f8, 0x0240( r6) # 139d0
dcbtst r8, r6 # 139d4
stfd f9, 0x0248( r6) # 139d8
stfd f10, 0x0250( r6) # 139dc
stfd f11, 0x0258( r6) # 139e0
li r8, 640 # 139e4
stfd f12, 0x0260( r6) # 139e8
dcbtst r8, r6 # 139ec
stfd f13, 0x0268( r6) # 139f0
stfd f14, 0x0270( r6) # 139f4
stfd f15, 0x0278( r6) # 139f8
li r8, 0x2a0 # 139fc
stfd f16, 0x0280( r6) # 13a00
dcbtst r8, r6 # 13a04
stfd f17, 0x0288( r6) # 13a08
stfd f18, 0x0290( r6) # 13a0c
stfd f19, 0x0298( r6) # 13a10
li r8, 0x2c0 # 13a14
stfd f20, 0x02a0( r6) # 13a18
dcbtst r8, r6 # 13a1c
stfd f21, 0x02a8( r6) # 13a20
stfd f22, 0x02b0( r6) # 13a24
stfd f23, 0x02b8( r6) # 13a28
li r8, 0x2e0 # 13a2c
stfd f24, 0x02c0( r6) # 13a30
dcbtst r8, r6 # 13a34
stfd f25, 0x02c8( r6) # 13a38
stfd f26, 0x02d0( r6) # 13a3c
stfd f27, 0x02d8( r6) # 13a40
mffs f0 # 13a44
stfd f28, 0x02e0( r6) # 13a48
stfd f29, 0x02e8( r6) # 13a4c
stfd f30, 0x02f0( r6) # 13a50
stfd f31, 0x02f8( r6) # 13a54
stfd f0, 0x00e0( r6) # 13a58
blr # 13a5c
major_0x13988_0xd8: /* < outside referer */
li r8, 0x200 # 13a60
mfspr r11, 256/*vrsave*/ # 13a64
lvxl v0, r8, r10 # 13a68
mtcr r11 # 13a6c
mtvscr v0 # 13a70
lwz r8, -0x0004( r1) # 13a74
li r9, -0x8e0 # 13a78
lvx v31, r8, r9 # 13a7c
vor v0, v31, v31 # 13a80
bge- major_0x13988_0x108 # 13a84
li r8, 0x00 # 13a88
lvx v0, r8, r10 # 13a8c
major_0x13988_0x108:
vor v1, v31, v31 # 13a90
ble- major_0x13988_0x118 # 13a94
li r9, 0x10 # 13a98
lvx v1, r9, r10 # 13a9c
major_0x13988_0x118:
vor v2, v31, v31 # 13aa0
bne- major_0x13988_0x128 # 13aa4
li r8, 0x20 # 13aa8
lvx v2, r8, r10 # 13aac
major_0x13988_0x128:
vor v3, v31, v31 # 13ab0
bns- major_0x13988_0x138 # 13ab4
li r9, 0x30 # 13ab8
lvx v3, r9, r10 # 13abc
major_0x13988_0x138:
vor v4, v31, v31 # 13ac0
bge- cr1, major_0x13988_0x148 # 13ac4
li r8, 0x40 # 13ac8
lvx v4, r8, r10 # 13acc
major_0x13988_0x148:
vor v5, v31, v31 # 13ad0
ble- cr1, major_0x13988_0x158 # 13ad4
li r9, 0x50 # 13ad8
lvx v5, r9, r10 # 13adc
major_0x13988_0x158:
vor v6, v31, v31 # 13ae0
bne- cr1, major_0x13988_0x168 # 13ae4
li r8, 0x60 # 13ae8
lvx v6, r8, r10 # 13aec
major_0x13988_0x168:
vor v7, v31, v31 # 13af0
bns- cr1, major_0x13988_0x178 # 13af4
li r9, 0x70 # 13af8
lvx v7, r9, r10 # 13afc
major_0x13988_0x178:
vor v8, v31, v31 # 13b00
bge- cr2, major_0x13988_0x188 # 13b04
li r8, 0x80 # 13b08
lvx v8, r8, r10 # 13b0c
major_0x13988_0x188:
vor v9, v31, v31 # 13b10
ble- cr2, major_0x13988_0x198 # 13b14
li r9, 0x90 # 13b18
lvx v9, r9, r10 # 13b1c
major_0x13988_0x198:
vor v10, v31, v31 # 13b20
bne- cr2, major_0x13988_0x1a8 # 13b24
li r8, 160 # 13b28
lvx v10, r8, r10 # 13b2c
major_0x13988_0x1a8:
vor v11, v31, v31 # 13b30
bns- cr2, major_0x13988_0x1b8 # 13b34
li r9, 0xb0 # 13b38
lvx v11, r9, r10 # 13b3c
major_0x13988_0x1b8:
vor v12, v31, v31 # 13b40
bge- cr3, major_0x13988_0x1c8 # 13b44
li r8, 0xc0 # 13b48
lvx v12, r8, r10 # 13b4c
major_0x13988_0x1c8:
vor v13, v31, v31 # 13b50
ble- cr3, major_0x13988_0x1d8 # 13b54
li r9, 0xd0 # 13b58
lvx v13, r9, r10 # 13b5c
major_0x13988_0x1d8:
vor v14, v31, v31 # 13b60
bne- cr3, major_0x13988_0x1e8 # 13b64
li r8, 0xe0 # 13b68
lvx v14, r8, r10 # 13b6c
major_0x13988_0x1e8:
vor v15, v31, v31 # 13b70
bns- cr3, major_0x13988_0x1f8 # 13b74
li r9, 240 # 13b78
lvx v15, r9, r10 # 13b7c
major_0x13988_0x1f8:
vor v16, v31, v31 # 13b80
bge- cr4, major_0x13988_0x208 # 13b84
li r8, 0x100 # 13b88
lvx v16, r8, r10 # 13b8c
major_0x13988_0x208:
vor v17, v31, v31 # 13b90
ble- cr4, major_0x13988_0x218 # 13b94
li r9, 0x110 # 13b98
lvx v17, r9, r10 # 13b9c
major_0x13988_0x218:
vor v18, v31, v31 # 13ba0
bne- cr4, major_0x13988_0x228 # 13ba4
li r8, 0x120 # 13ba8
lvx v18, r8, r10 # 13bac
major_0x13988_0x228:
vor v19, v31, v31 # 13bb0
bns- cr4, major_0x13988_0x238 # 13bb4
li r9, 0x130 # 13bb8
lvx v19, r9, r10 # 13bbc
major_0x13988_0x238:
vor v20, v31, v31 # 13bc0
bge- cr5, major_0x13988_0x248 # 13bc4
li r8, 320 # 13bc8
lvx v20, r8, r10 # 13bcc
major_0x13988_0x248:
vor v21, v31, v31 # 13bd0
ble- cr5, major_0x13988_0x258 # 13bd4
li r9, 0x150 # 13bd8
lvx v21, r9, r10 # 13bdc
major_0x13988_0x258:
vor v22, v31, v31 # 13be0
bne- cr5, major_0x13988_0x268 # 13be4
li r8, 0x160 # 13be8
lvx v22, r8, r10 # 13bec
major_0x13988_0x268:
vor v23, v31, v31 # 13bf0
bns- cr5, major_0x13988_0x278 # 13bf4
li r9, 0x170 # 13bf8
lvx v23, r9, r10 # 13bfc
major_0x13988_0x278:
vor v24, v31, v31 # 13c00
bge- cr6, major_0x13988_0x288 # 13c04
li r8, 0x180 # 13c08
lvx v24, r8, r10 # 13c0c
major_0x13988_0x288:
vor v25, v31, v31 # 13c10
ble- cr6, major_0x13988_0x298 # 13c14
li r9, 400 # 13c18
lvx v25, r9, r10 # 13c1c
major_0x13988_0x298:
vor v26, v31, v31 # 13c20
bne- cr6, major_0x13988_0x2a8 # 13c24
li r8, 0x1a0 # 13c28
lvx v26, r8, r10 # 13c2c
major_0x13988_0x2a8:
vor v27, v31, v31 # 13c30
bns- cr6, major_0x13988_0x2b8 # 13c34
li r9, 0x1b0 # 13c38
lvx v27, r9, r10 # 13c3c
major_0x13988_0x2b8:
vor v28, v31, v31 # 13c40
bge- cr7, major_0x13988_0x2c8 # 13c44
li r8, 0x1c0 # 13c48
lvx v28, r8, r10 # 13c4c
major_0x13988_0x2c8:
vor v29, v31, v31 # 13c50
ble- cr7, major_0x13988_0x2d8 # 13c54
li r9, 0x1d0 # 13c58
lvx v29, r9, r10 # 13c5c
major_0x13988_0x2d8:
vor v30, v31, v31 # 13c60
bne- cr7, major_0x13988_0x2e8 # 13c64
li r8, 480 # 13c68
lvx v30, r8, r10 # 13c6c
major_0x13988_0x2e8:
vor v31, v31, v31 # 13c70
bns- cr7, major_0x13988_0x2f8 # 13c74
li r9, 0x1f0 # 13c78
lvx v31, r9, r10 # 13c7c
major_0x13988_0x2f8:
blr # 13c80
/***********************************************************
major_0x13c84
***********************************************************/
.long 0x4800000c # 13c84
.long 0x60000000 # 13c88
.long 0x60000000 # 13c8c
/***********************************************************
major_0x13c90
************************************************************
Xrefs:
major_0x02980
major_0x0be10
major_0x14548
major_0x16bb4
***********************************************************/
major_0x13c90: /* < outside referer */
mfspr r5, 256/*vrsave*/ # 13c90
lwz r2, 0x00d8( r6) # 13c94
cmplwi r2, 0x00 # 13c98
beqlr- # 13c9c
andis. r3, r11, 0x200 # 13ca0
stw r5, 0x0210( r2) # 13ca4
beqlr- # 13ca8
mfmsr r3 # 13cac
rlwinm r11, r11, 0, 7, 5 # 13cb0
oris r3, r3, 0x200 # 13cb4
mtmsr r3 # 13cb8
isync # 13cbc
li r3, 0x00 # 13cc0
li r4, 0x10 # 13cc4
mtcr r5 # 13cc8
stvx v0, r3, r2 # 13ccc
stvxl v1, r4, r2 # 13cd0
mfvscr v0 # 13cd4
li r3, 0x200 # 13cd8
stvx v0, r3, r2 # 13cdc
bne- major_0x13c90_0x5c # 13ce0
li r3, 0x20 # 13ce4
stvx v2, r3, r2 # 13ce8
major_0x13c90_0x5c:
bns- major_0x13c90_0x68 # 13cec
li r4, 0x30 # 13cf0
stvx v3, r4, r2 # 13cf4
major_0x13c90_0x68:
bge- cr1, major_0x13c90_0x74 # 13cf8
li r3, 0x40 # 13cfc
stvx v4, r3, r2 # 13d00
major_0x13c90_0x74:
ble- cr1, major_0x13c90_0x80 # 13d04
li r4, 0x50 # 13d08
stvx v5, r4, r2 # 13d0c
major_0x13c90_0x80:
bne- cr1, major_0x13c90_0x8c # 13d10
li r3, 0x60 # 13d14
stvx v6, r3, r2 # 13d18
major_0x13c90_0x8c:
bns- cr1, major_0x13c90_0x98 # 13d1c
li r4, 0x70 # 13d20
stvx v7, r4, r2 # 13d24
major_0x13c90_0x98:
bge- cr2, major_0x13c90_0xa4 # 13d28
li r3, 0x80 # 13d2c
stvx v8, r3, r2 # 13d30
major_0x13c90_0xa4:
ble- cr2, major_0x13c90_0xb0 # 13d34
li r4, 0x90 # 13d38
stvx v9, r4, r2 # 13d3c
major_0x13c90_0xb0:
bne- cr2, major_0x13c90_0xbc # 13d40
li r3, 160 # 13d44
stvx v10, r3, r2 # 13d48
major_0x13c90_0xbc:
bns- cr2, major_0x13c90_0xc8 # 13d4c
li r4, 0xb0 # 13d50
stvx v11, r4, r2 # 13d54
major_0x13c90_0xc8:
bge- cr3, major_0x13c90_0xd4 # 13d58
li r3, 0xc0 # 13d5c
stvx v12, r3, r2 # 13d60
major_0x13c90_0xd4:
ble- cr3, major_0x13c90_0xe0 # 13d64
li r4, 0xd0 # 13d68
stvx v13, r4, r2 # 13d6c
major_0x13c90_0xe0:
bne- cr3, major_0x13c90_0xec # 13d70
li r3, 0xe0 # 13d74
stvx v14, r3, r2 # 13d78
major_0x13c90_0xec:
bns- cr3, major_0x13c90_0xf8 # 13d7c
li r4, 240 # 13d80
stvx v15, r4, r2 # 13d84
major_0x13c90_0xf8:
bge- cr4, major_0x13c90_0x104 # 13d88
li r3, 0x100 # 13d8c
stvx v16, r3, r2 # 13d90
major_0x13c90_0x104:
ble- cr4, major_0x13c90_0x110 # 13d94
li r4, 0x110 # 13d98
stvx v17, r4, r2 # 13d9c
major_0x13c90_0x110:
bne- cr4, major_0x13c90_0x11c # 13da0
li r3, 0x120 # 13da4
stvx v18, r3, r2 # 13da8
major_0x13c90_0x11c:
bns- cr4, major_0x13c90_0x128 # 13dac
li r4, 0x130 # 13db0
stvx v19, r4, r2 # 13db4
major_0x13c90_0x128:
bge- cr5, major_0x13c90_0x134 # 13db8
li r3, 320 # 13dbc
stvx v20, r3, r2 # 13dc0
major_0x13c90_0x134:
ble- cr5, major_0x13c90_0x140 # 13dc4
li r4, 0x150 # 13dc8
stvx v21, r4, r2 # 13dcc
major_0x13c90_0x140:
bne- cr5, major_0x13c90_0x14c # 13dd0
li r3, 0x160 # 13dd4
stvx v22, r3, r2 # 13dd8
major_0x13c90_0x14c:
bns- cr5, major_0x13c90_0x158 # 13ddc
li r4, 0x170 # 13de0
stvx v23, r4, r2 # 13de4
major_0x13c90_0x158:
bge- cr6, major_0x13c90_0x164 # 13de8
li r3, 0x180 # 13dec
stvx v24, r3, r2 # 13df0
major_0x13c90_0x164:
ble- cr6, major_0x13c90_0x170 # 13df4
li r4, 400 # 13df8
stvx v25, r4, r2 # 13dfc
major_0x13c90_0x170:
bne- cr6, major_0x13c90_0x17c # 13e00
li r3, 0x1a0 # 13e04
stvx v26, r3, r2 # 13e08
major_0x13c90_0x17c:
bns- cr6, major_0x13c90_0x188 # 13e0c
li r4, 0x1b0 # 13e10
stvx v27, r4, r2 # 13e14
major_0x13c90_0x188:
bge- cr7, major_0x13c90_0x194 # 13e18
li r3, 0x1c0 # 13e1c
stvx v28, r3, r2 # 13e20
major_0x13c90_0x194:
ble- cr7, major_0x13c90_0x1a0 # 13e24
li r4, 0x1d0 # 13e28
stvx v29, r4, r2 # 13e2c
major_0x13c90_0x1a0:
bne- cr7, major_0x13c90_0x1ac # 13e30
li r3, 480 # 13e34
stvx v30, r3, r2 # 13e38
major_0x13c90_0x1ac:
bns- cr7, major_0x13c90_0x1b8 # 13e3c
li r4, 0x1f0 # 13e40
stvx v31, r4, r2 # 13e44
major_0x13c90_0x1b8:
blr # 13e48
/***********************************************************
major_0x13e4c
************************************************************
Xrefs:
major_0x02ccc
major_0x0b4a4
nk_yield_with_hint
major_0x0b664
NKStopScheduling
major_0x0c968
major_0x0cb8c
major_0x0ced4
major_0x0d504
major_0x0e604
NKThrowException
major_0x0f2b8
major_0x130f0
major_0x142dc
major_0x14bcc
interrupt_blue
***********************************************************/
major_0x13e4c: /* < outside referer */
lwz r17, 0x0010( r8) # 13e4c
lbz r18, 0x0018( r8) # 13e50
addi r16, r8, 0x08 # 13e54
cmpwi cr1, r18, 0x00 # 13e58
cmpwi r17, 0x00 # 13e5c
beq+ cr1, panic_wrapper_0x137c0 # 13e60
beq- major_0x13e4c_0x74 # 13e64
lwz r17, 0x0008(r16) # 13e68
lwz r18, 0x000c(r16) # 13e6c
stw r17, 0x0008(r18) # 13e70
stw r18, 0x000c(r17) # 13e74
li r17, 0x00 # 13e78
stw r17, 0x0008(r16) # 13e7c
stw r17, 0x000c(r16) # 13e80
lwz r17, 0x0000(r16) # 13e84
lwz r16, 0x001c( r8) # 13e88
lwz r18, 0x0014(r17) # 13e8c
subf r18, r16, r18 # 13e90
stw r18, 0x0014(r17) # 13e94
lwz r18, 0x0010(r17) # 13e98
addi r18, r18, -0x01 # 13e9c
stw r18, 0x0010(r17) # 13ea0
cmpwi r18, 0x00 # 13ea4
lwz r16, -0x0970( r1) # 13ea8
blt+ panic_wrapper_0x137c0 # 13eac
bne- major_0x13e4c_0x74 # 13eb0
lwz r18, 0x0000(r17) # 13eb4
andc r16, r16, r18 # 13eb8
stw r16, -0x0970( r1) # 13ebc
major_0x13e4c_0x74:
li r16, 0x00 # 13ec0
stb r16, 0x0018( r8) # 13ec4
mfspr r17, 272/*sprg0*/ # 13ec8
li r16, 0x01 # 13ecc
stb r16, -0x0118(r17) # 13ed0
blr # 13ed4
/***********************************************************
major_0x13ed8
************************************************************
Xrefs:
setup
major_0x02ccc
major_0x0b4a4
nk_yield_with_hint
NKStopScheduling
major_0x0c680
major_0x0c8b4
major_0x0ccf4
major_0x0cd9c
major_0x0d06c
major_0x0d158
major_0x0d278
major_0x0d35c
major_0x0dce8
major_0x0e548
major_0x0ea58
major_0x0f2b8
major_0x130f0
major_0x142dc
major_0x14548
major_0x14bcc
interrupt_blue
***********************************************************/
major_0x13ed8: /* < outside referer */
crclr 4*cr1 + eq # 13ed8
b major_0x13ed8_0xc # 13edc
major_0x13ed8_0x8: /* < outside referer */
crset 4*cr1 + eq # 13ee0
major_0x13ed8_0xc:
lwz r16, 0x0010( r8) # 13ee4
lis r17, -0x8000 # 13ee8
cmpwi r16, 0x00 # 13eec
lbz r18, 0x0019( r8) # 13ef0
bne+ panic_wrapper_0x137c0 # 13ef4
lwz r16, -0x0970( r1) # 13ef8
srw r17, r17, r18 # 13efc
mulli r18, r18, 0x20 # 13f00
or r16, r16, r17 # 13f04
addi r17, r1, -0x9f0 # 13f08
stw r16, -0x0970( r1) # 13f0c
add r17, r17, r18 # 13f10
lwz r18, 0x0010(r17) # 13f14
addi r18, r18, 0x01 # 13f18
stw r18, 0x0010(r17) # 13f1c
lwz r16, 0x001c( r8) # 13f20
lwz r18, 0x0014(r17) # 13f24
add r18, r18, r16 # 13f28
stw r18, 0x0014(r17) # 13f2c
addi r16, r8, 0x08 # 13f30
bne- cr1, major_0x13ed8_0x7c # 13f34
stw r17, 0x0000(r16) # 13f38
stw r17, 0x0008(r16) # 13f3c
lwz r18, 0x000c(r17) # 13f40
stw r18, 0x000c(r16) # 13f44
stw r16, 0x0008(r18) # 13f48
stw r16, 0x000c(r17) # 13f4c
b major_0x13ed8_0x94 # 13f50
major_0x13ed8_0x7c:
stw r17, 0x0000(r16) # 13f54
stw r17, 0x000c(r16) # 13f58
lwz r18, 0x0008(r17) # 13f5c
stw r18, 0x0008(r16) # 13f60
stw r16, 0x000c(r18) # 13f64
stw r16, 0x0008(r17) # 13f68
major_0x13ed8_0x94:
li r16, 0x01 # 13f6c
stb r16, 0x0018( r8) # 13f70
blr # 13f74
/***********************************************************
major_0x13f78
************************************************************
Xrefs:
setup
SIGP
major_0x04a20
major_0x14548
major_0x14bcc
***********************************************************/
major_0x13f78: /* < outside referer */
lwz r17, 0x0ef8( r1) # 13f78
addi r17, r17, 0x01 # 13f7c
stw r17, 0x0ef8( r1) # 13f80
lwz r16, 0x0004( r8) # 13f84
lis r17, 0x5350 # 13f88
ori r17, r17, 0x4143 # 13f8c
cmpw r16, r17 # 13f90
bne+ panic_wrapper_0x137c0 # 13f94
rlwinm. r16, r7, 0, 12, 12 # 13f98
isync # 13f9c
lwz r16, 0x0030( r8) # 13fa0
lwz r17, 0x0034( r8) # 13fa4
mtsr 0x00, r16 # 13fa8
mtsr 0x01, r17 # 13fac
lwz r16, 0x0038( r8) # 13fb0
lwz r17, 0x003c( r8) # 13fb4
mtsr 0x02, r16 # 13fb8
mtsr 0x03, r17 # 13fbc
lwz r16, 0x0040( r8) # 13fc0
lwz r17, 0x0044( r8) # 13fc4
mtsr 0x04, r16 # 13fc8
mtsr 0x05, r17 # 13fcc
lwz r16, 0x0048( r8) # 13fd0
lwz r17, 0x004c( r8) # 13fd4
mtsr 0x06, r16 # 13fd8
mtsr 0x07, r17 # 13fdc
lwz r16, 0x0050( r8) # 13fe0
lwz r17, 0x0054( r8) # 13fe4
mtsr 0x08, r16 # 13fe8
mtsr 0x09, r17 # 13fec
lwz r16, 0x0058( r8) # 13ff0
lwz r17, 0x005c( r8) # 13ff4
mtsr 0x0a, r16 # 13ff8
mtsr 0x0b, r17 # 13ffc
lwz r16, 0x0060( r8) # 14000
lwz r17, 0x0064( r8) # 14004
mtsr 0x0c, r16 # 14008
mtsr 0x0d, r17 # 1400c
lwz r16, 0x0068( r8) # 14010
lwz r17, 0x006c( r8) # 14014
mtsr 0x0e, r16 # 14018
mtsr 0x0f, r17 # 1401c
beq- major_0x13f78_0xb0 # 14020
dssall # 14024
major_0x13f78_0xb0:
mfspr r16, 272/*sprg0*/ # 14028
isync # 1402c
stw r8, -0x001c(r16) # 14030
mfspr r16, 287/*pvr*/ # 14034
rlwinm. r16, r16, 0, 0, 14 # 14038
cmpwi cr1, r9, 0x00 # 1403c
beq- major_0x13f78_0x26c # 14040
lwz r16, 0x0080( r8) # 14044
lwz r17, 0x0080( r9) # 14048
cmplw r16, r17 # 1404c
lwz r17, 0x0084( r8) # 14050
beq- cr1, major_0x13f78_0xe4 # 14054
beq- major_0x13f78_0x100 # 14058
major_0x13f78_0xe4:
mtspr 536/*dbat0u*/, r0 # 1405c
mtspr 537/*dbat0l*/, r17 # 14060
rlwinm r17, r17, 0, 29, 27 # 14064
mtspr 536/*dbat0u*/, r16 # 14068
mtspr 528/*ibat0u*/, r0 # 1406c
mtspr 529/*ibat0l*/, r17 # 14070
mtspr 528/*ibat0u*/, r16 # 14074
major_0x13f78_0x100:
lwz r16, 0x0088( r8) # 14078
lwz r17, 0x0088( r9) # 1407c
cmplw r16, r17 # 14080
lwz r17, 0x008c( r8) # 14084
beq- cr1, major_0x13f78_0x118 # 14088
beq- major_0x13f78_0x134 # 1408c
major_0x13f78_0x118:
mtspr 538/*dbat1u*/, r0 # 14090
mtspr 539/*dbat1l*/, r17 # 14094
rlwinm r17, r17, 0, 29, 27 # 14098
mtspr 538/*dbat1u*/, r16 # 1409c
mtspr 530/*ibat1u*/, r0 # 140a0
mtspr 531/*ibat1l*/, r17 # 140a4
mtspr 530/*ibat1u*/, r16 # 140a8
major_0x13f78_0x134:
lwz r16, 0x0090( r8) # 140ac
lwz r17, 0x0090( r9) # 140b0
cmplw r16, r17 # 140b4
lwz r17, 0x0094( r8) # 140b8
beq- cr1, major_0x13f78_0x14c # 140bc
beq- major_0x13f78_0x168 # 140c0
major_0x13f78_0x14c:
mtspr 540/*dbat2u*/, r0 # 140c4
mtspr 541/*dbat2l*/, r17 # 140c8
rlwinm r17, r17, 0, 29, 27 # 140cc
mtspr 540/*dbat2u*/, r16 # 140d0
mtspr 532/*ibat2u*/, r0 # 140d4
mtspr 533/*ibat2l*/, r17 # 140d8
mtspr 532/*ibat2u*/, r16 # 140dc
major_0x13f78_0x168:
lwz r16, 0x0098( r8) # 140e0
lwz r17, 0x0098( r9) # 140e4
cmplw r16, r17 # 140e8
lwz r17, 0x009c( r8) # 140ec
beq- cr1, major_0x13f78_0x180 # 140f0
beq- major_0x13f78_0x19c # 140f4
major_0x13f78_0x180:
mtspr 542/*dbat3u*/, r0 # 140f8
mtspr 543/*dbat3l*/, r17 # 140fc
rlwinm r17, r17, 0, 29, 27 # 14100
mtspr 542/*dbat3u*/, r16 # 14104
mtspr 534/*ibat3u*/, r0 # 14108
mtspr 535/*ibat3l*/, r17 # 1410c
mtspr 534/*ibat3u*/, r16 # 14110
major_0x13f78_0x19c:
lwz r17, 0x0f68( r1) # 14114
lwz r16, 0x00a0( r8) # 14118
rlwinm. r17, r17, 0, 26, 26 # 1411c
lwz r17, 0x00a0( r9) # 14120
beq- major_0x13f78_0x268 # 14124
cmplw r16, r17 # 14128
lwz r17, 0x00a4( r8) # 1412c
beq- cr1, major_0x13f78_0x1c0 # 14130
beq- major_0x13f78_0x1d8 # 14134
major_0x13f78_0x1c0:
mtspr 0x238, r0 # 14138
mtspr 0x239, r17 # 1413c
mtspr 0x238, r16 # 14140
mtspr 0x230, r0 # 14144
mtspr 0x231, r17 # 14148
mtspr 0x230, r16 # 1414c
major_0x13f78_0x1d8:
lwz r16, 0x00a8( r8) # 14150
lwz r17, 0x00a8( r9) # 14154
cmplw r16, r17 # 14158
lwz r17, 0x00ac( r8) # 1415c
beq- cr1, major_0x13f78_0x1f0 # 14160
beq- major_0x13f78_0x208 # 14164
major_0x13f78_0x1f0:
mtspr 0x23a, r0 # 14168
mtspr 0x23b, r17 # 1416c
mtspr 0x23a, r16 # 14170
mtspr 0x232, r0 # 14174
mtspr 0x233, r17 # 14178
mtspr 0x232, r16 # 1417c
major_0x13f78_0x208:
lwz r16, 0x00b0( r8) # 14180
lwz r17, 0x00b0( r9) # 14184
cmplw r16, r17 # 14188
lwz r17, 0x00b4( r8) # 1418c
beq- cr1, major_0x13f78_0x220 # 14190
beq- major_0x13f78_0x238 # 14194
major_0x13f78_0x220:
mtspr 0x23c, r0 # 14198
mtspr 0x23d, r17 # 1419c
mtspr 0x23c, r16 # 141a0
mtspr 0x234, r0 # 141a4
mtspr 0x235, r17 # 141a8
mtspr 0x234, r16 # 141ac
major_0x13f78_0x238:
lwz r16, 0x00b8( r8) # 141b0
lwz r17, 0x00b8( r9) # 141b4
cmplw r16, r17 # 141b8
lwz r17, 0x00bc( r8) # 141bc
beq- cr1, major_0x13f78_0x250 # 141c0
beq- major_0x13f78_0x268 # 141c4
major_0x13f78_0x250:
mtspr 0x23e, r0 # 141c8
mtspr 0x23f, r17 # 141cc
mtspr 0x23e, r16 # 141d0
mtspr 0x236, r0 # 141d4
mtspr 0x237, r17 # 141d8
mtspr 0x236, r16 # 141dc
major_0x13f78_0x268:
blr # 141e0
major_0x13f78_0x26c:
lwz r16, 0x0080( r8) # 141e4
lwz r17, 0x0080( r9) # 141e8
cmplw r16, r17 # 141ec
lwz r17, 0x0084( r8) # 141f0
beq- cr1, major_0x13f78_0x284 # 141f4
beq- major_0x13f78_0x29c # 141f8
major_0x13f78_0x284:
rlwimi r16, r17, 0, 25, 31 # 141fc
mtspr 528/*ibat0u*/, r16 # 14200
lwz r16, 0x0080( r8) # 14204
rlwimi r17, r16, 30, 26, 31 # 14208
rlwimi r17, r16, 6, 25, 25 # 1420c
mtspr 529/*ibat0l*/, r17 # 14210
major_0x13f78_0x29c:
lwz r16, 0x0088( r8) # 14214
lwz r17, 0x0088( r9) # 14218
cmplw r16, r17 # 1421c
lwz r17, 0x008c( r8) # 14220
beq- cr1, major_0x13f78_0x2b4 # 14224
beq- major_0x13f78_0x2cc # 14228
major_0x13f78_0x2b4:
rlwimi r16, r17, 0, 25, 31 # 1422c
mtspr 530/*ibat1u*/, r16 # 14230
lwz r16, 0x0088( r8) # 14234
rlwimi r17, r16, 30, 26, 31 # 14238
rlwimi r17, r16, 6, 25, 25 # 1423c
mtspr 531/*ibat1l*/, r17 # 14240
major_0x13f78_0x2cc:
lwz r16, 0x0090( r8) # 14244
lwz r17, 0x0090( r9) # 14248
cmplw r16, r17 # 1424c
lwz r17, 0x0094( r8) # 14250
beq- cr1, major_0x13f78_0x2e4 # 14254
beq- major_0x13f78_0x2fc # 14258
major_0x13f78_0x2e4:
rlwimi r16, r17, 0, 25, 31 # 1425c
mtspr 532/*ibat2u*/, r16 # 14260
lwz r16, 0x0090( r8) # 14264
rlwimi r17, r16, 30, 26, 31 # 14268
rlwimi r17, r16, 6, 25, 25 # 1426c
mtspr 533/*ibat2l*/, r17 # 14270
major_0x13f78_0x2fc:
lwz r16, 0x0098( r8) # 14274
lwz r17, 0x0098( r9) # 14278
cmplw r16, r17 # 1427c
lwz r17, 0x009c( r8) # 14280
beq- cr1, major_0x13f78_0x314 # 14284
beqlr- # 14288
major_0x13f78_0x314:
rlwimi r16, r17, 0, 25, 31 # 1428c
mtspr 534/*ibat3u*/, r16 # 14290
lwz r16, 0x0098( r8) # 14294
rlwimi r17, r16, 30, 26, 31 # 14298
rlwimi r17, r16, 6, 25, 25 # 1429c
mtspr 535/*ibat3l*/, r17 # 142a0
blr # 142a4
/***********************************************************
major_0x142a8
************************************************************
Xrefs:
skeleton_key
***********************************************************/
major_0x142a8: /* < outside referer */
lbz r8, -0x0118( r1) # 142a8
rlwinm. r9, r7, 0, 16, 16 # 142ac
lwz r1, -0x0004( r1) # 142b0
cmpwi cr1, r8, 0x00 # 142b4
# sprg0 = for r1 and r6
# r1 = kdp
# r6 = register restore area
# r7 = flag to insert into XER
# r10 = new srr0 (return location)
# r11 = new srr1
# r12 = lr restore
# r13 = cr restore
bne- int_teardown # 142b8
# sprg0 = for r1 and r6
# r1 = kdp
# r6 = register restore area
# r7 = flag to insert into XER
# r10 = new srr0 (return location)
# r11 = new srr1
# r12 = lr restore
# r13 = cr restore
beq+ cr1, int_teardown # 142bc
# r6 = ewa
bl save_registers_from_r14 # 142c0
# r8 = sprg0 (not used by me)
mr r27, r8 # 142c4
mr r28, r9 # 142c8
addi r8, r1, -0xb50 # 142cc
# r8 = lock
bl lock # 142d0
mr r8, r27 # 142d4
mr r9, r28 # 142d8
/***********************************************************
major_0x142dc
************************************************************
Xrefs:
major_0x02ccc
syscall_return
major_0x142a8
major_0x14bcc
***********************************************************/
major_0x142dc: /* < outside referer */
mfspr r14, 272/*sprg0*/ # 142dc
li r8, 0x00 # 142e0
stb r8, -0x0118(r14) # 142e4
lwz r31, -0x0008(r14) # 142e8
lwz r1, -0x0004(r14) # 142ec
lwz r9, 0x0ee4( r1) # 142f0
addi r9, r9, 0x01 # 142f4
stw r9, 0x0ee4( r1) # 142f8
bl major_0x14a98 # 142fc
lbz r27, 0x0019(r31) # 14300
blt- major_0x142dc_0x58 # 14304
li r26, 0x01 # 14308
beq- major_0x142dc_0x38 # 1430c
li r26, 0x00 # 14310
major_0x142dc_0x38:
cmpw r27, r26 # 14314
mr r8, r31 # 14318
beq- major_0x142dc_0x58 # 1431c
bl major_0x13e4c # 14320
stb r26, 0x0019(r31) # 14324
mr r8, r31 # 14328
bl major_0x13ed8_0x8 # 1432c
bl major_0x149d4_0x8 # 14330
major_0x142dc_0x58:
lwz r27, -0x0970( r1) # 14334
major_0x142dc_0x5c:
mr r30, r31 # 14338
cmpwi r27, 0x00 # 1433c
cntlzw r26, r27 # 14340
beq- major_0x142dc_0x140 # 14344
addi r25, r1, -0x9f0 # 14348
mulli r26, r26, 0x20 # 1434c
add r26, r26, r25 # 14350
lwz r29, 0x0008(r26) # 14354
addi r30, r29, -0x08 # 14358
major_0x142dc_0x80:
lhz r28, -0x0116(r14) # 1435c
lwz r24, 0x0064(r30) # 14360
lhz r25, 0x001a(r30) # 14364
rlwinm. r8, r24, 0, 25, 26 # 14368
cmpw cr1, r25, r28 # 1436c
beq- major_0x142dc_0xb8 # 14370
beq- cr1, major_0x142dc_0xb8 # 14374
lwz r29, 0x0008(r29) # 14378
addi r30, r29, -0x08 # 1437c
cmpw r29, r26 # 14380
bne+ major_0x142dc_0x80 # 14384
lwz r25, 0x0000(r26) # 14388
andc r27, r27, r25 # 1438c
b major_0x142dc_0x5c # 14390
major_0x142dc_0xb8:
lbz r25, 0x0018(r31) # 14394
lbz r28, 0x0019(r30) # 14398
lbz r27, 0x0019(r31) # 1439c
cmpwi cr1, r25, 0x02 # 143a0
cmpw cr2, r28, r27 # 143a4
bne- cr1, major_0x142dc_0xd8 # 143a8
blt- cr2, major_0x142dc_0xd8 # 143ac
mr r30, r31 # 143b0
major_0x142dc_0xd8: /* < outside referer */
lwz r28, 0x0010(r30) # 143b4
addi r29, r30, 0x08 # 143b8
cmpwi r28, 0x00 # 143bc
lwz r26, 0x0008(r30) # 143c0
beq- major_0x142dc_0x140 # 143c4
lwz r28, 0x0008(r29) # 143c8
lwz r27, 0x000c(r29) # 143cc
stw r28, 0x0008(r27) # 143d0
stw r27, 0x000c(r28) # 143d4
li r28, 0x00 # 143d8
stw r28, 0x0008(r29) # 143dc
stw r28, 0x000c(r29) # 143e0
lwz r27, 0x001c(r30) # 143e4
lwz r28, 0x0014(r26) # 143e8
subf r28, r27, r28 # 143ec
stw r28, 0x0014(r26) # 143f0
lwz r28, 0x0010(r26) # 143f4
lwz r27, -0x0970( r1) # 143f8
addi r28, r28, -0x01 # 143fc
cmpwi r28, 0x00 # 14400
stw r28, 0x0010(r26) # 14404
bltl+ panic_wrapper_0x137c0 # 14408
bne- major_0x142dc_0x140 # 1440c
lwz r28, 0x0000(r26) # 14410
andc r27, r27, r28 # 14414
stw r27, -0x0970( r1) # 14418
major_0x142dc_0x140:
lwz r25, 0x0064(r30) # 1441c
li r26, 0x00 # 14420
rlwinm. r8, r25, 0, 21, 22 # 14424
andc r27, r25, r8 # 14428
beq+ major_0x142dc_0x184 # 1442c
ori r27, r27, 0x200 # 14430
stb r26, 0x0018(r30) # 14434
stw r27, 0x0064(r30) # 14438
addi r25, r1, -0xa34 # 1443c
addi r26, r30, 0x08 # 14440
stw r25, 0x0000(r26) # 14444
stw r25, 0x0008(r26) # 14448
lwz r27, 0x000c(r25) # 1444c
stw r27, 0x000c(r26) # 14450
stw r26, 0x0008(r27) # 14454
stw r26, 0x000c(r25) # 14458
b major_0x142dc_0x58 # 1445c
major_0x142dc_0x184:
cmpw cr3, r30, r31 # 14460
rlwinm. r8, r25, 0, 27, 27 # 14464
bne- cr3, major_0x14548 # 14468
bne- major_0x14548 # 1446c
bl bizarre # 14470
bl major_0x148ec # 14474
lwz r27, 0x0064(r31) # 14478
mfspr r14, 272/*sprg0*/ # 1447c
rlwinm. r8, r27, 0, 8, 8 # 14480
rlwimi r11, r27, 24, 29, 29 # 14484
beq+ major_0x142dc_0x1bc # 14488
lwz r10, 0x00fc( r6) # 1448c
rlwinm r27, r27, 0, 9, 7 # 14490
stw r27, 0x0064(r31) # 14494
major_0x142dc_0x1bc:
li r27, 0x02 # 14498
lbz r28, 0x0019(r31) # 1449c
stb r27, 0x0018(r31) # 144a0
stb r28, -0x0117(r14) # 144a4
sync # 144a8
lwz r27, -0x0b50( r1) # 144ac
cmpwi cr1, r27, 0x00 # 144b0
li r27, 0x00 # 144b4
bne+ cr1, major_0x142dc_0x1e8 # 144b8
mflr r27 # 144bc
bl panic # 144c0
major_0x142dc_0x1e8:
stw r27, -0x0b50( r1) # 144c4
# r6 = ewa
bl restore_registers_from_r14 # 144c8
/***********************************************************
int_teardown
************************************************************
All syscalls get here?
r0,7,8,9,10,11,12,13 restored from r6 area
r1,6 restored from sprg0 area
Apple used the "reserved" (not first three) bits of XER.
If bit 27 of 0xedc(r1) is set:
Bit 22 of XER is cleared
Bit 10 of r7 is inserted into XER at bit 23
************************************************************
Xrefs:
non_skeleton_reset_trap
major_0x142a8
major_0x142dc
major_0x14548
************************************************************
> sprg0 = for r1 and r6
> r1 = kdp
> r6 = register restore area
> r7 = flag to insert into XER
> r10 = new srr0 (return location)
> r11 = new srr1
> r12 = lr restore
> r13 = cr restore
***********************************************************/
int_teardown: /* < outside referer */
lwz r8, 0x0edc( r1) # kdp.0xedc # 144cc
mfspr r1, 272/*sprg0*/ # 144d0
mtlr r12 # 144d4
mtspr 26/*srr0*/, r10 # 144d8
mtspr 27/*srr1*/, r11 # 144dc
rlwinm. r8, r8, 0, 27, 27 # 144e0
beq- int_teardown_0x2c # 144e4
mfxer r8 # 144e8
rlwinm r8, r8, 0, 23, 21 # 144ec
rlwimi r8, r7, 19, 23, 23 # 144f0
mtxer r8 # 144f4
int_teardown_0x2c:
mtcr r13 # 144f8
lwz r10, 0x0154( r6) # 144fc
lwz r11, 0x015c( r6) # 14500
lwz r12, 0x0164( r6) # 14504
lwz r13, 0x016c( r6) # 14508
lwz r7, 0x013c( r6) # 1450c
lwz r8, 0x0144( r6) # 14510
lwz r9, 0x014c( r6) # 14514
lwz r0, 0x0104( r6) # 14518
lwz r6, 0x0018( r1) # kdp.0x18 # 1451c
lwz r1, 0x0004( r1) # kdp.0x4 # 14520
rfi # 14524
.long 0 # 14528
.long 0 # 1452c
.long 0 # 14530
.long 0 # 14534
.long 0 # 14538
.long 0 # 1453c
.long 0 # 14540
.long 0 # 14544
/***********************************************************
major_0x14548
************************************************************
Xrefs:
major_0x142dc
***********************************************************/
major_0x14548: /* < outside referer */
lwz r16, 0x0064(r31) # 14548
stw r30, -0x0260(r14) # 1454c
rlwinm r16, r16, 0, 27, 25 # 14550
stw r6, 0x0088(r31) # 14554
mfspr r8, 275/*sprg3*/ # 14558
stw r16, 0x0064(r31) # 1455c
stw r8, 0x00f0(r31) # 14560
lwz r8, -0x000c(r14) # 14564
stw r7, 0x0000( r6) # 14568
stw r8, 0x0004( r6) # 1456c
mfxer r8 # 14570
stw r13, 0x00dc( r6) # 14574
stw r8, 0x00d4( r6) # 14578
stw r12, 0x00ec( r6) # 1457c
mfctr r8 # 14580
stw r10, 0x00fc( r6) # 14584
stw r8, 0x00f4( r6) # 14588
mfspr r8, 287/*pvr*/ # 1458c
rlwinm. r8, r8, 0, 0, 14 # 14590
bne- major_0x14548_0x58 # 14594
mfspr r8, 0/*mq*/ # 14598
stw r8, 0x00c4( r6) # 1459c
major_0x14548_0x58:
lwz r8, 0x0004(r14) # 145a0
stw r8, 0x010c( r6) # 145a4
stw r2, 0x0114( r6) # 145a8
stw r3, 0x011c( r6) # 145ac
andi. r8, r11, 0x2000 # 145b0
stw r4, 0x0124( r6) # 145b4
lwz r8, 0x0018(r14) # 145b8
stw r5, 0x012c( r6) # 145bc
stw r8, 0x0134( r6) # 145c0
bnel+ major_0x13988 # 145c4
lwz r31, -0x0008(r14) # 145c8
lwz r30, -0x0260(r14) # 145cc
rlwinm. r8, r7, 0, 12, 12 # 145d0
bnel+ major_0x13c90 # 145d4
stw r11, 0x00a4( r6) # 145d8
lwz r8, 0x00e8(r31) # 145dc
addi r8, r8, 0x01 # 145e0
stw r8, 0x00e8(r31) # 145e4
bl bizarre # 145e8
bl major_0x148ec # 145ec
mfspr r14, 272/*sprg0*/ # 145f0
li r27, 0x02 # 145f4
lbz r28, 0x0019(r30) # 145f8
stb r27, 0x0018(r30) # 145fc
stb r28, -0x0117(r14) # 14600
cmplw r30, r31 # 14604
lwz r16, 0x0010(r31) # 14608
beq- major_0x14548_0xd4 # 1460c
cmpwi r16, 0x00 # 14610
mr r8, r31 # 14614
beql+ major_0x13ed8_0x8 # 14618
major_0x14548_0xd4:
mfspr r19, 272/*sprg0*/ # 1461c
li r8, 0x00 # 14620
stb r8, -0x0118(r19) # 14624
lhz r8, -0x0116(r19) # 14628
lwz r6, 0x0088(r30) # 1462c
lwz r28, -0x0340(r19) # 14630
sth r8, 0x001a(r30) # 14634
stw r28, 0x0078(r30) # 14638
stw r30, -0x0008(r19) # 1463c
stw r6, -0x0014(r19) # 14640
lwz r7, 0x0000( r6) # 14644
lwz r28, 0x0004( r6) # 14648
stw r7, -0x0010(r19) # 1464c
stw r28, -0x000c(r19) # 14650
lwz r27, 0x0064(r30) # 14654
lwz r13, 0x00dc( r6) # 14658
ori r27, r27, 0x20 # 1465c
lwz r11, 0x00a4( r6) # 14660
lwz r8, 0x00f0(r30) # 14664
rlwimi r11, r27, 24, 29, 29 # 14668
rlwinm r27, r27, 0, 9, 7 # 1466c
mtspr 275/*sprg3*/, r8 # 14670
stw r27, 0x0064(r30) # 14674
lwz r18, 0x0070(r30) # 14678
lwz r9, -0x001c(r19) # 1467c
cmpw r18, r9 # 14680
beq- major_0x14548_0x148 # 14684
mr r8, r18 # 14688
bl major_0x13f78 # 1468c
major_0x14548_0x148:
mfspr r19, 272/*sprg0*/ # 14690
mtcr r7 # 14694
lis r28, 0x00 # 14698
ori r28, r28, 0x10 # 1469c
bne- cr2, major_0x14548_0x20c # 146a0
and. r28, r28, r27 # 146a4
li r8, 0x00 # 146a8
beq- major_0x14548_0x20c # 146ac
andc r27, r27, r28 # 146b0
lwz r29, -0x0440( r1) # 146b4
stw r27, 0x0064(r30) # 146b8
stw r8, -0x0440( r1) # 146bc
blt- cr2, major_0x14548_0x1cc # 146c0
bsol+ cr6, panic_wrapper_0x137c0 # 146c4
clrlwi r8, r7, 0x08 # 146c8
stw r8, 0x0000( r6) # 146cc
lwz r6, 0x0658( r1) # 146d0
addi r26, r1, 0x360 # 146d4
mtspr 275/*sprg3*/, r26 # 146d8
stw r26, 0x00f0(r30) # 146dc
stw r6, -0x0014(r19) # 146e0
stw r6, 0x0088(r30) # 146e4
lwz r7, 0x0000( r6) # 146e8
lwz r26, 0x0004( r6) # 146ec
mtcr r7 # 146f0
stw r26, -0x000c(r19) # 146f4
lwz r13, 0x00dc( r6) # 146f8
lwz r11, 0x00a4( r6) # 146fc
bsol+ cr6, panic_wrapper_0x137c0 # 14700
rlwimi r11, r7, 0, 20, 23 # 14704
rlwimi r7, r8, 0, 9, 16 # 14708
rlwimi r11, r27, 24, 29, 29 # 1470c
stw r7, -0x0010(r19) # 14710
major_0x14548_0x1cc:
lwz r17, 0x00cc( r6) # 14714
ori r17, r17, 0x100 # 14718
stw r17, 0x00cc( r6) # 1471c
lhz r17, -0x043c( r1) # 14720
lwz r18, 0x067c( r1) # 14724
cmplwi r17, 0xffff # 14728
lwz r26, 0x0674( r1) # 1472c
beq- major_0x14548_0x1f8 # 14730
sth r17, 0x0000(r18) # 14734
li r17, -0x01 # 14738
sth r17, -0x043c( r1) # 1473c
major_0x14548_0x1f8:
cmpwi r29, 0x00 # 14740
or r13, r13, r29 # 14744
bne- major_0x14548_0x20c # 14748
lwz r29, 0x0678( r1) # 1474c
and r13, r13, r29 # 14750
major_0x14548_0x20c:
lwz r29, 0x00d8( r6) # 14754
cmpwi r29, 0x00 # 14758
lwz r8, 0x0210(r29) # 1475c
beq- major_0x14548_0x220 # 14760
mtspr 256/*vrsave*/, r8 # 14764
major_0x14548_0x220:
lwz r8, 0x00d4( r6) # 14768
lwz r12, 0x00ec( r6) # 1476c
mtxer r8 # 14770
lwz r8, 0x00f4( r6) # 14774
lwz r10, 0x00fc( r6) # 14778
mtctr r8 # 1477c
mfspr r8, 287/*pvr*/ # 14780
rlwinm. r8, r8, 0, 0, 14 # 14784
bne- major_0x14548_0x24c # 14788
lwz r8, 0x00c4( r6) # 1478c
mtspr 0/*mq*/, r8 # 14790
major_0x14548_0x24c:
li r9, 0x124 # 14794
lwz r8, 0x010c( r6) # 14798
dcbt r9, r6 # 1479c
lwz r2, 0x0114( r6) # 147a0
stw r8, 0x0004(r19) # 147a4
lwz r3, 0x011c( r6) # 147a8
li r9, 0x184 # 147ac
lwz r4, 0x0124( r6) # 147b0
dcbt r9, r6 # 147b4
lwz r8, 0x0134( r6) # 147b8
lwz r5, 0x012c( r6) # 147bc
stw r8, 0x0018(r19) # 147c0
lwz r14, 0x0174( r6) # 147c4
lwz r15, 0x017c( r6) # 147c8
li r9, 420 # 147cc
lwz r16, 0x0184( r6) # 147d0
dcbt r9, r6 # 147d4
lwz r17, 0x018c( r6) # 147d8
lwz r18, 0x0194( r6) # 147dc
lwz r19, 0x019c( r6) # 147e0
li r9, 0x1c4 # 147e4
lwz r20, 0x01a4( r6) # 147e8
dcbt r9, r6 # 147ec
lwz r21, 0x01ac( r6) # 147f0
lwz r22, 0x01b4( r6) # 147f4
lwz r23, 0x01bc( r6) # 147f8
li r9, 0x1e4 # 147fc
lwz r24, 0x01c4( r6) # 14800
dcbt r9, r6 # 14804
lwz r25, 0x01cc( r6) # 14808
lwz r26, 0x01d4( r6) # 1480c
lwz r27, 0x01dc( r6) # 14810
andi. r8, r11, 0x2900 # 14814
lwz r28, 0x01e4( r6) # 14818
lwz r29, 0x01ec( r6) # 1481c
lwz r30, 0x01f4( r6) # 14820
lwz r31, 0x01fc( r6) # 14824
beq- major_0x14548_0x380 # 14828
mfmsr r8 # 1482c
ori r8, r8, 0x2000 # 14830
ori r11, r11, 0x2000 # 14834
mtmsr r8 # 14838
isync # 1483c
lfd f31, 0x00e0( r6) # 14840
lfd f0, 0x0200( r6) # 14844
lfd f1, 0x0208( r6) # 14848
lfd f2, 0x0210( r6) # 1484c
lfd f3, 0x0218( r6) # 14850
lfd f4, 0x0220( r6) # 14854
lfd f5, 0x0228( r6) # 14858
lfd f6, 0x0230( r6) # 1485c
lfd f7, 0x0238( r6) # 14860
mtfsf 0xff, f31 # 14864
lfd f8, 0x0240( r6) # 14868
lfd f9, 0x0248( r6) # 1486c
lfd f10, 0x0250( r6) # 14870
lfd f11, 0x0258( r6) # 14874
lfd f12, 0x0260( r6) # 14878
lfd f13, 0x0268( r6) # 1487c
lfd f14, 0x0270( r6) # 14880
lfd f15, 0x0278( r6) # 14884
lfd f16, 0x0280( r6) # 14888
lfd f17, 0x0288( r6) # 1488c
lfd f18, 0x0290( r6) # 14890
lfd f19, 0x0298( r6) # 14894
lfd f20, 0x02a0( r6) # 14898
lfd f21, 0x02a8( r6) # 1489c
lfd f22, 0x02b0( r6) # 148a0
lfd f23, 0x02b8( r6) # 148a4
lfd f24, 0x02c0( r6) # 148a8
lfd f25, 0x02c8( r6) # 148ac
lfd f26, 0x02d0( r6) # 148b0
lfd f27, 0x02d8( r6) # 148b4
lfd f28, 0x02e0( r6) # 148b8
lfd f29, 0x02e8( r6) # 148bc
lfd f30, 0x02f0( r6) # 148c0
lfd f31, 0x02f8( r6) # 148c4
major_0x14548_0x380:
sync # 148c8
lwz r8, -0x0b50( r1) # 148cc
cmpwi cr1, r8, 0x00 # 148d0
li r8, 0x00 # 148d4
bne+ cr1, major_0x14548_0x39c # 148d8
mflr r8 # 148dc
bl panic # 148e0
major_0x14548_0x39c:
stw r8, -0x0b50( r1) # 148e4
# sprg0 = for r1 and r6
# r1 = kdp
# r6 = register restore area
# r7 = flag to insert into XER
# r10 = new srr0 (return location)
# r11 = new srr1
# r12 = lr restore
# r13 = cr restore
b int_teardown # 148e8
/***********************************************************
major_0x148ec
************************************************************
Xrefs:
major_0x142dc
major_0x14548
***********************************************************/
major_0x148ec: /* < outside referer */
mfxer r20 # 148ec
mfspr r21, 272/*sprg0*/ # 148f0
lwz r19, 0x00cc(r31) # 148f4
lwz r18, 0x00c8(r31) # 148f8
subfc r19, r19, r9 # 148fc
subfe r18, r18, r8 # 14900
lwz r17, 0x00c4(r31) # 14904
lwz r16, 0x00c0(r31) # 14908
addc r17, r17, r19 # 1490c
adde r16, r16, r18 # 14910
stw r17, 0x00c4(r31) # 14914
stw r16, 0x00c0(r31) # 14918
lwz r17, 0x00dc(r31) # 1491c
lwz r16, 0x00d8(r31) # 14920
andi. r22, r17, 0x01 # 14924
bne- major_0x148ec_0x58 # 14928
subfc r17, r19, r17 # 1492c
subfe. r16, r18, r16 # 14930
bge- major_0x148ec_0x54 # 14934
li r16, 0x00 # 14938
li r17, 0x00 # 1493c
major_0x148ec_0x54:
stw r16, 0x00d8(r31) # 14940
major_0x148ec_0x58:
rlwinm r17, r17, 0, 0, 30 # 14944
stw r17, 0x00dc(r31) # 14948
lwz r17, 0x00fc(r31) # 1494c
andi. r22, r17, 0x01 # 14950
bne- major_0x148ec_0x78 # 14954
subf. r17, r19, r17 # 14958
bge- major_0x148ec_0x78 # 1495c
li r17, 0x00 # 14960
major_0x148ec_0x78:
rlwinm r17, r17, 0, 0, 30 # 14964
stw r17, 0x00fc(r31) # 14968
stw r8, 0x00c8(r30) # 1496c
stw r9, 0x00cc(r30) # 14970
lwz r18, 0x0008(r30) # 14974
lbz r19, 0x0019(r30) # 14978
lwz r18, 0x0010(r18) # 1497c
cmpwi cr1, r19, 0x02 # 14980
cmpwi r18, 0x00 # 14984
bge- cr1, major_0x148ec_0xb0 # 14988
lwz r16, 0x00fc(r30) # 1498c
lwz r17, 0x00fc(r30) # 14990
srawi r16, r16, 31 # 14994
b major_0x148ec_0xc8 # 14998
major_0x148ec_0xb0:
lwz r16, 0x00d8(r30) # 1499c
lwz r17, 0x00dc(r30) # 149a0
bgt- major_0x148ec_0xc8 # 149a4
bne- cr1, major_0x148ec_0xc8 # 149a8
li r16, 0x00 # 149ac
lwz r17, 0x0f2c( r1) # 149b0
major_0x148ec_0xc8:
addc r17, r17, r9 # 149b4
adde r16, r16, r8 # 149b8
stw r17, -0x02e4(r21) # 149bc
stw r16, -0x02e8(r21) # 149c0
mtxer r20 # 149c4
li r16, 0x01 # 149c8
stb r16, -0x0309(r21) # 149cc
b major_0x13060_0xc # 149d0
/***********************************************************
major_0x149d4
************************************************************
Xrefs:
setup
NKStopScheduling
major_0x0c8b4
major_0x0ccf4
major_0x0d06c
major_0x0d35c
major_0x0e548
major_0x130f0
major_0x142dc
major_0x14bcc
interrupt_blue
***********************************************************/
major_0x149d4: /* < outside referer */
crset 4*cr1 + eq # 149d4
b major_0x149d4_0xc # 149d8
major_0x149d4_0x8: /* < outside referer */
crclr 4*cr1 + eq # 149dc
major_0x149d4_0xc:
lwz r18, 0x0010( r8) # 149e0
lwz r16, 0x0008( r8) # 149e4
cmpwi r18, 0x00 # 149e8
lwz r17, 0x001c( r8) # 149ec
beq+ panic_wrapper_0x137c0 # 149f0
lwz r18, 0x0014(r16) # 149f4
lwz r19, 0x0018(r16) # 149f8
lwz r20, 0x001c(r16) # 149fc
cmpw r18, r17 # 14a00
rlwinm r17, r17, 10, 0, 22 # 14a04
beq- major_0x149d4_0x5c # 14a08
divw. r18, r17, r18 # 14a0c
ble- major_0x149d4_0x50 # 14a10
mulhw r17, r20, r18 # 14a14
mullw r19, r19, r18 # 14a18
mullw r20, r20, r18 # 14a1c
add r19, r19, r17 # 14a20
major_0x149d4_0x50:
srwi r20, r20, 10 # 14a24
rlwimi r20, r19, 22, 0, 9 # 14a28
srwi r19, r19, 10 # 14a2c
major_0x149d4_0x5c:
lbz r18, 0x0019( r8) # 14a30
cmpwi r18, 0x02 # 14a34
ori r20, r20, 0x01 # 14a38
bge- major_0x149d4_0x74 # 14a3c
stw r20, 0x00fc( r8) # 14a40
blr # 14a44
major_0x149d4_0x74:
lwz r16, 0x00d8( r8) # 14a48
lwz r17, 0x00dc( r8) # 14a4c
beq- cr1, major_0x149d4_0x94 # 14a50
cmpwi r16, 0x00 # 14a54
cmplwi cr2, r17, 0x00 # 14a58
blt- major_0x149d4_0x94 # 14a5c
bgtlr- # 14a60
bgtlr- cr2 # 14a64
major_0x149d4_0x94:
mfxer r18 # 14a68
addc r20, r20, r17 # 14a6c
adde r19, r19, r16 # 14a70
mtxer r18 # 14a74
rlwinm r20, r20, 0, 0, 30 # 14a78
li r18, 0x01 # 14a7c
stw r19, 0x00d8( r8) # 14a80
stw r20, 0x00dc( r8) # 14a84
stw r18, 0x00fc( r8) # 14a88
blr # 14a8c
/***********************************************************
clear_cr0_lt
************************************************************
Xrefs:
major_0x130f0
***********************************************************/
clear_cr0_lt: /* < outside referer */
crclr 4*cr0 + lt # 14a90
blr # 14a94
/***********************************************************
major_0x14a98
************************************************************
Xrefs:
major_0x03200
major_0x142dc
***********************************************************/
major_0x14a98: /* < outside referer */
rlwinm r8, r7, 10, 0, 0 # 14a98
lwz r18, 0x0658( r1) # 14a9c
nand. r8, r8, r8 # 14aa0
lwz r17, 0x00cc(r18) # 14aa4
bltlr- # 14aa8
cmpwi r17, 0x00 # 14aac
rlwinm r9, r17, 0, 22, 22 # 14ab0
blt- major_0x14a98_0x54 # 14ab4
cmpwi r9, 0x200 # 14ab8
lwz r16, 0x01cc(r18) # 14abc
beq- major_0x14a98_0x48 # 14ac0
clrlwi r8, r16, 0x1d # 14ac4
clrlwi r9, r17, 0x1c # 14ac8
cmpwi r8, 0x06 # 14acc
bgt- major_0x14a98_0x48 # 14ad0
cmpw r8, r9 # 14ad4
bltlr- # 14ad8
cmpw r8, r8 # 14adc
major_0x14a98_0x48:
ori r17, r17, 0x100 # 14ae0
stw r17, 0x00cc(r18) # 14ae4
blr # 14ae8
major_0x14a98_0x54:
clrlwi r17, r17, 0x01 # 14aec
stw r17, 0x00cc(r18) # 14af0
blr # 14af4
/***********************************************************
major_0x14af8
************************************************************
Xrefs:
setup
major_0x02ccc
major_0x0b4a4
nk_yield_with_hint
NKStopScheduling
NKMarkPMFTask
major_0x0c680
major_0x0c8b4
major_0x0ccf4
major_0x0cd9c
major_0x0d06c
major_0x0d158
major_0x0d278
major_0x0d35c
major_0x0dce8
major_0x0e548
major_0x0e604
major_0x0e894
NKThrowException
major_0x0ea58
major_0x0f2b8
major_0x130f0
interrupt_blue
***********************************************************/
major_0x14af8: /* < outside referer */
lwz r16, 0x0064( r8) # 14af8
mfspr r15, 272/*sprg0*/ # 14afc
rlwinm. r16, r16, 0, 25, 26 # 14b00
bne- major_0x14af8_0xa0 # 14b04
addi r16, r15, -0x340 # 14b08
lbz r17, 0x0019( r8) # 14b0c
lwz r19, 0x0008(r16) # 14b10
lwz r14, 0x0024(r19) # 14b14
cmpwi r14, 0x02 # 14b18
blt- major_0x14af8_0xa0 # 14b1c
lwz r14, 0x0020(r19) # 14b20
mr r18, r16 # 14b24
b major_0x14af8_0x3c # 14b28
major_0x14af8_0x34:
lwz r16, 0x0008(r19) # 14b2c
major_0x14af8_0x38:
addi r16, r16, -0x08 # 14b30
major_0x14af8_0x3c:
addi r14, r14, -0x01 # 14b34
lbz r20, 0x0229(r16) # 14b38
lwz r21, 0x0018(r16) # 14b3c
cmpw cr1, r17, r20 # 14b40
rlwinm. r21, r21, 0, 28, 28 # 14b44
bge- cr1, major_0x14af8_0x60 # 14b48
beq- major_0x14af8_0x60 # 14b4c
mr r17, r20 # 14b50
mr r18, r16 # 14b54
major_0x14af8_0x60:
lwz r16, 0x0010(r16) # 14b58
cmpwi cr1, r14, 0x00 # 14b5c
cmpw r16, r19 # 14b60
ble- cr1, major_0x14af8_0x78 # 14b64
beq+ major_0x14af8_0x34 # 14b68
b major_0x14af8_0x38 # 14b6c
major_0x14af8_0x78:
lbz r16, 0x0019( r8) # 14b70
cmpw r17, r16 # 14b74
blelr- # 14b78
lhz r17, -0x0116(r15) # 14b7c
lhz r18, 0x022a(r18) # 14b80
cmpw r18, r17 # 14b84
bne- major_0x14af8_0xb4 # 14b88
major_0x14af8_0x94:
li r16, 0x01 # 14b8c
stb r16, -0x0118(r15) # 14b90
blr # 14b94
major_0x14af8_0xa0: /* < outside referer */
mfspr r15, 272/*sprg0*/ # 14b98
lhz r18, 0x001a( r8) # 14b9c
lhz r17, -0x0116(r15) # 14ba0
cmpw r17, r18 # 14ba4
beq+ major_0x14af8_0x94 # 14ba8
major_0x14af8_0xb4:
lwz r9, 0x0ee0( r1) # 14bac
addi r9, r9, 0x01 # 14bb0
stw r9, 0x0ee0( r1) # 14bb4
li r16, 0x05 # 14bb8
stw r16, -0x0238(r15) # 14bbc
stw r18, -0x0234(r15) # 14bc0
li r8, 0x02 # 14bc4
# r7 = flags
# r8 = usually 2?
b SIGP # 14bc8
/***********************************************************
major_0x14bcc
************************************************************
Xrefs:
"lisori_caller"
***********************************************************/
major_0x14bcc: /* < outside referer */
addi r1, r3, 0x340 # 14bcc
mtspr 272/*sprg0*/, r1 # 14bd0
lwz r1, -0x0004( r1) # 14bd4
lwz r8, 0x06a4( r1) # 14bd8
lwz r9, 0x06a0( r1) # 14bdc
srwi r9, r9, 16 # 14be0
or r9, r8, r9 # 14be4
sync # 14be8
mtspr 25/*sdr1*/, r9 # 14bec
sync # 14bf0
bl 1f # 14bf4
.ascii "Sch: Symmetric Multiprocessing^n" # 14bf8
.short 0 # 14c18
.align 2 # 14c1a
1: mflr r8 # 14c1c
bl print_string # 14c20
bl 1f # 14c24
.ascii "Sch: On CPU " # 14c28
.short 0 # 14c34
.align 2 # 14c36
1: mflr r8 # 14c38
bl print_string # 14c3c
lhz r8, 0x022a( r3) # 14c40
bl print_hexshort # 14c44
bl 1f # 14c48
.ascii " ID-" # 14c4c
.short 0 # 14c50
.align 2 # 14c52
1: mflr r8 # 14c54
bl print_string # 14c58
lwz r8, -0x0340( r3) # 14c5c
bl print_hexword_spc # 14c60
bl 1f # 14c64
.ascii " SDR1: " # 14c68
.short 0 # 14c6f
.align 2 # 14c71
1: mflr r8 # 14c74
bl print_string # 14c78
mr r8, r9 # 14c7c
bl print_hexword_spc # 14c80
bl 1f # 14c84
.ascii " CpuDescriptor: " # 14c88
.short 0 # 14c98
.align 2 # 14c9a
1: mflr r8 # 14c9c
bl print_string # 14ca0
mr r8, r3 # 14ca4
bl print_hexword_spc # 14ca8
bl 1f # 14cac
.ascii " KDP: " # 14cb0
.short 0 # 14cb6
.align 2 # 14cb8
1: mflr r8 # 14cb8
bl print_string # 14cbc
mr r8, r1 # 14cc0
bl print_hexword_spc # 14cc4
bl 1f # 14cc8
.ascii "^n" # 14ccc
.short 0 # 14cce
.align 2 # 14cd0
1: mflr r8 # 14cd0
bl print_string # 14cd4
bl major_0x055e0 # 14cd8
bl 1f # 14cdc
.ascii "Sch: Starting SMP idle task^n" # 14ce0
.short 0 # 14cfd
.align 2 # 14cff
1: mflr r8 # 14d00
bl print_string # 14d04
mr r27, r8 # 14d08
mr r28, r9 # 14d0c
addi r8, r1, -0xb50 # 14d10
# r8 = lock
bl lock # 14d14
mr r8, r27 # 14d18
mr r9, r28 # 14d1c
mfspr r14, 272/*sprg0*/ # 14d20
lwz r31, 0x001c( r3) # 14d24
li r8, 0x00 # 14d28
stb r8, -0x0118(r14) # 14d2c
lwz r6, 0x0088(r31) # 14d30
stw r31, -0x0008(r14) # 14d34
stw r6, -0x0014(r14) # 14d38
lwz r7, 0x0000( r6) # 14d3c
lwz r28, 0x0004( r6) # 14d40
stw r7, -0x0010(r14) # 14d44
stw r28, -0x000c(r14) # 14d48
lwz r8, 0x00f0(r31) # 14d4c
mtspr 275/*sprg3*/, r8 # 14d50
lwz r10, 0x00fc( r6) # 14d54
lwz r11, 0x00a4( r6) # 14d58
lwz r13, 0x00dc( r6) # 14d5c
lwz r12, 0x00ec( r6) # 14d60
bl 1f # 14d64
.ascii "EWA " # 14d68
.short 0 # 14d6c
.align 2 # 14d6e
1: mflr r8 # 14d70
bl print_string # 14d74
mr r8, r14 # 14d78
bl print_hexword_spc # 14d7c
bl 1f # 14d80
.ascii "ContextPtr " # 14d84
.short 0 # 14d8f
.align 2 # 14d91
1: mflr r8 # 14d94
bl print_string # 14d98
mr r8, r6 # 14d9c
bl print_hexword_spc # 14da0
bl 1f # 14da4
.ascii "Flags " # 14da8
.short 0 # 14dae
.align 2 # 14db0
1: mflr r8 # 14db0
bl print_string # 14db4
mr r8, r7 # 14db8
bl print_hexword_spc # 14dbc
bl 1f # 14dc0
.ascii "Enables " # 14dc4
.short 0 # 14dcc
.align 2 # 14dce
1: mflr r8 # 14dd0
bl print_string # 14dd4
mr r8, r28 # 14dd8
bl print_hexword_spc # 14ddc
bl 1f # 14de0
.ascii "^n" # 14de4
.short 0 # 14de6
.align 2 # 14de8
1: mflr r8 # 14de8
bl print_string # 14dec
addi r16, r31, 0x08 # 14df0
lwz r17, 0x0008(r16) # 14df4
lwz r18, 0x000c(r16) # 14df8
stw r17, 0x0008(r18) # 14dfc
stw r18, 0x000c(r17) # 14e00
li r17, 0x00 # 14e04
stw r17, 0x0008(r16) # 14e08
stw r17, 0x000c(r16) # 14e0c
li r16, 0x02 # 14e10
stb r16, 0x0018(r31) # 14e14
lwz r16, 0x0064(r31) # 14e18
ori r16, r16, 0x20 # 14e1c
stw r16, 0x0064(r31) # 14e20
mfspr r14, 272/*sprg0*/ # 14e24
lbz r8, 0x0019(r31) # 14e28
stb r8, -0x0117(r14) # 14e2c
lwz r8, 0x0070(r31) # 14e30
li r9, 0x00 # 14e34
bl major_0x13f78 # 14e38
bl 1f # 14e3c
.ascii "Adding idle task 0x" # 14e40
.short 0 # 14e53
.align 2 # 14e55
1: mflr r8 # 14e58
bl print_string # 14e5c
mr r8, r31 # 14e60
bl print_hexword_spc # 14e64
bl 1f # 14e68
.ascii "to the ready queue^n" # 14e6c
.short 0 # 14e80
.align 2 # 14e82
1: mflr r8 # 14e84
bl print_string # 14e88
mr r8, r31 # 14e8c
bl major_0x13ed8_0x8 # 14e90
bl major_0x149d4_0x8 # 14e94
lwz r16, 0x0018( r3) # 14e98
ori r16, r16, 0x08 # 14e9c
stw r16, 0x0018( r3) # 14ea0
lwz r17, 0x0008( r3) # 14ea4
lwz r16, 0x0024(r17) # 14ea8
addi r16, r16, 0x01 # 14eac
stw r16, 0x0024(r17) # 14eb0
li r8, 0x01 # 14eb4
mtspr 22/*dec*/, r8 # 14eb8
bl 1f # 14ebc
.ascii "Sch: Going to " # 14ec0
.short 0 # 14ece
.align 2 # 14ed0
1: mflr r8 # 14ed0
bl print_string # 14ed4
mr r8, r11 # 14ed8
bl print_hexword_spc # 14edc
mr r8, r10 # 14ee0
bl print_hexword_spc # 14ee4
bl 1f # 14ee8
.ascii "^n" # 14eec
.short 0 # 14eee
.align 2 # 14ef0
1: mflr r8 # 14ef0
bl print_string # 14ef4
mr r30, r31 # 14ef8
b major_0x142dc_0xd8 # 14efc
.long 0x4bfff434 # 14f00
major_0x14bcc_0x338: /* < outside referer */
li r31, 0x00 # 14f04
lis r20, 0x6964 # 14f08
ori r20, r20, 0x6c65 # 14f0c
lis r21, 0x7461 # 14f10
ori r21, r21, 0x736b # 14f14
lis r22, 0x5265 # 14f18
ori r22, r22, 0x6e8e # 14f1c
lis r23, 0x416c # 14f20
ori r23, r23, 0x616e # 14f24
lis r24, 0x4a69 # 14f28
ori r24, r24, 0x6d20 # 14f2c
lis r25, 0x416c # 14f30
ori r25, r25, 0x6578 # 14f34
lis r26, 0x4465 # 14f38
ori r26, r26, 0x7272 # 14f3c
lis r27, 0x6963 # 14f40
ori r27, r27, 0x6b20 # 14f44
major_0x14bcc_0x37c:
mr r30, r1 # 14f48
mr r1, r2 # 14f4c
mr r2, r5 # 14f50
mr r5, r6 # 14f54
mr r6, r7 # 14f58
mr r7, r8 # 14f5c
mr r8, r9 # 14f60
mr r9, r10 # 14f64
mr r10, r11 # 14f68
mr r11, r12 # 14f6c
mr r12, r13 # 14f70
mr r13, r14 # 14f74
mr r14, r15 # 14f78
mr r15, r16 # 14f7c
mr r16, r17 # 14f80
mr r17, r18 # 14f84
mr r18, r19 # 14f88
mr r19, r20 # 14f8c
mr r20, r21 # 14f90
mr r21, r22 # 14f94
mr r22, r23 # 14f98
mr r23, r24 # 14f9c
mr r24, r25 # 14fa0
mr r25, r26 # 14fa4
mr r26, r27 # 14fa8
mr r27, r28 # 14fac
mr r28, r29 # 14fb0
mr r29, r30 # 14fb4
cmpwi r31, 0x00 # 14fb8
beq- major_0x14bcc_0x400 # 14fbc
addi r31, r31, -0x01 # 14fc0
cmplwi r31, 0x00 # 14fc4
bgt- major_0x14bcc_0x434 # 14fc8
major_0x14bcc_0x400:
li r3, 0x0c # 14fcc
li r4, 0x01 # 14fd0
li r0, 0x2e # 14fd4
sc # 14fd8
cmpwi r3, 0x00 # 14fdc
beq- major_0x14bcc_0x434 # 14fe0
li r3, 0x01 # 14fe4
li r4, 0x00 # 14fe8
twi 31, r31, 0x05 # 14fec
cmpwi r3, 0x00 # 14ff0
beq- major_0x14bcc_0x434 # 14ff4
lis r31, 0x98 # 14ff8
ori r31, r31, 0x9680 # 14ffc
major_0x14bcc_0x434:
b major_0x14bcc_0x37c # 15000
major_0x14bcc_0x438: /* < outside referer */
mfmsr r30 # 15004
andi. r29, r30, 0x7fff # 15008
mtmsr r29 # 1500c
mfspr r2, 272/*sprg0*/ # 15010
lwz r1, -0x0004( r2) # 15014
mr r16, r8 # 15018
mr r17, r9 # 1501c
addi r8, r1, -0xb50 # 15020
# r8 = lock
bl lock # 15024
mr r8, r16 # 15028
mr r9, r17 # 1502c
addi r31, r2, -0x340 # 15030
lwz r16, 0x0018(r31) # 15034
rlwinm r16, r16, 0, 29, 27 # 15038
stw r16, 0x0018(r31) # 1503c
sync # 15040
lwz r17, 0x0008(r31) # 15044
lwz r16, 0x0024(r17) # 15048
addi r16, r16, -0x01 # 1504c
stw r16, 0x0024(r17) # 15050
lwz r8, 0x001c(r31) # 15054
li r9, 0x00 # 15058
stw r9, 0x001c(r31) # 1505c
bl major_0x13e4c # 15060
addi r16, r1, -0xa44 # 15064
addi r17, r8, 0x08 # 15068
stw r16, 0x0000(r17) # 1506c
stw r16, 0x0008(r17) # 15070
lwz r18, 0x000c(r16) # 15074
stw r18, 0x000c(r17) # 15078
stw r17, 0x0008(r18) # 1507c
stw r17, 0x000c(r16) # 15080
bl major_0x0e76c_0x50 # 15084
sync # 15088
lwz r16, -0x0b50( r1) # 1508c
cmpwi cr1, r16, 0x00 # 15090
li r16, 0x00 # 15094
bne+ cr1, major_0x14bcc_0x4d8 # 15098
mflr r16 # 1509c
bl panic # 150a0
major_0x14bcc_0x4d8:
stw r16, -0x0b50( r1) # 150a4
bl 1f # 150a8
.ascii "SIGP kStopProcessor^n" # 150ac
.short 0 # 150c1
.align 2 # 150c3
1: mflr r8 # 150c4
bl print_string # 150c8
li r3, 0x03 # 150cc
lhz r4, 0x022a(r31) # 150d0
li r0, 0x2e # 150d4
twi 31, r31, 0x08 # 150d8
bl 1f # 150dc
.ascii "Stop didn't work - going to sleep.^n" # 150e0
.short 0 # 15104
.align 2 # 15106
1: mflr r8 # 15108
bl print_string # 1510c
major_0x14bcc_0x544:
lis r5, 0x7fff # 15110
ori r5, r5, 0xffff # 15114
mtspr 22/*dec*/, r5 # 15118
li r3, 0x06 # 1511c
li r4, 0x00 # 15120
twi 31, r31, 0x05 # 15124
b major_0x14bcc_0x544 # 15128
/***********************************************************
major_0x1512c
***********************************************************/
.long 0x48000014 # 1512c
.long 0x60000000 # 15130
.long 0x60000000 # 15134
.long 0x60000000 # 15138
.long 0x60000000 # 1513c
/***********************************************************
panic_wrapper_0x15140
************************************************************
Xrefs:
major_0x15144
***********************************************************/
panic_wrapper_0x15140: /* < outside referer */
b panic # 15140
/***********************************************************
major_0x15144
************************************************************
Xrefs:
setup
***********************************************************/
major_0x15144: /* < outside referer */
mflr r23 # 15144
li r8, 520 # 15148
# r1 = kdp
bl boring # 1514c
mr. r22, r8 # 15150
stw r8, -0x0a98( r1) # 15154
beq+ panic_wrapper_0x15140 # 15158
li r9, 0x00 # 1515c
stw r9, 0x0efc( r1) # 15160
sth r9, 0x0000(r22) # 15164
sth r9, 0x0002(r22) # 15168
lis r9, 0x494e # 1516c
ori r9, r9, 0x4458 # 15170
stw r9, 0x0004(r22) # 15174
li r8, 0xfd8 # 15178
# r1 = kdp
bl boring # 1517c
cmpwi r8, 0x00 # 15180
stw r8, 0x0008(r22) # 15184
beq+ panic_wrapper_0x15140 # 15188
mtlr r23 # 1518c
li r9, 0x00 # 15190
sth r9, 0x0000( r8) # 15194
li r9, 0x1fa # 15198
sth r9, 0x0002( r8) # 1519c
lis r9, 0x4944 # 151a0
ori r9, r9, 0x7320 # 151a4
stw r9, 0x0004( r8) # 151a8
blr # 151ac
/***********************************************************
major_0x151b0
************************************************************
Xrefs:
setup
major_0x0b3cc
major_0x0b720
major_0x0b960
major_0x0c5e0
major_0x0cb00
major_0x0ce48
major_0x0d204
major_0x0d70c
major_0x0da20
mktask
NKCreateAddressSpaceSub
createarea
***********************************************************/
major_0x151b0: /* < outside referer */
lwz r18, -0x0a98( r1) # 151b0
lhz r19, 0x0000(r18) # 151b4
mr r21, r19 # 151b8
major_0x151b0_0xc:
lwz r18, -0x0a98( r1) # 151bc
rlwinm r20, r19, 25, 23, 29 # 151c0
addi r20, r20, 0x08 # 151c4
clrlwi. r19, r19, 0x17 # 151c8
lwzx r18, r18, r20 # 151cc
slwi r22, r19, 3 # 151d0
addi r20, r18, 0x08 # 151d4
cmpwi r18, 0x00 # 151d8
add r22, r22, r20 # 151dc
bne- major_0x151b0_0x48 # 151e0
li r19, 0x00 # 151e4
b major_0x151b0_0xc # 151e8
major_0x151b0_0x3c:
add r20, r20, r19 # 151ec
cmpw r20, r21 # 151f0
beq- major_0x151b0_0x70 # 151f4
major_0x151b0_0x48:
lbz r23, 0x0000(r22) # 151f8
cmpwi r23, 0x00 # 151fc
beq- major_0x151b0_0xf0 # 15200
addi r19, r19, 0x01 # 15204
cmpwi cr1, r19, 0x1fa # 15208
addi r22, r22, 0x08 # 1520c
lhz r20, 0x0000(r18) # 15210
blt+ cr1, major_0x151b0_0x3c # 15214
addi r19, r20, 0x200 # 15218
b major_0x151b0_0xc # 1521c
major_0x151b0_0x70:
lwz r18, -0x0a98( r1) # 15220
mr r21, r8 # 15224
lhz r19, 0x0002(r18) # 15228
mr r22, r9 # 1522c
addi r19, r19, 0x200 # 15230
rlwinm. r20, r19, 25, 23, 29 # 15234
li r8, 0x00 # 15238
beqlr- # 1523c
mflr r23 # 15240
li r8, 0xfd8 # 15244
# r1 = kdp
bl boring # 15248
mr. r18, r8 # 1524c
mtlr r23 # 15250
li r8, 0x00 # 15254
beqlr- # 15258
lwz r17, -0x0a98( r1) # 1525c
lhz r19, 0x0002(r17) # 15260
addi r19, r19, 0x200 # 15264
rlwinm r20, r19, 25, 23, 29 # 15268
addi r20, r20, 0x08 # 1526c
sth r19, 0x0002(r17) # 15270
stwx r18, r20, r17 # 15274
sth r19, 0x0000(r18) # 15278
li r9, 0x1fa # 1527c
sth r9, 0x0002(r18) # 15280
lis r9, 0x4944 # 15284
ori r9, r9, 0x7320 # 15288
stw r9, 0x0004(r18) # 1528c
li r19, 0x00 # 15290
mr r8, r21 # 15294
mr r9, r22 # 15298
addi r22, r18, 0x08 # 1529c
major_0x151b0_0xf0:
stw r8, 0x0004(r22) # 152a0
stb r9, 0x0000(r22) # 152a4
lwz r9, 0x0efc( r1) # 152a8
addi r9, r9, 0x01 # 152ac
stw r9, 0x0efc( r1) # 152b0
lhz r20, 0x0000(r18) # 152b4
lhz r8, 0x0002(r22) # 152b8
lwz r21, -0x0a98( r1) # 152bc
add r19, r19, r20 # 152c0
addi r8, r8, 0x01 # 152c4
lhz r20, 0x0002(r18) # 152c8
sth r8, 0x0002(r22) # 152cc
addi r20, r20, -0x01 # 152d0
rlwimi. r8, r19, 16, 0, 15 # 152d4
sth r20, 0x0002(r18) # 152d8
sth r19, 0x0000(r21) # 152dc
bnelr+ # 152e0
lhz r8, 0x0002(r22) # 152e4
addi r8, r8, 0x01 # 152e8
sth r8, 0x0002(r22) # 152ec
rlwimi r8, r19, 16, 0, 15 # 152f0
blr # 152f4
/***********************************************************
major_0x152f8
***********************************************************/
.long 0x60000000 # 152f8
.long 0x60000000 # 152fc
/***********************************************************
major_0x15300
************************************************************
Xrefs:
major_0x0b4a4
major_0x0b73c
major_0x0ba80
major_0x0c680
major_0x0cd9c
major_0x0d158
major_0x0d278
major_0x0d798
major_0x0da8c
mktask
major_0x0e76c
NKCreateAddressSpaceSub
major_0x0f9f8
major_0x10320
major_0x104ec
***********************************************************/
major_0x15300: /* < outside referer */
rlwinm r20, r8, 9, 23, 29 # 15300
lwz r18, -0x0a98( r1) # 15304
addi r20, r20, 0x08 # 15308
rlwinm. r19, r8, 16, 23, 31 # 1530c
lwzx r18, r18, r20 # 15310
cmplwi cr1, r19, 0x1fa # 15314
cmpwi r18, 0x00 # 15318
addi r20, r18, 0x08 # 1531c
slwi r22, r19, 3 # 15320
add r22, r22, r20 # 15324
clrlwi r20, r8, 0x10 # 15328
li r8, 0x00 # 1532c
bgelr- cr1 # 15330
beqlr- # 15334
lbz r19, 0x0000(r22) # 15338
lhz r23, 0x0002(r22) # 1533c
cmpwi r19, 0x00 # 15340
cmpw cr1, r23, r20 # 15344
beqlr- # 15348
bnelr- cr1 # 1534c
lwz r9, 0x0efc( r1) # 15350
addi r9, r9, -0x01 # 15354
stw r9, 0x0efc( r1) # 15358
lhz r20, 0x0002(r18) # 1535c
stb r8, 0x0000(r22) # 15360
addi r20, r20, 0x01 # 15364
li r8, 0x01 # 15368
sth r20, 0x0002(r18) # 1536c
blr # 15370
/***********************************************************
major_0x15374
***********************************************************/
.long 0x4800000c # 15374
.long 0x60000000 # 15378
.long 0x60000000 # 1537c
/***********************************************************
id_kind
************************************************************
Xrefs:
major_0x02ccc
major_0x04240
major_0x04300
NKRegisterCpuPlugin
major_0x0b3cc
major_0x0b45c
major_0x0b4a4
major_0x0b750
nk_get_next_id_owned
major_0x0b8b8
major_0x0b90c
major_0x0b960
major_0x0ba80
major_0x0bb20
NKStopScheduling
NKSetBlueProcessID
NKRegisterThermalHandler
NKRegisterPMFHandler
NKMarkPMFTask
major_0x0c3ac
NKRegisterExternalHandler
major_0x0c680
major_0x0c778
major_0x0c830
major_0x0c968
major_0x0cac0
major_0x0cb8c
major_0x0cc80
major_0x0ccbc
major_0x0cd9c
major_0x0ced4
major_0x0d010
major_0x0d06c
major_0x0d158
major_0x0d278
major_0x0d324
major_0x0d504
major_0x0d678
major_0x0d6b4
major_0x0d798
major_0x0d818
major_0x0d8a0
major_0x0d9a8
major_0x0da8c
major_0x0dacc
major_0x0db04
major_0x0dc0c
major_0x0dc88
major_0x0dd64
major_0x0e284
major_0x0e548
major_0x0e604
major_0x0e76c
major_0x0e894
major_0x0e90c
NKThrowException
major_0x0ea58
major_0x0ec54
major_0x0ec8c
major_0x0f050
major_0x0f288
major_0x0f2b8
NKSetTaskType
NKCreateAddressSpaceSub
major_0x0f9f8
NKSetTaskAddressSpace
major_0x0fb34
major_0x102c8
major_0x10414
major_0x104ec
major_0x1070c
major_0x108fc
NKSetAreaAccess
major_0x10de0
major_0x10e94
major_0x10ee0
major_0x10ff0
major_0x11040
major_0x11098
major_0x11104
major_0x111d4
major_0x11360
major_0x1139c
NKMapPage
NKUnmapPages
NKMakePhysicallyContiguous
NKLockPages
NKUnlockPages
NKHoldPages
NKUnholdPages
major_0x11ebc
major_0x11fac
major_0x120a8
major_0x12110
major_0x121d4
interrupt_blue
panic
************************************************************
> r8 = id
< r8 = something not sure what
< r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
***********************************************************/
id_kind: /* < outside referer */
rlwinm r20, r8, 9, 23, 29 # 15380
lwz r18, -0x0a98( r1) # 15384
addi r20, r20, 0x08 # 15388
rlwinm. r19, r8, 16, 23, 31 # 1538c
lwzx r18, r18, r20 # 15390
cmplwi cr1, r19, 0x1fa # 15394
cmpwi r18, 0x00 # 15398
addi r20, r18, 0x08 # 1539c
slwi r22, r19, 3 # 153a0
add r22, r22, r20 # 153a4
clrlwi r20, r8, 0x10 # 153a8
li r8, 0x00 # 153ac
li r9, 0x00 # 153b0
bgelr- cr1 # 153b4
beqlr- # 153b8
lbz r19, 0x0000(r22) # 153bc
lhz r23, 0x0002(r22) # 153c0
cmpwi r19, 0x00 # 153c4
cmpw cr1, r23, r20 # 153c8
beqlr- # 153cc
bnelr- cr1 # 153d0
lwz r8, 0x0004(r22) # 153d4
mr r9, r19 # 153d8
blr # 153dc
/***********************************************************
major_0x153e0
************************************************************
Xrefs:
nk_get_next_id_unowned
nk_get_next_id_owned
major_0x0b8b8
major_0x0b90c
major_0x10ff0
panic
***********************************************************/
major_0x153e0: /* < outside referer */
rlwinm r20, r8, 9, 23, 29 # 153e0
lwz r18, -0x0a98( r1) # 153e4
addi r20, r20, 0x08 # 153e8
rlwinm. r19, r8, 16, 23, 31 # 153ec
lwzx r18, r18, r20 # 153f0
cmplwi cr1, r19, 0x1fa # 153f4
cmpwi r18, 0x00 # 153f8
cmpwi cr2, r8, 0x00 # 153fc
addi r20, r18, 0x08 # 15400
slwi r22, r19, 3 # 15404
li r8, 0x00 # 15408
bgelr- cr1 # 1540c
beqlr- # 15410
add r22, r22, r20 # 15414
bne- cr2, major_0x153e0_0x48 # 15418
major_0x153e0_0x3c:
lbz r23, 0x0000(r22) # 1541c
cmpwi r23, 0x00 # 15420
bne- major_0x153e0_0x8c # 15424
major_0x153e0_0x48:
addi r19, r19, 0x01 # 15428
cmpwi r19, 0x1fa # 1542c
addi r22, r22, 0x08 # 15430
blt+ major_0x153e0_0x3c # 15434
lhz r20, 0x0000(r18) # 15438
addi r20, r20, 0x200 # 1543c
rlwinm. r20, r20, 25, 23, 29 # 15440
lwz r18, -0x0a98( r1) # 15444
beqlr- # 15448
addi r20, r20, 0x08 # 1544c
li r19, 0x00 # 15450
lwzx r18, r18, r20 # 15454
cmpwi r18, 0x00 # 15458
addi r22, r18, 0x08 # 1545c
bne+ major_0x153e0_0x3c # 15460
li r8, 0x00 # 15464
blr # 15468
major_0x153e0_0x8c:
cmpwi r9, 0x00 # 1546c
cmpw cr1, r9, r23 # 15470
beq- major_0x153e0_0x9c # 15474
bne+ cr1, major_0x153e0_0x48 # 15478
major_0x153e0_0x9c:
lhz r20, 0x0000(r18) # 1547c
lhz r8, 0x0002(r22) # 15480
add r19, r19, r20 # 15484
rlwimi r8, r19, 16, 0, 15 # 15488
blr # 1548c
/***********************************************************
major_0x15490
***********************************************************/
.long 0x48000010 # 15490
.long 0x60000000 # 15494
.long 0x60000000 # 15498
.long 0x60000000 # 1549c
/***********************************************************
get_pih_addr
************************************************************
ConfigInfo specifies a one-byte primary interrupt handler kind. Look up function address in this table.
************************************************************
Xrefs:
replace_old_kernel
new_world
************************************************************
> r3 = ConfigInfo
< r12 = clobbered
< r7 = pih_pa
***********************************************************/
get_pih_addr: /* < outside referer */
mflr r12 # 154a0
bl 1f # 154a4
pih_tbl:
.short 0 # 154a8
.short pdm_pih_01 - pih_tbl # 154aa
.short tnt_pih_02 - pih_tbl # 154ac
.short pbx_pih_03 - pih_tbl # 154ae
.short cordyceps_pih_04 - pih_tbl # 154b0
.short gazelle_pih_05 - pih_tbl # 154b2
.short newworld_pih_06 - pih_tbl # 154b4
.short gossamer_pih_07 - pih_tbl # 154b6
.short unknown_pih_08 - pih_tbl # 154b8
.short 0 # 154ba
.short unknown_pih_10 - pih_tbl # 154bc
.short 0 # 154be
.align 2 # 154c0
1: mflr r7 # 154c0
mtlr r12 # 154c4
lbz r12, 0x0098( r3) # ConfigInfo.u8_pih_kind # 154c8
slwi r12, r12, 1 # 154cc
lhzx r12, r7, r12 # 154d0
add r7, r7, r12 # 154d4
blr # 154d8
/***********************************************************
major_0x154dc
***********************************************************/
.long 0x60000000 # 154dc
/***********************************************************
interrupt_blue
************************************************************
At least I think so.
************************************************************
Xrefs:
NKPropogateExternalInterrupt
pdm_pih_01
pbx_pih_03
gazelle_pih_05
tnt_pih_02
gossamer_pih_07
unknown_pih_10
cordyceps_pih_04
newworld_pih_06
unknown_pih_08
************************************************************
> r1 = kdp
***********************************************************/
interrupt_blue: /* < outside referer */
mtspr 275/*sprg3*/, r30 # 154e0
lwz r23, 0x067c( r1) # kdp.0x67c # 154e4
lwz r27, -0x0428( r1) # kdp.-0x428 # 154e8
interrupt_blue_0xc: /* < outside referer */
cmpwi cr7, r28, 0x00 # 154ec
li r31, 0x00 # 154f0
blt- cr7, interrupt_blue_0x50 # 154f4
beq- cr7, interrupt_blue_0x24 # 154f8
ori r28, r28, 0x8000 # 154fc
lwz r31, 0x0674( r1) # kdp.0x674 # 15500
interrupt_blue_0x24:
andis. r8, r11, 0x02 # 15504
cmpwi cr1, r27, 0x00 # 15508
lwz r29, 0x0678( r1) # kdp.0x678 # 1550c
bne- interrupt_blue_0x38 # 15510
bne- cr1, interrupt_blue_0x78 # 15514
interrupt_blue_0x38:
rlwinm. r8, r7, 0, 10, 10 # 15518
beq- interrupt_blue_0x14c # 1551c
sth r28, 0x0000(r23) # 15520
or r13, r13, r31 # 15524
bgt- cr7, interrupt_blue_0x50 # 15528
and r13, r13, r29 # 1552c
interrupt_blue_0x50:
sync # 15530
lwz r8, -0x0b70( r1) # kdp.pih_lock # 15534
cmpwi cr1, r8, 0x00 # 15538
li r8, 0x00 # 1553c
bne+ cr1, interrupt_blue_0x6c # 15540
mflr r8 # 15544
bl panic # 15548
interrupt_blue_0x6c:
stw r8, -0x0b70( r1) # kdp.pih_lock # 1554c
bl restore_registers_from_r14_0x28 # 15550
b skeleton_key # 15554
interrupt_blue_0x78:
sync # 15558
lwz r8, -0x0b70( r1) # kdp.pih_lock # 1555c
cmpwi cr1, r8, 0x00 # 15560
li r8, 0x00 # 15564
bne+ cr1, interrupt_blue_0x94 # 15568
mflr r8 # 1556c
bl panic # 15570
interrupt_blue_0x94:
stw r8, -0x0b70( r1) # kdp.pih_lock # 15574
bl major_0x15794 # 15578
mr r8, r8 # 1557c
mr r9, r9 # 15580
addi r8, r1, -0xb50 # kdp.sch_lock # 15584
# r8 = lock
bl lock # 15588
mr r8, r8 # 1558c
mr r9, r9 # 15590
mr r8, r27 # 15594
# r8 = id
bl id_kind # 15598
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
cmpwi r9, 0x0c # 1559c
mr r30, r8 # 155a0
bne- interrupt_blue_0x100 # 155a4
clrlwi r9, r28, 0x11 # 155a8
stw r9, 0x0010(r30) # 155ac
stw r22, 0x0014(r30) # 155b0
bl major_0x0db04 # 155b4
sync # 155b8
lwz r8, -0x0b50( r1) # kdp.sch_lock # 155bc
cmpwi cr1, r8, 0x00 # 155c0
li r8, 0x00 # 155c4
bne+ cr1, interrupt_blue_0xf4 # 155c8
mflr r8 # 155cc
bl panic # 155d0
interrupt_blue_0xf4:
stw r8, -0x0b50( r1) # kdp.sch_lock # 155d4
# r6 = ewa
bl restore_registers_from_r14 # 155d8
b skeleton_key # 155dc
interrupt_blue_0x100:
li r27, 0x00 # 155e0
lwz r23, 0x067c( r1) # kdp.0x67c # 155e4
stw r27, -0x0428( r1) # kdp.-0x428 # 155e8
sync # 155ec
lwz r8, -0x0b50( r1) # kdp.sch_lock # 155f0
cmpwi cr1, r8, 0x00 # 155f4
li r8, 0x00 # 155f8
bne+ cr1, interrupt_blue_0x128 # 155fc
mflr r8 # 15600
bl panic # 15604
interrupt_blue_0x128:
stw r8, -0x0b50( r1) # kdp.sch_lock # 15608
bl major_0x15794_0x1c # 1560c
mr r8, r8 # 15610
mr r9, r9 # 15614
addi r8, r1, -0xb70 # kdp.pih_lock # 15618
# r8 = lock
bl lock # 1561c
mr r8, r8 # 15620
mr r9, r9 # 15624
b interrupt_blue_0xc # 15628
interrupt_blue_0x14c:
sync # 1562c
lwz r8, -0x0b70( r1) # kdp.pih_lock # 15630
cmpwi cr1, r8, 0x00 # 15634
li r8, 0x00 # 15638
bne+ cr1, interrupt_blue_0x168 # 1563c
mflr r8 # 15640
bl panic # 15644
interrupt_blue_0x168:
stw r8, -0x0b70( r1) # kdp.pih_lock # 15648
bl major_0x15794 # 1564c
mr r16, r8 # 15650
mr r17, r9 # 15654
addi r8, r1, -0xb50 # kdp.sch_lock # 15658
# r8 = lock
bl lock # 1565c
mr r8, r16 # 15660
mr r9, r17 # 15664
lwz r30, -0x0440( r1) # kdp.-0x440 # 15668
or r31, r31, r30 # 1566c
stw r31, -0x0440( r1) # kdp.-0x440 # 15670
sth r28, -0x043c( r1) # kdp.-0x43c # 15674
lwz r31, -0x08f0( r1) # kdp.-0x8f0 # 15678
mfspr r30, 272/*sprg0*/ # 1567c
lwz r28, 0x0064(r31) # 15680
lbz r29, 0x0018(r31) # 15684
ori r28, r28, 0x10 # 15688
stw r28, 0x0064(r31) # 1568c
cmpwi r29, 0x00 # 15690
lhz r16, 0x001a(r31) # 15694
beq- interrupt_blue_0x1dc # 15698
lhz r17, -0x0116(r30) # 1569c
cmpw cr1, r16, r17 # 156a0
rlwinm. r8, r28, 0, 26, 26 # 156a4
beq- cr1, interrupt_blue_0x1d0 # 156a8
bne- interrupt_blue_0x230 # 156ac
interrupt_blue_0x1d0:
mr r8, r31 # 156b0
bl major_0x13e4c # 156b4
b interrupt_blue_0x218 # 156b8
interrupt_blue_0x1dc:
addi r16, r31, 0x08 # 156bc
lwz r17, 0x0008(r16) # 156c0
lwz r18, 0x000c(r16) # 156c4
stw r17, 0x0008(r18) # 156c8
stw r18, 0x000c(r17) # 156cc
li r17, 0x00 # 156d0
stw r17, 0x0008(r16) # 156d4
stw r17, 0x000c(r16) # 156d8
lbz r17, 0x0037(r31) # 156dc
cmpwi r17, 0x01 # 156e0
bne- interrupt_blue_0x210 # 156e4
addi r8, r31, 0x20 # 156e8
bl major_0x130f0_0x5d8 # 156ec
interrupt_blue_0x210:
lwz r16, 0x0e80( r1) # kdp.0xe80 # 156f0
stw r16, -0x08e4( r1) # kdp.-0x8e4 # 156f4
interrupt_blue_0x218:
li r16, 0x00 # 156f8
stb r16, 0x0019(r31) # 156fc
mr r8, r31 # 15700
bl major_0x13ed8 # 15704
mr r8, r31 # 15708
bl major_0x149d4_0x8 # 1570c
interrupt_blue_0x230:
mr r8, r31 # 15710
bl major_0x14af8 # 15714
sync # 15718
lwz r16, -0x0b50( r1) # kdp.sch_lock # 1571c
cmpwi cr1, r16, 0x00 # 15720
li r16, 0x00 # 15724
bne+ cr1, interrupt_blue_0x254 # 15728
mflr r16 # 1572c
bl panic # 15730
interrupt_blue_0x254:
stw r16, -0x0b50( r1) # kdp.sch_lock # 15734
# r6 = ewa
bl restore_registers_from_r14 # 15738
b skeleton_key # 1573c
/***********************************************************
NKPropogateExternalInterrupt
************************************************************
syscall 122
************************************************************
Xrefs:
syscall
************************************************************
> r1 = kdp
***********************************************************/
NKPropogateExternalInterrupt: /* < outside referer */
rlwinm. r8, r7, 0, 10, 10 # 15740
cmplwi cr1, r3, 0x07 # 15744
bne- NKPropogateExternalInterrupt_0x4c # 15748
bgt- cr1, NKPropogateExternalInterrupt_0x50 # 1574c
mr r8, r8 # 15750
mr r9, r9 # 15754
addi r8, r1, -0xb70 # kdp.pih_lock # 15758
# r8 = lock
bl lock # 1575c
mr r8, r8 # 15760
mr r9, r9 # 15764
lwz r23, 0x067c( r1) # kdp.0x67c # 15768
lbz r28, 0x0001(r23) # 1576c
cmpw r3, r28 # 15770
ble- NKPropogateExternalInterrupt_0x3c # 15774
mr r28, r3 # 15778
NKPropogateExternalInterrupt_0x3c:
li r27, 0x00 # 1577c
li r3, 0x00 # 15780
bl major_0x15794_0x1c # 15784
b interrupt_blue_0xc # 15788
NKPropogateExternalInterrupt_0x4c:
b syscall_return_kMPInsufficientResourcesErr # 1578c
NKPropogateExternalInterrupt_0x50:
b syscall_return_paramErr # 15790
/***********************************************************
major_0x15794
************************************************************
Xrefs:
interrupt_blue
NKPropogateExternalInterrupt
***********************************************************/
major_0x15794: /* < outside referer */
stw r14, 0x0174( r6) # 15794
stw r15, 0x017c( r6) # 15798
stw r16, 0x0184( r6) # 1579c
stw r17, 0x018c( r6) # 157a0
stw r18, 0x0194( r6) # 157a4
stw r19, 0x019c( r6) # 157a8
blr # 157ac
major_0x15794_0x1c: /* < outside referer */
lwz r14, 0x0174( r6) # 157b0
lwz r15, 0x017c( r6) # 157b4
lwz r16, 0x0184( r6) # 157b8
lwz r17, 0x018c( r6) # 157bc
lwz r18, 0x0194( r6) # 157c0
lwz r19, 0x019c( r6) # 157c4
blr # 157c8
/***********************************************************
major_0x157cc
***********************************************************/
.long 0x48000034 # 157cc
.long 0x60000000 # 157d0
.long 0x60000000 # 157d4
.long 0x60000000 # 157d8
.long 0x60000000 # 157dc
.long 0x60000000 # 157e0
.long 0x60000000 # 157e4
.long 0x60000000 # 157e8
.long 0x60000000 # 157ec
.long 0x60000000 # 157f0
.long 0x60000000 # 157f4
.long 0x60000000 # 157f8
.long 0x60000000 # 157fc
/***********************************************************
machine_specific_lut
***********************************************************/
machine_specific_lut: /* < outside referer */
.long 0x00010202 # 15800
.long 0x04040404 # 15804
.long 0x03030303 # 15808
.long 0x04040404 # 1580c
.long 0x04040404 # 15810
.long 0x04040404 # 15814
.long 0x04040404 # 15818
.long 0x04040404 # 1581c
.long 0x07070707 # 15820
.long 0x07070707 # 15824
.long 0x07070707 # 15828
.long 0x07070707 # 1582c
.long 0x07070707 # 15830
.long 0x07070707 # 15834
.long 0x07070707 # 15838
.long 0x07070707 # 1583c
/***********************************************************
pdm_pih_01
************************************************************
Piltdown Man = first ("G1") Power Macs. NuBus. Models 61xx, 71xx, 81xx.
************************************************************
Xrefs:
pih_indirect
************************************************************
> r1 = kdp
***********************************************************/
pdm_pih_01: /* < outside referer */
mr r8, r8 # 15840
mr r9, r9 # 15844
addi r8, r1, -0xb70 # kdp.pih_lock # 15848
# r8 = lock
bl lock # 1584c
mr r8, r8 # 15850
mr r9, r9 # 15854
# r6 = ewa
bl save_registers_from_r20 # 15858
# r8 = sprg0 (not used by me)
addi r9, r1, -0x750 # kdp.-0x750 # 1585c
andis. r8, r11, 0x02 # 15860
mfspr r30, 275/*sprg3*/ # 15864
bne- pdm_pih_01_0x38 # 15868
lwz r21, 0x0e80( r1) # kdp.0xe80 # 1586c
addi r21, r21, 0x01 # 15870
stw r21, 0x0e80( r1) # kdp.0xe80 # 15874
pdm_pih_01_0x38:
mtspr 275/*sprg3*/, r9 # 15878
lis r22, 0x50f3 # 1587c
mfmsr r23 # 15880
ori r20, r23, 0x10 # 15884
lwz r25, -0x03fc( r1) # kdp.-0x3fc # 15888
rlwinm r24, r22, 6, 26, 29 # 1588c
addi r25, r25, 0x30 # 15890
mfsrin r21, r22 # 15894
lwzx r24, r25, r24 # 15898
mtsrin r24, r22 # 1589c
isync # 158a0
mtmsr r20 # 158a4
isync # 158a8
li r20, 0xc0 # 158ac
stb r20, -0x6000(r22) # 158b0
eieio # 158b4
lbz r20, -0x6000(r22) # 158b8
mtmsr r23 # 158bc
isync # 158c0
lwz r23, 0x064c( r1) # kdp.phys_kern_base # 158c4
rlwimi r23, r20, 0, 26, 31 # 158c8
lis r28, machine_specific_lut@h # 158cc
ori r28, r28, machine_specific_lut@l # 158d0
lbzx r28, r28, r23 # 158d4
mtsrin r21, r22 # 158d8
isync # 158dc
# r1 = kdp
b interrupt_blue # 158e0
/***********************************************************
major_0x158e4
***********************************************************/
.long 0x4800001c # 158e4
.long 0x60000000 # 158e8
.long 0x60000000 # 158ec
.long 0x60000000 # 158f0
.long 0x60000000 # 158f4
.long 0x60000000 # 158f8
.long 0x60000000 # 158fc
/***********************************************************
pbx_pih_03
************************************************************
PBX = NuBus PowerBooks. Possibly not including the 5300?
************************************************************
Xrefs:
pih_indirect
************************************************************
> r1 = kdp
***********************************************************/
pbx_pih_03: /* < outside referer */
mr r8, r8 # 15900
mr r9, r9 # 15904
addi r8, r1, -0xb70 # kdp.pih_lock # 15908
# r8 = lock
bl lock # 1590c
mr r8, r8 # 15910
mr r9, r9 # 15914
# r6 = ewa
bl save_registers_from_r20 # 15918
# r8 = sprg0 (not used by me)
addi r9, r1, -0x750 # kdp.-0x750 # 1591c
andis. r8, r11, 0x02 # 15920
mfspr r30, 275/*sprg3*/ # 15924
bne- pbx_pih_03_0x38 # 15928
lwz r21, 0x0e80( r1) # kdp.0xe80 # 1592c
addi r21, r21, 0x01 # 15930
stw r21, 0x0e80( r1) # kdp.0xe80 # 15934
pbx_pih_03_0x38:
mtspr 275/*sprg3*/, r9 # 15938
lis r22, 0x50f3 # 1593c
mfmsr r23 # 15940
lwz r25, -0x03fc( r1) # kdp.-0x3fc # 15944
rlwinm r24, r22, 6, 26, 29 # 15948
addi r25, r25, 0x30 # 1594c
mfsrin r21, r22 # 15950
lwzx r24, r25, r24 # 15954
mtsrin r24, r22 # 15958
isync # 1595c
ori r20, r23, 0x10 # 15960
mtmsr r20 # 15964
isync # 15968
lwz r20, -0x6000(r22) # 1596c
ori r20, r20, 0x80 # 15970
stw r20, -0x6000(r22) # 15974
eieio # 15978
lwz r20, -0x6000(r22) # 1597c
rlwimi r20, r20, 3, 26, 28 # 15980
stw r20, -0x6000(r22) # 15984
eieio # 15988
mr r28, r20 # 1598c
mtmsr r23 # 15990
isync # 15994
mtsrin r21, r22 # 15998
isync # 1599c
clrlwi r28, r28, 0x1d # 159a0
# r1 = kdp
b interrupt_blue # 159a4
/***********************************************************
major_0x159a8
***********************************************************/
.long 0x48000018 # 159a8
.long 0x60000000 # 159ac
.long 0x60000000 # 159b0
.long 0x60000000 # 159b4
.long 0x60000000 # 159b8
.long 0x60000000 # 159bc
/***********************************************************
gazelle_pih_05
************************************************************
Gazelle = later low-end "G2" Power Macs. 603 series processors. PCI. Models 54xx-55xx, 64xx-65xx.
The 54xx/64xx ROM actually identifies as Alchemy, not Gazelle, and SheepShaver considers this difference when patching the ROM Nanokernels. But, Wikipedia describes these machines as minor upgrades, EveryMac calls them Gazelle, and they use the same PIH type.
************************************************************
Xrefs:
pih_indirect
************************************************************
> r1 = kdp
***********************************************************/
gazelle_pih_05: /* < outside referer */
mr r8, r8 # 159c0
mr r9, r9 # 159c4
addi r8, r1, -0xb70 # kdp.pih_lock # 159c8
# r8 = lock
bl lock # 159cc
mr r8, r8 # 159d0
mr r9, r9 # 159d4
# r6 = ewa
bl save_registers_from_r20 # 159d8
# r8 = sprg0 (not used by me)
addi r9, r1, -0x750 # kdp.-0x750 # 159dc
andis. r8, r11, 0x02 # 159e0
mfspr r30, 275/*sprg3*/ # 159e4
bne- gazelle_pih_05_0x38 # 159e8
lwz r21, 0x0e80( r1) # kdp.0xe80 # 159ec
addi r21, r21, 0x01 # 159f0
stw r21, 0x0e80( r1) # kdp.0xe80 # 159f4
gazelle_pih_05_0x38:
mtspr 275/*sprg3*/, r9 # 159f8
lis r22, -0xd00 # 159fc
mfmsr r20 # 15a00
ori r23, r20, 0x10 # 15a04
lwz r25, -0x03fc( r1) # kdp.-0x3fc # 15a08
rlwinm r24, r22, 6, 26, 29 # 15a0c
addi r25, r25, 0x30 # 15a10
mfsrin r21, r22 # 15a14
lwzx r24, r25, r24 # 15a18
mtsrin r24, r22 # 15a1c
isync # 15a20
mtmsr r23 # 15a24
isync # 15a28
li r26, 0x20 # 15a2c
lwbrx r27, r26, r22 # 15a30
rlwinm r27, r27, 1, 1, 1 # 15a34
eieio # 15a38
lis r23, -0x8000 # 15a3c
li r26, 0x28 # 15a40
stwbrx r23, r26, r22 # 15a44
eieio # 15a48
li r26, 0x24 # 15a4c
lwbrx r23, r26, r22 # 15a50
eieio # 15a54
rlwinm r28, r23, 1, 1, 1 # 15a58
and r28, r27, r28 # 15a5c
or r23, r28, r23 # 15a60
stwbrx r23, r26, r22 # 15a64
eieio # 15a68
li r26, 0x2c # 15a6c
lwbrx r26, r26, r22 # 15a70
eieio # 15a74
rlwimi r26, r23, 0, 1, 1 # 15a78
and r23, r26, r23 # 15a7c
mtmsr r20 # 15a80
isync # 15a84
andis. r28, r23, 0x10 # 15a88
li r28, 0x07 # 15a8c
bne- gazelle_pih_05_0x104 # 15a90
rlwinm r28, r23, 0, 15, 16 # 15a94
rlwimi. r28, r23, 0, 22, 31 # 15a98
li r28, 0x04 # 15a9c
bne- gazelle_pih_05_0x104 # 15aa0
andis. r28, r23, 0x5fca # 15aa4
rlwimi. r28, r23, 0, 17, 20 # 15aa8
li r28, 0x02 # 15aac
bne- gazelle_pih_05_0x104 # 15ab0
andis. r28, r23, 0x04 # 15ab4
li r28, 0x01 # 15ab8
bne- gazelle_pih_05_0x104 # 15abc
li r28, 0x00 # 15ac0
gazelle_pih_05_0x104:
mtsrin r21, r22 # 15ac4
isync # 15ac8
# r1 = kdp
b interrupt_blue # 15acc
/***********************************************************
major_0x15ad0
***********************************************************/
.long 0x48000030 # 15ad0
.long 0x60000000 # 15ad4
.long 0x60000000 # 15ad8
.long 0x60000000 # 15adc
.long 0x60000000 # 15ae0
.long 0x60000000 # 15ae4
.long 0x60000000 # 15ae8
.long 0x60000000 # 15aec
.long 0x60000000 # 15af0
.long 0x60000000 # 15af4
.long 0x60000000 # 15af8
.long 0x60000000 # 15afc
/***********************************************************
tnt_pih_02
************************************************************
TNT = High-end and mid-range "G2" Power Macs. PCI. 603 and 604 series processors. Models 7200-7600, 8500-8600, 9500-9600.
************************************************************
Xrefs:
pih_indirect
************************************************************
> r1 = kdp
***********************************************************/
tnt_pih_02: /* < outside referer */
mr r8, r8 # 15b00
mr r9, r9 # 15b04
addi r8, r1, -0xb70 # kdp.pih_lock # 15b08
# r8 = lock
bl lock # 15b0c
mr r8, r8 # 15b10
mr r9, r9 # 15b14
# r6 = ewa
bl save_registers_from_r20 # 15b18
# r8 = sprg0 (not used by me)
addi r9, r1, -0x750 # kdp.-0x750 # 15b1c
andis. r8, r11, 0x02 # 15b20
mfspr r30, 275/*sprg3*/ # 15b24
bne- tnt_pih_02_0x38 # 15b28
lwz r21, 0x0e80( r1) # kdp.0xe80 # 15b2c
addi r21, r21, 0x01 # 15b30
stw r21, 0x0e80( r1) # kdp.0xe80 # 15b34
tnt_pih_02_0x38:
mtspr 275/*sprg3*/, r9 # 15b38
lis r22, -0xd00 # 15b3c
mfmsr r20 # 15b40
ori r23, r20, 0x10 # 15b44
lwz r25, -0x03fc( r1) # kdp.-0x3fc # 15b48
rlwinm r24, r22, 6, 26, 29 # 15b4c
addi r25, r25, 0x30 # 15b50
mfsrin r21, r22 # 15b54
lwzx r24, r25, r24 # 15b58
mtsrin r24, r22 # 15b5c
isync # 15b60
mtmsr r23 # 15b64
isync # 15b68
lis r23, -0x8000 # 15b6c
li r26, 0x28 # 15b70
stwbrx r23, r26, r22 # 15b74
eieio # 15b78
li r26, 0x24 # 15b7c
lwbrx r23, r26, r22 # 15b80
li r26, 0x2c # 15b84
lwbrx r26, r26, r22 # 15b88
and r23, r26, r23 # 15b8c
eieio # 15b90
mtmsr r20 # 15b94
isync # 15b98
rlwinm. r28, r23, 0, 11, 11 # 15b9c
li r28, 0x07 # 15ba0
bne- tnt_pih_02_0xd8 # 15ba4
rlwinm r28, r23, 0, 15, 16 # 15ba8
rlwimi. r28, r23, 0, 21, 31 # 15bac
li r28, 0x04 # 15bb0
bne- tnt_pih_02_0xd8 # 15bb4
rlwinm. r28, r23, 0, 17, 17 # 15bb8
li r28, 0x03 # 15bbc
bne- tnt_pih_02_0xd8 # 15bc0
andis. r28, r23, 0x7fea # 15bc4
rlwimi. r28, r23, 0, 18, 19 # 15bc8
li r28, 0x02 # 15bcc
bne- tnt_pih_02_0xd8 # 15bd0
rlwinm. r28, r23, 14, 31, 31 # 15bd4
tnt_pih_02_0xd8:
mtsrin r21, r22 # 15bd8
isync # 15bdc
# r1 = kdp
b interrupt_blue # 15be0
/***********************************************************
major_0x15be4
***********************************************************/
.long 0x4800001c # 15be4
.long 0x60000000 # 15be8
.long 0x60000000 # 15bec
.long 0x60000000 # 15bf0
.long 0x60000000 # 15bf4
.long 0x60000000 # 15bf8
.long 0x60000000 # 15bfc
/***********************************************************
gossamer_pih_07
************************************************************
Gossamer = beige G3. PIH 07 also used for GRX = OldWorld PowerBook G3 Series.
************************************************************
Xrefs:
pih_indirect
************************************************************
> r1 = kdp
***********************************************************/
gossamer_pih_07: /* < outside referer */
mr r8, r8 # 15c00
mr r9, r9 # 15c04
addi r8, r1, -0xb70 # kdp.pih_lock # 15c08
# r8 = lock
bl lock # 15c0c
mr r8, r8 # 15c10
mr r9, r9 # 15c14
# r6 = ewa
bl save_registers_from_r20 # 15c18
# r8 = sprg0 (not used by me)
addi r9, r1, -0x750 # kdp.-0x750 # 15c1c
andis. r8, r11, 0x02 # 15c20
mfspr r30, 275/*sprg3*/ # 15c24
bne- gossamer_pih_07_0x38 # 15c28
lwz r21, 0x0e80( r1) # kdp.0xe80 # 15c2c
addi r21, r21, 0x01 # 15c30
stw r21, 0x0e80( r1) # kdp.0xe80 # 15c34
gossamer_pih_07_0x38:
mtspr 275/*sprg3*/, r9 # 15c38
mfmsr r20 # 15c3c
ori r23, r20, 0x10 # 15c40
lis r22, -0xd00 # 15c44
lwz r25, -0x03fc( r1) # kdp.-0x3fc # 15c48
rlwinm r24, r22, 6, 26, 29 # 15c4c
addi r25, r25, 0x30 # 15c50
mfsrin r21, r22 # 15c54
lwzx r24, r25, r24 # 15c58
mtsrin r24, r22 # 15c5c
isync # 15c60
mtmsr r23 # 15c64
isync # 15c68
lis r23, -0x8000 # 15c6c
li r25, 0x28 # 15c70
stwbrx r23, r25, r22 # 15c74
eieio # 15c78
li r25, 0x24 # 15c7c
lwbrx r23, r25, r22 # 15c80
li r25, 0x2c # 15c84
lwbrx r25, r25, r22 # 15c88
and r23, r25, r23 # 15c8c
eieio # 15c90
lis r24, -0x8000 # 15c94
li r25, 0x18 # 15c98
stwbrx r24, r25, r22 # 15c9c
eieio # 15ca0
li r25, 0x14 # 15ca4
lwbrx r24, r25, r22 # 15ca8
li r25, 0x1c # 15cac
lwbrx r25, r25, r22 # 15cb0
and r24, r25, r24 # 15cb4
eieio # 15cb8
mtmsr r20 # 15cbc
isync # 15cc0
rlwinm. r28, r23, 0, 11, 11 # 15cc4
li r28, 0x07 # 15cc8
bne- gossamer_pih_07_0x118 # 15ccc
rlwinm r28, r23, 0, 15, 16 # 15cd0
rlwimi. r28, r23, 0, 22, 31 # 15cd4
li r28, 0x04 # 15cd8
bne- gossamer_pih_07_0x118 # 15cdc
clrlwi. r28, r24, 0x1e # 15ce0
li r28, 0x04 # 15ce4
bne- gossamer_pih_07_0x118 # 15ce8
rlwinm. r28, r24, 0, 21, 21 # 15cec
li r28, 0x03 # 15cf0
bne- gossamer_pih_07_0x118 # 15cf4
andis. r28, r23, 0x3fea # 15cf8
rlwimi. r28, r23, 0, 17, 20 # 15cfc
li r28, 0x02 # 15d00
bne- gossamer_pih_07_0x118 # 15d04
rlwinm. r28, r24, 0, 20, 20 # 15d08
li r28, 0x01 # 15d0c
bne- gossamer_pih_07_0x118 # 15d10
rlwinm. r28, r23, 14, 31, 31 # 15d14
gossamer_pih_07_0x118:
mtsrin r21, r22 # 15d18
isync # 15d1c
# r1 = kdp
b interrupt_blue # 15d20
/***********************************************************
major_0x15d24
***********************************************************/
.long 0x4800001c # 15d24
.long 0x60000000 # 15d28
.long 0x60000000 # 15d2c
.long 0x60000000 # 15d30
.long 0x60000000 # 15d34
.long 0x60000000 # 15d38
.long 0x60000000 # 15d3c
/***********************************************************
unknown_pih_10
************************************************************
Xrefs:
pih_indirect
************************************************************
> r1 = kdp
***********************************************************/
unknown_pih_10: /* < outside referer */
mr r8, r8 # 15d40
mr r9, r9 # 15d44
addi r8, r1, -0xb70 # kdp.pih_lock # 15d48
# r8 = lock
bl lock # 15d4c
mr r8, r8 # 15d50
mr r9, r9 # 15d54
# r6 = ewa
bl save_registers_from_r20 # 15d58
# r8 = sprg0 (not used by me)
addi r9, r1, -0x750 # kdp.-0x750 # 15d5c
andis. r8, r11, 0x02 # 15d60
mfspr r30, 275/*sprg3*/ # 15d64
bne- unknown_pih_10_0x38 # 15d68
lwz r21, 0x0e80( r1) # kdp.0xe80 # 15d6c
addi r21, r21, 0x01 # 15d70
stw r21, 0x0e80( r1) # kdp.0xe80 # 15d74
unknown_pih_10_0x38:
mtspr 275/*sprg3*/, r9 # 15d78
lwz r26, -0x0020( r1) # kdp.irp # 15d7c
mfmsr r20 # 15d80
ori r23, r20, 0x10 # 15d84
lwz r22, 0x0ec0(r26) # 15d88
lwz r25, -0x03fc( r1) # kdp.-0x3fc # 15d8c
rlwinm r24, r22, 6, 26, 29 # 15d90
addi r25, r25, 0x30 # 15d94
mfsrin r21, r22 # 15d98
lwzx r24, r25, r24 # 15d9c
mtsrin r24, r22 # 15da0
isync # 15da4
mtmsr r23 # 15da8
isync # 15dac
li r23, 0x80 # 15db0
stw r23, 0x0018(r22) # 15db4
eieio # 15db8
lwz r23, 0x0014(r22) # 15dbc
lwz r25, 0x001c(r22) # 15dc0
and r23, r25, r23 # 15dc4
lwz r24, 0x0004(r22) # 15dc8
lwz r25, 0x000c(r22) # 15dcc
and r24, r25, r24 # 15dd0
mtmsr r20 # 15dd4
isync # 15dd8
stw r23, 0x0f28(r26) # 15ddc
stw r24, 0x0f2c(r26) # 15de0
lis r25, 0x00 # 15de4
ori r25, r25, 0x3f60 # 15de8
li r28, 0x07 # 15dec
unknown_pih_10_0xb0:
lwz r26, 0x001c(r25) # 15df0
and. r26, r24, r26 # 15df4
bne- unknown_pih_10_0xd4 # 15df8
lwzu r26, -0x0004(r25) # 15dfc
and. r26, r23, r26 # 15e00
bne- unknown_pih_10_0xd4 # 15e04
addi r28, r28, -0x01 # 15e08
cmplwi r28, 0x00 # 15e0c
bne+ unknown_pih_10_0xb0 # 15e10
unknown_pih_10_0xd4:
mtsrin r21, r22 # 15e14
isync # 15e18
# r1 = kdp
b interrupt_blue # 15e1c
/***********************************************************
major_0x15e20
***********************************************************/
.long 0x48000020 # 15e20
.long 0x60000000 # 15e24
.long 0x60000000 # 15e28
.long 0x60000000 # 15e2c
.long 0x60000000 # 15e30
.long 0x60000000 # 15e34
.long 0x60000000 # 15e38
.long 0x60000000 # 15e3c
/***********************************************************
cordyceps_pih_04
************************************************************
Cordyceps = early low-end "G2" Power Macs. 603 series processors. PCI. Models 52xx-53xx, 62xx-63xx.
************************************************************
Xrefs:
pih_indirect
************************************************************
> r1 = kdp
***********************************************************/
cordyceps_pih_04: /* < outside referer */
mr r8, r8 # 15e40
mr r9, r9 # 15e44
addi r8, r1, -0xb70 # kdp.pih_lock # 15e48
# r8 = lock
bl lock # 15e4c
mr r8, r8 # 15e50
mr r9, r9 # 15e54
# r6 = ewa
bl save_registers_from_r20 # 15e58
# r8 = sprg0 (not used by me)
addi r9, r1, -0x750 # kdp.-0x750 # 15e5c
andis. r8, r11, 0x02 # 15e60
mfspr r30, 275/*sprg3*/ # 15e64
bne- cordyceps_pih_04_0x38 # 15e68
lwz r21, 0x0e80( r1) # kdp.0xe80 # 15e6c
addi r21, r21, 0x01 # 15e70
stw r21, 0x0e80( r1) # kdp.0xe80 # 15e74
cordyceps_pih_04_0x38:
mtspr 275/*sprg3*/, r9 # 15e78
lis r22, 0x5300 # 15e7c
mfmsr r23 # 15e80
mfspr r26, 536/*dbat0u*/ # 15e84
mfspr r27, 537/*dbat0l*/ # 15e88
ori r20, r22, 0x03 # 15e8c
mtspr 536/*dbat0u*/, r20 # 15e90
ori r20, r22, 0x2a # 15e94
mtspr 537/*dbat0l*/, r20 # 15e98
isync # 15e9c
ori r20, r23, 0x10 # 15ea0
mtmsr r20 # 15ea4
isync # 15ea8
lwz r20, 0x001c(r22) # 15eac
sync # 15eb0
lis r20, 0x00 # 15eb4
stw r20, 0x001c(r22) # 15eb8
eieio # 15ebc
lwz r20, 0x001c(r22) # 15ec0
lwz r20, 0x001c(r22) # 15ec4
sync # 15ec8
lwz r28, 0x0024(r22) # 15ecc
sync # 15ed0
xori r28, r28, 0x07 # 15ed4
mtmsr r23 # 15ed8
isync # 15edc
mtspr 537/*dbat0l*/, r27 # 15ee0
mtspr 536/*dbat0u*/, r26 # 15ee4
clrlwi r28, r28, 0x1d # 15ee8
# r1 = kdp
b interrupt_blue # 15eec
/***********************************************************
major_0x15ef0
***********************************************************/
.long 0x48000010 # 15ef0
.long 0x60000000 # 15ef4
.long 0x60000000 # 15ef8
.long 0x60000000 # 15efc
/***********************************************************
newworld_pih_06
************************************************************
Trampoline leaves ConfigInfo value unchanged. PIH 06 also specified in Pippin ROM.
************************************************************
Xrefs:
pih_indirect
************************************************************
> r1 = kdp
***********************************************************/
newworld_pih_06: /* < outside referer */
mr r8, r8 # 15f00
mr r9, r9 # 15f04
addi r8, r1, -0xb70 # kdp.pih_lock # 15f08
# r8 = lock
bl lock # 15f0c
mr r8, r8 # 15f10
mr r9, r9 # 15f14
# r6 = ewa
bl save_registers_from_r20 # 15f18
# r8 = sprg0 (not used by me)
addi r9, r1, -0x750 # kdp.-0x750 # 15f1c
andis. r8, r11, 0x02 # 15f20
mfspr r30, 275/*sprg3*/ # 15f24
bne- newworld_pih_06_0x38 # 15f28
lwz r21, 0x0e80( r1) # kdp.0xe80 # 15f2c
addi r21, r21, 0x01 # 15f30
stw r21, 0x0e80( r1) # kdp.0xe80 # 15f34
newworld_pih_06_0x38:
mtspr 275/*sprg3*/, r9 # 15f38
mfmsr r23 # 15f3c
lwz r20, -0x0020( r1) # kdp.irp # 15f40
lhz r27, 0x0910( r1) # kdp.0x910 # 15f44
lwz r22, 0x0f18(r20) # 15f48
li r28, 0x00 # 15f4c
lwz r25, -0x03fc( r1) # kdp.-0x3fc # 15f50
rlwinm r24, r22, 6, 26, 29 # 15f54
addi r25, r25, 0x30 # 15f58
mfsrin r21, r22 # 15f5c
lwzx r24, r25, r24 # 15f60
mtsrin r24, r22 # 15f64
isync # 15f68
cmpwi cr1, r27, 0x00 # 15f6c
andis. r26, r11, 0x02 # 15f70
beq- cr1, newworld_pih_06_0x23c # 15f74
beq- newworld_pih_06_0x150 # 15f78
lbz r29, 0x0f93(r20) # 15f7c
stb r28, 0x0f93(r20) # 15f80
addi r26, r1, 0x912 # kdp.0x912 # 15f84
cmpwi cr1, r29, 0x07 # 15f88
cmplwi r27, 0x01 # 15f8c
bne+ cr1, newworld_pih_06_0xa8 # 15f90
addi r27, r27, -0x01 # 15f94
ble- newworld_pih_06_0x1fc # 15f98
lbzx r26, r26, r27 # 15f9c
lbz r28, 0x3f00(r26) # 15fa0
b newworld_pih_06_0x1fc # 15fa4
newworld_pih_06_0xa8:
cmplwi r27, 0x01 # 15fa8
addi r27, r27, -0x01 # 15fac
ble- newworld_pih_06_0x1fc # 15fb0
add r26, r26, r27 # 15fb4
addi r27, r20, 0xf93 # 15fb8
lbz r24, 0x0000(r26) # 15fbc
newworld_pih_06_0xc0:
lbzu r28, -0x0001(r27) # 15fc0
cmpw r24, r28 # 15fc4
cmpwi cr1, r28, 0xfe # 15fc8
beq- newworld_pih_06_0xdc # 15fcc
bne+ cr1, newworld_pih_06_0xc0 # 15fd0
li r28, -0x01 # 15fd4
b newworld_pih_06_0x1fc # 15fd8
newworld_pih_06_0xdc:
li r28, 0xff # 15fdc
stb r28, 0x0000(r27) # 15fe0
addi r27, r20, 0xf28 # 15fe4
rlwinm r20, r24, 29, 29, 29 # 15fe8
clrlwi r24, r24, 0x1b # 15fec
lis r28, -0x8000 # 15ff0
add r27, r27, r20 # 15ff4
srw r28, r28, r24 # 15ff8
lwz r24, 0x0000(r27) # 15ffc
andc r24, r24, r28 # 16000
addi r26, r26, -0x01 # 16004
stw r24, 0x0000(r27) # 16008
lbz r26, 0x0000(r26) # 1600c
li r28, 0x00 # 16010
ori r29, r23, 0x10 # 16014
lis r27, 0x02 # 16018
ori r27, r27, 0xb0 # 1601c
mtmsr r29 # 16020
isync # 16024
stwx r28, r22, r27 # 16028
mtmsr r23 # 1602c
isync # 16030
lhz r27, 0x0910( r1) # kdp.0x910 # 16034
cmpwi r26, 0xff # 16038
addi r27, r27, -0x01 # 1603c
beq+ newworld_pih_06_0x148 # 16040
lbz r28, 0x3f00(r26) # 16044
newworld_pih_06_0x148:
sth r27, 0x0910( r1) # kdp.0x910 # 16048
b newworld_pih_06_0x1fc # 1604c
newworld_pih_06_0x150:
lhz r27, 0x0f88(r20) # 16050
ori r20, r23, 0x10 # 16054
lis r26, 0x02 # 16058
ori r26, r26, 160 # 1605c
mtmsr r20 # 16060
isync # 16064
lwbrx r26, r22, r26 # 16068
clrlwi r26, r26, 0x14 # 1606c
cmplwi r26, 0x40 # 16070
cmplwi cr1, r26, 0x41 # 16074
li r29, 0x00 # 16078
beq- newworld_pih_06_0x208 # 1607c
bge- cr1, newworld_pih_06_0x218 # 16080
cmplw r26, r27 # 16084
lis r27, 0x02 # 16088
ori r27, r27, 0xb0 # 1608c
bne+ newworld_pih_06_0x198 # 16090
stwx r29, r22, r27 # 16094
newworld_pih_06_0x198:
mtmsr r23 # 16098
isync # 1609c
lwz r20, -0x0020( r1) # kdp.irp # 160a0
lbz r28, 0x3f00(r26) # 160a4
cmpwi r28, 0x07 # 160a8
bne+ newworld_pih_06_0x1b8 # 160ac
stb r28, 0x0f93(r20) # 160b0
b newworld_pih_06_0x1fc # 160b4
newworld_pih_06_0x1b8:
lhz r27, 0x0910( r1) # kdp.0x910 # 160b8
add r24, r27, r1 # 160bc
addi r27, r27, 0x01 # 160c0
stb r26, 0x0912(r24) # 160c4
rlwinm r25, r26, 29, 29, 29 # 160c8
clrlwi r26, r26, 0x1b # 160cc
lis r24, -0x8000 # 160d0
sth r27, 0x0910( r1) # kdp.0x910 # 160d4
addi r27, r20, 0xf28 # 160d8
add r27, r27, r25 # 160dc
lwz r25, 0x0000(r27) # 160e0
srw r24, r24, r26 # 160e4
or r25, r25, r24 # 160e8
li r24, 0xff # 160ec
stw r25, 0x0000(r27) # 160f0
addi r27, r20, 0xf8c # 160f4
stbx r24, r28, r27 # 160f8
newworld_pih_06_0x1fc:
mtsrin r21, r22 # 160fc
isync # 16100
# r1 = kdp
b interrupt_blue # 16104
newworld_pih_06_0x208:
mtmsr r23 # 16108
isync # 1610c
li r28, -0x01 # 16110
b newworld_pih_06_0x1fc # 16114
newworld_pih_06_0x218:
lis r27, 0x02 # 16118
ori r27, r27, 0xb0 # 1611c
li r29, 0x00 # 16120
stwx r29, r22, r27 # 16124
eieio # 16128
mtmsr r23 # 1612c
isync # 16130
li r28, -0x01 # 16134
b newworld_pih_06_0x1fc # 16138
newworld_pih_06_0x23c:
addi r27, r27, 0x01 # 1613c
li r28, -0x01 # 16140
sth r27, 0x0910( r1) # kdp.0x910 # 16144
stw r28, 0x0912( r1) # kdp.0x912 # 16148
stw r28, 0x0f90(r20) # 1614c
xoris r28, r28, 0x100 # 16150
stw r28, 0x0f8c(r20) # 16154
li r28, 0x00 # 16158
b newworld_pih_06_0x1fc # 1615c
/***********************************************************
major_0x16160
***********************************************************/
.long 0x48000020 # 16160
.long 0x60000000 # 16164
.long 0x60000000 # 16168
.long 0x60000000 # 1616c
.long 0x60000000 # 16170
.long 0x60000000 # 16174
.long 0x60000000 # 16178
.long 0x60000000 # 1617c
/***********************************************************
unknown_pih_08
************************************************************
Xrefs:
pih_indirect
************************************************************
> r1 = kdp
***********************************************************/
unknown_pih_08: /* < outside referer */
mr r8, r8 # 16180
mr r9, r9 # 16184
addi r8, r1, -0xb70 # kdp.pih_lock # 16188
# r8 = lock
bl lock # 1618c
mr r8, r8 # 16190
mr r9, r9 # 16194
# r6 = ewa
bl save_registers_from_r20 # 16198
# r8 = sprg0 (not used by me)
addi r9, r1, -0x750 # kdp.-0x750 # 1619c
andis. r8, r11, 0x02 # 161a0
mfspr r30, 275/*sprg3*/ # 161a4
bne- unknown_pih_08_0x38 # 161a8
lwz r21, 0x0e80( r1) # kdp.0xe80 # 161ac
addi r21, r21, 0x01 # 161b0
stw r21, 0x0e80( r1) # kdp.0xe80 # 161b4
unknown_pih_08_0x38:
mtspr 275/*sprg3*/, r9 # 161b8
mfmsr r23 # 161bc
lwz r20, -0x0020( r1) # kdp.irp # 161c0
lhz r27, 0x0910( r1) # kdp.0x910 # 161c4
lwz r22, 0x0f18(r20) # 161c8
li r28, 0x00 # 161cc
lwz r25, -0x03fc( r1) # kdp.-0x3fc # 161d0
rlwinm r24, r22, 6, 26, 29 # 161d4
addi r25, r25, 0x30 # 161d8
mfsrin r21, r22 # 161dc
lwzx r24, r25, r24 # 161e0
mtsrin r24, r22 # 161e4
isync # 161e8
cmpwi cr1, r27, 0x00 # 161ec
andis. r26, r11, 0x02 # 161f0
beq- cr1, unknown_pih_08_0x23c # 161f4
beq- unknown_pih_08_0x170 # 161f8
cmplwi r27, 0x01 # 161fc
ble- unknown_pih_08_0x1f8 # 16200
addi r27, r27, -0x01 # 16204
addi r26, r1, 0x912 # kdp.0x912 # 16208
add r26, r26, r27 # 1620c
addi r27, r20, 0xee0 # 16210
lbz r24, 0x0000(r26) # 16214
mr r29, r24 # 16218
cmpwi r24, 0x20 # 1621c
blt+ unknown_pih_08_0xac # 16220
addi r27, r27, 0x04 # 16224
addi r24, r24, -0x20 # 16228
unknown_pih_08_0xac:
lwz r27, 0x0000(r27) # 1622c
lis r28, -0x8000 # 16230
srw r28, r28, r24 # 16234
and. r27, r27, r28 # 16238
bne- unknown_pih_08_0xc8 # 1623c
li r28, -0x01 # 16240
b unknown_pih_08_0x1f8 # 16244
unknown_pih_08_0xc8:
addi r27, r20, 0xec4 # 16248
cmpwi r29, 0x20 # 1624c
blt+ unknown_pih_08_0xd8 # 16250
addi r27, r27, 0x04 # 16254
unknown_pih_08_0xd8:
lwz r24, 0x0000(r27) # 16258
andc r24, r24, r28 # 1625c
stw r24, 0x0000(r27) # 16260
addi r27, r20, 0xee0 # 16264
cmpwi r29, 0x20 # 16268
blt+ unknown_pih_08_0xf4 # 1626c
addi r27, r27, 0x04 # 16270
unknown_pih_08_0xf4:
lwz r29, 0x0000(r27) # 16274
andc r29, r29, r28 # 16278
stw r29, 0x0000(r27) # 1627c
addi r26, r26, -0x01 # 16280
lbz r26, 0x0000(r26) # 16284
cmpwi r26, 0xff # 16288
beq- unknown_pih_08_0x114 # 1628c
b unknown_pih_08_0x118 # 16290
unknown_pih_08_0x114:
li r26, 0x800 # 16294
unknown_pih_08_0x118:
ori r28, r23, 0x10 # 16298
lis r27, 0x02 # 1629c
ori r27, r27, 0xb0 # 162a0
mtmsr r28 # 162a4
isync # 162a8
li r28, 0x00 # 162ac
stwx r28, r22, r27 # 162b0
eieio # 162b4
cmpwi r26, 0x800 # 162b8
beq- unknown_pih_08_0x158 # 162bc
lis r28, 0x01 # 162c0
ori r28, r28, 0x00 # 162c4
rlwinm r27, r26, 5, 16, 31 # 162c8
add r28, r28, r27 # 162cc
lwbrx r28, r22, r28 # 162d0
rlwinm r28, r28, 16, 28, 31 # 162d4
unknown_pih_08_0x158:
mtmsr r23 # 162d8
isync # 162dc
lhz r27, 0x0910( r1) # kdp.0x910 # 162e0
addi r27, r27, -0x01 # 162e4
sth r27, 0x0910( r1) # kdp.0x910 # 162e8
b unknown_pih_08_0x1f8 # 162ec
unknown_pih_08_0x170:
ori r27, r23, 0x10 # 162f0
lis r26, 0x02 # 162f4
ori r26, r26, 160 # 162f8
lis r28, 0x01 # 162fc
ori r28, r28, 0x00 # 16300
mtmsr r27 # 16304
isync # 16308
lwbrx r26, r22, r26 # 1630c
clrlwi r26, r26, 0x14 # 16310
cmplwi r26, 0x31 # 16314
cmplwi cr1, r26, 0x28 # 16318
beq- unknown_pih_08_0x204 # 1631c
bge- cr1, unknown_pih_08_0x214 # 16320
rlwinm r27, r26, 5, 16, 31 # 16324
add r28, r28, r27 # 16328
lwbrx r28, r22, r28 # 1632c
rlwinm r28, r28, 16, 28, 31 # 16330
mtmsr r23 # 16334
isync # 16338
lhz r27, 0x0910( r1) # kdp.0x910 # 1633c
add r24, r27, r1 # 16340
addi r27, r27, 0x01 # 16344
stb r26, 0x0912(r24) # 16348
sth r27, 0x0910( r1) # kdp.0x910 # 1634c
addi r27, r20, 0xec4 # 16350
cmpwi r26, 0x20 # 16354
blt+ unknown_pih_08_0x1e4 # 16358
addi r27, r27, 0x04 # 1635c
addi r26, r26, -0x20 # 16360
unknown_pih_08_0x1e4:
lwz r25, 0x0000(r27) # 16364
lis r24, -0x8000 # 16368
srw r24, r24, r26 # 1636c
or r25, r25, r24 # 16370
stw r25, 0x0000(r27) # 16374
unknown_pih_08_0x1f8:
mtsrin r21, r22 # 16378
isync # 1637c
# r1 = kdp
b interrupt_blue # 16380
unknown_pih_08_0x204:
mtmsr r23 # 16384
isync # 16388
li r28, -0x01 # 1638c
b unknown_pih_08_0x1f8 # 16390
unknown_pih_08_0x214:
lis r27, 0x02 # 16394
ori r27, r27, 0xb0 # 16398
li r29, 0x00 # 1639c
stwx r29, r22, r27 # 163a0
eieio # 163a4
mtmsr r23 # 163a8
isync # 163ac
li r28, 0x06 # 163b0
li r28, -0x01 # 163b4
b unknown_pih_08_0x1f8 # 163b8
unknown_pih_08_0x23c:
addi r27, r27, 0x01 # 163bc
li r28, -0x01 # 163c0
sth r27, 0x0910( r1) # kdp.0x910 # 163c4
stw r28, 0x0912( r1) # kdp.0x912 # 163c8
li r28, 0x00 # 163cc
stw r28, 0x0ee4(r20) # 163d0
stw r28, 0x0ee0(r20) # 163d4
b unknown_pih_08_0x1f8 # 163d8
/***********************************************************
major_0x163dc
***********************************************************/
.long 0x60000000 # 163dc
/***********************************************************
print
************************************************************
Xrefs:
replace_old_kernel
new_world
setup
undo_failed_kernel_replacement
lock
spinlock_what
major_0x02ccc
major_0x035a0
major_0x03940
major_0x04300
reset_trap
non_skeleton_reset_trap
major_0x04c20
major_0x08794
NKRegisterCpuPlugin
major_0x0bb20
major_0x0bc2c
major_0x0bccc
NKxprintf
major_0x0beac
major_0x0bed8
major_0x0c070
NKSetClockStep
NKSetClockDriftCorrection
convert_pmdts_to_areas
NKCreateAddressSpaceSub
createarea
major_0x10320
major_0x12248
poolextend
say_nanodebugger_activated
say_starting_timeslicing
init_rdyqs
major_0x14bcc
panic
print_xpt_info
print_sprgs
print_sprs
print_segment_registers
print_gprs
print_memory
print_memory_logical
***********************************************************/
print_string: /* < outside referer */
mfspr r1, 272/*sprg0*/ # 163e0
stmw r24, -0x0108( r1) # 163e4
mflr r24 # 163e8
mfcr r25 # 163ec
stw r24, -0x0110( r1) # 163f0
stw r25, -0x010c( r1) # 163f4
lwz r1, -0x0004( r1) # 163f8
lwz r28, -0x0900( r1) # 163fc
lwz r29, 0x0edc( r1) # 16400
mr r30, r8 # 16404
mr r31, r9 # 16408
addi r8, r1, -0xaf0 # 1640c
# r8 = lock
bl lock # 16410
mr r8, r30 # 16414
mr r9, r31 # 16418
cmpwi cr7, r28, 0x00 # 1641c
andi. r29, r29, 0x02 # 16420
beq- cr7, print_0x5c # 16424
crmove r30, r2 # 16428
beq- print_0x5c # 1642c
mfmsr r31 # 16430
bl involves_srrs_pvr_bat_msr # 16434
bl lots_of_eieios # 16438
print_0x5c:
addi r8, r8, -0x01 # 1643c
print_0x60:
bl r31_to_MSR_after_busywait_2r28_bit3_withDRforced
lbzu r29, 0x0001( r8) # 16444
cmpwi r29, 0x00 # 16448
beq- print_0x140 # 1644c
cmpwi r29, 0x0a # 16450
beq- print_0xe8 # 16454
cmpwi r29, 0x0d # 16458
beq- print_0xe8 # 1645c
cmpwi r29, 0x5c # 16460
beq- print_0x90 # 16464
cmpwi r29, 0x5e # 16468
bne- print_0xbc # 1646c
print_0x90:
lbzu r29, 0x0001( r8) # 16470
cmpwi r29, 110 # 16474
beq- print_0xe8 # 16478
cmpwi r29, 0x72 # 1647c
beq- print_0xe8 # 16480
cmpwi r29, 0x62 # 16484
bne- print_0xb4 # 16488
li r29, 0x07 # 1648c
b print_0xbc # 16490
print_0xb4:
lbzu r29, -0x0001( r8) # 16494
addi r8, r8, 0x01 # 16498
print_0xbc:
mr r24, r29 # 1649c
bl major_0x18a74 # 164a0
beq- cr7, print_0xe4 # 164a4
ori r30, r31, 0x10 # 164a8
mtmsr r30 # 164ac
isync # 164b0
stb r24, 0x0006(r28) # 164b4
eieio # 164b8
mtmsr r31 # 164bc
isync # 164c0
print_0xe4:
b print_0x60 # 164c4
print_0xe8:
li r29, 0x0d # 164c8
bl major_0x18a74 # 164cc
li r29, 0x0a # 164d0
bl major_0x18a74 # 164d4
bl major_0x18a98 # 164d8
beq- cr7, print_0x13c # 164dc
ori r30, r31, 0x10 # 164e0
mtmsr r30 # 164e4
isync # 164e8
li r29, 0x0d # 164ec
stb r29, 0x0006(r28) # 164f0
eieio # 164f4
print_0x118:
lbz r29, 0x0002(r28) # 164f8
eieio # 164fc
andi. r29, r29, 0x04 # 16500
beq+ print_0x118 # 16504
li r29, 0x0a # 16508
stb r29, 0x0006(r28) # 1650c
eieio # 16510
mtmsr r31 # 16514
isync # 16518
print_0x13c:
b print_0x60 # 1651c
print_0x140:
beq- cr7, print_0x1cc # 16520
mtmsr r31 # 16524
isync # 16528
lwz r29, -0x0438( r1) # 1652c
srwi r29, r29, 8 # 16530
mfspr r30, 22/*dec*/ # 16534
subf r29, r29, r30 # 16538
ori r30, r31, 0x10 # 1653c
mtmsr r30 # 16540
isync # 16544
print_0x168:
mfspr r30, 22/*dec*/ # 16548
subf. r30, r29, r30 # 1654c
ble- print_0x190 # 16550
li r30, 0x01 # 16554
stb r30, 0x0002(r28) # 16558
eieio # 1655c
lbz r30, 0x0002(r28) # 16560
eieio # 16564
andi. r30, r30, 0x01 # 16568
beq+ print_0x168 # 1656c
print_0x190:
sync # 16570
mtmsr r31 # 16574
isync # 16578
mfspr r30, 287/*pvr*/ # 1657c
rlwinm. r30, r30, 0, 0, 14 # 16580
li r31, 0x00 # 16584
beq- print_0x1b8 # 16588
mtspr 542/*dbat3u*/, r31 # 1658c
mtspr 543/*dbat3l*/, r31 # 16590
b print_0x1c0 # 16594
print_0x1b8:
mtspr 535/*ibat3l*/, r31 # 16598
mtspr 534/*ibat3u*/, r31 # 1659c
print_0x1c0:
isync # 165a0
mtspr 26/*srr0*/, r26 # 165a4
mtspr 27/*srr1*/, r27 # 165a8
print_0x1cc:
sync # 165ac
lwz r30, -0x0af0( r1) # 165b0
cmpwi cr1, r30, 0x00 # 165b4
li r30, 0x00 # 165b8
bne+ cr1, print_0x1e8 # 165bc
mflr r30 # 165c0
bl panic # 165c4
print_0x1e8:
stw r30, -0x0af0( r1) # 165c8
print_0x1ec:
mfspr r1, 272/*sprg0*/ # 165cc
lwz r24, -0x0110( r1) # 165d0
lwz r25, -0x010c( r1) # 165d4
mtlr r24 # 165d8
mtcr r25 # 165dc
lmw r24, -0x0108( r1) # 165e0
lwz r1, -0x0004( r1) # 165e4
blr # 165e8
print_decimal: /* < outside referer */
mfspr r1, 272/*sprg0*/ # 165ec
stmw r24, -0x0108( r1) # 165f0
mflr r24 # 165f4
mfcr r25 # 165f8
stw r24, -0x0110( r1) # 165fc
stw r25, -0x010c( r1) # 16600
lwz r1, -0x0004( r1) # 16604
lwz r28, -0x0900( r1) # 16608
lwz r29, 0x0edc( r1) # 1660c
mr r30, r8 # 16610
mr r31, r9 # 16614
addi r8, r1, -0xaf0 # 16618
# r8 = lock
bl lock # 1661c
mr r8, r30 # 16620
mr r9, r31 # 16624
cmpwi cr7, r28, 0x00 # 16628
andi. r29, r29, 0x02 # 1662c
beq- cr7, print_0x264 # 16630
crmove r30, r2 # 16634
beq- print_0x264 # 16638
bl involves_srrs_pvr_bat_msr # 1663c
bl lots_of_eieios # 16640
print_0x264:
cmpwi r8, 0x00 # 16644
li r25, 0x2d # 16648
blt- print_0x2a8 # 1664c
print_0x270:
mr. r24, r8 # 16650
li r25, 0x30 # 16654
beq- print_0x2a8 # 16658
lis r24, 0x3b9a # 1665c
ori r24, r24, 0xca00 # 16660
print_0x284:
divw. r25, r8, r24 # 16664
bne- print_0x298 # 16668
li r25, 0x0a # 1666c
divw r24, r24, r25 # 16670
b print_0x284 # 16674
print_0x298:
divw r29, r8, r24 # 16678
addi r25, r29, 0x30 # 1667c
mullw r29, r29, r24 # 16680
subf r8, r29, r8 # 16684
print_0x2a8:
bl r31_to_MSR_after_busywait_2r28_bit3_withDRforced
mr r29, r25 # 1668c
bl major_0x18a74 # 16690
beq- cr7, print_0x2d4 # 16694
ori r30, r31, 0x10 # 16698
mtmsr r30 # 1669c
isync # 166a0
stb r25, 0x0006(r28) # 166a4
eieio # 166a8
mtmsr r31 # 166ac
isync # 166b0
print_0x2d4:
cmpwi r8, 0x00 # 166b4
bge- print_0x2e4 # 166b8
neg r8, r8 # 166bc
b print_0x270 # 166c0
print_0x2e4:
li r25, 0x0a # 166c4
divw. r24, r24, r25 # 166c8
bne+ print_0x298 # 166cc
li r29, 0x20 # 166d0
bl major_0x18a74 # 166d4
beq- cr7, print_0x32c # 166d8
ori r30, r31, 0x10 # 166dc
mtmsr r30 # 166e0
isync # 166e4
print_0x308:
lbz r30, 0x0002(r28) # 166e8
eieio # 166ec
andi. r30, r30, 0x04 # 166f0
beq+ print_0x308 # 166f4
li r29, 0x20 # 166f8
stb r29, 0x0006(r28) # 166fc
eieio # 16700
mtmsr r31 # 16704
isync # 16708
print_0x32c:
b print_0x140 # 1670c
print_hexword_spc: /* < outside referer */
mfspr r1, 272/*sprg0*/ # 16710
stmw r24, -0x0108( r1) # 16714
mflr r24 # 16718
mfcr r25 # 1671c
stw r24, -0x0110( r1) # 16720
stw r25, -0x010c( r1) # 16724
li r24, 0x08 # 16728
crset 4*cr6 + eq # 1672c
b print_0x3cc # 16730
print_hexshort: /* < outside referer */
mfspr r1, 272/*sprg0*/ # 16734
stmw r24, -0x0108( r1) # 16738
mflr r24 # 1673c
mfcr r25 # 16740
stw r24, -0x0110( r1) # 16744
stw r25, -0x010c( r1) # 16748
li r24, 0x04 # 1674c
rotlwi r8, r8, 0x10 # 16750
crset 4*cr6 + eq # 16754
b print_0x3cc # 16758
print_twodig_decimal: /* < outside referer */
mfspr r1, 272/*sprg0*/ # 1675c
stmw r24, -0x0108( r1) # 16760
mflr r24 # 16764
mfcr r25 # 16768
stw r24, -0x0110( r1) # 1676c
stw r25, -0x010c( r1) # 16770
li r24, 0x02 # 16774
rotlwi r8, r8, 0x18 # 16778
crset 4*cr6 + eq # 1677c
b print_0x3cc # 16780
print_0x3a4: /* < outside referer */
mfspr r1, 272/*sprg0*/ # 16784
stmw r24, -0x0108( r1) # 16788
mflr r24 # 1678c
mfcr r25 # 16790
stw r24, -0x0110( r1) # 16794
stw r25, -0x010c( r1) # 16798
li r24, 0x02 # 1679c
rotlwi r8, r8, 0x18 # 167a0
crclr 4*cr6 + eq # 167a4
b print_0x3cc # 167a8
print_0x3cc:
lwz r1, -0x0004( r1) # 167ac
lwz r28, -0x0900( r1) # 167b0
lwz r29, 0x0edc( r1) # 167b4
mr r30, r8 # 167b8
mr r31, r9 # 167bc
addi r8, r1, -0xaf0 # 167c0
# r8 = lock
bl lock # 167c4
mr r8, r30 # 167c8
mr r9, r31 # 167cc
cmpwi cr7, r28, 0x00 # 167d0
andi. r29, r29, 0x02 # 167d4
beq- cr7, print_0x40c # 167d8
crmove r30, r2 # 167dc
beq- print_0x40c # 167e0
bl involves_srrs_pvr_bat_msr # 167e4
bl lots_of_eieios # 167e8
print_0x40c:
bl r31_to_MSR_after_busywait_2r28_bit3_withDRforced
li r25, 0x30 # 167f0
rlwimi r25, r8, 4, 28, 31 # 167f4
rotlwi r8, r8, 0x04 # 167f8
cmpwi r25, 0x39 # 167fc
ble- print_0x428 # 16800
addi r25, r25, 0x27 # 16804
print_0x428:
mr r29, r25 # 16808
bl major_0x18a74 # 1680c
beq- cr7, print_0x450 # 16810
ori r30, r31, 0x10 # 16814
mtmsr r30 # 16818
isync # 1681c
stb r25, 0x0006(r28) # 16820
eieio # 16824
mtmsr r31 # 16828
isync # 1682c
print_0x450:
addi r24, r24, -0x01 # 16830
mr. r24, r24 # 16834
bne+ print_0x40c # 16838
bne- cr6, print_0x49c # 1683c
li r29, 0x20 # 16840
bl major_0x18a74 # 16844
beq- cr7, print_0x49c # 16848
ori r30, r31, 0x10 # 1684c
mtmsr r30 # 16850
isync # 16854
print_0x478:
lbz r30, 0x0002(r28) # 16858
eieio # 1685c
andi. r30, r30, 0x04 # 16860
beq+ print_0x478 # 16864
li r29, 0x20 # 16868
stb r29, 0x0006(r28) # 1686c
eieio # 16870
mtmsr r31 # 16874
isync # 16878
print_0x49c:
b print_0x140 # 1687c
print_for_panic: /* < outside referer */
mfspr r1, 272/*sprg0*/ # 16880
stmw r24, -0x0108( r1) # 16884
mflr r24 # 16888
mfcr r25 # 1688c
stw r24, -0x0110( r1) # 16890
stw r25, -0x010c( r1) # 16894
lwz r1, -0x0004( r1) # 16898
lwz r28, -0x0900( r1) # 1689c
cmpwi cr7, r28, 0x00 # 168a0
li r8, -0x01 # 168a4
beq+ cr7, print_0x1ec # 168a8
mr r30, r8 # 168ac
mr r31, r9 # 168b0
addi r8, r1, -0xaf0 # 168b4
# r8 = lock
bl lock # 168b8
mr r8, r30 # 168bc
mr r9, r31 # 168c0
bl involves_srrs_pvr_bat_msr # 168c4
ori r30, r31, 0x10 # 168c8
mtmsr r30 # 168cc
isync # 168d0
lbz r30, 0x0002(r28) # 168d4
eieio # 168d8
andi. r30, r30, 0x01 # 168dc
beq+ print_0x140 # 168e0
lbz r8, 0x0006(r28) # 168e4
b print_0x140 # 168e8
print_char: /* < outside referer */
mfspr r1, 272/*sprg0*/ # 168ec
stmw r24, -0x0108( r1) # 168f0
mflr r24 # 168f4
mfcr r25 # 168f8
stw r24, -0x0110( r1) # 168fc
stw r25, -0x010c( r1) # 16900
lwz r1, -0x0004( r1) # 16904
lwz r28, -0x0900( r1) # 16908
lwz r29, 0x0edc( r1) # 1690c
mr r30, r8 # 16910
mr r31, r9 # 16914
addi r8, r1, -0xaf0 # 16918
# r8 = lock
bl lock # 1691c
mr r8, r30 # 16920
mr r9, r31 # 16924
cmpwi cr7, r28, 0x00 # 16928
andi. r29, r29, 0x02 # 1692c
beq- cr7, print_0x564 # 16930
crmove r30, r2 # 16934
beq- print_0x564 # 16938
bl involves_srrs_pvr_bat_msr # 1693c
bl lots_of_eieios # 16940
print_0x564:
mr r29, r8 # 16944
bl major_0x18a74 # 16948
beq- cr7, print_0x59c # 1694c
ori r30, r31, 0x10 # 16950
mtmsr r30 # 16954
isync # 16958
print_0x57c:
lbz r30, 0x0002(r28) # 1695c
eieio # 16960
andi. r30, r30, 0x04 # 16964
beq+ print_0x57c # 16968
stb r8, 0x0006(r28) # 1696c
eieio # 16970
mtmsr r31 # 16974
isync # 16978
print_0x59c:
b print_0x140 # 1697c
/***********************************************************
lots_of_eieios
************************************************************
Xrefs:
print
***********************************************************/
lots_of_eieios: /* < outside referer */
ori r30, r31, 0x10 # 16980
mtmsr r30 # 16984
isync # 16988
lbz r29, 0x0002(r28) # 1698c
li r29, 0x09 # 16990
stb r29, 0x0002(r28) # 16994
eieio # 16998
li r29, 0x80 # 1699c
stb r29, 0x0002(r28) # 169a0
eieio # 169a4
lbz r29, 0x0002(r28) # 169a8
li r29, 0x04 # 169ac
stb r29, 0x0002(r28) # 169b0
eieio # 169b4
li r29, 0x48 # 169b8
stb r29, 0x0002(r28) # 169bc
eieio # 169c0
lbz r29, 0x0002(r28) # 169c4
li r29, 0x03 # 169c8
stb r29, 0x0002(r28) # 169cc
eieio # 169d0
li r29, 0xc0 # 169d4
stb r29, 0x0002(r28) # 169d8
eieio # 169dc
lbz r29, 0x0002(r28) # 169e0
li r29, 0x05 # 169e4
stb r29, 0x0002(r28) # 169e8
eieio # 169ec
li r29, 0x60 # 169f0
stb r29, 0x0002(r28) # 169f4
eieio # 169f8
lbz r29, 0x0002(r28) # 169fc
li r29, 0x09 # 16a00
stb r29, 0x0002(r28) # 16a04
eieio # 16a08
li r29, 0x00 # 16a0c
stb r29, 0x0002(r28) # 16a10
eieio # 16a14
lbz r29, 0x0002(r28) # 16a18
li r29, 0x0a # 16a1c
stb r29, 0x0002(r28) # 16a20
eieio # 16a24
li r29, 0x00 # 16a28
stb r29, 0x0002(r28) # 16a2c
eieio # 16a30
lbz r29, 0x0002(r28) # 16a34
li r29, 0x0b # 16a38
stb r29, 0x0002(r28) # 16a3c
eieio # 16a40
li r29, 0x50 # 16a44
stb r29, 0x0002(r28) # 16a48
eieio # 16a4c
lbz r29, 0x0002(r28) # 16a50
li r29, 0x0c # 16a54
stb r29, 0x0002(r28) # 16a58
eieio # 16a5c
li r29, 0x00 # 16a60
stb r29, 0x0002(r28) # 16a64
eieio # 16a68
lbz r29, 0x0002(r28) # 16a6c
li r29, 0x0d # 16a70
stb r29, 0x0002(r28) # 16a74
eieio # 16a78
li r29, 0x00 # 16a7c
stb r29, 0x0002(r28) # 16a80
eieio # 16a84
lbz r29, 0x0002(r28) # 16a88
li r29, 0x0e # 16a8c
stb r29, 0x0002(r28) # 16a90
eieio # 16a94
li r29, 0x01 # 16a98
stb r29, 0x0002(r28) # 16a9c
eieio # 16aa0
lbz r29, 0x0002(r28) # 16aa4
li r29, 0x03 # 16aa8
stb r29, 0x0002(r28) # 16aac
eieio # 16ab0
li r29, 0xc1 # 16ab4
stb r29, 0x0002(r28) # 16ab8
eieio # 16abc
lbz r29, 0x0002(r28) # 16ac0
li r29, 0x05 # 16ac4
stb r29, 0x0002(r28) # 16ac8
eieio # 16acc
li r29, 0xea # 16ad0
stb r29, 0x0002(r28) # 16ad4
eieio # 16ad8
mtmsr r31 # 16adc
isync # 16ae0
blr # 16ae4
/***********************************************************
involves_srrs_pvr_bat_msr
************************************************************
Xrefs:
print
***********************************************************/
involves_srrs_pvr_bat_msr: /* < outside referer */
mfspr r26, 26/*srr0*/ # 16ae8
mfspr r27, 27/*srr1*/ # 16aec
isync # 16af0
mfspr r30, 287/*pvr*/ # 16af4
rlwinm. r30, r30, 0, 0, 14 # 16af8
rlwinm r29, r28, 0, 0, 14 # 16afc
beq- involves_srrs_pvr_bat_msr_0x38 # 16b00
li r30, 0x03 # 16b04
or r30, r30, r29 # 16b08
li r31, 0x3a # 16b0c
or r31, r31, r29 # 16b10
mtspr 543/*dbat3l*/, r31 # 16b14
mtspr 542/*dbat3u*/, r30 # 16b18
b involves_srrs_pvr_bat_msr_0x50 # 16b1c
involves_srrs_pvr_bat_msr_0x38:
li r30, 0x32 # 16b20
or r30, r30, r29 # 16b24
li r31, 0x40 # 16b28
or r31, r31, r29 # 16b2c
mtspr 534/*ibat3u*/, r30 # 16b30
mtspr 535/*ibat3l*/, r31 # 16b34
involves_srrs_pvr_bat_msr_0x50:
isync # 16b38
mfmsr r31 # 16b3c
blr # 16b40
/***********************************************************
r31_to_MSR_after_busywait_2r28_bit3_withDRforced
************************************************************
Xrefs:
print
***********************************************************/
r31_to_MSR_after_busywait_2r28_bit3_withDRforced: /* < outside referer */
beqlr- cr7 # 16b44
ori r30, r31, 0x10 # 16b48
mtmsr r30 # 16b4c
isync # 16b50
r31_to_MSR_after_busywait_2r28_bit3_withDRforced_0x10:
lbz r30, 0x0002(r28) # 16b54
eieio # 16b58
andi. r30, r30, 0x04 # 16b5c
beq+ r31_to_MSR_after_busywait_2r28_bit3_withDRforced_0x10
mtmsr r31 # 16b64
isync # 16b68
blr # 16b6c
/***********************************************************
major_0x16b70
***********************************************************/
.long 0x48000010 # 16b70
.long 0x60000000 # 16b74
.long 0x60000000 # 16b78
.long 0x60000000 # 16b7c
/***********************************************************
major_0x16b80
************************************************************
Xrefs:
major_0x16b90
major_0x16bb4
***********************************************************/
.long 0x48000760 # 16b80
major_0x16b80_0x4: /* < outside referer */
b syscall_return_paramErr # 16b84
major_0x16b80_0x8: /* < outside referer */
b syscall_return_kMPInsufficientResourcesErr # 16b88
major_0x16b80_0xc: /* < outside referer */
b syscall_return # 16b8c
/***********************************************************
major_0x16b90
************************************************************
syscall 102
************************************************************
Xrefs:
syscall
***********************************************************/
major_0x16b90: /* < outside referer */
mfspr r9, 272/*sprg0*/ # 16b90
lwz r8, -0x0338( r9) # 16b94
lwz r9, 0x0024( r8) # 16b98
cmpwi r9, 0x01 # 16b9c
bgt+ major_0x16b80_0x8 # 16ba0
bl major_0x16bb4_0x4bc # 16ba4
mr r4, r8 # 16ba8
mr r5, r9 # 16bac
b syscall_return_noErr # 16bb0
/***********************************************************
major_0x16bb4
************************************************************
syscall 103
************************************************************
Xrefs:
syscall
major_0x16b90
***********************************************************/
major_0x16bb4: /* < outside referer */
mfspr r9, 272/*sprg0*/ # 16bb4
lwz r8, -0x0338( r9) # 16bb8
lwz r9, 0x0024( r8) # 16bbc
cmpwi r9, 0x01 # 16bc0
bgt+ major_0x16b80_0x8 # 16bc4
clrlwi. r8, r5, 0x14 # 16bc8
bne+ major_0x16b80_0x4 # 16bcc
bl major_0x16bb4_0x4bc # 16bd0
cmpw r3, r8 # 16bd4
blt+ major_0x16b80_0x4 # 16bd8
cmpw r4, r9 # 16bdc
blt+ major_0x16b80_0x4 # 16be0
bl major_0x055e0 # 16be4
mfspr r9, 272/*sprg0*/ # 16be8
mfxer r8 # 16bec
stw r13, 0x00dc( r6) # 16bf0
stw r8, 0x00d4( r6) # 16bf4
stw r12, 0x00ec( r6) # 16bf8
mfctr r8 # 16bfc
stw r10, 0x00fc( r6) # 16c00
stw r8, 0x00f4( r6) # 16c04
mfspr r8, 287/*pvr*/ # 16c08
rlwinm. r8, r8, 0, 0, 14 # 16c0c
bne- major_0x16bb4_0x68 # 16c10
mfspr r8, 0/*mq*/ # 16c14
stw r8, 0x00c4( r6) # 16c18
major_0x16bb4_0x68:
lwz r8, 0x0004( r9) # 16c1c
stw r8, 0x010c( r6) # 16c20
stw r2, 0x0114( r6) # 16c24
stw r3, 0x011c( r6) # 16c28
andi. r8, r11, 0x2000 # 16c2c
stw r4, 0x0124( r6) # 16c30
lwz r8, 0x0018( r9) # 16c34
stw r5, 0x012c( r6) # 16c38
stw r8, 0x0134( r6) # 16c3c
bnel+ major_0x13988 # 16c40
rlwinm. r8, r7, 0, 12, 12 # 16c44
bnel+ major_0x13c90 # 16c48
lwz r3, 0x011c( r6) # 16c4c
lwz r4, 0x0124( r6) # 16c50
lwz r5, 0x012c( r6) # 16c54
stw r11, 0x00a4( r6) # 16c58
mr r27, r5 # 16c5c
addi r29, r1, 800 # 16c60
bl major_0x054b8 # 16c64
beq+ major_0x16b80_0x8 # 16c68
rlwimi r27, r31, 0, 0, 19 # 16c6c
mr r17, r27 # 16c70
addi r15, r17, 0x34 # 16c74
srwi r3, r3, 12 # 16c78
major_0x16bb4_0xc8:
mr r27, r5 # 16c7c
addi r29, r1, 800 # 16c80
bl major_0x054b8 # 16c84
beq+ major_0x16b80_0x8 # 16c88
rlwimi r27, r31, 0, 0, 19 # 16c8c
stwu r27, 0x0004(r15) # 16c90
addi r3, r3, -0x01 # 16c94
addi r5, r5, 0x1000 # 16c98
cmpwi r3, 0x00 # 16c9c
bge+ major_0x16bb4_0xc8 # 16ca0
addi r15, r15, 0x04 # 16ca4
subf r15, r17, r15 # 16ca8
stw r15, 0x0034(r17) # 16cac
mfspr r15, 272/*sprg0*/ # 16cb0
stw r15, 0x0024(r17) # 16cb4
mfspr r8, 275/*sprg3*/ # 16cb8
stw r8, 0x0028(r17) # 16cbc
major_0x16bb4_0x10c:
mftbu r8 # 16cc0
mftb r9, 0x10c # 16cc4
mftbu r16 # 16cc8
cmpw r16, r8 # 16ccc
bne+ major_0x16bb4_0x10c # 16cd0
stw r8, -0x0278(r15) # 16cd4
stw r9, -0x0274(r15) # 16cd8
mr r29, r17 # 16cdc
li r16, 0x06 # 16ce0
stw r16, -0x0238(r15) # 16ce4
lhz r16, -0x0116(r15) # 16ce8
stw r16, -0x0234(r15) # 16cec
li r8, 0x02 # 16cf0
# r7 = flags
# r8 = usually 2?
bl SIGP # 16cf4
mr r17, r29 # 16cf8
mfspr r8, 25/*sdr1*/ # 16cfc
stw r8, 0x002c(r17) # 16d00
rlwinm r9, r8, 16, 7, 15 # 16d04
cntlzw r18, r9 # 16d08
li r9, -0x01 # 16d0c
srw r9, r9, r18 # 16d10
addi r9, r9, 0x01 # 16d14
stw r9, 0x000c(r17) # 16d18
rlwinm r8, r8, 0, 0, 15 # 16d1c
stw r8, 0x0010(r17) # 16d20
lis r8, 0x00 # 16d24
ori r8, r8, 0xc000 # 16d28
stw r8, 0x0018(r17) # 16d2c
lis r9, 0x00 # 16d30
ori r9, r9, 0xa000 # 16d34
subf r8, r9, r1 # 16d38
stw r8, 0x001c(r17) # 16d3c
addi r9, r1, 120 # 16d40
lis r31, 0x00 # 16d44
li r14, 0x00 # 16d48
lwz r29, 0x0034(r17) # 16d4c
add r29, r29, r17 # 16d50
major_0x16bb4_0x1a0:
lwzu r30, 0x0008( r9) # 16d54
major_0x16bb4_0x1a4:
lwz r18, 0x0004(r30) # 16d58
lhz r15, 0x0000(r30) # 16d5c
andi. r19, r18, 0xe00 # 16d60
lhz r16, 0x0002(r30) # 16d64
cmplwi r19, 0xc00 # 16d68
bne- major_0x16bb4_0x1dc # 16d6c
addi r16, r16, 0x01 # 16d70
slwi r16, r16, 2 # 16d74
stw r16, 0x0000(r29) # 16d78
rlwinm r18, r18, 22, 0, 29 # 16d7c
stw r18, 0x0004(r29) # 16d80
addi r29, r29, 0x0c # 16d84
addi r14, r14, 0x01 # 16d88
b major_0x16bb4_0x1fc # 16d8c
major_0x16bb4_0x1dc:
cmpwi r15, 0x00 # 16d90
bne- major_0x16bb4_0x1fc # 16d94
cmplwi r16, 0xffff # 16d98
bne- major_0x16bb4_0x1fc # 16d9c
addis r31, r31, 0x1000 # 16da0
cmpwi r31, 0x00 # 16da4
bne+ major_0x16bb4_0x1a0 # 16da8
b major_0x16bb4_0x204 # 16dac
major_0x16bb4_0x1fc:
addi r30, r30, 0x08 # 16db0
b major_0x16bb4_0x1a4 # 16db4
major_0x16bb4_0x204:
lwz r16, -0x0aa0( r1) # 16db8
major_0x16bb4_0x208:
lwz r31, 0x0000(r16) # 16dbc
add r18, r31, r16 # 16dc0
lwz r19, 0x0000(r18) # 16dc4
addi r31, r31, 0x18 # 16dc8
stw r31, 0x0000(r29) # 16dcc
stw r16, 0x0004(r29) # 16dd0
addi r29, r29, 0x0c # 16dd4
addi r14, r14, 0x01 # 16dd8
cmpwi r19, 0x00 # 16ddc
beq- major_0x16bb4_0x238 # 16de0
add r16, r19, r18 # 16de4
b major_0x16bb4_0x208 # 16de8
major_0x16bb4_0x238:
addi r19, r1, -0x450 # 16dec
lwz r31, -0x0448( r1) # 16df0
major_0x16bb4_0x240:
cmpw r31, r19 # 16df4
beq- major_0x16bb4_0x264 # 16df8
li r18, 0x10 # 16dfc
stw r18, 0x0000(r29) # 16e00
stw r31, 0x0004(r29) # 16e04
addi r29, r29, 0x0c # 16e08
addi r14, r14, 0x01 # 16e0c
lwz r31, 0x0008(r31) # 16e10
b major_0x16bb4_0x240 # 16e14
major_0x16bb4_0x264:
stw r14, 0x0030(r17) # 16e18
lwz r30, 0x0034(r17) # 16e1c
add r30, r30, r17 # 16e20
major_0x16bb4_0x270:
subf r8, r17, r29 # 16e24
stw r8, 0x0008(r30) # 16e28
lwz r24, 0x0004(r30) # 16e2c
mr r25, r8 # 16e30
lwz r26, 0x0000(r30) # 16e34
add r29, r29, r26 # 16e38
bl major_0x16bb4_0x60c # 16e3c
addi r30, r30, 0x0c # 16e40
addi r14, r14, -0x01 # 16e44
cmpwi r14, 0x00 # 16e48
bne+ major_0x16bb4_0x270 # 16e4c
subf r8, r17, r29 # 16e50
stw r8, 0x0020(r17) # 16e54
lwz r24, 0x001c(r17) # 16e58
mr r25, r8 # 16e5c
lwz r26, 0x0018(r17) # 16e60
add r29, r29, r26 # 16e64
bl major_0x16bb4_0x60c # 16e68
subf r8, r17, r29 # 16e6c
stw r8, 0x0014(r17) # 16e70
lwz r24, 0x0010(r17) # 16e74
mr r25, r8 # 16e78
lwz r26, 0x000c(r17) # 16e7c
add r29, r29, r26 # 16e80
bl major_0x16bb4_0x60c # 16e84
bl major_0x16bb4_0x314 # 16e88
mflr r9 # 16e8c
stw r9, 0x0000(r17) # 16e90
lwz r8, -0x0900( r1) # 16e94
stw r8, 0x0008(r17) # 16e98
li r8, 0x00 # 16e9c
stw r8, 0x0004(r17) # 16ea0
mfspr r15, 272/*sprg0*/ # 16ea4
li r16, 0x11 # 16ea8
stw r16, -0x0238(r15) # 16eac
lhz r16, -0x0116(r15) # 16eb0
stw r16, -0x0234(r15) # 16eb4
li r8, 0x02 # 16eb8
# r7 = flags
# r8 = usually 2?
bl SIGP # 16ebc
li r3, 0x00 # 16ec0
b major_0x16b80_0xc # 16ec4
major_0x16bb4_0x314:
blrl # 16ec8
.long 0x7c711b78 # 16ecc
.long 0x83110014 # 16ed0
.long 0x83310010 # 16ed4
.long 0x8351000c # 16ed8
.long 0x48000349 # 16edc
.long 0x8311002c # 16ee0
.long 0x7f1903a6 # 16ee4
.long 0x83110020 # 16ee8
.long 0x8331001c # 16eec
.long 0x83510018 # 16ef0
.long 0x48000331 # 16ef4
.long 0x81d10030 # 16ef8
.long 0x83d10034 # 16efc
.long 0x7fde8a14 # 16f00
.long 0x831e0008 # 16f04
.long 0x833e0004 # 16f08
.long 0x835e0000 # 16f0c
.long 0x48000315 # 16f10
.long 0x3bde000c # 16f14
.long 0x39ceffff # 16f18
.long 0x2c0e0000 # 16f1c
.long 0x4082ffe4 # 16f20
.long 0x82110024 # 16f24
.long 0x7e1043a6 # 16f28
.long 0x81110028 # 16f2c
.long 0x7d1343a6 # 16f30
.long 0x8030fffc # 16f34
.long 0x80d0ffec # 16f38
.long 0x80f0fff0 # 16f3c
.long 0x3900ffff # 16f40
.long 0x91110004 # 16f44
.long 0x8110fd88 # 16f48
.long 0x8130fd8c # 16f4c
.long 0x3a000001 # 16f50
.long 0x7e1c43a6 # 16f54
.long 0x7d1d43a6 # 16f58
.long 0x7d3c43a6 # 16f5c
.long 0x7e1603a6 # 16f60
.long 0x48000025 # 16f64
.long 0x52657375 # 16f68
.long 0x6d696e67 # 16f6c
.long 0x20736176 # 16f70
.long 0x6564206b # 16f74
.long 0x65726e65 # 16f78
.long 0x6c207374 # 16f7c
.long 0x6174655e # 16f80
.long 0x6e000000 # 16f84
.long 0x7d0802a6 # 16f88
.long 0x4bfff455 # 16f8c
.long 0x810600d4 # 16f90
.long 0x81a600dc # 16f94
.long 0x7d0103a6 # 16f98
.long 0x818600ec # 16f9c
.long 0x810600f4 # 16fa0
.long 0x814600fc # 16fa4
.long 0x7d0903a6 # 16fa8
.long 0x816600a4 # 16fac
.long 0x7d1f42a6 # 16fb0
.long 0x5508001d # 16fb4
.long 0x4082000c # 16fb8
.long 0x810600c4 # 16fbc
.long 0x7d0003a6 # 16fc0
.long 0x8081ffe0 # 16fc4
.long 0x38400001 # 16fc8
.long 0xb0410910 # 16fcc
.long 0x3840ffff # 16fd0
.long 0x90410912 # 16fd4
.long 0x90440f90 # 16fd8
.long 0x6c420100 # 16fdc
.long 0x90440f8c # 16fe0
.long 0x38400000 # 16fe4
.long 0x90440f28 # 16fe8
.long 0x90440f2c # 16fec
.long 0x80460114 # 16ff0
.long 0x80860124 # 16ff4
.long 0x80a6012c # 16ff8
.long 0x83a600d8 # 16ffc
.long 0x2c1d0000 # 17000
.long 0x811d0210 # 17004
.long 0x41820008 # 17008
.long 0x7d0043a6 # 1700c
.long 0x4bfee5d1 # 17010
.long 0x3ba105e0 # 17014
.long 0x4bfee291 # 17018
.long 0x7df042a6 # 1701c
.long 0x810fffe4 # 17020
.long 0x39200000 # 17024
.long 0x4bffcf51 # 17028
.long 0x4c00012c # 1702c
.long 0x7df042a6 # 17030
.long 0x3a000007 # 17034
.long 0x920ffdc8 # 17038
.long 0xa20ffeea # 1703c
.long 0x920ffdcc # 17040
.long 0x39000002 # 17044
.long 0x4bfed899 # 17048
.long 0x7df042a6 # 1704c
.long 0x3a000011 # 17050
.long 0x920ffdc8 # 17054
.long 0xa20ffeea # 17058
.long 0x920ffdcc # 1705c
.long 0x39000002 # 17060
.long 0x4bfed87d # 17064
.long 0x38600000 # 17068
.long 0x4bfffb20 # 1706c
major_0x16bb4_0x4bc: /* < outside referer */
li r24, 0x00 # 17070
mfspr r16, 25/*sdr1*/ # 17074
rlwinm r16, r16, 16, 7, 15 # 17078
cntlzw r17, r16 # 1707c
li r16, -0x01 # 17080
srw r16, r16, r17 # 17084
addi r8, r16, 0x01 # 17088
addi r9, r1, 120 # 1708c
lis r31, 0x00 # 17090
li r19, 0x00 # 17094
li r14, 0x00 # 17098
major_0x16bb4_0x4e8:
lwzu r17, 0x0008( r9) # 1709c
major_0x16bb4_0x4ec:
lwz r18, 0x0004(r17) # 170a0
lhz r15, 0x0000(r17) # 170a4
andi. r18, r18, 0xe00 # 170a8
lhz r16, 0x0002(r17) # 170ac
cmplwi r18, 0xc00 # 170b0
bne- major_0x16bb4_0x514 # 170b4
addi r16, r16, 0x01 # 170b8
add r19, r19, r16 # 170bc
addi r14, r14, 0x01 # 170c0
b major_0x16bb4_0x534 # 170c4
major_0x16bb4_0x514:
cmpwi r15, 0x00 # 170c8
bne- major_0x16bb4_0x534 # 170cc
cmplwi r16, 0xffff # 170d0
bne- major_0x16bb4_0x534 # 170d4
addis r31, r31, 0x1000 # 170d8
cmpwi r31, 0x00 # 170dc
bne+ major_0x16bb4_0x4e8 # 170e0
b major_0x16bb4_0x53c # 170e4
major_0x16bb4_0x534:
addi r17, r17, 0x08 # 170e8
b major_0x16bb4_0x4ec # 170ec
major_0x16bb4_0x53c:
slwi r19, r19, 2 # 170f0
add r8, r8, r19 # 170f4
cmpwi r14, 0x00 # 170f8
beq+ major_0x16b80_0x8 # 170fc
mulli r9, r14, 0x0c # 17100
add r8, r8, r9 # 17104
add r24, r24, r9 # 17108
li r9, 0x00 # 1710c
li r14, 0x00 # 17110
lwz r16, -0x0aa0( r1) # 17114
major_0x16bb4_0x564:
lwz r17, 0x0000(r16) # 17118
add r18, r17, r16 # 1711c
lwz r19, 0x0000(r18) # 17120
add r9, r9, r17 # 17124
addi r9, r9, 0x18 # 17128
addi r14, r14, 0x01 # 1712c
cmpwi r19, 0x00 # 17130
add r16, r19, r18 # 17134
beq- major_0x16bb4_0x58c # 17138
b major_0x16bb4_0x564 # 1713c
major_0x16bb4_0x58c:
addi r16, r1, -0x450 # 17140
lwz r18, -0x0448( r1) # 17144
major_0x16bb4_0x594:
cmpw r18, r16 # 17148
beq- major_0x16bb4_0x5ac # 1714c
addi r9, r9, 0x10 # 17150
addi r14, r14, 0x01 # 17154
lwz r18, 0x0008(r18) # 17158
b major_0x16bb4_0x594 # 1715c
major_0x16bb4_0x5ac:
add r8, r8, r9 # 17160
mulli r9, r14, 0x0c # 17164
add r8, r8, r9 # 17168
add r24, r24, r9 # 1716c
lis r9, 0x00 # 17170
ori r9, r9, 0xc000 # 17174
add r8, r8, r9 # 17178
lis r9, 0x00 # 1717c
ori r9, r9, 0x3c # 17180
add r8, r8, r9 # 17184
add r24, r24, r9 # 17188
srwi r9, r8, 12 # 1718c
slwi r9, r9, 2 # 17190
addi r9, r9, 0x04 # 17194
add r8, r8, r9 # 17198
add r24, r24, r9 # 1719c
mr r9, r24 # 171a0
blr # 171a4
major_0x16bb4_0x5f4:
srwi r23, r28, 12 # 171a8
slwi r23, r23, 2 # 171ac
add r23, r23, r17 # 171b0
lwz r23, 0x0038(r23) # 171b4
rlwimi r23, r28, 0, 20, 31 # 171b8
blr # 171bc
major_0x16bb4_0x60c:
cmpwi r26, 0x00 # 171c0
beqlr- # 171c4
mflr r22 # 171c8
addi r24, r24, -0x01 # 171cc
mr r28, r25 # 171d0
major_0x16bb4_0x620:
bl major_0x16bb4_0x5f4 # 171d4
clrlwi r25, r23, 0x14 # 171d8
subfic r25, r25, 0x1000 # 171dc
cmplw r25, r26 # 171e0
blt- major_0x16bb4_0x638 # 171e4
mr r25, r26 # 171e8
major_0x16bb4_0x638:
mr r19, r23 # 171ec
mr r20, r25 # 171f0
addi r23, r23, -0x01 # 171f4
mtctr r25 # 171f8
major_0x16bb4_0x648:
lbzu r27, 0x0001(r24) # 171fc
stbu r27, 0x0001(r23) # 17200
bdnz+ major_0x16bb4_0x648 # 17204
bl major_0x16bb4_0x6d4 # 17208
subf r26, r25, r26 # 1720c
add r28, r28, r25 # 17210
cmpwi r26, 0x00 # 17214
bne+ major_0x16bb4_0x620 # 17218
mtlr r22 # 1721c
blr # 17220
.long 0x2c1a0000 # 17224
.long 0x4d820020 # 17228
.long 0x7f33cb78 # 1722c
.long 0x7f54d378 # 17230
.long 0x7ec802a6 # 17234
.long 0x3b39ffff # 17238
.long 0x7f1cc378 # 1723c
.long 0x4bffff69 # 17240
.long 0x56f8053e # 17244
.long 0x23181000 # 17248
.long 0x7c18d040 # 1724c
.long 0x41800008 # 17250
.long 0x7f58d378 # 17254
.long 0x3af7ffff # 17258
.long 0x7f0903a6 # 1725c
.long 0x8f770001 # 17260
.long 0x9f790001 # 17264
.long 0x4200fff8 # 17268
.long 0x7f9cc214 # 1726c
.long 0x7f58d050 # 17270
.long 0x2c1a0000 # 17274
.long 0x4082ffc8 # 17278
.long 0x4800000d # 1727c
.long 0x7ec803a6 # 17280
.long 0x4e800020 # 17284
major_0x16bb4_0x6d4:
sync # 17288
isync # 1728c
lhz r21, 0x0f4a( r1) # 17290
addi r15, r21, -0x01 # 17294
add r20, r19, r20 # 17298
add r20, r20, r15 # 1729c
neg r15, r21 # 172a0
and r19, r19, r15 # 172a4
and r20, r20, r15 # 172a8
major_0x16bb4_0x6f8:
dcbst r0, r19 # 172ac
sync # 172b0
icbi r0, r19 # 172b4
add r19, r19, r21 # 172b8
cmpw r19, r20 # 172bc
blt+ major_0x16bb4_0x6f8 # 172c0
sync # 172c4
isync # 172c8
blr # 172cc
/***********************************************************
major_0x172d0
***********************************************************/
.long 0x48000010 # 172d0
.long 0x60000000 # 172d4
.long 0x60000000 # 172d8
.long 0x60000000 # 172dc
/***********************************************************
panic
************************************************************
Xrefs:
"lisori_caller"
panic_wrapper_0x02940
panic_wrapper_0x02960
major_0x02ccc
major_0x03200
major_0x035a0
major_0x03940
dsi_vector
major_0x04240
major_0x04300
panic_wrapper_0x04c00
funny_debug_place
major_0x07658
panic_wrapper_0x08620
major_0x08794
panic_wrapper_0x0a620
rtas_call
major_0x0af14
syscall_return_assert_lock_unheld
major_0x0af60
major_0x0b02c
major_0x0b054
major_0x0b07c
major_0x0b0cc
major_0x0b0fc
major_0x0b144
major_0x0b4a4
nk_yield_with_hint
major_0x0bc2c
NKStopScheduling
major_0x0c3ac
panic_wrapper_0x0c5d4
major_0x0d35c
major_0x0d798
panic_wrapper_0x0e280
major_0x0e604
NKThrowException
panic_wrapper_0x0f380
major_0x0f7b8
major_0x0fb34
createarea
major_0x102c8
major_0x10414
major_0x104ec
major_0x1070c
major_0x108fc
NKSetAreaAccess
major_0x10de0
major_0x11104
major_0x111d4
major_0x1139c
major_0x11490
NKMapPage
NKUnmapPages
NKMakePhysicallyContiguous
NKLockPages
NKUnlockPages
NKHoldPages
NKUnholdPages
major_0x11ebc
major_0x11fac
major_0x12110
major_0x12248
panic_wrapper_0x12780
major_0x129cc
panic_wrapper_0x12d40
panic_wrapper_0x137c0
major_0x142dc
major_0x14548
major_0x14bcc
panic_wrapper_0x15140
interrupt_blue
print
***********************************************************/
panic: /* < outside referer */
crset 4*cr1 + eq # 172e0
b panic_0xc # 172e4
.long 0x4cc63182 # 172e8
panic_0xc:
mfspr r1, 272/*sprg0*/ # 172ec
stmw r29, -0x02e0( r1) # 172f0
lwz r1, -0x0004( r1) # 172f4
mflr r29 # 172f8
mr r30, r8 # 172fc
mr r31, r9 # 17300
addi r8, r1, -0xb30 # 17304
# r8 = lock
bl lock # 17308
mr r8, r30 # 1730c
mr r9, r31 # 17310
stw r29, 0x0904( r1) # 17314
stw r0, 0x0700( r1) # 17318
mfspr r0, 273/*sprg1*/ # 1731c
stw r0, 0x0704( r1) # 17320
stw r2, 0x0708( r1) # 17324
mfspr r2, 272/*sprg0*/ # 17328
lmw r29, -0x02e0( r2) # 1732c
stmw r3, 0x070c( r1) # 17330
mfcr r0 # 17334
stw r0, 0x0780( r1) # 17338
mfspr r0, 287/*pvr*/ # 1733c
rlwinm. r0, r0, 0, 0, 14 # 17340
bne- panic_0x70 # 17344
mfspr r0, 0/*mq*/ # 17348
stw r0, 0x0784( r1) # 1734c
panic_0x70:
mfxer r0 # 17350
stw r0, 0x0788( r1) # 17354
mfspr r0, 274/*sprg2*/ # 17358
stw r0, 0x078c( r1) # 1735c
mfctr r0 # 17360
stw r0, 0x0790( r1) # 17364
mfspr r0, 287/*pvr*/ # 17368
stw r0, 0x0794( r1) # 1736c
mfspr r0, 18/*dsisr*/ # 17370
stw r0, 0x0798( r1) # 17374
mfspr r0, 19/*dar*/ # 17378
stw r0, 0x079c( r1) # 1737c
mfspr r0, 287/*pvr*/ # 17380
rlwinm. r0, r0, 0, 0, 14 # 17384
bne- panic_0xcc # 17388
panic_0xac:
mfspr r0, 4/*rtcu*/ # 1738c
mfspr r2, 5/*rtcl*/ # 17390
mfspr r3, 4/*rtcu*/ # 17394
cmpw r0, r3 # 17398
bne+ panic_0xac # 1739c
stw r0, 0x07a0( r1) # 173a0
stw r2, 0x07a4( r1) # 173a4
b panic_0xe8 # 173a8
panic_0xcc:
mftbu r0 # 173ac
mftb r2, 0x10c # 173b0
mftbu r3 # 173b4
cmpw r0, r3 # 173b8
bne+ panic_0xcc # 173bc
stw r0, 0x07a0( r1) # 173c0
stw r2, 0x07a4( r1) # 173c4
panic_0xe8:
mfspr r0, 22/*dec*/ # 173c8
stw r0, 0x07a8( r1) # 173cc
mfspr r0, 1008/*hid0*/ # 173d0
stw r0, 0x07ac( r1) # 173d4
mfspr r0, 25/*sdr1*/ # 173d8
stw r0, 0x07b0( r1) # 173dc
mfspr r0, 26/*srr0*/ # 173e0
stw r0, 0x07b4( r1) # 173e4
mfspr r0, 27/*srr1*/ # 173e8
stw r0, 0x07b8( r1) # 173ec
mfmsr r0 # 173f0
stw r0, 0x07bc( r1) # 173f4
mfsr r0, 0x00 # 173f8
stw r0, 0x07c0( r1) # 173fc
mfsr r0, 0x01 # 17400
stw r0, 0x07c4( r1) # 17404
mfsr r0, 0x02 # 17408
stw r0, 0x07c8( r1) # 1740c
mfsr r0, 0x03 # 17410
stw r0, 0x07cc( r1) # 17414
mfsr r0, 0x04 # 17418
stw r0, 0x07d0( r1) # 1741c
mfsr r0, 0x05 # 17420
stw r0, 0x07d4( r1) # 17424
mfsr r0, 0x06 # 17428
stw r0, 0x07d8( r1) # 1742c
mfsr r0, 0x07 # 17430
stw r0, 0x07dc( r1) # 17434
mfsr r0, 0x08 # 17438
stw r0, 0x07e0( r1) # 1743c
mfsr r0, 0x09 # 17440
stw r0, 0x07e4( r1) # 17444
mfsr r0, 0x0a # 17448
stw r0, 0x07e8( r1) # 1744c
mfsr r0, 0x0b # 17450
stw r0, 0x07ec( r1) # 17454
mfsr r0, 0x0c # 17458
stw r0, 0x07f0( r1) # 1745c
mfsr r0, 0x0d # 17460
stw r0, 0x07f4( r1) # 17464
mfsr r0, 0x0e # 17468
stw r0, 0x07f8( r1) # 1746c
mfsr r0, 0x0f # 17470
stw r0, 0x07fc( r1) # 17474
mfmsr r0 # 17478
ori r0, r0, 0x2000 # 1747c
mtmsr r0 # 17480
isync # 17484
stfd f0, 0x0800( r1) # 17488
stfd f1, 0x0808( r1) # 1748c
stfd f2, 0x0810( r1) # 17490
stfd f3, 0x0818( r1) # 17494
stfd f4, 0x0820( r1) # 17498
stfd f5, 0x0828( r1) # 1749c
stfd f6, 0x0830( r1) # 174a0
stfd f7, 0x0838( r1) # 174a4
stfd f8, 0x0840( r1) # 174a8
stfd f9, 0x0848( r1) # 174ac
stfd f10, 0x0850( r1) # 174b0
stfd f11, 0x0858( r1) # 174b4
stfd f12, 0x0860( r1) # 174b8
stfd f13, 0x0868( r1) # 174bc
stfd f14, 0x0870( r1) # 174c0
stfd f15, 0x0878( r1) # 174c4
stfd f16, 0x0880( r1) # 174c8
stfd f17, 0x0888( r1) # 174cc
stfd f18, 0x0890( r1) # 174d0
stfd f19, 0x0898( r1) # 174d4
stfd f20, 0x08a0( r1) # 174d8
stfd f21, 0x08a8( r1) # 174dc
stfd f22, 0x08b0( r1) # 174e0
stfd f23, 0x08b8( r1) # 174e4
stfd f24, 0x08c0( r1) # 174e8
stfd f25, 0x08c8( r1) # 174ec
stfd f26, 0x08d0( r1) # 174f0
stfd f27, 0x08d8( r1) # 174f4
stfd f28, 0x08e0( r1) # 174f8
stfd f29, 0x08e8( r1) # 174fc
stfd f30, 0x08f0( r1) # 17500
stfd f31, 0x08f8( r1) # 17504
mffs f31 # 17508
lwz r0, 0x08fc( r1) # 1750c
stfd f31, 0x08fc( r1) # 17510
stw r0, 0x08fc( r1) # 17514
bne- cr1, panic_0x260 # 17518
panic_0x23c:
lwz r1, 0x0000( r0) # 1751c
addi r1, r1, 0x01 # 17520
stw r1, 0x0000( r0) # 17524
li r1, 0x00 # 17528
dcbst r1, r1 # 1752c
bl print_for_panic # 17530
# gets kdp from print!!!
cmpwi r8, -0x01 # 17534
bne- panic_0x260 # 17538
b panic_0x23c # 1753c
panic_0x260:
lwz r8, 0x0edc( r1) # kdp.0xedc # 17540
ori r8, r8, 0x02 # 17544
stw r8, 0x0edc( r1) # kdp.0xedc # 17548
bl 1f # 1754c
.ascii "\xBD NanoKernel debugger^n" # 17550
.short 0 # 17567
.align 2 # 17569
1: mflr r8 # 1756c
bl print_string # 17570
panic_prompt:
bl 1f # 17574
.ascii "\xBD " # 17578
.short 0 # 1757a
.align 2 # 1757c
1: mflr r8 # 1757c
bl print_string # 17580
li r17, 0x00 # 17584
stw r17, -0x08fc( r1) # kdp.-0x8fc # 17588
panic_0x2ac:
bl print_for_panic # 1758c
cmpwi r8, -0x01 # 17590
beq+ panic_0x2ac # 17594
mr r16, r8 # 17598
cmpwi r16, 0x08 # 1759c
cmpwi cr1, r17, 0x00 # 175a0
bne- panic_0x2ec # 175a4
ble+ cr1, panic_0x2ac # 175a8
addi r17, r17, -0x01 # 175ac
li r8, 0x08 # 175b0
bl print_char # 175b4
li r8, 0x20 # 175b8
bl print_char # 175bc
li r8, 0x08 # 175c0
bl print_char # 175c4
b panic_0x2ac # 175c8
panic_0x2ec:
cmpwi cr2, r17, 0x5f # 175cc
addi r18, r1, -0x960 # kdp.-0x960 # 175d0
blt- cr2, panic_0x31c # 175d4
bl 1f # 175d8
.ascii "^b" # 175dc
.short 0 # 175de
.align 2 # 175e0
1: mflr r8 # 175e0
bl print_string # 175e4
b panic_0x2ac # 175e8
panic_0x30c:
addi r17, r17, 0x01 # 175ec
mr r8, r16 # 175f0
bl print_char # 175f4
b panic_0x2ac # 175f8
panic_0x31c:
cmpwi r16, 0x0d # 175fc
stbx r16, r17, r18 # 17600
bne+ panic_0x30c # 17604
li r16, 0x00 # 17608
stbx r16, r17, r18 # 1760c
bl 1f # 17610
.ascii "^n" # 17614
.short 0 # 17616
.align 2 # 17618
1: mflr r8 # 17618
bl print_string # 1761c
addi r15, r1, -0x960 # kdp.-0x960 # 17620
# r15 = start
bl next_cmd_word # 17624
# r15 = ptr
# r16 = char
cmpwi r16, 0x00 # 17628
beq+ panic_prompt # 1762c
bl panic_load_commands # 17630
mflr r16 # 17634
bl load_panic_tbl # 17638
mflr r17 # 1763c
# r16 = command strings
# r17 = lut
bl cmd_lookup # 17640
# cr0 = found
# r17 = ptr to lut entry
bne- panic_bad_command # 17644
bl load_panic_tbl # 17648
mflr r16 # 1764c
lwz r17, 0x0000(r17) # 17650
add r16, r16, r17 # 17654
mtlr r16 # 17658
blr # 1765c
panic_bad_command:
bl 1f # 17660
.ascii "???^n" # 17664
.short 0 # 17669
.align 2 # 1766b
1: mflr r8 # 1766c
bl print_string # 17670
b panic_prompt # 17674
panic_load_commands:
blrl # 17678
.ascii "dm\x00" # 1767c
.ascii "dml\x00" # 1767f
.ascii "g\x00" # 17683
.ascii "id\x00" # 17685
.ascii "kd\x00" # 17688
.ascii "td\x00" # 1768b
.ascii "?\x00" # 1768e
.ascii "help\x00" # 17690
.byte 0xff # 17695
.align 2 # 17696
load_panic_tbl:
blrl # 17698
panic_tbl:
.long cmd_dumpmem_physical - panic_tbl # 1769c
.long cmd_dumpmem_logical - panic_tbl # 176a0
.long cmd_goto - panic_tbl # 176a4
.long cmd_opaque_id_info - panic_tbl # 176a8
.long cmd_display_kern_data - panic_tbl # 176ac
.long cmd_dump_registers - panic_tbl # 176b0
.long cmd_help - panic_tbl # 176b4
.long cmd_help - panic_tbl # 176b8
.long 0 # 176bc
cmd_help:
bl 1f # 176c0
.ascii "Commands:^n" # 176c4
.short 0 # 176cf
.align 2 # 176d1
1: mflr r8 # 176d4
bl print_string # 176d8
bl 1f # 176dc
.ascii " dm address [length] -- Display physical^n"
.short 0 # 1770c
.align 2 # 1770e
1: mflr r8 # 17710
bl print_string # 17714
bl 1f # 17718
.ascii " dml address [length] -- Display logical^n"
.short 0 # 17747
.align 2 # 17749
1: mflr r8 # 1774c
bl print_string # 17750
bl 1f # 17754
.ascii " g [address] -- Go resume^n" # 17758
.short 0 # 1777d
.align 2 # 1777f
1: mflr r8 # 17780
bl print_string # 17784
bl 1f # 17788
.ascii " id [-all -p -t -tm -q -s -r -c -sp -e -cg -a -n -nc]^n"
.short 0 # 177c3
.align 2 # 177c5
1: mflr r8 # 177c8
bl print_string # 177cc
bl 1f # 177d0
.ascii " id idvalue -- Obtain opaque ID info^n"
.short 0 # 17805
.align 2 # 17807
1: mflr r8 # 17808
bl print_string # 1780c
bl 1f # 17810
.ascii " kd -- Display kernel data^n"
.short 0 # 17843
.align 2 # 17845
1: mflr r8 # 17848
bl print_string # 1784c
bl 1f # 17850
.ascii " td -- Dump registers^n" # 17854
.short 0 # 1787e
.align 2 # 17880
1: mflr r8 # 17880
bl print_string # 17884
b panic_prompt # 17888
cmd_dumpmem_physical:
# r15 = start
bl next_cmd_word # 1788c
# r15 = ptr
# r16 = char
cmpwi r16, 0x00 # 17890
beq- panic_missing_physical_addr # 17894
bl major_0x187b0 # 17898
bne- panic_bad_length_1 # 1789c
mr r30, r16 # 178a0
li r31, 0x10 # 178a4
# r15 = start
bl next_cmd_word # 178a8
# r15 = ptr
# r16 = char
cmpwi r16, 0x00 # 178ac
beq- panic_0x5e0 # 178b0
bl major_0x187b0 # 178b4
bne- panic_bad_length_1 # 178b8
mr r31, r16 # 178bc
panic_0x5e0:
addi r31, r31, 0x03 # 178c0
rlwinm r31, r31, 0, 0, 29 # 178c4
mr r16, r30 # 178c8
mr r17, r31 # 178cc
bl print_memory # 178d0
b panic_prompt # 178d4
panic_missing_physical_addr:
bl 1f # 178d8
.ascii "Need a physical address^n" # 178dc
.short 0 # 178f5
.align 2 # 178f7
1: mflr r8 # 178f8
bl print_string # 178fc
b panic_prompt # 17900
panic_bad_length_1:
bl 1f # 17904
.ascii "Length must be a hexadecimal value^n" # 17908
.short 0 # 1792c
.align 2 # 1792e
1: mflr r8 # 17930
bl print_string # 17934
b panic_prompt # 17938
cmd_dumpmem_logical:
bl 1f # 1793c
.ascii "Logical memory^n" # 17940
.short 0 # 17950
.align 2 # 17952
1: mflr r8 # 17954
bl print_string # 17958
# r15 = start
bl next_cmd_word # 1795c
# r15 = ptr
# r16 = char
cmpwi r16, 0x00 # 17960
beq- panic_missing_logical_addr # 17964
bl major_0x187b0 # 17968
bne- panic_bad_length_2 # 1796c
mr r30, r16 # 17970
li r31, 0x10 # 17974
# r15 = start
bl next_cmd_word # 17978
# r15 = ptr
# r16 = char
cmpwi r16, 0x00 # 1797c
beq- panic_0x6b0 # 17980
bl major_0x187b0 # 17984
bne- panic_bad_length_2 # 17988
mr r31, r16 # 1798c
panic_0x6b0:
addi r31, r31, 0x03 # 17990
rlwinm r31, r31, 0, 0, 29 # 17994
mr r16, r30 # 17998
mr r17, r31 # 1799c
bl print_memory_logical # 179a0
b panic_prompt # 179a4
panic_missing_logical_addr:
bl 1f # 179a8
.ascii "Need a logical address^n" # 179ac
.short 0 # 179c4
.align 2 # 179c6
1: mflr r8 # 179c8
bl print_string # 179cc
b panic_prompt # 179d0
panic_bad_length_2:
bl 1f # 179d4
.ascii "Length must be a hexadecimal value^n" # 179d8
.short 0 # 179fc
.align 2 # 179fe
1: mflr r8 # 17a00
bl print_string # 17a04
b panic_prompt # 17a08
cmd_goto:
# r15 = start
bl next_cmd_word # 17a0c
# r15 = ptr
# r16 = char
cmpwi r16, 0x00 # 17a10
lwz r31, 0x0904( r1) # kdp.0x904 # 17a14
beq- panic_0x748 # 17a18
bl major_0x187b0 # 17a1c
bne- panic_bad_resume_address # 17a20
stw r16, 0x0904( r1) # kdp.0x904 # 17a24
panic_0x748:
bl 1f # 17a28
.ascii "Resuming at " # 17a2c
.short 0 # 17a38
.align 2 # 17a3a
1: mflr r8 # 17a3c
bl print_string # 17a40
lwz r31, 0x0904( r1) # kdp.0x904 # 17a44
mr r8, r31 # 17a48
bl print_hexword_spc # 17a4c
bl 1f # 17a50
.ascii " - wish me luck.^n" # 17a54
.short 0 # 17a66
.align 2 # 17a68
1: mflr r8 # 17a68
bl print_string # 17a6c
bl major_0x187b0_0x78 # 17a70
lwz r8, 0x0904( r1) # kdp.0x904 # 17a74
sync # 17a78
lwz r9, -0x0b30( r1) # kdp.thud_lock # 17a7c
cmpwi cr1, r9, 0x00 # 17a80
li r9, 0x00 # 17a84
bne+ cr1, panic_0x7b4 # 17a88
mflr r9 # 17a8c
bl panic # 17a90
panic_0x7b4:
stw r9, -0x0b30( r1) # kdp.thud_lock # 17a94
mtlr r8 # 17a98
blr # 17a9c
panic_bad_resume_address:
bl 1f # 17aa0
.ascii "Need hexadecimal value for resume address^n"
.short 0 # 17acf
.align 2 # 17ad1
1: mflr r8 # 17ad4
bl print_string # 17ad8
b panic_prompt # 17adc
cmd_opaque_id_info:
# r15 = start
bl next_cmd_word # 17ae0
# r15 = ptr
# r16 = char
cmpwi r16, 0x00 # 17ae4
beq- panic_missing_opaque_id # 17ae8
bl panic_load_id_args # 17aec
mflr r16 # 17af0
li r17, 0x00 # 17af4
# r16 = command strings
# r17 = lut
bl cmd_lookup # 17af8
# cr0 = found
# r17 = ptr to lut entry
bne- panic_0x884 # 17afc
li r29, 0x00 # 17b00
li r30, 0x00 # 17b04
srwi r31, r17, 2 # 17b08
panic_0x82c:
mr r8, r30 # 17b0c
mr r9, r31 # 17b10
bl major_0x153e0 # 17b14
mr. r30, r8 # 17b18
beq- panic_0x868 # 17b1c
mr r8, r8 # 17b20
bl print_hexword_spc # 17b24
addi r29, r29, 0x01 # 17b28
andi. r29, r29, 0x07 # 17b2c
bne+ panic_0x82c # 17b30
bl 1f # 17b34
.ascii "^n" # 17b38
.short 0 # 17b3a
.align 2 # 17b3c
1: mflr r8 # 17b3c
bl print_string # 17b40
b panic_0x82c # 17b44
panic_0x868:
cmpwi r29, 0x00 # 17b48
beq+ panic_prompt # 17b4c
bl 1f # 17b50
.ascii "^n" # 17b54
.short 0 # 17b56
.align 2 # 17b58
1: mflr r8 # 17b58
bl print_string # 17b5c
b panic_prompt # 17b60
panic_0x884:
bl major_0x187b0 # 17b64
bne- panic_bad_opaque_id # 17b68
mr r30, r16 # 17b6c
mr r8, r16 # 17b70
# r8 = id
bl id_kind # 17b74
# r8 = something not sure what
# r9 = 0:inval, 1:proc, 2:task, 3:timer, 4:q, 5:sema, 6:cr, 7:cpu, 8:addrspc, 9:evtg, 10:cohg, 11:area, 12:not, 13:log
mr r31, r8 # 17b78
bl 1f # 17b7c
.ascii "ID " # 17b80
.short 0 # 17b83
.align 2 # 17b85
1: mflr r8 # 17b88
bl print_string # 17b8c
mr r8, r30 # 17b90
bl print_hexword_spc # 17b94
bl panic_load_id_kind_strings # 17b98
mflr r17 # 17b9c
slwi r18, r9, 4 # 17ba0
add r8, r17, r18 # 17ba4
bl print_string # 17ba8
cmpwi r9, 0x00 # 17bac
beq- panic_0x978 # 17bb0
bl 1f # 17bb4
.ascii " at " # 17bb8
.short 0 # 17bbc
.align 2 # 17bbe
1: mflr r8 # 17bc0
bl print_string # 17bc4
mr r8, r31 # 17bc8
bl print_hexword_spc # 17bcc
bl 1f # 17bd0
.ascii "^n" # 17bd4
.short 0 # 17bd6
.align 2 # 17bd8
1: mflr r8 # 17bd8
bl print_string # 17bdc
mr r16, r31 # 17be0
bl panic_load_more_jumps # 17be4
mflr r17 # 17be8
slwi r18, r9, 2 # 17bec
lwzx r17, r17, r18 # 17bf0
bl print_memory # 17bf4
b panic_prompt # 17bf8
panic_missing_opaque_id:
bl 1f # 17bfc
.ascii "Need an opaque ID^n" # 17c00
.short 0 # 17c13
.align 2 # 17c15
1: mflr r8 # 17c18
bl print_string # 17c1c
b panic_prompt # 17c20
panic_bad_opaque_id:
bl 1f # 17c24
.ascii "ID must be a hexadecimal value^n" # 17c28
.short 0 # 17c48
.align 2 # 17c4a
1: mflr r8 # 17c4c
bl print_string # 17c50
b panic_prompt # 17c54
panic_0x978:
bl 1f # 17c58
.ascii "^n" # 17c5c
.short 0 # 17c5e
.align 2 # 17c60
1: mflr r8 # 17c60
bl print_string # 17c64
b panic_prompt # 17c68
panic_load_id_kind_strings:
blrl # 17c6c
.ascii "is invalid. \x00" # 17c70
.ascii "Process \x00" # 17c80
.ascii "Task \x00" # 17c90
.ascii "Timer \x00" # 17ca0
.ascii "Queue \x00" # 17cb0
.ascii "Semaphore \x00" # 17cc0
.ascii "Critical Region\x00" # 17cd0
.ascii "Cpu \x00" # 17ce0
.ascii "Address Space \x00" # 17cf0
.ascii "Event Group \x00" # 17d00
.ascii "Coherence Group\x00" # 17d10
.ascii "Area \x00" # 17d20
.ascii "Notification \x00" # 17d30
.ascii "Console Log \x00" # 17d40
.align 2 # 17d50
panic_load_more_jumps:
blrl # 17d50
.long 0 # 17d54
.long 0x00000020 # 17d58
.long 0x00000400 # 17d5c
.long 0x00000040 # 17d60
.long 0x00000034 # 17d64
.long 0x00000020 # 17d68
.long 0x00000024 # 17d6c
.long 0x000003c0 # 17d70
.long 0x000000c0 # 17d74
.long 0x00000020 # 17d78
.long 0x00000058 # 17d7c
.long 0x000000a0 # 17d80
.long 0x00000028 # 17d84
.long 0x00000010 # 17d88
panic_load_id_args:
blrl # 17d8c
.ascii "-all\x00" # 17d90
.ascii "-p\x00" # 17d95
.ascii "-t\x00" # 17d98
.ascii "-tm\x00" # 17d9b
.ascii "-q\x00" # 17d9f
.ascii "-s\x00" # 17da2
.ascii "-r\x00" # 17da5
.ascii "-c\x00" # 17da8
.ascii "-sp\x00" # 17dab
.ascii "-e\x00" # 17daf
.ascii "-cg\x00" # 17db2
.ascii "-a\x00" # 17db6
.ascii "-n\x00" # 17db9
.ascii "-nc\x00" # 17dbc
.byte 0xff # 17dc0
.align 2 # 17dc1
cmd_display_kern_data:
mfspr r17, 272/*sprg0*/ # 17dc4
bl 1f # 17dc8
.ascii "Kernel version " # 17dcc
.short 0 # 17ddb
.align 2 # 17ddd
1: mflr r8 # 17de0
bl print_string # 17de4
lhz r8, 0x0fe4( r1) # kdp.u16_version # 17de8
bl print_hexshort # 17dec
bl 1f # 17df0
.ascii "Code base " # 17df4
.short 0 # 17dfe
.align 2 # 17e00
1: mflr r8 # 17e00
bl print_string # 17e04
lwz r8, 0x064c( r1) # kdp.phys_kern_base # 17e08
bl print_hexword_spc # 17e0c
bl 1f # 17e10
.ascii "PSA " # 17e14
.short 0 # 17e18
.align 2 # 17e1a
1: mflr r8 # 17e1c
bl print_string # 17e20
addi r8, r17, -0xb90 # ewa.psa # 17e24
bl print_hexword_spc # 17e28
bl 1f # 17e2c
.ascii "KDP " # 17e30
.short 0 # 17e34
.align 2 # 17e36
1: mflr r8 # 17e38
bl print_string # 17e3c
mr r8, r1 # 17e40
bl print_hexword_spc # 17e44
bl 1f # 17e48
.ascii "EDP " # 17e4c
.short 0 # 17e50
.align 2 # 17e52
1: mflr r8 # 17e54
bl print_string # 17e58
lwz r8, 0x0634( r1) # kdp.pa_edp # 17e5c
bl print_hexword_spc # 17e60
bl 1f # 17e64
.ascii "^nCurrent EWA " # 17e68
.short 0 # 17e76
.align 2 # 17e78
1: mflr r8 # 17e78
bl print_string # 17e7c
mr r8, r17 # 17e80
bl print_hexword_spc # 17e84
bl 1f # 17e88
.ascii " is CPU " # 17e8c
.short 0 # 17e94
.align 2 # 17e96
1: mflr r8 # 17e98
bl print_string # 17e9c
lhz r8, -0x0116(r17) # ewa.cpu_which # 17ea0
bl print_hexshort # 17ea4
bl 1f # 17ea8
.ascii " ID-" # 17eac
.short 0 # 17eb0
.align 2 # 17eb2
1: mflr r8 # 17eb4
bl print_string # 17eb8
lwz r8, -0x0340(r17) # ewa.cpu_id # 17ebc
bl print_hexword_spc # 17ec0
lwz r18, -0x0008(r17) # ewa.cur_task_struct # 17ec4
bl 1f # 17ec8
.ascii "^nCurrent task " # 17ecc
.short 0 # 17edb
.align 2 # 17edd
1: mflr r8 # 17ee0
bl print_string # 17ee4
mr r8, r18 # 17ee8
bl print_hexword_spc # 17eec
bl 1f # 17ef0
.ascii "ID-" # 17ef4
.short 0 # 17ef7
.align 2 # 17ef9
1: mflr r8 # 17efc
bl print_string # 17f00
lwz r8, 0x0000(r18) # task.id # 17f04
bl print_hexword_spc # 17f08
bl 1f # 17f0c
.ascii "name \"" # 17f10
.short 0 # 17f16
.align 2 # 17f18
1: mflr r8 # 17f18
bl print_string # 17f1c
lwz r8, 0x0074(r18) # task.fourcc # 17f20
rotlwi r8, r8, 0x08 # 17f24
bl print_char # 17f28
rotlwi r8, r8, 0x08 # 17f2c
bl print_char # 17f30
rotlwi r8, r8, 0x08 # 17f34
bl print_char # 17f38
rotlwi r8, r8, 0x08 # 17f3c
bl print_char # 17f40
bl 1f # 17f44
.ascii "\" Owning process " # 17f48
.short 0 # 17f59
.align 2 # 17f5b
1: mflr r8 # 17f5c
bl print_string # 17f60
lwz r8, 0x006c(r18) # task.owning_process_struct
bl print_hexword_spc # 17f68
bl 1f # 17f6c
.ascii " ID-" # 17f70
.short 0 # 17f74
.align 2 # 17f76
1: mflr r8 # 17f78
bl print_string # 17f7c
lwz r8, 0x0060(r18) # task.owning_process_id # 17f80
bl print_hexword_spc # 17f84
bl 1f # 17f88
.ascii "^nAddress Space " # 17f8c
.short 0 # 17f9c
.align 2 # 17f9e
1: mflr r8 # 17fa0
bl print_string # 17fa4
lwz r18, -0x001c(r17) # ewa.address_space_struct # 17fa8
mr r8, r18 # 17fac
bl print_hexword_spc # 17fb0
bl 1f # 17fb4
.ascii " ID-" # 17fb8
.short 0 # 17fbc
.align 2 # 17fbe
1: mflr r8 # 17fc0
bl print_string # 17fc4
lwz r8, 0x0000(r18) # addrspc.id # 17fc8
bl print_hexword_spc # 17fcc
bl 1f # 17fd0
.ascii "^n" # 17fd4
.short 0 # 17fd6
.align 2 # 17fd8
1: mflr r8 # 17fd8
bl print_string # 17fdc
bl print_xpt_info # 17fe0
b panic_prompt # 17fe4
cmd_dump_registers:
bl 1f # 17fe8
.ascii "Kernel registers:^n" # 17fec
.short 0 # 17fff
.align 2 # 18001
1: mflr r8 # 18004
bl print_string # 18008
bl print_sprgs # 1800c
bl print_sprs # 18010
bl 1f # 18014
.ascii "^n" # 18018
.short 0 # 1801a
.align 2 # 1801c
1: mflr r8 # 1801c
bl print_string # 18020
bl print_segment_registers # 18024
bl 1f # 18028
.ascii "^n" # 1802c
.short 0 # 1802e
.align 2 # 18030
1: mflr r8 # 18030
bl print_string # 18034
bl print_gprs # 18038
b panic_prompt # 1803c
/***********************************************************
major_0x18040
***********************************************************/
.long 0x7e0802a6 # 18040
.long 0x822107b4 # 18044
.long 0x56318436 # 18048
.long 0x2c116800 # 1804c
.long 0x408200f0 # 18050
.long 0x8221071c # 18054
.long 0x5631843e # 18058
.long 0x7231ffa0 # 1805c
.long 0x2c1102a0 # 18060
.long 0x40820040 # 18064
.long 0x48000031 # 18068
.long 0x43617573 # 1806c
.long 0x65642062 # 18070
.long 0x7920656d # 18074
.long 0x756c6174 # 18078
.long 0x6f722074 # 1807c
.long 0x65726d69 # 18080
.long 0x6e617469 # 18084
.long 0x6f6e2072 # 18088
.long 0x65717565 # 1808c
.long 0x73745e6e # 18090
.long 0 # 18094
.long 0x7d0802a6 # 18098
.long 0x4bffe345 # 1809c
.long 0x4800003c # 180a0
.long 0x48000031 # 180a4
.long 0x43617573 # 180a8
.long 0x65642062 # 180ac
.long 0x7920756e # 180b0
.long 0x68616e64 # 180b4
.long 0x6c656420 # 180b8
.long 0x656d756c # 180bc
.long 0x61746f72 # 180c0
.long 0x20657863 # 180c4
.long 0x65707469 # 180c8
.long 0x6f6e5e6e # 180cc
.long 0 # 180d0
.long 0x7d0802a6 # 180d4
.long 0x4bffe309 # 180d8
.long 0x8221079c # 180dc
.long 0x82410704 # 180e0
.long 0x7e328850 # 180e4
.long 0x2c110100 # 180e8
.long 0x2c91ff00 # 180ec
.long 0x41810050 # 180f0
.long 0x4184004c # 180f4
.long 0x48000041 # 180f8
.long 0x4c6f6f6b # 180fc
.long 0x73206c69 # 18100
.long 0x6b652069 # 18104
.long 0x6e746572 # 18108
.long 0x72757074 # 1810c
.long 0x20737461 # 18110
.long 0x636b206f # 18114
.long 0x76657266 # 18118
.long 0x6c6f7720 # 1811c
.long 0x6279206f # 18120
.long 0x73206f72 # 18124
.long 0x20617070 # 18128
.long 0x6c696361 # 1812c
.long 0x74696f6e # 18130
.long 0x5e6e0000 # 18134
.long 0x7d0802a6 # 18138
.long 0x4bffe2a5 # 1813c
.long 0x7e0803a6 # 18140
.long 0x4e800020 # 18144
/***********************************************************
print_xpt_info
************************************************************
Xrefs:
panic
***********************************************************/
print_xpt_info: /* < outside referer */
mflr r16 # 18148
lwz r18, 0x064c( r1) # 1814c
lis r18, (nk_end - nk_start)@h # 18150
ori r18, r18, (nk_end - nk_start)@l # 18154
add r19, r18, r19 # 18158
bl 1f # 1815c
.ascii "Termination caller " # 18160
.short 0 # 18173
.align 2 # 18175
1: mflr r8 # 18178
bl print_string # 1817c
lwz r20, 0x0904( r1) # 18180
mr r8, r20 # 18184
bl print_hexword_spc # 18188
subf. r21, r18, r20 # 1818c
cmplw cr1, r20, r19 # 18190
blt- print_xpt_info_0x84 # 18194
bge- cr1, print_xpt_info_0x84 # 18198
bl 1f # 1819c
.ascii "( NK+" # 181a0
.short 0 # 181a5
.align 2 # 181a7
1: mflr r8 # 181a8
bl print_string # 181ac
mr r8, r21 # 181b0
bl print_hexword_spc # 181b4
bl 1f # 181b8
.ascii ")^n" # 181bc
.short 0 # 181bf
.align 2 # 181c1
1: mflr r8 # 181c4
bl print_string # 181c8
print_xpt_info_0x84:
bl 1f # 181cc
.ascii " Last exception at " # 181d0
.short 0 # 181e3
.align 2 # 181e5
1: mflr r8 # 181e8
bl print_string # 181ec
mfspr r8, 27/*srr1*/ # 181f0
bl print_hexword_spc # 181f4
mfspr r8, 26/*srr0*/ # 181f8
bl print_hexword_spc # 181fc
mfspr r8, 26/*srr0*/ # 18200
subf. r21, r18, r8 # 18204
cmplw cr1, r8, r19 # 18208
blt- print_xpt_info_0xf8 # 1820c
bge- cr1, print_xpt_info_0xf8 # 18210
bl 1f # 18214
.ascii "( NK+" # 18218
.short 0 # 1821d
.align 2 # 1821f
1: mflr r8 # 18220
bl print_string # 18224
mr r8, r21 # 18228
bl print_hexword_spc # 1822c
bl 1f # 18230
.ascii ")" # 18234
.short 0 # 18235
.align 2 # 18237
1: mflr r8 # 18238
bl print_string # 1823c
print_xpt_info_0xf8:
bl 1f # 18240
.ascii "^n" # 18244
.short 0 # 18246
.align 2 # 18248
1: mflr r8 # 18248
bl print_string # 1824c
mtlr r16 # 18250
blr # 18254
/***********************************************************
print_sprgs
************************************************************
Goldmine. Tells me what the SPRGs do!
************************************************************
Xrefs:
panic
***********************************************************/
print_sprgs: /* < outside referer */
mflr r16 # 18258
bl 1f # 1825c
.ascii "SPRGs ewa: " # 18260
.short 0 # 1826c
.align 2 # 1826e
1: mflr r8 # 18270
bl print_string # 18274
mfspr r8, 272/*sprg0*/ # 18278
bl print_hexword_spc # 1827c
bl 1f # 18280
.ascii " r1: " # 18284
.short 0 # 18289
.align 2 # 1828b
1: mflr r8 # 1828c
bl print_string # 18290
mfspr r8, 273/*sprg1*/ # 18294
bl print_hexword_spc # 18298
bl 1f # 1829c
.ascii " lr: " # 182a0
.short 0 # 182a5
.align 2 # 182a7
1: mflr r8 # 182a8
bl print_string # 182ac
mfspr r8, 274/*sprg2*/ # 182b0
bl print_hexword_spc # 182b4
bl 1f # 182b8
.ascii " vecBase: " # 182bc
.short 0 # 182c6
.align 2 # 182c8
1: mflr r8 # 182c8
bl print_string # 182cc
mfspr r8, 275/*sprg3*/ # 182d0
bl print_hexword_spc # 182d4
bl 1f # 182d8
.ascii "^n" # 182dc
.short 0 # 182de
.align 2 # 182e0
1: mflr r8 # 182e0
bl print_string # 182e4
mtlr r16 # 182e8
blr # 182ec
/***********************************************************
print_sprs
************************************************************
Both user-mode and supervisor-only
************************************************************
Xrefs:
panic
***********************************************************/
print_sprs: /* < outside referer */
mflr r16 # 182f0
bl 1f # 182f4
.ascii " cr: " # 182f8
.short 0 # 18304
.align 2 # 18306
1: mflr r8 # 18308
bl print_string # 1830c
lwz r8, 0x0780( r1) # 18310
bl print_hexword_spc # 18314
bl 1f # 18318
.ascii "xer: " # 1831c
.short 0 # 18321
.align 2 # 18323
1: mflr r8 # 18324
bl print_string # 18328
lwz r8, 0x0788( r1) # 1832c
bl print_hexword_spc # 18330
bl 1f # 18334
.ascii "ctr: " # 18338
.short 0 # 1833d
.align 2 # 1833f
1: mflr r8 # 18340
bl print_string # 18344
lwz r8, 0x0790( r1) # 18348
bl print_hexword_spc # 1834c
bl 1f # 18350
.ascii "lr: " # 18354
.short 0 # 18358
.align 2 # 1835a
1: mflr r8 # 1835c
bl print_string # 18360
lwz r8, 0x078c( r1) # 18364
bl print_hexword_spc # 18368
bl 1f # 1836c
.ascii "^n dsisr: " # 18370
.short 0 # 18380
.align 2 # 18382
1: mflr r8 # 18384
bl print_string # 18388
lwz r8, 0x0798( r1) # 1838c
bl print_hexword_spc # 18390
bl 1f # 18394
.ascii "dar:" # 18398
.short 0 # 1839c
.align 2 # 1839e
1: mflr r8 # 183a0
bl print_string # 183a4
lwz r8, 0x079c( r1) # 183a8
bl print_hexword_spc # 183ac
bl 1f # 183b0
.ascii "pvr: " # 183b4
.short 0 # 183b9
.align 2 # 183bb
1: mflr r8 # 183bc
bl print_string # 183c0
lwz r8, 0x0794( r1) # 183c4
bl print_hexword_spc # 183c8
bl 1f # 183cc
.ascii "^n" # 183d0
.short 0 # 183d2
.align 2 # 183d4
1: mflr r8 # 183d4
bl print_string # 183d8
mtlr r16 # 183dc
blr # 183e0
/***********************************************************
print_segment_registers
************************************************************
Xrefs:
panic
***********************************************************/
print_segment_registers: /* < outside referer */
mflr r16 # 183e4
bl 1f # 183e8
.ascii " sr0-sr7 " # 183ec
.short 0 # 183f6
.align 2 # 183f8
1: mflr r8 # 183f8
bl print_string # 183fc
li r17, 0x08 # 18400
mtctr r17 # 18404
li r18, 0x00 # 18408
print_segment_registers_0x28:
mfsrin r8, r18 # 1840c
addis r18, r18, 0x1000 # 18410
bl print_hexword_spc # 18414
bdnz+ print_segment_registers_0x28 # 18418
bl 1f # 1841c
.ascii "^n sr8-sr15 " # 18420
.short 0 # 1842c
.align 2 # 1842e
1: mflr r8 # 18430
bl print_string # 18434
li r17, 0x08 # 18438
mtctr r17 # 1843c
print_segment_registers_0x5c:
mfsrin r8, r18 # 18440
addis r18, r18, 0x1000 # 18444
bl print_hexword_spc # 18448
bdnz+ print_segment_registers_0x5c # 1844c
bl 1f # 18450
.ascii "^n" # 18454
.short 0 # 18456
.align 2 # 18458
1: mflr r8 # 18458
bl print_string # 1845c
mtlr r16 # 18460
blr # 18464
/***********************************************************
print_gprs
************************************************************
Xrefs:
panic
***********************************************************/
print_gprs: /* < outside referer */
mflr r16 # 18468
addi r17, r1, 0x6fc # 1846c
bl 1f # 18470
.ascii " r0-r7 " # 18474
.short 0 # 1847e
.align 2 # 18480
1: mflr r8 # 18480
bl print_string # 18484
li r18, 0x08 # 18488
mtctr r18 # 1848c
print_gprs_0x28:
lwzu r8, 0x0004(r17) # 18490
bl print_hexword_spc # 18494
bdnz+ print_gprs_0x28 # 18498
bl 1f # 1849c
.ascii "^n r8-r15 " # 184a0
.short 0 # 184ac
.align 2 # 184ae
1: mflr r8 # 184b0
bl print_string # 184b4
li r18, 0x08 # 184b8
mtctr r18 # 184bc
print_gprs_0x58:
lwzu r8, 0x0004(r17) # 184c0
bl print_hexword_spc # 184c4
bdnz+ print_gprs_0x58 # 184c8
bl 1f # 184cc
.ascii "^n r16-r23 " # 184d0
.short 0 # 184dc
.align 2 # 184de
1: mflr r8 # 184e0
bl print_string # 184e4
li r18, 0x08 # 184e8
mtctr r18 # 184ec
print_gprs_0x88:
lwzu r8, 0x0004(r17) # 184f0
bl print_hexword_spc # 184f4
bdnz+ print_gprs_0x88 # 184f8
bl 1f # 184fc
.ascii "^n r24-r31 " # 18500
.short 0 # 1850c
.align 2 # 1850e
1: mflr r8 # 18510
bl print_string # 18514
li r18, 0x08 # 18518
mtctr r18 # 1851c
print_gprs_0xb8:
lwzu r8, 0x0004(r17) # 18520
bl print_hexword_spc # 18524
bdnz+ print_gprs_0xb8 # 18528
bl 1f # 1852c
.ascii "^n" # 18530
.short 0 # 18532
.align 2 # 18534
1: mflr r8 # 18534
bl print_string # 18538
mtlr r16 # 1853c
blr # 18540
/***********************************************************
print_memory
************************************************************
Xrefs:
panic
***********************************************************/
print_memory: /* < outside referer */
mflr r18 # 18544
srwi r17, r17, 4 # 18548
print_memory_0x8:
mr r8, r16 # 1854c
bl print_hexword_spc # 18550
bl 1f # 18554
.ascii " " # 18558
.short 0 # 18559
.align 2 # 1855b
1: mflr r8 # 1855c
bl print_string # 18560
lwz r8, 0x0000(r16) # 18564
bl print_hexword_spc # 18568
lwz r8, 0x0004(r16) # 1856c
bl print_hexword_spc # 18570
lwz r8, 0x0008(r16) # 18574
bl print_hexword_spc # 18578
lwz r8, 0x000c(r16) # 1857c
bl print_hexword_spc # 18580
bl 1f # 18584
.ascii " *" # 18588
.short 0 # 1858b
.align 2 # 1858d
1: mflr r8 # 18590
bl print_string # 18594
li r8, 0x10 # 18598
addi r16, r16, -0x01 # 1859c
mtctr r8 # 185a0
print_memory_0x60:
lbzu r8, 0x0001(r16) # 185a4
cmpwi r8, 0xff # 185a8
beq- print_memory_0x74 # 185ac
cmpwi r8, 0x20 # 185b0
bgt- print_memory_0x78 # 185b4
print_memory_0x74:
li r8, 0x20 # 185b8
print_memory_0x78:
bl print_char # 185bc
bdnz+ print_memory_0x60 # 185c0
bl 1f # 185c4
.ascii "*^n" # 185c8
.short 0 # 185cb
.align 2 # 185cd
1: mflr r8 # 185d0
bl print_string # 185d4
addi r16, r16, 0x01 # 185d8
addi r17, r17, -0x01 # 185dc
bl print_for_panic # 185e0
cmpwi r8, -0x01 # 185e4
bne- print_memory_0xb0 # 185e8
cmpwi r17, 0x00 # 185ec
bne+ print_memory_0x8 # 185f0
print_memory_0xb0:
bl 1f # 185f4
.ascii "^n" # 185f8
.short 0 # 185fa
.align 2 # 185fc
1: mflr r8 # 185fc
bl print_string # 18600
mtlr r18 # 18604
blr # 18608
/***********************************************************
print_memory_logical
************************************************************
Xrefs:
panic
***********************************************************/
print_memory_logical: /* < outside referer */
mflr r18 # 1860c
srwi r17, r17, 4 # 18610
print_memory_logical_0x8:
mr r8, r16 # 18614
bl print_hexword_spc # 18618
bl 1f # 1861c
.ascii " " # 18620
.short 0 # 18621
.align 2 # 18623
1: mflr r8 # 18624
bl print_string # 18628
li r19, 0x10 # 1862c
print_memory_logical_0x24:
mr r27, r16 # 18630
bl major_0x04c20 # 18634
beq- print_memory_logical_0x5c # 18638
blt- print_memory_logical_0x48 # 1863c
bl 1f # 18640
.ascii ".." # 18644
.short 0 # 18646
.align 2 # 18648
1: mflr r8 # 18648
bl print_string # 1864c
b print_memory_logical_0x6c # 18650
print_memory_logical_0x48:
bl 1f # 18654
.ascii "--" # 18658
.short 0 # 1865a
.align 2 # 1865c
1: mflr r8 # 1865c
bl print_string # 18660
b print_memory_logical_0x6c # 18664
print_memory_logical_0x5c:
bl major_0x05524 # 18668
rlwimi r31, r27, 0, 20, 31 # 1866c
lbz r8, 0x0000(r31) # 18670
bl print_0x3a4 # 18674
print_memory_logical_0x6c:
addi r16, r16, 0x01 # 18678
addi r19, r19, -0x01 # 1867c
andi. r8, r19, 0x03 # 18680
bne- print_memory_logical_0x84 # 18684
li r8, 0x20 # 18688
bl print_char # 1868c
print_memory_logical_0x84:
cmpwi r19, 0x00 # 18690
bgt+ print_memory_logical_0x24 # 18694
bl 1f # 18698
.ascii " *" # 1869c
.short 0 # 1869f
.align 2 # 186a1
1: mflr r8 # 186a4
bl print_string # 186a8
li r8, 0x10 # 186ac
addi r16, r16, -0x10 # 186b0
mtctr r8 # 186b4
print_memory_logical_0xac:
mr r27, r16 # 186b8
bl major_0x04c20 # 186bc
li r8, 0x20 # 186c0
bne- print_memory_logical_0xdc # 186c4
bl major_0x05524 # 186c8
rlwimi r31, r27, 0, 20, 31 # 186cc
lbz r8, 0x0000(r31) # 186d0
cmpwi r8, 0xff # 186d4
beq- print_memory_logical_0xd8 # 186d8
cmpwi r8, 0x20 # 186dc
bgt- print_memory_logical_0xdc # 186e0
print_memory_logical_0xd8:
li r8, 0x20 # 186e4
print_memory_logical_0xdc:
bl print_char # 186e8
addi r16, r16, 0x01 # 186ec
bdnz+ print_memory_logical_0xac # 186f0
bl 1f # 186f4
.ascii "*^n" # 186f8
.short 0 # 186fb
.align 2 # 186fd
1: mflr r8 # 18700
bl print_string # 18704
addi r17, r17, -0x01 # 18708
bl print_for_panic # 1870c
cmpwi r8, -0x01 # 18710
bne- print_memory_logical_0x114 # 18714
cmpwi r17, 0x00 # 18718
bne+ print_memory_logical_0x8 # 1871c
print_memory_logical_0x114:
bl 1f # 18720
.ascii "^n" # 18724
.short 0 # 18726
.align 2 # 18728
1: mflr r8 # 18728
bl print_string # 1872c
mtlr r18 # 18730
blr # 18734
/***********************************************************
cmd_lookup
************************************************************
Xrefs:
panic
************************************************************
> r16 = command strings
> r17 = lut
< cr0 = found
< r17 = ptr to lut entry
***********************************************************/
cmd_lookup: /* < outside referer */
addi r15, r15, -0x01 # 18738
addi r16, r16, -0x01 # 1873c
mr r18, r15 # 18740
cmd_lookup_0xc:
lbzu r21, 0x0001(r16) # 18744
lbzu r20, 0x0001(r15) # 18748
cmpwi r21, 0xff # 1874c
cmpwi cr1, r21, 0x00 # 18750
beq- cmd_lookup_0x44 # 18754
beq- cr1, cmd_lookup_0x50 # 18758
cmpw r20, r21 # 1875c
beq+ cmd_lookup_0xc # 18760
cmd_lookup_0x2c:
lbzu r21, 0x0001(r16) # 18764
cmpwi r21, 0x00 # 18768
bne+ cmd_lookup_0x2c # 1876c
cmd_lookup_0x38:
addi r17, r17, 0x04 # 18770
mr r15, r18 # 18774
b cmd_lookup_0xc # 18778
cmd_lookup_0x44:
addi r15, r18, 0x01 # 1877c
cmpw r15, r18 # 18780
blr # 18784
cmd_lookup_0x50:
cmpwi r20, 0x20 # 18788
beqlr- # 1878c
cmpwi r20, 0x00 # 18790
beqlr- # 18794
b cmd_lookup_0x38 # 18798
/***********************************************************
next_cmd_word
************************************************************
Xrefs:
panic
************************************************************
> r15 = start
< r15 = ptr
< r16 = char
***********************************************************/
next_cmd_word: /* < outside referer */
addi r15, r15, -0x01 # 1879c
next_cmd_word_0x4:
lbzu r16, 0x0001(r15) # 187a0
cmpwi r16, 0x20 # 187a4
beq+ next_cmd_word_0x4 # 187a8
blr # 187ac
/***********************************************************
major_0x187b0
************************************************************
Xrefs:
panic
***********************************************************/
major_0x187b0: /* < outside referer */
addi r15, r15, -0x01 # 187b0
li r16, 0x00 # 187b4
major_0x187b0_0x8:
lbzu r17, 0x0001(r15) # 187b8
cmplwi r17, 0x30 # 187bc
cmplwi cr1, r17, 0x39 # 187c0
blt- major_0x187b0_0x28 # 187c4
bgt- cr1, major_0x187b0_0x28 # 187c8
slwi r16, r16, 4 # 187cc
rlwimi r16, r17, 0, 28, 31 # 187d0
b major_0x187b0_0x8 # 187d4
major_0x187b0_0x28:
cmplwi r17, 0x61 # 187d8
cmplwi cr1, r17, 0x66 # 187dc
blt- major_0x187b0_0x48 # 187e0
bgt- cr1, major_0x187b0_0x48 # 187e4
addi r17, r17, -0x57 # 187e8
slwi r16, r16, 4 # 187ec
rlwimi r16, r17, 0, 28, 31 # 187f0
b major_0x187b0_0x8 # 187f4
major_0x187b0_0x48:
cmplwi r17, 0x41 # 187f8
cmplwi cr1, r17, 0x46 # 187fc
blt- major_0x187b0_0x68 # 18800
bgt- cr1, major_0x187b0_0x68 # 18804
addi r17, r17, -0x37 # 18808
slwi r16, r16, 4 # 1880c
rlwimi r16, r17, 0, 28, 31 # 18810
b major_0x187b0_0x8 # 18814
major_0x187b0_0x68:
cmpwi r17, 0x00 # 18818
beqlr- # 1881c
cmpwi r17, 0x20 # 18820
blr # 18824
major_0x187b0_0x78: /* < outside referer */
lwz r1, -0x0004( r1) # 18828
mfmsr r0 # 1882c
ori r0, r0, 0x2000 # 18830
mtmsr r0 # 18834
isync # 18838
lfd f31, 0x08fc( r1) # 1883c
mtfsf 0xff, f31 # 18840
lfd f0, 0x0800( r1) # 18844
lfd f1, 0x0808( r1) # 18848
lfd f2, 0x0810( r1) # 1884c
lfd f3, 0x0818( r1) # 18850
lfd f4, 0x0820( r1) # 18854
lfd f5, 0x0828( r1) # 18858
lfd f6, 0x0830( r1) # 1885c
lfd f7, 0x0838( r1) # 18860
lfd f8, 0x0840( r1) # 18864
lfd f9, 0x0848( r1) # 18868
lfd f10, 0x0850( r1) # 1886c
lfd f11, 0x0858( r1) # 18870
lfd f12, 0x0860( r1) # 18874
lfd f13, 0x0868( r1) # 18878
lfd f14, 0x0870( r1) # 1887c
lfd f15, 0x0878( r1) # 18880
lfd f16, 0x0880( r1) # 18884
lfd f17, 0x0888( r1) # 18888
lfd f18, 0x0890( r1) # 1888c
lfd f19, 0x0898( r1) # 18890
lfd f20, 0x08a0( r1) # 18894
lfd f21, 0x08a8( r1) # 18898
lfd f22, 0x08b0( r1) # 1889c
lfd f23, 0x08b8( r1) # 188a0
lfd f24, 0x08c0( r1) # 188a4
lfd f25, 0x08c8( r1) # 188a8
lfd f26, 0x08d0( r1) # 188ac
lfd f27, 0x08d8( r1) # 188b0
lfd f28, 0x08e0( r1) # 188b4
lfd f29, 0x08e8( r1) # 188b8
lfd f30, 0x08f0( r1) # 188bc
lfd f31, 0x08f8( r1) # 188c0
lwz r0, 0x07c0( r1) # 188c4
mtsr 0x00, r0 # 188c8
lwz r0, 0x07c4( r1) # 188cc
mtsr 0x01, r0 # 188d0
lwz r0, 0x07c8( r1) # 188d4
mtsr 0x02, r0 # 188d8
lwz r0, 0x07cc( r1) # 188dc
mtsr 0x03, r0 # 188e0
lwz r0, 0x07d0( r1) # 188e4
mtsr 0x04, r0 # 188e8
lwz r0, 0x07d4( r1) # 188ec
mtsr 0x05, r0 # 188f0
lwz r0, 0x07d8( r1) # 188f4
mtsr 0x06, r0 # 188f8
lwz r0, 0x07dc( r1) # 188fc
mtsr 0x07, r0 # 18900
lwz r0, 0x07e0( r1) # 18904
mtsr 0x08, r0 # 18908
lwz r0, 0x07e4( r1) # 1890c
mtsr 0x09, r0 # 18910
lwz r0, 0x07e8( r1) # 18914
mtsr 0x0a, r0 # 18918
lwz r0, 0x07ec( r1) # 1891c
mtsr 0x0b, r0 # 18920
lwz r0, 0x07f0( r1) # 18924
mtsr 0x0c, r0 # 18928
lwz r0, 0x07f4( r1) # 1892c
mtsr 0x0d, r0 # 18930
lwz r0, 0x07f8( r1) # 18934
mtsr 0x0e, r0 # 18938
lwz r0, 0x07fc( r1) # 1893c
mtsr 0x0f, r0 # 18940
lwz r0, 0x07a8( r1) # 18944
mtspr 22/*dec*/, r0 # 18948
lwz r0, 0x07b4( r1) # 1894c
mtspr 26/*srr0*/, r0 # 18950
lwz r0, 0x07b8( r1) # 18954
mtspr 27/*srr1*/, r0 # 18958
lwz r0, 0x07bc( r1) # 1895c
mtmsr r0 # 18960
mfspr r0, 287/*pvr*/ # 18964
rlwinm. r0, r0, 0, 0, 14 # 18968
bne- major_0x187b0_0x1c8 # 1896c
lwz r0, 0x0784( r1) # 18970
mtspr 0/*mq*/, r0 # 18974
major_0x187b0_0x1c8:
lwz r0, 0x0788( r1) # 18978
mtxer r0 # 1897c
lwz r0, 0x078c( r1) # 18980
mtspr 274/*sprg2*/, r0 # 18984
lwz r0, 0x0790( r1) # 18988
mtctr r0 # 1898c
lwz r0, 0x0794( r1) # 18990
mtspr 287/*pvr*/, r0 # 18994
lwz r0, 0x0798( r1) # 18998
mtspr 18/*dsisr*/, r0 # 1899c
lwz r0, 0x079c( r1) # 189a0
mtspr 19/*dar*/, r0 # 189a4
lwz r0, 0x0780( r1) # 189a8
mtcr r0 # 189ac
lwz r0, 0x0700( r1) # 189b0
lwz r2, 0x0704( r1) # 189b4
mtspr 273/*sprg1*/, r2 # 189b8
lmw r2, 0x0708( r1) # 189bc
blr # 189c0
/***********************************************************
major_0x189c4
***********************************************************/
.long 0x4800001c # 189c4
.long 0x60000000 # 189c8
.long 0x60000000 # 189cc
.long 0x60000000 # 189d0
.long 0x60000000 # 189d4
.long 0x60000000 # 189d8
.long 0x60000000 # 189dc
/***********************************************************
major_0x189e0
***********************************************************/
.long 0x48000020 # 189e0
.long 0x60000000 # 189e4
.long 0x60000000 # 189e8
.long 0x60000000 # 189ec
.long 0x60000000 # 189f0
.long 0x60000000 # 189f4
.long 0x60000000 # 189f8
.long 0x60000000 # 189fc
/***********************************************************
init_log
************************************************************
Xrefs:
replace_old_kernel
new_world
undo_failed_kernel_replacement
************************************************************
> r1 = kdp
***********************************************************/
init_log: /* < outside referer */
stmw r29, -0x0110( r1) # kdp.-0x110 # 18a00
lis r30, -0x01 # 18a04
ori r30, r30, 0x7000 # 18a08
add r30, r30, r1 # 18a0c
addi r31, r30, 0x2000 # 18a10
addi r30, r30, 0x04 # 18a14
init_log_0x18:
cmplw r30, r31 # 18a18
addi r29, r31, 0x04 # 18a1c
bge- init_log_0x2c # 18a20
stwu r29, -0x1000(r31) # 18a24
b init_log_0x18 # 18a28
init_log_0x2c:
addi r31, r30, 0x1000 # 18a2c
stw r30, -0x0004(r31) # 18a30
stw r30, -0x0404( r1) # kdp.-0x404 # 18a34
stw r30, -0x0400( r1) # kdp.-0x400 # 18a38
li r29, 0x16 # 18a3c
sth r29, -0x0360( r1) # kdp.uint16_log_window_y # 18a40
li r29, 0x18 # 18a44
sth r29, -0x035e( r1) # kdp.uint16_log_window_h # 18a48
li r29, 0x1f6 # 18a4c
sth r29, -0x035c( r1) # kdp.uint16_log_window_height
li r29, 0x24c # 18a54
sth r29, -0x035a( r1) # kdp.uint16_log_window_width
li r29, 0x5e # 18a5c
sth r29, -0x0358( r1) # kdp.-0x358 # 18a60
li r29, 0x30 # 18a64
sth r29, -0x0356( r1) # kdp.-0x356 # 18a68
lmw r29, -0x0110( r1) # kdp.-0x110 # 18a6c
blr # 18a70
/***********************************************************
major_0x18a74
************************************************************
Xrefs:
print
***********************************************************/
major_0x18a74: /* < outside referer */
lwz r30, -0x0404( r1) # 18a74
stb r29, 0x0000(r30) # 18a78
addi r30, r30, 0x01 # 18a7c
andi. r29, r30, 0xfff # 18a80
stw r30, -0x0404( r1) # 18a84
bnelr- # 18a88
lwz r30, -0x1000(r30) # 18a8c
stw r30, -0x0404( r1) # 18a90
blr # 18a94
/***********************************************************
major_0x18a98
************************************************************
Xrefs:
major_0x0c52c
print
***********************************************************/
major_0x18a98: /* < outside referer */
stmw r2, -0x03e8( r1) # 18a98
mflr r14 # 18a9c
mfcr r15 # 18aa0
stw r14, -0x03f0( r1) # 18aa4
stw r15, -0x03ec( r1) # 18aa8
addi r26, r1, -0x690 # 18aac
mfspr r2, 275/*sprg3*/ # 18ab0
mtspr 275/*sprg3*/, r26 # 18ab4
lwz r26, 0x0edc( r1) # 18ab8
andi. r26, r26, 0x08 # 18abc
beq- major_0x18bec # 18ac0
lwz r14, -0x0404( r1) # 18ac4
lwz r15, -0x0400( r1) # 18ac8
cmpw r14, r15 # 18acc
beq- major_0x18bec # 18ad0
bl major_0x18c18 # 18ad4
major_0x18a98_0x40:
li r9, 0x00 # 18ad8
li r10, 0x00 # 18adc
li r25, 0x20 # 18ae0
bl major_0x18e54 # 18ae4
bl major_0x19018 # 18ae8
mflr r21 # 18aec
bl major_0x18e24 # 18af0
bl funny_thing # 18af4
bl major_0x18e24 # 18af8
bl funny_thing # 18afc
lwz r14, -0x0404( r1) # 18b00
lwz r15, -0x0400( r1) # 18b04
li r16, 0x00 # 18b08
major_0x18a98_0x74:
cmpw r14, r15 # 18b0c
beq- major_0x18a98_0x118 # 18b10
lbz r25, 0x0000(r15) # 18b14
addi r15, r15, 0x01 # 18b18
andi. r17, r15, 0xfff # 18b1c
bne+ major_0x18a98_0x90 # 18b20
lwz r15, -0x1000(r15) # 18b24
major_0x18a98_0x90:
cmplwi r25, 0x0d # 18b28
cmplwi cr1, r25, 0x0a # 18b2c
beq+ major_0x18a98_0x74 # 18b30
beq- cr1, major_0x18a98_0xc0 # 18b34
cmpwi r25, 0x00 # 18b38
cmpwi cr1, r25, 0x07 # 18b3c
beq+ major_0x18a98_0x74 # 18b40
beq- cr1, major_0x18a98_0xe4 # 18b44
bl major_0x18e54 # 18b48
lhz r17, -0x0358( r1) # 18b4c
cmpw r9, r17 # 18b50
blt+ major_0x18a98_0x74 # 18b54
major_0x18a98_0xc0:
cmpwi r16, 0x00 # 18b58
bne- major_0x18a98_0xcc # 18b5c
mr r16, r15 # 18b60
major_0x18a98_0xcc:
bl funny_thing # 18b64
lhz r17, -0x0356( r1) # 18b68
cmpw r10, r17 # 18b6c
blt+ major_0x18a98_0x74 # 18b70
stw r16, -0x0400( r1) # 18b74
b major_0x18a98_0x40 # 18b78
major_0x18a98_0xe4:
lhz r17, -0x0356( r1) # 18b7c
addi r17, r17, -0x01 # 18b80
cmpw r10, r17 # 18b84
blt+ major_0x18a98_0x74 # 18b88
lwz r17, -0x0438( r1) # 18b8c
slwi r25, r17, 2 # 18b90
add r25, r25, r17 # 18b94
mfspr r17, 22/*dec*/ # 18b98
subf r17, r25, r17 # 18b9c
major_0x18a98_0x108:
mfspr r25, 22/*dec*/ # 18ba0
subf. r25, r17, r25 # 18ba4
bge+ major_0x18a98_0x108 # 18ba8
b major_0x18a98_0x74 # 18bac
major_0x18a98_0x118:
bl funny_thing_0x8 # 18bb0
mfspr r31, 287/*pvr*/ # 18bb4
rlwinm. r31, r31, 0, 0, 14 # 18bb8
li r31, 0x00 # 18bbc
bne- major_0x18a98_0x140 # 18bc0
mtspr 535/*ibat3l*/, r31 # 18bc4
isync # 18bc8
mtspr 534/*ibat3u*/, r18 # 18bcc
mtspr 535/*ibat3l*/, r19 # 18bd0
b major_0x18a98_0x150 # 18bd4
major_0x18a98_0x140:
mtspr 542/*dbat3u*/, r31 # 18bd8
isync # 18bdc
mtspr 543/*dbat3l*/, r19 # 18be0
mtspr 542/*dbat3u*/, r18 # 18be4
major_0x18a98_0x150:
isync # 18be8
/***********************************************************
major_0x18bec
************************************************************
Xrefs:
major_0x18a98
major_0x18c18
***********************************************************/
major_0x18bec: /* < outside referer */
mtspr 275/*sprg3*/, r2 # 18bec
lwz r14, -0x03f0( r1) # 18bf0
lwz r15, -0x03ec( r1) # 18bf4
mtlr r14 # 18bf8
mtcr r15 # 18bfc
lmw r2, -0x03e8( r1) # 18c00
blr # 18c04
/***********************************************************
major_0x18c08
************************************************************
Xrefs:
major_0x18c18
***********************************************************/
major_0x18c08: /* < outside referer */
mfsrin r31, r27 # 18c08
cmpwi r31, 0x00 # 18c0c
beqlr- # 18c10
b major_0x05524 # 18c14
/***********************************************************
major_0x18c18
************************************************************
Xrefs:
major_0x18a98
***********************************************************/
major_0x18c18: /* < outside referer */
mflr r13 # 18c18
lwz r27, -0x08f8( r1) # 18c1c
cmpwi r27, 0x00 # 18c20
bne- major_0x18c18_0x40 # 18c24
lwz r27, 0x0630( r1) # 18c28
lhz r31, 0x0378(r27) # 18c2c
cmpwi r31, 0x00 # 18c30
beq- major_0x18c18_0x40 # 18c34
lwz r31, 0x037c(r27) # 18c38
cmpwi r31, 0x00 # 18c3c
beq- major_0x18c18_0x40 # 18c40
stw r31, -0x08f8( r1) # 18c44
lhz r31, 0x0384(r27) # 18c48
sth r31, -0x08f4( r1) # 18c4c
lhz r31, 0x0386(r27) # 18c50
sth r31, -0x08f2( r1) # 18c54
major_0x18c18_0x40:
li r27, 0x8a4 # 18c58
bl major_0x18c08 # 18c5c
beq- major_0x18c18_0xe0 # 18c60
rlwimi. r27, r31, 0, 0, 19 # 18c64
ble- major_0x18c18_0xe0 # 18c68
lwz r27, 0x0000(r27) # 18c6c
cmpwi r27, 0x00 # 18c70
ble- major_0x18c18_0xe0 # 18c74
bl major_0x18c08 # 18c78
beq- major_0x18c18_0xe0 # 18c7c
rlwimi r27, r31, 0, 0, 19 # 18c80
lwz r27, 0x0000(r27) # 18c84
cmpwi r27, 0x00 # 18c88
ble- major_0x18c18_0xe0 # 18c8c
addi r27, r27, 0x16 # 18c90
bl major_0x18c08 # 18c94
beq- major_0x18c18_0xe0 # 18c98
rlwimi r27, r31, 0, 0, 19 # 18c9c
lwz r27, 0x0000(r27) # 18ca0
cmpwi r27, 0x00 # 18ca4
ble- major_0x18c18_0xe0 # 18ca8
bl major_0x18c08 # 18cac
beq- major_0x18c18_0xe0 # 18cb0
rlwimi r27, r31, 0, 0, 19 # 18cb4
lwz r27, 0x0000(r27) # 18cb8
cmpwi r27, 0x00 # 18cbc
ble- major_0x18c18_0xe0 # 18cc0
bl major_0x18c08 # 18cc4
beq- major_0x18c18_0xe0 # 18cc8
rlwimi r27, r31, 0, 0, 19 # 18ccc
lwz r3, 0x0000(r27) # 18cd0
lhz r5, 0x0004(r27) # 18cd4
andi. r5, r5, 0x7fff # 18cd8
lhz r6, 0x0020(r27) # 18cdc
srwi r6, r6, 3 # 18ce0
cmplwi r6, 0x08 # 18ce4
bgt- major_0x18c18_0xe0 # 18ce8
stw r3, -0x08f8( r1) # 18cec
sth r5, -0x08f4( r1) # 18cf0
sth r6, -0x08f2( r1) # 18cf4
major_0x18c18_0xe0:
lwz r3, -0x08f8( r1) # 18cf8
lhz r5, -0x08f4( r1) # 18cfc
lhz r6, -0x08f2( r1) # 18d00
cmpwi r3, 0x00 # 18d04
bne- major_0x18d5c # 18d08
b major_0x18bec # 18d0c
/***********************************************************
major_0x18d10
***********************************************************/
.long 0x3c608180 # 18d10
.long 0x60630200 # 18d14
.long 0x38a00340 # 18d18
.long 0x38c00001 # 18d1c
.long 0x4800003c # 18d20
.long 0x3c60a600 # 18d24
.long 0x60638000 # 18d28
.long 0x38a00400 # 18d2c
.long 0x38c00001 # 18d30
.long 0x48000028 # 18d34
.long 0x3c609600 # 18d38
.long 0x60638000 # 18d3c
.long 0x38a00400 # 18d40
.long 0x38c00001 # 18d44
.long 0x48000014 # 18d48
.long 0x3c609600 # 18d4c
.long 0x60638000 # 18d50
.long 0x38a00400 # 18d54
.long 0x38c00001 # 18d58
/***********************************************************
major_0x18d5c
************************************************************
Xrefs:
major_0x18c18
***********************************************************/
major_0x18d5c: /* < outside referer */
cmpwi cr4, r6, 0x02 # 18d5c
bl major_0x19ab0 # 18d60
blt- cr4, major_0x18d5c_0x18 # 18d64
bl major_0x19b00 # 18d68
beq- cr4, major_0x18d5c_0x18 # 18d6c
bl load_log_colours # 18d70
major_0x18d5c_0x18:
mflr r24 # 18d74
mfspr r31, 287/*pvr*/ # 18d78
rlwinm. r31, r31, 0, 0, 14 # 18d7c
li r31, 0x00 # 18d80
bne- major_0x18d5c_0x3c # 18d84
mfspr r19, 535/*ibat3l*/ # 18d88
mfspr r18, 534/*ibat3u*/ # 18d8c
mtspr 535/*ibat3l*/, r31 # 18d90
b major_0x18d5c_0x48 # 18d94
major_0x18d5c_0x3c:
mfspr r18, 542/*dbat3u*/ # 18d98
mfspr r19, 543/*dbat3l*/ # 18d9c
mtspr 542/*dbat3u*/, r31 # 18da0
major_0x18d5c_0x48:
isync # 18da4
rlwinm r29, r3, 0, 0, 7 # 18da8
beq- major_0x18d5c_0x70 # 18dac
li r30, 0x7e # 18db0
or r30, r30, r29 # 18db4
li r31, 0x32 # 18db8
or r31, r31, r29 # 18dbc
mtspr 543/*dbat3l*/, r31 # 18dc0
mtspr 542/*dbat3u*/, r30 # 18dc4
b major_0x18d5c_0x88 # 18dc8
major_0x18d5c_0x70:
li r30, 0x32 # 18dcc
or r30, r30, r29 # 18dd0
li r31, 0x5f # 18dd4
or r31, r31, r29 # 18dd8
mtspr 534/*ibat3u*/, r30 # 18ddc
mtspr 535/*ibat3l*/, r31 # 18de0
major_0x18d5c_0x88:
isync # 18de4
mfmsr r22 # 18de8
lhz r29, -0x0360( r1) # 18dec
lhz r30, -0x035c( r1) # 18df0
subf r29, r29, r30 # 18df4
li r30, 0x0a # 18df8
divw r29, r29, r30 # 18dfc
sth r29, -0x0356( r1) # 18e00
lhz r29, -0x035e( r1) # 18e04
lhz r30, -0x035a( r1) # 18e08
subf r29, r29, r30 # 18e0c
li r30, 0x06 # 18e10
divw r29, r29, r30 # 18e14
sth r29, -0x0358( r1) # 18e18
mtlr r13 # 18e1c
blr # 18e20
/***********************************************************
major_0x18e24
************************************************************
Xrefs:
major_0x18a98
***********************************************************/
major_0x18e24: /* < outside referer */
mflr r12 # 18e24
major_0x18e24_0x4:
lhz r25, -0x0358( r1) # 18e28
cmpw cr1, r9, r25 # 18e2c
lbz r25, 0x0000(r21) # 18e30
cmplwi r25, 0x00 # 18e34
addi r21, r21, 0x01 # 18e38
beq- major_0x18e24_0x28 # 18e3c
bge+ cr1, major_0x18e24_0x4 # 18e40
bl major_0x18e54 # 18e44
b major_0x18e24_0x4 # 18e48
major_0x18e24_0x28:
mtlr r12 # 18e4c
blr # 18e50
/***********************************************************
major_0x18e54
************************************************************
Xrefs:
major_0x18a98
major_0x18e24
funny_thing
***********************************************************/
major_0x18e54: /* < outside referer */
mflr r13 # 18e54
cmpwi cr4, r6, 0x02 # 18e58
bl load_log_font # 18e5c
mflr r23 # 18e60
add r23, r25, r23 # 18e64
mulli r27, r5, 0x0a # 18e68
mullw r27, r27, r10 # 18e6c
mulli r7, r9, 0x06 # 18e70
mullw r7, r7, r6 # 18e74
add r7, r7, r27 # 18e78
add r7, r7, r3 # 18e7c
lhz r27, -0x0360( r1) # 18e80
lhz r28, -0x035e( r1) # 18e84
mullw r27, r5, r27 # 18e88
mullw r28, r6, r28 # 18e8c
add r7, r7, r27 # 18e90
add r7, r7, r28 # 18e94
subf. r27, r3, r7 # 18e98
blt- major_0x18e54_0x174 # 18e9c
li r8, 0x00 # 18ea0
major_0x18e54_0x50:
beq- cr4, major_0x18e54_0x9c # 18ea4
bgt- cr4, major_0x18e54_0xe0 # 18ea8
lbz r27, 0x0000(r23) # 18eac
rlwinm r27, r27, 28, 28, 29 # 18eb0
lwzx r28, r24, r27 # 18eb4
lbz r27, 0x0000(r23) # 18eb8
rlwinm r27, r27, 0, 26, 29 # 18ebc
lwzx r27, r24, r27 # 18ec0
ori r22, r22, 0x10 # 18ec4
mtmsr r22 # 18ec8
isync # 18ecc
sth r28, 0x0000( r7) # 18ed0
sth r27, 0x0004( r7) # 18ed4
srwi r27, r27, 16 # 18ed8
sth r27, 0x0002( r7) # 18edc
rlwinm r22, r22, 0, 28, 26 # 18ee0
mtmsr r22 # 18ee4
isync # 18ee8
b major_0x18e54_0x160 # 18eec
major_0x18e54_0x9c:
lbz r28, 0x0000(r23) # 18ef0
rlwinm r27, r28, 28, 28, 29 # 18ef4
lwzx r27, r24, r27 # 18ef8
rlwinm r29, r28, 30, 28, 29 # 18efc
lwzx r29, r24, r29 # 18f00
rlwinm r30, r28, 0, 28, 29 # 18f04
lwzx r30, r24, r30 # 18f08
ori r22, r22, 0x10 # 18f0c
mtmsr r22 # 18f10
isync # 18f14
stw r27, 0x0000( r7) # 18f18
stw r29, 0x0004( r7) # 18f1c
stw r30, 0x0008( r7) # 18f20
rlwinm r22, r22, 0, 28, 26 # 18f24
mtmsr r22 # 18f28
isync # 18f2c
b major_0x18e54_0x160 # 18f30
major_0x18e54_0xe0:
lbz r28, 0x0000(r23) # 18f34
rlwinm r27, r28, 27, 29, 29 # 18f38
lwzx r27, r24, r27 # 18f3c
rlwinm r29, r28, 28, 29, 29 # 18f40
lwzx r29, r24, r29 # 18f44
rlwinm r30, r28, 29, 29, 29 # 18f48
lwzx r30, r24, r30 # 18f4c
rlwinm r31, r28, 30, 29, 29 # 18f50
lwzx r31, r24, r31 # 18f54
ori r22, r22, 0x10 # 18f58
mtmsr r22 # 18f5c
isync # 18f60
stw r27, 0x0000( r7) # 18f64
stw r29, 0x0004( r7) # 18f68
stw r30, 0x0008( r7) # 18f6c
stw r31, 0x000c( r7) # 18f70
rlwinm r22, r22, 0, 28, 26 # 18f74
mtmsr r22 # 18f78
isync # 18f7c
rlwinm r27, r28, 31, 29, 29 # 18f80
lwzx r27, r24, r27 # 18f84
rlwinm r29, r28, 0, 29, 29 # 18f88
lwzx r29, r24, r29 # 18f8c
ori r22, r22, 0x10 # 18f90
mtmsr r22 # 18f94
isync # 18f98
stw r27, 0x0010( r7) # 18f9c
stw r29, 0x0014( r7) # 18fa0
rlwinm r22, r22, 0, 28, 26 # 18fa4
mtmsr r22 # 18fa8
isync # 18fac
b major_0x18e54_0x160 # 18fb0
major_0x18e54_0x160:
addi r8, r8, 0x01 # 18fb4
cmplwi r8, 0x0a # 18fb8
add r7, r7, r5 # 18fbc
addi r23, r23, 0x100 # 18fc0
blt+ major_0x18e54_0x50 # 18fc4
major_0x18e54_0x174:
addi r9, r9, 0x01 # 18fc8
mtlr r13 # 18fcc
blr # 18fd0
/***********************************************************
funny_thing
************************************************************
Xrefs:
major_0x18a98
***********************************************************/
funny_thing: /* < outside referer */
crclr 4*cr2 + eq # 18fd4
b funny_thing_0xc # 18fd8
funny_thing_0x8: /* < outside referer */
crset 4*cr2 + eq # 18fdc
funny_thing_0xc:
mflr r12 # 18fe0
funny_thing_0x10:
lhz r25, -0x0358( r1) # 18fe4
cmpw r9, r25 # 18fe8
bge- funny_thing_0x28 # 18fec
li r25, 0x20 # 18ff0
bl major_0x18e54 # 18ff4
b funny_thing_0x10 # 18ff8
funny_thing_0x28:
beq- cr2, funny_thing_0x3c # 18ffc
li r9, 0x00 # 19000
addi r10, r10, 0x01 # 19004
li r25, 0x20 # 19008
bl major_0x18e54 # 1900c
funny_thing_0x3c:
mtlr r12 # 19010
blr # 19014
/***********************************************************
major_0x19018
************************************************************
Xrefs:
major_0x18a98
***********************************************************/
major_0x19018: /* < outside referer */
blrl # 19018
.long 0x20202020 # 1901c
.long 0x20202020 # 19020
.long 0x20202020 # 19024
.long 0x20204e61 # 19028
.long 0x6e6f4b65 # 1902c
.long 0x726e656c # 19030
.long 0x204c6f67 # 19034
.long 0x20002020 # 19038
.long 0x20202020 # 1903c
.long 0x20202020 # 19040
.long 0x20202020 # 19044
.long 0x2d2d2d2d # 19048
.long 0x2d2d2d2d # 1904c
.long 0x2d2d2d2d # 19050
.long 0x2d2d2000 # 19054
.long 0x4e800021 # 19058
.long 0x20202020 # 1905c
.long 0x20202020 # 19060
.long 0x20202020 # 19064
.long 0x20205379 # 19068
.long 0x7374656d # 1906c
.long 0x20546572 # 19070
.long 0x6d696e61 # 19074
.long 0x74696f6e # 19078
.long 0x20002020 # 1907c
.long 0x20202020 # 19080
.long 0x20202020 # 19084
.long 0x20202020 # 19088
.long 0x2d2d2d2d # 1908c
.long 0x2d2d2d2d # 19090
.long 0x2d2d2d2d # 19094
.long 0x2d2d2d2d # 19098
.long 0x2d2d2000 # 1909c
/***********************************************************
load_log_font
************************************************************
Xrefs:
major_0x18e54
***********************************************************/
load_log_font: /* < outside referer */
blrl # 190a0
.long 0x907070f0 # 190a4
.long 0xf0f06000 # 190a8
.long 0xe0008090 # 190ac
.long 0xf0007070 # 190b0
.long 0xe0e0e0e0 # 190b4
.long 0xe09070f0 # 190b8
.long 0x70f070f0 # 190bc
.long 0xf070e090 # 190c0
.long 0 # 190c4
.long 0x20000000 # 190c8
.long 0 # 190cc
.long 0 # 190d0
.long 0 # 190d4
.long 0 # 190d8
.long 0 # 190dc
.long 0 # 190e0
.long 0 # 190e4
.long 0 # 190e8
.long 0 # 190ec
.long 0 # 190f0
.long 0 # 190f4
.long 0 # 190f8
.long 0 # 190fc
.long 0 # 19100
.long 0 # 19104
.long 0 # 19108
.long 0 # 1910c
.long 0 # 19110
.long 0 # 19114
.long 0 # 19118
.long 0x00000008 # 1911c
.long 0x20400000 # 19120
.long 0x50200010 # 19124
.long 0x68505000 # 19128
.long 0 # 1912c
.long 0 # 19130
.long 0 # 19134
.long 0 # 19138
.long 0 # 1913c
.long 0 # 19140
.long 0 # 19144
.long 0x70000000 # 19148
.long 0 # 1914c
.long 0 # 19150
.long 0 # 19154
.long 0 # 19158
.long 0x00001800 # 1915c
.long 0 # 19160
.long 0 # 19164
.long 0x18000000 # 19168
.long 0x00000040 # 1916c
.long 0x68680000 # 19170
.long 0 # 19174
.long 0 # 19178
.long 0x00500000 # 1917c
.long 0 # 19180
.long 0 # 19184
.long 0 # 19188
.long 0 # 1918c
.long 0 # 19190
.long 0 # 19194
.long 0 # 19198
.long 0 # 1919c
.long 0 # 191a0
.long 0xd0808080 # 191a4
.long 0x80809000 # 191a8
.long 0x90008090 # 191ac
.long 0x80088080 # 191b0
.long 0x90909090 # 191b4
.long 0x90d08080 # 191b8
.long 0x80808080 # 191bc
.long 0x80809090 # 191c0
.long 0x00205050 # 191c4
.long 0x70786020 # 191c8
.long 0x10200000 # 191cc
.long 0x00000008 # 191d0
.long 0x70207070 # 191d4
.long 0x10f870f8 # 191d8
.long 0x70700000 # 191dc
.long 0x00000070 # 191e0
.long 0x7070f070 # 191e4
.long 0xf0f8f870 # 191e8
.long 0x88700888 # 191ec
.long 0x80888870 # 191f0
.long 0xf070f070 # 191f4
.long 0xf8888888 # 191f8
.long 0x8888f830 # 191fc
.long 0x40302000 # 19200
.long 0x20008000 # 19204
.long 0x08001800 # 19208
.long 0x80202080 # 1920c
.long 0x20000000 # 19210
.long 0 # 19214
.long 0x20000000 # 19218
.long 0x00000010 # 1921c
.long 0x20200000 # 19220
.long 0x00500020 # 19224
.long 0xb8000010 # 19228
.long 0x40200068 # 1922c
.long 0x30001040 # 19230
.long 0x20001040 # 19234
.long 0x20006810 # 19238
.long 0x40200068 # 1923c
.long 0x10402000 # 19240
.long 0x00300060 # 19244
.long 0x88007830 # 19248
.long 0 # 1924c
.long 0 # 19250
.long 0x00001040 # 19254
.long 0x880020f8 # 19258
.long 0xf8002038 # 1925c
.long 0x30700000 # 19260
.long 0x20200000 # 19264
.long 0x20000000 # 19268
.long 0x00000020 # 1926c
.long 0xb0b00000 # 19270
.long 0x00005050 # 19274
.long 0x20600000 # 19278
.long 0x50000000 # 1927c
.long 0x00003030 # 19280
.long 0 # 19284
.long 0x40202010 # 19288
.long 0x00201020 # 1928c
.long 0x00201020 # 19290
.long 0x30201020 # 19294
.long 0x20002068 # 19298
.long 0x70482020 # 1929c
.long 0x00280050 # 192a0
.long 0xb06060e0 # 192a4
.long 0xe0e0f020 # 192a8
.long 0xe0208090 # 192ac
.long 0xe0086060 # 192b0
.long 0x90909090 # 192b4
.long 0x90b060e0 # 192b8
.long 0x80e060e0 # 192bc
.long 0xe0b0e090 # 192c0
.long 0x002050f8 # 192c4
.long 0xa8a89020 # 192c8
.long 0x20102020 # 192cc
.long 0x00000008 # 192d0
.long 0x88608888 # 192d4
.long 0x30808008 # 192d8
.long 0x88880000 # 192dc
.long 0x10004088 # 192e0
.long 0x88888888 # 192e4
.long 0x88808088 # 192e8
.long 0x88200890 # 192ec
.long 0x80d8c888 # 192f0
.long 0x88888888 # 192f4
.long 0x20888888 # 192f8
.long 0x88880820 # 192fc
.long 0x40105000 # 19300
.long 0x10008000 # 19304
.long 0x08002000 # 19308
.long 0x80000080 # 1930c
.long 0x20000000 # 19310
.long 0 # 19314
.long 0x20000000 # 19318
.long 0x00000010 # 1931c
.long 0x20206800 # 19320
.long 0x702070f8 # 19324
.long 0x88708820 # 19328
.long 0x205050b0 # 1932c
.long 0x48002020 # 19330
.long 0x50502020 # 19334
.long 0x5050b020 # 19338
.long 0x205050b0 # 1933c
.long 0x20205050 # 19340
.long 0x20480090 # 19344
.long 0x4800a848 # 19348
.long 0xe0e0f410 # 1934c
.long 0x50007870 # 19350
.long 0x00202020 # 19354
.long 0x50001048 # 19358
.long 0x50002048 # 1935c
.long 0x48880000 # 19360
.long 0x00000018 # 19364
.long 0x20082000 # 19368
.long 0x00000070 # 1936c
.long 0x70707800 # 19370
.long 0x0000a050 # 19374
.long 0x40200000 # 19378
.long 0x00880884 # 1937c
.long 0x00004048 # 19380
.long 0x20000000 # 19384
.long 0xa0505020 # 19388
.long 0x50102050 # 1938c
.long 0x50102050 # 19390
.long 0x20102050 # 19394
.long 0x100050b0 # 19398
.long 0x00300050 # 1939c
.long 0x00500020 # 193a0
.long 0x90101080 # 193a4
.long 0x80809070 # 193a8
.long 0x9030f0a0 # 193ac
.long 0x80281010 # 193b0
.long 0x90909090 # 193b4
.long 0x90901080 # 193b8
.long 0x80801080 # 193bc
.long 0x8090a090 # 193c0
.long 0x00200050 # 193c4
.long 0xa0b0a000 # 193c8
.long 0x4008a820 # 193cc
.long 0x00000010 # 193d0
.long 0x98200808 # 193d4
.long 0x50f0f008 # 193d8
.long 0x88882020 # 193dc
.long 0x20f82008 # 193e0
.long 0xe8888880 # 193e4
.long 0x88808080 # 193e8
.long 0x882008a0 # 193ec
.long 0x80a8a888 # 193f0
.long 0x88888880 # 193f4
.long 0x20888888 # 193f8
.long 0x50881020 # 193fc
.long 0x20108800 # 19400
.long 0x0078f070 # 19404
.long 0x78707078 # 19408
.long 0xf0202090 # 1940c
.long 0x20f0b070 # 19410
.long 0xf078b078 # 19414
.long 0x708888a8 # 19418
.long 0x8888f810 # 1941c
.long 0x2020b000 # 19420
.long 0x88708880 # 19424
.long 0xc8888800 # 19428
.long 0 # 1942c
.long 0x30700000 # 19430
.long 0 # 19434
.long 0 # 19438
.long 0 # 1943c
.long 0 # 19440
.long 0x70482080 # 19444
.long 0xa000a888 # 19448
.long 0x10105c20 # 1944c
.long 0x0010a088 # 19450
.long 0xd8204010 # 19454
.long 0xf8901820 # 19458
.long 0x50f82048 # 1945c
.long 0x48887070 # 19460
.long 0x20200010 # 19464
.long 0x20702000 # 19468
.long 0x00000088 # 1946c
.long 0x8888a000 # 19470
.long 0x0000a0a0 # 19474
.long 0x60402020 # 19478
.long 0x88881030 # 1947c
.long 0x0000e8e8 # 19480
.long 0x70000000 # 19484
.long 0x40000000 # 19488
.long 0 # 1948c
.long 0 # 19490
.long 0x58000000 # 19494
.long 0x00200000 # 19498
.long 0x00000020 # 1949c
.long 0 # 194a0
.long 0x90e0e0f0 # 194a4
.long 0xf0f09070 # 194a8
.long 0xe0f80040 # 194ac
.long 0x8068e0e0 # 194b0
.long 0xe0e0e0e0 # 194b4
.long 0xe090e0f0 # 194b8
.long 0x70f0e0f0 # 194bc
.long 0x80609060 # 194c0
.long 0x002000f8 # 194c4
.long 0x70504000 # 194c8
.long 0x400870f8 # 194cc
.long 0x00f80010 # 194d0
.long 0xa8201030 # 194d4
.long 0x90088810 # 194d8
.long 0x70880000 # 194dc
.long 0x40001010 # 194e0
.long 0xa8f8f080 # 194e4
.long 0x88f0f098 # 194e8
.long 0xf82008c0 # 194ec
.long 0x80889888 # 194f0
.long 0xf088f070 # 194f4
.long 0x20888888 # 194f8
.long 0x20502020 # 194fc
.long 0x20100000 # 19500
.long 0x00888888 # 19504
.long 0x88882088 # 19508
.long 0x882020a0 # 1950c
.long 0x20a8c888 # 19510
.long 0x8888c880 # 19514
.long 0x208888a8 # 19518
.long 0x50881020 # 1951c
.long 0x20100000 # 19520
.long 0x88888080 # 19524
.long 0xa8888878 # 19528
.long 0x78787878 # 1952c
.long 0x78887070 # 19530
.long 0x70702020 # 19534
.long 0x2020b070 # 19538
.long 0x70707070 # 1953c
.long 0x88888888 # 19540
.long 0x203070e0 # 19544
.long 0x9030a890 # 19548
.long 0xc8685c00 # 1954c
.long 0x00f8a098 # 19550
.long 0xa8f82020 # 19554
.long 0x20902810 # 19558
.long 0x50502038 # 1955c
.long 0x3088a898 # 19560
.long 0x4020f820 # 19564
.long 0x70885048 # 19568
.long 0x90000088 # 1956c
.long 0x8888a050 # 19570
.long 0 # 19574
.long 0x00000050 # 19578
.long 0x88882048 # 1957c
.long 0x00004848 # 19580
.long 0x20200000 # 19584
.long 0x1c70f870 # 19588
.long 0xf8f87070 # 1958c
.long 0x70707070 # 19590
.long 0xf0708888 # 19594
.long 0x88200000 # 19598
.long 0 # 1959c
.long 0 # 195a0
.long 0x48484848 # 195a4
.long 0x003048f8 # 195a8
.long 0x38307800 # 195ac
.long 0x78f83830 # 195b0
.long 0x00107070 # 195b4
.long 0x10484870 # 195b8
.long 0x00007038 # 195bc
.long 0x38383838 # 195c0
.long 0x00200050 # 195c4
.long 0x2868a800 # 195c8
.long 0x4008a820 # 195cc
.long 0x00000020 # 195d0
.long 0xc8202008 # 195d4
.long 0xf8088820 # 195d8
.long 0x88782000 # 195dc
.long 0x20f82020 # 195e0
.long 0xf0888880 # 195e4
.long 0x88808088 # 195e8
.long 0x882088a0 # 195ec
.long 0x80888888 # 195f0
.long 0x80888808 # 195f4
.long 0x208888a8 # 195f8
.long 0x50204020 # 195fc
.long 0x10100000 # 19600
.long 0x00888880 # 19604
.long 0x88f82088 # 19608
.long 0x882020e0 # 1960c
.long 0x20a88888 # 19610
.long 0x88888070 # 19614
.long 0x208888a8 # 19618
.long 0x20882010 # 1961c
.long 0x20200000 # 19620
.long 0xf88880f0 # 19624
.long 0x98888888 # 19628
.long 0x88888888 # 1962c
.long 0x88808888 # 19630
.long 0x88882020 # 19634
.long 0x2020c888 # 19638
.long 0x88888888 # 1963c
.long 0x88888888 # 19640
.long 0x2000a880 # 19644
.long 0x48307890 # 19648
.long 0xa8880000 # 1964c
.long 0x0020f0a8 # 19650
.long 0xd8201040 # 19654
.long 0xf8904820 # 19658
.long 0x50502000 # 1965c
.long 0x0088b8a8 # 19660
.long 0x802008a0 # 19664
.long 0x20705090 # 19668
.long 0x480000f8 # 1966c
.long 0xf888b0a8 # 19670
.long 0x70f80000 # 19674
.long 0x0000f888 # 19678
.long 0x88504048 # 1967c
.long 0x10404848 # 19680
.long 0x20000000 # 19684
.long 0xe0888088 # 19688
.long 0x80802020 # 1968c
.long 0x20208888 # 19690
.long 0xf8888888 # 19694
.long 0x88200000 # 19698
.long 0 # 1969c
.long 0 # 196a0
.long 0x48484848 # 196a4
.long 0x384850f8 # 196a8
.long 0x40204038 # 196ac
.long 0x40601048 # 196b0
.long 0x40300808 # 196b4
.long 0x30504848 # 196b8
.long 0x48884840 # 196bc
.long 0x40404040 # 196c0
.long 0 # 196c4
.long 0xa8a89000 # 196c8
.long 0x20102020 # 196cc
.long 0x00000020 # 196d0
.long 0x88204088 # 196d4
.long 0x10888820 # 196d8
.long 0x88080000 # 196dc
.long 0x10004000 # 196e0
.long 0x80888888 # 196e4
.long 0x88808088 # 196e8
.long 0x88208890 # 196ec
.long 0x80888888 # 196f0
.long 0x80888888 # 196f4
.long 0x208850d8 # 196f8
.long 0x88208020 # 196fc
.long 0x10100000 # 19700
.long 0x00988880 # 19704
.long 0x88802088 # 19708
.long 0x88202090 # 1970c
.long 0x20a88888 # 19710
.long 0x88888008 # 19714
.long 0x209850a8 # 19718
.long 0x50884010 # 1971c
.long 0x20200000 # 19720
.long 0x88f88080 # 19724
.long 0x88888888 # 19728
.long 0x88888888 # 1972c
.long 0x8880f8f8 # 19730
.long 0xf8f82020 # 19734
.long 0x20208888 # 19738
.long 0x88888888 # 1973c
.long 0x88888888 # 19740
.long 0x2000a080 # 19744
.long 0x28002888 # 19748
.long 0xc8680000 # 1974c
.long 0x00f8a0c8 # 19750
.long 0x00200000 # 19754
.long 0x20904848 # 19758
.long 0x50502078 # 1975c
.long 0x7850a0c8 # 19760
.long 0x88200840 # 19764
.long 0x20808890 # 19768
.long 0x48000088 # 1976c
.long 0x8888a0b8 # 19770
.long 0 # 19774
.long 0x00000050 # 19778
.long 0x88208030 # 1977c
.long 0x20204848 # 19780
.long 0x20000000 # 19784
.long 0x00f8f0f8 # 19788
.long 0xf0f02020 # 1978c
.long 0x20208888 # 19790
.long 0xf8888888 # 19794
.long 0x88200000 # 19798
.long 0 # 1979c
.long 0 # 197a0
.long 0x48783030 # 197a4
.long 0x10487020 # 197a8
.long 0x30007010 # 197ac
.long 0x70201048 # 197b0
.long 0x40101030 # 197b4
.long 0x78703070 # 197b8
.long 0x68d87040 # 197bc
.long 0x30303030 # 197c0
.long 0x00200000 # 197c4
.long 0x70906800 # 197c8
.long 0x10200000 # 197cc
.long 0x20002040 # 197d0
.long 0x7020f870 # 197d4
.long 0x10707020 # 197d8
.long 0x70700020 # 197dc
.long 0x00000020 # 197e0
.long 0x7088f070 # 197e4
.long 0xf0f88070 # 197e8
.long 0x88707088 # 197ec
.long 0xf8888870 # 197f0
.long 0x80708870 # 197f4
.long 0x20702088 # 197f8
.long 0x8820f830 # 197fc
.long 0x083000f8 # 19800
.long 0x0068f078 # 19804
.long 0x78782078 # 19808
.long 0x88202088 # 1980c
.long 0x20a88870 # 19810
.long 0xf07880f0 # 19814
.long 0x18682050 # 19818
.long 0x8878f810 # 1981c
.long 0x20200000 # 19820
.long 0x88888880 # 19824
.long 0x88888898 # 19828
.long 0x98989898 # 1982c
.long 0x98788080 # 19830
.long 0x80802020 # 19834
.long 0x20208888 # 19838
.long 0x88888888 # 1983c
.long 0x98989898 # 19840
.long 0x0000a888 # 19844
.long 0x90002888 # 19848
.long 0xb0100000 # 1984c
.long 0x0040a088 # 19850
.long 0x00f87070 # 19854
.long 0x20e830f8 # 19858
.long 0x50502000 # 1985c
.long 0x00d87870 # 19860
.long 0x70200040 # 19864
.long 0x2000f848 # 19868
.long 0x90a80088 # 1986c
.long 0x8888a0a0 # 19870
.long 0 # 19874
.long 0x00002020 # 19878
.long 0x78200084 # 1987c
.long 0x10404848 # 19880
.long 0x70002050 # 19884
.long 0x48888088 # 19888
.long 0x80802020 # 1988c
.long 0x20208888 # 19890
.long 0x50888888 # 19894
.long 0x88200000 # 19898
.long 0 # 1989c
.long 0x20001000 # 198a0
.long 0x30484848 # 198a4
.long 0x10584800 # 198a8
.long 0x08004010 # 198ac
.long 0x40001048 # 198b0
.long 0x40102008 # 198b4
.long 0x10481048 # 198b8
.long 0x58a84840 # 198bc
.long 0x08080808 # 198c0
.long 0 # 198c4
.long 0x20000000 # 198c8
.long 0 # 198cc
.long 0x20000040 # 198d0
.long 0 # 198d4
.long 0 # 198d8
.long 0x00000020 # 198dc
.long 0 # 198e0
.long 0 # 198e4
.long 0 # 198e8
.long 0 # 198ec
.long 0 # 198f0
.long 0x00080000 # 198f4
.long 0 # 198f8
.long 0 # 198fc
.long 0x08000000 # 19900
.long 0 # 19904
.long 0x00000008 # 19908
.long 0x00002000 # 1990c
.long 0 # 19910
.long 0x80080000 # 19914
.long 0 # 19918
.long 0x00080008 # 1991c
.long 0x20400000 # 19920
.long 0x888870f8 # 19924
.long 0x88707068 # 19928
.long 0x68686868 # 1992c
.long 0x68207878 # 19930
.long 0x78782020 # 19934
.long 0x20208870 # 19938
.long 0x70707070 # 1993c
.long 0x68686868 # 19940
.long 0x000070f0 # 19944
.long 0x880028b0 # 19948
.long 0x00e00000 # 1994c
.long 0x0000b870 # 19950
.long 0 # 19954
.long 0x00800000 # 19958
.long 0x00002000 # 1995c
.long 0 # 19960
.long 0 # 19964
.long 0x20000000 # 19968
.long 0x00000088 # 1996c
.long 0x88707858 # 19970
.long 0 # 19974
.long 0 # 19978
.long 0x08200000 # 1997c
.long 0 # 19980
.long 0x20002050 # 19984
.long 0xb488f888 # 19988
.long 0xf8f87070 # 1998c
.long 0x70708888 # 19990
.long 0x00887070 # 19994
.long 0x70000000 # 19998
.long 0 # 1999c
.long 0x10002000 # 199a0
.long 0x00484848 # 199a4
.long 0x10384800 # 199a8
.long 0x70004010 # 199ac
.long 0x40003830 # 199b0
.long 0x70387870 # 199b4
.long 0x10481070 # 199b8
.long 0x48887038 # 199bc
.long 0x70707070 # 199c0
.long 0 # 199c4
.long 0 # 199c8
.long 0 # 199cc
.long 0x40000000 # 199d0
.long 0 # 199d4
.long 0 # 199d8
.long 0x00000040 # 199dc
.long 0 # 199e0
.long 0 # 199e4
.long 0 # 199e8
.long 0 # 199ec
.long 0 # 199f0
.long 0 # 199f4
.long 0 # 199f8
.long 0 # 199fc
.long 0 # 19a00
.long 0 # 19a04
.long 0x00000070 # 19a08
.long 0x0000c000 # 19a0c
.long 0 # 19a10
.long 0x80080000 # 19a14
.long 0 # 19a18
.long 0x00700000 # 19a1c
.long 0 # 19a20
.long 0 # 19a24
.long 0 # 19a28
.long 0 # 19a2c
.long 0x00400000 # 19a30
.long 0 # 19a34
.long 0 # 19a38
.long 0 # 19a3c
.long 0 # 19a40
.long 0x00002000 # 19a44
.long 0x70000080 # 19a48
.long 0 # 19a4c
.long 0 # 19a50
.long 0 # 19a54
.long 0x00800000 # 19a58
.long 0x0000c000 # 19a5c
.long 0 # 19a60
.long 0 # 19a64
.long 0xc0000000 # 19a68
.long 0 # 19a6c
.long 0 # 19a70
.long 0 # 19a74
.long 0 # 19a78
.long 0x70000000 # 19a7c
.long 0 # 19a80
.long 0x000040a0 # 19a84
.long 0x48000000 # 19a88
.long 0 # 19a8c
.long 0x00007070 # 19a90
.long 0x00700000 # 19a94
.long 0 # 19a98
.long 0 # 19a9c
.long 0x30003000 # 19aa0
/***********************************************************
major_0x19aa4
***********************************************************/
.long 0x4800000c # 19aa4
.long 0x60000000 # 19aa8
.long 0x60000000 # 19aac
/***********************************************************
major_0x19ab0
************************************************************
Xrefs:
major_0x18d5c
***********************************************************/
major_0x19ab0: /* < outside referer */
blrl # 19ab0
.long 0x06060606 # 19ab4
.long 0x060606ff # 19ab8
.long 0x0606ff06 # 19abc
.long 0x0606ffff # 19ac0
.long 0x06ff0606 # 19ac4
.long 0x06ff06ff # 19ac8
.long 0x06ffff06 # 19acc
.long 0x06ffffff # 19ad0
.long 0xff060606 # 19ad4
.long 0xff0606ff # 19ad8
.long 0xff06ff06 # 19adc
.long 0xff06ffff # 19ae0
.long 0xffff0606 # 19ae4
.long 0xffff06ff # 19ae8
.long 0xffffff06 # 19aec
.long 0xffffffff # 19af0
/***********************************************************
major_0x19af4
***********************************************************/
.long 0x4800000c # 19af4
.long 0x60000000 # 19af8
.long 0x60000000 # 19afc
/***********************************************************
major_0x19b00
************************************************************
Xrefs:
major_0x18d5c
***********************************************************/
major_0x19b00: /* < outside referer */
blrl # 19b00
.long 0xff7eff7e # 19b04
.long 0xff7e0000 # 19b08
.long 0x0000ff7e # 19b0c
.long 0 # 19b10
/***********************************************************
major_0x19b14
***********************************************************/
.long 0x4800000c # 19b14
.long 0x60000000 # 19b18
.long 0x60000000 # 19b1c
/***********************************************************
load_log_colours
************************************************************
Each word is RGB with the high byte ignored. Background and text.
************************************************************
Xrefs:
major_0x18d5c
***********************************************************/
load_log_colours: /* < outside referer */
blrl # 19b20
.long 0xfffffeee # 19b24
.long 0x44444444 # 19b28
/***********************************************************
major_0x19b2c
***********************************************************/
.long 0x48000014 # 19b2c
.long 0x60000000 # 19b30
.long 0x60000000 # 19b34
.long 0x60000000 # 19b38
.long 0x60000000 # 19b3c
nk_end: /* < outside referer */
.align 6 # 19b40