| 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_DEOPT_INSTRUCTIONS_H_ | 5 #ifndef VM_DEOPT_INSTRUCTIONS_H_ |
| 6 #define VM_DEOPT_INSTRUCTIONS_H_ | 6 #define VM_DEOPT_INSTRUCTIONS_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/code_generator.h" | 10 #include "vm/code_generator.h" |
| (...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 392 const char* ToCString() const { | 392 const char* ToCString() const { |
| 393 if (is_register()) { | 393 if (is_register()) { |
| 394 return Name(reg()); | 394 return Name(reg()); |
| 395 } else { | 395 } else { |
| 396 return Thread::Current()->zone()->PrintToString( | 396 return Thread::Current()->zone()->PrintToString( |
| 397 "s%" Pd "", raw_index()); | 397 "s%" Pd "", raw_index()); |
| 398 } | 398 } |
| 399 } | 399 } |
| 400 | 400 |
| 401 private: | 401 private: |
| 402 class KindField : public BitField<intptr_t, 0, 1> { }; | 402 class KindField : public BitField<intptr_t, intptr_t, 0, 1> { }; |
| 403 class RawIndexField : public BitField<intptr_t, 1, kBitsPerWord - 1> { }; | 403 class RawIndexField : |
| 404 public BitField<intptr_t, intptr_t, 1, kBitsPerWord - 1> { }; |
| 404 | 405 |
| 405 bool is_register() const { | 406 bool is_register() const { |
| 406 return KindField::decode(source_index_) == kRegister; | 407 return KindField::decode(source_index_) == kRegister; |
| 407 } | 408 } |
| 408 intptr_t raw_index() const { return RawIndexField::decode(source_index_); } | 409 intptr_t raw_index() const { return RawIndexField::decode(source_index_); } |
| 409 | 410 |
| 410 RegisterType reg() const { return static_cast<RegisterType>(raw_index()); } | 411 RegisterType reg() const { return static_cast<RegisterType>(raw_index()); } |
| 411 | 412 |
| 412 static const char* Name(Register reg) { | 413 static const char* Name(Register reg) { |
| 413 return Assembler::RegisterName(reg); | 414 return Assembler::RegisterName(reg); |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 536 Smi* offset, | 537 Smi* offset, |
| 537 TypedData* info, | 538 TypedData* info, |
| 538 Smi* reason_and_flags); | 539 Smi* reason_and_flags); |
| 539 | 540 |
| 540 static RawSmi* EncodeReasonAndFlags(ICData::DeoptReasonId reason, | 541 static RawSmi* EncodeReasonAndFlags(ICData::DeoptReasonId reason, |
| 541 uint32_t flags) { | 542 uint32_t flags) { |
| 542 return Smi::New(ReasonField::encode(reason) | | 543 return Smi::New(ReasonField::encode(reason) | |
| 543 FlagsField::encode(flags)); | 544 FlagsField::encode(flags)); |
| 544 } | 545 } |
| 545 | 546 |
| 546 class ReasonField : public BitField<ICData::DeoptReasonId, 0, 8> { }; | 547 class ReasonField : |
| 547 class FlagsField : public BitField<uint32_t, 8, 8> { }; | 548 public BitField<intptr_t, ICData::DeoptReasonId, 0, 8> { }; |
| 549 class FlagsField : public BitField<intptr_t, uint32_t, 8, 8> { }; |
| 548 | 550 |
| 549 private: | 551 private: |
| 550 static const intptr_t kEntrySize = 3; | 552 static const intptr_t kEntrySize = 3; |
| 551 }; | 553 }; |
| 552 | 554 |
| 553 } // namespace dart | 555 } // namespace dart |
| 554 | 556 |
| 555 #endif // VM_DEOPT_INSTRUCTIONS_H_ | 557 #endif // VM_DEOPT_INSTRUCTIONS_H_ |
| OLD | NEW |