aboutsummaryrefslogtreecommitdiffhomepage
path: root/irdump.c
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2023-06-20 10:58:17 +0200
committerlemon <lsof@mailbox.org>2023-06-20 11:25:51 +0200
commit3b9071be52359388a4a1db6b48636f6c4934b9ad (patch)
treea65aed400b3767966f6963dd4cdd3f8cb1ff1b2f /irdump.c
parent945d17aff2aa92dd1fbb0304d4ee7ab5ea6ce496 (diff)
don't lower params and args to registers in abi0
it's better to do it later, currently in isel(), but perhaps in a pre-isel abi1 pass
Diffstat (limited to 'irdump.c')
-rw-r--r--irdump.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/irdump.c b/irdump.c
index f1a64f5..c936638 100644
--- a/irdump.c
+++ b/irdump.c
@@ -203,6 +203,11 @@ dumpblk(struct function *fn, struct block *blk)
dumpinst(&instrtab[blk->ins.p[i]]);
}
efmt(" %s ", jnames[blk->jmp.t]);
+ if (blk->jmp.arg[0].t && !fn->nabiret && isagg(fn->retty)) {
+ /* un-lowered struct return */
+ dumpref(0, mktyperef(mkirtype(fn->retty)));
+ efmt(" ");
+ }
for (i = 0; i < 2; ++i) {
if (!blk->jmp.arg[i].t) break;
if (i > 0) efmt(", ");