]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[build] Fix use of inline assembly on GCC 8 ARM64 builds
authorMichael Brown <mcb30@ipxe.org>
Sun, 14 Jul 2019 13:05:48 +0000 (14:05 +0100)
committerMichael Brown <mcb30@ipxe.org>
Sun, 14 Jul 2019 13:05:48 +0000 (14:05 +0100)
Commit 1a7746603 ("[build] Fix use of inline assembly on GCC 4.8 ARM64
builds") switched from using "%c0" to "%a0" in order to avoid an
"invalid operand prefix" error on the ARM64 version of GCC 4.8.

It appears that the ARM64 version of GCC 8 now produces an "invalid
address mode" error for the "%a0" form, but is happy with the original
"%c0" form.

Switch back to using the "%c0" form, on the assumption that the
requirement for "%a0" was a temporary aberration.

Originally-fixed-by: John L. Jolly <jjolly@suse.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/include/errno.h

index e80bf9ca5af9c562118e35e36bc57e683c7def44..342384fa433e62f9d1c7bae001c7333266d01992 100644 (file)
@@ -262,10 +262,10 @@ static inline void eplatform_discard ( int dummy __unused, ... ) {}
                  ".align 8\n\t"                                        \
                  "\n1:\n\t"                                            \
                  ".long ( 4f - 1b )\n\t"                               \
-                 ".long %a0\n\t"                                       \
+                 ".long %c0\n\t"                                       \
                  ".long ( 2f - 1b )\n\t"                               \
                  ".long ( 3f - 1b )\n\t"                               \
-                 ".long %a1\n\t"                                       \
+                 ".long %c1\n\t"                                       \
                  "\n2:\t.asciz \"" __einfo_desc ( einfo ) "\"\n\t"     \
                  "\n3:\t.asciz \"" __FILE__ "\"\n\t"                   \
                  ".align 8\n\t"                                        \