| 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 #ifndef VM_LOCATIONS_H_ | 5 #ifndef VM_LOCATIONS_H_ |
| 6 #define VM_LOCATIONS_H_ | 6 #define VM_LOCATIONS_H_ |
| 7 | 7 |
| 8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
| 9 #include "vm/assembler.h" | 9 #include "vm/assembler.h" |
| 10 #include "vm/bitfield.h" | 10 #include "vm/bitfield.h" |
| 11 | 11 |
| 12 namespace dart { | 12 namespace dart { |
| 13 | 13 |
| 14 |
| 14 class BufferFormatter; | 15 class BufferFormatter; |
| 16 class ConstantInstr; |
| 17 class Definition; |
| 18 class PairLocation; |
| 15 class Value; | 19 class Value; |
| 16 class PairLocation; | |
| 17 class ConstantInstr; | |
| 18 | 20 |
| 19 | 21 |
| 20 enum Representation { | 22 enum Representation { |
| 21 kNoRepresentation, | 23 kNoRepresentation, |
| 22 kTagged, | 24 kTagged, |
| 23 kUntagged, | 25 kUntagged, |
| 24 kUnboxedDouble, | 26 kUnboxedDouble, |
| 25 kUnboxedInt32, | 27 kUnboxedInt32, |
| 26 kUnboxedUint32, | 28 kUnboxedUint32, |
| 27 kUnboxedMint, | 29 kUnboxedMint, |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 363 } | 365 } |
| 364 | 366 |
| 365 // If current location is constant might return something that | 367 // If current location is constant might return something that |
| 366 // is not equal to any Kind. | 368 // is not equal to any Kind. |
| 367 Kind kind() const { | 369 Kind kind() const { |
| 368 return KindField::decode(value_); | 370 return KindField::decode(value_); |
| 369 } | 371 } |
| 370 | 372 |
| 371 Location Copy() const; | 373 Location Copy() const; |
| 372 | 374 |
| 375 Location RemapForSlowPath(Definition* def, |
| 376 intptr_t* cpu_reg_slots, |
| 377 intptr_t* fpu_reg_slots) const; |
| 378 |
| 373 private: | 379 private: |
| 374 explicit Location(uword value) : value_(value) { } | 380 explicit Location(uword value) : value_(value) { } |
| 375 | 381 |
| 376 Location(Kind kind, uword payload) | 382 Location(Kind kind, uword payload) |
| 377 : value_(KindField::encode(kind) | PayloadField::encode(payload)) { } | 383 : value_(KindField::encode(kind) | PayloadField::encode(payload)) { } |
| 378 | 384 |
| 379 uword payload() const { | 385 uword payload() const { |
| 380 return PayloadField::decode(value_); | 386 return PayloadField::decode(value_); |
| 381 } | 387 } |
| 382 | 388 |
| (...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 669 | 675 |
| 670 #if defined(DEBUG) | 676 #if defined(DEBUG) |
| 671 intptr_t writable_inputs_; | 677 intptr_t writable_inputs_; |
| 672 #endif | 678 #endif |
| 673 }; | 679 }; |
| 674 | 680 |
| 675 | 681 |
| 676 } // namespace dart | 682 } // namespace dart |
| 677 | 683 |
| 678 #endif // VM_LOCATIONS_H_ | 684 #endif // VM_LOCATIONS_H_ |
| OLD | NEW |