diff options
author | Sigrid Solveig Haflínudóttir <sigrid@ftrv.se> | 2023-05-04 06:27:04 +0000 |
---|---|---|
committer | Sigrid Solveig Haflínudóttir <sigrid@ftrv.se> | 2023-05-04 06:27:04 +0000 |
commit | deb39a43ae5ed09c7971726cedeb06a9f65ccc6d (patch) | |
tree | 2cf843cefc40acd92fb394b9b9f42169a63529e7 | |
parent | c3ca13a71a1d8928c7c7b931e0423ffe0544418a (diff) |
7c: copy the remainder of packed structs
-rw-r--r-- | sys/src/cmd/7c/cgen.c | 14 |
1 files changed, 14 insertions, 0 deletions
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); |