bug-gnu-utils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: (no subject)


From: Nick Clifton
Subject: Re: (no subject)
Date: 07 Dec 2001 12:04:29 +0000
User-agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/21.1

Hi Shrini,

> arm assembler bug report.

Which version of the assembler ?

> system: sun sparc 5.8
> 
> Recently I hit across a problem with the 'asarm' assembler. I get this
> error:
> 
> /var/tmp/cct7aq7h.s: Assembler messages
> /var/tmp/cct7aq7h.s: 3381: Error: invalid constant after fixup
> 
> I need some help to understand what this error message stands
> for.

A strict interpretation of the messages is that the assembler has
evaluated a "fixup" structure and generated an value which is too big
for the immediate field of an ARM instruction.  A "fixup" structure is
created when the assembler encounters a place in the input files where
it cannot immediately compute the relevant bytes to emit into the
output stream.  The assembler saves these structures in a list and
then once all the input files have been read (and all the symbols have
been located) it tries to resolve the fixups.

> It definitely has to do with some boundary alignment problem for
> the ADR instructions. The code compiles if I add some NOP
> instructions in the code at particular points.

Do you have a small example that reproduces this problem ?

The most probable reason is that you are using instructions which are
putting constants into the literal pool, but that you do not have a
.litorg directive at a suitable place to dump the literal pool.

Cheers
        Nick




reply via email to

[Prev in Thread] Current Thread [Next in Thread]