gcc: prevent the use of LDRD/STRD on ARMv5TE
[openwrt/openwrt.git] / toolchain / gcc / patches / 4.6-linaro / 800-arm_v5te_no_ldrd_strd.patch
diff --git a/toolchain/gcc/patches/4.6-linaro/800-arm_v5te_no_ldrd_strd.patch b/toolchain/gcc/patches/4.6-linaro/800-arm_v5te_no_ldrd_strd.patch
new file mode 100644 (file)
index 0000000..4b7770d
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/gcc/config/arm/arm.h
++++ b/gcc/config/arm/arm.h
+@@ -232,7 +232,7 @@ extern void (*arm_lang_output_object_att
+ #define TARGET_BACKTRACE              (leaf_function_p () \
+                                        ? TARGET_TPCS_LEAF_FRAME \
+                                        : TARGET_TPCS_FRAME)
+-#define TARGET_LDRD                   (arm_arch5e && ARM_DOUBLEWORD_ALIGN)
++#define TARGET_LDRD                   (arm_arch6 && ARM_DOUBLEWORD_ALIGN)
+ #define TARGET_AAPCS_BASED \
+     (arm_abi != ARM_ABI_APCS && arm_abi != ARM_ABI_ATPCS)