This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] [RFC] PR target/52813 and target/11807
- From: Andreas Schwab <schwab at suse dot de>
- To: Dimitar Dimitrov <dimitar at dinux dot eu>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Wed, 12 Dec 2018 12:23:47 +0100
- Subject: Re: [PATCH] [RFC] PR target/52813 and target/11807
- References: <20181209100856.14051-1-dimitar@dinux.eu>
This breaks ia64:
In file included from ../../../libgomp/config/linux/wait.h:46,
from ../../../libgomp/config/linux/mutex.c:30:
../../../libgomp/config/linux/ia64/futex.h: In function 'gomp_mutex_lock_slow':
../../../libgomp/config/linux/ia64/futex.h:43:3: error: Stack Pointer register clobbered by 'r12' in 'asm'
43 | __asm __volatile ("break 0x100000"
| ^~~~~
../../../libgomp/config/linux/ia64/futex.h:43:3: error: Stack Pointer register clobbered by 'r12' in 'asm'
43 | __asm __volatile ("break 0x100000"
| ^~~~~
../../../libgomp/config/linux/ia64/futex.h:43:3: error: Stack Pointer register clobbered by 'r12' in 'asm'
43 | __asm __volatile ("break 0x100000"
| ^~~~~
../../../libgomp/config/linux/ia64/futex.h:43:3: error: Stack Pointer register clobbered by 'r12' in 'asm'
43 | __asm __volatile ("break 0x100000"
| ^~~~~
../../../libgomp/config/linux/ia64/futex.h: In function 'gomp_mutex_unlock_slow':
../../../libgomp/config/linux/ia64/futex.h:43:3: error: Stack Pointer register clobbered by 'r12' in 'asm'
43 | __asm __volatile ("break 0x100000"
| ^~~~~
../../../libgomp/config/linux/ia64/futex.h:43:3: error: Stack Pointer register clobbered by 'r12' in 'asm'
43 | __asm __volatile ("break 0x100000"
| ^~~~~
Installed as obvious.
Andreas.
* config/linux/ia64/futex.h (sys_futex0): Don't mark r12 as
clobbered.
---
libgomp/config/linux/ia64/futex.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libgomp/config/linux/ia64/futex.h b/libgomp/config/linux/ia64/futex.h
index 6efec3c813..df450f8def 100644
--- a/libgomp/config/linux/ia64/futex.h
+++ b/libgomp/config/linux/ia64/futex.h
@@ -45,8 +45,8 @@ sys_futex0(int *addr, int op, int val)
"=r"(r8), "=r"(r10)
: "r"(r15), "r"(out0), "r"(out1), "r"(out2), "r"(out3)
: "memory", "out4", "out5", "out6", "out7",
- /* Non-stacked integer registers, minus r8, r10, r15. */
- "r2", "r3", "r9", "r11", "r12", "r13", "r14", "r16", "r17", "r18",
+ /* Non-stacked integer registers, minus r8, r10, r12, r15. */
+ "r2", "r3", "r9", "r11", "r13", "r14", "r16", "r17", "r18",
"r19", "r20", "r21", "r22", "r23", "r24", "r25", "r26", "r27",
"r28", "r29", "r30", "r31",
/* Predicate registers. */
--
2.20.0
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."