@ @ Copyright (C) 2009 The Android Open Source Project @ @ 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. @ #include "asm_common.S" PRESERVE8 .arm .text /* Input / output registers */ #define pStrmData r0 #define numBits r1 #define readBits r2 #define strmBuffSize r3 #define pStrmBuffStart r1 #define pStrmCurrPos r2 #define bitPosInWord r1 /* Input / output registers */ /*------------------------------------------------------------------------------ Function: h264bsdFlushBits Functional description: Inputs: Outputs: Returns: ------------------------------------------------------------------------------*/ function h264bsdFlushBits, export=1 LDR readBits, [pStrmData, #0x10] LDR strmBuffSize, [pStrmData, #0xC] ADD readBits, readBits, numBits AND bitPosInWord, readBits, #7 STR readBits, [pStrmData, #0x10] STR bitPosInWord, [pStrmData, #0x8] LDR pStrmBuffStart, [pStrmData, #0x0] CMP readBits, strmBuffSize, LSL #3 BHI end_of_stream ADD pStrmCurrPos, pStrmBuffStart, readBits, LSR #3 STR pStrmCurrPos, [pStrmData, #0x4] MOV r0, #0 BX lr end_of_stream: MVN r0, #0 BX lr endfunction