| OLD | NEW | 
|---|
| 1 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file | 
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a | 
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "vm/globals.h"  // Needed here to get TARGET_ARCH_ARM. | 5 #include "vm/globals.h"  // Needed here to get TARGET_ARCH_ARM. | 
| 6 #if defined(TARGET_ARCH_ARM) | 6 #if defined(TARGET_ARCH_ARM) | 
| 7 | 7 | 
| 8 #include "vm/intrinsifier.h" | 8 #include "vm/intrinsifier.h" | 
| 9 | 9 | 
| 10 #include "vm/assembler.h" | 10 #include "vm/assembler.h" | 
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 196     __ b(&checked_ok, EQ); | 196     __ b(&checked_ok, EQ); | 
| 197 | 197 | 
| 198     __ ldr(R1, Address(SP, 2 * kWordSize));  // Array. | 198     __ ldr(R1, Address(SP, 2 * kWordSize));  // Array. | 
| 199     __ ldr(R1, FieldAddress(R1, type_args_field_offset)); | 199     __ ldr(R1, FieldAddress(R1, type_args_field_offset)); | 
| 200 | 200 | 
| 201     // R1: Type arguments of array. | 201     // R1: Type arguments of array. | 
| 202     __ CompareImmediate(R1, raw_null); | 202     __ CompareImmediate(R1, raw_null); | 
| 203     __ b(&checked_ok, EQ); | 203     __ b(&checked_ok, EQ); | 
| 204 | 204 | 
| 205     // Check if it's dynamic. | 205     // Check if it's dynamic. | 
| 206     // For now handle only TypeArguments and bail out if InstantiatedTypeArgs. |  | 
| 207     __ CompareClassId(R1, kTypeArgumentsCid, R0); |  | 
| 208     __ b(&fall_through, NE); |  | 
| 209     // Get type at index 0. | 206     // Get type at index 0. | 
| 210     __ ldr(R0, FieldAddress(R1, TypeArguments::type_at_offset(0))); | 207     __ ldr(R0, FieldAddress(R1, TypeArguments::type_at_offset(0))); | 
| 211     __ CompareObject(R0, Type::ZoneHandle(Type::DynamicType())); | 208     __ CompareObject(R0, Type::ZoneHandle(Type::DynamicType())); | 
| 212     __ b(&checked_ok, EQ); | 209     __ b(&checked_ok, EQ); | 
| 213 | 210 | 
| 214     // Check for int and num. | 211     // Check for int and num. | 
| 215     __ tst(R2, ShifterOperand(kSmiTagMask));  // Value is Smi? | 212     __ tst(R2, ShifterOperand(kSmiTagMask));  // Value is Smi? | 
| 216     __ b(&fall_through, NE);  // Non-smi value. | 213     __ b(&fall_through, NE);  // Non-smi value. | 
| 217     __ CompareObject(R0, Type::ZoneHandle(Type::IntType())); | 214     __ CompareObject(R0, Type::ZoneHandle(Type::IntType())); | 
| 218     __ b(&checked_ok, EQ); | 215     __ b(&checked_ok, EQ); | 
| (...skipping 1487 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1706 | 1703 | 
| 1707 | 1704 | 
| 1708 void Intrinsifier::TwoByteString_equality(Assembler* assembler) { | 1705 void Intrinsifier::TwoByteString_equality(Assembler* assembler) { | 
| 1709   StringEquality(assembler, kTwoByteStringCid); | 1706   StringEquality(assembler, kTwoByteStringCid); | 
| 1710 } | 1707 } | 
| 1711 | 1708 | 
| 1712 | 1709 | 
| 1713 }  // namespace dart | 1710 }  // namespace dart | 
| 1714 | 1711 | 
| 1715 #endif  // defined TARGET_ARCH_ARM | 1712 #endif  // defined TARGET_ARCH_ARM | 
| OLD | NEW | 
|---|