linux-mips
[Top] [All Lists]

[PATCH] incorrect asm constraints for ll/sc constructs

To: linux-mips@oss.sgi.com
Subject: [PATCH] incorrect asm constraints for ll/sc constructs
From: Daniel Jacobowitz <dan@debian.org>
Date: Wed, 23 May 2001 14:52:57 -0700
Sender: owner-linux-mips@oss.sgi.com
User-agent: Mutt/1.3.16i
The ll/sc constructs in the kernel use ".set noat" to inhibit use of $at,
and proceed to use it themselves.  This is fine, except for one problem: the
constraints on memory operands are "o" and "=o", which means offsettable
memory references.  If I'm not mistaken, the assembler will (always?)
turn these into uses of $at if the offset is not 0 - at least, it certainly
seems to do that here (gcc 2.95.3, binutils 2.10.91.0.2).  Just being honest
with the compiler and asking for a real memory reference does the trick. 
Does this patch look right?

-- 
Daniel Jacobowitz                           Debian GNU/Linux Developer
Monta Vista Software                              Debian Security Team

Attachment: mips-offset.diff
Description: Text document

<Prev in Thread] Current Thread [Next in Thread>