diff options
Diffstat (limited to 'arm64')
-rw-r--r-- | arm64/abi.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arm64/abi.c b/arm64/abi.c index 396c704..b2b5973 100644 --- a/arm64/abi.c +++ b/arm64/abi.c @@ -183,12 +183,14 @@ selret(Blk *b, Fn *fn) if (j == Jretc) { typclass(&cr, &typ[fn->retty], gpreg, fpreg); - cty = (cr.nfp << 2) | cr.ngp; if (cr.class & Cptr) { assert(rtype(fn->retr) == RTmp); blit0(fn->retr, r, cr.t->size, fn); - } else + cty = 0; + } else { ldregs(cr.reg, cr.cls, cr.nreg, r, fn); + cty = (cr.nfp << 2) | cr.ngp; + } } else { k = j - Jretw; if (KBASE(k) == 0) { |