diff options
author | Sigrid Solveig Haflínudóttir <sigrid@ftrv.se> | 2023-05-06 04:59:28 +0000 |
---|---|---|
committer | Sigrid Solveig Haflínudóttir <sigrid@ftrv.se> | 2023-05-06 04:59:28 +0000 |
commit | 090af6255bebf0129c891116b53b31808fe49dc7 (patch) | |
tree | be6753f287998fec519dad5906aca1bd08f9c59b | |
parent | deb39a43ae5ed09c7971726cedeb06a9f65ccc6d (diff) |
7c: node offsets aren't necessarily 0 - fixup packed structs
-rw-r--r-- | sys/src/cmd/7c/cgen.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/src/cmd/7c/cgen.c b/sys/src/cmd/7c/cgen.c index 76c5795e4..6f80f9f36 100644 --- a/sys/src/cmd/7c/cgen.c +++ b/sys/src/cmd/7c/cgen.c @@ -1121,17 +1121,19 @@ copy: } if((m = w % SZ_LONG) > 0){ - nod1.xoffset = nod2.xoffset = w - m; + nod1.xoffset += w - m; + nod2.xoffset += w - m; regalloc(&nod3, ®node, Z); do{ gins(AMOVB, &nod1, &nod3); gins(AMOVB, &nod3, &nod2); nod1.xoffset++; nod2.xoffset++; + w--; }while(--m > 0); regfree(&nod3); - nod1.xoffset = 0; - nod2.xoffset = 0; + nod1.xoffset -= w - m; + nod2.xoffset -= w - m; } w /= SZ_LONG; |