Revision: 7071
Author: [email protected]
Date: Mon Mar  7 02:28:37 2011
Log: X64 Crankshaft: Fix bug in DoStoreContextSlot, and enable it.
Review URL: http://codereview.chromium.org/6627046
http://code.google.com/p/v8/source/detail?r=7071

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

=======================================
--- /branches/bleeding_edge/src/x64/lithium-x64.cc      Thu Mar  3 08:09:52 2011
+++ /branches/bleeding_edge/src/x64/lithium-x64.cc      Mon Mar  7 02:28:37 2011
@@ -1726,7 +1726,6 @@


 LInstruction* LChunkBuilder::DoStoreContextSlot(HStoreContextSlot* instr) {
- Abort("Unimplemented: DoStoreContextSlot"); // Temporarily disabled (whesse).
   LOperand* context;
   LOperand* value;
   if (instr->NeedsWriteBarrier()) {
=======================================
--- /branches/bleeding_edge/src/x64/macro-assembler-x64.cc Mon Mar 7 00:35:19 2011 +++ /branches/bleeding_edge/src/x64/macro-assembler-x64.cc Mon Mar 7 02:28:37 2011
@@ -95,7 +95,13 @@
   if (FLAG_debug_code) {
     // Check that the object is not in new space.
     NearLabel not_in_new_space;
-    InNewSpace(object, scratch, not_equal, &not_in_new_space);
+    if (addr.is(kScratchRegister)) {
+      push(kScratchRegister);
+      InNewSpace(object, scratch, not_equal, &not_in_new_space);
+      pop(kScratchRegister);
+    } else {
+      InNewSpace(object, scratch, not_equal, &not_in_new_space);
+    }
     Abort("new-space object passed to RecordWriteHelper");
     bind(&not_in_new_space);
   }

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

Reply via email to