diff options
| author | gingerBill <bill+github@gingerbill.org> | 2016-08-10 10:00:57 +0100 |
|---|---|---|
| committer | gingerBill <bill+github@gingerbill.org> | 2016-08-10 10:00:57 +0100 |
| commit | c930841f834e43df28be41e8e3509773a523ed0f (patch) | |
| tree | f4de597e6028c64a7454ff116652f80c0d58ba34 /src/exact_value.cpp | |
| parent | cff5e54ec6b8d9b95effcad1ca2dd8bb0988517b (diff) | |
f16/f128,u|i128, basic vector support.
Diffstat (limited to 'src/exact_value.cpp')
| -rw-r--r-- | src/exact_value.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
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) { |