Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1136)

Unified Diff: runtime/vm/intermediate_language_x64.cc

Issue 1690903003: Remove support for Javascript warnings in the VM. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/intermediate_language_ia32.cc ('k') | runtime/vm/intrinsifier.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/intermediate_language_x64.cc
diff --git a/runtime/vm/intermediate_language_x64.cc b/runtime/vm/intermediate_language_x64.cc
index 1f840fd9211b9782ca373355fee1977cb67668cf..c10b0a1650fb6d2d6a331d2c8cbaa31803496870 100644
--- a/runtime/vm/intermediate_language_x64.cc
+++ b/runtime/vm/intermediate_language_x64.cc
@@ -26,7 +26,6 @@ namespace dart {
DECLARE_FLAG(bool, allow_absolute_addresses);
DECLARE_FLAG(bool, emit_edge_counters);
DECLARE_FLAG(int, optimization_counter_threshold);
-DECLARE_FLAG(bool, throw_on_javascript_int_overflow);
DECLARE_FLAG(bool, use_osr);
DECLARE_FLAG(bool, precompilation);
@@ -2687,22 +2686,6 @@ void CheckStackOverflowInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
}
-static void EmitJavascriptOverflowCheck(FlowGraphCompiler* compiler,
- Range* range,
- Label* overflow,
- Register result) {
- if (!RangeUtils::IsWithin(range, -0x20000000000000LL, 0x20000000000000LL)) {
- ASSERT(overflow != NULL);
- // TODO(zra): This can be tightened to one compare/branch using:
- // overflow = (result + 2^52) > 2^53 with an unsigned comparison.
- __ CompareImmediate(result, Immediate(-0x20000000000000LL));
- __ j(LESS, overflow);
- __ CompareImmediate(result, Immediate(0x20000000000000LL));
- __ j(GREATER, overflow);
- }
-}
-
-
static void EmitSmiShiftLeft(FlowGraphCompiler* compiler,
BinarySmiOpInstr* shift_left) {
const LocationSummary& locs = *shift_left->locs();
@@ -2730,9 +2713,6 @@ static void EmitSmiShiftLeft(FlowGraphCompiler* compiler,
}
// Shift for result now we know there is no overflow.
__ shlq(left, Immediate(value));
- if (FLAG_throw_on_javascript_int_overflow) {
- EmitJavascriptOverflowCheck(compiler, shift_left->range(), deopt, result);
- }
return;
}
@@ -2761,9 +2741,6 @@ static void EmitSmiShiftLeft(FlowGraphCompiler* compiler,
__ SmiUntag(right);
__ shlq(left, right);
}
- if (FLAG_throw_on_javascript_int_overflow) {
- EmitJavascriptOverflowCheck(compiler, shift_left->range(), deopt, result);
- }
return;
}
@@ -2813,9 +2790,6 @@ static void EmitSmiShiftLeft(FlowGraphCompiler* compiler,
// Shift for result now we know there is no overflow.
__ shlq(left, right);
}
- if (FLAG_throw_on_javascript_int_overflow) {
- EmitJavascriptOverflowCheck(compiler, shift_left->range(), deopt, result);
- }
}
@@ -2996,9 +2970,6 @@ void BinarySmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
UNREACHABLE();
break;
}
- if (FLAG_throw_on_javascript_int_overflow) {
- EmitJavascriptOverflowCheck(compiler, range(), deopt, result);
- }
return;
} // locs()->in(1).IsConstant().
@@ -3041,9 +3012,6 @@ void BinarySmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
UNREACHABLE();
break;
}
- if (FLAG_throw_on_javascript_int_overflow) {
- EmitJavascriptOverflowCheck(compiler, range(), deopt, result);
- }
return;
} // locs()->in(1).IsStackSlot().
@@ -3240,9 +3208,6 @@ void BinarySmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
UNREACHABLE();
break;
}
- if (FLAG_throw_on_javascript_int_overflow) {
- EmitJavascriptOverflowCheck(compiler, range(), deopt, result);
- }
}
@@ -4732,9 +4697,6 @@ void UnarySmiOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
Label* deopt = compiler->AddDeoptStub(deopt_id(), ICData::kDeoptUnaryOp);
__ negq(value);
__ j(OVERFLOW, deopt);
- if (FLAG_throw_on_javascript_int_overflow) {
- EmitJavascriptOverflowCheck(compiler, range(), deopt, value);
- }
break;
}
case Token::kBIT_NOT:
@@ -4938,9 +4900,6 @@ void DoubleToIntegerInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
__ shlq(temp, Immediate(1));
__ j(OVERFLOW, &do_call, Assembler::kNearJump);
__ SmiTag(result);
- if (FLAG_throw_on_javascript_int_overflow) {
- EmitJavascriptOverflowCheck(compiler, range(), &do_call, result);
- }
__ jmp(&done);
__ Bind(&do_call);
ASSERT(instance_call()->HasICData());
@@ -4988,9 +4947,6 @@ void DoubleToSmiInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
__ shlq(temp, Immediate(1));
__ j(OVERFLOW, deopt);
__ SmiTag(result);
- if (FLAG_throw_on_javascript_int_overflow) {
- EmitJavascriptOverflowCheck(compiler, range(), deopt, result);
- }
}
@@ -5423,7 +5379,6 @@ void MergedMathInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
__ SmiTag(RAX);
__ SmiTag(RDX);
- // FLAG_throw_on_javascript_int_overflow: not needed.
// Note that the result of an integer division/modulo of two
// in-range arguments, cannot create out-of-range result.
return;
@@ -5728,10 +5683,6 @@ void BinaryMintOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
}
EmitInt64Arithmetic(compiler, op_kind(), left, right, deopt);
-
- if (FLAG_throw_on_javascript_int_overflow) {
- EmitJavascriptOverflowCheck(compiler, range(), deopt, out);
- }
}
@@ -5752,17 +5703,7 @@ void UnaryMintOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
const Register left = locs()->in(0).reg();
const Register out = locs()->out(0).reg();
ASSERT(out == left);
-
- Label* deopt = NULL;
- if (FLAG_throw_on_javascript_int_overflow) {
- deopt = compiler->AddDeoptStub(deopt_id(), ICData::kDeoptUnaryMintOp);
- }
-
__ notq(left);
-
- if (FLAG_throw_on_javascript_int_overflow) {
- EmitJavascriptOverflowCheck(compiler, range(), deopt, out);
- }
}
@@ -5859,9 +5800,6 @@ void ShiftMintOpInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
UNREACHABLE();
}
}
- if (FLAG_throw_on_javascript_int_overflow) {
- EmitJavascriptOverflowCheck(compiler, range(), deopt, out);
- }
}
« no previous file with comments | « runtime/vm/intermediate_language_ia32.cc ('k') | runtime/vm/intrinsifier.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698