use tv_t.h instead of tv.h
[libfirm] / ir / ir / irarch.c
index e539e20..74a4c83 100644 (file)
@@ -16,7 +16,7 @@
 #include "ircons_t.h"
 #include "irgmod.h"
 #include "irvrfy.h"
-#include "tv.h"
+#include "tv_t.h"
 #include "dbginfo_t.h"
 #include "iropt_dbg.h"
 #include "irflag_t.h"
@@ -294,12 +294,10 @@ ir_node *arch_dep_replace_mul_with_shifts(ir_node *irn)
               int amount = abs(curr_shift) - 1;
               ir_node *aux = operand;
 
-
               assert(amount >= 0 && "What is a negative shift??");
 
               if(amount != 0) {
-                tarval *shift_amount = new_tarval_from_long(amount, mode_Iu);
-                ir_node *cnst = new_r_Const(current_ir_graph, block, mode_Iu, shift_amount);
+                ir_node *cnst = new_r_Const_long(current_ir_graph, block, mode_Iu, amount);
                 aux = new_r_Shl(current_ir_graph, block, operand, cnst, mode);
               }
 
@@ -403,7 +401,7 @@ static struct ms magic(tarval *d)
   int bits        = get_mode_size_bits(u_mode);
   int p;
   tarval *ad, *anc, *delta, *q1, *r1, *q2, *r2, *t;     /* unsigned */
-  pnc_number d_cmp, M_cmp;
+  pn_Cmp d_cmp, M_cmp;
 
   tarval *bits_minus_1, *two_bits_1;
 
@@ -432,7 +430,7 @@ static struct ms magic(tarval *d)
     q1 = ADD(q1, q1);                           /* Update q1 = 2^p/|nc| */
     r1 = ADD(r1, r1);                           /* Update r1 = rem(2^p, |nc|) */
 
-    if (CMP(r1, anc) & Ge) {
+    if (CMP(r1, anc) & pn_Cmp_Ge) {
       q1 = ADD(q1, ONE(u_mode));
       r1 = SUB(r1, anc);
     }
@@ -440,17 +438,17 @@ static struct ms magic(tarval *d)
     q2 = ADD(q2, q2);                           /* Update q2 = 2^p/|d| */
     r2 = ADD(r2, r2);                           /* Update r2 = rem(2^p, |d|) */
 
-    if (CMP(r2, ad) & Ge) {
+    if (CMP(r2, ad) & pn_Cmp_Ge) {
       q2 = ADD(q2, ONE(u_mode));
       r2 = SUB(r2, ad);
     }
 
     delta = SUB(ad, r2);
-  } while (CMP(q1, delta) & Lt || (CMP(q1, delta) & Eq && CMP(r1, ZERO(u_mode)) & Eq));
+  } while (CMP(q1, delta) & pn_Cmp_Lt || (CMP(q1, delta) & pn_Cmp_Eq && CMP(r1, ZERO(u_mode)) & pn_Cmp_Eq));
 
   d_cmp = CMP(d, ZERO(mode));
 
-  if (d_cmp & Ge)
+  if (d_cmp & pn_Cmp_Ge)
     mag.M = ADD(CNV(q2, mode), ONE(mode));
   else
     mag.M = SUB(ZERO(mode), ADD(CNV(q2, mode), ONE(mode)));
@@ -460,10 +458,10 @@ static struct ms magic(tarval *d)
   mag.s = p - bits;
 
   /* need an add if d > 0 && M < 0 */
-  mag.need_add = d_cmp & Gt && M_cmp & Lt;
+  mag.need_add = d_cmp & pn_Cmp_Gt && M_cmp & pn_Cmp_Lt;
 
   /* need a sub if d < 0 && M > 0 */
-  mag.need_sub = d_cmp & Lt && M_cmp & Gt;
+  mag.need_sub = d_cmp & pn_Cmp_Lt && M_cmp & pn_Cmp_Gt;
 
   tarval_set_integer_overflow_mode(rem);
 
@@ -510,7 +508,7 @@ static struct mu magicu(tarval *d)
 
   do {
     ++p;
-    if (CMP(r1, SUB(nc, r1)) & Ge) {
+    if (CMP(r1, SUB(nc, r1)) & pn_Cmp_Ge) {
       q1 = ADD(ADD(q1, q1), ONE(mode));
       r1 = SUB(ADD(r1, r1), nc);
     }
@@ -519,15 +517,15 @@ static struct mu magicu(tarval *d)
       r1 = ADD(r1, r1);
     }
 
-    if (CMP(ADD(r2, ONE(mode)), SUB(d, r2)) & Ge) {
-      if (CMP(q2, seven_ff) & Ge)
+    if (CMP(ADD(r2, ONE(mode)), SUB(d, r2)) & pn_Cmp_Ge) {
+      if (CMP(q2, seven_ff) & pn_Cmp_Ge)
         magu.need_add = 1;
 
       q2 = ADD(ADD(q2, q2), ONE(mode));
       r2 = SUB(ADD(ADD(r2, r2), ONE(mode)), d);
     }
     else {
-      if (CMP(q2, two_bits_1) & Ge)
+      if (CMP(q2, two_bits_1) & pn_Cmp_Ge)
         magu.need_add = 1;
 
       q2 = ADD(q2, q2);
@@ -535,7 +533,7 @@ static struct mu magicu(tarval *d)
     }
     delta = SUB(SUB(d, ONE(mode)), r2);
   } while (p < 2*bits &&
-          (CMP(q1, delta) & Lt || (CMP(q1, delta) & Eq && CMP(r1, ZERO(mode)) & Eq)));
+          (CMP(q1, delta) & pn_Cmp_Lt || (CMP(q1, delta) & pn_Cmp_Eq && CMP(r1, ZERO(mode)) & pn_Cmp_Eq)));
 
   magu.M = ADD(q2, ONE(mode));                       /* Magic number */
   magu.s = p - bits;                                 /* and shift amount */
@@ -578,12 +576,12 @@ static ir_node *replace_div_by_mulh(ir_node *div, tarval *tv)
 
     /* Do we need the shift */
     if (mag.s > 0) {
-      c = new_r_Const(current_ir_graph, block, mode_Iu, new_tarval_from_long(mag.s, mode_Iu));
+      c = new_r_Const_long(current_ir_graph, block, mode_Iu, mag.s);
       q    = new_rd_Shrs(dbg, current_ir_graph, block, q, c, mode);
     }
 
     /* final */
-    c = new_r_Const(current_ir_graph, block, mode_Iu, new_tarval_from_long(bits-1, mode_Iu));
+    c = new_r_Const_long(current_ir_graph, block, mode_Iu, bits-1);
     t = new_rd_Shr(dbg, current_ir_graph, block, q, c, mode);
 
     q = new_rd_Add(dbg, current_ir_graph, block, q, t, mode);
@@ -606,7 +604,7 @@ static ir_node *replace_div_by_mulh(ir_node *div, tarval *tv)
 
         t = new_rd_Add(dbg, current_ir_graph, block, t, q, mode);
 
-        c = new_r_Const(current_ir_graph, block, mode_Iu, new_tarval_from_long(mag.s-1, mode_Iu));
+        c = new_r_Const_long(current_ir_graph, block, mode_Iu, mag.s-1);
         q = new_rd_Shr(dbg, current_ir_graph, block, t, c, mode);
       }
       else {
@@ -615,7 +613,7 @@ static ir_node *replace_div_by_mulh(ir_node *div, tarval *tv)
       }
     }
     else if (mag.s > 0) { /* default scheme, shift needed */
-      c = new_r_Const(current_ir_graph, block, mode_Iu, new_tarval_from_long(mag.s, mode_Iu));
+      c = new_r_Const_long(current_ir_graph, block, mode_Iu, mag.s);
       q = new_rd_Shr(dbg, current_ir_graph, block, q, c, mode);
     }
   }
@@ -671,16 +669,16 @@ ir_node *arch_dep_replace_div_by_const(ir_node *irn)
         ir_node *curr = left;
 
         if (k != 1) {
-          k_node = new_r_Const(current_ir_graph, block, mode_Iu, new_tarval_from_long(k - 1, mode_Iu));
+          k_node = new_r_Const_long(current_ir_graph, block, mode_Iu, k - 1);
           curr   = new_rd_Shrs(dbg, current_ir_graph, block, left, k_node, mode);
         }
 
-        k_node = new_r_Const(current_ir_graph, block, mode_Iu, new_tarval_from_long(bits - k, mode_Iu));
+        k_node = new_r_Const_long(current_ir_graph, block, mode_Iu, bits - k);
         curr   = new_rd_Shr(dbg, current_ir_graph, block, curr, k_node, mode);
 
         curr   = new_rd_Add(dbg, current_ir_graph, block, left, curr, mode);
 
-        k_node = new_r_Const(current_ir_graph, block, mode_Iu, new_tarval_from_long(k, mode_Iu));
+        k_node = new_r_Const_long(current_ir_graph, block, mode_Iu, k);
         res    = new_rd_Shrs(dbg, current_ir_graph, block, curr, k_node, mode);
 
         if (n_flag) { /* negate the result */
@@ -693,7 +691,7 @@ ir_node *arch_dep_replace_div_by_const(ir_node *irn)
       else {      /* unsigned case */
         ir_node *k_node;
 
-        k_node = new_r_Const(current_ir_graph, block, mode_Iu, new_tarval_from_long(k, mode_Iu));
+        k_node = new_r_Const_long(current_ir_graph, block, mode_Iu, k);
         res    = new_rd_Shr(dbg, current_ir_graph, block, left, k_node, mode);
       }
     }
