aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2015-11-20 15:19:09 +0000
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>2015-11-20 15:19:09 +0000
commit8e92560a9c9c57dfed3283c48ef5e46a7e0204b1 (patch)
tree7537684c2270e6e521ed169b8b6a13da9a61f96a /gcc/testsuite
parent88fdc9a66e4b14aef5aa4b873223e4d081a8824c (diff)
downloadgcc-8e92560a9c9c57dfed3283c48ef5e46a7e0204b1.zip
gcc-8e92560a9c9c57dfed3283c48ef5e46a7e0204b1.tar.gz
gcc-8e92560a9c9c57dfed3283c48ef5e46a7e0204b1.tar.bz2
[ARM] Do not expand movmisalign pattern if not in 32-bit mode
* config/arm/arm.c (arm_option_override): Require TARGET_32BIT for unaligned_access. * config/arm/arm.md (unaligned_loadsi): Remove redundant TARGET_32BIT from matching condition. (unaligned_loadhis): Likewise. (unaligned_loadhiu): Likewise. (unaligned_storesi): Likewise. (unaligned_storehi): Likewise. * gcc.target/arm/armv6-unaligned-load-ice.c: New test. From-SVN: r230664
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.target/arm/armv6-unaligned-load-ice.c18
2 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b6810c8..d55f6dd 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2015-11-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * gcc.target/arm/armv6-unaligned-load-ice.c: New test.
+
2015-11-20 Paul Thomas <pault@gcc.gnu.org>
PR fortran/68237
diff --git a/gcc/testsuite/gcc.target/arm/armv6-unaligned-load-ice.c b/gcc/testsuite/gcc.target/arm/armv6-unaligned-load-ice.c
new file mode 100644
index 0000000..88528f1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/armv6-unaligned-load-ice.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" } { "-march=armv6k" } } */
+/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-marm" } { "" } } */
+/* { dg-options "-mthumb -Os -mfloat-abi=softfp" } */
+/* { dg-add-options arm_arch_v6k } */
+
+long
+get_number (char *s, long size, int unsigned_p)
+{
+ long x;
+ unsigned char *p = (unsigned char *) s;
+ switch (size)
+ {
+ case 4:
+ x = ((long) p[3] << 24) | ((long) p[2] << 16) | (p[1] << 8) | p[0];
+ return x;
+ }
+}