v8
3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
|
#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 | 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) |
Data Fields | |
unsigned | reg_code |
unsigned | reg_size |
RegisterType | reg_type |
Definition at line 64 of file assembler-arm64.h.
enum RegisterType |
Enumerator | |
---|---|
kInvalid | |
kRegister | |
kFPRegister | |
kNoRegister |
Definition at line 65 of file assembler-arm64.h.
|
inline |
Definition at line 68 of file assembler-arm64-inl.h.
References ASSERT, CPURegister::IsValid(), v8::internal::kBitsPerByte, and CPURegister::reg_code.
Referenced by CPURegList::IncludesAliasOf(), FPRegister::IsAllocatable(), and TEST().
|
inline |
Definition at line 56 of file assembler-arm64-inl.h.
References ASSERT, CPURegister::IsValid(), and CPURegister::reg_code.
Referenced by CPURegList::Combine(), CPURegister::Create(), EqualFP32(), EqualFP64(), Assembler::Ra(), Assembler::Rd(), CPURegList::Remove(), Assembler::Rm(), Assembler::Rn(), Assembler::Rt(), Assembler::Rt2(), and FPRegister::ToAllocationIndex().
|
inlinestatic |
Definition at line 74 of file assembler-arm64.h.
References CPURegister::code(), and v8::internal::size.
Referenced by CPURegList::Combine(), Register::Create(), FPRegister::Create(), and CPURegList::Remove().
|
inline |
Definition at line 264 of file assembler-arm64-inl.h.
References ASSERT, FPRegister::DRegFromCode(), CPURegister::IsValidFPRegister(), and CPURegister::reg_code.
Referenced by UseScratchRegisterScope::AcquireD().
|
inline |
Definition at line 133 of file assembler-arm64-inl.h.
References ASSERT, CPURegister::IsValidOrNone(), CPURegister::reg_code, CPURegister::reg_size, and CPURegister::reg_type.
Referenced by Clobber(), MacroAssembler::Fmov(), CPURegister::is(), Operand::IsImmediate(), MemOperand::IsImmediateOffset(), MemOperand::IsRegisterOffset(), MacroAssembler::Mov(), and TEST().
|
inline |
Definition at line 107 of file assembler-arm64.h.
References CPURegister::Is().
|
inline |
Definition at line 87 of file assembler-arm64-inl.h.
References ASSERT, CPURegister::IsValid(), and CPURegister::reg_size.
Referenced by Equal32(), EqualFP32(), MacroAssembler::Fmov(), Operand::Operand(), MacroAssembler::SmiUntagToFloat(), and MacroAssembler::TryConvertDoubleToInt32().
|
inline |
Definition at line 93 of file assembler-arm64-inl.h.
References ASSERT, CPURegister::IsValid(), and CPURegister::reg_size.
Referenced by Assembler::AppropriateZeroRegFor(), MacroAssembler::CmovX(), MacroAssembler::CzeroX(), Equal64(), EqualFP64(), MacroAssembler::Fmov(), Assembler::FPType(), Assembler::LoadOpFor(), Assembler::LoadPairNonTemporalOpFor(), Assembler::LoadPairOpFor(), MemOperand::MemOperand(), MacroAssembler::Mov(), Operand::Operand(), Assembler::SF(), MacroAssembler::SmiTag(), MacroAssembler::SmiUntag(), MacroAssembler::SmiUntagToDouble(), MacroAssembler::SmiUntagToFloat(), Assembler::StoreOpFor(), Assembler::StorePairNonTemporalOpFor(), Assembler::StorePairOpFor(), Operand::ToExtendedRegister(), MacroAssembler::TryConvertDoubleToInt64(), Operand::UntagSmi(), and Operand::UntagSmiAndScale().
|
inline |
Definition at line 108 of file assembler-arm64.h.
References CPURegister::IsValid().
|
inline |
Definition at line 145 of file assembler-arm64-inl.h.
References CPURegister::kFPRegister, and CPURegister::reg_type.
Referenced by FPRegister::IsValid(), CPURegister::IsValidFPRegister(), Assembler::LoadOpFor(), Assembler::LoadPairNonTemporalOpFor(), Assembler::LoadPairOpFor(), Assembler::StoreOpFor(), Assembler::StorePairNonTemporalOpFor(), and Assembler::StorePairOpFor().
|
inline |
Definition at line 124 of file assembler-arm64-inl.h.
References ASSERT, CPURegister::kNoRegister, CPURegister::reg_code, CPURegister::reg_size, and CPURegister::reg_type.
Referenced by CPURegList::IncludesAliasOf(), CPURegister::IsValid(), Register::IsValid(), FPRegister::IsValid(), CPURegister::IsValidOrNone(), CPURegList::Remove(), and TEST().
|
inline |
Definition at line 140 of file assembler-arm64-inl.h.
References CPURegister::kRegister, and CPURegister::reg_type.
Referenced by CPURegister::IsSP(), Register::IsValid(), CPURegister::IsValidRegister(), CPURegister::IsZero(), Assembler::LoadOpFor(), Assembler::LoadPairNonTemporalOpFor(), Assembler::LoadPairOpFor(), Assembler::StoreOpFor(), Assembler::StorePairNonTemporalOpFor(), and Assembler::StorePairOpFor().
|
inline |
Definition at line 150 of file assembler-arm64-inl.h.
References CPURegister::reg_size, and CPURegister::reg_type.
|
inline |
Definition at line 166 of file assembler-arm64-inl.h.
References ASSERT, CPURegister::IsRegister(), CPURegister::IsValid(), v8::internal::kSPRegInternalCode, and CPURegister::reg_code.
Referenced by MacroAssembler::CmovX(), MacroAssembler::CzeroX(), MemOperand::MemOperand(), and Operand::Operand().
|
inline |
Definition at line 99 of file assembler-arm64-inl.h.
References ASSERT, CPURegister::IsNone(), CPURegister::IsValidFPRegister(), and CPURegister::IsValidRegister().
Referenced by CPURegister::Bit(), CPURegister::code(), CPURegister::Is32Bits(), CPURegister::Is64Bits(), CPURegister::is_valid(), CPURegister::IsSP(), CPURegister::IsValidOrNone(), CPURegister::IsZero(), Assembler::LoadOpFor(), CPURegister::SizeInBits(), CPURegister::SizeInBytes(), and Assembler::StoreOpFor().
|
inline |
Definition at line 117 of file assembler-arm64-inl.h.
References CPURegister::IsFPRegister(), v8::internal::kDRegSizeInBits, v8::internal::kNumberOfFPRegisters, v8::internal::kSRegSizeInBits, CPURegister::reg_code, and CPURegister::reg_size.
Referenced by CPURegister::D(), CPURegister::IsValid(), FPRegister::IsValid(), and CPURegister::S().
|
inline |
Definition at line 155 of file assembler-arm64-inl.h.
References CPURegister::IsNone(), and CPURegister::IsValid().
Referenced by FPRegister::FPRegister(), CPURegister::Is(), Register::Register(), and CPURegister::type().
|
inline |
Definition at line 110 of file assembler-arm64-inl.h.
References CPURegister::IsRegister(), v8::internal::kNumberOfRegisters, v8::internal::kSPRegInternalCode, v8::internal::kWRegSizeInBits, v8::internal::kXRegSizeInBits, CPURegister::reg_code, and CPURegister::reg_size.
Referenced by CPURegister::IsValid(), Register::IsValid(), CPURegister::W(), and CPURegister::X().
|
inline |
Definition at line 160 of file assembler-arm64-inl.h.
References ASSERT, CPURegister::IsRegister(), CPURegister::IsValid(), v8::internal::kZeroRegCode, and CPURegister::reg_code.
Referenced by MacroAssembler::Adc(), MacroAssembler::Adcs(), MacroAssembler::Adr(), MacroAssembler::And(), MacroAssembler::Ands(), MacroAssembler::Asr(), MacroAssembler::Bfi(), MacroAssembler::Bfxil(), MacroAssembler::Bic(), MacroAssembler::Bics(), MacroAssembler::Blr(), MacroAssembler::Br(), MacroAssembler::Cinc(), MacroAssembler::Cinv(), Clobber(), MacroAssembler::Cls(), MacroAssembler::Clz(), MacroAssembler::Cneg(), MacroAssembler::Cset(), MacroAssembler::Csetm(), MacroAssembler::Csinc(), MacroAssembler::Csinv(), MacroAssembler::Csneg(), MacroAssembler::Eon(), MacroAssembler::Eor(), MacroAssembler::Extr(), MacroAssembler::Fcvtas(), MacroAssembler::Fcvtau(), MacroAssembler::Fcvtms(), MacroAssembler::Fcvtmu(), MacroAssembler::Fcvtns(), MacroAssembler::Fcvtnu(), MacroAssembler::Fcvtzs(), MacroAssembler::Fcvtzu(), MacroAssembler::Fmov(), Operand::IsZero(), MacroAssembler::Ldpsw(), MacroAssembler::Ldr(), MacroAssembler::Lsl(), MacroAssembler::Lsr(), MacroAssembler::Madd(), MemOperand::MemOperand(), MacroAssembler::Mneg(), MacroAssembler::Mov(), MacroAssembler::Movk(), MacroAssembler::Mrs(), MacroAssembler::Msr(), MacroAssembler::Msub(), MacroAssembler::Mul(), MacroAssembler::Mvn(), MacroAssembler::Neg(), MacroAssembler::Ngc(), MacroAssembler::Ngcs(), MacroAssembler::Orn(), MacroAssembler::Orr(), MacroAssembler::Rbit(), Assembler::RdSP(), MacroAssembler::Ret(), MacroAssembler::Rev(), MacroAssembler::Rev16(), MacroAssembler::Rev32(), Assembler::RnSP(), MacroAssembler::Ror(), MacroAssembler::Sbc(), MacroAssembler::Sbcs(), MacroAssembler::Sbfiz(), MacroAssembler::Sbfx(), MacroAssembler::Sdiv(), MacroAssembler::Smaddl(), MacroAssembler::Smsubl(), MacroAssembler::Smulh(), MacroAssembler::Smull(), MacroAssembler::Sxtb(), MacroAssembler::Sxth(), MacroAssembler::Sxtw(), MacroAssembler::Ubfiz(), MacroAssembler::Ubfx(), MacroAssembler::Udiv(), MacroAssembler::Umaddl(), MacroAssembler::Umsubl(), MacroAssembler::Uxtb(), MacroAssembler::Uxth(), and MacroAssembler::Uxtw().
|
inline |
Definition at line 258 of file assembler-arm64-inl.h.
References ASSERT, CPURegister::IsValidFPRegister(), CPURegister::reg_code, and FPRegister::SRegFromCode().
Referenced by UseScratchRegisterScope::AcquireS().
|
inline |
Definition at line 74 of file assembler-arm64-inl.h.
References ASSERT, CPURegister::IsValid(), and CPURegister::reg_size.
Referenced by Assembler::asr(), Assembler::bfi(), Assembler::bfxil(), CPURegList::Combine(), Assembler::lsl(), Assembler::lsr(), Assembler::sbfiz(), Assembler::sbfx(), CPURegister::SizeInBytes(), MacroAssembler::TestAndBranchIfAllClear(), MacroAssembler::TestAndBranchIfAnySet(), Assembler::ubfiz(), and Assembler::ubfx().
|
inline |
Definition at line 80 of file assembler-arm64-inl.h.
References ASSERT, CPURegister::IsValid(), CPURegister::reg_size, and CPURegister::SizeInBits().
Referenced by MacroAssembler::PushPopQueue::Queue().
|
inline |
Definition at line 62 of file assembler-arm64-inl.h.
References ASSERT, CPURegister::IsValidOrNone(), and CPURegister::reg_type.
Referenced by CPURegList::Combine(), CPURegList::IncludesAliasOf(), and CPURegList::Remove().
|
inline |
Definition at line 246 of file assembler-arm64-inl.h.
References ASSERT, CPURegister::IsValidRegister(), CPURegister::reg_code, and Register::WRegFromCode().
Referenced by UseScratchRegisterScope::AcquireW(), RegisterDump::Dump(), MacroAssembler::IsObjectJSStringType(), and LCodeGen::ToRegister32().
|
inline |
Definition at line 252 of file assembler-arm64-inl.h.
References ASSERT, CPURegister::IsValidRegister(), CPURegister::reg_code, and Register::XRegFromCode().
Referenced by UseScratchRegisterScope::AcquireX().
unsigned reg_code |
Definition at line 110 of file assembler-arm64.h.
Referenced by CPURegister::Bit(), CPURegister::code(), CPURegister::D(), FPRegister::FPRegister(), CPURegister::Is(), Register::IsAllocatable(), CPURegister::IsNone(), CPURegister::IsSP(), CPURegister::IsValidFPRegister(), CPURegister::IsValidRegister(), CPURegister::IsZero(), Register::Register(), CPURegister::S(), CPURegister::W(), and CPURegister::X().
unsigned reg_size |
Definition at line 111 of file assembler-arm64.h.
Referenced by FPRegister::FPRegister(), CPURegister::Is(), CPURegister::Is32Bits(), CPURegister::Is64Bits(), CPURegister::IsNone(), CPURegister::IsSameSizeAndType(), CPURegister::IsValidFPRegister(), CPURegister::IsValidRegister(), Register::Register(), CPURegister::SizeInBits(), and CPURegister::SizeInBytes().
RegisterType reg_type |
Definition at line 112 of file assembler-arm64.h.
Referenced by FPRegister::FPRegister(), CPURegister::Is(), CPURegister::IsFPRegister(), CPURegister::IsNone(), CPURegister::IsRegister(), CPURegister::IsSameSizeAndType(), Register::Register(), and CPURegister::type().