| 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_IA32. | 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_IA32. |
| 6 #if defined(TARGET_ARCH_IA32) | 6 #if defined(TARGET_ARCH_IA32) |
| 7 | 7 |
| 8 #include "vm/intermediate_language.h" | 8 #include "vm/intermediate_language.h" |
| 9 | 9 |
| 10 #include "vm/compiler.h" | 10 #include "vm/compiler.h" |
| (...skipping 5829 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5840 if (unary_checks().GetReceiverClassIdAt(0) == kSmiCid) { | 5840 if (unary_checks().GetReceiverClassIdAt(0) == kSmiCid) { |
| 5841 __ testl(value, Immediate(kSmiTagMask)); | 5841 __ testl(value, Immediate(kSmiTagMask)); |
| 5842 __ j(ZERO, &is_ok); | 5842 __ j(ZERO, &is_ok); |
| 5843 } else { | 5843 } else { |
| 5844 __ testl(value, Immediate(kSmiTagMask)); | 5844 __ testl(value, Immediate(kSmiTagMask)); |
| 5845 __ j(ZERO, deopt); | 5845 __ j(ZERO, deopt); |
| 5846 } | 5846 } |
| 5847 Register biased_cid = temp; | 5847 Register biased_cid = temp; |
| 5848 __ LoadClassId(biased_cid, value); | 5848 __ LoadClassId(biased_cid, value); |
| 5849 | 5849 |
| 5850 GrowableArray<CidRangeTarget> sorted_ic_data; | 5850 ZoneGrowableArray<CidRangeTarget> sorted_ic_data; |
| 5851 FlowGraphCompiler::SortICDataByCount(unary_checks(), &sorted_ic_data, | 5851 FlowGraphCompiler::SortICDataByCount(unary_checks(), &sorted_ic_data, |
| 5852 /* drop_smi = */ true); | 5852 /* drop_smi = */ true); |
| 5853 | 5853 |
| 5854 if (IsDenseSwitch()) { | 5854 if (IsDenseSwitch()) { |
| 5855 ASSERT(cids_[0] < cids_[cids_.length() - 1]); | 5855 ASSERT(cids_[0] < cids_[cids_.length() - 1]); |
| 5856 __ subl(biased_cid, Immediate(cids_[0])); | 5856 __ subl(biased_cid, Immediate(cids_[0])); |
| 5857 __ cmpl(biased_cid, Immediate(cids_[cids_.length() - 1] - cids_[0])); | 5857 __ cmpl(biased_cid, Immediate(cids_[cids_.length() - 1] - cids_[0])); |
| 5858 __ j(ABOVE, deopt); | 5858 __ j(ABOVE, deopt); |
| 5859 | 5859 |
| 5860 intptr_t mask = ComputeCidMask(); | 5860 intptr_t mask = ComputeCidMask(); |
| (...skipping 1073 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6934 __ Drop(1); | 6934 __ Drop(1); |
| 6935 __ popl(result); | 6935 __ popl(result); |
| 6936 } | 6936 } |
| 6937 | 6937 |
| 6938 | 6938 |
| 6939 } // namespace dart | 6939 } // namespace dart |
| 6940 | 6940 |
| 6941 #undef __ | 6941 #undef __ |
| 6942 | 6942 |
| 6943 #endif // defined TARGET_ARCH_IA32 | 6943 #endif // defined TARGET_ARCH_IA32 |
| OLD | NEW |