mips: genmongoosev/start/start.S

gregory.menke at gsfc.nasa.gov gregory.menke at gsfc.nasa.gov
Wed Sep 10 15:43:58 UTC 2003


Ralf Corsepius writes:
 > On Wed, 2003-09-10 at 15:28, Bill Gatliff wrote:
 > > Ralf:
 > > 
 > > 
 > > What do you see when you run objdump --disassemble on the 
 > > binutils-2.13.2.1-generated mipsbug.o?
 > 
 > # cat mipsbug.s
 >    sw  $8,0xfffe0130
 > 
 > # mips-rtems4.6-as  -G0 -EB -mips1 -g0 -32 -v -o mipsbug.o mipsbug.s
 > GNU assembler version 2.13.2.1 (mips-rtems4.6) using BFD version 2.13.2.1
 > 
 > # mips-rtems4.6-objdump --disassemble mipsbug.o
 >  
 > mipsbug.o:     file format elf32-bigmips
 >  
 > Disassembly of section .text:
 >  
 > 00000000 <.text>:
 >    0:   3c01fffe        lui     at,0xfffe
 >    4:   ac280130        sw      t0,304(at)
 > 

This is and example of correct behavior.  The sw works via a
displacement from a selected base register, in this case 304 bytes
past whatever the at register is set too.  I think the error is
happening because the new binutils isn't taking the single sw
instruction and interpreting it in the macro form.  There are a bunch
of mips instructions that are macro's in gas but turn into lower level
instructions in the output.

There is a gas directive "set noat", which disables the automatic use
of at.  If it changed from on by default to off, it might cause such
an error, but it seems as if gas just isn't treating the instruction
as a macro.

Gregm




More information about the users mailing list