summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/alpha
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2018-03-09 09:42:04 -0500
committerZack Weinberg <zackw@panix.com>2018-03-10 15:17:18 -0500
commit054b72cc976000424e1d1017b3d51f071e5dd956 (patch)
treed5e748a12cb86dcf877dca72e62c4f92f40432e8 /sysdeps/unix/sysv/linux/alpha
parent6253bacdc00de132dec452ff7c6ce3ba7fa23d81 (diff)
alpha/clone.S: Invoke .set noat/.set at around explicit uses of $at
On Alpha, the register $at is, by default, reserved for use by the assembler, in the expansion of pseudo-instructions. It's also used by the special calling convention for _mcount. We get warnings from Alpha clone.S because the code to call _mcount isn't properly marked up to tell the assembler not to use $at itself. * sysdeps/unix/sysv/linux/alpha/clone.s (__clone): Wrap manual uses of $at in .set noat / .set at.
Diffstat (limited to 'sysdeps/unix/sysv/linux/alpha')
-rw-r--r--sysdeps/unix/sysv/linux/alpha/clone.S2
1 files changed, 2 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/alpha/clone.S b/sysdeps/unix/sysv/linux/alpha/clone.S
index bd85b0b1d3..810a2e5e78 100644
--- a/sysdeps/unix/sysv/linux/alpha/clone.S
+++ b/sysdeps/unix/sysv/linux/alpha/clone.S
@@ -40,9 +40,11 @@
cfi_startproc
__clone:
#ifdef PROF
+ .set noat
ldgp gp,0(pv)
lda AT, _mcount
jsr AT, (AT), _mcount
+ .set at
#endif
/* Sanity check arguments. */