Add the suffix to the bitfield generation
Clang complains about shifting signed numbers so we need to make sure it knows it is unsigned
This commit is contained in:
parent
1d8b5d4ab1
commit
5ebe5526fd
1 changed files with 2 additions and 2 deletions
|
|
@ -312,7 +312,7 @@ writer_template = \
|
|||
"""%(inline)s %(block)s_t CONST
|
||||
%(block)s_set_%(field)s(%(block)s_t %(block)s, %(type)s v%(base)d) {
|
||||
/* fail if user has passed bits that we will override */
|
||||
%(assert)s((((~0x%(mask)x %(r_shift_op)s %(shift)d ) | 0x%(high_bits)x) & v%(base)d) == ((%(sign_extend)d && (v%(base)d & (1%(suf)s << (%(extend_bit)d)))) ? 0x%(high_bits)x : 0));
|
||||
%(assert)s((((~0x%(mask)x%(suf)s %(r_shift_op)s %(shift)d ) | 0x%(high_bits)x) & v%(base)d) == ((%(sign_extend)d && (v%(base)d & (1%(suf)s << (%(extend_bit)d)))) ? 0x%(high_bits)x : 0));
|
||||
%(block)s.words[%(index)d] &= ~0x%(mask)x%(suf)s;
|
||||
%(block)s.words[%(index)d] |= (v%(base)d %(w_shift_op)s %(shift)d) & 0x%(mask)x%(suf)s;
|
||||
return %(block)s;
|
||||
|
|
@ -322,7 +322,7 @@ ptr_writer_template = \
|
|||
"""%(inline)s void
|
||||
%(block)s_ptr_set_%(field)s(%(block)s_t *%(block)s_ptr, %(type)s v%(base)d) {
|
||||
/* fail if user has passed bits that we will override */
|
||||
%(assert)s((((~0x%(mask)x %(r_shift_op)s %(shift)d) | 0x%(high_bits)x) & v%(base)d) == ((%(sign_extend)d && (v%(base)d & (1%(suf)s << (%(extend_bit)d)))) ? 0x%(high_bits)x : 0));
|
||||
%(assert)s((((~0x%(mask)x%(suf)s %(r_shift_op)s %(shift)d) | 0x%(high_bits)x) & v%(base)d) == ((%(sign_extend)d && (v%(base)d & (1%(suf)s << (%(extend_bit)d)))) ? 0x%(high_bits)x : 0));
|
||||
%(block)s_ptr->words[%(index)d] &= ~0x%(mask)x%(suf)s;
|
||||
%(block)s_ptr->words[%(index)d] |= (v%(base)d %(w_shift_op)s """ \
|
||||
"""%(shift)d) & 0x%(mask)x;
|
||||
|
|
|
|||
Loading…
Reference in a new issue