From 090af6255bebf0129c891116b53b31808fe49dc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigrid=20Solveig=20Hafl=C3=ADnud=C3=B3ttir?= Date: Sat, 6 May 2023 04:59:28 +0000 Subject: 7c: node offsets aren't necessarily 0 - fixup packed structs --- sys/src/cmd/7c/cgen.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'sys/src') 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; -- cgit v1.2.3