This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: [PATCH][ARM][1/2] Load-acquire, store-release atomics in AArch32 ARMv8


Ping?

http://gcc.gnu.org/ml/gcc-patches/2013-01/msg01441.html

I thought this was ok'd for 4.9 but I can't seem to find the ok email in the
archives.

Thanks,
Kyrill

> -----Original Message-----
> From: gcc-patches-owner@gcc.gnu.org [mailto:gcc-patches-
> owner@gcc.gnu.org] On Behalf Of Kyrylo Tkachov
> Sent: 30 January 2013 15:55
> To: gcc-patches@gcc.gnu.org
> Cc: Ramana Radhakrishnan; Richard Earnshaw
> Subject: [PATCH][ARM][1/2] Load-acquire, store-release atomics in
> AArch32 ARMv8
> 
> Hi all,
> 
> This patch implements the atomic built-ins using the new ARMv8 load-
> acquire
> and store-release instructions.
> They allow us to generate barrier-free code for a variety of atomic
> operations such as: atomic load, atomic store, atomic compare and swap,
> atomic {or, and, add, sub, xor}.
> 
> Tests will come in a separate patch soon.
> No regressions on arm-none-eabi. Bootstrap on armv7l-unknown-linux-
> gnueabihf
> successful.
> 
> Ok for trunk (now or when stage 1 reopens)?
> 
> Thanks,
> Kyrill
> 
> gcc/ChangeLog
> 
> 2013-01-23  Kyrylo Tkachov  <kyrylo.tkachov at arm.com>
> 
> 	* config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
> 	Emit load-acquire versions when acq is true.
> 	(arm_emit_store_exclusive): Add rel parameter.
> 	Emit store-release versions when rel is true.
> 	(arm_split_compare_and_swap): Use acquire-release instructions
> instead
> 	of barriers when appropriate.
> 	(arm_split_atomic_op): Likewise.
> 	* config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
> 	* config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
> 	(VUNSPEC_SLX): Likewise.
> 	(VUNSPEC_LDA): Likewise.
> 	(VUNSPEC_STL): Likewise.
> 	* config/arm/sync.md (atomic_load<mode>): New pattern.
> 	(atomic_store<mode>): Likewise.
> 	(arm_load_acquire_exclusive<mode>): Likewise.
> 	(arm_load_acquire_exclusivesi): Likewise.
> 	(arm_load_acquire_exclusivedi): Likewise.
> 	(arm_store_release_exclusive<mode>): Likewise.




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]