summaryrefslogtreecommitdiffstats
path: root/arm-wt-22k/lib_src/ARM-E_voice_gain_gnu.s
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:36 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:36 -0800
commit1b52a76815aa068a3477bfdfaf58718d41d7f9b4 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /arm-wt-22k/lib_src/ARM-E_voice_gain_gnu.s
parent251d5a6afb8ebdccc8df9d438acc2761001d8bec (diff)
downloadandroid_external_sonivox-1b52a76815aa068a3477bfdfaf58718d41d7f9b4.tar.gz
android_external_sonivox-1b52a76815aa068a3477bfdfaf58718d41d7f9b4.tar.bz2
android_external_sonivox-1b52a76815aa068a3477bfdfaf58718d41d7f9b4.zip
auto import from //depot/cupcake/@135843
Diffstat (limited to 'arm-wt-22k/lib_src/ARM-E_voice_gain_gnu.s')
-rw-r--r--arm-wt-22k/lib_src/ARM-E_voice_gain_gnu.s166
1 files changed, 0 insertions, 166 deletions
diff --git a/arm-wt-22k/lib_src/ARM-E_voice_gain_gnu.s b/arm-wt-22k/lib_src/ARM-E_voice_gain_gnu.s
deleted file mode 100644
index 4517a3d..0000000
--- a/arm-wt-22k/lib_src/ARM-E_voice_gain_gnu.s
+++ /dev/null
@@ -1,166 +0,0 @@
-@***********************************************************
-@ Function: WT_VoiceGain
-@ Processor: ARM-E
-@ Description: the main synthesis function when fetching
-@ wavetable samples.
-@ C-callable.
-@
-@ Usage:
-@ Usage:
-@ WT_VoiceGain(
-@ S_WT_VOICE *pWTVoice,
-@ S_WT_FRAME *pWTFrame);
-@
-@ Copyright 2004, 2005 Sonic Network, Inc.
-@****************************************************************
-@ Revision Control:
-@ $Revision: 814 $
-@ $Date: 2007-08-02 10:34:53 -0700 (Thu, 02 Aug 2007) $
-@****************************************************************
-@
-@ where:
-@ S_WT_VOICE *psVoice
-@ PASSED IN: r0
-@
-@ S_WT_FRAME *pWTFrame
-@ PASSED IN: r1
-@****************************************************************
-
-
-
- .include "ARM_synth_constants_gnu.inc"
-
- .arm
- .text
-
- .global WT_VoiceGain
-
-@ Register usage
-@ --------------
-pWTVoice .req r0
-pWTFrame .req r1
-pInputBuffer .req r2
-pMixBuffer .req r3
-
-tmp0 .req r4
-tmp1 .req r5
-tmp2 .req r1 @ reuse register
-tmp3 .req r6
-
-numSamples .req r9
-
- .if STEREO_OUTPUT
-gainIncLeft .req r7
-gainIncRight .req r8
-gainLeft .req r10
-gainRight .req r11
- .else
-gainIncrement .req r7
-gain .req r8
- .endif
-
-
-@ register context for local variables
-@SaveRegs RLIST {r4-r11,lr}
-@RestoreRegs RLIST {r4-r11,pc}
-
- .func WT_VoiceGain
-WT_VoiceGain:
-
- STMFD sp!, {r4-r11,lr}
-
- LDR pInputBuffer, [pWTFrame, #m_pAudioBuffer]
- LDR pMixBuffer, [pWTFrame, #m_pMixBuffer]
- LDR numSamples, [pWTFrame, #m_numSamples]
-
-@----------------------------------------------------------------
-@ Stereo version
-@----------------------------------------------------------------
-@ NOTE: instructions are reordered to reduce the effect of latency
-@ due to storage and computational dependencies.
-@----------------------------------------------------------------
-
- .if STEREO_OUTPUT
-
- LDR tmp0, [pWTFrame, #m_prevGain]
- LDR tmp1, [pWTFrame, #m_gainTarget]
-
- LDRSH gainLeft, [pWTVoice, #m_gainLeft]
- LDRSH gainRight, [pWTVoice, #m_gainRight]
-
- MOV gainIncLeft, gainLeft
- SMULBB gainLeft, tmp0, gainLeft
-
- SMULBB gainIncLeft, tmp1, gainIncLeft
- SUB gainIncLeft, gainIncLeft, gainLeft
- MOV gainLeft, gainLeft, ASR #(NUM_MIXER_GUARD_BITS - 2)
- MOV gainIncLeft, gainIncLeft, ASR #(SYNTH_UPDATE_PERIOD_IN_BITS + NUM_MIXER_GUARD_BITS - 2)
-
- MOV gainIncRight, gainRight
- SMULBB gainRight, tmp0, gainRight
-
- SMULBB gainIncRight, tmp1, gainIncRight
- SUB gainIncRight, gainIncRight, gainRight
- MOV gainRight, gainRight, ASR #(NUM_MIXER_GUARD_BITS - 2)
- MOV gainIncRight, gainIncRight, ASR #(SYNTH_UPDATE_PERIOD_IN_BITS + NUM_MIXER_GUARD_BITS - 2)
-
- LDRSH tmp0, [pInputBuffer], #2
-
-StereoGainLoop:
- LDR tmp1, [pMixBuffer]
-
- ADD gainLeft, gainLeft, gainIncLeft
-
- SMLAWB tmp1, gainLeft, tmp0, tmp1
-
- LDR tmp2, [pMixBuffer, #4]
-
- ADD gainRight, gainRight, gainIncRight
-
- STR tmp1, [pMixBuffer], #4
-
- SMLAWB tmp2, gainRight, tmp0, tmp2
-
- SUBS numSamples, numSamples, #1
-
- LDRGTSH tmp0, [pInputBuffer], #2
-
- STR tmp2, [pMixBuffer], #4
-
- BGT StereoGainLoop
-
-@----------------------------------------------------------------
-@ Mono version
-@----------------------------------------------------------------
- .else
-
- LDR gain, [pWTFrame, #m_prevGain]
- MOV gain, gain, LSL #(NUM_MIXER_GUARD_BITS + 4)
- LDR gainIncrement, [pWTFrame, #m_gainTarget]
- MOV gainIncrement, gainIncrement, LSL #(NUM_MIXER_GUARD_BITS + 4)
- SUB gainIncrement, gainIncrement, gain
- MOV gainIncrement, gainIncrement, ASR #SYNTH_UPDATE_PERIOD_IN_BITS
-
-MonoGainLoop:
-
- LDRSH tmp0, [pInputBuffer], #NEXT_OUTPUT_PCM @ fetch voice output
-
- LDR tmp1, [pMixBuffer] @ get left channel output sample
- ADD gain, gain, gainIncrement @ gain step to eliminate zipper noise
- SMULWB tmp0, gain, tmp0 @ sample * local gain
-
- MOV tmp0, tmp0, ASR #1 @ add 6dB headroom
- ADD tmp1, tmp0, tmp1
- STR tmp1, [pMixBuffer], #4 @ save and bump pointer
-
- SUBS numSamples, numSamples, #1
- BGT MonoGainLoop
-
- .endif @end Mono version
-
- LDMFD sp!,{r4-r11,lr}
- BX lr
-
- .endfunc
- .end
-