m68k --register-prefix-optional and labels like registers

Nick Clifton nickc@redhat.com
Wed May 23 10:08:00 GMT 2007


Hi Vincent,

> $ cat foo.s
>         clr.w sp.0

> $ as foo.s -o foo.o --register-prefix-optional
> foo.s: Assembler messages:

> This is a problem because :
> 1) The default value of flag_reg_prefix_optional is 1, except when 
> M68KCOFF or OBJ_ELF are defined (see REGISTER_PREFIX_OPTIONAL in 
> gas/config/tc-m68k.h).
> 2) gcc generates labels like this

How ?  (ie can you provide a gcc based test case.  Please also mention 
how the toolchain is configured).

In fact, please could you open a bug report for this problem so that we 
can track it, and its solution.

> Why is the default value of the option --register-prefix-optional is not 
> the same for all m68k targets ?

This must be historical.  The description of the 
--register-prefix-optional switch in gas/doc/c-m68k.texi mentions that 
register prefixing was needed for the sun3, amongst other targets, so 
presumably the sources evolved from this basis.

 > Do you think gcc should avoid to generate labels like this ?

No.  There is no way that gcc can guarantee not to generate labels like 
this.  A sufficiently determined programmer can always arrange to get 
them into the assembler output somehow.

 > Do you think gas should accept labels like this, even with
 > --register-prefix-optional ?

Yes, but there is always going to be a problem with labels that look 
like register names.  For example if the label in your test had been 
"sp.w" then the assembler would be right to complain.

Cheers
   Nick



More information about the Binutils mailing list