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, ¬_in_new_space);
+ if (addr.is(kScratchRegister)) {
+ push(kScratchRegister);
+ InNewSpace(object, scratch, not_equal, ¬_in_new_space);
+ pop(kScratchRegister);
+ } else {
+ InNewSpace(object, scratch, not_equal, ¬_in_new_space);
+ }
Abort("new-space object passed to RecordWriteHelper");
bind(¬_in_new_space);
}
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev