diff options
author | Mike Pall <mike> | 2010-03-28 06:42:48 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2010-03-28 06:42:48 +0200 |
commit | 44756ded7ae7bcf66bd657f5d8084be5ba4fb43f (patch) | |
tree | f8e1d4e301205ec74fcade2d191fe1a467091cc7 /src | |
parent | 69df01efb20fb7bd91f9a857c78da8d49a01e309 (diff) | |
download | luajit-44756ded7ae7bcf66bd657f5d8084be5ba4fb43f.tar.gz luajit-44756ded7ae7bcf66bd657f5d8084be5ba4fb43f.tar.bz2 luajit-44756ded7ae7bcf66bd657f5d8084be5ba4fb43f.zip |
Only fuse with spill slots for cross-section references.
Diffstat (limited to 'src')
-rw-r--r-- | src/lj_asm.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lj_asm.c b/src/lj_asm.c index 382f2aa0..ba34bff8 100644 --- a/src/lj_asm.c +++ b/src/lj_asm.c | |||
@@ -1307,7 +1307,7 @@ static Reg asm_fuseload(ASMState *as, IRRef ref, RegSet allow) | |||
1307 | } | 1307 | } |
1308 | } | 1308 | } |
1309 | if (!(as->freeset & allow) && | 1309 | if (!(as->freeset & allow) && |
1310 | (allow == RSET_EMPTY || ra_hasspill(ir->s) || ref < as->loopref)) | 1310 | (allow == RSET_EMPTY || ra_hasspill(ir->s) || iscrossref(as, ref))) |
1311 | goto fusespill; | 1311 | goto fusespill; |
1312 | return ra_allocref(as, ref, allow); | 1312 | return ra_allocref(as, ref, allow); |
1313 | } | 1313 | } |