aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2023-10-13 11:56:30 +0300
committerMartin Storsjö <martin@martin.st>2023-10-24 14:46:20 +0300
commita4877f1ec11e0327684eda37b15bc1ccb16f9ace (patch)
tree2f6e07e342a85fdd58e38caae64eef8853eb2e08
parent0679e853315b3cef81fe0120c37e6cc7c9ffba91 (diff)
downloadffmpeg-a4877f1ec11e0327684eda37b15bc1ccb16f9ace.tar.gz
aarch64: Only enable extensions in the intended files/regions
This eases actual development of the assembly functions, by only allowing extension instructions within the sections that explicitly enable them, instead of having all extensions enabled everywhere. Signed-off-by: Martin Storsjö <martin@martin.st>
-rw-r--r--libavcodec/aarch64/hevcdsp_epel_neon.S3
-rw-r--r--libavcodec/aarch64/hevcdsp_qpel_neon.S2
-rw-r--r--libavutil/aarch64/asm.S16
3 files changed, 18 insertions, 3 deletions
diff --git a/libavcodec/aarch64/hevcdsp_epel_neon.S b/libavcodec/aarch64/hevcdsp_epel_neon.S
index edaf39ed92..e398e6ac9d 100644
--- a/libavcodec/aarch64/hevcdsp_epel_neon.S
+++ b/libavcodec/aarch64/hevcdsp_epel_neon.S
@@ -339,6 +339,7 @@ function ff_hevc_put_hevc_epel_uni_v64_8_neon, export=1
endfunc
#if HAVE_I8MM
+ENABLE_I8MM
.macro EPEL_H_HEADER
movrel x5, epel_filters
@@ -1963,7 +1964,7 @@ function ff_hevc_put_hevc_epel_uni_w_hv64_8_neon_i8mm, export=1
ret
endfunc
-
+DISABLE_I8MM
#endif
diff --git a/libavcodec/aarch64/hevcdsp_qpel_neon.S b/libavcodec/aarch64/hevcdsp_qpel_neon.S
index f3f24ab8b0..95b96349ef 100644
--- a/libavcodec/aarch64/hevcdsp_qpel_neon.S
+++ b/libavcodec/aarch64/hevcdsp_qpel_neon.S
@@ -1558,6 +1558,7 @@ function ff_hevc_put_hevc_qpel_uni_w_v64_8_neon, export=1
endfunc
#if HAVE_I8MM
+ENABLE_I8MM
.macro calc_all2
calc v30, v31, v16, v18, v20, v22, v24, v26, v28, v30, v17, v19, v21, v23, v25, v27, v29, v31
@@ -3395,4 +3396,5 @@ function ff_hevc_put_hevc_qpel_uni_w_hv64_8_neon_i8mm, export=1
ret
endfunc
+DISABLE_I8MM
#endif // HAVE_I8MM
diff --git a/libavutil/aarch64/asm.S b/libavutil/aarch64/asm.S
index 8589cf74fc..1840f9fb01 100644
--- a/libavutil/aarch64/asm.S
+++ b/libavutil/aarch64/asm.S
@@ -41,12 +41,24 @@
#endif
#if HAVE_AS_ARCHEXT_DOTPROD_DIRECTIVE
- .arch_extension dotprod
+#define ENABLE_DOTPROD .arch_extension dotprod
+#define DISABLE_DOTPROD .arch_extension nodotprod
+#else
+#define ENABLE_DOTPROD
+#define DISABLE_DOTPROD
#endif
+
#if HAVE_AS_ARCHEXT_I8MM_DIRECTIVE
- .arch_extension i8mm
+#define ENABLE_I8MM .arch_extension i8mm
+#define DISABLE_I8MM .arch_extension noi8mm
+#else
+#define ENABLE_I8MM
+#define DISABLE_I8MM
#endif
+DISABLE_DOTPROD
+DISABLE_I8MM
+
/* Support macros for
* - Armv8.3-A Pointer Authentication and