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 #include "vm/locations.h" | 9 #include "vm/locations.h" |
10 #include "vm/stub_code.h" | 10 #include "vm/stub_code.h" |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
51 } | 51 } |
52 | 52 |
53 | 53 |
54 void CurrentContextComp::EmitNativeCode(FlowGraphCompiler* compiler) { | 54 void CurrentContextComp::EmitNativeCode(FlowGraphCompiler* compiler) { |
55 __ movq(locs()->out().reg(), CTX); | 55 __ movq(locs()->out().reg(), CTX); |
56 } | 56 } |
57 | 57 |
58 | 58 |
59 LocationSummary* StoreContextComp::MakeLocationSummary() { | 59 LocationSummary* StoreContextComp::MakeLocationSummary() { |
60 LocationSummary* summary = new LocationSummary(1); | 60 LocationSummary* summary = new LocationSummary(1); |
61 summary->set_in(0, Location::RegisterLocation(CTX)); | 61 summary->set_in(0, Location::RequiresRegister()); |
Vyacheslav Egorov (Google)
2012/05/22 23:25:23
I don't think this change is necessary.
This is
srdjan
2012/05/22 23:45:38
How is it known? The register allocator attempts t
srdjan
2012/05/22 23:57:21
Discussed offline and reverted the changes here b
| |
62 return summary; | 62 return summary; |
63 } | 63 } |
64 | 64 |
65 | 65 |
66 void StoreContextComp::EmitNativeCode(FlowGraphCompiler* compiler) { | 66 void StoreContextComp::EmitNativeCode(FlowGraphCompiler* compiler) { |
67 // Nothing to do. Context register were loaded by register allocator. | 67 __ movq(CTX, locs()->in(0).reg()); |
68 ASSERT(locs()->in(0).reg() == CTX); | |
Vyacheslav Egorov (Google)
2012/05/22 23:25:23
Ditto.
| |
69 } | 68 } |
70 | 69 |
71 | 70 |
72 LocationSummary* StrictCompareComp::MakeLocationSummary() { | 71 LocationSummary* StrictCompareComp::MakeLocationSummary() { |
73 return MakeSimpleLocationSummary(2, Location::SameAsFirstInput()); | 72 return MakeSimpleLocationSummary(2, Location::SameAsFirstInput()); |
74 } | 73 } |
75 | 74 |
76 | 75 |
77 void StrictCompareComp::EmitNativeCode(FlowGraphCompiler* compiler) { | 76 void StrictCompareComp::EmitNativeCode(FlowGraphCompiler* compiler) { |
78 const Bool& bool_true = Bool::ZoneHandle(Bool::True()); | 77 const Bool& bool_true = Bool::ZoneHandle(Bool::True()); |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
206 __ LoadObject(result, value()); | 205 __ LoadObject(result, value()); |
207 } | 206 } |
208 } | 207 } |
209 | 208 |
210 | 209 |
211 } // namespace dart | 210 } // namespace dart |
212 | 211 |
213 #undef __ | 212 #undef __ |
214 | 213 |
215 #endif // defined TARGET_ARCH_X64 | 214 #endif // defined TARGET_ARCH_X64 |
OLD | NEW |