summaryrefslogtreecommitdiffstats
path: root/recipes-devtools
diff options
context:
space:
mode:
authorNathan Rossi <nathan.rossi@xilinx.com>2013-07-11 14:52:59 +1000
committerNathan Rossi <nathan.rossi@xilinx.com>2013-07-11 14:52:59 +1000
commit692e54a3ef33e6149921b430dc6419519784d228 (patch)
treea03b44a143e11dfad7cf57adbb4188214b046fad /recipes-devtools
parentc6f9c704a9da6542d0a52259c9e238b420075d98 (diff)
downloadmeta-xilinx-692e54a3ef33e6149921b430dc6419519784d228.tar.gz
gcc: Add patch to resolve MicroBlaze -mhard-float issue
* Resolve internal compiler error for MicroBlaze when -mhard-float is set. Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com>
Diffstat (limited to 'recipes-devtools')
-rw-r--r--recipes-devtools/gcc/files/Patch-microblaze-cstoresf4-add-mode-and-ordered_comp.patch44
-rw-r--r--recipes-devtools/gcc/gcc-microblaze-4.8.inc1
2 files changed, 45 insertions, 0 deletions
diff --git a/recipes-devtools/gcc/files/Patch-microblaze-cstoresf4-add-mode-and-ordered_comp.patch b/recipes-devtools/gcc/files/Patch-microblaze-cstoresf4-add-mode-and-ordered_comp.patch
new file mode 100644
index 00000000..934e7fa9
--- /dev/null
+++ b/recipes-devtools/gcc/files/Patch-microblaze-cstoresf4-add-mode-and-ordered_comp.patch
@@ -0,0 +1,44 @@
1From: David Holsgrove <david.holsgrove@xilinx.com>
2Subject: [PATCH] [Patch, microblaze]: cstoresf4, add mode and
3 ordered_comparison_operator
4
5Add SImode to comparison operator, prevents ICE during combine
6rtl pass with error message;
7
8internal compiler error: in simplify_subreg, at simplify-rtx.c:5725
9
10Use ordered_comparison_operator predicate to limit operators to
11those fcmp can handle, and letting compiler reorder insns to
12accomodate unordered as necessary
13
14Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
15Upstream-Status: Pending
16---
17 gcc/config/microblaze/microblaze.md | 4 ++--
18 1 file changed, 2 insertions(+), 2 deletions(-)
19
20diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
21index 786dabb..e9b032b 100644
22--- a/gcc/config/microblaze/microblaze.md
23+++ b/gcc/config/microblaze/microblaze.md
24@@ -1650,7 +1650,7 @@
25 ;;----------------------------------------------------------------
26 (define_insn "cstoresf4"
27 [(set (match_operand:SI 0 "register_operand" "=r")
28- (match_operator 1 "comparison_operator"
29+ (match_operator:SI 1 "ordered_comparison_operator"
30 [(match_operand:SF 2 "register_operand" "r")
31 (match_operand:SF 3 "register_operand" "r")]))]
32 "TARGET_HARD_FLOAT"
33@@ -1679,7 +1679,7 @@
34
35 (define_expand "cbranchsf4"
36 [(set (pc)
37- (if_then_else (match_operator 0 "comparison_operator"
38+ (if_then_else (match_operator 0 "ordered_comparison_operator"
39 [(match_operand:SF 1 "register_operand")
40 (match_operand:SF 2 "register_operand")])
41 (label_ref (match_operand 3 ""))
42--
431.7.9.5
44
diff --git a/recipes-devtools/gcc/gcc-microblaze-4.8.inc b/recipes-devtools/gcc/gcc-microblaze-4.8.inc
index 7d68f8d0..8acd32b2 100644
--- a/recipes-devtools/gcc/gcc-microblaze-4.8.inc
+++ b/recipes-devtools/gcc/gcc-microblaze-4.8.inc
@@ -11,4 +11,5 @@ SRC_URI_append += " \
11 file://0007-Patch-microblaze-Add-SIZE_TYPE-and-PTRDIFF_TYPE-to-m.patch \ 11 file://0007-Patch-microblaze-Add-SIZE_TYPE-and-PTRDIFF_TYPE-to-m.patch \
12 file://0008-Patch-microblaze-Add-branch_compare-instruction.patch \ 12 file://0008-Patch-microblaze-Add-branch_compare-instruction.patch \
13 file://Patch-microblaze-Fix-bswaphi2-implementation.patch \ 13 file://Patch-microblaze-Fix-bswaphi2-implementation.patch \
14 file://Patch-microblaze-cstoresf4-add-mode-and-ordered_comp.patch \
14 " 15 "