X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=plugins%2Fdfsound%2Farm_utils.S;h=2511bb3dde83e44859c4bd0ceb5b99c9d94d2803;hp=cbcc7f756f64c54e5724540c815434344b8510d8;hb=de4a0279efefdd2e4595c8fc27f1564f4bff9341;hpb=4ae83961a97c97cf6bf7e775cc08337b292b9853 diff --git a/plugins/dfsound/arm_utils.S b/plugins/dfsound/arm_utils.S index cbcc7f75..2511bb3d 100644 --- a/plugins/dfsound/arm_utils.S +++ b/plugins/dfsound/arm_utils.S @@ -13,9 +13,8 @@ #ifdef __MACH__ .data .align 2 -ptr_ChanBuf: .word _ChanBuf -ptr_SSumLR: .word _SSumLR -ptr_sRVBStart: .word _sRVBStart +ptr_ChanBuf: .word ESYM(ChanBuf) +ptr_SSumLR: .word ESYM(SSumLR) #endif .text @@ -26,8 +25,8 @@ ptr_sRVBStart: .word _sRVBStart movw \reg, #:lower16:ESYM(\var) movt \reg, #:upper16:ESYM(\var) #elif defined(__ARM_ARCH_7A__) && defined(__MACH__) - movw \reg, #:lower16:(ptr_\var-(1678f+4)) - movt \reg, #:upper16:(ptr_\var-(1678f+4)) + movw \reg, #:lower16:(ptr_\var-(1678f+8)) + movt \reg, #:upper16:(ptr_\var-(1678f+8)) 1678: ldr \reg, [pc, \reg] #else @@ -40,9 +39,10 @@ ptr_sRVBStart: .word _sRVBStart FUNCTION(mix_chan): @ (int start, int count, int lv, int rv) vmov.32 d14[0], r2 vmov.32 d14[1], r3 @ multipliers + load_varadr r2, SSumLR mov r12, r0 load_varadr r0, ChanBuf - load_varadr r2, SSumLR + ldr r2, [r2] add r0, r12, lsl #2 add r2, r12, lsl #3 0: @@ -70,14 +70,14 @@ mc_finish: bx lr -FUNCTION(mix_chan_rvb): @ (int start, int count, int lv, int rv) +FUNCTION(mix_chan_rvb): @ (int start, int count, int lv, int rv, int *rvb) vmov.32 d14[0], r2 vmov.32 d14[1], r3 @ multipliers + load_varadr r2, SSumLR mov r12, r0 load_varadr r0, ChanBuf - load_varadr r3, sRVBStart - load_varadr r2, SSumLR - ldr r3, [r3] + ldr r3, [sp] @ rvb + ldr r2, [r2] add r0, r12, lsl #2 add r2, r12, lsl #3 add r3, r12, lsl #3 @@ -118,9 +118,10 @@ FUNCTION(mix_chan): @ (int start, int count, int lv, int rv) stmfd sp!, {r4-r8,lr} orr r3, r2, r3, lsl #16 lsl r3, #1 @ packed multipliers << 1 + load_varadr r2, SSumLR mov r12, r0 load_varadr r0, ChanBuf - load_varadr r2, SSumLR + ldr r2, [r2] add r0, r12, lsl #2 add r2, r12, lsl #3 0: @@ -143,14 +144,14 @@ mc_finish: ldmfd sp!, {r4-r8,pc} -FUNCTION(mix_chan_rvb): @ (int start, int count, int lv, int rv) +FUNCTION(mix_chan_rvb): @ (int start, int count, int lv, int rv, int *rvb) stmfd sp!, {r4-r8,lr} orr lr, r2, r3, lsl #16 lsl lr, #1 - load_varadr r3, sRVBStart load_varadr r2, SSumLR + ldr r3, [sp] @ rvb + ldr r2, [r2] load_varadr r4, ChanBuf - ldr r3, [r3] add r2, r2, r0, lsl #3 add r3, r3, r0, lsl #3 add r0, r4, r0, lsl #2