alpha/clone.S: Invoke .set noat/.set at around explicit uses of $at

Message ID
State Committed

Commit Message

Zack Weinberg March 10, 2018, 8:23 p.m. UTC
  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.

Tested with cross-compilation from x86-linux to alpha-linux.
Committed as trivial bugfix.

	* sysdeps/unix/sysv/linux/alpha/clone.s (__clone): Wrap manual
	uses of $at in .set noat / .set at.
 sysdeps/unix/sysv/linux/alpha/clone.S | 2 ++
 1 file changed, 2 insertions(+)


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 @@ 
 #ifdef PROF
+	.set noat
 	ldgp	gp,0(pv)
 	lda	AT, _mcount
 	jsr	AT, (AT), _mcount
+	.set at
 	/* Sanity check arguments.  */