<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Mar 13, 2017 at 3:46 AM, Lionel Landwerlin <span dir="ltr"><<a href="mailto:lionel.g.landwerlin@intel.com" target="_blank">lionel.g.landwerlin@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Before this change, the generator could print this kind of things :<br>
<br>
const uint32_t v0 =<br>
__gen_uint(values->ValidBit, 0, 0) |<br>
__gen_uint(values->FaultType, 1, 2) |<br>
__gen_uint(values-><wbr>SRCIDofFault, 3, 10) |<br>
__gen_uint(values->GTTSEL, 11, 1) |<br>
dw[0] = __gen_combine_address(data, &dw[0], values->VirtualAddressofFault, v0);<br>
<br>
This change fix the trailing '|'.<br>
<br>
Signed-off-by: Lionel Landwerlin <<a href="mailto:lionel.g.landwerlin@intel.com">lionel.g.landwerlin@intel.com</a><wbr>><br>
---<br>
src/intel/genxml/gen_pack_<wbr>header.py | 54 ++++++++++++++++++------------<wbr>-------<br>
1 file changed, 26 insertions(+), 28 deletions(-)<br>
<br>
diff --git a/src/intel/genxml/gen_pack_<wbr>header.py b/src/intel/genxml/gen_pack_<wbr>header.py<br>
index a1befaf45e..88a42e4b57 100644<br>
--- a/src/intel/genxml/gen_pack_<wbr>header.py<br>
+++ b/src/intel/genxml/gen_pack_<wbr>header.py<br>
@@ -415,51 +415,49 @@ class Group(object):<br>
v = "0"<br>
<br>
field_index = 0<br>
+ non_address_fields = []<br>
for field in dw.fields:<br>
if field.type != "mbo":<br>
name = <a href="http://field.name" rel="noreferrer" target="_blank">field.name</a> + field.dim<br>
<br>
if field.type == "mbo":<br>
- s = "__gen_mbo(%d, %d)" % \<br>
- (field.start - dword_start, field.end - dword_start)<br>
+ non_address_fields.append("__<wbr>gen_mbo(%d, %d)" % \<br>
+ (field.start - dword_start, field.end - dword_start))<br>
elif field.type == "address":<br>
- s = None<br>
+ pass<br>
elif field.type == "uint":<br>
- s = "__gen_uint(values->%s, %d, %d)" % \<br>
- (name, field.start - dword_start, field.end - dword_start)<br>
+ non_address_fields.append("__<wbr>gen_uint(values->%s, %d, %d)" % \<br>
+ (name, field.start - dword_start, field.end - dword_start))<br>
elif field.type in self.parser.enums:<br>
- s = "__gen_uint(values->%s, %d, %d)" % \<br>
- (name, field.start - dword_start, field.end - dword_start)<br>
+ non_address_fields.append("__<wbr>gen_uint(values->%s, %d, %d)" % \<br>
+ (name, field.start - dword_start, field.end - dword_start))<br>
elif field.type == "int":<br>
- s = "__gen_sint(values->%s, %d, %d)" % \<br>
- (name, field.start - dword_start, field.end - dword_start)<br>
+ non_address_fields.append("__<wbr>gen_sint(values->%s, %d, %d)" % \<br>
+ (name, field.start - dword_start, field.end - dword_start))<br>
elif field.type == "bool":<br>
- s = "__gen_uint(values->%s, %d, %d)" % \<br>
- (name, field.start - dword_start, field.end - dword_start)<br>
+ non_address_fields.append("__<wbr>gen_uint(values->%s, %d, %d)" % \<br>
+ (name, field.start - dword_start, field.end - dword_start))<br>
elif field.type == "float":<br>
- s = "__gen_float(values->%s)" % name<br>
+ non_address_fields.append("__<wbr>gen_float(values->%s)" % name)<br>
elif field.type == "offset":<br>
- s = "__gen_offset(values->%s, %d, %d)" % \<br>
- (name, field.start - dword_start, field.end - dword_start)<br>
+ non_address_fields.append("__<wbr>gen_offset(values->%s, %d, %d)" % \<br>
+ (name, field.start - dword_start, field.end - dword_start))<br>
elif field.type == 'ufixed':<br>
- s = "__gen_ufixed(values->%s, %d, %d, %d)" % \<br>
- (name, field.start - dword_start, field.end - dword_start, field.fractional_size)<br>
+ non_address_fields.append("__<wbr>gen_ufixed(values->%s, %d, %d, %d)" % \<br>
+ (name, field.start - dword_start, field.end - dword_start, field.fractional_size))<br>
elif field.type == 'sfixed':<br>
- s = "__gen_sfixed(values->%s, %d, %d, %d)" % \<br>
- (name, field.start - dword_start, field.end - dword_start, field.fractional_size)<br>
+ non_address_fields.append("__<wbr>gen_sfixed(values->%s, %d, %d, %d)" % \<br>
+ (name, field.start - dword_start, field.end - dword_start, field.fractional_size))<br>
elif field.type in self.parser.structs:<br>
- s = "__gen_uint(v%d_%d, %d, %d)" % \<br>
- (index, field_index, field.start - dword_start, field.end - dword_start)<br>
+ non_address_fields.append("__<wbr>gen_uint(v%d_%d, %d, %d)" % \<br>
+ (index, field_index, field.start - dword_start, field.end - dword_start))<br>
field_index = field_index + 1<br>
else:<br>
- print("/* unhandled field %s, type %s */\n" % (name, field.type))<br>
- s = None<br>
-<br>
- if not s == None:<br>
- if field == dw.fields[-1]:<br>
- print(" %s;" % s)<br>
- else:<br>
- print(" %s |" % s)<br>
+ non_address_fields.append("/* unhandled field %s, type %s */\n" % \<br>
+ (name, field.type))<br>
+<br>
+ if len(non_address_fields) > 0:<br>
+ print("%s;" % " |\n".join(map(lambda x: " %s" % x, non_address_fields)))<br></blockquote><div><br></div><div>Another way to do this (which I find easier to read) would be<br><br></div><div>print(" |\n".join(" " + f for f in non_address_fields) + ";")<br><br></div><div>Gets rid of the lambda and some of the string formatting. Either way,<br><br></div><div>Reviewed-by: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>><br><br></div><div>We really need to clean up the generator. :-/<br></div></div><br></div></div>