alpha/clone.S: Invoke .set noat/.set at around explicit uses of $at
authorZack Weinberg <zackw@panix.com>
Fri, 9 Mar 2018 14:42:04 +0000 (09:42 -0500)
committerZack Weinberg <zackw@panix.com>
Sat, 10 Mar 2018 20:17:18 +0000 (15:17 -0500)
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.

ChangeLog
sysdeps/unix/sysv/linux/alpha/clone.S

index 8490083..e23ef4c 100644 (file)
--- 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.
index bd85b0b..810a2e5 100644 (file)
        cfi_startproc
 __clone:
 #ifdef PROF
+       .set noat
        ldgp    gp,0(pv)
        lda     AT, _mcount
        jsr     AT, (AT), _mcount
+       .set at
 #endif
 
        /* Sanity check arguments.  */