Add %_DebugBreakInOptimizedCode() pseudo function call to insert int3/stop...

Add %_DebugBreakInOptimizedCode() pseudo function call to insert int3/stop instructions into optimized code

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/17870002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent c7a9bffb
......@@ -940,6 +940,11 @@ void FullCodeGenerator::EmitGeneratorThrow(CallRuntime* expr) {
}
void FullCodeGenerator::EmitDebugBreakInOptimizedCode(CallRuntime* expr) {
context()->Plug(handle(Smi::FromInt(0), isolate()));
}
void FullCodeGenerator::VisitBinaryOperation(BinaryOperation* expr) {
switch (expr->op()) {
case Token::COMMA:
......
......@@ -10635,6 +10635,13 @@ void HOptimizedGraphBuilder::GenerateGeneratorThrow(CallRuntime* call) {
}
void HOptimizedGraphBuilder::GenerateDebugBreakInOptimizedCode(
CallRuntime* call) {
AddInstruction(new(zone()) HDebugBreak());
return ast_context()->ReturnValue(graph()->GetConstant0());
}
#undef CHECK_BAILOUT
#undef CHECK_ALIVE
......
......@@ -597,7 +597,8 @@ namespace internal {
F(GetCachedArrayIndex, 1, 1) \
F(FastAsciiArrayJoin, 2, 1) \
F(GeneratorNext, 2, 1) \
F(GeneratorThrow, 2, 1)
F(GeneratorThrow, 2, 1) \
F(DebugBreakInOptimizedCode, 0, 1)
// ----------------------------------------------------------------------------
......
......@@ -163,6 +163,8 @@ var knownProblems = {
"ResolvePossiblyDirectEval": true,
"Log": true,
"DeclareGlobals": true,
"ArrayConstructor": true,
"InternalArrayConstructor": true,
"PromoteScheduledException": true,
"DeleteHandleScopeExtensions": true,
......@@ -214,7 +216,9 @@ var knownProblems = {
var currentlyUncallable = {
// We need to find a way to test this without breaking the system.
"SystemBreak": true
"SystemBreak": true,
// Inserts an int3/stop instruction when run with --always-opt.
"_DebugBreakInOptimizedCode": true
};
function testNatives() {
......
......@@ -153,6 +153,7 @@ var knownProblems = {
"ParallelRecompile": true,
"InstallRecompiledCode": true,
"NotifyDeoptimized": true,
"NotifyStubFailure": true,
"NotifyOSR": true,
"CreateObjectLiteralBoilerplate": true,
"CloneLiteralBoilerplate": true,
......@@ -215,7 +216,9 @@ var knownProblems = {
var currentlyUncallable = {
// We need to find a way to test this without breaking the system.
"SystemBreak": true
"SystemBreak": true,
// Inserts an int3/stop instruction when run with --always-opt.
"_DebugBreakInOptimizedCode": true
};
function testNatives() {
......
......@@ -153,6 +153,7 @@ var knownProblems = {
"ParallelRecompile": true,
"InstallRecompiledCode": true,
"NotifyDeoptimized": true,
"NotifyStubFailure": true,
"NotifyOSR": true,
"CreateObjectLiteralBoilerplate": true,
"CloneLiteralBoilerplate": true,
......@@ -162,6 +163,8 @@ var knownProblems = {
"ResolvePossiblyDirectEval": true,
"Log": true,
"DeclareGlobals": true,
"ArrayConstructor": true,
"InternalArrayConstructor": true,
"PromoteScheduledException": true,
"DeleteHandleScopeExtensions": true,
......@@ -213,7 +216,9 @@ var knownProblems = {
var currentlyUncallable = {
// We need to find a way to test this without breaking the system.
"SystemBreak": true
"SystemBreak": true,
// Inserts an int3/stop instruction when run with --always-opt.
"_DebugBreakInOptimizedCode": true
};
function testNatives() {
......
......@@ -153,6 +153,7 @@ var knownProblems = {
"ParallelRecompile": true,
"InstallRecompiledCode": true,
"NotifyDeoptimized": true,
"NotifyStubFailure": true,
"NotifyOSR": true,
"CreateObjectLiteralBoilerplate": true,
"CloneLiteralBoilerplate": true,
......@@ -162,6 +163,8 @@ var knownProblems = {
"ResolvePossiblyDirectEval": true,
"Log": true,
"DeclareGlobals": true,
"ArrayConstructor": true,
"InternalArrayConstructor": true,
"PromoteScheduledException": true,
"DeleteHandleScopeExtensions": true,
......@@ -213,7 +216,9 @@ var knownProblems = {
var currentlyUncallable = {
// We need to find a way to test this without breaking the system.
"SystemBreak": true
"SystemBreak": true,
// Inserts an int3/stop instruction when run with --always-opt.
"_DebugBreakInOptimizedCode": true
};
function testNatives() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment