From c930841f834e43df28be41e8e3509773a523ed0f Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 10 Aug 2016 10:00:57 +0100 Subject: f16/f128,u|i128, basic vector support. --- src/exact_value.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/exact_value.cpp') diff --git a/src/exact_value.cpp b/src/exact_value.cpp index f9a069c73..d62779462 100644 --- a/src/exact_value.cpp +++ b/src/exact_value.cpp @@ -272,6 +272,8 @@ ExactValue exact_binary_operator_value(Token op, ExactValue x, ExactValue y) { case Token_Or: c = a | b; break; case Token_Xor: c = a ^ b; break; case Token_AndNot: c = a&(~b); break; + case Token_Shl: c = a << b; break; + case Token_Shr: c = a >> b; break; default: goto error; } return make_exact_value_integer(c); @@ -296,10 +298,11 @@ error: return error_value; } -gb_inline ExactValue exact_value_add(ExactValue x, ExactValue y) { Token op = {Token_Add}; return exact_binary_operator_value(op, x, y); } -gb_inline ExactValue exact_value_sub(ExactValue x, ExactValue y) { Token op = {Token_Sub}; return exact_binary_operator_value(op, x, y); } -gb_inline ExactValue exact_value_mul(ExactValue x, ExactValue y) { Token op = {Token_Mul}; return exact_binary_operator_value(op, x, y); } -gb_inline ExactValue exact_value_quo(ExactValue x, ExactValue y) { Token op = {Token_Quo}; return exact_binary_operator_value(op, x, y); } +gb_inline ExactValue exact_value_add(ExactValue x, ExactValue y) { Token op = {Token_Add}; return exact_binary_operator_value(op, x, y); } +gb_inline ExactValue exact_value_sub(ExactValue x, ExactValue y) { Token op = {Token_Sub}; return exact_binary_operator_value(op, x, y); } +gb_inline ExactValue exact_value_mul(ExactValue x, ExactValue y) { Token op = {Token_Mul}; return exact_binary_operator_value(op, x, y); } +gb_inline ExactValue exact_value_quo(ExactValue x, ExactValue y) { Token op = {Token_Quo}; return exact_binary_operator_value(op, x, y); } +gb_inline ExactValue exact_value_shift(Token op, ExactValue x, ExactValue y) { return exact_binary_operator_value(op, x, y); } i32 cmp_f64(f64 a, f64 b) { -- cgit v1.2.3