Bug 1942738 - Move the .fpu neon directive around. r=gfx-reviewers,lsalzman

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

Differential Revision: https://phabricator.services.mozilla.com/D235087
This commit is contained in:
Mike Hommey
2025-01-22 05:12:02 +00:00
parent 56d876ecb1
commit f6ff2b08fb
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"