This patch adjusts the tests to accept LDRD or LDM, depending on effective
target arm_prefer_ldrd_strd. To handle the cases in which this test is not
valid, use effective target arm_notthumb instead of __thumb_ predefine.

With this patch, the test interrup-2.c will fail when arm_prefer_ldrd_strd
holds:
FAIL: gcc.dg/fixed-point/cast-bad.c (test for excess errors)
FAIL: gcc.dg/fixed-point/muldiv-warning.c  (test for warnings, line 68)
FAIL: gcc.dg/fixed-point/muldiv-warning.c (test for excess errors)
It fails because epilogue still uses LDM instead of LDRD, but the generated
assembly is correct. These failures are caused by an issue with
__attribute__((__interrupt__)) and epilogue generation in RTL, which is
unrelated to LDRD epilogue patched and therefore will be addressed by a
separate patch.


ChangeLog

gcc/testsuite/

2012-10-10  Greta Yorsh  <greta.yo...@arm.com>

        * gcc.target/arm/interrupt-1.c: Likewise.
        * gcc.target/arm/interrupt-2.c: Likewise.



Reply via email to