summaryrefslogtreecommitdiff
path: root/tools/etnaviv/parse_rng.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/etnaviv/parse_rng.py')
-rw-r--r--tools/etnaviv/parse_rng.py7
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))