Index: src/x64/lithium-codegen-x64.cc |
diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc |
index 2bcf943ab6cb3963fe9c8b53f0a3679355c9048e..13c5fa51fda9e8e7d390e69a1ba2d3b64c4313cd 100644 |
--- a/src/x64/lithium-codegen-x64.cc |
+++ b/src/x64/lithium-codegen-x64.cc |
@@ -236,7 +236,30 @@ bool LCodeGen::GenerateBody() { |
} |
if (emit_instructions) { |
- Comment(";;; @%d: %s.", current_instruction_, instr->Mnemonic()); |
+ if (FLAG_code_comments) { |
+ HValue* hydrogen = instr->hydrogen_value(); |
+ if (hydrogen != NULL) { |
+ if (hydrogen->IsChange()) { |
+ HValue* changed_value = HChange::cast(hydrogen)->value(); |
+ int use_id = 0; |
+ const char* use_mnemo = "dead"; |
+ if (hydrogen->UseCount() >= 1) { |
+ HValue* use_value = hydrogen->uses().value(); |
+ use_id = use_value->id(); |
+ use_mnemo = use_value->Mnemonic(); |
+ } |
+ Comment(";;; @%d: %s. <of #%d %s for #%d %s>", |
+ current_instruction_, instr->Mnemonic(), |
+ changed_value->id(), changed_value->Mnemonic(), |
+ use_id, use_mnemo); |
+ } else { |
+ Comment(";;; @%d: %s. <#%d>", current_instruction_, |
+ instr->Mnemonic(), hydrogen->id()); |
+ } |
+ } else { |
+ Comment(";;; @%d: %s.", current_instruction_, instr->Mnemonic()); |
+ } |
+ } |
instr->CompileToNative(this); |
} |
} |