| 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/flow_graph_compiler.h" | 8 #include "vm/flow_graph_compiler.h" |
| 9 | 9 |
| 10 #include "vm/ast_printer.h" | 10 #include "vm/ast_printer.h" |
| (...skipping 1132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1143 GenerateDeferredCode(); | 1143 GenerateDeferredCode(); |
| 1144 // Emit function patching code. This will be swapped with the first 13 bytes | 1144 // Emit function patching code. This will be swapped with the first 13 bytes |
| 1145 // at entry point. | 1145 // at entry point. |
| 1146 AddCurrentDescriptor(PcDescriptors::kPatchCode, | 1146 AddCurrentDescriptor(PcDescriptors::kPatchCode, |
| 1147 Isolate::kNoDeoptId, | 1147 Isolate::kNoDeoptId, |
| 1148 0); // No token position. | 1148 0); // No token position. |
| 1149 // This is patched up to a point in FrameEntry where the PP for the | 1149 // This is patched up to a point in FrameEntry where the PP for the |
| 1150 // current function is in R13 instead of PP. | 1150 // current function is in R13 instead of PP. |
| 1151 __ JmpPatchable(&StubCode::FixCallersTargetLabel(), R13); | 1151 __ JmpPatchable(&StubCode::FixCallersTargetLabel(), R13); |
| 1152 | 1152 |
| 1153 // TOOD(zra): Is this descriptor used? | |
| 1154 AddCurrentDescriptor(PcDescriptors::kLazyDeoptJump, | 1153 AddCurrentDescriptor(PcDescriptors::kLazyDeoptJump, |
| 1155 Isolate::kNoDeoptId, | 1154 Isolate::kNoDeoptId, |
| 1156 0); // No token position. | 1155 0); // No token position. |
| 1157 __ Jmp(&StubCode::DeoptimizeLazyLabel(), PP); | 1156 __ Jmp(&StubCode::DeoptimizeLazyLabel(), PP); |
| 1158 } | 1157 } |
| 1159 | 1158 |
| 1160 | 1159 |
| 1161 void FlowGraphCompiler::GenerateCall(intptr_t token_pos, | 1160 void FlowGraphCompiler::GenerateCall(intptr_t token_pos, |
| 1162 const ExternalLabel* label, | 1161 const ExternalLabel* label, |
| 1163 PcDescriptors::Kind kind, | 1162 PcDescriptors::Kind kind, |
| (...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1823 __ movups(reg, Address(RSP, 0)); | 1822 __ movups(reg, Address(RSP, 0)); |
| 1824 __ AddImmediate(RSP, Immediate(kFpuRegisterSize), PP); | 1823 __ AddImmediate(RSP, Immediate(kFpuRegisterSize), PP); |
| 1825 } | 1824 } |
| 1826 | 1825 |
| 1827 | 1826 |
| 1828 #undef __ | 1827 #undef __ |
| 1829 | 1828 |
| 1830 } // namespace dart | 1829 } // namespace dart |
| 1831 | 1830 |
| 1832 #endif // defined TARGET_ARCH_X64 | 1831 #endif // defined TARGET_ARCH_X64 |
| OLD | NEW |