OLD | NEW |
---|---|
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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/flow_graph_compiler.h" | 8 #include "vm/flow_graph_compiler.h" |
9 | 9 |
10 #include "lib/error.h" | 10 #include "lib/error.h" |
(...skipping 895 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
906 } | 906 } |
907 | 907 |
908 | 908 |
909 void FlowGraphCompiler::GenerateInlinedSetter(intptr_t offset) { | 909 void FlowGraphCompiler::GenerateInlinedSetter(intptr_t offset) { |
910 // TOS: return address. | 910 // TOS: return address. |
911 // +1 : value | 911 // +1 : value |
912 // +2 : receiver. | 912 // +2 : receiver. |
913 // Sequence node has one store node and one return NULL node. | 913 // Sequence node has one store node and one return NULL node. |
914 __ movq(RAX, Address(RSP, 2 * kWordSize)); // Receiver. | 914 __ movq(RAX, Address(RSP, 2 * kWordSize)); // Receiver. |
915 __ movq(RBX, Address(RSP, 1 * kWordSize)); // Value. | 915 __ movq(RBX, Address(RSP, 1 * kWordSize)); // Value. |
916 __ StoreIntoObject(RAX, FieldAddress(RAX, offset), RBX); | 916 __ StoreIntoObject(RAX, |
Ivan Posva
2012/09/11 11:57:30
ditto
Vyacheslav Egorov (Google)
2012/09/11 12:18:05
reverted
| |
917 FieldAddress(RAX, offset), | |
918 RBX); | |
917 const Immediate raw_null = | 919 const Immediate raw_null = |
918 Immediate(reinterpret_cast<intptr_t>(Object::null())); | 920 Immediate(reinterpret_cast<intptr_t>(Object::null())); |
919 __ movq(RAX, raw_null); | 921 __ movq(RAX, raw_null); |
920 __ ret(); | 922 __ ret(); |
921 } | 923 } |
922 | 924 |
923 | 925 |
924 void FlowGraphCompiler::GenerateInlinedMathSqrt(Label* done) { | 926 void FlowGraphCompiler::GenerateInlinedMathSqrt(Label* done) { |
925 Label smi_to_double, double_op, call_method; | 927 Label smi_to_double, double_op, call_method; |
926 __ movq(RAX, Address(RSP, 0)); | 928 __ movq(RAX, Address(RSP, 0)); |
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1367 void ParallelMoveResolver::Exchange(const Address& mem1, const Address& mem2) { | 1369 void ParallelMoveResolver::Exchange(const Address& mem1, const Address& mem2) { |
1368 __ Exchange(mem1, mem2); | 1370 __ Exchange(mem1, mem2); |
1369 } | 1371 } |
1370 | 1372 |
1371 | 1373 |
1372 #undef __ | 1374 #undef __ |
1373 | 1375 |
1374 } // namespace dart | 1376 } // namespace dart |
1375 | 1377 |
1376 #endif // defined TARGET_ARCH_X64 | 1378 #endif // defined TARGET_ARCH_X64 |
OLD | NEW |