From 79d6ac719042371d255ed1cf412e3232d13d1e56 Mon Sep 17 00:00:00 2001 From: lemon Date: Wed, 25 Mar 2026 16:36:29 +0100 Subject: aarch64 struct arg passing ABI wip --- src/t_aarch64_emit.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/t_aarch64_emit.c') diff --git a/src/t_aarch64_emit.c b/src/t_aarch64_emit.c index f413f98..307890b 100644 --- a/src/t_aarch64_emit.c +++ b/src/t_aarch64_emit.c @@ -277,7 +277,7 @@ encode(uchar **pcode, const EncDesc *tab, int ntab, enum irclass k, Oper o[3]) break; case EN_ADDSYMLO12: ins |= sf<<31 | o[1].reg<<5 | o[0].reg; - objrelocxcon(o[2].con, REL_ADD_ABS_LO12_NC, Stext, *pcode - objout.textbegin, o[1].cdisp); + objrelocxcon(o[2].con, REL_ADD_ABS_LO12_NC, Stext, *pcode - objout.textbegin, o[2].cdisp); break; case EN_LDSYMLO19: ins |= o[0].reg; @@ -329,7 +329,7 @@ DEFINSTR2(Xadrp, {8, {PGPRZ, PSYM}, 0x90000000, EN_ADRSYMPGHI21} /* ADR (sym pg hi21) */ ) DEFINSTR2(Xadr, - {8, {PGPRZ, PSYM}, 0x10000000, EN_ADRSYMLO21} /* ADR (sym pg hi21) */ + {8, {PGPRZ, PSYM}, 0x10000000, EN_ADRSYMLO21} /* ADR (sym lo21) */ ) DEFINSTR3(Xadd, @@ -418,6 +418,8 @@ DEFINSTR2(Xfldr, {8, {PFPR, PMEMAIMMX}, 0xFD400000, EN_MEMAIMMX}, {4, {PFPR, PMEMAREG}, 0xBC600800, EN_MEMAREG}, /* LDR (register) */ {8, {PFPR, PMEMAREG}, 0xFC600800, EN_MEMAREG}, + {4, {PFPR, PSYM}, 0x1C000000, EN_LDSYMLO19}, /* LDR (literal) */ + {8, {PFPR, PSYM}, 0x5C000000, EN_LDSYMLO19}, {4, {PFPR, PMEMPREPOST}, 0xBC400000, EN_MEMAPREPOST}, /* LDR (immediate, (pre/postinc)) */ {8, {PFPR, PMEMPREPOST}, 0xFC400000, EN_MEMAPREPOST}, ) -- cgit v1.2.3