Sfoglia il codice sorgente

Merge branch 'master' into v2.1

Mike Pall 3 anni fa
parent
commit
a91d0d9d3b
1 ha cambiato i file con 11 aggiunte e 0 eliminazioni
  1. 11 0
      src/lj_opt_fold.c

+ 11 - 0
src/lj_opt_fold.c

@@ -2411,6 +2411,17 @@ LJFOLDF(xload_kptr)
 LJFOLD(XLOAD any any)
 LJFOLDX(lj_opt_fwd_xload)
 
+/* -- Frame handling ------------------------------------------------------ */
+
+/* Prevent CSE of a REF_BASE operand across IR_RETF. */
+LJFOLD(SUB any BASE)
+LJFOLD(SUB BASE any)
+LJFOLD(EQ any BASE)
+LJFOLDF(fold_base)
+{
+  return lj_opt_cselim(J, J->chain[IR_RETF]);
+}
+
 /* -- Write barriers ------------------------------------------------------ */
 
 /* Write barriers are amenable to CSE, but not across any incremental