Index: src/ia32/lithium-ia32.cc |
diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc |
index 7a3c373a452e48a71237d074a1e9854785cd095c..ca88ef8e7e879addd21db71db199df4ff86cc316 100644 |
--- a/src/ia32/lithium-ia32.cc |
+++ b/src/ia32/lithium-ia32.cc |
@@ -1630,7 +1630,10 @@ LInstruction* LChunkBuilder::DoAdd(HAdd* instr) { |
return DoArithmeticD(Token::ADD, instr); |
} else if (instr->representation().IsExternal()) { |
DCHECK(instr->left()->representation().IsExternal()); |
- DCHECK(instr->right()->representation().IsInteger32()); |
+ DCHECK((instr->external_add_type() == AddOfExternalAndInt32 && |
+ instr->right()->representation().IsInteger32()) || |
+ (instr->external_add_type() == AddOfExternalAndTagged && |
+ instr->right()->representation().IsTagged())); |
Jarin
2015/07/20 14:17:56
Maybe you want to factor out the two DCHECK into a
|
DCHECK(!instr->CheckFlag(HValue::kCanOverflow)); |
bool use_lea = LAddI::UseLea(instr); |
LOperand* left = UseRegisterAtStart(instr->left()); |