diff mbox series

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

Message ID 20180310202303.12439-1-zackw@panix.com
State New
Headers show
Series alpha/clone.S: Invoke .set noat/.set at around explicit uses of $at | expand

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 mbox series

Patch

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.  */