+2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
+
+ * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
+
2016-06-01 Eduard Sanou <dhole@openmailbox.org>
* doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
multilibs may be incompatible with the options needed. Implies
arm_v8_1a_neon_ok.
+@item arm_acq_rel
+ARM target supports acquire-release instructions.
+
@item arm_prefer_ldrd_strd
ARM target prefers @code{LDRD} and @code{STRD} instructions over
@code{LDM} and @code{STM} instructions.
+2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
+
+ * lib/target-supports.exp (check_effective_target_arm_acq_rel): New
+ procedure.
+
2016-06-01 Eduard Sanou <dhole@openmailbox.org>
* gcc.dg/cpp/source_date_epoch-1.c: New file, test the proper
}
}
+# Return 1 if this is an ARM target with load acquire and store release
+# instructions for 8-, 16- and 32-bit types.
+
+proc check_effective_target_arm_acq_rel { } {
+ return [check_no_compiler_messages arm_acq_rel object {
+ void
+ load_acquire_store_release (void)
+ {
+ asm ("lda r0, [r1]\n\t"
+ "stl r0, [r1]\n\t"
+ "ldah r0, [r1]\n\t"
+ "stlh r0, [r1]\n\t"
+ "ldab r0, [r1]\n\t"
+ "stlb r0, [r1]"
+ : : : "r0", "memory");
+ }
+ }]
+}
+
# Return 1 if this a Loongson-2E or -2F target using an ABI that supports
# the Loongson vector modes.
|| [istarget aarch64*-*-*]
|| [istarget alpha*-*-*]
|| [istarget arm*-*-linux-*]
+ || ([istarget arm*-*-*]
+ && [check_effective_target_arm_acq_rel])
|| [istarget bfin*-*linux*]
|| [istarget hppa*-*linux*]
|| [istarget s390*-*-*]
|| [istarget i?86-*-*] || [istarget x86_64-*-*]
|| [istarget alpha*-*-*]
|| [istarget arm*-*-linux-*]
+ || ([istarget arm*-*-*]
+ && [check_effective_target_arm_acq_rel])
|| [istarget hppa*-*linux*]
|| [istarget s390*-*-*]
|| [istarget powerpc*-*-*]