From 2bb3ae82dade33739cc1e71c403bd3bb2dd41243 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
Date: Sun, 30 Jan 2022 18:40:55 +0200
Subject: [PATCH] arm: move ARMv7 NEON stuff into isa/arm/neon

Down the line, we probably should not have one directory per ISA
extension. This replicates the model from the hw/*/ directory.

isa/ seems better than arch/ because:
 - "Instruction Set Architecture" is more specific than "Architecture",
 - it saves one character,
 - no modules/ subdirectory starts with I yet (so this will not break
   auto-completion habits).

This also moves non-NEON-specific files to isa/arm/.
---
 modules/Makefile.am                           |  2 +-
 modules/audio_filter/Makefile.am              |  2 +-
 modules/{arm_neon => isa/arm}/Makefile.am     | 24 +++++++++----------
 modules/{arm_neon => isa/arm}/asm.S           |  0
 modules/{arm_neon => isa/arm/neon}/amplify.S  |  2 +-
 .../{arm_neon => isa/arm/neon}/chroma_neon.h  |  0
 .../{arm_neon => isa/arm/neon}/chroma_yuv.c   |  2 +-
 .../arm/neon}/deinterleave_chroma.S           |  2 +-
 modules/{arm_neon => isa/arm/neon}/i420_rgb.S |  2 +-
 .../{arm_neon => isa/arm/neon}/i420_rv16.S    |  2 +-
 .../{arm_neon => isa/arm/neon}/i420_yuyv.S    |  2 +-
 .../{arm_neon => isa/arm/neon}/i422_yuyv.S    |  2 +-
 modules/{arm_neon => isa/arm/neon}/nv12_rgb.S |  2 +-
 modules/{arm_neon => isa/arm/neon}/nv21_rgb.S |  2 +-
 .../arm/neon}/simple_channel_mixer.S          |  2 +-
 modules/{arm_neon => isa/arm/neon}/volume.c   |  0
 modules/{arm_neon => isa/arm/neon}/yuv_rgb.c  |  2 +-
 .../{arm_neon => isa/arm/neon}/yuyv_i422.S    |  2 +-
 modules/video_filter/deinterlace/merge_arm.S  |  2 +-
 .../video_filter/deinterlace/merge_arm64.S    |  2 +-
 modules/video_filter/deinterlace/merge_sve.S  |  2 +-
 po/POTFILES.in                                |  6 ++---
 22 files changed, 32 insertions(+), 32 deletions(-)
 rename modules/{arm_neon => isa/arm}/Makefile.am (59%)
 rename modules/{arm_neon => isa/arm}/asm.S (100%)
 rename modules/{arm_neon => isa/arm/neon}/amplify.S (99%)
 rename modules/{arm_neon => isa/arm/neon}/chroma_neon.h (100%)
 rename modules/{arm_neon => isa/arm/neon}/chroma_yuv.c (99%)
 rename modules/{arm_neon => isa/arm/neon}/deinterleave_chroma.S (98%)
 rename modules/{arm_neon => isa/arm/neon}/i420_rgb.S (99%)
 rename modules/{arm_neon => isa/arm/neon}/i420_rv16.S (99%)
 rename modules/{arm_neon => isa/arm/neon}/i420_yuyv.S (99%)
 rename modules/{arm_neon => isa/arm/neon}/i422_yuyv.S (99%)
 rename modules/{arm_neon => isa/arm/neon}/nv12_rgb.S (99%)
 rename modules/{arm_neon => isa/arm/neon}/nv21_rgb.S (99%)
 rename modules/{arm_neon => isa/arm/neon}/simple_channel_mixer.S (99%)
 rename modules/{arm_neon => isa/arm/neon}/volume.c (100%)
 rename modules/{arm_neon => isa/arm/neon}/yuv_rgb.c (99%)
 rename modules/{arm_neon => isa/arm/neon}/yuyv_i422.S (99%)

diff --git a/modules/Makefile.am b/modules/Makefile.am
index af423c8f155e..8d76d7ff5f84 100644
--- a/modules/Makefile.am
+++ b/modules/Makefile.am
@@ -18,7 +18,6 @@ include access/Makefile.am
 include access/http/Makefile.am
 include access/rtp/Makefile.am
 include access/rtp/test/Makefile.am
-include arm_neon/Makefile.am
 include audio_filter/Makefile.am
 include audio_mixer/Makefile.am
 include audio_output/Makefile.am
@@ -32,6 +31,7 @@ include hw/d3d11/Makefile.am
 include hw/vaapi/Makefile.am
 include hw/vdpau/Makefile.am
 include hw/mmal/Makefile.am
+include isa/arm/Makefile.am
 include keystore/Makefile.am
 include logger/Makefile.am
 include lua/Makefile.am
diff --git a/modules/audio_filter/Makefile.am b/modules/audio_filter/Makefile.am
index caae1e51b14f..f9ed38fefdf8 100644
--- a/modules/audio_filter/Makefile.am
+++ b/modules/audio_filter/Makefile.am
@@ -72,7 +72,7 @@ libsimple_channel_mixer_plugin_la_LIBADD =
 
 if HAVE_NEON
 EXTRA_LTLIBRARIES += libsimple_channel_mixer_plugin_arm_neon.la
-libsimple_channel_mixer_plugin_arm_neon_la_SOURCES = arm_neon/simple_channel_mixer.S
+libsimple_channel_mixer_plugin_arm_neon_la_SOURCES = isa/arm/neon/simple_channel_mixer.S
 # Intentionally leaving out AM_LDFLAGS from this one; it's not meant to be
 # built like a plugin.
 libsimple_channel_mixer_plugin_arm_neon_la_LDFLAGS = -static
diff --git a/modules/arm_neon/Makefile.am b/modules/isa/arm/Makefile.am
similarity index 59%
rename from modules/arm_neon/Makefile.am
rename to modules/isa/arm/Makefile.am
index 10f5c15d7c16..9940d7fb6877 100644
--- a/modules/arm_neon/Makefile.am
+++ b/modules/isa/arm/Makefile.am
@@ -1,24 +1,24 @@
 neondir = $(pluginsdir)/arm_neon
 
 libchroma_yuv_neon_plugin_la_SOURCES = \
-	arm_neon/deinterleave_chroma.S \
-	arm_neon/i420_yuyv.S \
-	arm_neon/i422_yuyv.S \
-	arm_neon/yuyv_i422.S \
-	arm_neon/chroma_yuv.c arm_neon/chroma_neon.h
+	isa/arm/neon/deinterleave_chroma.S \
+	isa/arm/neon/i420_yuyv.S \
+	isa/arm/neon/i422_yuyv.S \
+	isa/arm/neon/yuyv_i422.S \
+	isa/arm/neon/chroma_yuv.c isa/arm/neon/chroma_neon.h
 libchroma_yuv_neon_plugin_la_CFLAGS = $(AM_CFLAGS)
 libchroma_yuv_neon_plugin_LIBTOOLFLAGS = --tag=CC
 
-libvolume_neon_plugin_la_SOURCES = arm_neon/volume.c arm_neon/amplify.S
+libvolume_neon_plugin_la_SOURCES = isa/arm/neon/volume.c isa/arm/neon/amplify.S
 libvolume_neon_plugin_la_CFLAGS = $(AM_CFLAGS)
 libvolume_neon_plugin_LIBTOOLFLAGS = --tag=CC
 
 libyuv_rgb_neon_plugin_la_SOURCES = \
-	arm_neon/i420_rgb.S \
-	arm_neon/i420_rv16.S \
-	arm_neon/nv21_rgb.S \
-	arm_neon/nv12_rgb.S \
-	arm_neon/yuv_rgb.c
+	isa/arm/neon/i420_rgb.S \
+	isa/arm/neon/i420_rv16.S \
+	isa/arm/neon/nv21_rgb.S \
+	isa/arm/neon/nv12_rgb.S \
+	isa/arm/neon/yuv_rgb.c
 libyuv_rgb_neon_plugin_la_CFLAGS = $(AM_CFLAGS)
 libyuv_rgb_neon_plugin_LIBTOOLFLAGS = --tag=CC
 
@@ -29,4 +29,4 @@ neon_LTLIBRARIES = \
 	libyuv_rgb_neon_plugin.la
 endif
 
-EXTRA_DIST += arm_neon/asm.S
+noinst_HEADERS += isa/arm/asm.S
diff --git a/modules/arm_neon/asm.S b/modules/isa/arm/asm.S
similarity index 100%
rename from modules/arm_neon/asm.S
rename to modules/isa/arm/asm.S
diff --git a/modules/arm_neon/amplify.S b/modules/isa/arm/neon/amplify.S
similarity index 99%
rename from modules/arm_neon/amplify.S
rename to modules/isa/arm/neon/amplify.S
index 59c945445b76..bb2671ea60a0 100644
--- a/modules/arm_neon/amplify.S
+++ b/modules/isa/arm/neon/amplify.S
@@ -18,7 +18,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 	.syntax	unified
 #if HAVE_AS_FPU_DIRECTIVE
diff --git a/modules/arm_neon/chroma_neon.h b/modules/isa/arm/neon/chroma_neon.h
similarity index 100%
rename from modules/arm_neon/chroma_neon.h
rename to modules/isa/arm/neon/chroma_neon.h
diff --git a/modules/arm_neon/chroma_yuv.c b/modules/isa/arm/neon/chroma_yuv.c
similarity index 99%
rename from modules/arm_neon/chroma_yuv.c
rename to modules/isa/arm/neon/chroma_yuv.c
index bf72154a76b3..d693a7fabe1e 100644
--- a/modules/arm_neon/chroma_yuv.c
+++ b/modules/isa/arm/neon/chroma_yuv.c
@@ -27,7 +27,7 @@
 #include <vlc_filter.h>
 #include <vlc_picture.h>
 #include <vlc_cpu.h>
-#include "arm_neon/chroma_neon.h"
+#include "chroma_neon.h"
 
 static int Open (filter_t *);
 
diff --git a/modules/arm_neon/deinterleave_chroma.S b/modules/isa/arm/neon/deinterleave_chroma.S
similarity index 98%
rename from modules/arm_neon/deinterleave_chroma.S
rename to modules/isa/arm/neon/deinterleave_chroma.S
index 7c0723e2f6c1..ba45e4cf9503 100644
--- a/modules/arm_neon/deinterleave_chroma.S
+++ b/modules/isa/arm/neon/deinterleave_chroma.S
@@ -19,7 +19,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 	.syntax unified
 #if HAVE_AS_FPU_DIRECTIVE
diff --git a/modules/arm_neon/i420_rgb.S b/modules/isa/arm/neon/i420_rgb.S
similarity index 99%
rename from modules/arm_neon/i420_rgb.S
rename to modules/isa/arm/neon/i420_rgb.S
index 6624c4e6046c..8db0e2c6b383 100644
--- a/modules/arm_neon/i420_rgb.S
+++ b/modules/isa/arm/neon/i420_rgb.S
@@ -19,7 +19,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 	.syntax unified
 #if HAVE_AS_FPU_DIRECTIVE
diff --git a/modules/arm_neon/i420_rv16.S b/modules/isa/arm/neon/i420_rv16.S
similarity index 99%
rename from modules/arm_neon/i420_rv16.S
rename to modules/isa/arm/neon/i420_rv16.S
index a3bbae2ed1fa..eb8550354f43 100644
--- a/modules/arm_neon/i420_rv16.S
+++ b/modules/isa/arm/neon/i420_rv16.S
@@ -19,7 +19,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 	.syntax unified
 #if HAVE_AS_FPU_DIRECTIVE
diff --git a/modules/arm_neon/i420_yuyv.S b/modules/isa/arm/neon/i420_yuyv.S
similarity index 99%
rename from modules/arm_neon/i420_yuyv.S
rename to modules/isa/arm/neon/i420_yuyv.S
index 22355e0b6140..0957bbf12607 100644
--- a/modules/arm_neon/i420_yuyv.S
+++ b/modules/isa/arm/neon/i420_yuyv.S
@@ -18,7 +18,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 	.syntax unified
 #if HAVE_AS_FPU_DIRECTIVE
diff --git a/modules/arm_neon/i422_yuyv.S b/modules/isa/arm/neon/i422_yuyv.S
similarity index 99%
rename from modules/arm_neon/i422_yuyv.S
rename to modules/isa/arm/neon/i422_yuyv.S
index 9a5b8fc4b8c4..a8f31fb507f8 100644
--- a/modules/arm_neon/i422_yuyv.S
+++ b/modules/isa/arm/neon/i422_yuyv.S
@@ -18,7 +18,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 	.syntax unified
 #if HAVE_AS_FPU_DIRECTIVE
diff --git a/modules/arm_neon/nv12_rgb.S b/modules/isa/arm/neon/nv12_rgb.S
similarity index 99%
rename from modules/arm_neon/nv12_rgb.S
rename to modules/isa/arm/neon/nv12_rgb.S
index ceef76cbefb8..fa87250d57b9 100644
--- a/modules/arm_neon/nv12_rgb.S
+++ b/modules/isa/arm/neon/nv12_rgb.S
@@ -19,7 +19,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 	.syntax unified
 #if HAVE_AS_FPU_DIRECTIVE
diff --git a/modules/arm_neon/nv21_rgb.S b/modules/isa/arm/neon/nv21_rgb.S
similarity index 99%
rename from modules/arm_neon/nv21_rgb.S
rename to modules/isa/arm/neon/nv21_rgb.S
index 0d75b9f7f91d..38396fa87e8f 100644
--- a/modules/arm_neon/nv21_rgb.S
+++ b/modules/isa/arm/neon/nv21_rgb.S
@@ -19,7 +19,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 	.syntax unified
 #if HAVE_AS_FPU_DIRECTIVE
diff --git a/modules/arm_neon/simple_channel_mixer.S b/modules/isa/arm/neon/simple_channel_mixer.S
similarity index 99%
rename from modules/arm_neon/simple_channel_mixer.S
rename to modules/isa/arm/neon/simple_channel_mixer.S
index cf9b1b531ef3..f578d7aa7767 100644
--- a/modules/arm_neon/simple_channel_mixer.S
+++ b/modules/isa/arm/neon/simple_channel_mixer.S
@@ -19,7 +19,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 #if HAVE_AS_FPU_DIRECTIVE
 	.fpu	neon
diff --git a/modules/arm_neon/volume.c b/modules/isa/arm/neon/volume.c
similarity index 100%
rename from modules/arm_neon/volume.c
rename to modules/isa/arm/neon/volume.c
diff --git a/modules/arm_neon/yuv_rgb.c b/modules/isa/arm/neon/yuv_rgb.c
similarity index 99%
rename from modules/arm_neon/yuv_rgb.c
rename to modules/isa/arm/neon/yuv_rgb.c
index 5dca930f218a..41c2ea0206cd 100644
--- a/modules/arm_neon/yuv_rgb.c
+++ b/modules/isa/arm/neon/yuv_rgb.c
@@ -28,7 +28,7 @@
 #include <vlc_filter.h>
 #include <vlc_picture.h>
 #include <vlc_cpu.h>
-#include "arm_neon/chroma_neon.h"
+#include "chroma_neon.h"
 
 static int Open (filter_t *);
 
diff --git a/modules/arm_neon/yuyv_i422.S b/modules/isa/arm/neon/yuyv_i422.S
similarity index 99%
rename from modules/arm_neon/yuyv_i422.S
rename to modules/isa/arm/neon/yuyv_i422.S
index 62d826c83879..98ddfd0ce7d3 100644
--- a/modules/arm_neon/yuyv_i422.S
+++ b/modules/isa/arm/neon/yuyv_i422.S
@@ -18,7 +18,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "asm.S"
+#include "../asm.S"
 
 	.syntax unified
 #if HAVE_AS_FPU_DIRECTIVE
diff --git a/modules/video_filter/deinterlace/merge_arm.S b/modules/video_filter/deinterlace/merge_arm.S
index fb085114efc2..99e296c5463b 100644
--- a/modules/video_filter/deinterlace/merge_arm.S
+++ b/modules/video_filter/deinterlace/merge_arm.S
@@ -18,7 +18,7 @@
  @ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  @****************************************************************************/
 
