@/*
@ ** Copyright 2003-2010, VisualOn, Inc.
@ **
@ ** Licensed under the Apache License, Version 2.0 (the "License");
@ ** you may not use this file except in compliance with the License.
@ ** You may obtain a copy of the License at
@ **
@ **     http://www.apache.org/licenses/LICENSE-2.0
@ **
@ ** Unless required by applicable law or agreed to in writing, software
@ ** distributed under the License is distributed on an "AS IS" BASIS,
@ ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@ ** See the License for the specific language governing permissions and
@ ** limitations under the License.
@ */
@                   
@**********************************************************************/
@void Scale_sig(
@               Word16 x[],                           /* (i/o) : signal to scale               */
@               Word16 lg,                            /* (i)   : size of x[]                   */
@               Word16 exp                            /* (i)   : exponent: x = round(x << exp) */
@)
@***********************************************************************
@  x[]   ---  r0
@  lg    ---  r1
@  exp   ---  r2

          .section  .text 
          .global   Scale_sig_opt

Scale_sig_opt:

          STMFD   	r13!, {r4 - r12, r14} 
          MOV           r4, #4
          VMOV.S32      Q15, #0x8000       
          VDUP.S32      Q14, r2  
          MOV           r5, r0                          @ copy x[] address    
          CMP           r1, #64
          MOVEQ         r4, #1
          BEQ           LOOP
	  CMP           r1, #128
	  MOVEQ         r4, #2
	  BEQ           LOOP
          CMP           r1, #256
          BEQ           LOOP
	  CMP           r1, #80
	  MOVEQ         r4, #1
	  BEQ           LOOP1

LOOP1:
          VLD1.S16      {Q0, Q1}, [r5]!                 @load 16 Word16 x[]     
          VSHLL.S16     Q10, D0, #16
          VSHLL.S16     Q11, D1, #16
          VSHLL.S16     Q12, D2, #16
          VSHLL.S16     Q13, D3, #16
          VSHL.S32      Q10, Q10, Q14
          VSHL.S32      Q11, Q11, Q14
          VSHL.S32      Q12, Q12, Q14
          VSHL.S32      Q13, Q13, Q14
          VADDHN.S32    D16, Q10, Q15
          VADDHN.S32    D17, Q11, Q15
          VADDHN.S32    D18, Q12, Q15
          VADDHN.S32    D19, Q13, Q15
          VST1.S16      {Q8, Q9}, [r0]!                 @store 16 Word16 x[]

LOOP:                
          VLD1.S16      {Q0, Q1}, [r5]!                 @load 16 Word16 x[]
          VLD1.S16      {Q2, Q3}, [r5]!                 @load 16 Word16 x[]
          VLD1.S16      {Q4, Q5}, [r5]!                 @load 16 Word16 x[]
          VLD1.S16      {Q6, Q7}, [r5]!                 @load 16 Word16 x[]

          VSHLL.S16     Q8, D0, #16
          VSHLL.S16     Q9, D1, #16
          VSHLL.S16     Q10, D2, #16
          VSHLL.S16     Q11, D3, #16     
          VSHL.S32      Q8, Q8, Q14
          VSHL.S32      Q9, Q9, Q14
          VSHL.S32      Q10, Q10, Q14
          VSHL.S32      Q11, Q11, Q14
          VADDHN.S32    D16, Q8, Q15
          VADDHN.S32    D17, Q9, Q15
          VADDHN.S32    D18, Q10, Q15
          VADDHN.S32    D19, Q11, Q15
          VST1.S16      {Q8, Q9}, [r0]!                 @store 16 Word16 x[]

   
          VSHLL.S16     Q12, D4, #16
          VSHLL.S16     Q13, D5, #16
          VSHLL.S16     Q10, D6, #16
          VSHLL.S16     Q11, D7, #16
          VSHL.S32      Q12, Q12, Q14
          VSHL.S32      Q13, Q13, Q14
          VSHL.S32      Q10, Q10, Q14
          VSHL.S32      Q11, Q11, Q14
          VADDHN.S32    D16, Q12, Q15
          VADDHN.S32    D17, Q13, Q15
          VADDHN.S32    D18, Q10, Q15
          VADDHN.S32    D19, Q11, Q15
          VST1.S16      {Q8, Q9}, [r0]!                 @store 16 Word16 x[]

          VSHLL.S16     Q10, D8, #16
          VSHLL.S16     Q11, D9, #16
          VSHLL.S16     Q12, D10, #16
          VSHLL.S16     Q13, D11, #16
          VSHL.S32      Q10, Q10, Q14
          VSHL.S32      Q11, Q11, Q14
          VSHL.S32      Q12, Q12, Q14
          VSHL.S32      Q13, Q13, Q14
          VADDHN.S32    D16, Q10, Q15
          VADDHN.S32    D17, Q11, Q15
          VADDHN.S32    D18, Q12, Q15
          VADDHN.S32    D19, Q13, Q15
          VST1.S16      {Q8, Q9}, [r0]!                 @store 16 Word16 x[]

          VSHLL.S16     Q10, D12, #16   
          VSHLL.S16     Q11, D13, #16
          VSHLL.S16     Q12, D14, #16
          VSHLL.S16     Q13, D15, #16
          VSHL.S32      Q10, Q10, Q14
          VSHL.S32      Q11, Q11, Q14
          VSHL.S32      Q12, Q12, Q14
          VSHL.S32      Q13, Q13, Q14
          VADDHN.S32    D16, Q10, Q15
          VADDHN.S32    D17, Q11, Q15
          VADDHN.S32    D18, Q12, Q15
          VADDHN.S32    D19, Q13, Q15 
          VST1.S16      {Q8, Q9}, [r0]!                 @store 16 Word16 x[]  
          SUBS          r4, r4, #1
          BGT           LOOP     
                
                          
Scale_sig_asm_end:

          LDMFD   	r13!, {r4 - r12, r15} 
          @ENDFUNC
          .END
 

