diff options
author | Mike Pall <mike> | 2021-06-03 10:05:20 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2021-06-03 10:05:20 +0200 |
commit | 65ff33a4afc7b10e3496438fb4d1515a2f01ee0d (patch) | |
tree | 819e97b2c339ad5ca9f098affd27b1acf22fb849 /src | |
parent | 1b7171c339a8d33cb1fd332e31787ebc23266f10 (diff) | |
download | luajit-65ff33a4afc7b10e3496438fb4d1515a2f01ee0d.tar.gz luajit-65ff33a4afc7b10e3496438fb4d1515a2f01ee0d.tar.bz2 luajit-65ff33a4afc7b10e3496438fb4d1515a2f01ee0d.zip |
Fix IR_BUFHDR assembly.
Diffstat (limited to 'src')
-rw-r--r-- | src/lj_asm.c | 7 |
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); |