Files
psopeeps-newserv/system/client-functions/System/CallNativeFunctionGC.ppc.s
Martin Michelsen 7cbd9402d0
Docker / Build (push) Has been cancelled
fix CallNativeFunctionGC
2025-05-31 15:15:03 -07:00

53 lines
850 B
ArmAsm

# This function implements the $nativecall chat command on GameCube clients.
entry_ptr:
reloc0:
.offsetof start
start:
mflr r0
stw [r1 + 4], r0
stwu [r1 - 0x20], r1
bl resume
call_addr:
.zero
arg0:
.zero
arg1:
.zero
arg2:
.zero
arg3:
.zero
arg4:
.zero
arg5:
.zero
arg6:
.zero
arg7:
.zero
arg8:
.zero
arg9:
.zero
resume:
mflr r12
lwz r0, [r12] # call_addr
lwz r3, [r12 + 0x04] # arg0
lwz r4, [r12 + 0x08] # arg1
lwz r5, [r12 + 0x0C] # arg2
lwz r6, [r12 + 0x10] # arg3
lwz r7, [r12 + 0x14] # arg4
lwz r8, [r12 + 0x18] # arg5
lwz r9, [r12 + 0x1C] # arg6
lwz r10, [r12 + 0x20] # arg7
lwz r11, [r12 + 0x24] # arg8
lwz r12, [r12 + 0x28] # arg9
mtctr r0
bctrl
addi r1, r1, 0x20
lwz r0, [r1 + 4]
mtlr r0
blr