v8  3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Instruction Class Reference

#include <constants-arm.h>

Inheritance diagram for Instruction:

Public Types

enum  { kInstrSize = 4, kInstrSizeLog2 = 2, kPCReadOffset = 8 }
 
enum  CheckAlignment { NO_CHECK, CHECK_ALIGNMENT }
 
enum  { kInstrSize = 4, kInstrSizeLog2 = 2, kPCReadOffset = 8 }
 
enum  Type { kRegisterType, kImmediateType, kJumpType, kUnsupported = -1 }
 

Public Member Functions

Instr InstructionBits () const
 
void SetInstructionBits (Instr value)
 
int Bit (int nr) const
 
int Bits (int hi, int lo) const
 
int BitField (int hi, int lo) const
 
Condition ConditionValue () const
 
Condition ConditionField () const
 
 DECLARE_STATIC_TYPED_ACCESSOR (Condition, ConditionValue)
 
 DECLARE_STATIC_TYPED_ACCESSOR (Condition, ConditionField)
 
int TypeValue () const
 
int SpecialValue () const
 
int RnValue () const
 
 DECLARE_STATIC_ACCESSOR (RnValue)
 
int RdValue () const
 
 DECLARE_STATIC_ACCESSOR (RdValue)
 
int CoprocessorValue () const
 
int VnValue () const
 
int VmValue () const
 
int VdValue () const
 
int NValue () const
 
int MValue () const
 
int DValue () const
 
int RtValue () const
 
int PValue () const
 
int UValue () const
 
int Opc1Value () const
 
int Opc2Value () const
 
int Opc3Value () const
 
int SzValue () const
 
int VLValue () const
 
int VCValue () const
 
int VAValue () const
 
int VBValue () const
 
int VFPNRegValue (VFPRegPrecision pre)
 
int VFPMRegValue (VFPRegPrecision pre)
 
int VFPDRegValue (VFPRegPrecision pre)
 
int OpcodeValue () const
 
Opcode OpcodeField () const
 
int SValue () const
 
int RmValue () const
 
 DECLARE_STATIC_ACCESSOR (RmValue)
 
int ShiftValue () const
 
ShiftOp ShiftField () const
 
int RegShiftValue () const
 
int RsValue () const
 
int ShiftAmountValue () const
 
int RotateValue () const
 
int Immed8Value () const
 
int Immed4Value () const
 
int ImmedMovwMovtValue () const
 
int PUValue () const
 
int PUField () const
 
int BValue () const
 
int WValue () const
 
int LValue () const
 
int Offset12Value () const
 
int RlistValue () const
 
int SignValue () const
 
int HValue () const
 
int ImmedHValue () const
 
int ImmedLValue () const
 
int LinkValue () const
 
int SImmed24Value () const
 
SoftwareInterruptCodes SvcValue () const
 
bool IsSpecialType0 () const
 
bool IsMiscType0 () const
 
bool IsNopType1 () const
 
bool IsStop () const
 
bool HasS () const
 
bool HasB () const
 
bool HasW () const
 
bool HasL () const
 
bool HasU () const
 
bool HasSign () const
 
bool HasH () const
 
bool HasLink () const
 
double DoubleImmedVmov () const
 
V8_INLINE Instr InstructionBits () const
 
V8_INLINE void SetInstructionBits (Instr new_instr)
 
int Bit (int pos) const
 
uint32_t Bits (int msb, int lsb) const
 
int32_t SignedBits (int msb, int lsb) const
 
Instr Mask (uint32_t mask) const
 
V8_INLINE Instructionfollowing (int count=1)
 
V8_INLINE Instructionpreceding (int count=1)
 
int ImmPCRel () const
 
uint64_t ImmLogical ()
 
float ImmFP32 ()
 
double ImmFP64 ()
 
LSDataSize SizeLSPair () const
 
bool IsCondBranchImm () const
 
bool IsUncondBranchImm () const
 
bool IsCompareBranch () const
 
bool IsTestBranch () const
 
bool IsLdrLiteral () const
 
bool IsLdrLiteralX () const
 
bool IsPCRelAddressing () const
 
bool IsLogicalImmediate () const
 
bool IsAddSubImmediate () const
 
bool IsAddSubExtended () const
 
bool IsLoadOrStore () const
 
bool IsLoad () const
 
