Index: src/arm/stub-cache-arm.cc |
diff --git a/src/arm/stub-cache-arm.cc b/src/arm/stub-cache-arm.cc |
index 2c60b28a5d0af293d5841c3e1755c56099776d8d..e6022b4c75764c3318988e43e0be008bedf1180c 100644 |
--- a/src/arm/stub-cache-arm.cc |
+++ b/src/arm/stub-cache-arm.cc |
@@ -3489,9 +3489,9 @@ void KeyedLoadStubCompiler::GenerateLoadExternalArray( |
// Check that the index is in range. |
__ ldr(ip, FieldMemOperand(r3, ExternalArray::kLengthOffset)); |
- __ cmp(ip, Operand(key, ASR, kSmiTagSize)); |
+ __ cmp(key, ip); |
// Unsigned comparison catches both negative and too-large values. |
- __ b(lo, &miss_force_generic); |
+ __ b(hs, &miss_force_generic); |
__ ldr(r3, FieldMemOperand(r3, ExternalArray::kExternalPointerOffset)); |
// r3: base pointer of external storage |
@@ -3819,7 +3819,7 @@ void KeyedStoreStubCompiler::GenerateStoreExternalArray( |
// Check that the index is in range |
__ SmiUntag(r4, key); |
Kevin Millikin (Chromium)
2011/08/11 08:13:06
If you push the untagging down to all the current
danno
2011/08/11 13:59:42
Done.
|
__ ldr(ip, FieldMemOperand(r3, ExternalArray::kLengthOffset)); |
- __ cmp(r4, ip); |
+ __ cmp(key, ip); |
// Unsigned comparison catches both negative and too-large values. |
__ b(hs, &miss_force_generic); |