DUALNUM: Make overflow guards weak. Add IR_USE and IR_MULOV.

This commit is contained in:
Mike Pall
2011-03-07 20:21:38 +01:00
parent a30f58b54b
commit 54978e481b
4 changed files with 40 additions and 4 deletions

View File

@@ -35,6 +35,7 @@
_(BASE, N , lit, lit) \
_(HIOP, S , ref, ref) \
_(LOOP, S , ___, ___) \
_(USE, S , ref, ___) \
_(PHI, S , ref, ref) \
_(RENAME, S , ref, lit) \
\
@@ -78,8 +79,9 @@
_(FPMATH, N , ref, lit) \
\
/* Overflow-checking arithmetic ops. */ \
_(ADDOV, C , ref, ref) \
_(SUBOV, N , ref, ref) \
_(ADDOV, CW, ref, ref) \
_(SUBOV, NW, ref, ref) \
_(MULOV, CW, ref, ref) \
\
/* Memory ops. A = array, H = hash, U = upvalue, F = field, S = stack. */ \
\
@@ -339,6 +341,7 @@ typedef enum {
#define IRM_W 0x80
#define IRM_NW (IRM_N|IRM_W)
#define IRM_CW (IRM_C|IRM_W)
#define IRM_AW (IRM_A|IRM_W)
#define IRM_LW (IRM_L|IRM_W)