V8 Project
macro-assembler-arm64.h File Reference
#include <vector>
#include "src/bailout-reason.h"
#include "src/globals.h"
#include "src/arm64/assembler-arm64-inl.h"
#include "src/base/bits.h"
+ Include dependency graph for macro-assembler-arm64.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  v8::internal::MacroAssembler
 
class  v8::internal::MacroAssembler::PushPopQueue
 
class  v8::internal::MacroAssembler::NoUseRealAbortsScope
 
class  v8::internal::BASE_EMBEDDED< Visitor >
 
class  v8::internal::UseScratchRegisterScope
 
class  v8::internal::InlineSmiCheckInfo
 
class  v8::internal::InlineSmiCheckInfo::RegisterBits
 
class  v8::internal::InlineSmiCheckInfo::DeltaBits
 

Namespaces

 v8
 Debugger support for the V8 JavaScript engine.
 
 v8::internal
 

Macros

#define ASM_UNIMPLEMENTED(message)
 
#define ASM_UNIMPLEMENTED_BREAK(message)
 
#define ASM_LOCATION(message)
 
#define LS_MACRO_LIST(V)
 
#define LSPAIR_MACRO_LIST(V)
 
#define DECLARE_FUNCTION(FN, REGTYPE, REG, OP)    inline void FN(const REGTYPE REG, const MemOperand& addr);
 
#define DECLARE_FUNCTION(FN, REGTYPE, REG, REG2, OP)    inline void FN(const REGTYPE REG, const REGTYPE REG2, const MemOperand& addr);
 
#define ACCESS_MASM(masm)   masm->
 

Enumerations

enum  v8::internal::BranchType {
  v8::internal::integer_eq = eq , v8::internal::integer_ne = ne , v8::internal::integer_hs = hs , v8::internal::integer_lo = lo ,
  v8::internal::integer_mi = mi , v8::internal::integer_pl = pl , v8::internal::integer_vs = vs , v8::internal::integer_vc = vc ,
  v8::internal::integer_hi = hi , v8::internal::integer_ls = ls , v8::internal::integer_ge = ge , v8::internal::integer_lt = lt ,
  v8::internal::integer_gt = gt , v8::internal::integer_le = le , v8::internal::integer_al = al , v8::internal::integer_nv = nv ,
  v8::internal::always = 16 , v8::internal::never = 17 , v8::internal::reg_zero , v8::internal::reg_not_zero ,
  v8::internal::reg_bit_clear , v8::internal::reg_bit_set , v8::internal::kBranchTypeFirstCondition = eq , v8::internal::kBranchTypeLastCondition = nv ,
  v8::internal::kBranchTypeFirstUsingReg = reg_zero , v8::internal::kBranchTypeFirstUsingBit = reg_bit_clear
}
 
enum  v8::internal::RememberedSetAction {
  v8::internal::EMIT_REMEMBERED_SET , v8::internal::OMIT_REMEMBERED_SET , v8::internal::EMIT_REMEMBERED_SET , v8::internal::OMIT_REMEMBERED_SET ,
  v8::internal::EMIT_REMEMBERED_SET , v8::internal::OMIT_REMEMBERED_SET , v8::internal::EMIT_REMEMBERED_SET , v8::internal::OMIT_REMEMBERED_SET ,
  v8::internal::EMIT_REMEMBERED_SET , v8::internal::OMIT_REMEMBERED_SET , v8::internal::EMIT_REMEMBERED_SET , v8::internal::OMIT_REMEMBERED_SET ,
  v8::internal::EMIT_REMEMBERED_SET , v8::internal::OMIT_REMEMBERED_SET
}
 
enum  v8::internal::SmiCheck {
  v8::internal::INLINE_SMI_CHECK , v8::internal::OMIT_SMI_CHECK , v8::internal::INLINE_SMI_CHECK , v8::internal::OMIT_SMI_CHECK ,
  v8::internal::INLINE_SMI_CHECK , v8::internal::OMIT_SMI_CHECK , v8::internal::INLINE_SMI_CHECK , v8::internal::OMIT_SMI_CHECK ,
  v8::internal::INLINE_SMI_CHECK , v8::internal::OMIT_SMI_CHECK , v8::internal::INLINE_SMI_CHECK , v8::internal::OMIT_SMI_CHECK ,
  v8::internal::INLINE_SMI_CHECK , v8::internal::OMIT_SMI_CHECK
}
 
