From deb39a43ae5ed09c7971726cedeb06a9f65ccc6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigrid=20Solveig=20Hafl=C3=ADnud=C3=B3ttir?= Date: Thu, 4 May 2023 06:27:04 +0000 Subject: 7c: copy the remainder of packed structs --- sys/src/cmd/7c/cgen.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'sys') diff --git a/sys/src/cmd/7c/cgen.c b/sys/src/cmd/7c/cgen.c index 3cb84a65c..76c5795e4 100644 --- a/sys/src/cmd/7c/cgen.c +++ b/sys/src/cmd/7c/cgen.c @@ -1120,6 +1120,20 @@ copy: n->type = t; } + if((m = w % SZ_LONG) > 0){ + nod1.xoffset = nod2.xoffset = w - m; + regalloc(&nod3, ®node, Z); + do{ + gins(AMOVB, &nod1, &nod3); + gins(AMOVB, &nod3, &nod2); + nod1.xoffset++; + nod2.xoffset++; + }while(--m > 0); + regfree(&nod3); + nod1.xoffset = 0; + nod2.xoffset = 0; + } + w /= SZ_LONG; if(w <= 5) { layout(&nod1, &nod2, w, 0, Z); -- cgit v1.2.3