OLD | NEW |
1 | 1 |
2 // Copyright (c) 1994-2006 Sun Microsystems Inc. | 2 // Copyright (c) 1994-2006 Sun Microsystems Inc. |
3 // All Rights Reserved. | 3 // All Rights Reserved. |
4 // | 4 // |
5 // Redistribution and use in source and binary forms, with or without | 5 // Redistribution and use in source and binary forms, with or without |
6 // modification, are permitted provided that the following conditions are | 6 // modification, are permitted provided that the following conditions are |
7 // met: | 7 // met: |
8 // | 8 // |
9 // - Redistributions of source code must retain the above copyright notice, | 9 // - Redistributions of source code must retain the above copyright notice, |
10 // this list of conditions and the following disclaimer. | 10 // this list of conditions and the following disclaimer. |
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
331 return patched_return; | 331 return patched_return; |
332 } | 332 } |
333 | 333 |
334 | 334 |
335 bool RelocInfo::IsPatchedDebugBreakSlotSequence() { | 335 bool RelocInfo::IsPatchedDebugBreakSlotSequence() { |
336 Instr current_instr = Assembler::instr_at(pc_); | 336 Instr current_instr = Assembler::instr_at(pc_); |
337 return !Assembler::IsNop(current_instr, Assembler::DEBUG_BREAK_NOP); | 337 return !Assembler::IsNop(current_instr, Assembler::DEBUG_BREAK_NOP); |
338 } | 338 } |
339 | 339 |
340 | 340 |
341 void RelocInfo::Visit(ObjectVisitor* visitor) { | 341 void RelocInfo::Visit(Isolate* isolate, ObjectVisitor* visitor) { |
342 RelocInfo::Mode mode = rmode(); | 342 RelocInfo::Mode mode = rmode(); |
343 if (mode == RelocInfo::EMBEDDED_OBJECT) { | 343 if (mode == RelocInfo::EMBEDDED_OBJECT) { |
344 visitor->VisitEmbeddedPointer(this); | 344 visitor->VisitEmbeddedPointer(this); |
345 } else if (RelocInfo::IsCodeTarget(mode)) { | 345 } else if (RelocInfo::IsCodeTarget(mode)) { |
346 visitor->VisitCodeTarget(this); | 346 visitor->VisitCodeTarget(this); |
347 } else if (mode == RelocInfo::CELL) { | 347 } else if (mode == RelocInfo::CELL) { |
348 visitor->VisitCell(this); | 348 visitor->VisitCell(this); |
349 } else if (mode == RelocInfo::EXTERNAL_REFERENCE) { | 349 } else if (mode == RelocInfo::EXTERNAL_REFERENCE) { |
350 visitor->VisitExternalReference(this); | 350 visitor->VisitExternalReference(this); |
351 } else if (RelocInfo::IsCodeAgeSequence(mode)) { | 351 } else if (RelocInfo::IsCodeAgeSequence(mode)) { |
352 visitor->VisitCodeAgeSequence(this); | 352 visitor->VisitCodeAgeSequence(this); |
353 #ifdef ENABLE_DEBUGGER_SUPPORT | 353 #ifdef ENABLE_DEBUGGER_SUPPORT |
354 // TODO(isolates): Get a cached isolate below. | |
355 } else if (((RelocInfo::IsJSReturn(mode) && | 354 } else if (((RelocInfo::IsJSReturn(mode) && |
356 IsPatchedReturnSequence()) || | 355 IsPatchedReturnSequence()) || |
357 (RelocInfo::IsDebugBreakSlot(mode) && | 356 (RelocInfo::IsDebugBreakSlot(mode) && |
358 IsPatchedDebugBreakSlotSequence())) && | 357 IsPatchedDebugBreakSlotSequence())) && |
359 Isolate::Current()->debug()->has_break_points()) { | 358 isolate->debug()->has_break_points()) { |
360 visitor->VisitDebugTarget(this); | 359 visitor->VisitDebugTarget(this); |
361 #endif | 360 #endif |
362 } else if (RelocInfo::IsRuntimeEntry(mode)) { | 361 } else if (RelocInfo::IsRuntimeEntry(mode)) { |
363 visitor->VisitRuntimeEntry(this); | 362 visitor->VisitRuntimeEntry(this); |
364 } | 363 } |
365 } | 364 } |
366 | 365 |
367 | 366 |
368 template<typename StaticVisitor> | 367 template<typename StaticVisitor> |
369 void RelocInfo::Visit(Heap* heap) { | 368 void RelocInfo::Visit(Heap* heap) { |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
416 } | 415 } |
417 *reinterpret_cast<Instr*>(pc_) = x; | 416 *reinterpret_cast<Instr*>(pc_) = x; |
418 pc_ += kInstrSize; | 417 pc_ += kInstrSize; |
419 CheckTrampolinePoolQuick(); | 418 CheckTrampolinePoolQuick(); |
420 } | 419 } |
421 | 420 |
422 | 421 |
423 } } // namespace v8::internal | 422 } } // namespace v8::internal |
424 | 423 |
425 #endif // V8_MIPS_ASSEMBLER_MIPS_INL_H_ | 424 #endif // V8_MIPS_ASSEMBLER_MIPS_INL_H_ |
OLD | NEW |