diff options
Diffstat (limited to 'recipes-microblaze/gcc/files/Patch-microblaze-cstoresf4-add-mode-and-ordered_comp.patch')
-rw-r--r-- | recipes-microblaze/gcc/files/Patch-microblaze-cstoresf4-add-mode-and-ordered_comp.patch | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/recipes-microblaze/gcc/files/Patch-microblaze-cstoresf4-add-mode-and-ordered_comp.patch b/recipes-microblaze/gcc/files/Patch-microblaze-cstoresf4-add-mode-and-ordered_comp.patch new file mode 100644 index 00000000..934e7fa9 --- /dev/null +++ b/recipes-microblaze/gcc/files/Patch-microblaze-cstoresf4-add-mode-and-ordered_comp.patch @@ -0,0 +1,44 @@ +From: David Holsgrove <david.holsgrove@xilinx.com> +Subject: [PATCH] [Patch, microblaze]: cstoresf4, add mode and + ordered_comparison_operator + +Add SImode to comparison operator, prevents ICE during combine +rtl pass with error message; + +internal compiler error: in simplify_subreg, at simplify-rtx.c:5725 + +Use ordered_comparison_operator predicate to limit operators to +those fcmp can handle, and letting compiler reorder insns to +accomodate unordered as necessary + +Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> +Upstream-Status: Pending +--- + gcc/config/microblaze/microblaze.md | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md +index 786dabb..e9b032b 100644 +--- a/gcc/config/microblaze/microblaze.md ++++ b/gcc/config/microblaze/microblaze.md +@@ -1650,7 +1650,7 @@ + ;;---------------------------------------------------------------- + (define_insn "cstoresf4" + [(set (match_operand:SI 0 "register_operand" "=r") +- (match_operator 1 "comparison_operator" ++ (match_operator:SI 1 "ordered_comparison_operator" + [(match_operand:SF 2 "register_operand" "r") + (match_operand:SF 3 "register_operand" "r")]))] + "TARGET_HARD_FLOAT" +@@ -1679,7 +1679,7 @@ + + (define_expand "cbranchsf4" + [(set (pc) +- (if_then_else (match_operator 0 "comparison_operator" ++ (if_then_else (match_operator 0 "ordered_comparison_operator" + [(match_operand:SF 1 "register_operand") + (match_operand:SF 2 "register_operand")]) + (label_ref (match_operand 3 "")) +-- +1.7.9.5 + |