diff --git a/include/verilated.cpp b/include/verilated.cpp index d5bb9eb57..a9178b19f 100644 --- a/include/verilated.cpp +++ b/include/verilated.cpp @@ -115,7 +115,7 @@ QData VL_RANDOM_Q(int obits) { } WDataOutP VL_RANDOM_W(int obits, WDataOutP outwp) { - for (int i=0; i=0; i--) { VL_PRINTF("%08x ",iwp[i]); } + for (int i=VL_WORDS_I(lbits)-1; i>=0; --i) { VL_PRINTF("%08x ",iwp[i]); } VL_PRINTF("\n"); } @@ -179,7 +179,7 @@ WDataOutP _vl_moddiv_w(int lbits, WDataOutP owp, WDataInP lwp, WDataInP rwp, boo // for debug see V3Number version // Requires clean input int words = VL_WORDS_I(lbits); - for (int i=0; i= 0; j--) { + for (int j = uw-1; j >= 0; --j) { vluint64_t unw64 = ((k<> 32 won't mask the value - for (int i = vw-1; i>0; i--) { + for (int i = vw-1; i>0; --i) { vn[i] = (rwp[i] << s) | (shift_mask & (rwp[i-1] >> (32-s))); } vn[0] = rwp[0] << s; @@ -225,13 +225,13 @@ WDataOutP _vl_moddiv_w(int lbits, WDataOutP owp, WDataInP lwp, WDataInP rwp, boo // Copy and shift dividend by same amount; may set new upper word if (s) un[uw] = lwp[uw-1] >> (32-s); else un[uw] = 0; - for (int i=uw-1; i>0; i--) { + for (int i=uw-1; i>0; --i) { un[i] = (lwp[i] << s) | (shift_mask & (lwp[i-1] >> (32-s))); } un[0] = lwp[0] << s; // Main loop - for (int j = uw - vw; j >= 0; j--) { + for (int j = uw - vw; j >= 0; --j) { // Estimate vluint64_t unw64 = ((vluint64_t)(un[j+vw])<> VL_ULL(32); @@ -272,10 +272,10 @@ WDataOutP _vl_moddiv_w(int lbits, WDataOutP owp, WDataInP lwp, WDataInP rwp, boo if (is_modulus) { // modulus // Need to reverse normalization on copy to output - for (int i=0; i> s) | (shift_mask & (un[i+1] << (32-s))); } - for (int i=vw; i=0; lsb--) { + for (; lsb>=0; --lsb) { lsb = (lsb / 8) * 8; // Next digit IData charval = (lwp[VL_BITWORD_I(lsb)]>>VL_BITBIT_I(lsb)) & 0xff; output += (charval==0)?' ':charval; @@ -433,13 +433,13 @@ void _vl_vsformat(string& output, const char* formatp, va_list ap) { break; } case 'b': - for (; lsb>=0; lsb--) { + for (; lsb>=0; --lsb) { output += ((lwp[VL_BITWORD_I(lsb)]>>VL_BITBIT_I(lsb)) & 1) + '0'; } break; break; case 'o': - for (; lsb>=0; lsb--) { + for (; lsb>=0; --lsb) { lsb = (lsb / 3) * 3; // Next digit // Octal numbers may span more than one wide word, // so we need to grab each bit separately and check for overrun @@ -452,7 +452,7 @@ void _vl_vsformat(string& output, const char* formatp, va_list ap) { break; case 'u': // Packed 2-state output.reserve(output.size() + 4*VL_WORDS_I(lbits)); - for (int i=0; i> 0) & 0xff); output += (char)((lwp[i] >> 8) & 0xff); output += (char)((lwp[i] >> 16) & 0xff); @@ -460,7 +460,7 @@ void _vl_vsformat(string& output, const char* formatp, va_list ap) { } case 'z': // Packed 4-state output.reserve(output.size() + 8*VL_WORDS_I(lbits)); - for (int i=0; i> 0) & 0xff); output += (char)((lwp[i] >> 8) & 0xff); output += (char)((lwp[i] >> 16) & 0xff); @@ -468,12 +468,12 @@ void _vl_vsformat(string& output, const char* formatp, va_list ap) { output += "\0\0\0\0"; // No tristate } case 'v': // Strength; assume always strong - for (lsb=lbits-1; lsb>=0; lsb--) { + for (lsb=lbits-1; lsb>=0; --lsb) { if ((lwp[VL_BITWORD_I(lsb)]>>VL_BITBIT_I(lsb)) & 1) output += "St1 "; else output += "St0 "; } case 'x': - for (; lsb>=0; lsb--) { + for (; lsb>=0; --lsb) { lsb = (lsb / 4) * 4; // Next digit IData charval = (lwp[VL_BITWORD_I(lsb)]>>VL_BITBIT_I(lsb)) & 0xf; output += "0123456789abcdef"[charval]; @@ -546,7 +546,7 @@ static inline void _vl_vsss_setbit(WDataOutP owp, int obits, int lsb, int nbits, static inline void _vl_vsss_based(WDataOutP owp, int obits, int baseLog2, const char* strp, int posstart, int posend) { // Read in base "2^^baseLog2" digits from strp[posstart..posend-1] into owp of size obits. int lsb = 0; - for (int i=0, pos=posend-1; i=posstart; pos--) { + for (int i=0, pos=posend-1; i=posstart; --pos) { switch (tolower (strp[pos])) { case 'x': case 'z': case '?': //FALLTHRU case '0': lsb += baseLog2; break; @@ -614,7 +614,7 @@ IData _vl_vsscanf(FILE* fp, // If a fscanf if (obits > VL_QUADSIZE) { owp = va_arg(ap,WDataOutP); } - for (int i=0; i=0; pos--) { + for (int i=0; i=0; --pos) { _vl_vsss_setbit(owp,obits,lsb, 8, tmp[pos]); lsb+=8; } break; @@ -723,7 +723,7 @@ void _VL_VINT_TO_STRING(int obits, char* destoutp, WDataInP sourcep) { int lsb=obits-1; bool start=true; char* destp = destoutp; - for (; lsb>=0; lsb--) { + for (; lsb>=0; --lsb) { lsb = (lsb / 8) * 8; // Next digit IData charval = (sourcep[VL_BITWORD_I(lsb)]>>VL_BITBIT_I(lsb)) & 0xff; if (!start || charval) { @@ -741,8 +741,8 @@ void _VL_STRING_TO_VINT(int obits, void* destp, int srclen, const char* srcp) { char* op = ((char*)(destp)); if (srclen > bytes) srclen = bytes; // Don't overflow destination int i; - for (i=0; i=0; posp--) { + for (int i=0, lsb=0, posp=((int)strlen(dp))-1; i=0; --posp) { _vl_vsss_setbit(rwp,rbits,lsb, 8, dp[posp]); lsb+=8; } break; @@ -1184,7 +1184,7 @@ string VL_CVT_PACK_STR_NW(int lwords, WDataInP lwp) { bool start=true; char* destp = destout; int len = 0; - for (; lsb>=0; lsb--) { + for (; lsb>=0; --lsb) { lsb = (lsb / 8) * 8; // Next digit IData charval = (lwp[VL_BITWORD_I(lsb)]>>VL_BITBIT_I(lsb)) & 0xff; if (!start || charval) { @@ -1403,7 +1403,7 @@ void* VerilatedScope::exportFindError(int funcnum) const { void VerilatedScope::scopeDump() const { VL_PRINTF(" SCOPE %p: %s\n", this, name()); - for (int i=0; i _butemp = (svar).read(); \ - for (int i=0; i < words; i++) { \ + for (int i=0; i < words; ++i) { \ int msb = ((i+1)*VL_WORDSIZE) - 1; \ msb = (msb >= obits) ? (obits-1) : msb; \ owp[i] = _butemp.range(msb,i*VL_WORDSIZE).to_uint(); \ @@ -616,7 +616,7 @@ static inline void VL_ASSIGNBIT_WO(int, int bit, WDataOutP owp, IData) { } #define VL_ASSIGN_SWW(obits,svar,rwp) { \ sc_bv _bvtemp; \ - for (int i=0; i < VL_WORDS_I(obits); i++) _bvtemp.set_word(i,rwp[i]); \ + for (int i=0; i < VL_WORDS_I(obits); ++i) _bvtemp.set_word(i,rwp[i]); \ svar.write(_bvtemp); \ } @@ -626,7 +626,7 @@ static inline void VL_ASSIGNBIT_WO(int, int bit, WDataOutP owp, IData) { #define VL_ASSIGN_SBQ(obits,svar,rd) { (svar).write(rd); } #define VL_ASSIGN_SBW(obits,svar,rwp) { \ sc_biguint _butemp; \ - for (int i=0; i < VL_WORDS_I(obits); i++) { \ + for (int i=0; i < VL_WORDS_I(obits); ++i) { \ int msb = ((i+1)*VL_WORDSIZE) - 1; \ msb = (msb >= obits) ? (obits-1) : msb; \ _butemp.range(msb,i*VL_WORDSIZE) = rwp[i]; \ @@ -648,17 +648,17 @@ static inline void VL_ASSIGNBIT_WO(int, int bit, WDataOutP owp, IData) { static inline WDataOutP VL_EXTEND_WI(int obits, int, WDataOutP owp, IData ld) { // Note for extracts that obits != lbits owp[0] = ld; - for (int i=1; i < VL_WORDS_I(obits); i++) owp[i] = 0; + for (int i=1; i < VL_WORDS_I(obits); ++i) owp[i] = 0; return(owp); } static inline WDataOutP VL_EXTEND_WQ(int obits, int, WDataOutP owp, QData ld) { VL_SET_WQ(owp,ld); - for (int i=2; i < VL_WORDS_I(obits); i++) owp[i] = 0; + for (int i=2; i < VL_WORDS_I(obits); ++i) owp[i] = 0; return(owp); } static inline WDataOutP VL_EXTEND_WW(int obits, int lbits, WDataOutP owp, WDataInP lwp) { - for (int i=0; i < VL_WORDS_I(lbits); i++) owp[i] = lwp[i]; - for (int i=VL_WORDS_I(lbits); i < VL_WORDS_I(obits); i++) owp[i] = 0; + for (int i=0; i < VL_WORDS_I(lbits); ++i) owp[i] = lwp[i]; + for (int i=VL_WORDS_I(lbits); i < VL_WORDS_I(obits); ++i) owp[i] = 0; return(owp); } @@ -677,22 +677,22 @@ static inline QData VL_EXTENDS_QQ(int, int lbits, QData lhs) { static inline WDataOutP VL_EXTENDS_WI(int obits, int lbits, WDataOutP owp, IData ld) { IData sign = VL_SIGNONES_I(lbits,ld); owp[0] = ld | (sign & ~VL_MASK_I(lbits)); - for (int i=1; i < VL_WORDS_I(obits); i++) owp[i] = sign; + for (int i=1; i < VL_WORDS_I(obits); ++i) owp[i] = sign; return(owp); } static inline WDataOutP VL_EXTENDS_WQ(int obits, int lbits, WDataOutP owp, QData ld) { VL_SET_WQ(owp,ld); IData sign = VL_SIGNONES_I(lbits,owp[1]); owp[1] |= sign & ~VL_MASK_I(lbits); - for (int i=2; i < VL_WORDS_I(obits); i++) owp[i] = sign; + for (int i=2; i < VL_WORDS_I(obits); ++i) owp[i] = sign; return(owp); } static inline WDataOutP VL_EXTENDS_WW(int obits, int lbits, WDataOutP owp, WDataInP lwp) { - for (int i=0; i < VL_WORDS_I(lbits)-1; i++) owp[i] = lwp[i]; + for (int i=0; i < VL_WORDS_I(lbits)-1; ++i) owp[i] = lwp[i]; int lmsw=VL_WORDS_I(lbits)-1; IData sign = VL_SIGNONES_I(lbits,lwp[lmsw]); owp[lmsw] = lwp[lmsw] | (sign & ~VL_MASK_I(lbits)); - for (int i=VL_WORDS_I(lbits); i < VL_WORDS_I(obits); i++) owp[i] = sign; + for (int i=VL_WORDS_I(lbits); i < VL_WORDS_I(obits); ++i) owp[i] = sign; return(owp); } @@ -705,7 +705,7 @@ static inline WDataOutP VL_EXTENDS_WW(int obits, int lbits, WDataOutP owp, WData static inline IData VL_REDAND_IW(int, int lbits, WDataInP lwp) { int words = VL_WORDS_I(lbits); IData combine=lwp[0]; - for (int i=1; i < words-1; i++) combine &= lwp[i]; + for (int i=1; i < words-1; ++i) combine &= lwp[i]; combine &= ~VL_MASK_I(lbits) | lwp[words-1]; return ((~combine)==0); } @@ -715,7 +715,7 @@ static inline IData VL_REDAND_IW(int, int lbits, WDataInP lwp) { #define VL_REDOR_Q(lhs) (lhs!=0) static inline IData VL_REDOR_W(int words, WDataInP lwp) { IData equal=0; - for (int i=0; i < words; i++) equal |= lwp[i]; + for (int i=0; i < words; ++i) equal |= lwp[i]; return(equal!=0); } @@ -767,7 +767,7 @@ static inline IData VL_REDXOR_64(QData r) { } static inline IData VL_REDXOR_W(int words, WDataInP lwp) { IData r = lwp[0]; - for (int i=1; i < words; i++) r ^= lwp[i]; + for (int i=1; i < words; ++i) r ^= lwp[i]; return VL_REDXOR_32(r); } @@ -785,7 +785,7 @@ static inline IData VL_COUNTONES_Q(QData lhs) { } static inline IData VL_COUNTONES_W(int words, WDataInP lwp) { IData r = 0; - for (int i=0; (i < words); i++) r+=VL_COUNTONES_I(lwp[i]); + for (int i=0; (i < words); ++i) r+=VL_COUNTONES_I(lwp[i]); return r; } @@ -797,7 +797,7 @@ static inline IData VL_ONEHOT_Q(QData lhs) { } static inline IData VL_ONEHOT_W(int words, WDataInP lwp) { IData one=0; - for (int i=0; (i < words); i++) { + for (int i=0; (i < words); ++i) { if (lwp[i]) { if (one) return 0; one = 1; @@ -815,7 +815,7 @@ static inline IData VL_ONEHOT0_Q(QData lhs) { } static inline IData VL_ONEHOT0_W(int words, WDataInP lwp) { bool one=false; - for (int i=0; (i < words); i++) { + for (int i=0; (i < words); ++i) { if (lwp[i]) { if (one) return 0; one = true; @@ -830,21 +830,21 @@ static inline IData VL_CLOG2_I(IData lhs) { if (VL_UNLIKELY(!lhs)) return 0; lhs--; int shifts=0; - for (; lhs!=0; shifts++) lhs = lhs >> 1; + for (; lhs!=0; ++shifts) lhs = lhs >> 1; return shifts; } static inline IData VL_CLOG2_Q(QData lhs) { if (VL_UNLIKELY(!lhs)) return 0; lhs--; int shifts=0; - for (; lhs!=0; shifts++) lhs = lhs >> VL_ULL(1); + for (; lhs!=0; ++shifts) lhs = lhs >> VL_ULL(1); return shifts; } static inline IData VL_CLOG2_W(int words, WDataInP lwp) { IData adjust = (VL_COUNTONES_W(words,lwp)==1) ? 0 : 1; - for (int i=words-1; i>=0; i--) { + for (int i=words-1; i>=0; --i) { if (VL_UNLIKELY(lwp[i])) { // Shorter worst case if predict not taken - for (int bit=31; bit>=0; bit--) { + for (int bit=31; bit>=0; --bit) { if (VL_UNLIKELY(VL_BITISSET_I(lwp[i],bit))) { return i*VL_WORDSIZE + bit + adjust; } @@ -857,9 +857,9 @@ static inline IData VL_CLOG2_W(int words, WDataInP lwp) { static inline IData VL_MOSTSETBITP1_W(int words, WDataInP lwp) { // MSB set bit plus one; similar to FLS. 0=value is zero - for (int i=words-1; i>=0; i--) { + for (int i=words-1; i>=0; --i) { if (VL_UNLIKELY(lwp[i])) { // Shorter worst case if predict not taken - for (int bit=31; bit>=0; bit--) { + for (int bit=31; bit>=0; --bit) { if (VL_UNLIKELY(VL_BITISSET_I(lwp[i],bit))) { return i*VL_WORDSIZE + bit + 1; } @@ -875,33 +875,33 @@ static inline IData VL_MOSTSETBITP1_W(int words, WDataInP lwp) { // EMIT_RULE: VL_AND: oclean=lclean||rclean; obits=lbits; lbits==rbits; static inline WDataOutP VL_AND_W(int words, WDataOutP owp,WDataInP lwp,WDataInP rwp){ - for (int i=0; (i < words); i++) owp[i] = (lwp[i] & rwp[i]); + for (int i=0; (i < words); ++i) owp[i] = (lwp[i] & rwp[i]); return(owp); } // EMIT_RULE: VL_OR: oclean=lclean&&rclean; obits=lbits; lbits==rbits; static inline WDataOutP VL_OR_W(int words, WDataOutP owp,WDataInP lwp,WDataInP rwp){ - for (int i=0; (i < words); i++) owp[i] = (lwp[i] | rwp[i]); + for (int i=0; (i < words); ++i) owp[i] = (lwp[i] | rwp[i]); return(owp); } // EMIT_RULE: VL_CHANGEXOR: oclean=1; obits=32; lbits==rbits; static inline IData VL_CHANGEXOR_W(int words, WDataInP lwp,WDataInP rwp){ IData od = 0; - for (int i=0; (i < words); i++) od |= (lwp[i] ^ rwp[i]); + for (int i=0; (i < words); ++i) od |= (lwp[i] ^ rwp[i]); return(od); } // EMIT_RULE: VL_XOR: oclean=lclean&&rclean; obits=lbits; lbits==rbits; static inline WDataOutP VL_XOR_W(int words, WDataOutP owp,WDataInP lwp,WDataInP rwp){ - for (int i=0; (i < words); i++) owp[i] = (lwp[i] ^ rwp[i]); + for (int i=0; (i < words); ++i) owp[i] = (lwp[i] ^ rwp[i]); return(owp); } // EMIT_RULE: VL_XNOR: oclean=dirty; obits=lbits; lbits==rbits; static inline WDataOutP VL_XNOR_W(int words, WDataOutP owp,WDataInP lwp,WDataInP rwp){ - for (int i=0; (i < words); i++) owp[i] = (lwp[i] ^ ~rwp[i]); + for (int i=0; (i < words); ++i) owp[i] = (lwp[i] ^ ~rwp[i]); return(owp); } // EMIT_RULE: VL_NOT: oclean=dirty; obits=lbits; static inline WDataOutP VL_NOT_W(int words, WDataOutP owp,WDataInP lwp) { - for (int i=0; i < words; i++) owp[i] = ~(lwp[i]); + for (int i=0; i < words; ++i) owp[i] = ~(lwp[i]); return(owp); } @@ -923,7 +923,7 @@ static inline WDataOutP VL_NOT_W(int words, WDataOutP owp,WDataInP lwp) { // Output clean, AND MUST BE CLEAN static inline IData VL_EQ_W(int words, WDataInP lwp, WDataInP rwp) { int nequal=0; - for (int i=0; (i < words); i++) nequal |= (lwp[i] ^ rwp[i]); + for (int i=0; (i < words); ++i) nequal |= (lwp[i] ^ rwp[i]); return(nequal==0); } @@ -1017,7 +1017,7 @@ static inline int _VL_CMPS_W(int lbits, WDataInP lwp, WDataInP rwp) { static inline WDataOutP VL_ADD_W(int words, WDataOutP owp,WDataInP lwp,WDataInP rwp){ QData carry = 0; - for (int i=0; i> VL_ULL(32)) & VL_ULL(0xffffffff); @@ -1027,7 +1027,7 @@ static inline WDataOutP VL_ADD_W(int words, WDataOutP owp,WDataInP lwp,WDataInP static inline WDataOutP VL_SUB_W(int words, WDataOutP owp,WDataInP lwp,WDataInP rwp){ QData carry = 0; - for (int i=0; i> VL_ULL(32)) & VL_ULL(0xffffffff); @@ -1104,7 +1104,7 @@ static inline WDataOutP VL_MULS_WWW(int,int lbits,int, WDataOutP owp,WDataInP lw owp[words-1] &= VL_MASK_I(lbits); // Clean. Note it's ok for the multiply to overflow into the sign bit if ((lneg ^ rneg) & 1) { // Negate output (not using NEGATE, as owp==lwp) QData carry = 0; - for (int i=0; i0) power = power*power; if (rhs & (VL_ULL(1)<0) power = power*power; if (rhs & (VL_ULL(1)< 0 ? ostart : 0; - for (int sbit=0; sbit> VL_BITBIT_I(istart+sbit)) & 1) << VL_BITBIT_I(ostart+sbit); @@ -1505,55 +1505,55 @@ static inline WDataOutP VL_STREAML_WWI(int, int lbits, int, WDataOutP owp, WData static inline WDataOutP VL_CONCAT_WII(int obits,int lbits,int rbits,WDataOutP owp,IData ld,IData rd) { owp[0] = rd; - for (int i=1; i < VL_WORDS_I(obits); i++) owp[i] = 0; + for (int i=1; i < VL_WORDS_I(obits); ++i) owp[i] = 0; _VL_INSERT_WI(obits,owp,ld,rbits+lbits-1,rbits); return(owp); } static inline WDataOutP VL_CONCAT_WWI(int obits,int lbits,int rbits,WDataOutP owp,WDataInP lwp, IData rd) { owp[0] = rd; - for (int i=1; i < VL_WORDS_I(obits); i++) owp[i] = 0; + for (int i=1; i < VL_WORDS_I(obits); ++i) owp[i] = 0; _VL_INSERT_WW(obits,owp,lwp,rbits+lbits-1,rbits); return(owp); } static inline WDataOutP VL_CONCAT_WIW(int obits,int lbits,int rbits,WDataOutP owp,IData ld, WDataInP rwp) { - for (int i=0; i < VL_WORDS_I(rbits); i++) owp[i] = rwp[i]; - for (int i=VL_WORDS_I(rbits); i < VL_WORDS_I(obits); i++) owp[i] = 0; + for (int i=0; i < VL_WORDS_I(rbits); ++i) owp[i] = rwp[i]; + for (int i=VL_WORDS_I(rbits); i < VL_WORDS_I(obits); ++i) owp[i] = 0; _VL_INSERT_WI(obits,owp,ld,rbits+lbits-1,rbits); return(owp); } static inline WDataOutP VL_CONCAT_WIQ(int obits,int lbits,int rbits,WDataOutP owp,IData ld,QData rd) { VL_SET_WQ(owp,rd); - for (int i=2; i < VL_WORDS_I(obits); i++) owp[i] = 0; + for (int i=2; i < VL_WORDS_I(obits); ++i) owp[i] = 0; _VL_INSERT_WI(obits,owp,ld,rbits+lbits-1,rbits); return(owp); } static inline WDataOutP VL_CONCAT_WQI(int obits,int lbits,int rbits,WDataOutP owp,QData ld,IData rd) { owp[0] = rd; - for (int i=1; i < VL_WORDS_I(obits); i++) owp[i] = 0; + for (int i=1; i < VL_WORDS_I(obits); ++i) owp[i] = 0; _VL_INSERT_WQ(obits,owp,ld,rbits+lbits-1,rbits); return(owp); } static inline WDataOutP VL_CONCAT_WQQ(int obits,int lbits,int rbits,WDataOutP owp,QData ld,QData rd) { VL_SET_WQ(owp,rd); - for (int i=2; i < VL_WORDS_I(obits); i++) owp[i] = 0; + for (int i=2; i < VL_WORDS_I(obits); ++i) owp[i] = 0; _VL_INSERT_WQ(obits,owp,ld,rbits+lbits-1,rbits); return(owp); } static inline WDataOutP VL_CONCAT_WWQ(int obits,int lbits,int rbits,WDataOutP owp,WDataInP lwp, QData rd) { VL_SET_WQ(owp,rd); - for (int i=2; i < VL_WORDS_I(obits); i++) owp[i] = 0; + for (int i=2; i < VL_WORDS_I(obits); ++i) owp[i] = 0; _VL_INSERT_WW(obits,owp,lwp,rbits+lbits-1,rbits); return(owp); } static inline WDataOutP VL_CONCAT_WQW(int obits,int lbits,int rbits,WDataOutP owp,QData ld, WDataInP rwp) { - for (int i=0; i < VL_WORDS_I(rbits); i++) owp[i] = rwp[i]; - for (int i=VL_WORDS_I(rbits); i < VL_WORDS_I(obits); i++) owp[i] = 0; + for (int i=0; i < VL_WORDS_I(rbits); ++i) owp[i] = rwp[i]; + for (int i=VL_WORDS_I(rbits); i < VL_WORDS_I(obits); ++i) owp[i] = 0; _VL_INSERT_WQ(obits,owp,ld,rbits+lbits-1,rbits); return(owp); } static inline WDataOutP VL_CONCAT_WWW(int obits,int lbits,int rbits,WDataOutP owp,WDataInP lwp, WDataInP rwp) { - for (int i=0; i < VL_WORDS_I(rbits); i++) owp[i] = rwp[i]; - for (int i=VL_WORDS_I(rbits); i < VL_WORDS_I(obits); i++) owp[i] = 0; + for (int i=0; i < VL_WORDS_I(rbits); ++i) owp[i] = rwp[i]; + for (int i=VL_WORDS_I(rbits); i < VL_WORDS_I(obits); ++i) owp[i] = 0; _VL_INSERT_WW(obits,owp,lwp,rbits+lbits-1,rbits); return(owp); } @@ -1566,7 +1566,7 @@ static inline WDataOutP VL_CONCAT_WWW(int obits,int lbits,int rbits,WDataOutP ow static inline void _VL_SHIFTL_INPLACE_W(int obits,WDataOutP iowp,IData rd/*1 or 4*/) { int words = VL_WORDS_I(obits); IData linsmask = VL_MASK_I(rd); - for (int i=words-1; i>=1; i--) { + for (int i=words-1; i>=1; --i) { iowp[i] = ((iowp[i]<> (32-rd)) & linsmask); } iowp[0] = ((iowp[0]<= (IData)obits) { // rd may be huge with MSB set - for (int i=0; i < VL_WORDS_I(obits); i++) owp[i] = 0; + for (int i=0; i < VL_WORDS_I(obits); ++i) owp[i] = 0; } else if (bit_shift==0) { // Aligned word shift (<<0,<<32,<<64 etc) - for (int i=0; i < word_shift; i++) owp[i] = 0; - for (int i=word_shift; i < VL_WORDS_I(obits); i++) owp[i] = lwp[i-word_shift]; + for (int i=0; i < word_shift; ++i) owp[i] = 0; + for (int i=word_shift; i < VL_WORDS_I(obits); ++i) owp[i] = lwp[i-word_shift]; } else { - for (int i=0; i < VL_WORDS_I(obits); i++) owp[i] = 0; + for (int i=0; i < VL_WORDS_I(obits); ++i) owp[i] = 0; _VL_INSERT_WW(obits,owp,lwp,obits-1,rd); } return(owp); } static inline WDataOutP VL_SHIFTL_WWW(int obits,int lbits,int rbits,WDataOutP owp,WDataInP lwp, WDataInP rwp) { - for (int i=1; i < VL_WORDS_I(rbits); i++) { + for (int i=1; i < VL_WORDS_I(rbits); ++i) { if (VL_UNLIKELY(rwp[i])) { // Huge shift 1>>32 or more return VL_ZERO_W(obits, owp); } @@ -1599,7 +1599,7 @@ static inline WDataOutP VL_SHIFTL_WWW(int obits,int lbits,int rbits,WDataOutP ow return VL_SHIFTL_WWI(obits,lbits,32,owp,lwp,rwp[0]); } static inline IData VL_SHIFTL_IIW(int obits,int,int rbits,IData lhs, WDataInP rwp) { - for (int i=1; i < VL_WORDS_I(rbits); i++) { + for (int i=1; i < VL_WORDS_I(rbits); ++i) { if (VL_UNLIKELY(rwp[i])) { // Huge shift 1>>32 or more return 0; } @@ -1614,29 +1614,29 @@ static inline WDataOutP VL_SHIFTR_WWI(int obits,int,int,WDataOutP owp,WDataInP l int word_shift = VL_BITWORD_I(rd); // Maybe 0 int bit_shift = VL_BITBIT_I(rd); if (rd >= (IData)obits) { // rd may be huge with MSB set - for (int i=0; i < VL_WORDS_I(obits); i++) owp[i] = 0; + for (int i=0; i < VL_WORDS_I(obits); ++i) owp[i] = 0; } else if (bit_shift==0) { // Aligned word shift (>>0,>>32,>>64 etc) int copy_words = (VL_WORDS_I(obits)-word_shift); - for (int i=0; i < copy_words; i++) owp[i] = lwp[i+word_shift]; - for (int i=copy_words; i < VL_WORDS_I(obits); i++) owp[i] = 0; + for (int i=0; i < copy_words; ++i) owp[i] = lwp[i+word_shift]; + for (int i=copy_words; i < VL_WORDS_I(obits); ++i) owp[i] = 0; } else { int loffset = rd & VL_SIZEBITS_I; int nbitsonright = 32-loffset; // bits that end up in lword (know loffset!=0) // Middle words int words = VL_WORDS_I(obits-rd); - for (int i=0; i>loffset; int upperword = i+word_shift+1; if (upperword < VL_WORDS_I(obits)) { owp[i] |= lwp[upperword]<< nbitsonright; } } - for (int i=words; i>32 or more return VL_ZERO_W(obits, owp); } @@ -1644,7 +1644,7 @@ static inline WDataOutP VL_SHIFTR_WWW(int obits,int lbits,int rbits,WDataOutP ow return VL_SHIFTR_WWI(obits,lbits,32,owp,lwp,rwp[0]); } static inline IData VL_SHIFTR_IIW(int obits,int,int rbits,IData lhs, WDataInP rwp) { - for (int i=1; i < VL_WORDS_I(rbits); i++) { + for (int i=1; i < VL_WORDS_I(rbits); ++i) { if (VL_UNLIKELY(rwp[i])) { // Huge shift 1>>32 or more return 0; } @@ -1676,20 +1676,20 @@ static inline WDataOutP VL_SHIFTRS_WWI(int obits,int lbits,int,WDataOutP owp,WDa int lmsw = VL_WORDS_I(obits)-1; IData sign = VL_SIGNONES_I(lbits,lwp[lmsw]); if (rd >= (IData)obits) { // Shifting past end, sign in all of lbits - for (int i=0; i <= lmsw; i++) owp[i] = sign; + for (int i=0; i <= lmsw; ++i) owp[i] = sign; owp[lmsw] &= VL_MASK_I(lbits); } else if (bit_shift==0) { // Aligned word shift (>>0,>>32,>>64 etc) int copy_words = (VL_WORDS_I(obits)-word_shift); - for (int i=0; i < copy_words; i++) owp[i] = lwp[i+word_shift]; + for (int i=0; i < copy_words; ++i) owp[i] = lwp[i+word_shift]; if (copy_words>=0) owp[copy_words-1] |= ~VL_MASK_I(obits) & sign; - for (int i=copy_words; i < VL_WORDS_I(obits); i++) owp[i] = sign; + for (int i=copy_words; i < VL_WORDS_I(obits); ++i) owp[i] = sign; owp[lmsw] &= VL_MASK_I(lbits); } else { int loffset = rd & VL_SIZEBITS_I; int nbitsonright = 32-loffset; // bits that end up in lword (know loffset!=0) // Middle words int words = VL_WORDS_I(obits-rd); - for (int i=0; i>loffset; int upperword = i+word_shift+1; if (upperword < VL_WORDS_I(obits)) { @@ -1697,17 +1697,17 @@ static inline WDataOutP VL_SHIFTRS_WWI(int obits,int lbits,int,WDataOutP owp,WDa } } if (words) owp[words-1] |= sign & ~VL_MASK_I(obits-loffset); - for (int i=words; i>32 or more int lmsw = VL_WORDS_I(obits)-1; IData sign = VL_SIGNONES_I(lbits,lwp[lmsw]); - for (int i=0; i <= lmsw; i++) owp[i] = sign; + for (int i=0; i <= lmsw; ++i) owp[i] = sign; owp[lmsw] &= VL_MASK_I(lbits); return owp; } @@ -1715,7 +1715,7 @@ static inline WDataOutP VL_SHIFTRS_WWW(int obits,int lbits,int rbits,WDataOutP o return VL_SHIFTRS_WWI(obits,lbits,32,owp,lwp,rwp[0]); } static inline IData VL_SHIFTRS_IIW(int obits,int lbits,int rbits,IData lhs, WDataInP rwp) { - for (int i=1; i < VL_WORDS_I(rbits); i++) { + for (int i=1; i < VL_WORDS_I(rbits); ++i) { if (VL_UNLIKELY(rwp[i])) { // Huge shift 1>>32 or more IData sign = -(lhs >> (lbits-1)); // ffff_ffff if negative return VL_CLEAN_II(obits,obits,sign); @@ -1724,7 +1724,7 @@ static inline IData VL_SHIFTRS_IIW(int obits,int lbits,int rbits,IData lhs, WDat return VL_SHIFTRS_III(obits,lbits,32,lhs,rwp[0]); } static inline QData VL_SHIFTRS_QQW(int obits,int lbits,int rbits,QData lhs, WDataInP rwp) { - for (int i=1; i < VL_WORDS_I(rbits); i++) { + for (int i=1; i < VL_WORDS_I(rbits); ++i) { if (VL_UNLIKELY(rwp[i])) { // Huge shift 1>>32 or more QData sign = -(lhs >> (lbits-1)); // ffff_ffff if negative return VL_CLEAN_QQ(obits,obits,sign); @@ -1805,25 +1805,25 @@ static inline WDataOutP VL_SEL_WWII(int obits,int lbits,int,int,WDataOutP owp,WD int msb = lsb+width-1; int word_shift = VL_BITWORD_I(lsb); if (VL_UNLIKELY(msb>lbits)) { // Outside bounds, - for (int i=0; i>loffset; int upperword = i+word_shift+1; if (upperword <= (int)VL_BITWORD_I(msb)) { owp[i] |= lwp[upperword]<< nbitsfromlow; } } - for (int i=words; im_keys[i] != KEY_UNDEF) { // We don't compare keys, only values string val = m_indexValues[itemp->m_vals[i]]; @@ -274,15 +274,15 @@ public: // Keys -> strings string keys[MAX_KEYS]; - for (int i=0; im_keys[i] != KEY_UNDEF) { string key = VerilatedCovKey::shortKey(m_indexValues[itemp->m_keys[i]]); string val = m_indexValues[itemp->m_vals[i]]; diff --git a/include/verilated_cov.h b/include/verilated_cov.h index 558ff5d40..ae9dd3672 100644 --- a/include/verilated_cov.h +++ b/include/verilated_cov.h @@ -60,9 +60,9 @@ using namespace std; /// /// vluint32_t m_cases[10]; /// constructor { -/// for (int i=0; i<10; i++) { m_cases[i]=0; } +/// for (int i=0; i<10; ++i) { m_cases[i]=0; } /// } -/// for (int i=0; i<10; i++) { +/// for (int i=0; i<10; ++i) { /// VL_COVER_INSERT(&m_cases[i], "comment", "Coverage Case", "i", cvtToNumStr(i)); /// } diff --git a/include/verilated_dpi.h b/include/verilated_dpi.h index 7889243e8..ff9653bba 100644 --- a/include/verilated_dpi.h +++ b/include/verilated_dpi.h @@ -37,25 +37,25 @@ /// Return svBitVecVal from WData static inline void VL_SET_W_SVBV(int obits, WDataOutP owp, svBitVecVal* lwp) { int words = VL_WORDS_I(obits); - for (int i=0; ivarDatap())); - for (int i=0; iformat), vop->fullname(), outStrSz, VL_MULS_MAX_WORDS, bits); } - for (i=0; i>3]>>(i&7))&1; outStr[bits-i-1] = val?'1':'0'; } @@ -821,7 +821,7 @@ void vpi_get_value(vpiHandle object, p_vpi_value value_p) { VL_FUNC, VerilatedVpiError::strFromVpiVal(value_p->format), vop->fullname(), outStrSz, VL_MULS_MAX_WORDS, chars); chars = outStrSz; } - for (i=0; iformat), vop->fullname(), outStrSz, VL_MULS_MAX_WORDS, chars); chars = outStrSz; } - for (i=0; i>1]>>((i&1)<<2))&15; static char hex[] = "0123456789abcdef"; if (i==(chars-1)) { @@ -922,7 +922,7 @@ void vpi_get_value(vpiHandle object, p_vpi_value value_p) { vop->fullname(), outStrSz, VL_MULS_MAX_WORDS, bytes); bytes = outStrSz; } - for (i=0; ivarp()->range().elements()); WDataOutP datap = ((IData*)(vop->varDatap())); - for (int i=0; ivalue.vector[i].aval; if (i==(words-1)) { datap[i] &= vop->mask(); @@ -1037,7 +1037,7 @@ vpiHandle vpi_put_value(vpiHandle object, p_vpi_value value_p, int bits = vop->varp()->range().elements(); int len = strlen(value_p->value.str); CData* datap = ((CData*)(vop->varDatap())); - for (int i=0; ivalue.str[len-i-1]=='1'):0; // zero bits 7:1 of byte when assigning to bit 0, else // or in 1 if bit set @@ -1067,7 +1067,7 @@ vpiHandle vpi_put_value(vpiHandle object, p_vpi_value value_p, CData* datap = ((CData*)(vop->varDatap())); div_t idx; datap[0] = 0; // reset zero'th byte - for (int i=0; imask_byte(idx.quot+1); } // zero off remaining top bytes - for (int i=idx.quot+2; ivarp()->range().elements()); int len = strlen(value_p->value.str); CData* datap = ((CData*)(vop->varDatap())); - for (int i=0; ivalue.str[len-i-1]:0; // prepend with 0 values before placing string the least signifcant bytes } return object;