diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/systemc/dt/fx/scfx_rep.cc | 5 | ||||
-rw-r--r-- | src/systemc/ext/dt/bit/sc_proxy.hh | 2 | ||||
-rw-r--r-- | src/systemc/ext/dt/fx/sc_fxdefs.hh | 6 | ||||
-rw-r--r-- | src/systemc/ext/dt/fx/scfx_utils.hh | 8 |
4 files changed, 14 insertions, 7 deletions
diff --git a/src/systemc/dt/fx/scfx_rep.cc b/src/systemc/dt/fx/scfx_rep.cc index 3d10fb3f6..ae19fabe0 100644 --- a/src/systemc/dt/fx/scfx_rep.cc +++ b/src/systemc/dt/fx/scfx_rep.cc @@ -147,7 +147,7 @@ scfx_rep::scfx_rep(long a) : a = -a; m_sign = -1; } -# if defined(SC_LONG_64) +# if SC_LONG_64 m_wp = 1; m_mant[1] = static_cast<word>(a); m_mant[2] = static_cast<word>(a >> bits_in_word); @@ -171,7 +171,7 @@ scfx_rep::scfx_rep(unsigned long a) : m_mant.clear(); m_wp = m_msw = m_lsw = 2; m_state = normal; -# if defined(SC_LONG_64) +# if SC_LONG_64 m_wp = 1; m_mant[1] = static_cast<word>(a); m_mant[2] = static_cast<word>(a >> bits_in_word); @@ -1057,6 +1057,7 @@ print_other(scfx_string &s, const scfx_rep &a, sc_numrep numrep, int w_prefix, lsb = (b.m_lsw - b.m_wp) * bits_in_word + scfx_find_lsb(b.m_mant[b.m_lsw]); + } } diff --git a/src/systemc/ext/dt/bit/sc_proxy.hh b/src/systemc/ext/dt/bit/sc_proxy.hh index cf7bcbfc9..12e10725a 100644 --- a/src/systemc/ext/dt/bit/sc_proxy.hh +++ b/src/systemc/ext/dt/bit/sc_proxy.hh @@ -816,7 +816,7 @@ sc_proxy<X>::assign_(int a) return x; } -#if defined(SC_LONG_64) +#if SC_LONG_64 template <class X> inline X & sc_proxy<X>::assign_(unsigned long a) diff --git a/src/systemc/ext/dt/fx/sc_fxdefs.hh b/src/systemc/ext/dt/fx/sc_fxdefs.hh index 8acfabfa5..c72a45afc 100644 --- a/src/systemc/ext/dt/fx/sc_fxdefs.hh +++ b/src/systemc/ext/dt/fx/sc_fxdefs.hh @@ -50,6 +50,12 @@ #include "../../utils/sc_report_handler.hh" #include "../int/sc_nbutils.hh" +#if ULONG_MAX > 0xffffffffUL +# define SC_LONG_64 1 +#else +# define SC_LONG_64 0 +#endif + namespace sc_dt { diff --git a/src/systemc/ext/dt/fx/scfx_utils.hh b/src/systemc/ext/dt/fx/scfx_utils.hh index 37c57844c..ec186c68f 100644 --- a/src/systemc/ext/dt/fx/scfx_utils.hh +++ b/src/systemc/ext/dt/fx/scfx_utils.hh @@ -67,9 +67,9 @@ inline int scfx_find_msb(unsigned long x) { int i = 0; -# if defined(SC_LONG_64) +# if SC_LONG_64 MSB_STATEMENT(32); -# endif // defined(SC_LONG_64) +# endif // SC_LONG_64 MSB_STATEMENT(16); MSB_STATEMENT(8); MSB_STATEMENT(4); @@ -86,12 +86,12 @@ inline int scfx_find_lsb(unsigned long x) { int i; -# if defined(SC_LONG_64) +# if SC_LONG_64 i = 63; LSB_STATEMENT(32); # else i = 31; -# endif // defined(SC_LONG_64) +# endif // SC_LONG_64 LSB_STATEMENT(16); LSB_STATEMENT(8); LSB_STATEMENT(4); |