aboutsummaryrefslogtreecommitdiffstats
path: root/Transceiver52M/Makefile.am
diff options
context:
space:
mode:
authorThomas Tsou <tom@tsou.cc>2013-08-20 19:31:14 -0400
committerThomas Tsou <tom@tsou.cc>2013-10-18 13:10:17 -0400
commit3eaae80c90752abe3173c43a5dae5cdf17493764 (patch)
tree3603f332c066f9d6c1c438c5cc09d3a7f7f7bec0 /Transceiver52M/Makefile.am
parente57004d0c3cae8ca5db3ca3eb2bcc7b9bc1d2534 (diff)
Transceiver52M: Replace convolve and related calls with SSE implementation
This large patch replaced the convolve() call with an SSE vector enabled version. The lower C and SSE intrinsic based code operates on fixed and aligned vectors for the filter taps. The storage format of interleaved I/Q for both complex and real vectors is maintained. SSE filter tap values must: 1. Start 16-byte aligned 2. Number with a multiple of 4 between 4 and 20 for real taps 3. Number with a multiple of 4 for complex taps Non-compliant values will fall back to non-SSE usage. Fixed length iterators mean that head and tail cases may require reallocation of the input vector, which is automatically handled by the upper C++ interface. Other calls are affected by these changes and adjusted or rewritten accordingly. The underlying algorithms, however, are unchanged. generateGSMPulse() analyzeTrafficBurst() detectRACHBurst() Intel SSE configuration is automatically detected and configured at build time with Autoconf macros. Signed-off-by: Thomas Tsou <tom@tsou.cc>
Diffstat (limited to 'Transceiver52M/Makefile.am')
-rw-r--r--Transceiver52M/Makefile.am19
1 files changed, 10 insertions, 9 deletions
diff --git a/Transceiver52M/Makefile.am b/Transceiver52M/Makefile.am
index 6fcef7c..67ab0ea 100644
--- a/Transceiver52M/Makefile.am
+++ b/Transceiver52M/Makefile.am
@@ -21,19 +21,18 @@
include $(top_srcdir)/Makefile.common
+AM_CFLAGS = $(STD_DEFINES_AND_INCLUDES) -std=gnu99 -march=native
+AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES)
+AM_CXXFLAGS = -ldl -lpthread
+
#UHD wins if both are defined
if UHD
-AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(UHD_CFLAGS)
+AM_CPPFLAGS += $(UHD_CFLAGS)
else
if USRP1
-AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(USRP_CFLAGS)
-else
-#we should never be here, as this doesn't build if one of the above
-#doesn't exist
-AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES)
+AM_CPPFLAGS += $(USRP_CFLAGS)
endif
endif
-AM_CXXFLAGS = -ldl -lpthread
rev2dir = $(datadir)/usrp/rev2
rev4dir = $(datadir)/usrp/rev4
@@ -53,7 +52,8 @@ COMMON_SOURCES = \
radioClock.cpp \
sigProcLib.cpp \
Transceiver.cpp \
- DummyLoad.cpp
+ DummyLoad.cpp \
+ convolve.c
libtransceiver_la_SOURCES = \
$(COMMON_SOURCES) \
@@ -75,7 +75,8 @@ noinst_HEADERS = \
USRPDevice.h \
DummyLoad.h \
rcvLPF_651.h \
- sendLPF_961.h
+ sendLPF_961.h \
+ convolve.h
USRPping_SOURCES = USRPping.cpp
USRPping_LDADD = \