Author: [email protected]
Date: Mon Jun 22 07:46:33 2009
New Revision: 2240

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

Log:
X64 implementation: Correct kTargetAddrToReturnAddrDist value for x64.
Review URL: http://codereview.chromium.org/140063

Modified: branches/bleeding_edge/src/x64/assembler-x64.h
==============================================================================
--- branches/bleeding_edge/src/x64/assembler-x64.h      (original)
+++ branches/bleeding_edge/src/x64/assembler-x64.h      Mon Jun 22 07:46:33 2009
@@ -413,8 +413,8 @@
    static inline void set_target_address_at(Address pc, Address target);

    // Distance between the address of the code target in the call  
instruction
-  // and the return address
-  static const int kTargetAddrToReturnAddrDist = kPointerSize;
+  // and the return address.  Checked in the debug build.
+  static const int kTargetAddrToReturnAddrDist = 3 + kPointerSize;


    //  
---------------------------------------------------------------------------

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       Mon Jun 22  
07:46:33 2009
@@ -337,7 +337,15 @@
    WriteRecordedPositions();
    ASSERT(RelocInfo::IsCodeTarget(rmode));
    movq(kScratchRegister, code_object, rmode);
+#ifdef DEBUG
+  Label target;
+  bind(&target);
+#endif
    call(kScratchRegister);
+#ifdef DEBUG
+  ASSERT_EQ(kTargetAddrToReturnAddrDist,
+            SizeOfCodeGeneratedSince(&target) + kPointerSize);
+#endif
  }



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

Reply via email to