Bug 1942738 - Move the .fpu neon directive around. a=RyanVM

clang's integrated assembler doesn't handle .fpu coming before .arch
like GNU as does.

The pixman patch was sent upstream: https://gitlab.freedesktop.org/pixman/pixman/-/issues/113#note_2746582

Original Revision: https://phabricator.services.mozilla.com/D235087

Differential Revision: https://phabricator.services.mozilla.com/D235100
This commit is contained in:
Mike Hommey 2025-01-22 05:27:06 +00:00
parent 2b44371b08
commit 4816f4d40e
5 changed files with 35 additions and 3 deletions

View file

@ -63,3 +63,5 @@ pixman-interp.patch: use lower quality interpolation by default on mobile
pixman-intrin.patch: include intrin.h on Windows to fix bustage
pixman-rename.patch: include pixman-rename.h for renaming of external symbols
pixman-neon.patch: fix for a build failure with clang on armhf linux

View file

@ -55,9 +55,9 @@
#endif
.text
.fpu neon
.arch armv7a
.object_arch armv4
.fpu neon
.eabi_attribute 10, 0
.eabi_attribute 12, 0
.arm

View file

@ -40,9 +40,9 @@
#endif
.text
.fpu neon
.arch armv7a
.object_arch armv4
.fpu neon
.eabi_attribute 10, 0 /* suppress Tag_FP_arch */
.eabi_attribute 12, 0 /* suppress Tag_Advanced_SIMD_arch */
.arm

View file

@ -0,0 +1,30 @@
diff --git a/gfx/cairo/libpixman/src/pixman-arm-neon-asm-bilinear.S b/gfx/cairo/libpixman/src/pixman-arm-neon-asm-bilinear.S
index 6bd27360aa027..cd33babca1e0c 100644
--- a/gfx/cairo/libpixman/src/pixman-arm-neon-asm-bilinear.S
+++ b/gfx/cairo/libpixman/src/pixman-arm-neon-asm-bilinear.S
@@ -55,9 +55,9 @@
#endif
.text
-.fpu neon
.arch armv7a
.object_arch armv4
+.fpu neon
.eabi_attribute 10, 0
.eabi_attribute 12, 0
.arm
diff --git a/gfx/cairo/libpixman/src/pixman-arm-neon-asm.S b/gfx/cairo/libpixman/src/pixman-arm-neon-asm.S
index 0e092577f1c73..c04b335d1e5bd 100644
--- a/gfx/cairo/libpixman/src/pixman-arm-neon-asm.S
+++ b/gfx/cairo/libpixman/src/pixman-arm-neon-asm.S
@@ -40,9 +40,9 @@
#endif
.text
- .fpu neon
.arch armv7a
.object_arch armv4
+ .fpu neon
.eabi_attribute 10, 0 /* suppress Tag_FP_arch */
.eabi_attribute 12, 0 /* suppress Tag_Advanced_SIMD_arch */
.arm

View file

@ -53,11 +53,11 @@ void __attribute((noinline,optimize("-fomit-frame-pointer")))
* q13, q14, q15 - various constants (#16, #149, #204, #50, #104, #154)
*/
asm volatile (
".fpu neon\n"
/* Allow to build on targets not supporting neon, and force the object file
* target to avoid bumping the final binary target */
".arch armv7-a\n"
".object_arch armv4t\n"
".fpu neon\n"
".macro convert_macroblock size\n"
/* load up to 16 source pixels */
".if \\size == 16\n"