bool IsStore () const
 
Reg31Mode RdMode () const
 
Reg31Mode RnMode () const
 
ImmBranchType BranchType () const
 
int ImmBranch () const
 
bool IsBranchAndLinkToRegister () const
 
bool IsMovz () const
 
bool IsMovk () const
 
bool IsMovn () const
 
bool IsNop (int n)
 
ptrdiff_t ImmPCOffset ()
 
InstructionImmPCOffsetTarget ()
 
bool IsTargetInImmPCOffsetRange (Instruction *target)
 
void SetImmPCOffsetTarget (Instruction *target)
 
void SetImmLLiteral (Instruction *source)
 
uint8_t * LiteralAddress ()
 
V8_INLINE InstructionInstructionAtOffset (int64_t offset, CheckAlignment check=CHECK_ALIGNMENT)
 
V8_INLINE ptrdiff_t DistanceTo (Instruction *target)
 
void SetPCRelImmTarget (Instruction *target)
 
void SetBranchImmTarget (Instruction *target)
 
Instr InstructionBits () const
 
void SetInstructionBits (Instr value)
 
int Bit (int nr) const
 
int Bits (int hi, int lo) const
 
Type InstructionType () const
 
Opcode OpcodeValue () const
 
int RsValue () const
 
int RtValue () const
 
int RdValue () const
 
int SaValue () const
 
int FunctionValue () const
 
int FdValue () const
 
int FsValue () const
 
int FtValue () const
 
int FrValue () const
 
int FCccValue () const
 
int FBccValue () const
 
int FBtrueValue () const
 
Opcode OpcodeFieldRaw () const
 
int RsFieldRaw () const
 
int RsFieldRawNoAssert () const
 
int RtFieldRaw () const
 
int RdFieldRaw () const
 
int SaFieldRaw () const
 
int FunctionFieldRaw () const
 
int SecondaryValue () const
 
int32_t Imm16Value () const
 
int32_t Imm26Value () const
 
bool IsForbiddenInBranchDelay () const
 
bool IsLinkingInstruction () const
 
bool IsTrap () const
 

Static Public Member Functions

static int Bit (Instr instr, int nr)
 
static int Bits (Instr instr, int hi, int lo)
 
static int BitField (Instr instr, int hi, int lo)
 
static InstructionAt (byte *pc)
 
static int ImmBranchRangeBitwidth (ImmBranchType branch_type)
 
static int32_t ImmBranchRange (ImmBranchType branch_type)
 
static bool IsValidImmPCOffset (ImmBranchType branch_type, int32_t offset)
 
template<typename T >
static V8_INLINE InstructionCast (T src)
 
static InstructionAt (byte *pc)
 

Detailed Description

Definition at line 505 of file constants-arm.h.

Member Enumeration Documentation

anonymous enum
Enumerator
kInstrSize 
kInstrSizeLog2 
kPCReadOffset 

Definition at line 617 of file constants-mips.h.

anonymous enum
Enumerator
kInstrSize 
kInstrSizeLog2 
kPCReadOffset 

Definition at line 507 of file constants-arm.h.

Enumerator
NO_CHECK 
CHECK_ALIGNMENT 

Definition at line 370 of file instructions-arm64.h.

enum Type
Enumerator
kRegisterType 
kImmediateType 
kJumpType 
kUnsupported 

Definition at line 646 of file constants-mips.h.

Member Function Documentation

static Instruction* At ( byte pc)
inlinestatic

Definition at line 714 of file constants-arm.h.

References v8::internal::pc.

Referenced by Assembler::target_address_at().

static Instruction* At ( byte pc)
inlinestatic

Definition at line 795 of file constants-mips.h.

References v8::internal::pc.

int Bit ( int  pos) const
inline

Definition at line 130 of file instructions-arm64.h.

References Instruction::InstructionBits().

static int Bit ( Instr  instr,
int  nr 
)
inlinestatic

Definition at line 551 of file constants-arm.h.

int Bit ( int  nr) const
inline

Definition at line 636 of file constants-mips.h.

References Instruction::InstructionBits().

int BitField ( int  hi,
int  lo 
) const
inline
static int BitField ( Instr  instr,
int  hi,
int  lo 
)
inlinestatic

Definition at line 562 of file constants-arm.h.

References v8::internal::lo.

