diff --git a/src/intel/genxml/gen125.xml b/src/intel/genxml/gen125.xml index 6d27fb84b65..4af72bf249e 100644 --- a/src/intel/genxml/gen125.xml +++ b/src/intel/genxml/gen125.xml @@ -6892,8 +6892,8 @@ - - + + diff --git a/src/intel/genxml/gen_pack_header.py b/src/intel/genxml/gen_pack_header.py index c7355380ddb..ec512453dc0 100644 --- a/src/intel/genxml/gen_pack_header.py +++ b/src/intel/genxml/gen_pack_header.py @@ -133,6 +133,7 @@ class Field(object): self.end = int(attrs["end"]) self.type = attrs["type"] self.nonzero = bool_from_str(attrs.get("nonzero", "false")) + self.prefix = attrs["prefix"] if "prefix" in attrs else None assert self.start <= self.end, \ 'field {} has end ({}) < start ({})'.format(self.name, self.end, @@ -141,11 +142,6 @@ class Field(object): assert self.end == self.start, \ 'bool field ({}) is too wide'.format(self.name) - if "prefix" in attrs: - self.prefix = attrs["prefix"] - else: - self.prefix = None - if "default" in attrs: # Base 0 recognizes 0x, 0o, 0b prefixes in addition to decimal ints. self.default = int(attrs["default"], base=0) @@ -340,6 +336,13 @@ class Group(object): else: address_count = 1 + # Assert in dont_use values + for field in dw.fields: + for value in field.values: + if value.dont_use: + print(" assert(values->%s != %s);" % + (field.name, field.prefix + "_" + value.name)) + if dw.size == 32 and dw.address == None: v = None print(" dw[%d] =" % index) @@ -423,6 +426,7 @@ class Value(object): def __init__(self, attrs): self.name = safe_name(attrs["name"]) self.value = ast.literal_eval(attrs["value"]) + self.dont_use = int(attrs["dont_use"]) != 0 if "dont_use" in attrs else False class Parser(object): def __init__(self): @@ -490,7 +494,7 @@ class Parser(object): if "prefix" in attrs: self.prefix = safe_name(attrs["prefix"]) else: - self.prefix= None + self.prefix = None elif name == "value": self.values.append(Value(attrs)) diff --git a/src/intel/genxml/gen_sort_tags.py b/src/intel/genxml/gen_sort_tags.py index 11569df862a..22454559875 100755 --- a/src/intel/genxml/gen_sort_tags.py +++ b/src/intel/genxml/gen_sort_tags.py @@ -86,7 +86,7 @@ GENXML_DESC = { 'struct' : [ 'name', 'length', ], 'field' : [ 'name', 'start', 'end', 'type', 'default', 'prefix', 'nonzero' ], 'instruction' : [ 'name', 'bias', 'length', 'engine', ], - 'value' : [ 'name', 'value', ], + 'value' : [ 'name', 'value', 'dont_use', ], 'group' : [ 'count', 'start', 'size', ], 'register' : [ 'name', 'length', 'num', ], }