mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2026-01-01 03:12:16 +08:00
Apply clang format
Bug: None Change-Id: Ibd694d0351966a2b5812445de74bbced9c881a79 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6302317 Reviewed-by: James Zern <jzern@google.com> Reviewed-by: Wan-Teh Chang <wtc@google.com> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
This commit is contained in:
parent
3a7e0ba671
commit
5257ba4db0
@ -116,7 +116,7 @@ uint32_t HashDjb2_NEON(const uint8_t* src, int count, uint32_t seed) {
|
||||
uint32_t hash = seed;
|
||||
const uint32_t c16 = 0x92d9e201; // 33^16
|
||||
uint32_t tmp, tmp2;
|
||||
asm("ld1 {v16.4s, v17.4s, v18.4s, v19.4s}, [%[kIdx]] \n"
|
||||
asm("ld1 {v16.4s, v17.4s, v18.4s, v19.4s}, [%[kIdx]] \n"
|
||||
"ld1 {v4.4s, v5.4s, v6.4s, v7.4s}, [%[kMuls]] \n"
|
||||
|
||||
// count is always a multiple of 16.
|
||||
|
||||
@ -653,7 +653,6 @@ static __inline uint8_t RGBToV(uint8_t r, uint8_t g, uint8_t b) {
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#define AVGB(a, b) (((a) + (b) + 1) >> 1)
|
||||
// ARM uses uint16. TODO: Make ARM use uint8 to allow dotproduct.
|
||||
#if !defined(LIBYUV_ARGBTOUV_PAVGB)
|
||||
@ -787,7 +786,6 @@ MAKEROWY(RAW, 0, 1, 2, 3)
|
||||
// g -0.41869 * 256 = −107.18464 = -107
|
||||
// r 0.50000 * 256 = 128.0 = 128
|
||||
|
||||
|
||||
#ifdef LIBYUV_RGB7
|
||||
// Old 7 bit math for compatibility on unsupported platforms.
|
||||
static __inline uint8_t RGBToYJ(uint8_t r, uint8_t g, uint8_t b) {
|
||||
|
||||
1304
source/row_gcc.cc
1304
source/row_gcc.cc
File diff suppressed because it is too large
Load Diff
@ -263,7 +263,7 @@ void I422ToRGBARow_NEON(const uint8_t* src_y,
|
||||
"vmov.u8 d6, #255 \n"
|
||||
"1: \n" READYUV422
|
||||
"subs %[width], %[width], #8 \n" YUVTORGB RGBTORGB8
|
||||
STORERGBA "bgt 1b \n"
|
||||
STORERGBA "bgt 1b \n"
|
||||
: [src_y] "+r"(src_y), // %[src_y]
|
||||
[src_u] "+r"(src_u), // %[src_u]
|
||||
[src_v] "+r"(src_v), // %[src_v]
|
||||
@ -379,8 +379,7 @@ void I422ToARGB4444Row_NEON(const uint8_t* src_y,
|
||||
YUVTORGB_SETUP
|
||||
"vmov.u8 d6, #255 \n"
|
||||
"vmov.u8 d7, #0x0f \n" // vbic bits to clear
|
||||
"1: \n" READYUV422 YUVTORGB
|
||||
RGBTORGB8
|
||||
"1: \n" READYUV422 YUVTORGB RGBTORGB8
|
||||
"subs %[width], %[width], #8 \n" ARGBTOARGB4444
|
||||
"vst1.8 {q0}, [%[dst_argb4444]]! \n" // store 8 pixels
|
||||
"bgt 1b \n"
|
||||
@ -401,8 +400,7 @@ void I400ToARGBRow_NEON(const uint8_t* src_y,
|
||||
asm volatile(
|
||||
YUVTORGB_SETUP
|
||||
"vmov.u8 d6, #255 \n"
|
||||
"1: \n" READYUV400 YUVTORGB
|
||||
RGBTORGB8
|
||||
"1: \n" READYUV400 YUVTORGB RGBTORGB8
|
||||
"subs %[width], %[width], #8 \n"
|
||||
"vst4.8 {d0, d2, d4, d6}, [%[dst_argb]]! \n"
|
||||
"bgt 1b \n"
|
||||
|
||||
@ -289,11 +289,11 @@ void I210ToAR30Row_NEON(const uint16_t* src_y,
|
||||
uint16_t limit = 0x3ff0;
|
||||
uint16_t alpha = 0xc000;
|
||||
asm volatile(YUVTORGB_SETUP
|
||||
"dup v22.8h, %w[limit] \n"
|
||||
"dup v23.8h, %w[alpha] \n"
|
||||
"1: \n" READYUV210
|
||||
"subs %w[width], %w[width], #8 \n" NVTORGB STOREAR30
|
||||
"b.gt 1b \n"
|
||||
"dup v22.8h, %w[limit] \n"
|
||||
"dup v23.8h, %w[alpha] \n"
|
||||
"1: \n" READYUV210
|
||||
"subs %w[width], %w[width], #8 \n" NVTORGB STOREAR30
|
||||
"b.gt 1b \n"
|
||||
: [src_y] "+r"(src_y), // %[src_y]
|
||||
[src_u] "+r"(src_u), // %[src_u]
|
||||
[src_v] "+r"(src_v), // %[src_v]
|
||||
@ -317,11 +317,11 @@ void I410ToAR30Row_NEON(const uint16_t* src_y,
|
||||
uint16_t limit = 0x3ff0;
|
||||
uint16_t alpha = 0xc000;
|
||||
asm volatile(YUVTORGB_SETUP
|
||||
"dup v22.8h, %w[limit] \n"
|
||||
"dup v23.8h, %w[alpha] \n"
|
||||
"1: \n" READYUV410
|
||||
"subs %w[width], %w[width], #8 \n" NVTORGB STOREAR30
|
||||
"b.gt 1b \n"
|
||||
"dup v22.8h, %w[limit] \n"
|
||||
"dup v23.8h, %w[alpha] \n"
|
||||
"1: \n" READYUV410
|
||||
"subs %w[width], %w[width], #8 \n" NVTORGB STOREAR30
|
||||
"b.gt 1b \n"
|
||||
: [src_y] "+r"(src_y), // %[src_y]
|
||||
[src_u] "+r"(src_u), // %[src_u]
|
||||
[src_v] "+r"(src_v), // %[src_v]
|
||||
@ -344,11 +344,11 @@ void I212ToAR30Row_NEON(const uint16_t* src_y,
|
||||
const vec16* rgb_coeff = &yuvconstants->kRGBCoeffBias;
|
||||
const uint16_t limit = 0x3ff0;
|
||||
asm volatile(YUVTORGB_SETUP
|
||||
"dup v22.8h, %w[limit] \n"
|
||||
"movi v23.8h, #0xc0, lsl #8 \n" // A
|
||||
"1: \n" READYUV212
|
||||
"subs %w[width], %w[width], #8 \n" NVTORGB STOREAR30
|
||||
"b.gt 1b \n"
|
||||
"dup v22.8h, %w[limit] \n"
|
||||
"movi v23.8h, #0xc0, lsl #8 \n" // A
|
||||
"1: \n" READYUV212
|
||||
"subs %w[width], %w[width], #8 \n" NVTORGB STOREAR30
|
||||
"b.gt 1b \n"
|
||||
: [src_y] "+r"(src_y), // %[src_y]
|
||||
[src_u] "+r"(src_u), // %[src_u]
|
||||
[src_v] "+r"(src_v), // %[src_v]
|
||||
@ -521,12 +521,12 @@ void P210ToAR30Row_NEON(const uint16_t* src_y,
|
||||
const vec16* rgb_coeff = &yuvconstants->kRGBCoeffBias;
|
||||
const uint16_t limit = 0x3ff0;
|
||||
asm volatile(YUVTORGB_SETUP
|
||||
"dup v22.8h, %w[limit] \n"
|
||||
"movi v23.8h, #0xc0, lsl #8 \n" // A
|
||||
"ldr q2, [%[kIndices]] \n"
|
||||
"1: \n" READYUVP210
|
||||
"subs %w[width], %w[width], #8 \n" NVTORGB STOREAR30
|
||||
"b.gt 1b \n"
|
||||
"dup v22.8h, %w[limit] \n"
|
||||
"movi v23.8h, #0xc0, lsl #8 \n" // A
|
||||
"ldr q2, [%[kIndices]] \n"
|
||||
"1: \n" READYUVP210
|
||||
"subs %w[width], %w[width], #8 \n" NVTORGB STOREAR30
|
||||
"b.gt 1b \n"
|
||||
: [src_y] "+r"(src_y), // %[src_y]
|
||||
[src_uv] "+r"(src_uv), // %[src_uv]
|
||||
[dst_ar30] "+r"(dst_ar30), // %[dst_ar30]
|
||||
@ -547,12 +547,12 @@ void P410ToAR30Row_NEON(const uint16_t* src_y,
|
||||
const vec16* rgb_coeff = &yuvconstants->kRGBCoeffBias;
|
||||
uint16_t limit = 0x3ff0;
|
||||
asm volatile(YUVTORGB_SETUP
|
||||
"dup v22.8h, %w[limit] \n"
|
||||
"movi v23.8h, #0xc0, lsl #8 \n" // A
|
||||
"ldr q2, [%[kIndices]] \n"
|
||||
"1: \n" READYUVP410
|
||||
"subs %w[width], %w[width], #8 \n" NVTORGB STOREAR30
|
||||
"b.gt 1b \n"
|
||||
"dup v22.8h, %w[limit] \n"
|
||||
"movi v23.8h, #0xc0, lsl #8 \n" // A
|
||||
"ldr q2, [%[kIndices]] \n"
|
||||
"1: \n" READYUVP410
|
||||
"subs %w[width], %w[width], #8 \n" NVTORGB STOREAR30
|
||||
"b.gt 1b \n"
|
||||
: [src_y] "+r"(src_y), // %[src_y]
|
||||
[src_uv] "+r"(src_uv), // %[src_uv]
|
||||
[dst_ar30] "+r"(dst_ar30), // %[dst_ar30]
|
||||
@ -808,7 +808,7 @@ void I422ToARGB1555Row_NEON(const uint8_t* src_y,
|
||||
asm volatile(
|
||||
YUVTORGB_SETUP
|
||||
"movi v19.8h, #0x80, lsl #8 \n"
|
||||
"1: \n" //
|
||||
"1: \n" //
|
||||
READYUV422 "subs %w[width], %w[width], #8 \n" //
|
||||
I4XXTORGB RGBTORGB8_TOP ARGBTOARGB1555_FROM_TOP
|
||||
"st1 {v19.8h}, [%[dst_argb1555]], #16 \n" // store 8 pixels
|
||||
@ -2768,7 +2768,7 @@ static void ARGBToUV444MatrixRow_NEON_I8MM(
|
||||
uint8_t* dst_v,
|
||||
int width,
|
||||
const struct RgbUVConstants* rgbuvconstants) {
|
||||
asm("ld2r {v16.4s, v17.4s}, [%[rgbuvconstants]] \n"
|
||||
asm("ld2r {v16.4s, v17.4s}, [%[rgbuvconstants]] \n"
|
||||
"movi v29.16b, #0x80 \n" // 128.5
|
||||
"1: \n"
|
||||
"ldp q0, q1, [%[src]], #32 \n"
|
||||
|
||||
@ -1761,25 +1761,25 @@ void ScaleRowUp2_Bilinear_16_AVX2(const uint16_t* src_ptr,
|
||||
void ScaleAddRow_SSE2(const uint8_t* src_ptr,
|
||||
uint16_t* dst_ptr,
|
||||
int src_width) {
|
||||
asm volatile("pxor %%xmm5,%%xmm5 \n"
|
||||
asm volatile("pxor %%xmm5,%%xmm5 \n"
|
||||
|
||||
// 16 pixel loop.
|
||||
LABELALIGN
|
||||
"1: \n"
|
||||
"movdqu (%0),%%xmm3 \n"
|
||||
"lea 0x10(%0),%0 \n" // src_ptr += 16
|
||||
"movdqu (%1),%%xmm0 \n"
|
||||
"movdqu 0x10(%1),%%xmm1 \n"
|
||||
"movdqa %%xmm3,%%xmm2 \n"
|
||||
"punpcklbw %%xmm5,%%xmm2 \n"
|
||||
"punpckhbw %%xmm5,%%xmm3 \n"
|
||||
"paddusw %%xmm2,%%xmm0 \n"
|
||||
"paddusw %%xmm3,%%xmm1 \n"
|
||||
"movdqu %%xmm0,(%1) \n"
|
||||
"movdqu %%xmm1,0x10(%1) \n"
|
||||
"lea 0x20(%1),%1 \n"
|
||||
"sub $0x10,%2 \n"
|
||||
"jg 1b \n"
|
||||
"1: \n"
|
||||
"movdqu (%0),%%xmm3 \n"
|
||||
"lea 0x10(%0),%0 \n" // src_ptr += 16
|
||||
"movdqu (%1),%%xmm0 \n"
|
||||
"movdqu 0x10(%1),%%xmm1 \n"
|
||||
"movdqa %%xmm3,%%xmm2 \n"
|
||||
"punpcklbw %%xmm5,%%xmm2 \n"
|
||||
"punpckhbw %%xmm5,%%xmm3 \n"
|
||||
"paddusw %%xmm2,%%xmm0 \n"
|
||||
"paddusw %%xmm3,%%xmm1 \n"
|
||||
"movdqu %%xmm0,(%1) \n"
|
||||
"movdqu %%xmm1,0x10(%1) \n"
|
||||
"lea 0x20(%1),%1 \n"
|
||||
"sub $0x10,%2 \n"
|
||||
"jg 1b \n"
|
||||
: "+r"(src_ptr), // %0
|
||||
"+r"(dst_ptr), // %1
|
||||
"+r"(src_width) // %2
|
||||
@ -1792,23 +1792,23 @@ void ScaleAddRow_SSE2(const uint8_t* src_ptr,
|
||||
void ScaleAddRow_AVX2(const uint8_t* src_ptr,
|
||||
uint16_t* dst_ptr,
|
||||
int src_width) {
|
||||
asm volatile("vpxor %%ymm5,%%ymm5,%%ymm5 \n"
|
||||
asm volatile("vpxor %%ymm5,%%ymm5,%%ymm5 \n"
|
||||
|
||||
LABELALIGN
|
||||
"1: \n"
|
||||
"vmovdqu (%0),%%ymm3 \n"
|
||||
"lea 0x20(%0),%0 \n" // src_ptr += 32
|
||||
"vpermq $0xd8,%%ymm3,%%ymm3 \n"
|
||||
"vpunpcklbw %%ymm5,%%ymm3,%%ymm2 \n"
|
||||
"vpunpckhbw %%ymm5,%%ymm3,%%ymm3 \n"
|
||||
"vpaddusw (%1),%%ymm2,%%ymm0 \n"
|
||||
"vpaddusw 0x20(%1),%%ymm3,%%ymm1 \n"
|
||||
"vmovdqu %%ymm0,(%1) \n"
|
||||
"vmovdqu %%ymm1,0x20(%1) \n"
|
||||
"lea 0x40(%1),%1 \n"
|
||||
"sub $0x20,%2 \n"
|
||||
"jg 1b \n"
|
||||
"vzeroupper \n"
|
||||
"1: \n"
|
||||
"vmovdqu (%0),%%ymm3 \n"
|
||||
"lea 0x20(%0),%0 \n" // src_ptr += 32
|
||||
"vpermq $0xd8,%%ymm3,%%ymm3 \n"
|
||||
"vpunpcklbw %%ymm5,%%ymm3,%%ymm2 \n"
|
||||
"vpunpckhbw %%ymm5,%%ymm3,%%ymm3 \n"
|
||||
"vpaddusw (%1),%%ymm2,%%ymm0 \n"
|
||||
"vpaddusw 0x20(%1),%%ymm3,%%ymm1 \n"
|
||||
"vmovdqu %%ymm0,(%1) \n"
|
||||
"vmovdqu %%ymm1,0x20(%1) \n"
|
||||
"lea 0x40(%1),%1 \n"
|
||||
"sub $0x20,%2 \n"
|
||||
"jg 1b \n"
|
||||
"vzeroupper \n"
|
||||
: "+r"(src_ptr), // %0
|
||||
"+r"(dst_ptr), // %1
|
||||
"+r"(src_width) // %2
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user