Index: runtime/lib/integers.cc |
diff --git a/runtime/lib/integers.cc b/runtime/lib/integers.cc |
index a1aa3bd3d3b1ea63ad0b5fa1957660fd8d2e4227..45f775c24605b43a856df1d1e368566b42ea1e2a 100644 |
--- a/runtime/lib/integers.cc |
+++ b/runtime/lib/integers.cc |
@@ -290,6 +290,19 @@ static RawInteger* ShiftOperationHelper(Token::Kind kind, |
} |
+DEFINE_NATIVE_ENTRY(Smi_bitAndFromSmi, 2) { |
+ const Smi& left = Smi::CheckedHandle(arguments->NativeArgAt(0)); |
+ GET_NON_NULL_NATIVE_ARGUMENT(Smi, right, arguments->NativeArgAt(1)); |
+ if (FLAG_trace_intrinsified_natives) { |
+ OS::Print("Smi_bitAndFromSmi %s & %s\n", |
+ left.ToCString(), right.ToCString()); |
srdjan
2016/04/29 17:35:31
Please use THR_Print instead
|
+ } |
+ const Smi& left_value = Smi::Cast(left); |
+ const Smi& right_value = Smi::Cast(right); |
+ return Smi::New(left_value.Value() & right_value.Value()); |
+} |
+ |
+ |
DEFINE_NATIVE_ENTRY(Smi_shrFromInt, 2) { |
const Smi& amount = Smi::CheckedHandle(arguments->NativeArgAt(0)); |
GET_NON_NULL_NATIVE_ARGUMENT(Integer, value, arguments->NativeArgAt(1)); |