V8 Project
v8::internal::FPRegister Struct Reference

#include <assembler-arm64.h>

+ Inheritance diagram for v8::internal::FPRegister:
+ Collaboration diagram for v8::internal::FPRegister:

Public Member Functions

 FPRegister ()
 
 FPRegister (const CPURegister &r)
 
 FPRegister (const FPRegister &r)
 
bool IsValid () const
 
bool IsAllocatable () const
 
- Public Member Functions inherited from v8::internal::CPURegister
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 FPRegister Create (unsigned code, unsigned size)
 
static FPRegister SRegFromCode (unsigned code)
 
static FPRegister DRegFromCode (unsigned code)
 
static int NumAllocatableRegisters ()
 
static int NumAllocatableAliasedRegisters ()
 
static FPRegister FromAllocationIndex (unsigned int index)
 
static const char * AllocationIndexToString (int index)
 
static int ToAllocationIndex (FPRegister reg)
 
static FPRegister from_code (int code)
 
- Static Public Member Functions inherited from v8::internal::CPURegister
static CPURegister Create (unsigned code, unsigned size, RegisterType type)
 

Static Public Attributes

static const int kMaxNumRegisters = kNumberOfFPRegisters
 
static const unsigned kAllocatableLowRangeBegin = 0
 
static const unsigned kAllocatableLowRangeEnd = 14
 
static const unsigned kAllocatableHighRangeBegin = 16
 
static const unsigned kAllocatableHighRangeEnd = 28
 
static const RegList kAllocatableFPRegisters = 0x1fff7fff
 
static const int kAllocatableRangeGapSize
 
static const int kMaxNumAllocatableRegisters
 

Additional Inherited Members

- Public Types inherited from v8::internal::CPURegister
enum  RegisterType { kInvalid = 0 , kRegister , kFPRegister , kNoRegister }
 
- Public Attributes inherited from v8::internal::CPURegister
unsigned reg_code
 
unsigned reg_size
 
RegisterType reg_type
 

Detailed Description

Definition at line 222 of file assembler-arm64.h.

Constructor & Destructor Documentation

◆ FPRegister() [1/3]

v8::internal::FPRegister::FPRegister ( )
inline

Definition at line 228 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().

+ Here is the caller graph for this function:

◆ FPRegister() [2/3]

v8::internal::FPRegister::FPRegister ( const CPURegister r)
inlineexplicit

Definition at line 234 of file assembler-arm64.h.

234  {
235  reg_code = r.reg_code;
236  reg_size = r.reg_size;
237  reg_type = r.reg_type;
239  }
#define DCHECK(condition)
Definition: logging.h:205

References DCHECK, v8::internal::CPURegister::IsValidOrNone(), v8::internal::CPURegister::reg_code, v8::internal::CPURegister::reg_size, and v8::internal::CPURegister::reg_type.

+ Here is the call graph for this function:

◆ FPRegister() [3/3]

v8::internal::FPRegister::FPRegister ( const FPRegister r)
inline

Definition at line 241 of file assembler-arm64.h.

241  { // NOLINT(runtime/explicit)
242  reg_code = r.reg_code;
243  reg_size = r.reg_size;
244  reg_type = r.reg_type;
246  }

References DCHECK, v8::internal::CPURegister::IsValidOrNone(), v8::internal::CPURegister::reg_code, v8::internal::CPURegister::reg_size, and v8::internal::CPURegister::reg_type.

+ Here is the call graph for this function:

Member Function Documentation

◆ AllocationIndexToString()

static const char* v8::internal::FPRegister::AllocationIndexToString ( int  index)
inlinestatic

Definition at line 297 of file assembler-arm64.h.

297  {
298  DCHECK((index >= 0) && (index < NumAllocatableRegisters()));
300  (kAllocatableLowRangeEnd == 14) &&
301  (kAllocatableHighRangeBegin == 16) &&
302  (kAllocatableHighRangeEnd == 28));
303  const char* const names[] = {
304  "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7",
305  "d8", "d9", "d10", "d11", "d12", "d13", "d14",
306  "d16", "d17", "d18", "d19", "d20", "d21", "d22", "d23",
307  "d24", "d25", "d26", "d27", "d28"
308  };
309  return names[index];
310  }
static const unsigned kAllocatableHighRangeBegin
static const unsigned kAllocatableHighRangeEnd
static const unsigned kAllocatableLowRangeBegin
static int NumAllocatableRegisters()
static const unsigned kAllocatableLowRangeEnd

References DCHECK, kAllocatableHighRangeBegin, kAllocatableHighRangeEnd, kAllocatableLowRangeBegin, kAllocatableLowRangeEnd, and NumAllocatableRegisters().

+ Here is the call graph for this function:

◆ Create()

static FPRegister v8::internal::FPRegister::Create ( unsigned  code,
unsigned  size 
)
inlinestatic

Definition at line 223 of file assembler-arm64.h.

