don't pollute name space

fix vecval for Z/X cases
This commit is contained in:
steve 2002-07-03 23:16:27 +00:00
parent 3f1cd14f6c
commit ccbb1e5f5a
2 changed files with 19 additions and 11 deletions

View File

@ -27,7 +27,7 @@
* Picture Elements, Inc., 777 Panoramic Way, Berkeley, CA 94704. * Picture Elements, Inc., 777 Panoramic Way, Berkeley, CA 94704.
*/ */
#if !defined(WINNT) && !defined(macintosh) #if !defined(WINNT) && !defined(macintosh)
#ident "$Id: vpi_memory.cc,v 1.12 2002/07/03 02:09:38 steve Exp $" #ident "$Id: vpi_memory.cc,v 1.13 2002/07/03 23:16:27 steve Exp $"
#endif #endif
# include "vpi_priv.h" # include "vpi_priv.h"
@ -494,7 +494,7 @@ static void memory_word_get_value(vpiHandle ref, s_vpi_value*vp)
op->aval = op->bval = 0; op->aval = op->bval = 0;
for (unsigned idx = 0 ; idx < width ; idx += 1) { for (unsigned idx = 0 ; idx < width ; idx += 1) {
switch (memory_get(rfp->mem->mem, idx)) { switch (memory_get(rfp->mem->mem, bidx+idx)) {
case 0: case 0:
op->aval &= ~(1 << idx % 32); op->aval &= ~(1 << idx % 32);
op->bval &= ~(1 << idx % 32); op->bval &= ~(1 << idx % 32);
@ -504,13 +504,13 @@ static void memory_word_get_value(vpiHandle ref, s_vpi_value*vp)
op->bval &= ~(1 << idx % 32); op->bval &= ~(1 << idx % 32);
break; break;
case 2: case 2:
op->aval &= ~(1 << idx % 32);
op->bval |= (1 << idx % 32);
break;
case 3:
op->aval |= (1 << idx % 32); op->aval |= (1 << idx % 32);
op->bval |= (1 << idx % 32); op->bval |= (1 << idx % 32);
break; break;
case 3:
op->aval &= ~(1 << idx % 32);
op->bval |= (1 << idx % 32);
break;
} }
if (!((idx+1) % 32) && (idx+1 < width)) { if (!((idx+1) % 32) && (idx+1 < width)) {
op++; op++;
@ -583,6 +583,10 @@ vpiHandle vpip_make_memory(vvp_memory_t mem)
/* /*
* $Log: vpi_memory.cc,v $ * $Log: vpi_memory.cc,v $
* Revision 1.13 2002/07/03 23:16:27 steve
* don't pollute name space
* fix vecval for Z/X cases
*
* Revision 1.12 2002/07/03 02:09:38 steve * Revision 1.12 2002/07/03 02:09:38 steve
* vpiName, vpiFullName support in memory types, * vpiName, vpiFullName support in memory types,
* length checks for *_get_str() buffers, * length checks for *_get_str() buffers,

View File

@ -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.37 2002/07/03 02:09:38 steve Exp $" #ident "$Id: vpi_signal.cc,v 1.38 2002/07/03 23:16:27 steve Exp $"
#endif #endif
/* /*
@ -146,7 +146,7 @@ static vpiHandle signal_get_handle(int code, vpiHandle ref)
} }
char *signal_vpiDecStrVal(struct __vpiSignal*rfp, s_vpi_value*vp) static char *signal_vpiDecStrVal(struct __vpiSignal*rfp, s_vpi_value*vp)
{ {
unsigned wid = (rfp->msb >= rfp->lsb) unsigned wid = (rfp->msb >= rfp->lsb)
? (rfp->msb - rfp->lsb + 1) ? (rfp->msb - rfp->lsb + 1)
@ -169,7 +169,7 @@ char *signal_vpiDecStrVal(struct __vpiSignal*rfp, s_vpi_value*vp)
} }
char *signal_vpiStringVal(struct __vpiSignal*rfp, s_vpi_value*vp) static char *signal_vpiStringVal(struct __vpiSignal*rfp, s_vpi_value*vp)
{ {
unsigned wid = (rfp->msb >= rfp->lsb) unsigned wid = (rfp->msb >= rfp->lsb)
? (rfp->msb - rfp->lsb + 1) ? (rfp->msb - rfp->lsb + 1)
@ -360,11 +360,11 @@ static void signal_get_value(vpiHandle ref, s_vpi_value*vp)
op->bval &= ~(1 << obit); op->bval &= ~(1 << obit);
break; break;
case 2: case 2:
op->aval &= ~(1 << obit); op->aval |= (1 << obit);
op->bval |= (1 << obit); op->bval |= (1 << obit);
break; break;
case 3: case 3:
op->aval |= (1 << obit); op->aval &= ~(1 << obit);
op->bval |= (1 << obit); op->bval |= (1 << obit);
break; break;
} }
@ -674,6 +674,10 @@ 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.38 2002/07/03 23:16:27 steve
* don't pollute name space
* fix vecval for Z/X cases
*
* Revision 1.37 2002/07/03 02:09:38 steve * Revision 1.37 2002/07/03 02:09:38 steve
* vpiName, vpiFullName support in memory types, * vpiName, vpiFullName support in memory types,
* length checks for *_get_str() buffers, * length checks for *_get_str() buffers,