]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
RETF modifies BASE. Treat it like a store or it gets CSEd.
authorMike Pall <mike>
Thu, 4 Feb 2010 20:33:24 +0000 (21:33 +0100)
committerMike Pall <mike>
Thu, 4 Feb 2010 20:36:32 +0000 (21:36 +0100)
src/lj_ir.h
src/lj_opt_fold.c

index e110607d2a2bd7e5e8f7e8fa58fdecc82fea0656..75519ed4133c64899618f1f5ce34e237e0a685ab 100644 (file)
@@ -34,7 +34,7 @@
   _(NE,                GC, ref, ref) \
   \
   _(ABC,       G , ref, ref) \
-  _(RETF,      , ref, ref) \
+  _(RETF,      SG, ref, ref) \
   \
   _(LT,                G , ref, ref) \
   _(GE,                G , ref, ref) \
@@ -288,6 +288,7 @@ typedef enum {
 #define IRM_GC                 (IRM_G|IRM_C)
 #define IRM_RG                 (IRM_R|IRM_G)
 #define IRM_LG                 (IRM_L|IRM_G)
+#define IRM_SG                 (IRM_S|IRM_G)
 
 #define irm_op1(m)             (cast(IRMode, (m)&3))
 #define irm_op2(m)             (cast(IRMode, ((m)>>2)&3))
index a8550e1f55b50ad2e56b2b23f9b79ee1c2e70c9e..818979b8c0078ee12834bf007c83c318bd06863f 100644 (file)
@@ -1326,6 +1326,7 @@ LJFOLDX(lj_opt_dse_fstore)
 LJFOLD(NEWREF any any)  /* Treated like a store. */
 LJFOLD(CALLS any any)
 LJFOLD(CALLL any any)  /* Safeguard fallback. */
+LJFOLD(RETF any any)  /* Modifies BASE. */
 LJFOLD(TNEW any any)
 LJFOLD(TDUP any)
 LJFOLDX(lj_ir_emit)