Skip to content

Commit f32b64f

Browse files
msuminsksteveicarus
authored andcommitted
Fixed warnings about shifting a negative value
1 parent 151f061 commit f32b64f

File tree

4 files changed

+12
-12
lines changed

4 files changed

+12
-12
lines changed

tgt-vhdl/stmt.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1180,7 +1180,7 @@ static long get_number_as_long(ivl_expr_t expr)
11801180
}
11811181

11821182
if (ivl_expr_signed(expr) && bits[nbits-1] == '1' &&
1183-
nbits < 8*sizeof(long)) imm |= -1L << nbits;
1183+
nbits < 8*sizeof(long)) imm |= -1UL << nbits;
11841184
}
11851185
break;
11861186
}

tgt-vvp/eval_expr.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ long get_number_immediate(ivl_expr_t expr)
139139
assert(0);
140140
}
141141
if (ivl_expr_signed(expr) && bits[nbits-1]=='1' &&
142-
nbits < 8*sizeof(long)) imm |= -1L << nbits;
142+
nbits < 8*sizeof(long)) imm |= -1UL << nbits;
143143
break;
144144
}
145145

vvp/vthread.cc

+3-3
Original file line numberDiff line numberDiff line change
@@ -3935,9 +3935,9 @@ bool of_MOD_S(vthread_t thr, vvp_code_t)
39353935
/* Sign extend the signed operands when needed. */
39363936
if (wid < 8*sizeof(long long)) {
39373937
if (lv & (1LL << (wid-1)))
3938-
lv |= -1LL << wid;
3938+
lv |= -1ULL << wid;
39393939
if (rv & (1LL << (wid-1)))
3940-
rv |= -1LL << wid;
3940+
rv |= -1ULL << wid;
39413941
}
39423942

39433943
lv %= rv;
@@ -4089,7 +4089,7 @@ static bool of_PARTI_base(vthread_t thr, vvp_code_t cp, bool signed_flag)
40894089
// NOTE: This is treating the vector as signed. Is that correct?
40904090
int32_t use_base = base;
40914091
if (signed_flag && bwid < 32 && (base&(1<<(bwid-1)))) {
4092-
use_base |= (-1) << bwid;
4092+
use_base |= -1UL << bwid;
40934093
}
40944094

40954095
if (use_base >= (int32_t)value.size()) {

vvp/vvp_net.cc

+7-7
Original file line numberDiff line numberDiff line change
@@ -987,8 +987,8 @@ void vvp_vector4_t::resize(unsigned newsize, vvp_bit4_t pad_bit)
987987
// no need for re-allocation so we are done now.
988988
if (newsize > size_) {
989989
if (unsigned fill = size_ % BITS_PER_WORD) {
990-
abits_ptr_[cnt-1] &= ~((-1L) << fill);
991-
bbits_ptr_[cnt-1] &= ~((-1L) << fill);
990+
abits_ptr_[cnt-1] &= ~((-1UL) << fill);
991+
bbits_ptr_[cnt-1] &= ~((-1UL) << fill);
992992
abits_ptr_[cnt-1] |= word_pad_abits << fill;
993993
bbits_ptr_[cnt-1] |= word_pad_bbits << fill;
994994
}
@@ -1018,9 +1018,9 @@ void vvp_vector4_t::resize(unsigned newsize, vvp_bit4_t pad_bit)
10181018

10191019
if (newsize > size_) {
10201020
if (unsigned fill = size_ % BITS_PER_WORD) {
1021-
newbits[cnt-1] &= ~((-1L) << fill);
1021+
newbits[cnt-1] &= ~((-1UL) << fill);
10221022
newbits[cnt-1] |= word_pad_abits << fill;
1023-
newbits[newcnt+cnt-1] &= ~((-1L) << fill);
1023+
newbits[newcnt+cnt-1] &= ~((-1UL) << fill);
10241024
newbits[newcnt+cnt-1] |= word_pad_bbits << fill;
10251025
}
10261026
for (unsigned idx = cnt ; idx < newcnt ; idx += 1)
@@ -1043,8 +1043,8 @@ void vvp_vector4_t::resize(unsigned newsize, vvp_bit4_t pad_bit)
10431043
}
10441044

10451045
if (newsize > size_) {
1046-
abits_val_ &= ~((-1L) << size_);
1047-
bbits_val_ &= ~((-1L) << size_);
1046+
abits_val_ &= ~((-1UL) << size_);
1047+
bbits_val_ &= ~((-1UL) << size_);
10481048
abits_val_ |= word_pad_abits << size_;
10491049
bbits_val_ |= word_pad_bbits << size_;
10501050
}
@@ -2018,7 +2018,7 @@ template <class INT>bool vector4_to_value(const vvp_vector4_t&vec, INT&val,
20182018

20192019
if (is_signed && vec.value(vec.size()-1) == BIT4_1) {
20202020
if (vec.size() < 8*sizeof(val))
2021-
res |= (~static_cast<INT>(0)) << vec.size();
2021+
res |= static_cast<INT>(-1ULL << vec.size());
20222022
}
20232023

20242024
val = res;

0 commit comments

Comments
 (0)