Home | History | Annotate | Download | only in arm_neon_asm_gcc
      1 @
      2 @ Copyright (C) 2009 The Android Open Source Project
      3 @
      4 @ Licensed under the Apache License, Version 2.0 (the "License");
      5 @ you may not use this file except in compliance with the License.
      6 @ You may obtain a copy of the License at
      7 @
      8 @      http://www.apache.org/licenses/LICENSE-2.0
      9 @
     10 @ Unless required by applicable law or agreed to in writing, software
     11 @ distributed under the License is distributed on an "AS IS" BASIS,
     12 @ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 @ See the License for the specific language governing permissions and
     14 @ limitations under the License.
     15 @
     16 
     17 #include "asm_common.S"
     18 
     19     preserve8
     20 
     21     .fpu neon
     22     .text
     23 
     24 /* Input / output registers */
     25 #define pMbLayer    r0
     26 #define size        r1
     27 #define pTmp        r2
     28 #define step        r3
     29 
     30 /* -- NEON registers -- */
     31 
     32 #define qZero   Q0.U8
     33 
     34 /*------------------------------------------------------------------------------
     35 
     36     Function: h264bsdClearMbLayer
     37 
     38         Functional description:
     39 
     40         Inputs:
     41 
     42         Outputs:
     43 
     44         Returns:
     45 
     46 ------------------------------------------------------------------------------*/
     47 
     48 function h264bsdClearMbLayer, export=1
     49 
     50     VMOV    qZero, #0
     51     ADD     pTmp, pMbLayer, #16
     52     MOV     step, #32
     53     SUBS    size, size, #64
     54 
     55 loop:
     56     VST1    {qZero}, [pMbLayer], step
     57     SUBS    size, size, #64
     58     VST1    {qZero}, [pTmp], step
     59     VST1    {qZero}, [pMbLayer], step
     60     VST1    {qZero}, [pTmp], step
     61     BCS     loop
     62 
     63     BX      lr
     64 
     65 endfunction
     66 
     67 
     68 
     69