diff --git a/Tools/jit/_writer.py b/Tools/jit/_writer.py index 5588784544ee00..090b52660f009c 100644 --- a/Tools/jit/_writer.py +++ b/Tools/jit/_writer.py @@ -49,15 +49,16 @@ def _dump_stencil(opname: str, group: _stencils.StencilGroup) -> typing.Iterator for part, stencil in [("code", group.code), ("data", group.data)]: for line in stencil.disassembly: yield f" // {line}" - if stencil.body: + stripped = stencil.body.rstrip(b"\x00") + if stripped: yield f" const unsigned char {part}_body[{len(stencil.body)}] = {{" - for i in range(0, len(stencil.body), 8): - row = " ".join(f"{byte:#04x}," for byte in stencil.body[i : i + 8]) + for i in range(0, len(stripped), 8): + row = " ".join(f"{byte:#04x}," for byte in stripped[i : i + 8]) yield f" {row}" yield " };" # Data is written first (so relaxations in the code work properly): for part, stencil in [("data", group.data), ("code", group.code)]: - if stencil.body: + if stencil.body.rstrip(b"\x00"): yield f" memcpy({part}, {part}_body, sizeof({part}_body));" skip = False stencil.holes.sort(key=lambda hole: hole.offset)