| 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/intermediate_language.h" | 8 #include "vm/intermediate_language.h" |
| 9 | 9 |
| 10 #include "vm/compiler.h" | 10 #include "vm/compiler.h" |
| (...skipping 3150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3161 __ and_(result, left, Operand(right)); | 3161 __ and_(result, left, Operand(right)); |
| 3162 break; | 3162 break; |
| 3163 case Token::kBIT_XOR: | 3163 case Token::kBIT_XOR: |
| 3164 __ eor(result, left, Operand(right)); | 3164 __ eor(result, left, Operand(right)); |
| 3165 break; | 3165 break; |
| 3166 case Token::kEQ: | 3166 case Token::kEQ: |
| 3167 case Token::kLT: | 3167 case Token::kLT: |
| 3168 case Token::kLTE: | 3168 case Token::kLTE: |
| 3169 case Token::kGT: | 3169 case Token::kGT: |
| 3170 case Token::kGTE: { | 3170 case Token::kGTE: { |
| 3171 Label true_label, false_label, done; | |
| 3172 BranchLabels labels = { &true_label, &false_label, &false_label }; | |
| 3173 Condition true_condition = | 3171 Condition true_condition = |
| 3174 EmitSmiComparisonOp(compiler, locs(), op_kind()); | 3172 EmitSmiComparisonOp(compiler, locs(), op_kind()); |
| 3175 EmitBranchOnCondition(compiler, true_condition, labels); | 3173 __ LoadObject(result, Bool::True(), true_condition); |
| 3176 __ Bind(&false_label); | 3174 __ LoadObject(result, Bool::False(), NegateCondition(true_condition)); |
| 3177 __ LoadObject(result, Bool::False()); | |
| 3178 __ b(&done); | |
| 3179 __ Bind(&true_label); | |
| 3180 __ LoadObject(result, Bool::True()); | |
| 3181 __ Bind(&done); | |
| 3182 break; | 3175 break; |
| 3183 } | 3176 } |
| 3184 default: | 3177 default: |
| 3185 UNIMPLEMENTED(); | 3178 UNIMPLEMENTED(); |
| 3186 } | 3179 } |
| 3187 __ Bind(slow_path->exit_label()); | 3180 __ Bind(slow_path->exit_label()); |
| 3188 } | 3181 } |
| 3189 | 3182 |
| 3190 | 3183 |
| 3191 LocationSummary* BinarySmiOpInstr::MakeLocationSummary(Zone* zone, | 3184 LocationSummary* BinarySmiOpInstr::MakeLocationSummary(Zone* zone, |
| (...skipping 3808 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7000 1, | 6993 1, |
| 7001 locs()); | 6994 locs()); |
| 7002 __ Drop(1); | 6995 __ Drop(1); |
| 7003 __ Pop(result); | 6996 __ Pop(result); |
| 7004 } | 6997 } |
| 7005 | 6998 |
| 7006 | 6999 |
| 7007 } // namespace dart | 7000 } // namespace dart |
| 7008 | 7001 |
| 7009 #endif // defined TARGET_ARCH_ARM | 7002 #endif // defined TARGET_ARCH_ARM |
| OLD | NEW |