i386/asm-4 test: use amd64's natural addressing mode on all OSs
authorAlexandre Oliva <oliva@adacore.com>
Fri, 16 Aug 2019 03:38:49 +0000 (03:38 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Fri, 16 Aug 2019 03:38:49 +0000 (03:38 +0000)
gcc.target/i386/asm-4.c uses amd64's natural PC-relative addressing
mode on a single platform, using the 32-bit absolute addressing mode
elsewhere.  There's no point in giving up amd64's natural addressing
mode and insisting on the 32-bit one when we're targeting amd64, and
having to make explicit exceptions for systems where that's found not
to work for whatever reason.  If we just use the best-suited way to
take the address of a function behind the compiler's back on each
target variant, we're less likely to hit unexpected failures.

for  gcc/testsuite/ChangeLog

* gcc.target/i386/asm-4.c: Use amd64 natural addressing mode
on all __LP64__ targets.

From-SVN: r274559

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/asm-4.c

index 055ff045e0fc931d6851e6a040f0a58d35d109ce..d75c646ba34791c9eae8568c08ff8645cfc63065 100644 (file)
@@ -1,5 +1,8 @@
 2019-08-16  Alexandre Oliva <oliva@adacore.com>
 
+       * gcc.target/i386/asm-4.c: Use amd64 natural addressing mode
+       on all __LP64__ targets.
+
        * gcc.target/arc/interrupt-6.c: Use __builtin_alloca, require
        effective target support for alloca, drop include of alloca.h.
        * gcc.target/i386/pr80969-3.c: Likewise.
index b86801032bc41492d85af614065bc4b1cdcdb7ee..69dd1d3df0bf904265ac1bf4ff51d234b24cfb7a 100644 (file)
@@ -29,7 +29,7 @@ baz (void)
 {
   /* Darwin loads 64-bit regions above the 4GB boundary so
      we need to use this instead.  */
-#if defined (__LP64__) && defined (__MACH__)
+#if defined (__LP64__)
   __asm ("leaq foo(%%rip), %0" : "=r" (fn));
 #else
   __asm ("movl $foo, %k0" : "=r" (fn));