| Index: src/crankshaft/s390/lithium-codegen-s390.cc
 | 
| diff --git a/src/crankshaft/s390/lithium-codegen-s390.cc b/src/crankshaft/s390/lithium-codegen-s390.cc
 | 
| index ff8cec5e8f9d6f8a62e680f49962a9a6946e7e7e..7b287c9844ef899f292e1588948440efcfe38a8e 100644
 | 
| --- a/src/crankshaft/s390/lithium-codegen-s390.cc
 | 
| +++ b/src/crankshaft/s390/lithium-codegen-s390.cc
 | 
| @@ -3911,13 +3911,14 @@ void LCodeGen::DoBoundsCheck(LBoundsCheck* instr) {
 | 
|    Representation representation = instr->hydrogen()->length()->representation();
 | 
|    DCHECK(representation.Equals(instr->hydrogen()->index()->representation()));
 | 
|    DCHECK(representation.IsSmiOrInteger32());
 | 
| +  Register temp = scratch0();
 | 
|  
 | 
|    Condition cc = instr->hydrogen()->allow_equality() ? lt : le;
 | 
|    if (instr->length()->IsConstantOperand()) {
 | 
|      int32_t length = ToInteger32(LConstantOperand::cast(instr->length()));
 | 
|      Register index = ToRegister(instr->index());
 | 
|      if (representation.IsSmi()) {
 | 
| -      __ CmpLogicalP(index, Operand(Smi::FromInt(length)));
 | 
| +      __ CmpLogicalSmiLiteral(index, Smi::FromInt(length), temp);
 | 
|      } else {
 | 
|        __ CmpLogical32(index, Operand(length));
 | 
|      }
 | 
| @@ -3926,7 +3927,7 @@ void LCodeGen::DoBoundsCheck(LBoundsCheck* instr) {
 | 
|      int32_t index = ToInteger32(LConstantOperand::cast(instr->index()));
 | 
|      Register length = ToRegister(instr->length());
 | 
|      if (representation.IsSmi()) {
 | 
| -      __ CmpLogicalP(length, Operand(Smi::FromInt(index)));
 | 
| +      __ CmpLogicalSmiLiteral(length, Smi::FromInt(index), temp);
 | 
|      } else {
 | 
|        __ CmpLogical32(length, Operand(index));
 | 
|      }
 | 
| 
 |