aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/convert
diff options
context:
space:
mode:
Diffstat (limited to 'host/lib/convert')
-rw-r--r--host/lib/convert/convert_fc32_item32.cpp17
-rw-r--r--host/lib/convert/convert_pack_sc12.cpp2
-rw-r--r--host/lib/convert/convert_unpack_sc12.cpp2
-rw-r--r--host/lib/convert/sse2_fc32_to_sc16.cpp8
-rw-r--r--host/lib/convert/sse2_sc16_to_fc32.cpp8
5 files changed, 23 insertions, 14 deletions
diff --git a/host/lib/convert/convert_fc32_item32.cpp b/host/lib/convert/convert_fc32_item32.cpp
index 29bfefd46..641fc2608 100644
--- a/host/lib/convert/convert_fc32_item32.cpp
+++ b/host/lib/convert/convert_fc32_item32.cpp
@@ -28,7 +28,7 @@ typedef boost::uint32_t (*to32_type)(boost::uint32_t);
template <typename type, to32_type tohost>
struct convert_fc32_item32_1_to_star_1 : public converter
{
- convert_fc32_item32_1_to_star_1(void)
+ convert_fc32_item32_1_to_star_1(void):_scalar(0.0)
{
//NOP
}
@@ -48,9 +48,9 @@ struct convert_fc32_item32_1_to_star_1 : public converter
{
const item32_t i32 = tohost(input[i++]);
const item32_t q32 = tohost(input[i++]);
- const float i_f32 = reinterpret_cast<const float &>(i32);
- const float q_f32 = reinterpret_cast<const float &>(q32);
- output[o] = std::complex<type>(type(i_f32*_scalar), type(q_f32*_scalar));
+ const float *i_f32p = reinterpret_cast<const float *>(&i32);
+ const float *q_f32p = reinterpret_cast<const float *>(&q32);
+ output[o] = std::complex<type>(type((*i_f32p)*_scalar), type((*q_f32p)*_scalar));
}
}
@@ -60,7 +60,7 @@ struct convert_fc32_item32_1_to_star_1 : public converter
template <typename type, to32_type towire>
struct convert_star_1_to_fc32_item32_1 : public converter
{
- convert_star_1_to_fc32_item32_1(void)
+ convert_star_1_to_fc32_item32_1(void):_scalar(0.0)
{
//NOP
}
@@ -80,9 +80,10 @@ struct convert_star_1_to_fc32_item32_1 : public converter
{
const float i_f32 = type(input[i].real()*_scalar);
const float q_f32 = type(input[i].imag()*_scalar);
- const item32_t i32 = towire(reinterpret_cast<const item32_t &>(i_f32));
- const item32_t q32 = towire(reinterpret_cast<const item32_t &>(q_f32));
- output[o++] = i32; output[o++] = q32;
+ const item32_t *i32p = reinterpret_cast<const item32_t *>(&i_f32);
+ const item32_t *q32p = reinterpret_cast<const item32_t *>(&q_f32);
+ output[o++] = towire(*i32p);
+ output[o++] = towire(*q32p);
}
}
diff --git a/host/lib/convert/convert_pack_sc12.cpp b/host/lib/convert/convert_pack_sc12.cpp
index 680814994..92cd5d152 100644
--- a/host/lib/convert/convert_pack_sc12.cpp
+++ b/host/lib/convert/convert_pack_sc12.cpp
@@ -67,7 +67,7 @@ void convert_star_4_to_sc12_item32_3
template <typename type, towire32_type towire>
struct convert_star_1_to_sc12_item32_1 : public converter
{
- convert_star_1_to_sc12_item32_1(void)
+ convert_star_1_to_sc12_item32_1(void):_scalar(0.0)
{
//NOP
}
diff --git a/host/lib/convert/convert_unpack_sc12.cpp b/host/lib/convert/convert_unpack_sc12.cpp
index f578b6c95..6583eb21f 100644
--- a/host/lib/convert/convert_unpack_sc12.cpp
+++ b/host/lib/convert/convert_unpack_sc12.cpp
@@ -73,7 +73,7 @@ void convert_sc12_item32_3_to_star_4
template <typename type, tohost32_type tohost>
struct convert_sc12_item32_1_to_star_1 : public converter
{
- convert_sc12_item32_1_to_star_1(void)
+ convert_sc12_item32_1_to_star_1(void):_scalar(0.0)
{
//NOP
}
diff --git a/host/lib/convert/sse2_fc32_to_sc16.cpp b/host/lib/convert/sse2_fc32_to_sc16.cpp
index 90bf0ed04..f5a2b7610 100644
--- a/host/lib/convert/sse2_fc32_to_sc16.cpp
+++ b/host/lib/convert/sse2_fc32_to_sc16.cpp
@@ -51,7 +51,9 @@ DECLARE_CONVERTER(fc32, 1, sc16_item32_le, 1, PRIORITY_SIMD){
//dispatch according to alignment
switch (size_t(input) & 0xf){
case 0x8:
- xx_to_item32_sc16<uhd::htowx>(input, output, 1, scale_factor); i++;
+ xx_to_item32_sc16<uhd::htowx>(input, output, 1, scale_factor);
+ i++;
+ break;
case 0x0:
convert_fc32_1_to_item32_1_nswap_guts(_)
break;
@@ -91,7 +93,9 @@ DECLARE_CONVERTER(fc32, 1, sc16_item32_be, 1, PRIORITY_SIMD){
//dispatch according to alignment
switch (size_t(input) & 0xf){
case 0x8:
- xx_to_item32_sc16<uhd::htonx>(input, output, 1, scale_factor); i++;
+ xx_to_item32_sc16<uhd::htonx>(input, output, 1, scale_factor);
+ i++;
+ break;
case 0x0:
convert_fc32_1_to_item32_1_bswap_guts(_)
break;
diff --git a/host/lib/convert/sse2_sc16_to_fc32.cpp b/host/lib/convert/sse2_sc16_to_fc32.cpp
index c03e41585..7a9860970 100644
--- a/host/lib/convert/sse2_sc16_to_fc32.cpp
+++ b/host/lib/convert/sse2_sc16_to_fc32.cpp
@@ -53,7 +53,9 @@ DECLARE_CONVERTER(sc16_item32_le, 1, fc32, 1, PRIORITY_SIMD){
//dispatch according to alignment
switch (size_t(output) & 0xf){
case 0x8:
- item32_sc16_to_xx<uhd::htowx>(input, output, 1, scale_factor); i++;
+ item32_sc16_to_xx<uhd::htowx>(input, output, 1, scale_factor);
+ i++;
+ break;
case 0x0:
convert_item32_1_to_fc32_1_nswap_guts(_)
break;
@@ -95,7 +97,9 @@ DECLARE_CONVERTER(sc16_item32_be, 1, fc32, 1, PRIORITY_SIMD){
//dispatch according to alignment
switch (size_t(output) & 0xf){
case 0x8:
- item32_sc16_to_xx<uhd::htonx>(input, output, 1, scale_factor); i++;
+ item32_sc16_to_xx<uhd::htonx>(input, output, 1, scale_factor);
+ i++;
+ break;
case 0x0:
convert_item32_1_to_fc32_1_bswap_guts(_)
break;