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
instructions-arm64.h File Reference
#include "globals.h"
#include "utils.h"
#include "arm64/constants-arm64.h"
#include "arm64/utils-arm64.h"
Include dependency graph for instructions-arm64.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

class  Instruction
 
class  InstructionSequence
 

Namespaces

 v8
 
 v8::internal
 

Macros

#define DEFINE_FLOAT(name, value)   extern const float name
 
#define DEFINE_DOUBLE(name, value)   extern const double name
 
#define DEFINE_GETTER(Name, HighBit, LowBit, Func)   int64_t Name() const { return Func(HighBit, LowBit); }
 

Enumerations

enum  LSDataSize { LSByte = 0, LSHalfword = 1, LSWord = 2, LSDoubleWord = 3 }
 
enum  ImmBranchType {
  UnknownBranchType = 0, CondBranchType = 1, UncondBranchType = 2, CompareBranchType = 3,
  TestBranchType = 4
}
 
enum  AddrMode {
  Offset = (8|4|0) << 21, PreIndex = (8|4|1) << 21, PostIndex = (0|4|0) << 21, NegOffset = (8|0|0) << 21,
  NegPreIndex = (8|0|1) << 21, NegPostIndex = (0|0|0) << 21, Offset = (8|4|0) << 21, PreIndex = (8|4|1) << 21,
  PostIndex = (0|4|0) << 21
}
 
enum  FPRounding {
  FPTieEven = 0x0, FPPositiveInfinity = 0x1, FPNegativeInfinity = 0x2, FPZero = 0x3,
  FPTieAway
}
 
enum  Reg31Mode { Reg31IsStackPointer, Reg31IsZeroRegister }
 
enum  DebugParameters {
  NO_PARAM = 0, BREAK = 1 << 0, LOG_DISASM = 1 << 1, LOG_REGS = 1 << 2,
  LOG_FP_REGS = 1 << 3, LOG_SYS_REGS = 1 << 4, LOG_WRITE = 1 << 5, LOG_STATE = LOG_REGS | LOG_FP_REGS | LOG_SYS_REGS,
  LOG_ALL = LOG_DISASM | LOG_STATE | LOG_WRITE, TRACE_ENABLE = 1 << 6, TRACE_DISABLE = 2 << 6, TRACE_OVERRIDE = 3 << 6
}
 

Functions

 DEFINE_FLOAT (kFP32PositiveInfinity, 0x7f800000)
 
 DEFINE_FLOAT (kFP32NegativeInfinity, 0xff800000)
 
 DEFINE_DOUBLE (kFP64PositiveInfinity, 0x7ff0000000000000UL)
 
 DEFINE_DOUBLE (kFP64NegativeInfinity, 0xfff0000000000000UL)
 
 DEFINE_DOUBLE (kFP64SignallingNaN, 0x7ff000007f800001)
 
 DEFINE_FLOAT (kFP32SignallingNaN, 0x7f800001)
 
 DEFINE_DOUBLE (kFP64QuietNaN, 0x7ff800007fc00001)
 
 DEFINE_FLOAT (kFP32QuietNaN, 0x7fc00001)
 
 DEFINE_DOUBLE (kFP64DefaultNaN, 0x7ff8000000000000UL)
 
 DEFINE_FLOAT (kFP32DefaultNaN, 0x7fc00000)
 
LSDataSize CalcLSPairDataSize (LoadStorePairOp op)
 

Variables

const Instr kImmExceptionIsRedirectedCall = 0xca11
 
const Instr kImmExceptionIsUnreachable = 0xdebf
 
const Instr kImmExceptionIsPrintf = 0xdeb1
 
const unsigned kPrintfTypeOffset = 1 * kInstructionSize
 
const unsigned kPrintfLength = 2 * kInstructionSize
 
const Instr kImmExceptionIsDebug = 0xdeb0
 
const unsigned kDebugCodeOffset = 1 * kInstructionSize
 
const unsigned kDebugParamsOffset = 2 * kInstructionSize
 
const unsigned kDebugMessageOffset = 3 * kInstructionSize
 
const unsigned kDebuggerTracingDirectivesMask = 3 << 6
 

Macro Definition Documentation

#define DEFINE_DOUBLE (   name,
  value 
)    extern const double name

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

#define DEFINE_FLOAT (   name,
  value 
)    extern const float name

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

#define DEFINE_GETTER (   Name,
  HighBit,
  LowBit,
  Func 
)    int64_t Name() const { return Func(HighBit, LowBit); }

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