Browse Source

[build] Fix use of inline assembly on GCC 8 ARM64 builds

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>
tags/v1.20.1
Michael Brown 5 years ago
parent
commit
3fb3ffccea
1 changed files with 2 additions and 2 deletions
  1. 2
    2
      src/include/errno.h

+ 2
- 2
src/include/errno.h View File

@@ -262,10 +262,10 @@ static inline void eplatform_discard ( int dummy __unused, ... ) {}
262 262
 		  ".align 8\n\t"					\
263 263
 		  "\n1:\n\t"						\
264 264
 		  ".long ( 4f - 1b )\n\t"				\
265
-		  ".long %a0\n\t"					\
265
+		  ".long %c0\n\t"					\
266 266
 		  ".long ( 2f - 1b )\n\t"				\
267 267
 		  ".long ( 3f - 1b )\n\t"				\
268
-		  ".long %a1\n\t"					\
268
+		  ".long %c1\n\t"					\
269 269
 		  "\n2:\t.asciz \"" __einfo_desc ( einfo ) "\"\n\t"	\
270 270
 		  "\n3:\t.asciz \"" __FILE__ "\"\n\t"			\
271 271
 		  ".align 8\n\t"					\

Loading…
Cancel
Save