h264bsdClearMbLayer.S revision 0c1bc742181ded4930842b46e9507372f0b1b963
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
48function h264bsdClearMbLayer, export=1
49
50    VMOV    qZero, #0
51    ADD     pTmp, pMbLayer, #16
52    MOV     step, #32
53    SUBS    size, size, #64
54
55loop:
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
65endfunction
66
67
68
69