V8 Project
|
#include <assembler-arm64.h>
Public Types | |
enum | RegisterType { kInvalid = 0 , kRegister , kFPRegister , kNoRegister } |
Public Member Functions | |
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 |
Static Public Member Functions | |
static CPURegister | Create (unsigned code, unsigned size, RegisterType type) |
Public Attributes | |
unsigned | reg_code |
unsigned | reg_size |
RegisterType | reg_type |
Definition at line 41 of file assembler-arm64.h.
Enumerator | |
---|---|
kInvalid | |
kRegister | |
kFPRegister | |
kNoRegister |
Definition at line 42 of file assembler-arm64.h.
|
inline |
Definition at line 122 of file assembler-arm64-inl.h.
References DCHECK, IsValidOrNone(), reg_code, and reg_type.
Referenced by Is().
|
inline |
Definition at line 51 of file assembler-arm64-inl.h.
References DCHECK, IsValid(), v8::internal::kBitsPerByte, and reg_code.
Referenced by v8::internal::CPURegList::IncludesAliasOf(), and v8::internal::FPRegister::IsAllocatable().
|
inline |
Definition at line 39 of file assembler-arm64-inl.h.
References DCHECK, IsValid(), and reg_code.
Referenced by v8::internal::CPURegList::Combine(), v8::internal::FPRegister::Create(), Create(), v8::internal::FPRegister::DRegFromCode(), v8::internal::FPRegister::from_code(), v8::internal::Assembler::Ra(), v8::internal::Assembler::Rd(), v8::internal::CPURegList::Remove(), v8::internal::Assembler::Rm(), v8::internal::Assembler::Rn(), v8::internal::Assembler::Rt(), v8::internal::Assembler::Rt2(), v8::internal::FPRegister::SRegFromCode(), and v8::internal::FPRegister::ToAllocationIndex().
|
inlinestatic |
Definition at line 51 of file assembler-arm64.h.
References code(), size, and type().
Referenced by v8::internal::CPURegList::Combine(), v8::internal::Register::Create(), v8::internal::FPRegister::Create(), and v8::internal::CPURegList::Remove().
|
inline |
Definition at line 258 of file assembler-arm64-inl.h.
References DCHECK, v8::internal::FPRegister::DRegFromCode(), IsValidFPRegister(), and reg_code.
Referenced by v8::internal::UseScratchRegisterScope::AcquireD().
|
inline |
Definition at line 116 of file assembler-arm64-inl.h.
References Aliases(), DCHECK, IsValidOrNone(), and reg_size.
Referenced by v8::internal::LCodeGen::CallKnownFunction(), v8::internal::LCodeGen::DoDeferredInstanceOfKnownGlobal(), v8::internal::MacroAssembler::Fmov(), is(), v8::internal::Operand::IsImmediate(), v8::internal::MemOperand::IsImmediateOffset(), v8::internal::MemOperand::IsRegisterOffset(), v8::internal::BASE_EMBEDDED< Visitor >::IsScratchRegister(), and v8::internal::MacroAssembler::Mov().
|
inline |
Definition at line 85 of file assembler-arm64.h.
References Is().
|
inline |
Definition at line 70 of file assembler-arm64-inl.h.
References DCHECK, IsValid(), and reg_size.
Referenced by v8::internal::MacroAssembler::Fmov(), v8::internal::Operand::Operand(), v8::internal::MacroAssembler::SmiUntagToFloat(), and v8::internal::MacroAssembler::TryRepresentDoubleAsInt32().
|
inline |
Definition at line 76 of file assembler-arm64-inl.h.
References DCHECK, IsValid(), and reg_size.
Referenced by v8::internal::Assembler::AppropriateZeroRegFor(), v8::internal::MacroAssembler::CmovX(), v8::internal::MacroAssembler::CzeroX(), v8::internal::LCodeGen::DeoptimizeIfNegative(), v8::internal::MacroAssembler::Fmov(), v8::internal::Assembler::FPType(), v8::internal::MacroAssembler::Ldr(), v8::internal::Assembler::LoadLiteralOpFor(), v8::internal::Assembler::LoadOpFor(), v8::internal::Assembler::LoadPairNonTemporalOpFor(), v8::internal::Assembler::LoadPairOpFor(), v8::internal::MemOperand::MemOperand(), v8::internal::MacroAssembler::Mov(), v8::internal::Operand::Operand(), v8::internal::RecordWriteStub::RecordWriteStub(), v8::internal::Assembler::SF(), v8::internal::MacroAssembler::SmiTag(), v8::internal::MacroAssembler::SmiUntag(), v8::internal::MacroAssembler::SmiUntagToDouble(), v8::internal::MacroAssembler::SmiUntagToFloat(), v8::internal::Assembler::StoreOpFor(), v8::internal::Assembler::StorePairNonTemporalOpFor(), v8::internal::Assembler::StorePairOpFor(), v8::internal::Operand::ToExtendedRegister(), v8::internal::MacroAssembler::TryRepresentDoubleAsInt64(), v8::internal::Operand::UntagSmi(), and v8::internal::Operand::UntagSmiAndScale().
|
inline |
Definition at line 86 of file assembler-arm64.h.
References IsValid().
|
inline |
Definition at line 133 of file assembler-arm64-inl.h.
References kFPRegister, and reg_type.
Referenced by v8::internal::FPRegister::IsValid(), IsValidFPRegister(), v8::internal::Assembler::LoadLiteralOpFor(), v8::internal::Assembler::LoadOpFor(), v8::internal::Assembler::LoadPairNonTemporalOpFor(), v8::internal::Assembler::LoadPairOpFor(), v8::internal::Assembler::StoreOpFor(), v8::internal::Assembler::StorePairNonTemporalOpFor(), and v8::internal::Assembler::StorePairOpFor().
|
inline |
Definition at line 107 of file assembler-arm64-inl.h.
References DCHECK, kNoRegister, reg_code, reg_size, and reg_type.
Referenced by v8::internal::LCodeGen::CallKnownFunction(), v8::internal::CPURegList::IncludesAliasOf(), IsValid(), v8::internal::Register::IsValid(), v8::internal::FPRegister::IsValid(), IsValidOrNone(), and v8::internal::CPURegList::Remove().
|
inline |
Definition at line 128 of file assembler-arm64-inl.h.
References kRegister, and reg_type.
Referenced by IsSP(), v8::internal::Register::IsValid(), IsValidRegister(), IsZero(), v8::internal::Assembler::LoadLiteralOpFor(), v8::internal::Assembler::LoadOpFor(), v8::internal::Assembler::LoadPairNonTemporalOpFor(), v8::internal::Assembler::LoadPairOpFor(), v8::internal::Assembler::StoreOpFor(), v8::internal::Assembler::StorePairNonTemporalOpFor(), and v8::internal::Assembler::StorePairOpFor().
|
inline |
|
inline |
Definition at line 154 of file assembler-arm64-inl.h.
References DCHECK, IsRegister(), IsValid(), v8::internal::kSPRegInternalCode, and reg_code.
Referenced by v8::internal::MacroAssembler::CmovX(), v8::internal::MacroAssembler::CzeroX(), v8::internal::MemOperand::MemOperand(), and v8::internal::Operand::Operand().
|
inline |
Definition at line 82 of file assembler-arm64-inl.h.
References DCHECK, IsNone(), IsValidFPRegister(), and IsValidRegister().
Referenced by Bit(), code(), Is32Bits(), Is64Bits(), is_valid(), IsSP(), IsValidOrNone(), IsZero(), v8::internal::Assembler::LoadOpFor(), SizeInBits(), SizeInBytes(), and v8::internal::Assembler::StoreOpFor().
|
inline |
Definition at line 100 of file assembler-arm64-inl.h.
References IsFPRegister(), v8::internal::kDRegSizeInBits, v8::internal::kNumberOfFPRegisters, v8::internal::kSRegSizeInBits, reg_code, and reg_size.
Referenced by D(), IsValid(), v8::internal::FPRegister::IsValid(), and S().
|
inline |
Definition at line 143 of file assembler-arm64-inl.h.
References IsNone(), and IsValid().
Referenced by Aliases(), v8::internal::FPRegister::FPRegister(), Is(), v8::internal::Register::Register(), and type().
|
inline |
Definition at line 93 of file assembler-arm64-inl.h.
References IsRegister(), v8::internal::kNumberOfRegisters, v8::internal::kSPRegInternalCode, v8::internal::kWRegSizeInBits, v8::internal::kXRegSizeInBits, reg_code, and reg_size.
Referenced by IsValid(), v8::internal::Register::IsValid(), W(), and X().
|
inline |
Definition at line 148 of file assembler-arm64-inl.h.
References DCHECK, IsRegister(), IsValid(), v8::internal::kZeroRegCode, and reg_code.
Referenced by v8::internal::MacroAssembler::Adc(), v8::internal::MacroAssembler::Adcs(), v8::internal::MacroAssembler::And(), v8::internal::MacroAssembler::Ands(), v8::internal::MacroAssembler::Asr(), v8::internal::MacroAssembler::Bfi(), v8::internal::MacroAssembler::Bfxil(), v8::internal::MacroAssembler::Bic(), v8::internal::MacroAssembler::Bics(), v8::internal::MacroAssembler::Blr(), v8::internal::MacroAssembler::Br(), v8::internal::MacroAssembler::Cinc(), v8::internal::MacroAssembler::Cinv(), v8::internal::MacroAssembler::Cls(), v8::internal::MacroAssembler::Clz(), v8::internal::MacroAssembler::Cneg(), v8::internal::MacroAssembler::Cset(), v8::internal::MacroAssembler::Csetm(), v8::internal::MacroAssembler::Csinc(), v8::internal::MacroAssembler::Csinv(), v8::internal::MacroAssembler::Csneg(), v8::internal::MacroAssembler::Eon(), v8::internal::MacroAssembler::Eor(), v8::internal::MacroAssembler::Extr(), v8::internal::MacroAssembler::Fcvtas(), v8::internal::MacroAssembler::Fcvtau(), v8::internal::MacroAssembler::Fcvtms(), v8::internal::MacroAssembler::Fcvtmu(), v8::internal::MacroAssembler::Fcvtns(), v8::internal::MacroAssembler::Fcvtnu(), v8::internal::MacroAssembler::Fcvtzs(), v8::internal::MacroAssembler::Fcvtzu(), v8::internal::MacroAssembler::Fmov(), v8::internal::Operand::IsZero(), v8::internal::MacroAssembler::Lsl(), v8::internal::MacroAssembler::Lsr(), v8::internal::MacroAssembler::Madd(), v8::internal::MemOperand::MemOperand(), v8::internal::MacroAssembler::Mneg(), v8::internal::MacroAssembler::Mov(), v8::internal::MacroAssembler::Movk(), v8::internal::MacroAssembler::Mrs(), v8::internal::MacroAssembler::Msub(), v8::internal::MacroAssembler::Mul(), v8::internal::MacroAssembler::Mvn(), v8::internal::MacroAssembler::Neg(), v8::internal::MacroAssembler::Ngc(), v8::internal::MacroAssembler::Ngcs(), v8::internal::MacroAssembler::Orn(), v8::internal::MacroAssembler::Orr(), v8::internal::MacroAssembler::Rbit(), v8::internal::Assembler::RdSP(), v8::internal::MacroAssembler::Ret(), v8::internal::MacroAssembler::Rev(), v8::internal::MacroAssembler::Rev16(), v8::internal::MacroAssembler::Rev32(), v8::internal::Assembler::RnSP(), v8::internal::MacroAssembler::Ror(), v8::internal::MacroAssembler::Sbc(), v8::internal::MacroAssembler::Sbcs(), v8::internal::MacroAssembler::Sbfiz(), v8::internal::MacroAssembler::Sbfx(), v8::internal::MacroAssembler::Sdiv(), v8::internal::MacroAssembler::Smaddl(), v8::internal::MacroAssembler::Smsubl(), v8::internal::MacroAssembler::Smulh(), v8::internal::MacroAssembler::Smull(), v8::internal::MacroAssembler::Sxtb(), v8::internal::MacroAssembler::Sxth(), v8::internal::MacroAssembler::Sxtw(), v8::internal::MacroAssembler::Ubfiz(), v8::internal::MacroAssembler::Ubfx(), v8::internal::MacroAssembler::Udiv(), v8::internal::MacroAssembler::Umaddl(), v8::internal::MacroAssembler::Umsubl(), v8::internal::MacroAssembler::Uxtb(), v8::internal::MacroAssembler::Uxth(), and v8::internal::MacroAssembler::Uxtw().
|
inline |
Definition at line 252 of file assembler-arm64-inl.h.
References DCHECK, IsValidFPRegister(), reg_code, and v8::internal::FPRegister::SRegFromCode().
Referenced by v8::internal::UseScratchRegisterScope::AcquireS().
|
inline |
Definition at line 57 of file assembler-arm64-inl.h.
References DCHECK, IsValid(), and reg_size.
Referenced by v8::internal::Assembler::asr(), v8::internal::Assembler::bfi(), v8::internal::Assembler::bfxil(), v8::internal::CPURegList::Combine(), v8::internal::Assembler::lsl(), v8::internal::Assembler::lsr(), v8::internal::Assembler::sbfiz(), v8::internal::Assembler::sbfx(), SizeInBytes(), v8::internal::MacroAssembler::TestAndBranchIfAllClear(), v8::internal::MacroAssembler::TestAndBranchIfAnySet(), v8::internal::Assembler::ubfiz(), and v8::internal::Assembler::ubfx().
|
inline |
Definition at line 63 of file assembler-arm64-inl.h.
References DCHECK, IsValid(), reg_size, and SizeInBits().
Referenced by v8::internal::MacroAssembler::PushPopQueue::Queue().
|
inline |
Definition at line 45 of file assembler-arm64-inl.h.
References DCHECK, IsValidOrNone(), and reg_type.
Referenced by v8::internal::CPURegList::Combine(), Create(), v8::internal::CPURegList::IncludesAliasOf(), and v8::internal::CPURegList::Remove().
|
inline |
Definition at line 240 of file assembler-arm64-inl.h.
References DCHECK, IsValidRegister(), reg_code, and v8::internal::Register::WRegFromCode().
Referenced by v8::internal::UseScratchRegisterScope::AcquireW(), v8::internal::compiler::FINAL< kOperandKind, kNumCachedOperands >::InputRegister32(), v8::internal::MacroAssembler::IsObjectJSStringType(), v8::internal::compiler::FINAL< kOperandKind, kNumCachedOperands >::OutputRegister32(), v8::internal::MacroAssembler::SmiTagAndPush(), and v8::internal::LCodeGen::ToRegister32().
|
inline |
Definition at line 246 of file assembler-arm64-inl.h.
References DCHECK, IsValidRegister(), reg_code, and v8::internal::Register::XRegFromCode().
Referenced by v8::internal::UseScratchRegisterScope::AcquireX().
unsigned v8::internal::CPURegister::reg_code |
Definition at line 88 of file assembler-arm64.h.
Referenced by Aliases(), Bit(), code(), D(), v8::internal::FPRegister::FPRegister(), v8::internal::Register::IsAllocatable(), IsNone(), IsSP(), IsValidFPRegister(), IsValidRegister(), IsZero(), v8::internal::Register::Register(), S(), W(), and X().
unsigned v8::internal::CPURegister::reg_size |
Definition at line 89 of file assembler-arm64.h.
Referenced by v8::internal::FPRegister::FPRegister(), Is(), Is32Bits(), Is64Bits(), IsNone(), IsSameSizeAndType(), IsValidFPRegister(), IsValidRegister(), v8::internal::Register::Register(), SizeInBits(), and SizeInBytes().
RegisterType v8::internal::CPURegister::reg_type |
Definition at line 90 of file assembler-arm64.h.
Referenced by Aliases(), v8::internal::FPRegister::FPRegister(), IsFPRegister(), IsNone(), IsRegister(), IsSameSizeAndType(), v8::internal::Register::Register(), and type().