| Index: src/arm/assembler-arm-inl.h
|
| ===================================================================
|
| --- src/arm/assembler-arm-inl.h (revision 4713)
|
| +++ src/arm/assembler-arm-inl.h (working copy)
|
| @@ -39,6 +39,7 @@
|
|
|
| #include "arm/assembler-arm.h"
|
| #include "cpu.h"
|
| +#include "debug.h"
|
|
|
|
|
| namespace v8 {
|
| @@ -73,6 +74,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);
|
| @@ -162,6 +168,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);
|
| + }
|
| +}
|
| +
|
| +
|
| Operand::Operand(int32_t immediate, RelocInfo::Mode rmode) {
|
| rm_ = no_reg;
|
| imm32_ = immediate;
|
|
|