| 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 |