V8 Project
|
#include <lithium.h>
Classes | |
class | BasicPolicyField |
class | ExtendedPolicyField |
class | FixedRegisterField |
class | FixedSlotIndexField |
class | LifetimeField |
class | VirtualRegisterField |
Public Types | |
enum | BasicPolicy { FIXED_SLOT , EXTENDED_POLICY } |
enum | ExtendedPolicy { NONE , ANY , FIXED_REGISTER , FIXED_DOUBLE_REGISTER , MUST_HAVE_REGISTER , MUST_HAVE_DOUBLE_REGISTER , WRITABLE_REGISTER , SAME_AS_FIRST_INPUT } |
enum | Lifetime { USED_AT_START , USED_AT_END } |
![]() | |
enum | Kind { INVALID , UNALLOCATED , CONSTANT_OPERAND , STACK_SLOT , DOUBLE_STACK_SLOT , REGISTER , DOUBLE_REGISTER } |
Static Public Member Functions | |
static LUnallocated * | cast (LOperand *op) |
![]() | |
static void | SetUpCaches () |
static void | TearDownCaches () |
Static Public Attributes | |
static const int | kMaxVirtualRegisters = VirtualRegisterField::kMax + 1 |
static const int | kFixedSlotIndexWidth = FixedSlotIndexField::kSize |
static const int | kMaxFixedSlotIndex = (1 << (kFixedSlotIndexWidth - 1)) - 1 |
static const int | kMinFixedSlotIndex = -(1 << (kFixedSlotIndexWidth - 1)) |
Additional Inherited Members | |
![]() | |
LOperand (Kind kind, int index) | |
![]() | |
unsigned | value_ |
![]() | |
static const int | kKindFieldWidth = 3 |
Enumerator | |
---|---|
NONE | |
ANY | |
FIXED_REGISTER | |
FIXED_DOUBLE_REGISTER | |
MUST_HAVE_REGISTER | |
MUST_HAVE_DOUBLE_REGISTER | |
WRITABLE_REGISTER | |
SAME_AS_FIRST_INPUT |
Definition at line 79 of file lithium.h.
|
inlineexplicit |
Definition at line 104 of file lithium.h.
References v8::internal::BitFieldBase< T, shift, size, U >::encode(), EXTENDED_POLICY, USED_AT_END, and v8::internal::LOperand::value_.
Referenced by CopyUnconstrained().
|
inline |
Definition at line 110 of file lithium.h.
References DCHECK, v8::internal::BitFieldBase< T, shift, size, U >::encode(), FIXED_SLOT, fixed_slot_index(), v8::internal::LOperand::index(), v8::internal::BitFieldBase< T, shift, size, U >::kShift, and v8::internal::LOperand::value_.
|
inline |
Definition at line 117 of file lithium.h.
References DCHECK, v8::internal::BitFieldBase< T, shift, size, U >::encode(), EXTENDED_POLICY, FIXED_DOUBLE_REGISTER, FIXED_REGISTER, v8::internal::LOperand::index(), USED_AT_END, and v8::internal::LOperand::value_.
|
inline |
Definition at line 125 of file lithium.h.
References v8::internal::BitFieldBase< T, shift, size, U >::encode(), EXTENDED_POLICY, and v8::internal::LOperand::value_.
|
inline |
Definition at line 220 of file lithium.h.
References v8::internal::BitFieldBase< T, shift, size, U >::decode(), and v8::internal::LOperand::value_.
Referenced by extended_policy(), HasAnyPolicy(), HasDoubleRegisterPolicy(), HasFixedDoubleRegisterPolicy(), HasFixedPolicy(), HasFixedRegisterPolicy(), HasFixedSlotPolicy(), HasRegisterPolicy(), HasSameAsInputPolicy(), HasWritableRegisterPolicy(), IsUsedAtStart(), and v8::internal::LOperand::PrintTo().
|
inlinestatic |
Definition at line 138 of file lithium.h.
References DCHECK.
Referenced by v8::internal::LOperand::PrintTo(), and v8::internal::UsePosition::UsePosition().
|
inline |
Definition at line 132 of file lithium.h.
References ANY, LUnallocated(), set_virtual_register(), and virtual_register().
|
inline |
Definition at line 225 of file lithium.h.
References basic_policy(), DCHECK, v8::internal::BitFieldBase< T, shift, size, U >::decode(), EXTENDED_POLICY, and v8::internal::LOperand::value_.
Referenced by HasAnyPolicy(), HasDoubleRegisterPolicy(), HasFixedDoubleRegisterPolicy(), HasFixedPolicy(), HasFixedRegisterPolicy(), HasRegisterPolicy(), HasSameAsInputPolicy(), HasWritableRegisterPolicy(), and v8::internal::LOperand::PrintTo().
|
inline |
Definition at line 237 of file lithium.h.
References DCHECK, v8::internal::BitFieldBase< T, shift, size, U >::decode(), HasFixedDoubleRegisterPolicy(), HasFixedRegisterPolicy(), and v8::internal::LOperand::value_.
Referenced by v8::internal::LOperand::PrintTo().
|
inline |
Definition at line 231 of file lithium.h.
References DCHECK, HasFixedSlotPolicy(), v8::internal::BitFieldBase< T, shift, size, U >::kShift, and v8::internal::LOperand::value_.
Referenced by LUnallocated(), and v8::internal::LOperand::PrintTo().
|
inline |
Definition at line 181 of file lithium.h.
References ANY, basic_policy(), EXTENDED_POLICY, and extended_policy().
Referenced by v8::internal::UsePosition::UsePosition().
|
inline |
Definition at line 195 of file lithium.h.
References basic_policy(), EXTENDED_POLICY, extended_policy(), and MUST_HAVE_DOUBLE_REGISTER.
Referenced by v8::internal::UsePosition::UsePosition().
|
inline |
Definition at line 210 of file lithium.h.
References basic_policy(), EXTENDED_POLICY, extended_policy(), and FIXED_DOUBLE_REGISTER.
Referenced by fixed_register_index().
|
inline |
Definition at line 185 of file lithium.h.
References basic_policy(), extended_policy(), FIXED_DOUBLE_REGISTER, FIXED_REGISTER, and FIXED_SLOT.
|
inline |
Definition at line 206 of file lithium.h.
References basic_policy(), EXTENDED_POLICY, extended_policy(), and FIXED_REGISTER.
Referenced by fixed_register_index().
|
inline |
Definition at line 203 of file lithium.h.
References basic_policy(), and FIXED_SLOT.
Referenced by fixed_slot_index().
|
inline |
Definition at line 190 of file lithium.h.
References basic_policy(), EXTENDED_POLICY, extended_policy(), MUST_HAVE_REGISTER, and WRITABLE_REGISTER.
Referenced by v8::internal::UsePosition::UsePosition().
|
inline |
Definition at line 199 of file lithium.h.
References basic_policy(), EXTENDED_POLICY, extended_policy(), and SAME_AS_FIRST_INPUT.
|
inline |
Definition at line 214 of file lithium.h.
References basic_policy(), EXTENDED_POLICY, extended_policy(), and WRITABLE_REGISTER.
|
inline |
Definition at line 251 of file lithium.h.
References basic_policy(), DCHECK, v8::internal::BitFieldBase< T, shift, size, U >::decode(), EXTENDED_POLICY, USED_AT_START, and v8::internal::LOperand::value_.
|
inline |
Definition at line 246 of file lithium.h.
References v8::internal::BitFieldBase< T, shift, size, U >::update(), and v8::internal::LOperand::value_.
Referenced by CopyUnconstrained(), and v8::internal::LiveRange::CreateAssignedOperand().
v8::internal::LUnallocated::STATIC_ASSERT | ( | kKindFieldWidth | = =3 | ) |
|
inline |
Definition at line 243 of file lithium.h.
References v8::internal::BitFieldBase< T, shift, size, U >::decode(), and v8::internal::LOperand::value_.
Referenced by CopyUnconstrained(), and v8::internal::LOperand::PrintTo().
|
static |
|
static |
Definition at line 177 of file lithium.h.
Referenced by v8::internal::OptimizedCompileJob::CreateGraph().
|
static |
Definition at line 175 of file lithium.h.
Referenced by v8::internal::BASE_EMBEDDED< Visitor >::GetVirtualRegister(), and v8::internal::LChunk::NewChunk().
|
static |
Definition at line 178 of file lithium.h.
Referenced by v8::internal::OptimizedCompileJob::CreateGraph().