diff options
Diffstat (limited to 'tools/etnaviv/parse_rng.py')
-rw-r--r-- | tools/etnaviv/parse_rng.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/tools/etnaviv/parse_rng.py b/tools/etnaviv/parse_rng.py index e61e6ee..98c9d45 100644 --- a/tools/etnaviv/parse_rng.py +++ b/tools/etnaviv/parse_rng.py @@ -241,6 +241,13 @@ class BitField(TypedValue, RNNObject): def extract(self, value): '''Extract this bit field from a value''' return (value >> self.low) & ((1<<(self.high-self.low+1))-1) + + def fill(self, value): + '''Return value filled into this bit field''' + rv = (value << self.low) + if rv != (rv & self.mask): + raise ValueError('Value %i doesn\'t fit in mask %s' % (value, self.name)) + return rv def describe(self, value): return self.type.describe(self.extract(value)) |