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 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
354 if (mode == RelocInfo::EMBEDDED_OBJECT) { | 354 if (mode == RelocInfo::EMBEDDED_OBJECT) { |
355 visitor->VisitEmbeddedPointer(this); | 355 visitor->VisitEmbeddedPointer(this); |
356 } else if (RelocInfo::IsCodeTarget(mode)) { | 356 } else if (RelocInfo::IsCodeTarget(mode)) { |
357 visitor->VisitCodeTarget(this); | 357 visitor->VisitCodeTarget(this); |
358 } else if (mode == RelocInfo::CELL) { | 358 } else if (mode == RelocInfo::CELL) { |
359 visitor->VisitCell(this); | 359 visitor->VisitCell(this); |
360 } else if (mode == RelocInfo::EXTERNAL_REFERENCE) { | 360 } else if (mode == RelocInfo::EXTERNAL_REFERENCE) { |
361 visitor->VisitExternalReference(this); | 361 visitor->VisitExternalReference(this); |
362 } else if (RelocInfo::IsCodeAgeSequence(mode)) { | 362 } else if (RelocInfo::IsCodeAgeSequence(mode)) { |
363 visitor->VisitCodeAgeSequence(this); | 363 visitor->VisitCodeAgeSequence(this); |
364 #ifdef ENABLE_DEBUGGER_SUPPORT | |
365 } else if (((RelocInfo::IsJSReturn(mode) && | 364 } else if (((RelocInfo::IsJSReturn(mode) && |
366 IsPatchedReturnSequence()) || | 365 IsPatchedReturnSequence()) || |
367 (RelocInfo::IsDebugBreakSlot(mode) && | 366 (RelocInfo::IsDebugBreakSlot(mode) && |
368 IsPatchedDebugBreakSlotSequence())) && | 367 IsPatchedDebugBreakSlotSequence())) && |
369 isolate->debug()->has_break_points()) { | 368 isolate->debug()->has_break_points()) { |
370 visitor->VisitDebugTarget(this); | 369 visitor->VisitDebugTarget(this); |
371 #endif | |
372 } else if (RelocInfo::IsRuntimeEntry(mode)) { | 370 } else if (RelocInfo::IsRuntimeEntry(mode)) { |
373 visitor->VisitRuntimeEntry(this); | 371 visitor->VisitRuntimeEntry(this); |
374 } | 372 } |
375 } | 373 } |
376 | 374 |
377 | 375 |
378 template<typename StaticVisitor> | 376 template<typename StaticVisitor> |
379 void RelocInfo::Visit(Heap* heap) { | 377 void RelocInfo::Visit(Heap* heap) { |
380 RelocInfo::Mode mode = rmode(); | 378 RelocInfo::Mode mode = rmode(); |
381 if (mode == RelocInfo::EMBEDDED_OBJECT) { | 379 if (mode == RelocInfo::EMBEDDED_OBJECT) { |
382 StaticVisitor::VisitEmbeddedPointer(heap, this); | 380 StaticVisitor::VisitEmbeddedPointer(heap, this); |
383 } else if (RelocInfo::IsCodeTarget(mode)) { | 381 } else if (RelocInfo::IsCodeTarget(mode)) { |
384 StaticVisitor::VisitCodeTarget(heap, this); | 382 StaticVisitor::VisitCodeTarget(heap, this); |
385 } else if (mode == RelocInfo::CELL) { | 383 } else if (mode == RelocInfo::CELL) { |
386 StaticVisitor::VisitCell(heap, this); | 384 StaticVisitor::VisitCell(heap, this); |
387 } else if (mode == RelocInfo::EXTERNAL_REFERENCE) { | 385 } else if (mode == RelocInfo::EXTERNAL_REFERENCE) { |
388 StaticVisitor::VisitExternalReference(this); | 386 StaticVisitor::VisitExternalReference(this); |
389 } else if (RelocInfo::IsCodeAgeSequence(mode)) { | 387 } else if (RelocInfo::IsCodeAgeSequence(mode)) { |
390 StaticVisitor::VisitCodeAgeSequence(heap, this); | 388 StaticVisitor::VisitCodeAgeSequence(heap, this); |
391 #ifdef ENABLE_DEBUGGER_SUPPORT | |
392 } else if (heap->isolate()->debug()->has_break_points() && | 389 } else if (heap->isolate()->debug()->has_break_points() && |
393 ((RelocInfo::IsJSReturn(mode) && | 390 ((RelocInfo::IsJSReturn(mode) && |
394 IsPatchedReturnSequence()) || | 391 IsPatchedReturnSequence()) || |
395 (RelocInfo::IsDebugBreakSlot(mode) && | 392 (RelocInfo::IsDebugBreakSlot(mode) && |
396 IsPatchedDebugBreakSlotSequence()))) { | 393 IsPatchedDebugBreakSlotSequence()))) { |
397 StaticVisitor::VisitDebugTarget(heap, this); | 394 StaticVisitor::VisitDebugTarget(heap, this); |
398 #endif | |
399 } else if (RelocInfo::IsRuntimeEntry(mode)) { | 395 } else if (RelocInfo::IsRuntimeEntry(mode)) { |
400 StaticVisitor::VisitRuntimeEntry(this); | 396 StaticVisitor::VisitRuntimeEntry(this); |
401 } | 397 } |
402 } | 398 } |
403 | 399 |
404 | 400 |
405 // ----------------------------------------------------------------------------- | 401 // ----------------------------------------------------------------------------- |
406 // Assembler. | 402 // Assembler. |
407 | 403 |
408 | 404 |
(...skipping 17 matching lines...) Expand all Loading... |
426 } | 422 } |
427 *reinterpret_cast<Instr*>(pc_) = x; | 423 *reinterpret_cast<Instr*>(pc_) = x; |
428 pc_ += kInstrSize; | 424 pc_ += kInstrSize; |
429 CheckTrampolinePoolQuick(); | 425 CheckTrampolinePoolQuick(); |
430 } | 426 } |
431 | 427 |
432 | 428 |
433 } } // namespace v8::internal | 429 } } // namespace v8::internal |
434 | 430 |
435 #endif // V8_MIPS_ASSEMBLER_MIPS_INL_H_ | 431 #endif // V8_MIPS_ASSEMBLER_MIPS_INL_H_ |
OLD | NEW |