i386/asm-4 test: use amd64's natural addressing mode on all OSs

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
This commit is contained in:
Alexandre Oliva 2019-08-16 03:38:49 +00:00 committed by Alexandre Oliva
parent 1ce521ece9
commit 967a322ede
2 changed files with 4 additions and 1 deletions

View 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.

View 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));