This is the mail archive of the 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


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


> -----Original Message-----
> From: [mailto:gcc-patches-
>] On Behalf Of Kyrylo Tkachov
> Sent: 30 January 2013 15:55
> To:
> 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>
> 	* 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/ (VUNSPEC_LAX): New unspec.
> 	(VUNSPEC_SLX): Likewise.
> 	(VUNSPEC_LDA): Likewise.
> 	(VUNSPEC_STL): Likewise.
> 	* config/arm/ (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]