| 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_X64. | 5 #include "vm/globals.h"  // Needed here to get TARGET_ARCH_X64. | 
| 6 #if defined(TARGET_ARCH_X64) | 6 #if defined(TARGET_ARCH_X64) | 
| 7 | 7 | 
| 8 #include "vm/intermediate_language.h" | 8 #include "vm/intermediate_language.h" | 
| 9 | 9 | 
| 10 #include "vm/dart_entry.h" | 10 #include "vm/dart_entry.h" | 
| (...skipping 2576 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2587   __ Bind(slow_path->exit_label()); | 2587   __ Bind(slow_path->exit_label()); | 
| 2588 } | 2588 } | 
| 2589 | 2589 | 
| 2590 | 2590 | 
| 2591 static void EmitJavascriptOverflowCheck(FlowGraphCompiler* compiler, | 2591 static void EmitJavascriptOverflowCheck(FlowGraphCompiler* compiler, | 
| 2592                                         Range* range, | 2592                                         Range* range, | 
| 2593                                         Label* overflow, | 2593                                         Label* overflow, | 
| 2594                                         Register result) { | 2594                                         Register result) { | 
| 2595   if (!range->IsWithin(-0x20000000000000LL, 0x20000000000000LL)) { | 2595   if (!range->IsWithin(-0x20000000000000LL, 0x20000000000000LL)) { | 
| 2596     ASSERT(overflow != NULL); | 2596     ASSERT(overflow != NULL); | 
|  | 2597     // TODO(zra): This can be tightened to one compare/branch using: | 
|  | 2598     // overflow = (result + 2^52) > 2^53 with an unsigned comparison. | 
| 2597     __ CompareImmediate(result, Immediate(-0x20000000000000LL), PP); | 2599     __ CompareImmediate(result, Immediate(-0x20000000000000LL), PP); | 
| 2598     __ j(LESS, overflow); | 2600     __ j(LESS, overflow); | 
| 2599     __ CompareImmediate(result, Immediate(0x20000000000000LL), PP); | 2601     __ CompareImmediate(result, Immediate(0x20000000000000LL), PP); | 
| 2600     __ j(GREATER, overflow); | 2602     __ j(GREATER, overflow); | 
| 2601   } | 2603   } | 
| 2602 } | 2604 } | 
| 2603 | 2605 | 
| 2604 | 2606 | 
| 2605 static void EmitSmiShiftLeft(FlowGraphCompiler* compiler, | 2607 static void EmitSmiShiftLeft(FlowGraphCompiler* compiler, | 
| 2606                              BinarySmiOpInstr* shift_left) { | 2608                              BinarySmiOpInstr* shift_left) { | 
| (...skipping 3172 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5779                          PcDescriptors::kOther, | 5781                          PcDescriptors::kOther, | 
| 5780                          locs()); | 5782                          locs()); | 
| 5781   __ Drop(ArgumentCount());  // Discard arguments. | 5783   __ Drop(ArgumentCount());  // Discard arguments. | 
| 5782 } | 5784 } | 
| 5783 | 5785 | 
| 5784 }  // namespace dart | 5786 }  // namespace dart | 
| 5785 | 5787 | 
| 5786 #undef __ | 5788 #undef __ | 
| 5787 | 5789 | 
| 5788 #endif  // defined TARGET_ARCH_X64 | 5790 #endif  // defined TARGET_ARCH_X64 | 
| OLD | NEW | 
|---|