uint32_t Bits ( int  msb,
int  lsb 
) const
inline
static int Bits ( Instr  instr,
int  hi,
int  lo 
)
inlinestatic

Definition at line 556 of file constants-arm.h.

References v8::internal::lo.

int Bits ( int  hi,
int  lo 
) const
inline

Definition at line 641 of file constants-mips.h.

References Instruction::InstructionBits(), and v8::internal::lo.

int BValue ( ) const
inline

Definition at line 656 of file constants-arm.h.

References Instruction::Bit().

Referenced by Instruction::HasB().

static V8_INLINE Instruction* Cast ( T  src)
inlinestatic

Definition at line 381 of file instructions-arm64.h.

Referenced by Instruction::InstructionAtOffset().

Condition ConditionField ( ) const
inline

Definition at line 584 of file constants-arm.h.

References Instruction::BitField().

Condition ConditionValue ( ) const
inline

Definition at line 581 of file constants-arm.h.

References Instruction::Bits().

int CoprocessorValue ( ) const
inline

Definition at line 598 of file constants-arm.h.

References Instruction::Bits().

DECLARE_STATIC_ACCESSOR ( RnValue  )
DECLARE_STATIC_ACCESSOR ( RdValue  )
DECLARE_STATIC_ACCESSOR ( RmValue  )
DECLARE_STATIC_TYPED_ACCESSOR ( Condition  ,
ConditionValue   
)
DECLARE_STATIC_TYPED_ACCESSOR ( Condition  ,
ConditionField   
)
V8_INLINE ptrdiff_t DistanceTo ( Instruction target)
inline

Definition at line 385 of file instructions-arm64.h.

double DoubleImmedVmov ( ) const
int DValue ( ) const
inline

Definition at line 606 of file constants-arm.h.

References Instruction::Bit().

int FBccValue ( ) const
inline
int FBtrueValue ( ) const
inline
int FCccValue ( ) const
inline
int FdValue ( ) const
inline
V8_INLINE Instruction* following ( int  count = 1)
inline
int FrValue ( ) const
inline
int FsValue ( ) const
inline
int FtValue ( ) const
inline
int FunctionFieldRaw ( ) const
inline
bool HasB ( ) const
inline

Definition at line 699 of file constants-arm.h.

References Instruction::BValue().

bool HasH ( ) const
inline

Definition at line 704 of file constants-arm.h.

References Instruction::HValue().

bool HasL ( ) const
inline

Definition at line 701 of file constants-arm.h.

References Instruction::LValue().

bool HasLink ( ) const
inline

Definition at line 705 of file constants-arm.h.

References Instruction::LinkValue().

bool HasS ( ) const
inline

Definition at line 698 of file constants-arm.h.

References Instruction::SValue().

bool HasSign ( ) const
inline

Definition at line 703 of file constants-arm.h.

References Instruction::SignValue().

bool HasU ( ) const
inline

Definition at line 702 of file constants-arm.h.

References Instruction::UValue().

bool HasW ( ) const
inline

Definition at line 700 of file constants-arm.h.

References Instruction::WValue().

int HValue ( ) const
inline

Definition at line 666 of file constants-arm.h.

References Instruction::Bit().

Referenced by Instruction::HasH().

static int32_t ImmBranchRange ( ImmBranchType  branch_type)
inlinestatic
static int ImmBranchRangeBitwidth ( ImmBranchType  branch_type)
inlinestatic
int Immed4Value ( ) const
inline

Definition at line 649 of file constants-arm.h.

References Instruction::Bits().

Referenced by Instruction::ImmedMovwMovtValue().

int Immed8Value ( ) const
inline

Definition at line 648 of file constants-arm.h.

References Instruction::Bits().

int ImmedHValue ( ) const
inline

Definition at line 667 of file constants-arm.h.

References Instruction::Bits().

int ImmedLValue ( ) const
inline

Definition at line 668 of file constants-arm.h.

References Instruction::Bits().

int ImmedMovwMovtValue ( ) const
inline
float ImmFP32 ( )
double ImmFP64 ( )
uint64_t ImmLogical ( )
ptrdiff_t ImmPCOffset ( )

Referenced by RecordWriteStub::Patch().

Instruction* ImmPCOffsetTarget ( )
int ImmPCRel ( ) const
inline

Definition at line 162 of file instructions-arm64.h.

References v8::internal::signed_bitextract_32().

V8_INLINE Instr InstructionBits ( ) const
inline

Definition at line 122 of file instructions-arm64.h.

Instr InstructionBits ( ) const
inline

Definition at line 626 of file constants-mips.h.

bool IsAddSubExtended ( ) const
inline
bool IsAddSubImmediate ( ) const
inline
bool IsBranchAndLinkToRegister ( ) const
inline
bool IsCompareBranch ( ) const
inline
bool IsCondBranchImm ( ) const
inline
bool IsForbiddenInBranchDelay ( ) const
bool IsLdrLiteral ( ) const
inline
bool IsLdrLiteralX ( ) const
inline
bool IsLinkingInstruction ( ) const
bool IsLoad ( ) const
bool IsLoadOrStore ( ) const
inline
bool IsLogicalImmediate ( ) const
inline
bool IsMiscType0 ( ) const
inline

Definition at line 684 of file constants-arm.h.

References Instruction::Bit().

bool IsMovk ( ) const
inline
bool IsMovn ( ) const
inline
bool IsMovz ( ) const
inline
bool IsNop ( int  n)
inline
bool IsNopType1 ( ) const
inline

Definition at line 690 of file constants-arm.h.

References Instruction::Bits().

bool IsPCRelAddressing ( ) const
inline
bool IsSpecialType0 ( ) const
inline

Definition at line 681 of file constants-arm.h.

References Instruction::Bit().

bool IsStop ( ) const
inline
bool IsStore ( ) const
bool IsTargetInImmPCOffsetRange ( Instruction target)
bool IsTestBranch ( ) const
inline
bool IsTrap ( ) const
static bool IsValidImmPCOffset ( ImmBranchType  branch_type,
int32_t  offset 
)
static
int LinkValue ( ) const
inline

Definition at line 671 of file constants-arm.h.

References Instruction::Bit().

Referenced by Instruction::HasLink().

uint8_t* LiteralAddress ( )
inline

Definition at line 365 of file instructions-arm64.h.

References v8::internal::kLiteralEntrySizeLog2.

int LValue ( ) const
inline

Definition at line 658 of file constants-arm.h.

References Instruction::Bit().

Referenced by Instruction::HasL().

int MValue ( ) const
inline

Definition at line 605 of file constants-arm.h.

References Instruction::Bit().

int NValue ( ) const
inline

Definition at line 604 of file constants-arm.h.

References Instruction::Bit().

int Offset12Value ( ) const
inline

Definition at line 661 of file constants-arm.h.

References Instruction::Bits().

Referenced by Instruction::ImmedMovwMovtValue().

int Opc1Value ( ) const
inline

Definition at line 610 of file constants-arm.h.

References Instruction::Bit(), and Instruction::Bits().

int Opc2Value ( ) const
inline

Definition at line 611 of file constants-arm.h.

References Instruction::Bits().

int Opc3Value ( ) const
inline

Definition at line 612 of file constants-arm.h.

References Instruction::Bits().

Opcode OpcodeField ( ) const
inline

Definition at line 632 of file constants-arm.h.

References Instruction::BitField().

Opcode OpcodeFieldRaw ( ) const
inline
int OpcodeValue ( ) const
inline

Definition at line 629 of file constants-arm.h.

References Instruction::Bits().

Opcode OpcodeValue ( ) const
inline
V8_INLINE Instruction* preceding ( int  count = 1)
inline

Definition at line 151 of file instructions-arm64.h.

References Instruction::following().

int PUField ( ) const
inline

Definition at line 655 of file constants-arm.h.

References Instruction::BitField().

int PUValue ( ) const
inline

Definition at line 654 of file constants-arm.h.

References Instruction::Bits().

int PValue ( ) const
inline

Definition at line 608 of file constants-arm.h.

References Instruction::Bit().

int RdValue ( ) const
inline

Definition at line 595 of file constants-arm.h.

References Instruction::Bits().

int RegShiftValue ( ) const
inline

Definition at line 643 of file constants-arm.h.

References Instruction::Bit().

int RlistValue ( ) const
inline

Definition at line 663 of file constants-arm.h.

References Instruction::Bits().

int RmValue ( ) const
inline

Definition at line 637 of file constants-arm.h.

References Instruction::Bits().

