This is what a procedure call looks like:
Code:
ROM:000000000908C564 e_lis r7, 0x4001 #High address bytes load, RAM?
ROM:000000000908C568 e_lis r5, 0x4001 #High address bytes load, RAM?
ROM:000000000908C56C e_lwz r22, -0x7880(r7) #Low address bytes load, RAM? 0x40008780
ROM:000000000908C570 e_lis r3, 0x911 #High address bytes load, ROM table structure
ROM:000000000908C574 e_lwz r5, -0x7A44(r5) #Low address bytes load, RAM? 0x400085BC Set 2nd function argument
ROM:000000000908C578 e_add16i r3, r3, -0x1B0 # 0x910FE50 #Low address bytes load, ROM table structure
ROM:000000000908C57C se_mfar r4, r22 #Set 1st function argument
ROM:000000000908C57E e_bl Possible_Calc_3D
This CPU could have more than 1 core, that's why different RAM addresses could be used at start and here.
Also these immediates could be converted to references. To do this, for example, go to address 0x910FE50 and define a short by pressing "D". Then go back and press "O". Code should looks now like this:
Code:
ROM:000000000908C570 e_lis r3, word_910FE50@ha
ROM:000000000908C574 e_lwz r5, -0x7A44(r5)
ROM:000000000908C578 e_add16i r3, r3, word_910FE50@l
and
Code:
ROM:000000000910FE50 word_910FE50: .short 1 # DATA XREF: sub_908C4F4+84↑o
ROM:000000000910FE52 .short 1
ROM:000000000910FE54 .long flt_9118C4C
ROM:000000000910FE58 .long flt_9118C50
ROM:000000000910FE5C .long unk_9118D0A
ROM:000000000910FE60 .long 0x8000000
ROM:000000000910FE64 .float 0.1
ROM:000000000910FE68 .float 0.0
But this must be done by hand. A script is needed.
Also this table looks strange - it is 1x1 3D table!