summaryrefslogtreecommitdiff
path: root/src/Makefile.am
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2013-02-28 22:38:25 +0400
committerIvan Maidanski <ivmai@mail.ru>2013-02-28 22:38:25 +0400
commit713e8cdf7de39d3a6383c9b311daf57fe21e73e8 (patch)
treec9bbd7bab63c88985febe9083f97365dd00d2dbc /src/Makefile.am
parentdc117fd3dd5e93d1f50a5ec66b68aac7a240c08c (diff)
downloadlibatomic_ops-713e8cdf7de39d3a6383c9b311daf57fe21e73e8.tar.gz
Minimize gcc/generic-arithm template by factoring out barriers
(code refactoring) * src/Makefile.am (atomic_ops/sysdeps/gcc/generic-arithm.h): Iterate over XBAR/XGCCBAR (in addition to XSIZE/XCTYPE). * src/atomic_ops/sysdeps/gcc/generic-arithm.template: Parametrize all primitives with XBAR (replacing AO none/acquire/release/full barriers) and with XGCCBAR (replacing GCC atomic RELAXED/ACQUIRE/RELEASE/SEQ_CST barriers, respectively). * src/atomic_ops/sysdeps/gcc/generic-arithm.h: Regenerate.
Diffstat (limited to 'src/Makefile.am')
-rw-r--r--src/Makefile.am36
1 files changed, 32 insertions, 4 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index f611ac4..7d586e9 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -124,10 +124,38 @@ atomic_ops/sysdeps/ao_t_is_int.h: atomic_ops/sysdeps/ao_t_is_int.template
atomic_ops/sysdeps/gcc/generic-arithm.h: \
atomic_ops/sysdeps/gcc/generic-arithm.template
- sed -e s:XSIZE:char:g -e s:XCTYPE:unsigned/**/char:g $? > $@
- sed -e s:XSIZE:short:g -e s:XCTYPE:unsigned/**/short:g $? >> $@
- sed -e s:XSIZE:int:g -e s:XCTYPE:unsigned:g $? >> $@
- sed -e s:XSIZE_::g -e s:XCTYPE:AO_t:g $? >> $@
+ sed -e s:_XBAR::g -e s:XGCCBAR:RELAXED:g \
+ -e s:XSIZE:char:g -e s:XCTYPE:unsigned/**/char:g $? > $@
+ sed -e s:_XBAR::g -e s:XGCCBAR:RELAXED:g \
+ -e s:XSIZE:short:g -e s:XCTYPE:unsigned/**/short:g $? >> $@
+ sed -e s:_XBAR::g -e s:XGCCBAR:RELAXED:g \
+ -e s:XSIZE:int:g -e s:XCTYPE:unsigned:g $? >> $@
+ sed -e s:_XBAR::g -e s:XGCCBAR:RELAXED:g \
+ -e s:XSIZE_::g -e s:XCTYPE:AO_t:g $? >> $@
+ sed -e s:XBAR:acquire:g -e s:XGCCBAR:ACQUIRE:g \
+ -e s:XSIZE:char:g -e s:XCTYPE:unsigned/**/char:g $? >> $@
+ sed -e s:XBAR:acquire:g -e s:XGCCBAR:ACQUIRE:g \
+ -e s:XSIZE:short:g -e s:XCTYPE:unsigned/**/short:g $? >> $@
+ sed -e s:XBAR:acquire:g -e s:XGCCBAR:ACQUIRE:g \
+ -e s:XSIZE:int:g -e s:XCTYPE:unsigned:g $? >> $@
+ sed -e s:XBAR:acquire:g -e s:XGCCBAR:ACQUIRE:g \
+ -e s:XSIZE_::g -e s:XCTYPE:AO_t:g $? >> $@
+ sed -e s:XBAR:release:g -e s:XGCCBAR:RELEASE:g \
+ -e s:XSIZE:char:g -e s:XCTYPE:unsigned/**/char:g $? >> $@
+ sed -e s:XBAR:release:g -e s:XGCCBAR:RELEASE:g \
+ -e s:XSIZE:short:g -e s:XCTYPE:unsigned/**/short:g $? >> $@
+ sed -e s:XBAR:release:g -e s:XGCCBAR:RELEASE:g \
+ -e s:XSIZE:int:g -e s:XCTYPE:unsigned:g $? >> $@
+ sed -e s:XBAR:release:g -e s:XGCCBAR:RELEASE:g \
+ -e s:XSIZE_::g -e s:XCTYPE:AO_t:g $? >> $@
+ sed -e s:XBAR:full:g -e s:XGCCBAR:SEQ_CST:g \
+ -e s:XSIZE:char:g -e s:XCTYPE:unsigned/**/char:g $? >> $@
+ sed -e s:XBAR:full:g -e s:XGCCBAR:SEQ_CST:g \
+ -e s:XSIZE:short:g -e s:XCTYPE:unsigned/**/short:g $? >> $@
+ sed -e s:XBAR:full:g -e s:XGCCBAR:SEQ_CST:g \
+ -e s:XSIZE:int:g -e s:XCTYPE:unsigned:g $? >> $@
+ sed -e s:XBAR:full:g -e s:XGCCBAR:SEQ_CST:g \
+ -e s:XSIZE_::g -e s:XCTYPE:AO_t:g $? >> $@
atomic_ops/sysdeps/gcc/generic-small.h: \
atomic_ops/sysdeps/gcc/generic-small.template