correctly interpret signed decimal values.
This commit is contained in:
parent
a7411eb00d
commit
150fc6f3ee
|
|
@ -17,7 +17,7 @@
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||||
*/
|
*/
|
||||||
#if !defined(WINNT)
|
#if !defined(WINNT)
|
||||||
#ident "$Id: vpi_signal.cc,v 1.13 2001/05/15 15:09:08 steve Exp $"
|
#ident "$Id: vpi_signal.cc,v 1.14 2001/05/22 04:08:49 steve Exp $"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -142,11 +142,17 @@ static void signal_vpiDecStrVal(struct __vpiSignal*rfp, s_vpi_value*vp)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rfp->signed_flag) {
|
if (rfp->signed_flag) {
|
||||||
long tmp = -1;
|
long tmp;
|
||||||
assert(sizeof(tmp) == sizeof(val));
|
assert(sizeof(tmp) == sizeof(val));
|
||||||
tmp <<= wid;
|
if (val & (1<<(wid-1)) && wid < 8*sizeof(tmp)) {
|
||||||
tmp |= val;
|
tmp = -1;
|
||||||
sprintf(buf, "%ld", tmp);
|
tmp <<= wid;
|
||||||
|
tmp |= val;
|
||||||
|
} else {
|
||||||
|
tmp = val;
|
||||||
|
}
|
||||||
|
sprintf(buf, "%ld", tmp);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
sprintf(buf, "%lu", val);
|
sprintf(buf, "%lu", val);
|
||||||
}
|
}
|
||||||
|
|
@ -426,6 +432,9 @@ vpiHandle vpip_make_net(char*name, int msb, int lsb, bool signed_flag,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log: vpi_signal.cc,v $
|
* $Log: vpi_signal.cc,v $
|
||||||
|
* Revision 1.14 2001/05/22 04:08:49 steve
|
||||||
|
* correctly interpret signed decimal values.
|
||||||
|
*
|
||||||
* Revision 1.13 2001/05/15 15:09:08 steve
|
* Revision 1.13 2001/05/15 15:09:08 steve
|
||||||
* Add the glossary file.
|
* Add the glossary file.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue