28 #ifndef V8_ARM64_INSTRUCTIONS_ARM64_H_ 
   29 #define V8_ARM64_INSTRUCTIONS_ARM64_H_ 
   42 typedef uint32_t 
Instr;
 
   48 #if defined(ARM64_DEFINE_FP_STATICS) 
   49 #define DEFINE_FLOAT(name, value) extern const uint32_t name = value 
   50 #define DEFINE_DOUBLE(name, value) extern const uint64_t name = value 
   52 #define DEFINE_FLOAT(name, value) extern const float name 
   53 #define DEFINE_DOUBLE(name, value) extern const double name 
   54 #endif  // defined(ARM64_DEFINE_FP_STATICS) 
  123     return *
reinterpret_cast<const Instr*
>(
this);
 
  127     *
reinterpret_cast<Instr*
>(
this) = new_instr;
 
  134   uint32_t 
Bits(
int msb, 
int lsb)
 const {
 
  155   #define DEFINE_GETTER(Name, HighBit, LowBit, Func)             \ 
  156   int64_t Name() const { return Func(HighBit, LowBit); } 
  163     int const offset = ((ImmPCRelHi() << ImmPCRelLo_width) | ImmPCRelLo());
 
  164     int const width = ImmPCRelLo_width + ImmPCRelHi_width;
 
  286     switch (branch_type) {
 
  288         return ImmUncondBranch_width;
 
  290         return ImmCondBranch_width;
 
  292         return ImmCmpBranch_width;
 
  294         return ImmTestBranch_width;
 
  367     return reinterpret_cast<uint8_t*
>(
this) + offset;
 
  386     return reinterpret_cast<Address>(target) - reinterpret_cast<Address>(
this);
 
  501 #endif  // V8_ARM64_INSTRUCTIONS_ARM64_H_ 
const unsigned kInstructionSizeLog2
 
bool IsPCRelAddressing() const 
 
DEFINE_DOUBLE(kFP64PositiveInfinity, 0x7ff0000000000000UL)
 
int32_t SignedBits(int msb, int lsb) const 
 
const unsigned kDebugMessageOffset
 
bool IsAddressAligned(Address addr, intptr_t alignment, int offset=0)
 
const Instr kImmExceptionIsRedirectedCall
 
bool IsUncondBranchImm() const 
 
bool IsLdrLiteralX() const 
 
#define INSTRUCTION_FIELDS_LIST(V_)
 
bool IsBranchAndLinkToRegister() const 
 
const unsigned kLiteralEntrySizeLog2
 
bool IsLoadOrStore() const 
 
DEFINE_FLOAT(kFP32PositiveInfinity, 0x7f800000)
 
Instr InstructionBits() const 
 
V8_INLINE ptrdiff_t DistanceTo(Instruction *target)
 
void SetBranchImmTarget(Instruction *target)
 
#define ASSERT(condition)
 
#define DEFINE_GETTER(Name, HighBit, LowBit, Func)
 
static bool IsValidImmPCOffset(ImmBranchType branch_type, int32_t offset)
 
V8_INLINE Instruction * InstructionAtOffset(int64_t offset, CheckAlignment check=CHECK_ALIGNMENT)
 
const unsigned kDebuggerTracingDirectivesMask
 
static V8_INLINE Instruction * Cast(T src)
 
V8_INLINE Instr InstructionBits() const 
 
bool IsInlineData() const 
 
bool IsAddSubExtended() const 
 
bool IsTestBranch() const 
 
const Instr kImmExceptionIsPrintf
 
V8_INLINE Instruction * preceding(int count=1)
 
LSDataSize SizeLSPair() const 
 
void SetImmPCOffsetTarget(Instruction *target)
 
uint32_t Bits(int msb, int lsb) const 
 
bool IsCondBranchImm() const 
 
void SetPCRelImmTarget(Instruction *target)
 
const unsigned kPrintfLength
 
Instruction * ImmPCOffsetTarget()
 
void check(i::Vector< const uint8_t > string)
 
const unsigned kInstructionSize
 
const unsigned kDebugParamsOffset
 
bool IsAddSubImmediate() const 
 
bool IsLogicalImmediate() const 
 
int32_t signed_bitextract_32(int msb, int lsb, int32_t x)
 
uint8_t * LiteralAddress()
 
#define T(name, string, precedence)
 
V8_INLINE Instruction * following(int count=1)
 
const Instr kImmExceptionIsUnreachable
 
static int ImmBranchRangeBitwidth(ImmBranchType branch_type)
 
const unsigned kDebugCodeOffset
 
bool IsTargetInImmPCOffsetRange(Instruction *target)
 
bool IsLdrLiteral() const 
 
static int32_t ImmBranchRange(ImmBranchType branch_type)
 
void SetImmLLiteral(Instruction *source)
 
const unsigned kPrintfTypeOffset
 
bool IsCompareBranch() const 
 
V8_INLINE void SetInstructionBits(Instr new_instr)
 
uint64_t InlineData() const 
 
LSDataSize CalcLSPairDataSize(LoadStorePairOp op)
 
uint32_t unsigned_bitextract_32(int msb, int lsb, uint32_t x)
 
ImmBranchType BranchType() const 
 
const Instr kImmExceptionIsDebug
 
static InstructionSequence * At(Address address)
 
Instr Mask(uint32_t mask) const