summaryrefslogtreecommitdiff
path: root/libswscale/aarch64/yuv2rgb_neon.S
diff options
context:
space:
mode:
Diffstat (limited to 'libswscale/aarch64/yuv2rgb_neon.S')
-rw-r--r--libswscale/aarch64/yuv2rgb_neon.S18
1 files changed, 12 insertions, 6 deletions
diff --git a/libswscale/aarch64/yuv2rgb_neon.S b/libswscale/aarch64/yuv2rgb_neon.S
index 8cefe2291b..b7446aa105 100644
--- a/libswscale/aarch64/yuv2rgb_neon.S
+++ b/libswscale/aarch64/yuv2rgb_neon.S
@@ -21,10 +21,18 @@
#include "libavutil/aarch64/asm.S"
+.macro load_yoff_ycoeff yoff ycoeff
+#if defined(__APPLE__)
+ ldp w9, w10, [sp, #\yoff]
+#else
+ ldr w9, [sp, #\yoff]
+ ldr w10, [sp, #\ycoeff]
+#endif
+.endm
+
.macro load_args_nv12
ldr x8, [sp] // table
- ldr w9, [sp, #8] // y_offset
- ldr w10, [sp, #16] // y_coeff
+ load_yoff_ycoeff 8, 16 // y_offset, y_coeff
ld1 {v1.1D}, [x8]
dup v0.8H, w10
dup v3.8H, w9
@@ -42,8 +50,7 @@
ldr x13, [sp] // srcV
ldr w14, [sp, #8] // linesizeV
ldr x8, [sp, #16] // table
- ldr w9, [sp, #24] // y_offset
- ldr w10, [sp, #32] // y_coeff
+ load_yoff_ycoeff 24, 32 // y_offset, y_coeff
ld1 {v1.1D}, [x8]
dup v0.8H, w10
dup v3.8H, w9
@@ -59,8 +66,7 @@
ldr x13, [sp] // srcV
ldr w14, [sp, #8] // linesizeV
ldr x8, [sp, #16] // table
- ldr w9, [sp, #24] // y_offset
- ldr w10, [sp, #32] // y_coeff
+ load_yoff_ycoeff 24, 32 // y_offset, y_coeff
ld1 {v1.1D}, [x8]
dup v0.8H, w10
dup v3.8H, w9