2012-10-19 Greta Yorsh <Greta.Yorsh@arm.com>
gcc/testsuite/
* gcc.target/arm/target-supports.exp (check_effective_target_arm_prefer_ldrd_strd):
New procedure.
gcc/
* doc/sourcebuild.texi (Effective-Target Keywords): Document
new effective target keyword arm_prefer_ldrd_strd.
From-SVN: r192615
+2012-10-19 Greta Yorsh <Greta.Yorsh@arm.com>
+
+ * doc/sourcebuild.texi (Effective-Target Keywords): Document
+ new effective target keyword arm_prefer_ldrd_strd.
+
2012-10-19 Richard Guenther <rguenther@suse.de>
PR tree-optimization/54981
@item arm_vfp_ok
ARM target supports @code{-mfpu=vfp -mfloat-abi=softfp}.
Some multilibs may be incompatible with these options.
+
+@item arm_prefer_ldrd_strd
+ARM target prefers @code{LDRD} and @code{STRD} instructions over
+@code{LDM} and @code{STM} instructions.
+
@end table
@subsubsection MIPS-specific attributes
+2012-10-19 Greta Yorsh <Greta.Yorsh@arm.com>
+
+ * lib/target-supports.exp (check_effective_target_arm_prefer_ldrd_strd):
+ New procedure.
+
2012-10-19 Richard Guenther <rguenther@suse.de>
PR tree-optimization/54981
}
}
+# Return true if LDRD/STRD instructions are prefered over LDM/STM instructions
+# for an ARM target.
+proc check_effective_target_arm_prefer_ldrd_strd { } {
+ if { ![check_effective_target_arm32] } {
+ return 0;
+ }
+
+ return [check_no_messages_and_pattern arm_prefer_ldrd_strd "strd\tr" assembly {
+ void foo (int *p) { p[0] = 1; p[1] = 0;}
+ } "-O2 -mthumb" ]
+}
+
# Return 1 if this is a PowerPC target with floating-point registers.
proc check_effective_target_powerpc_fprs { } {