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/intermediate_language.h" | 5 #include "vm/intermediate_language.h" |
6 | 6 |
7 #include "vm/bigint_operations.h" | 7 #include "vm/bigint_operations.h" |
8 #include "vm/bit_vector.h" | 8 #include "vm/bit_vector.h" |
9 #include "vm/dart_entry.h" | 9 #include "vm/dart_entry.h" |
10 #include "vm/flow_graph_allocator.h" | 10 #include "vm/flow_graph_allocator.h" |
(...skipping 1561 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1572 LocationSummary* StoreContextInstr::MakeLocationSummary() const { | 1572 LocationSummary* StoreContextInstr::MakeLocationSummary() const { |
1573 const intptr_t kNumInputs = 1; | 1573 const intptr_t kNumInputs = 1; |
1574 const intptr_t kNumTemps = 0; | 1574 const intptr_t kNumTemps = 0; |
1575 LocationSummary* summary = | 1575 LocationSummary* summary = |
1576 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); | 1576 new LocationSummary(kNumInputs, kNumTemps, LocationSummary::kNoCall); |
1577 summary->set_in(0, Location::RegisterLocation(CTX)); | 1577 summary->set_in(0, Location::RegisterLocation(CTX)); |
1578 return summary; | 1578 return summary; |
1579 } | 1579 } |
1580 | 1580 |
1581 | 1581 |
| 1582 LocationSummary* PushTempInstr::MakeLocationSummary() const { |
| 1583 return LocationSummary::Make(1, |
| 1584 Location::NoLocation(), |
| 1585 LocationSummary::kNoCall); |
| 1586 } |
| 1587 |
| 1588 |
| 1589 void PushTempInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
| 1590 ASSERT(!compiler->is_optimizing()); |
| 1591 // Nothing to do. |
| 1592 } |
| 1593 |
| 1594 |
| 1595 LocationSummary* DropTempsInstr::MakeLocationSummary() const { |
| 1596 return LocationSummary::Make(1, |
| 1597 Location::SameAsFirstInput(), |
| 1598 LocationSummary::kNoCall); |
| 1599 } |
| 1600 |
| 1601 |
| 1602 void DropTempsInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
| 1603 ASSERT(!compiler->is_optimizing()); |
| 1604 Register value = locs()->in(0).reg(); |
| 1605 Register result = locs()->out().reg(); |
| 1606 ASSERT(result == value); // Assert that register assignment is correct. |
| 1607 __ Drop(num_temps()); |
| 1608 } |
| 1609 |
| 1610 |
1582 void StoreContextInstr::EmitNativeCode(FlowGraphCompiler* compiler) { | 1611 void StoreContextInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
1583 // Nothing to do. Context register was loaded by the register allocator. | 1612 // Nothing to do. Context register was loaded by the register allocator. |
1584 ASSERT(locs()->in(0).reg() == CTX); | 1613 ASSERT(locs()->in(0).reg() == CTX); |
1585 } | 1614 } |
1586 | 1615 |
1587 | 1616 |
1588 StrictCompareInstr::StrictCompareInstr(intptr_t token_pos, | 1617 StrictCompareInstr::StrictCompareInstr(intptr_t token_pos, |
1589 Token::Kind kind, | 1618 Token::Kind kind, |
1590 Value* left, | 1619 Value* left, |
1591 Value* right) | 1620 Value* right) |
(...skipping 882 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2474 default: | 2503 default: |
2475 UNREACHABLE(); | 2504 UNREACHABLE(); |
2476 } | 2505 } |
2477 return kPowRuntimeEntry; | 2506 return kPowRuntimeEntry; |
2478 } | 2507 } |
2479 | 2508 |
2480 | 2509 |
2481 #undef __ | 2510 #undef __ |
2482 | 2511 |
2483 } // namespace dart | 2512 } // namespace dart |
OLD | NEW |