<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>