summaryrefslogtreecommitdiff
path: root/src/lj_opt_sink.c
diff options
context:
space:
mode:
authorMike Pall <mike>2012-07-11 16:45:15 +0200
committerMike Pall <mike>2012-07-11 16:45:15 +0200
commit24fa85760cb29c68ff726c97c1ab67a3c0e1bd68 (patch)
treec5942f025653b49c92facc46c1c25771742a55c0 /src/lj_opt_sink.c
parent79ecb231ce8079e8801f15307cf485efe7ee1255 (diff)
downloadluajit-24fa85760cb29c68ff726c97c1ab67a3c0e1bd68.tar.gz
luajit-24fa85760cb29c68ff726c97c1ab67a3c0e1bd68.tar.bz2
luajit-24fa85760cb29c68ff726c97c1ab67a3c0e1bd68.zip
Use an explicit flag to signal SINK tags for a trace.
Diffstat (limited to '')
-rw-r--r--src/lj_opt_sink.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lj_opt_sink.c b/src/lj_opt_sink.c
index b7a3af2d..28291d77 100644
--- a/src/lj_opt_sink.c
+++ b/src/lj_opt_sink.c
@@ -163,7 +163,7 @@ static void sink_remark_phi(jit_State *J)
163 } while (remark); 163 } while (remark);
164} 164}
165 165
166/* Sweep instructions and mark sunken allocations and stores. */ 166/* Sweep instructions and tag sunken allocations and stores. */
167static void sink_sweep_ins(jit_State *J) 167static void sink_sweep_ins(jit_State *J)
168{ 168{
169 IRIns *ir, *irfirst = IR(J->cur.nk); 169 IRIns *ir, *irfirst = IR(J->cur.nk);
@@ -194,6 +194,7 @@ static void sink_sweep_ins(jit_State *J)
194 if (!irt_ismarked(ir->t)) { 194 if (!irt_ismarked(ir->t)) {
195 ir->t.irt &= ~IRT_GUARD; 195 ir->t.irt &= ~IRT_GUARD;
196 ir->prev = REGSP(RID_SINK, 0); 196 ir->prev = REGSP(RID_SINK, 0);
197 J->cur.sinktags = 1; /* Signal present SINK tags to assembler. */
197 } else { 198 } else {
198 irt_clearmark(ir->t); 199 irt_clearmark(ir->t);
199 ir->prev = REGSP_INIT; 200 ir->prev = REGSP_INIT;
@@ -216,7 +217,6 @@ static void sink_sweep_ins(jit_State *J)
216 break; 217 break;
217 } 218 }
218 } 219 }
219 IR(REF_BASE)->prev = 1; /* Signal SINK flags to assembler. */
220} 220}
221 221
222/* Allocation sinking and store sinking. 222/* Allocation sinking and store sinking.