This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Maverick (EP9312) floating point issues


Hi Wouter,

> --- binutils-2.14.90.0.5.old/bfd/elf32-arm.h    2003-07-23 17:08:08.000000000 +0200
> +++ binutils-2.14.90.0.5/bfd/elf32-arm.h        2003-10-21 11:28:58.000000000 +0200
> @@ -2366 +2366 @@
> -ERROR: %s uses Maverick instructions, whereas %s does not"),
> +ERROR: %s does not use Maverick instructions, whereas %s does"),

> --- binutils-2.14.90.0.5.old/gas/config/tc-arm.c        2003-07-23 17:08:10.000000000 +0200
> +++ binutils-2.14.90.0.5/gas/config/tc-arm.c    2003-10-21 12:39:03.000000000 +0200
> @@ -772 +772 @@
> -  {mav_mvdx_table,  15, NULL, N_("Maverick MVFX register expected")},
> +  {mav_mvdx_table,  15, NULL, N_("Maverick MVDX register expected")},

Thanks for these two patches - I have applied them to the source code
in the CVS repository.

> Now, to get rid of the merging problem I will probably rebuild my entire
> toolchain specifically for the ep9312. Apparently you get software
> floating point if you select a Maverick cpu, in gas/config/tc-arm.c
> there is this piece of code:
>
> #if defined OBJ_ELF
> 	if (cpu_variant & ARM_CEXT_MAVERICK)
> 	{
> 		flags ^= F_SOFT_FLOAT;
> 		flags |= EF_ARM_MAVERICK_FLOAT;
> 	}
> #endif
>
> As far as I understand it, the ep9312 accepts regular and fpu
> instructions in the same stream, and dispatches the floating point ops
> to the crunch core. Could someone tell me how software fp comes into the equation?

It does not.  This is a bug.  The above code was meant to be:

		flags &= ~F_SOFT_FLOAT;

I have also applied this patch to the sources.

Cheers
        Nick


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]