v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::maglev::MaglevAssembler Class Reference

#include <maglev-assembler.h>

Inheritance diagram for v8::internal::maglev::MaglevAssembler:
Collaboration diagram for v8::internal::maglev::MaglevAssembler:

Classes

class  TemporaryRegisterScope
 
class  TemporaryRegisterScopeBase
 

Public Types

enum  StoreMode { kField , kElement }
 
enum  ValueIsCompressed { kValueIsDecompressed , kValueIsCompressed }
 
enum  ValueCanBeSmi { kValueCannotBeSmi , kValueCanBeSmi }
 
enum class  CharCodeMaskMode { kValueIsInRange , kMustApplyMask }
 
template<StoreMode store_mode>
using OffsetTypeFor = std::conditional_t<store_mode == kField, int, Register>
 
- Public Types inherited from v8::internal::MacroAssembler
enum class  PushArrayOrder {
  kNormal , kReverse , kNormal , kReverse ,
  kNormal , kNormal , kNormal , kNormal ,
  kNormal , kNormal , kNormal , kNormal ,
  kNormal , kNormal , kNormal , kReverse ,
  kReverse , kReverse , kReverse , kReverse ,
  kReverse , kReverse , kReverse , kReverse ,
  kReverse , kReverse , kNormal , kReverse
}
 
enum  CopyDoubleWordsMode { kDstLessThanSrc , kSrcLessThanDst , kDstLessThanSrcAndReverse }
 
enum  LoadLRMode { kAuthLR , kDontLoadLR }
 
enum  StoreLRMode { kSignLR , kDontStoreLR }
 
enum  AdrHint { kAdrNear , kAdrFar }
 
enum class  PushArrayOrder {
  kNormal , kReverse , kNormal , kReverse ,
  kNormal , kReverse
}
 
enum  PushArrayOrder {
  kNormal , kReverse , kNormal , kReverse ,
  kNormal , kReverse
}
 
enum  StackLimitKind { kInterruptStackLimit , kRealStackLimit , kInterruptStackLimit , kRealStackLimit }
 
enum  PushArrayOrder {
  kNormal , kReverse , kNormal , kReverse ,
  kNormal , kReverse
}
 
enum  StackLimitKind { kInterruptStackLimit , kRealStackLimit , kInterruptStackLimit , kRealStackLimit }
 
enum  PushArrayOrder {
  kNormal , kReverse , kNormal , kReverse ,
  kNormal , kReverse
}
 
enum  PushArrayOrder {
  kNormal , kReverse , kNormal , kReverse ,
  kNormal , kReverse
}
 
enum  ArgumentsCountMode { kCountIncludesReceiver , kCountExcludesReceiver }
 
enum  ArgumentsCountType { kCountIsInteger , kCountIsSmi }
 
enum  PushArrayOrder {
  kNormal , kReverse , kNormal , kReverse ,
  kNormal , kReverse
}
 
enum class  PushArrayOrder {
  kNormal , kReverse , kNormal , kReverse ,
  kNormal , kReverse
}
 
enum class  IsolateRootLocation { kInScratchRegister , kInRootRegister }
 
using Trapper = std::function<void(int)>
 
- Public Types inherited from v8::internal::MacroAssemblerBase
enum class  RecordWriteCallMode { kDefault , kWasm }
 
- Public Types inherited from v8::internal::Assembler
enum  NopMarkerTypes {
  NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT ,
  PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , DEBUG_BREAK_NOP ,
  INTERRUPT_CODE_NOP , ADR_FAR_NOP , FIRST_NOP_MARKER = DEBUG_BREAK_NOP , LAST_NOP_MARKER = ADR_FAR_NOP ,
  NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT ,
  PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 ,
  DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE ,
  LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , GROUP_ENDING_NOP ,
  DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE ,
  LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP ,
  PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER ,
  FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , GROUP_ENDING_NOP , DEBUG_BREAK_NOP ,
  PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER ,
  FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED
}
 
enum  ConstantPoolMode { NEEDS_POOL_ENTRY , NO_POOL_ENTRY }
 
enum  NopMarkerTypes {
  NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT ,
  PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , DEBUG_BREAK_NOP ,
  INTERRUPT_CODE_NOP , ADR_FAR_NOP , FIRST_NOP_MARKER = DEBUG_BREAK_NOP , LAST_NOP_MARKER = ADR_FAR_NOP ,
  NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT ,
  PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 ,
  DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE ,
  LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , GROUP_ENDING_NOP ,
  DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE ,
  LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP ,
  PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER ,
  FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , GROUP_ENDING_NOP , DEBUG_BREAK_NOP ,
  PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER ,
  FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED
}
 
enum  OffsetSize : int {
  kOffset26 = 26 , kOffset21 = 21 , kOffset20 = 20 , kOffset16 = 16 ,
  kOffset26 = 26 , kOffset21 = 21 , kOffset16 = 16
}
 
enum  NopMarkerTypes {
  NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT ,
  PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , DEBUG_BREAK_NOP ,
  INTERRUPT_CODE_NOP , ADR_FAR_NOP , FIRST_NOP_MARKER = DEBUG_BREAK_NOP , LAST_NOP_MARKER = ADR_FAR_NOP ,
  NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT ,
  PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 ,
  DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE ,
  LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , GROUP_ENDING_NOP ,
  DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE ,
  LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP ,
  PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER ,
  FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , GROUP_ENDING_NOP , DEBUG_BREAK_NOP ,
  PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER ,
  FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED
}
 
enum  OffsetSize : int {
  kOffset26 = 26 , kOffset21 = 21 , kOffset20 = 20 , kOffset16 = 16 ,
  kOffset26 = 26 , kOffset21 = 21 , kOffset16 = 16
}
 
enum  NopMarkerTypes {
  NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT ,
  PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , DEBUG_BREAK_NOP ,
  INTERRUPT_CODE_NOP , ADR_FAR_NOP , FIRST_NOP_MARKER = DEBUG_BREAK_NOP , LAST_NOP_MARKER = ADR_FAR_NOP ,
  NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT ,
  PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 ,
  DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE ,
  LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , GROUP_ENDING_NOP ,
  DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE ,
  LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP ,
  PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER ,
  FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , GROUP_ENDING_NOP , DEBUG_BREAK_NOP ,
  PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER ,
  FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED
}
 
enum  NopMarkerTypes {
  NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT ,
  PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , DEBUG_BREAK_NOP ,
  INTERRUPT_CODE_NOP , ADR_FAR_NOP , FIRST_NOP_MARKER = DEBUG_BREAK_NOP , LAST_NOP_MARKER = ADR_FAR_NOP ,
  NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT ,
  PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 ,
  DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE ,
  LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , GROUP_ENDING_NOP ,
  DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE ,
  LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP ,
  PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER ,
  FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , GROUP_ENDING_NOP , DEBUG_BREAK_NOP ,
  PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER ,
  FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED
}
 
enum  NopMarkerTypes {
  NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT ,
  PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , DEBUG_BREAK_NOP ,
  INTERRUPT_CODE_NOP , ADR_FAR_NOP , FIRST_NOP_MARKER = DEBUG_BREAK_NOP , LAST_NOP_MARKER = ADR_FAR_NOP ,
  NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT ,
  PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 ,
  DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE ,
  LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , GROUP_ENDING_NOP ,
  DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE ,
  LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP ,
  PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER ,
  FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , GROUP_ENDING_NOP , DEBUG_BREAK_NOP ,
  PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER ,
  FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED
}
 
enum  NopMarkerTypes {
  NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT ,
  PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , DEBUG_BREAK_NOP ,
  INTERRUPT_CODE_NOP , ADR_FAR_NOP , FIRST_NOP_MARKER = DEBUG_BREAK_NOP , LAST_NOP_MARKER = ADR_FAR_NOP ,
  NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT ,
  PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 ,
  DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE ,
  LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , GROUP_ENDING_NOP ,
  DEBUG_BREAK_NOP , PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE ,
  LAST_CODE_MARKER , FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , DEBUG_BREAK_NOP ,
  PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER ,
  FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED , NON_MARKING_NOP = 0 , GROUP_ENDING_NOP , DEBUG_BREAK_NOP ,
  PROPERTY_ACCESS_INLINED , PROPERTY_ACCESS_INLINED_CONTEXT , PROPERTY_ACCESS_INLINED_CONTEXT_DONT_DELETE , LAST_CODE_MARKER ,
  FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED
}
 
enum  SIMDPrefix {
  kNoPrefix = 0x0 , k66 = 0x1 , kF3 = 0x2 , kF2 = 0x3 ,
  kNoPrefix = 0x0 , k66 = 0x1 , kF3 = 0x2 , kF2 = 0x3
}
 
enum  VectorLength {
  kL128 = 0x0 , kL256 = 0x4 , kLIG = kL128 , kLZ = kL128 ,
  kL128 = 0x0 , kL256 = 0x4 , kLIG = kL128 , kLZ = kL128
}
 
enum  VexW {
  kW0 = 0x0 , kW1 = 0x80 , kWIG = kW0 , kW0 = 0x0 ,
  kW1 = 0x80 , kWIG = kW0
}
 
enum  LeadingOpcode {
  k0F = 0x1 , k0F38 = 0x2 , k0F3A = 0x3 , k0F = 0x1 ,
  k0F38 = 0x2 , k0F3A = 0x3
}
 
using BlockConstPoolScope = ConstantPool::BlockScope
 

Public Member Functions

 MaglevAssembler (Isolate *isolate, Zone *zone, MaglevCodeGenState *code_gen_state)
 
MemOperand GetStackSlot (const compiler::AllocatedOperand &operand)
 
MemOperand ToMemOperand (const compiler::InstructionOperand &operand)
 
MemOperand ToMemOperand (const ValueLocation &location)
 
Register GetFramePointer ()
 
int GetFramePointerOffsetForStackSlot (const compiler::AllocatedOperand &operand)
 
template<typename Dest , typename Source >
void MoveRepr (MachineRepresentation repr, Dest dst, Source src)
 
void Allocate (RegisterSnapshot register_snapshot, Register result, int size_in_bytes, AllocationType alloc_type=AllocationType::kYoung, AllocationAlignment alignment=kTaggedAligned)
 
void Allocate (RegisterSnapshot register_snapshot, Register result, Register size_in_bytes, AllocationType alloc_type=AllocationType::kYoung, AllocationAlignment alignment=kTaggedAligned)
 
void AllocateHeapNumber (RegisterSnapshot register_snapshot, Register result, DoubleRegister value)
 
void AllocateTwoByteString (RegisterSnapshot register_snapshot, Register result, int length)
 
void LoadSingleCharacterString (Register result, int char_code)
 
void LoadSingleCharacterString (Register result, Register char_code, Register scratch)
 
void EnsureWritableFastElements (RegisterSnapshot register_snapshot, Register elements, Register object, Register scratch)
 
void BindJumpTarget (Label *label)
 
void BindBlock (BasicBlock *block)
 
Condition IsRootConstant (Input input, RootIndex root_index)
 
void Branch (Condition condition, BasicBlock *if_true, BasicBlock *if_false, BasicBlock *next_block)
 
void Branch (Condition condition, Label *if_true, Label::Distance true_distance, bool fallthrough_when_true, Label *if_false, Label::Distance false_distance, bool fallthrough_when_false)
 
Register FromAnyToRegister (const Input &input, Register scratch)
 
void LoadTaggedField (Register result, MemOperand operand)
 
void LoadTaggedField (Register result, Register object, int offset)
 
void LoadTaggedFieldWithoutDecompressing (Register result, Register object, int offset)
 
void LoadTaggedSignedField (Register result, MemOperand operand)
 
void LoadTaggedSignedField (Register result, Register object, int offset)
 
void LoadAndUntagTaggedSignedField (Register result, Register object, int offset)
 
void LoadTaggedFieldByIndex (Register result, Register object, Register index, int scale, int offset)
 
void LoadBoundedSizeFromObject (Register result, Register object, int offset)
 
void LoadExternalPointerField (Register result, MemOperand operand)
 
void LoadFixedArrayElement (Register result, Register array, Register index)
 
void LoadFixedArrayElementWithoutDecompressing (Register result, Register array, Register index)
 
void LoadFixedDoubleArrayElement (DoubleRegister result, Register array, Register index)
 
void StoreFixedDoubleArrayElement (Register array, Register index, DoubleRegister value)
 
void LoadSignedField (Register result, MemOperand operand, int element_size)
 
void LoadUnsignedField (Register result, MemOperand operand, int element_size)
 
template<typename BitField >
void LoadBitField (Register result, MemOperand operand)
 
void SetSlotAddressForTaggedField (Register slot_reg, Register object, int offset)
 
void SetSlotAddressForFixedArrayElement (Register slot_reg, Register object, Register index)
 
template<StoreMode store_mode>
void CheckAndEmitDeferredWriteBarrier (Register object, OffsetTypeFor< store_mode > offset, Register value, RegisterSnapshot register_snapshot, ValueIsCompressed value_is_compressed, ValueCanBeSmi value_can_be_smi)
 
void CheckAndEmitDeferredIndirectPointerWriteBarrier (Register object, int offset, Register value, RegisterSnapshot register_snapshot, IndirectPointerTag tag)
 
void StoreTaggedFieldWithWriteBarrier (Register object, int offset, Register value, RegisterSnapshot register_snapshot, ValueIsCompressed value_is_compressed, ValueCanBeSmi value_can_be_smi)
 
void StoreTaggedFieldNoWriteBarrier (Register object, int offset, Register value)
 
void StoreTaggedSignedField (Register object, int offset, Register value)
 
void StoreTaggedSignedField (Register object, int offset, Tagged< Smi > value)
 
void StoreInt32Field (Register object, int offset, int32_t value)
 
void AssertElidedWriteBarrier (Register object, Register value, RegisterSnapshot snapshot)
 
void StoreField (MemOperand operand, Register value, int element_size)
 
void ReverseByteOrder (Register value, int element_size)
 
void BuildTypedArrayDataPointer (Register data_pointer, Register object)
 
MemOperand TypedArrayElementOperand (Register data_pointer, Register index, int element_size)
 
MemOperand DataViewElementOperand (Register data_pointer, Register index)
 
void StringCharCodeOrCodePointAt (BuiltinStringPrototypeCharCodeOrCodePointAt::Mode mode, RegisterSnapshot &register_snapshot, Register result, Register string, Register index, Register scratch1, Register scratch2, Label *result_fits_one_byte)
 
void StringFromCharCode (RegisterSnapshot register_snapshot, Label *char_code_fits_one_byte, Register result, Register char_code, Register scratch, CharCodeMaskMode mask_mode)
 
void ToBoolean (Register value, CheckType check_type, ZoneLabelRef is_true, ZoneLabelRef is_false, bool fallthrough_when_true)
 
void TestTypeOf (Register object, interpreter::TestTypeOfFlags::LiteralFlag literal, Label *if_true, Label::Distance true_distance, bool fallthrough_when_true, Label *if_false, Label::Distance false_distance, bool fallthrough_when_false)
 
void SmiTagInt32AndJumpIfFail (Register dst, Register src, Label *fail, Label::Distance distance=Label::kFar)
 
void SmiTagInt32AndJumpIfFail (Register reg, Label *fail, Label::Distance distance=Label::kFar)
 
void SmiTagInt32AndJumpIfSuccess (Register dst, Register src, Label *success, Label::Distance distance=Label::kFar)
 
void SmiTagInt32AndJumpIfSuccess (Register reg, Label *success, Label::Distance distance=Label::kFar)
 
void UncheckedSmiTagInt32 (Register dst, Register src)
 
void UncheckedSmiTagInt32 (Register reg)
 
void SmiTagUint32AndJumpIfFail (Register dst, Register src, Label *fail, Label::Distance distance=Label::kFar)
 
void SmiTagUint32AndJumpIfFail (Register reg, Label *fail, Label::Distance distance=Label::kFar)
 
void SmiTagIntPtrAndJumpIfFail (Register dst, Register src, Label *fail, Label::Distance distance=Label::kFar)
 
void SmiTagUint32AndJumpIfSuccess (Register dst, Register src, Label *success, Label::Distance distance=Label::kFar)
 
void SmiTagUint32AndJumpIfSuccess (Register reg, Label *success, Label::Distance distance=Label::kFar)
 
void SmiTagIntPtrAndJumpIfSuccess (Register dst, Register src, Label *success, Label::Distance distance=Label::kFar)
 
void UncheckedSmiTagUint32 (Register dst, Register src)
 
void UncheckedSmiTagUint32 (Register reg)
 
void CheckInt32IsSmi (Register obj, Label *fail, Register scratch=Register::no_reg())
 
void CheckIntPtrIsSmi (Register obj, Label *fail, Label::Distance distance=Label::kFar)
 
void SmiAddConstant (Register dst, Register src, int value, Label *fail, Label::Distance distance=Label::kFar)
 
void SmiAddConstant (Register reg, int value, Label *fail, Label::Distance distance=Label::kFar)
 
void SmiSubConstant (Register dst, Register src, int value, Label *fail, Label::Distance distance=Label::kFar)
 
void SmiSubConstant (Register reg, int value, Label *fail, Label::Distance distance=Label::kFar)
 
void MoveHeapNumber (Register dst, double value)
 
void TruncateDoubleToInt32 (Register dst, DoubleRegister src)
 
void TryTruncateDoubleToInt32 (Register dst, DoubleRegister src, Label *fail)
 
void TryTruncateDoubleToUint32 (Register dst, DoubleRegister src, Label *fail)
 
void TryChangeFloat64ToIndex (Register result, DoubleRegister value, Label *success, Label *fail)
 
void MaybeEmitPlaceHolderForDeopt ()
 
void DefineLazyDeoptPoint (LazyDeoptInfo *info)
 
void DefineExceptionHandlerPoint (NodeBase *node)
 
void DefineExceptionHandlerAndLazyDeoptPoint (NodeBase *node)
 
template<typename Function , typename... Args>
LabelMakeDeferredCode (Function &&deferred_code_gen, Args &&... args)
 
template<typename Function , typename... Args>
void JumpToDeferredIf (Condition cond, Function &&deferred_code_gen, Args &&... args)
 
void JumpIfNotCallable (Register object, Register scratch, CheckType check_type, Label *target, Label::Distance distance=Label::kFar)
 
void JumpIfUndetectable (Register object, Register scratch, CheckType check_type, Label *target, Label::Distance distance=Label::kFar)
 
void JumpIfNotUndetectable (Register object, Register scratch, CheckType, Label *target, Label::Distance distance=Label::kFar)
 
template<typename NodeT >
LabelGetDeoptLabel (NodeT *node, DeoptimizeReason reason)
 
bool IsDeoptLabel (Label *label)
 
void EmitEagerDeoptStress (Label *label)
 
template<typename NodeT >
void EmitEagerDeopt (NodeT *node, DeoptimizeReason reason)
 
template<typename NodeT >
void EmitEagerDeoptIf (Condition cond, DeoptimizeReason reason, NodeT *node)
 
template<typename NodeT >
void EmitEagerDeoptIfNotEqual (DeoptimizeReason reason, NodeT *node)
 
template<typename NodeT >
void EmitEagerDeoptIfSmi (NodeT *node, Register object, DeoptimizeReason reason)
 
template<typename NodeT >
void EmitEagerDeoptIfNotSmi (NodeT *node, Register object, DeoptimizeReason reason)
 
void MaterialiseValueNode (Register dst, ValueNode *value)
 
void IncrementInt32 (Register reg)
 
void DecrementInt32 (Register reg)
 
void AddInt32 (Register reg, int amount)
 
void AndInt32 (Register reg, int mask)
 
void OrInt32 (Register reg, int mask)
 
void AndInt32 (Register reg, Register other)
 
void OrInt32 (Register reg, Register other)
 
void ShiftLeft (Register reg, int amount)
 
void IncrementAddress (Register reg, int32_t delta)
 
void LoadAddress (Register dst, MemOperand location)
 
void Call (Label *target)
 
void EmitEnterExitFrame (int extra_slots, StackFrame::Type frame_type, Register c_function, Register scratch)
 
MemOperand StackSlotOperand (StackSlot slot)
 
void Move (StackSlot dst, Register src)
 
void Move (StackSlot dst, DoubleRegister src)
 
void Move (Register dst, StackSlot src)
 
void Move (DoubleRegister dst, StackSlot src)
 
void Move (MemOperand dst, Register src)
 
void Move (Register dst, MemOperand src)
 
void Move (DoubleRegister dst, DoubleRegister src)
 
void Move (Register dst, Tagged< Smi > src)
 
void Move (Register dst, ExternalReference src)
 
void Move (Register dst, Register src)
 
void Move (Register dst, Tagged< TaggedIndex > i)
 
void Move (Register dst, int32_t i)
 
void Move (Register dst, uint32_t i)
 
void Move (Register dst, IndirectPointerTag i)
 
void Move (DoubleRegister dst, double n)
 
void Move (DoubleRegister dst, Float64 n)
 
void Move (Register dst, Handle< HeapObject > obj)
 
void MoveTagged (Register dst, Handle< HeapObject > obj)
 
void LoadMapForCompare (Register dst, Register obj)
 
void LoadByte (Register dst, MemOperand src)
 
void LoadInt32 (Register dst, MemOperand src)
 
void StoreInt32 (MemOperand dst, Register src)
 
void LoadFloat32 (DoubleRegister dst, MemOperand src)
 
void StoreFloat32 (MemOperand dst, DoubleRegister src)
 
void LoadFloat64 (DoubleRegister dst, MemOperand src)
 
void StoreFloat64 (MemOperand dst, DoubleRegister src)
 
void LoadUnalignedFloat64 (DoubleRegister dst, Register base, Register index)
 
void LoadUnalignedFloat64AndReverseByteOrder (DoubleRegister dst, Register base, Register index)
 
void StoreUnalignedFloat64 (Register base, Register index, DoubleRegister src)
 
void ReverseByteOrderAndStoreUnalignedFloat64 (Register base, Register index, DoubleRegister src)
 
void SignExtend32To64Bits (Register dst, Register src)
 
void NegateInt32 (Register val)
 
void ToUint8Clamped (Register result, DoubleRegister value, Label *min, Label *max, Label *done)
 
template<typename NodeT >
void DeoptIfBufferDetached (Register array, Register scratch, NodeT *node)
 
Condition IsCallableAndNotUndetectable (Register map, Register scratch)
 
Condition IsNotCallableNorUndetactable (Register map, Register scratch)
 
void LoadInstanceType (Register instance_type, Register heap_object)
 
void JumpIfObjectType (Register heap_object, InstanceType type, Label *target, Label::Distance distance=Label::kFar)
 
void JumpIfNotObjectType (Register heap_object, InstanceType type, Label *target, Label::Distance distance=Label::kFar)
 
void AssertObjectType (Register heap_object, InstanceType type, AbortReason reason)
 
void BranchOnObjectType (Register heap_object, InstanceType type, Label *if_true, Label::Distance true_distance, bool fallthrough_when_true, Label *if_false, Label::Distance false_distance, bool fallthrough_when_false)
 
void JumpIfObjectTypeInRange (Register heap_object, InstanceType lower_limit, InstanceType higher_limit, Label *target, Label::Distance distance=Label::kFar)
 
void JumpIfObjectTypeNotInRange (Register heap_object, InstanceType lower_limit, InstanceType higher_limit, Label *target, Label::Distance distance=Label::kFar)
 
void AssertObjectTypeInRange (Register heap_object, InstanceType lower_limit, InstanceType higher_limit, AbortReason reason)
 
void BranchOnObjectTypeInRange (Register heap_object, InstanceType lower_limit, InstanceType higher_limit, Label *if_true, Label::Distance true_distance, bool fallthrough_when_true, Label *if_false, Label::Distance false_distance, bool fallthrough_when_false)
 
void JumpIfJSAnyIsNotPrimitive (Register heap_object, Label *target, Label::Distance distance=Label::kFar)
 
void JumpIfStringMap (Register map, Label *target, Label::Distance distance=Label::kFar, bool jump_if_true=true)
 
void JumpIfString (Register heap_object, Label *target, Label::Distance distance=Label::kFar)
 
void JumpIfNotString (Register heap_object, Label *target, Label::Distance distance=Label::kFar)
 
void CheckJSAnyIsStringAndBranch (Register heap_object, Label *if_true, Label::Distance true_distance, bool fallthrough_when_true, Label *if_false, Label::Distance false_distance, bool fallthrough_when_false)
 
void CompareMapWithRoot (Register object, RootIndex index, Register scratch)
 
void CompareInstanceTypeAndJumpIf (Register map, InstanceType type, Condition cond, Label *target, Label::Distance distance)
 
void CompareInstanceType (Register map, InstanceType instance_type)
 
void CompareInstanceTypeRange (Register map, InstanceType lower_limit, InstanceType higher_limit)
 
Condition CompareInstanceTypeRange (Register map, Register instance_type_out, InstanceType lower_limit, InstanceType higher_limit)
 
template<typename NodeT >
void CompareInstanceTypeRangeAndEagerDeoptIf (Register map, Register instance_type_out, InstanceType lower_limit, InstanceType higher_limit, Condition cond, DeoptimizeReason reason, NodeT *node)
 
template<typename NodeT >
void CompareRootAndEmitEagerDeoptIf (Register reg, RootIndex index, Condition cond, DeoptimizeReason reason, NodeT *node)
 
template<typename NodeT >
void CompareMapWithRootAndEmitEagerDeoptIf (Register reg, RootIndex index, Register scratch, Condition cond, DeoptimizeReason reason, NodeT *node)
 
template<typename NodeT >
void CompareTaggedRootAndEmitEagerDeoptIf (Register reg, RootIndex index, Condition cond, DeoptimizeReason reason, NodeT *node)
 
template<typename NodeT >
void CompareUInt32AndEmitEagerDeoptIf (Register reg, int imm, Condition cond, DeoptimizeReason reason, NodeT *node)
 
void CompareTaggedAndJumpIf (Register reg, Tagged< Smi > smi, Condition cond, Label *target, Label::Distance distance=Label::kFar)
 
void CompareTaggedAndJumpIf (Register reg, Handle< HeapObject > obj, Condition cond, Label *target, Label::Distance distance=Label::kFar)
 
void CompareTaggedAndJumpIf (Register src1, Register src2, Condition cond, Label *target, Label::Distance distance=Label::kFar)
 
void CompareFloat64AndJumpIf (DoubleRegister src1, DoubleRegister src2, Condition cond, Label *target, Label *nan_failed, Label::Distance distance=Label::kFar)
 
void CompareFloat64AndBranch (DoubleRegister src1, DoubleRegister src2, Condition cond, BasicBlock *if_true, BasicBlock *if_false, BasicBlock *next_block, BasicBlock *nan_failed)
 
void PrepareCallCFunction (int num_reg_arguments, int num_double_registers=0)
 
void CallSelf ()
 
void CallBuiltin (Builtin builtin)
 
template<Builtin kBuiltin, typename... Args>
void CallBuiltin (Args &&... args)
 
void CallRuntime (Runtime::FunctionId fid)
 
void CallRuntime (Runtime::FunctionId fid, int num_args)
 
void Jump (Label *target, Label::Distance distance=Label::kFar)
 
void JumpToDeopt (Label *target)
 
void JumpIf (Condition cond, Label *target, Label::Distance distance=Label::kFar)
 
void JumpIfRoot (Register with, RootIndex index, Label *if_equal, Label::Distance distance=Label::kFar)
 
void JumpIfNotRoot (Register with, RootIndex index, Label *if_not_equal, Label::Distance distance=Label::kFar)
 
void JumpIfSmi (Register src, Label *on_smi, Label::Distance near_jump=Label::kFar)
 
void JumpIfNotSmi (Register src, Label *on_not_smi, Label::Distance near_jump=Label::kFar)
 
void JumpIfByte (Condition cc, Register value, int32_t byte, Label *target, Label::Distance distance=Label::kFar)
 
void JumpIfHoleNan (DoubleRegister value, Register scratch, Label *target, Label::Distance distance=Label::kFar)
 
void JumpIfNotHoleNan (DoubleRegister value, Register scratch, Label *target, Label::Distance distance=Label::kFar)
 
void JumpIfNan (DoubleRegister value, Label *target, Label::Distance distance=Label::kFar)
 
void JumpIfNotNan (DoubleRegister value, Label *target, Label::Distance distance=Label::kFar)
 
void JumpIfNotHoleNan (MemOperand operand, Label *target, Label::Distance distance=Label::kFar)
 
void CompareInt32AndJumpIf (Register r1, Register r2, Condition cond, Label *target, Label::Distance distance=Label::kFar)
 
void CompareIntPtrAndJumpIf (Register r1, Register r2, Condition cond, Label *target, Label::Distance distance=Label::kFar)
 
void CompareIntPtrAndJumpIf (Register r1, int32_t value, Condition cond, Label *target, Label::Distance distance=Label::kFar)
 
void CompareInt32AndJumpIf (Register r1, int32_t value, Condition cond, Label *target, Label::Distance distance=Label::kFar)
 
void CompareInt32AndBranch (Register r1, int32_t value, Condition cond, BasicBlock *if_true, BasicBlock *if_false, BasicBlock *next_block)
 
void CompareInt32AndBranch (Register r1, Register r2, Condition cond, BasicBlock *if_true, BasicBlock *if_false, BasicBlock *next_block)
 
void CompareInt32AndBranch (Register r1, int32_t value, Condition cond, Label *if_true, Label::Distance true_distance, bool fallthrough_when_true, Label *if_false, Label::Distance false_distance, bool fallthrough_when_false)
 
void CompareInt32AndBranch (Register r1, Register r2, Condition cond, Label *if_true, Label::Distance true_distance, bool fallthrough_when_true, Label *if_false, Label::Distance false_distance, bool fallthrough_when_false)
 
void CompareIntPtrAndBranch (Register r1, int32_t value, Condition cond, BasicBlock *if_true, BasicBlock *if_false, BasicBlock *next_block)
 
void CompareIntPtrAndBranch (Register r1, int32_t value, Condition cond, Label *if_true, Label::Distance true_distance, bool fallthrough_when_true, Label *if_false, Label::Distance false_distance, bool fallthrough_when_false)
 
void CompareInt32AndAssert (Register r1, Register r2, Condition cond, AbortReason reason)
 
void CompareInt32AndAssert (Register r1, int32_t value, Condition cond, AbortReason reason)
 
void CompareSmiAndJumpIf (Register r1, Tagged< Smi > value, Condition cond, Label *target, Label::Distance distance=Label::kFar)
 
void CompareSmiAndAssert (Register r1, Tagged< Smi > value, Condition cond, AbortReason reason)
 
void CompareByteAndJumpIf (MemOperand left, int8_t right, Condition cond, Register scratch, Label *target, Label::Distance distance=Label::kFar)
 
void CompareDoubleAndJumpIfZeroOrNaN (DoubleRegister reg, Label *target, Label::Distance distance=Label::kFar)
 
void CompareDoubleAndJumpIfZeroOrNaN (MemOperand operand, Label *target, Label::Distance distance=Label::kFar)
 
void TestInt32AndJumpIfAnySet (Register r1, int32_t mask, Label *target, Label::Distance distance=Label::kFar)
 
void TestInt32AndJumpIfAnySet (MemOperand operand, int32_t mask, Label *target, Label::Distance distance=Label::kFar)
 
void TestUint8AndJumpIfAnySet (MemOperand operand, uint8_t mask, Label *target, Label::Distance distance=Label::kFar)
 
void TestInt32AndJumpIfAllClear (Register r1, int32_t mask, Label *target, Label::Distance distance=Label::kFar)
 
void TestInt32AndJumpIfAllClear (MemOperand operand, int32_t mask, Label *target, Label::Distance distance=Label::kFar)
 
void TestUint8AndJumpIfAllClear (MemOperand operand, uint8_t mask, Label *target, Label::Distance distance=Label::kFar)
 
void Int32ToDouble (DoubleRegister result, Register src)
 
void Uint32ToDouble (DoubleRegister result, Register src)
 
void SmiToDouble (DoubleRegister result, Register smi)
 
void IntPtrToDouble (DoubleRegister result, Register src)
 
void StringLength (Register result, Register string)
 
void LoadThinStringValue (Register result, Register string)
 
void StoreFixedArrayElementWithWriteBarrier (Register array, Register index, Register value, RegisterSnapshot register_snapshot)
 
void StoreFixedArrayElementNoWriteBarrier (Register array, Register index, Register value)
 
void Pop (Register dst)
 
template<typename... T>
void Push (T... vals)
 
template<typename... T>
void PushReverse (T... vals)
 
void OSRPrologue (Graph *graph)
 
void Prologue (Graph *graph)
 
void FinishCode ()
 
void AssertStackSizeCorrect ()
 
Condition FunctionEntryStackCheck (int stack_check_offset)
 
void SetMapAsRoot (Register object, RootIndex map)
 
void LoadHeapNumberValue (DoubleRegister result, Register heap_number)
 
void StoreHeapNumberValue (DoubleRegister value, Register heap_number)
 
void LoadHeapInt32Value (Register result, Register heap_number)
 
void StoreHeapInt32Value (Register value, Register heap_number)
 
void LoadHeapNumberOrOddballValue (DoubleRegister result, Register object)
 
void LoadDataField (const PolymorphicAccessInfo &access_info, Register result, Register object, Register scratch)
 
void MaybeEmitDeoptBuiltinsCall (size_t eager_deopt_count, Label *eager_deopt_entry, size_t lazy_deopt_count, Label *lazy_deopt_entry)
 
void GenerateCheckConstTrackingLetCellFooter (Register context, Register data, int index, Label *done)
 
void TryMigrateInstance (Register object, RegisterSnapshot &register_snapshot, Label *fail)
 
void TryMigrateInstanceAndMarkMapAsMigrationTarget (Register object, RegisterSnapshot &register_snapshot)
 
compiler::NativeContextRef native_context () const
 
MaglevCodeGenStatecode_gen_state () const
 
MaglevSafepointTableBuildersafepoint_table_builder () const
 
MaglevCompilationInfocompilation_info () const
 
TemporaryRegisterScopescratch_register_scope () const
 
template<>
void MoveRepr (MachineRepresentation repr, Register dst, Register src)
 
template<>
void MoveRepr (MachineRepresentation repr, Register dst, MemOperand src)
 
template<>
void MoveRepr (MachineRepresentation repr, MemOperand dst, Register src)
 
template<>
void MoveRepr (MachineRepresentation repr, MemOperand dst, MemOperand src)
 
template<>
void MoveRepr (MachineRepresentation repr, Register dst, Register src)
 
template<>
void MoveRepr (MachineRepresentation repr, Register dst, MemOperand src)
 
template<>
void MoveRepr (MachineRepresentation repr, MemOperand dst, Register src)
 
template<>
void MoveRepr (MachineRepresentation repr, MemOperand dst, MemOperand src)
 
template<>
void MoveRepr (MachineRepresentation repr, Register dst, Register src)
 
template<>
void MoveRepr (MachineRepresentation repr, Register dst, MemOperand src)
 
template<>
void MoveRepr (MachineRepresentation repr, MemOperand dst, Register src)
 
template<>
void MoveRepr (MachineRepresentation repr, MemOperand dst, MemOperand src)
 
template<>
void MoveRepr (MachineRepresentation repr, Register dst, Register src)
 
template<>
void MoveRepr (MachineRepresentation repr, Register dst, MemOperand src)
 
template<>
void MoveRepr (MachineRepresentation repr, MemOperand dst, Register src)
 
template<>
void MoveRepr (MachineRepresentation repr, MemOperand dst, MemOperand src)
 
template<>
void MoveRepr (MachineRepresentation repr, MemOperand dst, MemOperand src)
 
void Pop (Register src1, Register src2, Condition cond=al)
 
void Pop (Register src1, Register src2, Register src3, Condition cond=al)
 
void Pop (Register src1, Register src2, Register src3, Register src4, Condition cond=al)
 
template<LoadLRMode lr_mode = kDontLoadLR>
void Pop (const CPURegister &dst0, const CPURegister &dst1=NoReg, const CPURegister &dst2=NoReg, const CPURegister &dst3=NoReg)
 
void Pop (const CPURegister &dst0, const CPURegister &dst1, const CPURegister &dst2, const CPURegister &dst3, const CPURegister &dst4, const CPURegister &dst5=NoReg, const CPURegister &dst6=NoReg, const CPURegister &dst7=NoReg)
 
void Pop (Operand dst)
 
void Pop (XMMRegister dst, Register scratch)
 
void Pop (Register src1, Register src2)
 
void Pop (Register src1, Register src2, Register src3)
 
void Pop (uint32_t count=1)
 
void Pop (Register src1, Register src2, Register src3, Register src4)
 
void Pop (Register src1, Register src2, Register src3, Register src4, Register src5)
 
template<typename... Rs>
void Pop (Register r, Rs... rs)
 
- Public Member Functions inherited from v8::internal::MacroAssembler
void EnterFrame (StackFrame::Type type, bool load_constant_pool_pointer_reg=false)
 
int LeaveFrame (StackFrame::Type type)
 
void AllocateStackSpace (Register bytes)
 
void AllocateStackSpace (int bytes)
 
void PushCommonFrame (Register marker_reg=no_reg)
 
void StubPrologue (StackFrame::Type type)
 
void Prologue ()
 
void DropArguments (Register count)
 
void DropArgumentsAndPushNewReceiver (Register argc, Register receiver)
 
void PushStandardFrame (Register function_reg)
 
void InitializeRootRegister ()
 
void Push (Register src)
 
void Push (Handle< HeapObject > handle)
 
void Push (Tagged< Smi > smi)
 
void Push (Tagged< TaggedIndex > index)
 
void Push (Register src1, Register src2, Condition cond=al)
 
void Push (Register src1, Register src2, Register src3, Condition cond=al)
 
void Push (Register src1, Register src2, Register src3, Register src4, Condition cond=al)
 
void Push (Register src1, Register src2, Register src3, Register src4, Register src5, Condition cond=al)
 
void PushArray (Register array, Register size, Register scratch, PushArrayOrder order=PushArrayOrder::kNormal)
 
void Pop (Register dst)
 
void Pop (Register src1, Register src2, Condition cond=al)
 
void Pop (Register src1, Register src2, Register src3, Condition cond=al)
 
void Pop (Register src1, Register src2, Register src3, Register src4, Condition cond=al)
 
void PrepareCallCFunction (int num_reg_arguments, int num_double_registers=0, Register scratch=no_reg)
 
void MovToFloatParameter (DwVfpRegister src)
 
void MovToFloatParameters (DwVfpRegister src1, DwVfpRegister src2)
 
void MovToFloatResult (DwVfpRegister src)
 
int CallCFunction (ExternalReference function, int num_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_label=nullptr)
 
int CallCFunction (Register function, int num_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_label=nullptr)
 
int CallCFunction (ExternalReference function, int num_reg_arguments, int num_double_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_label=nullptr)
 
int CallCFunction (Register function, int num_reg_arguments, int num_double_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_label=nullptr)
 
void MovFromFloatParameter (DwVfpRegister dst)
 
void MovFromFloatResult (DwVfpRegister dst)
 
void Trap ()
 
void DebugBreak ()
 
void Assert (Condition cond, AbortReason reason) NOOP_UNLESS_DEBUG_CODE
 
void AssertUnreachable (AbortReason reason) NOOP_UNLESS_DEBUG_CODE
 
void Check (Condition cond, AbortReason reason)
 
void Abort (AbortReason msg)
 
void LslPair (Register dst_low, Register dst_high, Register src_low, Register src_high, Register shift)
 
void LslPair (Register dst_low, Register dst_high, Register src_low, Register src_high, uint32_t shift)
 
void LsrPair (Register dst_low, Register dst_high, Register src_low, Register src_high, Register shift)
 
void LsrPair (Register dst_low, Register dst_high, Register src_low, Register src_high, uint32_t shift)
 
void AsrPair (Register dst_low, Register dst_high, Register src_low, Register src_high, Register shift)
 
void AsrPair (Register dst_low, Register dst_high, Register src_low, Register src_high, uint32_t shift)
 
void LoadFromConstantsTable (Register destination, int constant_index) final
 
void LoadRootRegisterOffset (Register destination, intptr_t offset) final
 
void LoadRootRelative (Register destination, int32_t offset) final
 
void StoreRootRelative (int32_t offset, Register value) final
 
MemOperand ExternalReferenceAsOperand (ExternalReference reference, Register scratch)
 
MemOperand ExternalReferenceAsOperand (IsolateFieldId id)
 
void Call (Register target, Condition cond=al)
 
void Call (Address target, RelocInfo::Mode rmode, Condition cond=al, TargetAddressStorageMode mode=CAN_INLINE_TARGET_ADDRESS, bool check_constant_pool=true)
 
void Call (Handle< Code > code, RelocInfo::Mode rmode=RelocInfo::CODE_TARGET, Condition cond=al, TargetAddressStorageMode mode=CAN_INLINE_TARGET_ADDRESS, bool check_constant_pool=true)
 
void Call (Label *target)
 
MemOperand EntryFromBuiltinAsOperand (Builtin builtin)
 
void LoadEntryFromBuiltin (Builtin builtin, Register destination)
 
void LoadEntryFromBuiltinIndex (Register builtin_index, Register target)
 
void CallBuiltinByIndex (Register builtin_index, Register target)
 
void CallBuiltin (Builtin builtin, Condition cond=al)
 
void TailCallBuiltin (Builtin builtin, Condition cond=al)
 
void LoadCodeInstructionStart (Register destination, Register code_object, CodeEntrypointTag tag=kDefaultCodeEntrypointTag)
 
void CallCodeObject (Register code_object)
 
void JumpCodeObject (Register code_object, JumpMode jump_mode=JumpMode::kJump)
 
void CallJSFunction (Register function_object, uint16_t argument_count)
 
void JumpJSFunction (Register function_object, JumpMode jump_mode=JumpMode::kJump)
 
void StoreReturnAddressAndCall (Register target)
 
void EnforceStackAlignment ()
 
void BailoutIfDeoptimized ()
 
void CallForDeoptimization (Builtin target, int deopt_id, Label *exit, DeoptimizeKind kind, Label *ret, Label *jump_deoptimization_entry_label)
 
void Drop (int count, Condition cond=al)
 
void Drop (Register count, Condition cond=al)
 
void Ret (Condition cond=al)
 
void VFPCompareAndSetFlags (const SwVfpRegister src1, const SwVfpRegister src2, const Condition cond=al)
 
void VFPCompareAndSetFlags (const SwVfpRegister src1, const float src2, const Condition cond=al)
 
void VFPCompareAndSetFlags (const DwVfpRegister src1, const DwVfpRegister src2, const Condition cond=al)
 
void VFPCompareAndSetFlags (const DwVfpRegister src1, const double src2, const Condition cond=al)
 
void VFPCanonicalizeNaN (const DwVfpRegister dst, const DwVfpRegister src, const Condition cond=al)
 
void VFPCanonicalizeNaN (const DwVfpRegister value, const Condition cond=al)
 
void VmovHigh (Register dst, DwVfpRegister src)
 
void VmovHigh (DwVfpRegister dst, Register src)
 
void VmovLow (Register dst, DwVfpRegister src)
 
void VmovLow (DwVfpRegister dst, Register src)
 
void CheckPageFlag (Register object, int mask, Condition cc, Label *condition_met)
 
void CheckPageFlag (Register object, Register scratch, int mask, Condition cc, Label *condition_met)
 
void CheckFor32DRegs (Register scratch)
 
void MaybeSaveRegisters (RegList registers)
 
void MaybeRestoreRegisters (RegList registers)
 
void CallEphemeronKeyBarrier (Register object, Operand offset, SaveFPRegsMode fp_mode)
 
void CallRecordWriteStubSaveRegisters (Register object, Operand offset, SaveFPRegsMode fp_mode, StubCallMode mode=StubCallMode::kCallBuiltinPointer)
 
void CallRecordWriteStub (Register object, Register slot_address, SaveFPRegsMode fp_mode, StubCallMode mode=StubCallMode::kCallBuiltinPointer)
 
void MoveObjectAndSlot (Register dst_object, Register dst_slot, Register object, Operand offset)
 
void SaveFPRegs (Register location, Register scratch)
 
void RestoreFPRegs (Register location, Register scratch)
 
void SaveFPRegsToHeap (Register location, Register scratch)
 
void RestoreFPRegsFromHeap (Register location, Register scratch)
 
int RequiredStackSizeForCallerSaved (SaveFPRegsMode fp_mode, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg) const
 
int PushCallerSaved (SaveFPRegsMode fp_mode, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg)
 
int PopCallerSaved (SaveFPRegsMode fp_mode, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg)
 
void Jump (Register target, Condition cond=al)
 
void Jump (Address target, RelocInfo::Mode rmode, Condition cond=al)
 
void Jump (Handle< Code > code, RelocInfo::Mode rmode, Condition cond=al)
 
void Jump (const ExternalReference &reference)
 
void GetLabelAddress (Register dst, Label *target)
 
void FloatMax (SwVfpRegister result, SwVfpRegister left, SwVfpRegister right, Label *out_of_line)
 
void FloatMin (SwVfpRegister result, SwVfpRegister left, SwVfpRegister right, Label *out_of_line)
 
void FloatMax (DwVfpRegister result, DwVfpRegister left, DwVfpRegister right, Label *out_of_line)
 
void FloatMin (DwVfpRegister result, DwVfpRegister left, DwVfpRegister right, Label *out_of_line)
 
void FloatMaxOutOfLine (SwVfpRegister result, SwVfpRegister left, SwVfpRegister right)
 
void FloatMinOutOfLine (SwVfpRegister result, SwVfpRegister left, SwVfpRegister right)
 
void FloatMaxOutOfLine (DwVfpRegister result, DwVfpRegister left, DwVfpRegister right)
 
void FloatMinOutOfLine (DwVfpRegister result, DwVfpRegister left, DwVfpRegister right)
 
void ExtractLane (Register dst, QwNeonRegister src, NeonDataType dt, int lane)
 
void ExtractLane (Register dst, DwVfpRegister src, NeonDataType dt, int lane)
 
void ExtractLane (SwVfpRegister dst, QwNeonRegister src, int lane)
 
void ExtractLane (DwVfpRegister dst, QwNeonRegister src, int lane)
 
void ReplaceLane (QwNeonRegister dst, QwNeonRegister src, Register src_lane, NeonDataType dt, int lane)
 
void ReplaceLane (QwNeonRegister dst, QwNeonRegister src, SwVfpRegister src_lane, int lane)
 
void ReplaceLane (QwNeonRegister dst, QwNeonRegister src, DwVfpRegister src_lane, int lane)
 
void LoadLane (NeonSize sz, NeonListOperand dst_list, uint8_t lane, NeonMemOperand src)
 
void StoreLane (NeonSize sz, NeonListOperand src_list, uint8_t lane, NeonMemOperand dst)
 
void Move (Register dst, Tagged< Smi > smi)
 
void Move (Register dst, Handle< HeapObject > value)
 
void Move (Register dst, ExternalReference reference)
 
void LoadIsolateField (Register dst, IsolateFieldId id)
 
void Move (Register dst, Register src, Condition cond=al)
 
void Move (Register dst, const MemOperand &src)
 
void Move (Register dst, const Operand &src, SBit sbit=LeaveCC, Condition cond=al)
 
void MovePair (Register dst0, Register src0, Register dst1, Register src1)
 
void Move (SwVfpRegister dst, SwVfpRegister src, Condition cond=al)
 
void Move (DwVfpRegister dst, DwVfpRegister src, Condition cond=al)
 
void Move (QwNeonRegister dst, QwNeonRegister src)
 
void VmovExtended (Register dst, int src_code)
 
void VmovExtended (int dst_code, Register src)
 
void VmovExtended (int dst_code, int src_code)
 
void VmovExtended (int dst_code, const MemOperand &src)
 
void VmovExtended (const MemOperand &dst, int src_code)
 
void Swap (Register srcdst0, Register srcdst1)
 
void Swap (DwVfpRegister srcdst0, DwVfpRegister srcdst1)
 
void Swap (QwNeonRegister srcdst0, QwNeonRegister srcdst1)
 
void Bfc (Register dst, Register src, int lsb, int width, Condition cond=al)
 
void SmiUntag (Register reg, SBit s=LeaveCC)
 
void SmiUntag (Register dst, Register src, SBit s=LeaveCC)
 
void SmiToInt32 (Register smi)
 
void SmiToInt32 (Register dst, Register smi)
 
void LoadTaggedRoot (Register destination, RootIndex index)
 
void LoadRoot (Register destination, RootIndex index) final
 
void LoadRoot (Register destination, RootIndex index, Condition cond)
 
void JumpIfSmi (Register value, Label *smi_label)
 
void JumpIfEqual (Register x, int32_t y, Label *dest)
 
void JumpIfLessThan (Register x, int32_t y, Label *dest)
 
void LoadMap (Register destination, Register object)
 
void LoadFeedbackVector (Register dst, Register closure, Register scratch, Label *fbv_undef)
 
void PushAll (RegList registers)
 
void PopAll (RegList registers)
 
void PushAll (DoubleRegList registers, int stack_slot_size=kDoubleSize)
 
void PopAll (DoubleRegList registers, int stack_slot_size=kDoubleSize)
 
void Cmp (const Register &rn, int imm)
 
void CmpTagged (const Register &r1, const Register &r2)
 
Condition CheckSmi (Register src)
 
void Zero (const MemOperand &dest)
 
void Zero (const MemOperand &dest1, const MemOperand &dest2)
 
void DecompressTagged (const Register &destination, const MemOperand &field_operand)
 
void DecompressTagged (const Register &destination, const Register &source)
 
void AssertMap (Register object) NOOP_UNLESS_DEBUG_CODE
 
void LoadTaggedField (const Register &destination, const MemOperand &field_operand)
 
void LoadTaggedFieldWithoutDecompressing (const Register &destination, const MemOperand &field_operand)
 
void SmiUntagField (Register dst, const MemOperand &src)
 
void StoreTaggedField (const Register &value, const MemOperand &dst_field_operand)
 
void StoreTaggedField (const MemOperand &dst_field_operand, const Register &value)
 
void Switch (Register scratch, Register value, int case_value_base, Label **labels, int num_labels)
 
void JumpIfCodeIsMarkedForDeoptimization (Register code, Register scratch, Label *if_marked_for_deoptimization)
 
void JumpIfCodeIsTurbofanned (Register code, Register scratch, Label *if_turbofanned)
 
void TryLoadOptimizedOsrCode (Register scratch_and_result, CodeKind min_opt_level, Register feedback_vector, FeedbackSlot slot, Label *on_result, Label::Distance distance)
 
void AssertZeroExtended (Register int32_register)
 
void TryInlineTruncateDoubleToI (Register result, DwVfpRegister input, Label *done)
 
void TruncateDoubleToI (Isolate *isolate, Zone *zone, Register result, DwVfpRegister double_input, StubCallMode stub_mode)
 
bool use_eabi_hardfloat ()
 
void ComputeCodeStartAddress (Register dst)
 
void CodeEntry ()
 
void ExceptionHandler ()
 
void BindExceptionHandler (Label *label)
 
void I64x2BitMask (Register dst, QwNeonRegister src)
 
void I64x2Eq (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void I64x2Ne (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void I64x2GtS (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void I64x2GeS (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void I64x2AllTrue (Register dst, QwNeonRegister src)
 
void I64x2Abs (QwNeonRegister dst, QwNeonRegister src)
 
void F64x2ConvertLowI32x4S (QwNeonRegister dst, QwNeonRegister src)
 
void F64x2ConvertLowI32x4U (QwNeonRegister dst, QwNeonRegister src)
 
void F64x2PromoteLowF32x4 (QwNeonRegister dst, QwNeonRegister src)
 
void Mls (Register dst, Register src1, Register src2, Register srcA, Condition cond=al)
 
void And (Register dst, Register src1, const Operand &src2, Condition cond=al)
 
void Ubfx (Register dst, Register src, int lsb, int width, Condition cond=al)
 
void Sbfx (Register dst, Register src, int lsb, int width, Condition cond=al)
 
void RecordWriteField (Register object, int offset, Register value, LinkRegisterStatus lr_status, SaveFPRegsMode save_fp, SmiCheck smi_check=SmiCheck::kInline)
 
void RecordWrite (Register object, Operand offset, Register value, LinkRegisterStatus lr_status, SaveFPRegsMode save_fp, SmiCheck smi_check=SmiCheck::kInline)
 
void EnterExitFrame (Register scratch, int stack_space, StackFrame::Type frame_type)
 
void LeaveExitFrame (Register scratch)
 
void LoadGlobalProxy (Register dst)
 
void LoadNativeContextSlot (Register dst, int index)
 
void InvokeFunctionCode (Register function, Register new_target, Register expected_parameter_count, Register actual_parameter_count, InvokeType type)
 
void CallDebugOnFunctionCall (Register fun, Register new_target, Register expected_parameter_count, Register actual_parameter_count)
 
void InvokeFunctionWithNewTarget (Register function, Register new_target, Register actual_parameter_count, InvokeType type)
 
void InvokeFunction (Register function, Register expected_parameter_count, Register actual_parameter_count, InvokeType type)
 
void PushStackHandler ()
 
void PopStackHandler ()
 
void CompareObjectType (Register heap_object, Register map, Register type_reg, InstanceType type)
 
void CompareObjectTypeRange (Register heap_object, Register map, Register type_reg, Register scratch, InstanceType lower_limit, InstanceType higher_limit)
 
void CompareInstanceType (Register map, Register type_reg, InstanceType type)
 
void CompareInstanceTypeRange (Register map, Register type_reg, Register scratch, InstanceType lower_limit, InstanceType higher_limit)
 
void CompareRoot (Register obj, RootIndex index)
 
void CompareTaggedRoot (Register with, RootIndex index)
 
void PushRoot (RootIndex index)
 
void JumpIfRoot (Register with, RootIndex index, Label *if_equal)
 
void JumpIfNotRoot (Register with, RootIndex index, Label *if_not_equal)
 
void CompareRange (Register value, Register scratch, unsigned lower_limit, unsigned higher_limit)
 
void JumpIfIsInRange (Register value, Register scratch, unsigned lower_limit, unsigned higher_limit, Label *on_in_range)
 
MemOperand ReceiverOperand ()
 
void AssertFeedbackCell (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void AssertFeedbackVector (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void ReplaceClosureCodeWithOptimizedCode (Register optimized_code, Register closure)
 
void GenerateTailCallToReturnedCode (Runtime::FunctionId function_id)
 
Condition LoadFeedbackVectorFlagsAndCheckIfNeedsProcessing (Register flags, Register feedback_vector, CodeKind current_code_kind)
 
void LoadFeedbackVectorFlagsAndJumpIfNeedsProcessing (Register flags, Register feedback_vector, CodeKind current_code_kind, Label *flags_need_processing)
 
void OptimizeCodeOrTailCallOptimizedCodeSlot (Register flags, Register feedback_vector)
 
void CallRuntime (const Runtime::Function *f, int num_arguments)
 
void CallRuntime (Runtime::FunctionId fid)
 
void CallRuntime (Runtime::FunctionId fid, int num_arguments)
 
void TailCallRuntime (Runtime::FunctionId fid)
 
void JumpToExternalReference (const ExternalReference &builtin, bool builtin_exit_frame=false)
 
void LoadWeakValue (Register out, Register in, Label *target_if_cleared)
 
void IncrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void EmitIncrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void DecrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void EmitDecrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void LoadStackLimit (Register destination, StackLimitKind kind)
 
void StackOverflowCheck (Register num_args, Register scratch, Label *stack_overflow)
 
void SmiTag (Register reg, SBit s=LeaveCC)
 
void SmiTag (Register dst, Register src, SBit s=LeaveCC)
 
void SmiTst (Register value)
 
void JumpIfNotSmi (Register value, Label *not_smi_label)
 
void AssertNotSmi (Register object, AbortReason reason=AbortReason::kOperandIsASmi) NOOP_UNLESS_DEBUG_CODE
 
void AssertSmi (Register object, AbortReason reason=AbortReason::kOperandIsNotASmi) NOOP_UNLESS_DEBUG_CODE
 
void AssertConstructor (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertCallableFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertBoundFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertGeneratorObject (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertUndefinedOrAllocationSite (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void AssertJSAny (Register object, Register map_tmp, Register tmp, AbortReason abort_reason) NOOP_UNLESS_DEBUG_CODE
 
template<typename Field >
void DecodeField (Register dst, Register src)
 
template<typename Field >
void DecodeField (Register reg)
 
void TestCodeIsMarkedForDeoptimization (Register code, Register scratch)
 
Operand ClearedValue () const
 
bool CanUseNearCallOrJump (RelocInfo::Mode rmode)
 
void EnterFrame (StackFrame::Type type)
 
void EnterFrame (StackFrame::Type type, bool load_constant_pool_pointer_reg)
 
void LeaveFrame (StackFrame::Type type)
 
void InitializeRootRegister ()
 
void Mov (const Register &rd, const Operand &operand, DiscardMoveMode discard_mode=kDontDiscardForSameWReg)
 
void Mov (const Register &rd, uint64_t imm)
 
void Mov (const Register &rd, ExternalReference reference)
 
void LoadIsolateField (const Register &rd, IsolateFieldId id)
 
void Mov (const VRegister &vd, int vd_index, const VRegister &vn, int vn_index)
 
void Mov (const Register &rd, Tagged< Smi > smi)
 
void Mov (const VRegister &vd, const VRegister &vn, int index)
 
void Mov (const VRegister &vd, int vd_index, const Register &rn)
 
void Mov (const Register &rd, const VRegister &vn, int vn_index)
 
void Move (Register dst, Tagged< Smi > src)
 
void Move (Register dst, MemOperand src)
 
void Move (Register dst, Register src)
 
void MovePair (Register dst0, Register src0, Register dst1, Register src1)
 
void Swap (Register lhs, Register rhs)
 
void Swap (VRegister lhs, VRegister rhs)
 
void Bcax (const VRegister &vd, const VRegister &vn, const VRegister &vm, const VRegister &va)
 
void Eor3 (const VRegister &vd, const VRegister &vn, const VRegister &vm, const VRegister &va)
 
void Bic (const VRegister &vd, const int imm8, const int left_shift=0)
 
void jmp (Label *L)
 
void B (Label *label, BranchType type, Register reg=NoReg, int bit=-1)
 
void B (Label *label)
 
void B (Condition cond, Label *label)
 
void B (Label *label, Condition cond)
 
void Tbnz (const Register &rt, unsigned bit_pos, Label *label)
 
void Tbz (const Register &rt, unsigned bit_pos, Label *label)
 
void Cbnz (const Register &rt, Label *label)
 
void Cbz (const Register &rt, Label *label)
 
void Pacibsp ()
 
void Autibsp ()
 
void Pacib1716 ()
 
void Autib1716 ()
 
void Dmb (BarrierDomain domain, BarrierType type)
 
void Dsb (BarrierDomain domain, BarrierType type)
 
void Isb ()
 
void Csdb ()
 
void SmiUntag (Register dst, Register src)
 
void SmiUntag (Register dst, const MemOperand &src)
 
void SmiUntag (Register smi)
 
void SmiTag (Register dst, Register src)
 
void SmiTag (Register smi)
 
void SmiToInt32 (Register smi)
 
void SmiToInt32 (Register dst, Register smi)
 
void Assert (Condition cond, AbortReason reason) NOOP_UNLESS_DEBUG_CODE
 
void AssertUnreachable (AbortReason reason) NOOP_UNLESS_DEBUG_CODE
 
void AssertSmi (Register object, AbortReason reason=AbortReason::kOperandIsNotASmi) NOOP_UNLESS_DEBUG_CODE
 
void AssertNotSmi (Register object, AbortReason reason=AbortReason::kOperandIsASmi) NOOP_UNLESS_DEBUG_CODE
 
void AssertZeroExtended (Register int32_register) NOOP_UNLESS_DEBUG_CODE
 
void AssertJSAny (Register object, Register map_tmp, Register tmp, AbortReason abort_reason) NOOP_UNLESS_DEBUG_CODE
 
void Check (Condition cond, AbortReason reason)
 
void SbxCheck (Condition cc, AbortReason reason)
 
Condition CheckSmi (Register src)
 
void Debug (const char *message, uint32_t code, Instr params=BREAK)
 
void Trap ()
 
void DebugBreak ()
 
void Abort (AbortReason reason)
 
void Printf (const char *format, CPURegister arg0=NoCPUReg, CPURegister arg1=NoCPUReg, CPURegister arg2=NoCPUReg, CPURegister arg3=NoCPUReg)
 
void PrintfNoPreserve (const char *format, const CPURegister &arg0=NoCPUReg, const CPURegister &arg1=NoCPUReg, const CPURegister &arg2=NoCPUReg, const CPURegister &arg3=NoCPUReg)
 
void Asr (const Register &rd, const Register &rn, unsigned shift)
 
void Asr (const Register &rd, const Register &rn, const Register &rm)
 
bool TryOneInstrMoveImmediate (const Register &dst, int64_t imm)
 
void Bind (Label *label, BranchTargetIdentifier id=BranchTargetIdentifier::kNone)
 
void CodeEntry ()
 
void ExceptionHandler ()
 
void BindExceptionHandler (Label *label)
 
void JumpTarget ()
 
void BindJumpTarget (Label *label)
 
void CallTarget ()
 
void BindCallTarget (Label *label)
 
void JumpOrCallTarget ()
 
void BindJumpOrCallTarget (Label *label)
 
CPURegListTmpList ()
 
CPURegListFPTmpList ()
 
void Mvn (const Register &rd, uint64_t imm)
 
void Mvn (const Register &rd, const Operand &operand)
 
void LogicalMacro (const Register &rd, const Register &rn, const Operand &operand, LogicalOp op)
 
void AddSubMacro (const Register &rd, const Register &rn, const Operand &operand, FlagsUpdate S, AddSubOp op)
 
void Orr (const Register &rd, const Register &rn, const Operand &operand)
 
void Orr (const VRegister &vd, const int imm8, const int left_shift=0)
 
void Orn (const Register &rd, const Register &rn, const Operand &operand)
 
void Eor (const Register &rd, const Register &rn, const Operand &operand)
 
void Eon (const Register &rd, const Register &rn, const Operand &operand)
 
void And (const Register &rd, const Register &rn, const Operand &operand)
 
void Ands (const Register &rd, const Register &rn, const Operand &operand)
 
void Tst (const Register &rn, const Operand &operand)
 
void Bic (const Register &rd, const Register &rn, const Operand &operand)
 
void Blr (const Register &xn)
 
void Cmp (const Register &rn, const Operand &operand)
 
void CmpTagged (const Register &rn, const Operand &operand)
 
void Subs (const Register &rd, const Register &rn, const Operand &operand)
 
void Csel (const Register &rd, const Register &rn, const Operand &operand, Condition cond)
 
void Fcsel (const VRegister &fd, const VRegister &fn, const VRegister &fm, Condition cond)
 
void CompareRange (Register value, Register scratch, unsigned lower_limit, unsigned higher_limit)
 
void JumpIfIsInRange (Register value, Register scratch, unsigned lower_limit, unsigned higher_limit, Label *on_in_range)
 
void AssertSpAligned () NOOP_UNLESS_DEBUG_CODE
 
void CopySlots (int dst, Register src, Register slot_count)
 
void CopySlots (Register dst, Register src, Register slot_count)
 
void CopyDoubleWords (Register dst, Register src, Register count, CopyDoubleWordsMode mode=kDstLessThanSrc)
 
void SlotAddress (Register dst, int slot_offset)
 
void SlotAddress (Register dst, Register slot_offset)
 
void Ldr (const CPURegister &rt, const Operand &imm)
 
void Claim (int64_t count, uint64_t unit_size=kXRegSize)
 
void Claim (const Register &count, uint64_t unit_size=kXRegSize, bool assume_sp_aligned=true)
 
void Drop (int64_t count, uint64_t unit_size=kXRegSize)
 
void Drop (const Register &count, uint64_t unit_size=kXRegSize)
 
void DropArguments (const Register &count, int extra_slots=0)
 
void DropArguments (int64_t count)
 
void DropSlots (int64_t count)
 
void PushArgument (const Register &arg)
 
void Add (const Register &rd, const Register &rn, const Operand &operand)
 
void Adds (const Register &rd, const Register &rn, const Operand &operand)
 
void Sub (const Register &rd, const Register &rn, const Operand &operand)
 
void AssertPositiveOrZero (Register value) NOOP_UNLESS_DEBUG_CODE
 
void Switch (Register scratch, Register value, int case_value_base, Label **labels, int num_labels)
 
template<StoreLRMode lr_mode = kDontStoreLR>
void Push (const CPURegister &src0, const CPURegister &src1=NoReg, const CPURegister &src2=NoReg, const CPURegister &src3=NoReg)
 
void Push (const CPURegister &src0, const CPURegister &src1, const CPURegister &src2, const CPURegister &src3, const CPURegister &src4, const CPURegister &src5=NoReg, const CPURegister &src6=NoReg, const CPURegister &src7=NoReg)
 
template<LoadLRMode lr_mode = kDontLoadLR>
void Pop (const CPURegister &dst0, const CPURegister &dst1=NoReg, const CPURegister &dst2=NoReg, const CPURegister &dst3=NoReg)
 
void Pop (const CPURegister &dst0, const CPURegister &dst1, const CPURegister &dst2, const CPURegister &dst3, const CPURegister &dst4, const CPURegister &dst5=NoReg, const CPURegister &dst6=NoReg, const CPURegister &dst7=NoReg)
 
template<StoreLRMode lr_mode = kDontStoreLR>
void Push (const Register &src0, const VRegister &src1)
 
void MaybeSaveRegisters (RegList registers)
 
void MaybeRestoreRegisters (RegList registers)
 
void CallEphemeronKeyBarrier (Register object, Operand offset, SaveFPRegsMode fp_mode)
 
void CallIndirectPointerBarrier (Register object, Operand offset, SaveFPRegsMode fp_mode, IndirectPointerTag tag)
 
void CallRecordWriteStubSaveRegisters (Register object, Operand offset, SaveFPRegsMode fp_mode, StubCallMode mode=StubCallMode::kCallBuiltinPointer)
 
void CallRecordWriteStub (Register object, Register slot_address, SaveFPRegsMode fp_mode, StubCallMode mode=StubCallMode::kCallBuiltinPointer)
 
void MoveObjectAndSlot (Register dst_object, Register dst_slot, Register object, Operand offset)
 
void PushCPURegList (CPURegList registers)
 
void PopCPURegList (CPURegList registers)
 
int RequiredStackSizeForCallerSaved (SaveFPRegsMode fp_mode, Register exclusion) const
 
int PushCallerSaved (SaveFPRegsMode fp_mode, Register exclusion=no_reg)
 
int PopCallerSaved (SaveFPRegsMode fp_mode, Register exclusion=no_reg)
 
Operand MoveImmediateForShiftedOp (const Register &dst, int64_t imm, PreShiftImmMode mode)
 
void CheckPageFlag (const Register &object, int mask, Condition cc, Label *condition_met)
 
void CheckPageFlag (const Register &object, Register scratch, int mask, Condition cc, Label *condition_met)
 
void CompareAndBranch (const Register &lhs, const Operand &rhs, Condition cond, Label *label)
 
void CompareTaggedAndBranch (const Register &lhs, const Operand &rhs, Condition cond, Label *label)
 
void TestAndBranchIfAnySet (const Register &reg, const uint64_t bit_pattern, Label *label)
 
void TestAndBranchIfAllClear (const Register &reg, const uint64_t bit_pattern, Label *label)
 
void Brk (int code)
 
void JumpIfSmi (Register value, Label *smi_label, Label *not_smi_label=nullptr)
 
void JumpIf (Condition cond, Register x, int32_t y, Label *dest)
 
void JumpIfEqual (Register x, int32_t y, Label *dest)
 
void JumpIfLessThan (Register x, int32_t y, Label *dest)
 
void JumpIfUnsignedLessThan (Register x, int32_t y, Label *dest)
 
void JumpIfMarking (Label *is_marking, Label::Distance condition_met_distance=Label::kFar)
 
void JumpIfNotMarking (Label *not_marking, Label::Distance condition_met_distance=Label::kFar)
 
void LoadMap (Register dst, Register object)
 
void LoadCompressedMap (Register dst, Register object)
 
void LoadFeedbackVector (Register dst, Register closure, Register scratch, Label *fbv_undef)
 
void Fmov (VRegister fd, VRegister fn)
 
void Fmov (VRegister fd, Register rn)
 
void Fmov (VRegister fd, double imm)
 
void Fmov (VRegister fd, float imm)
 
template<typename T >
void Fmov (VRegister fd, T imm)
 
void Fmov (Register rd, VRegister fn)
 
void Movi (const VRegister &vd, uint64_t imm, Shift shift=LSL, int shift_amount=0)
 
void Movi (const VRegister &vd, uint64_t hi, uint64_t lo)
 
void LoadFromConstantsTable (Register destination, int constant_index) final
 
void LoadRootRegisterOffset (Register destination, intptr_t offset) final
 
void LoadRootRelative (Register destination, int32_t offset) final
 
void StoreRootRelative (int32_t offset, Register value) final
 
MemOperand ExternalReferenceAsOperand (ExternalReference reference, Register scratch)
 
MemOperand ExternalReferenceAsOperand (IsolateFieldId id)
 
void Jump (Register target, Condition cond=al)
 
void Jump (Address target, RelocInfo::Mode rmode, Condition cond=al)
 
void Jump (Handle< Code > code, RelocInfo::Mode rmode, Condition cond=al)
 
void Jump (const ExternalReference &reference)
 
void Call (Register target)
 
void Call (Address target, RelocInfo::Mode rmode)
 
void Call (Handle< Code > code, RelocInfo::Mode rmode=RelocInfo::CODE_TARGET)
 
void Call (ExternalReference target)
 
void IndirectCall (Address target, RelocInfo::Mode rmode)
 
void LoadEntryFromBuiltinIndex (Register builtin, Register target)
 
void LoadEntryFromBuiltin (Builtin builtin, Register destination)
 
MemOperand EntryFromBuiltinAsOperand (Builtin builtin)
 
void CallBuiltinByIndex (Register builtin, Register target)
 
void CallBuiltin (Builtin builtin)
 
void TailCallBuiltin (Builtin builtin, Condition cond=al)
 
void LoadCodeInstructionStart (Register destination, Register code_object, CodeEntrypointTag tag)
 
void CallCodeObject (Register code_object, CodeEntrypointTag tag)
 
void JumpCodeObject (Register code_object, CodeEntrypointTag tag, JumpMode jump_mode=JumpMode::kJump)
 
void CallJSFunction (Register function_object, uint16_t argument_count)
 
void JumpJSFunction (Register function_object, JumpMode jump_mode=JumpMode::kJump)
 
void StoreReturnAddressAndCall (Register target)
 
void BailoutIfDeoptimized ()
 
void CallForDeoptimization (Builtin target, int deopt_id, Label *exit, DeoptimizeKind kind, Label *ret, Label *jump_deoptimization_entry_label)
 
int CallCFunction (ExternalReference function, int num_reg_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_location=nullptr)
 
int CallCFunction (ExternalReference function, int num_reg_arguments, int num_double_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_location=nullptr)
 
int CallCFunction (Register function, int num_reg_arguments, int num_double_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_location=nullptr)
 
void TruncateDoubleToI (Isolate *isolate, Zone *zone, Register result, DoubleRegister double_input, StubCallMode stub_mode, LinkRegisterStatus lr_status)
 
void Mul (const Register &rd, const Register &rn, const Register &rm)
 
void Fcvtzs (const Register &rd, const VRegister &fn)
 
void Fcvtzs (const VRegister &vd, const VRegister &vn, int fbits=0)
 
void Fjcvtzs (const Register &rd, const VRegister &vn)
 
void Fcvtzu (const Register &rd, const VRegister &fn)
 
void Fcvtzu (const VRegister &vd, const VRegister &vn, int fbits=0)
 
void Madd (const Register &rd, const Register &rn, const Register &rm, const Register &ra)
 
void Mneg (const Register &rd, const Register &rn, const Register &rm)
 
void Sdiv (const Register &rd, const Register &rn, const Register &rm)
 
void Udiv (const Register &rd, const Register &rn, const Register &rm)
 
void Msub (const Register &rd, const Register &rn, const Register &rm, const Register &ra)
 
void Lsl (const Register &rd, const Register &rn, unsigned shift)
 
void Lsl (const Register &rd, const Register &rn, const Register &rm)
 
void Umull (const Register &rd, const Register &rn, const Register &rm)
 
void Umulh (const Register &rd, const Register &rn, const Register &rm)
 
void Smull (const Register &rd, const Register &rn, const Register &rm)
 
void Smulh (const Register &rd, const Register &rn, const Register &rm)
 
void Sxtb (const Register &rd, const Register &rn)
 
void Sxth (const Register &rd, const Register &rn)
 
void Sxtw (const Register &rd, const Register &rn)
 
void Ubfiz (const Register &rd, const Register &rn, unsigned lsb, unsigned width)
 
void Sbfiz (const Register &rd, const Register &rn, unsigned lsb, unsigned width)
 
void Ubfx (const Register &rd, const Register &rn, unsigned lsb, unsigned width)
 
void Lsr (const Register &rd, const Register &rn, unsigned shift)
 
void Lsr (const Register &rd, const Register &rn, const Register &rm)
 
void Ror (const Register &rd, const Register &rs, unsigned shift)
 
void Ror (const Register &rd, const Register &rn, const Register &rm)
 
void Cmn (const Register &rn, const Operand &operand)
 
void Fadd (const VRegister &fd, const VRegister &fn, const VRegister &fm)
 
void Fcmp (const VRegister &fn, const VRegister &fm)
 
void Fcmp (const VRegister &fn, double value)
 
void Fabs (const VRegister &fd, const VRegister &fn)
 
void Fmul (const VRegister &fd, const VRegister &fn, const VRegister &fm)
 
void Fsub (const VRegister &fd, const VRegister &fn, const VRegister &fm)
 
void Fdiv (const VRegister &fd, const VRegister &fn, const VRegister &fm)
 
void Fmax (const VRegister &fd, const VRegister &fn, const VRegister &fm)
 
void Fmin (const VRegister &fd, const VRegister &fn, const VRegister &fm)
 
void Rbit (const Register &rd, const Register &rn)
 
void Rev (const Register &rd, const Register &rn)
 
void Adr (const Register &rd, Label *label, AdrHint=kAdrNear)
 
void Adc (const Register &rd, const Register &rn, const Operand &operand)
 
void Ccmp (const Register &rn, const Operand &operand, StatusFlags nzcv, Condition cond)
 
void CcmpTagged (const Register &rn, const Operand &operand, StatusFlags nzcv, Condition cond)
 
void Ccmn (const Register &rn, const Operand &operand, StatusFlags nzcv, Condition cond)
 
void Clz (const Register &rd, const Register &rn)
 
template<StoreLRMode lr_mode = kDontStoreLR>
void Poke (const CPURegister &src, const Operand &offset)
 
template<LoadLRMode lr_mode = kDontLoadLR>
void Peek (const CPURegister &dst, const Operand &offset)
 
void PokePair (const CPURegister &src1, const CPURegister &src2, int offset)
 
void Sbfx (const Register &rd, const Register &rn, unsigned lsb, unsigned width)
 
void Bfi (const Register &rd, const Register &rn, unsigned lsb, unsigned width)
 
void Scvtf (const VRegister &fd, const Register &rn, unsigned fbits=0)
 
void Scvtf (const VRegister &vd, const VRegister &vn, int fbits=0)
 
void Ucvtf (const VRegister &fd, const Register &rn, unsigned fbits=0)
 
void Ucvtf (const VRegister &vd, const VRegister &vn, int fbits=0)
 
void AssertFPCRState (Register fpcr=NoReg) NOOP_UNLESS_DEBUG_CODE
 
void CanonicalizeNaN (const VRegister &dst, const VRegister &src)
 
void CanonicalizeNaN (const VRegister &reg)
 
void CmovX (const Register &rd, const Register &rn, Condition cond)
 
void Cset (const Register &rd, Condition cond)
 
void Csetm (const Register &rd, Condition cond)
 
void Fccmp (const VRegister &fn, const VRegister &fm, StatusFlags nzcv, Condition cond)
 
void Fccmp (const VRegister &fn, const double value, StatusFlags nzcv, Condition cond)
 
void Csinc (const Register &rd, const Register &rn, const Register &rm, Condition cond)
 
void Fcvt (const VRegister &fd, const VRegister &fn)
 
int ActivationFrameAlignment ()
 
void Ins (const VRegister &vd, int vd_index, const VRegister &vn, int vn_index)
 
void Ins (const VRegister &vd, int vd_index, const Register &rn)
 
void Bl (Label *label)
 
void Br (const Register &xn)
 
void Uxtb (const Register &rd, const Register &rn)
 
void Uxth (const Register &rd, const Register &rn)
 
void Uxtw (const Register &rd, const Register &rn)
 
void Dup (const VRegister &vd, const VRegister &vn, int index)
 
void Dup (const VRegister &vd, const Register &rn)
 
void St1 (const VRegister &vt, const MemOperand &dst)
 
void St1 (const VRegister &vt, const VRegister &vt2, const MemOperand &dst)
 
void St1 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const MemOperand &dst)
 
void St1 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, const MemOperand &dst)
 
void St1 (const VRegister &vt, int lane, const MemOperand &dst)
 
void Umov (const Register &rd, const VRegister &vn, int vn_index)
 
void Tbl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void Tbl (const VRegister &vd, const VRegister &vn, const VRegister &vn2, const VRegister &vm)
 
void Tbl (const VRegister &vd, const VRegister &vn, const VRegister &vn2, const VRegister &vn3, const VRegister &vm)
 
void Tbl (const VRegister &vd, const VRegister &vn, const VRegister &vn2, const VRegister &vn3, const VRegister &vn4, const VRegister &vm)
 
void Ext (const VRegister &vd, const VRegister &vn, const VRegister &vm, int index)
 
void Smov (const Register &rd, const VRegister &vn, int vn_index)
 
 ATOMIC_MEMORY_SIMPLE_MACRO_LIST (ATOMIC_MEMORY_LOAD_MACRO_MODES, DECLARE_LOAD_FUNCTION, Ld, ld) ATOMIC_MEMORY_SIMPLE_MACRO_LIST(ATOMIC_MEMORY_STORE_MACRO_MODES
 
void LoadRoot (Register destination, RootIndex index) final
 
void LoadTaggedRoot (Register destination, RootIndex index)
 
void PushRoot (RootIndex index)
 
void Ret (const Register &xn=lr)
 
void TryConvertDoubleToInt64 (Register result, DoubleRegister input, Label *done)
 
void Mrs (const Register &rt, SystemRegister sysreg)
 
void Msr (SystemRegister sysreg, const Register &rt)
 
void Prologue ()
 
void Cmgt (const VRegister &vd, const VRegister &vn, int imm)
 
void Cmge (const VRegister &vd, const VRegister &vn, int imm)
 
void Cmeq (const VRegister &vd, const VRegister &vn, int imm)
 
void Cmlt (const VRegister &vd, const VRegister &vn, int imm)
 
void Cmle (const VRegister &vd, const VRegister &vn, int imm)
 
void Neg (const Register &rd, const Operand &operand)
 
void Negs (const Register &rd, const Operand &operand)
 
void Abs (const Register &rd, const Register &rm, Label *is_not_representable=nullptr, Label *is_representable=nullptr)
 
void Cls (const Register &rd, const Register &rn)
 
void Cneg (const Register &rd, const Register &rn, Condition cond)
 
void Rev16 (const Register &rd, const Register &rn)
 
void Rev32 (const Register &rd, const Register &rn)
 
void Fcvtns (const Register &rd, const VRegister &fn)
 
void Fcvtnu (const Register &rd, const VRegister &fn)
 
void Fcvtms (const Register &rd, const VRegister &fn)
 
void Fcvtmu (const Register &rd, const VRegister &fn)
 
void Fcvtas (const Register &rd, const VRegister &fn)
 
void Fcvtau (const Register &rd, const VRegister &fn)
 
void ComputeCodeStartAddress (const Register &rd)
 
void LoadTaggedField (const Register &destination, const MemOperand &field_operand)
 
void LoadTaggedFieldWithoutDecompressing (const Register &destination, const MemOperand &field_operand)
 
void LoadTaggedSignedField (const Register &destination, const MemOperand &field_operand)
 
void SmiUntagField (Register dst, const MemOperand &src)
 
void StoreTaggedField (const Register &value, const MemOperand &dst_field_operand)
 
void StoreTwoTaggedFields (const Register &value, const MemOperand &dst_field_operand)
 
void StoreTaggedField (const MemOperand &dst_field_operand, const Register &value)
 
void AtomicStoreTaggedField (const Register &value, const Register &dst_base, const Register &dst_index, const Register &temp)
 
void DecompressTaggedSigned (const Register &destination, const MemOperand &field_operand)
 
void DecompressTagged (const Register &destination, const MemOperand &field_operand)
 
void DecompressTagged (const Register &destination, const Register &source)
 
void DecompressTagged (const Register &destination, Tagged_t immediate)
 
void DecompressProtected (const Register &destination, const MemOperand &field_operand)
 
void AtomicDecompressTaggedSigned (const Register &destination, const Register &base, const Register &index, const Register &temp)
 
void AtomicDecompressTagged (const Register &destination, const Register &base, const Register &index, const Register &temp)
 
void RestoreFPAndLR ()
 
void PopcntHelper (Register dst, Register src)
 
void I8x16BitMask (Register dst, VRegister src, VRegister temp=NoVReg)
 
void I16x8BitMask (Register dst, VRegister src)
 
void I32x4BitMask (Register dst, VRegister src)
 
void I64x2BitMask (Register dst, VRegister src)
 
void I64x2AllTrue (Register dst, VRegister src)
 
void DecodeSandboxedPointer (Register value)
 
void LoadSandboxedPointerField (Register destination, MemOperand field_operand)
 
void StoreSandboxedPointerField (Register value, MemOperand dst_field_operand)
 
void LoadExternalPointerField (Register destination, MemOperand field_operand, ExternalPointerTagRange tag_range, Register isolate_root=Register::no_reg())
 
void LoadTrustedPointerField (Register destination, MemOperand field_operand, IndirectPointerTag tag)
 
void StoreTrustedPointerField (Register value, MemOperand dst_field_operand)
 
void LoadCodePointerField (Register destination, MemOperand field_operand)
 
void StoreCodePointerField (Register value, MemOperand dst_field_operand)
 
void LoadIndirectPointerField (Register destination, MemOperand field_operand, IndirectPointerTag tag)
 
void StoreIndirectPointerField (Register value, MemOperand dst_field_operand)
 
void LoadProtectedPointerField (Register destination, MemOperand field_operand)
 
void Bics (const Register &rd, const Register &rn, const Operand &operand)
 
void Adcs (const Register &rd, const Register &rn, const Operand &operand)
 
void Sbc (const Register &rd, const Register &rn, const Operand &operand)
 
void Sbcs (const Register &rd, const Register &rn, const Operand &operand)
 
void Ngc (const Register &rd, const Operand &operand)
 
void Ngcs (const Register &rd, const Operand &operand)
 
void Bfxil (const Register &rd, const Register &rn, unsigned lsb, unsigned width)
 
void Cinc (const Register &rd, const Register &rn, Condition cond)
 
void Cinv (const Register &rd, const Register &rn, Condition cond)
 
void CzeroX (const Register &rd, Condition cond)
 
void Csinv (const Register &rd, const Register &rn, const Register &rm, Condition cond)
 
void Csneg (const Register &rd, const Register &rn, const Register &rm, Condition cond)
 
void Extr (const Register &rd, const Register &rn, const Register &rm, unsigned lsb)
 
void Fcvtl2 (const VRegister &vd, const VRegister &vn)
 
void Fcvtn2 (const VRegister &vd, const VRegister &vn)
 
void Fcvtxn (const VRegister &vd, const VRegister &vn)
 
void Fcvtxn2 (const VRegister &vd, const VRegister &vn)
 
void Fmadd (const VRegister &fd, const VRegister &fn, const VRegister &fm, const VRegister &fa)
 
void Fmaxnm (const VRegister &fd, const VRegister &fn, const VRegister &fm)
 
void Fminnm (const VRegister &fd, const VRegister &fn, const VRegister &fm)
 
void Fmsub (const VRegister &fd, const VRegister &fn, const VRegister &fm, const VRegister &fa)
 
void Fnmadd (const VRegister &fd, const VRegister &fn, const VRegister &fm, const VRegister &fa)
 
void Fnmsub (const VRegister &fd, const VRegister &fn, const VRegister &fm, const VRegister &fa)
 
void Hint (SystemHint code)
 
void Hlt (int code)
 
void Ldnp (const CPURegister &rt, const CPURegister &rt2, const MemOperand &src)
 
void Movk (const Register &rd, uint64_t imm, int shift=-1)
 
void Nop ()
 
void Mvni (const VRegister &vd, const int imm8, Shift shift=LSL, const int shift_amount=0)
 
void Smaddl (const Register &rd, const Register &rn, const Register &rm, const Register &ra)
 
void Smsubl (const Register &rd, const Register &rn, const Register &rm, const Register &ra)
 
void Stnp (const CPURegister &rt, const CPURegister &rt2, const MemOperand &dst)
 
void Umaddl (const Register &rd, const Register &rn, const Register &rm, const Register &ra)
 
void Umsubl (const Register &rd, const Register &rn, const Register &rm, const Register &ra)
 
void Ld1 (const VRegister &vt, const MemOperand &src)
 
void Ld1 (const VRegister &vt, const VRegister &vt2, const MemOperand &src)
 
void Ld1 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const MemOperand &src)
 
void Ld1 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, const MemOperand &src)
 
void Ld1 (const VRegister &vt, int lane, const MemOperand &src)
 
void Ld1r (const VRegister &vt, const MemOperand &src)
 
void Ld2 (const VRegister &vt, const VRegister &vt2, const MemOperand &src)
 
void Ld2 (const VRegister &vt, const VRegister &vt2, int lane, const MemOperand &src)
 
void Ld2r (const VRegister &vt, const VRegister &vt2, const MemOperand &src)
 
void Ld3 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const MemOperand &src)
 
void Ld3 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, int lane, const MemOperand &src)
 
void Ld3r (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const MemOperand &src)
 
void Ld4 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, const MemOperand &src)
 
void Ld4 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, int lane, const MemOperand &src)
 
void Ld4r (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, const MemOperand &src)
 
void St2 (const VRegister &vt, const VRegister &vt2, const MemOperand &dst)
 
void St3 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const MemOperand &dst)
 
void St4 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, const MemOperand &dst)
 
void St2 (const VRegister &vt, const VRegister &vt2, int lane, const MemOperand &dst)
 
void St3 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, int lane, const MemOperand &dst)
 
void St4 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, int lane, const MemOperand &dst)
 
void Tbx (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void Tbx (const VRegister &vd, const VRegister &vn, const VRegister &vn2, const VRegister &vm)
 
void Tbx (const VRegister &vd, const VRegister &vn, const VRegister &vn2, const VRegister &vn3, const VRegister &vm)
 
void Tbx (const VRegister &vd, const VRegister &vn, const VRegister &vn2, const VRegister &vn3, const VRegister &vn4, const VRegister &vm)
 
void PushSizeRegList (RegList registers, unsigned reg_size)
 
void PushSizeRegList (DoubleRegList registers, unsigned reg_size)
 
void PopSizeRegList (RegList registers, unsigned reg_size)
 
void PopSizeRegList (DoubleRegList registers, unsigned reg_size)
 
void PushXRegList (RegList regs)
 
void PopXRegList (RegList regs)
 
void PushWRegList (RegList regs)
 
void PopWRegList (RegList regs)
 
void PushQRegList (DoubleRegList regs)
 
void PopQRegList (DoubleRegList regs)
 
void PushDRegList (DoubleRegList regs)
 
void PopDRegList (DoubleRegList regs)
 
void PushSRegList (DoubleRegList regs)
 
void PopSRegList (DoubleRegList regs)
 
void PushAll (RegList registers)
 
void PopAll (RegList registers)
 
void PushAll (DoubleRegList registers, int stack_slot_size=kDoubleSize)
 
void PopAll (DoubleRegList registers, int stack_slot_size=kDoubleSize)
 
void PushMultipleTimes (CPURegister src, Register count)
 
void PeekPair (const CPURegister &dst1, const CPURegister &dst2, int offset)
 
void PushCalleeSavedRegisters ()
 
void PopCalleeSavedRegisters ()
 
void AssertFeedbackCell (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void AssertFeedbackVector (Register object)
 
void AssertFeedbackVector (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void ReplaceClosureCodeWithOptimizedCode (Register optimized_code, Register closure)
 
void GenerateTailCallToReturnedCode (Runtime::FunctionId function_id)
 
Condition LoadFeedbackVectorFlagsAndCheckIfNeedsProcessing (Register flags, Register feedback_vector, CodeKind current_code_kind)
 
void LoadFeedbackVectorFlagsAndJumpIfNeedsProcessing (Register flags, Register feedback_vector, CodeKind current_code_kind, Label *flags_need_processing)
 
void OptimizeCodeOrTailCallOptimizedCodeSlot (Register flags, Register feedback_vector)
 
template<typename Field >
void DecodeField (Register dst, Register src)
 
template<typename Field >
void DecodeField (Register reg)
 
void JumpIfCodeIsMarkedForDeoptimization (Register code, Register scratch, Label *if_marked_for_deoptimization)
 
void JumpIfCodeIsTurbofanned (Register code, Register scratch, Label *if_marked_for_deoptimization)
 
Operand ClearedValue () const
 
Operand ReceiverOperand ()
 
void JumpIfNotSmi (Register value, Label *not_smi_label)
 
void AssertMap (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertCode (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertConstructor (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertCallableFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertGeneratorObject (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertBoundFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertUndefinedOrAllocationSite (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertSmiOrHeapObjectInMainCompressionCage (Register object) NOOP_UNLESS_DEBUG_CODE
 
void CallRuntime (const Runtime::Function *f, int num_arguments)
 
void CallRuntime (Runtime::FunctionId fid, int num_arguments)
 
void CallRuntime (Runtime::FunctionId fid)
 
void TailCallRuntime (Runtime::FunctionId fid)
 
void JumpToExternalReference (const ExternalReference &builtin, bool builtin_exit_frame=false)
 
void InvokePrologue (Register expected_parameter_count, Register actual_parameter_count, InvokeType type)
 
void CallDebugOnFunctionCall (Register fun, Register new_target, Register expected_parameter_count_or_dispatch_handle, Register actual_parameter_count)
 
void InvokeFunctionCode (Register function, Register new_target, Register expected_parameter_count, Register actual_parameter_count, InvokeType type)
 
void InvokeFunctionWithNewTarget (Register function, Register new_target, Register actual_parameter_count, InvokeType type)
 
void InvokeFunction (Register function, Register expected_parameter_count, Register actual_parameter_count, InvokeType type)
 
void CompareObjectType (Register heap_object, Register map, Register type_reg, InstanceType type)
 
void IsObjectType (Register heap_object, Register scratch1, Register scratch2, InstanceType type)
 
void IsObjectTypeInRange (Register heap_object, Register scratch, InstanceType lower_limit, InstanceType higher_limit)
 
void JumpIfObjectType (Register object, Register map, Register type_reg, InstanceType type, Label *if_cond_pass, Condition cond=eq)
 
void JumpIfJSAnyIsNotPrimitive (Register heap_object, Register scratch, Label *target, Label::Distance distance=Label::kFar, Condition condition=Condition::kUnsignedGreaterThanEqual)
 
void JumpIfJSAnyIsPrimitive (Register heap_object, Register scratch, Label *target, Label::Distance distance=Label::kFar)
 
void CompareInstanceType (Register map, Register type_reg, InstanceType type)
 
void CompareInstanceTypeRange (Register map, Register type_reg, InstanceType lower_limit, InstanceType higher_limit)
 
void LoadElementsKindFromMap (Register result, Register map)
 
void CompareRoot (const Register &obj, RootIndex index, ComparisonMode mode=ComparisonMode::kDefault)
 
void CompareTaggedRoot (const Register &with, RootIndex index)
 
void JumpIfRoot (const Register &obj, RootIndex index, Label *if_equal)
 
void JumpIfNotRoot (const Register &obj, RootIndex index, Label *if_not_equal)
 
void JumpIfIsInRange (const Register &value, unsigned lower_limit, unsigned higher_limit, Label *on_in_range)
 
void EnterExitFrame (const Register &scratch, int extra_space, StackFrame::Type frame_type)
 
void LeaveExitFrame (const Register &scratch, const Register &scratch2)
 
void LoadGlobalProxy (Register dst)
 
void LoadWeakValue (Register out, Register in, Label *target_if_cleared)
 
void IncrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void EmitIncrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void DecrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void LoadStackLimit (Register destination, StackLimitKind kind)
 
void StackOverflowCheck (Register num_args, Label *stack_overflow)
 
void RecordWriteField (Register object, int offset, Register value, LinkRegisterStatus lr_status, SaveFPRegsMode save_fp, SmiCheck smi_check=SmiCheck::kInline, ReadOnlyCheck ro_check=ReadOnlyCheck::kInline, SlotDescriptor slot=SlotDescriptor::ForDirectPointerSlot())
 
void RecordWrite (Register object, Operand offset, Register value, LinkRegisterStatus lr_status, SaveFPRegsMode save_fp, SmiCheck smi_check=SmiCheck::kInline, ReadOnlyCheck ro_check=ReadOnlyCheck::kInline, SlotDescriptor slot=SlotDescriptor::ForDirectPointerSlot())
 
void LoadNativeContextSlot (Register dst, int index)
 
void TryLoadOptimizedOsrCode (Register scratch_and_result, CodeKind min_opt_level, Register feedback_vector, FeedbackSlot slot, Label *on_result, Label::Distance distance)
 
void MemoryChunkHeaderFromObject (Register object, Register header)
 
void CheckPageFlag (Register object, Register scratch, int mask, Condition cc, Label *condition_met, Label::Distance condition_met_distance=Label::kFar)
 
void EnterFrame (StackFrame::Type type)
 
void EnterFrame (StackFrame::Type type, bool load_constant_pool_pointer_reg)
 
void LeaveFrame (StackFrame::Type type)
 
void AllocateStackSpace (Register bytes)
 
void AllocateStackSpace (int bytes)
 
void Abort (AbortReason reason)
 
void Assert (Condition cc, AbortReason reason) NOOP_UNLESS_DEBUG_CODE
 
void AssertUnreachable (AbortReason reason) NOOP_UNLESS_DEBUG_CODE
 
void Check (Condition cc, AbortReason reason)
 
void CheckStackAlignment ()
 
void AlignStackPointer ()
 
void Move (Register dst, int32_t x)
 
void Move (Register dst, const Immediate &src)
 
void Move (Register dst, Tagged< Smi > src)
 
void Move (Register dst, Handle< HeapObject > src)
 
void Move (Register dst, Register src)
 
void Move (Register dst, Operand src)
 
void Move (Operand dst, const Immediate &src)
 
void Move (XMMRegister dst, uint32_t src)
 
void Move (XMMRegister dst, uint64_t src)
 
void Move (XMMRegister dst, float src)
 
void Move (XMMRegister dst, double src)
 
Operand EntryFromBuiltinAsOperand (Builtin builtin)
 
void Call (Register reg)
 
void Call (Operand op)
 
void Call (Label *target)
 
void Call (Handle< Code > code_object, RelocInfo::Mode rmode)
 
void LoadEntryFromBuiltinIndex (Register builtin_index, Register target)
 
void CallBuiltinByIndex (Register builtin_index, Register target)
 
void CallBuiltin (Builtin builtin)
 
void TailCallBuiltin (Builtin builtin)
 
void LoadCodeInstructionStart (Register destination, Register code_object, CodeEntrypointTag=kDefaultCodeEntrypointTag)
 
void CallCodeObject (Register code_object)
 
void JumpCodeObject (Register code_object, JumpMode jump_mode=JumpMode::kJump)
 
void CallJSFunction (Register function_object, uint16_t argument_count)
 
void JumpJSFunction (Register function_object, JumpMode jump_mode=JumpMode::kJump)
 
void Jump (const ExternalReference &reference)
 
void Jump (Handle< Code > code_object, RelocInfo::Mode rmode)
 
void LoadLabelAddress (Register dst, Label *lbl)
 
void LoadMap (Register destination, Register object)
 
void LoadFeedbackVector (Register dst, Register closure, Register scratch, Label *fbv_undef, Label::Distance distance)
 
void Trap ()
 
void DebugBreak ()
 
void CallForDeoptimization (Builtin target, int deopt_id, Label *exit, DeoptimizeKind kind, Label *ret, Label *jump_deoptimization_entry_label)
 
void JumpIfSmi (Register value, Label *smi_label, Label::Distance distance=Label::kFar)
 
void JumpIfSmi (Operand value, Label *smi_label, Label::Distance distance=Label::kFar)
 
void JumpIfEqual (Register a, int32_t b, Label *dest)
 
void JumpIfLessThan (Register a, int32_t b, Label *dest)
 
void SmiUntag (Register reg)
 
void SmiUntag (Register output, Register value)
 
void SmiToInt32 (Register reg)
 
void PrepareCallCFunction (int num_arguments, Register scratch)
 
int CallCFunction (ExternalReference function, int num_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_location=nullptr)
 
int CallCFunction (Register function, int num_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_location=nullptr)
 
void ShlPair (Register high, Register low, uint8_t imm8)
 
void ShlPair_cl (Register high, Register low)
 
void ShrPair (Register high, Register low, uint8_t imm8)
 
void ShrPair_cl (Register high, Register low)
 
void SarPair (Register high, Register low, uint8_t imm8)
 
void SarPair_cl (Register high, Register low)
 
void StubPrologue (StackFrame::Type type)
 
void Prologue ()
 
void DropArguments (Register count, Register scratch)
 
void DropArgumentsAndPushNewReceiver (Register argc, Register receiver, Register scratch)
 
void DropArgumentsAndPushNewReceiver (Register argc, Operand receiver, Register scratch)
 
void Lzcnt (Register dst, Register src)
 
void Lzcnt (Register dst, Operand src)
 
void Tzcnt (Register dst, Register src)
 
void Tzcnt (Register dst, Operand src)
 
void Popcnt (Register dst, Register src)
 
void Popcnt (Register dst, Operand src)
 
void PushReturnAddressFrom (Register src)
 
void PopReturnAddressTo (Register dst)
 
void PushReturnAddressFrom (XMMRegister src, Register scratch)
 
void PopReturnAddressTo (XMMRegister dst, Register scratch)
 
void Ret ()
 
void InitializeRootRegister ()
 
Operand RootAsOperand (RootIndex index)
 
void LoadRoot (Register destination, RootIndex index) final
 
void LoadFromConstantsTable (Register destination, int constant_index) final
 
void LoadRootRegisterOffset (Register destination, intptr_t offset) final
 
void LoadRootRelative (Register destination, int32_t offset) final
 
void StoreRootRelative (int32_t offset, Register value) final
 
void PushPC ()
 
void PushArray (Register array, Register size, Register scratch, PushArrayOrder order=PushArrayOrder::kNormal)
 
Operand ExternalReferenceAsOperand (ExternalReference reference, Register scratch)
 
Operand ExternalReferenceAsOperand (IsolateFieldId id)
 
Operand ExternalReferenceAddressAsOperand (ExternalReference reference)
 
Operand HeapObjectAsOperand (Handle< HeapObject > object)
 
void LoadAddress (Register destination, ExternalReference source)
 
void CompareRoot (Register with, RootIndex index)
 
void CompareRoot (Register with, Register scratch, RootIndex index)
 
void Ret (int bytes_dropped, Register scratch)
 
void PextrdPreSse41 (Register dst, XMMRegister src, uint8_t imm8)
 
void PinsrdPreSse41 (XMMRegister dst, Register src, uint8_t imm8, uint32_t *load_pc_offset)
 
void PinsrdPreSse41 (XMMRegister dst, Operand src, uint8_t imm8, uint32_t *load_pc_offset)
 
void Cvtsi2ss (XMMRegister dst, Register src)
 
void Cvtsi2ss (XMMRegister dst, Operand src)
 
void Cvtsi2sd (XMMRegister dst, Register src)
 
void Cvtsi2sd (XMMRegister dst, Operand src)
 
void Cvtui2ss (XMMRegister dst, Register src, Register tmp)
 
void Cvtui2ss (XMMRegister dst, Operand src, Register tmp)
 
void Cvttss2ui (Register dst, XMMRegister src, XMMRegister tmp)
 
void Cvttss2ui (Register dst, Operand src, XMMRegister tmp)
 
void Cvtui2sd (XMMRegister dst, Register src, Register scratch)
 
void Cvtui2sd (XMMRegister dst, Operand src, Register scratch)
 
void Cvttsd2ui (Register dst, XMMRegister src, XMMRegister tmp)
 
void Cvttsd2ui (Register dst, Operand src, XMMRegister tmp)
 
void Push (Register src)
 
void Push (Operand src)
 
void Push (Immediate value)
 
void Push (Handle< HeapObject > handle)
 
void Push (Tagged< Smi > smi)
 
void Push (XMMRegister src, Register scratch)
 
void Pop (Register dst)
 
void Pop (Operand dst)
 
void Pop (XMMRegister dst, Register scratch)
 
void MaybeSaveRegisters (RegList registers)
 
void MaybeRestoreRegisters (RegList registers)
 
void CallEphemeronKeyBarrier (Register object, Register slot_address, SaveFPRegsMode fp_mode)
 
void CallRecordWriteStubSaveRegisters (Register object, Register slot_address, SaveFPRegsMode fp_mode, StubCallMode mode=StubCallMode::kCallBuiltinPointer)
 
void CallRecordWriteStub (Register object, Register slot_address, SaveFPRegsMode fp_mode, StubCallMode mode=StubCallMode::kCallBuiltinPointer)
 
int RequiredStackSizeForCallerSaved (SaveFPRegsMode fp_mode, Register exclusion=no_reg) const
 
int PushCallerSaved (SaveFPRegsMode fp_mode, Register exclusion=no_reg)
 
int PopCallerSaved (SaveFPRegsMode fp_mode, Register exclusion=no_reg)
 
void ComputeCodeStartAddress (Register dst)
 
void CodeEntry ()
 
void ExceptionHandler ()
 
void BindExceptionHandler (Label *label)
 
void PushRoot (RootIndex index)
 
void JumpIfRoot (Register with, RootIndex index, Label *if_equal, Label::Distance if_equal_distance=Label::kFar)
 
void JumpIfNotRoot (Register with, RootIndex index, Label *if_not_equal, Label::Distance if_not_equal_distance=Label::kFar)
 
void CompareRange (Register value, unsigned lower_limit, unsigned higher_limit, Register scratch)
 
void JumpIfIsInRange (Register value, unsigned lower_limit, unsigned higher_limit, Register scratch, Label *on_in_range, Label::Distance near_jump=Label::kFar)
 
void RecordWriteField (Register object, int offset, Register value, Register scratch, SaveFPRegsMode save_fp, SmiCheck smi_check=SmiCheck::kInline)
 
void RecordWrite (Register object, Register address, Register value, SaveFPRegsMode save_fp, SmiCheck smi_check=SmiCheck::kInline)
 
void EnterExitFrame (int extra_slots, StackFrame::Type frame_type, Register c_function)
 
void LeaveExitFrame (Register scratch)
 
void LoadGlobalProxy (Register dst)
 
void LoadNativeContextSlot (Register dst, int index)
 
void InvokeFunctionCode (Register function, Register new_target, Register expected_parameter_count, Register actual_parameter_count, InvokeType type)
 
void CallDebugOnFunctionCall (Register fun, Register new_target, Register expected_parameter_count, Register actual_parameter_count)
 
void InvokeFunction (Register function, Register new_target, Register actual_parameter_count, InvokeType type)
 
void CmpObjectType (Register heap_object, InstanceType type, Register map)
 
void CmpInstanceType (Register map, InstanceType type)
 
void CmpInstanceTypeRange (Register map, Register instance_type_out, Register scratch, InstanceType lower_limit, InstanceType higher_limit)
 
void SmiTag (Register reg)
 
void SmiCompare (Register smi1, Register smi2)
 
void SmiCompare (Register dst, Tagged< Smi > src)
 
void SmiCompare (Register dst, Operand src)
 
void SmiCompare (Operand dst, Register src)
 
void SmiCompare (Operand dst, Smi src)
 
void JumpIfNotSmi (Register value, Label *not_smi_label, Label::Distance distance=Label::kFar)
 
void JumpIfNotSmi (Operand value, Label *smi_label, Label::Distance distance=Label::kFar)
 
template<typename Field >
void DecodeField (Register reg)
 
void TestCodeIsMarkedForDeoptimization (Register code)
 
Immediate ClearedValue () const
 
void AssertFeedbackCell (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void AssertFeedbackVector (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void ReplaceClosureCodeWithOptimizedCode (Register optimized_code, Register closure, Register scratch1, Register slot_address)
 
void GenerateTailCallToReturnedCode (Runtime::FunctionId function_id)
 
void LoadFeedbackVectorFlagsAndJumpIfNeedsProcessing (Register flags, XMMRegister saved_feedback_vector, CodeKind current_code_kind, Label *flags_need_processing)
 
void OptimizeCodeOrTailCallOptimizedCodeSlot (Register flags, XMMRegister saved_feedback_vector)
 
void AssertSmi (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertSmi (Operand object) NOOP_UNLESS_DEBUG_CODE
 
void AssertNotSmi (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertFunction (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void AssertCallableFunction (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void AssertConstructor (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertBoundFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertGeneratorObject (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertUndefinedOrAllocationSite (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void AssertJSAny (Register object, Register map_tmp, AbortReason abort_reason) NOOP_UNLESS_DEBUG_CODE
 
void PushStackHandler (Register scratch)
 
void PopStackHandler (Register scratch)
 
void CallRuntime (const Runtime::Function *f, int num_arguments)
 
void CallRuntime (Runtime::FunctionId fid)
 
void CallRuntime (Runtime::FunctionId fid, int num_arguments)
 
void TailCallRuntime (Runtime::FunctionId fid)
 
void JumpToExternalReference (const ExternalReference &ext, bool builtin_exit_frame=false)
 
void Drop (int element_count)
 
void LoadWeakValue (Register in_out, Label *target_if_cleared)
 
void IncrementCounter (StatsCounter *counter, int value, Register scratch)
 
void EmitIncrementCounter (StatsCounter *counter, int value, Register scratch)
 
void DecrementCounter (StatsCounter *counter, int value, Register scratch)
 
void EmitDecrementCounter (StatsCounter *counter, int value, Register scratch)
 
void CompareStackLimit (Register with, StackLimitKind kind)
 
Operand StackLimitAsOperand (StackLimitKind kind)
 
void StackOverflowCheck (Register num_args, Register scratch, Label *stack_overflow, bool include_receiver=false)
 
void EnterFrame (StackFrame::Type type)
 
void EnterFrame (StackFrame::Type type, bool load_constant_pool_pointer_reg)
 
void LeaveFrame (StackFrame::Type type)
 
void AllocateStackSpace (Register bytes)
 
void AllocateStackSpace (int bytes)
 
void StubPrologue (StackFrame::Type type)
 
void Prologue ()
 
void InitializeRootRegister ()
 
void jmp (Label *L)
 
void Trap ()
 
void DebugBreak ()
 
void Assert (Condition cc, AbortReason reason, Register rj, Operand rk) NOOP_UNLESS_DEBUG_CODE
 
void AssertJSAny (Register object, Register map_tmp, Register tmp, AbortReason abort_reason) NOOP_UNLESS_DEBUG_CODE
 
void Check (Condition cc, AbortReason reason, Register rj, Operand rk)
 
void SbxCheck (Condition cc, AbortReason reason, Register rj, Operand rk)
 
void Abort (AbortReason msg)
 
void CompareWord (Condition cond, Register dst, Register lhs, const Operand &rhs)
 
void Branch (Label *label, bool need_link=false)
 
void Branch (Label *label, Condition cond, Register r1, const Operand &r2, bool need_link=false)
 
void BranchShort (Label *label, Condition cond, Register r1, const Operand &r2, bool need_link=false)
 
void Branch (Label *L, Condition cond, Register rj, RootIndex index, bool need_sign_extend=true)
 
void CompareTaggedAndBranch (Label *label, Condition cond, Register r1, const Operand &r2, bool need_link=false)
 
void CompareF32 (FPURegister cmp1, FPURegister cmp2, FPUCondition cc, CFRegister cd=FCC0)
 
void CompareIsNanF32 (FPURegister cmp1, FPURegister cmp2, CFRegister cd=FCC0)
 
void CompareF64 (FPURegister cmp1, FPURegister cmp2, FPUCondition cc, CFRegister cd=FCC0)
 
void CompareIsNanF64 (FPURegister cmp1, FPURegister cmp2, CFRegister cd=FCC0)
 
void BranchTrueShortF (Label *target, CFRegister cc=FCC0)
 
void BranchFalseShortF (Label *target, CFRegister cc=FCC0)
 
void BranchTrueF (Label *target, CFRegister cc=FCC0)
 
void BranchFalseF (Label *target, CFRegister cc=FCC0)
 
void LiLower32BitHelper (Register rd, Operand j)
 
void li_optimized (Register rd, Operand j, LiFlags mode=OPTIMIZE_SIZE)
 
void li (Register rd, Operand j, LiFlags mode=OPTIMIZE_SIZE)
 
void li (Register rd, int64_t j, LiFlags mode=OPTIMIZE_SIZE)
 
void li (Register rd, int32_t j, LiFlags mode=OPTIMIZE_SIZE)
 
void li (Register dst, Handle< HeapObject > value, RelocInfo::Mode rmode=RelocInfo::NO_INFO, LiFlags mode=OPTIMIZE_SIZE)
 
void li (Register dst, ExternalReference value, LiFlags mode=OPTIMIZE_SIZE)
 
void LoadLabelRelative (Register dst, Label *target)
 
void LoadFromConstantsTable (Register destination, int constant_index) final
 
void LoadRootRegisterOffset (Register destination, intptr_t offset) final
 
void LoadRootRelative (Register destination, int32_t offset) final
 
void StoreRootRelative (int32_t offset, Register value) final
 
MemOperand ExternalReferenceAsOperand (ExternalReference reference, Register scratch)
 
MemOperand ExternalReferenceAsOperand (IsolateFieldId id)
 
void Move (Register output, MemOperand operand)
 
void GenPCRelativeJump (Register rd, int64_t offset)
 
void GenPCRelativeJumpAndLink (Register rd, int64_t offset)
 
bool CanUseNearCallOrJump (RelocInfo::Mode rmode)
 
void Jump (Register target, COND_ARGS)
 
void Jump (intptr_t target, RelocInfo::Mode rmode, COND_ARGS)
 
void Jump (Address target, RelocInfo::Mode rmode, COND_ARGS)
 
void Jump (Handle< Code > code, RelocInfo::Mode rmode, COND_ARGS)
 
void Jump (const ExternalReference &reference)
 
void Call (Register target, COND_ARGS)
 
void Call (Address target, RelocInfo::Mode rmode, COND_ARGS)
 
void Call (Handle< Code > code, RelocInfo::Mode rmode=RelocInfo::CODE_TARGET, COND_ARGS)
 
void Call (Label *target)
 
void LoadEntryFromBuiltinIndex (Register builtin_index, Register target)
 
void LoadEntryFromBuiltin (Builtin builtin, Register destination)
 
MemOperand EntryFromBuiltinAsOperand (Builtin builtin)
 
void CallBuiltinByIndex (Register builtin_index, Register target)
 
void CallBuiltin (Builtin builtin)
 
void TailCallBuiltin (Builtin builtin)
 
void TailCallBuiltin (Builtin builtin, Condition cond, Register type, Operand range)
 
void LoadCodeInstructionStart (Register destination, Register code_object, CodeEntrypointTag tag)
 
void CallCodeObject (Register code_object, CodeEntrypointTag tag)
 
void JumpCodeObject (Register code_object, CodeEntrypointTag tag, JumpMode jump_mode=JumpMode::kJump)
 
void CallJSFunction (Register function_object, uint16_t argument_count)
 
void JumpJSFunction (Register function_object, JumpMode jump_mode=JumpMode::kJump)
 
void StoreReturnAddressAndCall (Register target)
 
void BailoutIfDeoptimized ()
 
void CallForDeoptimization (Builtin target, int deopt_id, Label *exit, DeoptimizeKind kind, Label *ret, Label *jump_deoptimization_entry_label)
 
void Ret (COND_ARGS)
 
void Drop (int count, Condition cond=cc_always, Register reg=no_reg, const Operand &op=Operand(no_reg))
 
void DropArguments (Register count)
 
void DropArgumentsAndPushNewReceiver (Register argc, Register receiver)
 
void Ld_d (Register rd, const MemOperand &rj)
 
void St_d (Register rd, const MemOperand &rj)
 
void Push (Handle< HeapObject > handle)
 
void Push (Tagged< Smi > smi)
 
void Push (Register src)
 
void Push (Register src1, Register src2)
 
void Push (Register src1, Register src2, Register src3)
 
void Push (Register src1, Register src2, Register src3, Register src4)
 
void Push (Register src1, Register src2, Register src3, Register src4, Register src5)
 
void PushArray (Register array, Register size, Register scratch, Register scratch2, PushArrayOrder order=kNormal)
 
void MaybeSaveRegisters (RegList registers)
 
void MaybeRestoreRegisters (RegList registers)
 
void CallEphemeronKeyBarrier (Register object, Operand offset, SaveFPRegsMode fp_mode)
 
void CallIndirectPointerBarrier (Register object, Operand offset, SaveFPRegsMode fp_mode, IndirectPointerTag tag)
 
void CallRecordWriteStubSaveRegisters (Register object, Operand offset, SaveFPRegsMode fp_mode, StubCallMode mode=StubCallMode::kCallBuiltinPointer)
 
void CallRecordWriteStub (Register object, Register slot_address, SaveFPRegsMode fp_mode, StubCallMode mode=StubCallMode::kCallBuiltinPointer)
 
void MoveObjectAndSlot (Register dst_object, Register dst_slot, Register object, Operand offset)
 
void MultiPush (RegList regs)
 
void MultiPush (RegList regs1, RegList regs2)
 
void MultiPush (RegList regs1, RegList regs2, RegList regs3)
 
void MultiPushFPU (DoubleRegList regs)
 
int RequiredStackSizeForCallerSaved (SaveFPRegsMode fp_mode, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg) const
 
int PushCallerSaved (SaveFPRegsMode fp_mode, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg)
 
int PopCallerSaved (SaveFPRegsMode fp_mode, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg)
 
void Pop (Register dst)
 
void Pop (Register src1, Register src2)
 
void Pop (Register src1, Register src2, Register src3)
 
void MultiPop (RegList regs)
 
void MultiPop (RegList regs1, RegList regs2)
 
void MultiPop (RegList regs1, RegList regs2, RegList regs3)
 
void MultiPopFPU (DoubleRegList regs)
 
void SmiTag (Register dst, Register src)
 
void SmiTag (Register reg)
 
void SmiUntag (Register dst, const MemOperand &src)
 
void SmiUntag (Register dst, Register src)
 
void SmiUntag (Register reg)
 
void SmiScale (Register dst, Register src, int scale)
 
void SmiToInt32 (Register smi)
 
void AssertNotSmi (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertSmi (Register object) NOOP_UNLESS_DEBUG_CODE
 
int CalculateStackPassedWords (int num_reg_arguments, int num_double_arguments)
 
void PrepareCallCFunction (int num_reg_arguments, int num_double_registers, Register scratch)
 
void PrepareCallCFunction (int num_reg_arguments, Register scratch)
 
int CallCFunction (ExternalReference function, int num_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_location=nullptr)
 
int CallCFunction (Register function, int num_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_location=nullptr)
 
int CallCFunction (ExternalReference function, int num_reg_arguments, int num_double_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_location=nullptr)
 
int CallCFunction (Register function, int num_reg_arguments, int num_double_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_location=nullptr)
 
void PrepareCEntryArgs (int num_args)
 
void PrepareCEntryFunction (const ExternalReference &ref)
 
void CheckPageFlag (Register object, int mask, Condition cc, Label *condition_met)
 
void TruncateDoubleToI (Isolate *isolate, Zone *zone, Register result, DoubleRegister double_input, StubCallMode stub_mode)
 
void Movz (Register rd, Register rj, Register rk)
 
void Movn (Register rd, Register rj, Register rk)
 
void LoadZeroIfFPUCondition (Register dest, CFRegister=FCC0)
 
void LoadZeroIfNotFPUCondition (Register dest, CFRegister=FCC0)
 
void LoadZeroIfConditionNotZero (Register dest, Register condition)
 
void LoadZeroIfConditionZero (Register dest, Register condition)
 
void Clz_w (Register rd, Register rj)
 
void Clz_d (Register rd, Register rj)
 
void Ctz_w (Register rd, Register rj)
 
void Ctz_d (Register rd, Register rj)
 
void Popcnt_w (Register rd, Register rj)
 
void Popcnt_d (Register rd, Register rj)
 
void ExtractBits (Register dest, Register source, Register pos, int size, bool sign_extend=false)
 
void InsertBits (Register dest, Register source, Register pos, int size)
 
void Bstrins_w (Register rk, Register rj, uint16_t msbw, uint16_t lswb)
 
void Bstrins_d (Register rk, Register rj, uint16_t msbw, uint16_t lsbw)
 
void Bstrpick_w (Register rk, Register rj, uint16_t msbw, uint16_t lsbw)
 
void Bstrpick_d (Register rk, Register rj, uint16_t msbw, uint16_t lsbw)
 
void Neg_s (FPURegister fd, FPURegister fj)
 
void Neg_d (FPURegister fd, FPURegister fk)
 
void Trunc_uw_s (FPURegister fd, FPURegister fj, FPURegister scratch)
 
void Trunc_uw_s (Register rd, FPURegister fj, FPURegister scratch)
 
void ByteSwap (Register dest, Register src, int operand_size)
 
void Ld_b (Register rd, const MemOperand &rj)
 
void Ld_bu (Register rd, const MemOperand &rj)
 
void St_b (Register rd, const MemOperand &rj)
 
void Ld_h (Register rd, const MemOperand &rj)
 
void Ld_hu (Register rd, const MemOperand &rj)
 
void St_h (Register rd, const MemOperand &rj)
 
void Ld_w (Register rd, const MemOperand &rj)
 
void Ld_wu (Register rd, const MemOperand &rj)
 
void St_w (Register rd, const MemOperand &rj)
 
void Fld_s (FPURegister fd, const MemOperand &src)
 
void Fst_s (FPURegister fj, const MemOperand &dst)
 
void Fld_d (FPURegister fd, const MemOperand &src)
 
void Fst_d (FPURegister fj, const MemOperand &dst)
 
void Ll_w (Register rd, const MemOperand &rj)
 
void Sc_w (Register rd, const MemOperand &rj)
 
void Ll_d (Register rd, const MemOperand &rj)
 
void Sc_d (Register rd, const MemOperand &rj)
 
void Float32Max (FPURegister dst, FPURegister src1, FPURegister src2, Label *out_of_line)
 
void Float32Min (FPURegister dst, FPURegister src1, FPURegister src2, Label *out_of_line)
 
void Float64Max (FPURegister dst, FPURegister src1, FPURegister src2, Label *out_of_line)
 
void Float64Min (FPURegister dst, FPURegister src1, FPURegister src2, Label *out_of_line)
 
void Float32MaxOutOfLine (FPURegister dst, FPURegister src1, FPURegister src2)
 
void Float32MinOutOfLine (FPURegister dst, FPURegister src1, FPURegister src2)
 
void Float64MaxOutOfLine (FPURegister dst, FPURegister src1, FPURegister src2)
 
void Float64MinOutOfLine (FPURegister dst, FPURegister src1, FPURegister src2)
 
bool IsDoubleZeroRegSet ()
 
void mov (Register rd, Register rj)
 
void Move (Register dst, Handle< HeapObject > handle)
 
void Move (Register dst, Tagged< Smi > value)
 
void Move (Register dst, Register src)
 
void LoadIsolateField (Register dst, IsolateFieldId id)
 
void FmoveLow (Register dst_low, FPURegister src)
 
void FmoveLow (FPURegister dst, Register src_low)
 
void Move (FPURegister dst, FPURegister src)
 
void Move_d (FPURegister dst, FPURegister src)
 
void Move_s (FPURegister dst, FPURegister src)
 
void Move (FPURegister dst, float imm)
 
void Move (FPURegister dst, double imm)
 
void Move (FPURegister dst, uint32_t src)
 
void Move (FPURegister dst, uint64_t src)
 
void AddOverflow_d (Register dst, Register left, const Operand &right, Register overflow)
 
void SubOverflow_d (Register dst, Register left, const Operand &right, Register overflow)
 
void MulOverflow_w (Register dst, Register left, const Operand &right, Register overflow)
 
void MulOverflow_d (Register dst, Register left, const Operand &right, Register overflow)
 
template<typename Func >
void GenerateSwitchTable (Register index, size_t case_count, Func GetLabelFunction)
 
void LoadRoot (Register destination, RootIndex index) final
 
void LoadRoot (Register destination, RootIndex index, Condition cond, Register src1, const Operand &src2)
 
void LoadTaggedRoot (Register destination, RootIndex index)
 
void LoadMap (Register destination, Register object)
 
void LoadCompressedMap (Register dst, Register object)
 
void LoadFeedbackVector (Register dst, Register closure, Register scratch, Label *fbv_undef)
 
void FPUCanonicalizeNaN (const DoubleRegister dst, const DoubleRegister src)
 
void Ffint_d_uw (FPURegister fd, FPURegister fj)
 
void Ffint_d_uw (FPURegister fd, Register rj)
 
void Ffint_d_ul (FPURegister fd, FPURegister fj)
 
void Ffint_d_ul (FPURegister fd, Register rj)
 
void Ffint_s_uw (FPURegister fd, FPURegister fj)
 
void Ffint_s_uw (FPURegister fd, Register rj)
 
void Ffint_s_ul (FPURegister fd, FPURegister fj)
 
void Ffint_s_ul (FPURegister fd, Register rj)
 
void Ftintrz_uw_d (FPURegister fd, FPURegister fj, FPURegister scratch)
 
void Ftintrz_uw_d (Register rd, FPURegister fj, FPURegister scratch)
 
void Ftintrz_uw_s (FPURegister fd, FPURegister fs, FPURegister scratch)
 
void Ftintrz_uw_s (Register rd, FPURegister fs, FPURegister scratch)
 
void Ftintrz_ul_d (FPURegister fd, FPURegister fj, FPURegister scratch, Register result=no_reg)
 
void Ftintrz_ul_d (Register rd, FPURegister fj, FPURegister scratch, Register result=no_reg)
 
void Ftintrz_ul_s (FPURegister fd, FPURegister fj, FPURegister scratch, Register result=no_reg)
 
void Ftintrz_ul_s (Register rd, FPURegister fj, FPURegister scratch, Register result=no_reg)
 
void Trunc_d (FPURegister fd, FPURegister fj)
 
void Round_d (FPURegister fd, FPURegister fj)
 
void Floor_d (FPURegister fd, FPURegister fj)
 
void Ceil_d (FPURegister fd, FPURegister fj)
 
void Trunc_s (FPURegister fd, FPURegister fj)
 
void Round_s (FPURegister fd, FPURegister fj)
 
void Floor_s (FPURegister fd, FPURegister fj)
 
void Ceil_s (FPURegister fd, FPURegister fj)
 
void JumpIfSmi (Register value, Label *smi_label)
 
void JumpIfEqual (Register a, int32_t b, Label *dest)
 
void JumpIfLessThan (Register a, int32_t b, Label *dest)
 
void PushStandardFrame (Register function_reg)
 
void Alsl_w (Register rd, Register rj, Register rk, uint8_t sa)
 
void Alsl_d (Register rd, Register rj, Register rk, uint8_t sa)
 
void ComputeCodeStartAddress (Register dst)
 
void CodeEntry ()
 
void ExceptionHandler ()
 
void BindExceptionHandler (Label *label)
 
void LoadTaggedField (Register destination, const MemOperand &field_operand)
 
void LoadTaggedSignedField (Register destination, const MemOperand &field_operand)
 
void SmiUntagField (Register dst, const MemOperand &src)
 
void StoreTaggedField (Register src, const MemOperand &dst)
 
void AtomicStoreTaggedField (Register dst, const MemOperand &src)
 
void DecompressTaggedSigned (Register dst, const MemOperand &src)
 
void DecompressTagged (Register dst, const MemOperand &src)
 
void DecompressTagged (Register dst, Register src)
 
void DecompressTagged (Register dst, Tagged_t immediate)
 
void DecompressProtected (const Register &destination, const MemOperand &field_operand)
 
void AtomicDecompressTaggedSigned (Register dst, const MemOperand &src)
 
void AtomicDecompressTagged (Register dst, const MemOperand &src)
 
void DecodeSandboxedPointer (Register value)
 
void LoadSandboxedPointerField (Register destination, MemOperand field_operand)
 
void StoreSandboxedPointerField (Register value, MemOperand dst_field_operand)
 
void LoadExternalPointerField (Register destination, MemOperand field_operand, ExternalPointerTagRange tag_range, Register isolate_root=no_reg)
 
void LoadTrustedPointerField (Register destination, MemOperand field_operand, IndirectPointerTag tag)
 
void StoreTrustedPointerField (Register value, MemOperand dst_field_operand)
 
void LoadCodePointerField (Register destination, MemOperand field_operand)
 
void StoreCodePointerField (Register value, MemOperand dst_field_operand)
 
void LoadIndirectPointerField (Register destination, MemOperand field_operand, IndirectPointerTag tag)
 
void StoreIndirectPointerField (Register value, MemOperand dst_field_operand)
 
void LoadProtectedPointerField (Register destination, MemOperand field_operand)
 
void TryInlineTruncateDoubleToI (Register result, DoubleRegister input, Label *done)
 
void LoadReceiver (Register dest)
 
void StoreReceiver (Register rec)
 
bool IsNear (Label *L, Condition cond, int rs_reg)
 
void Swap (Register reg1, Register reg2, Register scratch=no_reg)
 
void TestCodeIsMarkedForDeoptimizationAndJump (Register code_data_container, Register scratch, Condition cond, Label *target)
 
Operand ClearedValue () const
 
void PushRoot (RootIndex index)
 
void CompareRootAndBranch (const Register &obj, RootIndex index, Condition cc, Label *target, ComparisonMode mode=ComparisonMode::kDefault)
 
void CompareTaggedRootAndBranch (const Register &with, RootIndex index, Condition cc, Label *target)
 
void JumpIfRoot (Register with, RootIndex index, Label *if_equal)
 
void JumpIfNotRoot (Register with, RootIndex index, Label *if_not_equal)
 
void JumpIfIsInRange (Register value, unsigned lower_limit, unsigned higher_limit, Label *on_in_range)
 
void JumpIfObjectType (Label *target, Condition cc, Register object, InstanceType instance_type, Register scratch=no_reg)
 
void JumpIfJSAnyIsNotPrimitive (Register heap_object, Register scratch, Label *target, Label::Distance distance=Label::kFar, Condition condition=Condition::kUnsignedGreaterThanEqual)
 
void JumpIfJSAnyIsPrimitive (Register heap_object, Register scratch, Label *target, Label::Distance distance=Label::kFar)
 
void RecordWriteField (Register object, int offset, Register value, RAStatus ra_status, SaveFPRegsMode save_fp, SmiCheck smi_check=SmiCheck::kInline, SlotDescriptor slot=SlotDescriptor::ForDirectPointerSlot())
 
void RecordWrite (Register object, Operand offset, Register value, RAStatus ra_status, SaveFPRegsMode save_fp, SmiCheck smi_check=SmiCheck::kInline, SlotDescriptor slot=SlotDescriptor::ForDirectPointerSlot())
 
void Ftintrz_l_ud (FPURegister fd, FPURegister fj, FPURegister scratch)
 
void Ftintrz_l_d (FPURegister fd, FPURegister fj)
 
void Ftintrne_l_d (FPURegister fd, FPURegister fj)
 
void Ftintrm_l_d (FPURegister fd, FPURegister fj)
 
void Ftintrp_l_d (FPURegister fd, FPURegister fj)
 
void Ftintrz_w_d (FPURegister fd, FPURegister fj)
 
void Ftintrne_w_d (FPURegister fd, FPURegister fj)
 
void Ftintrm_w_d (FPURegister fd, FPURegister fj)
 
void Ftintrp_w_d (FPURegister fd, FPURegister fj)
 
void Madd_s (FPURegister fd, FPURegister fa, FPURegister fj, FPURegister fk)
 
void Madd_d (FPURegister fd, FPURegister fa, FPURegister fj, FPURegister fk)
 
void Msub_s (FPURegister fd, FPURegister fa, FPURegister fj, FPURegister fk)
 
void Msub_d (FPURegister fd, FPURegister fa, FPURegister fj, FPURegister fk)
 
void EnterExitFrame (Register scratch, int stack_space, StackFrame::Type frame_type)
 
void LeaveExitFrame (Register scratch)
 
void AssertStackIsAligned () NOOP_UNLESS_DEBUG_CODE
 
void LoadGlobalProxy (Register dst)
 
void LoadNativeContextSlot (Register dst, int index)
 
void LoadGlobalFunctionInitialMap (Register function, Register map, Register scratch)
 
void CallDebugOnFunctionCall (Register fun, Register new_target, Register expected_parameter_count_or_dispatch_handle, Register actual_parameter_count)
 
void InvokeFunction (Register function, Register expected_parameter_count, Register actual_parameter_count, InvokeType type)
 
void InvokeFunctionWithNewTarget (Register function, Register new_target, Register actual_parameter_count, InvokeType type)
 
void InvokeFunctionCode (Register function, Register new_target, Register expected_parameter_count, Register actual_parameter_count, InvokeType type)
 
void PushStackHandler ()
 
void PopStackHandler ()
 
void GetObjectType (Register function, Register map, Register type_reg)
 
void GetInstanceTypeRange (Register map, Register type_reg, InstanceType lower_limit, Register range)
 
void CallRuntime (const Runtime::Function *f, int num_arguments)
 
void CallRuntime (Runtime::FunctionId fid)
 
void CallRuntime (Runtime::FunctionId fid, int num_arguments)
 
void TailCallRuntime (Runtime::FunctionId fid)
 
void JumpToExternalReference (const ExternalReference &builtin, bool builtin_exit_frame=false)
 
void LoadWeakValue (Register out, Register in, Label *target_if_cleared)
 
void IncrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void EmitIncrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void DecrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void EmitDecrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void LoadStackLimit (Register destination, StackLimitKind kind)
 
void StackOverflowCheck (Register num_args, Register scratch1, Register scratch2, Label *stack_overflow)
 
void SmiTst (Register value, Register scratch)
 
void JumpIfNotSmi (Register value, Label *not_smi_label)
 
void AssertConstructor (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertCallableFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertBoundFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertGeneratorObject (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertUnreachable (AbortReason reason) NOOP_UNLESS_DEBUG_CODE
 
void AssertUndefinedOrAllocationSite (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void AssertFeedbackCell (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void AssertFeedbackVector (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void ReplaceClosureCodeWithOptimizedCode (Register optimized_code, Register closure)
 
void GenerateTailCallToReturnedCode (Runtime::FunctionId function_id)
 
void LoadFeedbackVectorFlagsAndJumpIfNeedsProcessing (Register flags, Register feedback_vector, CodeKind current_code_kind, Label *flags_need_processing)
 
void OptimizeCodeOrTailCallOptimizedCodeSlot (Register flags, Register feedback_vector)
 
template<typename Field >
void DecodeField (Register dst, Register src)
 
template<typename Field >
void DecodeField (Register reg)
 
void EnterFrame (StackFrame::Type type)
 
void EnterFrame (StackFrame::Type type, bool load_constant_pool_pointer_reg)
 
void LeaveFrame (StackFrame::Type type)
 
void AllocateStackSpace (Register bytes)
 
void AllocateStackSpace (int bytes)
 
void StubPrologue (StackFrame::Type type)
 
void Prologue ()
 
void InitializeRootRegister ()
 
void jmp (Label *L)
 
void Trap ()
 
void DebugBreak ()
 
void Assert (Condition cc, AbortReason reason, Register rs, Operand rt) NOOP_UNLESS_DEBUG_CODE
 
void AssertJSAny (Register object, Register map_tmp, Register tmp, AbortReason abort_reason) NOOP_UNLESS_DEBUG_CODE
 
void Check (Condition cc, AbortReason reason, Register rs, Operand rt)
 
void SbxCheck (Condition cc, AbortReason reason, Register rj, Operand rk)
 
void Abort (AbortReason msg)
 
void CompareF32 (FPUCondition cc, FPURegister cmp1, FPURegister cmp2)
 
void CompareIsNanF32 (FPURegister cmp1, FPURegister cmp2)
 
void CompareF64 (FPUCondition cc, FPURegister cmp1, FPURegister cmp2)
 
void CompareIsNanF64 (FPURegister cmp1, FPURegister cmp2)
 
void BranchTrueShortF (Label *target, BranchDelaySlot bd=PROTECT)
 
void BranchFalseShortF (Label *target, BranchDelaySlot bd=PROTECT)
 
void BranchTrueF (Label *target, BranchDelaySlot bd=PROTECT)
 
void BranchFalseF (Label *target, BranchDelaySlot bd=PROTECT)
 
void BranchMSA (Label *target, MSABranchDF df, MSABranchCondition cond, MSARegister wt, BranchDelaySlot bd=PROTECT)
 
void CompareWord (Condition cond, Register dst, Register lhs, const Operand &rhs)
 
void BranchLong (int32_t offset, BranchDelaySlot bdslot=PROTECT)
 
void Branch (Label *L, Condition cond, Register rs, RootIndex index, BranchDelaySlot bdslot=PROTECT)
 
void LiLower32BitHelper (Register rd, Operand j)
 
void li_optimized (Register rd, Operand j, LiFlags mode=OPTIMIZE_SIZE)
 
void li (Register rd, Operand j, LiFlags mode=OPTIMIZE_SIZE)
 
void li (Register rd, int64_t j, LiFlags mode=OPTIMIZE_SIZE)
 
void li (Register dst, Handle< HeapObject > value, LiFlags mode=OPTIMIZE_SIZE)
 
void li (Register dst, ExternalReference value, LiFlags mode=OPTIMIZE_SIZE)
 
void LoadFromConstantsTable (Register destination, int constant_index) final
 
void LoadRootRegisterOffset (Register destination, intptr_t offset) final
 
void LoadRootRelative (Register destination, int32_t offset) final
 
void StoreRootRelative (int32_t offset, Register value) final
 
MemOperand ExternalReferenceAsOperand (ExternalReference reference, Register scratch)
 
MemOperand ExternalReferenceAsOperand (IsolateFieldId id)
 
void Move (Register output, MemOperand operand)
 
void Jump (Register target, COND_ARGS)
 
void Jump (intptr_t target, RelocInfo::Mode rmode, COND_ARGS)
 
void Jump (Address target, RelocInfo::Mode rmode, COND_ARGS)
 
void PatchAndJump (Address target)
 
void Jump (Handle< Code > code, RelocInfo::Mode rmode, COND_ARGS)
 
void Jump (const ExternalReference &reference)
 
void Call (Register target, COND_ARGS)
 
void Call (Address target, RelocInfo::Mode rmode, COND_ARGS)
 
void Call (Handle< Code > code, RelocInfo::Mode rmode=RelocInfo::CODE_TARGET, COND_ARGS)
 
void Call (Label *target)
 
void LoadAddress (Register dst, Label *target)
 
void LoadAddressPCRelative (Register dst, Label *target)
 
void LoadEntryFromBuiltinIndex (Register builtin_index, Register target)
 
void LoadEntryFromBuiltin (Builtin builtin, Register destination)
 
MemOperand EntryFromBuiltinAsOperand (Builtin builtin)
 
void CallBuiltinByIndex (Register builtin_index, Register target)
 
void CallBuiltin (Builtin builtin)
 
void TailCallBuiltin (Builtin builtin)
 
void TailCallBuiltin (Builtin builtin, Condition cond, Register type, Operand range)
 
void LoadCodeInstructionStart (Register destination, Register code_data_container_object, CodeEntrypointTag tag)
 
void CallCodeObject (Register code_data_container_object, CodeEntrypointTag tag)
 
void JumpCodeObject (Register code_data_container_object, CodeEntrypointTag tag, JumpMode jump_mode=JumpMode::kJump)
 
void CallJSFunction (Register function_object, uint16_t argument_count)
 
void JumpJSFunction (Register function_object, JumpMode jump_mode=JumpMode::kJump)
 
void StoreReturnAddressAndCall (Register target)
 
void BailoutIfDeoptimized ()
 
void CallForDeoptimization (Builtin target, int deopt_id, Label *exit, DeoptimizeKind kind, Label *ret, Label *jump_deoptimization_entry_label)
 
void Ret (COND_ARGS)
 
void Ret (BranchDelaySlot bd, Condition cond=al, Register rs=zero_reg, const Operand &rt=Operand(zero_reg))
 
void Drop (int count, Condition cond=cc_always, Register reg=no_reg, const Operand &op=Operand(no_reg))
 
void DropArguments (Register count)
 
void DropArgumentsAndPushNewReceiver (Register argc, Register receiver)
 
void DropAndRet (int drop)
 
void DropAndRet (int drop, Condition cond, Register reg, const Operand &op)
 
void Ld (Register rd, const MemOperand &rs)
 
void Sd (Register rd, const MemOperand &rs)
 
void push (Register src)
 
void Push (Register src)
 
void Push (Handle< HeapObject > handle)
 
void Push (Tagged< Smi > smi)
 
void Push (Register src1, Register src2)
 
void Push (Register src1, Register src2, Register src3)
 
void Push (Register src1, Register src2, Register src3, Register src4)
 
void Push (Register src1, Register src2, Register src3, Register src4, Register src5)
 
void Push (Register src, Condition cond, Register tst1, Register tst2)
 
void PushArray (Register array, Register size, Register scratch, Register scratch2, PushArrayOrder order=kNormal)
 
void MaybeSaveRegisters (RegList registers)
 
void MaybeRestoreRegisters (RegList registers)
 
void CallEphemeronKeyBarrier (Register object, Register slot_address, SaveFPRegsMode fp_mode)
 
void CallRecordWriteStubSaveRegisters (Register object, Register slot_address, SaveFPRegsMode fp_mode, StubCallMode mode=StubCallMode::kCallBuiltinPointer)
 
void CallRecordWriteStub (Register object, Register slot_address, SaveFPRegsMode fp_mode, StubCallMode mode=StubCallMode::kCallBuiltinPointer)
 
void MultiPush (RegList regs)
 
void MultiPushFPU (DoubleRegList regs)
 
void MultiPushMSA (DoubleRegList regs)
 
int RequiredStackSizeForCallerSaved (SaveFPRegsMode fp_mode, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg) const
 
int PushCallerSaved (SaveFPRegsMode fp_mode, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg)
 
int PopCallerSaved (SaveFPRegsMode fp_mode, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg)
 
void pop (Register dst)
 
void Pop (Register dst)
 
void Pop (Register src1, Register src2)
 
void Pop (Register src1, Register src2, Register src3)
 
void Pop (uint32_t count=1)
 
void MultiPop (RegList regs)
 
void MultiPopFPU (DoubleRegList regs)
 
void MultiPopMSA (DoubleRegList regs)
 
void SmiTag (Register dst, Register src)
 
void SmiTag (Register reg)
 
void SmiUntag (Register dst, const MemOperand &src)
 
void SmiUntag (Register dst, Register src)
 
void SmiUntag (Register reg)
 
void SmiScale (Register dst, Register src, int scale)
 
void SmiToInt32 (Register smi)
 
void AssertNotSmi (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertSmi (Register object) NOOP_UNLESS_DEBUG_CODE
 
int CalculateStackPassedWords (int num_reg_arguments, int num_double_arguments)
 
void PrepareCallCFunction (int num_reg_arguments, int num_double_registers, Register scratch)
 
void PrepareCallCFunction (int num_reg_arguments, Register scratch)
 
int CallCFunction (ExternalReference function, int num_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_location=nullptr)
 
int CallCFunction (Register function, int num_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_location=nullptr)
 
int CallCFunction (ExternalReference function, int num_reg_arguments, int num_double_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_location=nullptr)
 
int CallCFunction (Register function, int num_reg_arguments, int num_double_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_location=nullptr)
 
void MovFromFloatResult (DoubleRegister dst)
 
void MovFromFloatParameter (DoubleRegister dst)
 
void MovToFloatParameter (DoubleRegister src)
 
void MovToFloatParameters (DoubleRegister src1, DoubleRegister src2)
 
void MovToFloatResult (DoubleRegister src)
 
void PrepareCEntryArgs (int num_args)
 
void PrepareCEntryFunction (const ExternalReference &ref)
 
void CheckPageFlag (Register object, Register scratch, int mask, Condition cc, Label *condition_met)
 
void TruncateDoubleToI (Isolate *isolate, Zone *zone, Register result, DoubleRegister double_input, StubCallMode stub_mode)
 
void Movz (Register rd, Register rs, Register rt)
 
void Movn (Register rd, Register rs, Register rt)
 
void Movt (Register rd, Register rs, uint16_t cc=0)
 
void Movf (Register rd, Register rs, uint16_t cc=0)
 
void LoadZeroIfFPUCondition (Register dest)
 
void LoadZeroIfNotFPUCondition (Register dest)
 
void LoadZeroIfConditionNotZero (Register dest, Register condition)
 
void LoadZeroIfConditionZero (Register dest, Register condition)
 
void Clz (Register rd, Register rs)
 
void Dclz (Register rd, Register rs)
 
void Ctz (Register rd, Register rs)
 
void Dctz (Register rd, Register rs)
 
void Popcnt (Register rd, Register rs)
 
void Dpopcnt (Register rd, Register rs)
 
void Ext (Register rt, Register rs, uint16_t pos, uint16_t size)
 
void Dext (Register rt, Register rs, uint16_t pos, uint16_t size)
 
void Ins (Register rt, Register rs, uint16_t pos, uint16_t size)
 
void Dins (Register rt, Register rs, uint16_t pos, uint16_t size)
 
void ExtractBits (Register dest, Register source, Register pos, int size, bool sign_extend=false)
 
void InsertBits (Register dest, Register source, Register pos, int size)
 
void Neg_s (FPURegister fd, FPURegister fs)
 
void Neg_d (FPURegister fd, FPURegister fs)
 
void Bovc (Register rt, Register rs, Label *L)
 
void Bnvc (Register rt, Register rs, Label *L)
 
void Trunc_uw_s (FPURegister fd, FPURegister fs, FPURegister scratch)
 
void Trunc_uw_s (Register rd, FPURegister fs, FPURegister scratch)
 
void ByteSwapSigned (Register dest, Register src, int operand_size)
 
void ByteSwapUnsigned (Register dest, Register src, int operand_size)
 
void Ulh (Register rd, const MemOperand &rs)
 
void Ulhu (Register rd, const MemOperand &rs)
 
void Ush (Register rd, const MemOperand &rs, Register scratch)
 
void Ulw (Register rd, const MemOperand &rs)
 
void Ulwu (Register rd, const MemOperand &rs)
 
void Usw (Register rd, const MemOperand &rs)
 
void Uld (Register rd, const MemOperand &rs)
 
void Usd (Register rd, const MemOperand &rs)
 
void Ulwc1 (FPURegister fd, const MemOperand &rs, Register scratch)
 
void Uswc1 (FPURegister fd, const MemOperand &rs, Register scratch)
 
void Uldc1 (FPURegister fd, const MemOperand &rs, Register scratch)
 
void Usdc1 (FPURegister fd, const MemOperand &rs, Register scratch)
 
void Lb (Register rd, const MemOperand &rs)
 
void Lbu (Register rd, const MemOperand &rs)
 
void Sb (Register rd, const MemOperand &rs)
 
void Lh (Register rd, const MemOperand &rs)
 
void Lhu (Register rd, const MemOperand &rs)
 
void Sh (Register rd, const MemOperand &rs)
 
void Lw (Register rd, const MemOperand &rs)
 
void Lwu (Register rd, const MemOperand &rs)
 
void Sw (Register rd, const MemOperand &rs)
 
void Lwc1 (FPURegister fd, const MemOperand &src)
 
void Swc1 (FPURegister fs, const MemOperand &dst)
 
void Ldc1 (FPURegister fd, const MemOperand &src)
 
void Sdc1 (FPURegister fs, const MemOperand &dst)
 
void Ll (Register rd, const MemOperand &rs)
 
void Sc (Register rd, const MemOperand &rs)
 
void Lld (Register rd, const MemOperand &rs)
 
void Scd (Register rd, const MemOperand &rs)
 
void Float32Max (FPURegister dst, FPURegister src1, FPURegister src2, Label *out_of_line)
 
void Float32Min (FPURegister dst, FPURegister src1, FPURegister src2, Label *out_of_line)
 
void Float64Max (FPURegister dst, FPURegister src1, FPURegister src2, Label *out_of_line)
 
void Float64Min (FPURegister dst, FPURegister src1, FPURegister src2, Label *out_of_line)
 
void Float32MaxOutOfLine (FPURegister dst, FPURegister src1, FPURegister src2)
 
void Float32MinOutOfLine (FPURegister dst, FPURegister src1, FPURegister src2)
 
void Float64MaxOutOfLine (FPURegister dst, FPURegister src1, FPURegister src2)
 
void Float64MinOutOfLine (FPURegister dst, FPURegister src1, FPURegister src2)
 
bool IsDoubleZeroRegSet ()
 
void LoadIsolateField (Register dst, IsolateFieldId id)
 
void mov (Register rd, Register rt)
 
void Move (Register dst, Handle< HeapObject > handle)
 
void Move (Register dst, Tagged< Smi > value)
 
void Move (Register dst, Register src)
 
void Move (FPURegister dst, FPURegister src)
 
void Move (Register dst_low, Register dst_high, FPURegister src)
 
void Move (Register dst, FPURegister src)
 
void Move (FPURegister dst, Register src)
 
void FmoveHigh (Register dst_high, FPURegister src)
 
void FmoveHigh (FPURegister dst, Register src_high)
 
void FmoveLow (Register dst_low, FPURegister src)
 
void FmoveLow (FPURegister dst, Register src_low)
 
void Move (FPURegister dst, Register src_low, Register src_high)
 
void Move_d (FPURegister dst, FPURegister src)
 
void Move_s (FPURegister dst, FPURegister src)
 
void Move (FPURegister dst, float imm)
 
void Move (FPURegister dst, double imm)
 
void Move (FPURegister dst, uint32_t src)
 
void Move (FPURegister dst, uint64_t src)
 
void DaddOverflow (Register dst, Register left, const Operand &right, Register overflow)
 
void DsubOverflow (Register dst, Register left, const Operand &right, Register overflow)
 
void MulOverflow (Register dst, Register left, const Operand &right, Register overflow)
 
void DMulOverflow (Register dst, Register left, const Operand &right, Register overflow)
 
template<typename Func >
void GenerateSwitchTable (Register index, size_t case_count, Func GetLabelFunction)
 
void LoadRoot (Register destination, RootIndex index) final
 
void LoadRoot (Register destination, RootIndex index, Condition cond, Register src1, const Operand &src2)
 
void LoadMap (Register destination, Register object)
 
void LoadFeedbackVector (Register dst, Register closure, Register scratch, Label *fbv_undef)
 
void FPUCanonicalizeNaN (const DoubleRegister dst, const DoubleRegister src)
 
void Cvt_d_uw (FPURegister fd, FPURegister fs)
 
void Cvt_d_uw (FPURegister fd, Register rs)
 
void Cvt_d_ul (FPURegister fd, FPURegister fs)
 
void Cvt_d_ul (FPURegister fd, Register rs)
 
void Cvt_s_uw (FPURegister fd, FPURegister fs)
 
void Cvt_s_uw (FPURegister fd, Register rs)
 
void Cvt_s_ul (FPURegister fd, FPURegister fs)
 
void Cvt_s_ul (FPURegister fd, Register rs)
 
void Trunc_uw_d (FPURegister fd, FPURegister fs, FPURegister scratch)
 
void Trunc_uw_d (Register rd, FPURegister fs, FPURegister scratch)
 
void Trunc_ul_d (FPURegister fd, FPURegister fs, FPURegister scratch, Register result=no_reg)
 
void Trunc_ul_d (Register rd, FPURegister fs, FPURegister scratch, Register result=no_reg)
 
void Trunc_ul_s (FPURegister fd, FPURegister fs, FPURegister scratch, Register result=no_reg)
 
void Trunc_ul_s (Register rd, FPURegister fs, FPURegister scratch, Register result=no_reg)
 
void Trunc_d_d (FPURegister fd, FPURegister fs)
 
void Round_d_d (FPURegister fd, FPURegister fs)
 
void Floor_d_d (FPURegister fd, FPURegister fs)
 
void Ceil_d_d (FPURegister fd, FPURegister fs)
 
void Trunc_s_s (FPURegister fd, FPURegister fs)
 
void Round_s_s (FPURegister fd, FPURegister fs)
 
void Floor_s_s (FPURegister fd, FPURegister fs)
 
void Ceil_s_s (FPURegister fd, FPURegister fs)
 
void LoadLane (MSASize sz, MSARegister dst, uint8_t laneidx, MemOperand src)
 
void StoreLane (MSASize sz, MSARegister src, uint8_t laneidx, MemOperand dst)
 
void ExtMulLow (MSADataType type, MSARegister dst, MSARegister src1, MSARegister src2)
 
void ExtMulHigh (MSADataType type, MSARegister dst, MSARegister src1, MSARegister src2)
 
void LoadSplat (MSASize sz, MSARegister dst, MemOperand src)
 
void ExtAddPairwise (MSADataType type, MSARegister dst, MSARegister src)
 
void MSARoundW (MSARegister dst, MSARegister src, FPURoundingMode mode)
 
void MSARoundD (MSARegister dst, MSARegister src, FPURoundingMode mode)
 
void JumpIfSmi (Register value, Label *smi_label, BranchDelaySlot bd=PROTECT)
 
void JumpIfEqual (Register a, int32_t b, Label *dest)
 
void JumpIfLessThan (Register a, int32_t b, Label *dest)
 
void PushStandardFrame (Register function_reg)
 
void Lsa (Register rd, Register rs, Register rt, uint8_t sa, Register scratch=at)
 
void Dlsa (Register rd, Register rs, Register rt, uint8_t sa, Register scratch=at)
 
void ComputeCodeStartAddress (Register dst)
 
void CodeEntry ()
 
void ExceptionHandler ()
 
void BindExceptionHandler (Label *label)
 
void LoadReceiver (Register dest)
 
void StoreReceiver (Register rec)
 
bool IsNear (Label *L, Condition cond, int rs_reg)
 
void Swap (Register reg1, Register reg2, Register scratch=no_reg)
 
void TestCodeIsMarkedForDeoptimizationAndJump (Register code_data_container, Register scratch, Condition cond, Label *target)
 
Operand ClearedValue () const
 
void PushRoot (RootIndex index)
 
void JumpIfRoot (Register with, RootIndex index, Label *if_equal)
 
void JumpIfNotRoot (Register with, RootIndex index, Label *if_not_equal)
 
void JumpIfIsInRange (Register value, unsigned lower_limit, unsigned higher_limit, Label *on_in_range)
 
void RecordWriteField (Register object, int offset, Register value, Register scratch, RAStatus ra_status, SaveFPRegsMode save_fp, SmiCheck smi_check=SmiCheck::kInline)
 
void RecordWrite (Register object, Register address, Register value, RAStatus ra_status, SaveFPRegsMode save_fp, SmiCheck smi_check=SmiCheck::kInline)
 
void Pref (int32_t hint, const MemOperand &rs)
 
void LoadWordPair (Register rd, const MemOperand &rs, Register scratch=at)
 
void StoreWordPair (Register rd, const MemOperand &rs, Register scratch=at)
 
void Trunc_l_ud (FPURegister fd, FPURegister fs, FPURegister scratch)
 
void Trunc_l_d (FPURegister fd, FPURegister fs)
 
void Round_l_d (FPURegister fd, FPURegister fs)
 
void Floor_l_d (FPURegister fd, FPURegister fs)
 
void Ceil_l_d (FPURegister fd, FPURegister fs)
 
void Trunc_w_d (FPURegister fd, FPURegister fs)
 
void Round_w_d (FPURegister fd, FPURegister fs)
 
void Floor_w_d (FPURegister fd, FPURegister fs)
 
void Ceil_w_d (FPURegister fd, FPURegister fs)
 
void Madd_s (FPURegister fd, FPURegister fr, FPURegister fs, FPURegister ft, FPURegister scratch)
 
void Madd_d (FPURegister fd, FPURegister fr, FPURegister fs, FPURegister ft, FPURegister scratch)
 
void Msub_s (FPURegister fd, FPURegister fr, FPURegister fs, FPURegister ft, FPURegister scratch)
 
void Msub_d (FPURegister fd, FPURegister fr, FPURegister fs, FPURegister ft, FPURegister scratch)
 
void EnterExitFrame (Register scratch, int stack_space, StackFrame::Type frame_type)
 
void LeaveExitFrame (Register scratch)
 
void AssertStackIsAligned () NOOP_UNLESS_DEBUG_CODE
 
void LoadGlobalProxy (Register dst)
 
void LoadNativeContextSlot (Register dst, int index)
 
void LoadGlobalFunctionInitialMap (Register function, Register map, Register scratch)
 
void CheckDebugHook (Register fun, Register new_target, Register expected_parameter_count_or_dispatch_handle, Register actual_parameter_count)
 
void InvokeFunction (Register function, Register expected_parameter_count, Register actual_parameter_count, InvokeType type)
 
void InvokeFunctionWithNewTarget (Register function, Register new_target, Register actual_parameter_count, InvokeType type)
 
void InvokeFunctionCode (Register function, Register new_target, Register expected_parameter_count, Register actual_parameter_count, InvokeType type)
 
void PushStackHandler ()
 
void PopStackHandler ()
 
void GetObjectType (Register function, Register map, Register type_reg)
 
void GetInstanceTypeRange (Register map, Register type_reg, InstanceType lower_limit, Register range)
 
void CallRuntime (const Runtime::Function *f, int num_arguments)
 
void CallRuntime (Runtime::FunctionId fid)
 
void CallRuntime (Runtime::FunctionId fid, int num_arguments)
 
void TailCallRuntime (Runtime::FunctionId fid)
 
void JumpToExternalReference (const ExternalReference &builtin, bool builtin_exit_frame=false)
 
void LoadWeakValue (Register out, Register in, Label *target_if_cleared)
 
void IncrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void EmitIncrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void DecrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void EmitDecrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void LoadStackLimit (Register destination, StackLimitKind kind)
 
void StackOverflowCheck (Register num_args, Register scratch1, Register scratch2, Label *stack_overflow)
 
void SmiTst (Register value, Register scratch)
 
void JumpIfNotSmi (Register value, Label *not_smi_label, BranchDelaySlot bd=PROTECT)
 
void AssertConstructor (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertCallableFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertBoundFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertGeneratorObject (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertUndefinedOrAllocationSite (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void AssertFeedbackCell (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void AssertFeedbackVector (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void ReplaceClosureCodeWithOptimizedCode (Register optimized_code, Register closure, Register scratch1, Register scratch2)
 
void GenerateTailCallToReturnedCode (Runtime::FunctionId function_id)
 
void LoadFeedbackVectorFlagsAndJumpIfNeedsProcessing (Register flags, Register feedback_vector, CodeKind current_code_kind, Label *flags_need_processing)
 
void OptimizeCodeOrTailCallOptimizedCodeSlot (Register flags, Register feedback_vector)
 
template<typename Field >
void DecodeField (Register dst, Register src)
 
template<typename Field >
void DecodeField (Register reg)
 
void CallBuiltin (Builtin builtin, Condition cond=al)
 
void TailCallBuiltin (Builtin builtin, Condition cond=al, CRegister cr=cr0)
 
void Popcnt32 (Register dst, Register src)
 
void Popcnt64 (Register dst, Register src)
 
void ConvertIntToDouble (Register src, DoubleRegister dst)
 
void ConvertUnsignedIntToDouble (Register src, DoubleRegister dst)
 
void ConvertIntToFloat (Register src, DoubleRegister dst)
 
void ConvertUnsignedIntToFloat (Register src, DoubleRegister dst)
 
void ConvertInt64ToFloat (Register src, DoubleRegister double_dst)
 
void ConvertInt64ToDouble (Register src, DoubleRegister double_dst)
 
void ConvertUnsignedInt64ToFloat (Register src, DoubleRegister double_dst)
 
void ConvertUnsignedInt64ToDouble (Register src, DoubleRegister double_dst)
 
void ConvertDoubleToInt64 (const DoubleRegister double_input, const Register dst, const DoubleRegister double_dst, FPRoundingMode rounding_mode=kRoundToZero)
 
void ConvertDoubleToUnsignedInt64 (const DoubleRegister double_input, const Register dst, const DoubleRegister double_dst, FPRoundingMode rounding_mode=kRoundToZero)
 
void EnterFrame (StackFrame::Type type, bool load_constant_pool_pointer_reg=false)
 
int LeaveFrame (StackFrame::Type type, int stack_adjustment=0)
 
void AllocateStackSpace (int bytes)
 
void AllocateStackSpace (Register bytes)
 
void PushCommonFrame (Register marker_reg=no_reg)
 
void StubPrologue (StackFrame::Type type)
 
void Prologue ()
 
void DropArguments (Register count)
 
void DropArgumentsAndPushNewReceiver (Register argc, Register receiver)
 
void PushStandardFrame (Register function_reg)
 
void RestoreFrameStateForTailCall ()
 
void InitializeRootRegister ()
 
void LoadDoubleLiteral (DoubleRegister result, base::Double value, Register scratch)
 
void LoadIntLiteral (Register dst, int value)
 
void LoadSmiLiteral (Register dst, Tagged< Smi > smi)
 
void LoadPC (Register dst)
 
void ComputeCodeStartAddress (Register dst)
 
void CmpS64 (Register src1, const Operand &src2, Register scratch, CRegister cr=cr0)
 
void CmpS64 (Register src1, Register src2, CRegister cr=cr0)
 
void CmpU64 (Register src1, const Operand &src2, Register scratch, CRegister cr=cr0)
 
void CmpU64 (Register src1, Register src2, CRegister cr=cr0)
 
void CmpS32 (Register src1, const Operand &src2, Register scratch, CRegister cr=cr0)
 
void CmpS32 (Register src1, Register src2, CRegister cr=cr0)
 
void CmpU32 (Register src1, const Operand &src2, Register scratch, CRegister cr=cr0)
 
void CmpU32 (Register src1, Register src2, CRegister cr=cr0)
 
void CompareTagged (Register src1, Register src2, CRegister cr=cr0)
 
void MinF64 (DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs, DoubleRegister scratch=kScratchDoubleReg)
 
void MaxF64 (DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs, DoubleRegister scratch=kScratchDoubleReg)
 
void SetRoundingMode (FPRoundingMode RN)
 
void ResetRoundingMode ()
 
void AddS64 (Register dst, Register src, const Operand &value, Register scratch=r0, OEBit s=LeaveOE, RCBit r=LeaveRC)
 
void AddS64 (Register dst, Register src, Register value, OEBit s=LeaveOE, RCBit r=LeaveRC)
 
void SubS64 (Register dst, Register src, const Operand &value, Register scratch=r0, OEBit s=LeaveOE, RCBit r=LeaveRC)
 
void SubS64 (Register dst, Register src, Register value, OEBit s=LeaveOE, RCBit r=LeaveRC)
 
void AddS32 (Register dst, Register src, const Operand &value, Register scratch=r0, RCBit r=LeaveRC)
 
void AddS32 (Register dst, Register src, Register value, RCBit r=LeaveRC)
 
void SubS32 (Register dst, Register src, const Operand &value, Register scratch=r0, RCBit r=LeaveRC)
 
void SubS32 (Register dst, Register src, Register value, RCBit r=LeaveRC)
 
void MulS64 (Register dst, Register src, const Operand &value, Register scratch=r0, OEBit s=LeaveOE, RCBit r=LeaveRC)
 
void MulS64 (Register dst, Register src, Register value, OEBit s=LeaveOE, RCBit r=LeaveRC)
 
void MulS32 (Register dst, Register src, const Operand &value, Register scratch=r0, OEBit s=LeaveOE, RCBit r=LeaveRC)
 
void MulS32 (Register dst, Register src, Register value, OEBit s=LeaveOE, RCBit r=LeaveRC)
 
void DivS64 (Register dst, Register src, Register value, OEBit s=LeaveOE, RCBit r=LeaveRC)
 
void DivU64 (Register dst, Register src, Register value, OEBit s=LeaveOE, RCBit r=LeaveRC)
 
void DivS32 (Register dst, Register src, Register value, OEBit s=LeaveOE, RCBit r=LeaveRC)
 
void DivU32 (Register dst, Register src, Register value, OEBit s=LeaveOE, RCBit r=LeaveRC)
 
void ModS64 (Register dst, Register src, Register value)
 
void ModU64 (Register dst, Register src, Register value)
 
void ModS32 (Register dst, Register src, Register value)
 
void ModU32 (Register dst, Register src, Register value)
 
void AndU64 (Register dst, Register src, const Operand &value, Register scratch=r0, RCBit r=SetRC)
 
void AndU64 (Register dst, Register src, Register value, RCBit r=SetRC)
 
void OrU64 (Register dst, Register src, const Operand &value, Register scratch=r0, RCBit r=SetRC)
 
void OrU64 (Register dst, Register src, Register value, RCBit r=LeaveRC)
 
void XorU64 (Register dst, Register src, const Operand &value, Register scratch=r0, RCBit r=SetRC)
 
void XorU64 (Register dst, Register src, Register value, RCBit r=LeaveRC)
 
void AndU32 (Register dst, Register src, const Operand &value, Register scratch=r0, RCBit r=SetRC)
 
void AndU32 (Register dst, Register src, Register value, RCBit r=SetRC)
 
void OrU32 (Register dst, Register src, const Operand &value, Register scratch=r0, RCBit r=SetRC)
 
void OrU32 (Register dst, Register src, Register value, RCBit r=LeaveRC)
 
void XorU32 (Register dst, Register src, const Operand &value, Register scratch=r0, RCBit r=SetRC)
 
void XorU32 (Register dst, Register src, Register value, RCBit r=LeaveRC)
 
void ShiftLeftU64 (Register dst, Register src, const Operand &value, RCBit r=LeaveRC)
 
void ShiftRightU64 (Register dst, Register src, const Operand &value, RCBit r=LeaveRC)
 
void ShiftRightS64 (Register dst, Register src, const Operand &value, RCBit r=LeaveRC)
 
void ShiftLeftU32 (Register dst, Register src, const Operand &value, RCBit r=LeaveRC)
 
void ShiftRightU32 (Register dst, Register src, const Operand &value, RCBit r=LeaveRC)
 
void ShiftRightS32 (Register dst, Register src, const Operand &value, RCBit r=LeaveRC)
 
void ShiftLeftU64 (Register dst, Register src, Register value, RCBit r=LeaveRC)
 
void ShiftRightU64 (Register dst, Register src, Register value, RCBit r=LeaveRC)
 
void ShiftRightS64 (Register dst, Register src, Register value, RCBit r=LeaveRC)
 
void ShiftLeftU32 (Register dst, Register src, Register value, RCBit r=LeaveRC)
 
void ShiftRightU32 (Register dst, Register src, Register value, RCBit r=LeaveRC)
 
void ShiftRightS32 (Register dst, Register src, Register value, RCBit r=LeaveRC)
 
void CountLeadingZerosU32 (Register dst, Register src, RCBit r=LeaveRC)
 
void CountLeadingZerosU64 (Register dst, Register src, RCBit r=LeaveRC)
 
void CountTrailingZerosU32 (Register dst, Register src, Register scratch1=ip, Register scratch2=r0, RCBit r=LeaveRC)
 
void CountTrailingZerosU64 (Register dst, Register src, Register scratch1=ip, Register scratch2=r0, RCBit r=LeaveRC)
 
void ClearByteU64 (Register dst, int byte_idx)
 
void ReverseBitsU64 (Register dst, Register src, Register scratch1, Register scratch2)
 
void ReverseBitsU32 (Register dst, Register src, Register scratch1, Register scratch2)
 
void ReverseBitsInSingleByteU64 (Register dst, Register src, Register scratch1, Register scratch2, int byte_idx)
 
void AddF64 (DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs, RCBit r=LeaveRC)
 
void SubF64 (DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs, RCBit r=LeaveRC)
 
void MulF64 (DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs, RCBit r=LeaveRC)
 
void DivF64 (DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs, RCBit r=LeaveRC)
 
void AddF32 (DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs, RCBit r=LeaveRC)
 
void SubF32 (DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs, RCBit r=LeaveRC)
 
void MulF32 (DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs, RCBit r=LeaveRC)
 
void DivF32 (DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs, RCBit r=LeaveRC)
 
void CopySignF64 (DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs, RCBit r=LeaveRC)
 
template<class _type >
void SignedExtend (Register dst, Register value)
 
template<class _type >
void ZeroExtend (Register dst, Register value)
 
template<class _type >
void ExtendValue (Register dst, Register value)
 
template<class _type >
void LoadReserve (Register output, MemOperand dst)
 
template<class _type >
void StoreConditional (Register value, MemOperand dst)
 
template<class _type >
void AtomicCompareExchange (MemOperand dst, Register old_value, Register new_value, Register output, Register scratch)
 
template<class _type >
void AtomicExchange (MemOperand dst, Register new_value, Register output)
 
template<class _type , class bin_op >
void AtomicOps (MemOperand dst, Register value, Register output, Register result, bin_op op)
 
void Push (Register src)
 
void Push (Handle< HeapObject > handle)
 
void Push (Tagged< Smi > smi)
 
void Push (Register src1, Register src2)
 
void Push (Register src1, Register src2, Register src3)
 
void Push (Register src1, Register src2, Register src3, Register src4)
 
void Push (Register src1, Register src2, Register src3, Register src4, Register src5)
 
void PushArray (Register array, Register size, Register scratch, Register scratch2, PushArrayOrder order=kNormal)
 
void Pop (Register dst)
 
void Pop (Register src1, Register src2)
 
void Pop (Register src1, Register src2, Register src3)
 
void Pop (Register src1, Register src2, Register src3, Register src4)
 
void Pop (Register src1, Register src2, Register src3, Register src4, Register src5)
 
void MaybeSaveRegisters (RegList registers)
 
void MaybeRestoreRegisters (RegList registers)
 
void CallEphemeronKeyBarrier (Register object, Register slot_address, SaveFPRegsMode fp_mode)
 
void CallIndirectPointerBarrier (Register object, Register slot_address, SaveFPRegsMode fp_mode, IndirectPointerTag tag)
 
void CallRecordWriteStubSaveRegisters (Register object, Register slot_address, SaveFPRegsMode fp_mode, StubCallMode mode=StubCallMode::kCallBuiltinPointer)
 
void CallRecordWriteStub (Register object, Register slot_address, SaveFPRegsMode fp_mode, StubCallMode mode=StubCallMode::kCallBuiltinPointer)
 
void MultiPush (RegList regs, Register location=sp)
 
void MultiPop (RegList regs, Register location=sp)
 
void MultiPushDoubles (DoubleRegList dregs, Register location=sp)
 
void MultiPopDoubles (DoubleRegList dregs, Register location=sp)
 
void MultiPushV128 (Simd128RegList dregs, Register scratch, Register location=sp)
 
void MultiPopV128 (Simd128RegList dregs, Register scratch, Register location=sp)
 
void MultiPushF64AndV128 (DoubleRegList dregs, Simd128RegList simd_regs, Register scratch1, Register scratch2, Register location=sp)
 
void MultiPopF64AndV128 (DoubleRegList dregs, Simd128RegList simd_regs, Register scratch1, Register scratch2, Register location=sp)
 
int RequiredStackSizeForCallerSaved (SaveFPRegsMode fp_mode, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg) const
 
int PushCallerSaved (SaveFPRegsMode fp_mode, Register scratch1, Register scratch2, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg)
 
int PopCallerSaved (SaveFPRegsMode fp_mode, Register scratch1, Register scratch2, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg)
 
void LoadRoot (Register destination, RootIndex index) final
 
void LoadRoot (Register destination, RootIndex index, Condition cond)
 
void LoadTaggedRoot (Register destination, RootIndex index)
 
void SwapP (Register src, Register dst, Register scratch)
 
void SwapP (Register src, MemOperand dst, Register scratch)
 
void SwapP (MemOperand src, MemOperand dst, Register scratch_0, Register scratch_1)
 
void SwapFloat32 (DoubleRegister src, DoubleRegister dst, DoubleRegister scratch)
 
void SwapFloat32 (DoubleRegister src, MemOperand dst, DoubleRegister scratch)
 
void SwapFloat32 (MemOperand src, MemOperand dst, DoubleRegister scratch_0, DoubleRegister scratch_1)
 
void SwapDouble (DoubleRegister src, DoubleRegister dst, DoubleRegister scratch)
 
void SwapDouble (DoubleRegister src, MemOperand dst, DoubleRegister scratch)
 
void SwapDouble (MemOperand src, MemOperand dst, DoubleRegister scratch_0, DoubleRegister scratch_1)
 
void SwapSimd128 (Simd128Register src, Simd128Register dst, Simd128Register scratch)
 
void SwapSimd128 (Simd128Register src, MemOperand dst, Simd128Register scratch1, Register scratch2)
 
void SwapSimd128 (MemOperand src, MemOperand dst, Simd128Register scratch1, Simd128Register scratch2, Register scratch3)
 
void ByteReverseU16 (Register dst, Register val, Register scratch)
 
void ByteReverseU32 (Register dst, Register val, Register scratch)
 
void ByteReverseU64 (Register dst, Register val, Register=r0)
 
void PrepareCallCFunction (int num_reg_arguments, int num_double_registers, Register scratch)
 
void PrepareCallCFunction (int num_reg_arguments, Register scratch)
 
void MovToFloatParameter (DoubleRegister src)
 
void MovToFloatParameters (DoubleRegister src1, DoubleRegister src2)
 
void MovToFloatResult (DoubleRegister src)
 
int CallCFunction (ExternalReference function, int num_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, bool has_function_descriptor=true)
 
int CallCFunction (Register function, int num_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, bool has_function_descriptor=true)
 
int CallCFunction (ExternalReference function, int num_reg_arguments, int num_double_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, bool has_function_descriptor=true)
 
int CallCFunction (Register function, int num_reg_arguments, int num_double_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, bool has_function_descriptor=true)
 
void MovFromFloatParameter (DoubleRegister dst)
 
void MovFromFloatResult (DoubleRegister dst)
 
void Trap ()
 
void DebugBreak ()
 
void Assert (Condition cond, AbortReason reason, CRegister cr=cr0) NOOP_UNLESS_DEBUG_CODE
 
void Check (Condition cond, AbortReason reason, CRegister cr=cr0)
 
void Abort (AbortReason reason)
 
void LoadFromConstantsTable (Register destination, int constant_index) final
 
void LoadRootRegisterOffset (Register destination, intptr_t offset) final
 
void LoadRootRelative (Register destination, int32_t offset) final
 
void StoreRootRelative (int32_t offset, Register value) final
 
MemOperand ExternalReferenceAsOperand (ExternalReference reference, Register scratch)
 
MemOperand ExternalReferenceAsOperand (IsolateFieldId id)
 
void Jump (Register target)
 
void Jump (Address target, RelocInfo::Mode rmode, Condition cond=al, CRegister cr=cr0)
 
void Jump (Handle< Code > code, RelocInfo::Mode rmode, Condition cond=al, CRegister cr=cr0)
 
void Jump (const ExternalReference &reference)
 
void Jump (intptr_t target, RelocInfo::Mode rmode, Condition cond=al, CRegister cr=cr0)
 
void Call (Register target)
 
void Call (Address target, RelocInfo::Mode rmode, Condition cond=al)
 
void Call (Handle< Code > code, RelocInfo::Mode rmode=RelocInfo::CODE_TARGET, Condition cond=al)
 
void Call (Label *target)
 
void GetLabelAddress (Register dst, Label *target)
 
void LoadEntryFromBuiltinIndex (Register builtin_index, Register target)
 
void LoadEntryFromBuiltin (Builtin builtin, Register destination)
 
MemOperand EntryFromBuiltinAsOperand (Builtin builtin)
 
void LoadCodeInstructionStart (Register destination, Register code_object, CodeEntrypointTag tag=kDefaultCodeEntrypointTag)
 
void CallCodeObject (Register code_object)
 
void JumpCodeObject (Register code_object, JumpMode jump_mode=JumpMode::kJump)
 
void CallBuiltinByIndex (Register builtin_index, Register target)
 
void BailoutIfDeoptimized ()
 
void CallForDeoptimization (Builtin target, int deopt_id, Label *exit, DeoptimizeKind kind, Label *ret, Label *jump_deoptimization_entry_label)
 
void Drop (int count)
 
void Drop (Register count, Register scratch=r0)
 
void Ret ()
 
void Ret (Condition cond, CRegister cr=cr0)
 
void Ret (int drop)
 
void CanonicalizeNaN (const DoubleRegister dst, const DoubleRegister src)
 
void CanonicalizeNaN (const DoubleRegister value)
 
void CheckPageFlag (Register object, Register scratch, int mask, Condition cc, Label *condition_met)
 
void MovIntToDouble (DoubleRegister dst, Register src, Register scratch)
 
void MovUnsignedIntToDouble (DoubleRegister dst, Register src, Register scratch)
 
void MovInt64ToDouble (DoubleRegister dst, Register src)
 
void MovInt64ComponentsToDouble (DoubleRegister dst, Register src_hi, Register src_lo, Register scratch)
 
void InsertDoubleLow (DoubleRegister dst, Register src, Register scratch)
 
void InsertDoubleHigh (DoubleRegister dst, Register src, Register scratch)
 
void MovDoubleLowToInt (Register dst, DoubleRegister src)
 
void MovDoubleHighToInt (Register dst, DoubleRegister src)
 
void MovDoubleToInt64 (Register dst, DoubleRegister src)
 
void MovIntToFloat (DoubleRegister dst, Register src, Register scratch)
 
void MovFloatToInt (Register dst, DoubleRegister src, DoubleRegister scratch)
 
void Move (Register dst, Tagged< Smi > smi)
 
void Move (Register dst, Handle< HeapObject > value, RelocInfo::Mode rmode=RelocInfo::FULL_EMBEDDED_OBJECT)
 
void Move (Register dst, ExternalReference reference)
 
void LoadIsolateField (Register dst, IsolateFieldId id)
 
void Move (Register dst, Register src, Condition cond=al)
 
void Move (DoubleRegister dst, DoubleRegister src)
 
void Move (Register dst, const MemOperand &src)
 
void SmiUntag (Register dst, const MemOperand &src, RCBit rc=LeaveRC, Register scratch=no_reg)
 
void SmiUntag (Register reg, RCBit rc=LeaveRC)
 
void SmiUntag (Register dst, Register src, RCBit rc=LeaveRC)
 
void SmiToInt32 (Register smi)
 
void SmiTag (Register reg, RCBit rc=LeaveRC)
 
void SmiTag (Register dst, Register src, RCBit rc=LeaveRC)
 
void AssertNotSmi (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertSmi (Register object) NOOP_UNLESS_DEBUG_CODE
 
void ZeroExtByte (Register dst, Register src)
 
void ZeroExtHalfWord (Register dst, Register src)
 
void ZeroExtWord32 (Register dst, Register src)
 
void ExtractBitRange (Register dst, Register src, int rangeStart, int rangeEnd, RCBit rc=LeaveRC, bool test=false)
 
void ExtractBit (Register dst, Register src, uint32_t bitNumber, RCBit rc=LeaveRC, bool test=false)
 
void ExtractBitMask (Register dst, Register src, uintptr_t mask, RCBit rc=LeaveRC, bool test=false)
 
void TestBit (Register value, int bitNumber, Register scratch=r0)
 
void TestBitMask (Register value, uintptr_t mask, Register scratch=r0)
 
void TestBitRange (Register value, int rangeStart, int rangeEnd, Register scratch=r0)
 
void TestIfSmi (Register value, Register scratch)
 
void JumpIfSmi (Register value, Label *smi_label)
 
void JumpIfEqual (Register x, int32_t y, Label *dest)
 
void JumpIfLessThan (Register x, int32_t y, Label *dest)
 
void LoadMap (Register destination, Register object)
 
void LoadCompressedMap (Register dst, Register object, Register scratch)
 
void LoadFeedbackVector (Register dst, Register closure, Register scratch, Label *fbv_undef)
 
void TestIfInt32 (Register value, Register scratch, CRegister cr=cr0)
 
void AddAndCheckForOverflow (Register dst, Register left, Register right, Register overflow_dst, Register scratch=r0)
 
void AddAndCheckForOverflow (Register dst, Register left, intptr_t right, Register overflow_dst, Register scratch=r0)
 
void SubAndCheckForOverflow (Register dst, Register left, Register right, Register overflow_dst, Register scratch=r0)
 
void TryInlineTruncateDoubleToI (Register result, DoubleRegister input, Label *done)
 
void TruncateDoubleToI (Isolate *isolate, Zone *zone, Register result, DoubleRegister double_input, StubCallMode stub_mode)
 
void LoadConstantPoolPointerRegister ()
 
void LoadConstantPoolPointerRegisterFromCodeTargetAddress (Register code_target_address, Register scratch1, Register scratch2)
 
void AbortConstantPoolBuilding ()
 
void CallJSFunction (Register function_object, uint16_t argument_count, Register scratch)
 
void JumpJSFunction (Register function_object, Register scratch, JumpMode jump_mode=JumpMode::kJump)
 
void StoreReturnAddressAndCall (Register target)
 
void EnforceStackAlignment ()
 
void CodeEntry ()
 
void ExceptionHandler ()
 
void BindExceptionHandler (Label *label)
 
void DecodeSandboxedPointer (Register value)
 
void LoadSandboxedPointerField (Register destination, const MemOperand &field_operand, Register scratch=no_reg)
 
void StoreSandboxedPointerField (Register value, const MemOperand &dst_field_operand, Register scratch=no_reg)
 
void LoadExternalPointerField (Register destination, MemOperand field_operand, ExternalPointerTag tag, Register isolate_root=no_reg, Register scratch=no_reg)
 
void LoadTrustedPointerField (Register destination, MemOperand field_operand, IndirectPointerTag tag, Register scratch=no_reg)
 
void StoreTrustedPointerField (Register value, MemOperand dst_field_operand, Register scratch=no_reg)
 
void LoadCodePointerField (Register destination, MemOperand field_operand, Register scratch)
 
void StoreCodePointerField (Register value, MemOperand dst_field_operand, Register scratch=no_reg)
 
void LoadIndirectPointerField (Register destination, MemOperand field_operand, IndirectPointerTag tag, Register scratch)
 
void StoreIndirectPointerField (Register value, MemOperand dst_field_operand, Register scratch)
 
void SmiToPtrArrayOffset (Register dst, Register src)
 
void LoadTaggedField (const Register &destination, const MemOperand &field_operand, const Register &scratch=no_reg)
 
void LoadTaggedSignedField (Register destination, MemOperand field_operand, Register scratch)
 
void StoreTaggedField (const Register &value, const MemOperand &dst_field_operand, const Register &scratch=no_reg)
 
void Zero (const MemOperand &dest)
 
void Zero (const MemOperand &dest1, const MemOperand &dest2)
 
void DecompressTaggedSigned (Register destination, MemOperand field_operand)
 
void DecompressTaggedSigned (Register destination, Register src)
 
void DecompressTagged (Register destination, MemOperand field_operand)
 
void DecompressTagged (Register destination, Register source)
 
void DecompressTagged (const Register &destination, Tagged_t immediate)
 
void LoadF64 (DoubleRegister dst, const MemOperand &mem, Register scratch=no_reg)
 
void LoadF32 (DoubleRegister dst, const MemOperand &mem, Register scratch=no_reg)
 
void StoreF32 (DoubleRegister src, const MemOperand &mem, Register scratch=no_reg)
 
void StoreF64 (DoubleRegister src, const MemOperand &mem, Register scratch=no_reg)
 
void LoadF32WithUpdate (DoubleRegister dst, const MemOperand &mem, Register scratch=no_reg)
 
void LoadF64WithUpdate (DoubleRegister dst, const MemOperand &mem, Register scratch=no_reg)
 
void StoreF32WithUpdate (DoubleRegister src, const MemOperand &mem, Register scratch=no_reg)
 
void StoreF64WithUpdate (DoubleRegister src, const MemOperand &mem, Register scratch=no_reg)
 
void LoadU64 (Register dst, const MemOperand &mem, Register scratch=no_reg)
 
void LoadU32 (Register dst, const MemOperand &mem, Register scratch=no_reg)
 
void LoadS32 (Register dst, const MemOperand &mem, Register scratch=no_reg)
 
void LoadU16 (Register dst, const MemOperand &mem, Register scratch=no_reg)
 
void LoadS16 (Register dst, const MemOperand &mem, Register scratch=no_reg)
 
void LoadU8 (Register dst, const MemOperand &mem, Register scratch=no_reg)
 
void LoadS8 (Register dst, const MemOperand &mem, Register scratch=no_reg)
 
void StoreU64 (Register src, const MemOperand &mem, Register scratch=no_reg)
 
void StoreU32 (Register src, const MemOperand &mem, Register scratch)
 
void StoreU16 (Register src, const MemOperand &mem, Register scratch)
 
void StoreU8 (Register src, const MemOperand &mem, Register scratch)
 
void LoadU64WithUpdate (Register dst, const MemOperand &mem, Register scratch=no_reg)
 
void StoreU64WithUpdate (Register src, const MemOperand &mem, Register scratch=no_reg)
 
void LoadU64LE (Register dst, const MemOperand &mem, Register scratch)
 
void LoadU32LE (Register dst, const MemOperand &mem, Register scratch)
 
void LoadU16LE (Register dst, const MemOperand &mem, Register scratch)
 
void StoreU64LE (Register src, const MemOperand &mem, Register scratch)
 
void StoreU32LE (Register src, const MemOperand &mem, Register scratch)
 
void StoreU16LE (Register src, const MemOperand &mem, Register scratch)
 
void LoadS32LE (Register dst, const MemOperand &mem, Register scratch)
 
void LoadS16LE (Register dst, const MemOperand &mem, Register scratch)
 
void LoadF64LE (DoubleRegister dst, const MemOperand &mem, Register scratch, Register scratch2)
 
void LoadF32LE (DoubleRegister dst, const MemOperand &mem, Register scratch, Register scratch2)
 
void StoreF32LE (DoubleRegister src, const MemOperand &mem, Register scratch, Register scratch2)
 
void StoreF64LE (DoubleRegister src, const MemOperand &mem, Register scratch, Register scratch2)
 
void LoadSimd128 (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void StoreSimd128 (Simd128Register src, const MemOperand &mem, Register scratch)
 
void LoadSimd128LE (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void StoreSimd128LE (Simd128Register src, const MemOperand &mem, Register scratch1, Simd128Register scratch2)
 
void LoadSimd128Uint64 (Simd128Register reg, const MemOperand &mem, Register scratch)
 
void LoadSimd128Uint32 (Simd128Register reg, const MemOperand &mem, Register scratch)
 
void LoadSimd128Uint16 (Simd128Register reg, const MemOperand &mem, Register scratch)
 
void LoadSimd128Uint8 (Simd128Register reg, const MemOperand &mem, Register scratch)
 
void StoreSimd128Uint64 (Simd128Register reg, const MemOperand &mem, Register scratch)
 
void StoreSimd128Uint32 (Simd128Register reg, const MemOperand &mem, Register scratch)
 
void StoreSimd128Uint16 (Simd128Register reg, const MemOperand &mem, Register scratch)
 
void StoreSimd128Uint8 (Simd128Register reg, const MemOperand &mem, Register scratch)
 
void LoadLane64LE (Simd128Register dst, const MemOperand &mem, int lane, Register scratch1, Simd128Register scratch2)
 
void LoadLane32LE (Simd128Register dst, const MemOperand &mem, int lane, Register scratch1, Simd128Register scratch2)
 
void LoadLane16LE (Simd128Register dst, const MemOperand &mem, int lane, Register scratch1, Simd128Register scratch2)
 
void LoadLane8LE (Simd128Register dst, const MemOperand &mem, int lane, Register scratch1, Simd128Register scratch2)
 
void StoreLane64LE (Simd128Register src, const MemOperand &mem, int lane, Register scratch1, Simd128Register scratch2)
 
void StoreLane32LE (Simd128Register src, const MemOperand &mem, int lane, Register scratch1, Simd128Register scratch2)
 
void StoreLane16LE (Simd128Register src, const MemOperand &mem, int lane, Register scratch1, Simd128Register scratch2)
 
void StoreLane8LE (Simd128Register src, const MemOperand &mem, int lane, Register scratch1, Simd128Register scratch2)
 
void LoadAndSplat64x2LE (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void LoadAndSplat32x4LE (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void LoadAndSplat16x8LE (Simd128Register dst, const MemOperand &me, Register scratch)
 
void LoadAndSplat8x16LE (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void LoadAndExtend32x2SLE (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void LoadAndExtend32x2ULE (Simd128Register dst, const MemOperand &mem, Register scratch1, Simd128Register scratch2)
 
void LoadAndExtend16x4SLE (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void LoadAndExtend16x4ULE (Simd128Register dst, const MemOperand &mem, Register scratch1, Simd128Register scratch2)
 
void LoadAndExtend8x8SLE (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void LoadAndExtend8x8ULE (Simd128Register dst, const MemOperand &mem, Register scratch1, Simd128Register scratch2)
 
void LoadV64ZeroLE (Simd128Register dst, const MemOperand &mem, Register scratch1, Simd128Register scratch2)
 
void LoadV32ZeroLE (Simd128Register dst, const MemOperand &mem, Register scratch1, Simd128Register scratch2)
 
void F64x2Splat (Simd128Register dst, DoubleRegister src, Register scratch)
 
void F32x4Splat (Simd128Register dst, DoubleRegister src, DoubleRegister scratch1, Register scratch2)
 
void I64x2Splat (Simd128Register dst, Register src)
 
void I32x4Splat (Simd128Register dst, Register src)
 
void I16x8Splat (Simd128Register dst, Register src)
 
void I8x16Splat (Simd128Register dst, Register src)
 
void F64x2ExtractLane (DoubleRegister dst, Simd128Register src, uint8_t imm_lane_idx, Simd128Register scratch1, Register scratch2)
 
void F32x4ExtractLane (DoubleRegister dst, Simd128Register src, uint8_t imm_lane_idx, Simd128Register scratch1, Register scratch2, Register scratch3)
 
void I64x2ExtractLane (Register dst, Simd128Register src, uint8_t imm_lane_idx, Simd128Register scratch)
 
void I32x4ExtractLane (Register dst, Simd128Register src, uint8_t imm_lane_idx, Simd128Register scratch)
 
void I16x8ExtractLaneU (Register dst, Simd128Register src, uint8_t imm_lane_idx, Simd128Register scratch)
 
void I16x8ExtractLaneS (Register dst, Simd128Register src, uint8_t imm_lane_idx, Simd128Register scratch)
 
void I8x16ExtractLaneU (Register dst, Simd128Register src, uint8_t imm_lane_idx, Simd128Register scratch)
 
void I8x16ExtractLaneS (Register dst, Simd128Register src, uint8_t imm_lane_idx, Simd128Register scratch)
 
void F64x2ReplaceLane (Simd128Register dst, Simd128Register src1, DoubleRegister src2, uint8_t imm_lane_idx, Register scratch1, Simd128Register scratch2)
 
void F32x4ReplaceLane (Simd128Register dst, Simd128Register src1, DoubleRegister src2, uint8_t imm_lane_idx, Register scratch1, DoubleRegister scratch2, Simd128Register scratch3)
 
void I64x2ReplaceLane (Simd128Register dst, Simd128Register src1, Register src2, uint8_t imm_lane_idx, Simd128Register scratch)
 
void I32x4ReplaceLane (Simd128Register dst, Simd128Register src1, Register src2, uint8_t imm_lane_idx, Simd128Register scratch)
 
void I16x8ReplaceLane (Simd128Register dst, Simd128Register src1, Register src2, uint8_t imm_lane_idx, Simd128Register scratch)
 
void I8x16ReplaceLane (Simd128Register dst, Simd128Register src1, Register src2, uint8_t imm_lane_idx, Simd128Register scratch)
 
void I64x2Mul (Simd128Register dst, Simd128Register src1, Simd128Register src2, Register scratch1, Register scrahc2, Register scratch3, Simd128Register scratch4)
 
void F64x2Min (Simd128Register dst, Simd128Register src1, Simd128Register src2, Simd128Register scratch1, Simd128Register scratch2)
 
void F64x2Max (Simd128Register dst, Simd128Register src1, Simd128Register src2, Simd128Register scratch1, Simd128Register scratch2)
 
void F64x2ConvertLowI32x4U (Simd128Register dst, Simd128Register src, Register scratch1, Simd128Register scratch2)
 
void I64x2UConvertI32x4Low (Simd128Register dst, Simd128Register src, Register scratch1, Simd128Register scratch2)
 
void I64x2UConvertI32x4High (Simd128Register dst, Simd128Register src, Register scratch1, Simd128Register scratch2)
 
void I32x4UConvertI16x8Low (Simd128Register dst, Simd128Register src, Register scratch1, Simd128Register scratch2)
 
void I32x4UConvertI16x8High (Simd128Register dst, Simd128Register src, Register scratch1, Simd128Register scratch2)
 
void I16x8UConvertI8x16Low (Simd128Register dst, Simd128Register src, Register scratch1, Simd128Register scratch2)
 
void I16x8UConvertI8x16High (Simd128Register dst, Simd128Register src, Register scratch1, Simd128Register scratch2)
 
void I8x16BitMask (Register dst, Simd128Register src, Register scratch1, Register scratch2, Simd128Register scratch3)
 
void I8x16Shuffle (Simd128Register dst, Simd128Register src1, Simd128Register src2, uint64_t high, uint64_t low, Register scratch1, Register scratch2, Simd128Register scratch3)
 
void I32x4DotI8x16AddS (Simd128Register dst, Simd128Register src1, Simd128Register src2, Simd128Register src3)
 
void V128AnyTrue (Register dst, Simd128Register src, Register scratch1, Register scratch2, Simd128Register scratch3)
 
void S128Const (Simd128Register dst, uint64_t high, uint64_t low, Register scratch1, Register scratch2)
 
void S128Select (Simd128Register dst, Simd128Register src1, Simd128Register src2, Simd128Register mask)
 
void LoadReceiver (Register dest)
 
void StoreReceiver (Register rec)
 
void RecordWriteField (Register object, int offset, Register value, Register slot_address, LinkRegisterStatus lr_status, SaveFPRegsMode save_fp, SmiCheck smi_check=SmiCheck::kInline, SlotDescriptor slot=SlotDescriptor::ForDirectPointerSlot())
 
void RecordWrite (Register object, Register slot_address, Register value, LinkRegisterStatus lr_status, SaveFPRegsMode save_fp, SmiCheck smi_check=SmiCheck::kInline, SlotDescriptor slot=SlotDescriptor::ForDirectPointerSlot())
 
void EnterExitFrame (Register scratch, int stack_space, StackFrame::Type frame_type)
 
void LeaveExitFrame (Register scratch)
 
void LoadGlobalProxy (Register dst)
 
void LoadNativeContextSlot (Register dst, int index)
 
void AddSmiLiteral (Register dst, Register src, Tagged< Smi > smi, Register scratch)
 
void SubSmiLiteral (Register dst, Register src, Tagged< Smi > smi, Register scratch)
 
void CmpSmiLiteral (Register src1, Tagged< Smi > smi, Register scratch, CRegister cr=cr0)
 
void CmplSmiLiteral (Register src1, Tagged< Smi > smi, Register scratch, CRegister cr=cr0)
 
void AndSmiLiteral (Register dst, Register src, Tagged< Smi > smi, Register scratch, RCBit rc=LeaveRC)
 
void InvokeFunctionCode (Register function, Register new_target, Register expected_parameter_count, Register actual_parameter_count, InvokeType type)
 
void CheckDebugHook (Register fun, Register new_target, Register expected_parameter_count, Register actual_parameter_count)
 
void InvokeFunctionWithNewTarget (Register function, Register new_target, Register actual_parameter_count, InvokeType type)
 
void InvokeFunction (Register function, Register expected_parameter_count, Register actual_parameter_count, InvokeType type)
 
void PushStackHandler ()
 
void PopStackHandler ()
 
void CompareObjectType (Register heap_object, Register map, Register type_reg, InstanceType type)
 
void CompareObjectTypeRange (Register heap_object, Register map, Register type_reg, Register scratch, InstanceType lower_limit, InstanceType higher_limit)
 
void IsObjectType (Register heap_object, Register scratch1, Register scratch2, InstanceType type)
 
void JumpIfObjectType (Register object, Register map, Register type_reg, InstanceType type, Label *if_cond_pass, Condition cond=eq)
 
void CompareInstanceType (Register map, Register type_reg, InstanceType type)
 
void CompareInstanceTypeRange (Register map, Register type_reg, Register scratch, InstanceType lower_limit, InstanceType higher_limit)
 
void CompareRoot (Register obj, RootIndex index)
 
void CompareTaggedRoot (const Register &with, RootIndex index)
 
void PushRoot (RootIndex index)
 
void JumpIfRoot (Register with, RootIndex index, Label *if_equal)
 
void JumpIfNotRoot (Register with, RootIndex index, Label *if_not_equal)
 
void CompareRange (Register value, Register scratch, unsigned lower_limit, unsigned higher_limit)
 
void JumpIfIsInRange (Register value, Register scratch, unsigned lower_limit, unsigned higher_limit, Label *on_in_range)
 
void JumpIfJSAnyIsNotPrimitive (Register heap_object, Register scratch, Label *target, Label::Distance distance=Label::kFar, Condition condition=Condition::kUnsignedGreaterThanEqual)
 
void JumpIfJSAnyIsPrimitive (Register heap_object, Register scratch, Label *target, Label::Distance distance=Label::kFar)
 
void AssertFeedbackCell (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void AssertFeedbackVector (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void ReplaceClosureCodeWithOptimizedCode (Register optimized_code, Register closure, Register scratch1, Register slot_address)
 
void GenerateTailCallToReturnedCode (Runtime::FunctionId function_id)
 
void LoadFeedbackVectorFlagsAndJumpIfNeedsProcessing (Register flags, Register feedback_vector, CodeKind current_code_kind, Label *flags_need_processing)
 
void OptimizeCodeOrTailCallOptimizedCodeSlot (Register flags, Register feedback_vector)
 
void CallJSEntry (Register target)
 
void CallRuntime (const Runtime::Function *f, int num_arguments)
 
void CallRuntime (Runtime::FunctionId fid)
 
void CallRuntime (Runtime::FunctionId fid, int num_arguments)
 
void TailCallRuntime (Runtime::FunctionId fid)
 
void JumpToExternalReference (const ExternalReference &builtin, bool builtin_exit_frame=false)
 
void LoadWeakValue (Register out, Register in, Label *target_if_cleared)
 
void IncrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void EmitIncrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void DecrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void EmitDecrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void StackOverflowCheck (Register num_args, Register scratch, Label *stack_overflow)
 
void LoadStackLimit (Register destination, StackLimitKind kind, Register scratch)
 
void JumpIfNotSmi (Register value, Label *not_smi_label)
 
void AssertConstructor (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertCallableFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertBoundFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertGeneratorObject (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertUndefinedOrAllocationSite (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void AssertJSAny (Register object, Register map_tmp, Register tmp, AbortReason abort_reason) NOOP_UNLESS_DEBUG_CODE
 
template<typename Field >
void DecodeField (Register dst, Register src, RCBit rc=LeaveRC)
 
template<typename Field >
void DecodeField (Register reg, RCBit rc=LeaveRC)
 
void TestCodeIsMarkedForDeoptimization (Register code, Register scratch1, Register scratch2)
 
Operand ClearedValue () const
 
void EnterFrame (StackFrame::Type type)
 
void EnterFrame (StackFrame::Type type, bool load_constant_pool_pointer_reg)
 
void LeaveFrame (StackFrame::Type type)
 
void StubPrologue (StackFrame::Type type)
 
void Prologue ()
 
void InitializeRootRegister ()
 
void LoadIsolateField (const Register &rd, IsolateFieldId id)
 
void jmp (Label *L, Label::Distance distance=Label::kFar)
 
void Trap ()
 
void DebugBreak ()
 
void Assert (Condition cc, AbortReason reason, Register rs, Operand rt)
 
void AssertJSAny (Register object, Register map_tmp, Register tmp, AbortReason abort_reason)
 
void AssertSmiOrHeapObjectInMainCompressionCage (Register object) NOOP_UNLESS_DEBUG_CODE
 
void Check (Condition cond, AbortReason reason)
 
void Check (Condition cc, AbortReason reason, Register rs, Operand rt)
 
void SbxCheck (Condition cc, AbortReason reason, Register rs, Operand rt)
 
void Abort (AbortReason msg)
 
void Branch (Label *target)
 
void Branch (int32_t target)
 
void BranchLong (Label *L)
 
void Branch (Label *target, Condition cond, Register r1, const Operand &r2, Label::Distance distance=Label::kFar)
 
void Branch (Label *target, Label::Distance distance)
 
void Branch (int32_t target, Condition cond, Register r1, const Operand &r2, Label::Distance distance=Label::kFar)
 
void Branch (Label *L, Condition cond, Register rj, RootIndex index, Label::Distance distance=Label::kFar)
 
void BranchRange (Label *L, Condition cond, Register value, Register scratch, unsigned lower_limit, unsigned higher_limit, Label::Distance distance=Label::kFar)
 
void AllocateStackSpace (Register bytes)
 
void AllocateStackSpace (int bytes)
 
void NegateBool (Register rd, Register rs)
 
void CompareF32 (Register rd, FPUCondition cc, FPURegister cmp1, FPURegister cmp2)
 
void CompareF64 (Register rd, FPUCondition cc, FPURegister cmp1, FPURegister cmp2)
 
void CompareIsNotNanF32 (Register rd, FPURegister cmp1, FPURegister cmp2)
 
void CompareIsNotNanF64 (Register rd, FPURegister cmp1, FPURegister cmp2)
 
void CompareIsNanF32 (Register rd, FPURegister cmp1, FPURegister cmp2)
 
void CompareIsNanF64 (Register rd, FPURegister cmp1, FPURegister cmp2)
 
void BranchTrueShortF (Register rs, Label *target)
 
void BranchFalseShortF (Register rs, Label *target)
 
void BranchTrueF (Register rs, Label *target)
 
void BranchFalseF (Register rs, Label *target)
 
void CompareTaggedAndBranch (Label *label, Condition cond, Register r1, const Operand &r2, bool need_link=false)
 
void LiLower32BitHelper (Register rd, Operand j)
 
void li_optimized (Register rd, Operand j, LiFlags mode=OPTIMIZE_SIZE)
 
void li (Register rd, Operand j, LiFlags mode=OPTIMIZE_SIZE)
 
void li (Register rd, intptr_t j, LiFlags mode=OPTIMIZE_SIZE)
 
void Move (Register output, MemOperand operand)
 
void li (Register dst, Handle< HeapObject > value, RelocInfo::Mode rmode=RelocInfo::FULL_EMBEDDED_OBJECT)
 
void li (Register dst, ExternalReference value, LiFlags mode=OPTIMIZE_SIZE)
 
void LoadFromConstantsTable (Register destination, int constant_index) final
 
void LoadRootRegisterOffset (Register destination, intptr_t offset) final
 
void LoadRootRelative (Register destination, int32_t offset) final
 
void StoreRootRelative (int32_t offset, Register value) final
 
MemOperand ExternalReferenceAsOperand (ExternalReference reference, Register scratch)
 
MemOperand ExternalReferenceAsOperand (IsolateFieldId id)
 
void GenPCRelativeJump (Register rd, int32_t imm32)
 
void GenPCRelativeJumpAndLink (Register rd, int32_t imm32)
 
void near_jump (int offset, RelocInfo::Mode rmode)
 
void near_call (int offset, RelocInfo::Mode rmode)
 
void near_call (HeapNumberRequest request)
 
void Jump (Register target, COND_ARGS)
 
void Jump (intptr_t target, RelocInfo::Mode rmode, COND_ARGS)
 
void Jump (Address target, RelocInfo::Mode rmode, COND_ARGS)
 
bool CanUseNearCallOrJump (RelocInfo::Mode rmode)
 
void PatchAndJump (Address target)
 
void Jump (Handle< Code > code, RelocInfo::Mode rmode, COND_ARGS)
 
void Jump (const ExternalReference &reference)
 
void Call (Register target, COND_ARGS)
 
void Call (Address target, RelocInfo::Mode rmode, COND_ARGS)
 
void Call (Handle< Code > code, RelocInfo::Mode rmode=RelocInfo::CODE_TARGET, COND_ARGS)
 
void Call (Label *target)
 
void LoadAddress (Register dst, Label *target, RelocInfo::Mode rmode=RelocInfo::INTERNAL_REFERENCE_ENCODED)
 
void LoadCodeInstructionStart (Register destination, Register code_object, CodeEntrypointTag tag=kDefaultCodeEntrypointTag)
 
void CallCodeObject (Register code_object, CodeEntrypointTag tag)
 
void JumpCodeObject (Register code_object, CodeEntrypointTag tag, JumpMode jump_mode=JumpMode::kJump)
 
void CallJSFunction (Register function_object, uint16_t argument_count)
 
void JumpJSFunction (Register function_object, JumpMode jump_mode=JumpMode::kJump)
 
void LoadEntryFromBuiltinIndex (Register builtin_index, Register target)
 
void LoadEntryFromBuiltin (Builtin builtin, Register destination)
 
MemOperand EntryFromBuiltinAsOperand (Builtin builtin)
 
void CallBuiltinByIndex (Register builtin_index, Register target)
 
void CallBuiltin (Builtin builtin)
 
void TailCallBuiltin (Builtin builtin)
 
void TailCallBuiltin (Builtin builtin, Condition cond, Register type, Operand range)
 
void StoreReturnAddressAndCall (Register target)
 
void BailoutIfDeoptimized ()
 
void CallForDeoptimization (Builtin target, int deopt_id, Label *exit, DeoptimizeKind kind, Label *ret, Label *jump_deoptimization_entry_label)
 
void Ret (COND_ARGS)
 
void Drop (int count, Condition cond=cc_always, Register reg=no_reg, const Operand &op=Operand(no_reg))
 
void DropAndRet (int drop)
 
void DropAndRet (int drop, Condition cond, Register reg, const Operand &op)
 
void push (Register src)
 
void Push (Register src)
 
void Push (Handle< HeapObject > handle)
 
void Push (Tagged< Smi > smi)
 
void Push (Tagged< TaggedIndex > index)
 
template<typename... Rs>
void Push (Register r, Rs... rs)
 
void Push (Register src, Condition cond, Register tst1, Register tst2)
 
void PushArray (Register array, Register size, PushArrayOrder order=kNormal)
 
void Switch (Register scratch, Register value, int case_value_base, Label **labels, int num_labels)
 
void MaybeSaveRegisters (RegList registers)
 
void MaybeRestoreRegisters (RegList registers)
 
void CallEphemeronKeyBarrier (Register object, Operand offset, SaveFPRegsMode fp_mode)
 
void CallIndirectPointerBarrier (Register object, Operand offset, SaveFPRegsMode fp_mode, IndirectPointerTag tag)
 
void CallRecordWriteStubSaveRegisters (Register object, Operand offset, SaveFPRegsMode fp_mode, StubCallMode mode=StubCallMode::kCallBuiltinPointer)
 
void CallRecordWriteStub (Register object, Register slot_address, SaveFPRegsMode fp_mode, StubCallMode mode=StubCallMode::kCallBuiltinPointer)
 
void MoveObjectAndSlot (Register dst_object, Register dst_slot, Register object, Operand offset)
 
void PushAll (RegList registers)
 
void PopAll (RegList registers)
 
void PushAll (DoubleRegList registers, int stack_slot_size=kDoubleSize)
 
void PopAll (DoubleRegList registers, int stack_slot_size=kDoubleSize)
 
void MultiPush (RegList regs)
 
void MultiPushFPU (DoubleRegList regs)
 
int RequiredStackSizeForCallerSaved (SaveFPRegsMode fp_mode, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg) const
 
int PushCallerSaved (SaveFPRegsMode fp_mode, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg)
 
int PopCallerSaved (SaveFPRegsMode fp_mode, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg)
 
void pop (Register dst)
 
void Pop (Register dst)
 
template<typename... Rs>
void Pop (Register r, Rs... rs)
 
void Pop (uint32_t count=1)
 
void MultiPop (RegList regs)
 
void MultiPopFPU (DoubleRegList regs)
 
void Amosub_w (bool aq, bool rl, Register rd, Register rs1, Register rs2)
 
void SmiUntag (Register dst, const MemOperand &src)
 
void SmiUntag (Register dst, Register src)
 
void SmiUntag (Register reg)
 
void SmiToInt32 (Register smi)
 
void SmiToInt32 (Register dst, Register smi)
 
void AssertNotSmi (Register object, AbortReason reason=AbortReason::kOperandIsASmi)
 
void AssertSmi (Register object, AbortReason reason=AbortReason::kOperandIsASmi)
 
void AssertZeroExtended (Register int32_register) NOOP_UNLESS_DEBUG_CODE
 
void AssertSignExtended (Register int32_register) NOOP_UNLESS_DEBUG_CODE
 
void AssertRange (Condition cond, AbortReason reason, Register value, Register scratch, unsigned lower_limit, unsigned higher_limit) NOOP_UNLESS_DEBUG_CODE
 
int CalculateStackPassedDWords (int num_gp_arguments, int num_fp_arguments)
 
void PrepareCallCFunction (int num_reg_arguments, int num_double_registers, Register scratch)
 
void PrepareCallCFunction (int num_reg_arguments, Register scratch)
 
int CallCFunction (ExternalReference function, int num_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_location=nullptr)
 
int CallCFunction (Register function, int num_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_location=nullptr)
 
int CallCFunction (ExternalReference function, int num_reg_arguments, int num_double_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_location=nullptr)
 
int CallCFunction (Register function, int num_reg_arguments, int num_double_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_location=nullptr)
 
void MovFromFloatResult (DoubleRegister dst)
 
void MovFromFloatParameter (DoubleRegister dst)
 
void MovToFloatParameter (DoubleRegister src)
 
void MovToFloatParameters (DoubleRegister src1, DoubleRegister src2)
 
void MovToFloatResult (DoubleRegister src)
 
void PrepareCEntryArgs (int num_args)
 
void PrepareCEntryFunction (const ExternalReference &ref)
 
void CheckPageFlag (Register object, int mask, Condition cc, Label *condition_met)
 
void CheckPageFlag (const Register &object, Register scratch, int mask, Condition cc, Label *condition_met)
 
void TruncateDoubleToI (Isolate *isolate, Zone *zone, Register result, DoubleRegister double_input, StubCallMode stub_mode)
 
void CompareI (Register rd, Register rs, const Operand &rt, Condition cond)
 
void LoadZeroIfConditionNotZero (Register dest, Register condition)
 
void LoadZeroIfConditionZero (Register dest, Register condition)
 
void SignExtendByte (Register rd, Register rs)
 
void SignExtendShort (Register rd, Register rs)
 
void Clz32 (Register rd, Register rs)
 
void Ctz32 (Register rd, Register rs)
 
void Popcnt32 (Register rd, Register rs, Register scratch)
 
void ExtractBits (Register rt, Register rs, uint16_t pos, uint16_t size, bool sign_extend=false)
 
void ExtractBits (Register dest, Register source, Register pos, int size, bool sign_extend=false)
 
void InsertBits (Register dest, Register source, Register pos, int size)
 
void Neg_s (FPURegister fd, FPURegister fs)
 
void Neg_d (FPURegister fd, FPURegister fs)
 
void ByteSwap (Register dest, Register src, int operand_size, Register scratch=no_reg)
 
template<int NBYTES>
void ReverseBytesHelper (Register rd, Register rs, Register tmp1, Register tmp2)
 
void Clear_if_nan_d (Register rd, FPURegister fs)
 
void Clear_if_nan_s (Register rd, FPURegister fs)
 
void Trunc_uw_s (Register rd, FPURegister fs, Register result=no_reg)
 
template<int NBYTES, bool IS_SIGNED>
void UnalignedLoadHelper (Register rd, const MemOperand &rs)
 
template<int NBYTES>
void UnalignedStoreHelper (Register rd, const MemOperand &rs, Register scratch_other=no_reg)
 
template<int NBYTES>
void UnalignedFLoadHelper (FPURegister frd, const MemOperand &rs)
 
template<int NBYTES>
void UnalignedFStoreHelper (FPURegister frd, const MemOperand &rs)
 
template<typename Reg_T , typename Func >
void AlignedLoadHelper (Reg_T target, const MemOperand &rs, Func generator)
 
template<typename Reg_T , typename Func >
void AlignedStoreHelper (Reg_T value, const MemOperand &rs, Func generator)
 
template<int NBYTES, bool LOAD_SIGNED>
void LoadNBytes (Register rd, const MemOperand &rs, Register scratch)
 
template<int NBYTES, bool LOAD_SIGNED>
void LoadNBytesOverwritingBaseReg (const MemOperand &rs, Register scratch0, Register scratch1)
 
void Ulh (Register rd, const MemOperand &rs)
 
void Ulhu (Register rd, const MemOperand &rs)
 
void Ush (Register rd, const MemOperand &rs)
 
void Ulw (Register rd, const MemOperand &rs)
 
void Usw (Register rd, const MemOperand &rs)
 
void Uld (Register rd, const MemOperand &rs)
 
void Usd (Register rd, const MemOperand &rs)
 
void ULoadFloat (FPURegister fd, const MemOperand &rs)
 
void UStoreFloat (FPURegister fd, const MemOperand &rs)
 
void ULoadDouble (FPURegister fd, const MemOperand &rs)
 
void UStoreDouble (FPURegister fd, const MemOperand &rs)
 
void Lb (Register rd, const MemOperand &rs, Trapper &&trapper=[](int){})
 
void Lbu (Register rd, const MemOperand &rs, Trapper &&trapper=[](int){})
 
void Sb (Register rd, const MemOperand &rs, Trapper &&trapper=[](int){})
 
void Lh (Register rd, const MemOperand &rs, Trapper &&trapper=[](int){})
 
void Lhu (Register rd, const MemOperand &rs, Trapper &&trapper=[](int){})
 
void Sh (Register rd, const MemOperand &rs, Trapper &&trapper=[](int){})
 
void Lw (Register rd, const MemOperand &rs, Trapper &&trapper=[](int){})
 
void Sw (Register rd, const MemOperand &rs, Trapper &&trapper=[](int){})
 
void LoadFloat (FPURegister fd, const MemOperand &src, Trapper &&trapper=[](int){})
 
void StoreFloat (FPURegister fs, const MemOperand &dst, Trapper &&trapper=[](int){})
 
void LoadDouble (FPURegister fd, const MemOperand &src, Trapper &&trapper=[](int){})
 
void StoreDouble (FPURegister fs, const MemOperand &dst, Trapper &&trapper=[](int){})
 
void Ll (Register rd, const MemOperand &rs, Trapper &&trapper=[](int){})
 
void Sc (Register rd, const MemOperand &rs, Trapper &&trapper=[](int){})
 
void Float32Max (FPURegister dst, FPURegister src1, FPURegister src2)
 
void Float32Min (FPURegister dst, FPURegister src1, FPURegister src2)
 
void Float64Max (FPURegister dst, FPURegister src1, FPURegister src2)
 
void Float64Min (FPURegister dst, FPURegister src1, FPURegister src2)
 
template<typename F >
void FloatMinMaxHelper (FPURegister dst, FPURegister src1, FPURegister src2, MaxMinKind kind)
 
bool IsDoubleZeroRegSet ()
 
bool IsSingleZeroRegSet ()
 
void MoveIfZero (Register rd, Register rj, Register rk)
 
void Move (Register dst, Tagged< Smi > smi)
 
void Move (Register dst, Register src)
 
void MoveDouble (FPURegister dst, FPURegister src)
 
void MoveFloat (FPURegister dst, FPURegister src)
 
void Move (FPURegister dst, FPURegister src)
 
void ExtractHighWordFromF64 (Register dst_high, FPURegister src)
 
void InsertHighWordF64 (FPURegister dst, Register src_high)
 
void ExtractLowWordFromF64 (Register dst_low, FPURegister src)
 
void InsertLowWordF64 (FPURegister dst, Register src_low)
 
void LoadFPRImmediate (FPURegister dst, float imm)
 
void LoadFPRImmediate (FPURegister dst, double imm)
 
void LoadFPRImmediate (FPURegister dst, uint32_t src)
 
void LoadFPRImmediate (FPURegister dst, uint64_t src)
 
void MulOverflow32 (Register dst, Register left, const Operand &right, Register overflow, bool sign_extend_inputs=true)
 
void MulOverflow64 (Register dst, Register left, const Operand &right, Register overflow)
 
template<typename Func >
void GenerateSwitchTable (Register index, size_t case_count, Func GetLabelFunction)
 
void LoadRoot (Register destination, RootIndex index) final
 
void LoadTaggedRoot (Register destination, RootIndex index)
 
void LoadCompressedTaggedRoot (Register destination, RootIndex index)
 
void LoadMap (Register destination, Register object)
 
void LoadFeedbackVector (Register dst, Register closure, Register scratch, Label *fbv_undef)
 
void LoadCompressedMap (Register dst, Register object)
 
void FPUCanonicalizeNaN (const DoubleRegister dst, const DoubleRegister src)
 
void Cvt_d_uw (FPURegister fd, Register rs)
 
void Cvt_d_w (FPURegister fd, Register rs)
 
void Cvt_d_ul (FPURegister fd, Register rs)
 
void Cvt_s_uw (FPURegister fd, Register rs)
 
void Cvt_s_w (FPURegister fd, Register rs)
 
void Cvt_s_ul (FPURegister fd, Register rs)
 
void Trunc_uw_d (Register rd, FPURegister fs, Register result=no_reg)
 
void Trunc_w_d (Register rd, FPURegister fs, Register result=no_reg)
 
void Trunc_w_s (Register rd, FPURegister fs, Register result=no_reg)
 
void Round_w_s (Register rd, FPURegister fs, Register result=no_reg)
 
void Round_w_d (Register rd, FPURegister fs, Register result=no_reg)
 
void Ceil_w_s (Register rd, FPURegister fs, Register result=no_reg)
 
void Ceil_w_d (Register rd, FPURegister fs, Register result=no_reg)
 
void Floor_w_s (Register rd, FPURegister fs, Register result=no_reg)
 
void Floor_w_d (Register rd, FPURegister fs, Register result=no_reg)
 
void Trunc_s_s (FPURegister fd, FPURegister fs, FPURegister fpu_scratch)
 
void Round_s_s (FPURegister fd, FPURegister fs, FPURegister fpu_scratch)
 
void Floor_s_s (FPURegister fd, FPURegister fs, FPURegister fpu_scratch)
 
void Ceil_s_s (FPURegister fd, FPURegister fs, FPURegister fpu_scratch)
 
void Ceil_f (VRegister dst, VRegister src, Register scratch, VRegister v_scratch)
 
void Ceil_d (VRegister dst, VRegister src, Register scratch, VRegister v_scratch)
 
void Floor_f (VRegister dst, VRegister src, Register scratch, VRegister v_scratch)
 
void Floor_d (VRegister dst, VRegister src, Register scratch, VRegister v_scratch)
 
void Trunc_f (VRegister dst, VRegister src, Register scratch, VRegister v_scratch)
 
void Trunc_d (VRegister dst, VRegister src, Register scratch, VRegister v_scratch)
 
void Round_f (VRegister dst, VRegister src, Register scratch, VRegister v_scratch)
 
void Round_d (VRegister dst, VRegister src, Register scratch, VRegister v_scratch)
 
void SmiTag (Register dst, Register src)
 
void SmiTag (Register reg)
 
void JumpIfSmi (Register value, Label *smi_label, Label::Distance distance=Label::kFar)
 
void JumpIfEqual (Register a, int32_t b, Label *dest)
 
void JumpIfLessThan (Register a, int32_t b, Label *dest)
 
void JumpIfUnsignedLessThan (Register x, int32_t y, Label *dest)
 
void JumpIfMarking (Label *is_marking, Label::Distance condition_met_distance=Label::kFar)
 
void JumpIfNotMarking (Label *not_marking, Label::Distance condition_met_distance=Label::kFar)
 
void PushStandardFrame (Register function_reg)
 
void CalcScaledAddress (Register rd, Register rt, Register rs, uint8_t sa)
 
void ComputeCodeStartAddress (Register dst)
 
void LoadTrustedPointerField (Register destination, MemOperand field_operand, IndirectPointerTag tag)
 
void StoreTrustedPointerField (Register value, MemOperand dst_field_operand)
 
void LoadCodePointerField (Register destination, MemOperand field_operand)
 
void StoreCodePointerField (Register value, MemOperand dst_field_operand)
 
void LoadExternalPointerField (Register destination, MemOperand field_operand, ExternalPointerTag tag, Register isolate_root=no_reg)
 
void CodeEntry ()
 
void ExceptionHandler ()
 
void JumpTarget ()
 
void BindJumpTarget (Label *label)
 
void CallTarget ()
 
void JumpOrCallTarget ()
 
void BindCallTarget (Label *label)
 
void BindJumpOrCallTarget (Label *label)
 
void BindExceptionHandler (Label *label)
 
void WasmRvvExtractLane (Register dst, VRegister src, int8_t idx, VSew sew, Vlmul lmul)
 
void WasmRvvEq (VRegister dst, VRegister lhs, VRegister rhs, VSew sew, Vlmul lmul)
 
void WasmRvvNe (VRegister dst, VRegister lhs, VRegister rhs, VSew sew, Vlmul lmul)
 
void WasmRvvGeS (VRegister dst, VRegister lhs, VRegister rhs, VSew sew, Vlmul lmul)
 
void WasmRvvGeU (VRegister dst, VRegister lhs, VRegister rhs, VSew sew, Vlmul lmul)
 
void WasmRvvGtS (VRegister dst, VRegister lhs, VRegister rhs, VSew sew, Vlmul lmul)
 
void WasmRvvGtU (VRegister dst, VRegister lhs, VRegister rhs, VSew sew, Vlmul lmul)
 
void WasmRvvS128const (VRegister dst, const uint8_t imms[16])
 
void LoadLane (int sz, VRegister dst, uint8_t laneidx, MemOperand src, Trapper &&trapper=[](int){})
 
void StoreLane (int sz, VRegister src, uint8_t laneidx, MemOperand dst, Trapper &&trapper=[](int){})
 
void LoadReceiver (Register dest)
 
void StoreReceiver (Register rec)
 
bool IsNear (Label *L, Condition cond, int rs_reg)
 
void Swap (Register reg1, Register reg2, Register scratch=no_reg)
 
void PushRoot (RootIndex index)
 
void CompareRootAndBranch (const Register &obj, RootIndex index, Condition cc, Label *target, ComparisonMode mode=ComparisonMode::kDefault)
 
void CompareTaggedRootAndBranch (const Register &with, RootIndex index, Condition cc, Label *target)
 
void JumpIfRoot (Register with, RootIndex index, Label *if_equal, Label::Distance distance=Label::kFar)
 
void CompareRoot (const Register &obj, RootIndex index, const Register &result, ComparisonMode mode=ComparisonMode::kDefault)
 
void CompareTaggedRoot (const Register &with, RootIndex index, const Register &result)
 
void JumpIfNotRoot (Register with, RootIndex index, Label *if_not_equal, Label::Distance distance=Label::kFar)
 
void JumpIfIsInRange (Register value, unsigned lower_limit, unsigned higher_limit, Label *on_in_range)
 
void JumpIfObjectType (Label *target, Condition cc, Register object, InstanceType instance_type, Register scratch=no_reg)
 
void JumpIfJSAnyIsNotPrimitive (Register heap_object, Register scratch, Label *target, Label::Distance distance=Label::kFar, Condition condition=Condition::kUnsignedGreaterThanEqual)
 
void JumpIfJSAnyIsPrimitive (Register heap_object, Register scratch, Label *target, Label::Distance distance=Label::kFar)
 
void RecordWriteField (Register object, int offset, Register value, RAStatus ra_status, SaveFPRegsMode save_fp, SmiCheck smi_check=SmiCheck::kInline, ReadOnlyCheck ro_check=ReadOnlyCheck::kInline, SlotDescriptor slot=SlotDescriptor::ForDirectPointerSlot())
 
void RecordWrite (Register object, Operand offset, Register value, RAStatus ra_status, SaveFPRegsMode save_fp, SmiCheck smi_check=SmiCheck::kInline, ReadOnlyCheck ro_check=ReadOnlyCheck::kInline, SlotDescriptor slot=SlotDescriptor::ForDirectPointerSlot())
 
void LoadWordPair (Register rd, const MemOperand &rs)
 
void StoreWordPair (Register rd, const MemOperand &rs)
 
void Madd_s (FPURegister fd, FPURegister fr, FPURegister fs, FPURegister ft)
 
void Madd_d (FPURegister fd, FPURegister fr, FPURegister fs, FPURegister ft)
 
void Msub_s (FPURegister fd, FPURegister fr, FPURegister fs, FPURegister ft)
 
void Msub_d (FPURegister fd, FPURegister fr, FPURegister fs, FPURegister ft)
 
void EnterExitFrame (Register scratch, int stack_space, StackFrame::Type frame_type)
 
void LeaveExitFrame (Register scratch)
 
void AssertStackIsAligned ()
 
void LoadGlobalProxy (Register dst)
 
void LoadNativeContextSlot (Register dst, int index)
 
void TryLoadOptimizedOsrCode (Register scratch_and_result, CodeKind min_opt_level, Register feedback_vector, FeedbackSlot slot, Label *on_result, Label::Distance distance)
 
void LoadGlobalFunctionInitialMap (Register function, Register map, Register scratch)
 
void CallDebugOnFunctionCall (Register fun, Register new_target, Register expected_parameter_count_or_dispatch_handle, Register actual_parameter_count)
 
void InvokeFunction (Register function, Register expected_parameter_count, Register actual_parameter_count, InvokeType type)
 
void InvokeFunctionWithNewTarget (Register function, Register new_target, Register actual_parameter_count, InvokeType type)
 
void InvokeFunctionCode (Register function, Register new_target, Register expected_parameter_count, Register actual_parameter_count, InvokeType type)
 
void CheckDebugHook (Register fun, Register new_target, Register expected_parameter_count, Register actual_parameter_count)
 
void CompareObjectTypeAndJump (Register heap_object, Register map, Register type_reg, InstanceType type, Condition cond, Label *target, Label::Distance distance)
 
void IsObjectType (Register heap_object, Register scratch1, Register scratch2, InstanceType type)
 
void PushStackHandler ()
 
void PopStackHandler ()
 
void AssertFeedbackCell (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void AssertFeedbackVector (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void ReplaceClosureCodeWithOptimizedCode (Register optimized_code, Register closure)
 
void GenerateTailCallToReturnedCode (Runtime::FunctionId function_id)
 
void LoadFeedbackVectorFlagsAndJumpIfNeedsProcessing (Register flags, Register feedback_vector, CodeKind current_code_kind, Label *flags_need_processing)
 
void OptimizeCodeOrTailCallOptimizedCodeSlot (Register flags, Register feedback_vector)
 
void GetObjectType (Register function, Register map, Register type_reg)
 
void GetInstanceTypeRange (Register map, Register type_reg, InstanceType lower_limit, Register range)
 
void CallRuntime (const Runtime::Function *f, int num_arguments)
 
void CallRuntime (Runtime::FunctionId fid)
 
void CallRuntime (Runtime::FunctionId fid, int num_arguments)
 
void TailCallRuntime (Runtime::FunctionId fid)
 
void JumpToExternalReference (const ExternalReference &builtin, bool builtin_exit_frame=false)
 
void LoadWeakValue (Register out, Register in, Label *target_if_cleared)
 
void IncrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void EmitIncrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void DecrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void EmitDecrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void LoadStackLimit (Register destination, StackLimitKind kind)
 
void StackOverflowCheck (Register num_args, Register scratch1, Register scratch2, Label *stack_overflow, Label *done=nullptr)
 
void SmiScale (Register dst, Register src, int scale)
 
void SmiTst (Register value, Register scratch)
 
void DropArguments (Register count)
 
void DropArgumentsAndPushNewReceiver (Register argc, Register receiver)
 
void JumpIfCodeIsMarkedForDeoptimization (Register code, Register scratch, Label *if_marked_for_deoptimization)
 
Operand ClearedValue () const
 
void JumpIfNotSmi (Register value, Label *not_smi_label, Label::Distance dist=Label::kFar)
 
void AssertConstructor (Register object)
 
void AssertFunction (Register object)
 
void AssertCallableFunction (Register object)
 
void AssertBoundFunction (Register object)
 
void AssertGeneratorObject (Register object)
 
void Assert (Condition cond, AbortReason reason) NOOP_UNLESS_DEBUG_CODE
 
void AssertUnreachable (AbortReason reason) NOOP_UNLESS_DEBUG_CODE
 
void AssertUndefinedOrAllocationSite (Register object, Register scratch)
 
template<typename Field >
void DecodeField (Register dst, Register src)
 
template<typename Field >
void DecodeField (Register reg)
 
void LoadProtectedPointerField (Register destination, MemOperand field_operand)
 
void TryInlineTruncateDoubleToI (Register result, DoubleRegister input, Label *done)
 
void CallBuiltin (Builtin builtin, Condition cond=al)
 
void TailCallBuiltin (Builtin builtin, Condition cond=al)
 
void AtomicCmpExchangeHelper (Register addr, Register output, Register old_value, Register new_value, int start, int end, int shift_amount, int offset, Register temp0, Register temp1)
 
void AtomicCmpExchangeU8 (Register addr, Register output, Register old_value, Register new_value, Register temp0, Register temp1)
 
void AtomicCmpExchangeU16 (Register addr, Register output, Register old_value, Register new_value, Register temp0, Register temp1)
 
void AtomicExchangeHelper (Register addr, Register value, Register output, int start, int end, int shift_amount, int offset, Register scratch)
 
void AtomicExchangeU8 (Register addr, Register value, Register output, Register scratch)
 
void AtomicExchangeU16 (Register addr, Register value, Register output, Register scratch)
 
void DoubleMax (DoubleRegister result_reg, DoubleRegister left_reg, DoubleRegister right_reg)
 
void DoubleMin (DoubleRegister result_reg, DoubleRegister left_reg, DoubleRegister right_reg)
 
void FloatMax (DoubleRegister result_reg, DoubleRegister left_reg, DoubleRegister right_reg)
 
void FloatMin (DoubleRegister result_reg, DoubleRegister left_reg, DoubleRegister right_reg)
 
void CeilF32 (DoubleRegister dst, DoubleRegister src)
 
void CeilF64 (DoubleRegister dst, DoubleRegister src)
 
void FloorF32 (DoubleRegister dst, DoubleRegister src)
 
void FloorF64 (DoubleRegister dst, DoubleRegister src)
 
void TruncF32 (DoubleRegister dst, DoubleRegister src)
 
void TruncF64 (DoubleRegister dst, DoubleRegister src)
 
void NearestIntF32 (DoubleRegister dst, DoubleRegister src)
 
void NearestIntF64 (DoubleRegister dst, DoubleRegister src)
 
void LoadFromConstantsTable (Register destination, int constant_index) final
 
void LoadRootRegisterOffset (Register destination, intptr_t offset) final
 
void LoadRootRelative (Register destination, int32_t offset) final
 
void StoreRootRelative (int32_t offset, Register value) final
 
MemOperand ExternalReferenceAsOperand (ExternalReference reference, Register scratch)
 
MemOperand ExternalReferenceAsOperand (IsolateFieldId id)
 
void Jump (Register target, Condition cond=al)
 
void Jump (Address target, RelocInfo::Mode rmode, Condition cond=al)
 
void Jump (Handle< Code > code, RelocInfo::Mode rmode, Condition cond=al)
 
void Jump (const ExternalReference &reference)
 
void JumpIfSmi (Register value, Label *smi_label)
 
Condition CheckSmi (Register src)
 
void JumpIfEqual (Register x, int32_t y, Label *dest)
 
void JumpIfLessThan (Register x, int32_t y, Label *dest)
 
void Switch (Register scrach, Register reg, int case_base_value, Label **labels, int num_labels)
 
void JumpIfCodeIsMarkedForDeoptimization (Register code, Register scratch, Label *if_marked_for_deoptimization)
 
void JumpIfCodeIsTurbofanned (Register code, Register scratch, Label *if_turbofanned)
 
void LoadMap (Register destination, Register object)
 
void LoadCompressedMap (Register destination, Register object)
 
void LoadFeedbackVector (Register dst, Register closure, Register scratch, Label *fbv_undef)
 
void Call (Register target)
 
void Call (Address target, RelocInfo::Mode rmode, Condition cond=al)
 
void Call (Handle< Code > code, RelocInfo::Mode rmode=RelocInfo::CODE_TARGET, Condition cond=al)
 
void Ret ()
 
void Ret (Condition cond)
 
void BailoutIfDeoptimized (Register scratch)
 
void CallForDeoptimization (Builtin target, int deopt_id, Label *exit, DeoptimizeKind kind, Label *ret, Label *jump_deoptimization_entry_label)
 
void Drop (int count)
 
void Drop (Register count, Register scratch=r0)
 
void Ret (int drop)
 
void Call (Label *target)
 
void GetLabelAddress (Register dst, Label *target)
 
void LoadEntryFromBuiltinIndex (Register builtin_index, Register target)
 
void LoadEntryFromBuiltin (Builtin builtin, Register destination)
 
MemOperand EntryFromBuiltinAsOperand (Builtin builtin)
 
void LoadCodeInstructionStart (Register destination, Register code_object, CodeEntrypointTag tag=kDefaultCodeEntrypointTag)
 
void CallCodeObject (Register code_object)
 
void JumpCodeObject (Register code_object, JumpMode jump_mode=JumpMode::kJump)
 
void CallBuiltinByIndex (Register builtin_index, Register target)
 
void Move (Register dst, Tagged< Smi > smi)
 
void Move (Register dst, Handle< HeapObject > source, RelocInfo::Mode rmode=RelocInfo::FULL_EMBEDDED_OBJECT)
 
void Move (Register dst, ExternalReference reference)
 
void LoadIsolateField (Register dst, IsolateFieldId id)
 
void Move (Register dst, const MemOperand &src)
 
void Move (Register dst, Register src, Condition cond=al)
 
void Move (DoubleRegister dst, DoubleRegister src)
 
void MoveChar (const MemOperand &opnd1, const MemOperand &opnd2, const Operand &length)
 
void CompareLogicalChar (const MemOperand &opnd1, const MemOperand &opnd2, const Operand &length)
 
void ExclusiveOrChar (const MemOperand &opnd1, const MemOperand &opnd2, const Operand &length)
 
void RotateInsertSelectBits (Register dst, Register src, const Operand &startBit, const Operand &endBit, const Operand &shiftAmt, bool zeroBits)
 
void BranchRelativeOnIdxHighP (Register dst, Register inc, Label *L)
 
void MaybeSaveRegisters (RegList registers)
 
void MaybeRestoreRegisters (RegList registers)
 
void CallEphemeronKeyBarrier (Register object, Register slot_address, SaveFPRegsMode fp_mode)
 
void CallRecordWriteStubSaveRegisters (Register object, Register slot_address, SaveFPRegsMode fp_mode, StubCallMode mode=StubCallMode::kCallBuiltinPointer)
 
void CallRecordWriteStub (Register object, Register slot_address, SaveFPRegsMode fp_mode, StubCallMode mode=StubCallMode::kCallBuiltinPointer)
 
void MultiPush (RegList regs, Register location=sp)
 
void MultiPop (RegList regs, Register location=sp)
 
void MultiPushDoubles (DoubleRegList dregs, Register location=sp)
 
void MultiPopDoubles (DoubleRegList dregs, Register location=sp)
 
void MultiPushV128 (DoubleRegList dregs, Register scratch, Register location=sp)
 
void MultiPopV128 (DoubleRegList dregs, Register scratch, Register location=sp)
 
void MultiPushF64OrV128 (DoubleRegList dregs, Register scratch, Register location=sp)
 
void MultiPopF64OrV128 (DoubleRegList dregs, Register scratch, Register location=sp)
 
void PushAll (RegList registers)
 
void PopAll (RegList registers)
 
void PushAll (DoubleRegList registers, int stack_slot_size=kDoubleSize)
 
void PopAll (DoubleRegList registers, int stack_slot_size=kDoubleSize)
 
int RequiredStackSizeForCallerSaved (SaveFPRegsMode fp_mode, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg) const
 
int PushCallerSaved (SaveFPRegsMode fp_mode, Register scratch, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg)
 
int PopCallerSaved (SaveFPRegsMode fp_mode, Register scratch, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg)
 
void LoadRoot (Register destination, RootIndex index) override
 
void LoadRoot (Register destination, RootIndex index, Condition cond)
 
void LoadTaggedRoot (Register destination, RootIndex index)
 
void AddS32 (Register dst, const Operand &imm)
 
void AddS64 (Register dst, const Operand &imm)
 
void AddS32 (Register dst, Register src, const Operand &imm)
 
void AddS64 (Register dst, Register src, const Operand &imm)
 
void AddS32 (Register dst, Register src, int32_t imm)
 
void AddS64 (Register dst, Register src, int32_t imm)
 
void AddS32 (Register dst, Register src)
 
void AddS64 (Register dst, Register src)
 
void AddS32 (Register dst, Register src1, Register src2)
 
void AddS64 (Register dst, Register src1, Register src2)
 
void AddS32 (Register dst, const MemOperand &opnd)
 
void AddS64 (Register dst, const MemOperand &opnd)
 
void AddS32 (const MemOperand &opnd, const Operand &imm)
 
void AddS64 (const MemOperand &opnd, const Operand &imm)
 
void AddU32 (Register dst, Register src1, Register src2)
 
void AddU32 (Register dst, const Operand &imm)
 
void AddU64 (Register dst, const Operand &imm)
 
void AddU64 (Register dst, int imm)
 
void AddU64 (Register dst, Register src1, Register src2)
 
void AddU64 (Register dst, Register src)
 
void AddU32 (Register dst, const MemOperand &opnd)
 
void AddU64 (Register dst, const MemOperand &opnd)
 
void SubS32 (Register dst, const Operand &imm)
 
void SubS64 (Register dst, const Operand &imm)
 
void SubS32 (Register dst, Register src, const Operand &imm)
 
void SubS64 (Register dst, Register src, const Operand &imm)
 
void SubS32 (Register dst, Register src, int32_t imm)
 
void SubS64 (Register dst, Register src, int32_t imm)
 
void SubS32 (Register dst, Register src)
 
void SubS64 (Register dst, Register src)
 
void SubS32 (Register dst, Register src1, Register src2)
 
void SubS64 (Register dst, Register src1, Register src2)
 
void SubS32 (Register dst, const MemOperand &opnd)
 
void SubS64 (Register dst, const MemOperand &opnd)
 
void LoadAndSub32 (Register dst, Register src, const MemOperand &opnd)
 
void LoadAndSub64 (Register dst, Register src, const MemOperand &opnd)
 
void SubU32 (Register dst, const MemOperand &opnd)
 
void SubU64 (Register dst, const MemOperand &opnd)
 
void SubU32 (Register dst, Register src1, Register src2)
 
void MulS64 (Register dst, const Operand &opnd)
 
void MulS64 (Register dst, Register src)
 
void MulS64 (Register dst, const MemOperand &opnd)
 
void MulS64 (Register dst, Register src1, Register src2)
 
void MulS32 (Register dst, const MemOperand &src1)
 
void MulS32 (Register dst, Register src1)
 
void MulS32 (Register dst, const Operand &src1)
 
void MulS32 (Register dst, Register src1, Register src2)
 
void MulHighS64 (Register dst, Register src1, Register src2)
 
void MulHighS64 (Register dst, Register src1, const MemOperand &src2)
 
void MulHighU64 (Register dst, Register src1, Register src2)
 
void MulHighU64 (Register dst, Register src1, const MemOperand &src2)
 
void MulHighS32 (Register dst, Register src1, const MemOperand &src2)
 
void MulHighS32 (Register dst, Register src1, Register src2)
 
void MulHighS32 (Register dst, Register src1, const Operand &src2)
 
void MulHighU32 (Register dst, Register src1, const MemOperand &src2)
 
void MulHighU32 (Register dst, Register src1, Register src2)
 
void MulHighU32 (Register dst, Register src1, const Operand &src2)
 
void Mul32WithOverflowIfCCUnequal (Register dst, Register src1, const MemOperand &src2)
 
void Mul32WithOverflowIfCCUnequal (Register dst, Register src1, Register src2)
 
void Mul32WithOverflowIfCCUnequal (Register dst, Register src1, const Operand &src2)
 
void DivS32 (Register dst, Register src1, const MemOperand &src2)
 
void DivS32 (Register dst, Register src1, Register src2)
 
void DivU32 (Register dst, Register src1, const MemOperand &src2)
 
void DivU32 (Register dst, Register src1, Register src2)
 
void DivS64 (Register dst, Register src1, const MemOperand &src2)
 
void DivS64 (Register dst, Register src1, Register src2)
 
void DivU64 (Register dst, Register src1, const MemOperand &src2)
 
void DivU64 (Register dst, Register src1, Register src2)
 
void ModS32 (Register dst, Register src1, const MemOperand &src2)
 
void ModS32 (Register dst, Register src1, Register src2)
 
void ModU32 (Register dst, Register src1, const MemOperand &src2)
 
void ModU32 (Register dst, Register src1, Register src2)
 
void ModS64 (Register dst, Register src1, const MemOperand &src2)
 
void ModS64 (Register dst, Register src1, Register src2)
 
void ModU64 (Register dst, Register src1, const MemOperand &src2)
 
void ModU64 (Register dst, Register src1, Register src2)
 
void Sqrt (DoubleRegister result, DoubleRegister input)
 
void Sqrt (DoubleRegister result, const MemOperand &input)
 
void CmpS32 (Register src1, Register src2)
 
void CmpS64 (Register src1, Register src2)
 
void CmpS32 (Register dst, const Operand &opnd)
 
void CmpS64 (Register dst, const Operand &opnd)
 
void CmpS32 (Register dst, const MemOperand &opnd)
 
void CmpS64 (Register dst, const MemOperand &opnd)
 
void CmpAndSwap (Register old_val, Register new_val, const MemOperand &opnd)
 
void CmpAndSwap64 (Register old_val, Register new_val, const MemOperand &opnd)
 
template<class T >
void CmpP (Register src1, T src2)
 
void CmpU32 (Register src1, Register src2)
 
void CmpU64 (Register src1, Register src2)
 
void CmpU32 (Register src1, const Operand &opnd)
 
void CmpU64 (Register src1, const Operand &opnd)
 
void CmpU32 (Register dst, const MemOperand &opnd)
 
void CmpU64 (Register dst, const MemOperand &opnd)
 
void CmpF32 (DoubleRegister src1, DoubleRegister src2)
 
void CmpF64 (DoubleRegister src1, DoubleRegister src2)
 
void CmpF32 (DoubleRegister src1, const MemOperand &src2)
 
void CmpF64 (DoubleRegister src1, const MemOperand &src2)
 
void LoadU64 (Register dst, const MemOperand &mem, Register scratch=no_reg)
 
void LoadS32 (Register dst, const MemOperand &opnd, Register scratch=no_reg)
 
void LoadS32 (Register dst, Register src)
 
void LoadU32 (Register dst, const MemOperand &opnd, Register scratch=no_reg)
 
void LoadU32 (Register dst, Register src)
 
void LoadU16 (Register dst, const MemOperand &opnd)
 
void LoadU16 (Register dst, Register src)
 
void LoadS16 (Register dst, Register src)
 
void LoadS16 (Register dst, const MemOperand &mem, Register scratch=no_reg)
 
void LoadS8 (Register dst, const MemOperand &opnd)
 
void LoadS8 (Register dst, Register src)
 
void LoadU8 (Register dst, const MemOperand &opnd)
 
void LoadU8 (Register dst, Register src)
 
void LoadV128 (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void LoadF64 (DoubleRegister dst, const MemOperand &opnd)
 
void LoadF32 (DoubleRegister dst, const MemOperand &opnd)
 
void LoadU64LE (Register dst, const MemOperand &mem, Register scratch=no_reg)
 
void LoadS32LE (Register dst, const MemOperand &opnd, Register scratch=no_reg)
 
void LoadU32LE (Register dst, const MemOperand &opnd, Register scratch=no_reg)
 
void LoadU16LE (Register dst, const MemOperand &opnd)
 
void LoadS16LE (Register dst, const MemOperand &opnd)
 
void LoadV128LE (DoubleRegister dst, const MemOperand &mem, Register scratch0, Register scratch1)
 
void LoadF64LE (DoubleRegister dst, const MemOperand &opnd, Register scratch)
 
void LoadF32LE (DoubleRegister dst, const MemOperand &opnd, Register scratch)
 
void LoadAndSplat64x2LE (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void LoadAndSplat32x4LE (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void LoadAndSplat16x8LE (Simd128Register dst, const MemOperand &me, Register scratch)
 
void LoadAndSplat8x16LE (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void LoadAndExtend8x8ULE (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void LoadAndExtend8x8SLE (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void LoadAndExtend16x4ULE (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void LoadAndExtend16x4SLE (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void LoadAndExtend32x2ULE (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void LoadAndExtend32x2SLE (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void LoadV32ZeroLE (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void LoadV64ZeroLE (Simd128Register dst, const MemOperand &mem, Register scratch)
 
void LoadLane8LE (Simd128Register dst, const MemOperand &mem, int lane, Register scratch)
 
void LoadLane16LE (Simd128Register dst, const MemOperand &mem, int lane, Register scratch)
 
void LoadLane32LE (Simd128Register dst, const MemOperand &mem, int lane, Register scratch)
 
void LoadLane64LE (Simd128Register dst, const MemOperand &mem, int lane, Register scratch)
 
void StoreLane8LE (Simd128Register src, const MemOperand &mem, int lane, Register scratch)
 
void StoreLane16LE (Simd128Register src, const MemOperand &mem, int lane, Register scratch)
 
void StoreLane32LE (Simd128Register src, const MemOperand &mem, int lane, Register scratch)
 
void StoreLane64LE (Simd128Register src, const MemOperand &mem, int lane, Register scratch)
 
void LoadAndTest32 (Register dst, Register src)
 
void LoadAndTestP (Register dst, Register src)
 
void LoadAndTest32 (Register dst, const MemOperand &opnd)
 
void LoadAndTestP (Register dst, const MemOperand &opnd)
 
void StoreU64 (const MemOperand &mem, const Operand &opnd, Register scratch=no_reg)
 
void StoreU64 (Register src, const MemOperand &mem, Register scratch=no_reg)
 
void StoreU32 (Register src, const MemOperand &mem, Register scratch=no_reg)
 
void StoreU16 (Register src, const MemOperand &mem, Register scratch=r0)
 
void StoreU8 (Register src, const MemOperand &mem, Register scratch=r0)
 
void StoreF64 (DoubleRegister dst, const MemOperand &opnd)
 
void StoreF32 (DoubleRegister dst, const MemOperand &opnd)
 
void StoreV128 (Simd128Register src, const MemOperand &mem, Register scratch)
 
void StoreU64LE (Register src, const MemOperand &mem, Register scratch=no_reg)
 
void StoreU32LE (Register src, const MemOperand &mem, Register scratch=no_reg)
 
void StoreU16LE (Register src, const MemOperand &mem, Register scratch=r0)
 
void StoreF64LE (DoubleRegister src, const MemOperand &opnd, Register scratch)
 
void StoreF32LE (DoubleRegister src, const MemOperand &opnd, Register scratch)
 
void StoreV128LE (Simd128Register src, const MemOperand &mem, Register scratch1, Register scratch2)
 
void AddF32 (DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs)
 
void SubF32 (DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs)
 
void MulF32 (DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs)
 
void DivF32 (DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs)
 
void AddF64 (DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs)
 
void SubF64 (DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs)
 
void MulF64 (DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs)
 
void DivF64 (DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs)
 
void AddFloat32 (DoubleRegister dst, const MemOperand &opnd, DoubleRegister scratch)
 
void AddFloat64 (DoubleRegister dst, const MemOperand &opnd, DoubleRegister scratch)
 
void SubFloat32 (DoubleRegister dst, const MemOperand &opnd, DoubleRegister scratch)
 
void SubFloat64 (DoubleRegister dst, const MemOperand &opnd, DoubleRegister scratch)
 
void MulFloat32 (DoubleRegister dst, const MemOperand &opnd, DoubleRegister scratch)
 
void MulFloat64 (DoubleRegister dst, const MemOperand &opnd, DoubleRegister scratch)
 
void DivFloat32 (DoubleRegister dst, const MemOperand &opnd, DoubleRegister scratch)
 
void DivFloat64 (DoubleRegister dst, const MemOperand &opnd, DoubleRegister scratch)
 
void LoadF32AsF64 (DoubleRegister dst, const MemOperand &opnd)
 
void LoadOnConditionP (Condition cond, Register dst, Register src)
 
void LoadPositiveP (Register result, Register input)
 
void LoadPositive32 (Register result, Register input)
 
void Branch (Condition c, const Operand &opnd)
 
void BranchOnCount (Register r1, Label *l)
 
void ShiftLeftU32 (Register dst, Register src, Register val, const Operand &val2=Operand::Zero())
 
void ShiftLeftU32 (Register dst, Register src, const Operand &val)
 
void ShiftLeftU64 (Register dst, Register src, Register val, const Operand &val2=Operand::Zero())
 
void ShiftLeftU64 (Register dst, Register src, const Operand &val)
 
void ShiftRightU32 (Register dst, Register src, Register val, const Operand &val2=Operand::Zero())
 
void ShiftRightU32 (Register dst, Register src, const Operand &val)
 
void ShiftRightU64 (Register dst, Register src, Register val, const Operand &val2=Operand::Zero())
 
void ShiftRightU64 (Register dst, Register src, const Operand &val)
 
void ShiftRightS32 (Register dst, Register src, Register shift, const Operand &val2=Operand::Zero())
 
void ShiftRightS32 (Register dst, Register src, const Operand &val)
 
void ShiftRightS64 (Register dst, Register src, Register shift, const Operand &val2=Operand::Zero())
 
void ShiftRightS64 (Register dst, Register src, const Operand &val)
 
void ClearRightImm (Register dst, Register src, const Operand &val)
 
void And (Register dst, Register src)
 
void AndP (Register dst, Register src)
 
void And (Register dst, Register src1, Register src2)
 
void AndP (Register dst, Register src1, Register src2)
 
void And (Register dst, const MemOperand &opnd)
 
void AndP (Register dst, const MemOperand &opnd)
 
void And (Register dst, const Operand &opnd)
 
void AndP (Register dst, const Operand &opnd)
 
void And (Register dst, Register src, const Operand &opnd)
 
void AndP (Register dst, Register src, const Operand &opnd)
 
void Or (Register dst, Register src)
 
void OrP (Register dst, Register src)
 
void Or (Register dst, Register src1, Register src2)
 
void OrP (Register dst, Register src1, Register src2)
 
void Or (Register dst, const MemOperand &opnd)
 
void OrP (Register dst, const MemOperand &opnd)
 
void Or (Register dst, const Operand &opnd)
 
void OrP (Register dst, const Operand &opnd)
 
void Or (Register dst, Register src, const Operand &opnd)
 
void OrP (Register dst, Register src, const Operand &opnd)
 
void Xor (Register dst, Register src)
 
void XorP (Register dst, Register src)
 
void Xor (Register dst, Register src1, Register src2)
 
void XorP (Register dst, Register src1, Register src2)
 
void Xor (Register dst, const MemOperand &opnd)
 
void XorP (Register dst, const MemOperand &opnd)
 
void Xor (Register dst, const Operand &opnd)
 
void XorP (Register dst, const Operand &opnd)
 
void Xor (Register dst, Register src, const Operand &opnd)
 
void XorP (Register dst, Register src, const Operand &opnd)
 
void Popcnt32 (Register dst, Register src)
 
void Not32 (Register dst, Register src=no_reg)
 
void Not64 (Register dst, Register src=no_reg)
 
void NotP (Register dst, Register src=no_reg)
 
void Popcnt64 (Register dst, Register src)
 
void mov (Register dst, const Operand &src)
 
void mov (Register dst, Register src)
 
void push (DoubleRegister src)
 
void push (Register src)
 
void pop (DoubleRegister dst)
 
void pop (Register dst)
 
void pop ()
 
void Push (Register src)
 
void Push (Handle< HeapObject > handle)
 
void Push (Tagged< Smi > smi)
 
void Push (Tagged< TaggedIndex > index)
 
void Push (Register src1, Register src2)
 
void Push (Register src1, Register src2, Register src3)
 
void Push (Register src1, Register src2, Register src3, Register src4)
 
void Push (Register src1, Register src2, Register src3, Register src4, Register src5)
 
void PushArray (Register array, Register size, Register scratch, Register scratch2, PushArrayOrder order=kNormal)
 
void Pop (Register dst)
 
void Pop (Register src1, Register src2)
 
void Pop (Register src1, Register src2, Register src3)
 
void Pop (Register src1, Register src2, Register src3, Register src4)
 
void Pop (Register src1, Register src2, Register src3, Register src4, Register src5)
 
void PushCommonFrame (Register marker_reg=no_reg)
 
void PushStandardFrame (Register function_reg)
 
void PopCommonFrame (Register marker_reg=no_reg)
 
void RestoreFrameStateForTailCall ()
 
void InitializeRootRegister ()
 
void CanonicalizeNaN (const DoubleRegister dst, const DoubleRegister src)
 
void CanonicalizeNaN (const DoubleRegister value)
 
void ConvertIntToDouble (DoubleRegister dst, Register src)
 
void ConvertUnsignedIntToDouble (DoubleRegister dst, Register src)
 
void ConvertIntToFloat (DoubleRegister dst, Register src)
 
void ConvertUnsignedIntToFloat (DoubleRegister dst, Register src)
 
void ConvertInt64ToFloat (DoubleRegister double_dst, Register src)
 
void ConvertInt64ToDouble (DoubleRegister double_dst, Register src)
 
void ConvertUnsignedInt64ToFloat (DoubleRegister double_dst, Register src)
 
void ConvertUnsignedInt64ToDouble (DoubleRegister double_dst, Register src)
 
void MovIntToFloat (DoubleRegister dst, Register src)
 
void MovFloatToInt (Register dst, DoubleRegister src)
 
void MovDoubleToInt64 (Register dst, DoubleRegister src)
 
void MovInt64ToDouble (DoubleRegister dst, Register src)
 
void ConvertFloat32ToInt64 (const Register dst, const DoubleRegister double_input, FPRoundingMode rounding_mode=kRoundToZero)
 
void ConvertDoubleToInt64 (const Register dst, const DoubleRegister double_input, FPRoundingMode rounding_mode=kRoundToZero)
 
void ConvertDoubleToInt32 (const Register dst, const DoubleRegister double_input, FPRoundingMode rounding_mode=kRoundToZero)
 
void ConvertFloat32ToInt32 (const Register result, const DoubleRegister double_input, FPRoundingMode rounding_mode)
 
void ConvertFloat32ToUnsignedInt32 (const Register result, const DoubleRegister double_input, FPRoundingMode rounding_mode=kRoundToZero)
 
void ConvertDoubleToUnsignedInt64 (const Register dst, const DoubleRegister double_input, FPRoundingMode rounding_mode=kRoundToZero)
 
void ConvertDoubleToUnsignedInt32 (const Register dst, const DoubleRegister double_input, FPRoundingMode rounding_mode=kRoundToZero)
 
void ConvertFloat32ToUnsignedInt64 (const Register result, const DoubleRegister double_input, FPRoundingMode rounding_mode=kRoundToZero)
 
void StubPrologue (StackFrame::Type type, Register base=no_reg, int prologue_offset=0)
 
void Prologue (Register base, int prologue_offset=0)
 
void DropArguments (Register count)
 
void DropArgumentsAndPushNewReceiver (Register argc, Register receiver)
 
void LoadSmiLiteral (Register dst, Tagged< Smi > smi)
 
template<class T >
void LoadF64 (DoubleRegister result, T value, Register scratch)
 
template<class T >
void LoadF32 (DoubleRegister result, T value, Register scratch)
 
void CmpSmiLiteral (Register src1, Tagged< Smi > smi, Register scratch)
 
void SetRoundingMode (FPRoundingMode RN)
 
void ResetRoundingMode ()
 
void LoadMultipleP (Register dst1, Register dst2, const MemOperand &mem)
 
void StoreMultipleP (Register dst1, Register dst2, const MemOperand &mem)
 
void LoadMultipleW (Register dst1, Register dst2, const MemOperand &mem)
 
void StoreMultipleW (Register dst1, Register dst2, const MemOperand &mem)
 
void SwapP (Register src, Register dst, Register scratch)
 
void SwapP (Register src, MemOperand dst, Register scratch)
 
void SwapP (MemOperand src, MemOperand dst, Register scratch_0, Register scratch_1)
 
void SwapFloat32 (DoubleRegister src, DoubleRegister dst, DoubleRegister scratch)
 
void SwapFloat32 (DoubleRegister src, MemOperand dst, DoubleRegister scratch)
 
void SwapFloat32 (MemOperand src, MemOperand dst, DoubleRegister scratch)
 
void SwapDouble (DoubleRegister src, DoubleRegister dst, DoubleRegister scratch)
 
void SwapDouble (DoubleRegister src, MemOperand dst, DoubleRegister scratch)
 
void SwapDouble (MemOperand src, MemOperand dst, DoubleRegister scratch)
 
void SwapSimd128 (Simd128Register src, Simd128Register dst, Simd128Register scratch)
 
void SwapSimd128 (Simd128Register src, MemOperand dst, Simd128Register scratch)
 
void SwapSimd128 (MemOperand src, MemOperand dst, Simd128Register scratch)
 
void PrepareCallCFunction (int num_reg_arguments, int num_double_registers, Register scratch)
 
void PrepareCallCFunction (int num_reg_arguments, Register scratch)
 
void MovToFloatParameter (DoubleRegister src)
 
void MovToFloatParameters (DoubleRegister src1, DoubleRegister src2)
 
void MovToFloatResult (DoubleRegister src)
 
int CallCFunction (ExternalReference function, int num_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, bool has_function_descriptor=ABI_USES_FUNCTION_DESCRIPTORS, Label *return_label=nullptr)
 
int CallCFunction (Register function, int num_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, bool has_function_descriptor=ABI_USES_FUNCTION_DESCRIPTORS, Label *return_label=nullptr)
 
int CallCFunction (ExternalReference function, int num_reg_arguments, int num_double_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, bool has_function_descriptor=ABI_USES_FUNCTION_DESCRIPTORS, Label *return_label=nullptr)
 
int CallCFunction (Register function, int num_reg_arguments, int num_double_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, bool has_function_descriptor=ABI_USES_FUNCTION_DESCRIPTORS, Label *return_label=nullptr)
 
void MovFromFloatParameter (DoubleRegister dst)
 
void MovFromFloatResult (DoubleRegister dst)
 
void Trap ()
 
void DebugBreak ()
 
void TruncateDoubleToI (Isolate *isolate, Zone *zone, Register result, DoubleRegister double_input, StubCallMode stub_mode)
 
void TryInlineTruncateDoubleToI (Register result, DoubleRegister double_input, Label *done)
 
void Assert (Condition cond, AbortReason reason, CRegister cr=cr7) NOOP_UNLESS_DEBUG_CODE
 
void AssertUnreachable (AbortReason reason) NOOP_UNLESS_DEBUG_CODE
 
void AssertZeroExtended (Register reg) NOOP_UNLESS_DEBUG_CODE
 
void Check (Condition cond, AbortReason reason, CRegister cr=cr7)
 
void Abort (AbortReason reason)
 
void ExtractBitRange (Register dst, Register src, int rangeStart, int rangeEnd)
 
void ExtractBit (Register dst, Register src, uint32_t bitNumber)
 
void ExtractBitMask (Register dst, Register src, uintptr_t mask, RCBit rc=LeaveRC)
 
void TestBit (Register value, int bitNumber, Register scratch=r0)
 
void TestBitRange (Register value, int rangeStart, int rangeEnd, Register scratch=r0)
 
void TestBitMask (Register value, uintptr_t mask, Register scratch=r0)
 
void TestIfSmi (Register value)
 
void TestIfSmi (MemOperand value)
 
void TestIfInt32 (Register value)
 
void SmiUntag (Register reg)
 
void SmiUntag (Register dst, const MemOperand &src)
 
void SmiUntag (Register dst, Register src)
 
void SmiToInt32 (Register smi)
 
void SmiToInt32 (Register dst, Register src)
 
void SmiTag (Register reg)
 
void SmiTag (Register dst, Register src)
 
void AssertNotSmi (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertSmi (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertMap (Register object) NOOP_UNLESS_DEBUG_CODE
 
void EnterFrame (StackFrame::Type type, bool load_constant_pool_pointer_reg=false)
 
int LeaveFrame (StackFrame::Type type, int stack_adjustment=0)
 
void AllocateStackSpace (int bytes)
 
void AllocateStackSpace (Register bytes)
 
void CheckPageFlag (Register object, Register scratch, int mask, Condition cc, Label *condition_met)
 
void ComputeCodeStartAddress (Register dst)
 
void LoadPC (Register dst)
 
void EnforceStackAlignment ()
 
void CodeEntry ()
 
void ExceptionHandler ()
 
void BindExceptionHandler (Label *label)
 
void CallJSFunction (Register function_object, uint16_t argument_count)
 
void JumpJSFunction (Register function_object, JumpMode jump_mode=JumpMode::kJump)
 
void StoreReturnAddressAndCall (Register target)
 
void F64x2Splat (Simd128Register dst, Simd128Register src)
 
void F32x4Splat (Simd128Register dst, Simd128Register src)
 
void I64x2Splat (Simd128Register dst, Register src)
 
void I32x4Splat (Simd128Register dst, Register src)
 
void I16x8Splat (Simd128Register dst, Register src)
 
void I8x16Splat (Simd128Register dst, Register src)
 
void F64x2ExtractLane (DoubleRegister dst, Simd128Register src, uint8_t imm_lane_idx, Register=r0)
 
void F32x4ExtractLane (DoubleRegister dst, Simd128Register src, uint8_t imm_lane_idx, Register=r0)
 
void I64x2ExtractLane (Register dst, Simd128Register src, uint8_t imm_lane_idx, Register=r0)
 
void I32x4ExtractLane (Register dst, Simd128Register src, uint8_t imm_lane_idx, Register=r0)
 
void I16x8ExtractLaneU (Register dst, Simd128Register src, uint8_t imm_lane_idx, Register=r0)
 
void I16x8ExtractLaneS (Register dst, Simd128Register src, uint8_t imm_lane_idx, Register scratch)
 
void I8x16ExtractLaneU (Register dst, Simd128Register src, uint8_t imm_lane_idx, Register=r0)
 
void I8x16ExtractLaneS (Register dst, Simd128Register src, uint8_t imm_lane_idx, Register scratch)
 
void F64x2ReplaceLane (Simd128Register dst, Simd128Register src1, DoubleRegister src2, uint8_t imm_lane_idx, Register scratch)
 
void F32x4ReplaceLane (Simd128Register dst, Simd128Register src1, DoubleRegister src2, uint8_t imm_lane_idx, Register scratch)
 
void I64x2ReplaceLane (Simd128Register dst, Simd128Register src1, Register src2, uint8_t imm_lane_idx, Register=r0)
 
void I32x4ReplaceLane (Simd128Register dst, Simd128Register src1, Register src2, uint8_t imm_lane_idx, Register=r0)
 
void I16x8ReplaceLane (Simd128Register dst, Simd128Register src1, Register src2, uint8_t imm_lane_idx, Register=r0)
 
void I8x16ReplaceLane (Simd128Register dst, Simd128Register src1, Register src2, uint8_t imm_lane_idx, Register=r0)
 
void I64x2Mul (Simd128Register dst, Simd128Register src1, Simd128Register src2, Register scratch1, Register scratch2, Register scratch3)
 
void I32x4GeU (Simd128Register dst, Simd128Register src1, Simd128Register src2, Simd128Register scratch)
 
void I16x8GeU (Simd128Register dst, Simd128Register src1, Simd128Register src2, Simd128Register scratch)
 
void I8x16GeU (Simd128Register dst, Simd128Register src1, Simd128Register src2, Simd128Register scratch)
 
void I64x2BitMask (Register dst, Simd128Register src, Register scratch1, Simd128Register scratch2)
 
void I32x4BitMask (Register dst, Simd128Register src, Register scratch1, Simd128Register scratch2)
 
void I16x8BitMask (Register dst, Simd128Register src, Register scratch1, Simd128Register scratch2)
 
void I8x16BitMask (Register dst, Simd128Register src, Register scratch1, Register scratch2, Simd128Register scratch3)
 
void V128AnyTrue (Register dst, Simd128Register src, Register scratch)
 
void I32x4SConvertF32x4 (Simd128Register dst, Simd128Register src, Simd128Register scratch1, Register scratch2)
 
void I32x4UConvertF32x4 (Simd128Register dst, Simd128Register src, Simd128Register scratch1, Register scratch2)
 
void F32x4SConvertI32x4 (Simd128Register dst, Simd128Register src, Simd128Register scratch1, Register scratch2)
 
void F32x4UConvertI32x4 (Simd128Register dst, Simd128Register src, Simd128Register scratch1, Register scratch2)
 
void I16x8SConvertI32x4 (Simd128Register dst, Simd128Register src1, Simd128Register src2)
 
void I8x16SConvertI16x8 (Simd128Register dst, Simd128Register src1, Simd128Register src2)
 
void I16x8UConvertI32x4 (Simd128Register dst, Simd128Register src1, Simd128Register src2, Simd128Register scratch)
 
void I8x16UConvertI16x8 (Simd128Register dst, Simd128Register src1, Simd128Register src2, Simd128Register scratch)
 
void F64x2PromoteLowF32x4 (Simd128Register dst, Simd128Register src, Simd128Register scratch1, Register scratch2, Register scratch3, Register scratch4)
 
void F32x4DemoteF64x2Zero (Simd128Register dst, Simd128Register src, Simd128Register scratch1, Register scratch2, Register scratch3, Register scratch4)
 
void I32x4TruncSatF64x2SZero (Simd128Register dst, Simd128Register src, Simd128Register scratch)
 
void I32x4TruncSatF64x2UZero (Simd128Register dst, Simd128Register src, Simd128Register scratch)
 
void I8x16Swizzle (Simd128Register dst, Simd128Register src1, Simd128Register src2, Register scratch1, Register scratch2, Simd128Register scratch3)
 
void S128Const (Simd128Register dst, uint64_t high, uint64_t low, Register scratch1, Register scratch2)
 
void I8x16Shuffle (Simd128Register dst, Simd128Register src1, Simd128Register src2, uint64_t high, uint64_t low, Register scratch1, Register scratch2, Simd128Register scratch3)
 
void I32x4DotI16x8S (Simd128Register dst, Simd128Register src1, Simd128Register src2, Simd128Register scratch)
 
void I16x8DotI8x16S (Simd128Register dst, Simd128Register src1, Simd128Register src2, Simd128Register scratch)
 
void I32x4DotI8x16AddS (Simd128Register dst, Simd128Register src1, Simd128Register src2, Simd128Register src3, Simd128Register scratch1, Simd128Register scratch2)
 
void I16x8Q15MulRSatS (Simd128Register dst, Simd128Register src1, Simd128Register src2, Simd128Register scratch1, Simd128Register scratch2, Simd128Register scratch3)
 
void S128Select (Simd128Register dst, Simd128Register src1, Simd128Register src2, Simd128Register mask)
 
void SmiToPtrArrayOffset (Register dst, Register src)
 
void LoadTaggedField (const Register &destination, const MemOperand &field_operand, const Register &scratch=no_reg)
 
void LoadTaggedSignedField (Register destination, MemOperand field_operand)
 
void LoadTaggedFieldWithoutDecompressing (const Register &destination, const MemOperand &field_operand, const Register &scratch=no_reg)
 
void SmiUntagField (Register dst, const MemOperand &src)
 
void StoreTaggedField (const Register &value, const MemOperand &dst_field_operand, const Register &scratch=no_reg)
 
void Zero (const MemOperand &dest)
 
void Zero (const MemOperand &dest1, const MemOperand &dest2)
 
void DecompressTaggedSigned (Register destination, MemOperand field_operand)
 
void DecompressTaggedSigned (Register destination, Register src)
 
void DecompressTagged (Register destination, MemOperand field_operand)
 
void DecompressTagged (Register destination, Register source)
 
void DecompressTagged (const Register &destination, Tagged_t immediate)
 
void CountLeadingZerosU32 (Register dst, Register src, Register scratch_pair=r0)
 
void CountLeadingZerosU64 (Register dst, Register src, Register scratch_pair=r0)
 
void CountTrailingZerosU32 (Register dst, Register src, Register scratch_pair=r0)
 
void CountTrailingZerosU64 (Register dst, Register src, Register scratch_pair=r0)
 
void LoadStackLimit (Register destination, StackLimitKind kind)
 
void LoadReceiver (Register dest)
 
void StoreReceiver (Register rec)
 
void CallRuntime (const Runtime::Function *f, int num_arguments)
 
void CallRuntime (Runtime::FunctionId fid)
 
void CallRuntime (Runtime::FunctionId fid, int num_arguments)
 
void TailCallRuntime (Runtime::FunctionId fid)
 
void IsObjectType (Register object, Register scratch1, Register scratch2, InstanceType type)
 
template<bool use_unsigned_cmp = false>
void CompareObjectType (Register heap_object, Register map, Register type_reg, InstanceType type)
 
void CompareObjectTypeRange (Register heap_object, Register map, Register type_reg, Register scratch, InstanceType lower_limit, InstanceType higher_limit)
 
template<bool use_unsigned_cmp = false>
void CompareInstanceType (Register map, Register type_reg, InstanceType type)
 
void CompareInstanceTypeRange (Register map, Register type_reg, Register scratch, InstanceType lower_limit, InstanceType higher_limit)
 
void CompareRoot (Register obj, RootIndex index)
 
void CompareTaggedRoot (Register obj, RootIndex index)
 
void PushRoot (RootIndex index)
 
template<class T >
void CompareTagged (Register src1, T src2)
 
void Cmp (Register dst, int32_t src)
 
void CmpTagged (const Register &src1, const Register &src2)
 
void JumpToExternalReference (const ExternalReference &builtin, bool builtin_exit_frame=false)
 
void JumpIfRoot (Register with, RootIndex index, Label *if_equal)
 
void JumpIfNotRoot (Register with, RootIndex index, Label *if_not_equal)
 
void CompareRange (Register value, Register scratch, unsigned lower_limit, unsigned higher_limit)
 
void JumpIfIsInRange (Register value, Register scratch, unsigned lower_limit, unsigned higher_limit, Label *on_in_range)
 
void LoadWeakValue (Register out, Register in, Label *target_if_cleared)
 
void IncrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void EmitIncrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void DecrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void EmitDecrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
MemOperand StackLimitAsMemOperand (StackLimitKind kind)
 
void StackOverflowCheck (Register num_args, Register scratch, Label *stack_overflow)
 
void InvokeFunctionCode (Register function, Register new_target, Register expected_parameter_count, Register actual_parameter_count, InvokeType type)
 
void CheckDebugHook (Register fun, Register new_target, Register expected_parameter_count, Register actual_parameter_count)
 
void InvokeFunctionWithNewTarget (Register function, Register new_target, Register actual_parameter_count, InvokeType type)
 
void InvokeFunction (Register function, Register expected_parameter_count, Register actual_parameter_count, InvokeType type)
 
void PushStackHandler ()
 
void PopStackHandler ()
 
void EnterExitFrame (Register scratch, int stack_space, StackFrame::Type frame_type)
 
void LeaveExitFrame (Register scratch)
 
void LoadGlobalProxy (Register dst)
 
void LoadNativeContextSlot (Register dst, int index)
 
void TryLoadOptimizedOsrCode (Register scratch_and_result, CodeKind min_opt_level, Register feedback_vector, FeedbackSlot slot, Label *on_result, Label::Distance distance)
 
void JumpIfNotSmi (Register value, Label *not_smi_label)
 
void AssertConstructor (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void AssertFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertCallableFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertBoundFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertGeneratorObject (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertUndefinedOrAllocationSite (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void AssertJSAny (Register object, Register map_tmp, Register tmp, AbortReason abort_reason) NOOP_UNLESS_DEBUG_CODE
 
template<typename Field >
void DecodeField (Register dst, Register src)
 
template<typename Field >
void DecodeField (Register reg)
 
void AssertFeedbackCell (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void AssertFeedbackVector (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void AssertFeedbackVector (Register object) NOOP_UNLESS_DEBUG_CODE
 
void ReplaceClosureCodeWithOptimizedCode (Register optimized_code, Register closure, Register scratch1, Register slot_address)
 
void GenerateTailCallToReturnedCode (Runtime::FunctionId function_id)
 
Condition LoadFeedbackVectorFlagsAndCheckIfNeedsProcessing (Register flags, Register feedback_vector, CodeKind current_code_kind)
 
void LoadFeedbackVectorFlagsAndJumpIfNeedsProcessing (Register flags, Register feedback_vector, CodeKind current_code_kind, Label *flags_need_processing)
 
void OptimizeCodeOrTailCallOptimizedCodeSlot (Register flags, Register feedback_vector)
 
void IncrementalMarkingRecordWriteHelper (Register object, Register value, Register address)
 
void CallJSEntry (Register target)
 
void RecordWriteField (Register object, int offset, Register value, Register slot_address, LinkRegisterStatus lr_status, SaveFPRegsMode save_fp, SmiCheck smi_check=SmiCheck::kInline)
 
void RecordWrite (Register object, Register slot_address, Register value, LinkRegisterStatus lr_status, SaveFPRegsMode save_fp, SmiCheck smi_check=SmiCheck::kInline)
 
void TestCodeIsMarkedForDeoptimization (Register code, Register scratch)
 
Operand ClearedValue () const
 
void PushReturnAddressFrom (Register src)
 
void PopReturnAddressTo (Register dst)
 
void Ret ()
 
void IncsspqIfSupported (Register number_of_words, Register scratch)
 
void Ret (int bytes_dropped, Register scratch)
 
Operand RootAsOperand (RootIndex index)
 
void LoadTaggedRoot (Register destination, RootIndex index)
 
void LoadRoot (Register destination, RootIndex index) final
 
void LoadRoot (Operand destination, RootIndex index)
 
void Push (Register src)
 
void Push (Operand src)
 
void Push (Immediate value)
 
void Push (Tagged< Smi > smi)
 
void Push (Tagged< TaggedIndex > index)
 
void Push (Handle< HeapObject > source)
 
void PushArray (Register array, Register size, Register scratch, PushArrayOrder order=PushArrayOrder::kNormal)
 
void PrepareCallCFunction (int num_arguments)
 
int CallCFunction (ExternalReference function, int num_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_location=nullptr)
 
int CallCFunction (Register function, int num_arguments, SetIsolateDataSlots set_isolate_data_slots=SetIsolateDataSlots::kYes, Label *return_location=nullptr)
 
void MemoryChunkHeaderFromObject (Register object, Register header)
 
void CheckPageFlag (Register object, Register scratch, int mask, Condition cc, Label *condition_met, Label::Distance condition_met_distance=Label::kFar)
 
void CheckMarkBit (Register object, Register scratch0, Register scratch1, Condition cc, Label *condition_met, Label::Distance condition_met_distance=Label::kFar)
 
void JumpIfMarking (Label *is_marking, Label::Distance condition_met_distance=Label::kFar)
 
void JumpIfNotMarking (Label *not_marking, Label::Distance condition_met_distance=Label::kFar)
 
void Movq (XMMRegister dst, Register src)
 
void Movq (Register dst, XMMRegister src)
 
void Cvtss2sd (XMMRegister dst, XMMRegister src)
 
void Cvtss2sd (XMMRegister dst, Operand src)
 
void Cvtsd2ss (XMMRegister dst, XMMRegister src)
 
void Cvtsd2ss (XMMRegister dst, Operand src)
 
void Cvttsd2si (Register dst, XMMRegister src)
 
void Cvttsd2si (Register dst, Operand src)
 
void Cvttsd2siq (Register dst, XMMRegister src)
 
void Cvttsd2siq (Register dst, Operand src)
 
void Cvttss2si (Register dst, XMMRegister src)
 
void Cvttss2si (Register dst, Operand src)
 
void Cvttss2siq (Register dst, XMMRegister src)
 
void Cvttss2siq (Register dst, Operand src)
 
void Cvtlui2ss (XMMRegister dst, Register src)
 
void Cvtlui2ss (XMMRegister dst, Operand src)
 
void Cvtlui2sd (XMMRegister dst, Register src)
 
void Cvtlui2sd (XMMRegister dst, Operand src)
 
void Cvtqui2ss (XMMRegister dst, Register src)
 
void Cvtqui2ss (XMMRegister dst, Operand src)
 
void Cvtqui2sd (XMMRegister dst, Register src)
 
void Cvtqui2sd (XMMRegister dst, Operand src)
 
void Cvttsd2uiq (Register dst, Operand src, Label *fail=nullptr)
 
void Cvttsd2uiq (Register dst, XMMRegister src, Label *fail=nullptr)
 
void Cvttsd2ui (Register dst, Operand src, Label *fail=nullptr)
 
void Cvttsd2ui (Register dst, XMMRegister src, Label *fail=nullptr)
 
void Cvttss2uiq (Register dst, Operand src, Label *fail=nullptr)
 
void Cvttss2uiq (Register dst, XMMRegister src, Label *fail=nullptr)
 
void Cvttss2ui (Register dst, Operand src, Label *fail=nullptr)
 
void Cvttss2ui (Register dst, XMMRegister src, Label *fail=nullptr)
 
void Cvtpd2ph (XMMRegister dst, XMMRegister src, Register tmp)
 
void Cvtph2pd (XMMRegister dst, XMMRegister src)
 
void Cvtqsi2ss (XMMRegister dst, Register src)
 
void Cvtqsi2ss (XMMRegister dst, Operand src)
 
void Cvtqsi2sd (XMMRegister dst, Register src)
 
void Cvtqsi2sd (XMMRegister dst, Operand src)
 
void Cvtlsi2ss (XMMRegister dst, Register src)
 
void Cvtlsi2ss (XMMRegister dst, Operand src)
 
void Cvtlsi2sd (XMMRegister dst, Register src)
 
void Cvtlsi2sd (XMMRegister dst, Operand src)
 
void Cmpeqss (XMMRegister dst, XMMRegister src)
 
void Cmpeqsd (XMMRegister dst, XMMRegister src)
 
void PextrdPreSse41 (Register dst, XMMRegister src, uint8_t imm8)
 
void Pextrq (Register dst, XMMRegister src, int8_t imm8)
 
void PinsrdPreSse41 (XMMRegister dst, Register src2, uint8_t imm8, uint32_t *load_pc_offset=nullptr)
 
void PinsrdPreSse41 (XMMRegister dst, Operand src2, uint8_t imm8, uint32_t *load_pc_offset=nullptr)
 
void Pinsrq (XMMRegister dst, XMMRegister src1, Register src2, uint8_t imm8, uint32_t *load_pc_offset=nullptr)
 
void Pinsrq (XMMRegister dst, XMMRegister src1, Operand src2, uint8_t imm8, uint32_t *load_pc_offset=nullptr)
 
void Lzcntq (Register dst, Register src)
 
void Lzcntq (Register dst, Operand src)
 
void Lzcntl (Register dst, Register src)
 
void Lzcntl (Register dst, Operand src)
 
void Tzcntq (Register dst, Register src)
 
void Tzcntq (Register dst, Operand src)
 
void Tzcntl (Register dst, Register src)
 
void Tzcntl (Register dst, Operand src)
 
void Popcntl (Register dst, Register src)
 
void Popcntl (Register dst, Operand src)
 
void Popcntq (Register dst, Register src)
 
void Popcntq (Register dst, Operand src)
 
void Cmp (Register dst, Tagged< Smi > src)
 
void Cmp (Operand dst, Tagged< Smi > src)
 
void Cmp (Register dst, int32_t src)
 
void CmpTagged (const Register &src1, const Register &src2)
 
void I64x4Mul (YMMRegister dst, YMMRegister lhs, YMMRegister rhs, YMMRegister tmp1, YMMRegister tmp2)
 
void F64x4Min (YMMRegister dst, YMMRegister lhs, YMMRegister rhs, YMMRegister scratch)
 
void F64x4Max (YMMRegister dst, YMMRegister lhs, YMMRegister rhs, YMMRegister scratch)
 
void F32x8Min (YMMRegister dst, YMMRegister lhs, YMMRegister rhs, YMMRegister scratch)
 
void F32x8Max (YMMRegister dst, YMMRegister lhs, YMMRegister rhs, YMMRegister scratch)
 
void F16x8Min (YMMRegister dst, XMMRegister lhs, XMMRegister rhs, YMMRegister scratch, YMMRegister scratch2)
 
void F16x8Max (YMMRegister dst, XMMRegister lhs, XMMRegister rhs, YMMRegister scratch, YMMRegister scratch2)
 
void I64x4ExtMul (YMMRegister dst, XMMRegister src1, XMMRegister src2, YMMRegister scratch, bool is_signed)
 
void I32x8ExtMul (YMMRegister dst, XMMRegister src1, XMMRegister src2, YMMRegister scratch, bool is_signed)
 
void I16x16ExtMul (YMMRegister dst, XMMRegister src1, XMMRegister src2, YMMRegister scratch, bool is_signed)
 
void I32x8SConvertF32x8 (YMMRegister dst, YMMRegister src, YMMRegister tmp, Register scratch)
 
void I16x8SConvertF16x8 (YMMRegister dst, XMMRegister src, YMMRegister tmp, Register scratch)
 
void I16x8TruncF16x8U (YMMRegister dst, XMMRegister src, YMMRegister tmp)
 
void F16x8Qfma (YMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister src3, YMMRegister tmp, YMMRegister tmp2)
 
void F16x8Qfms (YMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister src3, YMMRegister tmp, YMMRegister tmp2)
 
void S256Not (YMMRegister dst, YMMRegister src, YMMRegister scratch)
 
void S256Select (YMMRegister dst, YMMRegister mask, YMMRegister src1, YMMRegister src2, YMMRegister scratch)
 
void F64x4Splat (YMMRegister dst, XMMRegister src)
 
void F32x8Splat (YMMRegister dst, XMMRegister src)
 
void F32x8Qfma (YMMRegister dst, YMMRegister src1, YMMRegister src2, YMMRegister src3, YMMRegister tmp)
 
void F32x8Qfms (YMMRegister dst, YMMRegister src1, YMMRegister src2, YMMRegister src3, YMMRegister tmp)
 
void F64x4Qfma (YMMRegister dst, YMMRegister src1, YMMRegister src2, YMMRegister src3, YMMRegister tmp)
 
void F64x4Qfms (YMMRegister dst, YMMRegister src1, YMMRegister src2, YMMRegister src3, YMMRegister tmp)
 
void I32x8DotI8x32I7x32AddS (YMMRegister dst, YMMRegister src1, YMMRegister src2, YMMRegister src3, YMMRegister scratch, YMMRegister splat_reg)
 
void I32x8TruncF32x8U (YMMRegister dst, YMMRegister src, YMMRegister scratch1, YMMRegister scratch2)
 
void SmiTag (Register reg)
 
void SmiTag (Register dst, Register src)
 
void SmiCompare (Register smi1, Register smi2)
 
void SmiCompare (Register dst, Tagged< Smi > src)
 
void SmiCompare (Register dst, Operand src)
 
void SmiCompare (Operand dst, Register src)
 
void SmiCompare (Operand dst, Tagged< Smi > src)
 
Condition CheckSmi (Register src)
 
Condition CheckSmi (Operand src)
 
void ClobberDecompressedSmiBits (Register smi)
 
void AssertNotSmi (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertSmi (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertSmi (Operand object) NOOP_UNLESS_DEBUG_CODE
 
void JumpIfSmi (Register src, Label *on_smi, Label::Distance near_jump=Label::kFar)
 
void JumpIfNotSmi (Register src, Label *on_not_smi, Label::Distance near_jump=Label::kFar)
 
void JumpIfNotSmi (Operand src, Label *on_not_smi, Label::Distance near_jump=Label::kFar)
 
void SmiAddConstant (Operand dst, Tagged< Smi > constant)
 
SmiIndex SmiToIndex (Register dst, Register src, int shift)
 
void JumpIf (Condition cond, Register a, int32_t b, Label *dest)
 
void JumpIfEqual (Register a, int32_t b, Label *dest)
 
void JumpIfLessThan (Register a, int32_t b, Label *dest)
 
void JumpIfUnsignedLessThan (Register a, int32_t b, Label *dest)
 
void Switch (Register scrach, Register reg, int case_base_value, Label **labels, int num_labels)
 
void LoadMap (Register destination, Register object)
 
void LoadCompressedMap (Register destination, Register object)
 
void LoadFeedbackVector (Register dst, Register closure, Label *fbv_undef, Label::Distance distance)
 
void Move (Register dst, intptr_t x)
 
void Move (Operand dst, intptr_t x)
 
void Move (Register dst, Tagged< Smi > source)
 
void Move (Operand dst, Tagged< Smi > source)
 
void Move (Register dst, Tagged< TaggedIndex > source)
 
void Move (Operand dst, Tagged< TaggedIndex > source)
 
void Move (Register dst, ExternalReference ext)
 
void Move (XMMRegister dst, uint32_t src)
 
void Move (XMMRegister dst, uint64_t src)
 
void Move (XMMRegister dst, float src)
 
void Move (XMMRegister dst, double src)
 
void Move (XMMRegister dst, uint64_t high, uint64_t low)
 
void Move (Register target, Register source)
 
void Move (XMMRegister target, XMMRegister source)
 
void Move (Register target, Operand source)
 
void Move (Register target, Immediate source)
 
void Move (Register dst, Handle< HeapObject > source, RelocInfo::Mode rmode=RelocInfo::FULL_EMBEDDED_OBJECT)
 
void Move (Operand dst, Handle< HeapObject > source, RelocInfo::Mode rmode=RelocInfo::FULL_EMBEDDED_OBJECT)
 
void Move (Register dst, Address ptr, RelocInfo::Mode rmode)
 
void MovePair (Register dst0, Register src0, Register dst1, Register src1)
 
void SmiUntag (Register reg)
 
void SmiUntagUnsigned (Register reg)
 
void SmiUntag (Register dst, Register src)
 
void SmiUntag (Register dst, Operand src)
 
void SmiUntagUnsigned (Register dst, Operand src)
 
void SmiToInt32 (Register reg)
 
void SmiToInt32 (Register dst, Register src)
 
void LoadAddress (Register destination, ExternalReference source)
 
void LoadFromConstantsTable (Register destination, int constant_index) final
 
void LoadRootRegisterOffset (Register destination, intptr_t offset) final
 
void LoadRootRelative (Register destination, int32_t offset) final
 
void StoreRootRelative (int32_t offset, Register value) final
 
Operand ExternalReferenceAsOperand (ExternalReference reference, Register scratch=kScratchRegister)
 
Operand ExternalReferenceAsOperand (IsolateFieldId id)
 
void Call (Register reg)
 
void Call (Operand op)
 
void Call (Handle< Code > code_object, RelocInfo::Mode rmode)
 
void Call (Address destination, RelocInfo::Mode rmode)
 
void Call (ExternalReference ext)
 
void Call (Label *target)
 
Operand EntryFromBuiltinAsOperand (Builtin builtin_index)
 
Operand EntryFromBuiltinIndexAsOperand (Register builtin_index)
 
void CallBuiltinByIndex (Register builtin_index)
 
void CallBuiltin (Builtin builtin)
 
void TailCallBuiltin (Builtin builtin)
 
void TailCallBuiltin (Builtin builtin, Condition cc)
 
void LoadCodeInstructionStart (Register destination, Register code_object, CodeEntrypointTag tag)
 
void CallCodeObject (Register code_object, CodeEntrypointTag tag)
 
void JumpCodeObject (Register code_object, CodeEntrypointTag tag, JumpMode jump_mode=JumpMode::kJump)
 
void CallJSFunction (Register function_object, uint16_t argument_count)
 
void JumpJSFunction (Register function_object, JumpMode jump_mode=JumpMode::kJump)
 
void Jump (Address destination, RelocInfo::Mode rmode)
 
void Jump (Address destination, RelocInfo::Mode rmode, Condition cc)
 
void Jump (const ExternalReference &reference)
 
void Jump (Operand op)
 
void Jump (Operand op, Condition cc)
 
void Jump (Handle< Code > code_object, RelocInfo::Mode rmode)
 
void Jump (Handle< Code > code_object, RelocInfo::Mode rmode, Condition cc)
 
void BailoutIfDeoptimized (Register scratch)
 
void CallForDeoptimization (Builtin target, int deopt_id, Label *exit, DeoptimizeKind kind, Label *ret, Label *jump_deoptimization_entry_label)
 
void Trap ()
 
void DebugBreak ()
 
void CompareRoot (Register with, RootIndex index, ComparisonMode mode=ComparisonMode::kDefault)
 
void CompareTaggedRoot (Register with, RootIndex index)
 
void CompareRoot (Operand with, RootIndex index)
 
void StubPrologue (StackFrame::Type type)
 
void Prologue ()
 
void DropArguments (Register count, Register scratch)
 
void DropArgumentsAndPushNewReceiver (Register argc, Register receiver, Register scratch)
 
void DropArgumentsAndPushNewReceiver (Register argc, Operand receiver, Register scratch)
 
void Assert (Condition cc, AbortReason reason) NOOP_UNLESS_DEBUG_CODE
 
void AssertUnreachable (AbortReason reason) NOOP_UNLESS_DEBUG_CODE
 
void AssertZeroExtended (Register reg) NOOP_UNLESS_DEBUG_CODE
 
void AssertSignedBitOfSmiIsZero (Register smi) NOOP_UNLESS_DEBUG_CODE
 
void Check (Condition cc, AbortReason reason)
 
void SbxCheck (Condition cc, AbortReason reason)
 
void CmpInstanceType (Register map, InstanceType type)
 
void AssertMap (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertCode (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertSmiOrHeapObjectInMainCompressionCage (Register object) NOOP_UNLESS_DEBUG_CODE
 
void Abort (AbortReason msg)
 
void CheckStackAlignment ()
 
void AlignStackPointer ()
 
void EnterFrame (StackFrame::Type type)
 
void EnterFrame (StackFrame::Type type, bool load_constant_pool_pointer_reg)
 
void LeaveFrame (StackFrame::Type type)
 
void AllocateStackSpace (Register bytes)
 
void AllocateStackSpace (int bytes)
 
void InitializeRootRegister ()
 
void CallEphemeronKeyBarrier (Register object, Register slot_address, SaveFPRegsMode fp_mode)
 
void CallIndirectPointerBarrier (Register object, Register slot_address, SaveFPRegsMode fp_mode, IndirectPointerTag tag)
 
void CallRecordWriteStubSaveRegisters (Register object, Register slot_address, SaveFPRegsMode fp_mode, StubCallMode mode=StubCallMode::kCallBuiltinPointer)
 
void CallRecordWriteStub (Register object, Register slot_address, SaveFPRegsMode fp_mode, StubCallMode mode=StubCallMode::kCallBuiltinPointer)
 
void MoveNumber (Register dst, double value)
 
void MoveNonSmi (Register dst, double value)
 
int RequiredStackSizeForCallerSaved (SaveFPRegsMode fp_mode, Register exclusion=no_reg) const
 
int PushCallerSaved (SaveFPRegsMode fp_mode, Register exclusion=no_reg)
 
int PopCallerSaved (SaveFPRegsMode fp_mode, Register exclusion=no_reg)
 
int PushAll (RegList registers)
 
int PopAll (RegList registers)
 
int PushAll (DoubleRegList registers, int stack_slot_size=kStackSavedSavedFPSize)
 
int PopAll (DoubleRegList registers, int stack_slot_size=kStackSavedSavedFPSize)
 
void ComputeCodeStartAddress (Register dst)
 
void CodeEntry ()
 
void ExceptionHandler ()
 
void BindExceptionHandler (Label *label)
 
void BindJumpTarget (Label *label)
 
void LoadTaggedField (Register destination, Operand field_operand)
 
void LoadTaggedField (TaggedRegister destination, Operand field_operand)
 
void LoadTaggedFieldWithoutDecompressing (Register destination, Operand field_operand)
 
void LoadTaggedSignedField (Register destination, Operand field_operand)
 
void PushTaggedField (Operand field_operand, Register scratch)
 
void SmiUntagField (Register dst, Operand src)
 
void SmiUntagFieldUnsigned (Register dst, Operand src)
 
void StoreTaggedField (Operand dst_field_operand, Immediate immediate)
 
void StoreTaggedField (Operand dst_field_operand, Register value)
 
void StoreTaggedSignedField (Operand dst_field_operand, Tagged< Smi > value)
 
void AtomicStoreTaggedField (Operand dst_field_operand, Register value)
 
void DecompressTaggedSigned (Register destination, Operand field_operand)
 
void DecompressTagged (Register destination, Operand field_operand)
 
void DecompressTagged (Register destination, Register source)
 
void DecompressTagged (Register destination, Tagged_t immediate)
 
void DecompressProtected (Register destination, Operand field_operand)
 
void EncodeSandboxedPointer (Register value)
 
void DecodeSandboxedPointer (Register value)
 
void LoadSandboxedPointerField (Register destination, Operand field_operand)
 
void StoreSandboxedPointerField (Operand dst_field_operand, Register value)
 
void LoadExternalPointerField (Register destination, Operand field_operand, ExternalPointerTagRange tag_range, Register scratch, IsolateRootLocation isolateRootLocation=IsolateRootLocation::kInRootRegister)
 
void LoadTrustedPointerField (Register destination, Operand field_operand, IndirectPointerTag tag, Register scratch)
 
void StoreTrustedPointerField (Operand dst_field_operand, Register value)
 
void LoadCodePointerField (Register destination, Operand field_operand, Register scratch)
 
void StoreCodePointerField (Operand dst_field_operand, Register value)
 
void LoadIndirectPointerField (Register destination, Operand field_operand, IndirectPointerTag tag, Register scratch)
 
void StoreIndirectPointerField (Operand dst_field_operand, Register value)
 
void LoadProtectedPointerField (Register destination, Operand field_operand)
 
void Load (Register destination, ExternalReference source)
 
void Store (ExternalReference destination, Register source)
 
void PushAddress (ExternalReference source)
 
void PushRoot (RootIndex index)
 
void JumpIfRoot (Register with, RootIndex index, Label *if_equal, Label::Distance if_equal_distance=Label::kFar)
 
void JumpIfRoot (Operand with, RootIndex index, Label *if_equal, Label::Distance if_equal_distance=Label::kFar)
 
void JumpIfNotRoot (Register with, RootIndex index, Label *if_not_equal, Label::Distance if_not_equal_distance=Label::kFar)
 
void JumpIfNotRoot (Operand with, RootIndex index, Label *if_not_equal, Label::Distance if_not_equal_distance=Label::kFar)
 
void RecordWriteField (Register object, int offset, Register value, Register slot_address, SaveFPRegsMode save_fp, SmiCheck smi_check=SmiCheck::kInline, ReadOnlyCheck ro_check=ReadOnlyCheck::kInline, SlotDescriptor slot=SlotDescriptor::ForDirectPointerSlot())
 
void RecordWrite (Register object, Register slot_address, Register value, SaveFPRegsMode save_fp, SmiCheck smi_check=SmiCheck::kInline, ReadOnlyCheck ro_check=ReadOnlyCheck::kInline, SlotDescriptor slot=SlotDescriptor::ForDirectPointerSlot())
 
void EnterExitFrame (int extra_slots, StackFrame::Type frame_type, Register c_function)
 
void LeaveExitFrame ()
 
void InvokeFunctionCode (Register function, Register new_target, Register expected_parameter_count, Register actual_parameter_count, InvokeType type)
 
void InvokeFunction (Register function, Register new_target, Register actual_parameter_count, InvokeType type)
 
void InvokeFunction (Register function, Register new_target, Register expected_parameter_count, Register actual_parameter_count, InvokeType type)
 
void CallDebugOnFunctionCall (Register fun, Register new_target, Register expected_parameter_count_or_dispatch_handle, Register actual_parameter_count)
 
void Cmp (Register dst, Handle< Object > source)
 
void Cmp (Operand dst, Handle< Object > source)
 
void CompareRange (Register value, unsigned lower_limit, unsigned higher_limit)
 
void JumpIfIsInRange (Register value, unsigned lower_limit, unsigned higher_limit, Label *on_in_range, Label::Distance near_jump=Label::kFar)
 
void Drop (int stack_elements)
 
void DropUnderReturnAddress (int stack_elements, Register scratch=kScratchRegister)
 
void PushQuad (Operand src)
 
void PushImm32 (int32_t imm32)
 
void Pop (Register dst)
 
void Pop (Operand dst)
 
void PopQuad (Operand dst)
 
void CmpObjectType (Register heap_object, InstanceType type, Register map)
 
void IsObjectType (Register heap_object, InstanceType type, Register scratch)
 
void IsObjectTypeInRange (Register heap_object, InstanceType low, InstanceType high, Register scratch)
 
void JumpIfJSAnyIsNotPrimitive (Register heap_object, Register scratch, Label *target, Label::Distance distance=Label::kFar, Condition condition=Condition::kUnsignedGreaterThanEqual)
 
void JumpIfJSAnyIsPrimitive (Register heap_object, Register scratch, Label *target, Label::Distance distance=Label::kFar)
 
void CmpInstanceTypeRange (Register map, Register instance_type_out, InstanceType low, InstanceType high)
 
template<typename Field >
void DecodeField (Register reg)
 
void TestCodeIsMarkedForDeoptimization (Register code)
 
void TestCodeIsTurbofanned (Register code)
 
Immediate ClearedValue () const
 
void AssertFeedbackCell (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void AssertFeedbackVector (Register object, Register scratch) NOOP_UNLESS_DEBUG_CODE
 
void ReplaceClosureCodeWithOptimizedCode (Register optimized_code, Register closure, Register scratch1, Register slot_address)
 
void GenerateTailCallToReturnedCode (Runtime::FunctionId function_id, JumpMode jump_mode=JumpMode::kJump)
 
Condition CheckFeedbackVectorFlagsNeedsProcessing (Register feedback_vector, CodeKind current_code_kind)
 
void CheckFeedbackVectorFlagsAndJumpIfNeedsProcessing (Register feedback_vector, CodeKind current_code_kind, Label *flags_need_processing)
 
void OptimizeCodeOrTailCallOptimizedCodeSlot (Register feedback_vector, Register closure, JumpMode jump_mode)
 
void OptimizeCodeOrTailCallOptimizedCodeSlot (Register flags, Register feedback_vector)
 
void AssertConstructor (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertCallableFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertBoundFunction (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertGeneratorObject (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertUndefinedOrAllocationSite (Register object) NOOP_UNLESS_DEBUG_CODE
 
void AssertJSAny (Register object, Register map_tmp, AbortReason abort_reason) NOOP_UNLESS_DEBUG_CODE
 
void PushStackHandler ()
 
void PopStackHandler ()
 
void LoadGlobalProxy (Register dst)
 
void LoadNativeContextSlot (Register dst, int index)
 
void TryLoadOptimizedOsrCode (Register scratch_and_result, CodeKind min_opt_level, Register feedback_vector, FeedbackSlot slot, Label *on_result, Label::Distance distance)
 
void CallRuntime (const Runtime::Function *f, int num_arguments)
 
void CallRuntime (Runtime::FunctionId fid)
 
void CallRuntime (Runtime::FunctionId fid, int num_arguments)
 
void TailCallRuntime (Runtime::FunctionId fid)
 
void JumpToExternalReference (const ExternalReference &ext, bool builtin_exit_frame=false)
 
void IncrementCounter (StatsCounter *counter, int value)
 
void EmitIncrementCounter (StatsCounter *counter, int value)
 
void DecrementCounter (StatsCounter *counter, int value)
 
void EmitDecrementCounter (StatsCounter *counter, int value)
 
Operand StackLimitAsOperand (StackLimitKind kind)
 
void StackOverflowCheck (Register num_args, Label *stack_overflow, Label::Distance stack_overflow_distance=Label::kFar)
 
void LoadWeakValue (Register in_out, Label *target_if_cleared)
 
template<typename CvtFunc >
void RoundFloatingPointToInteger (Register rd, FPURegister fs, Register result, CvtFunc fcvt_generator)
 
 MacroAssemblerBase (Isolate *isolate, CodeObjectRequired create_code_object, std::unique_ptr< AssemblerBuffer > buffer={})
 
 MacroAssemblerBase (Isolate *isolate, MaybeAssemblerZone zone, CodeObjectRequired create_code_object, std::unique_ptr< AssemblerBuffer > buffer={})
 
 MacroAssemblerBase (Isolate *isolate, const AssemblerOptions &options, CodeObjectRequired create_code_object, std::unique_ptr< AssemblerBuffer > buffer={})
 
 MacroAssemblerBase (Isolate *isolate, MaybeAssemblerZone zone, AssemblerOptions options, CodeObjectRequired create_code_object, std::unique_ptr< AssemblerBuffer > buffer={})
 
 MacroAssemblerBase (MaybeAssemblerZone zone, AssemblerOptions options, CodeObjectRequired create_code_object, std::unique_ptr< AssemblerBuffer > buffer={})
 
- Public Member Functions inherited from v8::internal::MacroAssemblerBase
 MacroAssemblerBase (Isolate *isolate, CodeObjectRequired create_code_object, std::unique_ptr< AssemblerBuffer > buffer={})
 
 MacroAssemblerBase (Isolate *isolate, MaybeAssemblerZone zone, CodeObjectRequired create_code_object, std::unique_ptr< AssemblerBuffer > buffer={})
 
 MacroAssemblerBase (Isolate *isolate, const AssemblerOptions &options, CodeObjectRequired create_code_object, std::unique_ptr< AssemblerBuffer > buffer={})
 
 MacroAssemblerBase (Isolate *isolate, MaybeAssemblerZone zone, AssemblerOptions options, CodeObjectRequired create_code_object, std::unique_ptr< AssemblerBuffer > buffer={})
 
 MacroAssemblerBase (MaybeAssemblerZone zone, AssemblerOptions options, CodeObjectRequired create_code_object, std::unique_ptr< AssemblerBuffer > buffer={})
 
Isolateisolate () const
 
IndirectHandle< HeapObjectCodeObject () const
 
bool root_array_available () const
 
void set_root_array_available (bool v)
 
bool should_abort_hard () const
 
void set_abort_hard (bool v)
 
void set_builtin (Builtin builtin)
 
Builtin builtin () const
 
void set_has_frame (bool v)
 
bool has_frame () const
 
void IndirectLoadConstant (Register destination, Handle< HeapObject > object)
 
void IndirectLoadExternalReference (Register destination, ExternalReference reference)
 
Address BuiltinEntry (Builtin builtin)
 
Tagged_t ReadOnlyRootPtr (RootIndex index)
 
V8_INLINE std::string CommentForOffHeapTrampoline (const char *prefix, Builtin builtin)
 
- Public Member Functions inherited from v8::internal::Assembler
 Assembler (const AssemblerOptions &, std::unique_ptr< AssemblerBuffer >={})
 
 Assembler (const MaybeAssemblerZone &, const AssemblerOptions &options, std::unique_ptr< AssemblerBuffer > buffer={})
 
 ~Assembler () override
 
void AbortedCodeGeneration () override
 
void GetCode (LocalIsolate *isolate, CodeDesc *desc, SafepointTableBuilderBase *safepoint_table_builder, int handler_table_offset)
 
void GetCode (Isolate *isolate, CodeDesc *desc)
 
void GetCode (LocalIsolate *isolate, CodeDesc *desc)
 
void bind (Label *L)
 
int branch_offset (Label *L)
 
RegListGetScratchRegisterList ()
 
VfpRegListGetScratchVfpRegisterList ()
 
void Align (int m)
 
void DataAlign (int m)
 
void CodeTargetAlign ()
 
void LoopHeaderAlign ()
 
void b (int branch_offset, Condition cond=al, RelocInfo::Mode rmode=RelocInfo::NO_INFO)
 
void bl (int branch_offset, Condition cond=al, RelocInfo::Mode rmode=RelocInfo::NO_INFO)
 
void blx (int branch_offset)
 
void blx (Register target, Condition cond=al)
 
void bx (Register target, Condition cond=al)
 
void b (Label *L, Condition cond=al)
 
void b (Condition cond, Label *L)
 
void bl (Label *L, Condition cond=al)
 
void bl (Condition cond, Label *L)
 
void blx (Label *L)
 
void and_ (Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)
 
void and_ (Register dst, Register src1, Register src2, SBit s=LeaveCC, Condition cond=al)
 
void eor (Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)
 
void eor (Register dst, Register src1, Register src2, SBit s=LeaveCC, Condition cond=al)
 
void sub (Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)
 
void sub (Register dst, Register src1, Register src2, SBit s=LeaveCC, Condition cond=al)
 
void rsb (Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)
 
void add (Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)
 
void add (Register dst, Register src1, Register src2, SBit s=LeaveCC, Condition cond=al)
 
void adc (Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)
 
void sbc (Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)
 
void rsc (Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)
 
void tst (Register src1, const Operand &src2, Condition cond=al)
 
void tst (Register src1, Register src2, Condition cond=al)
 
void teq (Register src1, const Operand &src2, Condition cond=al)
 
void cmp (Register src1, const Operand &src2, Condition cond=al)
 
void cmp (Register src1, Register src2, Condition cond=al)
 
void cmp_raw_immediate (Register src1, int raw_immediate, Condition cond=al)
 
void cmn (Register src1, const Operand &src2, Condition cond=al)
 
void orr (Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)
 
void orr (Register dst, Register src1, Register src2, SBit s=LeaveCC, Condition cond=al)
 
void mov (Register dst, const Operand &src, SBit s=LeaveCC, Condition cond=al)
 
void mov (Register dst, Register src, SBit s=LeaveCC, Condition cond=al)
 
void mov_label_offset (Register dst, Label *label)
 
void movw (Register reg, uint32_t immediate, Condition cond=al)
 
void movt (Register reg, uint32_t immediate, Condition cond=al)
 
void bic (Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)
 
void mvn (Register dst, const Operand &src, SBit s=LeaveCC, Condition cond=al)
 
void asr (Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)
 
void lsl (Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)
 
void lsr (Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)
 
void mla (Register dst, Register src1, Register src2, Register srcA, SBit s=LeaveCC, Condition cond=al)
 
void mls (Register dst, Register src1, Register src2, Register srcA, Condition cond=al)
 
void sdiv (Register dst, Register src1, Register src2, Condition cond=al)
 
void udiv (Register dst, Register src1, Register src2, Condition cond=al)
 
void mul (Register dst, Register src1, Register src2, SBit s=LeaveCC, Condition cond=al)
 
void smmla (Register dst, Register src1, Register src2, Register srcA, Condition cond=al)
 
void smmul (Register dst, Register src1, Register src2, Condition cond=al)
 
void smlal (Register dstL, Register dstH, Register src1, Register src2, SBit s=LeaveCC, Condition cond=al)
 
void smull (Register dstL, Register dstH, Register src1, Register src2, SBit s=LeaveCC, Condition cond=al)
 
void umlal (Register dstL, Register dstH, Register src1, Register src2, SBit s=LeaveCC, Condition cond=al)
 
void umull (Register dstL, Register dstH, Register src1, Register src2, SBit s=LeaveCC, Condition cond=al)
 
void clz (Register dst, Register src, Condition cond=al)
 
void usat (Register dst, int satpos, const Operand &src, Condition cond=al)
 
void ubfx (Register dst, Register src, int lsb, int width, Condition cond=al)
 
void sbfx (Register dst, Register src, int lsb, int width, Condition cond=al)
 
void bfc (Register dst, int lsb, int width, Condition cond=al)
 
void bfi (Register dst, Register src, int lsb, int width, Condition cond=al)
 
void pkhbt (Register dst, Register src1, const Operand &src2, Condition cond=al)
 
void pkhtb (Register dst, Register src1, const Operand &src2, Condition cond=al)
 
void sxtb (Register dst, Register src, int rotate=0, Condition cond=al)
 
void sxtab (Register dst, Register src1, Register src2, int rotate=0, Condition cond=al)
 
void sxth (Register dst, Register src, int rotate=0, Condition cond=al)
 
void sxtah (Register dst, Register src1, Register src2, int rotate=0, Condition cond=al)
 
void uxtb (Register dst, Register src, int rotate=0, Condition cond=al)
 
void uxtab (Register dst, Register src1, Register src2, int rotate=0, Condition cond=al)
 
void uxtb16 (Register dst, Register src, int rotate=0, Condition cond=al)
 
void uxth (Register dst, Register src, int rotate=0, Condition cond=al)
 
void uxtah (Register dst, Register src1, Register src2, int rotate=0, Condition cond=al)
 
void rbit (Register dst, Register src, Condition cond=al)
 
void rev (Register dst, Register src, Condition cond=al)
 
void mrs (Register dst, SRegister s, Condition cond=al)
 
void msr (SRegisterFieldMask fields, const Operand &src, Condition cond=al)
 
void ldr (Register dst, const MemOperand &src, Condition cond=al)
 
void str (Register src, const MemOperand &dst, Condition cond=al)
 
void ldrb (Register dst, const MemOperand &src, Condition cond=al)
 
void strb (Register src, const MemOperand &dst, Condition cond=al)
 
void ldrh (Register dst, const MemOperand &src, Condition cond=al)
 
void strh (Register src, const MemOperand &dst, Condition cond=al)
 
void ldrsb (Register dst, const MemOperand &src, Condition cond=al)
 
void ldrsh (Register dst, const MemOperand &src, Condition cond=al)
 
void ldrd (Register dst1, Register dst2, const MemOperand &src, Condition cond=al)
 
void strd (Register src1, Register src2, const MemOperand &dst, Condition cond=al)
 
void ldr_pcrel (Register dst, int imm12, Condition cond=al)
 
void ldrex (Register dst, Register src, Condition cond=al)
 
void strex (Register src1, Register src2, Register dst, Condition cond=al)
 
void ldrexb (Register dst, Register src, Condition cond=al)
 
void strexb (Register src1, Register src2, Register dst, Condition cond=al)
 
void ldrexh (Register dst, Register src, Condition cond=al)
 
void strexh (Register src1, Register src2, Register dst, Condition cond=al)
 
void ldrexd (Register dst1, Register dst2, Register src, Condition cond=al)
 
void strexd (Register res, Register src1, Register src2, Register dst, Condition cond=al)
 
void pld (const MemOperand &address)
 
void ldm (BlockAddrMode am, Register base, RegList dst, Condition cond=al)
 
void stm (BlockAddrMode am, Register base, RegList src, Condition cond=al)
 
void stop (Condition cond=al, int32_t code=kDefaultStopCode)
 
void bkpt (uint32_t imm16)
 
void svc (uint32_t imm24, Condition cond=al)
 
void dmb (BarrierOption option)
 
void dsb (BarrierOption option)
 
void isb (BarrierOption option)
 
void csdb ()
 
void cdp (Coprocessor coproc, int opcode_1, CRegister crd, CRegister crn, CRegister crm, int opcode_2, Condition cond=al)
 
void cdp2 (Coprocessor coproc, int opcode_1, CRegister crd, CRegister crn, CRegister crm, int opcode_2)
 
void mcr (Coprocessor coproc, int opcode_1, Register rd, CRegister crn, CRegister crm, int opcode_2=0, Condition cond=al)
 
void mcr2 (Coprocessor coproc, int opcode_1, Register rd, CRegister crn, CRegister crm, int opcode_2=0)
 
void mrc (Coprocessor coproc, int opcode_1, Register rd, CRegister crn, CRegister crm, int opcode_2=0, Condition cond=al)
 
void mrc2 (Coprocessor coproc, int opcode_1, Register rd, CRegister crn, CRegister crm, int opcode_2=0)
 
void ldc (Coprocessor coproc, CRegister crd, const MemOperand &src, LFlag l=Short, Condition cond=al)
 
void ldc (Coprocessor coproc, CRegister crd, Register base, int option, LFlag l=Short, Condition cond=al)
 
void ldc2 (Coprocessor coproc, CRegister crd, const MemOperand &src, LFlag l=Short)
 
void ldc2 (Coprocessor coproc, CRegister crd, Register base, int option, LFlag l=Short)
 
void vldr (const DwVfpRegister dst, const Register base, int offset, const Condition cond=al)
 
void vldr (const DwVfpRegister dst, const MemOperand &src, const Condition cond=al)
 
void vldr (const SwVfpRegister dst, const Register base, int offset, const Condition cond=al)
 
void vldr (const SwVfpRegister dst, const MemOperand &src, const Condition cond=al)
 
void vstr (const DwVfpRegister src, const Register base, int offset, const Condition cond=al)
 
void vstr (const DwVfpRegister src, const MemOperand &dst, const Condition cond=al)
 
void vstr (const SwVfpRegister src, const Register base, int offset, const Condition cond=al)
 
void vstr (const SwVfpRegister src, const MemOperand &dst, const Condition cond=al)
 
void vldm (BlockAddrMode am, Register base, DwVfpRegister first, DwVfpRegister last, Condition cond=al)
 
void vstm (BlockAddrMode am, Register base, DwVfpRegister first, DwVfpRegister last, Condition cond=al)
 
void vldm (BlockAddrMode am, Register base, SwVfpRegister first, SwVfpRegister last, Condition cond=al)
 
void vstm (BlockAddrMode am, Register base, SwVfpRegister first, SwVfpRegister last, Condition cond=al)
 
void vmov (const SwVfpRegister dst, Float32 imm)
 
void vmov (const DwVfpRegister dst, base::Double imm, const Register extra_scratch=no_reg)
 
void vmov (const SwVfpRegister dst, const SwVfpRegister src, const Condition cond=al)
 
void vmov (const DwVfpRegister dst, const DwVfpRegister src, const Condition cond=al)
 
void vmov (const DwVfpRegister dst, const Register src1, const Register src2, const Condition cond=al)
 
void vmov (const Register dst1, const Register dst2, const DwVfpRegister src, const Condition cond=al)
 
void vmov (const SwVfpRegister dst, const Register src, const Condition cond=al)
 
void vmov (const Register dst, const SwVfpRegister src, const Condition cond=al)
 
void vcvt_f64_s32 (const DwVfpRegister dst, const SwVfpRegister src, VFPConversionMode mode=kDefaultRoundToZero, const Condition cond=al)
 
void vcvt_f32_s32 (const SwVfpRegister dst, const SwVfpRegister src, VFPConversionMode mode=kDefaultRoundToZero, const Condition cond=al)
 
void vcvt_f64_u32 (const DwVfpRegister dst, const SwVfpRegister src, VFPConversionMode mode=kDefaultRoundToZero, const Condition cond=al)
 
void vcvt_f32_u32 (const SwVfpRegister dst, const SwVfpRegister src, VFPConversionMode mode=kDefaultRoundToZero, const Condition cond=al)
 
void vcvt_s32_f32 (const SwVfpRegister dst, const SwVfpRegister src, VFPConversionMode mode=kDefaultRoundToZero, const Condition cond=al)
 
void vcvt_u32_f32 (const SwVfpRegister dst, const SwVfpRegister src, VFPConversionMode mode=kDefaultRoundToZero, const Condition cond=al)
 
void vcvt_s32_f64 (const SwVfpRegister dst, const DwVfpRegister src, VFPConversionMode mode=kDefaultRoundToZero, const Condition cond=al)
 
void vcvt_u32_f64 (const SwVfpRegister dst, const DwVfpRegister src, VFPConversionMode mode=kDefaultRoundToZero, const Condition cond=al)
 
void vcvt_f64_f32 (const DwVfpRegister dst, const SwVfpRegister src, VFPConversionMode mode=kDefaultRoundToZero, const Condition cond=al)
 
void vcvt_f32_f64 (const SwVfpRegister dst, const DwVfpRegister src, VFPConversionMode mode=kDefaultRoundToZero, const Condition cond=al)
 
void vcvt_f64_s32 (const DwVfpRegister dst, int fraction_bits, const Condition cond=al)
 
void vmrs (const Register dst, const Condition cond=al)
 
void vmsr (const Register dst, const Condition cond=al)
 
void vneg (const DwVfpRegister dst, const DwVfpRegister src, const Condition cond=al)
 
void vneg (const SwVfpRegister dst, const SwVfpRegister src, const Condition cond=al)
 
void vabs (const DwVfpRegister dst, const DwVfpRegister src, const Condition cond=al)
 
void vabs (const SwVfpRegister dst, const SwVfpRegister src, const Condition cond=al)
 
void vadd (const DwVfpRegister dst, const DwVfpRegister src1, const DwVfpRegister src2, const Condition cond=al)
 
void vadd (const SwVfpRegister dst, const SwVfpRegister src1, const SwVfpRegister src2, const Condition cond=al)
 
void vsub (const DwVfpRegister dst, const DwVfpRegister src1, const DwVfpRegister src2, const Condition cond=al)
 
void vsub (const SwVfpRegister dst, const SwVfpRegister src1, const SwVfpRegister src2, const Condition cond=al)
 
void vmul (const DwVfpRegister dst, const DwVfpRegister src1, const DwVfpRegister src2, const Condition cond=al)
 
void vmul (const SwVfpRegister dst, const SwVfpRegister src1, const SwVfpRegister src2, const Condition cond=al)
 
void vmla (const DwVfpRegister dst, const DwVfpRegister src1, const DwVfpRegister src2, const Condition cond=al)
 
void vmla (const SwVfpRegister dst, const SwVfpRegister src1, const SwVfpRegister src2, const Condition cond=al)
 
void vmls (const DwVfpRegister dst, const DwVfpRegister src1, const DwVfpRegister src2, const Condition cond=al)
 
void vmls (const SwVfpRegister dst, const SwVfpRegister src1, const SwVfpRegister src2, const Condition cond=al)
 
void vdiv (const DwVfpRegister dst, const DwVfpRegister src1, const DwVfpRegister src2, const Condition cond=al)
 
void vdiv (const SwVfpRegister dst, const SwVfpRegister src1, const SwVfpRegister src2, const Condition cond=al)
 
void vcmp (const DwVfpRegister src1, const DwVfpRegister src2, const Condition cond=al)
 
void vcmp (const SwVfpRegister src1, const SwVfpRegister src2, const Condition cond=al)
 
void vcmp (const DwVfpRegister src1, const double src2, const Condition cond=al)
 
void vcmp (const SwVfpRegister src1, const float src2, const Condition cond=al)
 
void vmaxnm (const DwVfpRegister dst, const DwVfpRegister src1, const DwVfpRegister src2)
 
void vmaxnm (const SwVfpRegister dst, const SwVfpRegister src1, const SwVfpRegister src2)
 
void vminnm (const DwVfpRegister dst, const DwVfpRegister src1, const DwVfpRegister src2)
 
void vminnm (const SwVfpRegister dst, const SwVfpRegister src1, const SwVfpRegister src2)
 
void vsel (const Condition cond, const DwVfpRegister dst, const DwVfpRegister src1, const DwVfpRegister src2)
 
void vsel (const Condition cond, const SwVfpRegister dst, const SwVfpRegister src1, const SwVfpRegister src2)
 
void vsqrt (const DwVfpRegister dst, const DwVfpRegister src, const Condition cond=al)
 
void vsqrt (const SwVfpRegister dst, const SwVfpRegister src, const Condition cond=al)
 
void vrinta (const SwVfpRegister dst, const SwVfpRegister src)
 
void vrinta (const DwVfpRegister dst, const DwVfpRegister src)
 
void vrintn (const SwVfpRegister dst, const SwVfpRegister src)
 
void vrintn (const DwVfpRegister dst, const DwVfpRegister src)
 
void vrintm (const SwVfpRegister dst, const SwVfpRegister src)
 
void vrintm (const DwVfpRegister dst, const DwVfpRegister src)
 
void vrintp (const SwVfpRegister dst, const SwVfpRegister src)
 
void vrintp (const DwVfpRegister dst, const DwVfpRegister src)
 
void vrintz (const SwVfpRegister dst, const SwVfpRegister src, const Condition cond=al)
 
void vrintz (const DwVfpRegister dst, const DwVfpRegister src, const Condition cond=al)
 
void vld1 (NeonSize size, const NeonListOperand &dst, const NeonMemOperand &src)
 
void vld1s (NeonSize size, const NeonListOperand &dst, uint8_t index, const NeonMemOperand &src)
 
void vld1r (NeonSize size, const NeonListOperand &dst, const NeonMemOperand &src)
 
void vst1 (NeonSize size, const NeonListOperand &src, const NeonMemOperand &dst)
 
void vst1s (NeonSize size, const NeonListOperand &src, uint8_t index, const NeonMemOperand &dst)
 
void vmovl (NeonDataType dt, QwNeonRegister dst, DwVfpRegister src)
 
void vqmovn (NeonDataType dst_dt, NeonDataType src_dt, DwVfpRegister dst, QwNeonRegister src)
 
void vmov (NeonDataType dt, DwVfpRegister dst, int index, Register src)
 
void vmov (NeonDataType dt, Register dst, DwVfpRegister src, int index)
 
void vmov (DwVfpRegister dst, uint64_t imm)
 
void vmov (QwNeonRegister dst, uint64_t imm)
 
void vmov (QwNeonRegister dst, QwNeonRegister src)
 
void vdup (NeonSize size, QwNeonRegister dst, Register src)
 
void vdup (NeonSize size, QwNeonRegister dst, DwVfpRegister src, int index)
 
void vdup (NeonSize size, DwVfpRegister dst, DwVfpRegister src, int index)
 
void vcvt_f32_s32 (QwNeonRegister dst, QwNeonRegister src)
 
void vcvt_f32_u32 (QwNeonRegister dst, QwNeonRegister src)
 
void vcvt_s32_f32 (QwNeonRegister dst, QwNeonRegister src)
 
void vcvt_u32_f32 (QwNeonRegister dst, QwNeonRegister src)
 
void vmvn (QwNeonRegister dst, QwNeonRegister src)
 
void vswp (DwVfpRegister dst, DwVfpRegister src)
 
void vswp (QwNeonRegister dst, QwNeonRegister src)
 
void vabs (QwNeonRegister dst, QwNeonRegister src)
 
void vabs (NeonSize size, QwNeonRegister dst, QwNeonRegister src)
 
void vneg (QwNeonRegister dst, QwNeonRegister src)
 
void vneg (NeonSize size, QwNeonRegister dst, QwNeonRegister src)
 
void vand (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vbic (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void veor (DwVfpRegister dst, DwVfpRegister src1, DwVfpRegister src2)
 
void veor (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vbsl (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vorr (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vorn (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vadd (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vadd (NeonSize size, QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vqadd (NeonDataType dt, QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vsub (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vsub (NeonSize size, QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vqsub (NeonDataType dt, QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vmlal (NeonDataType size, QwNeonRegister dst, DwVfpRegister src1, DwVfpRegister src2)
 
void vmul (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vmul (NeonSize size, QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vmull (NeonDataType size, QwNeonRegister dst, DwVfpRegister src1, DwVfpRegister src2)
 
void vmin (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vmin (NeonDataType dt, QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vmax (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vmax (NeonDataType dt, QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vpadd (DwVfpRegister dst, DwVfpRegister src1, DwVfpRegister src2)
 
void vpadd (NeonSize size, DwVfpRegister dst, DwVfpRegister src1, DwVfpRegister src2)
 
void vpmin (NeonDataType dt, DwVfpRegister dst, DwVfpRegister src1, DwVfpRegister src2)
 
void vpmax (NeonDataType dt, DwVfpRegister dst, DwVfpRegister src1, DwVfpRegister src2)
 
void vpadal (NeonDataType dt, QwNeonRegister dst, QwNeonRegister src)
 
void vpaddl (NeonDataType dt, QwNeonRegister dst, QwNeonRegister src)
 
void vqrdmulh (NeonDataType dt, QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vrintm (NeonDataType dt, const QwNeonRegister dst, const QwNeonRegister src)
 
void vrintn (NeonDataType dt, const QwNeonRegister dst, const QwNeonRegister src)
 
void vrintp (NeonDataType dt, const QwNeonRegister dst, const QwNeonRegister src)
 
void vrintz (NeonDataType dt, const QwNeonRegister dst, const QwNeonRegister src)
 
void vshl (NeonDataType dt, QwNeonRegister dst, QwNeonRegister src, int shift)
 
void vshl (NeonDataType dt, QwNeonRegister dst, QwNeonRegister src, QwNeonRegister shift)
 
void vshr (NeonDataType dt, DwVfpRegister dst, DwVfpRegister src, int shift)
 
void vshr (NeonDataType dt, QwNeonRegister dst, QwNeonRegister src, int shift)
 
void vsli (NeonSize size, DwVfpRegister dst, DwVfpRegister src, int shift)
 
void vsri (NeonSize size, DwVfpRegister dst, DwVfpRegister src, int shift)
 
void vsra (NeonDataType size, DwVfpRegister dst, DwVfpRegister src, int imm)
 
void vrecpe (QwNeonRegister dst, QwNeonRegister src)
 
void vrsqrte (QwNeonRegister dst, QwNeonRegister src)
 
void vrecps (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vrsqrts (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vtst (NeonSize size, QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vceq (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vceq (NeonSize size, QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vceq (NeonSize size, QwNeonRegister dst, QwNeonRegister src, int value)
 
void vcge (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vcge (NeonDataType dt, QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vcgt (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vcgt (NeonDataType dt, QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vclt (NeonSize size, QwNeonRegister dst, QwNeonRegister src, int value)
 
void vrhadd (NeonDataType dt, QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2)
 
void vext (QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2, int bytes)
 
void vzip (NeonSize size, DwVfpRegister src1, DwVfpRegister src2)
 
void vzip (NeonSize size, QwNeonRegister src1, QwNeonRegister src2)
 
void vuzp (NeonSize size, DwVfpRegister src1, DwVfpRegister src2)
 
void vuzp (NeonSize size, QwNeonRegister src1, QwNeonRegister src2)
 
void vrev16 (NeonSize size, QwNeonRegister dst, QwNeonRegister src)
 
void vrev32 (NeonSize size, QwNeonRegister dst, QwNeonRegister src)
 
void vrev64 (NeonSize size, QwNeonRegister dst, QwNeonRegister src)
 
void vtrn (NeonSize size, DwVfpRegister src1, DwVfpRegister src2)
 
void vtrn (NeonSize size, QwNeonRegister src1, QwNeonRegister src2)
 
void vtbl (DwVfpRegister dst, const NeonListOperand &list, DwVfpRegister index)
 
void vtbx (DwVfpRegister dst, const NeonListOperand &list, DwVfpRegister index)
 
void vcnt (QwNeonRegister dst, QwNeonRegister src)
 
void nop (int type=0)
 
void push (Register src, Condition cond=al)
 
void pop (Register dst, Condition cond=al)
 
void pop ()
 
void vpush (QwNeonRegister src, Condition cond=al)
 
void vpush (DwVfpRegister src, Condition cond=al)
 
void vpush (SwVfpRegister src, Condition cond=al)
 
void vpop (DwVfpRegister dst, Condition cond=al)
 
void jmp (Label *L)
 
int SizeOfCodeGeneratedSince (Label *label)
 
int InstructionsGeneratedSince (Label *label)
 
bool ImmediateFitsAddrMode2Instruction (int32_t imm32)
 
void MaybeEmitOutOfLineConstantPool ()
 
void RecordDeoptReason (DeoptimizeReason reason, uint32_t node_id, SourcePosition position, int id)
 
void RecordConstPool (int size)
 
void db (uint8_t data)
 
void dd (uint32_t data)
 
void dq (uint64_t data)
 
void dp (uintptr_t data)
 
Instr instr_at (int pos)
 
void instr_at_put (int pos, Instr instr)
 
void BlockConstPoolFor (int instructions)
 
void CheckConstPool (bool force_emit, bool require_jump)
 
V8_INLINE void MaybeCheckConstPool ()
 
void Move32BitImmediate (Register rd, const Operand &x, Condition cond=al)
 
V8_INLINE Handle< Coderelative_code_target_object_handle_at (Address pc_) const
 
 Assembler (const MaybeAssemblerZone &, const AssemblerOptions &, std::unique_ptr< AssemblerBuffer >={})
 
 ~Assembler () override
 
Zonezone () const
 
void AbortedCodeGeneration () override
 
void Reset ()
 
void GetCode (LocalIsolate *isolate, CodeDesc *desc, SafepointTableBuilderBase *safepoint_table_builder, int handler_table_offset)
 
void GetCode (Isolate *isolate, CodeDesc *desc)
 
void GetCode (LocalIsolate *isolate, CodeDesc *desc)
 
void Align (int m)
 
void DataAlign (int m)
 
void CodeTargetAlign ()
 
void LoopHeaderAlign ()
 
void Unreachable ()
 
void bind (Label *label)
 
void RecordRelocInfo (RelocInfo::Mode rmode, intptr_t data=0, ConstantPoolMode constant_pool_mode=NEEDS_POOL_ENTRY)
 
void near_jump (int offset, RelocInfo::Mode rmode)
 
void near_call (int offset, RelocInfo::Mode rmode)
 
void near_call (HeapNumberRequest request)
 
Handle< Codecode_target_object_handle_at (Address pc)
 
EmbeddedObjectIndex embedded_object_index_referenced_from (Address pc)
 
void set_embedded_object_index_referenced_from (Address p, EmbeddedObjectIndex index)
 
Handle< HeapObjecttarget_object_handle_at (Address pc)
 
uint64_t SizeOfGeneratedCode () const
 
uint64_t SizeOfCodeGeneratedSince (const Label *label)
 
uint64_t InstructionsGeneratedSince (const Label *label)
 
void EmitPoolGuard ()
 
void StartBlockVeneerPool ()
 
void EndBlockVeneerPool ()
 
bool is_veneer_pool_blocked () const
 
void RecordDeoptReason (DeoptimizeReason reason, uint32_t node_id, SourcePosition position, int id)
 
int buffer_space () const
 
void RecordConstPool (int size)
 
void br (const Register &xn)
 
void blr (const Register &xn)
 
void ret (const Register &xn=lr)
 
void b (Label *label)
 
void b (Label *label, Condition cond)
 
void b (int imm26)
 
void b (int imm19, Condition cond)
 
void bl (Label *label)
 
void bl (int imm26)
 
void cbz (const Register &rt, Label *label)
 
void cbz (const Register &rt, int imm19)
 
void cbnz (const Register &rt, Label *label)
 
void cbnz (const Register &rt, int imm19)
 
void tbz (const Register &rt, unsigned bit_pos, Label *label)
 
void tbz (const Register &rt, unsigned bit_pos, int imm14)
 
void tbnz (const Register &rt, unsigned bit_pos, Label *label)
 
void tbnz (const Register &rt, unsigned bit_pos, int imm14)
 
void adr (const Register &rd, Label *label)
 
void adr (const Register &rd, int imm21)
 
void add (const Register &rd, const Register &rn, const Operand &operand)
 
void adds (const Register &rd, const Register &rn, const Operand &operand)
 
void cmn (const Register &rn, const Operand &operand)
 
void sub (const Register &rd, const Register &rn, const Operand &operand)
 
void subs (const Register &rd, const Register &rn, const Operand &operand)
 
void cmp (const Register &rn, const Operand &operand)
 
void neg (const Register &rd, const Operand &operand)
 
void negs (const Register &rd, const Operand &operand)
 
void adc (const Register &rd, const Register &rn, const Operand &operand)
 
void adcs (const Register &rd, const Register &rn, const Operand &operand)
 
void sbc (const Register &rd, const Register &rn, const Operand &operand)
 
void sbcs (const Register &rd, const Register &rn, const Operand &operand)
 
void ngc (const Register &rd, const Operand &operand)
 
void ngcs (const Register &rd, const Operand &operand)
 
void and_ (const Register &rd, const Register &rn, const Operand &operand)
 
void ands (const Register &rd, const Register &rn, const Operand &operand)
 
void tst (const Register &rn, const Operand &operand)
 
void bic (const Register &rd, const Register &rn, const Operand &operand)
 
void bics (const Register &rd, const Register &rn, const Operand &operand)
 
void and_ (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void bic (const VRegister &vd, const int imm8, const int left_shift=0)
 
void bic (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void bif (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void bit (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void bsl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void pmul (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void movi (const VRegister &vd, const uint64_t imm, Shift shift=LSL, const int shift_amount=0)
 
void mvn (const VRegister &vd, const VRegister &vn)
 
void mvni (const VRegister &vd, const int imm8, Shift shift=LSL, const int shift_amount=0)
 
void suqadd (const VRegister &vd, const VRegister &vn)
 
void usqadd (const VRegister &vd, const VRegister &vn)
 
void abs (const VRegister &vd, const VRegister &vn)
 
void sqabs (const VRegister &vd, const VRegister &vn)
 
void neg (const VRegister &vd, const VRegister &vn)
 
void sqneg (const VRegister &vd, const VRegister &vn)
 
void not_ (const VRegister &vd, const VRegister &vn)
 
void xtn (const VRegister &vd, const VRegister &vn)
 
void xtn2 (const VRegister &vd, const VRegister &vn)
 
void sqxtn (const VRegister &vd, const VRegister &vn)
 
void sqxtn2 (const VRegister &vd, const VRegister &vn)
 
void uqxtn (const VRegister &vd, const VRegister &vn)
 
void uqxtn2 (const VRegister &vd, const VRegister &vn)
 
void sqxtun (const VRegister &vd, const VRegister &vn)
 
void sqxtun2 (const VRegister &vd, const VRegister &vn)
 
void mov (const VRegister &vd, const VRegister &vn)
 
void orn (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void eor (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void orr (const Register &rd, const Register &rn, const Operand &operand)
 
void orr (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void orr (const VRegister &vd, const int imm8, const int left_shift=0)
 
void orn (const Register &rd, const Register &rn, const Operand &operand)
 
void eor (const Register &rd, const Register &rn, const Operand &operand)
 
void eon (const Register &rd, const Register &rn, const Operand &operand)
 
void lslv (const Register &rd, const Register &rn, const Register &rm)
 
void lsrv (const Register &rd, const Register &rn, const Register &rm)
 
void asrv (const Register &rd, const Register &rn, const Register &rm)
 
void rorv (const Register &rd, const Register &rn, const Register &rm)
 
void bfm (const Register &rd, const Register &rn, int immr, int imms)
 
void sbfm (const Register &rd, const Register &rn, int immr, int imms)
 
void ubfm (const Register &rd, const Register &rn, int immr, int imms)
 
void bfi (const Register &rd, const Register &rn, int lsb, int width)
 
void bfxil (const Register &rd, const Register &rn, int lsb, int width)
 
void asr (const Register &rd, const Register &rn, int shift)
 
void sbfiz (const Register &rd, const Register &rn, int lsb, int width)
 
void sbfx (const Register &rd, const Register &rn, int lsb, int width)
 
void sxtb (const Register &rd, const Register &rn)
 
void sxth (const Register &rd, const Register &rn)
 
void sxtw (const Register &rd, const Register &rn)
 
void lsl (const Register &rd, const Register &rn, int shift)
 
void lsr (const Register &rd, const Register &rn, int shift)
 
void ubfiz (const Register &rd, const Register &rn, int lsb, int width)
 
void ubfx (const Register &rd, const Register &rn, int lsb, int width)
 
void uxtb (const Register &rd, const Register &rn)
 
void uxth (const Register &rd, const Register &rn)
 
void uxtw (const Register &rd, const Register &rn)
 
void extr (const Register &rd, const Register &rn, const Register &rm, int lsb)
 
void csel (const Register &rd, const Register &rn, const Register &rm, Condition cond)
 
void csinc (const Register &rd, const Register &rn, const Register &rm, Condition cond)
 
void csinv (const Register &rd, const Register &rn, const Register &rm, Condition cond)
 
void csneg (const Register &rd, const Register &rn, const Register &rm, Condition cond)
 
void cset (const Register &rd, Condition cond)
 
void csetm (const Register &rd, Condition cond)
 
void cinc (const Register &rd, const Register &rn, Condition cond)
 
void cinv (const Register &rd, const Register &rn, Condition cond)
 
void cneg (const Register &rd, const Register &rn, Condition cond)
 
void ror (const Register &rd, const Register &rs, unsigned shift)
 
void ccmn (const Register &rn, const Operand &operand, StatusFlags nzcv, Condition cond)
 
void ccmp (const Register &rn, const Operand &operand, StatusFlags nzcv, Condition cond)
 
void mul (const Register &rd, const Register &rn, const Register &rm)
 
void madd (const Register &rd, const Register &rn, const Register &rm, const Register &ra)
 
void mneg (const Register &rd, const Register &rn, const Register &rm)
 
void msub (const Register &rd, const Register &rn, const Register &rm, const Register &ra)
 
void smull (const Register &rd, const Register &rn, const Register &rm)
 
void smulh (const Register &rd, const Register &rn, const Register &rm)
 
void umulh (const Register &rd, const Register &rn, const Register &rm)
 
void smaddl (const Register &rd, const Register &rn, const Register &rm, const Register &ra)
 
void umaddl (const Register &rd, const Register &rn, const Register &rm, const Register &ra)
 
void smsubl (const Register &rd, const Register &rn, const Register &rm, const Register &ra)
 
void umsubl (const Register &rd, const Register &rn, const Register &rm, const Register &ra)
 
void sdiv (const Register &rd, const Register &rn, const Register &rm)
 
void udiv (const Register &rd, const Register &rn, const Register &rm)
 
void rbit (const Register &rd, const Register &rn)
 
void rev16 (const Register &rd, const Register &rn)
 
void rev32 (const Register &rd, const Register &rn)
 
void rev (const Register &rd, const Register &rn)
 
void clz (const Register &rd, const Register &rn)
 
void cls (const Register &rd, const Register &rn)
 
void pacib1716 ()
 
void pacibsp ()
 
void autib1716 ()
 
void autibsp ()
 
void ldr (const CPURegister &rt, const MemOperand &src)
 
void str (const CPURegister &rt, const MemOperand &dst)
 
void ldrsw (const Register &rt, const MemOperand &src)
 
void ldrb (const Register &rt, const MemOperand &src)
 
void strb (const Register &rt, const MemOperand &dst)
 
void ldrsb (const Register &rt, const MemOperand &src)
 
void ldrh (const Register &rt, const MemOperand &src)
 
void strh (const Register &rt, const MemOperand &dst)
 
void ldrsh (const Register &rt, const MemOperand &src)
 
void ldp (const CPURegister &rt, const CPURegister &rt2, const MemOperand &src)
 
void stp (const CPURegister &rt, const CPURegister &rt2, const MemOperand &dst)
 
void ldpsw (const Register &rt, const Register &rt2, const MemOperand &src)
 
void ldr_pcrel (const CPURegister &rt, int imm19)
 
void ldr (const CPURegister &rt, const Immediate &imm)
 
void ldr (const CPURegister &rt, const Operand &operand)
 
void ldar (const Register &rt, const Register &rn)
 
void ldaxr (const Register &rt, const Register &rn)
 
void stlr (const Register &rt, const Register &rn)
 
void stlxr (const Register &rs, const Register &rt, const Register &rn)
 
void ldarb (const Register &rt, const Register &rn)
 
void ldaxrb (const Register &rt, const Register &rn)
 
void stlrb (const Register &rt, const Register &rn)
 
void stlxrb (const Register &rs, const Register &rt, const Register &rn)
 
void ldarh (const Register &rt, const Register &rn)
 
void ldaxrh (const Register &rt, const Register &rn)
 
void stlrh (const Register &rt, const Register &rn)
 
void stlxrh (const Register &rs, const Register &rt, const Register &rn)
 
void cas (const Register &rs, const Register &rt, const MemOperand &src)
 
void casa (const Register &rs, const Register &rt, const MemOperand &src)
 
void casl (const Register &rs, const Register &rt, const MemOperand &src)
 
void casal (const Register &rs, const Register &rt, const MemOperand &src)
 
void casb (const Register &rs, const Register &rt, const MemOperand &src)
 
void casab (const Register &rs, const Register &rt, const MemOperand &src)
 
void caslb (const Register &rs, const Register &rt, const MemOperand &src)
 
void casalb (const Register &rs, const Register &rt, const MemOperand &src)
 
void cash (const Register &rs, const Register &rt, const MemOperand &src)
 
void casah (const Register &rs, const Register &rt, const MemOperand &src)
 
void caslh (const Register &rs, const Register &rt, const MemOperand &src)
 
void casalh (const Register &rs, const Register &rt, const MemOperand &src)
 
void casp (const Register &rs, const Register &rs2, const Register &rt, const Register &rt2, const MemOperand &src)
 
void caspa (const Register &rs, const Register &rs2, const Register &rt, const Register &rt2, const MemOperand &src)
 
void caspl (const Register &rs, const Register &rs2, const Register &rt, const Register &rt2, const MemOperand &src)
 
void caspal (const Register &rs, const Register &rs2, const Register &rt, const Register &rt2, const MemOperand &src)
 
void ldaddb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldaddab (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldaddlb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldaddalb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldaddh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldaddah (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldaddlh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldaddalh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldadd (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldadda (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldaddl (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldaddal (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldclrb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldclrab (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldclrlb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldclralb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldclrh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldclrah (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldclrlh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldclralh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldclr (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldclra (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldclrl (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldclral (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldeorb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldeorab (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldeorlb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldeoralb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldeorh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldeorah (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldeorlh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldeoralh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldeor (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldeora (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldeorl (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldeoral (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsetb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsetab (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsetlb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsetalb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldseth (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsetah (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsetlh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsetalh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldset (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldseta (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsetl (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsetal (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsmaxb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsmaxab (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsmaxlb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsmaxalb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsmaxh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsmaxah (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsmaxlh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsmaxalh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsmax (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsmaxa (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsmaxl (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsmaxal (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsminb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsminab (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsminlb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsminalb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsminh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsminah (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsminlh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsminalh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsmin (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsmina (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsminl (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldsminal (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldumaxb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldumaxab (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldumaxlb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldumaxalb (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldumaxh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldumaxah (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldumaxlh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldumaxalh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldumax (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldumaxa (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldumaxl (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldumaxal (const Register &rs, const Register &rt, const MemOperand &src)
 
void lduminb (const Register &rs, const Register &rt, const MemOperand &src)
 
void lduminab (const Register &rs, const Register &rt, const MemOperand &src)
 
void lduminlb (const Register &rs, const Register &rt, const MemOperand &src)
 
void lduminalb (const Register &rs, const Register &rt, const MemOperand &src)
 
void lduminh (const Register &rs, const Register &rt, const MemOperand &src)
 
void lduminah (const Register &rs, const Register &rt, const MemOperand &src)
 
void lduminlh (const Register &rs, const Register &rt, const MemOperand &src)
 
void lduminalh (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldumin (const Register &rs, const Register &rt, const MemOperand &src)
 
void ldumina (const Register &rs, const Register &rt, const MemOperand &src)
 
void lduminl (const Register &rs, const Register &rt, const MemOperand &src)
 
void lduminal (const Register &rs, const Register &rt, const MemOperand &src)
 
void staddb (const Register &rs, const MemOperand &src)
 
void staddlb (const Register &rs, const MemOperand &src)
 
void staddh (const Register &rs, const MemOperand &src)
 
void staddlh (const Register &rs, const MemOperand &src)
 
void stadd (const Register &rs, const MemOperand &src)
 
void staddl (const Register &rs, const MemOperand &src)
 
void stclrb (const Register &rs, const MemOperand &src)
 
void stclrlb (const Register &rs, const MemOperand &src)
 
void stclrh (const Register &rs, const MemOperand &src)
 
void stclrlh (const Register &rs, const MemOperand &src)
 
void stclr (const Register &rs, const MemOperand &src)
 
void stclrl (const Register &rs, const MemOperand &src)
 
void steorb (const Register &rs, const MemOperand &src)
 
void steorlb (const Register &rs, const MemOperand &src)
 
void steorh (const Register &rs, const MemOperand &src)
 
void steorlh (const Register &rs, const MemOperand &src)
 
void steor (const Register &rs, const MemOperand &src)
 
void steorl (const Register &rs, const MemOperand &src)
 
void stsetb (const Register &rs, const MemOperand &src)
 
void stsetlb (const Register &rs, const MemOperand &src)
 
void stseth (const Register &rs, const MemOperand &src)
 
void stsetlh (const Register &rs, const MemOperand &src)
 
void stset (const Register &rs, const MemOperand &src)
 
void stsetl (const Register &rs, const MemOperand &src)
 
void stsmaxb (const Register &rs, const MemOperand &src)
 
void stsmaxlb (const Register &rs, const MemOperand &src)
 
void stsmaxh (const Register &rs, const MemOperand &src)
 
void stsmaxlh (const Register &rs, const MemOperand &src)
 
void stsmax (const Register &rs, const MemOperand &src)
 
void stsmaxl (const Register &rs, const MemOperand &src)
 
void stsminb (const Register &rs, const MemOperand &src)
 
void stsminlb (const Register &rs, const MemOperand &src)
 
void stsminh (const Register &rs, const MemOperand &src)
 
void stsminlh (const Register &rs, const MemOperand &src)
 
void stsmin (const Register &rs, const MemOperand &src)
 
void stsminl (const Register &rs, const MemOperand &src)
 
void stumaxb (const Register &rs, const MemOperand &src)
 
void stumaxlb (const Register &rs, const MemOperand &src)
 
void stumaxh (const Register &rs, const MemOperand &src)
 
void stumaxlh (const Register &rs, const MemOperand &src)
 
void stumax (const Register &rs, const MemOperand &src)
 
void stumaxl (const Register &rs, const MemOperand &src)
 
void stuminb (const Register &rs, const MemOperand &src)
 
void stuminlb (const Register &rs, const MemOperand &src)
 
void stuminh (const Register &rs, const MemOperand &src)
 
void stuminlh (const Register &rs, const MemOperand &src)
 
void stumin (const Register &rs, const MemOperand &src)
 
void stuminl (const Register &rs, const MemOperand &src)
 
void swpb (const Register &rs, const Register &rt, const MemOperand &src)
 
void swpab (const Register &rs, const Register &rt, const MemOperand &src)
 
void swplb (const Register &rs, const Register &rt, const MemOperand &src)
 
void swpalb (const Register &rs, const Register &rt, const MemOperand &src)
 
void swph (const Register &rs, const Register &rt, const MemOperand &src)
 
void swpah (const Register &rs, const Register &rt, const MemOperand &src)
 
void swplh (const Register &rs, const Register &rt, const MemOperand &src)
 
void swpalh (const Register &rs, const Register &rt, const MemOperand &src)
 
void swp (const Register &rs, const Register &rt, const MemOperand &src)
 
void swpa (const Register &rs, const Register &rt, const MemOperand &src)
 
void swpl (const Register &rs, const Register &rt, const MemOperand &src)
 
void swpal (const Register &rs, const Register &rt, const MemOperand &src)
 
void movk (const Register &rd, uint64_t imm, int shift=-1)
 
void movn (const Register &rd, uint64_t imm, int shift=-1)
 
void movz (const Register &rd, uint64_t imm, int shift=-1)
 
void brk (int code)
 
void hlt (int code)
 
void mov (const Register &rd, const Register &rn)
 
void mvn (const Register &rd, const Operand &operand)
 
void mrs (const Register &rt, SystemRegister sysreg)
 
void msr (SystemRegister sysreg, const Register &rt)
 
void hint (SystemHint code)
 
void dmb (BarrierDomain domain, BarrierType type)
 
void dsb (BarrierDomain domain, BarrierType type)
 
void isb ()
 
void csdb ()
 
void bti (BranchTargetIdentifier id)
 
void nop ()
 
void nop (NopMarkerTypes n)
 
void add (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void uhadd (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sub (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void shadd (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void mul (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void mla (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void mls (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void smlal (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void smlal2 (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void umlal (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void umlal2 (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void smlsl (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void smlsl2 (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void umlsl (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void umlsl2 (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void smull (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void smull2 (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void umull (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void umull2 (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void addhn (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void addhn2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sqdmull (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void sqdmull2 (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void sqdmlal (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void sqdmlal2 (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void sqdmlsl (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void sqdmlsl2 (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void cmeq (const VRegister &vd, const VRegister &vn, int value)
 
void cmge (const VRegister &vd, const VRegister &vn, int value)
 
void cmgt (const VRegister &vd, const VRegister &vn, int value)
 
void cmle (const VRegister &vd, const VRegister &vn, int value)
 
void cmlt (const VRegister &vd, const VRegister &vn, int value)
 
void urhadd (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void cmeq (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void cmge (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void cmgt (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void cmhi (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void cmhs (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void cmtst (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sshl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void ushl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sqdmlsl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sqdmlsl2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sqdmull (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sqdmull2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sqdmulh (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sqrdmulh (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sqdmulh (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void sqrdmulh (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void umull (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void umull2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void raddhn (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void subhn (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void subhn2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void raddhn2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void rsubhn (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void rsubhn2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sqshl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void uqshl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void srshl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void urshl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sqrshl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void uqrshl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sabd (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void uaba (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sli (const VRegister &vd, const VRegister &vn, int shift)
 
void sri (const VRegister &vd, const VRegister &vn, int shift)
 
void smax (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void smaxp (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void addv (const VRegister &vd, const VRegister &vn)
 
void saddlv (const VRegister &vd, const VRegister &vn)
 
void uaddlv (const VRegister &vd, const VRegister &vn)
 
void fmaxnmv (const VRegister &vd, const VRegister &vn)
 
void fmaxv (const VRegister &vd, const VRegister &vn)
 
void fminnmv (const VRegister &vd, const VRegister &vn)
 
void fminv (const VRegister &vd, const VRegister &vn)
 
void smaxv (const VRegister &vd, const VRegister &vn)
 
void smin (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sminp (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sminv (const VRegister &vd, const VRegister &vn)
 
void sdot (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void st1 (const VRegister &vt, const MemOperand &src)
 
void st1 (const VRegister &vt, const VRegister &vt2, const MemOperand &src)
 
void st1 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const MemOperand &src)
 
void st1 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, const MemOperand &src)
 
void st1 (const VRegister &vt, int lane, const MemOperand &src)
 
void st2 (const VRegister &vt, const VRegister &vt2, const MemOperand &src)
 
void st2 (const VRegister &vt, const VRegister &vt2, int lane, const MemOperand &src)
 
void st3 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const MemOperand &src)
 
void st3 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, int lane, const MemOperand &src)
 
void st4 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, const MemOperand &src)
 
void st4 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, int lane, const MemOperand &src)
 
void uaddl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void uaddl2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void uaddw (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void uaddw2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void saddl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void saddl2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void saddw (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void saddw2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void usubl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void usubl2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void usubw (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void ssubl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void ssubl2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void ssubw (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void ssubw2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void usubw2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void umax (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void umaxp (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void umaxv (const VRegister &vd, const VRegister &vn)
 
void umin (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void uminp (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void uminv (const VRegister &vd, const VRegister &vn)
 
void trn1 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void trn2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void uzp1 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void uzp2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void zip1 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void zip2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sshr (const VRegister &vd, const VRegister &vn, int shift)
 
void ushr (const VRegister &vd, const VRegister &vn, int shift)
 
void srshr (const VRegister &vd, const VRegister &vn, int shift)
 
void urshr (const VRegister &vd, const VRegister &vn, int shift)
 
void ssra (const VRegister &vd, const VRegister &vn, int shift)
 
void usra (const VRegister &vd, const VRegister &vn, int shift)
 
void srsra (const VRegister &vd, const VRegister &vn, int shift)
 
void ursra (const VRegister &vd, const VRegister &vn, int shift)
 
void shrn (const VRegister &vd, const VRegister &vn, int shift)
 
void shrn2 (const VRegister &vd, const VRegister &vn, int shift)
 
void rshrn (const VRegister &vd, const VRegister &vn, int shift)
 
void rshrn2 (const VRegister &vd, const VRegister &vn, int shift)
 
void uqshrn (const VRegister &vd, const VRegister &vn, int shift)
 
void uqshrn2 (const VRegister &vd, const VRegister &vn, int shift)
 
void uqrshrn (const VRegister &vd, const VRegister &vn, int shift)
 
void uqrshrn2 (const VRegister &vd, const VRegister &vn, int shift)
 
void sqshrn (const VRegister &vd, const VRegister &vn, int shift)
 
void sqshrn2 (const VRegister &vd, const VRegister &vn, int shift)
 
void sqrshrn (const VRegister &vd, const VRegister &vn, int shift)
 
void sqrshrn2 (const VRegister &vd, const VRegister &vn, int shift)
 
void sqshrun (const VRegister &vd, const VRegister &vn, int shift)
 
void sqshrun2 (const VRegister &vd, const VRegister &vn, int shift)
 
void sqrshrun (const VRegister &vd, const VRegister &vn, int shift)
 
void sqrshrun2 (const VRegister &vd, const VRegister &vn, int shift)
 
void frecps (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void frecpe (const VRegister &vd, const VRegister &vn)
 
void frsqrte (const VRegister &vd, const VRegister &vn)
 
void frsqrts (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sabal (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sabal2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void uabal (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void uabal2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sabdl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sabdl2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void uabdl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void uabdl2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void pmull (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void pmull2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void smlal (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void smlal2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void umlal (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void umlal2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void smlsl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void smlsl2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void umlsl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void umlsl2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void smull (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void smull2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sqdmlal (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sqdmlal2 (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void uabd (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void saba (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void fmov (const VRegister &fd, double imm)
 
void fmov (const VRegister &fd, float imm)
 
void fmov (const Register &rd, const VRegister &fn)
 
void fmov (const VRegister &fd, const Register &rn)
 
void fmov (const VRegister &fd, const VRegister &fn)
 
void fmov (const VRegister &vd, int index, const Register &rn)
 
void fmov (const Register &rd, const VRegister &vn, int index)
 
void fadd (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void fsub (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void fmul (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void fcmeq (const VRegister &vd, const VRegister &vn, double imm)
 
void fcmgt (const VRegister &vd, const VRegister &vn, double imm)
 
void fcmge (const VRegister &vd, const VRegister &vn, double imm)
 
void fcmle (const VRegister &vd, const VRegister &vn, double imm)
 
void fcmlt (const VRegister &vd, const VRegister &vn, double imm)
 
void fabd (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void faddp (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void faddp (const VRegister &vd, const VRegister &vn)
 
void fmaxp (const VRegister &vd, const VRegister &vn)
 
void fmaxnmp (const VRegister &vd, const VRegister &vn)
 
void fminnmp (const VRegister &vd, const VRegister &vn)
 
void fmla (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void fmls (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void fmulx (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void facge (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void facgt (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void fmul (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void fmla (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void fmls (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void fmulx (const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
 
void fcmeq (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void fcmgt (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void fcmge (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void fmaxp (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void fminp (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void fminp (const VRegister &vd, const VRegister &vn)
 
void fmaxnmp (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void fminnmp (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void fmadd (const VRegister &vd, const VRegister &vn, const VRegister &vm, const VRegister &va)
 
void fmsub (const VRegister &vd, const VRegister &vn, const VRegister &vm, const VRegister &va)
 
void fnmadd (const VRegister &vd, const VRegister &vn, const VRegister &vm, const VRegister &va)
 
void fnmsub (const VRegister &vd, const VRegister &vn, const VRegister &vm, const VRegister &va)
 
void fnmul (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void frecpx (const VRegister &vd, const VRegister &vn)
 
void fdiv (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void fmax (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void fmin (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void fmaxnm (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void fminnm (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void fabs (const VRegister &vd, const VRegister &vn)
 
void fneg (const VRegister &vd, const VRegister &vn)
 
void fsqrt (const VRegister &vd, const VRegister &vn)
 
void frinta (const VRegister &vd, const VRegister &vn)
 
void frinti (const VRegister &vd, const VRegister &vn)
 
void frintm (const VRegister &vd, const VRegister &vn)
 
void frintn (const VRegister &vd, const VRegister &vn)
 
void frintp (const VRegister &vd, const VRegister &vn)
 
void frintx (const VRegister &vd, const VRegister &vn)
 
void frintz (const VRegister &vd, const VRegister &vn)
 
void fcmp (const VRegister &vn, const VRegister &vm)
 
void fcmp (const VRegister &vn, double value)
 
void fccmp (const VRegister &vn, const VRegister &vm, StatusFlags nzcv, Condition cond)
 
void fcsel (const VRegister &vd, const VRegister &vn, const VRegister &vm, Condition cond)
 
void NEONFPConvertToInt (const Register &rd, const VRegister &vn, Instr op)
 
void NEONFPConvertToInt (const VRegister &vd, const VRegister &vn, Instr op)
 
void fcvt (const VRegister &vd, const VRegister &vn)
 
void fcvtl (const VRegister &vd, const VRegister &vn)
 
void fcvtl2 (const VRegister &vd, const VRegister &vn)
 
void fcvtn (const VRegister &vd, const VRegister &vn)
 
void fcvtn2 (const VRegister &vd, const VRegister &vn)
 
void fcvtxn (const VRegister &vd, const VRegister &vn)
 
void fcvtxn2 (const VRegister &vd, const VRegister &vn)
 
void fcvtas (const Register &rd, const VRegister &vn)
 
void fcvtau (const Register &rd, const VRegister &vn)
 
void fcvtas (const VRegister &vd, const VRegister &vn)
 
void fcvtau (const VRegister &vd, const VRegister &vn)
 
void fcvtms (const Register &rd, const VRegister &vn)
 
void fcvtmu (const Register &rd, const VRegister &vn)
 
void fcvtms (const VRegister &vd, const VRegister &vn)
 
void fcvtmu (const VRegister &vd, const VRegister &vn)
 
void fcvtns (const Register &rd, const VRegister &vn)
 
void fjcvtzs (const Register &rd, const VRegister &vn)
 
void fcvtnu (const Register &rd, const VRegister &vn)
 
void fcvtns (const VRegister &rd, const VRegister &vn)
 
void fcvtnu (const VRegister &rd, const VRegister &vn)
 
void fcvtzs (const Register &rd, const VRegister &vn, int fbits=0)
 
void fcvtzu (const Register &rd, const VRegister &vn, int fbits=0)
 
void fcvtzs (const VRegister &vd, const VRegister &vn, int fbits=0)
 
void fcvtzu (const VRegister &vd, const VRegister &vn, int fbits=0)
 
void fcvtps (const Register &rd, const VRegister &vn)
 
void fcvtpu (const Register &rd, const VRegister &vn)
 
void fcvtps (const VRegister &vd, const VRegister &vn)
 
void fcvtpu (const VRegister &vd, const VRegister &vn)
 
void scvtf (const VRegister &fd, const Register &rn, int fbits=0)
 
void ucvtf (const VRegister &fd, const Register &rn, int fbits=0)
 
void scvtf (const VRegister &fd, const VRegister &vn, int fbits=0)
 
void ucvtf (const VRegister &fd, const VRegister &vn, int fbits=0)
 
void ext (const VRegister &vd, const VRegister &vn, const VRegister &vm, int index)
 
void dup (const VRegister &vd, const VRegister &vn, int vn_index)
 
void dup (const VRegister &vd, const Register &rn)
 
void ins (const VRegister &vd, int vd_index, const Register &rn)
 
void mov (const VRegister &vd, int vd_index, const Register &rn)
 
void umov (const Register &rd, const VRegister &vn, int vn_index)
 
void mov (const Register &rd, const VRegister &vn, int vn_index)
 
void mov (const VRegister &vd, const VRegister &vn, int vn_index)
 
void ins (const VRegister &vd, int vd_index, const VRegister &vn, int vn_index)
 
void mov (const VRegister &vd, int vd_index, const VRegister &vn, int vn_index)
 
void smov (const Register &rd, const VRegister &vn, int vn_index)
 
void ld1 (const VRegister &vt, const MemOperand &src)
 
void ld1 (const VRegister &vt, const VRegister &vt2, const MemOperand &src)
 
void ld1 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const MemOperand &src)
 
void ld1 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, const MemOperand &src)
 
void ld1 (const VRegister &vt, int lane, const MemOperand &src)
 
void ld1r (const VRegister &vt, const MemOperand &src)
 
void ld2 (const VRegister &vt, const VRegister &vt2, const MemOperand &src)
 
void ld2 (const VRegister &vt, const VRegister &vt2, int lane, const MemOperand &src)
 
void ld2r (const VRegister &vt, const VRegister &vt2, const MemOperand &src)
 
void ld3 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const MemOperand &src)
 
void ld3 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, int lane, const MemOperand &src)
 
void ld3r (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const MemOperand &src)
 
void ld4 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, const MemOperand &src)
 
void ld4 (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, int lane, const MemOperand &src)
 
void ld4r (const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, const MemOperand &src)
 
void cls (const VRegister &vd, const VRegister &vn)
 
void clz (const VRegister &vd, const VRegister &vn)
 
void cnt (const VRegister &vd, const VRegister &vn)
 
void rbit (const VRegister &vd, const VRegister &vn)
 
void rev16 (const VRegister &vd, const VRegister &vn)
 
void rev32 (const VRegister &vd, const VRegister &vn)
 
void rev64 (const VRegister &vd, const VRegister &vn)
 
void ursqrte (const VRegister &vd, const VRegister &vn)
 
void urecpe (const VRegister &vd, const VRegister &vn)
 
void sadalp (const VRegister &vd, const VRegister &vn)
 
void saddlp (const VRegister &vd, const VRegister &vn)
 
void uaddlp (const VRegister &vd, const VRegister &vn)
 
void uadalp (const VRegister &vd, const VRegister &vn)
 
void shl (const VRegister &vd, const VRegister &vn, int shift)
 
void sqshl (const VRegister &vd, const VRegister &vn, int shift)
 
void sqshlu (const VRegister &vd, const VRegister &vn, int shift)
 
void uqshl (const VRegister &vd, const VRegister &vn, int shift)
 
void sshll (const VRegister &vd, const VRegister &vn, int shift)
 
void sshll2 (const VRegister &vd, const VRegister &vn, int shift)
 
void sxtl (const VRegister &vd, const VRegister &vn)
 
void sxtl2 (const VRegister &vd, const VRegister &vn)
 
void ushll (const VRegister &vd, const VRegister &vn, int shift)
 
void ushll2 (const VRegister &vd, const VRegister &vn, int shift)
 
void shll (const VRegister &vd, const VRegister &vn, int shift)
 
void shll2 (const VRegister &vd, const VRegister &vn, int shift)
 
void uxtl (const VRegister &vd, const VRegister &vn)
 
void uxtl2 (const VRegister &vd, const VRegister &vn)
 
void srhadd (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void uhsub (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void shsub (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void uqadd (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sqadd (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void uqsub (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void sqsub (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void addp (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void addp (const VRegister &vd, const VRegister &vn)
 
void mla (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void mls (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void mul (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void tbl (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void tbl (const VRegister &vd, const VRegister &vn, const VRegister &vn2, const VRegister &vm)
 
void tbl (const VRegister &vd, const VRegister &vn, const VRegister &vn2, const VRegister &vn3, const VRegister &vm)
 
void tbl (const VRegister &vd, const VRegister &vn, const VRegister &vn2, const VRegister &vn3, const VRegister &vn4, const VRegister &vm)
 
void tbx (const VRegister &vd, const VRegister &vn, const VRegister &vm)
 
void tbx (const VRegister &vd, const VRegister &vn, const VRegister &vn2, const VRegister &vm)
 
void tbx (const VRegister &vd, const VRegister &vn, const VRegister &vn2, const VRegister &vn3, const VRegister &vm)
 
void tbx (const VRegister &vd, const VRegister &vn, const VRegister &vn2, const VRegister &vn3, const VRegister &vn4, const VRegister &vm)
 
void dci (Instr raw_inst)
 
void dc8 (uint8_t data)
 
void dc32 (uint32_t data)
 
void dc64 (uint64_t data)
 
void dcptr (Label *label)
 
void bcax (const VRegister &vd, const VRegister &vn, const VRegister &vm, const VRegister &va)
 
void eor3 (const VRegister &vd, const VRegister &vn, const VRegister &vm, const VRegister &va)
 
void EmitStringData (const char *string)
 
void debug (const char *message, uint32_t code, Instr params=BREAK)
 
void db (uint8_t data)
 
void dd (uint32_t data)
 
void dq (uint64_t data)
 
void dp (uintptr_t data)
 
Instructionpc () const
 
InstructionInstructionAt (ptrdiff_t offset) const
 
ptrdiff_t InstructionOffset (Instruction *instr) const
 
void MaybeEmitOutOfLineConstantPool ()
 
void ForceConstantPoolEmissionWithoutJump ()
 
void ForceConstantPoolEmissionWithJump ()
 
void EmitConstPoolWithJumpIfNeeded (size_t margin=0)
 
intptr_t MaxPCOffsetAfterVeneerPoolIfEmittedNow (size_t margin)
 
bool ShouldEmitVeneer (int max_reachable_pc, size_t margin)
 
bool ShouldEmitVeneers (size_t margin=kVeneerDistanceMargin)
 
void RecordVeneerPool (int location_offset, int size)
 
void EmitVeneers (bool force_emit, bool need_protection, size_t margin=kVeneerDistanceMargin)
 
void EmitVeneersGuard ()
 
void CheckVeneerPool (bool force_emit, bool require_jump, size_t margin=kVeneerDistanceMargin)
 
 Assembler (const AssemblerOptions &, std::unique_ptr< AssemblerBuffer >={})
 
 Assembler (const MaybeAssemblerZone &, const AssemblerOptions &options, std::unique_ptr< AssemblerBuffer > buffer={})
 
void GetCode (LocalIsolate *isolate, CodeDesc *desc, SafepointTableBuilder *safepoint_table_builder, int handler_table_offset)
 
void GetCode (Isolate *isolate, CodeDesc *desc)
 
void GetCode (LocalIsolate *isolate, CodeDesc *desc)
 
void FinalizeJumpOptimizationInfo ()
 
void MaybeEmitOutOfLineConstantPool ()
 
void Align (int m)
 
void DataAlign (int m)
 
void Nop (int bytes=1)
 
void CodeTargetAlign ()
 
void LoopHeaderAlign ()
 
void pushad ()
 
void popad ()
 
void pushfd ()
 
void popfd ()
 
void push (const Immediate &x)
 
void push_imm32 (int32_t imm32)
 
void push (Register src)
 
void push (Operand src)
 
void pop (Register dst)
 
void pop (Operand dst)
 
void leave ()
 
void mov_b (Register dst, Register src)
 
void mov_b (Register dst, Operand src)
 
void mov_b (Register dst, int8_t imm8)
 
void mov_b (Operand dst, int8_t src)
 
void mov_b (Operand dst, const Immediate &src)
 
void mov_b (Operand dst, Register src)
 
void mov_w (Register dst, Operand src)
 
void mov_w (Operand dst, int16_t src)
 
void mov_w (Operand dst, const Immediate &src)
 
void mov_w (Operand dst, Register src)
 
void mov (Register dst, int32_t imm32)
 
void mov (Register dst, const Immediate &x)
 
void mov (Register dst, Handle< HeapObject > handle)
 
void mov (Register dst, Operand src)
 
void mov (Register dst, Register src)
 
void mov (Operand dst, const Immediate &x)
 
void mov (Operand dst, Handle< HeapObject > handle)
 
void mov (Operand dst, Register src)
 
void mov (Operand dst, Address src, RelocInfo::Mode)
 
void movsx_b (Register dst, Register src)
 
void movsx_b (Register dst, Operand src)
 
void movsx_w (Register dst, Register src)
 
void movsx_w (Register dst, Operand src)
 
void movzx_b (Register dst, Register src)
 
void movzx_b (Register dst, Operand src)
 
void movzx_w (Register dst, Register src)
 
void movzx_w (Register dst, Operand src)
 
void movq (XMMRegister dst, Operand src)
 
void movq (Operand dst, XMMRegister src)
 
void cmov (Condition cc, Register dst, Register src)
 
void cmov (Condition cc, Register dst, Operand src)
 
void cld ()
 
void rep_movs ()
 
void rep_stos ()
 
void stos ()
 
void xadd (Operand dst, Register src)
 
void xadd_b (Operand dst, Register src)
 
void xadd_w (Operand dst, Register src)
 
void xchg (Register dst, Register src)
 
void xchg (Register dst, Operand src)
 
void xchg_b (Register reg, Operand op)
 
void xchg_w (Register reg, Operand op)
 
void lock ()
 
void cmpxchg (Operand dst, Register src)
 
void cmpxchg_b (Operand dst, Register src)
 
void cmpxchg_w (Operand dst, Register src)
 
void cmpxchg8b (Operand dst)
 
void mfence ()
 
void lfence ()
 
void pause ()
 
void adc (Register dst, int32_t imm32)
 
void adc (Register dst, Register src)
 
void adc (Register dst, Operand src)
 
void add (Register dst, Register src)
 
void add (Register dst, Operand src)
 
void add (Operand dst, Register src)
 
void add (Register dst, const Immediate &imm)
 
void add (Operand dst, const Immediate &x)
 
void and_ (Register dst, int32_t imm32)
 
void and_ (Register dst, const Immediate &x)
 
void and_ (Register dst, Register src)
 
void and_ (Register dst, Operand src)
 
void and_ (Operand dst, Register src)
 
void and_ (Operand dst, const Immediate &x)
 
void cmpb (Register reg, Immediate imm8)
 
void cmpb (Operand op, Immediate imm8)
 
void cmpb (Register reg, Operand op)
 
void cmpb (Operand op, Register reg)
 
void cmpb (Register dst, Register src)
 
void cmpb_al (Operand op)
 
void cmpw_ax (Operand op)
 
void cmpw (Operand dst, Immediate src)
 
void cmpw (Register dst, Immediate src)
 
void cmpw (Register dst, Operand src)
 
void cmpw (Register dst, Register src)
 
void cmpw (Operand dst, Register src)
 
void cmp (Register reg, int32_t imm32)
 
void cmp (Register reg, Handle< HeapObject > handle)
 
void cmp (Register reg0, Register reg1)
 
void cmp (Register reg, Operand op)
 
void cmp (Register reg, const Immediate &imm)
 
void cmp (Operand op, Register reg)
 
void cmp (Operand op, const Immediate &imm)
 
void cmp (Operand op, Handle< HeapObject > handle)
 
void dec_b (Register dst)
 
void dec_b (Operand dst)
 
void dec (Register dst)
 
void dec (Operand dst)
 
void cdq ()
 
void idiv (Register src)
 
void idiv (Operand src)
 
void div (Register src)
 
void div (Operand src)
 
void imul (Register src)
 
void imul (Register dst, Register src)
 
void imul (Register dst, Operand src)
 
void imul (Register dst, Register src, int32_t imm32)
 
void imul (Register dst, Operand src, int32_t imm32)
 
void inc (Register dst)
 
void inc (Operand dst)
 
void lea (Register dst, Operand src)
 
void lea (Register dst, Register src, Label *lbl)
 
void mul (Register src)
 
void neg (Register dst)
 
void neg (Operand dst)
 
void not_ (Register dst)
 
void not_ (Operand dst)
 
void or_ (Register dst, int32_t imm32)
 
void or_ (Register dst, Register src)
 
void or_ (Register dst, Operand src)
 
void or_ (Operand dst, Register src)
 
void or_ (Register dst, const Immediate &imm)
 
void or_ (Operand dst, const Immediate &x)
 
void rcl (Register dst, uint8_t imm8)
 
void rcr (Register dst, uint8_t imm8)
 
void rol (Register dst, uint8_t imm8)
 
void rol (Operand dst, uint8_t imm8)
 
void rol_cl (Register dst)
 
void rol_cl (Operand dst)
 
void ror (Register dst, uint8_t imm8)
 
void ror (Operand dst, uint8_t imm8)
 
void ror_cl (Register dst)
 
void ror_cl (Operand dst)
 
void sar (Register dst, uint8_t imm8)
 
void sar (Operand dst, uint8_t imm8)
 
void sar_cl (Register dst)
 
void sar_cl (Operand dst)
 
void sbb (Register dst, Register src)
 
void sbb (Register dst, Operand src)
 
void shl (Register dst, uint8_t imm8)
 
void shl (Operand dst, uint8_t imm8)
 
void shl_cl (Register dst)
 
void shl_cl (Operand dst)
 
void shld (Register dst, Register src, uint8_t shift)
 
void shld_cl (Register dst, Register src)
 
void shr (Register dst, uint8_t imm8)
 
void shr (Operand dst, uint8_t imm8)
 
void shr_cl (Register dst)
 
void shr_cl (Operand dst)
 
void shrd (Register dst, Register src, uint8_t shift)
 
void shrd_cl (Register dst, Register src)
 
void shrd_cl (Operand dst, Register src)
 
void sub (Register dst, const Immediate &imm)
 
void sub (Operand dst, const Immediate &x)
 
void sub (Register dst, Register src)
 
void sub (Register dst, Operand src)
 
void sub (Operand dst, Register src)
 
void sub_sp_32 (uint32_t imm)
 
void test (Register reg, const Immediate &imm)
 
void test (Register reg0, Register reg1)
 
void test (Register reg, Operand op)
 
void test (Operand op, const Immediate &imm)
 
void test (Operand op, Register reg)
 
void test_b (Register reg, Operand op)
 
void test_b (Register reg, Immediate imm8)
 
void test_b (Operand op, Immediate imm8)
 
void test_b (Operand op, Register reg)
 
void test_b (Register dst, Register src)
 
void test_w (Register reg, Operand op)
 
void test_w (Register reg, Immediate imm16)
 
void test_w (Operand op, Immediate imm16)
 
void test_w (Operand op, Register reg)
 
void test_w (Register dst, Register src)
 
void xor_ (Register dst, int32_t imm32)
 
void xor_ (Register dst, Register src)
 
void xor_ (Register dst, Operand src)
 
void xor_ (Operand dst, Register src)
 
void xor_ (Register dst, const Immediate &imm)
 
void xor_ (Operand dst, const Immediate &x)
 
void bswap (Register dst)
 
void bt (Operand dst, Register src)
 
void bts (Register dst, Register src)
 
void bts (Operand dst, Register src)
 
void bsr (Register dst, Register src)
 
void bsr (Register dst, Operand src)
 
void bsf (Register dst, Register src)
 
void bsf (Register dst, Operand src)
 
void hlt ()
 
void int3 ()
 
void nop ()
 
void ret (int imm16)
 
void ud2 ()
 
void bind (Label *L)
 
void call (Label *L)
 
void call (Address entry, RelocInfo::Mode rmode)
 
void call (Register reg)
 
void call (Operand adr)
 
void call (Handle< Code > code, RelocInfo::Mode rmode)
 
void wasm_call (Address address, RelocInfo::Mode rmode)
 
void jmp (Label *L, Label::Distance distance=Label::kFar)
 
void jmp (Address entry, RelocInfo::Mode rmode)
 
void jmp (Register reg)
 
void jmp (Operand adr)
 
void jmp (Handle< Code > code, RelocInfo::Mode rmode)
 
void jmp_rel (int offset)
 
void j (Condition cc, Label *L, Label::Distance distance=Label::kFar)
 
void j (Condition cc, uint8_t *entry, RelocInfo::Mode rmode)
 
void j (Condition cc, Handle< Code > code, RelocInfo::Mode rmode=RelocInfo::CODE_TARGET)
 
void fld (int i)
 
void fstp (int i)
 
void fld1 ()
 
void fldz ()
 
void fldpi ()
 
void fldln2 ()
 
void fld_s (Operand adr)
 
void fld_d (Operand adr)
 
void fstp_s (Operand adr)
 
void fst_s (Operand adr)
 
void fstp_d (Operand adr)
 
void fst_d (Operand adr)
 
void fild_s (Operand adr)
 
void fild_d (Operand adr)
 
void fist_s (Operand adr)
 
void fistp_s (Operand adr)
 
void fistp_d (Operand adr)
 
void fisttp_s (Operand adr)
 
void fisttp_d (Operand adr)
 
void fabs ()
 
void fchs ()
 
void fcos ()
 
void fsin ()
 
void fptan ()
 
void fyl2x ()
 
void f2xm1 ()
 
void fscale ()
 
void fninit ()
 
void fadd (int i)
 
void fadd_i (int i)
 
void fsub (int i)
 
void fsub_i (int i)
 
void fmul (int i)
 
void fmul_i (int i)
 
void fdiv (int i)
 
void fdiv_i (int i)
 
void fisub_s (Operand adr)
 
void faddp (int i=1)
 
void fsubp (int i=1)
 
void fsubrp (int i=1)
 
void fmulp (int i=1)
 
void fdivp (int i=1)
 
void fprem ()
 
void fprem1 ()
 
void fxch (int i=1)
 
void fincstp ()
 
void ffree (int i=0)
 
void ftst ()
 
void fucomp (int i)
 
void fucompp ()
 
void fucomi (int i)
 
void fucomip ()
 
void fcompp ()
 
void fnstsw_ax ()
 
void fwait ()
 
void fnclex ()
 
void frndint ()
 
void sahf ()
 
void setcc (Condition cc, Register reg)
 
void cpuid ()
 
void addss (XMMRegister dst, XMMRegister src)
 
void addss (XMMRegister dst, Operand src)
 
void subss (XMMRegister dst, XMMRegister src)
 
void subss (XMMRegister dst, Operand src)
 
void mulss (XMMRegister dst, XMMRegister src)
 
void mulss (XMMRegister dst, Operand src)
 
void divss (XMMRegister dst, XMMRegister src)
 
void divss (XMMRegister dst, Operand src)
 
void sqrtss (XMMRegister dst, XMMRegister src)
 
void sqrtss (XMMRegister dst, Operand src)
 
void ucomiss (XMMRegister dst, XMMRegister src)
 
void ucomiss (XMMRegister dst, Operand src)
 
void movaps (XMMRegister dst, XMMRegister src)
 
void movaps (XMMRegister dst, Operand src)
 
void movups (XMMRegister dst, XMMRegister src)
 
void movups (XMMRegister dst, Operand src)
 
void movups (Operand dst, XMMRegister src)
 
void shufps (XMMRegister dst, XMMRegister src, uint8_t imm8)
 
void shufpd (XMMRegister dst, XMMRegister src, uint8_t imm8)
 
void movhlps (XMMRegister dst, XMMRegister src)
 
void movlhps (XMMRegister dst, XMMRegister src)
 
void movlps (XMMRegister dst, Operand src)
 
void movlps (Operand dst, XMMRegister src)
 
void movhps (XMMRegister dst, Operand src)
 
void movhps (Operand dst, XMMRegister src)
 
void maxss (XMMRegister dst, XMMRegister src)
 
void maxss (XMMRegister dst, Operand src)
 
void minss (XMMRegister dst, XMMRegister src)
 
void minss (XMMRegister dst, Operand src)
 
void haddps (XMMRegister dst, Operand src)
 
void haddps (XMMRegister dst, XMMRegister src)
 
void sqrtpd (XMMRegister dst, Operand src)
 
void sqrtpd (XMMRegister dst, XMMRegister src)
 
void cmpps (XMMRegister dst, Operand src, uint8_t cmp)
 
void cmpps (XMMRegister dst, XMMRegister src, uint8_t cmp)
 
void cmppd (XMMRegister dst, Operand src, uint8_t cmp)
 
void cmppd (XMMRegister dst, XMMRegister src, uint8_t cmp)
 
void cvttss2si (Register dst, Operand src)
 
void cvttss2si (Register dst, XMMRegister src)
 
void cvttsd2si (Register dst, Operand src)
 
void cvttsd2si (Register dst, XMMRegister src)
 
void cvtsd2si (Register dst, XMMRegister src)
 
void cvtsi2ss (XMMRegister dst, Register src)
 
void cvtsi2ss (XMMRegister dst, Operand src)
 
void cvtsi2sd (XMMRegister dst, Register src)
 
void cvtsi2sd (XMMRegister dst, Operand src)
 
void cvtss2sd (XMMRegister dst, Operand src)
 
void cvtss2sd (XMMRegister dst, XMMRegister src)
 
void cvtdq2pd (XMMRegister dst, XMMRegister src)
 
void cvtpd2ps (XMMRegister dst, XMMRegister src)
 
void cvttps2dq (XMMRegister dst, XMMRegister src)
 
void cvttps2dq (XMMRegister dst, Operand src)
 
void cvttpd2dq (XMMRegister dst, XMMRegister src)
 
void ucomisd (XMMRegister dst, XMMRegister src)
 
void ucomisd (XMMRegister dst, Operand src)
 
void roundss (XMMRegister dst, XMMRegister src, RoundingMode mode)
 
void roundsd (XMMRegister dst, XMMRegister src, RoundingMode mode)
 
void movapd (XMMRegister dst, XMMRegister src)
 
void movapd (XMMRegister dst, Operand src)
 
void movupd (XMMRegister dst, Operand src)
 
void movmskpd (Register dst, XMMRegister src)
 
void movmskps (Register dst, XMMRegister src)
 
void pmovmskb (Register dst, XMMRegister src)
 
void cmpltsd (XMMRegister dst, XMMRegister src)
 
void movdqa (XMMRegister dst, Operand src)
 
void movdqa (Operand dst, XMMRegister src)
 
void movdqa (XMMRegister dst, XMMRegister src)
 
void movdqu (XMMRegister dst, Operand src)
 
void movdqu (Operand dst, XMMRegister src)
 
void movdqu (XMMRegister dst, XMMRegister src)
 
void movdq (bool aligned, XMMRegister dst, Operand src)
 
void movd (XMMRegister dst, Register src)
 
void movd (XMMRegister dst, Operand src)
 
void movd (Register dst, XMMRegister src)
 
void movd (Operand dst, XMMRegister src)
 
void movsd (XMMRegister dst, XMMRegister src)
 
void movsd (XMMRegister dst, Operand src)
 
void movsd (Operand dst, XMMRegister src)
 
void movss (XMMRegister dst, Operand src)
 
void movss (Operand dst, XMMRegister src)
 
void movss (XMMRegister dst, XMMRegister src)
 
void extractps (Operand dst, XMMRegister src, uint8_t imm8)
 
void extractps (Register dst, XMMRegister src, uint8_t imm8)
 
void pcmpgtq (XMMRegister dst, XMMRegister src)
 
void psllw (XMMRegister reg, uint8_t shift)
 
void pslld (XMMRegister reg, uint8_t shift)
 
void psrlw (XMMRegister reg, uint8_t shift)
 
void psrld (XMMRegister reg, uint8_t shift)
 
void psraw (XMMRegister reg, uint8_t shift)
 
void psrad (XMMRegister reg, uint8_t shift)
 
void psllq (XMMRegister reg, uint8_t shift)
 
void psrlq (XMMRegister reg, uint8_t shift)
 
void pshufhw (XMMRegister dst, XMMRegister src, uint8_t shuffle)
 
void pshufhw (XMMRegister dst, Operand src, uint8_t shuffle)
 
void pshuflw (XMMRegister dst, XMMRegister src, uint8_t shuffle)
 
void pshuflw (XMMRegister dst, Operand src, uint8_t shuffle)
 
void pshufd (XMMRegister dst, XMMRegister src, uint8_t shuffle)
 
void pshufd (XMMRegister dst, Operand src, uint8_t shuffle)
 
void pblendw (XMMRegister dst, XMMRegister src, uint8_t mask)
 
void pblendw (XMMRegister dst, Operand src, uint8_t mask)
 
void palignr (XMMRegister dst, XMMRegister src, uint8_t mask)
 
void palignr (XMMRegister dst, Operand src, uint8_t mask)
 
void pextrb (Register dst, XMMRegister src, uint8_t offset)
 
void pextrb (Operand dst, XMMRegister src, uint8_t offset)
 
void movddup (XMMRegister dst, Operand src)
 
void movddup (XMMRegister dst, XMMRegister src)
 
void movshdup (XMMRegister dst, XMMRegister src)
 
void pextrw (Register dst, XMMRegister src, uint8_t offset)
 
void pextrw (Operand dst, XMMRegister src, uint8_t offset)
 
void pextrd (Register dst, XMMRegister src, uint8_t offset)
 
void pextrd (Operand dst, XMMRegister src, uint8_t offset)
 
void insertps (XMMRegister dst, XMMRegister src, uint8_t offset)
 
void insertps (XMMRegister dst, Operand src, uint8_t offset)
 
void pinsrb (XMMRegister dst, Register src, uint8_t offset)
 
void pinsrb (XMMRegister dst, Operand src, uint8_t offset)
 
void pinsrw (XMMRegister dst, Register src, uint8_t offset)
 
void pinsrw (XMMRegister dst, Operand src, uint8_t offset)
 
void pinsrd (XMMRegister dst, Register src, uint8_t offset)
 
void pinsrd (XMMRegister dst, Operand src, uint8_t offset)
 
void roundps (XMMRegister dst, XMMRegister src, RoundingMode mode)
 
void roundpd (XMMRegister dst, XMMRegister src, RoundingMode mode)
 
void vaddss (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vaddss (XMMRegister dst, XMMRegister src1, Operand src2)
 
void vsubss (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vsubss (XMMRegister dst, XMMRegister src1, Operand src2)
 
void vmulss (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vmulss (XMMRegister dst, XMMRegister src1, Operand src2)
 
void vdivss (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vdivss (XMMRegister dst, XMMRegister src1, Operand src2)
 
void vmaxss (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vmaxss (XMMRegister dst, XMMRegister src1, Operand src2)
 
void vminss (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vminss (XMMRegister dst, XMMRegister src1, Operand src2)
 
void vsqrtss (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vsqrtss (XMMRegister dst, XMMRegister src1, Operand src2)
 
void vss (uint8_t op, XMMRegister dst, XMMRegister src1, Operand src2)
 
void vhaddps (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vhaddps (XMMRegister dst, XMMRegister src1, Operand src2)
 
void vsqrtpd (XMMRegister dst, XMMRegister src)
 
void vsqrtpd (XMMRegister dst, Operand src)
 
void vmovss (Operand dst, XMMRegister src)
 
void vmovss (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vmovss (XMMRegister dst, Operand src)
 
void vmovsd (Operand dst, XMMRegister src)
 
void vmovsd (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vmovsd (XMMRegister dst, Operand src)
 
void vextractps (Operand dst, XMMRegister src, uint8_t imm8)
 
void vpcmpgtq (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vmovaps (XMMRegister dst, XMMRegister src)
 
void vmovaps (XMMRegister dst, Operand src)
 
void vmovapd (XMMRegister dst, XMMRegister src)
 
void vmovapd (XMMRegister dst, Operand src)
 
void vmovups (Operand dst, XMMRegister src)
 
void vmovups (XMMRegister dst, XMMRegister src)
 
void vmovups (XMMRegister dst, Operand src)
 
void vmovupd (XMMRegister dst, Operand src)
 
void vshufps (XMMRegister dst, XMMRegister src1, XMMRegister src2, uint8_t imm8)
 
void vshufps (XMMRegister dst, XMMRegister src1, Operand src2, uint8_t imm8)
 
void vshufpd (XMMRegister dst, XMMRegister src1, XMMRegister src2, uint8_t imm8)
 
void vshufpd (XMMRegister dst, XMMRegister src1, Operand src2, uint8_t imm8)
 
void vmovhlps (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vmovlhps (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vmovlps (XMMRegister dst, XMMRegister src1, Operand src2)
 
void vmovlps (Operand dst, XMMRegister src)
 
void vmovhps (XMMRegister dst, XMMRegister src1, Operand src2)
 
void vmovhps (Operand dst, XMMRegister src)
 
void vpsllw (XMMRegister dst, XMMRegister src, uint8_t imm8)
 
void vpslld (XMMRegister dst, XMMRegister src, uint8_t imm8)
 
void vpsllq (XMMRegister dst, XMMRegister src, uint8_t imm8)
 
void vpsrlw (XMMRegister dst, XMMRegister src, uint8_t imm8)
 
void vpsrld (XMMRegister dst, XMMRegister src, uint8_t imm8)
 
void vpsraw (XMMRegister dst, XMMRegister src, uint8_t imm8)
 
void vpsrad (XMMRegister dst, XMMRegister src, uint8_t imm8)
 
void vpsrlq (XMMRegister dst, XMMRegister src, uint8_t imm8)
 
void vpshufhw (XMMRegister dst, XMMRegister src, uint8_t shuffle)
 
void vpshufhw (XMMRegister dst, Operand src, uint8_t shuffle)
 
void vpshuflw (XMMRegister dst, XMMRegister src, uint8_t shuffle)
 
void vpshuflw (XMMRegister dst, Operand src, uint8_t shuffle)
 
void vpshufd (XMMRegister dst, XMMRegister src, uint8_t shuffle)
 
void vpshufd (XMMRegister dst, Operand src, uint8_t shuffle)
 
void vblendvps (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister mask)
 
void vblendvpd (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister mask)
 
void vpblendvb (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister mask)
 
void vpblendw (XMMRegister dst, XMMRegister src1, XMMRegister src2, uint8_t mask)
 
void vpblendw (XMMRegister dst, XMMRegister src1, Operand src2, uint8_t mask)
 
void vpalignr (XMMRegister dst, XMMRegister src1, XMMRegister src2, uint8_t mask)
 
void vpalignr (XMMRegister dst, XMMRegister src1, Operand src2, uint8_t mask)
 
void vpextrb (Register dst, XMMRegister src, uint8_t offset)
 
void vpextrb (Operand dst, XMMRegister src, uint8_t offset)
 
void vpextrw (Register dst, XMMRegister src, uint8_t offset)
 
void vpextrw (Operand dst, XMMRegister src, uint8_t offset)
 
void vpextrd (Register dst, XMMRegister src, uint8_t offset)
 
void vpextrd (Operand dst, XMMRegister src, uint8_t offset)
 
void vinsertps (XMMRegister dst, XMMRegister src1, XMMRegister src2, uint8_t offset)
 
void vinsertps (XMMRegister dst, XMMRegister src1, Operand src2, uint8_t offset)
 
void vpinsrb (XMMRegister dst, XMMRegister src1, Register src2, uint8_t offset)
 
void vpinsrb (XMMRegister dst, XMMRegister src1, Operand src2, uint8_t offset)
 
void vpinsrw (XMMRegister dst, XMMRegister src1, Register src2, uint8_t offset)
 
void vpinsrw (XMMRegister dst, XMMRegister src1, Operand src2, uint8_t offset)
 
void vpinsrd (XMMRegister dst, XMMRegister src1, Register src2, uint8_t offset)
 
void vpinsrd (XMMRegister dst, XMMRegister src1, Operand src2, uint8_t offset)
 
void vroundsd (XMMRegister dst, XMMRegister src1, XMMRegister src2, RoundingMode mode)
 
void vroundss (XMMRegister dst, XMMRegister src1, XMMRegister src2, RoundingMode mode)
 
void vroundps (XMMRegister dst, XMMRegister src, RoundingMode mode)
 
void vroundpd (XMMRegister dst, XMMRegister src, RoundingMode mode)
 
void vcvtdq2pd (XMMRegister dst, XMMRegister src)
 
void vcvtpd2ps (XMMRegister dst, XMMRegister src)
 
void vcvttps2dq (XMMRegister dst, XMMRegister src)
 
void vcvttps2dq (XMMRegister dst, Operand src)
 
void vcvttpd2dq (XMMRegister dst, XMMRegister src)
 
void vcvttsd2si (Register dst, XMMRegister src)
 
void vcvttsd2si (Register dst, Operand src)
 
void vcvtss2sd (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vcvtss2sd (XMMRegister dst, XMMRegister src1, Operand src2)
 
void vcvttss2si (Register dst, XMMRegister src)
 
void vcvttss2si (Register dst, Operand src)
 
void vmovddup (XMMRegister dst, Operand src)
 
void vmovddup (XMMRegister dst, XMMRegister src)
 
void vmovshdup (XMMRegister dst, XMMRegister src)
 
void vbroadcastss (XMMRegister dst, XMMRegister src)
 
void vbroadcastss (XMMRegister dst, Operand src)
 
void vmovdqa (XMMRegister dst, Operand src)
 
void vmovdqa (XMMRegister dst, XMMRegister src)
 
void vmovdqu (XMMRegister dst, Operand src)
 
void vmovdqu (Operand dst, XMMRegister src)
 
void vmovd (XMMRegister dst, Register src)
 
void vmovd (XMMRegister dst, Operand src)
 
void vmovd (Register dst, XMMRegister src)
 
void vmovd (Operand dst, XMMRegister src)
 
void vmovmskpd (Register dst, XMMRegister src)
 
void vmovmskps (Register dst, XMMRegister src)
 
void vpmovmskb (Register dst, XMMRegister src)
 
void vucomisd (XMMRegister dst, XMMRegister src)
 
void vucomisd (XMMRegister dst, Operand src)
 
void vucomiss (XMMRegister dst, XMMRegister src)
 
void vucomiss (XMMRegister dst, Operand src)
 
void andn (Register dst, Register src1, Register src2)
 
void andn (Register dst, Register src1, Operand src2)
 
void bextr (Register dst, Register src1, Register src2)
 
void bextr (Register dst, Operand src1, Register src2)
 
void blsi (Register dst, Register src)
 
void blsi (Register dst, Operand src)
 
void blsmsk (Register dst, Register src)
 
void blsmsk (Register dst, Operand src)
 
void blsr (Register dst, Register src)
 
void blsr (Register dst, Operand src)
 
void tzcnt (Register dst, Register src)
 
void tzcnt (Register dst, Operand src)
 
void lzcnt (Register dst, Register src)
 
void lzcnt (Register dst, Operand src)
 
void popcnt (Register dst, Register src)
 
void popcnt (Register dst, Operand src)
 
void bzhi (Register dst, Register src1, Register src2)
 
void bzhi (Register dst, Operand src1, Register src2)
 
void mulx (Register dst1, Register dst2, Register src)
 
void mulx (Register dst1, Register dst2, Operand src)
 
void pdep (Register dst, Register src1, Register src2)
 
void pdep (Register dst, Register src1, Operand src2)
 
void pext (Register dst, Register src1, Register src2)
 
void pext (Register dst, Register src1, Operand src2)
 
void sarx (Register dst, Register src1, Register src2)
 
void sarx (Register dst, Operand src1, Register src2)
 
void shlx (Register dst, Register src1, Register src2)
 
void shlx (Register dst, Operand src1, Register src2)
 
void shrx (Register dst, Register src1, Register src2)
 
void shrx (Register dst, Operand src1, Register src2)
 
void rorx (Register dst, Register src, uint8_t imm8)
 
void rorx (Register dst, Operand src, uint8_t imm8)
 
void ps (uint8_t op, XMMRegister dst, Operand src)
 
void pd (uint8_t op, XMMRegister dst, Operand src)
 
void vps (uint8_t op, XMMRegister dst, XMMRegister src1, Operand src2)
 
void vpd (uint8_t op, XMMRegister dst, XMMRegister src1, Operand src2)
 
void vcmpps (XMMRegister dst, XMMRegister src1, Operand src2, uint8_t cmp)
 
void vcmppd (XMMRegister dst, XMMRegister src1, Operand src2, uint8_t cmp)
 
void prefetch (Operand src, int level)
 
int SizeOfCodeGeneratedSince (Label *label)
 
void RecordDeoptReason (DeoptimizeReason reason, uint32_t node_id, SourcePosition position, int id)
 
void db (uint8_t data)
 
void dd (uint32_t data)
 
void dq (uint64_t data)
 
void dp (uintptr_t data)
 
void dd (Label *label)
 
bool buffer_overflow () const
 
int available_space () const
 
int relocation_writer_size ()
 
uint8_t byte_at (int pos)
 
void set_byte_at (int pos, uint8_t value)
 
 Assembler (const AssemblerOptions &, std::unique_ptr< AssemblerBuffer >={})
 
 Assembler (const MaybeAssemblerZone &, const AssemblerOptions &options, std::unique_ptr< AssemblerBuffer > buffer={})
 
virtual ~Assembler ()
 
void GetCode (LocalIsolate *isolate, CodeDesc *desc, SafepointTableBuilderBase *safepoint_table_builder, int handler_table_offset)
 
void GetCode (Isolate *isolate, CodeDesc *desc)
 
void GetCode (LocalIsolate *isolate, CodeDesc *desc)
 
void MaybeEmitOutOfLineConstantPool ()
 
int pc_offset_for_safepoint ()
 
void bind (Label *L)
 
bool is_near_c (Label *L)
 
bool is_near (Label *L, OffsetSize bits)
 
bool is_near_a (Label *L)
 
int BranchOffset (Instr instr)
 
int32_t branch_offset_helper (Label *L, OffsetSize bits)
 
int32_t branch_offset (Label *L)
 
int32_t branch_offset21 (Label *L)
 
int32_t branch_offset26 (Label *L)
 
int32_t shifted_branch_offset (Label *L)
 
int32_t shifted_branch_offset21 (Label *L)
 
int32_t shifted_branch_offset26 (Label *L)
 
uint64_t jump_address (Label *L)
 
uint64_t jump_offset (Label *L)
 
uint64_t branch_long_offset (Label *L)
 
void label_at_put (Label *L, int at_offset)
 
Handle< Codecode_target_object_handle_at (Address pc, Address constant_pool)
 
Handle< HeapObjectcompressed_embedded_object_handle_at (Address pc, Address constant_pool)
 
Handle< HeapObjectembedded_object_handle_at (Address pc, Address constant_pool)
 
RegListGetScratchRegisterList ()
 
DoubleRegListGetScratchFPRegisterList ()
 
void Align (int m)
 
void DataAlign (int m)
 
void CodeTargetAlign ()
 
void LoopHeaderAlign ()
 
void nop (unsigned int type=0)
 
void b (int32_t offset)
 
void b (Label *L)
 
void bl (int32_t offset)
 
void bl (Label *L)
 
void beq (Register rj, Register rd, int32_t offset)
 
void beq (Register rj, Register rd, Label *L)
 
void bne (Register rj, Register rd, int32_t offset)
 
void bne (Register rj, Register rd, Label *L)
 
void blt (Register rj, Register rd, int32_t offset)
 
void blt (Register rj, Register rd, Label *L)
 
void bge (Register rj, Register rd, int32_t offset)
 
void bge (Register rj, Register rd, Label *L)
 
void bltu (Register rj, Register rd, int32_t offset)
 
void bltu (Register rj, Register rd, Label *L)
 
void bgeu (Register rj, Register rd, int32_t offset)
 
void bgeu (Register rj, Register rd, Label *L)
 
void beqz (Register rj, int32_t offset)
 
void beqz (Register rj, Label *L)
 
void bnez (Register rj, int32_t offset)
 
void bnez (Register rj, Label *L)
 
void jirl (Register rd, Register rj, int32_t offset)
 
void bceqz (CFRegister cj, int32_t si21)
 
void bceqz (CFRegister cj, Label *L)
 
void bcnez (CFRegister cj, int32_t si21)
 
void bcnez (CFRegister cj, Label *L)
 
void add_w (Register rd, Register rj, Register rk)
 
void add_d (Register rd, Register rj, Register rk)
 
void sub_w (Register rd, Register rj, Register rk)
 
void sub_d (Register rd, Register rj, Register rk)
 
void addi_w (Register rd, Register rj, int32_t si12)
 
void addi_d (Register rd, Register rj, int32_t si12)
 
void addu16i_d (Register rd, Register rj, int32_t si16)
 
void alsl_w (Register rd, Register rj, Register rk, int32_t sa2)
 
void alsl_wu (Register rd, Register rj, Register rk, int32_t sa2)
 
void alsl_d (Register rd, Register rj, Register rk, int32_t sa2)
 
void lu12i_w (Register rd, int32_t si20)
 
void lu32i_d (Register rd, int32_t si20)
 
void lu52i_d (Register rd, Register rj, int32_t si12)
 
void slt (Register rd, Register rj, Register rk)
 
void sltu (Register rd, Register rj, Register rk)
 
void slti (Register rd, Register rj, int32_t si12)
 
void sltui (Register rd, Register rj, int32_t si12)
 
void pcaddi (Register rd, int32_t si20)
 
void pcaddu12i (Register rd, int32_t si20)
 
void pcaddu18i (Register rd, int32_t si20)
 
void pcalau12i (Register rd, int32_t si20)
 
void and_ (Register rd, Register rj, Register rk)
 
void or_ (Register rd, Register rj, Register rk)
 
void xor_ (Register rd, Register rj, Register rk)
 
void nor (Register rd, Register rj, Register rk)
 
void andn (Register rd, Register rj, Register rk)
 
void orn (Register rd, Register rj, Register rk)
 
void andi (Register rd, Register rj, int32_t ui12)
 
void ori (Register rd, Register rj, int32_t ui12)
 
void xori (Register rd, Register rj, int32_t ui12)
 
void mul_w (Register rd, Register rj, Register rk)
 
void mulh_w (Register rd, Register rj, Register rk)
 
void mulh_wu (Register rd, Register rj, Register rk)
 
void mul_d (Register rd, Register rj, Register rk)
 
void mulh_d (Register rd, Register rj, Register rk)
 
void mulh_du (Register rd, Register rj, Register rk)
 
void mulw_d_w (Register rd, Register rj, Register rk)
 
void mulw_d_wu (Register rd, Register rj, Register rk)
 
void div_w (Register rd, Register rj, Register rk)
 
void mod_w (Register rd, Register rj, Register rk)
 
void div_wu (Register rd, Register rj, Register rk)
 
void mod_wu (Register rd, Register rj, Register rk)
 
void div_d (Register rd, Register rj, Register rk)
 
void mod_d (Register rd, Register rj, Register rk)
 
void div_du (Register rd, Register rj, Register rk)
 
void mod_du (Register rd, Register rj, Register rk)
 
void sll_w (Register rd, Register rj, Register rk)
 
void srl_w (Register rd, Register rj, Register rk)
 
void sra_w (Register rd, Register rj, Register rk)
 
void rotr_w (Register rd, Register rj, Register rk)
 
void slli_w (Register rd, Register rj, int32_t ui5)
 
void srli_w (Register rd, Register rj, int32_t ui5)
 
void srai_w (Register rd, Register rj, int32_t ui5)
 
void rotri_w (Register rd, Register rj, int32_t ui5)
 
void sll_d (Register rd, Register rj, Register rk)
 
void srl_d (Register rd, Register rj, Register rk)
 
void sra_d (Register rd, Register rj, Register rk)
 
void rotr_d (Register rd, Register rj, Register rk)
 
void slli_d (Register rd, Register rj, int32_t ui6)
 
void srli_d (Register rd, Register rj, int32_t ui6)
 
void srai_d (Register rd, Register rj, int32_t ui6)
 
void rotri_d (Register rd, Register rj, int32_t ui6)
 
void ext_w_b (Register rd, Register rj)
 
void ext_w_h (Register rd, Register rj)
 
void clo_w (Register rd, Register rj)
 
void clz_w (Register rd, Register rj)
 
void cto_w (Register rd, Register rj)
 
void ctz_w (Register rd, Register rj)
 
void clo_d (Register rd, Register rj)
 
void clz_d (Register rd, Register rj)
 
void cto_d (Register rd, Register rj)
 
void ctz_d (Register rd, Register rj)
 
void bytepick_w (Register rd, Register rj, Register rk, int32_t sa2)
 
void bytepick_d (Register rd, Register rj, Register rk, int32_t sa3)
 
void revb_2h (Register rd, Register rj)
 
void revb_4h (Register rd, Register rj)
 
void revb_2w (Register rd, Register rj)
 
void revb_d (Register rd, Register rj)
 
void revh_2w (Register rd, Register rj)
 
void revh_d (Register rd, Register rj)
 
void bitrev_4b (Register rd, Register rj)
 
void bitrev_8b (Register rd, Register rj)
 
void bitrev_w (Register rd, Register rj)
 
void bitrev_d (Register rd, Register rj)
 
void bstrins_w (Register rd, Register rj, int32_t msbw, int32_t lsbw)
 
void bstrins_d (Register rd, Register rj, int32_t msbd, int32_t lsbd)
 
void bstrpick_w (Register rd, Register rj, int32_t msbw, int32_t lsbw)
 
void bstrpick_d (Register rd, Register rj, int32_t msbd, int32_t lsbd)
 
void maskeqz (Register rd, Register rj, Register rk)
 
void masknez (Register rd, Register rj, Register rk)
 
void ld_b (Register rd, Register rj, int32_t si12)
 
void ld_h (Register rd, Register rj, int32_t si12)
 
void ld_w (Register rd, Register rj, int32_t si12)
 
void ld_d (Register rd, Register rj, int32_t si12)
 
void ld_bu (Register rd, Register rj, int32_t si12)
 
void ld_hu (Register rd, Register rj, int32_t si12)
 
void ld_wu (Register rd, Register rj, int32_t si12)
 
void st_b (Register rd, Register rj, int32_t si12)
 
void st_h (Register rd, Register rj, int32_t si12)
 
void st_w (Register rd, Register rj, int32_t si12)
 
void st_d (Register rd, Register rj, int32_t si12)
 
void ldx_b (Register rd, Register rj, Register rk)
 
void ldx_h (Register rd, Register rj, Register rk)
 
void ldx_w (Register rd, Register rj, Register rk)
 
void ldx_d (Register rd, Register rj, Register rk)
 
void ldx_bu (Register rd, Register rj, Register rk)
 
void ldx_hu (Register rd, Register rj, Register rk)
 
void ldx_wu (Register rd, Register rj, Register rk)
 
void stx_b (Register rd, Register rj, Register rk)
 
void stx_h (Register rd, Register rj, Register rk)
 
void stx_w (Register rd, Register rj, Register rk)
 
void stx_d (Register rd, Register rj, Register rk)
 
void ldptr_w (Register rd, Register rj, int32_t si14)
 
void ldptr_d (Register rd, Register rj, int32_t si14)
 
void stptr_w (Register rd, Register rj, int32_t si14)
 
void stptr_d (Register rd, Register rj, int32_t si14)
 
void amswap_w (Register rd, Register rk, Register rj)
 
void amswap_d (Register rd, Register rk, Register rj)
 
void amadd_w (Register rd, Register rk, Register rj)
 
void amadd_d (Register rd, Register rk, Register rj)
 
void amand_w (Register rd, Register rk, Register rj)
 
void amand_d (Register rd, Register rk, Register rj)
 
void amor_w (Register rd, Register rk, Register rj)
 
void amor_d (Register rd, Register rk, Register rj)
 
void amxor_w (Register rd, Register rk, Register rj)
 
void amxor_d (Register rd, Register rk, Register rj)
 
void ammax_w (Register rd, Register rk, Register rj)
 
void ammax_d (Register rd, Register rk, Register rj)
 
void ammin_w (Register rd, Register rk, Register rj)
 
void ammin_d (Register rd, Register rk, Register rj)
 
void ammax_wu (Register rd, Register rk, Register rj)
 
void ammax_du (Register rd, Register rk, Register rj)
 
void ammin_wu (Register rd, Register rk, Register rj)
 
void ammin_du (Register rd, Register rk, Register rj)
 
void amswap_db_w (Register rd, Register rk, Register rj)
 
void amswap_db_d (Register rd, Register rk, Register rj)
 
void amadd_db_w (Register rd, Register rk, Register rj)
 
void amadd_db_d (Register rd, Register rk, Register rj)
 
void amand_db_w (Register rd, Register rk, Register rj)
 
void amand_db_d (Register rd, Register rk, Register rj)
 
void amor_db_w (Register rd, Register rk, Register rj)
 
void amor_db_d (Register rd, Register rk, Register rj)
 
void amxor_db_w (Register rd, Register rk, Register rj)
 
void amxor_db_d (Register rd, Register rk, Register rj)
 
void ammax_db_w (Register rd, Register rk, Register rj)
 
void ammax_db_d (Register rd, Register rk, Register rj)
 
void ammin_db_w (Register rd, Register rk, Register rj)
 
void ammin_db_d (Register rd, Register rk, Register rj)
 
void ammax_db_wu (Register rd, Register rk, Register rj)
 
void ammax_db_du (Register rd, Register rk, Register rj)
 
void ammin_db_wu (Register rd, Register rk, Register rj)
 
void ammin_db_du (Register rd, Register rk, Register rj)
 
void ll_w (Register rd, Register rj, int32_t si14)
 
void ll_d (Register rd, Register rj, int32_t si14)
 
void sc_w (Register rd, Register rj, int32_t si14)
 
void sc_d (Register rd, Register rj, int32_t si14)
 
void dbar (int32_t hint)
 
void ibar (int32_t hint)
 
void break_ (uint32_t code, bool break_as_stop=false)
 
void stop (uint32_t code=kMaxStopCode)
 
void fadd_s (FPURegister fd, FPURegister fj, FPURegister fk)
 
void fadd_d (FPURegister fd, FPURegister fj, FPURegister fk)
 
void fsub_s (FPURegister fd, FPURegister fj, FPURegister fk)
 
void fsub_d (FPURegister fd, FPURegister fj, FPURegister fk)
 
void fmul_s (FPURegister fd, FPURegister fj, FPURegister fk)
 
void fmul_d (FPURegister fd, FPURegister fj, FPURegister fk)
 
void fdiv_s (FPURegister fd, FPURegister fj, FPURegister fk)
 
void fdiv_d (FPURegister fd, FPURegister fj, FPURegister fk)
 
void fmadd_s (FPURegister fd, FPURegister fj, FPURegister fk, FPURegister fa)
 
void fmadd_d (FPURegister fd, FPURegister fj, FPURegister fk, FPURegister fa)
 
void fmsub_s (FPURegister fd, FPURegister fj, FPURegister fk, FPURegister fa)
 
void fmsub_d (FPURegister fd, FPURegister fj, FPURegister fk, FPURegister fa)
 
void fnmadd_s (FPURegister fd, FPURegister fj, FPURegister fk, FPURegister fa)
 
void fnmadd_d (FPURegister fd, FPURegister fj, FPURegister fk, FPURegister fa)
 
void fnmsub_s (FPURegister fd, FPURegister fj, FPURegister fk, FPURegister fa)
 
void fnmsub_d (FPURegister fd, FPURegister fj, FPURegister fk, FPURegister fa)
 
void fmax_s (FPURegister fd, FPURegister fj, FPURegister fk)
 
void fmax_d (FPURegister fd, FPURegister fj, FPURegister fk)
 
void fmin_s (FPURegister fd, FPURegister fj, FPURegister fk)
 
void fmin_d (FPURegister fd, FPURegister fj, FPURegister fk)
 
void fmaxa_s (FPURegister fd, FPURegister fj, FPURegister fk)
 
void fmaxa_d (FPURegister fd, FPURegister fj, FPURegister fk)
 
void fmina_s (FPURegister fd, FPURegister fj, FPURegister fk)
 
void fmina_d (FPURegister fd, FPURegister fj, FPURegister fk)
 
void fabs_s (FPURegister fd, FPURegister fj)
 
void fabs_d (FPURegister fd, FPURegister fj)
 
void fneg_s (FPURegister fd, FPURegister fj)
 
void fneg_d (FPURegister fd, FPURegister fj)
 
void fsqrt_s (FPURegister fd, FPURegister fj)
 
void fsqrt_d (FPURegister fd, FPURegister fj)
 
void frecip_s (FPURegister fd, FPURegister fj)
 
void frecip_d (FPURegister fd, FPURegister fj)
 
void frsqrt_s (FPURegister fd, FPURegister fj)
 
void frsqrt_d (FPURegister fd, FPURegister fj)
 
void fscaleb_s (FPURegister fd, FPURegister fj, FPURegister fk)
 
void fscaleb_d (FPURegister fd, FPURegister fj, FPURegister fk)
 
void flogb_s (FPURegister fd, FPURegister fj)
 
void flogb_d (FPURegister fd, FPURegister fj)
 
void fcopysign_s (FPURegister fd, FPURegister fj, FPURegister fk)
 
void fcopysign_d (FPURegister fd, FPURegister fj, FPURegister fk)
 
void fclass_s (FPURegister fd, FPURegister fj)
 
void fclass_d (FPURegister fd, FPURegister fj)
 
void fcmp_cond_s (FPUCondition cc, FPURegister fj, FPURegister fk, CFRegister cd)
 
void fcmp_cond_d (FPUCondition cc, FPURegister fj, FPURegister fk, CFRegister cd)
 
void fcvt_s_d (FPURegister fd, FPURegister fj)
 
void fcvt_d_s (FPURegister fd, FPURegister fj)
 
void ffint_s_w (FPURegister fd, FPURegister fj)
 
void ffint_s_l (FPURegister fd, FPURegister fj)
 
void ffint_d_w (FPURegister fd, FPURegister fj)
 
void ffint_d_l (FPURegister fd, FPURegister fj)
 
void ftint_w_s (FPURegister fd, FPURegister fj)
 
void ftint_w_d (FPURegister fd, FPURegister fj)
 
void ftint_l_s (FPURegister fd, FPURegister fj)
 
void ftint_l_d (FPURegister fd, FPURegister fj)
 
void ftintrm_w_s (FPURegister fd, FPURegister fj)
 
void ftintrm_w_d (FPURegister fd, FPURegister fj)
 
void ftintrm_l_s (FPURegister fd, FPURegister fj)
 
void ftintrm_l_d (FPURegister fd, FPURegister fj)
 
void ftintrp_w_s (FPURegister fd, FPURegister fj)
 
void ftintrp_w_d (FPURegister fd, FPURegister fj)
 
void ftintrp_l_s (FPURegister fd, FPURegister fj)
 
void ftintrp_l_d (FPURegister fd, FPURegister fj)
 
void ftintrz_w_s (FPURegister fd, FPURegister fj)
 
void ftintrz_w_d (FPURegister fd, FPURegister fj)
 
void ftintrz_l_s (FPURegister fd, FPURegister fj)
 
void ftintrz_l_d (FPURegister fd, FPURegister fj)
 
void ftintrne_w_s (FPURegister fd, FPURegister fj)
 
void ftintrne_w_d (FPURegister fd, FPURegister fj)
 
void ftintrne_l_s (FPURegister fd, FPURegister fj)
 
void ftintrne_l_d (FPURegister fd, FPURegister fj)
 
void frint_s (FPURegister fd, FPURegister fj)
 
void frint_d (FPURegister fd, FPURegister fj)
 
void fmov_s (FPURegister fd, FPURegister fj)
 
void fmov_d (FPURegister fd, FPURegister fj)
 
void fsel (CFRegister ca, FPURegister fd, FPURegister fj, FPURegister fk)
 
void movgr2fr_w (FPURegister fd, Register rj)
 
void movgr2fr_d (FPURegister fd, Register rj)
 
void movgr2frh_w (FPURegister fd, Register rj)
 
void movfr2gr_s (Register rd, FPURegister fj)
 
void movfr2gr_d (Register rd, FPURegister fj)
 
void movfrh2gr_s (Register rd, FPURegister fj)
 
void movgr2fcsr (Register rj, FPUControlRegister fcsr=FCSR0)
 
void movfcsr2gr (Register rd, FPUControlRegister fcsr=FCSR0)
 
void movfr2cf (CFRegister cd, FPURegister fj)
 
void movcf2fr (FPURegister fd, CFRegister cj)
 
void movgr2cf (CFRegister cd, Register rj)
 
void movcf2gr (Register rd, CFRegister cj)
 
void fld_s (FPURegister fd, Register rj, int32_t si12)
 
void fld_d (FPURegister fd, Register rj, int32_t si12)
 
void fst_s (FPURegister fd, Register rj, int32_t si12)
 
void fst_d (FPURegister fd, Register rj, int32_t si12)
 
void fldx_s (FPURegister fd, Register rj, Register rk)
 
void fldx_d (FPURegister fd, Register rj, Register rk)
 
void fstx_s (FPURegister fd, Register rj, Register rk)
 
void fstx_d (FPURegister fd, Register rj, Register rk)
 
int SizeOfCodeGeneratedSince (Label *label)
 
int InstructionsGeneratedSince (Label *label)
 
void RecordDeoptReason (DeoptimizeReason reason, uint32_t node_id, SourcePosition position, int id)
 
void db (uint8_t data)
 
void dd (uint32_t data)
 
void dq (uint64_t data)
 
void dp (uintptr_t data)
 
void dd (Label *label)
 
void BlockTrampolinePoolFor (int instructions)
 
bool overflow () const
 
intptr_t available_space () const
 
Instr instr_at (int pos)
 
void instr_at_put (int pos, Instr instr, WritableJitAllocation *jit_allocation=nullptr)
 
void CheckTrampolinePool ()
 
V8_INLINE Handle< Coderelative_code_target_object_handle_at (Address pc_) const
 
int UnboundLabelsCount ()
 
 Assembler (const AssemblerOptions &, std::unique_ptr< AssemblerBuffer >={})
 
 Assembler (const MaybeAssemblerZone &, const AssemblerOptions &options, std::unique_ptr< AssemblerBuffer > buffer={})
 
virtual ~Assembler ()
 
void GetCode (LocalIsolate *isolate, CodeDesc *desc, SafepointTableBuilderBase *safepoint_table_builder, int handler_table_offset)
 
void GetCode (Isolate *isolate, CodeDesc *desc)
 
void GetCode (LocalIsolate *isolate, CodeDesc *desc)
 
void MaybeEmitOutOfLineConstantPool ()
 
int pc_offset_for_safepoint ()
 
void bind (Label *L)
 
bool is_near (Label *L)
 
bool is_near (Label *L, OffsetSize bits)
 
bool is_near_branch (Label *L)
 
bool is_near_pre_r6 (Label *L)
 
bool is_near_r6 (Label *L)
 
int BranchOffset (Instr instr)
 
int32_t branch_offset_helper (Label *L, OffsetSize bits)
 
int32_t branch_offset (Label *L)
 
int32_t branch_offset21 (Label *L)
 
int32_t branch_offset26 (Label *L)
 
int32_t shifted_branch_offset (Label *L)
 
int32_t shifted_branch_offset21 (Label *L)
 
int32_t shifted_branch_offset26 (Label *L)
 
uint64_t jump_address (Label *L)
 
uint64_t jump_offset (Label *L)
 
uint64_t branch_long_offset (Label *L)
 
void label_at_put (Label *L, int at_offset)
 
RegListGetScratchRegisterList ()
 
void Align (int m)
 
void DataAlign (int m)
 
void CodeTargetAlign ()
 
void LoopHeaderAlign ()
 
void nop (unsigned int type=0)
 
void b (int16_t offset)
 
void b (Label *L)
 
void bal (int16_t offset)
 
void bal (Label *L)
 
void bc (int32_t offset)
 
void bc (Label *L)
 
void balc (int32_t offset)
 
void balc (Label *L)
 
void beq (Register rs, Register rt, int16_t offset)
 
void beq (Register rs, Register rt, Label *L)
 
void bgez (Register rs, int16_t offset)
 
void bgezc (Register rt, int16_t offset)
 
void bgezc (Register rt, Label *L)
 
void bgeuc (Register rs, Register rt, int16_t offset)
 
void bgeuc (Register rs, Register rt, Label *L)
 
void bgec (Register rs, Register rt, int16_t offset)
 
void bgec (Register rs, Register rt, Label *L)
 
void bgezal (Register rs, int16_t offset)
 
void bgezalc (Register rt, int16_t offset)
 
void bgezalc (Register rt, Label *L)
 
void bgezall (Register rs, int16_t offset)
 
void bgezall (Register rs, Label *L)
 
void bgtz (Register rs, int16_t offset)
 
void bgtzc (Register rt, int16_t offset)
 
void bgtzc (Register rt, Label *L)
 
void blez (Register rs, int16_t offset)
 
void blezc (Register rt, int16_t offset)
 
void blezc (Register rt, Label *L)
 
void bltz (Register rs, int16_t offset)
 
void bltzc (Register rt, int16_t offset)
 
void bltzc (Register rt, Label *L)
 
void bltuc (Register rs, Register rt, int16_t offset)
 
void bltuc (Register rs, Register rt, Label *L)
 
void bltc (Register rs, Register rt, int16_t offset)
 
void bltc (Register rs, Register rt, Label *L)
 
void bltzal (Register rs, int16_t offset)
 
void nal ()
 
void blezalc (Register rt, int16_t offset)
 
void blezalc (Register rt, Label *L)
 
void bltzalc (Register rt, int16_t offset)
 
void bltzalc (Register rt, Label *L)
 
void bgtzalc (Register rt, int16_t offset)
 
void bgtzalc (Register rt, Label *L)
 
void beqzalc (Register rt, int16_t offset)
 
void beqzalc (Register rt, Label *L)
 
void beqc (Register rs, Register rt, int16_t offset)
 
void beqc (Register rs, Register rt, Label *L)
 
void beqzc (Register rs, int32_t offset)
 
void beqzc (Register rs, Label *L)
 
void bnezalc (Register rt, int16_t offset)
 
void bnezalc (Register rt, Label *L)
 
void bnec (Register rs, Register rt, int16_t offset)
 
void bnec (Register rs, Register rt, Label *L)
 
void bnezc (Register rt, int32_t offset)
 
void bnezc (Register rt, Label *L)
 
void bne (Register rs, Register rt, int16_t offset)
 
void bne (Register rs, Register rt, Label *L)
 
void bovc (Register rs, Register rt, int16_t offset)
 
void bovc (Register rs, Register rt, Label *L)
 
void bnvc (Register rs, Register rt, int16_t offset)
 
void bnvc (Register rs, Register rt, Label *L)
 
void jalr (Register rs, Register rd=ra)
 
void jr (Register target)
 
void jic (Register rt, int16_t offset)
 
void jialc (Register rt, int16_t offset)
 
void j (int64_t target)
 
void jal (int64_t target)
 
void j (Label *target)
 
void jal (Label *target)
 
void addu (Register rd, Register rs, Register rt)
 
void subu (Register rd, Register rs, Register rt)
 
void div (Register rs, Register rt)
 
void divu (Register rs, Register rt)
 
void ddiv (Register rs, Register rt)
 
void ddivu (Register rs, Register rt)
 
void div (Register rd, Register rs, Register rt)
 
void divu (Register rd, Register rs, Register rt)
 
void ddiv (Register rd, Register rs, Register rt)
 
void ddivu (Register rd, Register rs, Register rt)
 
void mod (Register rd, Register rs, Register rt)
 
void modu (Register rd, Register rs, Register rt)
 
void dmod (Register rd, Register rs, Register rt)
 
void dmodu (Register rd, Register rs, Register rt)
 
void mul (Register rd, Register rs, Register rt)
 
void muh (Register rd, Register rs, Register rt)
 
void mulu (Register rd, Register rs, Register rt)
 
void muhu (Register rd, Register rs, Register rt)
 
void mult (Register rs, Register rt)
 
void multu (Register rs, Register rt)
 
void dmul (Register rd, Register rs, Register rt)
 
void dmuh (Register rd, Register rs, Register rt)
 
void dmulu (Register rd, Register rs, Register rt)
 
void dmuhu (Register rd, Register rs, Register rt)
 
void daddu (Register rd, Register rs, Register rt)
 
void dsubu (Register rd, Register rs, Register rt)
 
void dmult (Register rs, Register rt)
 
void dmultu (Register rs, Register rt)
 
void addiu (Register rd, Register rs, int32_t j)
 
void daddiu (Register rd, Register rs, int32_t j)
 
void and_ (Register rd, Register rs, Register rt)
 
void or_ (Register rd, Register rs, Register rt)
 
void xor_ (Register rd, Register rs, Register rt)
 
void nor (Register rd, Register rs, Register rt)
 
void andi (Register rd, Register rs, int32_t j)
 
void ori (Register rd, Register rs, int32_t j)
 
void xori (Register rd, Register rs, int32_t j)
 
void lui (Register rd, int32_t j)
 
void aui (Register rt, Register rs, int32_t j)
 
void daui (Register rt, Register rs, int32_t j)
 
void dahi (Register rs, int32_t j)
 
void dati (Register rs, int32_t j)
 
void sll (Register rd, Register rt, uint16_t sa, bool coming_from_nop=false)
 
void sllv (Register rd, Register rt, Register rs)
 
void srl (Register rd, Register rt, uint16_t sa)
 
void srlv (Register rd, Register rt, Register rs)
 
void sra (Register rt, Register rd, uint16_t sa)
 
void srav (Register rt, Register rd, Register rs)
 
void rotr (Register rd, Register rt, uint16_t sa)
 
void rotrv (Register rd, Register rt, Register rs)
 
void dsll (Register rd, Register rt, uint16_t sa)
 
void dsllv (Register rd, Register rt, Register rs)
 
void dsrl (Register rd, Register rt, uint16_t sa)
 
void dsrlv (Register rd, Register rt, Register rs)
 
void drotr (Register rd, Register rt, uint16_t sa)
 
void drotr32 (Register rd, Register rt, uint16_t sa)
 
void drotrv (Register rd, Register rt, Register rs)
 
void dsra (Register rt, Register rd, uint16_t sa)
 
void dsrav (Register rd, Register rt, Register rs)
 
void dsll32 (Register rt, Register rd, uint16_t sa)
 
void dsrl32 (Register rt, Register rd, uint16_t sa)
 
void dsra32 (Register rt, Register rd, uint16_t sa)
 
void lb (Register rd, const MemOperand &rs)
 
void lbu (Register rd, const MemOperand &rs)
 
void lh (Register rd, const MemOperand &rs)
 
void lhu (Register rd, const MemOperand &rs)
 
void lw (Register rd, const MemOperand &rs)
 
void lwu (Register rd, const MemOperand &rs)
 
void lwl (Register rd, const MemOperand &rs)
 
void lwr (Register rd, const MemOperand &rs)
 
void sb (Register rd, const MemOperand &rs)
 
void sh (Register rd, const MemOperand &rs)
 
void sw (Register rd, const MemOperand &rs)
 
void swl (Register rd, const MemOperand &rs)
 
void swr (Register rd, const MemOperand &rs)
 
void ldl (Register rd, const MemOperand &rs)
 
void ldr (Register rd, const MemOperand &rs)
 
void sdl (Register rd, const MemOperand &rs)
 
void sdr (Register rd, const MemOperand &rs)
 
void ld (Register rd, const MemOperand &rs)
 
void sd (Register rd, const MemOperand &rs)
 
void ll (Register rd, const MemOperand &rs)
 
void sc (Register rd, const MemOperand &rs)
 
void lld (Register rd, const MemOperand &rs)
 
void scd (Register rd, const MemOperand &rs)
 
void addiupc (Register rs, int32_t imm19)
 
void lwpc (Register rs, int32_t offset19)
 
void lwupc (Register rs, int32_t offset19)
 
void ldpc (Register rs, int32_t offset18)
 
void auipc (Register rs, int16_t imm16)
 
void aluipc (Register rs, int16_t imm16)
 
void pref (int32_t hint, const MemOperand &rs)
 
void break_ (uint32_t code, bool break_as_stop=false)
 
void stop (uint32_t code=kMaxStopCode)
 
void tge (Register rs, Register rt, uint16_t code)
 
void tgeu (Register rs, Register rt, uint16_t code)
 
void tlt (Register rs, Register rt, uint16_t code)
 
void tltu (Register rs, Register rt, uint16_t code)
 
void teq (Register rs, Register rt, uint16_t code)
 
void tne (Register rs, Register rt, uint16_t code)
 
void sync ()
 
void mfhi (Register rd)
 
void mflo (Register rd)
 
void slt (Register rd, Register rs, Register rt)
 
void sltu (Register rd, Register rs, Register rt)
 
void slti (Register rd, Register rs, int32_t j)
 
void sltiu (Register rd, Register rs, int32_t j)
 
void movz (Register rd, Register rs, Register rt)
 
void movn (Register rd, Register rs, Register rt)
 
void movt (Register rd, Register rs, uint16_t cc=0)
 
void movf (Register rd, Register rs, uint16_t cc=0)
 
void sel (SecondaryField fmt, FPURegister fd, FPURegister fs, FPURegister ft)
 
void sel_s (FPURegister fd, FPURegister fs, FPURegister ft)
 
void sel_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void seleqz (Register rd, Register rs, Register rt)
 
void seleqz (SecondaryField fmt, FPURegister fd, FPURegister fs, FPURegister ft)
 
void selnez (Register rs, Register rt, Register rd)
 
void selnez (SecondaryField fmt, FPURegister fd, FPURegister fs, FPURegister ft)
 
void seleqz_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void seleqz_s (FPURegister fd, FPURegister fs, FPURegister ft)
 
void selnez_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void selnez_s (FPURegister fd, FPURegister fs, FPURegister ft)
 
void movz_s (FPURegister fd, FPURegister fs, Register rt)
 
void movz_d (FPURegister fd, FPURegister fs, Register rt)
 
void movt_s (FPURegister fd, FPURegister fs, uint16_t cc=0)
 
void movt_d (FPURegister fd, FPURegister fs, uint16_t cc=0)
 
void movf_s (FPURegister fd, FPURegister fs, uint16_t cc=0)
 
void movf_d (FPURegister fd, FPURegister fs, uint16_t cc=0)
 
void movn_s (FPURegister fd, FPURegister fs, Register rt)
 
void movn_d (FPURegister fd, FPURegister fs, Register rt)
 
void clz (Register rd, Register rs)
 
void dclz (Register rd, Register rs)
 
void ins_ (Register rt, Register rs, uint16_t pos, uint16_t size)
 
void ext_ (Register rt, Register rs, uint16_t pos, uint16_t size)
 
void dext_ (Register rt, Register rs, uint16_t pos, uint16_t size)
 
void dextm_ (Register rt, Register rs, uint16_t pos, uint16_t size)
 
void dextu_ (Register rt, Register rs, uint16_t pos, uint16_t size)
 
void dins_ (Register rt, Register rs, uint16_t pos, uint16_t size)
 
void dinsm_ (Register rt, Register rs, uint16_t pos, uint16_t size)
 
void dinsu_ (Register rt, Register rs, uint16_t pos, uint16_t size)
 
void bitswap (Register rd, Register rt)
 
void dbitswap (Register rd, Register rt)
 
void align (Register rd, Register rs, Register rt, uint8_t bp)
 
void dalign (Register rd, Register rs, Register rt, uint8_t bp)
 
void wsbh (Register rd, Register rt)
 
void dsbh (Register rd, Register rt)
 
void dshd (Register rd, Register rt)
 
void seh (Register rd, Register rt)
 
void seb (Register rd, Register rt)
 
void lwc1 (FPURegister fd, const MemOperand &src)
 
void ldc1 (FPURegister fd, const MemOperand &src)
 
void swc1 (FPURegister fs, const MemOperand &dst)
 
void sdc1 (FPURegister fs, const MemOperand &dst)
 
void mtc1 (Register rt, FPURegister fs)
 
void mthc1 (Register rt, FPURegister fs)
 
void dmtc1 (Register rt, FPURegister fs)
 
void mfc1 (Register rt, FPURegister fs)
 
void mfhc1 (Register rt, FPURegister fs)
 
void dmfc1 (Register rt, FPURegister fs)
 
void ctc1 (Register rt, FPUControlRegister fs)
 
void cfc1 (Register rt, FPUControlRegister fs)
 
void add_s (FPURegister fd, FPURegister fs, FPURegister ft)
 
void add_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void sub_s (FPURegister fd, FPURegister fs, FPURegister ft)
 
void sub_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void mul_s (FPURegister fd, FPURegister fs, FPURegister ft)
 
void mul_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void madd_s (FPURegister fd, FPURegister fr, FPURegister fs, FPURegister ft)
 
void madd_d (FPURegister fd, FPURegister fr, FPURegister fs, FPURegister ft)
 
void msub_s (FPURegister fd, FPURegister fr, FPURegister fs, FPURegister ft)
 
void msub_d (FPURegister fd, FPURegister fr, FPURegister fs, FPURegister ft)
 
void maddf_s (FPURegister fd, FPURegister fs, FPURegister ft)
 
void maddf_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void msubf_s (FPURegister fd, FPURegister fs, FPURegister ft)
 
void msubf_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void div_s (FPURegister fd, FPURegister fs, FPURegister ft)
 
void div_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void abs_s (FPURegister fd, FPURegister fs)
 
void abs_d (FPURegister fd, FPURegister fs)
 
void mov_d (FPURegister fd, FPURegister fs)
 
void mov_s (FPURegister fd, FPURegister fs)
 
void neg_s (FPURegister fd, FPURegister fs)
 
void neg_d (FPURegister fd, FPURegister fs)
 
void sqrt_s (FPURegister fd, FPURegister fs)
 
void sqrt_d (FPURegister fd, FPURegister fs)
 
void rsqrt_s (FPURegister fd, FPURegister fs)
 
void rsqrt_d (FPURegister fd, FPURegister fs)
 
void recip_d (FPURegister fd, FPURegister fs)
 
void recip_s (FPURegister fd, FPURegister fs)
 
void cvt_w_s (FPURegister fd, FPURegister fs)
 
void cvt_w_d (FPURegister fd, FPURegister fs)
 
void trunc_w_s (FPURegister fd, FPURegister fs)
 
void trunc_w_d (FPURegister fd, FPURegister fs)
 
void round_w_s (FPURegister fd, FPURegister fs)
 
void round_w_d (FPURegister fd, FPURegister fs)
 
void floor_w_s (FPURegister fd, FPURegister fs)
 
void floor_w_d (FPURegister fd, FPURegister fs)
 
void ceil_w_s (FPURegister fd, FPURegister fs)
 
void ceil_w_d (FPURegister fd, FPURegister fs)
 
void rint_s (FPURegister fd, FPURegister fs)
 
void rint_d (FPURegister fd, FPURegister fs)
 
void rint (SecondaryField fmt, FPURegister fd, FPURegister fs)
 
void cvt_l_s (FPURegister fd, FPURegister fs)
 
void cvt_l_d (FPURegister fd, FPURegister fs)
 
void trunc_l_s (FPURegister fd, FPURegister fs)
 
void trunc_l_d (FPURegister fd, FPURegister fs)
 
void round_l_s (FPURegister fd, FPURegister fs)
 
void round_l_d (FPURegister fd, FPURegister fs)
 
void floor_l_s (FPURegister fd, FPURegister fs)
 
void floor_l_d (FPURegister fd, FPURegister fs)
 
void ceil_l_s (FPURegister fd, FPURegister fs)
 
void ceil_l_d (FPURegister fd, FPURegister fs)
 
void class_s (FPURegister fd, FPURegister fs)
 
void class_d (FPURegister fd, FPURegister fs)
 
void min (SecondaryField fmt, FPURegister fd, FPURegister fs, FPURegister ft)
 
void mina (SecondaryField fmt, FPURegister fd, FPURegister fs, FPURegister ft)
 
void max (SecondaryField fmt, FPURegister fd, FPURegister fs, FPURegister ft)
 
void maxa (SecondaryField fmt, FPURegister fd, FPURegister fs, FPURegister ft)
 
void min_s (FPURegister fd, FPURegister fs, FPURegister ft)
 
void min_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void max_s (FPURegister fd, FPURegister fs, FPURegister ft)
 
void max_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void mina_s (FPURegister fd, FPURegister fs, FPURegister ft)
 
void mina_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void maxa_s (FPURegister fd, FPURegister fs, FPURegister ft)
 
void maxa_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void cvt_s_w (FPURegister fd, FPURegister fs)
 
void cvt_s_l (FPURegister fd, FPURegister fs)
 
void cvt_s_d (FPURegister fd, FPURegister fs)
 
void cvt_d_w (FPURegister fd, FPURegister fs)
 
void cvt_d_l (FPURegister fd, FPURegister fs)
 
void cvt_d_s (FPURegister fd, FPURegister fs)
 
void cmp (FPUCondition cond, SecondaryField fmt, FPURegister fd, FPURegister ft, FPURegister fs)
 
void cmp_s (FPUCondition cond, FPURegister fd, FPURegister fs, FPURegister ft)
 
void cmp_d (FPUCondition cond, FPURegister fd, FPURegister fs, FPURegister ft)
 
void bc1eqz (int16_t offset, FPURegister ft)
 
void bc1eqz (Label *L, FPURegister ft)
 
void bc1nez (int16_t offset, FPURegister ft)
 
void bc1nez (Label *L, FPURegister ft)
 
void c (FPUCondition cond, SecondaryField fmt, FPURegister ft, FPURegister fs, uint16_t cc=0)
 
void c_s (FPUCondition cond, FPURegister ft, FPURegister fs, uint16_t cc=0)
 
void c_d (FPUCondition cond, FPURegister ft, FPURegister fs, uint16_t cc=0)
 
void bc1f (int16_t offset, uint16_t cc=0)
 
void bc1f (Label *L, uint16_t cc=0)
 
void bc1t (int16_t offset, uint16_t cc=0)
 
void bc1t (Label *L, uint16_t cc=0)
 
void fcmp (FPURegister src1, const double src2, FPUCondition cond)
 
void bz_v (MSARegister wt, int16_t offset)
 
void bz_v (MSARegister wt, Label *L)
 
void bz_b (MSARegister wt, int16_t offset)
 
void bz_b (MSARegister wt, Label *L)
 
void bz_h (MSARegister wt, int16_t offset)
 
void bz_h (MSARegister wt, Label *L)
 
void bz_w (MSARegister wt, int16_t offset)
 
void bz_w (MSARegister wt, Label *L)
 
void bz_d (MSARegister wt, int16_t offset)
 
void bz_d (MSARegister wt, Label *L)
 
void bnz_v (MSARegister wt, int16_t offset)
 
void bnz_v (MSARegister wt, Label *L)
 
void bnz_b (MSARegister wt, int16_t offset)
 
void bnz_b (MSARegister wt, Label *L)
 
void bnz_h (MSARegister wt, int16_t offset)
 
void bnz_h (MSARegister wt, Label *L)
 
void bnz_w (MSARegister wt, int16_t offset)
 
void bnz_w (MSARegister wt, Label *L)
 
void bnz_d (MSARegister wt, int16_t offset)
 
void bnz_d (MSARegister wt, Label *L)
 
void ld_b (MSARegister wd, const MemOperand &rs)
 
void ld_h (MSARegister wd, const MemOperand &rs)
 
void ld_w (MSARegister wd, const MemOperand &rs)
 
void ld_d (MSARegister wd, const MemOperand &rs)
 
void st_b (MSARegister wd, const MemOperand &rs)
 
void st_h (MSARegister wd, const MemOperand &rs)
 
void st_w (MSARegister wd, const MemOperand &rs)
 
void st_d (MSARegister wd, const MemOperand &rs)
 
void ldi_b (MSARegister wd, int32_t imm10)
 
void ldi_h (MSARegister wd, int32_t imm10)
 
void ldi_w (MSARegister wd, int32_t imm10)
 
void ldi_d (MSARegister wd, int32_t imm10)
 
void addvi_b (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void addvi_h (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void addvi_w (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void addvi_d (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void subvi_b (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void subvi_h (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void subvi_w (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void subvi_d (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void maxi_s_b (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void maxi_s_h (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void maxi_s_w (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void maxi_s_d (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void maxi_u_b (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void maxi_u_h (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void maxi_u_w (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void maxi_u_d (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void mini_s_b (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void mini_s_h (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void mini_s_w (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void mini_s_d (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void mini_u_b (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void mini_u_h (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void mini_u_w (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void mini_u_d (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void ceqi_b (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void ceqi_h (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void ceqi_w (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void ceqi_d (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void clti_s_b (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void clti_s_h (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void clti_s_w (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void clti_s_d (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void clti_u_b (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void clti_u_h (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void clti_u_w (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void clti_u_d (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void clei_s_b (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void clei_s_h (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void clei_s_w (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void clei_s_d (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void clei_u_b (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void clei_u_h (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void clei_u_w (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void clei_u_d (MSARegister wd, MSARegister ws, uint32_t imm5)
 
void andi_b (MSARegister wd, MSARegister ws, uint32_t imm8)
 
void ori_b (MSARegister wd, MSARegister ws, uint32_t imm8)
 
void nori_b (MSARegister wd, MSARegister ws, uint32_t imm8)
 
void xori_b (MSARegister wd, MSARegister ws, uint32_t imm8)
 
void bmnzi_b (MSARegister wd, MSARegister ws, uint32_t imm8)
 
void bmzi_b (MSARegister wd, MSARegister ws, uint32_t imm8)
 
void bseli_b (MSARegister wd, MSARegister ws, uint32_t imm8)
 
void shf_b (MSARegister wd, MSARegister ws, uint32_t imm8)
 
void shf_h (MSARegister wd, MSARegister ws, uint32_t imm8)
 
void shf_w (MSARegister wd, MSARegister ws, uint32_t imm8)
 
void and_v (MSARegister wd, MSARegister ws, MSARegister wt)
 
void or_v (MSARegister wd, MSARegister ws, MSARegister wt)
 
void nor_v (MSARegister wd, MSARegister ws, MSARegister wt)
 
void xor_v (MSARegister wd, MSARegister ws, MSARegister wt)
 
void bmnz_v (MSARegister wd, MSARegister ws, MSARegister wt)
 
void bmz_v (MSARegister wd, MSARegister ws, MSARegister wt)
 
void bsel_v (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fill_b (MSARegister wd, Register rs)
 
void fill_h (MSARegister wd, Register rs)
 
void fill_w (MSARegister wd, Register rs)
 
void fill_d (MSARegister wd, Register rs)
 
void pcnt_b (MSARegister wd, MSARegister ws)
 
void pcnt_h (MSARegister wd, MSARegister ws)
 
void pcnt_w (MSARegister wd, MSARegister ws)
 
void pcnt_d (MSARegister wd, MSARegister ws)
 
void nloc_b (MSARegister wd, MSARegister ws)
 
void nloc_h (MSARegister wd, MSARegister ws)
 
void nloc_w (MSARegister wd, MSARegister ws)
 
void nloc_d (MSARegister wd, MSARegister ws)
 
void nlzc_b (MSARegister wd, MSARegister ws)
 
void nlzc_h (MSARegister wd, MSARegister ws)
 
void nlzc_w (MSARegister wd, MSARegister ws)
 
void nlzc_d (MSARegister wd, MSARegister ws)
 
void fclass_w (MSARegister wd, MSARegister ws)
 
void fclass_d (MSARegister wd, MSARegister ws)
 
void ftrunc_s_w (MSARegister wd, MSARegister ws)
 
void ftrunc_s_d (MSARegister wd, MSARegister ws)
 
void ftrunc_u_w (MSARegister wd, MSARegister ws)
 
void ftrunc_u_d (MSARegister wd, MSARegister ws)
 
void fsqrt_w (MSARegister wd, MSARegister ws)
 
void fsqrt_d (MSARegister wd, MSARegister ws)
 
void frsqrt_w (MSARegister wd, MSARegister ws)
 
void frsqrt_d (MSARegister wd, MSARegister ws)
 
void frcp_w (MSARegister wd, MSARegister ws)
 
void frcp_d (MSARegister wd, MSARegister ws)
 
void frint_w (MSARegister wd, MSARegister ws)
 
void frint_d (MSARegister wd, MSARegister ws)
 
void flog2_w (MSARegister wd, MSARegister ws)
 
void flog2_d (MSARegister wd, MSARegister ws)
 
void fexupl_w (MSARegister wd, MSARegister ws)
 
void fexupl_d (MSARegister wd, MSARegister ws)
 
void fexupr_w (MSARegister wd, MSARegister ws)
 
void fexupr_d (MSARegister wd, MSARegister ws)
 
void ffql_w (MSARegister wd, MSARegister ws)
 
void ffql_d (MSARegister wd, MSARegister ws)
 
void ffqr_w (MSARegister wd, MSARegister ws)
 
void ffqr_d (MSARegister wd, MSARegister ws)
 
void ftint_s_w (MSARegister wd, MSARegister ws)
 
void ftint_s_d (MSARegister wd, MSARegister ws)
 
void ftint_u_w (MSARegister wd, MSARegister ws)
 
void ftint_u_d (MSARegister wd, MSARegister ws)
 
void ffint_s_w (MSARegister wd, MSARegister ws)
 
void ffint_s_d (MSARegister wd, MSARegister ws)
 
void ffint_u_w (MSARegister wd, MSARegister ws)
 
void ffint_u_d (MSARegister wd, MSARegister ws)
 
void sll_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void sll_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void sll_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void sll_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void sra_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void sra_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void sra_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void sra_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void srl_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void srl_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void srl_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void srl_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void bclr_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void bclr_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void bclr_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void bclr_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void bset_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void bset_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void bset_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void bset_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void bneg_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void bneg_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void bneg_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void bneg_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void binsl_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void binsl_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void binsl_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void binsl_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void binsr_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void binsr_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void binsr_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void binsr_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void addv_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void addv_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void addv_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void addv_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subv_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subv_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subv_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subv_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void max_s_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void max_s_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void max_s_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void max_s_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void max_u_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void max_u_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void max_u_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void max_u_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void min_s_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void min_s_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void min_s_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void min_s_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void min_u_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void min_u_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void min_u_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void min_u_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void max_a_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void max_a_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void max_a_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void max_a_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void min_a_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void min_a_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void min_a_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void min_a_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ceq_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ceq_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ceq_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ceq_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void clt_s_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void clt_s_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void clt_s_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void clt_s_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void clt_u_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void clt_u_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void clt_u_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void clt_u_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void cle_s_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void cle_s_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void cle_s_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void cle_s_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void cle_u_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void cle_u_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void cle_u_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void cle_u_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void add_a_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void add_a_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void add_a_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void add_a_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void adds_a_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void adds_a_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void adds_a_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void adds_a_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void adds_s_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void adds_s_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void adds_s_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void adds_s_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void adds_u_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void adds_u_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void adds_u_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void adds_u_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ave_s_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ave_s_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ave_s_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ave_s_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ave_u_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ave_u_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ave_u_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ave_u_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void aver_s_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void aver_s_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void aver_s_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void aver_s_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void aver_u_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void aver_u_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void aver_u_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void aver_u_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subs_s_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subs_s_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subs_s_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subs_s_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subs_u_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subs_u_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subs_u_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subs_u_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subsus_u_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subsus_u_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subsus_u_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subsus_u_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subsus_s_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subsus_s_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subsus_s_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subsus_s_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subsuu_u_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subsuu_u_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subsuu_u_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subsuu_u_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subsuu_s_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subsuu_s_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subsuu_s_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void subsuu_s_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void asub_s_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void asub_s_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void asub_s_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void asub_s_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void asub_u_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void asub_u_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void asub_u_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void asub_u_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void mulv_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void mulv_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void mulv_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void mulv_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void maddv_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void maddv_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void maddv_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void maddv_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void msubv_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void msubv_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void msubv_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void msubv_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void div_s_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void div_s_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void div_s_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void div_s_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void div_u_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void div_u_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void div_u_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void div_u_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void mod_s_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void mod_s_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void mod_s_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void mod_s_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void mod_u_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void mod_u_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void mod_u_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void mod_u_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dotp_s_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dotp_s_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dotp_s_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dotp_s_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dotp_u_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dotp_u_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dotp_u_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dotp_u_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dpadd_s_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dpadd_s_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dpadd_s_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dpadd_s_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dpadd_u_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dpadd_u_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dpadd_u_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dpadd_u_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dpsub_s_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dpsub_s_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dpsub_s_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dpsub_s_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dpsub_u_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dpsub_u_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dpsub_u_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void dpsub_u_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void sld_b (MSARegister wd, MSARegister ws, Register rt)
 
void sld_h (MSARegister wd, MSARegister ws, Register rt)
 
void sld_w (MSARegister wd, MSARegister ws, Register rt)
 
void sld_d (MSARegister wd, MSARegister ws, Register rt)
 
void splat_b (MSARegister wd, MSARegister ws, Register rt)
 
void splat_h (MSARegister wd, MSARegister ws, Register rt)
 
void splat_w (MSARegister wd, MSARegister ws, Register rt)
 
void splat_d (MSARegister wd, MSARegister ws, Register rt)
 
void pckev_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void pckev_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void pckev_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void pckev_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void pckod_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void pckod_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void pckod_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void pckod_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ilvl_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ilvl_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ilvl_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ilvl_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ilvr_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ilvr_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ilvr_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ilvr_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ilvev_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ilvev_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ilvev_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ilvev_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ilvod_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ilvod_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ilvod_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ilvod_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void vshf_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void vshf_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void vshf_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void vshf_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void srar_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void srar_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void srar_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void srar_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void srlr_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void srlr_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void srlr_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void srlr_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void hadd_s_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void hadd_s_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void hadd_s_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void hadd_s_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void hadd_u_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void hadd_u_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void hadd_u_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void hadd_u_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void hsub_s_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void hsub_s_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void hsub_s_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void hsub_s_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void hsub_u_b (MSARegister wd, MSARegister ws, MSARegister wt)
 
void hsub_u_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void hsub_u_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void hsub_u_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fcaf_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fcaf_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fcun_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fcun_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fceq_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fceq_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fcueq_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fcueq_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fclt_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fclt_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fcult_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fcult_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fcle_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fcle_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fcule_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fcule_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsaf_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsaf_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsun_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsun_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fseq_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fseq_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsueq_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsueq_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fslt_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fslt_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsult_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsult_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsle_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsle_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsule_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsule_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fadd_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fadd_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsub_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsub_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fmul_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fmul_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fdiv_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fdiv_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fmadd_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fmadd_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fmsub_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fmsub_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fexp2_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fexp2_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fexdo_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fexdo_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ftq_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void ftq_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fmin_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fmin_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fmin_a_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fmin_a_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fmax_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fmax_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fmax_a_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fmax_a_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fcor_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fcor_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fcune_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fcune_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fcne_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fcne_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void mul_q_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void mul_q_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void madd_q_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void madd_q_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void msub_q_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void msub_q_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsor_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsor_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsune_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsune_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsne_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void fsne_d (MSARegister wd, MSARegister ws, MSARegister wt)
 
void mulr_q_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void mulr_q_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void maddr_q_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void maddr_q_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void msubr_q_h (MSARegister wd, MSARegister ws, MSARegister wt)
 
void msubr_q_w (MSARegister wd, MSARegister ws, MSARegister wt)
 
void sldi_b (MSARegister wd, MSARegister ws, uint32_t n)
 
void sldi_h (MSARegister wd, MSARegister ws, uint32_t n)
 
void sldi_w (MSARegister wd, MSARegister ws, uint32_t n)
 
void sldi_d (MSARegister wd, MSARegister ws, uint32_t n)
 
void splati_b (MSARegister wd, MSARegister ws, uint32_t n)
 
void splati_h (MSARegister wd, MSARegister ws, uint32_t n)
 
void splati_w (MSARegister wd, MSARegister ws, uint32_t n)
 
void splati_d (MSARegister wd, MSARegister ws, uint32_t n)
 
void copy_s_b (Register rd, MSARegister ws, uint32_t n)
 
void copy_s_h (Register rd, MSARegister ws, uint32_t n)
 
void copy_s_w (Register rd, MSARegister ws, uint32_t n)
 
void copy_s_d (Register rd, MSARegister ws, uint32_t n)
 
void copy_u_b (Register rd, MSARegister ws, uint32_t n)
 
void copy_u_h (Register rd, MSARegister ws, uint32_t n)
 
void copy_u_w (Register rd, MSARegister ws, uint32_t n)
 
void insert_b (MSARegister wd, uint32_t n, Register rs)
 
void insert_h (MSARegister wd, uint32_t n, Register rs)
 
void insert_w (MSARegister wd, uint32_t n, Register rs)
 
void insert_d (MSARegister wd, uint32_t n, Register rs)
 
void insve_b (MSARegister wd, uint32_t n, MSARegister ws)
 
void insve_h (MSARegister wd, uint32_t n, MSARegister ws)
 
void insve_w (MSARegister wd, uint32_t n, MSARegister ws)
 
void insve_d (MSARegister wd, uint32_t n, MSARegister ws)
 
void move_v (MSARegister wd, MSARegister ws)
 
void ctcmsa (MSAControlRegister cd, Register rs)
 
void cfcmsa (Register rd, MSAControlRegister cs)
 
void slli_b (MSARegister wd, MSARegister ws, uint32_t m)
 
void slli_h (MSARegister wd, MSARegister ws, uint32_t m)
 
void slli_w (MSARegister wd, MSARegister ws, uint32_t m)
 
void slli_d (MSARegister wd, MSARegister ws, uint32_t m)
 
void srai_b (MSARegister wd, MSARegister ws, uint32_t m)
 
void srai_h (MSARegister wd, MSARegister ws, uint32_t m)
 
void srai_w (MSARegister wd, MSARegister ws, uint32_t m)
 
void srai_d (MSARegister wd, MSARegister ws, uint32_t m)
 
void srli_b (MSARegister wd, MSARegister ws, uint32_t m)
 
void srli_h (MSARegister wd, MSARegister ws, uint32_t m)
 
void srli_w (MSARegister wd, MSARegister ws, uint32_t m)
 
void srli_d (MSARegister wd, MSARegister ws, uint32_t m)
 
void bclri_b (MSARegister wd, MSARegister ws, uint32_t m)
 
void bclri_h (MSARegister wd, MSARegister ws, uint32_t m)
 
void bclri_w (MSARegister wd, MSARegister ws, uint32_t m)
 
void bclri_d (MSARegister wd, MSARegister ws, uint32_t m)
 
void bseti_b (MSARegister wd, MSARegister ws, uint32_t m)
 
void bseti_h (MSARegister wd, MSARegister ws, uint32_t m)
 
void bseti_w (MSARegister wd, MSARegister ws, uint32_t m)
 
void bseti_d (MSARegister wd, MSARegister ws, uint32_t m)
 
void bnegi_b (MSARegister wd, MSARegister ws, uint32_t m)
 
void bnegi_h (MSARegister wd, MSARegister ws, uint32_t m)
 
void bnegi_w (MSARegister wd, MSARegister ws, uint32_t m)
 
void bnegi_d (MSARegister wd, MSARegister ws, uint32_t m)
 
void binsli_b (MSARegister wd, MSARegister ws, uint32_t m)
 
void binsli_h (MSARegister wd, MSARegister ws, uint32_t m)
 
void binsli_w (MSARegister wd, MSARegister ws, uint32_t m)
 
void binsli_d (MSARegister wd, MSARegister ws, uint32_t m)
 
void binsri_b (MSARegister wd, MSARegister ws, uint32_t m)
 
void binsri_h (MSARegister wd, MSARegister ws, uint32_t m)
 
void binsri_w (MSARegister wd, MSARegister ws, uint32_t m)
 
void binsri_d (MSARegister wd, MSARegister ws, uint32_t m)
 
void sat_s_b (MSARegister wd, MSARegister ws, uint32_t m)
 
void sat_s_h (MSARegister wd, MSARegister ws, uint32_t m)
 
void sat_s_w (MSARegister wd, MSARegister ws, uint32_t m)
 
void sat_s_d (MSARegister wd, MSARegister ws, uint32_t m)
 
void sat_u_b (MSARegister wd, MSARegister ws, uint32_t m)
 
void sat_u_h (MSARegister wd, MSARegister ws, uint32_t m)
 
void sat_u_w (MSARegister wd, MSARegister ws, uint32_t m)
 
void sat_u_d (MSARegister wd, MSARegister ws, uint32_t m)
 
void srari_b (MSARegister wd, MSARegister ws, uint32_t m)
 
void srari_h (MSARegister wd, MSARegister ws, uint32_t m)
 
void srari_w (MSARegister wd, MSARegister ws, uint32_t m)
 
void srari_d (MSARegister wd, MSARegister ws, uint32_t m)
 
void srlri_b (MSARegister wd, MSARegister ws, uint32_t m)
 
void srlri_h (MSARegister wd, MSARegister ws, uint32_t m)
 
void srlri_w (MSARegister wd, MSARegister ws, uint32_t m)
 
void srlri_d (MSARegister wd, MSARegister ws, uint32_t m)
 
int SizeOfCodeGeneratedSince (Label *label)
 
int InstructionsGeneratedSince (Label *label)
 
void RecordDeoptReason (DeoptimizeReason reason, uint32_t node_id, SourcePosition position, int id)
 
void db (uint8_t data)
 
void dd (uint32_t data)
 
void dq (uint64_t data)
 
void dp (uintptr_t data)
 
void dd (Label *label)
 
void BlockTrampolinePoolFor (int instructions)
 
bool overflow () const
 
intptr_t available_space () const
 
Instr instr_at (int pos)
 
void instr_at_put (int pos, Instr instr, WritableJitAllocation *jit_allocation=nullptr)
 
void CheckTrampolinePool ()
 
bool IsPrevInstrCompactBranch ()
 
int UnboundLabelsCount ()
 
bool is_trampoline_emitted () const
 
 Assembler (const AssemblerOptions &, std::unique_ptr< AssemblerBuffer >={})
 
 Assembler (const MaybeAssemblerZone &, const AssemblerOptions &options, std::unique_ptr< AssemblerBuffer > buffer={})
 
virtual ~Assembler ()
 
void GetCode (LocalIsolate *isolate, CodeDesc *desc, SafepointTableBuilderBase *safepoint_table_builder, int handler_table_offset)
 
void GetCode (Isolate *isolate, CodeDesc *desc)
 
void GetCode (LocalIsolate *isolate, CodeDesc *desc)
 
void MaybeEmitOutOfLineConstantPool ()
 
void CheckTrampolinePoolQuick (int extra_space=0)
 
void bind (Label *L)
 
int link (Label *L)
 
bool is_near (Label *L, Condition cond)
 
int branch_offset (Label *L)
 
V8_INLINE void PatchConstantPoolAccessInstruction (int pc_offset, int offset, ConstantPoolEntry::Access access, ConstantPoolEntry::Type type)
 
Handle< Objectcode_target_object_handle_at (Address pc, Address constant_pool)
 
Handle< HeapObjectcompressed_embedded_object_handle_at (Address pc, Address constant_pool)
 
void x_form (Instr instr, int f1, int f2, int f3, int rc)
 
void x_form (Instr instr, Register rs, Register ra, Register rb, RCBit rc)
 
void x_form (Instr instr, Register ra, Register rs, Register rb, EHBit eh=SetEH)
 
void x_form (Instr instr, CRegister cr, Register s1, Register s2, RCBit rc)
 
void notx (Register dst, Register src, RCBit rc=LeaveRC)
 
void lwax (Register rt, const MemOperand &src)
 
void extsw (Register rs, Register ra, RCBit rc=LeaveRC)
 
template<typename T >
void xx2_form (Instr instr, T t, T b)
 
void xx3_form (Instr instr, Simd128Register t, Simd128Register a, Simd128Register b, int rc)
 
template<typename T >
void xx3_form (Instr instr, T t, T a, T b)
 
void vx_form (Instr instr, Simd128Register rt, Simd128Register rb, const Operand &imm)
 
void vx_form (Instr instr, Simd128Register rt, Simd128Register ra, Simd128Register rb)
 
void vx_form (Instr instr, Simd128Register rt, Simd128Register rb)
 
void vx_form (Instr instr, Simd128Register rt, const Operand &imm)
 
void vx_form (Instr instr, Register rt, Simd128Register rb)
 
void vx_form (Instr instr, Simd128Register rt, Register rb, const Operand &imm)
 
 PPC_VX_OPCODE_D_FORM_LIST (DECLARE_PPC_VX_INSTRUCTIONS_C_FORM) inline void va_form(Instr instr
 
void vc_form (Instr instr, Simd128Register rt, Simd128Register ra, Simd128Register rb, int rc)
 
void prefix_form (Instr instr, const Operand &imm, int pr)
 
RegListGetScratchRegisterList ()
 
void Align (int m)
 
void DataAlign (int m)
 
void CodeTargetAlign ()
 
void LoopHeaderAlign ()
 
void bclr (BOfield bo, int condition_bit, LKBit lk)
 
void blr ()
 
void bc (int branch_offset, BOfield bo, int condition_bit, LKBit lk=LeaveLK)
 
void b (int branch_offset, LKBit lk)
 
void bcctr (BOfield bo, int condition_bit, LKBit lk)
 
void bctr ()
 
void bctrl ()
 
void b (Label *L, LKBit lk=LeaveLK)
 
CRegister cmpi_optimization (CRegister cr)
 
void bc_short (Condition cond, Label *L, CRegister cr=cr0, LKBit lk=LeaveLK)
 
void bclr (Condition cond, CRegister cr=cr0, LKBit lk=LeaveLK)
 
void isel (Register rt, Register ra, Register rb, int cb)
 
void isel (Condition cond, Register rt, Register ra, Register rb, CRegister cr=cr0)
 
void b (Condition cond, Label *L, CRegister cr=cr0, LKBit lk=LeaveLK)
 
void bne (Label *L, CRegister cr=cr0, LKBit lk=LeaveLK)
 
void beq (Label *L, CRegister cr=cr0, LKBit lk=LeaveLK)
 
void blt (Label *L, CRegister cr=cr0, LKBit lk=LeaveLK)
 
void bge (Label *L, CRegister cr=cr0, LKBit lk=LeaveLK)
 
void ble (Label *L, CRegister cr=cr0, LKBit lk=LeaveLK)
 
void bgt (Label *L, CRegister cr=cr0, LKBit lk=LeaveLK)
 
void bunordered (Label *L, CRegister cr=cr0, LKBit lk=LeaveLK)
 
void bordered (Label *L, CRegister cr=cr0, LKBit lk=LeaveLK)
 
void boverflow (Label *L, CRegister cr=cr0, LKBit lk=LeaveLK)
 
void bnooverflow (Label *L, CRegister cr=cr0, LKBit lk=LeaveLK)
 
void bdnz (Label *L, LKBit lk=LeaveLK)
 
void sub (Register dst, Register src1, Register src2, OEBit s=LeaveOE, RCBit r=LeaveRC)
 
void subc (Register dst, Register src1, Register src2, OEBit s=LeaveOE, RCBit r=LeaveRC)
 
void sube (Register dst, Register src1, Register src2, OEBit s=LeaveOE, RCBit r=LeaveRC)
 
void subfic (Register dst, Register src, const Operand &imm)
 
void add (Register dst, Register src1, Register src2, OEBit s=LeaveOE, RCBit r=LeaveRC)
 
void addc (Register dst, Register src1, Register src2, OEBit o=LeaveOE, RCBit r=LeaveRC)
 
void adde (Register dst, Register src1, Register src2, OEBit o=LeaveOE, RCBit r=LeaveRC)
 
void addze (Register dst, Register src1, OEBit o=LeaveOE, RCBit r=LeaveRC)
 
void mullw (Register dst, Register src1, Register src2, OEBit o=LeaveOE, RCBit r=LeaveRC)
 
void mulhw (Register dst, Register src1, Register src2, RCBit r=LeaveRC)
 
void mulhwu (Register dst, Register src1, Register src2, RCBit r=LeaveRC)
 
void mulhd (Register dst, Register src1, Register src2, RCBit r=LeaveRC)
 
void mulhdu (Register dst, Register src1, Register src2, RCBit r=LeaveRC)
 
void mulli (Register dst, Register src, const Operand &imm)
 
void divw (Register dst, Register src1, Register src2, OEBit o=LeaveOE, RCBit r=LeaveRC)
 
void divwu (Register dst, Register src1, Register src2, OEBit o=LeaveOE, RCBit r=LeaveRC)
 
void addi (Register dst, Register src, const Operand &imm)
 
void addis (Register dst, Register src, const Operand &imm)
 
void addic (Register dst, Register src, const Operand &imm)
 
void andi (Register ra, Register rs, const Operand &imm)
 
void andis (Register ra, Register rs, const Operand &imm)
 
void ori (Register dst, Register src, const Operand &imm)
 
void oris (Register dst, Register src, const Operand &imm)
 
void xori (Register dst, Register src, const Operand &imm)
 
void xoris (Register ra, Register rs, const Operand &imm)
 
void cmpi (Register src1, const Operand &src2, CRegister cr=cr0)
 
void cmpli (Register src1, const Operand &src2, CRegister cr=cr0)
 
void cmpwi (Register src1, const Operand &src2, CRegister cr=cr0)
 
void cmplwi (Register src1, const Operand &src2, CRegister cr=cr0)
 
void li (Register dst, const Operand &src)
 
void lis (Register dst, const Operand &imm)
 
void mr (Register dst, Register src)
 
void lbz (Register dst, const MemOperand &src)
 
void lhz (Register dst, const MemOperand &src)
 
void lha (Register dst, const MemOperand &src)
 
void lwz (Register dst, const MemOperand &src)
 
void lwzu (Register dst, const MemOperand &src)
 
void lwa (Register dst, const MemOperand &src)
 
void stb (Register dst, const MemOperand &src)
 
void sth (Register dst, const MemOperand &src)
 
void stw (Register dst, const MemOperand &src)
 
void stwu (Register dst, const MemOperand &src)
 
void neg (Register rt, Register ra, OEBit o=LeaveOE, RCBit c=LeaveRC)
 
void ld (Register rd, const MemOperand &src)
 
void ldu (Register rd, const MemOperand &src)
 
void std (Register rs, const MemOperand &src)
 
void stdu (Register rs, const MemOperand &src)
 
void rldic (Register dst, Register src, int sh, int mb, RCBit r=LeaveRC)
 
void rldicl (Register dst, Register src, int sh, int mb, RCBit r=LeaveRC)
 
void rldcl (Register ra, Register rs, Register rb, int mb, RCBit r=LeaveRC)
 
void rldicr (Register dst, Register src, int sh, int me, RCBit r=LeaveRC)
 
void rldimi (Register dst, Register src, int sh, int mb, RCBit r=LeaveRC)
 
void sldi (Register dst, Register src, const Operand &val, RCBit rc=LeaveRC)
 
void srdi (Register dst, Register src, const Operand &val, RCBit rc=LeaveRC)
 
void clrrdi (Register dst, Register src, const Operand &val, RCBit rc=LeaveRC)
 
void clrldi (Register dst, Register src, const Operand &val, RCBit rc=LeaveRC)
 
void sradi (Register ra, Register rs, int sh, RCBit r=LeaveRC)
 
void rotld (Register ra, Register rs, Register rb, RCBit r=LeaveRC)
 
void rotldi (Register ra, Register rs, int sh, RCBit r=LeaveRC)
 
void rotrdi (Register ra, Register rs, int sh, RCBit r=LeaveRC)
 
void mulld (Register dst, Register src1, Register src2, OEBit o=LeaveOE, RCBit r=LeaveRC)
 
void divd (Register dst, Register src1, Register src2, OEBit o=LeaveOE, RCBit r=LeaveRC)
 
void divdu (Register dst, Register src1, Register src2, OEBit o=LeaveOE, RCBit r=LeaveRC)
 
void rlwinm (Register ra, Register rs, int sh, int mb, int me, RCBit rc=LeaveRC)
 
void rlwimi (Register ra, Register rs, int sh, int mb, int me, RCBit rc=LeaveRC)
 
void rlwnm (Register ra, Register rs, Register rb, int mb, int me, RCBit rc=LeaveRC)
 
void slwi (Register dst, Register src, const Operand &val, RCBit rc=LeaveRC)
 
void srwi (Register dst, Register src, const Operand &val, RCBit rc=LeaveRC)
 
void clrrwi (Register dst, Register src, const Operand &val, RCBit rc=LeaveRC)
 
void clrlwi (Register dst, Register src, const Operand &val, RCBit rc=LeaveRC)
 
void rotlw (Register ra, Register rs, Register rb, RCBit r=LeaveRC)
 
void rotlwi (Register ra, Register rs, int sh, RCBit r=LeaveRC)
 
void rotrwi (Register ra, Register rs, int sh, RCBit r=LeaveRC)
 
void subi (Register dst, Register src1, const Operand &src2)
 
void mov (Register dst, const Operand &src)
 
void bitwise_mov (Register dst, intptr_t value)
 
void bitwise_mov32 (Register dst, int32_t value)
 
void bitwise_add32 (Register dst, Register src, int32_t value)
 
void patch_pc_address (Register dst, int pc_offset, int return_address_offset)
 
void mov_label_offset (Register dst, Label *label)
 
void add_label_offset (Register dst, Register base, Label *label, int delta=0)
 
void mov_label_addr (Register dst, Label *label)
 
void emit_label_addr (Label *label)
 
void mul (Register dst, Register src1, Register src2, OEBit s=LeaveOE, RCBit r=LeaveRC)
 
void crxor (int bt, int ba, int bb)
 
void crclr (int bt)
 
void creqv (int bt, int ba, int bb)
 
void crset (int bt)
 
void mflr (Register dst)
 
void mtlr (Register src)
 
void mtctr (Register src)
 
void mtxer (Register src)
 
void mcrfs (CRegister cr, FPSCRBit bit)
 
void mfcr (Register dst)
 
void mtcrf (Register src, uint8_t FXM)
 
void mffprd (Register dst, DoubleRegister src)
 
void mffprwz (Register dst, DoubleRegister src)
 
void mtfprd (DoubleRegister dst, Register src)
 
void mtfprwz (DoubleRegister dst, Register src)
 
void mtfprwa (DoubleRegister dst, Register src)
 
void stop (Condition cond=al, int32_t code=kDefaultStopCode, CRegister cr=cr0)
 
void bkpt (uint32_t imm16)
 
void dcbf (Register ra, Register rb)
 
void sync ()
 
void lwsync ()
 
void icbi (Register ra, Register rb)
 
void isync ()
 
void lfd (const DoubleRegister frt, const MemOperand &src)
 
void lfdu (const DoubleRegister frt, const MemOperand &src)
 
void lfs (const DoubleRegister frt, const MemOperand &src)
 
void lfsu (const DoubleRegister frt, const MemOperand &src)
 
void stfd (const DoubleRegister frs, const MemOperand &src)
 
void stfdu (const DoubleRegister frs, const MemOperand &src)
 
void stfs (const DoubleRegister frs, const MemOperand &src)
 
void stfsu (const DoubleRegister frs, const MemOperand &src)
 
void fadd (const DoubleRegister frt, const DoubleRegister fra, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void fsub (const DoubleRegister frt, const DoubleRegister fra, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void fdiv (const DoubleRegister frt, const DoubleRegister fra, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void fmul (const DoubleRegister frt, const DoubleRegister fra, const DoubleRegister frc, RCBit rc=LeaveRC)
 
void fcmpu (const DoubleRegister fra, const DoubleRegister frb, CRegister cr=cr0)
 
void fmr (const DoubleRegister frt, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void fctiwz (const DoubleRegister frt, const DoubleRegister frb)
 
void fctiw (const DoubleRegister frt, const DoubleRegister frb)
 
void fctiwuz (const DoubleRegister frt, const DoubleRegister frb)
 
void frin (const DoubleRegister frt, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void friz (const DoubleRegister frt, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void frip (const DoubleRegister frt, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void frim (const DoubleRegister frt, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void frsp (const DoubleRegister frt, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void fcfid (const DoubleRegister frt, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void fcfidu (const DoubleRegister frt, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void fcfidus (const DoubleRegister frt, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void fcfids (const DoubleRegister frt, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void fctid (const DoubleRegister frt, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void fctidz (const DoubleRegister frt, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void fctidu (const DoubleRegister frt, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void fctiduz (const DoubleRegister frt, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void fsel (const DoubleRegister frt, const DoubleRegister fra, const DoubleRegister frc, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void fneg (const DoubleRegister frt, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void mtfsb0 (FPSCRBit bit, RCBit rc=LeaveRC)
 
void mtfsb1 (FPSCRBit bit, RCBit rc=LeaveRC)
 
void mtfsfi (int bf, int immediate, RCBit rc=LeaveRC)
 
void mffs (const DoubleRegister frt, RCBit rc=LeaveRC)
 
void mtfsf (const DoubleRegister frb, bool L=1, int FLM=0, bool W=0, RCBit rc=LeaveRC)
 
void fsqrt (const DoubleRegister frt, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void fabs (const DoubleRegister frt, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void fmadd (const DoubleRegister frt, const DoubleRegister fra, const DoubleRegister frc, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void fmsub (const DoubleRegister frt, const DoubleRegister fra, const DoubleRegister frc, const DoubleRegister frb, RCBit rc=LeaveRC)
 
void fcpsgn (const DoubleRegister frt, const DoubleRegister fra, const DoubleRegister frc, RCBit rc=LeaveRC)
 
void mfvsrd (const Register ra, const Simd128Register r)
 
void mfvsrwz (const Register ra, const Simd128Register r)
 
void mtvsrd (const Simd128Register rt, const Register ra)
 
void mtvsrdd (const Simd128Register rt, const Register ra, const Register rb)
 
void lxvd (const Simd128Register rt, const MemOperand &src)
 
void lxvx (const Simd128Register rt, const MemOperand &src)
 
void lxsdx (const Simd128Register rt, const MemOperand &src)
 
void lxsibzx (const Simd128Register rt, const MemOperand &src)
 
void lxsihzx (const Simd128Register rt, const MemOperand &src)
 
void lxsiwzx (const Simd128Register rt, const MemOperand &src)
 
void stxsdx (const Simd128Register rs, const MemOperand &dst)
 
void stxsibx (const Simd128Register rs, const MemOperand &dst)
 
void stxsihx (const Simd128Register rs, const MemOperand &dst)
 
void stxsiwx (const Simd128Register rs, const MemOperand &dst)
 
void stxvd (const Simd128Register rt, const MemOperand &dst)
 
void stxvx (const Simd128Register rt, const MemOperand &dst)
 
void xxspltib (const Simd128Register rt, const Operand &imm)
 
void paddi (Register dst, Register src, const Operand &imm)
 
void pli (Register dst, const Operand &imm)
 
void psubi (Register dst, Register src, const Operand &imm)
 
void plbz (Register dst, const MemOperand &src)
 
void plhz (Register dst, const MemOperand &src)
 
void plha (Register dst, const MemOperand &src)
 
void plwz (Register dst, const MemOperand &src)
 
void plwa (Register dst, const MemOperand &src)
 
void pld (Register dst, const MemOperand &src)
 
void plfs (DoubleRegister dst, const MemOperand &src)
 
void plfd (DoubleRegister dst, const MemOperand &src)
 
void pstb (Register src, const MemOperand &dst)
 
void psth (Register src, const MemOperand &dst)
 
void pstw (Register src, const MemOperand &dst)
 
void pstd (Register src, const MemOperand &dst)
 
void pstfs (const DoubleRegister src, const MemOperand &dst)
 
void pstfd (const DoubleRegister src, const MemOperand &dst)
 
void nop (int type=0)
 
void push (Register src)
 
void pop (Register dst)
 
void pop ()
 
void jmp (Label *L)
 
int SizeOfCodeGeneratedSince (Label *label)
 
int InstructionsGeneratedSince (Label *label)
 
void RecordDeoptReason (DeoptimizeReason reason, uint32_t node_id, SourcePosition position, int id)
 
void db (uint8_t data)
 
void dd (uint32_t data)
 
void dq (uint64_t data)
 
void dp (uintptr_t data)
 
Instr instr_at (int pos)
 
void instr_at_put (int pos, Instr instr)
 
void BlockTrampolinePoolFor (int instructions)
 
void CheckTrampolinePool ()
 
int instructions_required_for_mov (Register dst, const Operand &src) const
 
bool use_constant_pool_for_mov (Register dst, const Operand &src, bool canOptimize) const
 
void EnsureSpaceFor (int space_needed)
 
int EmitConstantPool ()
 
bool ConstantPoolAccessIsInOverflow () const
 
LabelConstantPoolPosition ()
 
void EmitRelocations ()
 
 Assembler (const AssemblerOptions &, std::unique_ptr< AssemblerBuffer >={})
 
 Assembler (const MaybeAssemblerZone &, const AssemblerOptions &options, std::unique_ptr< AssemblerBuffer > buffer={})
 
virtual ~Assembler ()
 
void AbortedCodeGeneration ()
 
void GetCode (LocalIsolate *isolate, CodeDesc *desc, SafepointTableBuilderBase *safepoint_table_builder, int handler_table_offset)
 
void GetCode (Isolate *isolate, CodeDesc *desc)
 
void GetCode (LocalIsolate *isolate, CodeDesc *desc)
 
void MaybeEmitOutOfLineConstantPool ()
 
void bind (Label *L)
 
bool is_near (Label *L)
 
bool is_near (Label *L, OffsetSize bits)
 
bool is_near_branch (Label *L)
 
int BranchOffset (Instr instr)
 
virtual int32_t branch_offset_helper (Label *L, OffsetSize bits)
 
uintptr_t jump_address (Label *L)
 
int32_t branch_long_offset (Label *L)
 
void label_at_put (Label *L, int at_offset)
 
Handle< Objectcode_target_object_handle_at (Address pc, Address constant_pool)
 
Handle< HeapObjectcompressed_embedded_object_handle_at (Address pc, Address constant_pool)
 
Handle< HeapObjectembedded_object_handle_at (Address pc)
 
void EmitPoolGuard ()
 
RegListGetScratchRegisterList ()
 
DoubleRegListGetScratchDoubleRegisterList ()
 
void Align (int m)
 
void DataAlign (int m)
 
void CodeTargetAlign ()
 
void LoopHeaderAlign ()
 
void NOP ()
 
void EBREAK ()
 
void nop ()
 
void break_ (uint32_t code, bool break_as_stop=false)
 
void stop (uint32_t code=kMaxStopCode)
 
int SizeOfCodeGeneratedSince (Label *label)
 
int InstructionsGeneratedSince (Label *label)
 
void RecordDeoptReason (DeoptimizeReason reason, uint32_t node_id, SourcePosition position, int id)
 
void db (uint8_t data)
 
void dd (uint32_t data)
 
void dq (uint64_t data)
 
void dp (uintptr_t data)
 
void dd (Label *label)
 
Instructionpc () const
 
InstructionInstructionAt (ptrdiff_t offset) const
 
void BlockTrampolinePoolFor (int instructions)
 
bool overflow () const
 
intptr_t available_space () const
 
Instr instr_at (int pos)
 
void instr_at_put (int pos, Instr instr, WritableJitAllocation *jit_allocation=nullptr)
 
void instr_at_put (int pos, ShortInstr instr, WritableJitAllocation *jit_allocation=nullptr)
 
Address toAddress (int pos)
 
void CheckTrampolinePool ()
 
V8_INLINE Handle< Coderelative_code_target_object_handle_at (Address pc_) const
 
int UnboundLabelsCount ()
 
void RecordConstPool (int size)
 
void ForceConstantPoolEmissionWithoutJump ()
 
void ForceConstantPoolEmissionWithJump ()
 
void EmitConstPoolWithJumpIfNeeded (size_t margin=0)
 
void EmitConstPoolWithoutJumpIfNeeded (size_t margin=0)
 
RelocInfoStatus RecordEntry (uint32_t data, RelocInfo::Mode rmode)
 
RelocInfoStatus RecordEntry (uint64_t data, RelocInfo::Mode rmode)
 
void CheckTrampolinePoolQuick (int extra_instructions=0)
 
void ClearVectorunit ()
 
 Assembler (const AssemblerOptions &, std::unique_ptr< AssemblerBuffer >={})
 
 Assembler (const MaybeAssemblerZone &, const AssemblerOptions &options, std::unique_ptr< AssemblerBuffer > buffer={})
 
virtual ~Assembler ()
 
void GetCode (LocalIsolate *isolate, CodeDesc *desc, SafepointTableBuilderBase *safepoint_table_builder, int handler_table_offset)
 
void GetCode (Isolate *isolate, CodeDesc *desc)
 
void GetCode (LocalIsolate *isolate, CodeDesc *desc)
 
void MaybeEmitOutOfLineConstantPool ()
 
void bind (Label *L)
 
int link (Label *L)
 
int branch_offset (Label *L)
 
void load_label_offset (Register r1, Label *L)
 
Handle< Objectcode_target_object_handle_at (Address pc)
 
Handle< HeapObjectcompressed_embedded_object_handle_at (Address pc, Address constant_pool)
 
RegListGetScratchRegisterList ()
 
DoubleRegListGetScratchDoubleRegisterList ()
 
template<class T , int size, int lo, int hi>
T getfield (T value)
 
void ril_format (Opcode opcode, int f1, int f2)
 
void rr_format (Opcode opcode, int f1, int f2)
 
void rrd_format (Opcode opcode, int f1, int f2, int f3)
 
void rre_format (Opcode opcode, int f1, int f2)
 
void lzdr (DoubleRegister r1)
 
void lzer (DoubleRegister r1)
 
void rx_format (Opcode opcode, int f1, int f2, int f3, int f4)
 
void bc (Condition cond, const MemOperand &opnd)
 
void bc (Condition cond, Register x2, Register b2, const Operand &d2)
 
void rxy_format (Opcode opcode, int f1, int f2, int f3, int f4)
 
void pfd (Condition cond, const MemOperand &opnd)
 
void pfd (Condition cond, Register x2, Register b2, const Operand &d2)
 
void rsy_format (Opcode op, int f1, int f2, int f3, int f4)
 
void rs_format (Opcode op, int f1, int f2, int f3, const int f4)
 
void rxe_format (Opcode op, int f1, int f2, int f3, int f4, int f5=0)
 
void ri_format (Opcode opcode, int f1, int f2)
 
void rrf_format (Opcode op, int f1, int f2, int f3, int f4)
 
void rsi_format (Opcode op, int f1, int f2, int f3)
 
void rsl_format (Opcode op, uint16_t f1, int f2, int f3, int f4, int f5)
 
void s_format (Opcode op, int f1, int f2)
 
void si_format (Opcode op, int f1, int f2, int f3)
 
void siy_format (Opcode op, int f1, int f2, int f3)
 
void rrs_format (Opcode op, int f1, int f2, int f3, int f4, int f5)
 
void ris_format (Opcode op, int f1, int f2, int f3, int f4, int f5)
 
void sil_format (Opcode op, int f1, int f2, int f3)
 
void rie_d_format (Opcode opcode, int f1, int f2, int f3, int f4)
 
void rie_e_format (Opcode opcode, int f1, int f2, int f3)
 
void rie_f_format (Opcode opcode, int f1, int f2, int f3, int f4, int f5)
 
void ss_a_format (Opcode op, int f1, int f2, int f3, int f4, int f5)
 
void b (Register r, Label *l)
 
void branchOnCond (Condition c, int branch_offset, bool is_bound=false, bool force_long_branch=false)
 
void b (Condition cond, Label *l, Label::Distance dist=Label::kFar, bool force_long_branch=false)
 
void bc_short (Condition cond, Label *l, Label::Distance dist=Label::kFar)
 
void bc_long (Condition cond, Label *l)
 
void beq (Label *l, Label::Distance dist=Label::kFar)
 
void bne (Label *l, Label::Distance dist=Label::kFar)
 
void blt (Label *l, Label::Distance dist=Label::kFar)
 
void ble (Label *l, Label::Distance dist=Label::kFar)
 
void bgt (Label *l, Label::Distance dist=Label::kFar)
 
void bge (Label *l, Label::Distance dist=Label::kFar)
 
void b (Label *l, Label::Distance dist=Label::kFar)
 
void jmp (Label *l, Label::Distance dist=Label::kFar)
 
void bunordered (Label *l, Label::Distance dist=Label::kFar)
 
void bordered (Label *l, Label::Distance dist=Label::kFar)
 
void b (Condition cond, Register r)
 
void beq (Register r)
 
void bne (Register r)
 
void blt (Register r)
 
void ble (Register r)
 
void bgt (Register r)
 
void bge (Register r)
 
void b (Register r)
 
void jmp (Register r)
 
void bunordered (Register r)
 
void bordered (Register r)
 
void brxh (Register dst, Register inc, Label *L)
 
void brxhg (Register dst, Register inc, Label *L)
 
template<class R1 , class R2 >
void ledbr (R1 r1, R2 r2)
 
template<class R1 , class R2 >
void cdfbr (R1 r1, R2 r2)
 
template<class R1 , class R2 >
void cdgbr (R1 r1, R2 r2)
 
template<class R1 , class R2 >
void cegbr (R1 r1, R2 r2)
 
template<class R1 , class R2 >
void cgebr (Condition m3, R1 r1, R2 r2)
 
template<class R1 , class R2 >
void cgdbr (Condition m3, R1 r1, R2 r2)
 
template<class R1 , class R2 >
void cfdbr (Condition m3, R1 r1, R2 r2)
 
template<class R1 , class R2 >
void cfebr (Condition m3, R1 r1, R2 r2)
 
void Align (int m)
 
void DataAlign (int m)
 
void CodeTargetAlign ()
 
void LoopHeaderAlign ()
 
void breakpoint (bool do_print)
 
void call (Handle< Code > target, RelocInfo::Mode rmode)
 
void jump (Handle< Code > target, RelocInfo::Mode rmode, Condition cond)
 
void vfa (DoubleRegister v1, DoubleRegister v2, DoubleRegister v3)
 
void vfs (DoubleRegister v1, DoubleRegister v2, DoubleRegister v3)
 
void vfm (DoubleRegister v1, DoubleRegister v2, DoubleRegister v3)
 
void vfd (DoubleRegister v1, DoubleRegister v2, DoubleRegister v3)
 
void larl (Register r, Label *l)
 
void lgrl (Register r, Label *l)
 
void stop (Condition cond=al, int32_t code=kDefaultStopCode, CRegister cr=cr7)
 
void bkpt (uint32_t imm16)
 
void nop (int type=0)
 
void dumy (int r1, int x2, int b2, int d2)
 
int SizeOfCodeGeneratedSince (Label *label)
 
void RecordDeoptReason (DeoptimizeReason reason, uint32_t node_id, SourcePosition position, int id)
 
void db (uint8_t data)
 
void dh (uint16_t data)
 
void dd (uint32_t data)
 
void dq (uint64_t data)
 
void dp (uintptr_t data)
 
SixByteInstr instr_at (int pos)
 
template<typename T >
void instr_at_put (int pos, T instr)
 
int32_t instr_length_at (int pos)
 
void EnsureSpaceFor (int space_needed)
 
void EmitRelocations ()
 
void emit_label_addr (Label *label)
 
uint8_t * buffer_pos () const
 
 Assembler (const AssemblerOptions &, std::unique_ptr< AssemblerBuffer >={})
 
 Assembler (const MaybeAssemblerZone &, const AssemblerOptions &options, std::unique_ptr< AssemblerBuffer > buffer={})
 
 ~Assembler () override=default
 
void GetCode (LocalIsolate *isolate, CodeDesc *desc, SafepointTableBuilderBase *safepoint_table_builder, int handler_table_offset)
 
void GetCode (Isolate *isolate, CodeDesc *desc)
 
void GetCode (LocalIsolate *isolate, CodeDesc *desc)
 
void FinalizeJumpOptimizationInfo ()
 
void MaybeEmitOutOfLineConstantPool ()
 
DirectHandle< Codecode_target_object_handle_at (Address pc)
 
DirectHandle< HeapObjectcompressed_embedded_object_handle_at (Address pc)
 
void Align (int m)
 
void DataAlign (int m)
 
void Nop (int bytes=1)
 
void AlignForJCCErratum (int inst_size)
 
void emit_trace_instruction (Immediate markid)
 
void CodeTargetAlign ()
 
void LoopHeaderAlign ()
 
void pushfq ()
 
void popfq ()
 
void pushq (Immediate value)
 
void pushq_imm32 (int32_t imm32)
 
void pushq (Register src)
 
void pushq (Operand src)
 
void popq (Register dst)
 
void popq (Operand dst)
 
void incsspq (Register number_of_words)
 
void leave ()
 
void movb (Register dst, Operand src)
 
void movb (Register dst, Immediate imm)
 
void movb (Operand dst, Register src)
 
void movb (Operand dst, Immediate imm)
 
void movw (Register dst, Operand src)
 
void movw (Operand dst, Register src)
 
void movw (Operand dst, Immediate imm)
 
void movl (Operand dst, Label *src)
 
void movq_heap_number (Register dst, double value)
 
void movq (Register dst, int64_t value)
 
void movq (Register dst, uint64_t value)
 
void movq_imm64 (Register dst, int64_t value)
 
void movsxbl (Register dst, Register src)
 
void movsxbl (Register dst, Operand src)
 
void movsxbq (Register dst, Register src)
 
void movsxbq (Register dst, Operand src)
 
void movsxwl (Register dst, Register src)
 
void movsxwl (Register dst, Operand src)
 
void movsxwq (Register dst, Register src)
 
void movsxwq (Register dst, Operand src)
 
void movsxlq (Register dst, Register src)
 
void movsxlq (Register dst, Operand src)
 
void repmovsb ()
 
void repmovsw ()
 
void repmovsl ()
 
void repmovsq ()
 
void repstosl ()
 
void repstosq ()
 
void load_rax (Address value, RelocInfo::Mode rmode)
 
void load_rax (ExternalReference ext)
 
void cmovq (Condition cc, Register dst, Register src)
 
void cmovq (Condition cc, Register dst, Operand src)
 
void cmovl (Condition cc, Register dst, Register src)
 
void cmovl (Condition cc, Register dst, Operand src)
 
void cmpb (Register dst, Immediate src)
 
void aligned_cmpb (Register dst, Immediate src)
 
void cmpb_al (Immediate src)
 
void cmpb (Register dst, Register src)
 
void aligned_cmpb (Register dst, Register src)
 
void cmpb (Register dst, Operand src)
 
void aligned_cmpb (Register dst, Operand src)
 
void cmpb (Operand dst, Register src)
 
void aligned_cmpb (Operand dst, Register src)
 
void cmpb (Operand dst, Immediate src)
 
void aligned_cmpb (Operand dst, Immediate src)
 
void cmpw (Operand dst, Immediate src)
 
void aligned_cmpw (Operand dst, Immediate src)
 
void cmpw (Register dst, Immediate src)
 
void aligned_cmpw (Register dst, Immediate src)
 
void cmpw (Register dst, Operand src)
 
void aligned_cmpw (Register dst, Operand src)
 
void cmpw (Register dst, Register src)
 
void aligned_cmpw (Register dst, Register src)
 
void cmpw (Operand dst, Register src)
 
void aligned_cmpw (Operand dst, Register src)
 
void testb (Register reg, Operand op)
 
void aligned_testb (Register reg, Operand op)
 
void testw (Register reg, Operand op)
 
void aligned_testw (Register reg, Operand op)
 
void andb (Register dst, Immediate src)
 
void decb (Register dst)
 
void decb (Operand dst)
 
void lock ()
 
void xchgb (Register reg, Operand op)
 
void xchgw (Register reg, Operand op)
 
void xaddb (Operand dst, Register src)
 
void xaddw (Operand dst, Register src)
 
void xaddl (Operand dst, Register src)
 
void xaddq (Operand dst, Register src)
 
void negb (Register reg)
 
void negw (Register reg)
 
void negl (Register reg)
 
void negq (Register reg)
 
void negb (Operand op)
 
void negw (Operand op)
 
void negl (Operand op)
 
void negq (Operand op)
 
void cmpxchgb (Operand dst, Register src)
 
void cmpxchgw (Operand dst, Register src)
 
void cqo ()
 
void cdq ()
 
void mull (Register src)
 
void mull (Operand src)
 
void mulq (Register src)
 
void mulq (Operand src)
 
void shld (Register dst, Register src)
 
void shrd (Register dst, Register src)
 
void store_rax (Address dst, RelocInfo::Mode mode)
 
void store_rax (ExternalReference ref)
 
void subb (Register dst, Immediate src)
 
void sub_sp_32 (uint32_t imm)
 
void testb (Register dst, Register src)
 
void aligned_testb (Register dst, Register src)
 
void testb (Register reg, Immediate mask)
 
void aligned_testb (Register reg, Immediate mask)
 
void testb (Operand op, Immediate mask)
 
void aligned_testb (Operand op, Immediate mask)
 
void testb (Operand op, Register reg)
 
void aligned_testb (Operand op, Register reg)
 
void testw (Register dst, Register src)
 
void aligned_testw (Register dst, Register src)
 
void testw (Register reg, Immediate mask)
 
void aligned_testw (Register reg, Immediate mask)
 
void testw (Operand op, Immediate mask)
 
void aligned_testw (Operand op, Immediate mask)
 
void testw (Operand op, Register reg)
 
void aligned_testw (Operand op, Register reg)
 
void bswapl (Register dst)
 
void bswapq (Register dst)
 
void btq (Operand dst, Register src)
 
void btsq (Operand dst, Register src)
 
void btsq (Register dst, Immediate imm8)
 
void btrq (Register dst, Immediate imm8)
 
void bsrq (Register dst, Register src)
 
void bsrq (Register dst, Operand src)
 
void bsrl (Register dst, Register src)
 
void bsrl (Register dst, Operand src)
 
void bsfq (Register dst, Register src)
 
void bsfq (Register dst, Operand src)
 
void bsfl (Register dst, Register src)
 
void bsfl (Register dst, Operand src)
 
void clc ()
 
void cld ()
 
void cpuid ()
 
void hlt ()
 
void int3 ()
 
void nop ()
 
void ret (int imm16)
 
void ud2 ()
 
void setcc (Condition cc, Register reg)
 
void endbr64 ()
 
void pblendw (XMMRegister dst, Operand src, uint8_t mask)
 
void pblendw (XMMRegister dst, XMMRegister src, uint8_t mask)
 
void palignr (XMMRegister dst, Operand src, uint8_t mask)
 
void palignr (XMMRegister dst, XMMRegister src, uint8_t mask)
 
void vpermq (YMMRegister dst, Operand src, uint8_t imm8)
 
void vpermq (YMMRegister dst, YMMRegister src, uint8_t imm8)
 
void bind (Label *L)
 
void call (Label *L)
 
void near_call (intptr_t disp, RelocInfo::Mode rmode)
 
void near_call (Builtin buitin, RelocInfo::Mode rmode)
 
void near_jmp (intptr_t disp, RelocInfo::Mode rmode)
 
void near_j (Condition cc, intptr_t disp, RelocInfo::Mode rmode)
 
void call (Handle< Code > target, RelocInfo::Mode rmode=RelocInfo::CODE_TARGET)
 
void call (Register adr)
 
void jmp (Label *L, Label::Distance distance=Label::kFar)
 
void aligned_jmp (Label *L, Label::Distance distance=Label::kFar)
 
void jmp (Handle< Code > target, RelocInfo::Mode rmode)
 
void jmp (Register adr, bool notrack=false)
 
void jmp (Operand src, bool notrack=false)
 
void jmp_rel (int offset)
 
void j (Condition cc, Label *L, Label::Distance distance=Label::kFar)
 
void aligned_j (Condition cc, Label *L, Label::Distance distance=Label::kFar)
 
void j (Condition cc, Address entry, RelocInfo::Mode rmode)
 
void j (Condition cc, Handle< Code > target, RelocInfo::Mode rmode)
 
void fld (int i)
 
void fld1 ()
 
void fldz ()
 
void fldpi ()
 
void fldln2 ()
 
void fld_s (Operand adr)
 
void fld_d (Operand adr)
 
void fstp_s (Operand adr)
 
void fstp_d (Operand adr)
 
void fstp (int index)
 
void fild_s (Operand adr)
 
void fild_d (Operand adr)
 
void fist_s (Operand adr)
 
void fistp_s (Operand adr)
 
void fistp_d (Operand adr)
 
void fisttp_s (Operand adr)
 
void fisttp_d (Operand adr)
 
void fabs ()
 
void fchs ()
 
void fadd (int i)
 
void fsub (int i)
 
void fmul (int i)
 
void fdiv (int i)
 
void fisub_s (Operand adr)
 
void faddp (int i=1)
 
void fsubp (int i=1)
 
void fsubrp (int i=1)
 
void fmulp (int i=1)
 
void fdivp (int i=1)
 
void fprem ()
 
void fprem1 ()
 
void fxch (int i=1)
 
void fincstp ()
 
void ffree (int i=0)
 
void ftst ()
 
void fucomp (int i)
 
void fucompp ()
 
void fucomi (int i)
 
void fucomip ()
 
void fcompp ()
 
void fnstsw_ax ()
 
void fwait ()
 
void fnclex ()
 
void fsin ()
 
void fcos ()
 
void fptan ()
 
void fyl2x ()
 
void f2xm1 ()
 
void fscale ()
 
void fninit ()
 
void frndint ()
 
void sahf ()
 
void ucomiss (XMMRegister dst, XMMRegister src)
 
void ucomiss (XMMRegister dst, Operand src)
 
void movaps (XMMRegister dst, XMMRegister src)
 
void movaps (XMMRegister dst, Operand src)
 
void movss (XMMRegister dst, XMMRegister src)
 
void movss (XMMRegister dst, Operand src)
 
void movss (Operand dst, XMMRegister src)
 
void movlps (XMMRegister dst, Operand src)
 
void movlps (Operand dst, XMMRegister src)
 
void movhps (XMMRegister dst, Operand src)
 
void movhps (Operand dst, XMMRegister src)
 
void shufps (XMMRegister dst, XMMRegister src, uint8_t imm8)
 
void cvttss2si (Register dst, Operand src)
 
void cvttss2si (Register dst, XMMRegister src)
 
void cvtlsi2ss (XMMRegister dst, Operand src)
 
void cvtlsi2ss (XMMRegister dst, Register src)
 
void movmskps (Register dst, XMMRegister src)
 
void vinstr (uint8_t op, XMMRegister dst, XMMRegister src1, XMMRegister src2, SIMDPrefix pp, LeadingOpcode m, VexW w, CpuFeature feature=AVX)
 
void vinstr (uint8_t op, XMMRegister dst, XMMRegister src1, Operand src2, SIMDPrefix pp, LeadingOpcode m, VexW w, CpuFeature feature=AVX)
 
template<typename Reg1 , typename Reg2 , typename Op >
void vinstr (uint8_t op, Reg1 dst, Reg2 src1, Op src2, SIMDPrefix pp, LeadingOpcode m, VexW w, CpuFeature feature=AVX2)
 
void sse_instr (XMMRegister dst, XMMRegister src, uint8_t escape, uint8_t opcode)
 
void sse_instr (XMMRegister dst, Operand src, uint8_t escape, uint8_t opcode)
 
void sse2_instr (XMMRegister dst, XMMRegister src, uint8_t prefix, uint8_t escape, uint8_t opcode)
 
void sse2_instr (XMMRegister dst, Operand src, uint8_t prefix, uint8_t escape, uint8_t opcode)
 
void sse2_instr (XMMRegister reg, uint8_t imm8, uint8_t prefix, uint8_t escape, uint8_t opcode, int extension)
 
 DECLARE_SSE2_UNOP_AVX_YMM_INSTRUCTION (sqrtpd, 51, YMMRegister, YMMRegister, Operand) DECLARE_SSE2_UNOP_AVX_YMM_INSTRUCTION(cvtpd2ps
 
Operand256 DECLARE_SSE2_UNOP_AVX_YMM_INSTRUCTION (cvtps2dq, 5B, YMMRegister, YMMRegister, Operand) DECLARE_SSE2_UNOP_AVX_YMM_INSTRUCTION(cvttpd2dq
 
Operand256 Operand256 void lddqu (XMMRegister dst, Operand src)
 
void movddup (XMMRegister dst, Operand src)
 
void movddup (XMMRegister dst, XMMRegister src)
 
void movshdup (XMMRegister dst, XMMRegister src)
 
void ssse3_instr (XMMRegister dst, XMMRegister src, uint8_t prefix, uint8_t escape1, uint8_t escape2, uint8_t opcode)
 
void ssse3_instr (XMMRegister dst, Operand src, uint8_t prefix, uint8_t escape1, uint8_t escape2, uint8_t opcode)
 
void sse4_instr (Register dst, XMMRegister src, uint8_t prefix, uint8_t escape1, uint8_t escape2, uint8_t opcode, int8_t imm8)
 
void sse4_instr (Operand dst, XMMRegister src, uint8_t prefix, uint8_t escape1, uint8_t escape2, uint8_t opcode, int8_t imm8)
 
void sse4_instr (XMMRegister dst, Register src, uint8_t prefix, uint8_t escape1, uint8_t escape2, uint8_t opcode, int8_t imm8)
 
void sse4_instr (XMMRegister dst, XMMRegister src, uint8_t prefix, uint8_t escape1, uint8_t escape2, uint8_t opcode)
 
void sse4_instr (XMMRegister dst, Operand src, uint8_t prefix, uint8_t escape1, uint8_t escape2, uint8_t opcode)
 
void sse4_2_instr (XMMRegister dst, XMMRegister src, uint8_t prefix, uint8_t escape1, uint8_t escape2, uint8_t opcode)
 
void sse4_2_instr (XMMRegister dst, Operand src, uint8_t prefix, uint8_t escape1, uint8_t escape2, uint8_t opcode)
 
void vpblendvb (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister mask)
 
void vpblendvb (YMMRegister dst, YMMRegister src1, YMMRegister src2, YMMRegister mask)
 
void vblendvps (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister mask)
 
void vblendvps (YMMRegister dst, YMMRegister src1, YMMRegister src2, YMMRegister mask)
 
void vblendvpd (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister mask)
 
void vblendvpd (YMMRegister dst, YMMRegister src1, YMMRegister src2, YMMRegister mask)
 
void vptest (YMMRegister dst, YMMRegister src)
 
void vptest (YMMRegister dst, Operand src)
 
void movd (XMMRegister dst, Register src)
 
void movd (XMMRegister dst, Operand src)
 
void movd (Register dst, XMMRegister src)
 
void movq (XMMRegister dst, Register src)
 
void movq (XMMRegister dst, Operand src)
 
void movq (Register dst, XMMRegister src)
 
void movq (XMMRegister dst, XMMRegister src)
 
void movsd (XMMRegister dst, XMMRegister src)
 
void movsd (Operand dst, XMMRegister src)
 
void movsd (XMMRegister dst, Operand src)
 
void movdqa (Operand dst, XMMRegister src)
 
void movdqa (XMMRegister dst, Operand src)
 
void movdqa (XMMRegister dst, XMMRegister src)
 
void movdqu (Operand dst, XMMRegister src)
 
void movdqu (XMMRegister dst, Operand src)
 
void movdqu (XMMRegister dst, XMMRegister src)
 
void movapd (XMMRegister dst, XMMRegister src)
 
void movupd (XMMRegister dst, Operand src)
 
void movupd (Operand dst, XMMRegister src)
 
void cvtdq2pd (XMMRegister dst, XMMRegister src)
 
void cvttsd2si (Register dst, Operand src)
 
void cvttsd2si (Register dst, XMMRegister src)
 
void cvttss2siq (Register dst, XMMRegister src)
 
void cvttss2siq (Register dst, Operand src)
 
void cvttsd2siq (Register dst, XMMRegister src)
 
void cvttsd2siq (Register dst, Operand src)
 
void cvttps2dq (XMMRegister dst, Operand src)
 
void cvttps2dq (XMMRegister dst, XMMRegister src)
 
void cvtlsi2sd (XMMRegister dst, Operand src)
 
void cvtlsi2sd (XMMRegister dst, Register src)
 
void cvtqsi2ss (XMMRegister dst, Operand src)
 
void cvtqsi2ss (XMMRegister dst, Register src)
 
void cvtqsi2sd (XMMRegister dst, Operand src)
 
void cvtqsi2sd (XMMRegister dst, Register src)
 
void cvtsd2si (Register dst, XMMRegister src)
 
void cvtsd2siq (Register dst, XMMRegister src)
 
void haddps (XMMRegister dst, XMMRegister src)
 
void haddps (XMMRegister dst, Operand src)
 
void cmpeqsd (XMMRegister dst, XMMRegister src)
 
void cmpeqss (XMMRegister dst, XMMRegister src)
 
void cmpltsd (XMMRegister dst, XMMRegister src)
 
void movmskpd (Register dst, XMMRegister src)
 
void pmovmskb (Register dst, XMMRegister src)
 
void pinsrw (XMMRegister dst, Register src, uint8_t imm8)
 
void pinsrw (XMMRegister dst, Operand src, uint8_t imm8)
 
void insertps (XMMRegister dst, XMMRegister src, uint8_t imm8)
 
void insertps (XMMRegister dst, Operand src, uint8_t imm8)
 
void pextrq (Register dst, XMMRegister src, int8_t imm8)
 
void pinsrb (XMMRegister dst, Register src, uint8_t imm8)
 
void pinsrb (XMMRegister dst, Operand src, uint8_t imm8)
 
void pinsrd (XMMRegister dst, Register src, uint8_t imm8)
 
void pinsrd (XMMRegister dst, Operand src, uint8_t imm8)
 
void pinsrq (XMMRegister dst, Register src, uint8_t imm8)
 
void pinsrq (XMMRegister dst, Operand src, uint8_t imm8)
 
void roundss (XMMRegister dst, XMMRegister src, RoundingMode mode)
 
void roundss (XMMRegister dst, Operand src, RoundingMode mode)
 
void roundsd (XMMRegister dst, XMMRegister src, RoundingMode mode)
 
void roundsd (XMMRegister dst, Operand src, RoundingMode mode)
 
void roundps (XMMRegister dst, XMMRegister src, RoundingMode mode)
 
void roundpd (XMMRegister dst, XMMRegister src, RoundingMode mode)
 
void cmpps (XMMRegister dst, XMMRegister src, int8_t cmp)
 
void cmpps (XMMRegister dst, Operand src, int8_t cmp)
 
void cmppd (XMMRegister dst, XMMRegister src, int8_t cmp)
 
void cmppd (XMMRegister dst, Operand src, int8_t cmp)
 
void movups (XMMRegister dst, XMMRegister src)
 
void movups (XMMRegister dst, Operand src)
 
void movups (Operand dst, XMMRegister src)
 
void psrldq (XMMRegister dst, uint8_t shift)
 
void pshufd (XMMRegister dst, XMMRegister src, uint8_t shuffle)
 
void pshufd (XMMRegister dst, Operand src, uint8_t shuffle)
 
void pshufhw (XMMRegister dst, XMMRegister src, uint8_t shuffle)
 
void pshufhw (XMMRegister dst, Operand src, uint8_t shuffle)
 
void pshuflw (XMMRegister dst, XMMRegister src, uint8_t shuffle)
 
void pshuflw (XMMRegister dst, Operand src, uint8_t shuffle)
 
void movhlps (XMMRegister dst, XMMRegister src)
 
void movlhps (XMMRegister dst, XMMRegister src)
 
void vmovddup (XMMRegister dst, XMMRegister src)
 
void vmovddup (XMMRegister dst, Operand src)
 
void vmovddup (YMMRegister dst, YMMRegister src)
 
void vmovddup (YMMRegister dst, Operand src)
 
void vmovshdup (XMMRegister dst, XMMRegister src)
 
void vmovshdup (YMMRegister dst, YMMRegister src)
 
void vbroadcastss (XMMRegister dst, Operand src)
 
void vbroadcastss (XMMRegister dst, XMMRegister src)
 
void vbroadcastss (YMMRegister dst, Operand src)
 
void vbroadcastss (YMMRegister dst, XMMRegister src)
 
void vbroadcastsd (YMMRegister dst, XMMRegister src)
 
void vbroadcastsd (YMMRegister dst, Operand src)
 
void vinserti128 (YMMRegister dst, YMMRegister src1, XMMRegister src2, uint8_t lane)
 
void vperm2f128 (YMMRegister dst, YMMRegister src1, YMMRegister src2, uint8_t lane)
 
void vextractf128 (XMMRegister dst, YMMRegister src, uint8_t lane)
 
template<typename Reg1 , typename Reg2 , typename Op >
void fma_instr (uint8_t op, Reg1 dst, Reg2 src1, Op src2, VectorLength l, SIMDPrefix pp, LeadingOpcode m, VexW w)
 
void vmovd (XMMRegister dst, Register src)
 
void vmovd (XMMRegister dst, Operand src)
 
void vmovd (Register dst, XMMRegister src)
 
void vmovq (XMMRegister dst, Register src)
 
void vmovq (XMMRegister dst, Operand src)
 
void vmovq (Register dst, XMMRegister src)
 
void vmovsd (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vmovsd (XMMRegister dst, Operand src)
 
void vmovsd (Operand dst, XMMRegister src)
 
void vmovdqa (XMMRegister dst, Operand src)
 
void vmovdqa (XMMRegister dst, XMMRegister src)
 
void vmovdqa (YMMRegister dst, Operand src)
 
void vmovdqa (YMMRegister dst, YMMRegister src)
 
void vmovdqu (XMMRegister dst, Operand src)
 
void vmovdqu (Operand dst, XMMRegister src)
 
void vmovdqu (XMMRegister dst, XMMRegister src)
 
void vmovdqu (YMMRegister dst, Operand src)
 
void vmovdqu (Operand dst, YMMRegister src)
 
void vmovdqu (YMMRegister dst, YMMRegister src)
 
void vmovlps (XMMRegister dst, XMMRegister src1, Operand src2)
 
void vmovlps (Operand dst, XMMRegister src)
 
void vmovhps (XMMRegister dst, XMMRegister src1, Operand src2)
 
void vmovhps (Operand dst, XMMRegister src)
 
void vmovlhps (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vmovhlps (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vcvtdq2pd (XMMRegister dst, XMMRegister src)
 
void vcvtdq2pd (YMMRegister dst, XMMRegister src)
 
void vcvtdq2pd (YMMRegister dst, Operand src)
 
void vcvttps2dq (XMMRegister dst, XMMRegister src)
 
void vcvttps2dq (YMMRegister dst, YMMRegister src)
 
void vcvttps2dq (YMMRegister dst, Operand src)
 
void vcvtlsi2sd (XMMRegister dst, XMMRegister src1, Register src2)
 
void vcvtlsi2sd (XMMRegister dst, XMMRegister src1, Operand src2)
 
void vcvtlsi2ss (XMMRegister dst, XMMRegister src1, Register src2)
 
void vcvtlsi2ss (XMMRegister dst, XMMRegister src1, Operand src2)
 
void vcvtqsi2ss (XMMRegister dst, XMMRegister src1, Register src2)
 
void vcvtqsi2ss (XMMRegister dst, XMMRegister src1, Operand src2)
 
void vcvtqsi2sd (XMMRegister dst, XMMRegister src1, Register src2)
 
void vcvtqsi2sd (XMMRegister dst, XMMRegister src1, Operand src2)
 
void vcvttss2si (Register dst, XMMRegister src)
 
void vcvttss2si (Register dst, Operand src)
 
void vcvttsd2si (Register dst, XMMRegister src)
 
void vcvttsd2si (Register dst, Operand src)
 
void vcvttss2siq (Register dst, XMMRegister src)
 
void vcvttss2siq (Register dst, Operand src)
 
void vcvttsd2siq (Register dst, XMMRegister src)
 
void vcvttsd2siq (Register dst, Operand src)
 
void vcvtsd2si (Register dst, XMMRegister src)
 
void vroundss (XMMRegister dst, XMMRegister src1, XMMRegister src2, RoundingMode mode)
 
void vroundss (XMMRegister dst, XMMRegister src1, Operand src2, RoundingMode mode)
 
void vroundsd (XMMRegister dst, XMMRegister src1, XMMRegister src2, RoundingMode mode)
 
void vroundsd (XMMRegister dst, XMMRegister src1, Operand src2, RoundingMode mode)
 
void vroundps (XMMRegister dst, XMMRegister src, RoundingMode mode)
 
void vroundps (YMMRegister dst, YMMRegister src, RoundingMode mode)
 
void vroundpd (XMMRegister dst, XMMRegister src, RoundingMode mode)
 
void vroundpd (YMMRegister dst, YMMRegister src, RoundingMode mode)
 
template<typename Reg , typename Op >
void vsd (uint8_t op, Reg dst, Reg src1, Op src2)
 
void vmovss (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vmovss (XMMRegister dst, Operand src)
 
void vmovss (Operand dst, XMMRegister src)
 
void vucomiss (XMMRegister dst, XMMRegister src)
 
void vucomiss (XMMRegister dst, Operand src)
 
void vss (uint8_t op, XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vss (uint8_t op, XMMRegister dst, XMMRegister src1, Operand src2)
 
void vshufps (XMMRegister dst, XMMRegister src1, XMMRegister src2, uint8_t imm8)
 
void vshufps (YMMRegister dst, YMMRegister src1, YMMRegister src2, uint8_t imm8)
 
void vmovaps (XMMRegister dst, XMMRegister src)
 
void vmovaps (YMMRegister dst, YMMRegister src)
 
void vmovaps (XMMRegister dst, Operand src)
 
void vmovaps (YMMRegister dst, Operand src)
 
void vmovups (XMMRegister dst, XMMRegister src)
 
void vmovups (YMMRegister dst, YMMRegister src)
 
void vmovups (XMMRegister dst, Operand src)
 
void vmovups (YMMRegister dst, Operand src)
 
void vmovups (Operand dst, XMMRegister src)
 
void vmovups (Operand dst, YMMRegister src)
 
void vmovapd (XMMRegister dst, XMMRegister src)
 
void vmovapd (YMMRegister dst, YMMRegister src)
 
void vmovupd (XMMRegister dst, Operand src)
 
void vmovupd (YMMRegister dst, Operand src)
 
void vmovupd (Operand dst, XMMRegister src)
 
void vmovupd (Operand dst, YMMRegister src)
 
void vmovmskps (Register dst, XMMRegister src)
 
void vmovmskpd (Register dst, XMMRegister src)
 
void vpmovmskb (Register dst, XMMRegister src)
 
void vcmpeqss (XMMRegister dst, XMMRegister src)
 
void vcmpeqsd (XMMRegister dst, XMMRegister src)
 
void vcmpps (XMMRegister dst, XMMRegister src1, XMMRegister src2, int8_t cmp)
 
void vcmpps (YMMRegister dst, YMMRegister src1, YMMRegister src2, int8_t cmp)
 
void vcmpps (XMMRegister dst, XMMRegister src1, Operand src2, int8_t cmp)
 
void vcmpps (YMMRegister dst, YMMRegister src1, Operand src2, int8_t cmp)
 
void vcmppd (XMMRegister dst, XMMRegister src1, XMMRegister src2, int8_t cmp)
 
void vcmppd (YMMRegister dst, YMMRegister src1, YMMRegister src2, int8_t cmp)
 
void vcmppd (XMMRegister dst, XMMRegister src1, Operand src2, int8_t cmp)
 
void vcmppd (YMMRegister dst, YMMRegister src1, Operand src2, int8_t cmp)
 
void vlddqu (XMMRegister dst, Operand src)
 
void vinsertps (XMMRegister dst, XMMRegister src1, XMMRegister src2, uint8_t imm8)
 
void vinsertps (XMMRegister dst, XMMRegister src1, Operand src2, uint8_t imm8)
 
void vpextrq (Register dst, XMMRegister src, int8_t imm8)
 
void vpinsrb (XMMRegister dst, XMMRegister src1, Register src2, uint8_t imm8)
 
void vpinsrb (XMMRegister dst, XMMRegister src1, Operand src2, uint8_t imm8)
 
void vpinsrw (XMMRegister dst, XMMRegister src1, Register src2, uint8_t imm8)
 
void vpinsrw (XMMRegister dst, XMMRegister src1, Operand src2, uint8_t imm8)
 
void vpinsrd (XMMRegister dst, XMMRegister src1, Register src2, uint8_t imm8)
 
void vpinsrd (XMMRegister dst, XMMRegister src1, Operand src2, uint8_t imm8)
 
void vpinsrq (XMMRegister dst, XMMRegister src1, Register src2, uint8_t imm8)
 
void vpinsrq (XMMRegister dst, XMMRegister src1, Operand src2, uint8_t imm8)
 
void vpshufd (XMMRegister dst, XMMRegister src, uint8_t imm8)
 
void vpshufd (YMMRegister dst, YMMRegister src, uint8_t imm8)
 
void vpshufd (XMMRegister dst, Operand src, uint8_t imm8)
 
void vpshufd (YMMRegister dst, Operand src, uint8_t imm8)
 
void vpshuflw (XMMRegister dst, XMMRegister src, uint8_t imm8)
 
void vpshuflw (YMMRegister dst, YMMRegister src, uint8_t imm8)
 
void vpshuflw (XMMRegister dst, Operand src, uint8_t imm8)
 
void vpshuflw (YMMRegister dst, Operand src, uint8_t imm8)
 
void vpshufhw (XMMRegister dst, XMMRegister src, uint8_t imm8)
 
void vpshufhw (YMMRegister dst, YMMRegister src, uint8_t imm8)
 
void vpshufhw (XMMRegister dst, Operand src, uint8_t imm8)
 
void vpshufhw (YMMRegister dst, Operand src, uint8_t imm8)
 
void vpblendw (XMMRegister dst, XMMRegister src1, XMMRegister src2, uint8_t mask)
 
void vpblendw (YMMRegister dst, YMMRegister src1, YMMRegister src2, uint8_t mask)
 
void vpblendw (XMMRegister dst, XMMRegister src1, Operand src2, uint8_t mask)
 
void vpblendw (YMMRegister dst, YMMRegister src1, Operand src2, uint8_t mask)
 
void vpalignr (XMMRegister dst, XMMRegister src1, XMMRegister src2, uint8_t imm8)
 
void vpalignr (YMMRegister dst, YMMRegister src1, YMMRegister src2, uint8_t imm8)
 
void vpalignr (XMMRegister dst, XMMRegister src1, Operand src2, uint8_t imm8)
 
void vpalignr (YMMRegister dst, YMMRegister src1, Operand src2, uint8_t imm8)
 
void vps (uint8_t op, XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vps (uint8_t op, YMMRegister dst, YMMRegister src1, YMMRegister src2)
 
void vps (uint8_t op, XMMRegister dst, XMMRegister src1, Operand src2)
 
void vps (uint8_t op, YMMRegister dst, YMMRegister src1, Operand src2)
 
void vps (uint8_t op, XMMRegister dst, XMMRegister src1, XMMRegister src2, uint8_t imm8)
 
void vps (uint8_t op, YMMRegister dst, YMMRegister src1, YMMRegister src2, uint8_t imm8)
 
void vpd (uint8_t op, XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vpd (uint8_t op, YMMRegister dst, YMMRegister src1, YMMRegister src2)
 
void vpd (uint8_t op, XMMRegister dst, YMMRegister src1, YMMRegister src2)
 
void vpd (uint8_t op, XMMRegister dst, XMMRegister src1, Operand src2)
 
void vpd (uint8_t op, YMMRegister dst, YMMRegister src1, Operand src2)
 
void vpd (uint8_t op, XMMRegister dst, YMMRegister src1, Operand src2)
 
void vcvtph2ps (XMMRegister dst, XMMRegister src)
 
void vcvtph2ps (YMMRegister dst, XMMRegister src)
 
void vcvtps2ph (XMMRegister dst, XMMRegister src, uint8_t imm8)
 
void vcvtps2ph (XMMRegister dst, YMMRegister src, uint8_t imm8)
 
void vpdpbusd (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vpdpbusd (YMMRegister dst, YMMRegister src1, YMMRegister src2)
 
void vpdpbssd (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void vpdpbssd (YMMRegister dst, YMMRegister src1, YMMRegister src2)
 
void andnq (Register dst, Register src1, Register src2)
 
void andnq (Register dst, Register src1, Operand src2)
 
void andnl (Register dst, Register src1, Register src2)
 
void andnl (Register dst, Register src1, Operand src2)
 
void bextrq (Register dst, Register src1, Register src2)
 
void bextrq (Register dst, Operand src1, Register src2)
 
void bextrl (Register dst, Register src1, Register src2)
 
void bextrl (Register dst, Operand src1, Register src2)
 
void blsiq (Register dst, Register src)
 
void blsiq (Register dst, Operand src)
 
void blsil (Register dst, Register src)
 
void blsil (Register dst, Operand src)
 
void blsmskq (Register dst, Register src)
 
void blsmskq (Register dst, Operand src)
 
void blsmskl (Register dst, Register src)
 
void blsmskl (Register dst, Operand src)
 
void blsrq (Register dst, Register src)
 
void blsrq (Register dst, Operand src)
 
void blsrl (Register dst, Register src)
 
void blsrl (Register dst, Operand src)
 
void tzcntq (Register dst, Register src)
 
void tzcntq (Register dst, Operand src)
 
void tzcntl (Register dst, Register src)
 
void tzcntl (Register dst, Operand src)
 
void lzcntq (Register dst, Register src)
 
void lzcntq (Register dst, Operand src)
 
void lzcntl (Register dst, Register src)
 
void lzcntl (Register dst, Operand src)
 
void popcntq (Register dst, Register src)
 
void popcntq (Register dst, Operand src)
 
void popcntl (Register dst, Register src)
 
void popcntl (Register dst, Operand src)
 
void bzhiq (Register dst, Register src1, Register src2)
 
void bzhiq (Register dst, Operand src1, Register src2)
 
void bzhil (Register dst, Register src1, Register src2)
 
void bzhil (Register dst, Operand src1, Register src2)
 
void mulxq (Register dst1, Register dst2, Register src)
 
void mulxq (Register dst1, Register dst2, Operand src)
 
void mulxl (Register dst1, Register dst2, Register src)
 
void mulxl (Register dst1, Register dst2, Operand src)
 
void pdepq (Register dst, Register src1, Register src2)
 
void pdepq (Register dst, Register src1, Operand src2)
 
void pdepl (Register dst, Register src1, Register src2)
 
void pdepl (Register dst, Register src1, Operand src2)
 
void pextq (Register dst, Register src1, Register src2)
 
void pextq (Register dst, Register src1, Operand src2)
 
void pextl (Register dst, Register src1, Register src2)
 
void pextl (Register dst, Register src1, Operand src2)
 
void sarxq (Register dst, Register src1, Register src2)
 
void sarxq (Register dst, Operand src1, Register src2)
 
void sarxl (Register dst, Register src1, Register src2)
 
void sarxl (Register dst, Operand src1, Register src2)
 
void shlxq (Register dst, Register src1, Register src2)
 
void shlxq (Register dst, Operand src1, Register src2)
 
void shlxl (Register dst, Register src1, Register src2)
 
void shlxl (Register dst, Operand src1, Register src2)
 
void shrxq (Register dst, Register src1, Register src2)
 
void shrxq (Register dst, Operand src1, Register src2)
 
void shrxl (Register dst, Register src1, Register src2)
 
void shrxl (Register dst, Operand src1, Register src2)
 
void rorxq (Register dst, Register src, uint8_t imm8)
 
void rorxq (Register dst, Operand src, uint8_t imm8)
 
void rorxl (Register dst, Register src, uint8_t imm8)
 
void rorxl (Register dst, Operand src, uint8_t imm8)
 
void mfence ()
 
void lfence ()
 
void pause ()
 
int SizeOfCodeGeneratedSince (Label *label)
 
void RecordDeoptReason (DeoptimizeReason reason, uint32_t node_id, SourcePosition position, int id)
 
void db (uint8_t data)
 
void dd (uint32_t data)
 
void dq (uint64_t data)
 
void dp (uintptr_t data)
 
void dq (Label *label)
 
void WriteBuiltinJumpTableEntry (Label *label, int table_pos)
 
void PatchConstPool ()
 
bool buffer_overflow () const
 
int available_space () const
 
uint8_t byte_at (int pos)
 
void set_byte_at (int pos, uint8_t value)
 
template<>
void EmitHelper (uint8_t x)
 
template<>
void EmitHelper (uint8_t x)
 
template<>
void EmitHelper (uint8_t x)
 
template<>
void EmitHelper (uint8_t x)
 
template<typename T >
void EmitHelper (T x)
 
- Public Member Functions inherited from v8::internal::AssemblerBase
 AssemblerBase (const AssemblerOptions &options, std::unique_ptr< AssemblerBuffer >)
 
virtual ~AssemblerBase ()
 
const AssemblerOptionsoptions () const
 
bool predictable_code_size () const
 
void set_predictable_code_size (bool value)
 
uint64_t enabled_cpu_features () const
 
void set_enabled_cpu_features (uint64_t features)
 
bool IsEnabled (CpuFeature f)
 
void EnableCpuFeature (CpuFeature f)
 
bool is_constant_pool_available () const
 
JumpOptimizationInfojump_optimization_info ()
 
void set_jump_optimization_info (JumpOptimizationInfo *jump_opt)
 
void FinalizeJumpOptimizationInfo ()
 
int pc_offset () const
 
int pc_offset_for_safepoint ()
 
uint8_t * buffer_start () const
 
int buffer_size () const
 
int instruction_size () const
 
std::unique_ptr< AssemblerBufferReleaseBuffer ()
 
void Print (Isolate *isolate)
 
V8_INLINE void RecordComment (const char *comment, const SourceLocation &loc=SourceLocation::Current())
 
V8_INLINE void RecordComment (std::string comment, const SourceLocation &loc=SourceLocation::Current())
 
- Public Member Functions inherited from v8::internal::AssemblerRISCVI
void lui (Register rd, int32_t imm20)
 
void auipc (Register rd, int32_t imm20)
 
void jal (Register rd, int32_t imm20)
 
void jalr (Register rd, Register rs1, int16_t imm12)
 
void beq (Register rs1, Register rs2, int16_t imm12)
 
void bne (Register rs1, Register rs2, int16_t imm12)
 
void blt (Register rs1, Register rs2, int16_t imm12)
 
void bge (Register rs1, Register rs2, int16_t imm12)
 
void bltu (Register rs1, Register rs2, int16_t imm12)
 
void bgeu (Register rs1, Register rs2, int16_t imm12)
 
void lb (Register rd, Register rs1, int16_t imm12)
 
void lh (Register rd, Register rs1, int16_t imm12)
 
void lw (Register rd, Register rs1, int16_t imm12)
 
void lbu (Register rd, Register rs1, int16_t imm12)
 
void lhu (Register rd, Register rs1, int16_t imm12)
 
void sb (Register source, Register base, int16_t imm12)
 
void sh (Register source, Register base, int16_t imm12)
 
void sw (Register source, Register base, int16_t imm12)
 
void addi (Register rd, Register rs1, int16_t imm12)
 
void slti (Register rd, Register rs1, int16_t imm12)
 
void sltiu (Register rd, Register rs1, int16_t imm12)
 
void xori (Register rd, Register rs1, int16_t imm12)
 
void ori (Register rd, Register rs1, int16_t imm12)
 
void andi (Register rd, Register rs1, int16_t imm12)
 
void slli (Register rd, Register rs1, uint8_t shamt)
 
void srli (Register rd, Register rs1, uint8_t shamt)
 
void srai (Register rd, Register rs1, uint8_t shamt)
 
void add (Register rd, Register rs1, Register rs2)
 
void sub (Register rd, Register rs1, Register rs2)
 
void sll (Register rd, Register rs1, Register rs2)
 
void slt (Register rd, Register rs1, Register rs2)
 
void sltu (Register rd, Register rs1, Register rs2)
 
void xor_ (Register rd, Register rs1, Register rs2)
 
void srl (Register rd, Register rs1, Register rs2)
 
void sra (Register rd, Register rs1, Register rs2)
 
void or_ (Register rd, Register rs1, Register rs2)
 
void and_ (Register rd, Register rs1, Register rs2)
 
void nor (Register rd, Register rs, Register rt)
 
void fence (uint8_t pred, uint8_t succ)
 
void fence_tso ()
 
void ecall ()
 
void ebreak ()
 
void sync ()
 
void unimp ()
 
int32_t branch_offset (Label *L)
 
int32_t jump_offset (Label *L)
 
void beq (Register rs1, Register rs2, Label *L)
 
void bne (Register rs1, Register rs2, Label *L)
 
void blt (Register rs1, Register rs2, Label *L)
 
void bge (Register rs1, Register rs2, Label *L)
 
void bltu (Register rs1, Register rs2, Label *L)
 
void bgeu (Register rs1, Register rs2, Label *L)
 
void beqz (Register rs, int16_t imm13)
 
void beqz (Register rs1, Label *L)
 
void bnez (Register rs, int16_t imm13)
 
void bnez (Register rs1, Label *L)
 
void blez (Register rs, int16_t imm13)
 
void blez (Register rs1, Label *L)
 
void bgez (Register rs, int16_t imm13)
 
void bgez (Register rs1, Label *L)
 
void bltz (Register rs, int16_t imm13)
 
void bltz (Register rs1, Label *L)
 
void bgtz (Register rs, int16_t imm13)
 
void bgtz (Register rs1, Label *L)
 
void bgt (Register rs1, Register rs2, int16_t imm13)
 
void bgt (Register rs1, Register rs2, Label *L)
 
void ble (Register rs1, Register rs2, int16_t imm13)
 
void ble (Register rs1, Register rs2, Label *L)
 
void bgtu (Register rs1, Register rs2, int16_t imm13)
 
void bgtu (Register rs1, Register rs2, Label *L)
 
void bleu (Register rs1, Register rs2, int16_t imm13)
 
void bleu (Register rs1, Register rs2, Label *L)
 
void j (int32_t imm21)
 
void j (Label *L)
 
void b (Label *L)
 
void jal (int32_t imm21)
 
void jal (Label *L)
 
void jr (Register rs)
 
void jr (Register rs, int32_t imm12)
 
void jalr (Register rs, int32_t imm12)
 
void jalr (Register rs)
 
void ret ()
 
void call (int32_t offset)
 
void mv (Register rd, Register rs)
 
void not_ (Register rd, Register rs)
 
void neg (Register rd, Register rs)
 
void seqz (Register rd, Register rs)
 
void snez (Register rd, Register rs)
 
void sltz (Register rd, Register rs)
 
void sgtz (Register rd, Register rs)
 
- Public Member Functions inherited from v8::internal::AssemblerRISCVA
void lr_w (bool aq, bool rl, Register rd, Register rs1)
 
void sc_w (bool aq, bool rl, Register rd, Register rs1, Register rs2)
 
void amoswap_w (bool aq, bool rl, Register rd, Register rs1, Register rs2)
 
void amoadd_w (bool aq, bool rl, Register rd, Register rs1, Register rs2)
 
void amoxor_w (bool aq, bool rl, Register rd, Register rs1, Register rs2)
 
void amoand_w (bool aq, bool rl, Register rd, Register rs1, Register rs2)
 
void amoor_w (bool aq, bool rl, Register rd, Register rs1, Register rs2)
 
void amomin_w (bool aq, bool rl, Register rd, Register rs1, Register rs2)
 
void amomax_w (bool aq, bool rl, Register rd, Register rs1, Register rs2)
 
void amominu_w (bool aq, bool rl, Register rd, Register rs1, Register rs2)
 
void amomaxu_w (bool aq, bool rl, Register rd, Register rs1, Register rs2)
 
- Public Member Functions inherited from v8::internal::AssemblerRISCVB
void sh1add (Register rd, Register rs1, Register rs2)
 
void sh2add (Register rd, Register rs1, Register rs2)
 
void sh3add (Register rd, Register rs1, Register rs2)
 
void andn (Register rd, Register rs1, Register rs2)
 
void orn (Register rd, Register rs1, Register rs2)
 
void xnor (Register rd, Register rs1, Register rs2)
 
void clz (Register rd, Register rs)
 
void ctz (Register rd, Register rs)
 
void cpop (Register rd, Register rs)
 
void max (Register rd, Register rs1, Register rs2)
 
void maxu (Register rd, Register rs1, Register rs2)
 
void min (Register rd, Register rs1, Register rs2)
 
void minu (Register rd, Register rs1, Register rs2)
 
void sextb (Register rd, Register rs)
 
void sexth (Register rd, Register rs)
 
void zexth (Register rd, Register rs)
 
void rol (Register rd, Register rs1, Register rs2)
 
void ror (Register rd, Register rs1, Register rs2)
 
void rori (Register rd, Register rs1, uint8_t shamt)
 
void orcb (Register rd, Register rs)
 
void rev8 (Register rd, Register rs)
 
void bclr (Register rd, Register rs1, Register rs2)
 
void bclri (Register rd, Register rs1, uint8_t shamt)
 
void bext (Register rd, Register rs1, Register rs2)
 
void bexti (Register rd, Register rs1, uint8_t shamt)
 
void binv (Register rd, Register rs1, Register rs2)
 
void binvi (Register rd, Register rs1, uint8_t shamt)
 
void bset (Register rd, Register rs1, Register rs2)
 
void bseti (Register rd, Register rs1, uint8_t shamt)
 
- Public Member Functions inherited from v8::internal::AssemblerRISCVF
void flw (FPURegister rd, Register rs1, int16_t imm12)
 
void fsw (FPURegister source, Register base, int16_t imm12)
 
void fmadd_s (FPURegister rd, FPURegister rs1, FPURegister rs2, FPURegister rs3, FPURoundingMode frm=RNE)
 
void fmsub_s (FPURegister rd, FPURegister rs1, FPURegister rs2, FPURegister rs3, FPURoundingMode frm=RNE)
 
void fnmsub_s (FPURegister rd, FPURegister rs1, FPURegister rs2, FPURegister rs3, FPURoundingMode frm=RNE)
 
void fnmadd_s (FPURegister rd, FPURegister rs1, FPURegister rs2, FPURegister rs3, FPURoundingMode frm=RNE)
 
void fadd_s (FPURegister rd, FPURegister rs1, FPURegister rs2, FPURoundingMode frm=RNE)
 
void fsub_s (FPURegister rd, FPURegister rs1, FPURegister rs2, FPURoundingMode frm=RNE)
 
void fmul_s (FPURegister rd, FPURegister rs1, FPURegister rs2, FPURoundingMode frm=RNE)
 
void fdiv_s (FPURegister rd, FPURegister rs1, FPURegister rs2, FPURoundingMode frm=RNE)
 
void fsqrt_s (FPURegister rd, FPURegister rs1, FPURoundingMode frm=RNE)
 
void fsgnj_s (FPURegister rd, FPURegister rs1, FPURegister rs2)
 
void fsgnjn_s (FPURegister rd, FPURegister rs1, FPURegister rs2)
 
void fsgnjx_s (FPURegister rd, FPURegister rs1, FPURegister rs2)
 
void fmin_s (FPURegister rd, FPURegister rs1, FPURegister rs2)
 
void fmax_s (FPURegister rd, FPURegister rs1, FPURegister rs2)
 
void fcvt_w_s (Register rd, FPURegister rs1, FPURoundingMode frm=RNE)
 
void fcvt_wu_s (Register rd, FPURegister rs1, FPURoundingMode frm=RNE)
 
void fmv_x_w (Register rd, FPURegister rs1)
 
void feq_s (Register rd, FPURegister rs1, FPURegister rs2)
 
void flt_s (Register rd, FPURegister rs1, FPURegister rs2)
 
void fle_s (Register rd, FPURegister rs1, FPURegister rs2)
 
void fclass_s (Register rd, FPURegister rs1)
 
void fcvt_s_w (FPURegister rd, Register rs1, FPURoundingMode frm=RNE)
 
void fcvt_s_wu (FPURegister rd, Register rs1, FPURoundingMode frm=RNE)
 
void fmv_w_x (FPURegister rd, Register rs1)
 
void fmv_s (FPURegister rd, FPURegister rs)
 
void fabs_s (FPURegister rd, FPURegister rs)
 
void fneg_s (FPURegister rd, FPURegister rs)
 
- Public Member Functions inherited from v8::internal::AssemblerRISCVD
void fld (FPURegister rd, Register rs1, int16_t imm12)
 
void fsd (FPURegister source, Register base, int16_t imm12)
 
void fmadd_d (FPURegister rd, FPURegister rs1, FPURegister rs2, FPURegister rs3, FPURoundingMode frm=RNE)
 
void fmsub_d (FPURegister rd, FPURegister rs1, FPURegister rs2, FPURegister rs3, FPURoundingMode frm=RNE)
 
void fnmsub_d (FPURegister rd, FPURegister rs1, FPURegister rs2, FPURegister rs3, FPURoundingMode frm=RNE)
 
void fnmadd_d (FPURegister rd, FPURegister rs1, FPURegister rs2, FPURegister rs3, FPURoundingMode frm=RNE)
 
void fadd_d (FPURegister rd, FPURegister rs1, FPURegister rs2, FPURoundingMode frm=RNE)
 
void fsub_d (FPURegister rd, FPURegister rs1, FPURegister rs2, FPURoundingMode frm=RNE)
 
void fmul_d (FPURegister rd, FPURegister rs1, FPURegister rs2, FPURoundingMode frm=RNE)
 
void fdiv_d (FPURegister rd, FPURegister rs1, FPURegister rs2, FPURoundingMode frm=RNE)
 
void fsqrt_d (FPURegister rd, FPURegister rs1, FPURoundingMode frm=RNE)
 
void fsgnj_d (FPURegister rd, FPURegister rs1, FPURegister rs2)
 
void fsgnjn_d (FPURegister rd, FPURegister rs1, FPURegister rs2)
 
void fsgnjx_d (FPURegister rd, FPURegister rs1, FPURegister rs2)
 
void fmin_d (FPURegister rd, FPURegister rs1, FPURegister rs2)
 
void fmax_d (FPURegister rd, FPURegister rs1, FPURegister rs2)
 
void fcvt_s_d (FPURegister rd, FPURegister rs1, FPURoundingMode frm=RNE)
 
void fcvt_d_s (FPURegister rd, FPURegister rs1, FPURoundingMode frm=RNE)
 
void feq_d (Register rd, FPURegister rs1, FPURegister rs2)
 
void flt_d (Register rd, FPURegister rs1, FPURegister rs2)
 
void fle_d (Register rd, FPURegister rs1, FPURegister rs2)
 
void fclass_d (Register rd, FPURegister rs1)
 
void fcvt_w_d (Register rd, FPURegister rs1, FPURoundingMode frm=RNE)
 
void fcvt_wu_d (Register rd, FPURegister rs1, FPURoundingMode frm=RNE)
 
void fcvt_d_w (FPURegister rd, Register rs1, FPURoundingMode frm=RNE)
 
void fcvt_d_wu (FPURegister rd, Register rs1, FPURoundingMode frm=RNE)
 
void fmv_d (FPURegister rd, FPURegister rs)
 
void fabs_d (FPURegister rd, FPURegister rs)
 
void fneg_d (FPURegister rd, FPURegister rs)
 
- Public Member Functions inherited from v8::internal::AssemblerRISCVM
void mul (Register rd, Register rs1, Register rs2)
 
void mulh (Register rd, Register rs1, Register rs2)
 
void mulhsu (Register rd, Register rs1, Register rs2)
 
void mulhu (Register rd, Register rs1, Register rs2)
 
void div (Register rd, Register rs1, Register rs2)
 
void divu (Register rd, Register rs1, Register rs2)
 
void rem (Register rd, Register rs1, Register rs2)
 
void remu (Register rd, Register rs1, Register rs2)
 
- Public Member Functions inherited from v8::internal::AssemblerRISCVC
void c_nop ()
 
void c_addi (Register rd, int8_t imm6)
 
void c_addi16sp (int16_t imm10)
 
void c_addi4spn (Register rd, int16_t uimm10)
 
void c_li (Register rd, int8_t imm6)
 
void c_lui (Register rd, int8_t imm6)
 
void c_slli (Register rd, uint8_t shamt6)
 
void c_lwsp (Register rd, uint16_t uimm8)
 
void c_jr (Register rs1)
 
void c_mv (Register rd, Register rs2)
 
void c_ebreak ()
 
void c_jalr (Register rs1)
 
void c_j (int16_t imm12)
 
void c_add (Register rd, Register rs2)
 
void c_sub (Register rd, Register rs2)
 
void c_and (Register rd, Register rs2)
 
void c_xor (Register rd, Register rs2)
 
void c_or (Register rd, Register rs2)
 
void c_swsp (Register rs2, uint16_t uimm8)
 
void c_lw (Register rd, Register rs1, uint16_t uimm7)
 
void c_sw (Register rs2, Register rs1, uint16_t uimm7)
 
void c_bnez (Register rs1, int16_t imm9)
 
void c_beqz (Register rs1, int16_t imm9)
 
void c_srli (Register rs1, int8_t shamt6)
 
void c_srai (Register rs1, int8_t shamt6)
 
void c_andi (Register rs1, int8_t imm6)
 
void c_fld (FPURegister rd, Register rs1, uint16_t uimm8)
 
void c_fsd (FPURegister rs2, Register rs1, uint16_t uimm8)
 
void c_fldsp (FPURegister rd, uint16_t uimm9)
 
void c_fsdsp (FPURegister rs2, uint16_t uimm9)
 
int CJumpOffset (Instr instr)
 
int16_t cjump_offset (Label *L)
 
int32_t cbranch_offset (Label *L)
 
void c_j (Label *L)
 
void c_bnez (Register rs1, Label *L)
 
void c_beqz (Register rs1, Label *L)
 
- Public Member Functions inherited from v8::internal::AssemblerRISCVZifencei
void fence_i ()
 
- Public Member Functions inherited from v8::internal::AssemblerRISCVZicsr
void csrrw (Register rd, ControlStatusReg csr, Register rs1)
 
void csrrs (Register rd, ControlStatusReg csr, Register rs1)
 
void csrrc (Register rd, ControlStatusReg csr, Register rs1)
 
void csrrwi (Register rd, ControlStatusReg csr, uint8_t imm5)
 
void csrrsi (Register rd, ControlStatusReg csr, uint8_t imm5)
 
void csrrci (Register rd, ControlStatusReg csr, uint8_t imm5)
 
void rdinstret (Register rd)
 
void rdinstreth (Register rd)
 
void rdcycle (Register rd)
 
void rdcycleh (Register rd)
 
void rdtime (Register rd)
 
void rdtimeh (Register rd)
 
void csrr (Register rd, ControlStatusReg csr)
 
void csrw (ControlStatusReg csr, Register rs)
 
void csrs (ControlStatusReg csr, Register rs)
 
void csrc (ControlStatusReg csr, Register rs)
 
void csrwi (ControlStatusReg csr, uint8_t imm)
 
void csrsi (ControlStatusReg csr, uint8_t imm)
 
void csrci (ControlStatusReg csr, uint8_t imm)
 
void frcsr (Register rd)
 
void fscsr (Register rd, Register rs)
 
void fscsr (Register rs)
 
void frrm (Register rd)
 
void fsrm (Register rd, Register rs)
 
void fsrm (Register rs)
 
void frflags (Register rd)
 
void fsflags (Register rd, Register rs)
 
void fsflags (Register rs)
 
- Public Member Functions inherited from v8::internal::AssemblerRISCVZicond
void czero_eqz (Register rd, Register rs1, Register rs2)
 
void czero_nez (Register rd, Register rs1, Register rs2)
 
- Public Member Functions inherited from v8::internal::AssemblerRISCVV
void vl (VRegister vd, Register rs1, uint8_t lumop, VSew vsew, MaskType mask=NoMask)
 
void vls (VRegister vd, Register rs1, Register rs2, VSew vsew, MaskType mask=NoMask)
 
void vlx (VRegister vd, Register rs1, VRegister vs3, VSew vsew, MaskType mask=NoMask)
 
void vs (VRegister vd, Register rs1, uint8_t sumop, VSew vsew, MaskType mask=NoMask)
 
void vss (VRegister vd, Register rs1, Register rs2, VSew vsew, MaskType mask=NoMask)
 
void vsx (VRegister vd, Register rs1, VRegister vs3, VSew vsew, MaskType mask=NoMask)
 
void vsu (VRegister vd, Register rs1, VRegister vs3, VSew vsew, MaskType mask=NoMask)
 
 SegInstr (vl) SegInstr(vs) SegInstr(vls) SegInstr(vss) SegInstr(vsx) SegInstr(vlx) void vmv_vv(VRegister vd
 
void vmv_vx (VRegister vd, Register rs1)
 
void vmv_vi (VRegister vd, uint8_t simm5)
 
void vmv_xs (Register rd, VRegister vs2)
 
void vmv_sx (VRegister vd, Register rs1)
 
void vmerge_vv (VRegister vd, VRegister vs1, VRegister vs2)
 
void vmerge_vx (VRegister vd, Register rs1, VRegister vs2)
 
void vmerge_vi (VRegister vd, uint8_t imm5, VRegister vs2)
 
void vredmaxu_vs (VRegister vd, VRegister vs2, VRegister vs1, MaskType mask=NoMask)
 
void vredmax_vs (VRegister vd, VRegister vs2, VRegister vs1, MaskType mask=NoMask)
 
void vredmin_vs (VRegister vd, VRegister vs2, VRegister vs1, MaskType mask=NoMask)
 
void vredminu_vs (VRegister vd, VRegister vs2, VRegister vs1, MaskType mask=NoMask)
 
void vadc_vv (VRegister vd, VRegister vs1, VRegister vs2)
 
void vadc_vx (VRegister vd, Register rs1, VRegister vs2)
 
void vadc_vi (VRegister vd, uint8_t imm5, VRegister vs2)
 
void vmadc_vv (VRegister vd, VRegister vs1, VRegister vs2)
 
void vmadc_vx (VRegister vd, Register rs1, VRegister vs2)
 
void vmadc_vi (VRegister vd, uint8_t imm5, VRegister vs2)
 
void vfmv_vf (VRegister vd, FPURegister fs1)
 
void vfmv_fs (FPURegister fd, VRegister vs2)
 
void vfmv_sf (VRegister vd, FPURegister fs)
 
void vfmerge_vf (VRegister vd, FPURegister fs1, VRegister vs2)
 
void vwaddu_wx (VRegister vd, VRegister vs2, Register rs1, MaskType mask=NoMask)
 
void vid_v (VRegister vd, MaskType mask=Mask)
 
void vnot_vv (VRegister dst, VRegister src, MaskType mask=NoMask)
 
void vneg_vv (VRegister dst, VRegister src, MaskType mask=NoMask)
 
void vfneg_vv (VRegister dst, VRegister src, MaskType mask=NoMask)
 
void vfabs_vv (VRegister dst, VRegister src, MaskType mask=NoMask)
 
void vfirst_m (Register rd, VRegister vs2, MaskType mask=NoMask)
 
void vcpop_m (Register rd, VRegister vs2, MaskType mask=NoMask)
 
void vmslt_vi (VRegister vd, VRegister vs1, int8_t imm5, MaskType mask=NoMask)
 
void vmsltu_vi (VRegister vd, VRegister vs1, int8_t imm5, MaskType mask=NoMask)
 
- Public Member Functions inherited from v8::internal::SharedMacroAssembler< MacroAssembler >
void Abspd (XMMRegister dst, XMMRegister src, Register tmp)
 
void Absps (XMMRegister dst, XMMRegister src, Register tmp)
 
void Absph (XMMRegister dst, XMMRegister src, Register tmp)
 
void Negpd (XMMRegister dst, XMMRegister src, Register tmp)
 
void Negps (XMMRegister dst, XMMRegister src, Register tmp)
 
void Negph (XMMRegister dst, XMMRegister src, Register tmp)
 
void Pextrd (Register dst, XMMRegister src, uint8_t imm8)
 
void Pinsrd (XMMRegister dst, XMMRegister src1, Op src2, uint8_t imm8, uint32_t *load_pc_offset=nullptr)
 
void Pinsrd (XMMRegister dst, Op src, uint8_t imm8, uint32_t *load_pc_offset=nullptr)
 
void F64x2ConvertLowI32x4U (XMMRegister dst, XMMRegister src, Register scratch)
 
void I32x4SConvertF32x4 (XMMRegister dst, XMMRegister src, XMMRegister tmp, Register scratch)
 
void I32x4TruncSatF64x2SZero (XMMRegister dst, XMMRegister src, XMMRegister scratch, Register tmp)
 
void I32x4TruncSatF64x2UZero (XMMRegister dst, XMMRegister src, XMMRegister scratch, Register tmp)
 
void I32x4TruncF32x4U (XMMRegister dst, XMMRegister src, XMMRegister scratch1, XMMRegister scratch2)
 
void I32x4ExtAddPairwiseI16x8S (XMMRegister dst, XMMRegister src, Register scratch)
 
void I16x8ExtAddPairwiseI8x16S (XMMRegister dst, XMMRegister src, XMMRegister scratch, Register tmp)
 
void I16x8ExtAddPairwiseI8x16U (XMMRegister dst, XMMRegister src, Register scratch)
 
void I8x16Swizzle (XMMRegister dst, XMMRegister src, XMMRegister mask, XMMRegister scratch, Register tmp, bool omit_add=false)
 
void I8x16Popcnt (XMMRegister dst, XMMRegister src, XMMRegister tmp1, XMMRegister tmp2, Register scratch)
 
- Public Member Functions inherited from v8::internal::SharedMacroAssemblerBase
void Move (Register dst, uint32_t src)
 
void Move (Register dst, Register src)
 
void Add (Register dst, Immediate src)
 
void And (Register dst, Immediate src)
 
void Movhps (XMMRegister dst, XMMRegister src1, Operand src2)
 
void Movlps (XMMRegister dst, XMMRegister src1, Operand src2)
 
void Blendvps (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister mask)
 
void Blendvpd (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister mask)
 
void Pblendvb (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister mask)
 
template<typename Op >
void Pinsrb (XMMRegister dst, XMMRegister src1, Op src2, uint8_t imm8, uint32_t *load_pc_offset=nullptr)
 
template<typename Op >
void Pinsrw (XMMRegister dst, XMMRegister src1, Op src2, uint8_t imm8, uint32_t *load_pc_offset=nullptr)
 
template<typename Op >
void Pshufb (XMMRegister dst, XMMRegister src, Op mask)
 
template<typename Op >
void Pshufb (XMMRegister dst, Op mask)
 
void Shufps (XMMRegister dst, XMMRegister src1, XMMRegister src2, uint8_t imm8)
 
void F64x2ExtractLane (DoubleRegister dst, XMMRegister src, uint8_t lane)
 
void F64x2ReplaceLane (XMMRegister dst, XMMRegister src, DoubleRegister rep, uint8_t lane)
 
void F64x2Min (XMMRegister dst, XMMRegister lhs, XMMRegister rhs, XMMRegister scratch)
 
void F64x2Max (XMMRegister dst, XMMRegister lhs, XMMRegister rhs, XMMRegister scratch)
 
void F32x4Splat (XMMRegister dst, DoubleRegister src)
 
void F32x4ExtractLane (FloatRegister dst, XMMRegister src, uint8_t lane)
 
void F32x4Min (XMMRegister dst, XMMRegister lhs, XMMRegister rhs, XMMRegister scratch)
 
void F32x4Max (XMMRegister dst, XMMRegister lhs, XMMRegister rhs, XMMRegister scratch)
 
void S128Store32Lane (Operand dst, XMMRegister src, uint8_t laneidx)
 
void I8x16Splat (XMMRegister dst, Register src, XMMRegister scratch)
 
void I8x16Splat (XMMRegister dst, Operand src, XMMRegister scratch)
 
void I8x16Shl (XMMRegister dst, XMMRegister src1, uint8_t src2, Register tmp1, XMMRegister tmp2)
 
void I8x16Shl (XMMRegister dst, XMMRegister src1, Register src2, Register tmp1, XMMRegister tmp2, XMMRegister tmp3)
 
void I8x16ShrS (XMMRegister dst, XMMRegister src1, uint8_t src2, XMMRegister tmp)
 
void I8x16ShrS (XMMRegister dst, XMMRegister src1, Register src2, Register tmp1, XMMRegister tmp2, XMMRegister tmp3)
 
void I8x16ShrU (XMMRegister dst, XMMRegister src1, uint8_t src2, Register tmp1, XMMRegister tmp2)
 
void I8x16ShrU (XMMRegister dst, XMMRegister src1, Register src2, Register tmp1, XMMRegister tmp2, XMMRegister tmp3)
 
void I16x8Splat (XMMRegister dst, Register src)
 
void I16x8Splat (XMMRegister dst, Operand src)
 
void I16x8ExtMulLow (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister scrat, bool is_signed)
 
void I16x8ExtMulHighS (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister scratch)
 
void I16x8ExtMulHighU (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister scratch)
 
void I16x8SConvertI8x16High (XMMRegister dst, XMMRegister src)
 
void I16x8UConvertI8x16High (XMMRegister dst, XMMRegister src, XMMRegister scratch)
 
void I16x8Q15MulRSatS (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister scratch)
 
void I16x8DotI8x16I7x16S (XMMRegister dst, XMMRegister src1, XMMRegister src2)
 
void I32x4DotI8x16I7x16AddS (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister src3, XMMRegister scratch, XMMRegister splat_reg)
 
void I32x4ExtAddPairwiseI16x8U (XMMRegister dst, XMMRegister src, XMMRegister tmp)
 
void I32x4ExtMul (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister scratch, bool low, bool is_signed)
 
void I32x4SConvertI16x8High (XMMRegister dst, XMMRegister src)
 
void I32x4UConvertI16x8High (XMMRegister dst, XMMRegister src, XMMRegister scratch)
 
void I64x2Neg (XMMRegister dst, XMMRegister src, XMMRegister scratch)
 
void I64x2Abs (XMMRegister dst, XMMRegister src, XMMRegister scratch)
 
void I64x2GtS (XMMRegister dst, XMMRegister src0, XMMRegister src1, XMMRegister scratch)
 
void I64x2GeS (XMMRegister dst, XMMRegister src0, XMMRegister src1, XMMRegister scratch)
 
void I64x2ShrS (XMMRegister dst, XMMRegister src, uint8_t shift, XMMRegister xmm_tmp)
 
void I64x2ShrS (XMMRegister dst, XMMRegister src, Register shift, XMMRegister xmm_tmp, XMMRegister xmm_shift, Register tmp_shift)
 
void I64x2Mul (XMMRegister dst, XMMRegister lhs, XMMRegister rhs, XMMRegister tmp1, XMMRegister tmp2)
 
void I64x2ExtMul (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister scratch, bool low, bool is_signed)
 
void I64x2SConvertI32x4High (XMMRegister dst, XMMRegister src)
 
void I64x2UConvertI32x4High (XMMRegister dst, XMMRegister src, XMMRegister scratch)
 
void S128Not (XMMRegister dst, XMMRegister src, XMMRegister scratch)
 
void S128Select (XMMRegister dst, XMMRegister mask, XMMRegister src1, XMMRegister src2, XMMRegister scratch)
 
void S128Load8Splat (XMMRegister dst, Operand src, XMMRegister scratch)
 
void S128Load16Splat (XMMRegister dst, Operand src, XMMRegister scratch)
 
void S128Load32Splat (XMMRegister dst, Operand src)
 
void S128Store64Lane (Operand dst, XMMRegister src, uint8_t laneidx)
 
void F64x2Qfma (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister src3, XMMRegister tmp)
 
void F64x2Qfms (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister src3, XMMRegister tmp)
 
void F32x4Qfma (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister src3, XMMRegister tmp)
 
void F32x4Qfms (XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister src3, XMMRegister tmp)
 
 MacroAssemblerBase (Isolate *isolate, CodeObjectRequired create_code_object, std::unique_ptr< AssemblerBuffer > buffer={})
 
 MacroAssemblerBase (Isolate *isolate, MaybeAssemblerZone zone, CodeObjectRequired create_code_object, std::unique_ptr< AssemblerBuffer > buffer={})
 
 MacroAssemblerBase (Isolate *isolate, const AssemblerOptions &options, CodeObjectRequired create_code_object, std::unique_ptr< AssemblerBuffer > buffer={})
 
 MacroAssemblerBase (Isolate *isolate, MaybeAssemblerZone zone, AssemblerOptions options, CodeObjectRequired create_code_object, std::unique_ptr< AssemblerBuffer > buffer={})
 
 MacroAssemblerBase (MaybeAssemblerZone zone, AssemblerOptions options, CodeObjectRequired create_code_object, std::unique_ptr< AssemblerBuffer > buffer={})
 

Static Public Member Functions

static constexpr RegList GetAllocatableRegisters ()
 
static constexpr DoubleRegList GetAllocatableDoubleRegisters ()
 
- Static Public Member Functions inherited from v8::internal::MacroAssembler
static int ActivationFrameAlignment ()
 
static bool IsNearCallOffset (int64_t offset)
 
static unsigned CountSetHalfWords (uint64_t imm, unsigned reg_size)
 
static CPURegList DefaultTmpList ()
 
static CPURegList DefaultFPTmpList ()
 
static bool IsImmMovn (uint64_t imm, unsigned reg_size)
 
static bool IsImmMovz (uint64_t imm, unsigned reg_size)
 
static int InstrCountForLi64Bit (int64_t value)
 
static bool IsNearCallOffset (int64_t offset)
 
static int64_t CalculateTargetOffset (Address target, RelocInfo::Mode rmode, uint8_t *pc)
 
static int ActivationFrameAlignment ()
 
static int InstrCountForLi64Bit (int64_t value)
 
static int ActivationFrameAlignment ()
 
static int ActivationFrameAlignment ()
 
static int CallSizeNotPredictableCodeSize (Address target, RelocInfo::Mode rmode, Condition cond=al)
 
static int InstrCountForLi64Bit (int64_t value)
 
static int64_t CalculateTargetOffset (Address target, RelocInfo::Mode rmode, uint8_t *pc)
 
static int ActivationFrameAlignment ()
 
static int ActivationFrameAlignment ()
 
static int CallSizeNotPredictableCodeSize (Address target, RelocInfo::Mode rmode, Condition cond=al)
 
static int ArgumentStackSlotsForCFunctionCall (int num_arguments)
 
- Static Public Member Functions inherited from v8::internal::MacroAssemblerBase
static constexpr bool CanBeImmediate (RootIndex index)
 
static Tagged_t ReadOnlyRootPtr (RootIndex index, Isolate *isolate)
 
static int32_t RootRegisterOffsetForRootIndex (RootIndex root_index)
 
static int32_t RootRegisterOffsetForBuiltin (Builtin builtin)
 
static intptr_t RootRegisterOffsetForExternalReference (Isolate *isolate, const ExternalReference &reference)
 
static int32_t RootRegisterOffsetForExternalReferenceTableEntry (Isolate *isolate, const ExternalReference &reference)
 
static bool IsAddressableThroughRootRegister (Isolate *isolate, const ExternalReference &reference)
 
- Static Public Member Functions inherited from v8::internal::Assembler
static RegList DefaultTmpList ()
 
static VfpRegList DefaultFPTmpList ()
 
static V8_INLINE bool is_constant_pool_load (Address pc)
 
static V8_INLINE Address constant_pool_entry_address (Address pc, Address constant_pool)
 
static V8_INLINE Address target_address_at (Address pc, Address constant_pool)
 
static V8_INLINE void set_target_address_at (Address pc, Address constant_pool, Address target, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static int deserialization_special_target_size (Address location)
 
static void deserialization_set_target_internal_reference_at (Address pc, Address target, WritableJitAllocation &jit_allocation, RelocInfo::Mode mode=RelocInfo::INTERNAL_REFERENCE)
 
static uint32_t uint32_constant_at (Address pc, Address constant_pool)
 
static void set_uint32_constant_at (Address pc, Address constant_pool, uint32_t new_constant, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static bool ImmediateFitsAddrMode1Instruction (int32_t imm32)
 
static Instr instr_at (Address pc)
 
static void instr_at_put (Address pc, Instr instr)
 
static Condition GetCondition (Instr instr)
 
static bool IsLdrRegisterImmediate (Instr instr)
 
static bool IsVldrDRegisterImmediate (Instr instr)
 
static int GetLdrRegisterImmediateOffset (Instr instr)
 
static int GetVldrDRegisterImmediateOffset (Instr instr)
 
static Instr SetLdrRegisterImmediateOffset (Instr instr, int offset)
 
static Instr SetVldrDRegisterImmediateOffset (Instr instr, int offset)
 
static bool IsStrRegisterImmediate (Instr instr)
 
static Instr SetStrRegisterImmediateOffset (Instr instr, int offset)
 
static bool IsAddRegisterImmediate (Instr instr)
 
static Instr SetAddRegisterImmediateOffset (Instr instr, int offset)
 
static Register GetRd (Instr instr)
 
static Register GetRn (Instr instr)
 
static Register GetRm (Instr instr)
 
static bool IsPush (Instr instr)
 
static bool IsPop (Instr instr)
 
static bool IsStrRegFpOffset (Instr instr)
 
static bool IsLdrRegFpOffset (Instr instr)
 
static bool IsStrRegFpNegOffset (Instr instr)
 
static bool IsLdrRegFpNegOffset (Instr instr)
 
static bool IsLdrPcImmediateOffset (Instr instr)
 
static bool IsBOrBlPcImmediateOffset (Instr instr)
 
static bool IsVldrDPcImmediateOffset (Instr instr)
 
static bool IsBlxReg (Instr instr)
 
static bool IsBlxIp (Instr instr)
 
static bool IsTstImmediate (Instr instr)
 
static bool IsCmpRegister (Instr instr)
 
static bool IsCmpImmediate (Instr instr)
 
static Register GetCmpImmediateRegister (Instr instr)
 
static int GetCmpImmediateRawImmediate (Instr instr)
 
static bool IsNop (Instr instr, int type=NON_MARKING_NOP)
 
static bool IsMovImmed (Instr instr)
 
static bool IsOrrImmed (Instr instr)
 
static bool IsMovT (Instr instr)
 
static Instr GetMovTPattern ()
 
static bool IsMovW (Instr instr)
 
static Instr GetMovWPattern ()
 
static Instr EncodeMovwImmediate (uint32_t immediate)
 
static Instr PatchMovwImmediate (Instr instruction, uint32_t immediate)
 
static int DecodeShiftImm (Instr instr)
 
static Instr PatchShiftImm (Instr instr, int immed)
 
static Address target_pointer_address_at (Address pc)
 
static Address target_address_at (Address pc, Address constant_pool)
 
static Tagged_t target_compressed_address_at (Address pc, Address constant_pool)
 
static void set_target_address_at (Address pc, Address constant_pool, Address target, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static void set_target_compressed_address_at (Address pc, Address constant_pool, Tagged_t target, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static Builtin target_builtin_at (Address pc)
 
static int deserialization_special_target_size (Address location)
 
static void deserialization_set_target_internal_reference_at (Address pc, Address target, WritableJitAllocation &jit_allocation, RelocInfo::Mode mode=RelocInfo::INTERNAL_REFERENCE)
 
static uint32_t uint32_constant_at (Address pc, Address constant_pool)
 
static void set_uint32_constant_at (Address pc, Address constant_pool, uint32_t new_constant, WritableJitAllocation *jit_allocation=nullptr, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static bool IsConstantPoolAt (Instruction *instr)
 
static int ConstantPoolSizeAt (Instruction *instr)
 
static Instr Rd (CPURegister rd)
 
static Instr Rn (CPURegister rn)
 
static Instr Rm (CPURegister rm)
 
static Instr RmNot31 (CPURegister rm)
 
static Instr Ra (CPURegister ra)
 
static Instr Rt (CPURegister rt)
 
static Instr Rt2 (CPURegister rt2)
 
static Instr Rs (CPURegister rs)
 
static Instr RdSP (Register rd)
 
static Instr RnSP (Register rn)
 
static Instr Flags (FlagsUpdate S)
 
static Instr Cond (Condition cond)
 
static Instr ImmPCRelAddress (int imm21)
 
static Instr ImmUncondBranch (int imm26)
 
static Instr ImmCondBranch (int imm19)
 
static Instr ImmCmpBranch (int imm19)
 
static Instr ImmTestBranch (int imm14)
 
static Instr ImmTestBranchBit (unsigned bit_pos)
 
static Instr SF (Register rd)
 
static Instr ImmAddSub (int imm)
 
static Instr ImmS (unsigned imms, unsigned reg_size)
 
static Instr ImmR (unsigned immr, unsigned reg_size)
 
static Instr ImmSetBits (unsigned imms, unsigned reg_size)
 
static Instr ImmRotate (unsigned immr, unsigned reg_size)
 
static Instr ImmLLiteral (int imm19)
 
static Instr BitN (unsigned bitn, unsigned reg_size)
 
static Instr ShiftDP (Shift shift)
 
static Instr ImmDPShift (unsigned amount)
 
static Instr ExtendMode (Extend extend)
 
static Instr ImmExtendShift (unsigned left_shift)
 
static Instr ImmCondCmp (unsigned imm)
 
static Instr Nzcv (StatusFlags nzcv)
 
static constexpr bool IsImmAddSub (int64_t immediate)
 
static constexpr bool IsImmConditionalCompare (int64_t immediate)
 
static bool IsImmLogical (uint64_t value, unsigned width, unsigned *n, unsigned *imm_s, unsigned *imm_r)
 
static Instr ImmLSUnsigned (int imm12)
 
static Instr ImmLS (int imm9)
 
static Instr ImmLSPair (int imm7, unsigned size)
 
static Instr ImmShiftLS (unsigned shift_amount)
 
static Instr ImmException (int imm16)
 
static Instr ImmSystemRegister (int imm15)
 
static Instr ImmHint (int imm7)
 
static Instr ImmBarrierDomain (int imm2)
 
static Instr ImmBarrierType (int imm2)
 
static unsigned CalcLSDataSizeLog2 (LoadStoreOp op)
 
static Instr VFormat (VRegister vd)
 
static Instr FPFormat (VRegister vd)
 
static Instr LSVFormat (VRegister vd)
 
static Instr SFormat (VRegister vd)
 
static Instr ImmNEONHLM (int index, int num_bits)
 
static Instr ImmNEONExt (int imm4)
 
static Instr ImmNEON5 (Instr format, int index)
 
static Instr ImmNEON4 (Instr format, int index)
 
static Instr ImmNEONabcdefgh (int imm8)
 
static Instr NEONCmode (int cmode)
 
static Instr NEONModImmOp (int op)
 
static constexpr bool IsImmLSUnscaled (int64_t offset)
 
static constexpr bool IsImmLSScaled (int64_t offset, unsigned size_log2)
 
static bool IsImmLLiteral (int64_t offset)
 
static Instr ImmMoveWide (int imm)
 
static Instr ShiftMoveWide (int shift)
 
static Instr ImmFP (double imm)
 
static Instr ImmNEONFP (double imm)
 
static Instr FPScale (unsigned scale)
 
static Instr FPType (VRegister fd)
 
static Address target_address_at (Address pc, Address constant_pool)
 
static void set_target_address_at (Address pc, Address constant_pool, Address target, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static int deserialization_special_target_size (Address instruction_payload)
 
static void deserialization_set_target_internal_reference_at (Address pc, Address target, WritableJitAllocation &jit_allocation, RelocInfo::Mode mode=RelocInfo::INTERNAL_REFERENCE)
 
static uint32_t uint32_constant_at (Address pc, Address constant_pool)
 
static void set_uint32_constant_at (Address pc, Address constant_pool, uint32_t new_constant, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static bool IsNop (Address addr)
 
static Address target_address_at (Address pc)
 
static uint32_t target_compressed_address_at (Address pc)
 
static Address target_address_at (Address pc, Address constant_pool)
 
static Tagged_t target_compressed_address_at (Address pc, Address constant_pool)
 
static void set_target_address_at (Address pc, Address constant_pool, Address target, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static void set_target_compressed_address_at (Address pc, Address constant_pool, Tagged_t target, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static Builtin target_builtin_at (Address pc)
 
static void set_target_value_at (Address pc, uint64_t target, WritableJitAllocation *jit_allocation=nullptr, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static void set_target_compressed_value_at (Address pc, uint32_t target, WritableJitAllocation *jit_allocation=nullptr, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static void JumpLabelToJumpRegister (Address pc)
 
static int deserialization_special_target_size (Address instruction_payload)
 
static void deserialization_set_target_internal_reference_at (Address pc, Address target, WritableJitAllocation &jit_allocation, RelocInfo::Mode mode=RelocInfo::INTERNAL_REFERENCE)
 
static uint32_t uint32_constant_at (Address pc, Address constant_pool)
 
static void set_uint32_constant_at (Address pc, Address constant_pool, uint32_t new_constant, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static void RelocateRelativeReference (RelocInfo::Mode rmode, Address pc, intptr_t pc_delta, WritableJitAllocation *jit_allocation=nullptr)
 
static Instr instr_at (Address pc)
 
static void instr_at_put (Address pc, Instr instr, WritableJitAllocation *jit_allocation=nullptr)
 
static bool IsBranch (Instr instr)
 
static bool IsB (Instr instr)
 
static bool IsBz (Instr instr)
 
static bool IsNal (Instr instr)
 
static bool IsBeq (Instr instr)
 
static bool IsBne (Instr instr)
 
static bool IsJump (Instr instr)
 
static bool IsMov (Instr instr, Register rd, Register rs)
 
static bool IsPcAddi (Instr instr)
 
static bool IsJ (Instr instr)
 
static bool IsLu12i_w (Instr instr)
 
static bool IsOri (Instr instr)
 
static bool IsLu32i_d (Instr instr)
 
static bool IsLu52i_d (Instr instr)
 
static bool IsNop (Instr instr, unsigned int type)
 
static Register GetRjReg (Instr instr)
 
static Register GetRkReg (Instr instr)
 
static Register GetRdReg (Instr instr)
 
static uint32_t GetRj (Instr instr)
 
static uint32_t GetRjField (Instr instr)
 
static uint32_t GetRk (Instr instr)
 
static uint32_t GetRkField (Instr instr)
 
static uint32_t GetRd (Instr instr)
 
static uint32_t GetRdField (Instr instr)
 
static uint32_t GetSa2 (Instr instr)
 
static uint32_t GetSa3 (Instr instr)
 
static uint32_t GetSa2Field (Instr instr)
 
static uint32_t GetSa3Field (Instr instr)
 
static uint32_t GetOpcodeField (Instr instr)
 
static uint32_t GetFunction (Instr instr)
 
static uint32_t GetFunctionField (Instr instr)
 
static uint32_t GetImmediate16 (Instr instr)
 
static uint32_t GetLabelConst (Instr instr)
 
static bool IsAddImmediate (Instr instr)
 
static Instr SetAddImmediateOffset (Instr instr, int16_t offset)
 
static bool IsAndImmediate (Instr instr)
 
static bool IsEmittedConstant (Instr instr)
 
static Address target_address_at (Address pc)
 
static V8_INLINE void set_target_address_at (Address pc, Address target, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static V8_INLINE Address target_address_at (Address pc, Address constant_pool)
 
static V8_INLINE void set_target_address_at (Address pc, Address constant_pool, Address target, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static void set_target_value_at (Address pc, uint64_t target, WritableJitAllocation *jit_allocation=nullptr, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static void JumpLabelToJumpRegister (Address pc)
 
static int deserialization_special_target_size (Address instruction_payload)
 
static void deserialization_set_target_internal_reference_at (Address pc, Address target, WritableJitAllocation &jit_allocation, RelocInfo::Mode mode=RelocInfo::INTERNAL_REFERENCE)
 
static uint32_t uint32_constant_at (Address pc, Address constant_pool)
 
static void set_uint32_constant_at (Address pc, Address constant_pool, uint32_t new_constant, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static int RelocateInternalReference (RelocInfo::Mode rmode, Address pc, intptr_t pc_delta, WritableJitAllocation *jit_allocation=nullptr)
 
static Instr instr_at (Address pc)
 
static void instr_at_put (Address pc, Instr instr, WritableJitAllocation *jit_allocation=nullptr)
 
static bool IsBranch (Instr instr)
 
static bool IsMsaBranch (Instr instr)
 
static bool IsBc (Instr instr)
 
static bool IsNal (Instr instr)
 
static bool IsBzc (Instr instr)
 
static bool IsBeq (Instr instr)
 
static bool IsBne (Instr instr)
 
static bool IsBeqzc (Instr instr)
 
static bool IsBnezc (Instr instr)
 
static bool IsBeqc (Instr instr)
 
static bool IsBnec (Instr instr)
 
static bool IsJump (Instr instr)
 
static bool IsJ (Instr instr)
 
static bool IsLui (Instr instr)
 
static bool IsOri (Instr instr)
 
static bool IsMov (Instr instr, Register rd, Register rs)
 
static bool IsJal (Instr instr)
 
static bool IsJr (Instr instr)
 
static bool IsJalr (Instr instr)
 
static bool IsNop (Instr instr, unsigned int type)
 
static bool IsPop (Instr instr)
 
static bool IsPush (Instr instr)
 
static bool IsLwRegFpOffset (Instr instr)
 
static bool IsSwRegFpOffset (Instr instr)
 
static bool IsLwRegFpNegOffset (Instr instr)
 
static bool IsSwRegFpNegOffset (Instr instr)
 
static Register GetRtReg (Instr instr)
 
static Register GetRsReg (Instr instr)
 
static Register GetRdReg (Instr instr)
 
static uint32_t GetRt (Instr instr)
 
static uint32_t GetRtField (Instr instr)
 
static uint32_t GetRs (Instr instr)
 
static uint32_t GetRsField (Instr instr)
 
static uint32_t GetRd (Instr instr)
 
static uint32_t GetRdField (Instr instr)
 
static uint32_t GetSa (Instr instr)
 
static uint32_t GetSaField (Instr instr)
 
static uint32_t GetOpcodeField (Instr instr)
 
static uint32_t GetFunction (Instr instr)
 
static uint32_t GetFunctionField (Instr instr)
 
static uint32_t GetImmediate16 (Instr instr)
 
static uint32_t GetLabelConst (Instr instr)
 
static int32_t GetBranchOffset (Instr instr)
 
static bool IsLw (Instr instr)
 
static int16_t GetLwOffset (Instr instr)
 
static Instr SetLwOffset (Instr instr, int16_t offset)
 
static bool IsSw (Instr instr)
 
static Instr SetSwOffset (Instr instr, int16_t offset)
 
static bool IsAddImmediate (Instr instr)
 
static Instr SetAddImmediateOffset (Instr instr, int16_t offset)
 
static bool IsAndImmediate (Instr instr)
 
static bool IsEmittedConstant (Instr instr)
 
static bool IsCompactBranchSupported ()
 
static V8_INLINE bool IsConstantPoolLoadStart (Address pc, ConstantPoolEntry::Access *access=nullptr)
 
static V8_INLINE bool IsConstantPoolLoadEnd (Address pc, ConstantPoolEntry::Access *access=nullptr)
 
static V8_INLINE int GetConstantPoolOffset (Address pc, ConstantPoolEntry::Access access, ConstantPoolEntry::Type type)
 
static V8_INLINE Address target_constant_pool_address_at (Address pc, Address constant_pool, ConstantPoolEntry::Access access, ConstantPoolEntry::Type type)
 
static V8_INLINE Address target_address_at (Address pc, Address constant_pool)
 
static V8_INLINE void set_target_address_at (Address pc, Address constant_pool, Address target, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static Tagged_t target_compressed_address_at (Address pc, Address constant_pool)
 
static void set_target_compressed_address_at (Address pc, Address constant_pool, Tagged_t target, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static int deserialization_special_target_size (Address instruction_payload)
 
static void deserialization_set_target_internal_reference_at (Address pc, Address target, WritableJitAllocation &jit_allocation, RelocInfo::Mode mode=RelocInfo::INTERNAL_REFERENCE)
 
static uint32_t uint32_constant_at (Address pc, Address constant_pool)
 
static void set_uint32_constant_at (Address pc, Address constant_pool, uint32_t new_constant, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static int encode_crbit (const CRegister &cr, enum CRBit crbit)
 
static Instr instr_at (Address pc)
 
static void instr_at_put (Address pc, Instr instr)
 
static Condition GetCondition (Instr instr)
 
static bool IsLis (Instr instr)
 
static bool IsLi (Instr instr)
 
static bool IsAddic (Instr instr)
 
static bool IsOri (Instr instr)
 
static bool IsBranch (Instr instr)
 
static Register GetRA (Instr instr)
 
static Register GetRB (Instr instr)
 
static bool Is64BitLoadIntoR12 (Instr instr1, Instr instr2, Instr instr3, Instr instr4, Instr instr5)
 
static bool IsCmpRegister (Instr instr)
 
static bool IsCmpImmediate (Instr instr)
 
static bool IsRlwinm (Instr instr)
 
static bool IsAndi (Instr instr)
 
static bool IsRldicl (Instr instr)
 
static bool IsCrSet (Instr instr)
 
static Register GetCmpImmediateRegister (Instr instr)
 
static int GetCmpImmediateRawImmediate (Instr instr)
 
static bool IsNop (Instr instr, int type=NON_MARKING_NOP)
 
static RegList DefaultTmpList ()
 
static DoubleRegList DefaultFPTmpList ()
 
static int BrachlongOffset (Instr auipc, Instr jalr)
 
static int PatchBranchlongOffset (Address pc, Instr auipc, Instr instr_I, int32_t offset, WritableJitAllocation *jit_allocation=nullptr)
 
static Builtin target_builtin_at (Address pc)
 
static Address target_constant_address_at (Address pc)
 
static Address target_address_at (Address pc, Address constant_pool)
 
static void set_target_address_at (Address pc, Address constant_pool, Address target, WritableJitAllocation *jit_allocation=nullptr, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static Tagged_t target_compressed_address_at (Address pc, Address constant_pool)
 
static void set_target_compressed_address_at (Address pc, Address constant_pool, Tagged_t target, WritableJitAllocation *jit_allocation=nullptr, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static bool IsConstantPoolAt (Instruction *instr)
 
static int ConstantPoolSizeAt (Instruction *instr)
 
static int32_t target_constant32_at (Address pc)
 
static void set_target_constant32_at (Address pc, uint32_t target, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode)
 
static void JumpLabelToJumpRegister (Address pc)
 
static void deserialization_set_special_target_at (Address location, Tagged< Code > code, Address target)
 
static int deserialization_special_target_size (Address instruction_payload)
 
static void deserialization_set_target_internal_reference_at (Address pc, Address target, WritableJitAllocation &jit_allocation, RelocInfo::Mode mode=RelocInfo::INTERNAL_REFERENCE)
 
static uint32_t uint32_constant_at (Address pc, Address constant_pool)
 
static void set_uint32_constant_at (Address pc, Address constant_pool, uint32_t new_constant, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static int RelocateInternalReference (RelocInfo::Mode rmode, Address pc, intptr_t pc_delta)
 
static void RelocateRelativeReference (RelocInfo::Mode rmode, Address pc, intptr_t pc_delta)
 
static Instr instr_at (Address pc)
 
static void instr_at_put (Address pc, Instr instr, WritableJitAllocation *jit_allocation=nullptr)
 
static RegList DefaultTmpList ()
 
static DoubleRegList DefaultFPTmpList ()
 
static V8_INLINE Address target_address_at (Address pc, Address constant_pool)
 
static Tagged_t target_compressed_address_at (Address pc, Address constant_pool)
 
static V8_INLINE void set_target_address_at (Address pc, Address constant_pool, Address target, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static void set_target_compressed_address_at (Address pc, Address constant_pool, Tagged_t target, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static int deserialization_special_target_size (Address instruction_payload)
 
static void deserialization_set_target_internal_reference_at (Address pc, Address target, WritableJitAllocation &jit_allocation, RelocInfo::Mode mode=RelocInfo::INTERNAL_REFERENCE)
 
static uint32_t uint32_constant_at (Address pc, Address constant_pool)
 
static void set_uint32_constant_at (Address pc, Address constant_pool, uint32_t new_constant, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static SixByteInstr instr_at (uint8_t *pc)
 
static Condition GetCondition (Instr instr)
 
static bool IsBranch (Instr instr)
 
static bool Is64BitLoadIntoIP (SixByteInstr instr1, SixByteInstr instr2)
 
static bool IsCmpRegister (Instr instr)
 
static bool IsCmpImmediate (Instr instr)
 
static bool IsNop (SixByteInstr instr, int type=NON_MARKING_NOP)
 
static Address target_address_at (Address pc, Address constant_pool)
 
static void set_target_address_at (Address pc, Address constant_pool, Address target, WritableJitAllocation *writable_jit_allocation=nullptr, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static int32_t relative_target_offset (Address target, Address pc)
 
static Builtin target_builtin_at (Address pc)
 
static int deserialization_special_target_size (Address instruction_payload)
 
static void deserialization_set_target_internal_reference_at (Address pc, Address target, WritableJitAllocation &jit_allocation, RelocInfo::Mode mode=RelocInfo::INTERNAL_REFERENCE)
 
static uint32_t uint32_constant_at (Address pc, Address constant_pool)
 
static void set_uint32_constant_at (Address pc, Address constant_pool, uint32_t new_constant, WritableJitAllocation *jit_allocation=nullptr, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static bool UseConstPoolFor (RelocInfo::Mode rmode)
 
static bool IsNop (Address addr)
 
static bool IsJmpRel (Address addr)
 
- Static Public Member Functions inherited from v8::internal::AssemblerBase
static void QuietNaN (Tagged< HeapObject > nan)
 
- Static Public Member Functions inherited from v8::internal::Malloced
static void * operator new (size_t size)
 
static void operator delete (void *p)
 
- Static Public Member Functions inherited from v8::internal::AssemblerRISCVI
static int JumpOffset (Instr instr)
 
static int AuipcOffset (Instr instr)
 
static int JalrOffset (Instr instr)
 
static int LoadOffset (Instr instr)
 
static bool IsBranch (Instr instr)
 
static bool IsNop (Instr instr)
 
static bool IsJump (Instr instr)
 
static bool IsJal (Instr instr)
 
static bool IsJalr (Instr instr)
 
static bool IsLui (Instr instr)
 
static bool IsAuipc (Instr instr)
 
static bool IsAddi (Instr instr)
 
static bool IsOri (Instr instr)
 
static bool IsSlli (Instr instr)
 
static bool IsLw (Instr instr)
 
- Static Public Member Functions inherited from v8::internal::AssemblerRISCVC
static bool IsCBranch (Instr instr)
 
static bool IsCJal (Instr instr)
 
- Static Public Member Functions inherited from v8::internal::AssemblerRISCVV
static int32_t GenZimm (VSew vsew, Vlmul vlmul, TailAgnosticType tail=tu, MaskAgnosticType mask=mu)
 

Private Member Functions

constexpr int GetFramePointerOffsetForStackSlot (int index)
 
void SmiTagInt32AndSetFlags (Register dst, Register src)
 

Private Attributes

MaglevCodeGenState *const code_gen_state_
 
TemporaryRegisterScopescratch_register_scope_ = nullptr
 

Additional Inherited Members

- Public Attributes inherited from v8::internal::MacroAssembler
 DECLARE_STORE_FUNCTION
 
 St
 
- Public Attributes inherited from v8::internal::Assembler
Simd128Register rt
 
Simd128Register Simd128Register ra
 
Simd128Register Simd128Register Simd128Register rb
 
Simd128Register Simd128Register Simd128Register Simd128Register rc
 
VectorUnit VU
 
 XMMRegister
 
 YMMRegister
 
Operand256 E6
 
Operand256 XMMRegister
 
Operand256 YMMRegister
 
- Public Attributes inherited from v8::internal::AssemblerRISCVV
VRegister vs1
 
- Static Public Attributes inherited from v8::internal::MacroAssembler
static constexpr int kExtraSlotClaimedByPrologue = 1
 
static const int kSwitchTablePrologueSize = 5
 
- Static Public Attributes inherited from v8::internal::Assembler
static constexpr int kNoHandlerTable = 0
 
static constexpr SafepointTableBuilderBasekNoSafepointTable = nullptr
 
static constexpr int kSpecialTargetSize = kPointerSize
 
static constexpr int kMaxDistToPcRelativeConstant
 
static constexpr int kMaxDistToIntPool
 
static constexpr int kTypicalNumPending32Constants = 32
 
static constexpr int kMaxNumPending32Constants
 
static constexpr int kVeneerCodeSize = 1 * kInstrSize
 
static constexpr SafepointTableBuilderkNoSafepointTable = nullptr
 
static constexpr uint8_t kTestAlByte = 0xA8
 
static constexpr uint8_t kNopByte = 0x90
 
static constexpr uint8_t kJmpShortOpcode = 0xEB
 
static constexpr uint8_t kJccShortPrefix = 0x70
 
static constexpr uint8_t kJncShortOpcode = kJccShortPrefix | not_carry
 
static constexpr uint8_t kJcShortOpcode = kJccShortPrefix | carry
 
static constexpr uint8_t kJnzShortOpcode = kJccShortPrefix | not_zero
 
static constexpr uint8_t kJzShortOpcode = kJccShortPrefix | zero
 
static constexpr int kMaximalBufferSize = 512 * MB
 
static constexpr int kInstructionsFor64BitConstant = 4
 
static constexpr int kMax16BranchOffset = (1 << (18 - 1)) - 1
 
static constexpr int kMax21BranchOffset = (1 << (23 - 1)) - 1
 
static constexpr int kMax26BranchOffset = (1 << (28 - 1)) - 1
 
static constexpr int kTrampolineSlotsSize = 2 * kInstrSize
 
static constexpr int kBranchPCOffset = kInstrSize
 
static constexpr int kLongBranchPCOffset = 3 * kInstrSize
 
static constexpr int kOptimizedBranchAndLinkLongReturnOffset = 4 * kInstrSize
 
static constexpr int kInstructionsFor32BitConstant = 2
 
static constexpr int kPcLoadDelta = 4
 
static constexpr int kMaxBranchOffset = (1 << (18 - 1)) - 1
 
static constexpr int kMaxCompactBranchOffset = (1 << (28 - 1)) - 1
 
static constexpr int kMovInstructionsConstantPool = 1
 
static constexpr int kMovInstructionsNoConstantPool = 5
 
static constexpr int kTaggedLoadInstructions = 2
 
static constexpr int kMovInstructions
 
static constexpr int kBranchOffsetBits = 13
 
static constexpr int kJumpOffsetBits = 21
 
static constexpr int kCJalOffsetBits = 12
 
static constexpr int kCBranchOffsetBits = 9
 
static constexpr int kMaxJumpOffset = (1 << (21 - 1)) - 1
 
static constexpr int kBytesForPtrConstant = 12
 
static constexpr uint8_t kTestEaxByte = 0xA9
 
static constexpr int kPushq32InstrSize = 5
 
static constexpr int kIntraSegmentJmpInstrSize = 5
 
- Static Public Attributes inherited from v8::internal::AssemblerBase
static constexpr int kMinimalBufferSize = 128
 
static constexpr int kDefaultBufferSize = 4 * KB
 
- Protected Types inherited from v8::internal::Assembler
enum class  OffsetAccessType : bool { SINGLE_ACCESS = false , TWO_ACCESSES = true , SINGLE_ACCESS = false , TWO_ACCESSES = true }
 
enum class  OffsetAccessType : bool { SINGLE_ACCESS = false , TWO_ACCESSES = true , SINGLE_ACCESS = false , TWO_ACCESSES = true }
 
- Protected Types inherited from v8::internal::AssemblerBase
using EmbeddedObjectIndex = size_t
 
- Protected Types inherited from v8::internal::AssemblerRiscvBase
enum  OffsetSize : int {
  kOffset21 = 21 , kOffset12 = 12 , kOffset20 = 20 , kOffset13 = 13 ,
  kOffset32 = 32 , kOffset11 = 11 , kOffset9 = 9
}
 
- Protected Types inherited from v8::internal::SharedMacroAssemblerBase
template<typename Op >
using AvxFn = void (Assembler::*)(XMMRegister, XMMRegister, Op, uint8_t)
 
template<typename Op >
using NoAvxFn = void (Assembler::*)(XMMRegister, Op, uint8_t)
 
- Protected Member Functions inherited from v8::internal::MacroAssembler
void PushHelper (int count, int size, const CPURegister &src0, const CPURegister &src1, const CPURegister &src2, const CPURegister &src3)
 
void PopHelper (int count, int size, const CPURegister &dst0, const CPURegister &dst1, const CPURegister &dst2, const CPURegister &dst3)
 
void ConditionalCompareMacro (const Register &rn, const Operand &operand, StatusFlags nzcv, Condition cond, ConditionalCompareOp op)
 
void AddSubWithCarryMacro (const Register &rd, const Register &rn, const Operand &operand, FlagsUpdate S, AddSubWithCarryOp op)
 
void CallPrintf (int arg_count=0, const CPURegister *args=nullptr)
 
void DropArguments (Register count)
 
Register GetRkAsRegisterHelper (const Operand &rk, Register scratch)
 
int32_t GetOffset (Label *L, OffsetSize bits)
 
Register GetRtAsRegisterHelper (const Operand &rt, Register scratch)
 
int32_t GetOffset (int32_t offset, Label *L, OffsetSize bits)
 
Register GetRtAsRegisterHelper (const Operand &rt, Register scratch)
 
int32_t GetOffset (int32_t offset, Label *L, OffsetSize bits)
 
Register GetSmiConstant (Tagged< Smi > value)
 
void DropArguments (Register count)
 
- Protected Member Functions inherited from v8::internal::MacroAssemblerBase
 DISALLOW_IMPLICIT_CONSTRUCTORS (MacroAssemblerBase)
 
- Protected Member Functions inherited from v8::internal::Assembler
int buffer_space () const
 
int target_at (int pos)
 
void target_at_put (int pos, int target_pos)
 
void StartBlockConstPool ()
 
void EndBlockConstPool ()
 
bool is_const_pool_blocked () const
 
bool has_pending_constants () const
 
bool VfpRegisterIsAvailable (DwVfpRegister reg)
 
bool VfpRegisterIsAvailable (QwNeonRegister reg)
 
void emit (Instr x)
 
const RegisterAppropriateZeroRegFor (const CPURegister &reg) const
 
void LoadStore (const CPURegister &rt, const MemOperand &addr, LoadStoreOp op)
 
void LoadStoreScaledImmOffset (Instr memop, int offset, unsigned size)
 
void LoadStoreUnscaledImmOffset (Instr memop, int offset)
 
void LoadStoreWRegOffset (Instr memop, const Register &regoffset)
 
void LoadStorePair (const CPURegister &rt, const CPURegister &rt2, const MemOperand &addr, LoadStorePairOp op)
 
void LoadStoreStruct (const VRegister &vt, const MemOperand &addr, NEONLoadStoreMultiStructOp op)
 
void LoadStoreStruct1 (const VRegister &vt, int reg_count, const MemOperand &addr)
 
void LoadStoreStructSingle (const VRegister &vt, uint32_t lane, const MemOperand &addr, NEONLoadStoreSingleStructOp op)
 
void LoadStoreStructSingleAllLanes (const VRegister &vt, const MemOperand &addr, NEONLoadStoreSingleStructOp op)
 
void LoadStoreStructVerify (const VRegister &vt, const MemOperand &addr, Instr op)
 
void Logical (const Register &rd, const Register &rn, const Operand &operand, LogicalOp op)
 
void LogicalImmediate (const Register &rd, const Register &rn, unsigned n, unsigned imm_s, unsigned imm_r, LogicalOp op)
 
void ConditionalCompare (const Register &rn, const Operand &operand, StatusFlags nzcv, Condition cond, ConditionalCompareOp op)
 
void AddSubWithCarry (const Register &rd, const Register &rn, const Operand &operand, FlagsUpdate S, AddSubWithCarryOp op)
 
void EmitShift (const Register &rd, const Register &rn, Shift shift, unsigned amount)
 
void EmitExtendShift (const Register &rd, const Register &rn, Extend extend, unsigned left_shift)
 
void AddSub (const Register &rd, const Register &rn, const Operand &operand, FlagsUpdate S, AddSubOp op)
 
void DataProcPlainRegister (const Register &rd, const Register &rn, const Register &rm, Instr op)
 
void CmpPlainRegister (const Register &rn, const Register &rm)
 
void DataProcImmediate (const Register &rd, const Register &rn, int immediate, Instr op)
 
void RemoveBranchFromLabelLinkChain (Instruction *branch, Label *label, Instruction *label_veneer=nullptr)
 
int unresolved_branches_first_limit () const
 
void emit_sse_operand (XMMRegister reg, Operand adr)
 
void emit_sse_operand (XMMRegister dst, XMMRegister src)
 
void emit_sse_operand (Register dst, XMMRegister src)
 
void emit_sse_operand (XMMRegister dst, Register src)
 
Address addr_at (int pos)
 
void AdjustBaseAndOffset (MemOperand *src)
 
int64_t buffer_space () const
 
int target_at (int pos, bool is_internal)
 
void target_at_put (int pos, int target_pos, bool is_internal)
 
bool MustUseReg (RelocInfo::Mode rmode)
 
void RecordRelocInfo (RelocInfo::Mode rmode, intptr_t data=0)
 
void BlockTrampolinePoolBefore (int pc_offset)
 
void StartBlockTrampolinePool ()
 
void EndBlockTrampolinePool ()
 
bool is_trampoline_pool_blocked () const
 
bool has_exception () const
 
bool is_trampoline_emitted () const
 
void StartBlockGrowBuffer ()
 
void EndBlockGrowBuffer ()
 
bool is_buffer_growth_blocked () const
 
void CheckTrampolinePoolQuick (int extra_instructions=0)
 
void set_pc_for_safepoint ()
 
void lsa (Register rd, Register rt, Register rs, uint8_t sa)
 
void dlsa (Register rd, Register rt, Register rs, uint8_t sa)
 
void AdjustBaseAndOffset (MemOperand *src, OffsetAccessType access_type=OffsetAccessType::SINGLE_ACCESS, int second_access_add_to_offset=4)
 
int64_t buffer_space () const
 
int target_at (int pos, bool is_internal)
 
void target_at_put (int pos, int target_pos, bool is_internal)
 
bool MustUseReg (RelocInfo::Mode rmode)
 
void RecordRelocInfo (RelocInfo::Mode rmode, intptr_t data=0)
 
void BlockTrampolinePoolBefore (int pc_offset)
 
void StartBlockTrampolinePool ()
 
void EndBlockTrampolinePool ()
 
bool is_trampoline_pool_blocked () const
 
bool has_exception () const
 
void StartBlockGrowBuffer ()
 
void EndBlockGrowBuffer ()
 
bool is_buffer_growth_blocked () const
 
void EmitForbiddenSlotInstruction ()
 
void CheckTrampolinePoolQuick (int extra_instructions=0)
 
void set_pc_for_safepoint ()
 
int buffer_space () const
 
int target_at (int pos)
 
void target_at_put (int pos, int target_pos, bool *is_branch=nullptr)
 
void RecordRelocInfo (RelocInfo::Mode rmode, intptr_t data=0)
 
ConstantPoolEntry::Access ConstantPoolAddEntry (RelocInfo::Mode rmode, intptr_t value)
 
ConstantPoolEntry::Access ConstantPoolAddEntry (base::Double value)
 
void BlockTrampolinePoolBefore (int pc_offset)
 
void StartBlockTrampolinePool ()
 
void EndBlockTrampolinePool ()
 
bool is_trampoline_pool_blocked () const
 
void StartBlockConstantPoolEntrySharing ()
 
void EndBlockConstantPoolEntrySharing ()
 
bool is_constant_pool_entry_sharing_blocked () const
 
bool has_exception () const
 
bool is_trampoline_emitted () const
 
bool NeedAdjustBaseAndOffset (const MemOperand &src, OffsetAccessType=OffsetAccessType::SINGLE_ACCESS, int second_Access_add_to_offset=4)
 
void AdjustBaseAndOffset (MemOperand *src, Register scratch, OffsetAccessType access_type=OffsetAccessType::SINGLE_ACCESS, int second_access_add_to_offset=4)
 
intptr_t buffer_space () const
 
int target_at (int pos, bool is_internal)
 
void target_at_put (int pos, int target_pos, bool is_internal)
 
bool MustUseReg (RelocInfo::Mode rmode)
 
void RecordRelocInfo (RelocInfo::Mode rmode, intptr_t data=0)
 
void BlockTrampolinePoolBefore (int pc_offset)
 
void StartBlockTrampolinePool ()
 
void EndBlockTrampolinePool ()
 
bool is_trampoline_pool_blocked () const
 
bool has_exception () const
 
bool is_trampoline_emitted () const
 
void StartBlockGrowBuffer ()
 
void EndBlockGrowBuffer ()
 
bool is_buffer_growth_blocked () const
 
int buffer_space () const
 
int target_at (int pos)
 
void target_at_put (int pos, int target_pos, bool *is_branch=nullptr)
 
void RecordRelocInfo (RelocInfo::Mode rmode, intptr_t data=0)
 
void call (Operand operand)
 
- Protected Member Functions inherited from v8::internal::AssemblerBase
int AddCodeTarget (IndirectHandle< Code > target)
 
IndirectHandle< CodeGetCodeTarget (intptr_t code_target_index) const
 
EmbeddedObjectIndex AddEmbeddedObject (IndirectHandle< HeapObject > object)
 
IndirectHandle< HeapObjectGetEmbeddedObject (EmbeddedObjectIndex index) const
 
void set_constant_pool_available (bool available)
 
void RequestHeapNumber (HeapNumberRequest request)
 
bool ShouldRecordRelocInfo (RelocInfo::Mode rmode) const
 
- Protected Member Functions inherited from v8::internal::AssemblerRiscvBase
virtual int32_t branch_offset_helper (Label *L, OffsetSize bits)=0
 
void GenInstrR (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, Register rs2)
 
void GenInstrR (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, FPURegister rd, FPURegister rs1, FPURegister rs2)
 
void GenInstrR (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, Register rd, FPURegister rs1, Register rs2)
 
void GenInstrR (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, FPURegister rd, Register rs1, Register rs2)
 
void GenInstrR (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, FPURegister rd, FPURegister rs1, Register rs2)
 
void GenInstrR (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, Register rd, FPURegister rs1, FPURegister rs2)
 
void GenInstrR4 (uint8_t funct2, BaseOpcode opcode, Register rd, Register rs1, Register rs2, Register rs3, FPURoundingMode frm)
 
void GenInstrR4 (uint8_t funct2, BaseOpcode opcode, FPURegister rd, FPURegister rs1, FPURegister rs2, FPURegister rs3, FPURoundingMode frm)
 
void GenInstrRAtomic (uint8_t funct5, bool aq, bool rl, uint8_t funct3, Register rd, Register rs1, Register rs2)
 
void GenInstrRFrm (uint8_t funct7, BaseOpcode opcode, Register rd, Register rs1, Register rs2, FPURoundingMode frm)
 
void GenInstrI (uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, int16_t imm12)
 
void GenInstrI (uint8_t funct3, BaseOpcode opcode, FPURegister rd, Register rs1, int16_t imm12)
 
void GenInstrIShift (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, uint8_t shamt)
 
void GenInstrIShiftW (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, uint8_t shamt)
 
void GenInstrS (uint8_t funct3, BaseOpcode opcode, Register rs1, Register rs2, int16_t imm12)
 
void GenInstrS (uint8_t funct3, BaseOpcode opcode, Register rs1, FPURegister rs2, int16_t imm12)
 
void GenInstrB (uint8_t funct3, BaseOpcode opcode, Register rs1, Register rs2, int16_t imm12)
 
void GenInstrU (BaseOpcode opcode, Register rd, int32_t imm20)
 
void GenInstrJ (BaseOpcode opcode, Register rd, int32_t imm20)
 
void GenInstrCR (uint8_t funct4, BaseOpcode opcode, Register rd, Register rs2)
 
void GenInstrCA (uint8_t funct6, BaseOpcode opcode, Register rd, uint8_t funct, Register rs2)
 
void GenInstrCI (uint8_t funct3, BaseOpcode opcode, Register rd, int8_t imm6)
 
void GenInstrCIU (uint8_t funct3, BaseOpcode opcode, Register rd, uint8_t uimm6)
 
void GenInstrCIU (uint8_t funct3, BaseOpcode opcode, FPURegister rd, uint8_t uimm6)
 
void GenInstrCIW (uint8_t funct3, BaseOpcode opcode, Register rd, uint8_t uimm8)
 
void GenInstrCSS (uint8_t funct3, BaseOpcode opcode, FPURegister rs2, uint8_t uimm6)
 
void GenInstrCSS (uint8_t funct3, BaseOpcode opcode, Register rs2, uint8_t uimm6)
 
void GenInstrCL (uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, uint8_t uimm5)
 
void GenInstrCL (uint8_t funct3, BaseOpcode opcode, FPURegister rd, Register rs1, uint8_t uimm5)
 
void GenInstrCS (uint8_t funct3, BaseOpcode opcode, Register rs2, Register rs1, uint8_t uimm5)
 
void GenInstrCS (uint8_t funct3, BaseOpcode opcode, FPURegister rs2, Register rs1, uint8_t uimm5)
 
void GenInstrCJ (uint8_t funct3, BaseOpcode opcode, uint16_t uint11)
 
void GenInstrCB (uint8_t funct3, BaseOpcode opcode, Register rs1, uint8_t uimm8)
 
void GenInstrCBA (uint8_t funct3, uint8_t funct2, BaseOpcode opcode, Register rs1, int8_t imm6)
 
void GenInstrBranchCC_rri (uint8_t funct3, Register rs1, Register rs2, int16_t imm12)
 
void GenInstrLoad_ri (uint8_t funct3, Register rd, Register rs1, int16_t imm12)
 
void GenInstrStore_rri (uint8_t funct3, Register rs1, Register rs2, int16_t imm12)
 
void GenInstrALU_ri (uint8_t funct3, Register rd, Register rs1, int16_t imm12)
 
void GenInstrShift_ri (bool arithshift, uint8_t funct3, Register rd, Register rs1, uint8_t shamt)
 
void GenInstrALU_rr (uint8_t funct7, uint8_t funct3, Register rd, Register rs1, Register rs2)
 
void GenInstrCSR_ir (uint8_t funct3, Register rd, ControlStatusReg csr, Register rs1)
 
void GenInstrCSR_ii (uint8_t funct3, Register rd, ControlStatusReg csr, uint8_t rs1)
 
void GenInstrShiftW_ri (bool arithshift, uint8_t funct3, Register rd, Register rs1, uint8_t shamt)
 
void GenInstrALUW_rr (uint8_t funct7, uint8_t funct3, Register rd, Register rs1, Register rs2)
 
void GenInstrPriv (uint8_t funct7, Register rs1, Register rs2)
 
void GenInstrLoadFP_ri (uint8_t funct3, FPURegister rd, Register rs1, int16_t imm12)
 
void GenInstrStoreFP_rri (uint8_t funct3, Register rs1, FPURegister rs2, int16_t imm12)
 
void GenInstrALUFP_rr (uint8_t funct7, uint8_t funct3, FPURegister rd, FPURegister rs1, FPURegister rs2)
 
void GenInstrALUFP_rr (uint8_t funct7, uint8_t funct3, FPURegister rd, Register rs1, Register rs2)
 
void GenInstrALUFP_rr (uint8_t funct7, uint8_t funct3, FPURegister rd, FPURegister rs1, Register rs2)
 
void GenInstrALUFP_rr (uint8_t funct7, uint8_t funct3, Register rd, FPURegister rs1, Register rs2)
 
void GenInstrALUFP_rr (uint8_t funct7, uint8_t funct3, Register rd, FPURegister rs1, FPURegister rs2)
 
- Protected Member Functions inherited from v8::internal::AssemblerRISCVV
void vsetvli (Register rd, Register rs1, VSew vsew, Vlmul vlmul, TailAgnosticType tail=tu, MaskAgnosticType mask=mu)
 
void vsetivli (Register rd, uint8_t uimm, VSew vsew, Vlmul vlmul, TailAgnosticType tail=tu, MaskAgnosticType mask=mu)
 
void vsetvlmax (Register rd, VSew vsew, Vlmul vlmul, TailAgnosticType tail=tu, MaskAgnosticType mask=mu)
 
void vsetvl (VSew vsew, Vlmul vlmul, TailAgnosticType tail=tu, MaskAgnosticType mask=mu)
 
void vsetvl (Register rd, Register rs1, Register rs2)
 
void GenInstrV (Register rd, Register rs1, Register rs2)
 
void GenInstrV (Register rd, Register rs1, uint32_t zimm)
 
void GenInstrV (uint8_t funct6, Opcode opcode, VRegister vd, VRegister vs1, VRegister vs2, MaskType mask=NoMask)
 
void GenInstrV (uint8_t funct6, Opcode opcode, VRegister vd, int8_t vs1, VRegister vs2, MaskType mask=NoMask)
 
void GenInstrV (uint8_t funct6, Opcode opcode, VRegister vd, VRegister vs2, MaskType mask=NoMask)
 
void GenInstrV (uint8_t funct6, Opcode opcode, Register rd, VRegister vs1, VRegister vs2, MaskType mask=NoMask)
 
void GenInstrV (uint8_t funct6, Opcode opcode, FPURegister fd, VRegister vs1, VRegister vs2, MaskType mask=NoMask)
 
void GenInstrV (uint8_t funct6, Opcode opcode, VRegister vd, Register rs1, VRegister vs2, MaskType mask=NoMask)
 
void GenInstrV (uint8_t funct6, Opcode opcode, VRegister vd, FPURegister fs1, VRegister vs2, MaskType mask=NoMask)
 
void GenInstrV (uint8_t funct6, Register rd, Register rs1, VRegister vs2, MaskType mask=NoMask)
 
void GenInstrV (uint8_t funct6, VRegister vd, int8_t simm5, VRegister vs2, MaskType mask=NoMask)
 
void GenInstrV (BaseOpcode opcode, uint8_t width, VRegister vd, Register rs1, uint8_t umop, MaskType mask, uint8_t IsMop, bool IsMew, uint8_t Nf)
 
void GenInstrV (BaseOpcode opcode, uint8_t width, VRegister vd, Register rs1, Register rs2, MaskType mask, uint8_t IsMop, bool IsMew, uint8_t Nf)
 
void GenInstrV (BaseOpcode opcode, uint8_t width, VRegister vd, Register rs1, VRegister vs2, MaskType mask, uint8_t IsMop, bool IsMew, uint8_t Nf)
 
void GenInstrV (uint8_t funct6, Opcode opcode, Register rd, uint8_t vs1, VRegister vs2, MaskType mask)
 
- Protected Member Functions inherited from v8::internal::SharedMacroAssemblerBase
template<typename Op >
void PinsrHelper (Assembler *assm, AvxFn< Op > avx, NoAvxFn< Op > noavx, XMMRegister dst, XMMRegister src1, Op src2, uint8_t imm8, uint32_t *load_pc_offset=nullptr, std::optional< CpuFeature > feature=std::nullopt)
 
- Static Protected Member Functions inherited from v8::internal::Assembler
static bool IsImmLSPair (int64_t offset, unsigned size)
 
static bool IsImmFP32 (uint32_t bits)
 
static bool IsImmFP64 (uint64_t bits)
 
static LoadStoreOp LoadOpFor (const CPURegister &rt)
 
static LoadStorePairOp LoadPairOpFor (const CPURegister &rt, const CPURegister &rt2)
 
static LoadStoreOp StoreOpFor (const CPURegister &rt)
 
static LoadStorePairOp StorePairOpFor (const CPURegister &rt, const CPURegister &rt2)
 
static LoadLiteralOp LoadLiteralOpFor (const CPURegister &rt)
 
static void set_target_internal_reference_encoded_at (Address pc, Address target)
 
static void set_target_internal_reference_encoded_at (Address pc, Address target, WritableJitAllocation &jit_allocation)
 
static void set_target_internal_reference_encoded_at (Address pc, Address target)
 
- Protected Attributes inherited from v8::internal::MacroAssemblerBase
Isolate *const isolate_ = nullptr
 
IndirectHandle< HeapObjectcode_object_
 
bool root_array_available_ = true
 
bool hard_abort_ = false
 
Builtin maybe_builtin_ = Builtin::kNoBuiltinId
 
bool has_frame_ = false
 
int comment_depth_ = 0
 
- Protected Attributes inherited from v8::internal::Assembler
RelocInfoWriter reloc_info_writer
 
base::SmallVector< ConstantPoolEntry, kTypicalNumPending32Constantspending_32_bit_constants_
 
RegList scratch_register_list_
 
VfpRegList scratch_vfp_register_list_
 
const AssemblerZone zone_
 
ZoneAbslBTreeMap< int, Label * > unresolved_branches_
 
absl::flat_hash_map< int, int > branch_link_chain_back_edge_
 
int next_veneer_pool_check_
 
- Protected Attributes inherited from v8::internal::AssemblerBase
std::unique_ptr< AssemblerBufferbuffer_
 
uint8_t * buffer_start_
 
std::forward_list< HeapNumberRequestheap_number_requests_
 
uint8_t * pc_
 
CodeCommentsWriter code_comments_writer_
 
- Static Protected Attributes inherited from v8::internal::Assembler
static constexpr int kGap = 32
 
static constexpr int kMaxRelocSize = RelocInfoWriter::kMaxSize
 
static constexpr int kVeneerDistanceMargin = 1 * KB
 
static constexpr int kVeneerNoProtectionFactor = 2
 
static constexpr int kVeneerDistanceCheckMargin
 

Detailed Description

Definition at line 96 of file maglev-assembler.h.

Member Typedef Documentation

◆ OffsetTypeFor

template<StoreMode store_mode>
using v8::internal::maglev::MaglevAssembler::OffsetTypeFor = std::conditional_t<store_mode == kField, int, Register>

Definition at line 227 of file maglev-assembler.h.

Member Enumeration Documentation

◆ CharCodeMaskMode

Enumerator
kValueIsInRange 
kMustApplyMask 

Definition at line 287 of file maglev-assembler.h.

◆ StoreMode

Enumerator
kField 
kElement 

Definition at line 216 of file maglev-assembler.h.

◆ ValueCanBeSmi

Enumerator
kValueCannotBeSmi 
kValueCanBeSmi 

Definition at line 218 of file maglev-assembler.h.

◆ ValueIsCompressed

Enumerator
kValueIsDecompressed 
kValueIsCompressed 

Definition at line 217 of file maglev-assembler.h.

Constructor & Destructor Documentation

◆ MaglevAssembler()

v8::internal::maglev::MaglevAssembler::MaglevAssembler ( Isolate * isolate,
Zone * zone,
MaglevCodeGenState * code_gen_state )
inline

Definition at line 100 of file maglev-assembler.h.

Member Function Documentation

◆ AddInt32()

void v8::internal::maglev::MaglevAssembler::AddInt32 ( Register reg,
int amount )
inline

Definition at line 489 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Allocate() [1/2]

void v8::internal::maglev::MaglevAssembler::Allocate ( RegisterSnapshot register_snapshot,
Register result,
int size_in_bytes,
AllocationType alloc_type = AllocationType::kYoung,
AllocationAlignment alignment = kTaggedAligned )

Definition at line 67 of file maglev-assembler-arm.cc.

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

◆ Allocate() [2/2]

void v8::internal::maglev::MaglevAssembler::Allocate ( RegisterSnapshot register_snapshot,
Register result,
Register size_in_bytes,
AllocationType alloc_type = AllocationType::kYoung,
AllocationAlignment alignment = kTaggedAligned )

Definition at line 75 of file maglev-assembler-arm.cc.

Here is the call graph for this function:

◆ AllocateHeapNumber()

void v8::internal::maglev::MaglevAssembler::AllocateHeapNumber ( RegisterSnapshot register_snapshot,
Register result,
DoubleRegister value )

Definition at line 19 of file maglev-assembler.cc.

Here is the call graph for this function:

◆ AllocateTwoByteString()

void v8::internal::maglev::MaglevAssembler::AllocateTwoByteString ( RegisterSnapshot register_snapshot,
Register result,
int length )

Definition at line 31 of file maglev-assembler.cc.

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

◆ AndInt32() [1/2]

void v8::internal::maglev::MaglevAssembler::AndInt32 ( Register reg,
int mask )
inline

Definition at line 493 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ AndInt32() [2/2]

void v8::internal::maglev::MaglevAssembler::AndInt32 ( Register reg,
Register other )
inline

Definition at line 501 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ AssertElidedWriteBarrier()

void v8::internal::maglev::MaglevAssembler::AssertElidedWriteBarrier ( Register object,
Register value,
RegisterSnapshot snapshot )
inline

Definition at line 1021 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ AssertObjectType()

void v8::internal::maglev::MaglevAssembler::AssertObjectType ( Register heap_object,
InstanceType type,
AbortReason reason )
inline

Definition at line 760 of file maglev-assembler-arm-inl.h.

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

◆ AssertObjectTypeInRange()

void v8::internal::maglev::MaglevAssembler::AssertObjectTypeInRange ( Register heap_object,
InstanceType lower_limit,
InstanceType higher_limit,
AbortReason reason )
inline

Definition at line 803 of file maglev-assembler-arm-inl.h.

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

◆ AssertStackSizeCorrect()

void v8::internal::maglev::MaglevAssembler::AssertStackSizeCorrect ( )
inline

Definition at line 1229 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ BindBlock()

void v8::internal::maglev::MaglevAssembler::BindBlock ( BasicBlock * block)
inline

Definition at line 215 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ BindJumpTarget()

void v8::internal::maglev::MaglevAssembler::BindJumpTarget ( Label * label)
inline

Definition at line 213 of file maglev-assembler-arm-inl.h.

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

◆ Branch() [1/2]

void v8::internal::maglev::MaglevAssembler::Branch ( Condition condition,
BasicBlock * if_true,
BasicBlock * if_false,
BasicBlock * next_block )
inline

Definition at line 368 of file maglev-assembler-inl.h.

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

◆ Branch() [2/2]

void v8::internal::maglev::MaglevAssembler::Branch ( Condition condition,
Label * if_true,
Label::Distance true_distance,
bool fallthrough_when_true,
Label * if_false,
Label::Distance false_distance,
bool fallthrough_when_false )
inline

Definition at line 375 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ BranchOnObjectType()

void v8::internal::maglev::MaglevAssembler::BranchOnObjectType ( Register heap_object,
InstanceType type,
Label * if_true,
Label::Distance true_distance,
bool fallthrough_when_true,
Label * if_false,
Label::Distance false_distance,
bool fallthrough_when_false )
inline

Definition at line 770 of file maglev-assembler-arm-inl.h.

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

◆ BranchOnObjectTypeInRange()

void v8::internal::maglev::MaglevAssembler::BranchOnObjectTypeInRange ( Register heap_object,
InstanceType lower_limit,
InstanceType higher_limit,
Label * if_true,
Label::Distance true_distance,
bool fallthrough_when_true,
Label * if_false,
Label::Distance false_distance,
bool fallthrough_when_false )
inline

Definition at line 815 of file maglev-assembler-arm-inl.h.

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

◆ BuildTypedArrayDataPointer()

void v8::internal::maglev::MaglevAssembler::BuildTypedArrayDataPointer ( Register data_pointer,
Register object )
inline

Definition at line 301 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Call()

void v8::internal::maglev::MaglevAssembler::Call ( Label * target)
inline

Definition at line 522 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ CallBuiltin() [1/2]

template<Builtin kBuiltin, typename... Args>
void v8::internal::maglev::MaglevAssembler::CallBuiltin ( Args &&... args)
inline

Definition at line 749 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ CallBuiltin() [2/2]

void v8::internal::maglev::MaglevAssembler::CallBuiltin ( Builtin builtin)
inline

Definition at line 725 of file maglev-assembler-inl.h.

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

◆ CallRuntime() [1/2]

void v8::internal::maglev::MaglevAssembler::CallRuntime ( Runtime::FunctionId fid)
inline

Definition at line 755 of file maglev-assembler-inl.h.

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

◆ CallRuntime() [2/2]

void v8::internal::maglev::MaglevAssembler::CallRuntime ( Runtime::FunctionId fid,
int num_args )
inline

Definition at line 764 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ CallSelf()

void v8::internal::maglev::MaglevAssembler::CallSelf ( )
inline

Definition at line 886 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ CheckAndEmitDeferredIndirectPointerWriteBarrier()

void v8::internal::maglev::MaglevAssembler::CheckAndEmitDeferredIndirectPointerWriteBarrier ( Register object,
int offset,
Register value,
RegisterSnapshot register_snapshot,
IndirectPointerTag tag )

◆ CheckAndEmitDeferredWriteBarrier()

template<MaglevAssembler::StoreMode store_mode>
void v8::internal::maglev::MaglevAssembler::CheckAndEmitDeferredWriteBarrier ( Register object,
OffsetTypeFor< store_mode > offset,
Register value,
RegisterSnapshot register_snapshot,
ValueIsCompressed value_is_compressed,
ValueCanBeSmi value_can_be_smi )

Definition at line 479 of file maglev-assembler.cc.

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

◆ CheckInt32IsSmi()

void v8::internal::maglev::MaglevAssembler::CheckInt32IsSmi ( Register obj,
Label * fail,
Register scratch = Register::no_reg() )
inline

Definition at line 224 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ CheckIntPtrIsSmi()

void v8::internal::maglev::MaglevAssembler::CheckIntPtrIsSmi ( Register obj,
Label * fail,
Label::Distance distance = Label::kFar )
inline

Definition at line 883 of file maglev-assembler-inl.h.

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

◆ CheckJSAnyIsStringAndBranch()

void v8::internal::maglev::MaglevAssembler::CheckJSAnyIsStringAndBranch ( Register heap_object,
Label * if_true,
Label::Distance true_distance,
bool fallthrough_when_true,
Label * if_false,
Label::Distance false_distance,
bool fallthrough_when_false )
inline

Definition at line 951 of file maglev-assembler-inl.h.

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

◆ code_gen_state()

MaglevCodeGenState * v8::internal::maglev::MaglevAssembler::code_gen_state ( ) const
inline

Definition at line 798 of file maglev-assembler.h.

Here is the caller graph for this function:

◆ CompareByteAndJumpIf()

void v8::internal::maglev::MaglevAssembler::CompareByteAndJumpIf ( MemOperand left,
int8_t right,
Condition cond,
Register scratch,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 1085 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ CompareDoubleAndJumpIfZeroOrNaN() [1/2]

void v8::internal::maglev::MaglevAssembler::CompareDoubleAndJumpIfZeroOrNaN ( DoubleRegister reg,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 1122 of file maglev-assembler-arm-inl.h.

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

◆ CompareDoubleAndJumpIfZeroOrNaN() [2/2]

void v8::internal::maglev::MaglevAssembler::CompareDoubleAndJumpIfZeroOrNaN ( MemOperand operand,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 1129 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ CompareFloat64AndBranch()

void v8::internal::maglev::MaglevAssembler::CompareFloat64AndBranch ( DoubleRegister src1,
DoubleRegister src2,
Condition cond,
BasicBlock * if_true,
BasicBlock * if_false,
BasicBlock * next_block,
BasicBlock * nan_failed )
inline

Definition at line 872 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ CompareFloat64AndJumpIf()

void v8::internal::maglev::MaglevAssembler::CompareFloat64AndJumpIf ( DoubleRegister src1,
DoubleRegister src2,
Condition cond,
Label * target,
Label * nan_failed,
Label::Distance distance = Label::kFar )
inline

Definition at line 864 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ CompareInstanceType()

void v8::internal::maglev::MaglevAssembler::CompareInstanceType ( Register map,
InstanceType instance_type )
inline

Definition at line 847 of file maglev-assembler-arm-inl.h.

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

◆ CompareInstanceTypeAndJumpIf()

void v8::internal::maglev::MaglevAssembler::CompareInstanceTypeAndJumpIf ( Register map,
InstanceType type,
Condition cond,
Label * target,
Label::Distance distance )
inline

Definition at line 289 of file maglev-assembler-inl.h.

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

◆ CompareInstanceTypeRange() [1/2]

void v8::internal::maglev::MaglevAssembler::CompareInstanceTypeRange ( Register map,
InstanceType lower_limit,
InstanceType higher_limit )
inline
Here is the caller graph for this function:

◆ CompareInstanceTypeRange() [2/2]

Condition v8::internal::maglev::MaglevAssembler::CompareInstanceTypeRange ( Register map,
Register instance_type_out,
InstanceType lower_limit,
InstanceType higher_limit )
inline

Definition at line 854 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ CompareInstanceTypeRangeAndEagerDeoptIf()

template<typename NodeT >
void v8::internal::maglev::MaglevAssembler::CompareInstanceTypeRangeAndEagerDeoptIf ( Register map,
Register instance_type_out,
InstanceType lower_limit,
InstanceType higher_limit,
Condition cond,
DeoptimizeReason reason,
NodeT * node )
inline

Definition at line 297 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ CompareInt32AndAssert() [1/2]

void v8::internal::maglev::MaglevAssembler::CompareInt32AndAssert ( Register r1,
int32_t value,
Condition cond,
AbortReason reason )
inline

Definition at line 1035 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ CompareInt32AndAssert() [2/2]

void v8::internal::maglev::MaglevAssembler::CompareInt32AndAssert ( Register r1,
Register r2,
Condition cond,
AbortReason reason )
inline

Definition at line 1029 of file maglev-assembler-arm-inl.h.

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

◆ CompareInt32AndBranch() [1/4]

void v8::internal::maglev::MaglevAssembler::CompareInt32AndBranch ( Register r1,
int32_t value,
Condition cond,
BasicBlock * if_true,
BasicBlock * if_false,
BasicBlock * next_block )
inline

Definition at line 338 of file maglev-assembler-inl.h.

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

◆ CompareInt32AndBranch() [2/4]

void v8::internal::maglev::MaglevAssembler::CompareInt32AndBranch ( Register r1,
int32_t value,
Condition cond,
Label * if_true,
Label::Distance true_distance,
bool fallthrough_when_true,
Label * if_false,
Label::Distance false_distance,
bool fallthrough_when_false )
inline

Definition at line 1042 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ CompareInt32AndBranch() [3/4]

void v8::internal::maglev::MaglevAssembler::CompareInt32AndBranch ( Register r1,
Register r2,
Condition cond,
BasicBlock * if_true,
BasicBlock * if_false,
BasicBlock * next_block )
inline

Definition at line 348 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ CompareInt32AndBranch() [4/4]

void v8::internal::maglev::MaglevAssembler::CompareInt32AndBranch ( Register r1,
Register r2,
Condition cond,
Label * if_true,
Label::Distance true_distance,
bool fallthrough_when_true,
Label * if_false,
Label::Distance false_distance,
bool fallthrough_when_false )
inline

Definition at line 1051 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ CompareInt32AndJumpIf() [1/2]

void v8::internal::maglev::MaglevAssembler::CompareInt32AndJumpIf ( Register r1,
int32_t value,
Condition cond,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 1021 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ CompareInt32AndJumpIf() [2/2]

void v8::internal::maglev::MaglevAssembler::CompareInt32AndJumpIf ( Register r1,
Register r2,
Condition cond,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 997 of file maglev-assembler-arm-inl.h.

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

◆ CompareIntPtrAndBranch() [1/2]

void v8::internal::maglev::MaglevAssembler::CompareIntPtrAndBranch ( Register r1,
int32_t value,
Condition cond,
BasicBlock * if_true,
BasicBlock * if_false,
BasicBlock * next_block )
inline

Definition at line 358 of file maglev-assembler-inl.h.

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

◆ CompareIntPtrAndBranch() [2/2]

void v8::internal::maglev::MaglevAssembler::CompareIntPtrAndBranch ( Register r1,
int32_t value,
Condition cond,
Label * if_true,
Label::Distance true_distance,
bool fallthrough_when_true,
Label * if_false,
Label::Distance false_distance,
bool fallthrough_when_false )
inline

Definition at line 1060 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ CompareIntPtrAndJumpIf() [1/2]

void v8::internal::maglev::MaglevAssembler::CompareIntPtrAndJumpIf ( Register r1,
int32_t value,
Condition cond,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 1013 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ CompareIntPtrAndJumpIf() [2/2]

void v8::internal::maglev::MaglevAssembler::CompareIntPtrAndJumpIf ( Register r1,
Register r2,
Condition cond,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 1005 of file maglev-assembler-arm-inl.h.

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

◆ CompareMapWithRoot()

void v8::internal::maglev::MaglevAssembler::CompareMapWithRoot ( Register object,
RootIndex index,
Register scratch )
inline

Definition at line 840 of file maglev-assembler-arm-inl.h.

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

◆ CompareMapWithRootAndEmitEagerDeoptIf()

template<typename NodeT >
void v8::internal::maglev::MaglevAssembler::CompareMapWithRootAndEmitEagerDeoptIf ( Register reg,
RootIndex index,
Register scratch,
Condition cond,
DeoptimizeReason reason,
NodeT * node )
inline

Definition at line 314 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ CompareRootAndEmitEagerDeoptIf()

template<typename NodeT >
void v8::internal::maglev::MaglevAssembler::CompareRootAndEmitEagerDeoptIf ( Register reg,
RootIndex index,
Condition cond,
DeoptimizeReason reason,
NodeT * node )
inline

Definition at line 306 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ CompareSmiAndAssert()

void v8::internal::maglev::MaglevAssembler::CompareSmiAndAssert ( Register r1,
Tagged< Smi > value,
Condition cond,
AbortReason reason )
inline

Definition at line 1076 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ CompareSmiAndJumpIf()

void v8::internal::maglev::MaglevAssembler::CompareSmiAndJumpIf ( Register r1,
Tagged< Smi > value,
Condition cond,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 1069 of file maglev-assembler-arm-inl.h.

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

◆ CompareTaggedAndJumpIf() [1/3]

void v8::internal::maglev::MaglevAssembler::CompareTaggedAndJumpIf ( Register reg,
Handle< HeapObject > obj,
Condition cond,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 1104 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ CompareTaggedAndJumpIf() [2/3]

void v8::internal::maglev::MaglevAssembler::CompareTaggedAndJumpIf ( Register reg,
Tagged< Smi > smi,
Condition cond,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 1095 of file maglev-assembler-arm-inl.h.

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

◆ CompareTaggedAndJumpIf() [3/3]

void v8::internal::maglev::MaglevAssembler::CompareTaggedAndJumpIf ( Register src1,
Register src2,
Condition cond,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 1113 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ CompareTaggedRootAndEmitEagerDeoptIf()

template<typename NodeT >
void v8::internal::maglev::MaglevAssembler::CompareTaggedRootAndEmitEagerDeoptIf ( Register reg,
RootIndex index,
Condition cond,
DeoptimizeReason reason,
NodeT * node )
inline

Definition at line 322 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ CompareUInt32AndEmitEagerDeoptIf()

template<typename NodeT >
void v8::internal::maglev::MaglevAssembler::CompareUInt32AndEmitEagerDeoptIf ( Register reg,
int imm,
Condition cond,
DeoptimizeReason reason,
NodeT * node )
inline

Definition at line 330 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ compilation_info()

MaglevCompilationInfo * v8::internal::maglev::MaglevAssembler::compilation_info ( ) const
inline

Definition at line 802 of file maglev-assembler.h.

Here is the caller graph for this function:

◆ DataViewElementOperand()

MemOperand v8::internal::maglev::MaglevAssembler::DataViewElementOperand ( Register data_pointer,
Register index )
inline

Definition at line 320 of file maglev-assembler-arm-inl.h.

◆ DecrementInt32()

void v8::internal::maglev::MaglevAssembler::DecrementInt32 ( Register reg)
inline

Definition at line 485 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ DefineExceptionHandlerAndLazyDeoptPoint()

void v8::internal::maglev::MaglevAssembler::DefineExceptionHandlerAndLazyDeoptPoint ( NodeBase * node)
inline

Definition at line 1007 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ DefineExceptionHandlerPoint()

void v8::internal::maglev::MaglevAssembler::DefineExceptionHandlerPoint ( NodeBase * node)
inline

Definition at line 1000 of file maglev-assembler-inl.h.

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

◆ DefineLazyDeoptPoint()

void v8::internal::maglev::MaglevAssembler::DefineLazyDeoptPoint ( LazyDeoptInfo * info)
inline

Definition at line 993 of file maglev-assembler-inl.h.

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

◆ DeoptIfBufferDetached()

template<typename NodeT >
void v8::internal::maglev::MaglevAssembler::DeoptIfBufferDetached ( Register array,
Register scratch,
NodeT * node )
inline

Definition at line 700 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ EmitEagerDeopt()

template<typename NodeT >
void v8::internal::maglev::MaglevAssembler::EmitEagerDeopt ( NodeT * node,
DeoptimizeReason reason )
inline

Definition at line 992 of file maglev-assembler.h.

Here is the call graph for this function:

◆ EmitEagerDeoptIf()

template<typename NodeT >
void v8::internal::maglev::MaglevAssembler::EmitEagerDeoptIf ( Condition cond,
DeoptimizeReason reason,
NodeT * node )
inline

Definition at line 999 of file maglev-assembler.h.

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

◆ EmitEagerDeoptIfNotEqual()

template<typename NodeT >
void v8::internal::maglev::MaglevAssembler::EmitEagerDeoptIfNotEqual ( DeoptimizeReason reason,
NodeT * node )
inline

Definition at line 1258 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ EmitEagerDeoptIfNotSmi()

template<typename NodeT >
void v8::internal::maglev::MaglevAssembler::EmitEagerDeoptIfNotSmi ( NodeT * node,
Register object,
DeoptimizeReason reason )
inline

Definition at line 1014 of file maglev-assembler.h.

Here is the call graph for this function:

◆ EmitEagerDeoptIfSmi()

template<typename NodeT >
void v8::internal::maglev::MaglevAssembler::EmitEagerDeoptIfSmi ( NodeT * node,
Register object,
DeoptimizeReason reason )
inline

Definition at line 1007 of file maglev-assembler.h.

Here is the call graph for this function:

◆ EmitEagerDeoptStress()

void v8::internal::maglev::MaglevAssembler::EmitEagerDeoptStress ( Label * label)
inline

Definition at line 903 of file maglev-assembler-arm-inl.h.

◆ EmitEnterExitFrame()

void v8::internal::maglev::MaglevAssembler::EmitEnterExitFrame ( int extra_slots,
StackFrame::Type frame_type,
Register c_function,
Register scratch )
inline

Definition at line 524 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ EnsureWritableFastElements()

void v8::internal::maglev::MaglevAssembler::EnsureWritableFastElements ( RegisterSnapshot register_snapshot,
Register elements,
Register object,
Register scratch )

Definition at line 140 of file maglev-assembler.cc.

Here is the call graph for this function:

◆ FinishCode()

void v8::internal::maglev::MaglevAssembler::FinishCode ( )
inline

Definition at line 1255 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ FromAnyToRegister()

Register v8::internal::maglev::MaglevAssembler::FromAnyToRegister ( const Input & input,
Register scratch )

Definition at line 42 of file maglev-assembler.cc.

Here is the call graph for this function:

◆ FunctionEntryStackCheck()

Condition v8::internal::maglev::MaglevAssembler::FunctionEntryStackCheck ( int stack_check_offset)
inline

Definition at line 1241 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ GenerateCheckConstTrackingLetCellFooter()

void v8::internal::maglev::MaglevAssembler::GenerateCheckConstTrackingLetCellFooter ( Register context,
Register data,
int index,
Label * done )

Definition at line 670 of file maglev-assembler.cc.

Here is the call graph for this function:

◆ GetAllocatableDoubleRegisters()

static constexpr DoubleRegList v8::internal::maglev::MaglevAssembler::GetAllocatableDoubleRegisters ( )
inlinestaticconstexpr

Definition at line 120 of file maglev-assembler.h.

Here is the caller graph for this function:

◆ GetAllocatableRegisters()

static constexpr RegList v8::internal::maglev::MaglevAssembler::GetAllocatableRegisters ( )
inlinestaticconstexpr

Definition at line 105 of file maglev-assembler.h.

Here is the caller graph for this function:

◆ GetDeoptLabel()

template<typename NodeT >
Label * v8::internal::maglev::MaglevAssembler::GetDeoptLabel ( NodeT * node,
DeoptimizeReason reason )
inline

Definition at line 977 of file maglev-assembler.h.

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

◆ GetFramePointer()

Register v8::internal::maglev::MaglevAssembler::GetFramePointer ( )
inline

Definition at line 284 of file maglev-assembler-arm-inl.h.

◆ GetFramePointerOffsetForStackSlot() [1/2]

int v8::internal::maglev::MaglevAssembler::GetFramePointerOffsetForStackSlot ( const compiler::AllocatedOperand & operand)
inline

Definition at line 130 of file maglev-assembler.h.

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

◆ GetFramePointerOffsetForStackSlot() [2/2]

int v8::internal::maglev::MaglevAssembler::GetFramePointerOffsetForStackSlot ( int index)
inlineconstexprprivate

Definition at line 825 of file maglev-assembler.h.

◆ GetStackSlot()

MemOperand v8::internal::maglev::MaglevAssembler::GetStackSlot ( const compiler::AllocatedOperand & operand)
inline

Definition at line 287 of file maglev-assembler-arm-inl.h.

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

◆ IncrementAddress()

void v8::internal::maglev::MaglevAssembler::IncrementAddress ( Register reg,
int32_t delta )
inline

Definition at line 513 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ IncrementInt32()

void v8::internal::maglev::MaglevAssembler::IncrementInt32 ( Register reg)
inline

Definition at line 481 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Int32ToDouble()

void v8::internal::maglev::MaglevAssembler::Int32ToDouble ( DoubleRegister result,
Register src )
inline

Definition at line 1196 of file maglev-assembler-arm-inl.h.

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

◆ IntPtrToDouble()

void v8::internal::maglev::MaglevAssembler::IntPtrToDouble ( DoubleRegister result,
Register src )
inline

Definition at line 1209 of file maglev-assembler-arm-inl.h.

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

◆ IsCallableAndNotUndetectable()

Condition v8::internal::maglev::MaglevAssembler::IsCallableAndNotUndetectable ( Register map,
Register scratch )
inline

Definition at line 717 of file maglev-assembler-arm-inl.h.

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

◆ IsDeoptLabel()

bool v8::internal::maglev::MaglevAssembler::IsDeoptLabel ( Label * label)
inline

Definition at line 967 of file maglev-assembler.h.

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

◆ IsNotCallableNorUndetactable()

Condition v8::internal::maglev::MaglevAssembler::IsNotCallableNorUndetactable ( Register map,
Register scratch )
inline

Definition at line 727 of file maglev-assembler-arm-inl.h.

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

◆ IsRootConstant()

Condition v8::internal::maglev::MaglevAssembler::IsRootConstant ( Input input,
RootIndex root_index )
inline

Definition at line 266 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Jump()

void v8::internal::maglev::MaglevAssembler::Jump ( Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 891 of file maglev-assembler-arm-inl.h.

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

◆ JumpIf()

void v8::internal::maglev::MaglevAssembler::JumpIf ( Condition cond,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 910 of file maglev-assembler-arm-inl.h.

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

◆ JumpIfByte()

void v8::internal::maglev::MaglevAssembler::JumpIfByte ( Condition cc,
Register value,
int32_t byte,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 937 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ JumpIfHoleNan()

void v8::internal::maglev::MaglevAssembler::JumpIfHoleNan ( DoubleRegister value,
Register scratch,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 943 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ JumpIfJSAnyIsNotPrimitive()

void v8::internal::maglev::MaglevAssembler::JumpIfJSAnyIsNotPrimitive ( Register heap_object,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 828 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ JumpIfNan()

void v8::internal::maglev::MaglevAssembler::JumpIfNan ( DoubleRegister value,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 985 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ JumpIfNotCallable()

void v8::internal::maglev::MaglevAssembler::JumpIfNotCallable ( Register object,
Register scratch,
CheckType check_type,
Label * target,
Label::Distance distance = Label::kFar )

Definition at line 125 of file maglev-assembler.cc.

Here is the call graph for this function:

◆ JumpIfNotHoleNan() [1/2]

void v8::internal::maglev::MaglevAssembler::JumpIfNotHoleNan ( DoubleRegister value,
Register scratch,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 966 of file maglev-assembler-arm-inl.h.

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

◆ JumpIfNotHoleNan() [2/2]

void v8::internal::maglev::MaglevAssembler::JumpIfNotHoleNan ( MemOperand operand,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 974 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ JumpIfNotNan()

void v8::internal::maglev::MaglevAssembler::JumpIfNotNan ( DoubleRegister value,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 991 of file maglev-assembler-arm-inl.h.

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

◆ JumpIfNotObjectType()

void v8::internal::maglev::MaglevAssembler::JumpIfNotObjectType ( Register heap_object,
InstanceType type,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 750 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ JumpIfNotRoot()

void v8::internal::maglev::MaglevAssembler::JumpIfNotRoot ( Register with,
RootIndex index,
Label * if_not_equal,
Label::Distance distance = Label::kFar )
inline

Definition at line 921 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ JumpIfNotSmi()

void v8::internal::maglev::MaglevAssembler::JumpIfNotSmi ( Register src,
Label * on_not_smi,
Label::Distance near_jump = Label::kFar )
inline

Definition at line 932 of file maglev-assembler-arm-inl.h.

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

◆ JumpIfNotString()

void v8::internal::maglev::MaglevAssembler::JumpIfNotString ( Register heap_object,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 938 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ JumpIfNotUndetectable()

void v8::internal::maglev::MaglevAssembler::JumpIfNotUndetectable ( Register object,
Register scratch,
CheckType check_type,
Label * target,
Label::Distance distance = Label::kFar )

Definition at line 93 of file maglev-assembler.cc.

Here is the call graph for this function:

◆ JumpIfObjectType()

void v8::internal::maglev::MaglevAssembler::JumpIfObjectType ( Register heap_object,
InstanceType type,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 741 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ JumpIfObjectTypeInRange()

void v8::internal::maglev::MaglevAssembler::JumpIfObjectTypeInRange ( Register heap_object,
InstanceType lower_limit,
InstanceType higher_limit,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 781 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ JumpIfObjectTypeNotInRange()

void v8::internal::maglev::MaglevAssembler::JumpIfObjectTypeNotInRange ( Register heap_object,
InstanceType lower_limit,
InstanceType higher_limit,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 793 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ JumpIfRoot()

void v8::internal::maglev::MaglevAssembler::JumpIfRoot ( Register with,
RootIndex index,
Label * if_equal,
Label::Distance distance = Label::kFar )
inline

Definition at line 915 of file maglev-assembler-arm-inl.h.

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

◆ JumpIfSmi()

void v8::internal::maglev::MaglevAssembler::JumpIfSmi ( Register src,
Label * on_smi,
Label::Distance near_jump = Label::kFar )
inline

Definition at line 927 of file maglev-assembler-arm-inl.h.

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

◆ JumpIfString()

void v8::internal::maglev::MaglevAssembler::JumpIfString ( Register heap_object,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 926 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ JumpIfStringMap()

void v8::internal::maglev::MaglevAssembler::JumpIfStringMap ( Register map,
Label * target,
Label::Distance distance = Label::kFar,
bool jump_if_true = true )
inline

Definition at line 904 of file maglev-assembler-inl.h.

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

◆ JumpIfUndetectable()

void v8::internal::maglev::MaglevAssembler::JumpIfUndetectable ( Register object,
Register scratch,
CheckType check_type,
Label * target,
Label::Distance distance = Label::kFar )

Definition at line 108 of file maglev-assembler.cc.

Here is the call graph for this function:

◆ JumpToDeferredIf()

template<typename Function , typename... Args>
void v8::internal::maglev::MaglevAssembler::JumpToDeferredIf ( Condition cond,
Function && deferred_code_gen,
Args &&... args )
inline

Definition at line 251 of file maglev-assembler-inl.h.

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

◆ JumpToDeopt()

void v8::internal::maglev::MaglevAssembler::JumpToDeopt ( Label * target)
inline

Definition at line 898 of file maglev-assembler-arm-inl.h.

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

◆ LoadAddress()

void v8::internal::maglev::MaglevAssembler::LoadAddress ( Register dst,
MemOperand location )
inline

Definition at line 517 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ LoadAndUntagTaggedSignedField()

void v8::internal::maglev::MaglevAssembler::LoadAndUntagTaggedSignedField ( Register result,
Register object,
int offset )
inline

Definition at line 419 of file maglev-assembler-inl.h.

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

◆ LoadBitField()

template<typename BitField >
void v8::internal::maglev::MaglevAssembler::LoadBitField ( Register result,
MemOperand operand )
inline

Definition at line 210 of file maglev-assembler.h.

◆ LoadBoundedSizeFromObject()

void v8::internal::maglev::MaglevAssembler::LoadBoundedSizeFromObject ( Register result,
Register object,
int offset )
inline

Definition at line 333 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ LoadByte()

void v8::internal::maglev::MaglevAssembler::LoadByte ( Register dst,
MemOperand src )
inline

Definition at line 713 of file maglev-assembler-arm-inl.h.

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

◆ LoadDataField()

void v8::internal::maglev::MaglevAssembler::LoadDataField ( const PolymorphicAccessInfo & access_info,
Register result,
Register object,
Register scratch )

Definition at line 69 of file maglev-assembler.cc.

Here is the call graph for this function:

◆ LoadExternalPointerField()

void v8::internal::maglev::MaglevAssembler::LoadExternalPointerField ( Register result,
MemOperand operand )
inline

Definition at line 339 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ LoadFixedArrayElement()

void v8::internal::maglev::MaglevAssembler::LoadFixedArrayElement ( Register result,
Register array,
Register index )
inline

Definition at line 344 of file maglev-assembler-arm-inl.h.

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

◆ LoadFixedArrayElementWithoutDecompressing()

void v8::internal::maglev::MaglevAssembler::LoadFixedArrayElementWithoutDecompressing ( Register result,
Register array,
Register index )
inline

Definition at line 355 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ LoadFixedDoubleArrayElement()

void v8::internal::maglev::MaglevAssembler::LoadFixedDoubleArrayElement ( DoubleRegister result,
Register array,
Register index )
inline

Definition at line 361 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ LoadFloat32()

void v8::internal::maglev::MaglevAssembler::LoadFloat32 ( DoubleRegister dst,
MemOperand src )
inline

Definition at line 595 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ LoadFloat64()

void v8::internal::maglev::MaglevAssembler::LoadFloat64 ( DoubleRegister dst,
MemOperand src )
inline

Definition at line 612 of file maglev-assembler-arm-inl.h.

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

◆ LoadHeapInt32Value()

void v8::internal::maglev::MaglevAssembler::LoadHeapInt32Value ( Register result,
Register heap_number )
inline

Definition at line 1186 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ LoadHeapNumberOrOddballValue()

void v8::internal::maglev::MaglevAssembler::LoadHeapNumberOrOddballValue ( DoubleRegister result,
Register object )
inline

Definition at line 425 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ LoadHeapNumberValue()

void v8::internal::maglev::MaglevAssembler::LoadHeapNumberValue ( DoubleRegister result,
Register heap_number )
inline

Definition at line 1181 of file maglev-assembler-arm-inl.h.

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

◆ LoadInstanceType()

void v8::internal::maglev::MaglevAssembler::LoadInstanceType ( Register instance_type,
Register heap_object )
inline

Definition at line 735 of file maglev-assembler-arm-inl.h.

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

◆ LoadInt32()

void v8::internal::maglev::MaglevAssembler::LoadInt32 ( Register dst,
MemOperand src )
inline

Definition at line 587 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ LoadMapForCompare()

void v8::internal::maglev::MaglevAssembler::LoadMapForCompare ( Register dst,
Register obj )
inline

Definition at line 985 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ LoadSignedField()

void v8::internal::maglev::MaglevAssembler::LoadSignedField ( Register result,
MemOperand operand,
int element_size )
inline

Definition at line 384 of file maglev-assembler-arm-inl.h.

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

◆ LoadSingleCharacterString() [1/2]

void v8::internal::maglev::MaglevAssembler::LoadSingleCharacterString ( Register result,
int char_code )

Definition at line 59 of file maglev-assembler.cc.

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

◆ LoadSingleCharacterString() [2/2]

void v8::internal::maglev::MaglevAssembler::LoadSingleCharacterString ( Register result,
Register char_code,
Register scratch )

Definition at line 222 of file maglev-assembler-arm.cc.

Here is the call graph for this function:

◆ LoadTaggedField() [1/2]

void v8::internal::maglev::MaglevAssembler::LoadTaggedField ( Register result,
MemOperand operand )
inline

Definition at line 398 of file maglev-assembler-inl.h.

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

◆ LoadTaggedField() [2/2]

void v8::internal::maglev::MaglevAssembler::LoadTaggedField ( Register result,
Register object,
int offset )
inline

Definition at line 403 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ LoadTaggedFieldByIndex()

void v8::internal::maglev::MaglevAssembler::LoadTaggedFieldByIndex ( Register result,
Register object,
Register index,
int scale,
int offset )
inline

Definition at line 325 of file maglev-assembler-arm-inl.h.

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

◆ LoadTaggedFieldWithoutDecompressing()

void v8::internal::maglev::MaglevAssembler::LoadTaggedFieldWithoutDecompressing ( Register result,
Register object,
int offset )
inline

Definition at line 1307 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ LoadTaggedSignedField() [1/2]

void v8::internal::maglev::MaglevAssembler::LoadTaggedSignedField ( Register result,
MemOperand operand )
inline

Definition at line 408 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ LoadTaggedSignedField() [2/2]

void v8::internal::maglev::MaglevAssembler::LoadTaggedSignedField ( Register result,
Register object,
int offset )
inline

Definition at line 413 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ LoadThinStringValue()

void v8::internal::maglev::MaglevAssembler::LoadThinStringValue ( Register result,
Register string )
inline

Definition at line 970 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ LoadUnalignedFloat64()

void v8::internal::maglev::MaglevAssembler::LoadUnalignedFloat64 ( DoubleRegister dst,
Register base,
Register index )
inline

Definition at line 619 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ LoadUnalignedFloat64AndReverseByteOrder()

void v8::internal::maglev::MaglevAssembler::LoadUnalignedFloat64AndReverseByteOrder ( DoubleRegister dst,
Register base,
Register index )
inline

Definition at line 631 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ LoadUnsignedField()

void v8::internal::maglev::MaglevAssembler::LoadUnsignedField ( Register result,
MemOperand operand,
int element_size )
inline

Definition at line 396 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ MakeDeferredCode()

template<typename Function , typename... Args>
Label * v8::internal::maglev::MaglevAssembler::MakeDeferredCode ( Function && deferred_code_gen,
Args &&... args )
inline

Definition at line 219 of file maglev-assembler-inl.h.

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

◆ MaterialiseValueNode()

void v8::internal::maglev::MaglevAssembler::MaterialiseValueNode ( Register dst,
ValueNode * value )

Definition at line 273 of file maglev-assembler.cc.

Here is the call graph for this function:

◆ MaybeEmitDeoptBuiltinsCall()

void v8::internal::maglev::MaglevAssembler::MaybeEmitDeoptBuiltinsCall ( size_t eager_deopt_count,
Label * eager_deopt_entry,
size_t lazy_deopt_count,
Label * lazy_deopt_entry )

Definition at line 215 of file maglev-assembler-arm.cc.

Here is the call graph for this function:

◆ MaybeEmitPlaceHolderForDeopt()

void v8::internal::maglev::MaglevAssembler::MaybeEmitPlaceHolderForDeopt ( )
inline

Definition at line 1303 of file maglev-assembler-arm-inl.h.

Here is the caller graph for this function:

◆ Move() [1/17]

void v8::internal::maglev::MaglevAssembler::Move ( DoubleRegister dst,
double n )
inline

Definition at line 574 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Move() [2/17]

void v8::internal::maglev::MaglevAssembler::Move ( DoubleRegister dst,
DoubleRegister src )
inline

Definition at line 549 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Move() [3/17]

void v8::internal::maglev::MaglevAssembler::Move ( DoubleRegister dst,
Float64 n )
inline

Definition at line 577 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Move() [4/17]

void v8::internal::maglev::MaglevAssembler::Move ( DoubleRegister dst,
StackSlot src )
inline

Definition at line 540 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Move() [5/17]

void v8::internal::maglev::MaglevAssembler::Move ( MemOperand dst,
Register src )
inline

Definition at line 543 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Move() [6/17]

void v8::internal::maglev::MaglevAssembler::Move ( Register dst,
ExternalReference src )
inline

Definition at line 557 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Move() [7/17]

void v8::internal::maglev::MaglevAssembler::Move ( Register dst,
Handle< HeapObject > obj )
inline

Definition at line 580 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Move() [8/17]

void v8::internal::maglev::MaglevAssembler::Move ( Register dst,
IndirectPointerTag i )
inline

Definition at line 768 of file maglev-assembler-arm64-inl.h.

Here is the call graph for this function:

◆ Move() [9/17]

void v8::internal::maglev::MaglevAssembler::Move ( Register dst,
int32_t i )
inline

Definition at line 568 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Move() [10/17]

void v8::internal::maglev::MaglevAssembler::Move ( Register dst,
MemOperand src )
inline

Definition at line 546 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Move() [11/17]

void v8::internal::maglev::MaglevAssembler::Move ( Register dst,
Register src )
inline

Definition at line 560 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Move() [12/17]

void v8::internal::maglev::MaglevAssembler::Move ( Register dst,
StackSlot src )
inline

Definition at line 537 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Move() [13/17]

void v8::internal::maglev::MaglevAssembler::Move ( Register dst,
Tagged< Smi > src )
inline

Definition at line 554 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Move() [14/17]

void v8::internal::maglev::MaglevAssembler::Move ( Register dst,
Tagged< TaggedIndex > i )
inline

Definition at line 565 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Move() [15/17]

void v8::internal::maglev::MaglevAssembler::Move ( Register dst,
uint32_t i )
inline

Definition at line 571 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Move() [16/17]

void v8::internal::maglev::MaglevAssembler::Move ( StackSlot dst,
DoubleRegister src )
inline

Definition at line 534 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Move() [17/17]

void v8::internal::maglev::MaglevAssembler::Move ( StackSlot dst,
Register src )
inline

Definition at line 531 of file maglev-assembler-arm-inl.h.

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

◆ MoveHeapNumber()

void v8::internal::maglev::MaglevAssembler::MoveHeapNumber ( Register dst,
double value )
inline

Definition at line 262 of file maglev-assembler-arm-inl.h.

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

◆ MoveRepr() [1/18]

template<typename Dest , typename Source >
void v8::internal::maglev::MaglevAssembler::MoveRepr ( MachineRepresentation repr,
Dest dst,
Source src )
inline

Definition at line 1326 of file maglev-assembler-x64-inl.h.

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

◆ MoveRepr() [2/18]

template<>
void v8::internal::maglev::MaglevAssembler::MoveRepr ( MachineRepresentation repr,
MemOperand dst,
MemOperand src )
inline

Definition at line 1295 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ MoveRepr() [3/18]

template<>
void v8::internal::maglev::MaglevAssembler::MoveRepr ( MachineRepresentation repr,
MemOperand dst,
MemOperand src )
inline

Definition at line 1486 of file maglev-assembler-arm64-inl.h.

Here is the call graph for this function:

◆ MoveRepr() [4/18]

template<>
void v8::internal::maglev::MaglevAssembler::MoveRepr ( MachineRepresentation repr,
MemOperand dst,
MemOperand src )
inline

Definition at line 2010 of file maglev-assembler-riscv-inl.h.

Here is the call graph for this function:

◆ MoveRepr() [5/18]

template<>
void v8::internal::maglev::MaglevAssembler::MoveRepr ( MachineRepresentation repr,
MemOperand dst,
MemOperand src )
inline

Definition at line 1384 of file maglev-assembler-s390-inl.h.

Here is the call graph for this function:

◆ MoveRepr() [6/18]

template<>
void v8::internal::maglev::MaglevAssembler::MoveRepr ( MachineRepresentation repr,
MemOperand dst,
MemOperand src )
inline

Definition at line 1341 of file maglev-assembler-x64-inl.h.

Here is the call graph for this function:

◆ MoveRepr() [7/18]

template<>
void v8::internal::maglev::MaglevAssembler::MoveRepr ( MachineRepresentation repr,
MemOperand dst,
Register src )
inline

Definition at line 1282 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ MoveRepr() [8/18]

template<>
void v8::internal::maglev::MaglevAssembler::MoveRepr ( MachineRepresentation repr,
MemOperand dst,
Register src )
inline

Definition at line 1471 of file maglev-assembler-arm64-inl.h.

Here is the call graph for this function:

◆ MoveRepr() [9/18]

template<>
void v8::internal::maglev::MaglevAssembler::MoveRepr ( MachineRepresentation repr,
MemOperand dst,
Register src )
inline

Definition at line 1995 of file maglev-assembler-riscv-inl.h.

Here is the call graph for this function:

◆ MoveRepr() [10/18]

template<>
void v8::internal::maglev::MaglevAssembler::MoveRepr ( MachineRepresentation repr,
MemOperand dst,
Register src )
inline

Definition at line 1370 of file maglev-assembler-s390-inl.h.

Here is the call graph for this function:

◆ MoveRepr() [11/18]

template<>
void v8::internal::maglev::MaglevAssembler::MoveRepr ( MachineRepresentation repr,
Register dst,
MemOperand src )
inline

Definition at line 1269 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ MoveRepr() [12/18]

template<>
void v8::internal::maglev::MaglevAssembler::MoveRepr ( MachineRepresentation repr,
Register dst,
MemOperand src )
inline

Definition at line 1456 of file maglev-assembler-arm64-inl.h.

Here is the call graph for this function:

◆ MoveRepr() [13/18]

template<>
void v8::internal::maglev::MaglevAssembler::MoveRepr ( MachineRepresentation repr,
Register dst,
MemOperand src )
inline

Definition at line 1980 of file maglev-assembler-riscv-inl.h.

Here is the call graph for this function:

◆ MoveRepr() [14/18]

template<>
void v8::internal::maglev::MaglevAssembler::MoveRepr ( MachineRepresentation repr,
Register dst,
MemOperand src )
inline

Definition at line 1355 of file maglev-assembler-s390-inl.h.

Here is the call graph for this function:

◆ MoveRepr() [15/18]

template<>
void v8::internal::maglev::MaglevAssembler::MoveRepr ( MachineRepresentation repr,
Register dst,
Register src )
inline

Definition at line 1264 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ MoveRepr() [16/18]

template<>
void v8::internal::maglev::MaglevAssembler::MoveRepr ( MachineRepresentation repr,
Register dst,
Register src )
inline

Definition at line 1451 of file maglev-assembler-arm64-inl.h.

Here is the call graph for this function:

◆ MoveRepr() [17/18]

template<>
void v8::internal::maglev::MaglevAssembler::MoveRepr ( MachineRepresentation repr,
Register dst,
Register src )
inline

Definition at line 1975 of file maglev-assembler-riscv-inl.h.

Here is the call graph for this function:

◆ MoveRepr() [18/18]

template<>
void v8::internal::maglev::MaglevAssembler::MoveRepr ( MachineRepresentation repr,
Register dst,
Register src )
inline

Definition at line 1350 of file maglev-assembler-s390-inl.h.

Here is the call graph for this function:

◆ MoveTagged()

void v8::internal::maglev::MaglevAssembler::MoveTagged ( Register dst,
Handle< HeapObject > obj )
inline

Definition at line 583 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ native_context()

compiler::NativeContextRef v8::internal::maglev::MaglevAssembler::native_context ( ) const
inline

Definition at line 794 of file maglev-assembler.h.

Here is the caller graph for this function:

◆ NegateInt32()

void v8::internal::maglev::MaglevAssembler::NegateInt32 ( Register val)
inline

Definition at line 675 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ OrInt32() [1/2]

void v8::internal::maglev::MaglevAssembler::OrInt32 ( Register reg,
int mask )
inline

Definition at line 497 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ OrInt32() [2/2]

void v8::internal::maglev::MaglevAssembler::OrInt32 ( Register reg,
Register other )
inline

Definition at line 505 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ OSRPrologue()

void v8::internal::maglev::MaglevAssembler::OSRPrologue ( Graph * graph)

Definition at line 83 of file maglev-assembler-arm.cc.

Here is the call graph for this function:

◆ Pop() [1/14]

void v8::internal::MacroAssembler::Pop ( const CPURegister & dst0,
const CPURegister & dst1,
const CPURegister & dst2,
const CPURegister & dst3,
const CPURegister & dst4,
const CPURegister & dst5 = NoReg,
const CPURegister & dst6 = NoReg,
const CPURegister & dst7 = NoReg )

◆ Pop() [2/14]

template<LoadLRMode lr_mode = kDontLoadLR>
void v8::internal::MacroAssembler::Pop ( const CPURegister & dst0,
const CPURegister & dst1 = NoReg,
const CPURegister & dst2 = NoReg,
const CPURegister & dst3 = NoReg )

Definition at line 927 of file macro-assembler-arm64-inl.h.

◆ Pop() [3/14]

void v8::internal::MacroAssembler::Pop ( Operand dst)
inline

Definition at line 386 of file macro-assembler-ia32.h.

◆ Pop() [4/14]

void v8::internal::maglev::MaglevAssembler::Pop ( Register dst)
inline

Definition at line 1227 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Pop() [5/14]

template<typename... Rs>
void v8::internal::MacroAssembler::Pop ( Register r,
Rs... rs )
inline

Definition at line 566 of file macro-assembler-riscv.h.

◆ Pop() [6/14]

void v8::internal::MacroAssembler::Pop ( Register src1,
Register src2 )
inline

Definition at line 399 of file macro-assembler-loong64.h.

◆ Pop() [7/14]

void v8::internal::MacroAssembler::Pop ( Register src1,
Register src2,
Condition cond = al )
inline

Definition at line 178 of file macro-assembler-arm.h.

◆ Pop() [8/14]

void v8::internal::MacroAssembler::Pop ( Register src1,
Register src2,
Register src3 )
inline

Definition at line 407 of file macro-assembler-loong64.h.

◆ Pop() [9/14]

void v8::internal::MacroAssembler::Pop ( Register src1,
Register src2,
Register src3,
Condition cond = al )
inline

Definition at line 189 of file macro-assembler-arm.h.

◆ Pop() [10/14]

void v8::internal::MacroAssembler::Pop ( Register src1,
Register src2,
Register src3,
Register src4 )
inline

Definition at line 514 of file macro-assembler-ppc.h.

◆ Pop() [11/14]

void v8::internal::MacroAssembler::Pop ( Register src1,
Register src2,
Register src3,
Register src4,
Condition cond = al )
inline

Definition at line 205 of file macro-assembler-arm.h.

◆ Pop() [12/14]

void v8::internal::MacroAssembler::Pop ( Register src1,
Register src2,
Register src3,
Register src4,
Register src5 )
inline

Definition at line 523 of file macro-assembler-ppc.h.

◆ Pop() [13/14]

void v8::internal::MacroAssembler::Pop ( uint32_t count = 1)
inline

Definition at line 448 of file macro-assembler-mips64.h.

◆ Pop() [14/14]

void v8::internal::MacroAssembler::Pop ( XMMRegister dst,
Register scratch )
inline

Definition at line 387 of file macro-assembler-ia32.h.

◆ PrepareCallCFunction()

void v8::internal::maglev::MaglevAssembler::PrepareCallCFunction ( int num_reg_arguments,
int num_double_registers = 0 )
inline

Definition at line 881 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Prologue()

void v8::internal::maglev::MaglevAssembler::Prologue ( Graph * graph)

Definition at line 126 of file maglev-assembler-arm.cc.

Here is the call graph for this function:

◆ Push()

template<typename... T>
void v8::internal::maglev::MaglevAssembler::Push ( T... vals)
inline

Definition at line 204 of file maglev-assembler-arm-inl.h.

Here is the caller graph for this function:

◆ PushReverse()

template<typename... T>
void v8::internal::maglev::MaglevAssembler::PushReverse ( T... vals)
inline

Definition at line 209 of file maglev-assembler-arm-inl.h.

Here is the caller graph for this function:

◆ ReverseByteOrder()

void v8::internal::maglev::MaglevAssembler::ReverseByteOrder ( Register value,
int element_size )
inline

Definition at line 470 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ ReverseByteOrderAndStoreUnalignedFloat64()

void v8::internal::maglev::MaglevAssembler::ReverseByteOrderAndStoreUnalignedFloat64 ( Register base,
Register index,
DoubleRegister src )
inline

Definition at line 657 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ safepoint_table_builder()

MaglevSafepointTableBuilder * v8::internal::maglev::MaglevAssembler::safepoint_table_builder ( ) const
inline

Definition at line 799 of file maglev-assembler.h.

Here is the caller graph for this function:

◆ scratch_register_scope()

TemporaryRegisterScope * v8::internal::maglev::MaglevAssembler::scratch_register_scope ( ) const
inline

Definition at line 806 of file maglev-assembler.h.

Here is the caller graph for this function:

◆ SetMapAsRoot()

void v8::internal::maglev::MaglevAssembler::SetMapAsRoot ( Register object,
RootIndex map )
inline

Definition at line 774 of file maglev-assembler-inl.h.

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

◆ SetSlotAddressForFixedArrayElement()

void v8::internal::maglev::MaglevAssembler::SetSlotAddressForFixedArrayElement ( Register slot_reg,
Register object,
Register index )
inline

Definition at line 413 of file maglev-assembler-arm-inl.h.

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

◆ SetSlotAddressForTaggedField()

void v8::internal::maglev::MaglevAssembler::SetSlotAddressForTaggedField ( Register slot_reg,
Register object,
int offset )
inline

Definition at line 408 of file maglev-assembler-arm-inl.h.

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

◆ ShiftLeft()

void v8::internal::maglev::MaglevAssembler::ShiftLeft ( Register reg,
int amount )
inline

Definition at line 509 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ SignExtend32To64Bits()

void v8::internal::maglev::MaglevAssembler::SignExtend32To64Bits ( Register dst,
Register src )
inline

Definition at line 672 of file maglev-assembler-arm-inl.h.

◆ SmiAddConstant() [1/2]

void v8::internal::maglev::MaglevAssembler::SmiAddConstant ( Register dst,
Register src,
int value,
Label * fail,
Label::Distance distance = Label::kFar )
inline

Definition at line 236 of file maglev-assembler-arm-inl.h.

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

◆ SmiAddConstant() [2/2]

void v8::internal::maglev::MaglevAssembler::SmiAddConstant ( Register reg,
int value,
Label * fail,
Label::Distance distance = Label::kFar )
inline

Definition at line 892 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ SmiSubConstant() [1/2]

void v8::internal::maglev::MaglevAssembler::SmiSubConstant ( Register dst,
Register src,
int value,
Label * fail,
Label::Distance distance = Label::kFar )
inline

Definition at line 249 of file maglev-assembler-arm-inl.h.

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

◆ SmiSubConstant() [2/2]

void v8::internal::maglev::MaglevAssembler::SmiSubConstant ( Register reg,
int value,
Label * fail,
Label::Distance distance = Label::kFar )
inline

Definition at line 898 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ SmiTagInt32AndJumpIfFail() [1/2]

void v8::internal::maglev::MaglevAssembler::SmiTagInt32AndJumpIfFail ( Register dst,
Register src,
Label * fail,
Label::Distance distance = Label::kFar )
inline

Definition at line 781 of file maglev-assembler-inl.h.

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

◆ SmiTagInt32AndJumpIfFail() [2/2]

void v8::internal::maglev::MaglevAssembler::SmiTagInt32AndJumpIfFail ( Register reg,
Label * fail,
Label::Distance distance = Label::kFar )
inline

Definition at line 789 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ SmiTagInt32AndJumpIfSuccess() [1/2]

void v8::internal::maglev::MaglevAssembler::SmiTagInt32AndJumpIfSuccess ( Register dst,
Register src,
Label * success,
Label::Distance distance = Label::kFar )
inline

Definition at line 794 of file maglev-assembler-inl.h.

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

◆ SmiTagInt32AndJumpIfSuccess() [2/2]

void v8::internal::maglev::MaglevAssembler::SmiTagInt32AndJumpIfSuccess ( Register reg,
Label * success,
Label::Distance distance = Label::kFar )
inline

Definition at line 804 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ SmiTagInt32AndSetFlags()

void v8::internal::maglev::MaglevAssembler::SmiTagInt32AndSetFlags ( Register dst,
Register src )
inlineprivate

Definition at line 219 of file maglev-assembler-arm-inl.h.

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

◆ SmiTagIntPtrAndJumpIfFail()

void v8::internal::maglev::MaglevAssembler::SmiTagIntPtrAndJumpIfFail ( Register dst,
Register src,
Label * fail,
Label::Distance distance = Label::kFar )
inline

Definition at line 836 of file maglev-assembler-inl.h.

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

◆ SmiTagIntPtrAndJumpIfSuccess()

void v8::internal::maglev::MaglevAssembler::SmiTagIntPtrAndJumpIfSuccess ( Register dst,
Register src,
Label * success,
Label::Distance distance = Label::kFar )
inline

Definition at line 846 of file maglev-assembler-inl.h.

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

◆ SmiTagUint32AndJumpIfFail() [1/2]

void v8::internal::maglev::MaglevAssembler::SmiTagUint32AndJumpIfFail ( Register dst,
Register src,
Label * fail,
Label::Distance distance = Label::kFar )
inline

Definition at line 820 of file maglev-assembler-inl.h.

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

◆ SmiTagUint32AndJumpIfFail() [2/2]

void v8::internal::maglev::MaglevAssembler::SmiTagUint32AndJumpIfFail ( Register reg,
Label * fail,
Label::Distance distance = Label::kFar )
inline

Definition at line 831 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ SmiTagUint32AndJumpIfSuccess() [1/2]

void v8::internal::maglev::MaglevAssembler::SmiTagUint32AndJumpIfSuccess ( Register dst,
Register src,
Label * success,
Label::Distance distance = Label::kFar )
inline

Definition at line 854 of file maglev-assembler-inl.h.

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

◆ SmiTagUint32AndJumpIfSuccess() [2/2]

void v8::internal::maglev::MaglevAssembler::SmiTagUint32AndJumpIfSuccess ( Register reg,
Label * success,
Label::Distance distance = Label::kFar )
inline

Definition at line 862 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ SmiToDouble()

void v8::internal::maglev::MaglevAssembler::SmiToDouble ( DoubleRegister result,
Register smi )
inline

Definition at line 281 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ StackSlotOperand()

MemOperand v8::internal::maglev::MaglevAssembler::StackSlotOperand ( StackSlot slot)
inline

Definition at line 280 of file maglev-assembler-arm-inl.h.

Here is the caller graph for this function:

◆ StoreField()

void v8::internal::maglev::MaglevAssembler::StoreField ( MemOperand operand,
Register value,
int element_size )
inline

Definition at line 457 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ StoreFixedArrayElementNoWriteBarrier()

void v8::internal::maglev::MaglevAssembler::StoreFixedArrayElementNoWriteBarrier ( Register array,
Register index,
Register value )
inline

Definition at line 426 of file maglev-assembler-arm-inl.h.

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

◆ StoreFixedArrayElementWithWriteBarrier()

void v8::internal::maglev::MaglevAssembler::StoreFixedArrayElementWithWriteBarrier ( Register array,
Register index,
Register value,
RegisterSnapshot register_snapshot )

Definition at line 656 of file maglev-assembler.cc.

Here is the call graph for this function:

◆ StoreFixedDoubleArrayElement()

void v8::internal::maglev::MaglevAssembler::StoreFixedDoubleArrayElement ( Register array,
Register index,
DoubleRegister value )
inline

Definition at line 376 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ StoreFloat32()

void v8::internal::maglev::MaglevAssembler::StoreFloat32 ( MemOperand dst,
DoubleRegister src )
inline

Definition at line 606 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ StoreFloat64()

void v8::internal::maglev::MaglevAssembler::StoreFloat64 ( MemOperand dst,
DoubleRegister src )
inline

Definition at line 615 of file maglev-assembler-arm-inl.h.

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

◆ StoreHeapInt32Value()

void v8::internal::maglev::MaglevAssembler::StoreHeapInt32Value ( Register value,
Register heap_number )
inline

Definition at line 1191 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ StoreHeapNumberValue()

void v8::internal::maglev::MaglevAssembler::StoreHeapNumberValue ( DoubleRegister value,
Register heap_number )
inline

Definition at line 432 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ StoreInt32()

void v8::internal::maglev::MaglevAssembler::StoreInt32 ( MemOperand dst,
Register src )
inline

Definition at line 591 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ StoreInt32Field()

void v8::internal::maglev::MaglevAssembler::StoreInt32Field ( Register object,
int offset,
int32_t value )
inline

Definition at line 449 of file maglev-assembler-arm-inl.h.

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

◆ StoreTaggedFieldNoWriteBarrier()

void v8::internal::maglev::MaglevAssembler::StoreTaggedFieldNoWriteBarrier ( Register object,
int offset,
Register value )
inline

Definition at line 420 of file maglev-assembler-arm-inl.h.

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

◆ StoreTaggedFieldWithWriteBarrier()

void v8::internal::maglev::MaglevAssembler::StoreTaggedFieldWithWriteBarrier ( Register object,
int offset,
Register value,
RegisterSnapshot register_snapshot,
ValueIsCompressed value_is_compressed,
ValueCanBeSmi value_can_be_smi )

Definition at line 632 of file maglev-assembler.cc.

Here is the call graph for this function:

◆ StoreTaggedSignedField() [1/2]

void v8::internal::maglev::MaglevAssembler::StoreTaggedSignedField ( Register object,
int offset,
Register value )
inline

Definition at line 435 of file maglev-assembler-arm-inl.h.

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

◆ StoreTaggedSignedField() [2/2]

void v8::internal::maglev::MaglevAssembler::StoreTaggedSignedField ( Register object,
int offset,
Tagged< Smi > value )
inline

Definition at line 441 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ StoreUnalignedFloat64()

void v8::internal::maglev::MaglevAssembler::StoreUnalignedFloat64 ( Register base,
Register index,
DoubleRegister src )
inline

Definition at line 644 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ StringCharCodeOrCodePointAt()

void v8::internal::maglev::MaglevAssembler::StringCharCodeOrCodePointAt ( BuiltinStringPrototypeCharCodeOrCodePointAt::Mode mode,
RegisterSnapshot & register_snapshot,
Register result,
Register string,
Register index,
Register scratch1,
Register scratch2,
Label * result_fits_one_byte )

Definition at line 278 of file maglev-assembler-arm.cc.

Here is the call graph for this function:

◆ StringFromCharCode()

void v8::internal::maglev::MaglevAssembler::StringFromCharCode ( RegisterSnapshot register_snapshot,
Label * char_code_fits_one_byte,
Register result,
Register char_code,
Register scratch,
CharCodeMaskMode mask_mode )

Definition at line 236 of file maglev-assembler-arm.cc.

Here is the call graph for this function:

◆ StringLength()

void v8::internal::maglev::MaglevAssembler::StringLength ( Register result,
Register string )
inline

Definition at line 960 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ TestInt32AndJumpIfAllClear() [1/2]

void v8::internal::maglev::MaglevAssembler::TestInt32AndJumpIfAllClear ( MemOperand operand,
int32_t mask,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 1165 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ TestInt32AndJumpIfAllClear() [2/2]

void v8::internal::maglev::MaglevAssembler::TestInt32AndJumpIfAllClear ( Register r1,
int32_t mask,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 1159 of file maglev-assembler-arm-inl.h.

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

◆ TestInt32AndJumpIfAnySet() [1/2]

void v8::internal::maglev::MaglevAssembler::TestInt32AndJumpIfAnySet ( MemOperand operand,
int32_t mask,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 1143 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ TestInt32AndJumpIfAnySet() [2/2]

void v8::internal::maglev::MaglevAssembler::TestInt32AndJumpIfAnySet ( Register r1,
int32_t mask,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 1137 of file maglev-assembler-arm-inl.h.

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

◆ TestTypeOf()

void v8::internal::maglev::MaglevAssembler::TestTypeOf ( Register object,
interpreter::TestTypeOfFlags::LiteralFlag literal,
Label * if_true,
Label::Distance true_distance,
bool fallthrough_when_true,
Label * if_false,
Label::Distance false_distance,
bool fallthrough_when_false )

Definition at line 377 of file maglev-assembler.cc.

Here is the call graph for this function:

◆ TestUint8AndJumpIfAllClear()

void v8::internal::maglev::MaglevAssembler::TestUint8AndJumpIfAllClear ( MemOperand operand,
uint8_t mask,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 1173 of file maglev-assembler-arm-inl.h.

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

◆ TestUint8AndJumpIfAnySet()

void v8::internal::maglev::MaglevAssembler::TestUint8AndJumpIfAnySet ( MemOperand operand,
uint8_t mask,
Label * target,
Label::Distance distance = Label::kFar )
inline

Definition at line 1151 of file maglev-assembler-arm-inl.h.

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

◆ ToBoolean()

void v8::internal::maglev::MaglevAssembler::ToBoolean ( Register value,
CheckType check_type,
ZoneLabelRef is_true,
ZoneLabelRef is_false,
bool fallthrough_when_true )

Definition at line 163 of file maglev-assembler.cc.

Here is the call graph for this function:

◆ ToMemOperand() [1/2]

MemOperand v8::internal::maglev::MaglevAssembler::ToMemOperand ( const compiler::InstructionOperand & operand)
inline

Definition at line 292 of file maglev-assembler-arm-inl.h.

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

◆ ToMemOperand() [2/2]

MemOperand v8::internal::maglev::MaglevAssembler::ToMemOperand ( const ValueLocation & location)
inline

Definition at line 297 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ ToUint8Clamped()

void v8::internal::maglev::MaglevAssembler::ToUint8Clamped ( Register result,
DoubleRegister value,
Label * min,
Label * max,
Label * done )
inline

Definition at line 679 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ TruncateDoubleToInt32()

void v8::internal::maglev::MaglevAssembler::TruncateDoubleToInt32 ( Register dst,
DoubleRegister src )

Definition at line 462 of file maglev-assembler-arm.cc.

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

◆ TryChangeFloat64ToIndex()

void v8::internal::maglev::MaglevAssembler::TryChangeFloat64ToIndex ( Register result,
DoubleRegister value,
Label * success,
Label * fail )

Definition at line 553 of file maglev-assembler-arm.cc.

Here is the call graph for this function:

◆ TryMigrateInstance()

void v8::internal::maglev::MaglevAssembler::TryMigrateInstance ( Register object,
RegisterSnapshot & register_snapshot,
Label * fail )

Definition at line 702 of file maglev-assembler.cc.

Here is the call graph for this function:

◆ TryMigrateInstanceAndMarkMapAsMigrationTarget()

void v8::internal::maglev::MaglevAssembler::TryMigrateInstanceAndMarkMapAsMigrationTarget ( Register object,
RegisterSnapshot & register_snapshot )

Definition at line 730 of file maglev-assembler.cc.

Here is the call graph for this function:

◆ TryTruncateDoubleToInt32()

void v8::internal::maglev::MaglevAssembler::TryTruncateDoubleToInt32 ( Register dst,
DoubleRegister src,
Label * fail )

Definition at line 482 of file maglev-assembler-arm.cc.

Here is the call graph for this function:

◆ TryTruncateDoubleToUint32()

void v8::internal::maglev::MaglevAssembler::TryTruncateDoubleToUint32 ( Register dst,
DoubleRegister src,
Label * fail )

Definition at line 517 of file maglev-assembler-arm.cc.

Here is the call graph for this function:

◆ TypedArrayElementOperand()

MemOperand v8::internal::maglev::MaglevAssembler::TypedArrayElementOperand ( Register data_pointer,
Register index,
int element_size )
inline

Definition at line 313 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ Uint32ToDouble()

void v8::internal::maglev::MaglevAssembler::Uint32ToDouble ( DoubleRegister result,
Register src )
inline

Definition at line 1214 of file maglev-assembler-arm-inl.h.

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

◆ UncheckedSmiTagInt32() [1/2]

void v8::internal::maglev::MaglevAssembler::UncheckedSmiTagInt32 ( Register dst,
Register src )
inline

Definition at line 809 of file maglev-assembler-inl.h.

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

◆ UncheckedSmiTagInt32() [2/2]

void v8::internal::maglev::MaglevAssembler::UncheckedSmiTagInt32 ( Register reg)
inline

Definition at line 816 of file maglev-assembler-inl.h.

Here is the call graph for this function:

◆ UncheckedSmiTagUint32() [1/2]

void v8::internal::maglev::MaglevAssembler::UncheckedSmiTagUint32 ( Register dst,
Register src )
inline

Definition at line 867 of file maglev-assembler-inl.h.

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

◆ UncheckedSmiTagUint32() [2/2]

void v8::internal::maglev::MaglevAssembler::UncheckedSmiTagUint32 ( Register reg)
inline

Definition at line 879 of file maglev-assembler-inl.h.

Here is the call graph for this function:

Member Data Documentation

◆ code_gen_state_

MaglevCodeGenState* const v8::internal::maglev::MaglevAssembler::code_gen_state_
private

Definition at line 832 of file maglev-assembler.h.

◆ scratch_register_scope_

TemporaryRegisterScope* v8::internal::maglev::MaglevAssembler::scratch_register_scope_ = nullptr
private

Definition at line 833 of file maglev-assembler.h.


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