@@ -760,16 +758,16 @@ ir_node *arch_dep_replace_mod_by_const(ir_node *irn)
         ir_node *curr = left;
 
         if (k != 1) {
-          k_node = new_r_Const(current_ir_graph, block, mode_Iu, new_tarval_from_long(k - 1, mode_Iu));
+          k_node = new_r_Const_long(current_ir_graph, block, mode_Iu, k - 1);
           curr   = new_rd_Shrs(dbg, current_ir_graph, block, left, k_node, mode);
         }
 
-        k_node = new_r_Const(current_ir_graph, block, mode_Iu, new_tarval_from_long(bits - k, mode_Iu));
+        k_node = new_r_Const_long(current_ir_graph, block, mode_Iu, bits - k);
         curr   = new_rd_Shr(dbg, current_ir_graph, block, curr, k_node, mode);
 
         curr   = new_rd_Add(dbg, current_ir_graph, block, left, curr, mode);
 
-        k_node = new_r_Const(current_ir_graph, block, mode, new_tarval_from_long((-1) << k, mode));
+        k_node = new_r_Const_long(current_ir_graph, block, mode, (-1) << k);
         curr   = new_rd_And(dbg, current_ir_graph, block, curr, k_node, mode);
 
         res    = new_rd_Sub(dbg, current_ir_graph, block, left, curr, mode);
@@ -777,7 +775,7 @@ ir_node *arch_dep_replace_mod_by_const(ir_node *irn)
       else {      /* unsigned case */
         ir_node *k_node;
 
-        k_node = new_r_Const(current_ir_graph, block, mode, new_tarval_from_long((1 << k) - 1, mode));
+        k_node = new_r_Const_long(current_ir_graph, block, mode, (1 << k) - 1);
         res    = new_rd_And(dbg, current_ir_graph, block, left, k_node, mode);
       }
     }
@@ -851,16 +849,16 @@ void arch_dep_replace_divmod_by_const(ir_node **div, ir_node **mod, ir_node *irn
         ir_node *curr = left;
 
         if (k != 1) {
-          k_node = new_r_Const(current_ir_graph, block, mode_Iu, new_tarval_from_long(k - 1, mode_Iu));
+          k_node = new_r_Const_long(current_ir_graph, block, mode_Iu, k - 1);
           curr   = new_rd_Shrs(dbg, current_ir_graph, block, left, k_node, mode);
         }
 
-        k_node = new_r_Const(current_ir_graph, block, mode_Iu, new_tarval_from_long(bits - k, mode_Iu));
+        k_node = new_r_Const_long(current_ir_graph, block, mode_Iu, bits - k);
         curr   = new_rd_Shr(dbg, current_ir_graph, block, curr, k_node, mode);
 
         curr   = new_rd_Add(dbg, current_ir_graph, block, left, curr, mode);
 
-        c_k    = new_r_Const(current_ir_graph, block, mode_Iu, new_tarval_from_long(k, mode_Iu));
+        c_k    = new_r_Const_long(current_ir_graph, block, mode_Iu, k);
 
         *div   = new_rd_Shrs(dbg, current_ir_graph, block, curr, c_k, mode);
 
@@ -871,7 +869,7 @@ void arch_dep_replace_divmod_by_const(ir_node **div, ir_node **mod, ir_node *irn
           *div = new_rd_Sub(dbg, current_ir_graph, block, k_node, *div, mode);
         }
 
-        k_node = new_r_Const(current_ir_graph, block, mode, new_tarval_from_long((-1) << k, mode));
+        k_node = new_r_Const_long(current_ir_graph, block, mode, (-1) << k);
         curr   = new_rd_And(dbg, current_ir_graph, block, curr, k_node, mode);
 
         *mod   = new_rd_Sub(dbg, current_ir_graph, block, left, curr, mode);
@@ -879,10 +877,10 @@ void arch_dep_replace_divmod_by_const(ir_node **div, ir_node **mod, ir_node *irn
       else {      /* unsigned case */
         ir_node *k_node;
 
-        k_node = new_r_Const(current_ir_graph, block, mode_Iu, new_tarval_from_long(k, mode_Iu));
+        k_node = new_r_Const_long(current_ir_graph, block, mode_Iu, k);
         *div   = new_rd_Shr(dbg, current_ir_graph, block, left, k_node, mode);
 
-        k_node = new_r_Const(current_ir_graph, block, mode, new_tarval_from_long((1 << k) - 1, mode));
+        k_node = new_r_Const_long(current_ir_graph, block, mode, (1 << k) - 1);
         *mod   = new_rd_And(dbg, current_ir_graph, block, left, k_node, mode);
       }
     }