Fix sign extensions from vipRead() and busReadMisc()
This commit is contained in:
parent
57dcd8370a
commit
04e79c9151
|
@ -153,12 +153,18 @@ static void busRead(VB *sim, uint32_t address, int type, int32_t *value) {
|
||||||
|
|
||||||
case 0: /* VIP */
|
case 0: /* VIP */
|
||||||
vipRead(sim, address, type, value);
|
vipRead(sim, address, type, value);
|
||||||
|
switch (type) {
|
||||||
|
case VB_S8 : *value = (int8_t ) *value; break;
|
||||||
|
case VB_S16: *value = (int16_t) *value; break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: break; /* VSU */
|
case 1: break; /* VSU */
|
||||||
|
|
||||||
case 2: /* Misc. I/O */
|
case 2: /* Misc. I/O */
|
||||||
*value = busReadMisc(sim, address, type);
|
*value = busReadMisc(sim, address, type);
|
||||||
|
if (type == VB_S8)
|
||||||
|
*value = (int8_t) *value;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3: break; /* Unmapped */
|
case 3: break; /* Unmapped */
|
||||||
|
|
Loading…
Reference in New Issue