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         .code 32
     23        .eabi_attribute 24, 1            @Tag_ABI_align_needed
     24        .eabi_attribute 25, 1            @Tag_ABI_align_preserved
     25 .text
     26 .p2align 2
     27     .global ixheaacd_shiftrountine_with_rnd
     28 ixheaacd_shiftrountine_with_rnd:
     29     STMFD           sp!, {r4-r12, r14}
     30     MOV             r4, #0x1f
     31     ADD             r12, r2, r3, LSL #1
     32     MOV             r9, #0x8000
     33     SUBS            r3, r3, #1
     34     BMI             S_WITH_R_L6
     35 
     36 S_WITH_R_L5:
     37     LDR             r5, [r1, r3, LSL #2]
     38     LDR             r7, [r0, r3, LSL #2]
     39     LDR             r14, [r0], #4
     40     LDR             r10, [r1], #4
     41 
     42     ADD             r6, r5, r7
     43     SUB             r5, r5, r7
     44     ADD             r7, r10, r14
     45     SUB             r4, r10, r14
     46 
     47 
     48 
     49 
     50 
     51 
     52 
     53 
     54 
     55 
     56 
     57     MOVS            r10, r4, ASR #0x15
     58     CMNLT           r10, #1
     59 
     60     MOVLT           r4, #0x80000000
     61     MVNGT           r4, #0x80000000
     62     MOVEQ           r4, r4, LSL #10
     63 
     64     MOVS            r10, r5, ASR #0x15
     65     QADD            r4, r4, r9
     66     CMNLT           r10, #1
     67     MOV             r4, r4, ASR #16
     68     MOVLT           r5, #0x80000000
     69     MVNGT           r5, #0x80000000
     70     MOVEQ           r5, r5, LSL #10
     71     MOV             r14, r3, lsl #1
     72 
     73 
     74     MOVS            r10, r6, ASR #0x15
     75     QADD            r5, r5, r9
     76     CMNLT           r10, #1
     77     MOV             r5, r5, ASR #16
     78     MOVLT           r6, #0x80000000
     79 
     80     STRH            r5, [r2, r14]
     81     MVNGT           r6, #0x80000000
     82     MOVEQ           r6, r6, LSL #10
     83 
     84     MOVS            r10, r7, ASR #0x15
     85     QADD            r6, r6, r9
     86     CMNLT           r10, #1
     87     MOV             r6, r6, ASR #16
     88     MOVLT           r7, #0x80000000
     89     MVNGT           r7, #0x80000000
     90     MOVEQ           r7, r7, LSL #10
     91 
     92     QADD            r7, r7, r9
     93     STRH            r4, [r2], #2
     94 
     95     MOV             r7, r7, ASR #16
     96 
     97 
     98     STRH            r7, [r12, r14]
     99     SUBS            r3, r3, #2
    100     STRH            r6, [r12], #2
    101     BGE             S_WITH_R_L5
    102 S_WITH_R_L6:
    103     LDMFD           sp!, {r4-r12, r15}
    104 
    105 
    106 
    107 
    108 
    109 
    110 
    111 
    112