On 04/26/14 11:57, Kugan wrote:
Attached patch implements TARGET_ATOMIC_ASSIGN_EXPAND_FENV for AARCH64.
With this, atomic test-case gcc.dg/atomic/c11-atomic-exec-5.c now PASS.

This implementation is based on SPARC and i386 implementations.

Regression tested on qemu-aarch64 for aarch64-none-linux-gnu with no new
regression. Is this OK for trunk?

Again like A32 please test on hardware to make sure this behaves correctly with c11-atomic-exec-5.c .

If you don't have access to hardware, let us know : we'll take it for a spin once you update the patch according to Marcus's comments.

regards
Ramana


Thanks,
Kugan

gcc/
+2014-04-27  Kugan Vivekanandarajah  <kug...@linaro.org>
+
+       * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
+       define.
+       * config/aarch64/aarch64-builtins.c (arm_builtins) : Add
+       AARCH64_BUILTIN_LDFPSCR and AARCH64_BUILTIN_STFPSCR.
+       (aarch64_init_builtins) : Initialize builtins
+       __builtins_aarch64_stfpscr and __builtins_aarch64_ldfpscr.
+       (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_stfpscr
+       and __builtins_aarch64_ldfpscr.
+       (aarch64_atomic_assign_expand_fenv): New function.
+       * config/aarch64/aarch64.md (stfpscr): New pattern.
+       (ldfpscr) : Likewise.
+       (unspecv): Add UNSPECV_LDFPSCR and UNSPECV_STFPSCR.
+






--
Ramana Radhakrishnan
Principal Engineer
ARM Ltd.

Reply via email to