Carsten, 

Sorry for top-post. 

> Marvell Dove and Nvidia Tegra 2 is VFPv3-D16, which means our current
> ARMv7 port does not at all run on Marvell Dove or Nvidia Tegra 2 - it
> doesn't have the registers 17-32 which our code uses. This was one key
> argument against enabling NEON by default.
If VFPv3 is described as "Broadly compatible with VFPv2 but adds ...", here v2 
has only 16 64-bit FPU registers.
Then what it is describing is only ISA compatible and no possible at runtime 
compatible like soft Vs softfp?
Will those No.17-32 registers were definitely used in all cases if we use 
-mfpu=vfpv3? (default as D32)

> For hardfp there could be a small discussion if we'd use vfpv3-d16 to include 
> more target possibilities, 
IMHO, the reason to use hard is for those performance benefit from hard flag, 
then put compatibility as 2nd considering, if so,
why still use vfpv3-d16 (which is implicitly meaning for compatibility with 
most part of HD).


> but for softfp we might as well move ahead to mfpu=neon.
As that link you pointed out:
"While optimizing the entire system for NEON would be awesome, there is very 
little benefit on standard code " 



-----Original Message-----
From: [email protected] [mailto:[email protected]] On 
Behalf Of Carsten Munk
Sent: Monday, November 08, 2010 4:56 AM
To: meego-dev
Subject: Re: [MeeGo-dev] ARMv7, Qt and NEON

2010/8/18 Carsten Munk <[email protected]>:
> [this is not another SSSE3 discussion thread]
>
> Qt on OMAP3 has very big benefits from using NEON, just like using
> SSSE3 does on Atom. However, we do not currently compile for NEON in
> MeeGo for ARMv7 as not all ARMv7 has NEON (Marvell, Nvidia being
> notable exceptions).

> .. and even Marvell and Nvidia people are happy. Or not? Let me know
> what you think.

Just re-awakening this old thread.

On IRC, we (thiago, me, others) just discussed that the fact that we
have -mfpu=vfpv3 in our ARMv7 optimization flags in MeeGo.

What many people don't realize (including myself) is that -mfpu=vfpv3
actually means VFPv3-D32, which means, use 32 64-bit FPU registers.

Marvell Dove and Nvidia Tegra 2 is VFPv3-D16, which means our current
ARMv7 port does not at all run on Marvell Dove or Nvidia Tegra 2 - it
doesn't have the registers 17-32 which our code uses. This was one key
argument against enabling NEON by default.

In practice, if we switch to -mfpu=neon for ARMv7 softfp in 1.2, we
are not losing any target possibilities (tegra2, dove) -- we lost them
already at mfpu=vfpv3.

Unless there's a target I've forgotten that does vfpv3-d32 and not
NEON, I see no reason why we can't just set -mfpu=neon for 1.2. At
least [1] doesn't list any.

For hardfp there could be a small discussion if we'd use vfpv3-d16 to
include more target possibilities, but for softfp we might as well
move ahead to mfpu=neon.


BR
Carsten Munk
Nokia N900 hardware adaptation maintainer

[1] http://wiki.debian.org/ArmHardFloatPort/VfpComparison
_______________________________________________
MeeGo-dev mailing list
[email protected]
http://lists.meego.com/listinfo/meego-dev
_______________________________________________
MeeGo-dev mailing list
[email protected]
http://lists.meego.com/listinfo/meego-dev

Reply via email to