Lines Matching +full:attrib +full:-
39 For a leaf node, the mask should be (1 << size) - 1
60 if 'pos' in field.attrib:
61 assert('low' not in field.attrib)
62 assert('high' not in field.attrib)
63 low = int(field.attrib['pos'])
66 low = int(field.attrib['low'])
67 high = int(field.attrib['high'])
73 mask = ((1 << (1 + high - low)) - 1) << low
77 …assert (len(patstr) == (1 + high - low)), "Invalid {} length in {}: {}..{}".format(xml.tag, name, …
99 return name.lower().replace('#', '__').replace('-', '_').replace('.', '_')
107 self.name = xml.attrib['name']
108 self.type = xml.attrib['type']
111 aas = name = param.attrib['name']
112 if 'as' in param.attrib:
113 aas = param.attrib['as']
117 self.call = 'call' in xml.attrib and xml.attrib['call'] == 'true'
118 if 'display' in xml.attrib:
119 self.display = xml.attrib['display'].strip()
132 return ((1 << self.get_size()) - 1) << self.low
135 return 1 + self.high - self.low
167 # field for that to make '1 + high - low' work out
168 if 'width' in xml.attrib:
169 self.high = int(xml.attrib['width']) - 1
170 self.name = xml.attrib['name']
171 self.type = xml.attrib['type']
172 if 'expr' in xml.attrib:
173 self.expr = xml.attrib['expr']
178 if 'display' in xml.attrib:
179 self.display = xml.attrib['display'].strip()
180 self.call = 'call' in xml.attrib and xml.attrib['call'] == 'true'
204 dbg("{}.{}".format(self.name, field.attrib['name']))
230 if 'type' in xml.attrib:
231 self.type = xml.attrib['type']
233 if 'case-prefix' in xml.attrib:
234 self.case_prefix = xml.attrib['case-prefix']
240 name = map.attrib['name']
242 if 'force' in map.attrib and map.attrib['force'] == 'true':
259 self.name = xml.attrib['name']
260 self.display_name = xml.attrib['displayname'] if 'displayname' in xml.attrib else self.name
263 # Used for generated encoder, to de-duplicate encoding for
267 if 'size' in xml.attrib:
268 assert('extends' not in xml.attrib)
269 self.size = int(xml.attrib['size'])
273 self.extends = xml.attrib['extends']
283 self.gen_max = (1 << 32) - 1
286 if 'min' in gen.attrib:
287 self.gen_min = int(gen.attrib['min'])
288 if 'max' in gen.attrib:
289 self.gen_max = int(gen.attrib['max'])
292 self.meta.update(meta.attrib)
323 if 'expr' in override.attrib:
324 expr = override.attrib['expr']
372 …assert (self.gen_max == (1 << 32) - 1) or (self.gen_max <= parent.get_gen_max()), "bitset {} shoul…
378 return self.gen_min != 0 or self.gen_max != (1 << 32) - 1
404 self.name = xml.attrib['name']
413 self.displayname = xml.attrib['display']
414 self.value = xml.attrib['val']
415 self.name = xml.attrib.get('name')
434 self.name = xml.attrib['name']
450 if 'name' in xml.attrib:
451 self.name = xml.attrib['name']
456 self.fieldnames = list(set(re.findall(r"{([a-zA-Z0-9_]+)}", expr)))
457 self.expr = re.sub(r"{([a-zA-Z0-9_]+)}", r"\1", expr)
458 dbg("'{}' -> '{}'".format(expr, self.expr))
489 # Table of all non-ambiguous bitsets (i.e. no per-gen ambiguity):
511 # Handle imports up-front:
513 p = os.path.join(self.base_path, imprt.attrib['file'])
551 # Do one-time fixups
552 # Remove non-leaf nodes from the leafs table:
558 # Fix multi-gen leaves in bitsets
580 … bitset_name, field_name, field.low, field.high, 0, bitset.get_size() - 1)
598 …assert ((pat.mask | pat.field_mask) == (1 << sz) - 1), "leaf bitset {} has undefined bits: {:x}".f…
599 bitset.name, ~(pat.mask | pat.field_mask) & ((1 << sz) - 1))
625 for i in range(int(words) - 1, -1, -1):
631 ''' Split `value` into a list of bitsize-bit integers '''
632 mask, parts = (1 << bitsize) - 1, []
645 # Returns all bitsets in the ISA, including all per-gen variants, in