summaryrefslogtreecommitdiffstats
path: root/meta/packages/gcc/gcc-4.2.3/arm-crunch-compare-geu.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/packages/gcc/gcc-4.2.3/arm-crunch-compare-geu.patch')
-rw-r--r--meta/packages/gcc/gcc-4.2.3/arm-crunch-compare-geu.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/meta/packages/gcc/gcc-4.2.3/arm-crunch-compare-geu.patch b/meta/packages/gcc/gcc-4.2.3/arm-crunch-compare-geu.patch
new file mode 100644
index 0000000000..3d27cc1d9d
--- /dev/null
+++ b/meta/packages/gcc/gcc-4.2.3/arm-crunch-compare-geu.patch
@@ -0,0 +1,48 @@
1--- gcc-4.1.2/gcc/config/arm/arm.md-original 2007-06-08 06:39:41.000000000 +1000
2+++ gcc-4.1.2/gcc/config/arm/arm.md 2007-06-08 06:41:00.000000000 +1000
3@@ -7125,6 +7125,22 @@
4 (set_attr "length" "8")]
5 )
6
7+; Special pattern to match GEU for MAVERICK.
8+(define_insn "*arm_bgeu"
9+ [(set (pc)
10+ (if_then_else (geu (match_operand 1 "cc_register" "") (const_int 0))
11+ (label_ref (match_operand 0 "" ""))
12+ (pc)))]
13+ "TARGET_ARM && (TARGET_MAVERICK)"
14+ "*
15+ gcc_assert (!arm_ccfsm_state);
16+ if (get_attr_cirrus (prev_active_insn(insn)) == CIRRUS_COMPARE)
17+ return \"beq\\t%l0\;bvs\\t%l0\"; else return \"bge\\t%l0\;nop\";
18+ "
19+ [(set_attr "conds" "jump_clob")
20+ (set_attr "length" "8")]
21+)
22+
23 ; Special pattern to match UNLT for MAVERICK - UGLY since we need to test for Z=0 && V=0.
24 (define_insn "*arm_bunlt"
25 [(set (pc)
26@@ -7240,6 +7256,22 @@
27 (set_attr "length" "8")]
28 )
29
30+; Special pattern to match reversed GEU for MAVERICK.
31+(define_insn "*arm_bgeu_reversed"
32+ [(set (pc)
33+ (if_then_else (geu (match_operand 1 "cc_register" "") (const_int 0))
34+ (pc)
35+ (label_ref (match_operand 0 "" ""))))]
36+ "TARGET_ARM && (TARGET_MAVERICK)"
37+ "*
38+ gcc_assert (!arm_ccfsm_state);
39+
40+ return \"beq\\t.+12\;bvs\\t.+8\;b\\t%l0\";
41+ "
42+ [(set_attr "conds" "jump_clob")
43+ (set_attr "length" "12")]
44+)
45+
46 ; Special pattern to match reversed UNLT for MAVERICK.
47 (define_insn "*arm_bunlt_reversed"
48 [(set (pc)