Author: [email protected]
Date: Wed Jul  8 09:19:13 2009
New Revision: 2397

Modified:
    branches/bleeding_edge/src/bootstrapper.cc
    branches/bleeding_edge/src/x64/macro-assembler-x64.cc

Log:
Fix an X64 problem with builtin fixups.  Remove an assert from fixups that  
is no longer true on all platforms.
Review URL: http://codereview.chromium.org/149332

Modified: branches/bleeding_edge/src/bootstrapper.cc
==============================================================================
--- branches/bleeding_edge/src/bootstrapper.cc  (original)
+++ branches/bleeding_edge/src/bootstrapper.cc  Wed Jul  8 09:19:13 2009
@@ -134,7 +134,7 @@
  }


-// Pending fixups are code positions that have refer to builtin code
+// Pending fixups are code positions that refer to builtin code
  // objects that were not available at the time the code was generated.
  // The pending list is processed whenever an environment has been
  // created.
@@ -216,7 +216,6 @@
          *reinterpret_cast<Object**>(pc) = f->code();
        }
      } else {
-      ASSERT(is_pc_relative);
        Assembler::set_target_address_at(pc, f->code()->instruction_start());
      }


Modified: branches/bleeding_edge/src/x64/macro-assembler-x64.cc
==============================================================================
--- branches/bleeding_edge/src/x64/macro-assembler-x64.cc       (original)
+++ branches/bleeding_edge/src/x64/macro-assembler-x64.cc       Wed Jul  8  
09:19:13 2009
@@ -176,7 +176,7 @@
    const char* name = Builtins::GetName(id);
    int argc = Builtins::GetArgumentsCount(id);

-  movq(target, code, RelocInfo::EXTERNAL_REFERENCE);  // Is external  
reference?
+  movq(target, code, RelocInfo::EMBEDDED_OBJECT);
    if (!resolved) {
      uint32_t flags =
          Bootstrapper::FixupFlagsArgumentsCount::encode(argc) |
@@ -624,7 +624,7 @@
    if (!resolved) {
      uint32_t flags =
          Bootstrapper::FixupFlagsArgumentsCount::encode(argc) |
-        Bootstrapper::FixupFlagsIsPCRelative::encode(true) |
+        Bootstrapper::FixupFlagsIsPCRelative::encode(false) |
          Bootstrapper::FixupFlagsUseCodeObject::encode(false);
      Unresolved entry =
          { pc_offset() - kTargetAddrToReturnAddrDist, flags, name };

--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to