Excessive limitation on gas for MIPS?

Thiemo Seufer ica2_ts@csv.ica.uni-stuttgart.de
Tue Mar 18 13:03:00 GMT 2003
Sean McNeil wrote:
[snip]
> *** gas/config/tc-mips.c        12 Mar 2003 23:07:37 -0000      1.197
> --- gas/config/tc-mips.c        18 Mar 2003 03:29:53 -0000
> *************** load_register (counter, reg, ep, dbl)
> *** 3582,3588 ****
>    
>     /* The value is larger than 32 bits.  */
>    
> !   if (HAVE_32BIT_GPRS)
>       {
>         as_bad (_("Number (0x%lx) larger than 32 bits"),
>               (unsigned long) ep->X_add_number);
> --- 3582,3588 ----
>    
>     /* The value is larger than 32 bits.  */
>    
> !   if (HAVE_32BIT_GPRS && ! dbl)
>       {
>         as_bad (_("Number (0x%lx) larger than 32 bits"),
>               (unsigned long) ep->X_add_number);
> 
> I would appreciate any feedback on the validity of this relaxation.  It
> appears that instructions are legitimate with the fix/patch.

It is wrong. HAVE_32BIT_GPRS checks if the CPU/the ABI allows to use
registers wider than 32 bits. The case you are observing should be
handled by the code immediately above the part you changed.

Could you provide the preprocessed assembly which triggers this case?


Thiemo



More information about the Binutils mailing list