diff -Naur ../systemc-2.1.v1/src/sysc/datatypes/fx/sc_context.h src/sysc/datatypes/fx/sc_context.h --- ../systemc-2.1.v1/src/sysc/datatypes/fx/sc_context.h 2005-03-31 23:22:06.000000000 +0200 +++ src/sysc/datatypes/fx/sc_context.h 2006-05-23 09:22:42.931661194 +0200 @@ -227,6 +227,7 @@ { // this method should never be called SC_REPORT_FATAL( sc_core::SC_ID_INTERNAL_ERROR_, "should never be called" ); + return NULL; } diff -Naur ../systemc-2.1.v1/src/sysc/datatypes/fx/scfx_rep.h src/sysc/datatypes/fx/scfx_rep.h --- ../systemc-2.1.v1/src/sysc/datatypes/fx/scfx_rep.h 2005-03-31 23:22:30.000000000 +0200 +++ src/sysc/datatypes/fx/scfx_rep.h 2006-05-23 09:23:18.483693635 +0200 @@ -88,6 +88,23 @@ }; +void multiply( scfx_rep&, const scfx_rep&, const scfx_rep&, + int = SC_DEFAULT_MAX_WL_ ); + +scfx_rep* neg_scfx_rep( const scfx_rep& ); +scfx_rep* mult_scfx_rep( const scfx_rep&, const scfx_rep&, + int = SC_DEFAULT_MAX_WL_ ); +scfx_rep* div_scfx_rep( const scfx_rep&, const scfx_rep&, + int = SC_DEFAULT_DIV_WL_ ); +scfx_rep* add_scfx_rep( const scfx_rep&, const scfx_rep&, + int = SC_DEFAULT_MAX_WL_ ); +scfx_rep* sub_scfx_rep( const scfx_rep&, const scfx_rep&, + int = SC_DEFAULT_MAX_WL_ ); +scfx_rep* lsh_scfx_rep( const scfx_rep&, int ); +scfx_rep* rsh_scfx_rep( const scfx_rep&, int ); + +int cmp_scfx_rep( const scfx_rep&, const scfx_rep& ); + // ---------------------------------------------------------------------------- // CLASS : scfx_rep // @@ -148,18 +165,13 @@ void operator = ( const scfx_rep& ); - friend void multiply( scfx_rep&, const scfx_rep&, const scfx_rep&, - int = SC_DEFAULT_MAX_WL_ ); + friend void multiply( scfx_rep&, const scfx_rep&, const scfx_rep&, int); friend scfx_rep* neg_scfx_rep( const scfx_rep& ); - friend scfx_rep* mult_scfx_rep( const scfx_rep&, const scfx_rep&, - int = SC_DEFAULT_MAX_WL_ ); - friend scfx_rep* div_scfx_rep( const scfx_rep&, const scfx_rep&, - int = SC_DEFAULT_DIV_WL_ ); - friend scfx_rep* add_scfx_rep( const scfx_rep&, const scfx_rep&, - int = SC_DEFAULT_MAX_WL_ ); - friend scfx_rep* sub_scfx_rep( const scfx_rep&, const scfx_rep&, - int = SC_DEFAULT_MAX_WL_ ); + friend scfx_rep* mult_scfx_rep( const scfx_rep&, const scfx_rep&, int); + friend scfx_rep* div_scfx_rep( const scfx_rep&, const scfx_rep&, int); + friend scfx_rep* add_scfx_rep( const scfx_rep&, const scfx_rep&, int); + friend scfx_rep* sub_scfx_rep( const scfx_rep&, const scfx_rep&, int); friend scfx_rep* lsh_scfx_rep( const scfx_rep&, int ); friend scfx_rep* rsh_scfx_rep( const scfx_rep&, int ); diff -Naur ../systemc-2.1.v1/src/sysc/datatypes/int/sc_signed.h src/sysc/datatypes/int/sc_signed.h --- ../systemc-2.1.v1/src/sysc/datatypes/int/sc_signed.h 2005-05-24 23:56:50.000000000 +0200 +++ src/sysc/datatypes/int/sc_signed.h 2006-05-23 09:23:20.472192059 +0200 @@ -471,6 +471,76 @@ ::std::istream& operator >> ( ::std::istream&, sc_signed_subref& ); +// Helper functions forward declarations +sc_signed add_signed_friend(small_type us, + int unb, + int und, + const unsigned long *ud, + small_type vs, + int vnb, + int vnd, + const unsigned long *vd); + +sc_signed sub_signed_friend(small_type us, + int unb, + int und, + const unsigned long *ud, + small_type vs, + int vnb, + int vnd, + const unsigned long *vd); + +sc_signed mul_signed_friend(small_type s, + int unb, + int und, + const unsigned long *ud, + int vnb, + int vnd, + const unsigned long *vd); + +sc_signed div_signed_friend(small_type s, + int unb, + int und, + const unsigned long *ud, + int vnb, + int vnd, + const unsigned long *vd); + +sc_signed mod_signed_friend(small_type us, + int unb, + int und, + const unsigned long *ud, + int vnb, + int vnd, + const unsigned long *vd); + +sc_signed and_signed_friend(small_type us, + int unb, + int und, + const unsigned long *ud, + small_type vs, + int vnb, + int vnd, + const unsigned long *vd); + +sc_signed or_signed_friend(small_type us, + int unb, + int und, + const unsigned long *ud, + small_type vs, + int vnb, + int vnd, + const unsigned long *vd); + +sc_signed xor_signed_friend(small_type us, + int unb, + int und, + const unsigned long *ud, + small_type vs, + int vnb, + int vnd, + const unsigned long *vd); + // ---------------------------------------------------------------------------- // CLASS : sc_signed diff -Naur ../systemc-2.1.v1/src/sysc/datatypes/int/sc_unsigned.h src/sysc/datatypes/int/sc_unsigned.h --- ../systemc-2.1.v1/src/sysc/datatypes/int/sc_unsigned.h 2005-05-24 23:57:06.000000000 +0200 +++ src/sysc/datatypes/int/sc_unsigned.h 2006-05-23 09:23:22.880584570 +0200 @@ -470,6 +470,87 @@ operator >> ( ::std::istream&, sc_unsigned_subref& ); +// Helper functions forward declarations +int compare_unsigned(small_type us, + int unb, + int und, + const unsigned long *ud, + small_type vs, + int vnb, + int vnd, + const unsigned long *vd, + small_type if_u_signed = 0, + small_type if_v_signed = 0); + +sc_unsigned add_unsigned_friend(small_type us, + int unb, + int und, + const unsigned long *ud, + small_type vs, + int vnb, + int vnd, + const unsigned long *vd); + +sc_unsigned sub_unsigned_friend(small_type us, + int unb, + int und, + const unsigned long *ud, + small_type vs, + int vnb, + int vnd, + const unsigned long *vd); + +sc_unsigned mul_unsigned_friend(small_type s, + int unb, + int und, + const unsigned long *ud, + int vnb, + int vnd, + const unsigned long *vd); + +sc_unsigned div_unsigned_friend(small_type s, + int unb, + int und, + const unsigned long *ud, + int vnb, + int vnd, + const unsigned long *vd); + +sc_unsigned mod_unsigned_friend(small_type us, + int unb, + int und, + const unsigned long *ud, + int vnb, + int vnd, + const unsigned long *vd); + +sc_unsigned and_unsigned_friend(small_type us, + int unb, + int und, + const unsigned long *ud, + small_type vs, + int vnb, + int vnd, + const unsigned long *vd); + +sc_unsigned or_unsigned_friend(small_type us, + int unb, + int und, + const unsigned long *ud, + small_type vs, + int vnb, + int vnd, + const unsigned long *vd); + +sc_unsigned xor_unsigned_friend(small_type us, + int unb, + int und, + const unsigned long *ud, + small_type vs, + int vnb, + int vnd, + const unsigned long *vd); + // ---------------------------------------------------------------------------- // CLASS : sc_unsigned // @@ -1364,8 +1445,8 @@ int vnb, int vnd, const unsigned long *vd, - small_type if_u_signed = 0, - small_type if_v_signed = 0); + small_type if_u_signed, + small_type if_v_signed); friend sc_unsigned add_unsigned_friend(small_type us, int unb, diff -Naur ../systemc-2.1.v1/src/sysc/datatypes/misc/sc_value_base.h src/sysc/datatypes/misc/sc_value_base.h --- ../systemc-2.1.v1/src/sysc/datatypes/misc/sc_value_base.h 2005-04-19 22:23:18.000000000 +0200 +++ src/sysc/datatypes/misc/sc_value_base.h 2006-05-23 09:23:24.402200759 +0200 @@ -57,6 +57,8 @@ class sc_value_base { friend class sc_concatref; + public: + virtual ~sc_value_base() {} private: virtual void concat_clear_data( bool to_ones=false ); virtual bool concat_get_ctrl( unsigned long* dst_p, int low_i ) const; diff -Naur ../systemc-2.1.v1/src/sysc/kernel/sc_process_host.h src/sysc/kernel/sc_process_host.h --- ../systemc-2.1.v1/src/sysc/kernel/sc_process_host.h 2005-03-31 23:21:24.000000000 +0200 +++ src/sysc/kernel/sc_process_host.h 2006-05-23 09:23:30.094764872 +0200 @@ -73,6 +73,8 @@ spm_exit = 0 }; virtual void signal(sc_thread_handle thread_p, int type); + + virtual ~sc_process_monitor() {} }; // ----------------------------------------------------------------------------- diff -Naur ../systemc-2.1.v1/src/sysc/kernel/sc_process_int.h src/sysc/kernel/sc_process_int.h --- ../systemc-2.1.v1/src/sysc/kernel/sc_process_int.h 2005-03-31 23:21:26.000000000 +0200 +++ src/sysc/kernel/sc_process_int.h 2006-05-23 09:23:31.756345757 +0200 @@ -290,6 +290,9 @@ // Process class for SC_THREADs. // ---------------------------------------------------------------------------- +void sc_thread_cor_fn( void* ); +void sc_cthread_cor_fn( void* ); + class sc_thread_process : public sc_process_b { diff -Naur ../tmp/systemc-2.1.v1/configure.in configure.in --- ../tmp/systemc-2.1.v1/configure.in 2005-04-12 03:19:25.000000000 +0530 +++ configure.in 2007-02-11 15:49:06.000000000 +0530 @@ -128,6 +128,23 @@ AS=as QT_ARCH="iX86" ;; + i386-pc-macosx) + case "$CXX_COMP" in + c++ | g++) + EXTRA_CXXFLAGS="-Wall" + DEBUG_CXXFLAGS="-g" + OPT_CXXFLAGS="-O3" + TARGET_ARCH="macosx" + CC="$CXX" + CFLAGS="$EXTRA_CXXFLAGS $OPT_CXXFLAGS" + ;; + *) + AC_MSG_ERROR("sorry...compiler not supported") + ;; + esac + AS=as + QT_ARCH="iX86" + ;; *cygwin*) case "$CXX_COMP" in c++ | g++)