Files
sdk/runtime/vm/stub_code_arm.cc
T
turnidge@google.com 0b833d4977 Add support for interrupting an isolate in the vm. Interrupts are
implemented by extending the existing support for stack overflow
checking in the vm.  When an interrupt is scheduled for an isolate, we
overwrite the isolate's stack limit with a value guaranteed to cause a
stack overflow.

We support multiple kinds of interrupts, encoded in the low bits of
the stack limit.

Add Dart_InterruptIsolate and Dart_InterruptIsolateCallback to the
dart embedding api to allow the embedder to request and handle
interrupts.

Add EXPECT_SUBSTRING(needle, haystack) testing macro.
Review URL: http://codereview.chromium.org//8851008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2529 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-16 18:41:20 +00:00

113 lines
2.8 KiB
C++

// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
#include "vm/globals.h"
#if defined(TARGET_ARCH_ARM)
#include "vm/stub_code.h"
#define __ assembler->
namespace dart {
void StubCode::GenerateDartCallToRuntimeStub(Assembler* assembler) {
__ Unimplemented("DartCallToRuntime stub");
}
void StubCode::GenerateStubCallToRuntimeStub(Assembler* assembler) {
__ Unimplemented("StubCallToRuntime stub");
}
void StubCode::GenerateCallNativeCFunctionStub(Assembler* assembler) {
__ Unimplemented("CallNativeCFunction stub");
}
void StubCode::GenerateCallStaticFunctionStub(Assembler* assembler) {
__ Unimplemented("CallStaticFunction stub");
}
void StubCode::GenerateOptimizeInvokedFunctionStub(Assembler* assembler) {
__ Unimplemented("OptimizeInvokedFunction stub");
}
void StubCode::GenerateFixCallersTargetStub(Assembler* assembler) {
__ Unimplemented("FixCallersTarget stub");
}
void StubCode::GenerateMegamorphicLookupStub(Assembler* assembler) {
__ Unimplemented("MegamorphicLookup stub");
}
void StubCode::GenerateDeoptimizeStub(Assembler* assembler) {
__ Unimplemented("Deoptimize stub");
}
void StubCode::GenerateAllocateArrayStub(Assembler* assembler) {
__ Unimplemented("AllocateArray stub");
}
void StubCode::GenerateCallClosureFunctionStub(Assembler* assembler) {
__ Unimplemented("CallClosureFunction stub");
}
void StubCode::GenerateInvokeDartCodeStub(Assembler* assembler) {
__ Unimplemented("InvokeDartCode stub");
}
void StubCode::GenerateAllocateContextStub(Assembler* assembler) {
__ Unimplemented("AllocateContext stub");
}
void StubCode::GenerateAllocationStubForClass(Assembler* assembler,
const Class& cls) {
__ Unimplemented("AllocateObject stub");
}
void StubCode::GenerateAllocationStubForClosure(Assembler* assembler,
const Function& func) {
__ Unimplemented("AllocateClosure stub");
}
void StubCode::GenerateCallNoSuchMethodFunctionStub(Assembler* assembler) {
__ Unimplemented("CallNoSuchMethodFunction stub");
}
void StubCode::GenerateOneArgCheckInlineCacheStub(Assembler* assembler) {
__ Unimplemented("GenerateOneArgCheckInlineCacheStub stub");
}
void StubCode::GenerateTwoArgsCheckInlineCacheStub(Assembler* assembler) {
__ Unimplemented("GenerateTwoArgsCheckInlineCacheStub stub");
}
void StubCode::GenerateBreakpointStaticStub(Assembler* assembler) {
__ Unimplemented("BreakpointStatic stub");
}
void StubCode::GenerateBreakpointDynamicStub(Assembler* assembler) {
__ Unimplemented("BreakpointDynamic stub");
}
} // namespace dart
#endif // defined TARGET_ARCH_ARM