mirror of
https://git.yoctoproject.org/poky
synced 2026-09-19 09:49:33 +02:00
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@4286 311d38ba-8fff-0310-9ca6-ca027cbcb966
99 lines
3.1 KiB
Diff
99 lines
3.1 KiB
Diff
--- gcc-4.1.2/gcc/config/arm/arm.md-original 2007-06-07 14:45:22.000000000 +1000
|
|
+++ gcc-4.1.2/gcc/config/arm/arm.md 2007-06-07 15:13:58.000000000 +1000
|
|
@@ -7001,16 +7001,16 @@
|
|
(if_then_else (unordered (match_dup 1) (const_int 0))
|
|
(label_ref (match_operand 0 "" ""))
|
|
(pc)))]
|
|
- "TARGET_ARM && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP)"
|
|
+ "TARGET_ARM && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP || TARGET_MAVERICK)"
|
|
"operands[1] = arm_gen_compare_reg (UNORDERED, arm_compare_op0,
|
|
arm_compare_op1);"
|
|
)
|
|
|
|
(define_expand "bordered"
|
|
[(set (pc)
|
|
(if_then_else (ordered (match_dup 1) (const_int 0))
|
|
(label_ref (match_operand 0 "" ""))
|
|
(pc)))]
|
|
- "TARGET_ARM && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP)"
|
|
+ "TARGET_ARM && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP || TARGET_MAVERICK)"
|
|
"operands[1] = arm_gen_compare_reg (ORDERED, arm_compare_op0,
|
|
arm_compare_op1);"
|
|
@@ -7141,6 +7141,38 @@
|
|
(set_attr "length" "8")]
|
|
)
|
|
|
|
+; Special pattern to match UNORDERED for MAVERICK - UGLY since we need to test for Z=0 && N=0.
|
|
+(define_insn "*arm_bunordered"
|
|
+ [(set (pc)
|
|
+ (if_then_else (unordered (match_operand:CCFP 1 "cc_register" "") (const_int 0))
|
|
+ (label_ref (match_operand 0 "" ""))
|
|
+ (pc)))]
|
|
+ "TARGET_ARM && TARGET_HARD_FLOAT && (TARGET_MAVERICK)"
|
|
+ "*
|
|
+ gcc_assert (!arm_ccfsm_state);
|
|
+
|
|
+ return \"beq\\t.+12\;bmi\\t.+8\;b\\t%l0\";
|
|
+ "
|
|
+ [(set_attr "conds" "jump_clob")
|
|
+ (set_attr "length" "12")]
|
|
+)
|
|
+
|
|
+; Special pattern to match ORDERED for MAVERICK.
|
|
+(define_insn "*arm_bordered"
|
|
+ [(set (pc)
|
|
+ (if_then_else (ordered (match_operand:CCFP 1 "cc_register" "") (const_int 0))
|
|
+ (label_ref (match_operand 0 "" ""))
|
|
+ (pc)))]
|
|
+ "TARGET_ARM && TARGET_HARD_FLOAT && (TARGET_MAVERICK)"
|
|
+ "*
|
|
+ gcc_assert (!arm_ccfsm_state);
|
|
+
|
|
+ return \"beq\\t%l0\;bmi\\t%l0\";
|
|
+ "
|
|
+ [(set_attr "conds" "jump_clob")
|
|
+ (set_attr "length" "8")]
|
|
+)
|
|
+
|
|
(define_insn "*arm_cond_branch"
|
|
[(set (pc)
|
|
(if_then_else (match_operator 1 "arm_comparison_operator"
|
|
@@ -7224,6 +7256,37 @@
|
|
(set_attr "length" "8")]
|
|
)
|
|
|
|
+; Special pattern to match reversed UNORDERED for MAVERICK.
|
|
+(define_insn "*arm_bunordered_reversed"
|
|
+ [(set (pc)
|
|
+ (if_then_else (unordered (match_operand:CCFP 1 "cc_register" "") (const_int 0))
|
|
+ (pc)
|
|
+ (label_ref (match_operand 0 "" ""))))]
|
|
+ "TARGET_ARM && TARGET_HARD_FLOAT && (TARGET_MAVERICK)"
|
|
+ "*
|
|
+ gcc_assert (!arm_ccfsm_state);
|
|
+
|
|
+ return \"beq\\t%l0\;bmi\\t%l0\";
|
|
+ "
|
|
+ [(set_attr "conds" "jump_clob")
|
|
+ (set_attr "length" "8")]
|
|
+)
|
|
+
|
|
+; Special pattern to match reversed ORDERED for MAVERICK - UGLY since we need to test for Z=0 && N=0.
|
|
+(define_insn "*arm_bordered_reversed"
|
|
+ [(set (pc)
|
|
+ (if_then_else (ordered (match_operand:CCFP 1 "cc_register" "") (const_int 0))
|
|
+ (pc)
|
|
+ (label_ref (match_operand 0 "" ""))))]
|
|
+ "TARGET_ARM && TARGET_HARD_FLOAT && (TARGET_MAVERICK)"
|
|
+ "*
|
|
+ gcc_assert (!arm_ccfsm_state);
|
|
+
|
|
+ return \"beq\\t.+12\;bmi\\t.+8\;b\\t%l0\";
|
|
+ "
|
|
+ [(set_attr "conds" "jump_clob")
|
|
+ (set_attr "length" "12")]
|
|
+)
|
|
|
|
(define_insn "*arm_cond_branch_reversed"
|
|
[(set (pc)
|