diff options
author | Zack Weinberg <zackw@panix.com> | 2018-03-09 09:42:04 -0500 |
---|---|---|
committer | Zack Weinberg <zackw@panix.com> | 2018-03-10 15:17:18 -0500 |
commit | 054b72cc976000424e1d1017b3d51f071e5dd956 (patch) | |
tree | d5e748a12cb86dcf877dca72e62c4f92f40432e8 | |
parent | 6253bacdc00de132dec452ff7c6ce3ba7fa23d81 (diff) | |
download | glibc-054b72cc976000424e1d1017b3d51f071e5dd956.tar.gz glibc-054b72cc976000424e1d1017b3d51f071e5dd956.tar.xz glibc-054b72cc976000424e1d1017b3d51f071e5dd956.zip |
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.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/clone.S | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 8490083ead..e23ef4c6f4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2018-03-10 Zack Weinberg <zackw@panix.com> + + * sysdeps/unix/sysv/linux/alpha/clone.S (__clone): Wrap manual + uses of $at in .set noat / .set at. + 2018-03-10 H.J. Lu <hongjiu.lu@intel.com> * include/setjmp.h (__libc_longjmp): Remove libc_hidden_proto. 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. */ |