about summary refs log tree commit diff
path: root/src/rustc
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2012-09-10 15:26:15 -0700
committerPatrick Walton <pcwalton@mimiga.net>2012-09-10 15:27:12 -0700
commit7e9f98a8c95588b7c88e5d4b4db1890e086257ee (patch)
tree330532748f2847c6b65077ebe55a0e8ff156f3ca /src/rustc
parent5eccf849193f3de8da050eac960bc7f5df104c2f (diff)
downloadrust-7e9f98a8c95588b7c88e5d4b4db1890e086257ee.tar.gz
rust-7e9f98a8c95588b7c88e5d4b4db1890e086257ee.zip
rustc: Make range literals use compare_scalar_types instead of trans_compare
Diffstat (limited to 'src/rustc')
-rw-r--r--src/rustc/middle/trans/alt.rs10
-rw-r--r--src/rustc/middle/trans/base.rs28
2 files changed, 6 insertions, 32 deletions
diff --git a/src/rustc/middle/trans/alt.rs b/src/rustc/middle/trans/alt.rs
index 835d8365124..050dcafbfa8 100644
--- a/src/rustc/middle/trans/alt.rs
+++ b/src/rustc/middle/trans/alt.rs
@@ -672,10 +672,12 @@ fn compile_submatch(bcx: block, m: match_, vals: ~[ValueRef],
                                 Result {val: vbegin, _},
                                 Result {bcx, val: vend}) =>
                             {
-                                let Result {bcx, val: llge} = trans_compare(
-                                    bcx, ast::ge, test_val, t, vbegin, t);
-                                let Result {bcx, val: llle} = trans_compare(
-                                    bcx, ast::le, test_val, t, vend, t);
+                                let Result {bcx, val: llge} =
+                                    compare_scalar_types(bcx, test_val,
+                                                         vbegin, t, ast::ge);
+                                let Result {bcx, val: llle} =
+                                    compare_scalar_types(bcx, test_val, vend,
+                                                         t, ast::le);
                                 rslt(bcx, And(bcx, llge, llle))
                             }
                         }
diff --git a/src/rustc/middle/trans/base.rs b/src/rustc/middle/trans/base.rs
index 0b7269e6fb8..ab91fc8278d 100644
--- a/src/rustc/middle/trans/base.rs
+++ b/src/rustc/middle/trans/base.rs
@@ -610,34 +610,6 @@ fn iter_structural_ty(cx: block, av: ValueRef, t: ty::t,
     return cx;
 }
 
-fn trans_compare(cx: block, op: ast::binop, lhs: ValueRef,
-                 _lhs_t: ty::t, rhs: ValueRef, rhs_t: ty::t) -> Result {
-    let _icx = cx.insn_ctxt("trans_compare");
-    if ty::type_is_scalar(rhs_t) {
-      let rs = compare_scalar_types(cx, lhs, rhs, rhs_t, op);
-      return rslt(rs.bcx, rs.val);
-    }
-
-    // Determine the operation we need.
-    let llop = {
-        match op {
-          ast::eq | ast::ne => C_u8(abi::cmp_glue_op_eq),
-          ast::lt | ast::ge => C_u8(abi::cmp_glue_op_lt),
-          ast::le | ast::gt => C_u8(abi::cmp_glue_op_le),
-          _ => cx.tcx().sess.bug(~"trans_compare got non-comparison-op")
-        }
-    };
-
-    let cmpval = glue::call_cmp_glue(cx, lhs, rhs, rhs_t, llop);
-
-    // Invert the result if necessary.
-    match op {
-      ast::eq | ast::lt | ast::le => rslt(cx, cmpval),
-      ast::ne | ast::ge | ast::gt => rslt(cx, Not(cx, cmpval)),
-      _ => cx.tcx().sess.bug(~"trans_compare got non-comparison-op")
-    }
-}
-
 fn cast_shift_expr_rhs(cx: block, op: ast::binop,
                        lhs: ValueRef, rhs: ValueRef) -> ValueRef {
     cast_shift_rhs(op, lhs, rhs,