| Index: src/ia32/assembler-ia32-inl.h
|
| ===================================================================
|
| --- src/ia32/assembler-ia32-inl.h (revision 4713)
|
| +++ src/ia32/assembler-ia32-inl.h (working copy)
|
| @@ -38,6 +38,7 @@
|
| #define V8_IA32_ASSEMBLER_IA32_INL_H_
|
|
|
| #include "cpu.h"
|
| +#include "debug.h"
|
|
|
| namespace v8 {
|
| namespace internal {
|
| @@ -77,6 +78,11 @@
|
| }
|
|
|
|
|
| +int RelocInfo::target_address_size() {
|
| + return Assembler::kExternalTargetSize;
|
| +}
|
| +
|
| +
|
| void RelocInfo::set_target_address(Address target) {
|
| ASSERT(IsCodeTarget(rmode_) || rmode_ == RUNTIME_ENTRY);
|
| Assembler::set_target_address_at(pc_, target);
|
| @@ -148,6 +154,26 @@
|
| }
|
|
|
|
|
| +void RelocInfo::Visit(ObjectVisitor* visitor) {
|
| + RelocInfo::Mode mode = rmode();
|
| + if (mode == RelocInfo::EMBEDDED_OBJECT) {
|
| + visitor->VisitPointer(target_object_address());
|
| + } else if (RelocInfo::IsCodeTarget(mode)) {
|
| + visitor->VisitCodeTarget(this);
|
| + } else if (mode == RelocInfo::EXTERNAL_REFERENCE) {
|
| + visitor->VisitExternalReference(target_reference_address());
|
| +#ifdef ENABLE_DEBUGGER_SUPPORT
|
| + } else if (Debug::has_break_points() &&
|
| + RelocInfo::IsJSReturn(mode) &&
|
| + IsPatchedReturnSequence()) {
|
| + visitor->VisitDebugTarget(this);
|
| +#endif
|
| + } else if (mode == RelocInfo::RUNTIME_ENTRY) {
|
| + visitor->VisitRuntimeEntry(this);
|
| + }
|
| +}
|
| +
|
| +
|
| Immediate::Immediate(int x) {
|
| x_ = x;
|
| rmode_ = RelocInfo::NONE;
|
|
|