diff --git a/repos/base/include/util/register_set.h b/repos/base/include/util/register_set.h index 402aee6d2e..10a58be0d3 100644 --- a/repos/base/include/util/register_set.h +++ b/repos/base/include/util/register_set.h @@ -636,8 +636,8 @@ class Genode::Register_set : public Register_set_base { typedef typename T::Bitset_2_base::Bits_0 Bits_0; typedef typename T::Bitset_2_base::Bits_1 Bits_1; - write(v); - write(v >> Bits_0::BITFIELD_WIDTH); + write(typename Bits_0::access_t(v)); + write(typename Bits_1::access_t(v >> Bits_0::BITFIELD_WIDTH)); } /** @@ -671,9 +671,9 @@ class Genode::Register_set : public Register_set_base typedef typename T::Bitset_3_base::Bits_0 Bits_0; typedef typename T::Bitset_3_base::Bits_1 Bits_1; typedef typename T::Bitset_3_base::Bits_2 Bits_2; - write >(v); - write(v >> (Bits_0::BITFIELD_WIDTH + - Bits_1::BITFIELD_WIDTH)); + write >(typename Bitset_2::access_t(v)); + write(typename Bits_2::access_t(v >> (Bits_0::BITFIELD_WIDTH + + Bits_1::BITFIELD_WIDTH))); }