mips: genmongoosev/start/start.S

Bill Gatliff bgat at billgatliff.com
Wed Sep 10 15:52:44 UTC 2003


Greg:


I'm not a MIPS guru (yet!), but I'm thinking that some of the MIPS 
macros come from include files.  Could this be a case of a missing 
.include directive, or a missing macro definition that used to be there?


b.g.


gregory.menke at gsfc.nasa.gov wrote:

>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
>
>  
>

-- 
Bill Gatliff
Professional embedded GNU training.
bgat at billgatliff.com





More information about the users mailing list