This is the mail archive of the
binutils@sourceware.cygnus.com
mailing list for the binutils project.
[PATCH] Sparc assembly fix
- To: Richard Henderson <rth@cygnus.com>
- Subject: [PATCH] Sparc assembly fix
- From: Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>
- Date: Sun, 8 Aug 1999 11:34:44 +0200
- Cc: binutils@sourceware.cygnus.com
- References: <19990808004409.A31340@cygnus.com>
On Sun, Aug 08, 1999 at 12:44:09AM -0700, Richard Henderson wrote:
> Jakub, would you be so kind as to look at the
> following bug report?
>
> /home/testomat/nightly/devo/libgloss/sparc/crt0.S:174: Error:\
> Illegal operands: Can't do arithmetics involving %lo() of a relocatable symbol
> [...]
> --> Third bug is the investigation of why the an insn like
> jmpl %lo(SYM(win_unf))+%l3, %g0
> now causes that to fail. (win_unf is defined in libgloss/sparc/salib.c.)
> The build on June 21 1999 was able to assemble it without any errors.
Sorry.
Here is the fix:
1999-08-08 Jakub Jelinek <jj@ultra.linux.cz>
config/tc-sparc.c (sparc_ip): Allow assembly of %lo()+%reg.
--- ./config/tc-sparc.c.jj Mon Aug 2 09:29:08 1999
+++ ./config/tc-sparc.c Sun Aug 8 11:12:21 1999
@@ -2159,7 +2159,10 @@ sparc_ip (str, pinsn)
if (s1)
{
*s1 = '\0';
- (void) get_expression (s);
+ if (op_arg && s1 == s + 1)
+ the_insn.exp.X_op = O_absent;
+ else
+ (void) get_expression (s);
*s1 = '+';
if (op_arg)
*s = ')';
Cheers,
Jakub
___________________________________________________________________
Jakub Jelinek | jj@sunsite.mff.cuni.cz | http://sunsite.mff.cuni.cz
Administrator of SunSITE Czech Republic, MFF, Charles University
___________________________________________________________________
UltraLinux | http://ultra.linux.cz/ | http://ultra.penguin.cz/
Linux version 2.3.13 on a sparc64 machine (1343.49 BogoMips)
___________________________________________________________________