Index: src/x64/lithium-x64.cc |
diff --git a/src/x64/lithium-x64.cc b/src/x64/lithium-x64.cc |
index ddaae82022cef07d66f42448d2bc2219633d583f..9b5403d9ab80b5f0c94eaf7b7ba7f5c39b4d78b7 100644 |
--- a/src/x64/lithium-x64.cc |
+++ b/src/x64/lithium-x64.cc |
@@ -862,6 +862,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 |
@@ -898,7 +902,6 @@ void LChunkBuilder::VisitInstruction(HInstruction* current) { |
if (FLAG_stress_environments && !instr->HasEnvironment()) { |
instr = AssignEnvironment(instr); |
} |
- instr->set_hydrogen_value(current); |
chunk_->AddInstruction(instr, current_block_); |
} |
current_instruction_ = old_current; |