diff options
Diffstat (limited to 'plugins/dfsound/arm_utils.S')
-rw-r--r-- | plugins/dfsound/arm_utils.S | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/plugins/dfsound/arm_utils.S b/plugins/dfsound/arm_utils.S index 1726389..2511bb3 100644 --- a/plugins/dfsound/arm_utils.S +++ b/plugins/dfsound/arm_utils.S @@ -39,9 +39,10 @@ ptr_SSumLR: .word ESYM(SSumLR) 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: @@ -72,10 +73,11 @@ mc_finish: 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 ldr r3, [sp] @ rvb - load_varadr r2, SSumLR + ldr r2, [r2] add r0, r12, lsl #2 add r2, r12, lsl #3 add r3, r12, lsl #3 @@ -116,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: @@ -145,8 +148,9 @@ 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 - ldr r3, [sp] @ rvb load_varadr r2, SSumLR + ldr r3, [sp] @ rvb + ldr r2, [r2] load_varadr r4, ChanBuf add r2, r2, r0, lsl #3 add r3, r3, r0, lsl #3 |