aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--Tools/jit/_writer.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/Tools/jit/_writer.py b/Tools/jit/_writer.py
index 5588784544e..090b52660f0 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)