8befcd0089
BUG=webm:1294 Change-Id: Ibad079f25e673d4f5181961896a8a8333a51e825
47 lines
1.5 KiB
NASM
47 lines
1.5 KiB
NASM
;
|
|
; Copyright (c) 2016 The WebM project authors. All Rights Reserved.
|
|
;
|
|
; Use of this source code is governed by a BSD-style license
|
|
; that can be found in the LICENSE file in the root of the source
|
|
; tree. An additional intellectual property rights grant can be found
|
|
; in the file PATENTS. All contributing project authors may
|
|
; be found in the AUTHORS file in the root of the source tree.
|
|
;
|
|
|
|
INCLUDE ./vpx_config.asm
|
|
|
|
; Helper functions used to load tran_low_t into int16, narrowing if
|
|
; necessary.
|
|
|
|
; $dst0..3 are d registers with the pairs assumed to be contiguous in
|
|
; non-high-bitdepth builds. q0-q3 are used as temporaries in high-bitdepth.
|
|
MACRO
|
|
LOAD_TRAN_LOW_TO_S16 $dst0, $dst1, $dst2, $dst3, $src
|
|
IF CONFIG_VP9_HIGHBITDEPTH
|
|
vld1.s32 {q0,q1}, [$src]!
|
|
vld1.s32 {q2,q3}, [$src]!
|
|
vmovn.i32 $dst0, q0
|
|
vmovn.i32 $dst1, q1
|
|
vmovn.i32 $dst2, q2
|
|
vmovn.i32 $dst3, q3
|
|
ELSE
|
|
vld1.s16 {$dst0-$dst1,$dst2-$dst3}, [$src]!
|
|
ENDIF
|
|
MEND
|
|
|
|
; $dst0..3 are d registers. q0-q3 are used as temporaries in high-bitdepth.
|
|
MACRO
|
|
LOAD_TRAN_LOW_TO_S16X2 $dst0, $dst1, $dst2, $dst3, $src
|
|
IF CONFIG_VP9_HIGHBITDEPTH
|
|
vld2.s32 {q0,q1}, [$src]!
|
|
vld2.s32 {q2,q3}, [$src]!
|
|
vmovn.i32 $dst0, q0
|
|
vmovn.i32 $dst1, q2
|
|
vmovn.i32 $dst2, q1
|
|
vmovn.i32 $dst3, q3
|
|
ELSE
|
|
vld2.s16 {$dst0,$dst1,$dst2,$dst3}, [$src]!
|
|
ENDIF
|
|
MEND
|
|
END
|