V8 Project
|
#include <assembler-arm.h>
Public Member Functions | |
bool | is_valid () const |
bool | is (Register reg) const |
int | code () const |
int | bit () const |
void | set_code (int code) |
Register () | |
Register (const CPURegister &r) | |
Register (const Register &r) | |
bool | IsValid () const |
bool | IsAllocatable () const |
bool | is_valid () const |
bool | is (Register reg) const |
bool | is_byte_register () const |
int | code () const |
int | bit () const |
bool | is_valid () const |
bool | is (Register reg) const |
int | code () const |
int | bit () const |
bool | is_valid () const |
bool | is (Register reg) const |
int | code () const |
int | bit () const |
bool | is_valid () const |
bool | is (Register reg) const |
bool | is_byte_register () const |
int | code () const |
int | bit () const |
int | high_bit () const |
int | low_bits () const |
bool | is_valid () const |
bool | is (Register reg) const |
bool | is_byte_register () const |
int | code () const |
int | bit () const |
![]() | |
unsigned | code () const |
RegisterType | type () const |
RegList | Bit () const |
unsigned | SizeInBits () const |
int | SizeInBytes () const |
bool | Is32Bits () const |
bool | Is64Bits () const |
bool | IsValid () const |
bool | IsValidOrNone () const |
bool | IsValidRegister () const |
bool | IsValidFPRegister () const |
bool | IsNone () const |
bool | Is (const CPURegister &other) const |
bool | Aliases (const CPURegister &other) const |
bool | IsZero () const |
bool | IsSP () const |
bool | IsRegister () const |
bool | IsFPRegister () const |
Register | X () const |
Register | W () const |
FPRegister | D () const |
FPRegister | S () const |
bool | IsSameSizeAndType (const CPURegister &other) const |
bool | is (const CPURegister &other) const |
bool | is_valid () const |
Public Attributes | |
int | code_ |
![]() | |
unsigned | reg_code |
unsigned | reg_size |
RegisterType | reg_type |
Static Public Attributes | |
static const int | kNumRegisters = 16 |
static const int | kMaxNumAllocatableRegisters |
static const int | kSizeInBytes = 4 |
static const unsigned | kAllocatableLowRangeBegin = 0 |
static const unsigned | kAllocatableLowRangeEnd = 15 |
static const unsigned | kAllocatableHighRangeBegin = 18 |
static const unsigned | kAllocatableHighRangeEnd = 24 |
static const unsigned | kAllocatableContext = 27 |
static const int | kAllocatableRangeGapSize |
static const int | kCpRegister = 23 |
Static Private Attributes | |
static const int | kRegisterCodeByAllocationIndex [kMaxNumAllocatableRegisters] |
static const int | kAllocationIndexByRegisterCode [kNumRegisters] |
Additional Inherited Members | |
![]() | |
enum | RegisterType { kInvalid = 0 , kRegister , kFPRegister , kNoRegister } |
Definition at line 94 of file assembler-arm.h.
|
inline |
Definition at line 99 of file assembler-arm64.h.
References v8::internal::CPURegister::kNoRegister, v8::internal::CPURegister::reg_code, v8::internal::CPURegister::reg_size, and v8::internal::CPURegister::reg_type.
Referenced by Create().
|
inlineexplicit |
Definition at line 105 of file assembler-arm64.h.
References DCHECK, v8::internal::CPURegister::IsValidOrNone(), v8::internal::CPURegister::reg_code, v8::internal::CPURegister::reg_size, and v8::internal::CPURegister::reg_type.
|
inline |
Definition at line 112 of file assembler-arm64.h.
References DCHECK, v8::internal::CPURegister::IsValidOrNone(), v8::internal::CPURegister::reg_code, v8::internal::CPURegister::reg_size, and v8::internal::CPURegister::reg_type.
|
inlinestatic |
Definition at line 112 of file assembler-arm.h.
References DCHECK, and kMaxNumAllocatableRegisters.
Referenced by v8::internal::compiler::operator<<(), and v8::internal::LOperand::PrintTo().
|
inlinestatic |
Definition at line 184 of file assembler-arm64.h.
References DCHECK, kAllocatableContext, kAllocatableHighRangeBegin, kAllocatableHighRangeEnd, kAllocatableLowRangeBegin, kAllocatableLowRangeEnd, and NumAllocatableRegisters().
|
inlinestatic |
|
inlinestatic |
Definition at line 107 of file assembler-mips.h.
References DCHECK, and kMaxNumAllocatableRegisters.
|
inlinestatic |
Definition at line 96 of file assembler-mips64.h.
References DCHECK, and kMaxNumAllocatableRegisters.
|
inlinestatic |
|
inlinestatic |
|
inline |
Definition at line 142 of file assembler-arm.h.
References code_, DCHECK, and is_valid().
Referenced by v8::internal::compiler::ArmLinkageHelperTraits::CCalleeSaveRegisters(), v8::internal::compiler::IA32LinkageHelperTraits::CCalleeSaveRegisters(), v8::internal::compiler::X64LinkageHelperTraits::CCalleeSaveRegisters(), v8::internal::MacroAssembler::Pop(), v8::internal::MacroAssembler::Push(), v8::internal::RecordWriteStub::RegisterAllocation::RestoreCallerSaveRegisters(), and v8::internal::RecordWriteStub::RegisterAllocation::SaveCallerSaveRegisters().
|
inline |
Definition at line 94 of file assembler-ia32.h.
References code_, DCHECK, and is_valid().
|
inline |
Definition at line 139 of file assembler-mips.h.
References code_, DCHECK, and is_valid().
|
inline |
Definition at line 128 of file assembler-mips64.h.
References code_, DCHECK, and is_valid().
|
inline |
Definition at line 122 of file assembler-x64.h.
References code_.
|
inline |
Definition at line 94 of file assembler-x87.h.
References code_, DCHECK, and is_valid().
|
inline |
Definition at line 138 of file assembler-arm.h.
References code_, DCHECK, and is_valid().
Referenced by Create(), v8::internal::Deoptimizer::DoComputeCompiledStubFrame(), v8::internal::Deoptimizer::DoComputeJSFrame(), v8::internal::Deoptimizer::DoComputeOutputFrames(), v8::internal::DoubleToIStub::DoubleToIStub(), v8::internal::Assembler::emit_optional_rex_32(), v8::internal::Assembler::emit_rex_64(), v8::internal::Deoptimizer::FillInputFrame(), from_code(), v8::internal::MacroAssembler::LoadFromSafepointRegisterSlot(), v8::internal::NameDictionaryLookupStub::NameDictionaryLookupStub(), v8::internal::MacroAssembler::Pop(), v8::internal::MacroAssembler::Push(), v8::internal::Assembler::RdSP(), v8::internal::RecordWriteStub::RecordWriteStub(), v8::internal::Assembler::RnSP(), v8::internal::RUNTIME_FUNCTION(), v8::internal::MacroAssembler::SafepointRegisterStackIndex(), set_code(), v8::internal::Deoptimizer::SetPlatformCompiledStubRegisters(), v8::internal::MacroAssembler::StoreToSafepointRegisterSlot(), ToAllocationIndex(), WRegFromCode(), v8::internal::WriteInt32ToHeapNumberStub::WriteInt32ToHeapNumberStub(), and XRegFromCode().
|
inline |
Definition at line 90 of file assembler-ia32.h.
References code_, DCHECK, and is_valid().
|
inline |
Definition at line 135 of file assembler-mips.h.
References code_, DCHECK, and is_valid().
|
inline |
Definition at line 124 of file assembler-mips64.h.
References code_, DCHECK, and is_valid().
|
inline |
Definition at line 118 of file assembler-x64.h.
References code_, DCHECK, and is_valid().
|
inline |
Definition at line 90 of file assembler-x87.h.
References code_, DCHECK, and is_valid().
|
inlinestatic |
Definition at line 95 of file assembler-arm64.h.
References code(), v8::internal::CPURegister::Create(), v8::internal::CPURegister::kRegister, Register(), and size.
Referenced by from_code(), WRegFromCode(), and XRegFromCode().
Definition at line 131 of file assembler-arm.h.
References code().
Referenced by v8::internal::RecordWriteStub::address(), v8::internal::DoubleToIStub::destination(), v8::internal::NameDictionaryLookupStub::dictionary(), FromAllocationIndex(), v8::internal::NameDictionaryLookupStub::index(), v8::internal::RecordWriteStub::object(), v8::internal::NameDictionaryLookupStub::result(), v8::internal::WriteInt32ToHeapNumberStub::scratch(), v8::internal::WriteInt32ToHeapNumberStub::sign(), v8::internal::DoubleToIStub::source(), v8::internal::WriteInt32ToHeapNumberStub::the_heap_number(), v8::internal::WriteInt32ToHeapNumberStub::the_int(), ToAllocationIndex(), and v8::internal::RecordWriteStub::value().
Definition at line 213 of file assembler-arm64.h.
References code(), Create(), and v8::internal::kXRegSizeInBits.
Definition at line 80 of file assembler-ia32.h.
References code(), DCHECK, and kNumRegisters.
Definition at line 128 of file assembler-mips.h.
References code().
Definition at line 117 of file assembler-mips64.h.
References code().
Definition at line 110 of file assembler-x64.h.
References code().
Definition at line 80 of file assembler-x87.h.
References code(), DCHECK, and kNumRegisters.
Definition at line 107 of file assembler-arm.h.
References DCHECK, from_code(), and kMaxNumAllocatableRegisters.
Referenced by v8::internal::RecordWriteStub::RegisterAllocation::GetRegThatIsNotEcxOr(), v8::internal::RecordWriteStub::RegisterAllocation::GetRegThatIsNotRcxOr(), v8::internal::compiler::InstructionOperandConverter::ToRegister(), and v8::internal::LCodeGen::ToRegister().
Definition at line 100 of file assembler-mips.h.
References DCHECK, from_code(), kCpRegister, and kMaxNumAllocatableRegisters.
Definition at line 89 of file assembler-mips64.h.
References DCHECK, from_code(), kCpRegister, and kMaxNumAllocatableRegisters.
Definition at line 86 of file assembler-x64.h.
References DCHECK, kMaxNumAllocatableRegisters, and kRegisterCodeByAllocationIndex.
|
inlinestatic |
Definition at line 171 of file assembler-arm64.h.
References DCHECK, from_code(), kAllocatableContext, kAllocatableLowRangeEnd, kAllocatableRangeGapSize, and NumAllocatableRegisters().
|
inline |
Definition at line 128 of file assembler-x64.h.
References code_.
Referenced by v8::internal::MacroAssembler::CallSize(), v8::internal::Assembler::emit_optional_rex_32(), v8::internal::Assembler::emit_rex_32(), and v8::internal::Assembler::emit_rex_64().
Definition at line 137 of file assembler-arm.h.
References code_.
Referenced by v8::internal::LCodeGen::BuildSeqStringOperand(), v8::internal::MacroAssembler::CmovX(), v8::internal::LCodeGen::DoDeferredInstanceOfKnownGlobal(), v8::internal::LCodeGen::DoDeferredMathAbsTagged(), v8::internal::LCodeGen::DoDeferredMathAbsTaggedHeapNumber(), v8::internal::LCodeGen::DoDeferredNumberTagIU(), v8::internal::LCodeGen::DoDeferredTaggedToI(), v8::internal::LCodeGen::EmitClassOfTest(), v8::internal::LCodeGen::EmitIsConstructCall(), v8::internal::LCodeGen::EmitVectorLoadICRegisters(), v8::internal::RecordWriteStub::RegisterAllocation::GetRegThatIsNotEcxOr(), v8::internal::RecordWriteStub::RegisterAllocation::GetRegThatIsNotRcxOr(), v8::internal::CodeStubDescriptor::IsEnvironmentParameterCountRegister(), v8::internal::MacroAssembler::Move(), v8::internal::MacroAssembler::Pop(), v8::internal::MacroAssembler::Push(), v8::internal::RecordWriteStub::RegisterAllocation::RegisterAllocation(), v8::internal::RecordWriteStub::RegisterAllocation::Restore(), v8::internal::RecordWriteStub::RegisterAllocation::RestoreCallerSaveRegisters(), v8::internal::RecordWriteStub::RegisterAllocation::Save(), v8::internal::RecordWriteStub::RegisterAllocation::SaveCallerSaveRegisters(), v8::internal::StringCharCodeAtGenerator::StringCharCodeAtGenerator(), and v8::internal::StringCharFromCodeGenerator::StringCharFromCodeGenerator().
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 136 of file assembler-arm.h.
References code_, and kNumRegisters.
Referenced by bit(), v8::internal::CodeStubGraphBuilderBase::BuildGraph(), code(), v8::internal::Deoptimizer::DoComputeCompiledStubFrame(), v8::internal::DoGenerateCode(), set_code(), and v8::internal::CodeStubDescriptor::SetMissHandler().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 164 of file assembler-arm64.h.
References kAllocatableContext, kAllocatableHighRangeBegin, kAllocatableHighRangeEnd, kAllocatableLowRangeEnd, and v8::internal::CPURegister::reg_code.
Referenced by ToAllocationIndex().
|
inline |
Definition at line 119 of file assembler-arm64.h.
References DCHECK, v8::internal::CPURegister::IsNone(), v8::internal::CPURegister::IsRegister(), and v8::internal::CPURegister::IsValidRegister().
Referenced by v8::internal::Operand::IsExtendedRegister(), v8::internal::Operand::IsShiftedRegister(), and v8::internal::Operand::Operand().
|
inline |
Definition at line 133 of file assembler-x64.h.
References code_.
|
inlinestatic |
Definition at line 53 of file assembler-arm-inl.h.
References kMaxNumAllocatableRegisters.
Referenced by AllocationIndexToString(), FromAllocationIndex(), v8::internal::RecordWriteStub::RegisterAllocation::GetRegThatIsNotEcxOr(), v8::internal::RecordWriteStub::RegisterAllocation::GetRegThatIsNotRcxOr(), and ToAllocationIndex().
|
inlinestatic |
|
inlinestatic |
Definition at line 69 of file assembler-ia32.h.
References kMaxNumAllocatableRegisters.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Definition at line 77 of file assembler-x64.h.
References kMaxNumAllocatableRegisters.
|
inlinestatic |
Definition at line 69 of file assembler-x87.h.
References kMaxNumAllocatableRegisters.
|
inlinestatic |
|
inline |
Definition at line 147 of file assembler-arm.h.
References code(), code_, DCHECK, and is_valid().
Definition at line 102 of file assembler-arm.h.
References code(), DCHECK, and kMaxNumAllocatableRegisters.
Referenced by v8::internal::compiler::OperandGenerator::DefineAsFixed(), v8::internal::compiler::LinkageHelper< LinkageTraits >::regloc(), v8::internal::compiler::OperandGenerator::TempRegister(), v8::internal::compiler::FINAL< kOperandKind, kNumCachedOperands >::TempRegister(), and v8::internal::compiler::OperandGenerator::UseFixed().
Definition at line 201 of file assembler-arm64.h.
References code(), DCHECK, IsAllocatable(), kAllocatableContext, kAllocatableLowRangeEnd, kAllocatableRangeGapSize, and NumAllocatableRegisters().
Definition at line 92 of file assembler-mips.h.
References DCHECK, from_code(), kCpRegister, and kMaxNumAllocatableRegisters.
Definition at line 81 of file assembler-mips64.h.
References DCHECK, from_code(), kCpRegister, and kMaxNumAllocatableRegisters.
Definition at line 82 of file assembler-x64.h.
References kAllocationIndexByRegisterCode.
|
inlinestatic |
Definition at line 218 of file assembler-arm64-inl.h.
References code(), Create(), DCHECK, v8::internal::kNumberOfRegisters, v8::internal::kSPRegInternalCode, and v8::internal::kWRegSizeInBits.
Referenced by v8::internal::CPURegister::W().
|
inlinestatic |
Definition at line 208 of file assembler-arm64-inl.h.
References code(), Create(), DCHECK, v8::internal::kNumberOfRegisters, v8::internal::kSPRegInternalCode, and v8::internal::kXRegSizeInBits.
Referenced by v8::internal::Assembler::nop(), and v8::internal::CPURegister::X().
int v8::internal::Register::code_ |
Definition at line 153 of file assembler-arm.h.
Referenced by bit(), code(), high_bit(), is(), is_byte_register(), is_valid(), low_bits(), and set_code().
|
static |
Definition at line 152 of file assembler-arm64.h.
Referenced by AllocationIndexToString(), FromAllocationIndex(), IsAllocatable(), and ToAllocationIndex().
|
static |
Definition at line 150 of file assembler-arm64.h.
Referenced by AllocationIndexToString(), and IsAllocatable().
|
static |
Definition at line 151 of file assembler-arm64.h.
Referenced by AllocationIndexToString(), and IsAllocatable().
|
static |
Definition at line 148 of file assembler-arm64.h.
Referenced by AllocationIndexToString().
|
static |
Definition at line 149 of file assembler-arm64.h.
Referenced by AllocationIndexToString(), FromAllocationIndex(), IsAllocatable(), and ToAllocationIndex().
|
static |
Definition at line 155 of file assembler-arm64.h.
Referenced by FromAllocationIndex(), and ToAllocationIndex().
|
staticprivate |
Definition at line 143 of file assembler-x64.h.
Referenced by ToAllocationIndex().
|
static |
Definition at line 78 of file assembler-mips.h.
Referenced by FromAllocationIndex(), and ToAllocationIndex().
|
static |
Definition at line 96 of file assembler-arm.h.
Referenced by AllocationIndexToString(), FromAllocationIndex(), NumAllocatableRegisters(), v8::internal::LOperand::PrintTo(), and ToAllocationIndex().
|
static |
Definition at line 95 of file assembler-arm.h.
Referenced by v8::internal::Deoptimizer::FillInputFrame(), v8::internal::FrameDescription::FrameDescription(), from_code(), is_valid(), and NumRegisters().
|
staticprivate |
Definition at line 142 of file assembler-x64.h.
Referenced by FromAllocationIndex().
|
static |
Definition at line 98 of file assembler-arm.h.