diff options
author | Mike Pall <mike> | 2010-12-06 01:48:19 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2010-12-06 01:48:19 +0100 |
commit | db3d16bfd7fb7dc468e7b86199a9958283424b6d (patch) | |
tree | 7472ff2cf74b2336a74d209ab278e96ddfb8e2af /src/lj_opt_fold.c | |
parent | 281f426d602596f855d8fea787ad7a514365244d (diff) | |
download | luajit-db3d16bfd7fb7dc468e7b86199a9958283424b6d.tar.gz luajit-db3d16bfd7fb7dc468e7b86199a9958283424b6d.tar.bz2 luajit-db3d16bfd7fb7dc468e7b86199a9958283424b6d.zip |
Add IR_XSTORE.
Diffstat (limited to 'src/lj_opt_fold.c')
-rw-r--r-- | src/lj_opt_fold.c | 13 |
1 files changed, 1 insertions, 12 deletions
diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c index 8ccfc6bd..3476235e 100644 --- a/src/lj_opt_fold.c +++ b/src/lj_opt_fold.c | |||
@@ -1357,19 +1357,8 @@ LJFOLDF(xload_kptr) | |||
1357 | return NEXTFOLD; | 1357 | return NEXTFOLD; |
1358 | } | 1358 | } |
1359 | 1359 | ||
1360 | /* CSE for XLOAD depends on the type, but not on the IRXLOAD_* flags. */ | ||
1361 | LJFOLD(XLOAD any any) | 1360 | LJFOLD(XLOAD any any) |
1362 | LJFOLDF(fwd_xload) | 1361 | LJFOLDX(lj_opt_fwd_xload) |
1363 | { | ||
1364 | IRRef ref = J->chain[IR_XLOAD]; | ||
1365 | IRRef op1 = fins->op1; | ||
1366 | while (ref > op1) { | ||
1367 | if (IR(ref)->op1 == op1 && irt_sametype(IR(ref)->t, fins->t)) | ||
1368 | return ref; | ||
1369 | ref = IR(ref)->prev; | ||
1370 | } | ||
1371 | return EMITFOLD; | ||
1372 | } | ||
1373 | 1362 | ||
1374 | /* -- Write barriers ------------------------------------------------------ */ | 1363 | /* -- Write barriers ------------------------------------------------------ */ |
1375 | 1364 | ||