Commit 3ea38d41 authored by whesse@chromium.org's avatar whesse@chromium.org

X64 Crankshaft: Fix bug in DoStoreContextSlot, and enable it.

Review URL: http://codereview.chromium.org/6627046

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 30676b0a
...@@ -1726,7 +1726,6 @@ LInstruction* LChunkBuilder::DoLoadContextSlot(HLoadContextSlot* instr) { ...@@ -1726,7 +1726,6 @@ LInstruction* LChunkBuilder::DoLoadContextSlot(HLoadContextSlot* instr) {
LInstruction* LChunkBuilder::DoStoreContextSlot(HStoreContextSlot* instr) { LInstruction* LChunkBuilder::DoStoreContextSlot(HStoreContextSlot* instr) {
Abort("Unimplemented: DoStoreContextSlot"); // Temporarily disabled (whesse).
LOperand* context; LOperand* context;
LOperand* value; LOperand* value;
if (instr->NeedsWriteBarrier()) { if (instr->NeedsWriteBarrier()) {
......
...@@ -95,7 +95,13 @@ void MacroAssembler::RecordWriteHelper(Register object, ...@@ -95,7 +95,13 @@ void MacroAssembler::RecordWriteHelper(Register object,
if (FLAG_debug_code) { if (FLAG_debug_code) {
// Check that the object is not in new space. // Check that the object is not in new space.
NearLabel not_in_new_space; NearLabel 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); InNewSpace(object, scratch, not_equal, &not_in_new_space);
}
Abort("new-space object passed to RecordWriteHelper"); Abort("new-space object passed to RecordWriteHelper");
bind(&not_in_new_space); bind(&not_in_new_space);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment