aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2021-06-03 10:05:20 +0200
committerMike Pall <mike>2021-06-03 10:05:20 +0200
commit65ff33a4afc7b10e3496438fb4d1515a2f01ee0d (patch)
tree819e97b2c339ad5ca9f098affd27b1acf22fb849 /src
parent1b7171c339a8d33cb1fd332e31787ebc23266f10 (diff)
downloadluajit-65ff33a4afc7b10e3496438fb4d1515a2f01ee0d.tar.gz
luajit-65ff33a4afc7b10e3496438fb4d1515a2f01ee0d.tar.bz2
luajit-65ff33a4afc7b10e3496438fb4d1515a2f01ee0d.zip
Fix IR_BUFHDR assembly.
Diffstat (limited to 'src')
-rw-r--r--src/lj_asm.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lj_asm.c b/src/lj_asm.c
index 319ba837..b613e6d3 100644
--- a/src/lj_asm.c
+++ b/src/lj_asm.c
@@ -1163,9 +1163,10 @@ static void asm_bufhdr(ASMState *as, IRIns *ir)
1163 } 1163 }
1164 } else { 1164 } else {
1165 Reg tmp = ra_scratch(as, rset_exclude(RSET_GPR, sb)); 1165 Reg tmp = ra_scratch(as, rset_exclude(RSET_GPR, sb));
1166 /* Passing ir isn't strictly correct, but it's an IRT_PGC, too. */ 1166 IRIns irbp;
1167 emit_storeofs(as, ir, tmp, sb, offsetof(SBuf, w)); 1167 irbp.ot = IRT(0, IRT_PTR); /* Buffer data pointer type. */
1168 emit_loadofs(as, ir, tmp, sb, offsetof(SBuf, b)); 1168 emit_storeofs(as, &irbp, tmp, sb, offsetof(SBuf, w));
1169 emit_loadofs(as, &irbp, tmp, sb, offsetof(SBuf, b));
1169 } 1170 }
1170#if LJ_TARGET_X86ORX64 1171#if LJ_TARGET_X86ORX64
1171 ra_left(as, sb, ir->op1); 1172 ra_left(as, sb, ir->op1);