diff --git a/src/xspice/verilog/verilator_shim.cpp b/src/xspice/verilog/verilator_shim.cpp index df508658d..19506f559 100644 --- a/src/xspice/verilog/verilator_shim.cpp +++ b/src/xspice/verilog/verilator_shim.cpp @@ -40,18 +40,18 @@ static unsigned char previous_output[outs + inouts]; /* The input function: it should ignore out-of-range values of index. */ -#define VL_DATA(size, name, msb, lsb) \ - if (index >= msb - lsb + 1) { \ - index -= msb - lsb + 1; \ - } else if (msb == 0 && lsb == 0) { \ - topp->name = val ? 1 : 0; \ - return; \ - } else { \ - if (val) \ - topp->name |= (1 << (msb - index)); \ - else \ - topp->name &= (1 << (msb - index)); \ - return; \ +#define VL_DATA(size, name, msb, lsb) \ + if (index >= msb - lsb + 1) { \ + index -= msb - lsb + 1; \ + } else if (msb == 0 && lsb == 0) { \ + topp->name = val ? 1 : 0; \ + return; \ + } else { \ + if (val) \ + topp->name |= (1 << (msb - index)); \ + else \ + topp->name &= ~(1 << (msb - index)); \ + return; \ } static void accept_input(struct co_info *pinfo, @@ -70,21 +70,21 @@ static void accept_input(struct co_info *pinfo, offset = outs; #undef VL_DATA -#define VL_DATA(size, name, msb, lsb) \ - if (index >= msb - lsb + 1) { \ - index -= msb - lsb + 1; \ - offset += msb - lsb + 1; \ - } else if (msb == 0 && lsb == 0) { \ - topp->name = val ? 1 : 0; \ - previous_output[index + offset] = val; \ - return; \ - } else { \ - if (val) \ - topp->name | (1 << (msb - index)); \ - else \ - topp->name &= (1 << (msb - index)); \ - previous_output[index + offset] = val; \ - return; \ +#define VL_DATA(size, name, msb, lsb) \ + if (index >= msb - lsb + 1) { \ + index -= msb - lsb + 1; \ + offset += msb - lsb + 1; \ + } else if (msb == 0 && lsb == 0) { \ + topp->name = val ? 1 : 0; \ + previous_output[index + offset] = val; \ + return; \ + } else { \ + if (val) \ + topp->name | (1 << (msb - index)); \ + else \ + topp->name &= ~(1 << (msb - index)); \ + previous_output[index + offset] = val; \ + return; \ } #include "inouts.h"