int RnValue ( ) const
inline

Definition at line 593 of file constants-arm.h.

References Instruction::Bits().

int RotateValue ( ) const
inline

Definition at line 647 of file constants-arm.h.

References Instruction::Bits().

int RsFieldRawNoAssert ( ) const
inline

Definition at line 734 of file constants-mips.h.

References Instruction::InstructionBits(), and v8::internal::kRsFieldMask.

int RsValue ( ) const
inline

Definition at line 644 of file constants-arm.h.

References Instruction::Bits().

Referenced by Instruction::SecondaryValue().

int RtValue ( ) const
inline

Definition at line 607 of file constants-arm.h.

References Instruction::Bits().

Referenced by Instruction::SecondaryValue().

void SetBranchImmTarget ( Instruction target)
void SetImmLLiteral ( Instruction source)
void SetImmPCOffsetTarget ( Instruction target)
V8_INLINE void SetInstructionBits ( Instr  new_instr)
inline

Definition at line 126 of file instructions-arm64.h.

void SetInstructionBits ( Instr  value)
inline

Definition at line 529 of file constants-arm.h.

Referenced by TEST().

void SetInstructionBits ( Instr  value)
inline

Definition at line 631 of file constants-mips.h.

void SetPCRelImmTarget ( Instruction target)
int ShiftAmountValue ( ) const
inline

Definition at line 645 of file constants-arm.h.

References Instruction::Bits().

ShiftOp ShiftField ( ) const
inline

Definition at line 640 of file constants-arm.h.

References Instruction::BitField().

int ShiftValue ( ) const
inline

Definition at line 639 of file constants-arm.h.

References Instruction::Bits().

int32_t SignedBits ( int  msb,
int  lsb 
) const
inline

Definition at line 138 of file instructions-arm64.h.

References v8::internal::signed_bitextract_32().

int SignValue ( ) const
inline

Definition at line 665 of file constants-arm.h.

References Instruction::Bit().

Referenced by Instruction::HasSign().

int SImmed24Value ( ) const
inline

Definition at line 672 of file constants-arm.h.

References Instruction::InstructionBits().

LSDataSize SizeLSPair ( ) const
inline
int SpecialValue ( ) const
inline

Definition at line 591 of file constants-arm.h.

References Instruction::Bits().

int SValue ( ) const
inline

Definition at line 635 of file constants-arm.h.

References Instruction::Bit().

Referenced by Instruction::HasS().

SoftwareInterruptCodes SvcValue ( ) const
inline

Definition at line 675 of file constants-arm.h.

References Instruction::Bits().

Referenced by Instruction::IsStop().

int SzValue ( ) const
inline

Definition at line 613 of file constants-arm.h.

References Instruction::Bit().

int TypeValue ( ) const
inline

Definition at line 590 of file constants-arm.h.

References Instruction::Bits().

Referenced by Instruction::IsStop().

int UValue ( ) const
inline

Definition at line 609 of file constants-arm.h.

References Instruction::Bit().

Referenced by Instruction::HasU().

int VAValue ( ) const
inline

Definition at line 616 of file constants-arm.h.

References Instruction::Bits().

int VBValue ( ) const
inline

Definition at line 617 of file constants-arm.h.

References Instruction::Bits().

int VCValue ( ) const
inline

Definition at line 615 of file constants-arm.h.

References Instruction::Bit().

int VdValue ( ) const
inline

Definition at line 603 of file constants-arm.h.

References Instruction::Bits().

int VFPDRegValue ( VFPRegPrecision  pre)
inline

Definition at line 624 of file constants-arm.h.

int VFPMRegValue ( VFPRegPrecision  pre)
inline

Definition at line 621 of file constants-arm.h.

int VFPNRegValue ( VFPRegPrecision  pre)
inline

Definition at line 618 of file constants-arm.h.

int VLValue ( ) const
inline

Definition at line 614 of file constants-arm.h.

References Instruction::Bit().

int VmValue ( ) const
inline

Definition at line 602 of file constants-arm.h.

References Instruction::Bits().

int VnValue ( ) const
inline

Definition at line 601 of file constants-arm.h.

References Instruction::Bits().

int WValue ( ) const
inline

Definition at line 657 of file constants-arm.h.

References Instruction::Bit().

Referenced by Instruction::HasW().


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