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
This commit is contained in:
parent
c7a9bffbcf
commit
05b94f13c8
@ -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() {
|
||||
|
Loading…
Reference in New Issue
Block a user