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

login
register
mail settings
Submitter Zack Weinberg
Date March 10, 2018, 8:23 p.m.
Message ID <20180310202303.12439-1-zackw@panix.com>
Download mbox | patch
Permalink /patch/26273/
State New
Headers show

Comments

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

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