h264bsdClearMbLayer.S revision 7ea582e1dbdd9a88b2105fbe29ed0ec92cbf70c6
10c1bc742181ded4930842b46e9507372f0b1b963James Dong@ 20c1bc742181ded4930842b46e9507372f0b1b963James Dong@ Copyright (C) 2009 The Android Open Source Project 30c1bc742181ded4930842b46e9507372f0b1b963James Dong@ 40c1bc742181ded4930842b46e9507372f0b1b963James Dong@ Licensed under the Apache License, Version 2.0 (the "License"); 50c1bc742181ded4930842b46e9507372f0b1b963James Dong@ you may not use this file except in compliance with the License. 60c1bc742181ded4930842b46e9507372f0b1b963James Dong@ You may obtain a copy of the License at 70c1bc742181ded4930842b46e9507372f0b1b963James Dong@ 80c1bc742181ded4930842b46e9507372f0b1b963James Dong@ http://www.apache.org/licenses/LICENSE-2.0 90c1bc742181ded4930842b46e9507372f0b1b963James Dong@ 100c1bc742181ded4930842b46e9507372f0b1b963James Dong@ Unless required by applicable law or agreed to in writing, software 110c1bc742181ded4930842b46e9507372f0b1b963James Dong@ distributed under the License is distributed on an "AS IS" BASIS, 120c1bc742181ded4930842b46e9507372f0b1b963James Dong@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130c1bc742181ded4930842b46e9507372f0b1b963James Dong@ See the License for the specific language governing permissions and 140c1bc742181ded4930842b46e9507372f0b1b963James Dong@ limitations under the License. 150c1bc742181ded4930842b46e9507372f0b1b963James Dong@ 160c1bc742181ded4930842b46e9507372f0b1b963James Dong 170c1bc742181ded4930842b46e9507372f0b1b963James Dong#include "asm_common.S" 180c1bc742181ded4930842b46e9507372f0b1b963James Dong 197ea582e1dbdd9a88b2105fbe29ed0ec92cbf70c6Chih-Hung Hsieh PRESERVE8 200c1bc742181ded4930842b46e9507372f0b1b963James Dong 210c1bc742181ded4930842b46e9507372f0b1b963James Dong .fpu neon 220c1bc742181ded4930842b46e9507372f0b1b963James Dong .text 230c1bc742181ded4930842b46e9507372f0b1b963James Dong 240c1bc742181ded4930842b46e9507372f0b1b963James Dong/* Input / output registers */ 250c1bc742181ded4930842b46e9507372f0b1b963James Dong#define pMbLayer r0 260c1bc742181ded4930842b46e9507372f0b1b963James Dong#define size r1 270c1bc742181ded4930842b46e9507372f0b1b963James Dong#define pTmp r2 280c1bc742181ded4930842b46e9507372f0b1b963James Dong#define step r3 290c1bc742181ded4930842b46e9507372f0b1b963James Dong 300c1bc742181ded4930842b46e9507372f0b1b963James Dong/* -- NEON registers -- */ 310c1bc742181ded4930842b46e9507372f0b1b963James Dong 327ea582e1dbdd9a88b2105fbe29ed0ec92cbf70c6Chih-Hung Hsieh#define qZero Q0 330c1bc742181ded4930842b46e9507372f0b1b963James Dong 340c1bc742181ded4930842b46e9507372f0b1b963James Dong/*------------------------------------------------------------------------------ 350c1bc742181ded4930842b46e9507372f0b1b963James Dong 360c1bc742181ded4930842b46e9507372f0b1b963James Dong Function: h264bsdClearMbLayer 370c1bc742181ded4930842b46e9507372f0b1b963James Dong 380c1bc742181ded4930842b46e9507372f0b1b963James Dong Functional description: 390c1bc742181ded4930842b46e9507372f0b1b963James Dong 400c1bc742181ded4930842b46e9507372f0b1b963James Dong Inputs: 410c1bc742181ded4930842b46e9507372f0b1b963James Dong 420c1bc742181ded4930842b46e9507372f0b1b963James Dong Outputs: 430c1bc742181ded4930842b46e9507372f0b1b963James Dong 440c1bc742181ded4930842b46e9507372f0b1b963James Dong Returns: 450c1bc742181ded4930842b46e9507372f0b1b963James Dong 460c1bc742181ded4930842b46e9507372f0b1b963James Dong------------------------------------------------------------------------------*/ 470c1bc742181ded4930842b46e9507372f0b1b963James Dong 480c1bc742181ded4930842b46e9507372f0b1b963James Dongfunction h264bsdClearMbLayer, export=1 490c1bc742181ded4930842b46e9507372f0b1b963James Dong 507ea582e1dbdd9a88b2105fbe29ed0ec92cbf70c6Chih-Hung Hsieh VMOV.I8 qZero, #0 510c1bc742181ded4930842b46e9507372f0b1b963James Dong ADD pTmp, pMbLayer, #16 520c1bc742181ded4930842b46e9507372f0b1b963James Dong MOV step, #32 530c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS size, size, #64 540c1bc742181ded4930842b46e9507372f0b1b963James Dong 550c1bc742181ded4930842b46e9507372f0b1b963James Dongloop: 567ea582e1dbdd9a88b2105fbe29ed0ec92cbf70c6Chih-Hung Hsieh VST1.8 {qZero}, [pMbLayer], step 570c1bc742181ded4930842b46e9507372f0b1b963James Dong SUBS size, size, #64 587ea582e1dbdd9a88b2105fbe29ed0ec92cbf70c6Chih-Hung Hsieh VST1.8 {qZero}, [pTmp], step 597ea582e1dbdd9a88b2105fbe29ed0ec92cbf70c6Chih-Hung Hsieh VST1.8 {qZero}, [pMbLayer], step 607ea582e1dbdd9a88b2105fbe29ed0ec92cbf70c6Chih-Hung Hsieh VST1.8 {qZero}, [pTmp], step 610c1bc742181ded4930842b46e9507372f0b1b963James Dong BCS loop 620c1bc742181ded4930842b46e9507372f0b1b963James Dong 630c1bc742181ded4930842b46e9507372f0b1b963James Dong BX lr 640c1bc742181ded4930842b46e9507372f0b1b963James Dong 650c1bc742181ded4930842b46e9507372f0b1b963James Dongendfunction 660c1bc742181ded4930842b46e9507372f0b1b963James Dong 670c1bc742181ded4930842b46e9507372f0b1b963James Dong 680c1bc742181ded4930842b46e9507372f0b1b963James Dong 69