mirror of git://git.musl-libc.org/musl
s390x: don't allow br r0 in CRTJMP asm
The instruction encoding that would be "br %r0" is not actually a branch to r0, but instead a nop/memory-barrier. gcc 14 has been found to choose r0 for the "r"(pc) constraint, breaking CRTJMP. This patch adjusts the inline assembly constraints and marks "pc" as address ("a"), which disallows usage of r0.
This commit is contained in:
parent
2fc56aaa9f
commit
5be920e910
|
@ -10,4 +10,4 @@
|
||||||
#define REL_TPOFF R_390_TLS_TPOFF
|
#define REL_TPOFF R_390_TLS_TPOFF
|
||||||
|
|
||||||
#define CRTJMP(pc,sp) __asm__ __volatile__( \
|
#define CRTJMP(pc,sp) __asm__ __volatile__( \
|
||||||
"lgr %%r15,%1; br %0" : : "r"(pc), "r"(sp) : "memory" )
|
"lgr %%r15,%1; br %0" : : "a"(pc), "r"(sp) : "memory" )
|
||||||
|
|
Loading…
Reference in New Issue