summaryrefslogtreecommitdiff
path: root/deps/v8/src/ia32/assembler-ia32-inl.h
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2010-08-17 08:37:25 -0700
committerRyan Dahl <ry@tinyclouds.org>2010-08-17 08:37:25 -0700
commit91757fa8400654b69de18e3840c402e369521b68 (patch)
tree0ee925b614e1efda3821a313f9b77b7152752704 /deps/v8/src/ia32/assembler-ia32-inl.h
parentd4f4380f7ea04ee045fae1661242a5a7f2f1267a (diff)
downloadnode-91757fa8400654b69de18e3840c402e369521b68.tar.gz
Upgrade V8 to 2.3.8
Diffstat (limited to 'deps/v8/src/ia32/assembler-ia32-inl.h')
-rw-r--r--deps/v8/src/ia32/assembler-ia32-inl.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/deps/v8/src/ia32/assembler-ia32-inl.h b/deps/v8/src/ia32/assembler-ia32-inl.h
index 7fa151e9e..ecbdfdcff 100644
--- a/deps/v8/src/ia32/assembler-ia32-inl.h
+++ b/deps/v8/src/ia32/assembler-ia32-inl.h
@@ -183,6 +183,30 @@ void RelocInfo::Visit(ObjectVisitor* visitor) {
}
+template<typename StaticVisitor>
+void RelocInfo::Visit() {
+ RelocInfo::Mode mode = rmode();
+ if (mode == RelocInfo::EMBEDDED_OBJECT) {
+ StaticVisitor::VisitPointer(target_object_address());
+ } else if (RelocInfo::IsCodeTarget(mode)) {
+ StaticVisitor::VisitCodeTarget(this);
+ } else if (mode == RelocInfo::EXTERNAL_REFERENCE) {
+ StaticVisitor::VisitExternalReference(target_reference_address());
+#ifdef ENABLE_DEBUGGER_SUPPORT
+ } else if (Debug::has_break_points() &&
+ ((RelocInfo::IsJSReturn(mode) &&
+ IsPatchedReturnSequence()) ||
+ (RelocInfo::IsDebugBreakSlot(mode) &&
+ IsPatchedDebugBreakSlotSequence()))) {
+ StaticVisitor::VisitDebugTarget(this);
+#endif
+ } else if (mode == RelocInfo::RUNTIME_ENTRY) {
+ StaticVisitor::VisitRuntimeEntry(this);
+ }
+}
+
+
+
Immediate::Immediate(int x) {
x_ = x;
rmode_ = RelocInfo::NONE;