Home | History | Annotate | Download | only in armv7
      1 @/******************************************************************************
      2 @ *
      3 @ * Copyright (C) 2018 The Android Open Source Project
      4 @ *
      5 @ * Licensed under the Apache License, Version 2.0 (the "License");
      6 @ * you may not use this file except in compliance with the License.
      7 @ * You may obtain a copy of the License at:
      8 @ *
      9 @ * http://www.apache.org/licenses/LICENSE-2.0
     10 @ *
     11 @ * Unless required by applicable law or agreed to in writing, software
     12 @ * distributed under the License is distributed on an "AS IS" BASIS,
     13 @ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 @ * See the License for the specific language governing permissions and
     15 @ * limitations under the License.
     16 @ *
     17 @ *****************************************************************************
     18 @ * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
     19 @*/
     20 
     21 
     22 .text
     23 .p2align 2
     24         .global ixheaacd_mps_synt_pre_twiddle_armv7
     25 
     26 
     27 ixheaacd_mps_synt_pre_twiddle_armv7:
     28 
     29     STMFD           sp!, {r4-r12, r14}
     30     VPUSH           {D8-D15}
     31     lsl             R3, R3, #1
     32 LOOP1:
     33     VLD1.32         {D0}, [R2]!
     34     VLD1.32         {D1}, [R1]!
     35     VLD2.32         {D2, D3}, [R0]
     36     VNEG.S32        D12, D2
     37 
     38     VMULL.S32       Q2, D0, D12
     39     VMULL.S32       Q3, D0, D3
     40     VMULL.S32       Q4, D1, D2
     41     VMULL.S32       Q5, D1, D3
     42 
     43     VSHRN.I64       D4, Q2, #31
     44     VSHRN.I64       D6, Q3, #31
     45     VSHRN.I64       D8, Q4, #31
     46     VSHRN.I64       D10, Q5, #31
     47 
     48     VQADD.S32       D0, D8, D6
     49     VQADD.S32       D1, D4, D10
     50 
     51     SUBS            R3, R3, #4
     52     VST2.32         {D0, D1} , [R0]!
     53     BGT             LOOP1
     54 
     55     VPOP            {D8-D15}
     56     LDMFD           sp!, {r4-r12, r15}
     57 
     58 
     59 
     60 
     61