diff options
Diffstat (limited to 'meta/packages/gcc/gcc-4.2.3/arm-crunch-cfcvtds-disable.patch')
-rw-r--r-- | meta/packages/gcc/gcc-4.2.3/arm-crunch-cfcvtds-disable.patch | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/meta/packages/gcc/gcc-4.2.3/arm-crunch-cfcvtds-disable.patch b/meta/packages/gcc/gcc-4.2.3/arm-crunch-cfcvtds-disable.patch new file mode 100644 index 0000000000..ec09ea16a1 --- /dev/null +++ b/meta/packages/gcc/gcc-4.2.3/arm-crunch-cfcvtds-disable.patch | |||
@@ -0,0 +1,32 @@ | |||
1 | --- gcc-4.1.2/gcc/config/arm/cirrus.md-cfcvt 2007-06-15 10:06:24.000000000 +1000 | ||
2 | +++ gcc-4.1.2/gcc/config/arm/cirrus.md 2007-06-15 10:07:21.000000000 +1000 | ||
3 | @@ -355,11 +355,12 @@ | ||
4 | (set_attr "cirrus" "normal")] | ||
5 | ) | ||
6 | |||
7 | +; appears to be buggy - causes 20000320-1.c to fail in execute/ieee | ||
8 | (define_insn "*cirrus_truncdfsf2" | ||
9 | [(set (match_operand:SF 0 "cirrus_fp_register" "=v") | ||
10 | (float_truncate:SF | ||
11 | (match_operand:DF 1 "cirrus_fp_register" "v")))] | ||
12 | - "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_MAVERICK" | ||
13 | + "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_MAVERICK && 0" | ||
14 | "cfcvtds%?\\t%V0, %V1" | ||
15 | [(set_attr "cirrus" "normal")] | ||
16 | ) | ||
17 | --- gcc-4.1.2/gcc/config/arm/arm.md-truncdfsf2 2007-06-15 10:25:43.000000000 +1000 | ||
18 | +++ gcc-4.1.2/gcc/config/arm/arm.md 2007-06-15 10:27:01.000000000 +1000 | ||
19 | @@ -3181,11 +3181,12 @@ | ||
20 | |||
21 | ;; Truncation insns | ||
22 | |||
23 | +;; Maverick Crunch truncdfsf2 is buggy - see cirrus.md | ||
24 | (define_expand "truncdfsf2" | ||
25 | [(set (match_operand:SF 0 "s_register_operand" "") | ||
26 | (float_truncate:SF | ||
27 | (match_operand:DF 1 "s_register_operand" "")))] | ||
28 | - "TARGET_ARM && TARGET_HARD_FLOAT" | ||
29 | + "TARGET_ARM && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP)" | ||
30 | "" | ||
31 | ) | ||
32 | |||