• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1@ This file was created from a .asm file
2@  using the ads2gas.pl script.
3.syntax unified
4@
5@  Copyright (c) 2016 The WebM project authors. All Rights Reserved.
6@
7@  Use of this source code is governed by a BSD-style license
8@  that can be found in the LICENSE file in the root of the source
9@  tree. An additional intellectual property rights grant can be found
10@  in the file PATENTS.  All contributing project authors may
11@  be found in the AUTHORS file in the root of the source tree.
12@
13
14    .include "./vpx_config.asm"
15
16    @ Helper functions used to load tran_low_t into int16, narrowing if
17    @ necessary.
18
19    @ \dst0..3 are d registers with the pairs assumed to be contiguous in
20    @ non-high-bitdepth builds. q0-q3 are used as temporaries in high-bitdepth.
21.macro    LOAD_TRAN_LOW_TO_S16 dst0, dst1, dst2, dst3, src
22    .if CONFIG_VP9_HIGHBITDEPTH
23    vld1.s32        {q0,q1}, [\src]!
24    vld1.s32        {q2,q3}, [\src]!
25    vmovn.i32       \dst0, q0
26    vmovn.i32       \dst1, q1
27    vmovn.i32       \dst2, q2
28    vmovn.i32       \dst3, q3
29    .else
30    vld1.s16        {\dst0-\dst1,\dst2-\dst3}, [\src]!
31    .endif
32    .endm
33
34    @ \dst0..3 are d registers. q0-q3 are used as temporaries in high-bitdepth.
35.macro    LOAD_TRAN_LOW_TO_S16X2 dst0, dst1, dst2, dst3, src
36    .if CONFIG_VP9_HIGHBITDEPTH
37    vld2.s32        {q0,q1}, [\src]!
38    vld2.s32        {q2,q3}, [\src]!
39    vmovn.i32       \dst0, q0
40    vmovn.i32       \dst1, q2
41    vmovn.i32       \dst2, q1
42    vmovn.i32       \dst3, q3
43    .else
44    vld2.s16        {\dst0,\dst1,\dst2,\dst3}, [\src]!
45    .endif
46    .endm
47    .section .note.GNU-stack,"",%progbits
48