| 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 1846 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1857 __ j(EQUAL, &store_float64x2); | 1857 __ j(EQUAL, &store_float64x2); |
| 1858 | 1858 |
| 1859 // Fall through. | 1859 // Fall through. |
| 1860 __ jmp(&store_pointer); | 1860 __ jmp(&store_pointer); |
| 1861 | 1861 |
| 1862 if (!compiler->is_optimizing()) { | 1862 if (!compiler->is_optimizing()) { |
| 1863 locs()->live_registers()->Add(locs()->in(0)); | 1863 locs()->live_registers()->Add(locs()->in(0)); |
| 1864 locs()->live_registers()->Add(locs()->in(1)); | 1864 locs()->live_registers()->Add(locs()->in(1)); |
| 1865 } | 1865 } |
| 1866 | 1866 |
| 1867 // Manually preserve temp which could be clobbered on the slow path. |
| 1868 locs()->live_registers()->Add(locs()->temp(0)); |
| 1869 |
| 1867 { | 1870 { |
| 1868 __ Bind(&store_double); | 1871 __ Bind(&store_double); |
| 1869 EnsureMutableBox(compiler, | 1872 EnsureMutableBox(compiler, |
| 1870 this, | 1873 this, |
| 1871 temp, | 1874 temp, |
| 1872 compiler->double_class(), | 1875 compiler->double_class(), |
| 1873 instance_reg, | 1876 instance_reg, |
| 1874 offset_in_bytes_, | 1877 offset_in_bytes_, |
| 1875 temp2); | 1878 temp2); |
| 1876 __ movsd(fpu_temp, FieldAddress(value_reg, Double::value_offset())); | 1879 __ movsd(fpu_temp, FieldAddress(value_reg, Double::value_offset())); |
| (...skipping 4513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6390 __ movq(R10, Immediate(kInvalidObjectPointer)); | 6393 __ movq(R10, Immediate(kInvalidObjectPointer)); |
| 6391 __ movq(RBX, Immediate(kInvalidObjectPointer)); | 6394 __ movq(RBX, Immediate(kInvalidObjectPointer)); |
| 6392 #endif | 6395 #endif |
| 6393 } | 6396 } |
| 6394 | 6397 |
| 6395 } // namespace dart | 6398 } // namespace dart |
| 6396 | 6399 |
| 6397 #undef __ | 6400 #undef __ |
| 6398 | 6401 |
| 6399 #endif // defined TARGET_ARCH_X64 | 6402 #endif // defined TARGET_ARCH_X64 |
| OLD | NEW |