-#include "../../arm_neon/asm.S"
+#include "../../isa/arm/asm.S"
 
 	.syntax	unified
 #if HAVE_AS_ARCH_DIRECTIVE
diff --git a/modules/video_filter/deinterlace/merge_arm64.S b/modules/video_filter/deinterlace/merge_arm64.S
index 77c3dcc0fcae..91001d30d103 100644
--- a/modules/video_filter/deinterlace/merge_arm64.S
+++ b/modules/video_filter/deinterlace/merge_arm64.S
@@ -19,7 +19,7 @@
  // Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  //****************************************************************************/
 
-#include "../../arm_neon/asm.S"
+#include "../../isa/arm/asm.S"
 
 	.arch armv8-a+simd
 	.text
diff --git a/modules/video_filter/deinterlace/merge_sve.S b/modules/video_filter/deinterlace/merge_sve.S
index 52888853d1ae..28b4a5106170 100644
--- a/modules/video_filter/deinterlace/merge_sve.S
+++ b/modules/video_filter/deinterlace/merge_sve.S
@@ -18,7 +18,7 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
-#include "../../arm_neon/asm.S"
+#include "../../isa/arm/asm.S"
 
 	.arch armv8-a+sve
 
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 83ce81d46a85..2387839be271 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -222,9 +222,6 @@ modules/access_output/livehttp.c
 modules/access_output/rist.c
 modules/access_output/shout.c
 modules/access_output/srt.c
-modules/arm_neon/chroma_yuv.c
-modules/arm_neon/volume.c
-modules/arm_neon/yuv_rgb.c
 modules/audio_filter/audiobargraph_a.c
 modules/audio_filter/channel_mixer/dolby.c
 modules/audio_filter/channel_mixer/headphone.c
@@ -1134,6 +1131,9 @@ modules/hw/vdpau/chroma.c
 modules/hw/vdpau/deinterlace.c
 modules/hw/vdpau/display.c
 modules/hw/vdpau/sharpen.c
+modules/isa/arm/neon/chroma_yuv.c
+modules/isa/arm/neon/volume.c
+modules/isa/arm/neon/yuv_rgb.c
 modules/keystore/file.c
 modules/keystore/keychain.m
 modules/keystore/kwallet.c
-- 
GitLab