Fix IR_BUFHDR assembly.

This commit is contained in:
Mike Pall 2021-06-03 10:05:20 +02:00
parent 1b7171c339
commit 65ff33a4af

View File

@ -1163,9 +1163,10 @@ static void asm_bufhdr(ASMState *as, IRIns *ir)
}
} else {
Reg tmp = ra_scratch(as, rset_exclude(RSET_GPR, sb));
/* Passing ir isn't strictly correct, but it's an IRT_PGC, too. */
emit_storeofs(as, ir, tmp, sb, offsetof(SBuf, w));
emit_loadofs(as, ir, tmp, sb, offsetof(SBuf, b));
IRIns irbp;
irbp.ot = IRT(0, IRT_PTR); /* Buffer data pointer type. */
emit_storeofs(as, &irbp, tmp, sb, offsetof(SBuf, w));
emit_loadofs(as, &irbp, tmp, sb, offsetof(SBuf, b));
}
#if LJ_TARGET_X86ORX64
ra_left(as, sb, ir->op1);