summaryrefslogtreecommitdiff
path: root/recipes/gcc/gcc-4.3.3/ep93xx/arm-crunch-cftruncd32-attr.patch
diff options
context:
space:
mode:
authorMarcin Juszkiewicz <hrw@openembedded.org>2009-05-16 09:40:26 +0200
committerMarcin Juszkiewicz <hrw@openembedded.org>2009-06-02 11:55:17 +0200
commit7cc9f9690818e8ad8eb8ebe847d431bb94c00640 (patch)
tree9a43f555c6ccd3aeff5f18add0c96f969d728177 /recipes/gcc/gcc-4.3.3/ep93xx/arm-crunch-cftruncd32-attr.patch
parent5a671e99009f5b9b4b8aa5a83a2a503eb449d4b8 (diff)
gcc 4.3.3: add ep93xx patches from Martin W. Guy
Patchset taken from http://martinwguy.co.uk/martin/crunch/ Text from page: On 10 March there were no known bugs in this stuff (again). On 19 March libvorbisenc managed to find a bug in GCC whereby it incorrectly optimizes certain code sequences that use single-precision floats. The Maverick code generator exhibits similar symptoms for the same code, but only at optimization levels -O2 and above, so the fastest reliable optimization options for Maverick at present are -O -ffast-math. I've been working on GCC-4.3.3 to make it generate working code for the Cirrus Logic MaverickCrunch FPU, as found in their ARM-based EP9302, EP9307, EP9312 and EP9315 chips, making floating point-intensive code about 2.5 times faster. This follows on from Hasjim Williams' earlier work with gcc-4.1.2 and 4.2.0, a bundle of his more recent ideas and more hacks from me. If you want to understand the patches themselves, there is an article about the MaverickCrunch FPU and GCC's problems with it on the Debian wiki [1] and I have added commentary at the top of the individual patch files. 1. http://wiki.debian.org/ArmEabiMaverickCrunch Signed-off-by: Marcin Juszkiewicz <marcin@juszkiewicz.com.pl> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Tom Rini <trini@embeddedalley.com>
Diffstat (limited to 'recipes/gcc/gcc-4.3.3/ep93xx/arm-crunch-cftruncd32-attr.patch')
-rw-r--r--recipes/gcc/gcc-4.3.3/ep93xx/arm-crunch-cftruncd32-attr.patch12
1 files changed, 12 insertions, 0 deletions
diff --git a/recipes/gcc/gcc-4.3.3/ep93xx/arm-crunch-cftruncd32-attr.patch b/recipes/gcc/gcc-4.3.3/ep93xx/arm-crunch-cftruncd32-attr.patch
new file mode 100644
index 0000000000..bdc603ac91
--- /dev/null
+++ b/recipes/gcc/gcc-4.3.3/ep93xx/arm-crunch-cftruncd32-attr.patch
@@ -0,0 +1,12 @@
+--- gcc-4.3.2/gcc/config/arm/cirrus.md.old 2009-02-16 16:19:19.000000000 +0000
++++ gcc-4.3.2/gcc/config/arm/cirrus.md 2009-03-10 12:13:10.000000000 +0000
+@@ -425,7 +425,8 @@
+ "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_MAVERICK"
+ "cftruncd32%?\\t%Y2, %V1\;cfmvr64l%?\\t%0, %Z2"
+ [(set_attr "type" "f_cvt")
+- (set_attr "length" "8")]
++ (set_attr "length" "8")
++ (set_attr "cirrus" "normal")]
+ )
+
+ ; Cirrus hardware bugs: denormalized values on input are truncated to zero