[PATCH] Fix libgloss initialisation for MIPS
Jeff Johnston
jjohnstn@redhat.com
Wed Nov 29 08:05:00 GMT 2006
Sorry for the delay. Patch checked in.
-- Jeff J.
Thiemo Seufer wrote:
> Hello All,
>
> the appended patch fixes libgloss' crt0.S initialization of the
> mips status register.
>
>
> Thiemo
>
>
> 2006-11-06 Thiemo Seufer <ths@mips.com>
> Nigel Stephens <nigel@mips.com>
>
> * mips/crt0.S (_start): Use all available float registers. Don't touch
> SR_PE on post-mips2 CPUs, it means soft reset there.
>
>
> Index: libgloss/mips/crt0.S
> ===================================================================
> RCS file: /cvs/src/src/libgloss/mips/crt0.S,v
> retrieving revision 1.9
> diff -u -p -r1.9 crt0.S
> --- libgloss/mips/crt0.S 26 May 2003 20:22:16 -0000 1.9
> +++ libgloss/mips/crt0.S 6 Nov 2006 13:23:26 -0000
> @@ -65,11 +65,21 @@ _start:
> nop
> move s0,$31
> #endif
> -#if !defined(__mips64) || (__mips_fpr==32)
> -#define STATUS_MASK (SR_CU1|SR_PE)
> +#if __mips<3
> +# define STATUS_MASK (SR_CU1|SR_PE)
> #else
> -# For mips3 or mips4, turn on 64-bit addressing and additional float regs
> -#define STATUS_MASK (SR_CU1|SR_PE|SR_FR|SR_KX|SR_SX|SR_UX)
> +/* Post-mips2 has no SR_PE bit. */
> +# ifdef __mips64
> +/* Turn on 64-bit addressing and additional float regs. */
> +# define STATUS_MASK (SR_CU1|SR_FR|SR_KX|SR_SX|SR_UX)
> +# else
> +# ifdef __mips_fpr=32
> +# define STATUS_MASK (SR_CU1)
> +# else
> +/* Turn on additional float regs. */
> +# define STATUS_MASK (SR_CU1|SR_FR)
> +# endif
> +# endif
> #endif
> li v0, STATUS_MASK
> mtc0 v0, C0_SR
More information about the Newlib
mailing list