Index: src/ia32/lithium-ia32.cc |
diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc |
index c73d073406c8bda37658f5cf10e6230960a00d9b..c8b533bbee9809a989684d0a046d5d7fd6c52b34 100644 |
--- a/src/ia32/lithium-ia32.cc |
+++ b/src/ia32/lithium-ia32.cc |
@@ -911,6 +911,10 @@ void LChunkBuilder::VisitInstruction(HInstruction* current) { |
LInstruction* instr = current->CompileToLithium(this); |
if (instr != NULL) { |
+ // Associate the hydrogen instruction first, since we may need it for |
+ // the ClobbersRegisters() or ClobbersDoubleRegisters() calls below. |
+ instr->set_hydrogen_value(current); |
+ |
#if DEBUG |
// Make sure that the lithium instruction has either no fixed register |
// constraints in temps or the result OR no uses that are only used at |
@@ -957,7 +961,6 @@ void LChunkBuilder::VisitInstruction(HInstruction* current) { |
clobber->set_hydrogen_value(current); |
chunk_->AddInstruction(clobber, current_block_); |
} |
- instr->set_hydrogen_value(current); |
chunk_->AddInstruction(instr, current_block_); |
} |
current_instruction_ = old_current; |