Message ID | 1298171532-5296-1-git-send-email-holler@ahsoftware.de |
---|---|
State | Changes Requested |
Headers | show |
Dear Alexander Holler, In message <1298171532-5296-1-git-send-email-holler@ahsoftware.de> you wrote: > Without -msoft-float the compiler would be allowed to use certain > floating-point instructions (VFP/NEON) e.g. for optimizations, which > would require additional code, for example to save contexts for > interrupts. Add a comment which describes this in short words. Hm... why do you see a need to explain this for ARM, but not so for the other architectrures, say for PowerPC? If you really want to add this, then it should probably be somewhere in the REAME or another central place of documentation (instead of distributed over tons of Makefiles), and to make your message understood you might want to add "additional code" may mean that additional function blocks in the respective SoC may need to be initialized and, for example, clocked, which may for example significantly increase the power dissipation of the system. > +# -msoft-float forces the compiler to not use any fp-related instructions. Well, now this is a commonplace that says about nothing and can be leftout as well. Best regards, Wolfgang Denk
Am 20.02.2011 09:42, schrieb Wolfgang Denk: > Dear Alexander Holler, > > In message<1298171532-5296-1-git-send-email-holler@ahsoftware.de> you wrote: >> Without -msoft-float the compiler would be allowed to use certain >> floating-point instructions (VFP/NEON) e.g. for optimizations, which >> would require additional code, for example to save contexts for >> interrupts. Add a comment which describes this in short words. > > Hm... why do you see a need to explain this for ARM, but not so for > the other architectrures, say for PowerPC? I don't know how other the compiler behaves for other architectures and if those are having the need to save fp-contexts for irqs. > > If you really want to add this, then it should probably be somewhere > in the REAME or another central place of documentation (instead of > distributed over tons of Makefiles), and to make your message I prefer comments where they are usefull. Hiding them somewhere is useless. > understood you might want to add "additional code" may mean that > additional function blocks in the respective SoC may need to be > initialized and, for example, clocked, which may for example > significantly increase the power dissipation of the system. > >> +# -msoft-float forces the compiler to not use any fp-related instructions. > > Well, now this is a commonplace that says about nothing and can be > leftout as well. # -msoft-float forces the compiler to avoid any fp-related instructions for optimizations. Would that be better? Regards, Alexander
Am 20.02.2011 10:39, schrieb Alexander Holler: > # -msoft-float forces the compiler to avoid any fp-related instructions > for optimizations. > > Would that be better? Anyway, I don't care about that patch. I now know the reason. ;) Btw, isn't soft-float useless on ARM when armv5 is used as architecture? Regards, Alexander
Am 20.02.2011 10:52, schrieb Alexander Holler: > Am 20.02.2011 10:39, schrieb Alexander Holler: > >> # -msoft-float forces the compiler to avoid any fp-related instructions >> for optimizations. >> >> Would that be better? > > Anyway, I don't care about that patch. I now know the reason. ;) > > Btw, isn't soft-float useless on ARM when armv5 is used as architecture? To answer myself: No. See http://www.arm.com/products/processors/technologies/vector-floating-point.php Regards, Alexander
Dear Alexander Holler, In message <4D60E16E.1060406@ahsoftware.de> you wrote: > > I don't know how other the compiler behaves for other architectures and > if those are having the need to save fp-contexts for irqs. I thought I had explained this again in recent postings, not to mention the times I did that before; you probably can find this in the archives. > # -msoft-float forces the compiler to avoid any fp-related instructions > for optimizations. > > Would that be better? No, not at all, because the only additional information about what -msoft-float does (not using FP instructions) in the "for optimizations" part - but that does not help much if you don;t have the background we discussed here again. So if you want to document this, then please provide a more complete explanation about the reasons for using -msoft-float, summarizing the recent discussion. Keep in mind that it does not only apply to ARM Makefiles, but to all other architectures as well. And instead of adding it to all ~30 affected files (which also gives no guarantee that it will be documented in any newly created config.mk files), please add it to some central doc file - either to the README, or feel free to create a doc/README.toolchain or similar that can then also be used to document things like linker options, information about known issues, etc. Best regards, Wolfgang Denk
On Sun, Feb 20, 2011 at 11:20:07AM +0100, Wolfgang Denk wrote: > [...] or feel free to create a doc/README.toolchain or similar that > can then also be used to document things like linker options, > information about known issues, etc. +1 for a README.toolchain file.
On 20.02.2011 11:20, Wolfgang Denk wrote:
> No, not at all, because the only additional information about what
Thanks, at least I tried it.
Regards,
Alexander
diff --git a/arch/arm/cpu/arm1136/config.mk b/arch/arm/cpu/arm1136/config.mk index 3e68535..e2c32c0 100644 --- a/arch/arm/cpu/arm1136/config.mk +++ b/arch/arm/cpu/arm1136/config.mk @@ -20,6 +20,8 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, # MA 02111-1307 USA # + +# -msoft-float forces the compiler to not use any fp-related instructions. PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float # Make ARMv5 to allow more compilers to work, even though its v6. diff --git a/arch/arm/cpu/arm1176/config.mk b/arch/arm/cpu/arm1176/config.mk index 14346cf..a9a36b4 100644 --- a/arch/arm/cpu/arm1176/config.mk +++ b/arch/arm/cpu/arm1176/config.mk @@ -20,6 +20,8 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, # MA 02111-1307 USA # + +# -msoft-float forces the compiler to not use any fp-related instructions. PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float # Make ARMv5 to allow more compilers to work, even though its v6. diff --git a/arch/arm/cpu/arm1176/s3c64xx/config.mk b/arch/arm/cpu/arm1176/s3c64xx/config.mk index 14346cf..a9a36b4 100644 --- a/arch/arm/cpu/arm1176/s3c64xx/config.mk +++ b/arch/arm/cpu/arm1176/s3c64xx/config.mk @@ -20,6 +20,8 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, # MA 02111-1307 USA # + +# -msoft-float forces the compiler to not use any fp-related instructions. PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float # Make ARMv5 to allow more compilers to work, even though its v6. diff --git a/arch/arm/cpu/arm720t/config.mk b/arch/arm/cpu/arm720t/config.mk index 3844c62..1d59f60 100644 --- a/arch/arm/cpu/arm720t/config.mk +++ b/arch/arm/cpu/arm720t/config.mk @@ -22,6 +22,7 @@ # MA 02111-1307 USA # +# -msoft-float forces the compiler to not use any fp-related instructions. PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float PLATFORM_CPPFLAGS += -march=armv4 -mtune=arm7tdmi diff --git a/arch/arm/cpu/arm920t/config.mk b/arch/arm/cpu/arm920t/config.mk index 8f6c1a3..b595088 100644 --- a/arch/arm/cpu/arm920t/config.mk +++ b/arch/arm/cpu/arm920t/config.mk @@ -21,6 +21,7 @@ # MA 02111-1307 USA # +# -msoft-float forces the compiler to not use any fp-related instructions. PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float PLATFORM_CPPFLAGS += -march=armv4 diff --git a/arch/arm/cpu/arm925t/config.mk b/arch/arm/cpu/arm925t/config.mk index 8f6c1a3..b595088 100644 --- a/arch/arm/cpu/arm925t/config.mk +++ b/arch/arm/cpu/arm925t/config.mk @@ -21,6 +21,7 @@ # MA 02111-1307 USA # +# -msoft-float forces the compiler to not use any fp-related instructions. PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float PLATFORM_CPPFLAGS += -march=armv4 diff --git a/arch/arm/cpu/arm926ejs/config.mk b/arch/arm/cpu/arm926ejs/config.mk index f8ef90f..fb83862 100644 --- a/arch/arm/cpu/arm926ejs/config.mk +++ b/arch/arm/cpu/arm926ejs/config.mk @@ -21,6 +21,7 @@ # MA 02111-1307 USA # +# -msoft-float forces the compiler to not use any fp-related instructions. PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float PLATFORM_CPPFLAGS += -march=armv5te diff --git a/arch/arm/cpu/arm926ejs/davinci/config.mk b/arch/arm/cpu/arm926ejs/davinci/config.mk index 565adda..081c13d 100644 --- a/arch/arm/cpu/arm926ejs/davinci/config.mk +++ b/arch/arm/cpu/arm926ejs/davinci/config.mk @@ -21,6 +21,7 @@ # MA 02111-1307 USA # +# -msoft-float forces the compiler to not use any fp-related instructions. PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float PLATFORM_CPPFLAGS += -march=armv5te diff --git a/arch/arm/cpu/arm946es/config.mk b/arch/arm/cpu/arm946es/config.mk index e783f69..f7db925 100644 --- a/arch/arm/cpu/arm946es/config.mk +++ b/arch/arm/cpu/arm946es/config.mk @@ -21,6 +21,7 @@ # MA 02111-1307 USA # +# -msoft-float forces the compiler to not use any fp-related instructions. PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float PLATFORM_CPPFLAGS += -march=armv4 diff --git a/arch/arm/cpu/arm_intcm/config.mk b/arch/arm/cpu/arm_intcm/config.mk index e783f69..f7db925 100644 --- a/arch/arm/cpu/arm_intcm/config.mk +++ b/arch/arm/cpu/arm_intcm/config.mk @@ -21,6 +21,7 @@ # MA 02111-1307 USA # +# -msoft-float forces the compiler to not use any fp-related instructions. PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float PLATFORM_CPPFLAGS += -march=armv4 diff --git a/arch/arm/cpu/armv7/config.mk b/arch/arm/cpu/armv7/config.mk index 49ac9c7..03ec32b 100644 --- a/arch/arm/cpu/armv7/config.mk +++ b/arch/arm/cpu/armv7/config.mk @@ -20,6 +20,8 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, # MA 02111-1307 USA # + +# -msoft-float forces the compiler to not use any fp-related instructions. PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float # Make ARMv5 to allow more compilers to work, even though its v7a. diff --git a/arch/arm/cpu/armv7/omap-common/config.mk b/arch/arm/cpu/armv7/omap-common/config.mk index 49ac9c7..03ec32b 100644 --- a/arch/arm/cpu/armv7/omap-common/config.mk +++ b/arch/arm/cpu/armv7/omap-common/config.mk @@ -20,6 +20,8 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, # MA 02111-1307 USA # + +# -msoft-float forces the compiler to not use any fp-related instructions. PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float # Make ARMv5 to allow more compilers to work, even though its v7a. diff --git a/arch/arm/cpu/ixp/config.mk b/arch/arm/cpu/ixp/config.mk index deca3f4..9634615 100644 --- a/arch/arm/cpu/ixp/config.mk +++ b/arch/arm/cpu/ixp/config.mk @@ -24,6 +24,7 @@ BIG_ENDIAN = y +# -msoft-float forces the compiler to not use any fp-related instructions. PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float -mbig-endian PLATFORM_CPPFLAGS += -mbig-endian -march=armv5te -mtune=strongarm1100 diff --git a/arch/arm/cpu/lh7a40x/config.mk b/arch/arm/cpu/lh7a40x/config.mk index 47b2b7b..6c4fa54 100644 --- a/arch/arm/cpu/lh7a40x/config.mk +++ b/arch/arm/cpu/lh7a40x/config.mk @@ -21,6 +21,7 @@ # MA 02111-1307 USA # +# -msoft-float forces the compiler to not use any fp-related instructions. PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float PLATFORM_CPPFLAGS += -march=armv4 diff --git a/arch/arm/cpu/pxa/config.mk b/arch/arm/cpu/pxa/config.mk index a05d69c..45405d6 100644 --- a/arch/arm/cpu/pxa/config.mk +++ b/arch/arm/cpu/pxa/config.mk @@ -22,6 +22,7 @@ # MA 02111-1307 USA # +# -msoft-float forces the compiler to not use any fp-related instructions. PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float PLATFORM_CPPFLAGS += -march=armv5te -mtune=xscale diff --git a/arch/arm/cpu/s3c44b0/config.mk b/arch/arm/cpu/s3c44b0/config.mk index 7454d72..6a374a7 100644 --- a/arch/arm/cpu/s3c44b0/config.mk +++ b/arch/arm/cpu/s3c44b0/config.mk @@ -22,6 +22,7 @@ # MA 02111-1307 USA # +# -msoft-float forces the compiler to not use any fp-related instructions. PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float PLATFORM_CPPFLAGS += -march=armv4 -mtune=arm7tdmi -msoft-float diff --git a/arch/arm/cpu/sa1100/config.mk b/arch/arm/cpu/sa1100/config.mk index 6f21f41..e52e8b0 100644 --- a/arch/arm/cpu/sa1100/config.mk +++ b/arch/arm/cpu/sa1100/config.mk @@ -22,6 +22,7 @@ # MA 02111-1307 USA # +# -msoft-float forces the compiler to not use any fp-related instructions. PLATFORM_RELFLAGS += -fno-common -ffixed-r8 -msoft-float PLATFORM_CPPFLAGS += -march=armv4 -mtune=strongarm1100
Without -msoft-float the compiler would be allowed to use certain floating-point instructions (VFP/NEON) e.g. for optimizations, which would require additional code, for example to save contexts for interrupts. Add a comment which describes this in short words. Signed-off-by: Alexander Holler <holler@ahsoftware.de> --- arch/arm/cpu/arm1136/config.mk | 2 ++ arch/arm/cpu/arm1176/config.mk | 2 ++ arch/arm/cpu/arm1176/s3c64xx/config.mk | 2 ++ arch/arm/cpu/arm720t/config.mk | 1 + arch/arm/cpu/arm920t/config.mk | 1 + arch/arm/cpu/arm925t/config.mk | 1 + arch/arm/cpu/arm926ejs/config.mk | 1 + arch/arm/cpu/arm926ejs/davinci/config.mk | 1 + arch/arm/cpu/arm946es/config.mk | 1 + arch/arm/cpu/arm_intcm/config.mk | 1 + arch/arm/cpu/armv7/config.mk | 2 ++ arch/arm/cpu/armv7/omap-common/config.mk | 2 ++ arch/arm/cpu/ixp/config.mk | 1 + arch/arm/cpu/lh7a40x/config.mk | 1 + arch/arm/cpu/pxa/config.mk | 1 + arch/arm/cpu/s3c44b0/config.mk | 1 + arch/arm/cpu/sa1100/config.mk | 1 + 17 files changed, 22 insertions(+), 0 deletions(-)