30 #if V8_TARGET_ARCH_ARM 
   38 #ifdef ENABLE_DEBUGGER_SUPPORT 
   39 bool BreakLocationIterator::IsDebugBreakAtReturn() {
 
   40   return Debug::IsDebugBreakAtReturn(rinfo());
 
   44 void BreakLocationIterator::SetDebugBreakAtReturn() {
 
   59       debug_info_->GetIsolate()->debug()->debug_break_return()->entry());
 
   60   patcher.masm()->bkpt(0);
 
   65 void BreakLocationIterator::ClearDebugBreakAtReturn() {
 
   66   rinfo()->PatchCode(original_rinfo()->
pc(),
 
   73 bool Debug::IsDebugBreakAtReturn(RelocInfo* rinfo) {
 
   74   ASSERT(RelocInfo::IsJSReturn(rinfo->rmode()));
 
   75   return rinfo->IsPatchedReturnSequence();
 
   79 bool BreakLocationIterator::IsDebugBreakAtSlot() {
 
   80   ASSERT(IsDebugBreakSlot());
 
   82   return rinfo()->IsPatchedDebugBreakSlotSequence();
 
   86 void BreakLocationIterator::SetDebugBreakAtSlot() {
 
   87   ASSERT(IsDebugBreakSlot());
 
  100       debug_info_->GetIsolate()->debug()->debug_break_slot()->entry());
 
  104 void BreakLocationIterator::ClearDebugBreakAtSlot() {
 
  105   ASSERT(IsDebugBreakSlot());
 
  106   rinfo()->PatchCode(original_rinfo()->
pc(),
 
  110 const bool Debug::FramePaddingLayout::kIsSupported = 
false;
 
  113 #define __ ACCESS_MASM(masm) 
  116 static void Generate_DebugBreakCallHelper(MacroAssembler* masm,
 
  127     ASSERT((object_regs & non_object_regs) == 0);
 
  128     if ((object_regs | non_object_regs) != 0) {
 
  131         Register reg = { r };
 
  132         if ((non_object_regs & (1 << r)) != 0) {
 
  133           if (FLAG_debug_code) {
 
  134             __ tst(reg, Operand(0xc0000000));
 
  135             __ Assert(
eq, kUnableToEncodeValueAsSmi);
 
  140       __ stm(
db_w, 
sp, object_regs | non_object_regs);
 
  144     __ RecordComment(
"// Calling from debug break to runtime - come in - over");
 
  146     __ mov(
r0, Operand::Zero());  
 
  147     __ mov(
r1, Operand(ExternalReference::debug_break(masm->isolate())));
 
  153     if ((object_regs | non_object_regs) != 0) {
 
  154       __ ldm(
ia_w, 
sp, object_regs | non_object_regs);
 
  157         Register reg = { r };
 
  158         if ((non_object_regs & (1 << r)) != 0) {
 
  161         if (FLAG_debug_code &&
 
  162             (((object_regs |non_object_regs) & (1 << r)) == 0)) {
 
  174   ExternalReference after_break_target =
 
  175       ExternalReference(Debug_Address::AfterBreakTarget(), masm->isolate());
 
  176   __ mov(
ip, Operand(after_break_target));
 
  182 void Debug::GenerateLoadICDebugBreak(MacroAssembler* masm) {
 
  192   Generate_DebugBreakCallHelper(masm, 
r0.
bit() | 
r2.
bit(), 0);
 
  196 void Debug::GenerateStoreICDebugBreak(MacroAssembler* masm) {
 
  206   Generate_DebugBreakCallHelper(masm, 
r0.
bit() | 
r1.
bit() | 
r2.
bit(), 0);
 
  210 void Debug::GenerateKeyedLoadICDebugBreak(MacroAssembler* masm) {
 
  215   Generate_DebugBreakCallHelper(masm, 
r0.
bit() | 
r1.
bit(), 0);
 
  219 void Debug::GenerateKeyedStoreICDebugBreak(MacroAssembler* masm) {
 
  225   Generate_DebugBreakCallHelper(masm, 
r0.
bit() | 
r1.
bit() | 
r2.
bit(), 0);
 
  229 void Debug::GenerateCompareNilICDebugBreak(MacroAssembler* masm) {
 
  234   Generate_DebugBreakCallHelper(masm, 
r0.
bit(), 0);
 
  238 void Debug::GenerateCallICDebugBreak(MacroAssembler* masm) {
 
  243   Generate_DebugBreakCallHelper(masm, 
r2.
bit(), 0);
 
  247 void Debug::GenerateReturnDebugBreak(MacroAssembler* masm) {
 
  251   Generate_DebugBreakCallHelper(masm, 
r0.
bit(), 0);
 
  255 void Debug::GenerateCallFunctionStubDebugBreak(MacroAssembler* masm) {
 
  260   Generate_DebugBreakCallHelper(masm, 
r1.
bit(), 0);
 
  264 void Debug::GenerateCallFunctionStubRecordDebugBreak(MacroAssembler* masm) {
 
  271   Generate_DebugBreakCallHelper(masm, 
r1.
bit() | 
r2.
bit() | 
r3.
bit(), 0);
 
  275 void Debug::GenerateCallConstructStubDebugBreak(MacroAssembler* masm) {
 
  281   Generate_DebugBreakCallHelper(masm, 
r1.
bit(), 
r0.
bit());
 
  285 void Debug::GenerateCallConstructStubRecordDebugBreak(MacroAssembler* masm) {
 
  297 void Debug::GenerateSlot(MacroAssembler* masm) {
 
  301   Label check_codesize;
 
  302   __ bind(&check_codesize);
 
  303   __ RecordDebugBreakSlot();
 
  307   ASSERT_EQ(Assembler::kDebugBreakSlotInstructions,
 
  308             masm->InstructionsGeneratedSince(&check_codesize));
 
  312 void Debug::GenerateSlotDebugBreak(MacroAssembler* masm) {
 
  315   Generate_DebugBreakCallHelper(masm, 0, 0);
 
  319 void Debug::GeneratePlainReturnLiveEdit(MacroAssembler* masm) {
 
  320   masm->Abort(kLiveEditFrameDroppingIsNotSupportedOnArm);
 
  324 void Debug::GenerateFrameDropperLiveEdit(MacroAssembler* masm) {
 
  325   masm->Abort(kLiveEditFrameDroppingIsNotSupportedOnArm);
 
  328 const bool Debug::kFrameDropperSupported = 
false;
 
  334 #endif  // ENABLE_DEBUGGER_SUPPORT 
  338 #endif  // V8_TARGET_ARCH_ARM 
static const int kDebugBreakSlotInstructions
 
#define ASSERT(condition)
 
const RegList kJSCallerSaved
 
friend class BlockConstPoolScope
 
int JSCallerSavedCode(int n)
 
const int kNumJSCallerSaved
 
#define ASSERT_EQ(v1, v2)
 
static const int kJSReturnSequenceInstructions
 
const uint32_t kDebugZapValue