enum  v8::internal::PointersToHereCheck {
  v8::internal::kPointersToHereMaybeInteresting , v8::internal::kPointersToHereAreAlwaysInteresting , v8::internal::kPointersToHereMaybeInteresting , v8::internal::kPointersToHereAreAlwaysInteresting ,
  v8::internal::kPointersToHereMaybeInteresting , v8::internal::kPointersToHereAreAlwaysInteresting , v8::internal::kPointersToHereMaybeInteresting , v8::internal::kPointersToHereAreAlwaysInteresting ,
  v8::internal::kPointersToHereMaybeInteresting , v8::internal::kPointersToHereAreAlwaysInteresting , v8::internal::kPointersToHereMaybeInteresting , v8::internal::kPointersToHereAreAlwaysInteresting ,
  v8::internal::kPointersToHereMaybeInteresting , v8::internal::kPointersToHereAreAlwaysInteresting
}
 
enum  v8::internal::LinkRegisterStatus { v8::internal::kLRHasNotBeenSaved , v8::internal::kLRHasBeenSaved , v8::internal::kLRHasNotBeenSaved , v8::internal::kLRHasBeenSaved }
 
enum  v8::internal::TargetAddressStorageMode { v8::internal::CAN_INLINE_TARGET_ADDRESS , v8::internal::NEVER_INLINE_TARGET_ADDRESS , v8::internal::CAN_INLINE_TARGET_ADDRESS , v8::internal::NEVER_INLINE_TARGET_ADDRESS }
 
enum  v8::internal::UntagMode { v8::internal::kNotSpeculativeUntag , v8::internal::kSpeculativeUntag }
 
enum  v8::internal::ArrayHasHoles { v8::internal::kArrayCantHaveHoles , v8::internal::kArrayCanHaveHoles }
 
enum  v8::internal::CopyHint { v8::internal::kCopyUnknown , v8::internal::kCopyShort , v8::internal::kCopyLong }
 
enum  v8::internal::DiscardMoveMode { v8::internal::kDontDiscardForSameWReg , v8::internal::kDiscardForSameWReg }
 
enum  v8::internal::SeqStringSetCharCheckIndexType { v8::internal::kIndexIsSmi , v8::internal::kIndexIsInteger32 }
 

Functions

MemOperand v8::internal::FieldMemOperand (Register object, int offset)
 
MemOperand v8::internal::UntagSmiFieldMemOperand (Register object, int offset)
 
MemOperand v8::internal::UntagSmiMemOperand (Register object, int offset)
 
BranchType v8::internal::InvertBranchType (BranchType type)
 
MemOperand v8::internal::ContextMemOperand (Register context, int index)
 
MemOperand v8::internal::GlobalObjectMemOperand ()
 

Macro Definition Documentation

◆ ACCESS_MASM

#define ACCESS_MASM (   masm)    masm->

Definition at line 2335 of file macro-assembler-arm64.h.

◆ ASM_LOCATION

#define ASM_LOCATION (   message)

Definition at line 30 of file macro-assembler-arm64.h.

◆ ASM_UNIMPLEMENTED

#define ASM_UNIMPLEMENTED (   message)

Definition at line 28 of file macro-assembler-arm64.h.

◆ ASM_UNIMPLEMENTED_BREAK

#define ASM_UNIMPLEMENTED_BREAK (   message)

Definition at line 29 of file macro-assembler-arm64.h.

◆ DECLARE_FUNCTION [1/2]

#define DECLARE_FUNCTION (   FN,
  REGTYPE,
  REG,
  OP 
)     inline void FN(const REGTYPE REG, const MemOperand& addr);

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

◆ DECLARE_FUNCTION [2/2]

#define DECLARE_FUNCTION (   FN,
  REGTYPE,
  REG,
  REG2,
  OP 
)     inline void FN(const REGTYPE REG, const REGTYPE REG2, const MemOperand& addr);

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

◆ LS_MACRO_LIST

#define LS_MACRO_LIST (   V)
Value:
V(Ldrb, Register&, rt, LDRB_w) \
V(Strb, Register&, rt, STRB_w) \
V(Ldrsb, Register&, rt, rt.Is64Bits() ? LDRSB_x : LDRSB_w) \
V(Ldrh, Register&, rt, LDRH_w) \
V(Strh, Register&, rt, STRH_w) \
V(Ldrsh, Register&, rt, rt.Is64Bits() ? LDRSH_x : LDRSH_w) \
V(Ldr, CPURegister&, rt, LoadOpFor(rt)) \
V(Str, CPURegister&, rt, StoreOpFor(rt)) \
V(Ldrsw, Register&, rt, LDRSW_x)
#define V(NAME, Name, id)
Definition: execution.h:170

Definition at line 37 of file macro-assembler-arm64.h.

◆ LSPAIR_MACRO_LIST

#define LSPAIR_MACRO_LIST (   V)
Value:
V(Ldp, CPURegister&, rt, rt2, LoadPairOpFor(rt, rt2)) \
V(Stp, CPURegister&, rt, rt2, StorePairOpFor(rt, rt2)) \
V(Ldpsw, CPURegister&, rt, rt2, LDPSW_x)

Definition at line 48 of file macro-assembler-arm64.h.