mirror of
https://github.com/elliotnunn/cdg5.git
synced 2024-09-28 13:55:01 +00:00
38456 lines
1.7 MiB
38456 lines
1.7 MiB
/***********************************************************
|
|
|
|
nk_start
|
|
|
|
************************************************************
|
|
|
|
Receive control from the NewWorld Trampoline bootloader. Probably the OldWorld kernel patch mechanism starts in the same place.
|
|
|
|
If the attempt_load function returns then kernel startup has failed. I think.
|
|
|
|
************************************************************
|
|
|
|
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
|
|
|
|
# If DR (data addr translation) bit of MSR is unset...
|
|
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_setup # 00018
|
|
|
|
# linking call to attempt_load never returns!
|
|
# r9 = &kernel
|
|
# SRR0 = r3 - 64
|
|
# SRR1 = MSR minus IR and DR bits
|
|
# Return From Interrupt: SRR0 -> PC; SRR1 -> MSR
|
|
mflr r9 # 0001c
|
|
addi r9, r9, nk_start-(.-4) # 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 choose_int_handler_kind # 000d0
|
|
# r12 = clobbered
|
|
# r7 = interrupt handler address
|
|
|
|
stw r7, 0x05b0( r1) # 000d4
|
|
bl replace_old_kernel_0x9c # 000d8
|
|
|
|
replace_old_kernel_0x9c:
|
|
mflr r12 # 000dc
|
|
addi r12, r12, -0xdc # 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- fail # 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, 0xa0 # 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
|
|
bl set_up_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
|
|
b all_world_setup_0xd4 # 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_setup
|
|
|
|
************************************************************
|
|
|
|
> 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_setup
|
|
|
|
************************************************************
|
|
|
|
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_setup: /* < 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_setup_0xa8:
|
|
lwzu r11, 0x0008(r10) # 00550
|
|
cmpwi r11, 0x00 # 00554
|
|
beq+ new_world_setup_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, 0x1f # 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_setup_0xec # 0058c
|
|
addi r11, r11, -0x1000 # 00590
|
|
|
|
new_world_setup_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_setup_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_setup_0x12c # 005ec
|
|
cmplw r13, r11 # 005f0
|
|
bgt+ new_world_setup_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_setup_0x18c # 00628
|
|
subf r11, r13, r1 # 0062c
|
|
addi r11, r11, 0x700 # 00630
|
|
|
|
new_world_setup_0x18c:
|
|
subf r12, r14, r15 # 00634
|
|
addi r12, r12, -0x01 # 00638
|
|
|
|
new_world_setup_0x194:
|
|
addic. r12, r12, -0x04 # 0063c
|
|
subf r10, r11, r12 # 00640
|
|
cmplwi cr7, r10, 0x208 # 00644
|
|
ble- cr7, new_world_setup_0x1a8 # 00648
|
|
stwx r0, r13, r12 # 0064c
|
|
|
|
new_world_setup_0x1a8:
|
|
bne+ new_world_setup_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_setup_0x1ec:
|
|
addic. r10, r10, -0x04 # 00694
|
|
lwzx r12, r9, r10 # 00698
|
|
stwx r12, r11, r10 # 0069c
|
|
bgt+ new_world_setup_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, 0xa0 # 006b8
|
|
|
|
new_world_setup_0x214:
|
|
addic. r10, r10, -0x04 # 006bc
|
|
lwzx r12, r4, r10 # 006c0
|
|
stwx r12, r11, r10 # 006c4
|
|
bgt+ new_world_setup_0x214 # 006c8
|
|
lwz r11, -0x0020( r1) # kdp.irp # 006cc
|
|
addi r11, r11, 0xdc0 # 006d0
|
|
li r10, 0x140 # 006d4
|
|
|
|
new_world_setup_0x230:
|
|
addic. r10, r10, -0x04 # 006d8
|
|
lwzx r12, r5, r10 # 006dc
|
|
stwx r12, r11, r10 # 006e0
|
|
bgt+ new_world_setup_0x230 # 006e4
|
|
cmpwi r6, 0x00 # 006e8
|
|
beq- new_world_setup_0x260 # 006ec
|
|
addi r11, r1, -0x5d0 # kdp.-0x5d0 # 006f0
|
|
li r10, 0x100 # 006f4
|
|
|
|
new_world_setup_0x250:
|
|
addic. r10, r10, -0x04 # 006f8
|
|
lwzx r12, r6, r10 # 006fc
|
|
stwx r12, r11, r10 # 00700
|
|
bgt+ new_world_setup_0x250 # 00704
|
|
|
|
new_world_setup_0x260:
|
|
stw r3, 0x0630( r1) # kdp.ConfigInfo # 00708
|
|
lwz r9, 0x0630( r1) # kdp.ConfigInfo # 0070c
|
|
lhz r8, 0x0378( r9) # 00710
|
|
cmplwi r8, 0x101 # 00714
|
|
lwz r8, 0x0edc( r1) # kdp.0xedc # 00718
|
|
blt- new_world_setup_0x28c # 0071c
|
|
lwz r8, 0x0388( r9) # 00720
|
|
rlwinm. r8, r8, 0, 30, 30 # 00724
|
|
lwz r8, 0x0edc( r1) # kdp.0xedc # 00728
|
|
beq- new_world_setup_0x28c # 0072c
|
|
ori r8, r8, 0x08 # 00730
|
|
|
|
new_world_setup_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
|
|
bl set_up_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 choose_int_handler_kind # 007bc
|
|
# r12 = clobbered
|
|
# r7 = interrupt handler address
|
|
|
|
stw r7, 0x05b0( r1) # kdp._int_handler # 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.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
|
|
bl new_world_setup_0x35c # 00800
|
|
|
|
new_world_setup_0x35c:
|
|
mflr r12 # 00804
|
|
addi r12, r12, nk_start - new_world_setup_0x35c # 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, 0xa0 # 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, 0x140 # 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, 0xa0 # 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_setup_0x514:
|
|
addic. r9, r9, -0x04 # 009bc
|
|
stwx r0, r10, r9 # 009c0
|
|
bne+ new_world_setup_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_setup_0x52c:
|
|
mr. r9, r9 # 009d4
|
|
beq- new_world_setup_0x544 # 009d8
|
|
lwzu r12, 0x0004(r11) # 009dc
|
|
stwx r12, r10, r9 # 009e0
|
|
lwzu r9, 0x0004(r11) # 009e4
|
|
b new_world_setup_0x52c # 009e8
|
|
|
|
new_world_setup_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
|
|
# r3 = ConfigInfo
|
|
# r4 = processor_info
|
|
# r5 = sys_info
|
|
# r6 = boot_r6
|
|
beq- all_world_setup # 00a00
|
|
mfspr r12, 287/*pvr*/ # 00a04
|
|
stw r12, 0x0f20( r1) # kdp.u32_pvr # 00a08
|
|
srwi r12, r12, 0x10 # 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- all_world_setup_with_old_cpu # 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- all_world_setup_with_old_cpu # 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- all_world_setup_with_old_cpu # 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- all_world_setup_with_old_cpu # 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- all_world_setup_with_old_cpu # 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- all_world_setup_with_old_cpu # 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- all_world_setup_with_old_cpu # 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- all_world_setup_with_old_cpu # 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- all_world_setup_with_old_cpu # 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- all_world_setup_with_old_cpu # 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_setup_0x60c:
|
|
lwz r11, -0x0004(r10) # 00ab4
|
|
lwzu r12, -0x0008(r10) # 00ab8
|
|
subf r9, r12, r21 # 00abc
|
|
cmplw r9, r11 # 00ac0
|
|
bge- new_world_setup_0x624 # 00ac4
|
|
mr r11, r9 # 00ac8
|
|
|
|
new_world_setup_0x624:
|
|
cmplw r11, r15 # 00acc
|
|
ble- new_world_setup_0x634 # 00ad0
|
|
mr r13, r12 # 00ad4
|
|
mr r15, r11 # 00ad8
|
|
|
|
new_world_setup_0x634:
|
|
bdnz+ new_world_setup_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_setup_0x660:
|
|
addic. r10, r10, -0x04 # 00b08
|
|
stwx r11, r21, r10 # 00b0c
|
|
bne+ new_world_setup_0x660 # 00b10
|
|
dcbz r0, r21 # 00b14
|
|
|
|
new_world_setup_0x670:
|
|
addi r10, r10, 0x01 # 00b18
|
|
lbzx r11, r21, r10 # 00b1c
|
|
cmpwi r11, 0x00 # 00b20
|
|
beq+ new_world_setup_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_setup_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_setup_0x6a4 # 00b64
|
|
sync # 00b68
|
|
isync # 00b6c
|
|
lwz r11, 0x064c( r1) # kdp.phys_kern_base # 00b70
|
|
li r12, 0x2d # 00b74
|
|
mtctr r12 # 00b78
|
|
add r20, r21, r22 # 00b7c
|
|
addi r11, r11, 0x1088 # 00b80
|
|
|
|
new_world_setup_0x6dc:
|
|
lwzu r12, -0x0004(r11) # 00b84
|
|
stwu r12, -0x0004(r20) # 00b88
|
|
dcbst r0, r20 # 00b8c
|
|
sync # 00b90
|
|
icbi r0, r20 # 00b94
|
|
bdnz+ new_world_setup_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_setup_0x720 # 00bb8
|
|
|
|
new_world_setup_0x714:
|
|
addi r17, r17, 0x200 # 00bbc
|
|
cmplw r17, r15 # 00bc0
|
|
bge- new_world_setup_0x734 # 00bc4
|
|
|
|
new_world_setup_0x720:
|
|
mtlr r20 # 00bc8
|
|
blrl # 00bcc
|
|
ble+ new_world_setup_0x714 # 00bd0
|
|
addi r12, r17, -0x200 # 00bd4
|
|
stw r12, 0x0f34( r1) # kdp.u32_cpuinfo_dcache_size
|
|
|
|
new_world_setup_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_setup_0x75c # 00bf4
|
|
|
|
new_world_setup_0x750:
|
|
add r17, r17, r18 # 00bf8
|
|
cmplw r17, r15 # 00bfc
|
|
bge- new_world_setup_0x774 # 00c00
|
|
|
|
new_world_setup_0x75c:
|
|
mtlr r20 # 00c04
|
|
blrl # 00c08
|
|
ble+ new_world_setup_0x750 # 00c0c
|
|
subf r17, r18, r17 # 00c10
|
|
divwu r12, r17, r18 # 00c14
|
|
sth r12, 0x0f4e( r1) # kdp.u16_cpuinfo_dcache_assoc
|
|
|
|
new_world_setup_0x774:
|
|
lwz r17, 0x0f34( r1) # kdp.u32_cpuinfo_dcache_size
|
|
lhz r18, 0x0f4e( r1) # kdp.u16_cpuinfo_dcache_assoc
|
|
slwi r17, r17, 0x01 # 00c24
|
|
divwu r18, r17, r18 # 00c28
|
|
srwi r19, r18, 0x01 # 00c2c
|
|
li r14, 0x200 # 00c30
|
|
add r19, r19, r14 # 00c34
|
|
li r16, -0x01 # 00c38
|
|
b new_world_setup_0x7ac # 00c3c
|
|
|
|
new_world_setup_0x798:
|
|
lhz r12, 0x0f4a( r1) # kdp.u16_cpuinfo_dcache_block_size
|
|
cmplw r14, r12 # 00c44
|
|
ble- new_world_setup_0x7bc # 00c48
|
|
srwi r14, r14, 0x01 # 00c4c
|
|
subf r19, r14, r19 # 00c50
|
|
|
|
new_world_setup_0x7ac:
|
|
mtlr r20 # 00c54
|
|
blrl # 00c58
|
|
ble+ new_world_setup_0x798 # 00c5c
|
|
slwi r12, r14, 0x01 # 00c60
|
|
|
|
new_world_setup_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_setup_0x7f4 # 00c88
|
|
|
|
new_world_setup_0x7e4:
|
|
add r17, r17, r18 # 00c8c
|
|
lis r12, 0x3f # 00c90
|
|
cmplw r17, r12 # 00c94
|
|
bge- new_world_setup_0x82c # 00c98
|
|
|
|
new_world_setup_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_setup_0x7e4 # 00cc4
|
|
subf r17, r18, r17 # 00cc8
|
|
divwu r12, r17, r18 # 00ccc
|
|
sth r12, 0x0f50( r1) # kdp.u16_cpuinfo_tlb_size # 00cd0
|
|
|
|
new_world_setup_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_setup_0x858 # 00cec
|
|
|
|
new_world_setup_0x848:
|
|
add r17, r17, r18 # 00cf0
|
|
lis r12, 0x200 # 00cf4
|
|
cmplw r17, r12 # 00cf8
|
|
bge- new_world_setup_0x890 # 00cfc
|
|
|
|
new_world_setup_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_setup_0x848 # 00d28
|
|
subf r17, r18, r17 # 00d2c
|
|
divwu r12, r17, r18 # 00d30
|
|
sth r12, 0x0f52( r1) # kdp.u16_cpuinfo_tlb_assoc
|
|
|
|
new_world_setup_0x890:
|
|
mr r13, r14 # 00d38
|
|
addi r12, r22, -0x01 # 00d3c
|
|
srwi r12, r12, 0x10 # 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
|
|
|
|
# All I/D cache initialisation from here on down.
|
|
# (There was never a NewWorld machine with unified caches.)
|
|
lwz r11, 0x064c( r1) # kdp.phys_kern_base # 00db8
|
|
li r12, 0x31 # 00dbc
|
|
mtctr r12 # 00dc0
|
|
add r20, r21, r22 # 00dc4
|
|
addi r11, r11, 0x114c # 00dc8
|
|
|
|
new_world_setup_0x924:
|
|
lwzu r12, -0x0004(r11) # 00dcc
|
|
stwu r12, -0x0004(r20) # 00dd0
|
|
dcbst r0, r20 # 00dd4
|
|
sync # 00dd8
|
|
icbi r0, r20 # 00ddc
|
|
bdnz+ new_world_setup_0x924 # 00de0
|
|
sync # 00de4
|
|
isync # 00de8
|
|
subf r12, r21, r20 # 00dec
|
|
mulli r12, r12, 0x80 # 00df0
|
|
cmplw r12, r15 # 00df4
|
|
bge- new_world_setup_0x958 # 00df8
|
|
mr r15, r12 # 00dfc
|
|
|
|
new_world_setup_0x958:
|
|
add r12, r13, r15 # 00e00
|
|
mr r11, r20 # 00e04
|
|
lis r10, 0x4e80 # 00e08
|
|
ori r10, r10, 0x20 # 00e0c
|
|
|
|
new_world_setup_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_setup_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_setup_0x9b4 # 00e4c
|
|
|
|
new_world_setup_0x9a8:
|
|
addi r17, r17, 0x200 # 00e50
|
|
cmplw r17, r15 # 00e54
|
|
bge- new_world_setup_0x9c8 # 00e58
|
|
|
|
new_world_setup_0x9b4:
|
|
mtlr r20 # 00e5c
|
|
blrl # 00e60
|
|
ble+ new_world_setup_0x9a8 # 00e64
|
|
addi r12, r17, -0x200 # 00e68
|
|
stw r12, 0x0f38( r1) # kdp.u32_cpuinfo_icache_size
|
|
|
|
new_world_setup_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_setup_0x9f0 # 00e88
|
|
|
|
new_world_setup_0x9e4:
|
|
add r17, r17, r18 # 00e8c
|
|
cmplw r17, r15 # 00e90
|
|
bge- new_world_setup_0xa08 # 00e94
|
|
|
|
new_world_setup_0x9f0:
|
|
mtlr r20 # 00e98
|
|
blrl # 00e9c
|
|
ble+ new_world_setup_0x9e4 # 00ea0
|
|
subf r17, r18, r17 # 00ea4
|
|
divwu r12, r17, r18 # 00ea8
|
|
sth r12, 0x0f4c( r1) # kdp.u16_cpuinfo_icache_assoc
|
|
|
|
new_world_setup_0xa08:
|
|
add r12, r13, r15 # 00eb0
|
|
mr r11, r20 # 00eb4
|
|
|
|
new_world_setup_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_setup_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, 0x01 # 00ee8
|
|
add r12, r13, r17 # 00eec
|
|
addi r11, r21, -0x04 # 00ef0
|
|
|
|
new_world_setup_0xa4c:
|
|
subf r12, r18, r12 # 00ef4
|
|
li r14, 0x400 # 00ef8
|
|
|
|
new_world_setup_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_setup_0xa54 # 00f44
|
|
cmpw r12, r13 # 00f48
|
|
bne+ new_world_setup_0xa4c # 00f4c
|
|
sync # 00f50
|
|
isync # 00f54
|
|
mr r19, r18 # 00f58
|
|
slwi r18, r18, 0x01 # 00f5c
|
|
li r14, 0x200 # 00f60
|
|
add r19, r19, r14 # 00f64
|
|
li r16, -0x01 # 00f68
|
|
b new_world_setup_0xadc # 00f6c
|
|
|
|
new_world_setup_0xac8:
|
|
li r12, 0x08 # 00f70
|
|
cmplw r14, r12 # 00f74
|
|
ble- new_world_setup_0xaec # 00f78
|
|
srwi r14, r14, 0x01 # 00f7c
|
|
subf r19, r14, r19 # 00f80
|
|
|
|
new_world_setup_0xadc:
|
|
mtlr r20 # 00f84
|
|
blrl # 00f88
|
|
ble+ new_world_setup_0xac8 # 00f8c
|
|
slwi r12, r14, 0x01 # 00f90
|
|
|
|
new_world_setup_0xaec:
|
|
sth r12, 0x0f42( r1) # kdp.u16_cpuinfo_icache_line_size
|
|
srwi r18, r18, 0x01 # 00f98
|
|
add r12, r13, r17 # 00f9c
|
|
addi r11, r21, -0x04 # 00fa0
|
|
|
|
new_world_setup_0xafc:
|
|
subf r12, r18, r12 # 00fa4
|
|
li r14, 0x400 # 00fa8
|
|
|
|
new_world_setup_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_setup_0xb04 # 00fc4
|
|
cmpw r12, r13 # 00fc8
|
|
bne+ new_world_setup_0xafc # 00fcc
|
|
|
|
skip_cache_hackery_never:
|
|
# r1 = kdp
|
|
# r3 = ConfigInfo
|
|
# r4 = processor_info
|
|
# r5 = sys_info
|
|
# r6 = boot_r6
|
|
b all_world_setup # 00fd0
|
|
.long 0x39400003 # 00fd4
|
|
.long 0x39800800 # 00fd8
|
|
.long 0x7d8903a6 # 00fdc
|
|
.long 0x7e736a14 # 00fe0
|
|
.long 0x39600000 # 00fe4
|
|
.long 0x7d7603a6 # 00fe8
|
|
.long 0x7d915850 # 00fec
|
|
.long 0x7d8cfe70 # 00ff0
|
|
.long 0x7d6b6038 # 00ff4
|
|
.long 0x7d8d58ae # 00ff8
|
|
.long 0x7d8c6214 # 00ffc
|
|
.long 0x7d9358ae # 01000
|
|
.long 0x7d8c6214 # 01004
|
|
.long 0x7d6b9214 # 01008
|
|
.long 0x4200ffe0 # 0100c
|
|
.long 0x7e6d9850 # 01010
|
|
.long 0x7d9602a6 # 01014
|
|
.long 0x7d8c00d0 # 01018
|
|
.long 0x7c0c8040 # 0101c
|
|
.long 0x41810008 # 01020
|
|
.long 0x7d906378 # 01024
|
|
.long 0x558bc9fe # 01028
|
|
.long 0x7d8b6050 # 0102c
|
|
.long 0x7c0c8000 # 01030
|
|
.long 0x4c810020 # 01034
|
|
.long 0x354affff # 01038
|
|
.long 0x4181ff9c # 0103c
|
|
.long 0x7c0c8000 # 01040
|
|
.long 0x4e800020 # 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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x01088
|
|
|
|
***********************************************************/
|
|
|
|
.long 0x39400003 # 01088
|
|
.long 0x7d2802a6 # 0108c
|
|
.long 0x39800800 # 01090
|
|
.long 0x7d8903a6 # 01094
|
|
.long 0x7e736a14 # 01098
|
|
.long 0x39600000 # 0109c
|
|
.long 0x7d7603a6 # 010a0
|
|
.long 0x7d915850 # 010a4
|
|
.long 0x7d8cfe70 # 010a8
|
|
.long 0x7d6b6038 # 010ac
|
|
.long 0x7d8d5a14 # 010b0
|
|
.long 0x7d8803a6 # 010b4
|
|
.long 0x4e800021 # 010b8
|
|
.long 0x7d935a14 # 010bc
|
|
.long 0x7d8803a6 # 010c0
|
|
.long 0x4e800021 # 010c4
|
|
.long 0x7d6b9214 # 010c8
|
|
.long 0x4200ffd8 # 010cc
|
|
.long 0x7e6d9850 # 010d0
|
|
.long 0x7d9602a6 # 010d4
|
|
.long 0x7d8c00d0 # 010d8
|
|
.long 0x7c0c8040 # 010dc
|
|
.long 0x41810008 # 010e0
|
|
.long 0x7d906378 # 010e4
|
|
.long 0x558bc9fe # 010e8
|
|
.long 0x7d8b6050 # 010ec
|
|
.long 0x7c0c8000 # 010f0
|
|
.long 0x7d2803a6 # 010f4
|
|
.long 0x4c810020 # 010f8
|
|
.long 0x354affff # 010fc
|
|
.long 0x4181ff90 # 01100
|
|
.long 0x7c0c8000 # 01104
|
|
.long 0x4e800020 # 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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
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.
|
|
|
|
CPU info table (x9 @ 36 bytes each):
|
|
uint32 Page size
|
|
uint32 D-cache size
|
|
uint32 I-cache size
|
|
uint16 Coherency block size
|
|
uint16 Reservation granule size
|
|
uint16 Unified caches
|
|
uint16 I-cache line size
|
|
uint16 D-cache line size
|
|
uint16 D-cache block size touch
|
|
uint16 I-cache block size
|
|
uint16 D-cache block size
|
|
uint16 I-cache assoc
|
|
uint16 D-cache assoc
|
|
uint16 TLB total size
|
|
uint16 TLB assoc
|
|
|
|
***********************************************************/
|
|
|
|
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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
all_world_setup_with_old_cpu
|
|
|
|
************************************************************
|
|
|
|
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_setup
|
|
|
|
************************************************************
|
|
|
|
> r3 = ConfigInfo
|
|
> r4 = processor_info
|
|
> r5 = sys_info
|
|
> r6 = boot_r6
|
|
> r9 = cpuinfo_size
|
|
> r10 = kdp_cpuinfo
|
|
> r11 = static_cpuinfo
|
|
|
|
***********************************************************/
|
|
|
|
all_world_setup_with_old_cpu: /* < outside referer */
|
|
addic. r9, r9, -0x04 # 01350
|
|
lwzx r12, r11, r9 # 01354
|
|
stwx r12, r10, r9 # 01358
|
|
bgt+ all_world_setup_with_old_cpu # 0135c
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
all_world_setup
|
|
|
|
************************************************************
|
|
|
|
Why in the hell does this get run twice?
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
replace_old_kernel
|
|
new_world_setup
|
|
all_world_setup_with_old_cpu
|
|
handle_ResetSystem_trap
|
|
|
|
************************************************************
|
|
|
|
> r1 = kdp
|
|
> r3 = ConfigInfo
|
|
> r4 = processor_info
|
|
> r5 = sys_info
|
|
> r6 = boot_r6
|
|
|
|
***********************************************************/
|
|
|
|
all_world_setup: /* < 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, 0xa0 # 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
|
|
|
|
all_world_setup_second_attempt: /* < outside referer */
|
|
crclr 4*cr5 + eq # 01430
|
|
|
|
all_world_setup_0xd4: /* < 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
|
|
|
|
# memcpy(*(r1-0x20) + 0xfc0, r1 + 0xfc0, 64);
|
|
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
|
|
|
|
copyloop:
|
|
addic. r22, r22, -0x04 # 014cc
|
|
lwzx r0, r22, r8 # 014d0
|
|
stwx r0, r22, r9 # 014d4
|
|
bgt+ copyloop # 014d8
|
|
|
|
# done
|
|
lwz r26, 0x0630( r1) # kdp.ConfigInfo # 014dc
|
|
|
|
# r25 = phys kernel code base (0x00f10000 on NW)
|
|
lwz r25, 0x064c( r1) # kdp.phys_kern_base # 014e0
|
|
lwz r18, 0x0684( r1) # kdp.0x684 # 014e4
|
|
|
|
# fill with debugger offset, 48 copies at once:
|
|
# # r1[0x360:5a0]
|
|
# # r1[-0x8d0:-0x810]
|
|
# # r1[-0x750:-0x690]
|
|
lis r23, dbgr@h # 014e8
|
|
ori r23, r23, dbgr@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
|
|
|
|
# fill r1[-0x690:-0x5d0] with rfi func offset
|
|
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
|
|
|
|
# set SPRG3 to offset of offset of debugger
|
|
addi r9, r1, 0x360 # kdp.0x360 # 01548
|
|
mtspr 275/*sprg3*/, r9 # 0154c
|
|
addi r8, r1, 0x420 # kdp.0x420 # 01550
|
|
|
|
# r8 = r1 + 0x420; r9 = r1 + 0x360;
|
|
# (each points to a 48*uint32 block of dbgr ptrs)
|
|
lis r23, dbgr@h # 01554
|
|
ori r23, r23, dbgr@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) # 0167c
|
|
|
|
# now r8 = r1 + 0x4e0 (not using r9 now)
|
|
addi r8, r1, 0x4e0 # kdp.0x4e0 # 01680
|
|
lis r23, dbgr@h # 01684
|
|
ori r23, r23, dbgr@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
|
|
|
|
# now r8 = r1 - 0x8d0
|
|
addi r8, r1, -0x8d0 # kdp.-0x8d0 # 016d0
|
|
li r22, 0xc0 # 016d4
|
|
|
|
# r8 = dest
|
|
# r22 = len in bytes
|
|
# r23 = fillword
|
|
bl wordfill # 016d8
|
|
lis r23, dbgr@h # 016dc
|
|
ori r23, r23, dbgr@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 dbgr_offset_to_r1_minus_0x810_x48__0x9dfc_to_prev_plus_4_20_36
|
|
|
|
# now r8 = r1 - 0x750
|
|
addi r8, r1, -0x750 # kdp.-0x750 # 01720
|
|
lis r23, dbgr@h # 01724
|
|
ori r23, r23, dbgr@l # 01728
|
|
add r23, r23, r25 # 0172c
|
|
stw r23, 0x0004( r8) # kdp.-0x8cc # 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.-0x8c8 # 01740
|
|
lis r23, dsi_vector@h # 01744
|
|
ori r23, r23, dsi_vector@l # 01748
|
|
add r23, r23, r25 # 0174c
|
|
stw r23, 0x000c( r8) # kdp.-0x8c4 # 01750
|
|
lis r23, sc_vector@h # 01754
|
|
ori r23, r23, sc_vector@l # 01758
|
|
add r23, r23, r25 # 0175c
|
|
stw r23, 0x0030( r8) # kdp.-0x8a0 # 01760
|
|
lis r23, major_0x046d0@h # 01764
|
|
ori r23, r23, major_0x046d0@l # 01768
|
|
add r23, r23, r25 # 0176c
|
|
|
|
# now r8 = r1 + 0x5f0
|
|
addi r8, r1, 0x5f0 # kdp.0x5f0 # 01770
|
|
li r22, 0x40 # 01774
|
|
|
|
# set r8(=r1+0x5f0) to ptr to 0x46d0 x16
|
|
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, trap_vector@h # 017a4
|
|
ori r23, r23, trap_vector@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, int_handler@h # 017c4
|
|
ori r23, r23, int_handler@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, 0x10 # 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, 0x10 # 01858
|
|
slwi r23, r23, 0x02 # 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, 0x10 # 01898
|
|
andi. r23, r23, 0x7fff # 0189c
|
|
slwi r23, r23, 0x02 # 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
|
|
|
|
# Pretty sure these are lock structs.
|
|
li r23, 0x00 # 018c8
|
|
stw r23, -0x0b90( r1) # kdp.-0xb90 # 018cc
|
|
stw r23, -0x0b70( r1) # kdp.interrupt_lock # 018d0
|
|
stw r23, -0x0b50( r1) # kdp.popular_lock # 018d4
|
|
stw r23, -0x0b30( r1) # kdp.-0xb30 # 018d8
|
|
stw r23, -0x0b10( r1) # kdp.rtas_lock # 018dc
|
|
stw r23, -0x0af0( r1) # kdp.-0xaf0 # 018e0
|
|
stw r23, -0x0ad0( r1) # kdp.-0xad0 # 018e4
|
|
|
|
# aaaand more damned constants
|
|
lis r23, 0x6874 # 018e8
|
|
ori r23, r23, 0x6162 # 018ec
|
|
stw r23, -0x0b8c( r1) # kdp.-0xb8c # 018f0
|
|
lis r23, 0x7069 # 018f4
|
|
ori r23, r23, 0x6820 # 018f8
|
|
stw r23, -0x0b6c( r1) # kdp.-0xb6c # 018fc
|
|
lis r23, 0x7363 # 01900
|
|
ori r23, r23, 0x6820 # 01904
|
|
stw r23, -0x0b4c( r1) # kdp.-0xb4c # 01908
|
|
lis r23, 0x7468 # 0190c
|
|
ori r23, r23, 0x7564 # 01910
|
|
stw r23, -0x0b2c( r1) # kdp.-0xb2c # 01914
|
|
lis r23, 0x7274 # 01918
|
|
ori r23, r23, 0x6173 # 0191c
|
|
stw r23, -0x0b0c( r1) # kdp.-0xb0c # 01920
|
|
lis r23, 0x6462 # 01924
|
|
ori r23, r23, 0x7567 # 01928
|
|
stw r23, -0x0aec( r1) # kdp.-0xaec # 0192c
|
|
lis r23, 0x706f # 01930
|
|
ori r23, r23, 0x6f6c # 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
|
|
bl store_some_junk # 01954
|
|
bl major_0x15144 # 01958
|
|
lwz r7, -0x0010( r1) # kdp.-0x10 # 0195c
|
|
li r8, 0x20 # 01960
|
|
bl boring # 01964
|
|
mr. r31, r8 # 01968
|
|
beq- _dbgr_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, 0x5052 # 01984
|
|
ori r8, r8, 0x4f43 # 01988
|
|
stw r8, 0x0004(r31) # 0198c
|
|
li r8, 0x02 # 01990
|
|
stw r8, 0x0010(r31) # 01994
|
|
addi r30, r1, -0xa94 # kdp.-0xa94 # 01998
|
|
lis r17, 0x4752 # 0199c
|
|
stw r30, 0x0008(r30) # 019a0
|
|
ori r17, r17, 0x5053 # 019a4
|
|
stw r30, 0x000c(r30) # 019a8
|
|
stw r17, 0x0004(r30) # 019ac
|
|
li r8, 0x58 # 019b0
|
|
bl boring # 019b4
|
|
mr. r31, r8 # 019b8
|
|
beq- _dbgr_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.-0xb90 # 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.ConfigInfo # 01b00
|
|
addi r9, r26, 0x2c8 # 01b04
|
|
addi r8, r1, 0x27c # kdp.0x27c # 01b08
|
|
li r22, 0x80 # 01b0c
|
|
|
|
all_world_setup_0x7b0:
|
|
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- all_world_setup_0x7cc # 01b24
|
|
add r21, r23, r26 # 01b28
|
|
|
|
all_world_setup_0x7cc:
|
|
addic. r22, r22, -0x08 # 01b2c
|
|
stwu r21, 0x0004( r8) # 01b30
|
|
bgt+ all_world_setup_0x7b0 # 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- _dbgr_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_ready_queues # 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 major_0x0e330 # 01d18
|
|
mr. r31, r8 # 01d1c
|
|
beq- _dbgr_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, 0x626c # 01d3c
|
|
ori r8, r8, 0x7565 # 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, 0xc8 # 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 major_0x0e330 # 01eac
|
|
mr r7, r31 # 01eb0
|
|
mr. r31, r8 # 01eb4
|
|
beq- _dbgr_0x02940 # 01eb8
|
|
lis r8, 0x6964 # 01ebc
|
|
ori r8, r8, 0x6c65 # 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- _dbgr_0x02940 # 01fbc
|
|
stw r30, 0x0070(r31) # 01fc0
|
|
lwz r7, -0x0010( r1) # kdp.-0x10 # 01fc4
|
|
lwz r26, 0x0630( r1) # kdp.ConfigInfo # 01fc8
|
|
lwz r18, 0x0684( r1) # kdp.0x684 # 01fcc
|
|
beq- cr5, all_world_setup_0xca0 # 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
|
|
|
|
all_world_setup_0xc94:
|
|
addic. r22, r22, -0x04 # 01ff4
|
|
stwx r23, r8, r22 # 01ff8
|
|
bgt+ all_world_setup_0xc94 # 01ffc
|
|
|
|
all_world_setup_0xca0:
|
|
bl major_0x055e0 # 02000
|
|
beq- cr5, all_world_setup_0xce4 # 02004
|
|
lwz r9, 0x00bc(r26) # 02008
|
|
lwz r22, 0x00b8(r26) # 0200c
|
|
add r9, r9, r26 # 02010
|
|
|
|
all_world_setup_0xcb4:
|
|
addi r22, r22, -0x04 # 02014
|
|
lwzx r21, r9, r22 # 02018
|
|
andi. r23, r21, 0xa00 # 0201c
|
|
cmpwi r23, 0x200 # 02020
|
|
bne- all_world_setup_0xcd0 # 02024
|
|
rlwinm r21, r21, 0, 23, 21 # 02028
|
|
add r21, r21, r26 # 0202c
|
|
|
|
all_world_setup_0xcd0:
|
|
stwx r21, r18, r22 # 02030
|
|
addic. r22, r22, -0x04 # 02034
|
|
lwzx r20, r9, r22 # 02038
|
|
stwx r20, r18, r22 # 0203c
|
|
bgt+ all_world_setup_0xcb4 # 02040
|
|
|
|
all_world_setup_0xce4:
|
|
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.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, 0xc8 # 020b4
|
|
addi r8, r1, 0x7c # kdp.0x7c # 020b8
|
|
li r22, 0x200 # 020bc
|
|
|
|
all_world_setup_0xd60:
|
|
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+ all_world_setup_0xd60 # 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, 0x78 # kdp.0x78 # 02124
|
|
b all_world_setup_0xdd4 # 02128
|
|
|
|
all_world_setup_0xdcc:
|
|
addi r8, r8, 0x08 # 0212c
|
|
b all_world_setup_0xdd8 # 02130
|
|
|
|
all_world_setup_0xdd4:
|
|
lwzu r8, 0x0008(r19) # 02134
|
|
|
|
all_world_setup_0xdd8:
|
|
lwz r30, 0x0000( r8) # 02138
|
|
lwz r31, 0x0004( r8) # 0213c
|
|
cmplwi cr7, r30, 0xffff # 02140
|
|
rlwinm. r31, r31, 0, 20, 21 # 02144
|
|
bgt- cr7, all_world_setup_0xe04 # 02148
|
|
cmpwi cr6, r31, 0xc00 # 0214c
|
|
beq- all_world_setup_0xe04 # 02150
|
|
beq+ cr6, all_world_setup_0xdcc # 02154
|
|
add r22, r22, r30 # 02158
|
|
addi r22, r22, 0x01 # 0215c
|
|
beq+ cr7, all_world_setup_0xdd4 # 02160
|
|
|
|
all_world_setup_0xe04:
|
|
stw r22, 0x06b4( r1) # kdp.VMMaxVirtualPages # 02164
|
|
beq- cr5, all_world_setup_0xe80 # 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
|
|
|
|
all_world_setup_0xe44:
|
|
addic. r23, r23, -0x01 # 021a4
|
|
blt- all_world_setup_0xe80 # 021a8
|
|
lwzu r31, 0x0008(r19) # 021ac
|
|
lwz r22, 0x0004(r19) # 021b0
|
|
or r31, r31, r30 # 021b4
|
|
|
|
all_world_setup_0xe58:
|
|
cmplwi r22, 0x1000 # 021b8
|
|
cmplw cr6, r31, r21 # 021bc
|
|
cmplw cr7, r31, r20 # 021c0
|
|
addi r22, r22, -0x1000 # 021c4
|
|
blt+ all_world_setup_0xe44 # 021c8
|
|
blt- cr6, all_world_setup_0xe74 # 021cc
|
|
blt- cr7, all_world_setup_0xe78 # 021d0
|
|
|
|
all_world_setup_0xe74:
|
|
stwu r31, 0x0004(r29) # 021d4
|
|
|
|
all_world_setup_0xe78:
|
|
addi r31, r31, 0x1000 # 021d8
|
|
b all_world_setup_0xe58 # 021dc
|
|
|
|
all_world_setup_0xe80:
|
|
beq- cr5, all_world_setup_0xf04 # 021e0
|
|
subf r22, r21, r29 # 021e4
|
|
addi r8, r22, 0x1000 # 021e8
|
|
srwi r17, r22, 0x0d # 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
|
|
|
|
all_world_setup_0xee4:
|
|
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+ all_world_setup_0xee4 # 0225c
|
|
b all_world_setup_0xf90 # 02260
|
|
|
|
all_world_setup_0xf04:
|
|
lwz r8, 0x05a8( r1) # kdp.0x5a8 # 02264
|
|
addi r18, r1, 0x2000 # kdp.0x2000 # 02268
|
|
subf. r8, r18, r8 # 0226c
|
|
blt- all_world_setup_0xf90 # 02270
|
|
addi r8, r8, 0x1000 # 02274
|
|
srwi r17, r8, 0x0c # 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
|
|
|
|
all_world_setup_0xf78:
|
|
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+ all_world_setup_0xf78 # 022ec
|
|
|
|
all_world_setup_0xf90:
|
|
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.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, all_world_setup_0x11fc # 023a4
|
|
subf r22, r21, r29 # 023a8
|
|
lwz r8, 0x06b4( r1) # kdp.VMMaxVirtualPages # 023ac
|
|
slwi r8, r8, 0x02 # 023b0
|
|
cmplw r22, r8 # 023b4
|
|
addi r19, r22, 0x04 # 023b8
|
|
srwi r19, r19, 0x02 # 023bc
|
|
stw r19, 0x06ac( r1) # kdp.logi_pages # 023c0
|
|
blt- all_world_setup_0x106c # 023c4
|
|
addi r22, r8, -0x04 # 023c8
|
|
|
|
all_world_setup_0x106c:
|
|
li r30, 0x00 # 023cc
|
|
lwz r8, -0x0020( r1) # kdp.irp # 023d0
|
|
addi r19, r22, 0x04 # 023d4
|
|
slwi r19, r19, 0x0a # 023d8
|
|
ori r30, r30, 0xffff # 023dc
|
|
stw r19, 0x0dc4( r8) # 023e0
|
|
srwi r22, r22, 0x02 # 023e4
|
|
stw r19, 0x0dc8( r8) # 023e8
|
|
srwi r19, r19, 0x0c # 023ec
|
|
stw r19, 0x06a8( r1) # kdp.phys_pages # 023f0
|
|
addi r29, r1, 0x6bc # kdp.0x6bc # 023f4
|
|
addi r19, r1, 0x78 # kdp.0x78 # 023f8
|
|
|
|
all_world_setup_0x109c:
|
|
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+ all_world_setup_0x109c # 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, 0x0c # 02438
|
|
ble- all_world_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
|
|
|
|
all_world_setup_0x116c:
|
|
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+ all_world_setup_0x116c # 024e0
|
|
|
|
all_world_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 int_handler # 02558
|
|
|
|
all_world_setup_0x11fc:
|
|
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.ConfigInfo # 02570
|
|
lwz r27, 0x0094(r27) # 02574
|
|
bl major_0x05524 # 02578
|
|
beq- all_world_setup_0x1234 # 0257c
|
|
li r30, 0x00 # 02580
|
|
stw r30, -0x0004(r29) # 02584
|
|
eieio # 02588
|
|
stw r30, 0x0000(r29) # 0258c
|
|
sync # 02590
|
|
|
|
all_world_setup_0x1234:
|
|
bl major_0x04c20 # 02594
|
|
lwz r27, 0x0630( r1) # kdp.ConfigInfo # 02598
|
|
lwz r27, 0x009c(r27) # 0259c
|
|
bl major_0x05524 # 025a0
|
|
beq- all_world_setup_0x125c # 025a4
|
|
li r30, 0x00 # 025a8
|
|
stw r30, -0x0004(r29) # 025ac
|
|
eieio # 025b0
|
|
stw r30, 0x0000(r29) # 025b4
|
|
sync # 025b8
|
|
|
|
all_world_setup_0x125c:
|
|
bl major_0x04c20 # 025bc
|
|
lwz r27, 0x0630( r1) # kdp.ConfigInfo # 025c0
|
|
lwz r27, 0x00a0(r27) # 025c4
|
|
lis r19, 0x00 # 025c8
|
|
ori r19, r19, 0xa000 # 025cc
|
|
subf r19, r19, r27 # 025d0
|
|
|
|
all_world_setup_0x1274:
|
|
bl major_0x05524 # 025d4
|
|
beq- all_world_setup_0x1290 # 025d8
|
|
li r30, 0x00 # 025dc
|
|
stw r30, -0x0004(r29) # 025e0
|
|
eieio # 025e4
|
|
stw r30, 0x0000(r29) # 025e8
|
|
sync # 025ec
|
|
|
|
all_world_setup_0x1290:
|
|
bl major_0x04c20 # 025f0
|
|
cmplw r27, r19 # 025f4
|
|
addi r27, r27, -0x1000 # 025f8
|
|
bgt+ all_world_setup_0x1274 # 025fc
|
|
lwz r27, 0x0630( r1) # kdp.ConfigInfo # 02600
|
|
lwz r27, 0x00a4(r27) # 02604
|
|
bl major_0x05524 # 02608
|
|
beq- all_world_setup_0x12c4 # 0260c
|
|
li r30, 0x00 # 02610
|
|
stw r30, -0x0004(r29) # 02614
|
|
eieio # 02618
|
|
stw r30, 0x0000(r29) # 0261c
|
|
sync # 02620
|
|
|
|
all_world_setup_0x12c4:
|
|
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
|
|
b continue_oldworld_boot # 02670
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
fail
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
replace_old_kernel
|
|
|
|
***********************************************************/
|
|
|
|
fail: /* < outside referer */
|
|
bl set_up_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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
succeed
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
all_world_setup
|
|
fail
|
|
|
|
***********************************************************/
|
|
|
|
continue_oldworld_boot: /* < outside referer */
|
|
lwz r4, 0x0648( r1) # 026cc
|
|
lwz r8, 0x05a4( r1) # 026d0
|
|
lwz r9, -0x0964( r1) # 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_0x02980
|
|
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
|
|
major_0x154e0
|
|
NKPropogateExternalInterrupt
|
|
_int_handler_kind_01
|
|
_int_handler_kind_03
|
|
_int_handler_kind_05
|
|
_int_handler_kind_02
|
|
_int_handler_kind_07
|
|
_int_handler_kind_10
|
|
_int_handler_kind_04
|
|
_int_handler_kind_06
|
|
_int_handler_kind_08
|
|
print
|
|
dbgr
|
|
|
|
************************************************************
|
|
|
|
> 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 _dbgr_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, 0x03 # 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 _dbgr_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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_dbgr_0x02940
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
all_world_setup
|
|
lock
|
|
|
|
***********************************************************/
|
|
|
|
_dbgr_0x02940: /* < outside referer */
|
|
b dbgr # 02940
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x02944
|
|
|
|
***********************************************************/
|
|
|
|
.long 0x4800001c # 02944
|
|
.long 0x60000000 # 02948
|
|
.long 0x60000000 # 0294c
|
|
.long 0x60000000 # 02950
|
|
.long 0x60000000 # 02954
|
|
.long 0x60000000 # 02958
|
|
.long 0x60000000 # 0295c
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_dbgr_0x02960
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
major_0x02980
|
|
major_0x035a0
|
|
regsave_debug
|
|
major_0x046e0
|
|
|
|
***********************************************************/
|
|
|
|
_dbgr_0x02960: /* < outside referer */
|
|
b dbgr # 02960
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x02964
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
major_0x02980
|
|
|
|
***********************************************************/
|
|
|
|
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_0x03200
|
|
major_0x03460
|
|
major_0x035a0
|
|
major_0x03940
|
|
major_0x03be0
|
|
major_0x04180
|
|
major_0x04240
|
|
major_0x04300
|
|
major_0x043a0
|
|
trap_vector
|
|
major_0x046d0
|
|
major_0x046e0
|
|
major_0x04700
|
|
major_0x04b60
|
|
major_0x05808
|
|
major_0x06a14
|
|
major_0x08794
|
|
bootstrap_cpu
|
|
major_0x0a600
|
|
rtas_call
|
|
major_0x0a8c0
|
|
syscall_return
|
|
major_0x154e0
|
|
|
|
***********************************************************/
|
|
|
|
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, 0x02 # 029b4
|
|
add r8, r8, r1 # 029b8
|
|
lwz r9, 0x0dc0( r8) # 029bc
|
|
addi r9, r9, 0x01 # 029c0
|
|
stw r9, 0x0dc0( r8) # 029c4
|
|
srwi r9, r7, 0x18 # 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_0x02980_0x65c # 02a18
|
|
blt- major_0x02980_0xa8 # 02a1c
|
|
bne- cr1, major_0x02980_0x178 # 02a20
|
|
b major_0x02980_0x65c # 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 major_0x02980_0x330 # 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:
|
|
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, 0x02 # 02acc
|
|
add r8, r8, r1 # 02ad0
|
|
lwz r9, 0x0dc0( r8) # 02ad4
|
|
addi r9, r9, 0x01 # 02ad8
|
|
stw r9, 0x0dc0( r8) # 02adc
|
|
srwi r9, r7, 0x18 # 02ae0
|
|
blt- cr4, major_0x04a20_0x18 # 02ae4
|
|
bne- cr2, major_0x02980_0x5f0 # 02ae8
|
|
cmpwi cr1, r9, 0x0c # 02aec
|
|
blt+ major_0x02980_0xa8 # 02af0
|
|
beq- cr1, major_0x02980_0x5f0 # 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_0x02980_0x454 # 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
|
|
|
|
major_0x02980_0x330: /* < outside referer */
|
|
andi. r8, r7, 0x30 # 02cb0
|
|
mfspr r1, 272/*sprg0*/ # 02cb4
|
|
bnel- major_0x02980_0x34c # 02cb8
|
|
li r8, 0x00 # 02cbc
|
|
stw r7, -0x0010( r1) # 02cc0
|
|
stw r8, -0x0114( r1) # 02cc4
|
|
b major_0x142a8 # 02cc8
|
|
|
|
major_0x02980_0x34c:
|
|
mtcrf 0x3f, r7 # 02ccc
|
|
bns- cr6, major_0x02980_0x364 # 02cd0
|
|
rlwinm r7, r7, 0, 28, 26 # 02cd4
|
|
bso- cr7, major_0x02980_0x37c # 02cd8
|
|
rlwinm r7, r7, 0, 27, 25 # 02cdc
|
|
b major_0x02980_0x378 # 02ce0
|
|
|
|
major_0x02980_0x364:
|
|
bne- cr6, major_0x02980_0x378 # 02ce4
|
|
rlwinm r7, r7, 0, 27, 25 # 02ce8
|
|
stw r7, -0x0010( r1) # 02cec
|
|
li r8, 0x08 # 02cf0
|
|
b major_0x02980_0x134 # 02cf4
|
|
|
|
major_0x02980_0x378:
|
|
blr # 02cf8
|
|
|
|
major_0x02980_0x37c:
|
|
rlwinm. r8, r7, 0, 8, 8 # 02cfc
|
|
beq- major_0x02980_0x454 # 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_0x02980_0x454:
|
|
# 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_0x02980_0x558 # 02dec
|
|
lwz r28, 0x0028(r30) # 02df0
|
|
cmpwi r28, 0x00 # 02df4
|
|
beql- major_0x02980_0x558 # 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_0x02980_0x558:
|
|
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 _dbgr_0x02960 # 02f6c
|
|
|
|
major_0x02980_0x5f0:
|
|
bsol+ cr6, _dbgr_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, 0x18 # 02fb8
|
|
rlwinm. r16, r16, 0, 9, 9 # 02fbc
|
|
cmpwi cr1, r8, 0x0c # 02fc0
|
|
bne- major_0x02980_0x870 # 02fc4
|
|
bne- cr1, major_0x02980_0x870 # 02fc8
|
|
lwz r8, 0x00e0(r31) # 02fcc
|
|
addi r8, r8, 0x01 # 02fd0
|
|
stw r8, 0x00e0(r31) # 02fd4
|
|
b major_0x02980_0x6cc # 02fd8
|
|
|
|
major_0x02980_0x65c:
|
|
bnsl+ cr6, _dbgr_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, 0x18 # 0302c
|
|
rlwinm. r16, r16, 0, 9, 9 # 03030
|
|
cmpwi cr1, r8, 0x14 # 03034
|
|
bne- major_0x02980_0x870 # 03038
|
|
bne- cr1, major_0x02980_0x870 # 0303c
|
|
lwz r8, 0x00e4(r31) # 03040
|
|
addi r8, r8, 0x01 # 03044
|
|
stw r8, 0x00e4(r31) # 03048
|
|
|
|
major_0x02980_0x6cc:
|
|
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+ _dbgr_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_0x02980_0x77c # 03094
|
|
beq- cr1, major_0x02980_0x720 # 03098
|
|
beq- cr2, major_0x02980_0x77c # 0309c
|
|
|
|
major_0x02980_0x720:
|
|
lwz r16, 0x0064(r31) # 030a0
|
|
addi r17, r31, 0x08 # 030a4
|
|
addi r18, r31, 0xa0 # 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_0x02980_0x77c:
|
|
mfcr r28 # 030fc
|
|
li r8, 0x1c # 03100
|
|
beq- cr2, major_0x02980_0x7f4 # 03104
|
|
bl boring_with_crset # 03108
|
|
mr. r26, r8 # 0310c
|
|
beq- major_0x02980_0x858 # 03110
|
|
addi r17, r31, 0x08 # 03114
|
|
addi r18, r31, 0xa0 # 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_0x02980_0x7f4:
|
|
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_0x02980_0x818 # 0318c
|
|
mflr r31 # 03190
|
|
bl dbgr # 03194
|
|
|
|
major_0x02980_0x818:
|
|
stw r31, -0x0b50( r1) # 03198
|
|
mtcr r28 # 0319c
|
|
bns- cr6, major_0x02980_0x850 # 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_0x02980_0x850:
|
|
# r6 = ewa
|
|
bl restore_registers_from_r14 # 031d0
|
|
b major_0x02980_0x178 # 031d4
|
|
|
|
major_0x02980_0x858:
|
|
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_0x02980_0x870:
|
|
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 major_0x02980_0x330 # 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 dbgr # 03298
|
|
|
|
major_0x03200_0x9c:
|
|
stw r8, -0x0b50( r1) # 0329c
|
|
|
|
# r6 = ewa
|
|
bl restore_registers_from_r14 # 032a0
|
|
b major_0x02980_0x330 # 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, 0x320 # 036a4
|
|
bnel- major_0x054b8 # 036a8
|
|
li r28, 0x43 # 036ac
|
|
and r28, r31, r28 # 036b0
|
|
cmpwi cr7, r28, 0x43 # 036b4
|
|
beql+ _dbgr_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 dbgr # 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 dbgr # 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 dbgr # 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 major_0x02980_0x330 # 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 major_0x02980_0x330 # 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 dbgr # 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 major_0x02980_0x330 # 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 dbgr # 042e0
|
|
|
|
major_0x04240_0xa4:
|
|
stw r8, -0x0b50( r1) # 042e4
|
|
|
|
# r6 = ewa
|
|
bl restore_registers_from_r14 # 042e8
|
|
b major_0x02980_0x330 # 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 dbgr # 04380
|
|
|
|
major_0x04300_0x84:
|
|
stw r8, -0x0b50( r1) # 04384
|
|
|
|
# r6 = ewa
|
|
bl restore_registers_from_r14 # 04388
|
|
b major_0x02980_0x330 # 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, major_0x02980_0x330 # 043a4
|
|
and. r8, r4, r13 # 043a8
|
|
lwz r9, 0x0340( r1) # 043ac
|
|
rlwinm r8, r3, 0, 0, 25 # 043b0
|
|
cmpw cr1, r8, r9 # 043b4
|
|
bne+ major_0x02980_0x330 # 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, 0x320 # 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, 0x320 # 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:
|
|
all_world_setup
|
|
dbgr_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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
trap_vector
|
|
|
|
************************************************************
|
|
|
|
Guessing thats what it is, anyway
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
"lisori_caller"
|
|
|
|
***********************************************************/
|
|
|
|
trap_vector: /* < 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, 0x4761 # 0452c
|
|
beq- cpu_version_zero # 04530
|
|
mftb r9, 0x10c # 04534
|
|
b trap_vector_0x20 # 04538
|
|
|
|
cpu_version_zero:
|
|
mfspr r9, 5/*rtcl*/ # 0453c
|
|
|
|
trap_vector_0x20:
|
|
andis. r9, r9, 0xffff # 04540
|
|
cmplwi r8, 0x7279 # 04544
|
|
bne- handle_ResetSystem_trap # 04548
|
|
xoris r8, r4, 0x505 # 0454c
|
|
cmplwi r8, 0x1956 # 04550
|
|
bne- handle_ResetSystem_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 major_0x02980_0x330 # 045ac
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
handle_ResetSystem_trap
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
trap_vector
|
|
|
|
***********************************************************/
|
|
|
|
handle_ResetSystem_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
|
|
beq+ all_world_setup_second_attempt # 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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
int_handler
|
|
|
|
************************************************************
|
|
|
|
Jumps to the interrupt handler that was chosen based on ConfigInfo.
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
"lisori_caller"
|
|
all_world_setup
|
|
major_0x04880
|
|
|
|
************************************************************
|
|
|
|
> r1 = kdp
|
|
|
|
***********************************************************/
|
|
|
|
int_handler: /* < outside referer */
|
|
lwz r9, 0x05b0( r1) # kdp._int_handler # 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 _dbgr_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, _dbgr_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, 0x02 # 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 major_0x02980_0x330 # 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+ int_handler # 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
|
|
.long 0x4800f06d # 048b0
|
|
.long 0x2c088da2 # 048b4
|
|
.long 0x2c888da3 # 048b8
|
|
.long 0x2d088da1 # 048bc
|
|
.long 0x4182fda0 # 048c0
|
|
.long 0x4186e3ec # 048c4
|
|
.long 0x408afd98 # 048c8
|
|
.long 0x7d3042a6 # 048cc
|
|
.long 0x39000001 # 048d0
|
|
.long 0x9909fee8 # 048d4
|
|
.long 0x4bffe3d8 # 048d8
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x048dc
|
|
|
|
***********************************************************/
|
|
|
|
.long 0x60000000 # 048dc
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
SIGP
|
|
|
|
************************************************************
|
|
|
|
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, 0x02 # 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, 0x02 # 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, 0x02 # 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, 0x02 # 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, 0x02 # 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
|
|
|
|
************************************************************
|
|
|
|
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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_dbgr_0x04c00
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
major_0x04c20
|
|
|
|
***********************************************************/
|
|
|
|
_dbgr_0x04c00: /* < outside referer */
|
|
b dbgr # 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:
|
|
all_world_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, 0x01 # 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 _dbgr_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, 0x0c # 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, 0x02 # 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 _dbgr_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, _dbgr_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+ _dbgr_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+ _dbgr_0x04c00 # 05134
|
|
andi. r30, r30, 0xffff # 05138
|
|
xori r28, r28, 0x800 # 0513c
|
|
bne+ _dbgr_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, 0x02 # 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:
|
|
all_world_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:
|
|
all_world_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:
|
|
all_world_setup
|
|
major_0x14bcc
|
|
major_0x16bb4
|
|
|
|
***********************************************************/
|
|
|
|
major_0x055e0: /* < outside referer */
|
|
lhz r29, 0x0f50( r1) # 055e0
|
|
slwi r29, r29, 0x0c # 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 dbgr # 05800
|
|
b major_0x05808_0x244 # 05804
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x05808
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
major_0x02980
|
|
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:
|
|
all_world_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, 0x01 # 069d4
|
|
rlwimi r20, r21, 1, 31, 31 # 069d8
|
|
cmplw cr2, r20, r19 # 069dc
|
|
rlwinm. r24, r24, 1, 0, 30 # 069e0
|
|
slwi r21, r21, 0x01 # 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, 0x1a # 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, 0xa0 # 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, 0xf0 # 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, 0x140 # 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, 0x190 # 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, 0x1e0 # 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 dbgr # 07674
|
|
b dbgr # 07678
|
|
b dbgr # 0767c
|
|
b dbgr # 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 dbgr # 076a4
|
|
b dbgr # 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, 0xa0 # 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, 0xf0 # 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, 0x140 # 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, 0x190 # 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, 0x1e0 # 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, 0x01 # 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, 0x01 # 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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_dbgr_0x08620
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
major_0x08794
|
|
|
|
***********************************************************/
|
|
|
|
_dbgr_0x08620: /* < outside referer */
|
|
b dbgr # 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, 0x10 # 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 dbgr # 087f8
|
|
|
|
major_0x08794_0x68:
|
|
stw r8, -0x0b90( r1) # 087fc
|
|
b major_0x02980_0x330 # 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, 0x0c # 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, 0x02 # 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, _dbgr_0x08620 # 09a30
|
|
bltlr- # 09a34
|
|
bl _dbgr_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, 0x02 # 09a98
|
|
rlwinm r15, r9, 22, 0, 29 # 09a9c
|
|
crset 4*cr4 + lt # 09aa0
|
|
b major_0x08794_0x1278 # 09aa4
|
|
|
|
major_0x08794_0x1314:
|
|
slwi r8, r8, 0x0c # 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, 0x0c # 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, 0x0c # 09b7c
|
|
mfsrin r6, r9 # 09b80
|
|
xor r9, r6, r4 # 09b84
|
|
slwi r7, r9, 0x06 # 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, 0x0c # 09c68
|
|
bl major_0x04c20 # 09c6c
|
|
bnel+ _dbgr_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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
dbgr_offset_to_r1_minus_0x810_x48__0x9dfc_to_prev_plus_4_20_36
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
all_world_setup
|
|
|
|
***********************************************************/
|
|
|
|
dbgr_offset_to_r1_minus_0x810_x48__0x9dfc_to_prev_plus_4_20_36: /* < outside referer */
|
|
mflr r9 # 09ce0
|
|
lis r23, dbgr@h # 09ce4
|
|
ori r23, r23, dbgr@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, bootstrap_cpu_0xdc@h # 09d00
|
|
ori r23, r23, bootstrap_cpu_0xdc@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
|
|
|
|
************************************************************
|
|
|
|
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, bootstrap_cpu_0x13c # 09d3c
|
|
bne- bootstrap_cpu_0x134 # 09d40
|
|
cmplwi cr7, r3, 0x0b # 09d44
|
|
beq- cr7, major_0x0a600_0x1c # 09d48
|
|
cmplwi cr7, r3, 0x08 # 09d4c
|
|
beq- cr7, bootstrap_cpu_0x144 # 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, 0x01 # 09d8c
|
|
addi r3, r3, 0x1a # 09d90
|
|
rlwnm r3, r8, r3, 0x1e, 0x1f # 09d94
|
|
cmpwi r3, 0x00 # 09d98
|
|
beq- bootstrap_cpu_0x12c # 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
|
|
|
|
bootstrap_cpu_0xdc: /* < outside referer */
|
|
lbz r8, 0x06b9( r1) # 09dfc
|
|
cmpwi r8, 0x00 # 09e00
|
|
beq- bootstrap_cpu_0xec # 09e04
|
|
mtspr 1008/*hid0*/, r27 # 09e08
|
|
|
|
bootstrap_cpu_0xec:
|
|
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
|
|
|
|
bootstrap_cpu_0x10c:
|
|
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 major_0x02980_0x330 # 09e48
|
|
|
|
bootstrap_cpu_0x12c:
|
|
li r3, -0x7267 # 09e4c
|
|
b bootstrap_cpu_0x10c # 09e50
|
|
|
|
bootstrap_cpu_0x134:
|
|
li r3, 0x00 # 09e54
|
|
b major_0x02980_0x330 # 09e58
|
|
|
|
bootstrap_cpu_0x13c:
|
|
li r3, -0x01 # 09e5c
|
|
b major_0x02980_0x330 # 09e60
|
|
|
|
bootstrap_cpu_0x144:
|
|
mfspr r9, 272/*sprg0*/ # 09e64
|
|
lwz r8, -0x0338( r9) # 09e68
|
|
lwz r9, 0x0024( r8) # 09e6c
|
|
cmpwi r9, 0x01 # 09e70
|
|
li r3, -0x7267 # 09e74
|
|
bgt+ major_0x02980_0x330 # 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- bootstrap_cpu_0x1b8 # 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
|
|
|
|
bootstrap_cpu_0x1b8:
|
|
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- bootstrap_cpu_0x2a0 # 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
|
|
|
|
bootstrap_cpu_0x2a0:
|
|
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
|
|
|
|
bootstrap_cpu_0x2c8:
|
|
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+ bootstrap_cpu_0x2c8 # 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 bootstrap_cpu_0x6a4 # 0a0bc
|
|
lwz r1, 0x0004( r1) # 0a0c0
|
|
addi r16, r1, -0x4d0 # 0a0c4
|
|
lis r8, 0x100 # 0a0c8
|
|
ori r8, r8, 0x00 # 0a0cc
|
|
lis r9, 0x00 # 0a0d0
|
|
|
|
bootstrap_cpu_0x3b4:
|
|
addis r9, r9, -0x1000 # 0a0d4
|
|
addis r8, r8, -0x10 # 0a0d8
|
|
mr. r9, r9 # 0a0dc
|
|
mtsrin r8, r9 # 0a0e0
|
|
bne+ bootstrap_cpu_0x3b4 # 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- bootstrap_cpu_0x494 # 0a128
|
|
lwz r8, 0x0f54( r1) # 0a12c
|
|
mr. r8, r8 # 0a130
|
|
beq- bootstrap_cpu_0x494 # 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
|
|
|
|
bootstrap_cpu_0x44c:
|
|
mfspr r8, 1017/*l2cr*/ # 0a16c
|
|
rlwinm. r8, r8, 31, 0, 0 # 0a170
|
|
bne+ bootstrap_cpu_0x44c # 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
|
|
|
|
bootstrap_cpu_0x494:
|
|
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- bootstrap_cpu_0x5b0 # 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
|
|
|
|
bootstrap_cpu_0x5b0:
|
|
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 major_0x02980_0x330 # 0a3c0
|
|
|
|
bootstrap_cpu_0x6a4:
|
|
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
|
|
bl bootstrap_cpu_0x6ec # 0a408
|
|
|
|
bootstrap_cpu_0x6ec:
|
|
mflr r9 # 0a40c
|
|
addi r9, r9, 0x1f4 # 0a410
|
|
lis r1, -0x3502 # 0a414
|
|
ori r1, r1, 0xbabe # 0a418
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x0a41c
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
bootstrap_cpu
|
|
|
|
***********************************************************/
|
|
|
|
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_0x0a41c
|
|
|
|
***********************************************************/
|
|
|
|
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
|
|
|
|
***********************************************************/
|
|
|
|
.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 major_0x02980_0x330 # 0a618
|
|
|
|
major_0x0a600_0x1c: /* < outside referer */
|
|
b major_0x0a600_0x1c # 0a61c
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_dbgr_0x0a620
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
rtas_call
|
|
|
|
***********************************************************/
|
|
|
|
_dbgr_0x0a620: /* < outside referer */
|
|
b dbgr # 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 major_0x02980_0x330 # 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, 0x320 # kdp.0x320 # 0a744
|
|
bl major_0x054b8 # 0a748
|
|
beql+ _dbgr_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, 0x02 # 0a760
|
|
lwzx r27, r8, r3 # 0a764
|
|
addi r29, r1, 0x320 # kdp.0x320 # 0a768
|
|
bl major_0x054b8 # 0a76c
|
|
beql+ _dbgr_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_lock_did_not_fail # 0a89c
|
|
mflr r8 # 0a8a0
|
|
bl dbgr # 0a8a4
|
|
|
|
rtas_lock_did_not_fail:
|
|
stw r8, -0x0b10( r1) # kdp.rtas_lock # 0a8a8
|
|
li r3, 0x00 # 0a8ac
|
|
b major_0x02980_0x330 # 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_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, 0x1e # 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, 0x0c # 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, 0x0c # 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 major_0x02980_0x330 # 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, 0x01 # 0ab58
|
|
add r8, r8, r24 # 0ab5c
|
|
srwi r8, r8, 0x01 # 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 dbgr # 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.popular_lock # 0af3c
|
|
cmpwi cr1, r16, 0x00 # 0af40
|
|
li r16, 0x00 # 0af44
|
|
bne+ cr1, syscall_return_assert_lock_unheld_0x1c # 0af48
|
|
mflr r16 # 0af4c
|
|
bl dbgr # 0af50
|
|
|
|
syscall_return_assert_lock_unheld_0x1c:
|
|
stw r16, -0x0b50( r1) # kdp.popular_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 dbgr # 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 dbgr # 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 dbgr # 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 dbgr # 0b01c
|
|
|
|
major_0x0af60_0xc0:
|
|
stw r16, -0x0b50( r1) # 0b020
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
syscall_return_kMPInsufficientResourcesErr
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
major_0x0af60
|
|
major_0x0b144
|
|
major_0x0b244
|
|
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 dbgr # 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 dbgr # 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 dbgr # 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 dbgr # 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 dbgr # 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_0x02980
|
|
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 dbgr # 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 major_0x02980_0x330 # 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 dbgr # 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 dbgr # 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, nk_inert_call # 0b234
|
|
mflr r16 # 0b238
|
|
bl dbgr # 0b23c
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
nk_inert_call
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
major_0x0b144
|
|
|
|
***********************************************************/
|
|
|
|
nk_inert_call: /* < outside referer */
|
|
stw r16, -0x0b90( r1) # 0b240
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x0b244
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
nk_inert_call
|
|
|
|
***********************************************************/
|
|
|
|
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, 0x320 # 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, 0x320 # 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, 0x320 # 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, 0x320 # 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
|
|
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 dbgr # 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 dbgr # 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 dbgr # 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, 0x3c0 # 0b984
|
|
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 major_0x0e330 # 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 dbgr # 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, _dbgr_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, _dbgr_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 dbgr # 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, 0x07 # 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 dbgr # 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, 0x10 # 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, 0x10 # 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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_dbgr_0x0c5d4
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
major_0x0bc2c
|
|
major_0x0bccc
|
|
|
|
***********************************************************/
|
|
|
|
_dbgr_0x0c5d4: /* < outside referer */
|
|
b dbgr # 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_0x02980
|
|
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
|
|
bl major_0x130f0_0x618 # 0ca8c
|
|
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
|
|
bl major_0x130f0_0x618 # 0cc48
|
|
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
|
|
bl major_0x130f0_0x618 # 0cfdc
|
|
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
|
|
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 dbgr # 0d460
|
|
|
|
major_0x0d35c_0x108:
|
|
cmplw r16, r19 # 0d464
|
|
srwi r16, r16, 0x02 # 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, 0x02 # 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
|
|
bl major_0x130f0_0x618 # 0d644
|
|
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
|
|
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 dbgr # 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
|
|
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
|
|
bl major_0x130f0_0x618 # 0d94c
|
|
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
|
|
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_0x02980
|
|
major_0x04240
|
|
major_0x04300
|
|
major_0x0dacc
|
|
major_0x102c8
|
|
major_0x154e0
|
|
|
|
***********************************************************/
|
|
|
|
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_0x02980
|
|
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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_dbgr_0x0e280
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
major_0x0e330
|
|
major_0x0e548
|
|
major_0x0ec8c
|
|
major_0x0f050
|
|
|
|
***********************************************************/
|
|
|
|
_dbgr_0x0e280: /* < outside referer */
|
|
b dbgr # 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 major_0x0e330 # 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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x0e330
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
all_world_setup
|
|
major_0x0bb20
|
|
major_0x0e284
|
|
|
|
***********************************************************/
|
|
|
|
major_0x0e330: /* < outside referer */
|
|
mr r27, r8 # 0e330
|
|
mflr r29 # 0e334
|
|
li r8, 0x400 # 0e338
|
|
bl boring # 0e33c
|
|
mr. r28, r8 # 0e340
|
|
beq- major_0x0e330_0x20c # 0e344
|
|
li r9, 0x02 # 0e348
|
|
bl major_0x151b0 # 0e34c
|
|
cmpwi r8, 0x00 # 0e350
|
|
beq- major_0x0e330_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
|
|
bl boring # 0e378
|
|
cmpwi r8, 0x00 # 0e37c
|
|
stw r8, 0x009c(r28) # 0e380
|
|
beq- major_0x0e330_0x1fc # 0e384
|
|
lis r9, 0x6e6f # 0e388
|
|
ori r9, r9, 0x7465 # 0e38c
|
|
stw r9, 0x0004( r8) # 0e390
|
|
addi r16, r28, 0xa0 # 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, 0xa0 # 0e3bc
|
|
li r9, 0x05 # 0e3c0
|
|
bl major_0x151b0 # 0e3c4
|
|
cmpwi r8, 0x00 # 0e3c8
|
|
beq- major_0x0e330_0x1f4 # 0e3cc
|
|
stw r8, 0x00a0(r28) # 0e3d0
|
|
rlwinm. r8, r7, 0, 12, 12 # 0e3d4
|
|
beq- major_0x0e330_0xe8 # 0e3d8
|
|
li r8, 0x214 # 0e3dc
|
|
bl boring # 0e3e0
|
|
andi. r9, r8, 0x0f # 0e3e4
|
|
cmpwi cr1, r8, 0x00 # 0e3e8
|
|
bne+ _dbgr_0x0e280 # 0e3ec
|
|
beq- cr1, major_0x0e330_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
|
|
|
|
major_0x0e330_0xd8:
|
|
addi r16, r16, -0x01 # 0e408
|
|
stwu r17, 0x0004( r8) # 0e40c
|
|
cmpwi r16, 0x00 # 0e410
|
|
bgt+ major_0x0e330_0xd8 # 0e414
|
|
|
|
major_0x0e330_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, 0x64 # 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
|
|
|
|
major_0x0e330_0x1ec:
|
|
lwz r8, 0x00a0(r28) # 0e51c
|
|
bl major_0x15300 # 0e520
|
|
|
|
major_0x0e330_0x1f4:
|
|
lwz r8, 0x009c(r28) # 0e524
|
|
bl looks_like_poolextend # 0e528
|
|
|
|
major_0x0e330_0x1fc:
|
|
lwz r8, 0x0000(r28) # 0e52c
|
|
bl major_0x15300 # 0e530
|
|
|
|
major_0x0e330_0x204:
|
|
mr r8, r28 # 0e534
|
|
bl looks_like_poolextend # 0e538
|
|
|
|
major_0x0e330_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+ _dbgr_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 dbgr # 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, 0x2710 # 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 dbgr # 0ea48
|
|
|
|
NKThrowException_0xf0:
|
|
stw r16, -0x0b50( r1) # 0ea4c
|
|
addi r10, r10, -0x04 # 0ea50
|
|
b major_0x0b4a4_0x78 # 0ea54
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x0ea58
|
|
|
|
************************************************************
|
|
|
|
syscall 58
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
major_0x02980
|
|
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, _dbgr_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, _dbgr_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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_dbgr_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
|
|
|
|
***********************************************************/
|
|
|
|
_dbgr_0x0f380: /* < outside referer */
|
|
b dbgr # 0f380
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x0f384
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
all_world_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:
|
|
all_world_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, 0x78 # 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, 0xa0 # 0f454
|
|
bl boring # 0f458
|
|
mr. r31, r8 # 0f45c
|
|
beq+ _dbgr_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, 0xa0 # 0f4b8
|
|
bl boring # 0f4bc
|
|
mr. r31, r8 # 0f4c0
|
|
beq+ _dbgr_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+ _dbgr_0x0f380 # 0f544
|
|
li r8, 0x00 # 0f548
|
|
stw r8, -0x026c( r1) # 0f54c
|
|
|
|
convert_pmdts_to_areas_0x198:
|
|
li r8, 0xa0 # 0f550
|
|
bl boring # 0f554
|
|
mr. r31, r8 # 0f558
|
|
beq+ _dbgr_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, 0x0c # 0f578
|
|
addi r16, r16, 0x01 # 0f57c
|
|
add r15, r15, r26 # 0f580
|
|
slwi r16, r16, 0x0c # 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+ _dbgr_0x0f380 # 0f618
|
|
mr r8, r31 # 0f61c
|
|
bl createarea # 0f620
|
|
cmpwi r9, 0x00 # 0f624
|
|
mr r30, r8 # 0f628
|
|
bnel+ _dbgr_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, 0xa0 # 0f640
|
|
bl boring # 0f644
|
|
mr. r31, r8 # 0f648
|
|
beq+ _dbgr_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+ _dbgr_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, 0xa0 # 0f69c
|
|
bl boring # 0f6a0
|
|
mr. r31, r8 # 0f6a4
|
|
beq+ _dbgr_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, 0x0c # 0f6c4
|
|
addi r16, r16, 0x01 # 0f6c8
|
|
add r15, r15, r26 # 0f6cc
|
|
slwi r16, r16, 0x0c # 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+ _dbgr_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 dbgr # 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:
|
|
all_world_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
|
|
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, 0xa0 # 0f948
|
|
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, 0xa0 # 0fb6c
|
|
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 dbgr # 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
|
|
bl boring # 0ffe0
|
|
cmpwi r8, 0x00 # 0ffe4
|
|
stw r8, 0x0040(r31) # 0ffe8
|
|
beq- createarea_0x460 # 0ffec
|
|
lwz r9, 0x002c(r31) # 0fff0
|
|
srwi r9, r9, 0x0c # 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
|
|
bl boring # 10020
|
|
cmpwi r8, 0x00 # 10024
|
|
stw r8, 0x003c(r31) # 10028
|
|
beq- createarea_0x460 # 1002c
|
|
lwz r9, 0x002c(r31) # 10030
|
|
srwi r9, r9, 0x0c # 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, 0x0c # 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, 0x0a # 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, 0x0c # 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, 0x0b # 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 dbgr # 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 dbgr # 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, 0xa0 # 1044c
|
|
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 dbgr # 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 dbgr # 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, 0x0c # 1060c
|
|
addi r19, r19, 0x3ff # 10610
|
|
srwi r19, r19, 0x0a # 10614
|
|
slwi r19, r19, 0x02 # 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 dbgr # 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, 0x0c # 106a0
|
|
addi r19, r19, 0x7ff # 106a4
|
|
srwi r19, r19, 0x0b # 106a8
|
|
slwi r19, r19, 0x02 # 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 dbgr # 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+ _dbgr_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+ _dbgr_0x0f380 # 10814
|
|
mr r26, r30 # 10818
|
|
mr r8, r29 # 1081c
|
|
bl major_0x12248_0x1e4 # 10820
|
|
beq+ _dbgr_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 dbgr # 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 dbgr # 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 dbgr # 109c4
|
|
|
|
major_0x108fc_0xcc:
|
|
stw r14, -0x0b90( r1) # 109c8
|
|
beq+ _dbgr_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
|
|
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+ _dbgr_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 dbgr # 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+ _dbgr_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 dbgr # 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 dbgr # 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+ _dbgr_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 dbgr # 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 dbgr # 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+ _dbgr_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+ _dbgr_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 dbgr # 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+ _dbgr_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 dbgr # 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+ _dbgr_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 dbgr # 114f0
|
|
|
|
major_0x11490_0x64:
|
|
stw r16, -0x0ad0( r1) # 114f4
|
|
b syscall_return # 114f8
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
free_list_add_page
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
all_world_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+ _dbgr_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+ _dbgr_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 dbgr # 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 dbgr # 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+ _dbgr_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 dbgr # 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 dbgr # 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+ _dbgr_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 dbgr # 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 dbgr # 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 dbgr # 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 dbgr # 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 dbgr # 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+ _dbgr_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 dbgr # 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 dbgr # 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+ _dbgr_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 dbgr # 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 dbgr # 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 dbgr # 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 dbgr # 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 dbgr # 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+ _dbgr_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 dbgr # 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, 0x0f # 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+ _dbgr_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 dbgr # 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+ _dbgr_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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_dbgr_0x12780
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
boring
|
|
major_0x129fc
|
|
major_0x12a34
|
|
|
|
***********************************************************/
|
|
|
|
_dbgr_0x12780: /* < outside referer */
|
|
b dbgr # 12780
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
store_some_junk
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
all_world_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:
|
|
all_world_setup
|
|
major_0x02980
|
|
major_0x0b3cc
|
|
major_0x0b960
|
|
major_0x0c5e0
|
|
major_0x0c778
|
|
major_0x0c830
|
|
major_0x0cb00
|
|
major_0x0ce48
|
|
major_0x0d204
|
|
major_0x0d70c
|
|
major_0x0d8a0
|
|
major_0x0da20
|
|
major_0x0db04
|
|
major_0x0e330
|
|
major_0x0ea58
|
|
convert_pmdts_to_areas
|
|
NKCreateAddressSpaceSub
|
|
major_0x0fb34
|
|
createarea
|
|
major_0x10414
|
|
major_0x108fc
|
|
say_nanodebugger_activated
|
|
major_0x15144
|
|
major_0x151b0
|
|
|
|
***********************************************************/
|
|
|
|
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 # 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+ _dbgr_0x12780 # 12858
|
|
bgt- cr1, boring_0xb4 # 1285c
|
|
addi r8, r8, 0x27 # 12860
|
|
rlwinm r8, r8, 0, 0, 26 # 12864
|
|
addi r14, r1, -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) # 12880
|
|
lwz r17, -0x042c( r1) # 12884
|
|
subf. r16, r9, r16 # 12888
|
|
subf r17, r9, r17 # 1288c
|
|
blt- major_0x129cc # 12890
|
|
stw r16, -0x0430( r1) # 12894
|
|
stw r17, -0x042c( r1) # 12898
|
|
lwz r8, -0x0448( r1) # 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, 0x6672 # 128e0
|
|
bgt- boring_0x120 # 128e4
|
|
beq- boring_0x13c # 128e8
|
|
ori r20, r20, 0x6565 # 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, _dbgr_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, -0x7894 # 12968
|
|
ori r8, r8, 0x6f63 # 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
|
|
major_0x0e330
|
|
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 dbgr # 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+ _dbgr_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, _dbgr_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, -0x78be # 12b30
|
|
ori r16, r16, 0x474e # 12b34
|
|
stw r16, 0x0004(r17) # 12b38
|
|
addi r15, r17, 0x08 # 12b3c
|
|
li r16, 0xfe0 # 12b40
|
|
stw r16, 0x0000(r15) # 12b44
|
|
lis r16, -0x7894 # 12b48
|
|
ori r16, r16, 0x6f63 # 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, -0x78bb # 12b64
|
|
ori r16, r16, 0x4e44 # 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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_dbgr_0x12d40
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
say_nanodebugger_activated
|
|
major_0x12fa0
|
|
major_0x130f0
|
|
|
|
***********************************************************/
|
|
|
|
_dbgr_0x12d40: /* < outside referer */
|
|
b dbgr # 12d40
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
say_nanodebugger_activated
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
all_world_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
|
|
bl boring # 12d9c
|
|
mr. r31, r8 # 12da0
|
|
beq+ _dbgr_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
|
|
bl boring # 12dd4
|
|
mr. r31, r8 # 12dd8
|
|
beq+ _dbgr_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
|
|
bl boring # 12e28
|
|
mr. r31, r8 # 12e2c
|
|
beq+ _dbgr_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+ _dbgr_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:
|
|
all_world_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
|
|
init_ready_queues
|
|
major_0x154e0
|
|
|
|
***********************************************************/
|
|
|
|
.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 crclr_0_ltneg # 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+ _dbgr_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
|
|
|
|
major_0x130f0_0x618: /* < outside referer */
|
|
mr. r17, r8 # 13708
|
|
li r19, 0xfa # 1370c
|
|
lwz r9, 0x0f2c( r1) # 13710
|
|
bgt+ major_0x130f0_0x644 # 13714
|
|
blt+ major_0x130f0_0x638 # 13718
|
|
li r8, 0x00 # 1371c
|
|
li r9, 0x00 # 13720
|
|
blr # 13724
|
|
|
|
major_0x130f0_0x638:
|
|
neg r17, r17 # 13728
|
|
lis r19, 0x03 # 1372c
|
|
ori r19, r19, 0xd090 # 13730
|
|
|
|
major_0x130f0_0x644:
|
|
divw r19, r9, r19 # 13734
|
|
mullw r9, r19, r17 # 13738
|
|
mulhw r8, r19, r17 # 1373c
|
|
srwi r9, r9, 0x02 # 13740
|
|
rlwimi r9, r8, 30, 0, 1 # 13744
|
|
srwi r8, r8, 0x02 # 13748
|
|
blr # 1374c
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
bizarre
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
NKSetClockStep
|
|
NKSetClockDriftCorrection
|
|
major_0x0c968
|
|
major_0x0cb8c
|
|
major_0x0ced4
|
|
major_0x0d504
|
|
major_0x0d70c
|
|
major_0x0d9a8
|
|
major_0x0e330
|
|
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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_dbgr_0x137c0
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
major_0x13e4c
|
|
major_0x13ed8
|
|
major_0x13f78
|
|
major_0x142dc
|
|
major_0x14548
|
|
major_0x149d4
|
|
|
|
***********************************************************/
|
|
|
|
_dbgr_0x137c0: /* < outside referer */
|
|
b dbgr # 137c0
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
init_ready_queues
|
|
|
|
************************************************************
|
|
|
|
Really just named for its strings. Early boot. RDYQ
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
all_world_setup
|
|
|
|
************************************************************
|
|
|
|
> r1 = kdp
|
|
|
|
***********************************************************/
|
|
|
|
init_ready_queues: /* < outside referer */
|
|
li r16, 0x00 # 137c4
|
|
stw r16, 0x0ecc( r1) # kdp.0xecc # 137c8
|
|
mflr r20 # 137cc
|
|
li r8, -0x412 # 137d0
|
|
bl major_0x130f0_0x618 # 137d4
|
|
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_ready_queues_0x2c:
|
|
lis r8, 0x5244 # 137f0
|
|
ori r8, r8, 0x5951 # 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, 0x03 # 13874
|
|
rlwimi r16, r17, 3, 29, 31 # 13878
|
|
slwi r17, r17, 0x03 # 1387c
|
|
addi r23, r23, 0x01 # 13880
|
|
cmpwi r23, 0x04 # 13884
|
|
addi r9, r9, 0x20 # 13888
|
|
blt+ init_ready_queues_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_0x02980
|
|
major_0x03200
|
|
save_all_registers
|
|
trap_vector
|
|
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
|
|
_int_handler_kind_01
|
|
_int_handler_kind_03
|
|
_int_handler_kind_05
|
|
_int_handler_kind_02
|
|
_int_handler_kind_07
|
|
_int_handler_kind_10
|
|
_int_handler_kind_04
|
|
_int_handler_kind_06
|
|
_int_handler_kind_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, 0x1e0 # 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:
|
|
all_world_setup
|
|
major_0x02980
|
|
major_0x03200
|
|
major_0x04240
|
|
major_0x04300
|
|
handle_ResetSystem_trap
|
|
syscall_return
|
|
major_0x142dc
|
|
major_0x154e0
|
|
|
|
************************************************************
|
|
|
|
> 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, 0x1e0 # 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, 0x280 # 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, 0xa0 # 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, 0xf0 # 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, 0x140 # 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, 0x190 # 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, 0x1e0 # 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, 0xa0 # 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, 0xf0 # 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, 0x140 # 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, 0x190 # 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, 0x1e0 # 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_0x02980
|
|
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
|
|
major_0x154e0
|
|
|
|
***********************************************************/
|
|
|
|
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, _dbgr_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+ _dbgr_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:
|
|
all_world_setup
|
|
major_0x02980
|
|
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
|
|
major_0x154e0
|
|
|
|
***********************************************************/
|
|
|
|
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+ _dbgr_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:
|
|
all_world_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+ _dbgr_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:
|
|
major_0x02980
|
|
|
|
***********************************************************/
|
|
|
|
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_0x02980
|
|
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+ _dbgr_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 dbgr # 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:
|
|
handle_ResetSystem_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, _dbgr_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, _dbgr_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, 0x1a4 # 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 dbgr # 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, 0x1f # 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:
|
|
all_world_setup
|
|
NKStopScheduling
|
|
major_0x0c8b4
|
|
major_0x0ccf4
|
|
major_0x0d06c
|
|
major_0x0d35c
|
|
major_0x0e548
|
|
major_0x130f0
|
|
major_0x142dc
|
|
major_0x14bcc
|
|
major_0x154e0
|
|
|
|
***********************************************************/
|
|
|
|
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+ _dbgr_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, 0x0a # 14a24
|
|
rlwimi r20, r19, 22, 0, 9 # 14a28
|
|
srwi r19, r19, 0x0a # 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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
crclr_0_ltneg
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
major_0x130f0
|
|
|
|
***********************************************************/
|
|
|
|
crclr_0_ltneg: /* < 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:
|
|
all_world_setup
|
|
major_0x02980
|
|
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
|
|
major_0x154e0
|
|
|
|
***********************************************************/
|
|
|
|
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, 0x10 # 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 dbgr # 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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_dbgr_0x15140
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
major_0x15144
|
|
|
|
***********************************************************/
|
|
|
|
_dbgr_0x15140: /* < outside referer */
|
|
b dbgr # 15140
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x15144
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
all_world_setup
|
|
|
|
***********************************************************/
|
|
|
|
major_0x15144: /* < outside referer */
|
|
mflr r23 # 15144
|
|
li r8, 0x208 # 15148
|
|
bl boring # 1514c
|
|
mr. r22, r8 # 15150
|
|
stw r8, -0x0a98( r1) # 15154
|
|
beq+ _dbgr_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
|
|
bl boring # 1517c
|
|
cmpwi r8, 0x00 # 15180
|
|
stw r8, 0x0008(r22) # 15184
|
|
beq+ _dbgr_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:
|
|
all_world_setup
|
|
major_0x0b3cc
|
|
major_0x0b720
|
|
major_0x0b960
|
|
major_0x0c5e0
|
|
major_0x0cb00
|
|
major_0x0ce48
|
|
major_0x0d204
|
|
major_0x0d70c
|
|
major_0x0da20
|
|
major_0x0e330
|
|
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, 0x03 # 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
|
|
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
|
|
major_0x0e330
|
|
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, 0x03 # 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_0x02980
|
|
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
|
|
major_0x154e0
|
|
dbgr
|
|
|
|
************************************************************
|
|
|
|
> 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, 0x03 # 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
|
|
dbgr
|
|
|
|
***********************************************************/
|
|
|
|
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, 0x03 # 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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
choose_int_handler_kind
|
|
|
|
************************************************************
|
|
|
|
ConfigInfo has a byte at 0x40, which on NewWorld machines, equals 6 and is inherited from the ConfigInfo template at ROM image offset 0x30d000. That byte is used to choose an entry from this table, to become the "interrupt handler".
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
replace_old_kernel
|
|
new_world_setup
|
|
|
|
************************************************************
|
|
|
|
> r3 = ConfigInfo
|
|
|
|
< r12 = clobbered
|
|
< r7 = interrupt handler address
|
|
|
|
***********************************************************/
|
|
|
|
choose_int_handler_kind: /* < outside referer */
|
|
mflr r12 # 154a0
|
|
bl 1f # 154a4
|
|
|
|
int_handler_tbl:
|
|
.short 0 # 154a8
|
|
.short _int_handler_kind_01 - int_handler_tbl # 154aa
|
|
.short _int_handler_kind_02 - int_handler_tbl # 154ac
|
|
.short _int_handler_kind_03 - int_handler_tbl # 154ae
|
|
.short _int_handler_kind_04 - int_handler_tbl # 154b0
|
|
.short _int_handler_kind_05 - int_handler_tbl # 154b2
|
|
.short _int_handler_kind_06 - int_handler_tbl # 154b4
|
|
.short _int_handler_kind_07 - int_handler_tbl # 154b6
|
|
.short _int_handler_kind_08 - int_handler_tbl # 154b8
|
|
.short 0 # 154ba
|
|
.short _int_handler_kind_10 - int_handler_tbl # 154bc
|
|
.short 0 # 154be
|
|
.align 2 # 154c0
|
|
1: mflr r7 # 154c0
|
|
mtlr r12 # 154c4
|
|
lbz r12, 0x0098( r3) # ConfigInfo.u8_int_handler_kind
|
|
slwi r12, r12, 0x01 # 154cc
|
|
lhzx r12, r7, r12 # 154d0
|
|
add r7, r7, r12 # 154d4
|
|
blr # 154d8
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x154dc
|
|
|
|
***********************************************************/
|
|
|
|
.long 0x60000000 # 154dc
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x154e0
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
NKPropogateExternalInterrupt
|
|
_int_handler_kind_01
|
|
_int_handler_kind_03
|
|
_int_handler_kind_05
|
|
_int_handler_kind_02
|
|
_int_handler_kind_07
|
|
_int_handler_kind_10
|
|
_int_handler_kind_04
|
|
_int_handler_kind_06
|
|
_int_handler_kind_08
|
|
|
|
***********************************************************/
|
|
|
|
major_0x154e0: /* < outside referer */
|
|
mtspr 275/*sprg3*/, r30 # 154e0
|
|
lwz r23, 0x067c( r1) # 154e4
|
|
lwz r27, -0x0428( r1) # 154e8
|
|
|
|
major_0x154e0_0xc: /* < outside referer */
|
|
cmpwi cr7, r28, 0x00 # 154ec
|
|
li r31, 0x00 # 154f0
|
|
blt- cr7, major_0x154e0_0x50 # 154f4
|
|
beq- cr7, major_0x154e0_0x24 # 154f8
|
|
ori r28, r28, 0x8000 # 154fc
|
|
lwz r31, 0x0674( r1) # 15500
|
|
|
|
major_0x154e0_0x24:
|
|
andis. r8, r11, 0x02 # 15504
|
|
cmpwi cr1, r27, 0x00 # 15508
|
|
lwz r29, 0x0678( r1) # 1550c
|
|
bne- major_0x154e0_0x38 # 15510
|
|
bne- cr1, major_0x154e0_0x78 # 15514
|
|
|
|
major_0x154e0_0x38:
|
|
rlwinm. r8, r7, 0, 10, 10 # 15518
|
|
beq- major_0x154e0_0x14c # 1551c
|
|
sth r28, 0x0000(r23) # 15520
|
|
or r13, r13, r31 # 15524
|
|
bgt- cr7, major_0x154e0_0x50 # 15528
|
|
and r13, r13, r29 # 1552c
|
|
|
|
major_0x154e0_0x50:
|
|
sync # 15530
|
|
lwz r8, -0x0b70( r1) # 15534
|
|
cmpwi cr1, r8, 0x00 # 15538
|
|
li r8, 0x00 # 1553c
|
|
bne+ cr1, major_0x154e0_0x6c # 15540
|
|
mflr r8 # 15544
|
|
bl dbgr # 15548
|
|
|
|
major_0x154e0_0x6c:
|
|
stw r8, -0x0b70( r1) # 1554c
|
|
bl restore_registers_from_r14_0x28 # 15550
|
|
b major_0x02980_0x330 # 15554
|
|
|
|
major_0x154e0_0x78:
|
|
sync # 15558
|
|
lwz r8, -0x0b70( r1) # 1555c
|
|
cmpwi cr1, r8, 0x00 # 15560
|
|
li r8, 0x00 # 15564
|
|
bne+ cr1, major_0x154e0_0x94 # 15568
|
|
mflr r8 # 1556c
|
|
bl dbgr # 15570
|
|
|
|
major_0x154e0_0x94:
|
|
stw r8, -0x0b70( r1) # 15574
|
|
bl NKPropogateExternalInterrupt_0x54 # 15578
|
|
mr r8, r8 # 1557c
|
|
mr r9, r9 # 15580
|
|
addi r8, r1, -0xb50 # 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- major_0x154e0_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) # 155bc
|
|
cmpwi cr1, r8, 0x00 # 155c0
|
|
li r8, 0x00 # 155c4
|
|
bne+ cr1, major_0x154e0_0xf4 # 155c8
|
|
mflr r8 # 155cc
|
|
bl dbgr # 155d0
|
|
|
|
major_0x154e0_0xf4:
|
|
stw r8, -0x0b50( r1) # 155d4
|
|
|
|
# r6 = ewa
|
|
bl restore_registers_from_r14 # 155d8
|
|
b major_0x02980_0x330 # 155dc
|
|
|
|
major_0x154e0_0x100:
|
|
li r27, 0x00 # 155e0
|
|
lwz r23, 0x067c( r1) # 155e4
|
|
stw r27, -0x0428( r1) # 155e8
|
|
sync # 155ec
|
|
lwz r8, -0x0b50( r1) # 155f0
|
|
cmpwi cr1, r8, 0x00 # 155f4
|
|
li r8, 0x00 # 155f8
|
|
bne+ cr1, major_0x154e0_0x128 # 155fc
|
|
mflr r8 # 15600
|
|
bl dbgr # 15604
|
|
|
|
major_0x154e0_0x128:
|
|
stw r8, -0x0b50( r1) # 15608
|
|
bl NKPropogateExternalInterrupt_0x70 # 1560c
|
|
mr r8, r8 # 15610
|
|
mr r9, r9 # 15614
|
|
addi r8, r1, -0xb70 # 15618
|
|
|
|
# r8 = lock
|
|
bl lock # 1561c
|
|
mr r8, r8 # 15620
|
|
mr r9, r9 # 15624
|
|
b major_0x154e0_0xc # 15628
|
|
|
|
major_0x154e0_0x14c:
|
|
sync # 1562c
|
|
lwz r8, -0x0b70( r1) # 15630
|
|
cmpwi cr1, r8, 0x00 # 15634
|
|
li r8, 0x00 # 15638
|
|
bne+ cr1, major_0x154e0_0x168 # 1563c
|
|
mflr r8 # 15640
|
|
bl dbgr # 15644
|
|
|
|
major_0x154e0_0x168:
|
|
stw r8, -0x0b70( r1) # 15648
|
|
bl NKPropogateExternalInterrupt_0x54 # 1564c
|
|
mr r16, r8 # 15650
|
|
mr r17, r9 # 15654
|
|
addi r8, r1, -0xb50 # 15658
|
|
|
|
# r8 = lock
|
|
bl lock # 1565c
|
|
mr r8, r16 # 15660
|
|
mr r9, r17 # 15664
|
|
lwz r30, -0x0440( r1) # 15668
|
|
or r31, r31, r30 # 1566c
|
|
stw r31, -0x0440( r1) # 15670
|
|
sth r28, -0x043c( r1) # 15674
|
|
lwz r31, -0x08f0( r1) # 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- major_0x154e0_0x1dc # 15698
|
|
lhz r17, -0x0116(r30) # 1569c
|
|
cmpw cr1, r16, r17 # 156a0
|
|
rlwinm. r8, r28, 0, 26, 26 # 156a4
|
|
beq- cr1, major_0x154e0_0x1d0 # 156a8
|
|
bne- major_0x154e0_0x230 # 156ac
|
|
|
|
major_0x154e0_0x1d0:
|
|
mr r8, r31 # 156b0
|
|
bl major_0x13e4c # 156b4
|
|
b major_0x154e0_0x218 # 156b8
|
|
|
|
major_0x154e0_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- major_0x154e0_0x210 # 156e4
|
|
addi r8, r31, 0x20 # 156e8
|
|
bl major_0x130f0_0x5d8 # 156ec
|
|
|
|
major_0x154e0_0x210:
|
|
lwz r16, 0x0e80( r1) # 156f0
|
|
stw r16, -0x08e4( r1) # 156f4
|
|
|
|
major_0x154e0_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
|
|
|
|
major_0x154e0_0x230:
|
|
mr r8, r31 # 15710
|
|
bl major_0x14af8 # 15714
|
|
sync # 15718
|
|
lwz r16, -0x0b50( r1) # 1571c
|
|
cmpwi cr1, r16, 0x00 # 15720
|
|
li r16, 0x00 # 15724
|
|
bne+ cr1, major_0x154e0_0x254 # 15728
|
|
mflr r16 # 1572c
|
|
bl dbgr # 15730
|
|
|
|
major_0x154e0_0x254:
|
|
stw r16, -0x0b50( r1) # 15734
|
|
|
|
# r6 = ewa
|
|
bl restore_registers_from_r14 # 15738
|
|
b major_0x02980_0x330 # 1573c
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
NKPropogateExternalInterrupt
|
|
|
|
************************************************************
|
|
|
|
syscall 122
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
syscall
|
|
major_0x154e0
|
|
|
|
***********************************************************/
|
|
|
|
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 # 15758
|
|
|
|
# r8 = lock
|
|
bl lock # 1575c
|
|
mr r8, r8 # 15760
|
|
mr r9, r9 # 15764
|
|
lwz r23, 0x067c( r1) # 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 NKPropogateExternalInterrupt_0x70 # 15784
|
|
b major_0x154e0_0xc # 15788
|
|
|
|
NKPropogateExternalInterrupt_0x4c:
|
|
b syscall_return_kMPInsufficientResourcesErr # 1578c
|
|
|
|
NKPropogateExternalInterrupt_0x50:
|
|
b syscall_return_paramErr # 15790
|
|
|
|
NKPropogateExternalInterrupt_0x54: /* < 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
|
|
|
|
NKPropogateExternalInterrupt_0x70: /* < 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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_int_handler_kind_01
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
int_handler
|
|
|
|
************************************************************
|
|
|
|
> r1 = kdp
|
|
|
|
***********************************************************/
|
|
|
|
_int_handler_kind_01: /* < outside referer */
|
|
mr r8, r8 # 15840
|
|
mr r9, r9 # 15844
|
|
addi r8, r1, -0xb70 # kdp.interrupt_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- _int_handler_kind_01_0x38 # 15868
|
|
lwz r21, 0x0e80( r1) # kdp.0xe80 # 1586c
|
|
addi r21, r21, 0x01 # 15870
|
|
stw r21, 0x0e80( r1) # kdp.0xe80 # 15874
|
|
|
|
_int_handler_kind_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
|
|
b major_0x154e0 # 158e0
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x158e4
|
|
|
|
***********************************************************/
|
|
|
|
.long 0x4800001c # 158e4
|
|
.long 0x60000000 # 158e8
|
|
.long 0x60000000 # 158ec
|
|
.long 0x60000000 # 158f0
|
|
.long 0x60000000 # 158f4
|
|
.long 0x60000000 # 158f8
|
|
.long 0x60000000 # 158fc
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_int_handler_kind_03
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
int_handler
|
|
|
|
************************************************************
|
|
|
|
> r1 = kdp
|
|
|
|
***********************************************************/
|
|
|
|
_int_handler_kind_03: /* < outside referer */
|
|
mr r8, r8 # 15900
|
|
mr r9, r9 # 15904
|
|
addi r8, r1, -0xb70 # kdp.interrupt_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- _int_handler_kind_03_0x38 # 15928
|
|
lwz r21, 0x0e80( r1) # kdp.0xe80 # 1592c
|
|
addi r21, r21, 0x01 # 15930
|
|
stw r21, 0x0e80( r1) # kdp.0xe80 # 15934
|
|
|
|
_int_handler_kind_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
|
|
b major_0x154e0 # 159a4
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x159a8
|
|
|
|
***********************************************************/
|
|
|
|
.long 0x48000018 # 159a8
|
|
.long 0x60000000 # 159ac
|
|
.long 0x60000000 # 159b0
|
|
.long 0x60000000 # 159b4
|
|
.long 0x60000000 # 159b8
|
|
.long 0x60000000 # 159bc
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_int_handler_kind_05
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
int_handler
|
|
|
|
************************************************************
|
|
|
|
> r1 = kdp
|
|
|
|
***********************************************************/
|
|
|
|
_int_handler_kind_05: /* < outside referer */
|
|
mr r8, r8 # 159c0
|
|
mr r9, r9 # 159c4
|
|
addi r8, r1, -0xb70 # kdp.interrupt_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- _int_handler_kind_05_0x38 # 159e8
|
|
lwz r21, 0x0e80( r1) # kdp.0xe80 # 159ec
|
|
addi r21, r21, 0x01 # 159f0
|
|
stw r21, 0x0e80( r1) # kdp.0xe80 # 159f4
|
|
|
|
_int_handler_kind_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- _int_handler_kind_05_0x104 # 15a90
|
|
rlwinm r28, r23, 0, 15, 16 # 15a94
|
|
rlwimi. r28, r23, 0, 22, 31 # 15a98
|
|
li r28, 0x04 # 15a9c
|
|
bne- _int_handler_kind_05_0x104 # 15aa0
|
|
andis. r28, r23, 0x5fca # 15aa4
|
|
rlwimi. r28, r23, 0, 17, 20 # 15aa8
|
|
li r28, 0x02 # 15aac
|
|
bne- _int_handler_kind_05_0x104 # 15ab0
|
|
andis. r28, r23, 0x04 # 15ab4
|
|
li r28, 0x01 # 15ab8
|
|
bne- _int_handler_kind_05_0x104 # 15abc
|
|
li r28, 0x00 # 15ac0
|
|
|
|
_int_handler_kind_05_0x104:
|
|
mtsrin r21, r22 # 15ac4
|
|
isync # 15ac8
|
|
b major_0x154e0 # 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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_int_handler_kind_02
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
int_handler
|
|
|
|
************************************************************
|
|
|
|
> r1 = kdp
|
|
|
|
***********************************************************/
|
|
|
|
_int_handler_kind_02: /* < outside referer */
|
|
mr r8, r8 # 15b00
|
|
mr r9, r9 # 15b04
|
|
addi r8, r1, -0xb70 # kdp.interrupt_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- _int_handler_kind_02_0x38 # 15b28
|
|
lwz r21, 0x0e80( r1) # kdp.0xe80 # 15b2c
|
|
addi r21, r21, 0x01 # 15b30
|
|
stw r21, 0x0e80( r1) # kdp.0xe80 # 15b34
|
|
|
|
_int_handler_kind_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- _int_handler_kind_02_0xd8 # 15ba4
|
|
rlwinm r28, r23, 0, 15, 16 # 15ba8
|
|
rlwimi. r28, r23, 0, 21, 31 # 15bac
|
|
li r28, 0x04 # 15bb0
|
|
bne- _int_handler_kind_02_0xd8 # 15bb4
|
|
rlwinm. r28, r23, 0, 17, 17 # 15bb8
|
|
li r28, 0x03 # 15bbc
|
|
bne- _int_handler_kind_02_0xd8 # 15bc0
|
|
andis. r28, r23, 0x7fea # 15bc4
|
|
rlwimi. r28, r23, 0, 18, 19 # 15bc8
|
|
li r28, 0x02 # 15bcc
|
|
bne- _int_handler_kind_02_0xd8 # 15bd0
|
|
rlwinm. r28, r23, 14, 31, 31 # 15bd4
|
|
|
|
_int_handler_kind_02_0xd8:
|
|
mtsrin r21, r22 # 15bd8
|
|
isync # 15bdc
|
|
b major_0x154e0 # 15be0
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x15be4
|
|
|
|
***********************************************************/
|
|
|
|
.long 0x4800001c # 15be4
|
|
.long 0x60000000 # 15be8
|
|
.long 0x60000000 # 15bec
|
|
.long 0x60000000 # 15bf0
|
|
.long 0x60000000 # 15bf4
|
|
.long 0x60000000 # 15bf8
|
|
.long 0x60000000 # 15bfc
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_int_handler_kind_07
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
int_handler
|
|
|
|
************************************************************
|
|
|
|
> r1 = kdp
|
|
|
|
***********************************************************/
|
|
|
|
_int_handler_kind_07: /* < outside referer */
|
|
mr r8, r8 # 15c00
|
|
mr r9, r9 # 15c04
|
|
addi r8, r1, -0xb70 # kdp.interrupt_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- _int_handler_kind_07_0x38 # 15c28
|
|
lwz r21, 0x0e80( r1) # kdp.0xe80 # 15c2c
|
|
addi r21, r21, 0x01 # 15c30
|
|
stw r21, 0x0e80( r1) # kdp.0xe80 # 15c34
|
|
|
|
_int_handler_kind_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- _int_handler_kind_07_0x118 # 15ccc
|
|
rlwinm r28, r23, 0, 15, 16 # 15cd0
|
|
rlwimi. r28, r23, 0, 22, 31 # 15cd4
|
|
li r28, 0x04 # 15cd8
|
|
bne- _int_handler_kind_07_0x118 # 15cdc
|
|
clrlwi. r28, r24, 0x1e # 15ce0
|
|
li r28, 0x04 # 15ce4
|
|
bne- _int_handler_kind_07_0x118 # 15ce8
|
|
rlwinm. r28, r24, 0, 21, 21 # 15cec
|
|
li r28, 0x03 # 15cf0
|
|
bne- _int_handler_kind_07_0x118 # 15cf4
|
|
andis. r28, r23, 0x3fea # 15cf8
|
|
rlwimi. r28, r23, 0, 17, 20 # 15cfc
|
|
li r28, 0x02 # 15d00
|
|
bne- _int_handler_kind_07_0x118 # 15d04
|
|
rlwinm. r28, r24, 0, 20, 20 # 15d08
|
|
li r28, 0x01 # 15d0c
|
|
bne- _int_handler_kind_07_0x118 # 15d10
|
|
rlwinm. r28, r23, 14, 31, 31 # 15d14
|
|
|
|
_int_handler_kind_07_0x118:
|
|
mtsrin r21, r22 # 15d18
|
|
isync # 15d1c
|
|
b major_0x154e0 # 15d20
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x15d24
|
|
|
|
***********************************************************/
|
|
|
|
.long 0x4800001c # 15d24
|
|
.long 0x60000000 # 15d28
|
|
.long 0x60000000 # 15d2c
|
|
.long 0x60000000 # 15d30
|
|
.long 0x60000000 # 15d34
|
|
.long 0x60000000 # 15d38
|
|
.long 0x60000000 # 15d3c
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_int_handler_kind_10
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
int_handler
|
|
|
|
************************************************************
|
|
|
|
> r1 = kdp
|
|
|
|
***********************************************************/
|
|
|
|
_int_handler_kind_10: /* < outside referer */
|
|
mr r8, r8 # 15d40
|
|
mr r9, r9 # 15d44
|
|
addi r8, r1, -0xb70 # kdp.interrupt_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- _int_handler_kind_10_0x38 # 15d68
|
|
lwz r21, 0x0e80( r1) # kdp.0xe80 # 15d6c
|
|
addi r21, r21, 0x01 # 15d70
|
|
stw r21, 0x0e80( r1) # kdp.0xe80 # 15d74
|
|
|
|
_int_handler_kind_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
|
|
|
|
_int_handler_kind_10_0xb0:
|
|
lwz r26, 0x001c(r25) # 15df0
|
|
and. r26, r24, r26 # 15df4
|
|
bne- _int_handler_kind_10_0xd4 # 15df8
|
|
lwzu r26, -0x0004(r25) # 15dfc
|
|
and. r26, r23, r26 # 15e00
|
|
bne- _int_handler_kind_10_0xd4 # 15e04
|
|
addi r28, r28, -0x01 # 15e08
|
|
cmplwi r28, 0x00 # 15e0c
|
|
bne+ _int_handler_kind_10_0xb0 # 15e10
|
|
|
|
_int_handler_kind_10_0xd4:
|
|
mtsrin r21, r22 # 15e14
|
|
isync # 15e18
|
|
b major_0x154e0 # 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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_int_handler_kind_04
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
int_handler
|
|
|
|
************************************************************
|
|
|
|
> r1 = kdp
|
|
|
|
***********************************************************/
|
|
|
|
_int_handler_kind_04: /* < outside referer */
|
|
mr r8, r8 # 15e40
|
|
mr r9, r9 # 15e44
|
|
addi r8, r1, -0xb70 # kdp.interrupt_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- _int_handler_kind_04_0x38 # 15e68
|
|
lwz r21, 0x0e80( r1) # kdp.0xe80 # 15e6c
|
|
addi r21, r21, 0x01 # 15e70
|
|
stw r21, 0x0e80( r1) # kdp.0xe80 # 15e74
|
|
|
|
_int_handler_kind_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
|
|
b major_0x154e0 # 15eec
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x15ef0
|
|
|
|
***********************************************************/
|
|
|
|
.long 0x48000010 # 15ef0
|
|
.long 0x60000000 # 15ef4
|
|
.long 0x60000000 # 15ef8
|
|
.long 0x60000000 # 15efc
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_int_handler_kind_06
|
|
|
|
************************************************************
|
|
|
|
Used on all NewWorld? Hardcoded in ROM template.
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
int_handler
|
|
|
|
************************************************************
|
|
|
|
> r1 = kdp
|
|
|
|
***********************************************************/
|
|
|
|
_int_handler_kind_06: /* < outside referer */
|
|
mr r8, r8 # 15f00
|
|
mr r9, r9 # 15f04
|
|
addi r8, r1, -0xb70 # kdp.interrupt_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- _int_handler_kind_06_0x38 # 15f28
|
|
lwz r21, 0x0e80( r1) # kdp.0xe80 # 15f2c
|
|
addi r21, r21, 0x01 # 15f30
|
|
stw r21, 0x0e80( r1) # kdp.0xe80 # 15f34
|
|
|
|
_int_handler_kind_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, _int_handler_kind_06_0x23c # 15f74
|
|
beq- _int_handler_kind_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, _int_handler_kind_06_0xa8 # 15f90
|
|
addi r27, r27, -0x01 # 15f94
|
|
ble- _int_handler_kind_06_0x1fc # 15f98
|
|
lbzx r26, r26, r27 # 15f9c
|
|
lbz r28, 0x3f00(r26) # 15fa0
|
|
b _int_handler_kind_06_0x1fc # 15fa4
|
|
|
|
_int_handler_kind_06_0xa8:
|
|
cmplwi r27, 0x01 # 15fa8
|
|
addi r27, r27, -0x01 # 15fac
|
|
ble- _int_handler_kind_06_0x1fc # 15fb0
|
|
add r26, r26, r27 # 15fb4
|
|
addi r27, r20, 0xf93 # 15fb8
|
|
lbz r24, 0x0000(r26) # 15fbc
|
|
|
|
_int_handler_kind_06_0xc0:
|
|
lbzu r28, -0x0001(r27) # 15fc0
|
|
cmpw r24, r28 # 15fc4
|
|
cmpwi cr1, r28, 0xfe # 15fc8
|
|
beq- _int_handler_kind_06_0xdc # 15fcc
|
|
bne+ cr1, _int_handler_kind_06_0xc0 # 15fd0
|
|
li r28, -0x01 # 15fd4
|
|
b _int_handler_kind_06_0x1fc # 15fd8
|
|
|
|
_int_handler_kind_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+ _int_handler_kind_06_0x148 # 16040
|
|
lbz r28, 0x3f00(r26) # 16044
|
|
|
|
_int_handler_kind_06_0x148:
|
|
sth r27, 0x0910( r1) # kdp.0x910 # 16048
|
|
b _int_handler_kind_06_0x1fc # 1604c
|
|
|
|
_int_handler_kind_06_0x150:
|
|
lhz r27, 0x0f88(r20) # 16050
|
|
ori r20, r23, 0x10 # 16054
|
|
lis r26, 0x02 # 16058
|
|
ori r26, r26, 0xa0 # 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- _int_handler_kind_06_0x208 # 1607c
|
|
bge- cr1, _int_handler_kind_06_0x218 # 16080
|
|
cmplw r26, r27 # 16084
|
|
lis r27, 0x02 # 16088
|
|
ori r27, r27, 0xb0 # 1608c
|
|
bne+ _int_handler_kind_06_0x198 # 16090
|
|
stwx r29, r22, r27 # 16094
|
|
|
|
_int_handler_kind_06_0x198:
|
|
mtmsr r23 # 16098
|
|
isync # 1609c
|
|
lwz r20, -0x0020( r1) # kdp.irp # 160a0
|
|
lbz r28, 0x3f00(r26) # 160a4
|
|
cmpwi r28, 0x07 # 160a8
|
|
bne+ _int_handler_kind_06_0x1b8 # 160ac
|
|
stb r28, 0x0f93(r20) # 160b0
|
|
b _int_handler_kind_06_0x1fc # 160b4
|
|
|
|
_int_handler_kind_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
|
|
|
|
_int_handler_kind_06_0x1fc:
|
|
mtsrin r21, r22 # 160fc
|
|
isync # 16100
|
|
b major_0x154e0 # 16104
|
|
|
|
_int_handler_kind_06_0x208:
|
|
mtmsr r23 # 16108
|
|
isync # 1610c
|
|
li r28, -0x01 # 16110
|
|
b _int_handler_kind_06_0x1fc # 16114
|
|
|
|
_int_handler_kind_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 _int_handler_kind_06_0x1fc # 16138
|
|
|
|
_int_handler_kind_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 _int_handler_kind_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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
_int_handler_kind_08
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
int_handler
|
|
|
|
************************************************************
|
|
|
|
> r1 = kdp
|
|
|
|
***********************************************************/
|
|
|
|
_int_handler_kind_08: /* < outside referer */
|
|
mr r8, r8 # 16180
|
|
mr r9, r9 # 16184
|
|
addi r8, r1, -0xb70 # kdp.interrupt_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- _int_handler_kind_08_0x38 # 161a8
|
|
lwz r21, 0x0e80( r1) # kdp.0xe80 # 161ac
|
|
addi r21, r21, 0x01 # 161b0
|
|
stw r21, 0x0e80( r1) # kdp.0xe80 # 161b4
|
|
|
|
_int_handler_kind_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, _int_handler_kind_08_0x23c # 161f4
|
|
beq- _int_handler_kind_08_0x170 # 161f8
|
|
cmplwi r27, 0x01 # 161fc
|
|
ble- _int_handler_kind_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+ _int_handler_kind_08_0xac # 16220
|
|
addi r27, r27, 0x04 # 16224
|
|
addi r24, r24, -0x20 # 16228
|
|
|
|
_int_handler_kind_08_0xac:
|
|
lwz r27, 0x0000(r27) # 1622c
|
|
lis r28, -0x8000 # 16230
|
|
srw r28, r28, r24 # 16234
|
|
and. r27, r27, r28 # 16238
|
|
bne- _int_handler_kind_08_0xc8 # 1623c
|
|
li r28, -0x01 # 16240
|
|
b _int_handler_kind_08_0x1f8 # 16244
|
|
|
|
_int_handler_kind_08_0xc8:
|
|
addi r27, r20, 0xec4 # 16248
|
|
cmpwi r29, 0x20 # 1624c
|
|
blt+ _int_handler_kind_08_0xd8 # 16250
|
|
addi r27, r27, 0x04 # 16254
|
|
|
|
_int_handler_kind_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+ _int_handler_kind_08_0xf4 # 1626c
|
|
addi r27, r27, 0x04 # 16270
|
|
|
|
_int_handler_kind_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- _int_handler_kind_08_0x114 # 1628c
|
|
b _int_handler_kind_08_0x118 # 16290
|
|
|
|
_int_handler_kind_08_0x114:
|
|
li r26, 0x800 # 16294
|
|
|
|
_int_handler_kind_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- _int_handler_kind_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
|
|
|
|
_int_handler_kind_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 _int_handler_kind_08_0x1f8 # 162ec
|
|
|
|
_int_handler_kind_08_0x170:
|
|
ori r27, r23, 0x10 # 162f0
|
|
lis r26, 0x02 # 162f4
|
|
ori r26, r26, 0xa0 # 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- _int_handler_kind_08_0x204 # 1631c
|
|
bge- cr1, _int_handler_kind_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+ _int_handler_kind_08_0x1e4 # 16358
|
|
addi r27, r27, 0x04 # 1635c
|
|
addi r26, r26, -0x20 # 16360
|
|
|
|
_int_handler_kind_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
|
|
|
|
_int_handler_kind_08_0x1f8:
|
|
mtsrin r21, r22 # 16378
|
|
isync # 1637c
|
|
b major_0x154e0 # 16380
|
|
|
|
_int_handler_kind_08_0x204:
|
|
mtmsr r23 # 16384
|
|
isync # 16388
|
|
li r28, -0x01 # 1638c
|
|
b _int_handler_kind_08_0x1f8 # 16390
|
|
|
|
_int_handler_kind_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 _int_handler_kind_08_0x1f8 # 163b8
|
|
|
|
_int_handler_kind_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 _int_handler_kind_08_0x1f8 # 163d8
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x163dc
|
|
|
|
***********************************************************/
|
|
|
|
.long 0x60000000 # 163dc
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
print
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
replace_old_kernel
|
|
new_world_setup
|
|
all_world_setup
|
|
fail
|
|
lock
|
|
spinlock_what
|
|
major_0x02980
|
|
major_0x035a0
|
|
major_0x03940
|
|
major_0x04300
|
|
trap_vector
|
|
handle_ResetSystem_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_ready_queues
|
|
major_0x14bcc
|
|
dbgr
|
|
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, 0x6e # 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, 0x08 # 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 dbgr # 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_dbgr: /* < 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, 0x320 # 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, 0x0c # 16c78
|
|
|
|
major_0x16bb4_0xc8:
|
|
mr r27, r5 # 16c7c
|
|
addi r29, r1, 0x320 # 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, 0x78 # 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, 0x02 # 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, 0x78 # 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, 0x02 # 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, 0x0c # 1718c
|
|
slwi r9, r9, 0x02 # 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, 0x0c # 171a8
|
|
slwi r23, r23, 0x02 # 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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
dbgr
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
"lisori_caller"
|
|
_dbgr_0x02940
|
|
_dbgr_0x02960
|
|
major_0x02980
|
|
major_0x03200
|
|
major_0x035a0
|
|
major_0x03940
|
|
dsi_vector
|
|
major_0x04240
|
|
major_0x04300
|
|
_dbgr_0x04c00
|
|
funny_debug_place
|
|
major_0x07658
|
|
_dbgr_0x08620
|
|
major_0x08794
|
|
_dbgr_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
|
|
_dbgr_0x0c5d4
|
|
major_0x0d35c
|
|
major_0x0d798
|
|
_dbgr_0x0e280
|
|
major_0x0e604
|
|
NKThrowException
|
|
_dbgr_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
|
|
_dbgr_0x12780
|
|
major_0x129cc
|
|
_dbgr_0x12d40
|
|
_dbgr_0x137c0
|
|
major_0x142dc
|
|
major_0x14548
|
|
major_0x14bcc
|
|
_dbgr_0x15140
|
|
major_0x154e0
|
|
print
|
|
|
|
***********************************************************/
|
|
|
|
dbgr: /* < outside referer */
|
|
crset 4*cr1 + eq # 172e0
|
|
b dbgr_0xc # 172e4
|
|
.long 0x4cc63182 # 172e8
|
|
|
|
dbgr_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- dbgr_0x70 # 17344
|
|
mfspr r0, 0/*mq*/ # 17348
|
|
stw r0, 0x0784( r1) # 1734c
|
|
|
|
dbgr_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- dbgr_0xcc # 17388
|
|
|
|
dbgr_0xac:
|
|
mfspr r0, 4/*rtcu*/ # 1738c
|
|
mfspr r2, 5/*rtcl*/ # 17390
|
|
mfspr r3, 4/*rtcu*/ # 17394
|
|
cmpw r0, r3 # 17398
|
|
bne+ dbgr_0xac # 1739c
|
|
stw r0, 0x07a0( r1) # 173a0
|
|
stw r2, 0x07a4( r1) # 173a4
|
|
b dbgr_0xe8 # 173a8
|
|
|
|
dbgr_0xcc:
|
|
mftbu r0 # 173ac
|
|
mftb r2, 0x10c # 173b0
|
|
mftbu r3 # 173b4
|
|
cmpw r0, r3 # 173b8
|
|
bne+ dbgr_0xcc # 173bc
|
|
stw r0, 0x07a0( r1) # 173c0
|
|
stw r2, 0x07a4( r1) # 173c4
|
|
|
|
dbgr_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, dbgr_0x260 # 17518
|
|
|
|
dbgr_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_dbgr # 17530
|
|
|
|
# gets kdp from print!!!
|
|
cmpwi r8, -0x01 # 17534
|
|
bne- dbgr_0x260 # 17538
|
|
b dbgr_0x23c # 1753c
|
|
|
|
dbgr_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
|
|
|
|
dbgr_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
|
|
|
|
dbgr_0x2ac:
|
|
bl print_for_dbgr # 1758c
|
|
cmpwi r8, -0x01 # 17590
|
|
beq+ dbgr_0x2ac # 17594
|
|
mr r16, r8 # 17598
|
|
cmpwi r16, 0x08 # 1759c
|
|
cmpwi cr1, r17, 0x00 # 175a0
|
|
bne- dbgr_0x2ec # 175a4
|
|
ble+ cr1, dbgr_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 dbgr_0x2ac # 175c8
|
|
|
|
dbgr_0x2ec:
|
|
cmpwi cr2, r17, 0x5f # 175cc
|
|
addi r18, r1, -0x960 # kdp.-0x960 # 175d0
|
|
blt- cr2, dbgr_0x31c # 175d4
|
|
bl 1f # 175d8
|
|
.ascii "^b" # 175dc
|
|
.short 0 # 175de
|
|
.align 2 # 175e0
|
|
1: mflr r8 # 175e0
|
|
bl print_string # 175e4
|
|
b dbgr_0x2ac # 175e8
|
|
|
|
dbgr_0x30c:
|
|
addi r17, r17, 0x01 # 175ec
|
|
mr r8, r16 # 175f0
|
|
bl print_char # 175f4
|
|
b dbgr_0x2ac # 175f8
|
|
|
|
dbgr_0x31c:
|
|
cmpwi r16, 0x0d # 175fc
|
|
stbx r16, r17, r18 # 17600
|
|
bne+ dbgr_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+ dbgr_prompt # 1762c
|
|
bl dbgr_load_commands # 17630
|
|
mflr r16 # 17634
|
|
bl load_dbgr_tbl # 17638
|
|
mflr r17 # 1763c
|
|
|
|
# r16 = command strings
|
|
# r17 = lut
|
|
bl cmd_lookup # 17640
|
|
# cr0 = found
|
|
# r17 = ptr to lut entry
|
|
|
|
bne- dbgr_bad_command # 17644
|
|
bl load_dbgr_tbl # 17648
|
|
mflr r16 # 1764c
|
|
lwz r17, 0x0000(r17) # 17650
|
|
add r16, r16, r17 # 17654
|
|
mtlr r16 # 17658
|
|
blr # 1765c
|
|
|
|
dbgr_bad_command:
|
|
bl 1f # 17660
|
|
.ascii "???^n" # 17664
|
|
.short 0 # 17669
|
|
.align 2 # 1766b
|
|
1: mflr r8 # 1766c
|
|
bl print_string # 17670
|
|
b dbgr_prompt # 17674
|
|
|
|
dbgr_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_dbgr_tbl:
|
|
blrl # 17698
|
|
|
|
dbgr_tbl:
|
|
.long cmd_dumpmem_physical - dbgr_tbl # 1769c
|
|
.long cmd_dumpmem_logical - dbgr_tbl # 176a0
|
|
.long cmd_goto - dbgr_tbl # 176a4
|
|
.long cmd_opaque_id_info - dbgr_tbl # 176a8
|
|
.long cmd_display_kern_data - dbgr_tbl # 176ac
|
|
.long cmd_dump_registers - dbgr_tbl # 176b0
|
|
.long cmd_help - dbgr_tbl # 176b4
|
|
.long cmd_help - dbgr_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 dbgr_prompt # 17888
|
|
|
|
cmd_dumpmem_physical:
|
|
# r15 = start
|
|
bl next_cmd_word # 1788c
|
|
# r15 = ptr
|
|
# r16 = char
|
|
|
|
cmpwi r16, 0x00 # 17890
|
|
beq- dbgr_missing_physical_addr # 17894
|
|
bl major_0x187b0 # 17898
|
|
bne- dbgr_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- dbgr_0x5e0 # 178b0
|
|
bl major_0x187b0 # 178b4
|
|
bne- dbgr_bad_length_1 # 178b8
|
|
mr r31, r16 # 178bc
|
|
|
|
dbgr_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 dbgr_prompt # 178d4
|
|
|
|
dbgr_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 dbgr_prompt # 17900
|
|
|
|
dbgr_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 dbgr_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- dbgr_missing_logical_addr # 17964
|
|
bl major_0x187b0 # 17968
|
|
bne- dbgr_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- dbgr_0x6b0 # 17980
|
|
bl major_0x187b0 # 17984
|
|
bne- dbgr_bad_length_2 # 17988
|
|
mr r31, r16 # 1798c
|
|
|
|
dbgr_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 dbgr_prompt # 179a4
|
|
|
|
dbgr_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 dbgr_prompt # 179d0
|
|
|
|
dbgr_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 dbgr_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- dbgr_0x748 # 17a18
|
|
bl major_0x187b0 # 17a1c
|
|
bne- dbgr_bad_resume_address # 17a20
|
|
stw r16, 0x0904( r1) # kdp.0x904 # 17a24
|
|
|
|
dbgr_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.-0xb30 # 17a7c
|
|
cmpwi cr1, r9, 0x00 # 17a80
|
|
li r9, 0x00 # 17a84
|
|
bne+ cr1, dbgr_0x7b4 # 17a88
|
|
mflr r9 # 17a8c
|
|
bl dbgr # 17a90
|
|
|
|
dbgr_0x7b4:
|
|
stw r9, -0x0b30( r1) # kdp.-0xb30 # 17a94
|
|
mtlr r8 # 17a98
|
|
blr # 17a9c
|
|
|
|
dbgr_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 dbgr_prompt # 17adc
|
|
|
|
cmd_opaque_id_info:
|
|
# r15 = start
|
|
bl next_cmd_word # 17ae0
|
|
# r15 = ptr
|
|
# r16 = char
|
|
|
|
cmpwi r16, 0x00 # 17ae4
|
|
beq- dbgr_missing_opaque_id # 17ae8
|
|
bl dbgr_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- dbgr_0x884 # 17afc
|
|
li r29, 0x00 # 17b00
|
|
li r30, 0x00 # 17b04
|
|
srwi r31, r17, 0x02 # 17b08
|
|
|
|
dbgr_0x82c:
|
|
mr r8, r30 # 17b0c
|
|
mr r9, r31 # 17b10
|
|
bl major_0x153e0 # 17b14
|
|
mr. r30, r8 # 17b18
|
|
beq- dbgr_0x868 # 17b1c
|
|
mr r8, r8 # 17b20
|
|
bl print_hexword_spc # 17b24
|
|
addi r29, r29, 0x01 # 17b28
|
|
andi. r29, r29, 0x07 # 17b2c
|
|
bne+ dbgr_0x82c # 17b30
|
|
bl 1f # 17b34
|
|
.ascii "^n" # 17b38
|
|
.short 0 # 17b3a
|
|
.align 2 # 17b3c
|
|
1: mflr r8 # 17b3c
|
|
bl print_string # 17b40
|
|
b dbgr_0x82c # 17b44
|
|
|
|
dbgr_0x868:
|
|
cmpwi r29, 0x00 # 17b48
|
|
beq+ dbgr_prompt # 17b4c
|
|
bl 1f # 17b50
|
|
.ascii "^n" # 17b54
|
|
.short 0 # 17b56
|
|
.align 2 # 17b58
|
|
1: mflr r8 # 17b58
|
|
bl print_string # 17b5c
|
|
b dbgr_prompt # 17b60
|
|
|
|
dbgr_0x884:
|
|
bl major_0x187b0 # 17b64
|
|
bne- dbgr_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 dbgr_load_id_kind_strings # 17b98
|
|
mflr r17 # 17b9c
|
|
slwi r18, r9, 0x04 # 17ba0
|
|
add r8, r17, r18 # 17ba4
|
|
bl print_string # 17ba8
|
|
cmpwi r9, 0x00 # 17bac
|
|
beq- dbgr_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 dbgr_load_more_jumps # 17be4
|
|
mflr r17 # 17be8
|
|
slwi r18, r9, 0x02 # 17bec
|
|
lwzx r17, r17, r18 # 17bf0
|
|
bl print_memory # 17bf4
|
|
b dbgr_prompt # 17bf8
|
|
|
|
dbgr_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 dbgr_prompt # 17c20
|
|
|
|
dbgr_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 dbgr_prompt # 17c54
|
|
|
|
dbgr_0x978:
|
|
bl 1f # 17c58
|
|
.ascii "^n" # 17c5c
|
|
.short 0 # 17c5e
|
|
.align 2 # 17c60
|
|
1: mflr r8 # 17c60
|
|
bl print_string # 17c64
|
|
b dbgr_prompt # 17c68
|
|
|
|
dbgr_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
|
|
|
|
dbgr_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
|
|
|
|
dbgr_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.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 dbgr_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 dbgr_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:
|
|
dbgr
|
|
|
|
***********************************************************/
|
|
|
|
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:
|
|
dbgr
|
|
|
|
***********************************************************/
|
|
|
|
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:
|
|
dbgr
|
|
|
|
***********************************************************/
|
|
|
|
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:
|
|
dbgr
|
|
|
|
***********************************************************/
|
|
|
|
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:
|
|
dbgr
|
|
|
|
***********************************************************/
|
|
|
|
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:
|
|
dbgr
|
|
|
|
***********************************************************/
|
|
|
|
print_memory: /* < outside referer */
|
|
mflr r18 # 18544
|
|
srwi r17, r17, 0x04 # 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_dbgr # 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:
|
|
dbgr
|
|
|
|
***********************************************************/
|
|
|
|
print_memory_logical: /* < outside referer */
|
|
mflr r18 # 1860c
|
|
srwi r17, r17, 0x04 # 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_dbgr # 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:
|
|
dbgr
|
|
|
|
************************************************************
|
|
|
|
> 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:
|
|
dbgr
|
|
|
|
************************************************************
|
|
|
|
> 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:
|
|
dbgr
|
|
|
|
***********************************************************/
|
|
|
|
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, 0x04 # 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, 0x04 # 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, 0x04 # 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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
set_up_log
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
replace_old_kernel
|
|
new_world_setup
|
|
fail
|
|
|
|
***********************************************************/
|
|
|
|
set_up_log: /* < outside referer */
|
|
stmw r29, -0x0110( r1) # 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
|
|
|
|
set_up_log_0x18:
|
|
cmplw r30, r31 # 18a18
|
|
addi r29, r31, 0x04 # 18a1c
|
|
bge- set_up_log_0x2c # 18a20
|
|
stwu r29, -0x1000(r31) # 18a24
|
|
b set_up_log_0x18 # 18a28
|
|
|
|
set_up_log_0x2c:
|
|
addi r31, r30, 0x1000 # 18a2c
|
|
stw r30, -0x0004(r31) # 18a30
|
|
stw r30, -0x0404( r1) # 18a34
|
|
stw r30, -0x0400( r1) # 18a38
|
|
li r29, 0x16 # 18a3c
|
|
sth r29, -0x0360( r1) # 18a40
|
|
li r29, 0x18 # 18a44
|
|
sth r29, -0x035e( r1) # 18a48
|
|
li r29, 0x1f6 # 18a4c
|
|
sth r29, -0x035c( r1) # 18a50
|
|
li r29, 0x24c # 18a54
|
|
sth r29, -0x035a( r1) # 18a58
|
|
li r29, 0x5e # 18a5c
|
|
sth r29, -0x0358( r1) # 18a60
|
|
li r29, 0x30 # 18a64
|
|
sth r29, -0x0356( r1) # 18a68
|
|
lmw r29, -0x0110( r1) # 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, 0x02 # 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, 0x03 # 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 major_0x19b20 # 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 major_0x190a0 # 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, 0x10 # 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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x190a0
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
major_0x18e54
|
|
|
|
***********************************************************/
|
|
|
|
major_0x190a0: /* < 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
|
|
|
|
|
|
|
|
/***********************************************************
|
|
|
|
major_0x19b20
|
|
|
|
************************************************************
|
|
|
|
Xrefs:
|
|
major_0x18d5c
|
|
|
|
***********************************************************/
|
|
|
|
major_0x19b20: /* < 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
|