Index: src/arm/lithium-codegen-arm.cc |
=================================================================== |
--- src/arm/lithium-codegen-arm.cc (revision 6189) |
+++ src/arm/lithium-codegen-arm.cc (working copy) |
@@ -1593,8 +1593,10 @@ |
Operand index = ToOperand(instr->index()); |
Register result = ToRegister(instr->result()); |
- __ sub(length, length, index); |
- DeoptimizeIf(hi, instr->environment()); |
+ // Bailout index is not a valid argument index. Use unsigned check to get |
+ // negative check for free. |
+ __ sub(length, length, index, SetCC); |
+ DeoptimizeIf(ls, instr->environment()); |
// There are two words between the frame pointer and the last argument. |
// Subtracting from length accounts for one of them add one more. |