223  {
224  return FPRegister(
226  }
enable harmony numeric enable harmony object literal extensions Optimize object size
static CPURegister Create(unsigned code, unsigned size, RegisterType type)

References v8::internal::CPURegister::code(), v8::internal::CPURegister::Create(), FPRegister(), v8::internal::CPURegister::kFPRegister, and size.

Referenced by DRegFromCode(), from_code(), and SRegFromCode().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DRegFromCode()

FPRegister v8::internal::FPRegister::DRegFromCode ( unsigned  code)
inlinestatic

Definition at line 234 of file assembler-arm64-inl.h.

234  {
237 }
const unsigned kDRegSizeInBits
const unsigned kNumberOfFPRegisters
static FPRegister Create(unsigned code, unsigned size)

References v8::internal::CPURegister::code(), Create(), DCHECK, v8::internal::kDRegSizeInBits, and v8::internal::kNumberOfFPRegisters.

Referenced by v8::internal::CPURegister::D().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ from_code()

static FPRegister v8::internal::FPRegister::from_code ( int  code)
inlinestatic

Definition at line 321 of file assembler-arm64.h.

321  {
322  // Always return a D register.
324  }

References v8::internal::CPURegister::code(), Create(), and v8::internal::kDRegSizeInBits.

Referenced by FromAllocationIndex().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FromAllocationIndex()

static FPRegister v8::internal::FPRegister::FromAllocationIndex ( unsigned int  index)
inlinestatic

Definition at line 289 of file assembler-arm64.h.

289  {
290  DCHECK(index < static_cast<unsigned>(NumAllocatableRegisters()));
291 
292  return (index <= kAllocatableLowRangeEnd)
293  ? from_code(index)
295  }
static const int kAllocatableRangeGapSize
static FPRegister from_code(int code)

References DCHECK, from_code(), kAllocatableLowRangeEnd, kAllocatableRangeGapSize, and NumAllocatableRegisters().

+ Here is the call graph for this function:

◆ IsAllocatable()

bool v8::internal::FPRegister::IsAllocatable ( ) const
inline

Definition at line 285 of file assembler-arm64.h.

285  {
286  return (Bit() & kAllocatableFPRegisters) != 0;
287  }
static const RegList kAllocatableFPRegisters

References v8::internal::CPURegister::Bit(), and kAllocatableFPRegisters.

Referenced by ToAllocationIndex().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsValid()

bool v8::internal::FPRegister::IsValid ( ) const
inline

Definition at line 248 of file assembler-arm64.h.

248  {
249  DCHECK(IsFPRegister() || IsNone());
250  return IsValidFPRegister();
251  }

References DCHECK, v8::internal::CPURegister::IsFPRegister(), v8::internal::CPURegister::IsNone(), and v8::internal::CPURegister::IsValidFPRegister().

+ Here is the call graph for this function:

◆ NumAllocatableAliasedRegisters()

static int v8::internal::FPRegister::NumAllocatableAliasedRegisters ( )
inlinestatic

Definition at line 280 of file assembler-arm64.h.

280  {
281  return NumAllocatableRegisters();
282  }

References NumAllocatableRegisters().

+ Here is the call graph for this function:

◆ NumAllocatableRegisters()

static int v8::internal::FPRegister::NumAllocatableRegisters ( )
inlinestatic

Definition at line 277 of file assembler-arm64.h.

277 { return kMaxNumAllocatableRegisters; }
static const int kMaxNumAllocatableRegisters

References kMaxNumAllocatableRegisters.

Referenced by AllocationIndexToString(), FromAllocationIndex(), and NumAllocatableAliasedRegisters().

+ Here is the caller graph for this function:

◆ SRegFromCode()

FPRegister v8::internal::FPRegister::SRegFromCode ( unsigned  code)
inlinestatic

Definition at line 228 of file assembler-arm64-inl.h.

228  {
231 }
const unsigned kSRegSizeInBits

References v8::internal::CPURegister::code(), Create(), DCHECK, v8::internal::kNumberOfFPRegisters, and v8::internal::kSRegSizeInBits.

Referenced by v8::internal::CPURegister::S().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ToAllocationIndex()

static int v8::internal::FPRegister::ToAllocationIndex ( FPRegister  reg)
inlinestatic

Definition at line 312 of file assembler-arm64.h.

312  {
313  DCHECK(reg.IsAllocatable());
314  unsigned code = reg.code();
315 
316  return (code <= kAllocatableLowRangeEnd)
317  ? code
319  }

References v8::internal::CPURegister::code(), DCHECK, IsAllocatable(), kAllocatableLowRangeEnd, and kAllocatableRangeGapSize.

+ Here is the call graph for this function:

Member Data Documentation

◆ kAllocatableFPRegisters

const RegList v8::internal::FPRegister::kAllocatableFPRegisters = 0x1fff7fff
static

Definition at line 268 of file assembler-arm64.h.

Referenced by IsAllocatable().

◆ kAllocatableHighRangeBegin

const unsigned v8::internal::FPRegister::kAllocatableHighRangeBegin = 16
static

Definition at line 265 of file assembler-arm64.h.

Referenced by AllocationIndexToString().

◆ kAllocatableHighRangeEnd

const unsigned v8::internal::FPRegister::kAllocatableHighRangeEnd = 28
static

Definition at line 266 of file assembler-arm64.h.

Referenced by AllocationIndexToString().

◆ kAllocatableLowRangeBegin

const unsigned v8::internal::FPRegister::kAllocatableLowRangeBegin = 0
static

Definition at line 263 of file assembler-arm64.h.

Referenced by AllocationIndexToString().

◆ kAllocatableLowRangeEnd

const unsigned v8::internal::FPRegister::kAllocatableLowRangeEnd = 14
static

◆ kAllocatableRangeGapSize

const int v8::internal::FPRegister::kAllocatableRangeGapSize
static
Initial value:

Definition at line 271 of file assembler-arm64.h.

Referenced by FromAllocationIndex(), and ToAllocationIndex().

◆ kMaxNumAllocatableRegisters

const int v8::internal::FPRegister::kMaxNumAllocatableRegisters
static

◆ kMaxNumRegisters

const int v8::internal::FPRegister::kMaxNumRegisters = kNumberOfFPRegisters
static

Definition at line 257 of file assembler-arm64.h.


The documentation for this struct was generated from the following files: