V8 Project
v8::internal::MacroAssembler Class Reference

#include <macro-assembler-arm.h>

+ Inheritance diagram for v8::internal::MacroAssembler:
+ Collaboration diagram for v8::internal::MacroAssembler:

Classes

class  BASE_EMBEDDED
 
class  NoUseRealAbortsScope
 
class  PushPopQueue
 
struct  Unresolved
 

Public Types

enum  RememberedSetFinalAction {
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd
}
 
enum  AdrHint { kAdrNear , kAdrFar }
 
enum  BoundFunctionAction { kMissOnBoundFunction , kDontMissOnBoundFunction }
 
enum  RememberedSetFinalAction {
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd
}
 
enum  RememberedSetFinalAction {
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd
}
 
enum  RememberedSetFinalAction {
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd
}
 
enum  RememberedSetFinalAction {
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd
}
 
enum  RememberedSetFinalAction {
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd
}
 
enum  RememberedSetFinalAction {
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd , kReturnAtEnd , kFallThroughAtEnd ,
  kReturnAtEnd , kFallThroughAtEnd
}
 
- 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 , CODE_AGE_MARKER_NOP = 6 ,
  CODE_AGE_SEQUENCE_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 ,
  CODE_AGE_MARKER_NOP = 6 , CODE_AGE_SEQUENCE_NOP
}
 
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 , CODE_AGE_MARKER_NOP = 6 ,
  CODE_AGE_SEQUENCE_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 ,
  CODE_AGE_MARKER_NOP = 6 , CODE_AGE_SEQUENCE_NOP
}
 
enum  RoundingMode {
  kRoundToNearest = 0x0 , kRoundDown = 0x1 , kRoundUp = 0x2 , kRoundToZero = 0x3 ,
  kRoundToNearest = 0x0 , kRoundDown = 0x1 , kRoundUp = 0x2 , kRoundToZero = 0x3
}
 
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 , CODE_AGE_MARKER_NOP = 6 ,
  CODE_AGE_SEQUENCE_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 ,
  CODE_AGE_MARKER_NOP = 6 , CODE_AGE_SEQUENCE_NOP
}
 
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 , CODE_AGE_MARKER_NOP = 6 ,
  CODE_AGE_SEQUENCE_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 ,
  CODE_AGE_MARKER_NOP = 6 , CODE_AGE_SEQUENCE_NOP
}
 
enum  RoundingMode {
  kRoundToNearest = 0x0 , kRoundDown = 0x1 , kRoundUp = 0x2 , kRoundToZero = 0x3 ,
  kRoundToNearest = 0x0 , kRoundDown = 0x1 , kRoundUp = 0x2 , kRoundToZero = 0x3
}
 

Public Member Functions

 MacroAssembler (Isolate *isolate, void *buffer, int size)
 
int CallSize (Address target, RelocInfo::Mode rmode, Condition cond=al)
 
int CallStubSize (CodeStub *stub, TypeFeedbackId ast_id=TypeFeedbackId::None(), Condition cond=al)
 
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 Call (Register target, Condition cond=al)
 
void Call (Address target, RelocInfo::Mode rmode, Condition cond=al, TargetAddressStorageMode mode=CAN_INLINE_TARGET_ADDRESS)
 
int CallSize (Handle< Code > code, RelocInfo::Mode rmode=RelocInfo::CODE_TARGET, TypeFeedbackId ast_id=TypeFeedbackId::None(), Condition cond=al)
 
void Call (Handle< Code > code, RelocInfo::Mode rmode=RelocInfo::CODE_TARGET, TypeFeedbackId ast_id=TypeFeedbackId::None(), Condition cond=al, TargetAddressStorageMode mode=CAN_INLINE_TARGET_ADDRESS)
 
void Ret (Condition cond=al)
 
void Drop (int count, Condition cond=al)
 
void Ret (int drop, Condition cond=al)
 
void Swap (Register reg1, Register reg2, Register scratch=no_reg, Condition cond=al)
 
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 Bfi (Register dst, Register src, Register scratch, int lsb, int width, Condition cond=al)
 
void Bfc (Register dst, Register src, int lsb, int width, Condition cond=al)
 
void Usat (Register dst, int satpos, const Operand &src, Condition cond=al)
 
void Call (Label *target)
 
void Push (Register src)
 
void Pop (Register dst)
 
void Move (Register dst, Handle< Object > value)
 
void Move (Register dst, Register src, Condition cond=al)
 
void Move (Register dst, const Operand &src, SBit sbit=LeaveCC, Condition cond=al)
 
void Move (DwVfpRegister dst, DwVfpRegister src)
 
void Load (Register dst, const MemOperand &src, Representation r)
 
void Store (Register src, const MemOperand &dst, Representation r)
 
void LoadRoot (Register destination, Heap::RootListIndex index, Condition cond=al)
 
void StoreRoot (Register source, Heap::RootListIndex index, Condition cond=al)
 
void IncrementalMarkingRecordWriteHelper (Register object, Register value, Register address)
 
void RememberedSetHelper (Register object, Register addr, Register scratch, SaveFPRegsMode save_fp, RememberedSetFinalAction and_then)
 
void CheckPageFlag (Register object, Register scratch, int mask, Condition cc, Label *condition_met)
 
void CheckMapDeprecated (Handle< Map > map, Register scratch, Label *if_deprecated)
 
void JumpIfNotInNewSpace (Register object, Register scratch, Label *branch)
 
void JumpIfInNewSpace (Register object, Register scratch, Label *branch)
 
void HasColor (Register object, Register scratch0, Register scratch1, Label *has_color, int first_bit, int second_bit)
 
void JumpIfBlack (Register object, Register scratch0, Register scratch1, Label *on_black)
 
void EnsureNotWhite (Register object, Register scratch1, Register scratch2, Register scratch3, Label *object_is_white_and_not_data)
 
void JumpIfDataObject (Register value, Register scratch, Label *not_data_object)
 
void RecordWriteField (Register object, int offset, Register value, Register scratch, LinkRegisterStatus lr_status, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void RecordWriteContextSlot (Register context, int offset, Register value, Register scratch, LinkRegisterStatus lr_status, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void RecordWriteForMap (Register object, Register map, Register dst, LinkRegisterStatus lr_status, SaveFPRegsMode save_fp)
 
void RecordWrite (Register object, Register address, Register value, LinkRegisterStatus lr_status, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void Push (Handle< Object > handle)
 
void Push (Smi *smi)
 
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 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 PushFixedFrame (Register marker_reg=no_reg)
 
void PopFixedFrame (Register marker_reg=no_reg)
 
void PushSafepointRegisters ()
 
void PopSafepointRegisters ()
 
void StoreToSafepointRegisterSlot (Register src, Register dst)
 
void LoadFromSafepointRegisterSlot (Register dst, Register src)
 
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 VFPEnsureFPSCRState (Register scratch)
 
void VFPCanonicalizeNaN (const DwVfpRegister dst, const DwVfpRegister src, const Condition cond=al)
 
void VFPCanonicalizeNaN (const DwVfpRegister value, 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 VFPCompareAndLoadFlags (const DwVfpRegister src1, const DwVfpRegister src2, const Register fpscr_flags, const Condition cond=al)
 
void VFPCompareAndLoadFlags (const DwVfpRegister src1, const double src2, const Register fpscr_flags, const Condition cond=al)
 
void Vmov (const DwVfpRegister dst, const double imm, const Register scratch=no_reg)
 
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 LoadNumber (Register object, LowDwVfpRegister dst, Register heap_number_map, Register scratch, Label *not_number)
 
void LoadNumberAsInt32Double (Register object, DwVfpRegister double_dst, Register heap_number_map, Register scratch, LowDwVfpRegister double_scratch, Label *not_int32)
 
void LoadNumberAsInt32 (Register object, Register dst, Register heap_number_map, Register scratch, DwVfpRegister double_scratch0, LowDwVfpRegister double_scratch1, Label *not_int32)
 
void StubPrologue ()
 
void Prologue (bool code_pre_aging)
 
void EnterExitFrame (bool save_doubles, int stack_space=0)
 
void LeaveExitFrame (bool save_doubles, Register argument_count, bool restore_context)
 
void LoadContext (Register dst, int context_chain_length)
 
void LoadTransitionedArrayMapConditional (ElementsKind expected_kind, ElementsKind transitioned_kind, Register map_in_out, Register scratch, Label *no_map_match)
 
void LoadGlobalFunction (int index, Register function)
 
void LoadGlobalFunctionInitialMap (Register function, Register map, Register scratch)
 
void InitializeRootRegister ()
 
void InvokeCode (Register code, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Register function, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Register function, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Handle< JSFunction > function, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void IsObjectJSObjectType (Register heap_object, Register map, Register scratch, Label *fail)
 
void IsInstanceJSObjectType (Register map, Register scratch, Label *fail)
 
void IsObjectJSStringType (Register object, Register scratch, Label *fail)
 
void IsObjectNameType (Register object, Register scratch, Label *fail)
 
void DebugBreak ()
 
void PushTryHandler (StackHandler::Kind kind, int handler_index)
 
void PopTryHandler ()
 
void Throw (Register value)
 
void ThrowUncatchable (Register value)
 
void CheckAccessGlobalProxy (Register holder_reg, Register scratch, Label *miss)
 
void GetNumberHash (Register t0, Register scratch)
 
void LoadFromNumberDictionary (Label *miss, Register elements, Register key, Register result, Register t0, Register t1, Register t2)
 
void MarkCode (NopMarkerTypes type)
 
void Allocate (int object_size, Register result, Register scratch1, Register scratch2, Label *gc_required, AllocationFlags flags)
 
void Allocate (Register object_size, Register result, Register scratch1, Register scratch2, Label *gc_required, AllocationFlags flags)
 
void UndoAllocationInNewSpace (Register object, Register scratch)
 
void AllocateTwoByteString (Register result, Register length, Register scratch1, Register scratch2, Register scratch3, Label *gc_required)
 
void AllocateOneByteString (Register result, Register length, Register scratch1, Register scratch2, Register scratch3, Label *gc_required)
 
void AllocateTwoByteConsString (Register result, Register length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateOneByteConsString (Register result, Register length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateTwoByteSlicedString (Register result, Register length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateOneByteSlicedString (Register result, Register length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateHeapNumber (Register result, Register scratch1, Register scratch2, Register heap_number_map, Label *gc_required, TaggingMode tagging_mode=TAG_RESULT, MutableMode mode=IMMUTABLE)
 
void AllocateHeapNumberWithValue (Register result, DwVfpRegister value, Register scratch1, Register scratch2, Register heap_number_map, Label *gc_required)
 
void CopyFields (Register dst, Register src, LowDwVfpRegister double_scratch, int field_count)
 
void CopyBytes (Register src, Register dst, Register length, Register scratch)
 
void InitializeFieldsWithFiller (Register start_offset, Register end_offset, Register filler)
 
void TryGetFunctionPrototype (Register function, Register result, Register scratch, Label *miss, bool miss_on_bound_function=false)
 
void CompareObjectType (Register heap_object, Register map, Register type_reg, InstanceType type)
 
void CheckObjectTypeRange (Register heap_object, Register map, InstanceType min_type, InstanceType max_type, Label *false_label)
 
void CompareInstanceType (Register map, Register type_reg, InstanceType type)
 
void CheckFastElements (Register map, Register scratch, Label *fail)
 
void CheckFastObjectElements (Register map, Register scratch, Label *fail)
 
void CheckFastSmiElements (Register map, Register scratch, Label *fail)
 
void StoreNumberToDoubleElements (Register value_reg, Register key_reg, Register elements_reg, Register scratch1, LowDwVfpRegister double_scratch, Label *fail, int elements_offset=0)
 
void CompareMap (Register obj, Register scratch, Handle< Map > map, Label *early_success)
 
void CompareMap (Register obj_map, Handle< Map > map, Label *early_success)
 
void CheckMap (Register obj, Register scratch, Handle< Map > map, Label *fail, SmiCheckType smi_check_type)
 
void CheckMap (Register obj, Register scratch, Heap::RootListIndex index, Label *fail, SmiCheckType smi_check_type)
 
void DispatchMap (Register obj, Register scratch, Handle< Map > map, Handle< Code > success, SmiCheckType smi_check_type)
 
void CompareRoot (Register obj, Heap::RootListIndex index)
 
Condition IsObjectStringType (Register obj, Register type, Condition cond=al)
 
void IndexFromHash (Register hash, Register index)
 
void GetLeastBitsFromSmi (Register dst, Register src, int num_least_bits)
 
void GetLeastBitsFromInt32 (Register dst, Register src, int mun_least_bits)
 
void SmiToDouble (LowDwVfpRegister value, Register smi)
 
void TestDoubleIsInt32 (DwVfpRegister double_input, LowDwVfpRegister double_scratch)
 
void TryDoubleToInt32Exact (Register result, DwVfpRegister double_input, LowDwVfpRegister double_scratch)
 
void TryInt32Floor (Register result, DwVfpRegister double_input, Register input_high, LowDwVfpRegister double_scratch, Label *done, Label *exact)
 
void TryInlineTruncateDoubleToI (Register result, DwVfpRegister input, Label *done)
 
void TruncateDoubleToI (Register result, DwVfpRegister double_input)
 
void TruncateHeapNumberToI (Register result, Register object)
 
void TruncateNumberToI (Register object, Register result, Register heap_number_map, Register scratch1, Label *not_int32)
 
void CheckFor32DRegs (Register scratch)
 
void SaveFPRegs (Register location, Register scratch)
 
void RestoreFPRegs (Register location, Register scratch)
 
void CallStub (CodeStub *stub, TypeFeedbackId ast_id=TypeFeedbackId::None(), Condition cond=al)
 
void TailCallStub (CodeStub *stub, Condition cond=al)
 
void CallRuntime (const Runtime::Function *f, int num_arguments, SaveFPRegsMode save_doubles=kDontSaveFPRegs)
 
void CallRuntimeSaveDoubles (Runtime::FunctionId id)
 
void CallRuntime (Runtime::FunctionId id, int num_arguments, SaveFPRegsMode save_doubles=kDontSaveFPRegs)
 
void CallExternalReference (const ExternalReference &ext, int num_arguments)
 
void TailCallExternalReference (const ExternalReference &ext, int num_arguments, int result_size)
 
void TailCallRuntime (Runtime::FunctionId fid, int num_arguments, int result_size)
 
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)
 
void MovToFloatParameter (DwVfpRegister src)
 
void MovToFloatParameters (DwVfpRegister src1, DwVfpRegister src2)
 
void MovToFloatResult (DwVfpRegister src)
 
void CallCFunction (ExternalReference function, int num_arguments)
 
void CallCFunction (Register function, int num_arguments)
 
void CallCFunction (ExternalReference function, int num_reg_arguments, int num_double_arguments)
 
void CallCFunction (Register function, int num_reg_arguments, int num_double_arguments)
 
void MovFromFloatParameter (DwVfpRegister dst)
 
void MovFromFloatResult (DwVfpRegister dst)
 
void CallApiFunctionAndReturn (Register function_address, ExternalReference thunk_ref, int stack_space, MemOperand return_value_operand, MemOperand *context_restore_operand)
 
void JumpToExternalReference (const ExternalReference &builtin)
 
void InvokeBuiltin (Builtins::JavaScript id, InvokeFlag flag, const CallWrapper &call_wrapper=NullCallWrapper())
 
void GetBuiltinEntry (Register target, Builtins::JavaScript id)
 
void GetBuiltinFunction (Register target, Builtins::JavaScript id)
 
Handle< ObjectCodeObject ()
 
void TruncatingDiv (Register result, Register dividend, int32_t divisor)
 
void SetCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void IncrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void DecrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void Assert (Condition cond, BailoutReason reason)
 
void AssertFastElements (Register elements)
 
void Check (Condition cond, BailoutReason reason)
 
void Abort (BailoutReason msg)
 
void set_generating_stub (bool value)
 
bool generating_stub ()
 
void set_has_frame (bool value)
 
bool has_frame ()
 
bool AllowThisStubCall (CodeStub *stub)
 
bool use_eabi_hardfloat ()
 
void JumpIfNotPowerOfTwoOrZero (Register reg, Register scratch, Label *not_power_of_two_or_zero)
 
void JumpIfNotPowerOfTwoOrZeroAndNeg (Register reg, Register scratch, Label *zero_and_neg, Label *not_power_of_two)
 
void SmiTag (Register reg, SBit s=LeaveCC)
 
void SmiTag (Register dst, Register src, SBit s=LeaveCC)
 
void TrySmiTag (Register reg, Label *not_a_smi)
 
void TrySmiTag (Register reg, Register src, Label *not_a_smi)
 
void SmiUntag (Register reg, SBit s=LeaveCC)
 
void SmiUntag (Register dst, Register src, SBit s=LeaveCC)
 
void UntagAndJumpIfSmi (Register dst, Register src, Label *smi_case)
 
void UntagAndJumpIfNotSmi (Register dst, Register src, Label *non_smi_case)
 
void SmiTst (Register value)
 
void NonNegativeSmiTst (Register value)
 
void JumpIfSmi (Register value, Label *smi_label)
 
void JumpIfNotSmi (Register value, Label *not_smi_label)
 
void JumpIfNotBothSmi (Register reg1, Register reg2, Label *on_not_both_smi)
 
void JumpIfEitherSmi (Register reg1, Register reg2, Label *on_either_smi)
 
void AssertNotSmi (Register object)
 
void AssertSmi (Register object)
 
void AssertString (Register object)
 
void AssertName (Register object)
 
void AssertUndefinedOrAllocationSite (Register object, Register scratch)
 
void AssertIsRoot (Register reg, Heap::RootListIndex index)
 
void JumpIfNotHeapNumber (Register object, Register heap_number_map, Register scratch, Label *on_not_heap_number)
 
void LookupNumberStringCache (Register object, Register result, Register scratch1, Register scratch2, Register scratch3, Label *not_found)
 
void JumpIfNonSmisNotBothSequentialOneByteStrings (Register object1, Register object2, Register scratch1, Register scratch2, Label *failure)
 
void JumpIfNotBothSequentialOneByteStrings (Register first, Register second, Register scratch1, Register scratch2, Label *not_flat_one_byte_strings)
 
void JumpIfBothInstanceTypesAreNotSequentialOneByte (Register first_object_instance_type, Register second_object_instance_type, Register scratch1, Register scratch2, Label *failure)
 
void JumpIfInstanceTypeIsNotSequentialOneByte (Register type, Register scratch, Label *failure)
 
void JumpIfNotUniqueNameInstanceType (Register reg, Label *not_unique_name)
 
void EmitSeqStringSetCharCheck (Register string, Register index, Register value, uint32_t encoding_mask)
 
void GetRelocatedValueLocation (Register ldr_location, Register result, Register scratch)
 
void ClampUint8 (Register output_reg, Register input_reg)
 
void ClampDoubleToUint8 (Register result_reg, DwVfpRegister input_reg, LowDwVfpRegister double_scratch)
 
void LoadInstanceDescriptors (Register map, Register descriptors)
 
void EnumLength (Register dst, Register map)
 
void NumberOfOwnDescriptors (Register dst, Register map)
 
template<typename Field >
void DecodeField (Register dst, Register src)
 
template<typename Field >
void DecodeField (Register reg)
 
template<typename Field >
void DecodeFieldToSmi (Register dst, Register src)
 
template<typename Field >
void DecodeFieldToSmi (Register reg)
 
void EnterFrame (StackFrame::Type type, bool load_constant_pool=false)
 
int LeaveFrame (StackFrame::Type type)
 
void CheckEnumCache (Register null_value, Label *call_runtime)
 
void TestJSArrayForAllocationMemento (Register receiver_reg, Register scratch_reg, Label *no_memento_found)
 
void JumpIfJSArrayHasAllocationMemento (Register receiver_reg, Register scratch_reg, Label *memento_found)
 
void JumpIfDictionaryInPrototypeChain (Register object, Register scratch0, Register scratch1, Label *found)
 
 MacroAssembler (Isolate *isolate, byte *buffer, unsigned buffer_size)
 
Handle< ObjectCodeObject ()
 
void And (const Register &rd, const Register &rn, const Operand &operand)
 
void Ands (const Register &rd, 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 Orr (const Register &rd, const Register &rn, const Operand &operand)
 
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 Tst (const Register &rn, const Operand &operand)
 
void LogicalMacro (const Register &rd, const Register &rn, const Operand &operand, LogicalOp op)
 
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 Subs (const Register &rd, const Register &rn, const Operand &operand)
 
void Cmn (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 AddSubMacro (const Register &rd, const Register &rn, const Operand &operand, FlagsUpdate S, AddSubOp op)
 
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 AddSubWithCarryMacro (const Register &rd, const Register &rn, const Operand &operand, FlagsUpdate S, AddSubWithCarryOp op)
 
void Mov (const Register &rd, const Operand &operand, DiscardMoveMode discard_mode=kDontDiscardForSameWReg)
 
void Mov (const Register &rd, uint64_t imm)
 
void Mvn (const Register &rd, uint64_t imm)
 
void Mvn (const Register &rd, const Operand &operand)
 
bool TryOneInstrMoveImmediate (const Register &dst, int64_t imm)
 
Operand MoveImmediateForShiftedOp (const Register &dst, int64_t imm)
 
void Ccmp (const Register &rn, const Operand &operand, StatusFlags nzcv, Condition cond)
 
void Ccmn (const Register &rn, const Operand &operand, StatusFlags nzcv, Condition cond)
 
void ConditionalCompareMacro (const Register &rn, const Operand &operand, StatusFlags nzcv, Condition cond, ConditionalCompareOp op)
 
void Csel (const Register &rd, const Register &rn, const Operand &operand, Condition cond)
 
void LoadStoreMacro (const CPURegister &rt, const MemOperand &addr, LoadStoreOp op)
 
void LoadStorePairMacro (const CPURegister &rt, const CPURegister &rt2, const MemOperand &addr, LoadStorePairOp op)
 
void Load (const Register &rt, const MemOperand &addr, Representation r)
 
void Store (const Register &rt, const MemOperand &addr, Representation r)
 
void Adr (const Register &rd, Label *label, AdrHint=kAdrNear)
 
void Asr (const Register &rd, const Register &rn, unsigned shift)
 
void Asr (const Register &rd, const Register &rn, const Register &rm)
 
 STATIC_ASSERT ((reg_zero==(reg_not_zero ^ 1)) &&(reg_bit_clear==(reg_bit_set ^ 1)) &&(always==(never ^ 1)))
 
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 Bfi (const Register &rd, const Register &rn, unsigned lsb, unsigned width)
 
void Bfxil (const Register &rd, const Register &rn, unsigned lsb, unsigned width)
 
void Bind (Label *label)
 
void Bl (Label *label)
 
void Blr (const Register &xn)
 
void Br (const Register &xn)
 
void Brk (int code)
 
void Cbnz (const Register &rt, Label *label)
 
void Cbz (const Register &rt, Label *label)
 
void Cinc (const Register &rd, const Register &rn, Condition cond)
 
void Cinv (const Register &rd, const Register &rn, Condition cond)
 
void Cls (const Register &rd, const Register &rn)
 
void Clz (const Register &rd, const Register &rn)
 
void Cneg (const Register &rd, const Register &rn, Condition cond)
 
void CzeroX (const Register &rd, Condition cond)
 
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 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 Dmb (BarrierDomain domain, BarrierType type)
 
void Dsb (BarrierDomain domain, BarrierType type)
 
void Debug (const char *message, uint32_t code, Instr params=BREAK)
 
void Extr (const Register &rd, const Register &rn, const Register &rm, unsigned lsb)
 
void Fabs (const FPRegister &fd, const FPRegister &fn)
 
void Fadd (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)
 
void Fccmp (const FPRegister &fn, const FPRegister &fm, StatusFlags nzcv, Condition cond)
 
void Fcmp (const FPRegister &fn, const FPRegister &fm)
 
void Fcmp (const FPRegister &fn, double value)
 
void Fcsel (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm, Condition cond)
 
void Fcvt (const FPRegister &fd, const FPRegister &fn)
 
void Fcvtas (const Register &rd, const FPRegister &fn)
 
void Fcvtau (const Register &rd, const FPRegister &fn)
 
void Fcvtms (const Register &rd, const FPRegister &fn)
 
void Fcvtmu (const Register &rd, const FPRegister &fn)
 
void Fcvtns (const Register &rd, const FPRegister &fn)
 
void Fcvtnu (const Register &rd, const FPRegister &fn)
 
void Fcvtzs (const Register &rd, const FPRegister &fn)
 
void Fcvtzu (const Register &rd, const FPRegister &fn)
 
void Fdiv (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)
 
void Fmadd (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm, const FPRegister &fa)
 
void Fmax (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)
 
void Fmaxnm (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)
 
void Fmin (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)
 
void Fminnm (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)
 
void Fmov (FPRegister fd, FPRegister fn)
 
void Fmov (FPRegister fd, Register rn)
 
void Fmov (FPRegister fd, double imm)
 
void Fmov (FPRegister fd, float imm)
 
template<typename T >
void Fmov (FPRegister fd, T imm)
 
void Fmov (Register rd, FPRegister fn)
 
void Fmsub (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm, const FPRegister &fa)
 
void Fmul (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)
 
void Fneg (const FPRegister &fd, const FPRegister &fn)
 
void Fnmadd (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm, const FPRegister &fa)
 
void Fnmsub (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm, const FPRegister &fa)
 
void Frinta (const FPRegister &fd, const FPRegister &fn)
 
void Frintm (const FPRegister &fd, const FPRegister &fn)
 
void Frintn (const FPRegister &fd, const FPRegister &fn)
 
void Frintz (const FPRegister &fd, const FPRegister &fn)
 
void Fsqrt (const FPRegister &fd, const FPRegister &fn)
 
void Fsub (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)
 
void Hint (SystemHint code)
 
void Hlt (int code)
 
void Isb ()
 
void Ldnp (const CPURegister &rt, const CPURegister &rt2, const MemOperand &src)
 
void Ldr (const CPURegister &rt, const Immediate &imm)
 
void Ldr (const CPURegister &rt, double imm)
 
void Lsl (const Register &rd, const Register &rn, unsigned shift)
 
void Lsl (const Register &rd, const Register &rn, const Register &rm)
 
void Lsr (const Register &rd, const Register &rn, unsigned shift)
 
void Lsr (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 Mov (const Register &rd, const Register &rm)
 
void Movk (const Register &rd, uint64_t imm, int shift=-1)
 
void Mrs (const Register &rt, SystemRegister sysreg)
 
void Msr (SystemRegister sysreg, const Register &rt)
 
void Msub (const Register &rd, const Register &rn, const Register &rm, const Register &ra)
 
void Mul (const Register &rd, const Register &rn, const Register &rm)
 
void Nop ()
 
void Rbit (const Register &rd, const Register &rn)
 
void Ret (const Register &xn=lr)
 
void Rev (const Register &rd, const Register &rn)
 
void Rev16 (const Register &rd, const Register &rn)
 
void Rev32 (const Register &rd, const Register &rn)
 
void Ror (const Register &rd, const Register &rs, unsigned shift)
 
void Ror (const Register &rd, const Register &rn, const Register &rm)
 
void Sbfiz (const Register &rd, const Register &rn, unsigned lsb, unsigned width)
 
void Sbfx (const Register &rd, const Register &rn, unsigned lsb, unsigned width)
 
void Scvtf (const FPRegister &fd, const Register &rn, unsigned fbits=0)
 
void Sdiv (const Register &rd, const Register &rn, const Register &rm)
 
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 Smull (const Register &rd, const Register &rn, const Register &rm)
 
void Smulh (const Register &rd, const Register &rn, const Register &rm)
 
void Stnp (const CPURegister &rt, const CPURegister &rt2, const MemOperand &dst)
 
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 Tbnz (const Register &rt, unsigned bit_pos, Label *label)
 
void Tbz (const Register &rt, unsigned bit_pos, Label *label)
 
void Ubfiz (const Register &rd, const Register &rn, unsigned lsb, unsigned width)
 
void Ubfx (const Register &rd, const Register &rn, unsigned lsb, unsigned width)
 
void Ucvtf (const FPRegister &fd, const Register &rn, unsigned fbits=0)
 
void Udiv (const Register &rd, const Register &rn, const Register &rm)
 
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 Uxtb (const Register &rd, const Register &rn)
 
void Uxth (const Register &rd, const Register &rn)
 
void Uxtw (const Register &rd, const Register &rn)
 
void Abs (const Register &rd, const Register &rm, Label *is_not_representable=NULL, Label *is_representable=NULL)
 
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)
 
void Pop (const CPURegister &dst0, const CPURegister &dst1=NoReg, const CPURegister &dst2=NoReg, const CPURegister &dst3=NoReg)
 
void Push (const Register &src0, const FPRegister &src1)
 
void PushCPURegList (CPURegList registers)
 
void PopCPURegList (CPURegList registers)
 
void PushSizeRegList (RegList registers, unsigned reg_size, CPURegister::RegisterType type=CPURegister::kRegister)
 
void PopSizeRegList (RegList registers, unsigned reg_size, CPURegister::RegisterType type=CPURegister::kRegister)
 
void PushXRegList (RegList regs)
 
void PopXRegList (RegList regs)
 
void PushWRegList (RegList regs)
 
void PopWRegList (RegList regs)
 
void PushDRegList (RegList regs)
 
void PopDRegList (RegList regs)
 
void PushSRegList (RegList regs)
 
void PopSRegList (RegList regs)
 
void PushMultipleTimes (CPURegister src, Register count)
 
void PushMultipleTimes (CPURegister src, int count)
 
void Push (Handle< Object > handle)
 
void Push (Smi *smi)
 
void push (Register src)
 
void pop (Register dst)
 
void Poke (const CPURegister &src, const Operand &offset)
 
void Peek (const CPURegister &dst, const Operand &offset)
 
void PokePair (const CPURegister &src1, const CPURegister &src2, int offset)
 
void PeekPair (const CPURegister &dst1, const CPURegister &dst2, int offset)
 
void Claim (uint64_t count, uint64_t unit_size=kXRegSize)
 
void Claim (const Register &count, uint64_t unit_size=kXRegSize)
 
void Drop (uint64_t count, uint64_t unit_size=kXRegSize)
 
void Drop (const Register &count, uint64_t unit_size=kXRegSize)
 
void ClaimBySMI (const Register &count_smi, uint64_t unit_size=kXRegSize)
 
void DropBySMI (const Register &count_smi, uint64_t unit_size=kXRegSize)
 
void CompareAndBranch (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 InlineData (uint64_t data)
 
void EnableInstrumentation ()
 
void DisableInstrumentation ()
 
void AnnotateInstrumentation (const char *marker_name)
 
void AssertStackConsistency ()
 
void PushCalleeSavedRegisters ()
 
void PopCalleeSavedRegisters ()
 
void SetStackPointer (const Register &stack_pointer)
 
const RegisterStackPointer () const
 
void AlignAndSetCSPForFrame ()
 
void BumpSystemStackPointer (const Operand &space)
 
void SyncSystemStackPointer ()
 
void InitializeRootRegister ()
 
void AssertFPCRState (Register fpcr=NoReg)
 
void ConfigureFPCR ()
 
void CanonicalizeNaN (const FPRegister &dst, const FPRegister &src)
 
void CanonicalizeNaN (const FPRegister &reg)
 
void LoadRoot (CPURegister destination, Heap::RootListIndex index)
 
void StoreRoot (Register source, Heap::RootListIndex index)
 
void LoadTrueFalseRoots (Register true_root, Register false_root)
 
void LoadHeapObject (Register dst, Handle< HeapObject > object)
 
void LoadObject (Register result, Handle< Object > object)
 
void Move (Register dst, Register src)
 
void LoadInstanceDescriptors (Register map, Register descriptors)
 
void EnumLengthUntagged (Register dst, Register map)
 
void EnumLengthSmi (Register dst, Register map)
 
void NumberOfOwnDescriptors (Register dst, Register map)
 
template<typename Field >
void DecodeField (Register dst, Register src)
 
template<typename Field >
void DecodeField (Register reg)
 
void SmiTag (Register dst, Register src)
 
void SmiTag (Register smi)
 
void SmiUntag (Register dst, Register src)
 
void SmiUntag (Register smi)
 
void SmiUntagToDouble (FPRegister dst, Register src, UntagMode mode=kNotSpeculativeUntag)
 
void SmiUntagToFloat (FPRegister dst, Register src, UntagMode mode=kNotSpeculativeUntag)
 
void SmiTagAndPush (Register src)
 
void SmiTagAndPush (Register src1, Register src2)
 
void JumpIfSmi (Register value, Label *smi_label, Label *not_smi_label=NULL)
 
void JumpIfNotSmi (Register value, Label *not_smi_label)
 
void JumpIfBothSmi (Register value1, Register value2, Label *both_smi_label, Label *not_smi_label=NULL)
 
void JumpIfEitherSmi (Register value1, Register value2, Label *either_smi_label, Label *not_smi_label=NULL)
 
void JumpIfEitherNotSmi (Register value1, Register value2, Label *not_smi_label)
 
void JumpIfBothNotSmi (Register value1, Register value2, Label *not_smi_label)
 
void AssertNotSmi (Register object, BailoutReason reason=kOperandIsASmi)
 
void AssertSmi (Register object, BailoutReason reason=kOperandIsNotASmi)
 
void ObjectTag (Register tagged_obj, Register obj)
 
void ObjectUntag (Register untagged_obj, Register obj)
 
void AssertName (Register object)
 
void AssertUndefinedOrAllocationSite (Register object, Register scratch)
 
void AssertString (Register object)
 
void JumpIfHeapNumber (Register object, Label *on_heap_number, SmiCheckType smi_check_type=DONT_DO_SMI_CHECK)
 
void JumpIfNotHeapNumber (Register object, Label *on_not_heap_number, SmiCheckType smi_check_type=DONT_DO_SMI_CHECK)
 
void TestForMinusZero (DoubleRegister input)
 
void JumpIfMinusZero (DoubleRegister input, Label *on_negative_zero)
 
void JumpIfMinusZero (Register input, Label *on_negative_zero)
 
void LookupNumberStringCache (Register object, Register result, Register scratch1, Register scratch2, Register scratch3, Label *not_found)
 
void ClampInt32ToUint8 (Register in_out)
 
void ClampInt32ToUint8 (Register output, Register input)
 
void ClampDoubleToUint8 (Register output, DoubleRegister input, DoubleRegister dbl_scratch)
 
void TryRepresentDoubleAsInt32 (Register as_int, FPRegister value, FPRegister scratch_d, Label *on_successful_conversion=NULL, Label *on_failed_conversion=NULL)
 
void TryRepresentDoubleAsInt64 (Register as_int, FPRegister value, FPRegister scratch_d, Label *on_successful_conversion=NULL, Label *on_failed_conversion=NULL)
 
void CopyFields (Register dst, Register src, CPURegList temps, unsigned count)
 
void FillFields (Register dst, Register field_count, Register filler)
 
void CopyBytes (Register dst, Register src, Register length, Register scratch, CopyHint hint=kCopyUnknown)
 
void JumpIfEitherIsNotSequentialOneByteStrings (Register first, Register second, Register scratch1, Register scratch2, Label *failure, SmiCheckType smi_check=DO_SMI_CHECK)
 
void JumpIfInstanceTypeIsNotSequentialOneByte (Register type, Register scratch, Label *failure)
 
void JumpIfEitherInstanceTypeIsNotSequentialOneByte (Register first_object_instance_type, Register second_object_instance_type, Register scratch1, Register scratch2, Label *failure)
 
void JumpIfBothInstanceTypesAreNotSequentialOneByte (Register first_object_instance_type, Register second_object_instance_type, Register scratch1, Register scratch2, Label *failure)
 
void JumpIfNotUniqueNameInstanceType (Register type, Label *not_unique_name)
 
void jmp (Label *L)
 
void Throw (Register value, Register scratch1, Register scratch2, Register scratch3, Register scratch4)
 
void ThrowUncatchable (Register value, Register scratch1, Register scratch2, Register scratch3, Register scratch4)
 
void CallStub (CodeStub *stub, TypeFeedbackId ast_id=TypeFeedbackId::None())
 
void TailCallStub (CodeStub *stub)
 
void CallRuntime (const Runtime::Function *f, int num_arguments, SaveFPRegsMode save_doubles=kDontSaveFPRegs)
 
void CallRuntime (Runtime::FunctionId id, int num_arguments, SaveFPRegsMode save_doubles=kDontSaveFPRegs)
 
void CallRuntimeSaveDoubles (Runtime::FunctionId id)
 
void TailCallRuntime (Runtime::FunctionId fid, int num_arguments, int result_size)
 
int ActivationFrameAlignment ()
 
void CallCFunction (ExternalReference function, int num_reg_arguments)
 
void CallCFunction (ExternalReference function, int num_reg_arguments, int num_double_arguments)
 
void CallCFunction (Register function, int num_reg_arguments, int num_double_arguments)
 
void CallApiFunctionAndReturn (Register function_address, ExternalReference thunk_ref, int stack_space, int spill_offset, MemOperand return_value_operand, MemOperand *context_restore_operand)
 
void JumpToExternalReference (const ExternalReference &builtin)
 
void TailCallExternalReference (const ExternalReference &ext, int num_arguments, int result_size)
 
void CallExternalReference (const ExternalReference &ext, int num_arguments)
 
void InvokeBuiltin (Builtins::JavaScript id, InvokeFlag flag, const CallWrapper &call_wrapper=NullCallWrapper())
 
void GetBuiltinEntry (Register target, Register function, Builtins::JavaScript id)
 
void GetBuiltinFunction (Register target, Builtins::JavaScript id)
 
void Jump (Register target)
 
void Jump (Address target, RelocInfo::Mode rmode)
 
void Jump (Handle< Code > code, RelocInfo::Mode rmode)
 
void Jump (intptr_t target, RelocInfo::Mode rmode)
 
void Call (Register target)
 
void Call (Label *target)
 
void Call (Address target, RelocInfo::Mode rmode)
 
void Call (Handle< Code > code, RelocInfo::Mode rmode=RelocInfo::CODE_TARGET, TypeFeedbackId ast_id=TypeFeedbackId::None())
 
void InvokePrologue (const ParameterCount &expected, const ParameterCount &actual, Handle< Code > code_constant, Register code_reg, Label *done, InvokeFlag flag, bool *definitely_mismatches, const CallWrapper &call_wrapper)
 
void InvokeCode (Register code, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Register function, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Register function, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Handle< JSFunction > function, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void TryConvertDoubleToInt64 (Register result, DoubleRegister input, Label *done)
 
void TruncateDoubleToI (Register result, DoubleRegister double_input)
 
void TruncateHeapNumberToI (Register result, Register object)
 
void TruncateNumberToI (Register object, Register result, Register heap_number_map, Label *not_int32)
 
void set_generating_stub (bool value)
 
bool generating_stub () const
 
bool use_real_aborts () const
 
void set_has_frame (bool value)
 
bool has_frame () const
 
bool AllowThisStubCall (CodeStub *stub)
 
void DebugBreak ()
 
void PushTryHandler (StackHandler::Kind kind, int handler_index)
 
void PopTryHandler ()
 
void Allocate (Register object_size, Register result, Register scratch1, Register scratch2, Label *gc_required, AllocationFlags flags)
 
void Allocate (int object_size, Register result, Register scratch1, Register scratch2, Label *gc_required, AllocationFlags flags)
 
void UndoAllocationInNewSpace (Register object, Register scratch)
 
void AllocateTwoByteString (Register result, Register length, Register scratch1, Register scratch2, Register scratch3, Label *gc_required)
 
void AllocateOneByteString (Register result, Register length, Register scratch1, Register scratch2, Register scratch3, Label *gc_required)
 
void AllocateTwoByteConsString (Register result, Register length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateOneByteConsString (Register result, Register length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateTwoByteSlicedString (Register result, Register length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateOneByteSlicedString (Register result, Register length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateHeapNumber (Register result, Label *gc_required, Register scratch1, Register scratch2, CPURegister value=NoFPReg, CPURegister heap_number_map=NoReg, MutableMode mode=IMMUTABLE)
 
void TryGetFunctionPrototype (Register function, Register result, Register scratch, Label *miss, BoundFunctionAction action=kDontMissOnBoundFunction)
 
void CompareObjectType (Register heap_object, Register map, Register type_reg, InstanceType type)
 
void JumpIfObjectType (Register object, Register map, Register type_reg, InstanceType type, Label *if_cond_pass, Condition cond=eq)
 
void JumpIfNotObjectType (Register object, Register map, Register type_reg, InstanceType type, Label *if_not_object)
 
void CompareInstanceType (Register map, Register type_reg, InstanceType type)
 
void CompareObjectMap (Register obj, Heap::RootListIndex index)
 
void CompareObjectMap (Register obj, Register scratch, Handle< Map > map)
 
void CompareMap (Register obj_map, Handle< Map > map)
 
void CheckMap (Register obj, Register scratch, Handle< Map > map, Label *fail, SmiCheckType smi_check_type)
 
void CheckMap (Register obj, Register scratch, Heap::RootListIndex index, Label *fail, SmiCheckType smi_check_type)
 
void CheckMap (Register obj_map, Handle< Map > map, Label *fail, SmiCheckType smi_check_type)
 
void DispatchMap (Register obj, Register scratch, Handle< Map > map, Handle< Code > success, SmiCheckType smi_check_type)
 
void TestMapBitfield (Register object, uint64_t mask)
 
void LoadElementsKindFromMap (Register result, Register map)
 
void CompareRoot (const Register &obj, Heap::RootListIndex index)
 
void JumpIfRoot (const Register &obj, Heap::RootListIndex index, Label *if_equal)
 
void JumpIfNotRoot (const Register &obj, Heap::RootListIndex index, Label *if_not_equal)
 
void IsObjectNameType (Register object, Register type, Label *fail)
 
void IsObjectJSObjectType (Register heap_object, Register map, Register scratch, Label *fail)
 
void IsInstanceJSObjectType (Register map, Register scratch, Label *fail)
 
void IsObjectJSStringType (Register object, Register type, Label *not_string, Label *string=NULL)
 
void CompareAndSplit (const Register &lhs, const Operand &rhs, Condition cond, Label *if_true, Label *if_false, Label *fall_through)
 
void TestAndSplit (const Register &reg, uint64_t bit_pattern, Label *if_all_clear, Label *if_any_set, Label *fall_through)
 
void CheckFastElements (Register map, Register scratch, Label *fail)
 
void CheckFastObjectElements (Register map, Register scratch, Label *fail)
 
void StoreNumberToDoubleElements (Register value_reg, Register key_reg, Register elements_reg, Register scratch1, FPRegister fpscratch1, Label *fail, int elements_offset=0)
 
void IndexFromHash (Register hash, Register index)
 
void EmitSeqStringSetCharCheck (Register string, Register index, SeqStringSetCharCheckIndexType index_type, Register scratch, uint32_t encoding_mask)
 
void CheckAccessGlobalProxy (Register holder_reg, Register scratch1, Register scratch2, Label *miss)
 
void GetNumberHash (Register key, Register scratch)
 
void LoadFromNumberDictionary (Label *miss, Register elements, Register key, Register result, Register scratch0, Register scratch1, Register scratch2, Register scratch3)
 
void EnterFrame (StackFrame::Type type)
 
void LeaveFrame (StackFrame::Type type)
 
void CheckEnumCache (Register object, Register null_value, Register scratch0, Register scratch1, Register scratch2, Register scratch3, Label *call_runtime)
 
void TestJSArrayForAllocationMemento (Register receiver, Register scratch1, Register scratch2, Label *no_memento_found)
 
void JumpIfJSArrayHasAllocationMemento (Register receiver, Register scratch1, Register scratch2, Label *memento_found)
 
void ExitFramePreserveFPRegs ()
 
void ExitFrameRestoreFPRegs ()
 
void StubPrologue ()
 
void Prologue (bool code_pre_aging)
 
void EnterExitFrame (bool save_doubles, const Register &scratch, int extra_space=0)
 
void LeaveExitFrame (bool save_doubles, const Register &scratch, bool restore_context)
 
void LoadContext (Register dst, int context_chain_length)
 
void TruncatingDiv (Register result, Register dividend, int32_t divisor)
 
void SetCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void IncrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void DecrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void RememberedSetHelper (Register object, Register addr, Register scratch1, SaveFPRegsMode save_fp, RememberedSetFinalAction and_then)
 
void PushSafepointRegisters ()
 
void PopSafepointRegisters ()
 
void PushSafepointRegistersAndDoubles ()
 
void PopSafepointRegistersAndDoubles ()
 
void StoreToSafepointRegisterSlot (Register src, Register dst)
 
void LoadFromSafepointRegisterSlot (Register dst, Register src)
 
void CheckPageFlagSet (const Register &object, const Register &scratch, int mask, Label *if_any_set)
 
void CheckPageFlagClear (const Register &object, const Register &scratch, int mask, Label *if_all_clear)
 
void CheckMapDeprecated (Handle< Map > map, Register scratch, Label *if_deprecated)
 
void JumpIfNotInNewSpace (Register object, Label *branch)
 
void JumpIfInNewSpace (Register object, Label *branch)
 
void RecordWriteField (Register object, int offset, Register value, Register scratch, LinkRegisterStatus lr_status, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void RecordWriteContextSlot (Register context, int offset, Register value, Register scratch, LinkRegisterStatus lr_status, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void RecordWriteForMap (Register object, Register map, Register dst, LinkRegisterStatus lr_status, SaveFPRegsMode save_fp)
 
void RecordWrite (Register object, Register address, Register value, LinkRegisterStatus lr_status, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void EnsureNotWhite (Register object, Register scratch1, Register scratch2, Register scratch3, Register scratch4, Label *object_is_white_and_not_data)
 
void JumpIfDataObject (Register value, Register scratch, Label *not_data_object)
 
void GetMarkBits (Register addr_reg, Register bitmap_reg, Register shift_reg)
 
void HasColor (Register object, Register scratch0, Register scratch1, Label *has_color, int first_bit, int second_bit)
 
void JumpIfBlack (Register object, Register scratch0, Register scratch1, Label *on_black)
 
void GetRelocatedValueLocation (Register ldr_location, Register result)
 
void Assert (Condition cond, BailoutReason reason)
 
void AssertRegisterIsClear (Register reg, BailoutReason reason)
 
void AssertRegisterIsRoot (Register reg, Heap::RootListIndex index, BailoutReason reason=kRegisterDidNotMatchExpectedRoot)
 
void AssertFastElements (Register elements)
 
void AssertHasValidColor (const Register &reg)
 
void AssertIsString (const Register &object)
 
void Check (Condition cond, BailoutReason reason)
 
void CheckRegisterIsClear (Register reg, BailoutReason reason)
 
void Abort (BailoutReason reason)
 
void LoadTransitionedArrayMapConditional (ElementsKind expected_kind, ElementsKind transitioned_kind, Register map_in_out, Register scratch1, Register scratch2, Label *no_map_match)
 
void LoadGlobalFunction (int index, Register function)
 
void LoadGlobalFunctionInitialMap (Register function, Register map, Register scratch)
 
CPURegListTmpList ()
 
CPURegListFPTmpList ()
 
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 EmitFrameSetupForCodeAgePatching ()
 
void EmitCodeAgeSequence (Code *stub)
 
void JumpIfDictionaryInPrototypeChain (Register object, Register scratch0, Register scratch1, Label *found)
 
void PushPreamble (Operand total_size)
 
void PopPostamble (Operand total_size)
 
void PushPreamble (int count, int size)
 
void PopPostamble (int count, int size)
 
bool NeedExtraInstructionsOrRegisterBranch (Label *label, ImmBranchType branch_type)
 
 MacroAssembler (Isolate *isolate, void *buffer, int size)
 
void Load (Register dst, const Operand &src, Representation r)
 
void Store (Register src, const Operand &dst, Representation r)
 
void LoadRoot (Register destination, Heap::RootListIndex index)
 
void StoreRoot (Register source, Register scratch, Heap::RootListIndex index)
 
void CompareRoot (Register with, Register scratch, Heap::RootListIndex index)
 
void CompareRoot (Register with, Heap::RootListIndex index)
 
void CompareRoot (const Operand &with, Heap::RootListIndex index)
 
void RememberedSetHelper (Register object, Register addr, Register scratch, SaveFPRegsMode save_fp, RememberedSetFinalAction and_then)
 
void CheckPageFlag (Register object, Register scratch, int mask, Condition cc, Label *condition_met, Label::Distance condition_met_distance=Label::kFar)
 
void CheckPageFlagForMap (Handle< Map > map, int mask, Condition cc, Label *condition_met, Label::Distance condition_met_distance=Label::kFar)
 
void CheckMapDeprecated (Handle< Map > map, Register scratch, Label *if_deprecated)
 
void JumpIfNotInNewSpace (Register object, Register scratch, Label *branch, Label::Distance distance=Label::kFar)
 
void JumpIfInNewSpace (Register object, Register scratch, Label *branch, Label::Distance distance=Label::kFar)
 
void HasColor (Register object, Register scratch0, Register scratch1, Label *has_color, Label::Distance has_color_distance, int first_bit, int second_bit)
 
void JumpIfBlack (Register object, Register scratch0, Register scratch1, Label *on_black, Label::Distance on_black_distance=Label::kFar)
 
void EnsureNotWhite (Register object, Register scratch1, Register scratch2, Label *object_is_white_and_not_data, Label::Distance distance)
 
void RecordWriteField (Register object, int offset, Register value, Register scratch, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void RecordWriteContextSlot (Register context, int offset, Register value, Register scratch, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void RecordWriteArray (Register array, Register value, Register index, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void RecordWrite (Register object, Register address, Register value, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void RecordWriteForMap (Register object, Handle< Map > map, Register scratch1, Register scratch2, SaveFPRegsMode save_fp)
 
void DebugBreak ()
 
void StubPrologue ()
 
void Prologue (bool code_pre_aging)
 
void EnterExitFrame (bool save_doubles)
 
void EnterApiExitFrame (int argc)
 
void LeaveExitFrame (bool save_doubles)
 
void LeaveApiExitFrame (bool restore_context)
 
void LoadContext (Register dst, int context_chain_length)
 
void LoadTransitionedArrayMapConditional (ElementsKind expected_kind, ElementsKind transitioned_kind, Register map_in_out, Register scratch, Label *no_map_match)
 
void LoadGlobalFunction (int index, Register function)
 
void LoadGlobalFunctionInitialMap (Register function, Register map)
 
void PushSafepointRegisters ()
 
void PopSafepointRegisters ()
 
void StoreToSafepointRegisterSlot (Register dst, Register src)
 
void StoreToSafepointRegisterSlot (Register dst, Immediate src)
 
void LoadFromSafepointRegisterSlot (Register dst, Register src)
 
void LoadHeapObject (Register result, Handle< HeapObject > object)
 
void CmpHeapObject (Register reg, Handle< HeapObject > object)
 
void PushHeapObject (Handle< HeapObject > object)
 
void LoadObject (Register result, Handle< Object > object)
 
void CmpObject (Register reg, Handle< Object > object)
 
void InvokeCode (Register code, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeCode (const Operand &code, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Register function, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Register function, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Handle< JSFunction > function, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeBuiltin (Builtins::JavaScript id, InvokeFlag flag, const CallWrapper &call_wrapper=NullCallWrapper())
 
void GetBuiltinFunction (Register target, Builtins::JavaScript id)
 
void GetBuiltinEntry (Register target, Builtins::JavaScript id)
 
void Cvtsi2sd (XMMRegister dst, Register src)
 
void Cvtsi2sd (XMMRegister dst, const Operand &src)
 
bool IsUnsafeImmediate (const Immediate &x)
 
void SafeMove (Register dst, const Immediate &x)
 
void SafePush (const Immediate &x)
 
void CmpObjectType (Register heap_object, InstanceType type, Register map)
 
void CmpInstanceType (Register map, InstanceType type)
 
void CheckFastElements (Register map, Label *fail, Label::Distance distance=Label::kFar)
 
void CheckFastObjectElements (Register map, Label *fail, Label::Distance distance=Label::kFar)
 
void CheckFastSmiElements (Register map, Label *fail, Label::Distance distance=Label::kFar)
 
void StoreNumberToDoubleElements (Register maybe_number, Register elements, Register key, Register scratch1, XMMRegister scratch2, Label *fail, int offset=0)
 
void CompareMap (Register obj, Handle< Map > map)
 
void CheckMap (Register obj, Handle< Map > map, Label *fail, SmiCheckType smi_check_type)
 
void DispatchMap (Register obj, Register unused, Handle< Map > map, Handle< Code > success, SmiCheckType smi_check_type)
 
Condition IsObjectStringType (Register heap_object, Register map, Register instance_type)
 
Condition IsObjectNameType (Register heap_object, Register map, Register instance_type)
 
void IsObjectJSObjectType (Register heap_object, Register map, Register scratch, Label *fail)
 
void IsInstanceJSObjectType (Register map, Register scratch, Label *fail)
 
void FCmp ()
 
void ClampUint8 (Register reg)
 
void ClampDoubleToUint8 (XMMRegister input_reg, XMMRegister scratch_reg, Register result_reg)
 
void SlowTruncateToI (Register result_reg, Register input_reg, int offset=HeapNumber::kValueOffset - kHeapObjectTag)
 
void TruncateHeapNumberToI (Register result_reg, Register input_reg)
 
void TruncateDoubleToI (Register result_reg, XMMRegister input_reg)
 
void DoubleToI (Register result_reg, XMMRegister input_reg, XMMRegister scratch, MinusZeroMode minus_zero_mode, Label *lost_precision, Label *is_nan, Label *minus_zero, Label::Distance dst=Label::kFar)
 
void SmiTag (Register reg)
 
void SmiUntag (Register reg)
 
void SmiUntag (Register reg, Label *is_smi)
 
void LoadUint32 (XMMRegister dst, Register src)
 
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 JumpIfNotSmi (Register value, Label *not_smi_label, Label::Distance distance=Label::kFar)
 
void LoadInstanceDescriptors (Register map, Register descriptors)
 
void EnumLength (Register dst, Register map)
 
void NumberOfOwnDescriptors (Register dst, Register map)
 
template<typename Field >
void DecodeField (Register reg)
 
template<typename Field >
void DecodeFieldToSmi (Register reg)
 
void LoadPowerOf2 (XMMRegister dst, Register scratch, int power)
 
void AssertNumber (Register object)
 
void AssertSmi (Register object)
 
void AssertNotSmi (Register object)
 
void AssertString (Register object)
 
void AssertName (Register object)
 
void AssertUndefinedOrAllocationSite (Register object)
 
void PushTryHandler (StackHandler::Kind kind, int handler_index)
 
void PopTryHandler ()
 
void Throw (Register value)
 
void ThrowUncatchable (Register value)
 
void CheckAccessGlobalProxy (Register holder_reg, Register scratch1, Register scratch2, Label *miss)
 
void GetNumberHash (Register r0, Register scratch)
 
void LoadFromNumberDictionary (Label *miss, Register elements, Register key, Register r0, Register r1, Register r2, Register result)
 
void Allocate (int object_size, Register result, Register result_end, Register scratch, Label *gc_required, AllocationFlags flags)
 
void Allocate (int header_size, ScaleFactor element_size, Register element_count, RegisterValueType element_count_type, Register result, Register result_end, Register scratch, Label *gc_required, AllocationFlags flags)
 
void Allocate (Register object_size, Register result, Register result_end, Register scratch, Label *gc_required, AllocationFlags flags)
 
void UndoAllocationInNewSpace (Register object)
 
void AllocateHeapNumber (Register result, Register scratch1, Register scratch2, Label *gc_required, MutableMode mode=IMMUTABLE)
 
void AllocateTwoByteString (Register result, Register length, Register scratch1, Register scratch2, Register scratch3, Label *gc_required)
 
void AllocateOneByteString (Register result, Register length, Register scratch1, Register scratch2, Register scratch3, Label *gc_required)
 
void AllocateOneByteString (Register result, int length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateTwoByteConsString (Register result, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateOneByteConsString (Register result, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateTwoByteSlicedString (Register result, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateOneByteSlicedString (Register result, Register scratch1, Register scratch2, Label *gc_required)
 
void CopyBytes (Register source, Register destination, Register length, Register scratch)
 
void InitializeFieldsWithFiller (Register start_offset, Register end_offset, Register filler)
 
void BooleanBitTest (Register object, int field_offset, int bit_index)
 
void NegativeZeroTest (Register result, Register op, Label *then_label)
 
void NegativeZeroTest (Register result, Register op1, Register op2, Register scratch, Label *then_label)
 
void TryGetFunctionPrototype (Register function, Register result, Register scratch, Label *miss, bool miss_on_bound_function=false)
 
void IndexFromHash (Register hash, Register index)
 
void CallStub (CodeStub *stub, TypeFeedbackId ast_id=TypeFeedbackId::None())
 
void TailCallStub (CodeStub *stub)
 
void StubReturn (int argc)
 
void CallRuntime (const Runtime::Function *f, int num_arguments, SaveFPRegsMode save_doubles=kDontSaveFPRegs)
 
void CallRuntimeSaveDoubles (Runtime::FunctionId id)
 
void CallRuntime (Runtime::FunctionId id, int num_arguments, SaveFPRegsMode save_doubles=kDontSaveFPRegs)
 
void CallExternalReference (ExternalReference ref, int num_arguments)
 
void TailCallExternalReference (const ExternalReference &ext, int num_arguments, int result_size)
 
void TailCallRuntime (Runtime::FunctionId fid, int num_arguments, int result_size)
 
void PrepareCallCFunction (int num_arguments, Register scratch)
 
void CallCFunction (ExternalReference function, int num_arguments)
 
void CallCFunction (Register function, int num_arguments)
 
void PrepareCallApiFunction (int argc)
 
void CallApiFunctionAndReturn (Register function_address, ExternalReference thunk_ref, Operand thunk_last_arg, int stack_space, Operand return_value_operand, Operand *context_restore_operand)
 
void JumpToExternalReference (const ExternalReference &ext)
 
void Ret ()
 
void Ret (int bytes_dropped, Register scratch)
 
void Drop (int element_count)
 
void Call (Label *target)
 
void Push (Register src)
 
void Pop (Register dst)
 
void CallSelf ()
 
void Move (Register target, Register source)
 
void Move (Register dst, const Immediate &x)
 
void Move (const Operand &dst, const Immediate &x)
 
void Move (XMMRegister dst, double val)
 
void Push (Handle< Object > handle)
 
void Push (Smi *smi)
 
Handle< ObjectCodeObject ()
 
void TruncatingDiv (Register dividend, int32_t divisor)
 
void SetCounter (StatsCounter *counter, int value)
 
void IncrementCounter (StatsCounter *counter, int value)
 
void DecrementCounter (StatsCounter *counter, int value)
 
void IncrementCounter (Condition cc, StatsCounter *counter, int value)
 
void DecrementCounter (Condition cc, StatsCounter *counter, int value)
 
void Assert (Condition cc, BailoutReason reason)
 
void AssertFastElements (Register elements)
 
void Check (Condition cc, BailoutReason reason)
 
void Abort (BailoutReason reason)
 
void CheckStackAlignment ()
 
void set_generating_stub (bool value)
 
bool generating_stub ()
 
void set_has_frame (bool value)
 
bool has_frame ()
 
bool AllowThisStubCall (CodeStub *stub)
 
void LookupNumberStringCache (Register object, Register result, Register scratch1, Register scratch2, Label *not_found)
 
void JumpIfInstanceTypeIsNotSequentialOneByte (Register instance_type, Register scratch, Label *on_not_flat_one_byte_string)
 
void JumpIfNotBothSequentialOneByteStrings (Register object1, Register object2, Register scratch1, Register scratch2, Label *on_not_flat_one_byte_strings)
 
void JumpIfNotUniqueNameInstanceType (Register reg, Label *not_unique_name, Label::Distance distance=Label::kFar)
 
void JumpIfNotUniqueNameInstanceType (Operand operand, Label *not_unique_name, Label::Distance distance=Label::kFar)
 
void EmitSeqStringSetCharCheck (Register string, Register index, Register value, uint32_t encoding_mask)
 
void EnterFrame (StackFrame::Type type)
 
void LeaveFrame (StackFrame::Type type)
 
void CheckEnumCache (Label *call_runtime)
 
void TestJSArrayForAllocationMemento (Register receiver_reg, Register scratch_reg, Label *no_memento_found)
 
void JumpIfJSArrayHasAllocationMemento (Register receiver_reg, Register scratch_reg, Label *memento_found)
 
void JumpIfDictionaryInPrototypeChain (Register object, Register scratch0, Register scratch1, Label *found)
 
 MacroAssembler (Isolate *isolate, void *buffer, int size)
 
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 Call (Register target, COND_ARGS)
 
void Call (Address target, RelocInfo::Mode rmode, COND_ARGS)
 
int CallSize (Handle< Code > code, RelocInfo::Mode rmode=RelocInfo::CODE_TARGET, TypeFeedbackId ast_id=TypeFeedbackId::None(), COND_ARGS)
 
void Call (Handle< Code > code, RelocInfo::Mode rmode=RelocInfo::CODE_TARGET, TypeFeedbackId ast_id=TypeFeedbackId::None(), COND_ARGS)
 
void Ret (COND_ARGS)
 
void Ret (BranchDelaySlot bd, Condition cond=al, Register rs=zero_reg, const Operand &rt=Operand(zero_reg))
 
void Branch (Label *L, Condition cond, Register rs, Heap::RootListIndex index, BranchDelaySlot bdslot=PROTECT)
 
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 Swap (Register reg1, Register reg2, Register scratch=no_reg)
 
void Call (Label *target)
 
void Move (Register dst, Register src)
 
void Move (FPURegister dst, FPURegister src)
 
void Move (Register dst_low, Register dst_high, FPURegister src)
 
void FmoveHigh (Register dst_high, FPURegister src)
 
void FmoveLow (Register dst_low, FPURegister src)
 
void Move (FPURegister dst, Register src_low, Register src_high)
 
void Move (FPURegister dst, double imm)
 
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 Clz (Register rd, Register rs)
 
void jmp (Label *L)
 
void Load (Register dst, const MemOperand &src, Representation r)
 
void Store (Register src, const MemOperand &dst, Representation r)
 
void LoadRoot (Register destination, Heap::RootListIndex index)
 
void LoadRoot (Register destination, Heap::RootListIndex index, Condition cond, Register src1, const Operand &src2)
 
void StoreRoot (Register source, Heap::RootListIndex index)
 
void StoreRoot (Register source, Heap::RootListIndex index, Condition cond, Register src1, const Operand &src2)
 
void IncrementalMarkingRecordWriteHelper (Register object, Register value, Register address)
 
void RememberedSetHelper (Register object, Register addr, Register scratch, SaveFPRegsMode save_fp, RememberedSetFinalAction and_then)
 
void CheckPageFlag (Register object, Register scratch, int mask, Condition cc, Label *condition_met)
 
void CheckMapDeprecated (Handle< Map > map, Register scratch, Label *if_deprecated)
 
void JumpIfNotInNewSpace (Register object, Register scratch, Label *branch)
 
void JumpIfInNewSpace (Register object, Register scratch, Label *branch)
 
void HasColor (Register object, Register scratch0, Register scratch1, Label *has_color, int first_bit, int second_bit)
 
void JumpIfBlack (Register object, Register scratch0, Register scratch1, Label *on_black)
 
void EnsureNotWhite (Register object, Register scratch1, Register scratch2, Register scratch3, Label *object_is_white_and_not_data)
 
void JumpIfDataObject (Register value, Register scratch, Label *not_data_object)
 
void RecordWriteField (Register object, int offset, Register value, Register scratch, RAStatus ra_status, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void RecordWriteContextSlot (Register context, int offset, Register value, Register scratch, RAStatus ra_status, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void RecordWriteForMap (Register object, Register map, Register dst, RAStatus ra_status, SaveFPRegsMode save_fp)
 
void RecordWrite (Register object, Register address, Register value, RAStatus ra_status, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void CheckAccessGlobalProxy (Register holder_reg, Register scratch, Label *miss)
 
void GetNumberHash (Register reg0, Register scratch)
 
void LoadFromNumberDictionary (Label *miss, Register elements, Register key, Register result, Register reg0, Register reg1, Register reg2)
 
void MarkCode (NopMarkerTypes type)
 
void Allocate (int object_size, Register result, Register scratch1, Register scratch2, Label *gc_required, AllocationFlags flags)
 
void Allocate (Register object_size, Register result, Register scratch1, Register scratch2, Label *gc_required, AllocationFlags flags)
 
void UndoAllocationInNewSpace (Register object, Register scratch)
 
void AllocateTwoByteString (Register result, Register length, Register scratch1, Register scratch2, Register scratch3, Label *gc_required)
 
void AllocateOneByteString (Register result, Register length, Register scratch1, Register scratch2, Register scratch3, Label *gc_required)
 
void AllocateTwoByteConsString (Register result, Register length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateOneByteConsString (Register result, Register length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateTwoByteSlicedString (Register result, Register length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateOneByteSlicedString (Register result, Register length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateHeapNumber (Register result, Register scratch1, Register scratch2, Register heap_number_map, Label *gc_required, TaggingMode tagging_mode=TAG_RESULT, MutableMode mode=IMMUTABLE)
 
void AllocateHeapNumberWithValue (Register result, FPURegister value, Register scratch1, Register scratch2, Label *gc_required)
 
 DEFINE_INSTRUCTION (Addu)
 
 DEFINE_INSTRUCTION (Subu)
 
 DEFINE_INSTRUCTION (Mul)
 
 DEFINE_INSTRUCTION (Div)
 
 DEFINE_INSTRUCTION (Divu)
 
 DEFINE_INSTRUCTION (Mod)
 
 DEFINE_INSTRUCTION (Modu)
 
 DEFINE_INSTRUCTION (Mulh)
 
 DEFINE_INSTRUCTION2 (Mult)
 
 DEFINE_INSTRUCTION2 (Multu)
 
 DEFINE_INSTRUCTION2 (Div)
 
 DEFINE_INSTRUCTION2 (Divu)
 
 DEFINE_INSTRUCTION3 (Div)
 
 DEFINE_INSTRUCTION3 (Mul)
 
 DEFINE_INSTRUCTION (And)
 
 DEFINE_INSTRUCTION (Or)
 
 DEFINE_INSTRUCTION (Xor)
 
 DEFINE_INSTRUCTION (Nor)
 
 DEFINE_INSTRUCTION2 (Neg)
 
 DEFINE_INSTRUCTION (Slt)
 
 DEFINE_INSTRUCTION (Sltu)
 
 DEFINE_INSTRUCTION (Ror)
 
void Pref (int32_t hint, const MemOperand &rs)
 
void mov (Register rd, Register rt)
 
void Ulw (Register rd, const MemOperand &rs)
 
void Usw (Register rd, const MemOperand &rs)
 
void li (Register rd, Operand j, LiFlags mode=OPTIMIZE_SIZE)
 
void li (Register rd, int32_t j, LiFlags mode=OPTIMIZE_SIZE)
 
void li (Register dst, Handle< Object > value, LiFlags mode=OPTIMIZE_SIZE)
 
void MultiPush (RegList regs)
 
void MultiPushReversed (RegList regs)
 
void MultiPushFPU (RegList regs)
 
void MultiPushReversedFPU (RegList regs)
 
void push (Register src)
 
void Push (Register src)
 
void Push (Handle< Object > handle)
 
void Push (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 src, Condition cond, Register tst1, Register tst2)
 
void MultiPop (RegList regs)
 
void MultiPopReversed (RegList regs)
 
void MultiPopFPU (RegList regs)
 
void MultiPopReversedFPU (RegList regs)
 
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 PushSafepointRegisters ()
 
void PopSafepointRegisters ()
 
void StoreToSafepointRegisterSlot (Register src, Register dst)
 
void LoadFromSafepointRegisterSlot (Register dst, Register src)
 
void FlushICache (Register address, unsigned instructions)
 
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 Cvt_d_uw (FPURegister fd, FPURegister fs, FPURegister scratch)
 
void Cvt_d_uw (FPURegister fd, Register rs, FPURegister scratch)
 
void Trunc_uw_d (FPURegister fd, FPURegister fs, FPURegister scratch)
 
void Trunc_uw_d (FPURegister fd, Register rs, FPURegister scratch)
 
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 Mthc1 (Register rt, FPURegister fs)
 
void Mfhc1 (Register rt, FPURegister fs)
 
void BranchF (Label *target, Label *nan, Condition cc, FPURegister cmp1, FPURegister cmp2, BranchDelaySlot bd=PROTECT)
 
void BranchF (BranchDelaySlot bd, Label *target, Label *nan, Condition cc, FPURegister cmp1, FPURegister cmp2)
 
void EmitFPUTruncate (FPURoundingMode rounding_mode, Register result, DoubleRegister double_input, Register scratch, DoubleRegister double_scratch, Register except_flag, CheckForInexactConversion check_inexact=kDontCheckForInexactConversion)
 
void TryInlineTruncateDoubleToI (Register result, DoubleRegister input, Label *done)
 
void TruncateDoubleToI (Register result, DoubleRegister double_input)
 
void TruncateHeapNumberToI (Register result, Register object)
 
void TruncateNumberToI (Register object, Register result, Register heap_number_map, Register scratch, Label *not_int32)
 
void LoadNumber (Register object, FPURegister dst, Register heap_number_map, Register scratch, Label *not_number)
 
void LoadNumberAsInt32Double (Register object, DoubleRegister double_dst, Register heap_number_map, Register scratch1, Register scratch2, FPURegister double_scratch, Label *not_int32)
 
void LoadNumberAsInt32 (Register object, Register dst, Register heap_number_map, Register scratch1, Register scratch2, FPURegister double_scratch0, FPURegister double_scratch1, Label *not_int32)
 
void EnterExitFrame (bool save_doubles, int stack_space=0)
 
void LeaveExitFrame (bool save_doubles, Register arg_count, bool restore_context, bool do_return=NO_EMIT_RETURN)
 
void AssertStackIsAligned ()
 
void LoadContext (Register dst, int context_chain_length)
 
void LoadTransitionedArrayMapConditional (ElementsKind expected_kind, ElementsKind transitioned_kind, Register map_in_out, Register scratch, Label *no_map_match)
 
void LoadGlobalFunction (int index, Register function)
 
void LoadGlobalFunctionInitialMap (Register function, Register map, Register scratch)
 
void InitializeRootRegister ()
 
void InvokeCode (Register code, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Register function, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Register function, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Handle< JSFunction > function, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void IsObjectJSObjectType (Register heap_object, Register map, Register scratch, Label *fail)
 
void IsInstanceJSObjectType (Register map, Register scratch, Label *fail)
 
void IsObjectJSStringType (Register object, Register scratch, Label *fail)
 
void IsObjectNameType (Register object, Register scratch, Label *fail)
 
void DebugBreak ()
 
void PushTryHandler (StackHandler::Kind kind, int handler_index)
 
void PopTryHandler ()
 
void Throw (Register value)
 
void ThrowUncatchable (Register value)
 
void CopyFields (Register dst, Register src, RegList temps, int field_count)
 
void CopyBytes (Register src, Register dst, Register length, Register scratch)
 
void InitializeFieldsWithFiller (Register start_offset, Register end_offset, Register filler)
 
void TryGetFunctionPrototype (Register function, Register result, Register scratch, Label *miss, bool miss_on_bound_function=false)
 
void GetObjectType (Register function, Register map, Register type_reg)
 
void CheckFastElements (Register map, Register scratch, Label *fail)
 
void CheckFastObjectElements (Register map, Register scratch, Label *fail)
 
void CheckFastSmiElements (Register map, Register scratch, Label *fail)
 
void StoreNumberToDoubleElements (Register value_reg, Register key_reg, Register elements_reg, Register scratch1, Register scratch2, Register scratch3, Label *fail, int elements_offset=0)
 
void CompareMapAndBranch (Register obj, Register scratch, Handle< Map > map, Label *early_success, Condition cond, Label *branch_to)
 
void CompareMapAndBranch (Register obj_map, Handle< Map > map, Label *early_success, Condition cond, Label *branch_to)
 
void CheckMap (Register obj, Register scratch, Handle< Map > map, Label *fail, SmiCheckType smi_check_type)
 
void CheckMap (Register obj, Register scratch, Heap::RootListIndex index, Label *fail, SmiCheckType smi_check_type)
 
void DispatchMap (Register obj, Register scratch, Handle< Map > map, Handle< Code > success, SmiCheckType smi_check_type)
 
Condition IsObjectStringType (Register obj, Register type, Register result)
 
void IndexFromHash (Register hash, Register index)
 
void GetLeastBitsFromSmi (Register dst, Register src, int num_least_bits)
 
void GetLeastBitsFromInt32 (Register dst, Register src, int mun_least_bits)
 
void ObjectToDoubleFPURegister (Register object, FPURegister value, Register scratch1, Register scratch2, Register heap_number_map, Label *not_number, ObjectToDoubleFlags flags=NO_OBJECT_TO_DOUBLE_FLAGS)
 
void SmiToDoubleFPURegister (Register smi, FPURegister value, Register scratch1)
 
void AdduAndCheckForOverflow (Register dst, Register left, Register right, Register overflow_dst, Register scratch=at)
 
void AdduAndCheckForOverflow (Register dst, Register left, const Operand &right, Register overflow_dst, Register scratch=at)
 
void SubuAndCheckForOverflow (Register dst, Register left, Register right, Register overflow_dst, Register scratch=at)
 
void SubuAndCheckForOverflow (Register dst, Register left, const Operand &right, Register overflow_dst, Register scratch=at)
 
void BranchOnOverflow (Label *label, Register overflow_check, BranchDelaySlot bd=PROTECT)
 
void BranchOnNoOverflow (Label *label, Register overflow_check, BranchDelaySlot bd=PROTECT)
 
void RetOnOverflow (Register overflow_check, BranchDelaySlot bd=PROTECT)
 
void RetOnNoOverflow (Register overflow_check, BranchDelaySlot bd=PROTECT)
 
void PrepareCEntryArgs (int num_args)
 
void PrepareCEntryFunction (const ExternalReference &ref)
 
void CallStub (CodeStub *stub, TypeFeedbackId ast_id=TypeFeedbackId::None(), COND_ARGS)
 
void TailCallStub (CodeStub *stub, COND_ARGS)
 
void CallJSExitStub (CodeStub *stub)
 
void CallRuntime (const Runtime::Function *f, int num_arguments, SaveFPRegsMode save_doubles=kDontSaveFPRegs)
 
void CallRuntimeSaveDoubles (Runtime::FunctionId id)
 
void CallRuntime (Runtime::FunctionId id, int num_arguments, SaveFPRegsMode save_doubles=kDontSaveFPRegs)
 
void CallExternalReference (const ExternalReference &ext, int num_arguments, BranchDelaySlot bd=PROTECT)
 
void TailCallExternalReference (const ExternalReference &ext, int num_arguments, int result_size)
 
void TailCallRuntime (Runtime::FunctionId fid, int num_arguments, int result_size)
 
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)
 
void CallCFunction (ExternalReference function, int num_arguments)
 
void CallCFunction (Register function, int num_arguments)
 
void CallCFunction (ExternalReference function, int num_reg_arguments, int num_double_arguments)
 
void CallCFunction (Register function, int num_reg_arguments, int num_double_arguments)
 
void MovFromFloatResult (DoubleRegister dst)
 
void MovFromFloatParameter (DoubleRegister dst)
 
void MovToFloatParameter (DoubleRegister src)
 
void MovToFloatParameters (DoubleRegister src1, DoubleRegister src2)
 
void MovToFloatResult (DoubleRegister src)
 
void CallApiFunctionAndReturn (Register function_address, ExternalReference thunk_ref, int stack_space, MemOperand return_value_operand, MemOperand *context_restore_operand)
 
void JumpToExternalReference (const ExternalReference &builtin, BranchDelaySlot bd=PROTECT)
 
void InvokeBuiltin (Builtins::JavaScript id, InvokeFlag flag, const CallWrapper &call_wrapper=NullCallWrapper())
 
void GetBuiltinEntry (Register target, Builtins::JavaScript id)
 
void GetBuiltinFunction (Register target, Builtins::JavaScript id)
 
Handle< ObjectCodeObject ()
 
void TruncatingDiv (Register result, Register dividend, int32_t divisor)
 
void SetCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void IncrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void DecrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void Assert (Condition cc, BailoutReason reason, Register rs, Operand rt)
 
void AssertFastElements (Register elements)
 
void Check (Condition cc, BailoutReason reason, Register rs, Operand rt)
 
void Abort (BailoutReason msg)
 
void set_generating_stub (bool value)
 
bool generating_stub ()
 
void set_has_frame (bool value)
 
bool has_frame ()
 
bool AllowThisStubCall (CodeStub *stub)
 
void JumpIfNotPowerOfTwoOrZero (Register reg, Register scratch, Label *not_power_of_two_or_zero)
 
void SmiTag (Register reg)
 
void SmiTagCheckOverflow (Register reg, Register overflow)
 
void SmiTagCheckOverflow (Register dst, Register src, Register overflow)
 
void SmiTag (Register dst, Register src)
 
void TrySmiTag (Register reg, Register scratch, Label *not_a_smi)
 
void TrySmiTag (Register dst, Register src, Register scratch, Label *not_a_smi)
 
void SmiUntag (Register reg)
 
void SmiUntag (Register dst, Register src)
 
void SmiTst (Register value, Register scratch)
 
void NonNegativeSmiTst (Register value, Register scratch)
 
void UntagAndJumpIfSmi (Register dst, Register src, Label *smi_case)
 
void UntagAndJumpIfNotSmi (Register dst, Register src, Label *non_smi_case)
 
void JumpIfSmi (Register value, Label *smi_label, Register scratch=at, BranchDelaySlot bd=PROTECT)
 
void JumpIfNotSmi (Register value, Label *not_smi_label, Register scratch=at, BranchDelaySlot bd=PROTECT)
 
void JumpIfNotBothSmi (Register reg1, Register reg2, Label *on_not_both_smi)
 
void JumpIfEitherSmi (Register reg1, Register reg2, Label *on_either_smi)
 
void AssertNotSmi (Register object)
 
void AssertSmi (Register object)
 
void AssertString (Register object)
 
void AssertName (Register object)
 
void AssertUndefinedOrAllocationSite (Register object, Register scratch)
 
void AssertIsRoot (Register reg, Heap::RootListIndex index)
 
void JumpIfNotHeapNumber (Register object, Register heap_number_map, Register scratch, Label *on_not_heap_number)
 
void LookupNumberStringCache (Register object, Register result, Register scratch1, Register scratch2, Register scratch3, Label *not_found)
 
void JumpIfBothInstanceTypesAreNotSequentialOneByte (Register first_object_instance_type, Register second_object_instance_type, Register scratch1, Register scratch2, Label *failure)
 
void JumpIfInstanceTypeIsNotSequentialOneByte (Register type, Register scratch, Label *failure)
 
void JumpIfNotUniqueNameInstanceType (Register reg, Label *not_unique_name)
 
void EmitSeqStringSetCharCheck (Register string, Register index, Register value, Register scratch, uint32_t encoding_mask)
 
void JumpIfNonSmisNotBothSequentialOneByteStrings (Register first, Register second, Register scratch1, Register scratch2, Label *failure)
 
void JumpIfNotBothSequentialOneByteStrings (Register first, Register second, Register scratch1, Register scratch2, Label *not_flat_one_byte_strings)
 
void ClampUint8 (Register output_reg, Register input_reg)
 
void ClampDoubleToUint8 (Register result_reg, DoubleRegister input_reg, DoubleRegister temp_double_reg)
 
void LoadInstanceDescriptors (Register map, Register descriptors)
 
void EnumLength (Register dst, Register map)
 
void NumberOfOwnDescriptors (Register dst, Register map)
 
template<typename Field >
void DecodeField (Register dst, Register src)
 
template<typename Field >
void DecodeField (Register reg)
 
template<typename Field >
void DecodeFieldToSmi (Register dst, Register src)
 
template<typename Field >
void DecodeFieldToSmi (Register reg)
 
void StubPrologue ()
 
void Prologue (bool code_pre_aging)
 
void EnterFrame (StackFrame::Type type)
 
void LeaveFrame (StackFrame::Type type)
 
void PatchRelocatedValue (Register li_location, Register scratch, Register new_value)
 
void GetRelocatedValue (Register li_location, Register value, Register scratch)
 
void CheckEnumCache (Register null_value, Label *call_runtime)
 
void TestJSArrayForAllocationMemento (Register receiver_reg, Register scratch_reg, Label *no_memento_found, Condition cond=al, Label *allocation_memento_present=NULL)
 
void JumpIfJSArrayHasAllocationMemento (Register receiver_reg, Register scratch_reg, Label *memento_found)
 
void JumpIfDictionaryInPrototypeChain (Register object, Register scratch0, Register scratch1, Label *found)
 
 MacroAssembler (Isolate *isolate, void *buffer, int size)
 
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 Call (Register target, COND_ARGS)
 
void Call (Address target, RelocInfo::Mode rmode, COND_ARGS)
 
int CallSize (Handle< Code > code, RelocInfo::Mode rmode=RelocInfo::CODE_TARGET, TypeFeedbackId ast_id=TypeFeedbackId::None(), COND_ARGS)
 
void Call (Handle< Code > code, RelocInfo::Mode rmode=RelocInfo::CODE_TARGET, TypeFeedbackId ast_id=TypeFeedbackId::None(), COND_ARGS)
 
void Ret (COND_ARGS)
 
void Ret (BranchDelaySlot bd, Condition cond=al, Register rs=zero_reg, const Operand &rt=Operand(zero_reg))
 
void Branch (Label *L, Condition cond, Register rs, Heap::RootListIndex index, BranchDelaySlot bdslot=PROTECT)
 
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 Swap (Register reg1, Register reg2, Register scratch=no_reg)
 
void Call (Label *target)
 
void Move (Register dst, Register src)
 
void Move (FPURegister dst, FPURegister src)
 
void Move (Register dst_low, Register dst_high, FPURegister src)
 
void FmoveHigh (Register dst_high, FPURegister src)
 
void FmoveLow (Register dst_low, FPURegister src)
 
void Move (FPURegister dst, Register src_low, Register src_high)
 
void Move (FPURegister dst, double imm)
 
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 Clz (Register rd, Register rs)
 
void jmp (Label *L)
 
void Load (Register dst, const MemOperand &src, Representation r)
 
void Store (Register src, const MemOperand &dst, Representation r)
 
void LoadRoot (Register destination, Heap::RootListIndex index)
 
void LoadRoot (Register destination, Heap::RootListIndex index, Condition cond, Register src1, const Operand &src2)
 
void StoreRoot (Register source, Heap::RootListIndex index)
 
void StoreRoot (Register source, Heap::RootListIndex index, Condition cond, Register src1, const Operand &src2)
 
void IncrementalMarkingRecordWriteHelper (Register object, Register value, Register address)
 
void RememberedSetHelper (Register object, Register addr, Register scratch, SaveFPRegsMode save_fp, RememberedSetFinalAction and_then)
 
void CheckPageFlag (Register object, Register scratch, int mask, Condition cc, Label *condition_met)
 
void CheckMapDeprecated (Handle< Map > map, Register scratch, Label *if_deprecated)
 
void JumpIfNotInNewSpace (Register object, Register scratch, Label *branch)
 
void JumpIfInNewSpace (Register object, Register scratch, Label *branch)
 
void HasColor (Register object, Register scratch0, Register scratch1, Label *has_color, int first_bit, int second_bit)
 
void JumpIfBlack (Register object, Register scratch0, Register scratch1, Label *on_black)
 
void EnsureNotWhite (Register object, Register scratch1, Register scratch2, Register scratch3, Label *object_is_white_and_not_data)
 
void JumpIfDataObject (Register value, Register scratch, Label *not_data_object)
 
void RecordWriteField (Register object, int offset, Register value, Register scratch, RAStatus ra_status, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void RecordWriteContextSlot (Register context, int offset, Register value, Register scratch, RAStatus ra_status, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void RecordWriteForMap (Register object, Register map, Register dst, RAStatus ra_status, SaveFPRegsMode save_fp)
 
void RecordWrite (Register object, Register address, Register value, RAStatus ra_status, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void CheckAccessGlobalProxy (Register holder_reg, Register scratch, Label *miss)
 
void GetNumberHash (Register reg0, Register scratch)
 
void LoadFromNumberDictionary (Label *miss, Register elements, Register key, Register result, Register reg0, Register reg1, Register reg2)
 
void MarkCode (NopMarkerTypes type)
 
void Allocate (int object_size, Register result, Register scratch1, Register scratch2, Label *gc_required, AllocationFlags flags)
 
void Allocate (Register object_size, Register result, Register scratch1, Register scratch2, Label *gc_required, AllocationFlags flags)
 
void UndoAllocationInNewSpace (Register object, Register scratch)
 
void AllocateTwoByteString (Register result, Register length, Register scratch1, Register scratch2, Register scratch3, Label *gc_required)
 
void AllocateOneByteString (Register result, Register length, Register scratch1, Register scratch2, Register scratch3, Label *gc_required)
 
void AllocateTwoByteConsString (Register result, Register length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateOneByteConsString (Register result, Register length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateTwoByteSlicedString (Register result, Register length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateOneByteSlicedString (Register result, Register length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateHeapNumber (Register result, Register scratch1, Register scratch2, Register heap_number_map, Label *gc_required, TaggingMode tagging_mode=TAG_RESULT, MutableMode mode=IMMUTABLE)
 
void AllocateHeapNumberWithValue (Register result, FPURegister value, Register scratch1, Register scratch2, Label *gc_required)
 
 DEFINE_INSTRUCTION (Addu)
 
 DEFINE_INSTRUCTION (Daddu)
 
 DEFINE_INSTRUCTION (Ddiv)
 
 DEFINE_INSTRUCTION (Subu)
 
 DEFINE_INSTRUCTION (Dsubu)
 
 DEFINE_INSTRUCTION (Dmod)
 
 DEFINE_INSTRUCTION (Mul)
 
 DEFINE_INSTRUCTION (Mulh)
 
 DEFINE_INSTRUCTION (Dmul)
 
 DEFINE_INSTRUCTION (Dmulh)
 
 DEFINE_INSTRUCTION2 (Mult)
 
 DEFINE_INSTRUCTION2 (Dmult)
 
 DEFINE_INSTRUCTION2 (Multu)
 
 DEFINE_INSTRUCTION2 (Dmultu)
 
 DEFINE_INSTRUCTION2 (Div)
 
 DEFINE_INSTRUCTION2 (Ddiv)
 
 DEFINE_INSTRUCTION2 (Divu)
 
 DEFINE_INSTRUCTION2 (Ddivu)
 
 DEFINE_INSTRUCTION (And)
 
 DEFINE_INSTRUCTION (Or)
 
 DEFINE_INSTRUCTION (Xor)
 
 DEFINE_INSTRUCTION (Nor)
 
 DEFINE_INSTRUCTION2 (Neg)
 
 DEFINE_INSTRUCTION (Slt)
 
 DEFINE_INSTRUCTION (Sltu)
 
 DEFINE_INSTRUCTION (Ror)
 
 DEFINE_INSTRUCTION (Dror)
 
void Pref (int32_t hint, const MemOperand &rs)
 
void mov (Register rd, Register rt)
 
void Ulw (Register rd, const MemOperand &rs)
 
void Usw (Register rd, const MemOperand &rs)
 
void Uld (Register rd, const MemOperand &rs, Register scratch=at)
 
void Usd (Register rd, const MemOperand &rs, Register scratch=at)
 
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< Object > value, LiFlags mode=OPTIMIZE_SIZE)
 
void MultiPush (RegList regs)
 
void MultiPushReversed (RegList regs)
 
void MultiPushFPU (RegList regs)
 
void MultiPushReversedFPU (RegList regs)
 
void push (Register src)
 
void Push (Register src)
 
void Push (Handle< Object > handle)
 
void Push (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 src, Condition cond, Register tst1, Register tst2)
 
void PushRegisterAsTwoSmis (Register src, Register scratch=at)
 
void PopRegisterAsTwoSmis (Register dst, Register scratch=at)
 
void MultiPop (RegList regs)
 
void MultiPopReversed (RegList regs)
 
void MultiPopFPU (RegList regs)
 
void MultiPopReversedFPU (RegList regs)
 
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 PushSafepointRegisters ()
 
void PopSafepointRegisters ()
 
void StoreToSafepointRegisterSlot (Register src, Register dst)
 
void LoadFromSafepointRegisterSlot (Register dst, Register src)
 
void FlushICache (Register address, unsigned instructions)
 
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 Cvt_d_uw (FPURegister fd, FPURegister fs, FPURegister scratch)
 
void Cvt_d_uw (FPURegister fd, Register rs, FPURegister scratch)
 
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_uw_d (FPURegister fd, FPURegister fs, FPURegister scratch)
 
void Trunc_uw_d (FPURegister fd, Register rs, FPURegister scratch)
 
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_d (FPURegister fd, FPURegister fr, FPURegister fs, FPURegister ft, FPURegister scratch)
 
void BranchF (Label *target, Label *nan, Condition cc, FPURegister cmp1, FPURegister cmp2, BranchDelaySlot bd=PROTECT)
 
void BranchF (BranchDelaySlot bd, Label *target, Label *nan, Condition cc, FPURegister cmp1, FPURegister cmp2)
 
void EmitFPUTruncate (FPURoundingMode rounding_mode, Register result, DoubleRegister double_input, Register scratch, DoubleRegister double_scratch, Register except_flag, CheckForInexactConversion check_inexact=kDontCheckForInexactConversion)
 
void TryInlineTruncateDoubleToI (Register result, DoubleRegister input, Label *done)
 
void TruncateDoubleToI (Register result, DoubleRegister double_input)
 
void TruncateHeapNumberToI (Register result, Register object)
 
void TruncateNumberToI (Register object, Register result, Register heap_number_map, Register scratch, Label *not_int32)
 
void LoadNumber (Register object, FPURegister dst, Register heap_number_map, Register scratch, Label *not_number)
 
void LoadNumberAsInt32Double (Register object, DoubleRegister double_dst, Register heap_number_map, Register scratch1, Register scratch2, FPURegister double_scratch, Label *not_int32)
 
void LoadNumberAsInt32 (Register object, Register dst, Register heap_number_map, Register scratch1, Register scratch2, FPURegister double_scratch0, FPURegister double_scratch1, Label *not_int32)
 
void EnterExitFrame (bool save_doubles, int stack_space=0)
 
void LeaveExitFrame (bool save_doubles, Register arg_count, bool restore_context, bool do_return=NO_EMIT_RETURN)
 
void AssertStackIsAligned ()
 
void LoadContext (Register dst, int context_chain_length)
 
void LoadTransitionedArrayMapConditional (ElementsKind expected_kind, ElementsKind transitioned_kind, Register map_in_out, Register scratch, Label *no_map_match)
 
void LoadGlobalFunction (int index, Register function)
 
void LoadGlobalFunctionInitialMap (Register function, Register map, Register scratch)
 
void InitializeRootRegister ()
 
void InvokeCode (Register code, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Register function, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Register function, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Handle< JSFunction > function, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void IsObjectJSObjectType (Register heap_object, Register map, Register scratch, Label *fail)
 
void IsInstanceJSObjectType (Register map, Register scratch, Label *fail)
 
void IsObjectJSStringType (Register object, Register scratch, Label *fail)
 
void IsObjectNameType (Register object, Register scratch, Label *fail)
 
void DebugBreak ()
 
void PushTryHandler (StackHandler::Kind kind, int handler_index)
 
void PopTryHandler ()
 
void Throw (Register value)
 
void ThrowUncatchable (Register value)
 
void CopyFields (Register dst, Register src, RegList temps, int field_count)
 
void CopyBytes (Register src, Register dst, Register length, Register scratch)
 
void InitializeFieldsWithFiller (Register start_offset, Register end_offset, Register filler)
 
void TryGetFunctionPrototype (Register function, Register result, Register scratch, Label *miss, bool miss_on_bound_function=false)
 
void GetObjectType (Register function, Register map, Register type_reg)
 
void CheckFastElements (Register map, Register scratch, Label *fail)
 
void CheckFastObjectElements (Register map, Register scratch, Label *fail)
 
void CheckFastSmiElements (Register map, Register scratch, Label *fail)
 
void StoreNumberToDoubleElements (Register value_reg, Register key_reg, Register elements_reg, Register scratch1, Register scratch2, Register scratch3, Label *fail, int elements_offset=0)
 
void CompareMapAndBranch (Register obj, Register scratch, Handle< Map > map, Label *early_success, Condition cond, Label *branch_to)
 
void CompareMapAndBranch (Register obj_map, Handle< Map > map, Label *early_success, Condition cond, Label *branch_to)
 
void CheckMap (Register obj, Register scratch, Handle< Map > map, Label *fail, SmiCheckType smi_check_type)
 
void CheckMap (Register obj, Register scratch, Heap::RootListIndex index, Label *fail, SmiCheckType smi_check_type)
 
void DispatchMap (Register obj, Register scratch, Handle< Map > map, Handle< Code > success, SmiCheckType smi_check_type)
 
Condition IsObjectStringType (Register obj, Register type, Register result)
 
void IndexFromHash (Register hash, Register index)
 
void GetLeastBitsFromSmi (Register dst, Register src, int num_least_bits)
 
void GetLeastBitsFromInt32 (Register dst, Register src, int mun_least_bits)
 
void ObjectToDoubleFPURegister (Register object, FPURegister value, Register scratch1, Register scratch2, Register heap_number_map, Label *not_number, ObjectToDoubleFlags flags=NO_OBJECT_TO_DOUBLE_FLAGS)
 
void SmiToDoubleFPURegister (Register smi, FPURegister value, Register scratch1)
 
void AdduAndCheckForOverflow (Register dst, Register left, Register right, Register overflow_dst, Register scratch=at)
 
void SubuAndCheckForOverflow (Register dst, Register left, Register right, Register overflow_dst, Register scratch=at)
 
void BranchOnOverflow (Label *label, Register overflow_check, BranchDelaySlot bd=PROTECT)
 
void BranchOnNoOverflow (Label *label, Register overflow_check, BranchDelaySlot bd=PROTECT)
 
void RetOnOverflow (Register overflow_check, BranchDelaySlot bd=PROTECT)
 
void RetOnNoOverflow (Register overflow_check, BranchDelaySlot bd=PROTECT)
 
void PrepareCEntryArgs (int num_args)
 
void PrepareCEntryFunction (const ExternalReference &ref)
 
void CallStub (CodeStub *stub, TypeFeedbackId ast_id=TypeFeedbackId::None(), COND_ARGS)
 
void TailCallStub (CodeStub *stub, COND_ARGS)
 
void CallJSExitStub (CodeStub *stub)
 
void CallRuntime (const Runtime::Function *f, int num_arguments, SaveFPRegsMode save_doubles=kDontSaveFPRegs)
 
void CallRuntimeSaveDoubles (Runtime::FunctionId id)
 
void CallRuntime (Runtime::FunctionId id, int num_arguments, SaveFPRegsMode save_doubles=kDontSaveFPRegs)
 
void CallExternalReference (const ExternalReference &ext, int num_arguments, BranchDelaySlot bd=PROTECT)
 
void TailCallExternalReference (const ExternalReference &ext, int num_arguments, int result_size)
 
void TailCallRuntime (Runtime::FunctionId fid, int num_arguments, int result_size)
 
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)
 
void CallCFunction (ExternalReference function, int num_arguments)
 
void CallCFunction (Register function, int num_arguments)
 
void CallCFunction (ExternalReference function, int num_reg_arguments, int num_double_arguments)
 
void CallCFunction (Register function, int num_reg_arguments, int num_double_arguments)
 
void MovFromFloatResult (DoubleRegister dst)
 
void MovFromFloatParameter (DoubleRegister dst)
 
void MovToFloatParameter (DoubleRegister src)
 
void MovToFloatParameters (DoubleRegister src1, DoubleRegister src2)
 
void MovToFloatResult (DoubleRegister src)
 
void CallApiFunctionAndReturn (Register function_address, ExternalReference thunk_ref, int stack_space, MemOperand return_value_operand, MemOperand *context_restore_operand)
 
void JumpToExternalReference (const ExternalReference &builtin, BranchDelaySlot bd=PROTECT)
 
void InvokeBuiltin (Builtins::JavaScript id, InvokeFlag flag, const CallWrapper &call_wrapper=NullCallWrapper())
 
void GetBuiltinEntry (Register target, Builtins::JavaScript id)
 
void GetBuiltinFunction (Register target, Builtins::JavaScript id)
 
Handle< ObjectCodeObject ()
 
void TruncatingDiv (Register result, Register dividend, int32_t divisor)
 
void SetCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void IncrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void DecrementCounter (StatsCounter *counter, int value, Register scratch1, Register scratch2)
 
void Assert (Condition cc, BailoutReason reason, Register rs, Operand rt)
 
void AssertFastElements (Register elements)
 
void Check (Condition cc, BailoutReason reason, Register rs, Operand rt)
 
void Abort (BailoutReason msg)
 
void set_generating_stub (bool value)
 
bool generating_stub ()
 
void set_has_frame (bool value)
 
bool has_frame ()
 
bool AllowThisStubCall (CodeStub *stub)
 
void JumpIfNotPowerOfTwoOrZero (Register reg, Register scratch, Label *not_power_of_two_or_zero)
 
void SmiTagCheckOverflow (Register reg, Register overflow)
 
void SmiTagCheckOverflow (Register dst, Register src, Register overflow)
 
void SmiTag (Register dst, Register src)
 
void SmiTag (Register reg)
 
void TrySmiTag (Register reg, Register scratch, Label *not_a_smi)
 
void TrySmiTag (Register dst, Register src, Register scratch, Label *not_a_smi)
 
void SmiUntag (Register dst, Register src)
 
void SmiUntag (Register reg)
 
void SmiScale (Register dst, Register src, int scale)
 
void SmiLoadUntag (Register dst, MemOperand src)
 
void SmiLoadScale (Register dst, MemOperand src, int scale)
 
void SmiLoadWithScale (Register d_smi, Register d_scaled, MemOperand src, int scale)
 
void SmiLoadUntagWithScale (Register d_int, Register d_scaled, MemOperand src, int scale)
 
void SmiTst (Register value, Register scratch)
 
void NonNegativeSmiTst (Register value, Register scratch)
 
void UntagAndJumpIfSmi (Register dst, Register src, Label *smi_case)
 
void UntagAndJumpIfNotSmi (Register dst, Register src, Label *non_smi_case)
 
void JumpIfSmi (Register value, Label *smi_label, Register scratch=at, BranchDelaySlot bd=PROTECT)
 
void JumpIfNotSmi (Register value, Label *not_smi_label, Register scratch=at, BranchDelaySlot bd=PROTECT)
 
void JumpIfNotBothSmi (Register reg1, Register reg2, Label *on_not_both_smi)
 
void JumpIfEitherSmi (Register reg1, Register reg2, Label *on_either_smi)
 
void AssertNotSmi (Register object)
 
void AssertSmi (Register object)
 
void AssertString (Register object)
 
void AssertName (Register object)
 
void AssertUndefinedOrAllocationSite (Register object, Register scratch)
 
void AssertIsRoot (Register reg, Heap::RootListIndex index)
 
void JumpIfNotHeapNumber (Register object, Register heap_number_map, Register scratch, Label *on_not_heap_number)
 
void LookupNumberStringCache (Register object, Register result, Register scratch1, Register scratch2, Register scratch3, Label *not_found)
 
void JumpIfBothInstanceTypesAreNotSequentialOneByte (Register first_object_instance_type, Register second_object_instance_type, Register scratch1, Register scratch2, Label *failure)
 
void JumpIfInstanceTypeIsNotSequentialOneByte (Register type, Register scratch, Label *failure)
 
void JumpIfNotUniqueNameInstanceType (Register reg, Label *not_unique_name)
 
void EmitSeqStringSetCharCheck (Register string, Register index, Register value, Register scratch, uint32_t encoding_mask)
 
void JumpIfNonSmisNotBothSequentialOneByteStrings (Register first, Register second, Register scratch1, Register scratch2, Label *failure)
 
void JumpIfNotBothSequentialOneByteStrings (Register first, Register second, Register scratch1, Register scratch2, Label *not_flat_one_byte_strings)
 
void ClampUint8 (Register output_reg, Register input_reg)
 
void ClampDoubleToUint8 (Register result_reg, DoubleRegister input_reg, DoubleRegister temp_double_reg)
 
void LoadInstanceDescriptors (Register map, Register descriptors)
 
void EnumLength (Register dst, Register map)
 
void NumberOfOwnDescriptors (Register dst, Register map)
 
template<typename Field >
void DecodeField (Register dst, Register src)
 
template<typename Field >
void DecodeField (Register reg)
 
template<typename Field >
void DecodeFieldToSmi (Register dst, Register src)
 
template<typename Field >
void DecodeFieldToSmi (Register reg)
 
void StubPrologue ()
 
void Prologue (bool code_pre_aging)
 
void EnterFrame (StackFrame::Type type)
 
void LeaveFrame (StackFrame::Type type)
 
void PatchRelocatedValue (Register li_location, Register scratch, Register new_value)
 
void GetRelocatedValue (Register li_location, Register value, Register scratch)
 
void CheckEnumCache (Register null_value, Label *call_runtime)
 
void TestJSArrayForAllocationMemento (Register receiver_reg, Register scratch_reg, Label *no_memento_found, Condition cond=al, Label *allocation_memento_present=NULL)
 
void JumpIfJSArrayHasAllocationMemento (Register receiver_reg, Register scratch_reg, Label *memento_found)
 
void JumpIfDictionaryInPrototypeChain (Register object, Register scratch0, Register scratch1, Label *found)
 
 MacroAssembler (Isolate *isolate, void *buffer, int size)
 
Operand ExternalOperand (ExternalReference reference, Register scratch=kScratchRegister)
 
void Load (Register destination, ExternalReference source)
 
void Store (ExternalReference destination, Register source)
 
void LoadAddress (Register destination, ExternalReference source)
 
int LoadAddressSize (ExternalReference source)
 
void PushAddress (ExternalReference source)
 
void LoadRoot (Register destination, Heap::RootListIndex index)
 
void StoreRoot (Register source, Heap::RootListIndex index)
 
void LoadRootIndexed (Register destination, Register variable_offset, int fixed_offset)
 
void CompareRoot (Register with, Heap::RootListIndex index)
 
void CompareRoot (const Operand &with, Heap::RootListIndex index)
 
void PushRoot (Heap::RootListIndex index)
 
void PushCallerSaved (SaveFPRegsMode fp_mode, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg)
 
void PopCallerSaved (SaveFPRegsMode fp_mode, Register exclusion1=no_reg, Register exclusion2=no_reg, Register exclusion3=no_reg)
 
void RememberedSetHelper (Register object, Register addr, Register scratch, SaveFPRegsMode save_fp, RememberedSetFinalAction and_then)
 
void CheckPageFlag (Register object, Register scratch, int mask, Condition cc, Label *condition_met, Label::Distance condition_met_distance=Label::kFar)
 
void CheckMapDeprecated (Handle< Map > map, Register scratch, Label *if_deprecated)
 
void JumpIfNotInNewSpace (Register object, Register scratch, Label *branch, Label::Distance distance=Label::kFar)
 
void JumpIfInNewSpace (Register object, Register scratch, Label *branch, Label::Distance distance=Label::kFar)
 
void JumpIfBlack (Register object, Register scratch0, Register scratch1, Label *on_black, Label::Distance on_black_distance=Label::kFar)
 
void JumpIfDataObject (Register value, Register scratch, Label *not_data_object, Label::Distance not_data_object_distance)
 
void EnsureNotWhite (Register object, Register scratch1, Register scratch2, Label *object_is_white_and_not_data, Label::Distance distance)
 
void RecordWriteField (Register object, int offset, Register value, Register scratch, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void RecordWriteContextSlot (Register context, int offset, Register value, Register scratch, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void RecordWriteArray (Register array, Register value, Register index, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void RecordWriteForMap (Register object, Register map, Register dst, SaveFPRegsMode save_fp)
 
void RecordWrite (Register object, Register address, Register value, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void DebugBreak ()
 
void StubPrologue ()
 
void Prologue (bool code_pre_aging)
 
void EnterExitFrame (int arg_stack_space=0, bool save_doubles=false)
 
void EnterApiExitFrame (int arg_stack_space)
 
void LeaveExitFrame (bool save_doubles=false)
 
void LeaveApiExitFrame (bool restore_context)
 
void PushSafepointRegisters ()
 
void PopSafepointRegisters ()
 
void StoreToSafepointRegisterSlot (Register dst, const Immediate &imm)
 
void StoreToSafepointRegisterSlot (Register dst, Register src)
 
void LoadFromSafepointRegisterSlot (Register dst, Register src)
 
void InitializeRootRegister ()
 
void InvokeCode (Register code, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Register function, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Register function, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Handle< JSFunction > function, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeBuiltin (Builtins::JavaScript id, InvokeFlag flag, const CallWrapper &call_wrapper=NullCallWrapper())
 
void GetBuiltinFunction (Register target, Builtins::JavaScript id)
 
void GetBuiltinEntry (Register target, Builtins::JavaScript id)
 
bool IsUnsafeInt (const int32_t x)
 
void SafeMove (Register dst, Smi *src)
 
void SafePush (Smi *src)
 
void InitializeSmiConstantRegister ()
 
void Integer32ToSmi (Register dst, Register src)
 
void Integer32ToSmiField (const Operand &dst, Register src)
 
void Integer64PlusConstantToSmi (Register dst, Register src, int constant)
 
void SmiToInteger32 (Register dst, Register src)
 
void SmiToInteger32 (Register dst, const Operand &src)
 
void SmiToInteger64 (Register dst, Register src)
 
void SmiToInteger64 (Register dst, const Operand &src)
 
void PositiveSmiTimesPowerOfTwoToInteger64 (Register dst, Register src, int power)
 
void PositiveSmiDivPowerOfTwoToInteger32 (Register dst, Register src, int power)
 
void SmiOrIfSmis (Register dst, Register src1, Register src2, Label *on_not_smis, Label::Distance near_jump=Label::kFar)
 
void SmiCompare (Register smi1, Register smi2)
 
void SmiCompare (Register dst, Smi *src)
 
void SmiCompare (Register dst, const Operand &src)
 
void SmiCompare (const Operand &dst, Register src)
 
void SmiCompare (const Operand &dst, Smi *src)
 
void SmiCompareInteger32 (const Operand &dst, Register src)
 
void SmiTest (Register src)
 
Condition CheckSmi (Register src)
 
Condition CheckSmi (const Operand &src)
 
Condition CheckNonNegativeSmi (Register src)
 
Condition CheckBothSmi (Register first, Register second)
 
Condition CheckBothNonNegativeSmi (Register first, Register second)
 
Condition CheckEitherSmi (Register first, Register second, Register scratch=kScratchRegister)
 
Condition CheckIsMinSmi (Register src)
 
Condition CheckInteger32ValidSmiValue (Register src)
 
Condition CheckUInteger32ValidSmiValue (Register src)
 
void CheckSmiToIndicator (Register dst, Register src)
 
void CheckSmiToIndicator (Register dst, const Operand &src)
 
void JumpIfValidSmiValue (Register src, Label *on_valid, Label::Distance near_jump=Label::kFar)
 
void JumpIfNotValidSmiValue (Register src, Label *on_invalid, Label::Distance near_jump=Label::kFar)
 
void JumpIfUIntValidSmiValue (Register src, Label *on_valid, Label::Distance near_jump=Label::kFar)
 
void JumpIfUIntNotValidSmiValue (Register src, Label *on_invalid, Label::Distance near_jump=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 JumpUnlessNonNegativeSmi (Register src, Label *on_not_smi, Label::Distance near_jump=Label::kFar)
 
void JumpIfSmiEqualsConstant (Register src, Smi *constant, Label *on_equals, Label::Distance near_jump=Label::kFar)
 
void JumpIfNotBothSmi (Register src1, Register src2, Label *on_not_both_smi, Label::Distance near_jump=Label::kFar)
 
void JumpUnlessBothNonNegativeSmi (Register src1, Register src2, Label *on_not_both_smi, Label::Distance near_jump=Label::kFar)
 
void SmiAddConstant (Register dst, Register src, Smi *constant)
 
void SmiAddConstant (const Operand &dst, Smi *constant)
 
void SmiAddConstant (Register dst, Register src, Smi *constant, SmiOperationExecutionMode mode, Label *bailout_label, Label::Distance near_jump=Label::kFar)
 
void SmiSubConstant (Register dst, Register src, Smi *constant)
 
void SmiSubConstant (Register dst, Register src, Smi *constant, SmiOperationExecutionMode mode, Label *bailout_label, Label::Distance near_jump=Label::kFar)
 
void SmiNeg (Register dst, Register src, Label *on_smi_result, Label::Distance near_jump=Label::kFar)
 
void SmiAdd (Register dst, Register src1, Register src2, Label *on_not_smi_result, Label::Distance near_jump=Label::kFar)
 
void SmiAdd (Register dst, Register src1, const Operand &src2, Label *on_not_smi_result, Label::Distance near_jump=Label::kFar)
 
void SmiAdd (Register dst, Register src1, Register src2)
 
void SmiSub (Register dst, Register src1, Register src2, Label *on_not_smi_result, Label::Distance near_jump=Label::kFar)
 
void SmiSub (Register dst, Register src1, const Operand &src2, Label *on_not_smi_result, Label::Distance near_jump=Label::kFar)
 
void SmiSub (Register dst, Register src1, Register src2)
 
void SmiSub (Register dst, Register src1, const Operand &src2)
 
void SmiMul (Register dst, Register src1, Register src2, Label *on_not_smi_result, Label::Distance near_jump=Label::kFar)
 
void SmiDiv (Register dst, Register src1, Register src2, Label *on_not_smi_result, Label::Distance near_jump=Label::kFar)
 
void SmiMod (Register dst, Register src1, Register src2, Label *on_not_smi_result, Label::Distance near_jump=Label::kFar)
 
void SmiNot (Register dst, Register src)
 
void SmiAnd (Register dst, Register src1, Register src2)
 
void SmiOr (Register dst, Register src1, Register src2)
 
void SmiXor (Register dst, Register src1, Register src2)
 
void SmiAndConstant (Register dst, Register src1, Smi *constant)
 
void SmiOrConstant (Register dst, Register src1, Smi *constant)
 
void SmiXorConstant (Register dst, Register src1, Smi *constant)
 
void SmiShiftLeftConstant (Register dst, Register src, int shift_value, Label *on_not_smi_result=NULL, Label::Distance near_jump=Label::kFar)
 
void SmiShiftLogicalRightConstant (Register dst, Register src, int shift_value, Label *on_not_smi_result, Label::Distance near_jump=Label::kFar)
 
void SmiShiftArithmeticRightConstant (Register dst, Register src, int shift_value)
 
void SmiShiftLeft (Register dst, Register src1, Register src2, Label *on_not_smi_result=NULL, Label::Distance near_jump=Label::kFar)
 
void SmiShiftLogicalRight (Register dst, Register src1, Register src2, Label *on_not_smi_result, Label::Distance near_jump=Label::kFar)
 
void SmiShiftArithmeticRight (Register dst, Register src1, Register src2)
 
void SelectNonSmi (Register dst, Register src1, Register src2, Label *on_not_smis, Label::Distance near_jump=Label::kFar)
 
SmiIndex SmiToIndex (Register dst, Register src, int shift)
 
SmiIndex SmiToNegativeIndex (Register dst, Register src, int shift)
 
void AddSmiField (Register dst, const Operand &src)
 
void Move (Register dst, Smi *source)
 
void Move (const Operand &dst, Smi *source)
 
void Push (Smi *smi)
 
void PushRegisterAsTwoSmis (Register src, Register scratch=kScratchRegister)
 
void PopRegisterAsTwoSmis (Register dst, Register scratch=kScratchRegister)
 
void Test (const Operand &dst, Smi *source)
 
void LookupNumberStringCache (Register object, Register result, Register scratch1, Register scratch2, Label *not_found)
 
void JumpIfNotString (Register object, Register object_map, Label *not_string, Label::Distance near_jump=Label::kFar)
 
void JumpIfNotBothSequentialOneByteStrings (Register first_object, Register second_object, Register scratch1, Register scratch2, Label *on_not_both_flat_one_byte, Label::Distance near_jump=Label::kFar)
 
void JumpIfInstanceTypeIsNotSequentialOneByte (Register instance_type, Register scratch, Label *on_not_flat_one_byte_string, Label::Distance near_jump=Label::kFar)
 
void JumpIfBothInstanceTypesAreNotSequentialOneByte (Register first_object_instance_type, Register second_object_instance_type, Register scratch1, Register scratch2, Label *on_fail, Label::Distance near_jump=Label::kFar)
 
void EmitSeqStringSetCharCheck (Register string, Register index, Register value, uint32_t encoding_mask)
 
void JumpIfNotUniqueNameInstanceType (Register reg, Label *not_unique_name, Label::Distance distance=Label::kFar)
 
void JumpIfNotUniqueNameInstanceType (Operand operand, Label *not_unique_name, Label::Distance distance=Label::kFar)
 
void Load (Register dst, const Operand &src, Representation r)
 
void Store (const Operand &dst, Register src, Representation r)
 
void Set (Register dst, int64_t x)
 
void Set (const Operand &dst, intptr_t x)
 
void Cvtlsi2sd (XMMRegister dst, Register src)
 
void Cvtlsi2sd (XMMRegister dst, const Operand &src)
 
void Move (Register target, Register source)
 
void TestBitSharedFunctionInfoSpecialField (Register base, int offset, int bit_index)
 
void LoadSharedFunctionInfoSpecialField (Register dst, Register base, int offset)
 
void Move (Register dst, Handle< Object > source)
 
void Move (const Operand &dst, Handle< Object > source)
 
void Cmp (Register dst, Handle< Object > source)
 
void Cmp (const Operand &dst, Handle< Object > source)
 
void Cmp (Register dst, Smi *src)
 
void Cmp (const Operand &dst, Smi *src)
 
void Push (Handle< Object > source)
 
void MoveHeapObject (Register result, Handle< Object > object)
 
void LoadGlobalCell (Register dst, Handle< Cell > cell)
 
void Drop (int stack_elements)
 
void DropUnderReturnAddress (int stack_elements, Register scratch=kScratchRegister)
 
void Call (Label *target)
 
void Push (Register src)
 
void Push (const Operand &src)
 
void PushQuad (const Operand &src)
 
void Push (Immediate value)
 
void PushImm32 (int32_t imm32)
 
void Pop (Register dst)
 
void Pop (const Operand &dst)
 
void PopQuad (const Operand &dst)
 
void PushReturnAddressFrom (Register src)
 
void PopReturnAddressTo (Register dst)
 
void Move (Register dst, ExternalReference ext)
 
void Move (Register dst, void *ptr, RelocInfo::Mode rmode)
 
void Move (Register dst, Handle< Object > value, RelocInfo::Mode rmode)
 
void Jump (Address destination, RelocInfo::Mode rmode)
 
void Jump (ExternalReference ext)
 
void Jump (const Operand &op)
 
void Jump (Handle< Code > code_object, RelocInfo::Mode rmode)
 
void Call (Address destination, RelocInfo::Mode rmode)
 
void Call (ExternalReference ext)
 
void Call (const Operand &op)
 
void Call (Handle< Code > code_object, RelocInfo::Mode rmode, TypeFeedbackId ast_id=TypeFeedbackId::None())
 
int CallSize (Address destination)
 
int CallSize (ExternalReference ext)
 
int CallSize (Handle< Code > code_object)
 
int CallSize (Register target)
 
int CallSize (const Operand &target)
 
void CallSelf ()
 
void Pushad ()
 
void Popad ()
 
void Dropad ()
 
void CmpObjectType (Register heap_object, InstanceType type, Register map)
 
void CmpInstanceType (Register map, InstanceType type)
 
void CheckFastElements (Register map, Label *fail, Label::Distance distance=Label::kFar)
 
void CheckFastObjectElements (Register map, Label *fail, Label::Distance distance=Label::kFar)
 
void CheckFastSmiElements (Register map, Label *fail, Label::Distance distance=Label::kFar)
 
void StoreNumberToDoubleElements (Register maybe_number, Register elements, Register index, XMMRegister xmm_scratch, Label *fail, int elements_offset=0)
 
void CompareMap (Register obj, Handle< Map > map)
 
void CheckMap (Register obj, Handle< Map > map, Label *fail, SmiCheckType smi_check_type)
 
void DispatchMap (Register obj, Register unused, Handle< Map > map, Handle< Code > success, SmiCheckType smi_check_type)
 
Condition IsObjectStringType (Register heap_object, Register map, Register instance_type)
 
Condition IsObjectNameType (Register heap_object, Register map, Register instance_type)
 
void FCmp ()
 
void ClampUint8 (Register reg)
 
void ClampDoubleToUint8 (XMMRegister input_reg, XMMRegister temp_xmm_reg, Register result_reg)
 
void SlowTruncateToI (Register result_reg, Register input_reg, int offset=HeapNumber::kValueOffset - kHeapObjectTag)
 
void TruncateHeapNumberToI (Register result_reg, Register input_reg)
 
void TruncateDoubleToI (Register result_reg, XMMRegister input_reg)
 
void DoubleToI (Register result_reg, XMMRegister input_reg, XMMRegister scratch, MinusZeroMode minus_zero_mode, Label *lost_precision, Label *is_nan, Label *minus_zero, Label::Distance dst=Label::kFar)
 
void LoadUint32 (XMMRegister dst, Register src)
 
void LoadInstanceDescriptors (Register map, Register descriptors)
 
void EnumLength (Register dst, Register map)
 
void NumberOfOwnDescriptors (Register dst, Register map)
 
template<typename Field >
void DecodeField (Register reg)
 
template<typename Field >
void DecodeFieldToSmi (Register reg)
 
void AssertNumber (Register object)
 
void AssertNotSmi (Register object)
 
void AssertSmi (Register object)
 
void AssertSmi (const Operand &object)
 
void AssertZeroExtended (Register reg)
 
void AssertString (Register object)
 
void AssertName (Register object)
 
void AssertUndefinedOrAllocationSite (Register object)
 
void AssertRootValue (Register src, Heap::RootListIndex root_value_index, BailoutReason reason)
 
void PushTryHandler (StackHandler::Kind kind, int handler_index)
 
void PopTryHandler ()
 
void Throw (Register value)
 
void ThrowUncatchable (Register value)
 
void CheckAccessGlobalProxy (Register holder_reg, Register scratch, Label *miss)
 
void GetNumberHash (Register r0, Register scratch)
 
void LoadFromNumberDictionary (Label *miss, Register elements, Register key, Register r0, Register r1, Register r2, Register result)
 
void Allocate (int object_size, Register result, Register result_end, Register scratch, Label *gc_required, AllocationFlags flags)
 
void Allocate (int header_size, ScaleFactor element_size, Register element_count, Register result, Register result_end, Register scratch, Label *gc_required, AllocationFlags flags)
 
void Allocate (Register object_size, Register result, Register result_end, Register scratch, Label *gc_required, AllocationFlags flags)
 
void UndoAllocationInNewSpace (Register object)
 
void AllocateHeapNumber (Register result, Register scratch, Label *gc_required, MutableMode mode=IMMUTABLE)
 
void AllocateTwoByteString (Register result, Register length, Register scratch1, Register scratch2, Register scratch3, Label *gc_required)
 
void AllocateOneByteString (Register result, Register length, Register scratch1, Register scratch2, Register scratch3, Label *gc_required)
 
void AllocateTwoByteConsString (Register result, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateOneByteConsString (Register result, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateTwoByteSlicedString (Register result, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateOneByteSlicedString (Register result, Register scratch1, Register scratch2, Label *gc_required)
 
void NegativeZeroTest (Register result, Register op, Label *then_label)
 
void NegativeZeroTest (CodeGenerator *cgen, Register result, Register op, JumpTarget *then_target)
 
void NegativeZeroTest (Register result, Register op1, Register op2, Register scratch, Label *then_label)
 
void TryGetFunctionPrototype (Register function, Register result, Label *miss, bool miss_on_bound_function=false)
 
void IndexFromHash (Register hash, Register index)
 
void LoadContext (Register dst, int context_chain_length)
 
void LoadTransitionedArrayMapConditional (ElementsKind expected_kind, ElementsKind transitioned_kind, Register map_in_out, Register scratch, Label *no_map_match)
 
void LoadGlobalFunction (int index, Register function)
 
void LoadGlobalFunctionInitialMap (Register function, Register map)
 
void CallStub (CodeStub *stub, TypeFeedbackId ast_id=TypeFeedbackId::None())
 
void TailCallStub (CodeStub *stub)
 
void StubReturn (int argc)
 
void CallRuntime (const Runtime::Function *f, int num_arguments, SaveFPRegsMode save_doubles=kDontSaveFPRegs)
 
void CallRuntimeSaveDoubles (Runtime::FunctionId id)
 
void CallRuntime (Runtime::FunctionId id, int num_arguments, SaveFPRegsMode save_doubles=kDontSaveFPRegs)
 
void CallExternalReference (const ExternalReference &ext, int num_arguments)
 
void TailCallExternalReference (const ExternalReference &ext, int num_arguments, int result_size)
 
void TailCallRuntime (Runtime::FunctionId fid, int num_arguments, int result_size)
 
void JumpToExternalReference (const ExternalReference &ext, int result_size)
 
void PrepareCallApiFunction (int arg_stack_space)
 
void CallApiFunctionAndReturn (Register function_address, ExternalReference thunk_ref, Register thunk_last_arg, int stack_space, Operand return_value_operand, Operand *context_restore_operand)
 
void PrepareCallCFunction (int num_arguments)
 
void CallCFunction (ExternalReference function, int num_arguments)
 
void CallCFunction (Register function, int num_arguments)
 
int ArgumentStackSlotsForCFunctionCall (int num_arguments)
 
void Ret ()
 
void Ret (int bytes_dropped, Register scratch)
 
Handle< ObjectCodeObject ()
 
void CopyBytes (Register destination, Register source, Register length, int min_length=0, Register scratch=kScratchRegister)
 
void InitializeFieldsWithFiller (Register start_offset, Register end_offset, Register filler)
 
void TruncatingDiv (Register dividend, int32_t divisor)
 
void SetCounter (StatsCounter *counter, int value)
 
void IncrementCounter (StatsCounter *counter, int value)
 
void DecrementCounter (StatsCounter *counter, int value)
 
void Assert (Condition cc, BailoutReason reason)
 
void AssertFastElements (Register elements)
 
void Check (Condition cc, BailoutReason reason)
 
void Abort (BailoutReason msg)
 
void CheckStackAlignment ()
 
void set_generating_stub (bool value)
 
bool generating_stub ()
 
void set_has_frame (bool value)
 
bool has_frame ()
 
bool AllowThisStubCall (CodeStub *stub)
 
void EnterFrame (StackFrame::Type type)
 
void LeaveFrame (StackFrame::Type type)
 
void CheckEnumCache (Register null_value, Label *call_runtime)
 
void TestJSArrayForAllocationMemento (Register receiver_reg, Register scratch_reg, Label *no_memento_found)
 
void JumpIfJSArrayHasAllocationMemento (Register receiver_reg, Register scratch_reg, Label *memento_found)
 
void JumpIfDictionaryInPrototypeChain (Register object, Register scratch0, Register scratch1, Label *found)
 
 MacroAssembler (Isolate *isolate, void *buffer, int size)
 
void Load (Register dst, const Operand &src, Representation r)
 
void Store (Register src, const Operand &dst, Representation r)
 
void LoadRoot (Register destination, Heap::RootListIndex index)
 
void StoreRoot (Register source, Register scratch, Heap::RootListIndex index)
 
void CompareRoot (Register with, Register scratch, Heap::RootListIndex index)
 
void CompareRoot (Register with, Heap::RootListIndex index)
 
void CompareRoot (const Operand &with, Heap::RootListIndex index)
 
void RememberedSetHelper (Register object, Register addr, Register scratch, SaveFPRegsMode save_fp, RememberedSetFinalAction and_then)
 
void CheckPageFlag (Register object, Register scratch, int mask, Condition cc, Label *condition_met, Label::Distance condition_met_distance=Label::kFar)
 
void CheckPageFlagForMap (Handle< Map > map, int mask, Condition cc, Label *condition_met, Label::Distance condition_met_distance=Label::kFar)
 
void CheckMapDeprecated (Handle< Map > map, Register scratch, Label *if_deprecated)
 
void JumpIfNotInNewSpace (Register object, Register scratch, Label *branch, Label::Distance distance=Label::kFar)
 
void JumpIfInNewSpace (Register object, Register scratch, Label *branch, Label::Distance distance=Label::kFar)
 
void HasColor (Register object, Register scratch0, Register scratch1, Label *has_color, Label::Distance has_color_distance, int first_bit, int second_bit)
 
void JumpIfBlack (Register object, Register scratch0, Register scratch1, Label *on_black, Label::Distance on_black_distance=Label::kFar)
 
void EnsureNotWhite (Register object, Register scratch1, Register scratch2, Label *object_is_white_and_not_data, Label::Distance distance)
 
void RecordWriteField (Register object, int offset, Register value, Register scratch, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void RecordWriteContextSlot (Register context, int offset, Register value, Register scratch, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void RecordWriteArray (Register array, Register value, Register index, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void RecordWrite (Register object, Register address, Register value, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)
 
void RecordWriteForMap (Register object, Handle< Map > map, Register scratch1, Register scratch2, SaveFPRegsMode save_fp)
 
void DebugBreak ()
 
void StubPrologue ()
 
void Prologue (bool code_pre_aging)
 
void EnterExitFrame (bool save_doubles)
 
void EnterApiExitFrame (int argc)
 
void LeaveExitFrame (bool save_doubles)
 
void LeaveApiExitFrame (bool restore_context)
 
void LoadContext (Register dst, int context_chain_length)
 
void LoadTransitionedArrayMapConditional (ElementsKind expected_kind, ElementsKind transitioned_kind, Register map_in_out, Register scratch, Label *no_map_match)
 
void LoadGlobalFunction (int index, Register function)
 
void LoadGlobalFunctionInitialMap (Register function, Register map)
 
void PushSafepointRegisters ()
 
void PopSafepointRegisters ()
 
void StoreToSafepointRegisterSlot (Register dst, Register src)
 
void StoreToSafepointRegisterSlot (Register dst, Immediate src)
 
void LoadFromSafepointRegisterSlot (Register dst, Register src)
 
void LoadHeapObject (Register result, Handle< HeapObject > object)
 
void CmpHeapObject (Register reg, Handle< HeapObject > object)
 
void PushHeapObject (Handle< HeapObject > object)
 
void LoadObject (Register result, Handle< Object > object)
 
void CmpObject (Register reg, Handle< Object > object)
 
void InvokeCode (Register code, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeCode (const Operand &code, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Register function, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Register function, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeFunction (Handle< JSFunction > function, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InvokeBuiltin (Builtins::JavaScript id, InvokeFlag flag, const CallWrapper &call_wrapper=NullCallWrapper())
 
void GetBuiltinFunction (Register target, Builtins::JavaScript id)
 
void GetBuiltinEntry (Register target, Builtins::JavaScript id)
 
bool IsUnsafeImmediate (const Immediate &x)
 
void SafeMove (Register dst, const Immediate &x)
 
void SafePush (const Immediate &x)
 
void CmpObjectType (Register heap_object, InstanceType type, Register map)
 
void CmpInstanceType (Register map, InstanceType type)
 
void CheckFastElements (Register map, Label *fail, Label::Distance distance=Label::kFar)
 
void CheckFastObjectElements (Register map, Label *fail, Label::Distance distance=Label::kFar)
 
void CheckFastSmiElements (Register map, Label *fail, Label::Distance distance=Label::kFar)
 
void StoreNumberToDoubleElements (Register maybe_number, Register elements, Register key, Register scratch, Label *fail, int offset=0)
 
void CompareMap (Register obj, Handle< Map > map)
 
void CheckMap (Register obj, Handle< Map > map, Label *fail, SmiCheckType smi_check_type)
 
void DispatchMap (Register obj, Register unused, Handle< Map > map, Handle< Code > success, SmiCheckType smi_check_type)
 
Condition IsObjectStringType (Register heap_object, Register map, Register instance_type)
 
Condition IsObjectNameType (Register heap_object, Register map, Register instance_type)
 
void IsObjectJSObjectType (Register heap_object, Register map, Register scratch, Label *fail)
 
void IsInstanceJSObjectType (Register map, Register scratch, Label *fail)
 
void FCmp ()
 
void FXamMinusZero ()
 
void FXamSign ()
 
void X87CheckIA ()
 
void X87SetRC (int rc)
 
void ClampUint8 (Register reg)
 
void ClampTOSToUint8 (Register result_reg)
 
void SlowTruncateToI (Register result_reg, Register input_reg, int offset=HeapNumber::kValueOffset - kHeapObjectTag)
 
void TruncateHeapNumberToI (Register result_reg, Register input_reg)
 
void TruncateX87TOSToI (Register result_reg)
 
void X87TOSToI (Register result_reg, MinusZeroMode minus_zero_mode, Label *lost_precision, Label *is_nan, Label *minus_zero, Label::Distance dst=Label::kFar)
 
void SmiTag (Register reg)
 
void SmiUntag (Register reg)
 
void SmiUntag (Register reg, Label *is_smi)
 
void LoadUint32NoSSE2 (Register src)
 
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 JumpIfNotSmi (Register value, Label *not_smi_label, Label::Distance distance=Label::kFar)
 
void LoadInstanceDescriptors (Register map, Register descriptors)
 
void EnumLength (Register dst, Register map)
 
void NumberOfOwnDescriptors (Register dst, Register map)
 
template<typename Field >
void DecodeField (Register reg)
 
template<typename Field >
void DecodeFieldToSmi (Register reg)
 
void AssertNumber (Register object)
 
void AssertSmi (Register object)
 
void AssertNotSmi (Register object)
 
void AssertString (Register object)
 
void AssertName (Register object)
 
void AssertUndefinedOrAllocationSite (Register object)
 
void PushTryHandler (StackHandler::Kind kind, int handler_index)
 
void PopTryHandler ()
 
void Throw (Register value)
 
void ThrowUncatchable (Register value)
 
void CheckAccessGlobalProxy (Register holder_reg, Register scratch1, Register scratch2, Label *miss)
 
void GetNumberHash (Register r0, Register scratch)
 
void LoadFromNumberDictionary (Label *miss, Register elements, Register key, Register r0, Register r1, Register r2, Register result)
 
void Allocate (int object_size, Register result, Register result_end, Register scratch, Label *gc_required, AllocationFlags flags)
 
void Allocate (int header_size, ScaleFactor element_size, Register element_count, RegisterValueType element_count_type, Register result, Register result_end, Register scratch, Label *gc_required, AllocationFlags flags)
 
void Allocate (Register object_size, Register result, Register result_end, Register scratch, Label *gc_required, AllocationFlags flags)
 
void UndoAllocationInNewSpace (Register object)
 
void AllocateHeapNumber (Register result, Register scratch1, Register scratch2, Label *gc_required, MutableMode mode=IMMUTABLE)
 
void AllocateTwoByteString (Register result, Register length, Register scratch1, Register scratch2, Register scratch3, Label *gc_required)
 
void AllocateOneByteString (Register result, Register length, Register scratch1, Register scratch2, Register scratch3, Label *gc_required)
 
void AllocateOneByteString (Register result, int length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateTwoByteConsString (Register result, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateOneByteConsString (Register result, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateTwoByteSlicedString (Register result, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateOneByteSlicedString (Register result, Register scratch1, Register scratch2, Label *gc_required)
 
void CopyBytes (Register source, Register destination, Register length, Register scratch)
 
void InitializeFieldsWithFiller (Register start_offset, Register end_offset, Register filler)
 
void BooleanBitTest (Register object, int field_offset, int bit_index)
 
void NegativeZeroTest (Register result, Register op, Label *then_label)
 
void NegativeZeroTest (Register result, Register op1, Register op2, Register scratch, Label *then_label)
 
void TryGetFunctionPrototype (Register function, Register result, Register scratch, Label *miss, bool miss_on_bound_function=false)
 
void IndexFromHash (Register hash, Register index)
 
void CallStub (CodeStub *stub, TypeFeedbackId ast_id=TypeFeedbackId::None())
 
void TailCallStub (CodeStub *stub)
 
void StubReturn (int argc)
 
void CallRuntime (const Runtime::Function *f, int num_arguments, SaveFPRegsMode save_doubles=kDontSaveFPRegs)
 
void CallRuntimeSaveDoubles (Runtime::FunctionId id)
 
void CallRuntime (Runtime::FunctionId id, int num_arguments, SaveFPRegsMode save_doubles=kDontSaveFPRegs)
 
void CallExternalReference (ExternalReference ref, int num_arguments)
 
void TailCallExternalReference (const ExternalReference &ext, int num_arguments, int result_size)
 
void TailCallRuntime (Runtime::FunctionId fid, int num_arguments, int result_size)
 
void PrepareCallCFunction (int num_arguments, Register scratch)
 
void CallCFunction (ExternalReference function, int num_arguments)
 
void CallCFunction (Register function, int num_arguments)
 
void PrepareCallApiFunction (int argc)
 
void CallApiFunctionAndReturn (Register function_address, ExternalReference thunk_ref, Operand thunk_last_arg, int stack_space, Operand return_value_operand, Operand *context_restore_operand)
 
void JumpToExternalReference (const ExternalReference &ext)
 
void Ret ()
 
void Ret (int bytes_dropped, Register scratch)
 
void Drop (int element_count)
 
void Call (Label *target)
 
void Push (Register src)
 
void Pop (Register dst)
 
void CallSelf ()
 
void Move (Register target, Register source)
 
void Move (Register dst, const Immediate &x)
 
void Move (const Operand &dst, const Immediate &x)
 
void Push (Handle< Object > handle)
 
void Push (Smi *smi)
 
Handle< ObjectCodeObject ()
 
void VerifyX87StackDepth (uint32_t depth)
 
void TruncatingDiv (Register dividend, int32_t divisor)
 
void SetCounter (StatsCounter *counter, int value)
 
void IncrementCounter (StatsCounter *counter, int value)
 
void DecrementCounter (StatsCounter *counter, int value)
 
void IncrementCounter (Condition cc, StatsCounter *counter, int value)
 
void DecrementCounter (Condition cc, StatsCounter *counter, int value)
 
void Assert (Condition cc, BailoutReason reason)
 
void AssertFastElements (Register elements)
 
void Check (Condition cc, BailoutReason reason)
 
void Abort (BailoutReason reason)
 
void CheckStackAlignment ()
 
void set_generating_stub (bool value)
 
bool generating_stub ()
 
void set_has_frame (bool value)
 
bool has_frame ()
 
bool AllowThisStubCall (CodeStub *stub)
 
void LookupNumberStringCache (Register object, Register result, Register scratch1, Register scratch2, Label *not_found)
 
void JumpIfInstanceTypeIsNotSequentialOneByte (Register instance_type, Register scratch, Label *on_not_flat_one_byte_string)
 
void JumpIfNotBothSequentialOneByteStrings (Register object1, Register object2, Register scratch1, Register scratch2, Label *on_not_flat_one_byte_strings)
 
void JumpIfNotUniqueNameInstanceType (Register reg, Label *not_unique_name, Label::Distance distance=Label::kFar)
 
void JumpIfNotUniqueNameInstanceType (Operand operand, Label *not_unique_name, Label::Distance distance=Label::kFar)
 
void EmitSeqStringSetCharCheck (Register string, Register index, Register value, uint32_t encoding_mask)
 
void EnterFrame (StackFrame::Type type)
 
void LeaveFrame (StackFrame::Type type)
 
void CheckEnumCache (Label *call_runtime)
 
void TestJSArrayForAllocationMemento (Register receiver_reg, Register scratch_reg, Label *no_memento_found)
 
void JumpIfJSArrayHasAllocationMemento (Register receiver_reg, Register scratch_reg, Label *memento_found)
 
void JumpIfDictionaryInPrototypeChain (Register object, Register scratch0, Register scratch1, Label *found)
 
- Public Member Functions inherited from v8::internal::Assembler
 Assembler (Isolate *isolate, void *buffer, int buffer_size)
 
virtual ~Assembler ()
 
void GetCode (CodeDesc *desc)
 
void bind (Label *L)
 
int branch_offset (Label *L, bool jump_elimination_allowed)
 
 INLINE (static bool is_constant_pool_load(Address pc))
 
 INLINE (static Address constant_pool_entry_address(Address pc, ConstantPoolArray *constant_pool))
 
 INLINE (static Address target_address_at(Address pc, ConstantPoolArray *constant_pool))
 
 INLINE (static void set_target_address_at(Address pc, ConstantPoolArray *constant_pool, Address target, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED))
 
 INLINE (static Address target_address_at(Address pc, Code *code))
 
 INLINE (static void set_target_address_at(Address pc, Code *code, Address target, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED))
 
 INLINE (static Address target_address_from_return_address(Address pc))
 
 INLINE (static Address return_address_from_call_start(Address pc))
 
 INLINE (static Address break_address_from_return_address(Address pc))
 
void Align (int m)
 
void CodeTargetAlign ()
 
void b (int branch_offset, Condition cond=al)
 
void bl (int branch_offset, Condition cond=al)
 
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 eor (Register dst, Register src1, const Operand &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 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 uxtb (Register dst, const Operand &src, Condition cond=al)
 
void uxtab (Register dst, Register src1, const Operand &src2, Condition cond=al)
 
void uxtb16 (Register dst, const Operand &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 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 (const char *msg, Condition cond=al, int32_t code=kDefaultStopCode)
 
void bkpt (uint32_t imm16)
 
void svc (uint32_t imm24, Condition cond=al)
 
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 DwVfpRegister dst, double imm, const Register 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 VmovIndex index, const Register src, const Condition cond=al)
 
void vmov (const Register dst, const VmovIndex index, 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_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 vneg (const DwVfpRegister dst, const DwVfpRegister src, const Condition cond=al)
 
void vabs (const DwVfpRegister dst, const DwVfpRegister src, const Condition cond=al)
 
void vadd (const DwVfpRegister dst, const DwVfpRegister src1, const DwVfpRegister src2, const Condition cond=al)
 
void vsub (const DwVfpRegister dst, const DwVfpRegister src1, const DwVfpRegister src2, const Condition cond=al)
 
void vmul (const DwVfpRegister dst, const DwVfpRegister src1, const DwVfpRegister src2, const Condition cond=al)
 
void vmla (const DwVfpRegister dst, const DwVfpRegister src1, const DwVfpRegister src2, const Condition cond=al)
 
void vmls (const DwVfpRegister dst, const DwVfpRegister src1, const DwVfpRegister src2, const Condition cond=al)
 
void vdiv (const DwVfpRegister dst, const DwVfpRegister src1, const DwVfpRegister src2, const Condition cond=al)
 
void vcmp (const DwVfpRegister src1, const DwVfpRegister src2, const Condition cond=al)
 
void vcmp (const DwVfpRegister src1, const double src2, const Condition cond=al)
 
void vmrs (const Register dst, const Condition cond=al)
 
void vmsr (const Register dst, const Condition cond=al)
 
void vsqrt (const DwVfpRegister dst, const DwVfpRegister src, const Condition cond=al)
 
void vld1 (NeonSize size, const NeonListOperand &dst, const NeonMemOperand &src)
 
void vst1 (NeonSize size, const NeonListOperand &src, const NeonMemOperand &dst)
 
void vmovl (NeonDataType dt, QwNeonRegister dst, DwVfpRegister src)
 
void nop (int type=0)
 
void push (Register src, Condition cond=al)
 
void pop (Register dst, Condition cond=al)
 
void pop ()
 
void jmp (Label *L)
 
int SizeOfCodeGeneratedSince (Label *label)
 
int InstructionsGeneratedSince (Label *label)
 
bool ImmediateFitsAddrMode2Instruction (int32_t imm32)
 
void RecordJSReturn ()
 
void RecordDebugBreakSlot ()
 
void SetRecordedAstId (TypeFeedbackId ast_id)
 
TypeFeedbackId RecordedAstId ()
 
void ClearRecordedAstId ()
 
void RecordComment (const char *msg)
 
void RecordConstPool (int size)
 
void db (uint8_t data)
 
void dd (uint32_t data)
 
void emit_code_stub_address (Code *stub)
 
PositionsRecorderpositions_recorder ()
 
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)
 
Handle< ConstantPoolArrayNewConstantPool (Isolate *isolate)
 
void PopulateConstantPool (ConstantPoolArray *constant_pool)
 
bool is_constant_pool_available () const
 
bool use_extended_constant_pool () const
 
 Assembler (Isolate *arg_isolate, void *buffer, int buffer_size)
 
virtual ~Assembler ()
 
virtual void AbortedCodeGeneration ()
 
void Reset ()
 
void GetCode (CodeDesc *desc)
 
void Align (int m)
 
void Unreachable ()
 
void bind (Label *label)
 
void RecordRelocInfo (RelocInfo::Mode rmode, intptr_t data=0)
 
uint64_t SizeOfGeneratedCode () const
 
uint64_t SizeOfCodeGeneratedSince (const Label *label)
 
void AssertSizeOfCodeGeneratedSince (const Label *label, ptrdiff_t size)
 
int InstructionsGeneratedSince (const Label *label)
 
void StartBlockConstPool ()
 
void EndBlockConstPool ()
 
bool is_const_pool_blocked () const
 
void EmitPoolGuard ()
 
void StartBlockVeneerPool ()
 
void EndBlockVeneerPool ()
 
bool is_veneer_pool_blocked () const
 
void StartBlockPools ()
 
void EndBlockPools ()
 
PositionsRecorderpositions_recorder ()
 
void RecordComment (const char *msg)
 
int buffer_space () const
 
void RecordJSReturn ()
 
void RecordDebugBreakSlot ()
 
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 orr (const Register &rd, const Register &rn, const Operand &operand)
 
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, unsigned immr, unsigned imms)
 
void sbfm (const Register &rd, const Register &rn, unsigned immr, unsigned imms)
 
void ubfm (const Register &rd, const Register &rn, unsigned immr, unsigned imms)
 
void bfi (const Register &rd, const Register &rn, unsigned lsb, unsigned width)
 
void bfxil (const Register &rd, const Register &rn, unsigned lsb, unsigned width)
 
void asr (const Register &rd, const Register &rn, unsigned shift)
 
void sbfiz (const Register &rd, const Register &rn, unsigned lsb, unsigned width)
 
void sbfx (const Register &rd, const Register &rn, unsigned lsb, unsigned 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, unsigned shift)
 
void lsr (const Register &rd, const Register &rn, unsigned shift)
 
void ubfiz (const Register &rd, const Register &rn, unsigned lsb, unsigned width)
 
void ubfx (const Register &rd, const Register &rn, unsigned lsb, unsigned 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, unsigned 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 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 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 ldnp (const CPURegister &rt, const CPURegister &rt2, const MemOperand &src)
 
void stnp (const CPURegister &rt, const CPURegister &rt2, const MemOperand &dst)
 
void ldr_pcrel (const CPURegister &rt, int imm19)
 
void ldr (const CPURegister &rt, const Immediate &imm)
 
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 nop ()
 
void nop (NopMarkerTypes n)
 
void fmov (FPRegister fd, double imm)
 
void fmov (FPRegister fd, float imm)
 
void fmov (Register rd, FPRegister fn)
 
void fmov (FPRegister fd, Register rn)
 
void fmov (FPRegister fd, FPRegister fn)
 
void fadd (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)
 
void fsub (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)
 
void fmul (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)
 
void fmadd (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm, const FPRegister &fa)
 
void fmsub (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm, const FPRegister &fa)
 
void fnmadd (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm, const FPRegister &fa)
 
void fnmsub (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm, const FPRegister &fa)
 
void fdiv (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)
 
void fmax (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)
 
void fmin (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)
 
void fmaxnm (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)
 
void fminnm (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)
 
void fabs (const FPRegister &fd, const FPRegister &fn)
 
void fneg (const FPRegister &fd, const FPRegister &fn)
 
void fsqrt (const FPRegister &fd, const FPRegister &fn)
 
void frinta (const FPRegister &fd, const FPRegister &fn)
 
void frintm (const FPRegister &fd, const FPRegister &fn)
 
void frintn (const FPRegister &fd, const FPRegister &fn)
 
void frintz (const FPRegister &fd, const FPRegister &fn)
 
void fcmp (const FPRegister &fn, const FPRegister &fm)
 
void fcmp (const FPRegister &fn, double value)
 
void fccmp (const FPRegister &fn, const FPRegister &fm, StatusFlags nzcv, Condition cond)
 
void fcsel (const FPRegister &fd, const FPRegister &fn, const FPRegister &fm, Condition cond)
 
void FPConvertToInt (const Register &rd, const FPRegister &fn, FPIntegerConvertOp op)
 
void fcvt (const FPRegister &fd, const FPRegister &fn)
 
void fcvtau (const Register &rd, const FPRegister &fn)
 
void fcvtas (const Register &rd, const FPRegister &fn)
 
void fcvtmu (const Register &rd, const FPRegister &fn)
 
void fcvtms (const Register &rd, const FPRegister &fn)
 
void fcvtnu (const Register &rd, const FPRegister &fn)
 
void fcvtns (const Register &rd, const FPRegister &fn)
 
void fcvtzu (const Register &rd, const FPRegister &fn)
 
void fcvtzs (const Register &rd, const FPRegister &fn)
 
void scvtf (const FPRegister &fd, const Register &rn, unsigned fbits=0)
 
void ucvtf (const FPRegister &fd, const Register &rn, unsigned fbits=0)
 
void dci (Instr raw_inst)
 
void dc8 (uint8_t data)
 
void dc32 (uint32_t data)
 
void dc64 (uint64_t data)
 
void EmitStringData (const char *string)
 
void debug (const char *message, uint32_t code, Instr params=BREAK)
 
void dd (uint32_t data)
 
void db (uint8_t data)
 
bool IsConstPoolEmpty () const
 
Instructionpc () const
 
InstructionInstructionAt (int offset) const
 
ptrdiff_t InstructionOffset (Instruction *instr) const
 
void CheckConstPool (bool force_emit, bool require_jump)
 
Handle< ConstantPoolArrayNewConstantPool (Isolate *isolate)
 
void PopulateConstantPool (ConstantPoolArray *constant_pool)
 
bool ShouldEmitVeneer (int max_reachable_pc, int margin=kVeneerDistanceMargin)
 
bool ShouldEmitVeneers (int margin=kVeneerDistanceMargin)
 
void RecordVeneerPool (int location_offset, int size)
 
void EmitVeneers (bool force_emit, bool need_protection, int margin=kVeneerDistanceMargin)
 
void EmitVeneersGuard ()
 
void CheckVeneerPool (bool force_emit, bool require_jump, int margin=kVeneerDistanceMargin)
 
 Assembler (Isolate *isolate, void *buffer, int buffer_size)
 
virtual ~Assembler ()
 
void GetCode (CodeDesc *desc)
 
void Align (int m)
 
void Nop (int bytes=1)
 
void CodeTargetAlign ()
 
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 (const Operand &src)
 
void pop (Register dst)
 
void pop (const Operand &dst)
 
void enter (const Immediate &size)
 
void leave ()
 
void mov_b (Register dst, Register src)
 
void mov_b (Register dst, const Operand &src)
 
void mov_b (Register dst, int8_t imm8)
 
void mov_b (const Operand &dst, int8_t imm8)
 
void mov_b (const Operand &dst, Register src)
 
void mov_w (Register dst, const Operand &src)
 
void mov_w (const Operand &dst, Register src)
 
void mov_w (const Operand &dst, int16_t imm16)
 
void mov (Register dst, int32_t imm32)
 
void mov (Register dst, const Immediate &x)
 
void mov (Register dst, Handle< Object > handle)
 
void mov (Register dst, const Operand &src)
 
void mov (Register dst, Register src)
 
void mov (const Operand &dst, const Immediate &x)
 
void mov (const Operand &dst, Handle< Object > handle)
 
void mov (const Operand &dst, Register src)
 
void movsx_b (Register dst, Register src)
 
void movsx_b (Register dst, const Operand &src)
 
void movsx_w (Register dst, Register src)
 
void movsx_w (Register dst, const Operand &src)
 
void movzx_b (Register dst, Register src)
 
void movzx_b (Register dst, const Operand &src)
 
void movzx_w (Register dst, Register src)
 
void movzx_w (Register dst, const Operand &src)
 
void cmov (Condition cc, Register dst, Register src)
 
void cmov (Condition cc, Register dst, const Operand &src)
 
void cld ()
 
void rep_movs ()
 
void rep_stos ()
 
void stos ()
 
void xchg (Register dst, Register src)
 
void xchg (Register dst, const Operand &src)
 
void adc (Register dst, int32_t imm32)
 
void adc (Register dst, const Operand &src)
 
void add (Register dst, Register src)
 
void add (Register dst, const Operand &src)
 
void add (const Operand &dst, Register src)
 
void add (Register dst, const Immediate &imm)
 
void add (const 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, const Operand &src)
 
void and_ (const Operand &dst, Register src)
 
void and_ (const Operand &dst, const Immediate &x)
 
void cmpb (Register reg, int8_t imm8)
 
void cmpb (const Operand &op, int8_t imm8)
 
void cmpb (Register reg, const Operand &op)
 
void cmpb (const Operand &op, Register reg)
 
void cmpb_al (const Operand &op)
 
void cmpw_ax (const Operand &op)
 
void cmpw (const Operand &op, Immediate imm16)
 
void cmp (Register reg, int32_t imm32)
 
void cmp (Register reg, Handle< Object > handle)
 
void cmp (Register reg0, Register reg1)
 
void cmp (Register reg, const Operand &op)
 
void cmp (Register reg, const Immediate &imm)
 
void cmp (const Operand &op, const Immediate &imm)
 
void cmp (const Operand &op, Handle< Object > handle)
 
void dec_b (Register dst)
 
void dec_b (const Operand &dst)
 
void dec (Register dst)
 
void dec (const Operand &dst)
 
void cdq ()
 
void idiv (Register src)
 
void idiv (const Operand &src)
 
void div (Register src)
 
void div (const Operand &src)
 
void imul (Register src)
 
void imul (Register dst, Register src)
 
void imul (Register dst, const Operand &src)
 
void imul (Register dst, Register src, int32_t imm32)
 
void imul (Register dst, const Operand &src, int32_t imm32)
 
void inc (Register dst)
 
void inc (const Operand &dst)
 
void lea (Register dst, const Operand &src)
 
void mul (Register src)
 
void neg (Register dst)
 
void neg (const Operand &dst)
 
void not_ (Register dst)
 
void not_ (const Operand &dst)
 
void or_ (Register dst, int32_t imm32)
 
void or_ (Register dst, Register src)
 
void or_ (Register dst, const Operand &src)
 
void or_ (const Operand &dst, Register src)
 
void or_ (Register dst, const Immediate &imm)
 
void or_ (const Operand &dst, const Immediate &x)
 
void rcl (Register dst, uint8_t imm8)
 
void rcr (Register dst, uint8_t imm8)
 
void ror (Register dst, uint8_t imm8)
 
void ror_cl (Register dst)
 
void sar (Register dst, uint8_t imm8)
 
void sar (const Operand &dst, uint8_t imm8)
 
void sar_cl (Register dst)
 
void sar_cl (const Operand &dst)
 
void sbb (Register dst, const Operand &src)
 
void shld (Register dst, Register src)
 
void shld (Register dst, const Operand &src)
 
void shl (Register dst, uint8_t imm8)
 
void shl (const Operand &dst, uint8_t imm8)
 
void shl_cl (Register dst)
 
void shl_cl (const Operand &dst)
 
void shrd (Register dst, Register src)
 
void shrd (Register dst, const Operand &src)
 
void shr (Register dst, uint8_t imm8)
 
void shr (const Operand &dst, uint8_t imm8)
 
void shr_cl (Register dst)
 
void shr_cl (const Operand &dst)
 
void sub (Register dst, const Immediate &imm)
 
void sub (const Operand &dst, const Immediate &x)
 
void sub (Register dst, Register src)
 
void sub (Register dst, const Operand &src)
 
void sub (const Operand &dst, Register src)
 
void test (Register reg, const Immediate &imm)
 
void test (Register reg0, Register reg1)
 
void test (Register reg, const Operand &op)
 
void test_b (Register reg, const Operand &op)
 
void test (const Operand &op, const Immediate &imm)
 
void test_b (Register reg, uint8_t imm8)
 
void test_b (const Operand &op, uint8_t imm8)
 
void xor_ (Register dst, int32_t imm32)
 
void xor_ (Register dst, Register src)
 
void xor_ (Register dst, const Operand &src)
 
void xor_ (const Operand &dst, Register src)
 
void xor_ (Register dst, const Immediate &imm)
 
void xor_ (const Operand &dst, const Immediate &x)
 
void bt (const Operand &dst, Register src)
 
void bts (Register dst, Register src)
 
void bts (const Operand &dst, Register src)
 
void bsr (Register dst, Register src)
 
void bsr (Register dst, const Operand &src)
 
void hlt ()
 
void int3 ()
 
void nop ()
 
void ret (int imm16)
 
void bind (Label *L)
 
void call (Label *L)
 
void call (byte *entry, RelocInfo::Mode rmode)
 
int CallSize (const Operand &adr)
 
void call (Register reg)
 
void call (const Operand &adr)
 
int CallSize (Handle< Code > code, RelocInfo::Mode mode)
 
void call (Handle< Code > code, RelocInfo::Mode rmode, TypeFeedbackId id=TypeFeedbackId::None())
 
void jmp (Label *L, Label::Distance distance=Label::kFar)
 
void jmp (byte *entry, RelocInfo::Mode rmode)
 
void jmp (Register reg)
 
void jmp (const Operand &adr)
 
void jmp (Handle< Code > code, RelocInfo::Mode rmode)
 
void j (Condition cc, Label *L, Label::Distance distance=Label::kFar)
 
void j (Condition cc, byte *entry, RelocInfo::Mode rmode)
 
void j (Condition cc, Handle< Code > code)
 
void fld (int i)
 
void fstp (int i)
 
void fld1 ()
 
void fldz ()
 
void fldpi ()
 
void fldln2 ()
 
void fld_s (const Operand &adr)
 
void fld_d (const Operand &adr)
 
void fstp_s (const Operand &adr)
 
void fst_s (const Operand &adr)
 
void fstp_d (const Operand &adr)
 
void fst_d (const Operand &adr)
 
void fild_s (const Operand &adr)
 
void fild_d (const Operand &adr)
 
void fist_s (const Operand &adr)
 
void fistp_s (const Operand &adr)
 
void fistp_d (const Operand &adr)
 
void fisttp_s (const Operand &adr)
 
void fisttp_d (const 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 (const 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 movaps (XMMRegister dst, XMMRegister src)
 
void shufps (XMMRegister dst, XMMRegister src, byte imm8)
 
void andps (XMMRegister dst, const Operand &src)
 
void andps (XMMRegister dst, XMMRegister src)
 
void xorps (XMMRegister dst, const Operand &src)
 
void xorps (XMMRegister dst, XMMRegister src)
 
void orps (XMMRegister dst, const Operand &src)
 
void orps (XMMRegister dst, XMMRegister src)
 
void addps (XMMRegister dst, const Operand &src)
 
void addps (XMMRegister dst, XMMRegister src)
 
void subps (XMMRegister dst, const Operand &src)
 
void subps (XMMRegister dst, XMMRegister src)
 
void mulps (XMMRegister dst, const Operand &src)
 
void mulps (XMMRegister dst, XMMRegister src)
 
void divps (XMMRegister dst, const Operand &src)
 
void divps (XMMRegister dst, XMMRegister src)
 
void cvttss2si (Register dst, const Operand &src)
 
void cvttss2si (Register dst, XMMRegister src)
 
void cvttsd2si (Register dst, const Operand &src)
 
void cvttsd2si (Register dst, XMMRegister src)
 
void cvtsd2si (Register dst, XMMRegister src)
 
void cvtsi2sd (XMMRegister dst, Register src)
 
void cvtsi2sd (XMMRegister dst, const Operand &src)
 
void cvtss2sd (XMMRegister dst, XMMRegister src)
 
void cvtsd2ss (XMMRegister dst, XMMRegister src)
 
void addsd (XMMRegister dst, XMMRegister src)
 
void addsd (XMMRegister dst, const Operand &src)
 
void subsd (XMMRegister dst, XMMRegister src)
 
void subsd (XMMRegister dst, const Operand &src)
 
void mulsd (XMMRegister dst, XMMRegister src)
 
void mulsd (XMMRegister dst, const Operand &src)
 
void divsd (XMMRegister dst, XMMRegister src)
 
void xorpd (XMMRegister dst, XMMRegister src)
 
void sqrtsd (XMMRegister dst, XMMRegister src)
 
void sqrtsd (XMMRegister dst, const Operand &src)
 
void andpd (XMMRegister dst, XMMRegister src)
 
void orpd (XMMRegister dst, XMMRegister src)
 
void ucomisd (XMMRegister dst, XMMRegister src)
 
void ucomisd (XMMRegister dst, const Operand &src)
 
void roundsd (XMMRegister dst, XMMRegister src, RoundingMode mode)
 
void movmskpd (Register dst, XMMRegister src)
 
void movmskps (Register dst, XMMRegister src)
 
void cmpltsd (XMMRegister dst, XMMRegister src)
 
void pcmpeqd (XMMRegister dst, XMMRegister src)
 
void movdqa (XMMRegister dst, const Operand &src)
 
void movdqa (const Operand &dst, XMMRegister src)
 
void movdqu (XMMRegister dst, const Operand &src)
 
void movdqu (const Operand &dst, XMMRegister src)
 
void movdq (bool aligned, XMMRegister dst, const Operand &src)
 
void movd (XMMRegister dst, Register src)
 
void movd (XMMRegister dst, const Operand &src)
 
void movd (Register dst, XMMRegister src)
 
void movd (const Operand &dst, XMMRegister src)
 
void movsd (XMMRegister dst, XMMRegister src)
 
void movsd (XMMRegister dst, const Operand &src)
 
void movsd (const Operand &dst, XMMRegister src)
 
void movss (XMMRegister dst, const Operand &src)
 
void movss (const Operand &dst, XMMRegister src)
 
void movss (XMMRegister dst, XMMRegister src)
 
void extractps (Register dst, XMMRegister src, byte imm8)
 
void pand (XMMRegister dst, XMMRegister src)
 
void pxor (XMMRegister dst, XMMRegister src)
 
void por (XMMRegister dst, XMMRegister src)
 
void ptest (XMMRegister dst, XMMRegister src)
 
void psllq (XMMRegister reg, int8_t shift)
 
void psllq (XMMRegister dst, XMMRegister src)
 
void psrlq (XMMRegister reg, int8_t shift)
 
void psrlq (XMMRegister dst, XMMRegister src)
 
void pshufd (XMMRegister dst, XMMRegister src, uint8_t shuffle)
 
void pextrd (Register dst, XMMRegister src, int8_t offset)
 
void pextrd (const Operand &dst, XMMRegister src, int8_t offset)
 
void pinsrd (XMMRegister dst, Register src, int8_t offset)
 
void pinsrd (XMMRegister dst, const Operand &src, int8_t offset)
 
void movntdqa (XMMRegister dst, const Operand &src)
 
void movntdq (const Operand &dst, XMMRegister src)
 
void prefetch (const Operand &src, int level)
 
int SizeOfCodeGeneratedSince (Label *label)
 
void RecordJSReturn ()
 
void RecordDebugBreakSlot ()
 
void RecordComment (const char *msg, bool force=false)
 
void db (uint8_t data)
 
void dd (uint32_t data)
 
bool buffer_overflow () const
 
int available_space () const
 
PositionsRecorderpositions_recorder ()
 
int relocation_writer_size ()
 
byte byte_at (int pos)
 
void set_byte_at (int pos, byte value)
 
Handle< ConstantPoolArrayNewConstantPool (Isolate *isolate)
 
void PopulateConstantPool (ConstantPoolArray *constant_pool)
 
 Assembler (Isolate *isolate, void *buffer, int buffer_size)
 
virtual ~Assembler ()
 
void GetCode (CodeDesc *desc)
 
void bind (Label *L)
 
bool is_near (Label *L)
 
int32_t branch_offset (Label *L, bool jump_elimination_allowed)
 
int32_t branch_offset_compact (Label *L, bool jump_elimination_allowed)
 
int32_t branch_offset21 (Label *L, bool jump_elimination_allowed)
 
int32_t branch_offset21_compact (Label *L, bool jump_elimination_allowed)
 
int32_t shifted_branch_offset (Label *L, bool jump_elimination_allowed)
 
int32_t shifted_branch_offset_compact (Label *L, bool jump_elimination_allowed)
 
uint32_t jump_address (Label *L)
 
void label_at_put (Label *L, int at_offset)
 
 INLINE (static Address target_address_at(Address pc, ConstantPoolArray *constant_pool))
 
 INLINE (static void set_target_address_at(Address pc, ConstantPoolArray *constant_pool, Address target, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED))
 
 INLINE (static Address target_address_at(Address pc, Code *code))
 
 INLINE (static void set_target_address_at(Address pc, Code *code, Address target, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED))
 
void Align (int m)
 
void CodeTargetAlign ()
 
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 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 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 j (int32_t target)
 
void jal (int32_t target)
 
void jalr (Register rs, Register rd=ra)
 
void jr (Register target)
 
void j_or_jr (int32_t target, Register rs)
 
void jal_or_jalr (int32_t target, Register rs)
 
void addu (Register rd, Register rs, Register rt)
 
void subu (Register rd, Register rs, Register rt)
 
void mult (Register rs, Register rt)
 
void multu (Register rs, Register rt)
 
void div (Register rs, Register rt)
 
void divu (Register rs, Register rt)
 
void div (Register rd, Register rs, Register rt)
 
void divu (Register rd, Register rs, Register rt)
 
void mod (Register rd, Register rs, Register rt)
 
void modu (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 addiu (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 rs, Register rt, 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 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 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 pref (int32_t hint, const MemOperand &rs)
 
void break_ (uint32_t code, bool break_as_stop=false)
 
void stop (const char *msg, 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 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 ft, FPURegister fs, uint8_t sel)
 
void seleqz (Register rs, Register rt, Register rd)
 
void seleqz (SecondaryField fmt, FPURegister fd, FPURegister ft, FPURegister fs)
 
void selnez (Register rs, Register rt, Register rd)
 
void selnez (SecondaryField fmt, FPURegister fd, FPURegister ft, FPURegister fs)
 
void clz (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 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 mfc1 (Register rt, FPURegister fs)
 
void mfhc1 (Register rt, FPURegister fs)
 
void ctc1 (Register rt, FPUControlRegister fs)
 
void cfc1 (Register rt, FPUControlRegister fs)
 
void add_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void sub_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void mul_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void madd_d (FPURegister fd, FPURegister fr, FPURegister fs, FPURegister ft)
 
void div_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void abs_d (FPURegister fd, FPURegister fs)
 
void mov_d (FPURegister fd, FPURegister fs)
 
void neg_d (FPURegister fd, FPURegister fs)
 
void sqrt_d (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 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 min (SecondaryField fmt, FPURegister fd, FPURegister ft, FPURegister fs)
 
void mina (SecondaryField fmt, FPURegister fd, FPURegister ft, FPURegister fs)
 
void max (SecondaryField fmt, FPURegister fd, FPURegister ft, FPURegister fs)
 
void maxa (SecondaryField fmt, FPURegister fd, FPURegister ft, FPURegister fs)
 
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 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 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)
 
int SizeOfCodeGeneratedSince (Label *label)
 
int InstructionsGeneratedSince (Label *label)
 
void RecordJSReturn ()
 
void RecordDebugBreakSlot ()
 
void SetRecordedAstId (TypeFeedbackId ast_id)
 
TypeFeedbackId RecordedAstId ()
 
void ClearRecordedAstId ()
 
void RecordComment (const char *msg)
 
void db (uint8_t data)
 
void dd (uint32_t data)
 
void emit_code_stub_address (Code *stub)
 
PositionsRecorderpositions_recorder ()
 
void BlockTrampolinePoolFor (int instructions)
 
bool overflow () const
 
int available_space () const
 
Instr instr_at (int pos)
 
void instr_at_put (int pos, Instr instr)
 
void CheckTrampolinePool ()
 
Handle< ConstantPoolArrayNewConstantPool (Isolate *isolate)
 
void PopulateConstantPool (ConstantPoolArray *constant_pool)
 
 Assembler (Isolate *isolate, void *buffer, int buffer_size)
 
virtual ~Assembler ()
 
void GetCode (CodeDesc *desc)
 
void bind (Label *L)
 
bool is_near (Label *L)
 
int32_t branch_offset (Label *L, bool jump_elimination_allowed)
 
int32_t branch_offset_compact (Label *L, bool jump_elimination_allowed)
 
int32_t branch_offset21 (Label *L, bool jump_elimination_allowed)
 
int32_t branch_offset21_compact (Label *L, bool jump_elimination_allowed)
 
int32_t shifted_branch_offset (Label *L, bool jump_elimination_allowed)
 
int32_t shifted_branch_offset_compact (Label *L, bool jump_elimination_allowed)
 
uint64_t jump_address (Label *L)
 
void label_at_put (Label *L, int at_offset)
 
 INLINE (static Address target_address_at(Address pc, ConstantPoolArray *constant_pool))
 
 INLINE (static void set_target_address_at(Address pc, ConstantPoolArray *constant_pool, Address target, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED))
 
 INLINE (static Address target_address_at(Address pc, Code *code))
 
 INLINE (static void set_target_address_at(Address pc, Code *code, Address target, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED))
 
void Align (int m)
 
void CodeTargetAlign ()
 
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 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 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 j (int64_t target)
 
void jal (int64_t target)
 
void jalr (Register rs, Register rd=ra)
 
void jr (Register target)
 
void j_or_jr (int64_t target, Register rs)
 
void jal_or_jalr (int64_t target, Register rs)
 
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 rs, Register rt, int32_t j)
 
void daui (Register rs, Register rt, 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 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 pref (int32_t hint, const MemOperand &rs)
 
void break_ (uint32_t code, bool break_as_stop=false)
 
void stop (const char *msg, 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 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 ft, FPURegister fs, uint8_t sel)
 
void seleqz (Register rs, Register rt, Register rd)
 
void seleqz (SecondaryField fmt, FPURegister fd, FPURegister ft, FPURegister fs)
 
void selnez (Register rs, Register rt, Register rd)
 
void selnez (SecondaryField fmt, FPURegister fd, FPURegister ft, FPURegister fs)
 
void clz (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 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_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void sub_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void mul_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void madd_d (FPURegister fd, FPURegister fr, FPURegister fs, FPURegister ft)
 
void div_d (FPURegister fd, FPURegister fs, FPURegister ft)
 
void abs_d (FPURegister fd, FPURegister fs)
 
void mov_d (FPURegister fd, FPURegister fs)
 
void neg_d (FPURegister fd, FPURegister fs)
 
void sqrt_d (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 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 min (SecondaryField fmt, FPURegister fd, FPURegister ft, FPURegister fs)
 
void mina (SecondaryField fmt, FPURegister fd, FPURegister ft, FPURegister fs)
 
void max (SecondaryField fmt, FPURegister fd, FPURegister ft, FPURegister fs)
 
void maxa (SecondaryField fmt, FPURegister fd, FPURegister ft, FPURegister fs)
 
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 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 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)
 
int SizeOfCodeGeneratedSince (Label *label)
 
int InstructionsGeneratedSince (Label *label)
 
void RecordJSReturn ()
 
void RecordDebugBreakSlot ()
 
void SetRecordedAstId (TypeFeedbackId ast_id)
 
TypeFeedbackId RecordedAstId ()
 
void ClearRecordedAstId ()
 
void RecordComment (const char *msg)
 
void db (uint8_t data)
 
void dd (uint32_t data)
 
void emit_code_stub_address (Code *stub)
 
PositionsRecorderpositions_recorder ()
 
void BlockTrampolinePoolFor (int instructions)
 
bool overflow () const
 
int available_space () const
 
Instr instr_at (int pos)
 
void instr_at_put (int pos, Instr instr)
 
void CheckTrampolinePool ()
 
Handle< ConstantPoolArrayNewConstantPool (Isolate *isolate)
 
void PopulateConstantPool (ConstantPoolArray *constant_pool)
 
 Assembler (Isolate *isolate, void *buffer, int buffer_size)
 
virtual ~Assembler ()
 
void GetCode (CodeDesc *desc)
 
Handle< Objectcode_target_object_handle_at (Address pc)
 
Address runtime_entry_at (Address pc)
 
 STATIC_ASSERT (kPointerSize==kInt64Size||kPointerSize==kInt32Size)
 
void Align (int m)
 
void Nop (int bytes=1)
 
void CodeTargetAlign ()
 
void pushfq ()
 
void popfq ()
 
void pushq (Immediate value)
 
void pushq_imm32 (int32_t imm32)
 
void pushq (Register src)
 
void pushq (const Operand &src)
 
void popq (Register dst)
 
void popq (const Operand &dst)
 
void enter (Immediate size)
 
void leave ()
 
void movb (Register dst, const Operand &src)
 
void movb (Register dst, Immediate imm)
 
void movb (const Operand &dst, Register src)
 
void movb (const Operand &dst, Immediate imm)
 
void movw (Register dst, const Operand &src)
 
void movw (const Operand &dst, Register src)
 
void movw (const Operand &dst, Immediate imm)
 
void movl (const Operand &dst, Label *src)
 
void movp (Register dst, void *ptr, RelocInfo::Mode rmode)
 
void movq (Register dst, int64_t value)
 
void movq (Register dst, uint64_t value)
 
void movsxbl (Register dst, const Operand &src)
 
void movsxbq (Register dst, const Operand &src)
 
void movsxwl (Register dst, const Operand &src)
 
void movsxwq (Register dst, const Operand &src)
 
void movsxlq (Register dst, Register src)
 
void movsxlq (Register dst, const Operand &src)
 
void repmovsb ()
 
void repmovsw ()
 
void repmovsp ()
 
void repmovsl ()
 
void repmovsq ()
 
void load_rax (void *ptr, RelocInfo::Mode rmode)
 
void load_rax (ExternalReference ext)
 
void cmovq (Condition cc, Register dst, Register src)
 
void cmovq (Condition cc, Register dst, const Operand &src)
 
void cmovl (Condition cc, Register dst, Register src)
 
void cmovl (Condition cc, Register dst, const Operand &src)
 
void cmpb (Register dst, Immediate src)
 
void cmpb_al (Immediate src)
 
void cmpb (Register dst, Register src)
 
void cmpb (Register dst, const Operand &src)
 
void cmpb (const Operand &dst, Register src)
 
void cmpb (const Operand &dst, Immediate src)
 
void cmpw (const Operand &dst, Immediate src)
 
void cmpw (Register dst, Immediate src)
 
void cmpw (Register dst, const Operand &src)
 
void cmpw (Register dst, Register src)
 
void cmpw (const Operand &dst, Register src)
 
void andb (Register dst, Immediate src)
 
void decb (Register dst)
 
void decb (const Operand &dst)
 
void cqo ()
 
void cdq ()
 
void mul (Register src)
 
void shld (Register dst, Register src)
 
void shrd (Register dst, Register src)
 
void store_rax (void *dst, RelocInfo::Mode mode)
 
void store_rax (ExternalReference ref)
 
void subb (Register dst, Immediate src)
 
void testb (Register dst, Register src)
 
void testb (Register reg, Immediate mask)
 
void testb (const Operand &op, Immediate mask)
 
void testb (const Operand &op, Register reg)
 
void bt (const Operand &dst, Register src)
 
void bts (const Operand &dst, Register src)
 
void bsrl (Register dst, Register src)
 
void clc ()
 
void cld ()
 
void cpuid ()
 
void hlt ()
 
void int3 ()
 
void nop ()
 
void ret (int imm16)
 
void setcc (Condition cc, Register reg)
 
void bind (Label *L)
 
void call (Label *L)
 
void call (Address entry, RelocInfo::Mode rmode)
 
void call (Handle< Code > target, RelocInfo::Mode rmode=RelocInfo::CODE_TARGET, TypeFeedbackId ast_id=TypeFeedbackId::None())
 
void call (Address target)
 
void call (Register adr)
 
void jmp (Label *L, Label::Distance distance=Label::kFar)
 
void jmp (Address entry, RelocInfo::Mode rmode)
 
void jmp (Handle< Code > target, RelocInfo::Mode rmode)
 
void jmp (Register adr)
 
void 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 (const Operand &adr)
 
void fld_d (const Operand &adr)
 
void fstp_s (const Operand &adr)
 
void fstp_d (const Operand &adr)
 
void fstp (int index)
 
void fild_s (const Operand &adr)
 
void fild_d (const Operand &adr)
 
void fist_s (const Operand &adr)
 
void fistp_s (const Operand &adr)
 
void fistp_d (const Operand &adr)
 
void fisttp_s (const Operand &adr)
 
void fisttp_d (const 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 (const 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 movaps (XMMRegister dst, XMMRegister src)
 
void movss (XMMRegister dst, const Operand &src)
 
void movss (const Operand &dst, XMMRegister src)
 
void shufps (XMMRegister dst, XMMRegister src, byte imm8)
 
void cvttss2si (Register dst, const Operand &src)
 
void cvttss2si (Register dst, XMMRegister src)
 
void cvtlsi2ss (XMMRegister dst, Register src)
 
void andps (XMMRegister dst, XMMRegister src)
 
void andps (XMMRegister dst, const Operand &src)
 
void orps (XMMRegister dst, XMMRegister src)
 
void orps (XMMRegister dst, const Operand &src)
 
void xorps (XMMRegister dst, XMMRegister src)
 
void xorps (XMMRegister dst, const Operand &src)
 
void addps (XMMRegister dst, XMMRegister src)
 
void addps (XMMRegister dst, const Operand &src)
 
void subps (XMMRegister dst, XMMRegister src)
 
void subps (XMMRegister dst, const Operand &src)
 
void mulps (XMMRegister dst, XMMRegister src)
 
void mulps (XMMRegister dst, const Operand &src)
 
void divps (XMMRegister dst, XMMRegister src)
 
void divps (XMMRegister dst, const Operand &src)
 
void movmskps (Register dst, XMMRegister src)
 
void movd (XMMRegister dst, Register src)
 
void movd (Register dst, XMMRegister src)
 
void movq (XMMRegister dst, Register src)
 
void movq (Register dst, XMMRegister src)
 
void movq (XMMRegister dst, XMMRegister src)
 
void movsd (XMMRegister dst, XMMRegister src)
 
void movsd (const Operand &dst, XMMRegister src)
 
void movsd (XMMRegister dst, const Operand &src)
 
void movdqa (const Operand &dst, XMMRegister src)
 
void movdqa (XMMRegister dst, const Operand &src)
 
void movdqu (const Operand &dst, XMMRegister src)
 
void movdqu (XMMRegister dst, const Operand &src)
 
void movapd (XMMRegister dst, XMMRegister src)
 
void psllq (XMMRegister reg, byte imm8)
 
void cvttsd2si (Register dst, const Operand &src)
 
void cvttsd2si (Register dst, XMMRegister src)
 
void cvttsd2siq (Register dst, XMMRegister src)
 
void cvttsd2siq (Register dst, const Operand &src)
 
void cvtlsi2sd (XMMRegister dst, const Operand &src)
 
void cvtlsi2sd (XMMRegister dst, Register src)
 
void cvtqsi2sd (XMMRegister dst, const Operand &src)
 
void cvtqsi2sd (XMMRegister dst, Register src)
 
void cvtss2sd (XMMRegister dst, XMMRegister src)
 
void cvtss2sd (XMMRegister dst, const Operand &src)
 
void cvtsd2ss (XMMRegister dst, XMMRegister src)
 
void cvtsd2si (Register dst, XMMRegister src)
 
void cvtsd2siq (Register dst, XMMRegister src)
 
void addsd (XMMRegister dst, XMMRegister src)
 
void addsd (XMMRegister dst, const Operand &src)
 
void subsd (XMMRegister dst, XMMRegister src)
 
void mulsd (XMMRegister dst, XMMRegister src)
 
void mulsd (XMMRegister dst, const Operand &src)
 
void divsd (XMMRegister dst, XMMRegister src)
 
void andpd (XMMRegister dst, XMMRegister src)
 
void orpd (XMMRegister dst, XMMRegister src)
 
void xorpd (XMMRegister dst, XMMRegister src)
 
void sqrtsd (XMMRegister dst, XMMRegister src)
 
void sqrtsd (XMMRegister dst, const Operand &src)
 
void ucomisd (XMMRegister dst, XMMRegister src)
 
void ucomisd (XMMRegister dst, const Operand &src)
 
void cmpltsd (XMMRegister dst, XMMRegister src)
 
void movmskpd (Register dst, XMMRegister src)
 
void extractps (Register dst, XMMRegister src, byte imm8)
 
void roundsd (XMMRegister dst, XMMRegister src, RoundingMode mode)
 
void Print ()
 
int SizeOfCodeGeneratedSince (Label *label)
 
void RecordJSReturn ()
 
void RecordDebugBreakSlot ()
 
void RecordComment (const char *msg, bool force=false)
 
Handle< ConstantPoolArrayNewConstantPool (Isolate *isolate)
 
void PopulateConstantPool (ConstantPoolArray *constant_pool)
 
void db (uint8_t data)
 
void dd (uint32_t data)
 
PositionsRecorderpositions_recorder ()
 
bool buffer_overflow () const
 
int available_space () const
 
byte byte_at (int pos)
 
void set_byte_at (int pos, byte value)
 
 Assembler (Isolate *isolate, void *buffer, int buffer_size)
 
virtual ~Assembler ()
 
void GetCode (CodeDesc *desc)
 
void Align (int m)
 
void Nop (int bytes=1)
 
void CodeTargetAlign ()
 
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 (const Operand &src)
 
void pop (Register dst)
 
void pop (const Operand &dst)
 
void enter (const Immediate &size)
 
void leave ()
 
void mov_b (Register dst, Register src)
 
void mov_b (Register dst, const Operand &src)
 
void mov_b (Register dst, int8_t imm8)
 
void mov_b (const Operand &dst, int8_t imm8)
 
void mov_b (const Operand &dst, Register src)
 
void mov_w (Register dst, const Operand &src)
 
void mov_w (const Operand &dst, Register src)
 
void mov_w (const Operand &dst, int16_t imm16)
 
void mov (Register dst, int32_t imm32)
 
void mov (Register dst, const Immediate &x)
 
void mov (Register dst, Handle< Object > handle)
 
void mov (Register dst, const Operand &src)
 
void mov (Register dst, Register src)
 
void mov (const Operand &dst, const Immediate &x)
 
void mov (const Operand &dst, Handle< Object > handle)
 
void mov (const Operand &dst, Register src)
 
void movsx_b (Register dst, Register src)
 
void movsx_b (Register dst, const Operand &src)
 
void movsx_w (Register dst, Register src)
 
void movsx_w (Register dst, const Operand &src)
 
void movzx_b (Register dst, Register src)
 
void movzx_b (Register dst, const Operand &src)
 
void movzx_w (Register dst, Register src)
 
void movzx_w (Register dst, const Operand &src)
 
void cld ()
 
void rep_movs ()
 
void rep_stos ()
 
void stos ()
 
void xchg (Register dst, Register src)
 
void xchg (Register dst, const Operand &src)
 
void adc (Register dst, int32_t imm32)
 
void adc (Register dst, const Operand &src)
 
void add (Register dst, Register src)
 
void add (Register dst, const Operand &src)
 
void add (const Operand &dst, Register src)
 
void add (Register dst, const Immediate &imm)
 
void add (const 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, const Operand &src)
 
void and_ (const Operand &dst, Register src)
 
void and_ (const Operand &dst, const Immediate &x)
 
void cmpb (Register reg, int8_t imm8)
 
void cmpb (const Operand &op, int8_t imm8)
 
void cmpb (Register reg, const Operand &op)
 
void cmpb (const Operand &op, Register reg)
 
void cmpb_al (const Operand &op)
 
void cmpw_ax (const Operand &op)
 
void cmpw (const Operand &op, Immediate imm16)
 
void cmp (Register reg, int32_t imm32)
 
void cmp (Register reg, Handle< Object > handle)
 
void cmp (Register reg0, Register reg1)
 
void cmp (Register reg, const Operand &op)
 
void cmp (Register reg, const Immediate &imm)
 
void cmp (const Operand &op, const Immediate &imm)
 
void cmp (const Operand &op, Handle< Object > handle)
 
void dec_b (Register dst)
 
void dec_b (const Operand &dst)
 
void dec (Register dst)
 
void dec (const Operand &dst)
 
void cdq ()
 
void idiv (Register src)
 
void idiv (const Operand &src)
 
void div (Register src)
 
void div (const Operand &src)
 
void imul (Register src)
 
void imul (Register dst, Register src)
 
void imul (Register dst, const Operand &src)
 
void imul (Register dst, Register src, int32_t imm32)
 
void imul (Register dst, const Operand &src, int32_t imm32)
 
void inc (Register dst)
 
void inc (const Operand &dst)
 
void lea (Register dst, const Operand &src)
 
void mul (Register src)
 
void neg (Register dst)
 
void neg (const Operand &dst)
 
void not_ (Register dst)
 
void not_ (const Operand &dst)
 
void or_ (Register dst, int32_t imm32)
 
void or_ (Register dst, Register src)
 
void or_ (Register dst, const Operand &src)
 
void or_ (const Operand &dst, Register src)
 
void or_ (Register dst, const Immediate &imm)
 
void or_ (const Operand &dst, const Immediate &x)
 
void rcl (Register dst, uint8_t imm8)
 
void rcr (Register dst, uint8_t imm8)
 
void ror (Register dst, uint8_t imm8)
 
void ror_cl (Register dst)
 
void sar (Register dst, uint8_t imm8)
 
void sar (const Operand &dst, uint8_t imm8)
 
void sar_cl (Register dst)
 
void sar_cl (const Operand &dst)
 
void sbb (Register dst, const Operand &src)
 
void shld (Register dst, Register src)
 
void shld (Register dst, const Operand &src)
 
void shl (Register dst, uint8_t imm8)
 
void shl (const Operand &dst, uint8_t imm8)
 
void shl_cl (Register dst)
 
void shl_cl (const Operand &dst)
 
void shrd (Register dst, Register src)
 
void shrd (Register dst, const Operand &src)
 
void shr (Register dst, uint8_t imm8)
 
void shr (const Operand &dst, uint8_t imm8)
 
void shr_cl (Register dst)
 
void shr_cl (const Operand &dst)
 
void sub (Register dst, const Immediate &imm)
 
void sub (const Operand &dst, const Immediate &x)
 
void sub (Register dst, Register src)
 
void sub (Register dst, const Operand &src)
 
void sub (const Operand &dst, Register src)
 
void test (Register reg, const Immediate &imm)
 
void test (Register reg0, Register reg1)
 
void test (Register reg, const Operand &op)
 
void test_b (Register reg, const Operand &op)
 
void test (const Operand &op, const Immediate &imm)
 
void test_b (Register reg, uint8_t imm8)
 
void test_b (const Operand &op, uint8_t imm8)
 
void xor_ (Register dst, int32_t imm32)
 
void xor_ (Register dst, Register src)
 
void xor_ (Register dst, const Operand &src)
 
void xor_ (const Operand &dst, Register src)
 
void xor_ (Register dst, const Immediate &imm)
 
void xor_ (const Operand &dst, const Immediate &x)
 
void bt (const Operand &dst, Register src)
 
void bts (Register dst, Register src)
 
void bts (const Operand &dst, Register src)
 
void bsr (Register dst, Register src)
 
void bsr (Register dst, const Operand &src)
 
void hlt ()
 
void int3 ()
 
void nop ()
 
void ret (int imm16)
 
void bind (Label *L)
 
void call (Label *L)
 
void call (byte *entry, RelocInfo::Mode rmode)
 
int CallSize (const Operand &adr)
 
void call (Register reg)
 
void call (const Operand &adr)
 
int CallSize (Handle< Code > code, RelocInfo::Mode mode)
 
void call (Handle< Code > code, RelocInfo::Mode rmode, TypeFeedbackId id=TypeFeedbackId::None())
 
void jmp (Label *L, Label::Distance distance=Label::kFar)
 
void jmp (byte *entry, RelocInfo::Mode rmode)
 
void jmp (Register reg)
 
void jmp (const Operand &adr)
 
void jmp (Handle< Code > code, RelocInfo::Mode rmode)
 
void j (Condition cc, Label *L, Label::Distance distance=Label::kFar)
 
void j (Condition cc, byte *entry, RelocInfo::Mode rmode)
 
void j (Condition cc, Handle< Code > code)
 
void fld (int i)
 
void fstp (int i)
 
void fld1 ()
 
void fldz ()
 
void fldpi ()
 
void fldln2 ()
 
void fld_s (const Operand &adr)
 
void fld_d (const Operand &adr)
 
void fstp_s (const Operand &adr)
 
void fst_s (const Operand &adr)
 
void fstp_d (const Operand &adr)
 
void fst_d (const Operand &adr)
 
void fild_s (const Operand &adr)
 
void fild_d (const Operand &adr)
 
void fist_s (const Operand &adr)
 
void fistp_s (const Operand &adr)
 
void fistp_d (const Operand &adr)
 
void fisttp_s (const Operand &adr)
 
void fisttp_d (const Operand &adr)
 
void fabs ()
 
void fchs ()
 
void fsqrt ()
 
void fcos ()
 
void fsin ()
 
void fptan ()
 
void fyl2x ()
 
void f2xm1 ()
 
void fscale ()
 
void fninit ()
 
void fadd (int i)
 
void fadd_i (int i)
 
void fadd_d (const Operand &adr)
 
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 (const 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 fxam ()
 
void fucomp (int i)
 
void fucompp ()
 
void fucomi (int i)
 
void fucomip ()
 
void fcompp ()
 
void fnstsw_ax ()
 
void fldcw (const Operand &adr)
 
void fnstcw (const Operand &adr)
 
void fwait ()
 
void fnclex ()
 
void fnsave (const Operand &adr)
 
void frstor (const Operand &adr)
 
void frndint ()
 
void sahf ()
 
void setcc (Condition cc, Register reg)
 
void cpuid ()
 
int SizeOfCodeGeneratedSince (Label *label)
 
void RecordJSReturn ()
 
void RecordDebugBreakSlot ()
 
void RecordComment (const char *msg, bool force=false)
 
void db (uint8_t data)
 
void dd (uint32_t data)
 
bool buffer_overflow () const
 
int available_space () const
 
PositionsRecorderpositions_recorder ()
 
int relocation_writer_size ()
 
byte byte_at (int pos)
 
void set_byte_at (int pos, byte value)
 
Handle< ConstantPoolArrayNewConstantPool (Isolate *isolate)
 
void PopulateConstantPool (ConstantPoolArray *constant_pool)
 
- Public Member Functions inherited from v8::internal::AssemblerBase
 AssemblerBase (Isolate *isolate, void *buffer, int buffer_size)
 
virtual ~AssemblerBase ()
 
Isolateisolate () const
 
int jit_cookie () const
 
bool emit_debug_code () const
 
void set_emit_debug_code (bool value)
 
bool serializer_enabled () const
 
void enable_serializer ()
 
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)
 
int pc_offset () const
 
- Public Member Functions inherited from v8::internal::Malloced
void * operator new (size_t size)
 
void operator delete (void *p)
 

Static Public Member Functions

static int CallSize (Register target, Condition cond=al)
 
static int CallSizeNotPredictableCodeSize (Isolate *isolate, Address target, RelocInfo::Mode rmode, Condition cond=al)
 
static int ActivationFrameAlignment ()
 
static bool IsMarkedCode (Instr instr, int type)
 
static int GetCodeMarker (Instr instr)
 
static bool IsImmMovn (uint64_t imm, unsigned reg_size)
 
static bool IsImmMovz (uint64_t imm, unsigned reg_size)
 
static unsigned CountClearHalfWords (uint64_t imm, unsigned reg_size)
 
static int SafepointRegisterStackIndex (int reg_code)
 
static int CallSize (Register target)
 
static int CallSize (Label *target)
 
static int CallSize (Address target, RelocInfo::Mode rmode)
 
static int CallSize (Handle< Code > code, RelocInfo::Mode rmode=RelocInfo::CODE_TARGET, TypeFeedbackId ast_id=TypeFeedbackId::None())
 
static CPURegList DefaultTmpList ()
 
static CPURegList DefaultFPTmpList ()
 
static void EmitFrameSetupForCodeAgePatching (Assembler *assm)
 
static void EmitCodeAgeSequence (Assembler *assm, Code *stub)
 
static bool IsYoungSequence (Isolate *isolate, byte *sequence)
 
static int SafepointRegisterStackIndex (Register reg)
 
static int CallSize (Register target, COND_ARGS)
 
static int CallSize (Address target, RelocInfo::Mode rmode, COND_ARGS)
 
static bool IsMarkedCode (Instr instr, int type)
 
static int GetCodeMarker (Instr instr)
 
static int ActivationFrameAlignment ()
 
static int CallSize (Register target, COND_ARGS)
 
static int CallSize (Address target, RelocInfo::Mode rmode, COND_ARGS)
 
static bool IsMarkedCode (Instr instr, int type)
 
static int GetCodeMarker (Instr instr)
 
static int ActivationFrameAlignment ()
 
static int SafepointRegisterStackIndex (Register reg)
 
static int SafepointRegisterStackIndex (Register reg)
 
- Static Public Member Functions inherited from v8::internal::Assembler
static void deserialization_set_special_target_at (Address constant_pool_entry, Code *code, Address target)
 
static bool ImmediateFitsAddrMode1Instruction (int32_t imm32)
 
static Instr instr_at (byte *pc)
 
static void instr_at_put (byte *pc, Instr instr)
 
static Condition GetCondition (Instr instr)
 
static bool IsBranch (Instr instr)
 
static int GetBranchOffset (Instr instr)
 
static bool IsLdrRegisterImmediate (Instr instr)
 
static bool IsVldrDRegisterImmediate (Instr instr)
 
static Instr GetConsantPoolLoadPattern ()
 
static Instr GetConsantPoolLoadMask ()
 
static bool IsLdrPpRegOffset (Instr instr)
 
static Instr GetLdrPpRegOffsetPattern ()
 
static bool IsLdrPpImmediateOffset (Instr instr)
 
static bool IsVldrDPpImmediateOffset (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 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, ConstantPoolArray *constant_pool)
 
static void set_target_address_at (Address pc, ConstantPoolArray *constant_pool, Address target, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static Address target_address_at (Address pc, Code *code)
 
static void set_target_address_at (Address pc, Code *code, Address target, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static Address target_address_from_return_address (Address pc)
 
static Address return_address_from_call_start (Address pc)
 
static Address break_address_from_return_address (Address pc)
 
static void deserialization_set_special_target_at (Address constant_pool_entry, Code *code, Address target)
 
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 Ra (CPURegister ra)
 
static Instr Rt (CPURegister rt)
 
static Instr Rt2 (CPURegister rt2)
 
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 (int64_t 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 bool IsImmAddSub (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, LSDataSize 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 LSDataSize CalcLSDataSize (LoadStoreOp op)
 
static bool IsImmLSUnscaled (int64_t offset)
 
static bool IsImmLSScaled (int64_t offset, LSDataSize size)
 
static Instr ImmMoveWide (uint64_t imm)
 
static Instr ShiftMoveWide (int64_t shift)
 
static Instr ImmFP32 (float imm)
 
static Instr ImmFP64 (double imm)
 
static Instr FPScale (unsigned scale)
 
static Instr FPType (FPRegister fd)
 
static Address target_address_at (Address pc, ConstantPoolArray *constant_pool)
 
static void set_target_address_at (Address pc, ConstantPoolArray *constant_pool, Address target, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static Address target_address_at (Address pc, Code *code)
 
static void set_target_address_at (Address pc, Code *code, Address target, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static Address target_address_from_return_address (Address pc)
 
static Address break_address_from_return_address (Address pc)
 
static void deserialization_set_special_target_at (Address instruction_payload, Code *code, Address target)
 
static bool IsNop (Address addr)
 
static Address target_address_at (Address pc)
 
static void set_target_address_at (Address pc, Address target, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static Address target_address_from_return_address (Address pc)
 
static Address break_address_from_return_address (Address pc)
 
static void JumpLabelToJumpRegister (Address pc)
 
static void QuietNaN (HeapObject *nan)
 
static void deserialization_set_special_target_at (Address instruction_payload, Code *code, Address target)
 
static int RelocateInternalReference (byte *pc, intptr_t pc_delta)
 
static Instr instr_at (byte *pc)
 
static void instr_at_put (byte *pc, Instr instr)
 
static bool IsBranch (Instr instr)
 
static bool IsBeq (Instr instr)
 
static bool IsBne (Instr instr)
 
static bool IsJump (Instr instr)
 
static bool IsJ (Instr instr)
 
static bool IsLui (Instr instr)
 
static bool IsOri (Instr instr)
 
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 Address target_address_at (Address pc)
 
static void set_target_address_at (Address pc, Address target, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static Address target_address_from_return_address (Address pc)
 
static Address break_address_from_return_address (Address pc)
 
static void JumpLabelToJumpRegister (Address pc)
 
static void QuietNaN (HeapObject *nan)
 
static void deserialization_set_special_target_at (Address instruction_payload, Code *code, Address target)
 
static int RelocateInternalReference (byte *pc, intptr_t pc_delta)
 
static Instr instr_at (byte *pc)
 
static void instr_at_put (byte *pc, Instr instr)
 
static bool IsBranch (Instr instr)
 
static bool IsBeq (Instr instr)
 
static bool IsBne (Instr instr)
 
static bool IsJump (Instr instr)
 
static bool IsJ (Instr instr)
 
static bool IsLui (Instr instr)
 
static bool IsOri (Instr instr)
 
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 Address target_address_at (Address pc, ConstantPoolArray *constant_pool)
 
static void set_target_address_at (Address pc, ConstantPoolArray *constant_pool, Address target, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static Address target_address_at (Address pc, Code *code)
 
static void set_target_address_at (Address pc, Code *code, Address target, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static Address target_address_from_return_address (Address pc)
 
static Address break_address_from_return_address (Address pc)
 
static void deserialization_set_special_target_at (Address instruction_payload, Code *code, Address target)
 
static RelocInfo::Mode RelocInfoNone ()
 
static bool IsNop (Address addr)
 
static Address target_address_at (Address pc, ConstantPoolArray *constant_pool)
 
static void set_target_address_at (Address pc, ConstantPoolArray *constant_pool, Address target, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static Address target_address_at (Address pc, Code *code)
 
static void set_target_address_at (Address pc, Code *code, Address target, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
 
static Address target_address_from_return_address (Address pc)
 
static Address break_address_from_return_address (Address pc)
 
static void deserialization_set_special_target_at (Address instruction_payload, Code *code, Address target)
 
static bool IsNop (Address addr)
 
- Static Public Member Functions inherited from v8::internal::AssemblerBase
static void QuietNaN (HeapObject *nan)
 
- Static Public Member Functions inherited from v8::internal::Malloced
static void FatalProcessOutOfMemory ()
 
static void * New (size_t size)
 
static void Delete (void *p)
 

Static Public Attributes

static const int kCallApiFunctionSpillSpace = 4
 
- Static Public Attributes inherited from v8::internal::Assembler
static const int kSpecialTargetSize = kPointerSize
 
static const int kInstrSize = sizeof(Instr)
 
static const int kPatchReturnSequenceAddressOffset = 0 * kInstrSize
 
static const int kPatchDebugBreakSlotAddressOffset = 0 * kInstrSize
 
static const int kPatchDebugBreakSlotReturnOffset = 2 * kInstrSize
 
static const int kPcLoadDelta = 8
 
static const int kJSReturnSequenceInstructions = 4
 
static const int kDebugBreakSlotInstructions = 3
 
static const int kDebugBreakSlotLength
 
static const int kMaxDistToIntPool = 4*KB
 
static const int kMaxDistToFPPool = 1*KB
 
static const int kMaxNumPending32RelocInfo = kMaxDistToIntPool/kInstrSize
 
static const int kMaxNumPending64RelocInfo = kMaxDistToFPPool/kInstrSize
 
static const int kCallSizeWithoutRelocation = 4 * kInstructionSize
 
static const int kCallSizeWithRelocation = 2 * kInstructionSize
 
static const int kJSRetSequenceInstructions = 7
 
static const int kMaxVeneerCodeSize = 1 * kInstructionSize
 
static const int kCallTargetAddressOffset = kPointerSize
 
static const int kCallInstructionLength = 5
 
static const int kJSReturnSequenceLength = 6
 
static const byte kTestAlByte = 0xA8
 
static const byte kNopByte = 0x90
 
static const byte kJmpShortOpcode = 0xEB
 
static const byte kJccShortPrefix = 0x70
 
static const byte kJncShortOpcode = kJccShortPrefix | not_carry
 
static const byte kJcShortOpcode = kJccShortPrefix | carry
 
static const byte kJnzShortOpcode = kJccShortPrefix | not_zero
 
static const byte kJzShortOpcode = kJccShortPrefix | zero
 
static const int kMaximalBufferSize = 512*MB
 
static const int kBranchPCOffset = 4
 
static const int kInstructionsFor32BitConstant = 3
 
static const int kInstructionsFor64BitConstant = 5
 
static const int kCallScratchRegisterInstructionLength = 3
 
static const int kShortCallInstructionLength = 5
 
static const int kMoveAddressIntoScratchRegisterInstructionLength
 
static const int kCallSequenceLength
 
static const int kRealPatchReturnSequenceAddressOffset
 
static const byte kTestEaxByte = 0xA9
 
- Static Public Attributes inherited from v8::internal::AssemblerBase
static const int kMinimalBufferSize = 4*KB
 

Private Member Functions

void CallCFunctionHelper (Register function, int num_reg_arguments, int num_double_arguments)
 
void Jump (intptr_t target, RelocInfo::Mode rmode, Condition cond=al)
 
void InvokePrologue (const ParameterCount &expected, const ParameterCount &actual, Handle< Code > code_constant, Register code_reg, Label *done, bool *definitely_mismatches, InvokeFlag flag, const CallWrapper &call_wrapper)
 
void InitializeNewString (Register string, Register length, Heap::RootListIndex map_index, Register scratch1, Register scratch2)
 
void InNewSpace (Register object, Register scratch, Condition cond, Label *branch)
 
void GetMarkBits (Register addr_reg, Register bitmap_reg, Register mask_reg)
 
void JumpToHandlerEntry ()
 
MemOperand SafepointRegisterSlot (Register reg)
 
MemOperand SafepointRegistersAndDoublesSlot (Register reg)
 
void LoadConstantPoolPointerRegister ()
 
void CopyFieldsLoopPairsHelper (Register dst, Register src, unsigned count, Register scratch1, Register scratch2, Register scratch3, Register scratch4, Register scratch5)
 
void CopyFieldsUnrolledPairsHelper (Register dst, Register src, unsigned count, Register scratch1, Register scratch2, Register scratch3, Register scratch4)
 
void CopyFieldsUnrolledHelper (Register dst, Register src, unsigned count, Register scratch1, Register scratch2, Register scratch3)
 
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 CallPrintf (int arg_count=0, const CPURegister *args=NULL)
 
void JumpToHandlerEntry (Register exception, Register object, Register state, Register scratch1, Register scratch2)
 
void InNewSpace (Register object, Condition cond, Label *branch)
 
void TryRepresentDoubleAsInt (Register as_int, FPRegister value, FPRegister scratch_d, Label *on_successful_conversion=NULL, Label *on_failed_conversion=NULL)
 
void InitializeNewString (Register string, Register length, Heap::RootListIndex map_index, Register scratch1, Register scratch2)
 
void InvokePrologue (const ParameterCount &expected, const ParameterCount &actual, Handle< Code > code_constant, const Operand &code_operand, Label *done, bool *definitely_mismatches, InvokeFlag flag, Label::Distance done_distance, const CallWrapper &call_wrapper=NullCallWrapper())
 
void EnterExitFramePrologue ()
 
void EnterExitFrameEpilogue (int argc, bool save_doubles)
 
void LeaveExitFrameEpilogue (bool restore_context)
 
void LoadAllocationTopHelper (Register result, Register scratch, AllocationFlags flags)
 
void UpdateAllocationTopHelper (Register result_end, Register scratch, AllocationFlags flags)
 
void InNewSpace (Register object, Register scratch, Condition cc, Label *condition_met, Label::Distance condition_met_distance=Label::kFar)
 
void GetMarkBits (Register addr_reg, Register bitmap_reg, Register mask_reg)
 
void JumpToHandlerEntry ()
 
Operand SafepointRegisterSlot (Register reg)
 
void CallCFunctionHelper (Register function, int num_reg_arguments, int num_double_arguments)
 
void BranchAndLinkShort (int16_t offset, BranchDelaySlot bdslot=PROTECT)
 
void BranchAndLinkShort (int16_t offset, Condition cond, Register rs, const Operand &rt, BranchDelaySlot bdslot=PROTECT)
 
void BranchAndLinkShort (Label *L, BranchDelaySlot bdslot=PROTECT)
 
void BranchAndLinkShort (Label *L, Condition cond, Register rs, const Operand &rt, BranchDelaySlot bdslot=PROTECT)
 
void J (Label *L, BranchDelaySlot bdslot)
 
void Jr (Label *L, BranchDelaySlot bdslot)
 
void Jalr (Label *L, BranchDelaySlot bdslot)
 
void InvokePrologue (const ParameterCount &expected, const ParameterCount &actual, Handle< Code > code_constant, Register code_reg, Label *done, bool *definitely_mismatches, InvokeFlag flag, const CallWrapper &call_wrapper)
 
Handle< CodeResolveBuiltin (Builtins::JavaScript id, bool *resolved)
 
void InitializeNewString (Register string, Register length, Heap::RootListIndex map_index, Register scratch1, Register scratch2)
 
void InNewSpace (Register object, Register scratch, Condition cond, Label *branch)
 
void GetMarkBits (Register addr_reg, Register bitmap_reg, Register mask_reg)
 
void JumpToHandlerEntry ()
 
MemOperand SafepointRegisterSlot (Register reg)
 
MemOperand SafepointRegistersAndDoublesSlot (Register reg)
 
void CallCFunctionHelper (Register function, int num_reg_arguments, int num_double_arguments)
 
void BranchAndLinkShort (int16_t offset, BranchDelaySlot bdslot=PROTECT)
 
void BranchAndLinkShort (int16_t offset, Condition cond, Register rs, const Operand &rt, BranchDelaySlot bdslot=PROTECT)
 
void BranchAndLinkShort (Label *L, BranchDelaySlot bdslot=PROTECT)
 
void BranchAndLinkShort (Label *L, Condition cond, Register rs, const Operand &rt, BranchDelaySlot bdslot=PROTECT)
 
void J (Label *L, BranchDelaySlot bdslot)
 
void Jr (Label *L, BranchDelaySlot bdslot)
 
void Jalr (Label *L, BranchDelaySlot bdslot)
 
void InvokePrologue (const ParameterCount &expected, const ParameterCount &actual, Handle< Code > code_constant, Register code_reg, Label *done, bool *definitely_mismatches, InvokeFlag flag, const CallWrapper &call_wrapper)
 
Handle< CodeResolveBuiltin (Builtins::JavaScript id, bool *resolved)
 
void InitializeNewString (Register string, Register length, Heap::RootListIndex map_index, Register scratch1, Register scratch2)
 
void InNewSpace (Register object, Register scratch, Condition cond, Label *branch)
 
void GetMarkBits (Register addr_reg, Register bitmap_reg, Register mask_reg)
 
void JumpToHandlerEntry ()
 
MemOperand SafepointRegisterSlot (Register reg)
 
MemOperand SafepointRegistersAndDoublesSlot (Register reg)
 
Register GetSmiConstant (Smi *value)
 
int64_t RootRegisterDelta (ExternalReference other)
 
void LoadSmiConstant (Register dst, Smi *value)
 
void InvokePrologue (const ParameterCount &expected, const ParameterCount &actual, Handle< Code > code_constant, Register code_register, Label *done, bool *definitely_mismatches, InvokeFlag flag, Label::Distance near_jump=Label::kFar, const CallWrapper &call_wrapper=NullCallWrapper())
 
void EnterExitFramePrologue (bool save_rax)
 
void EnterExitFrameEpilogue (int arg_stack_space, bool save_doubles)
 
void LeaveExitFrameEpilogue (bool restore_context)
 
void LoadAllocationTopHelper (Register result, Register scratch, AllocationFlags flags)
 
void MakeSureDoubleAlignedHelper (Register result, Register scratch, Label *gc_required, AllocationFlags flags)
 
void UpdateAllocationTopHelper (Register result_end, Register scratch, AllocationFlags flags)
 
void InNewSpace (Register object, Register scratch, Condition cc, Label *branch, Label::Distance distance=Label::kFar)
 
void GetMarkBits (Register addr_reg, Register bitmap_reg, Register mask_reg)
 
void JumpToHandlerEntry ()
 
Operand SafepointRegisterSlot (Register reg)
 
void InvokePrologue (const ParameterCount &expected, const ParameterCount &actual, Handle< Code > code_constant, const Operand &code_operand, Label *done, bool *definitely_mismatches, InvokeFlag flag, Label::Distance done_distance, const CallWrapper &call_wrapper=NullCallWrapper())
 
void EnterExitFramePrologue ()
 
void EnterExitFrameEpilogue (int argc, bool save_doubles)
 
void LeaveExitFrameEpilogue (bool restore_context)
 
void LoadAllocationTopHelper (Register result, Register scratch, AllocationFlags flags)
 
void UpdateAllocationTopHelper (Register result_end, Register scratch, AllocationFlags flags)
 
void InNewSpace (Register object, Register scratch, Condition cc, Label *condition_met, Label::Distance condition_met_distance=Label::kFar)
 
void GetMarkBits (Register addr_reg, Register bitmap_reg, Register mask_reg)
 
void JumpToHandlerEntry ()
 
Operand SafepointRegisterSlot (Register reg)
 

Static Private Member Functions

static int SafepointRegisterStackIndex (int reg_code)
 
static int SafepointRegisterStackIndex (int reg_code)
 
static int SafepointRegisterStackIndex (int reg_code)
 
static int SafepointRegisterStackIndex (int reg_code)
 
static int SafepointRegisterStackIndex (int reg_code)
 
static int SafepointRegisterStackIndex (int reg_code)
 

Private Attributes

bool generating_stub_
 
bool has_frame_
 
Handle< Objectcode_object_
 
bool use_real_aborts_
 
Register sp_
 
CPURegList tmp_list_
 
CPURegList fptmp_list_
 
bool root_array_available_
 

Static Private Attributes

static const int kSafepointPushRegisterIndices [Register::kNumRegisters]
 
static const int kNumSafepointSavedRegisters = 11
 
static const int kSmiShift = kSmiTagSize + kSmiShiftSize
 

Friends

class StandardFrame
 

Additional Inherited Members

- 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
 
void set_constant_pool_available (bool available)
 
const RegisterAppropriateZeroRegFor (const CPURegister &reg) const
 
void LoadStore (const CPURegister &rt, const MemOperand &addr, LoadStoreOp op)
 
void LoadStorePair (const CPURegister &rt, const CPURegister &rt2, const MemOperand &addr, LoadStorePairOp 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 RemoveBranchFromLabelLinkChain (Instruction *branch, Label *label, Instruction *label_veneer=NULL)
 
void SetRecordedAstId (TypeFeedbackId ast_id)
 
int unresolved_branches_first_limit () const
 
void emit_sse_operand (XMMRegister reg, const 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)
 
byteaddr_at (int pos)
 
int32_t buffer_space () const
 
int target_at (int32_t pos)
 
void target_at_put (int32_t pos, int32_t target_pos)
 
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 DoubleAsTwoUInt32 (double d, uint32_t *lo, uint32_t *hi)
 
bool is_trampoline_emitted () const
 
void StartBlockGrowBuffer ()
 
void EndBlockGrowBuffer ()
 
bool is_buffer_growth_blocked () const
 
int64_t buffer_space () const
 
int64_t target_at (int64_t pos)
 
void target_at_put (int64_t pos, int64_t target_pos)
 
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 DoubleAsTwoUInt32 (double d, uint32_t *lo, uint32_t *hi)
 
bool is_trampoline_emitted () const
 
void StartBlockGrowBuffer ()
 
void EndBlockGrowBuffer ()
 
bool is_buffer_growth_blocked () const
 
void call (const Operand &operand)
 
void jmp (const Operand &src)
 
byteaddr_at (int pos)
 
- Static Protected Member Functions inherited from v8::internal::Assembler
static bool IsImmLSPair (int64_t offset, LSDataSize size)
 
static bool IsImmConditionalCompare (int64_t immediate)
 
static bool IsImmFP32 (float imm)
 
static bool IsImmFP64 (double imm)
 
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 LoadStorePairNonTemporalOp LoadPairNonTemporalOpFor (const CPURegister &rt, const CPURegister &rt2)
 
static LoadStorePairNonTemporalOp StorePairNonTemporalOpFor (const CPURegister &rt, const CPURegister &rt2)
 
static LoadLiteralOp LoadLiteralOpFor (const CPURegister &rt)
 
- Protected Attributes inherited from v8::internal::Assembler
TypeFeedbackId recorded_ast_id_
 
std::multimap< int, FarBranchInfounresolved_branches_
 
int next_veneer_pool_check_
 
- Protected Attributes inherited from v8::internal::AssemblerBase
bytebuffer_
 
int buffer_size_
 
bool own_buffer_
 
bytepc_
 
- Static Protected Attributes inherited from v8::internal::Assembler
static const int kVeneerDistanceMargin = 1 * KB
 
static const int kVeneerNoProtectionFactor = 2
 
static const int kVeneerDistanceCheckMargin
 

Detailed Description

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

Member Enumeration Documentation

◆ AdrHint

Enumerator
kAdrNear 
kAdrFar 

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

283  {
284  // The target must be within the immediate range of adr.
285  kAdrNear,
286  // The target may be outside of the immediate range of adr. Additional
287  // instructions may be emitted.
288  kAdrFar
289  };

◆ BoundFunctionAction

Enumerator
kMissOnBoundFunction 
kDontMissOnBoundFunction 

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

◆ RememberedSetFinalAction [1/7]

Enumerator
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 

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

◆ RememberedSetFinalAction [2/7]

Enumerator
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 

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

1734  {
1735  kReturnAtEnd,
1737  };

◆ RememberedSetFinalAction [3/7]

Enumerator
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 

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

69  {
72  };

◆ RememberedSetFinalAction [4/7]

Enumerator
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 

Definition at line 295 of file macro-assembler-mips.h.

295  {
296  kReturnAtEnd,
298  };

◆ RememberedSetFinalAction [5/7]

Enumerator
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 

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

316  {
317  kReturnAtEnd,
319  };

◆ RememberedSetFinalAction [6/7]

Enumerator
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 

Definition at line 157 of file macro-assembler-x64.h.

157  {
158  kReturnAtEnd,
160  };

◆ RememberedSetFinalAction [7/7]

Enumerator
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 

Definition at line 69 of file macro-assembler-x87.h.

69  {
72  };

Constructor & Destructor Documentation

◆ MacroAssembler() [1/7]

v8::internal::MacroAssembler::MacroAssembler ( Isolate isolate,
void *  buffer,
int  size 
)

◆ MacroAssembler() [2/7]

v8::internal::MacroAssembler::MacroAssembler ( Isolate isolate,
byte buffer,
unsigned  buffer_size 
)

◆ MacroAssembler() [3/7]

v8::internal::MacroAssembler::MacroAssembler ( Isolate isolate,
void *  buffer,
int  size 
)

◆ MacroAssembler() [4/7]

v8::internal::MacroAssembler::MacroAssembler ( Isolate isolate,
void *  buffer,
int  size 
)

◆ MacroAssembler() [5/7]

v8::internal::MacroAssembler::MacroAssembler ( Isolate isolate,
void *  buffer,
int  size 
)

◆ MacroAssembler() [6/7]

v8::internal::MacroAssembler::MacroAssembler ( Isolate isolate,
void *  buffer,
int  size 
)

◆ MacroAssembler() [7/7]

v8::internal::MacroAssembler::MacroAssembler ( Isolate isolate,
void *  buffer,
int  size 
)

Member Function Documentation

◆ Abort() [1/7]

void v8::internal::MacroAssembler::Abort ( BailoutReason  msg)

Referenced by ObjectTag(), and ObjectUntag().

+ Here is the caller graph for this function:

◆ Abort() [2/7]

void v8::internal::MacroAssembler::Abort ( BailoutReason  msg)

◆ Abort() [3/7]

void v8::internal::MacroAssembler::Abort ( BailoutReason  msg)

◆ Abort() [4/7]

void v8::internal::MacroAssembler::Abort ( BailoutReason  msg)

◆ Abort() [5/7]

void v8::internal::MacroAssembler::Abort ( BailoutReason  reason)

◆ Abort() [6/7]

void v8::internal::MacroAssembler::Abort ( BailoutReason  reason)

◆ Abort() [7/7]

void v8::internal::MacroAssembler::Abort ( BailoutReason  reason)

◆ Abs()

void v8::internal::MacroAssembler::Abs ( const Register rd,
const Register rm,
Label *  is_not_representable = NULL,
Label *  is_representable = NULL 
)

◆ ActivationFrameAlignment() [1/4]

static int v8::internal::MacroAssembler::ActivationFrameAlignment ( )
static

Referenced by AlignAndSetCSPForFrame().

+ Here is the caller graph for this function:

◆ ActivationFrameAlignment() [2/4]

int v8::internal::MacroAssembler::ActivationFrameAlignment ( )

◆ ActivationFrameAlignment() [3/4]

static int v8::internal::MacroAssembler::ActivationFrameAlignment ( )
static

◆ ActivationFrameAlignment() [4/4]

static int v8::internal::MacroAssembler::ActivationFrameAlignment ( )
static

◆ Adc()

void v8::internal::MacroAssembler::Adc ( const Register rd,
const Register rn,
const Operand operand 
)
inline

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

235  {
236  DCHECK(allow_macro_instructions_);
237  DCHECK(!rd.IsZero());
238  AddSubWithCarryMacro(rd, rn, operand, LeaveFlags, ADC);
239 }
void AddSubWithCarryMacro(const Register &rd, const Register &rn, const Operand &operand, FlagsUpdate S, AddSubWithCarryOp op)
#define DCHECK(condition)
Definition: logging.h:205

References v8::internal::ADC, AddSubWithCarryMacro(), DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::LeaveFlags.

+ Here is the call graph for this function:

◆ Adcs()

void v8::internal::MacroAssembler::Adcs ( const Register rd,
const Register rn,
const Operand operand 
)
inline

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

244  {
245  DCHECK(allow_macro_instructions_);
246  DCHECK(!rd.IsZero());
247  AddSubWithCarryMacro(rd, rn, operand, SetFlags, ADC);
248 }

References v8::internal::ADC, AddSubWithCarryMacro(), DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::SetFlags.

+ Here is the call graph for this function:

◆ Add()

void v8::internal::MacroAssembler::Add ( const Register rd,
const Register rn,
const Operand operand 
)
inline

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

153  {
154  DCHECK(allow_macro_instructions_);
155  if (operand.IsImmediate() && (operand.ImmediateValue() < 0) &&
156  IsImmAddSub(-operand.ImmediateValue())) {
157  AddSubMacro(rd, rn, -operand.ImmediateValue(), LeaveFlags, SUB);
158  } else {
159  AddSubMacro(rd, rn, operand, LeaveFlags, ADD);
160  }
161 }
static bool IsImmAddSub(int64_t immediate)
void AddSubMacro(const Register &rd, const Register &rn, const Operand &operand, FlagsUpdate S, AddSubOp op)

References v8::internal::ADD, AddSubMacro(), DCHECK, v8::internal::Operand::ImmediateValue(), v8::internal::Assembler::IsImmAddSub(), v8::internal::Operand::IsImmediate(), v8::internal::LeaveFlags, and v8::internal::SUB.

Referenced by Drop(), and DropBySMI().

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

◆ Adds()

void v8::internal::MacroAssembler::Adds ( const Register rd,
const Register rn,
const Operand operand 
)
inline

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

165  {
166  DCHECK(allow_macro_instructions_);
167  if (operand.IsImmediate() && (operand.ImmediateValue() < 0) &&
168  IsImmAddSub(-operand.ImmediateValue())) {
169  AddSubMacro(rd, rn, -operand.ImmediateValue(), SetFlags, SUB);
170  } else {
171  AddSubMacro(rd, rn, operand, SetFlags, ADD);
172  }
173 }

References v8::internal::ADD, AddSubMacro(), DCHECK, v8::internal::Operand::ImmediateValue(), v8::internal::Assembler::IsImmAddSub(), v8::internal::Operand::IsImmediate(), v8::internal::SetFlags, and v8::internal::SUB.

Referenced by Cmn().

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

◆ AddSmiField()

void v8::internal::MacroAssembler::AddSmiField ( Register  dst,
const Operand src 
)

◆ AddSubMacro()

void v8::internal::MacroAssembler::AddSubMacro ( const Register rd,
const Register rn,
const Operand operand,
FlagsUpdate  S,
AddSubOp  op 
)

Referenced by Add(), Adds(), Sub(), and Subs().

+ Here is the caller graph for this function:

◆ AddSubWithCarryMacro()

void v8::internal::MacroAssembler::AddSubWithCarryMacro ( const Register rd,
const Register rn,
const Operand operand,
FlagsUpdate  S,
AddSubWithCarryOp  op 
)

Referenced by Adc(), Adcs(), Sbc(), and Sbcs().

+ Here is the caller graph for this function:

◆ AdduAndCheckForOverflow() [1/3]

void v8::internal::MacroAssembler::AdduAndCheckForOverflow ( Register  dst,
Register  left,
const Operand right,
Register  overflow_dst,
Register  scratch = at 
)

◆ AdduAndCheckForOverflow() [2/3]

void v8::internal::MacroAssembler::AdduAndCheckForOverflow ( Register  dst,
Register  left,
Register  right,
Register  overflow_dst,
Register  scratch = at 
)

◆ AdduAndCheckForOverflow() [3/3]

void v8::internal::MacroAssembler::AdduAndCheckForOverflow ( Register  dst,
Register  left,
Register  right,
Register  overflow_dst,
Register  scratch = at 
)

◆ Adr()

void v8::internal::MacroAssembler::Adr ( const Register rd,
Label *  label,
AdrHint  = kAdrNear 
)

◆ AlignAndSetCSPForFrame()

void v8::internal::MacroAssembler::AlignAndSetCSPForFrame ( )
inline

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

809  {
810  int sp_alignment = ActivationFrameAlignment();
811  // AAPCS64 mandates at least 16-byte alignment.
812  DCHECK(sp_alignment >= 16);
813  DCHECK(base::bits::IsPowerOfTwo32(sp_alignment));
814  Bic(csp, StackPointer(), sp_alignment - 1);
815  SetStackPointer(csp);
816  }
void Bic(const Register &rd, const Register &rn, const Operand &operand)
void SetStackPointer(const Register &stack_pointer)
static int ActivationFrameAlignment()
const Register & StackPointer() const
bool IsPowerOfTwo32(uint32_t value)
Definition: bits.h:77

References ActivationFrameAlignment(), Bic(), DCHECK, v8::base::bits::IsPowerOfTwo32(), SetStackPointer(), and StackPointer().

+ Here is the call graph for this function:

◆ Allocate() [1/17]

void v8::internal::MacroAssembler::Allocate ( int  header_size,
ScaleFactor  element_size,
Register  element_count,
Register  result,
Register  result_end,
Register  scratch,
Label *  gc_required,
AllocationFlags  flags 
)

◆ Allocate() [2/17]

void v8::internal::MacroAssembler::Allocate ( int  header_size,
ScaleFactor  element_size,
Register  element_count,
RegisterValueType  element_count_type,
Register  result,
Register  result_end,
Register  scratch,
Label *  gc_required,
AllocationFlags  flags 
)

◆ Allocate() [3/17]

void v8::internal::MacroAssembler::Allocate ( int  header_size,
ScaleFactor  element_size,
Register  element_count,
RegisterValueType  element_count_type,
Register  result,
Register  result_end,
Register  scratch,
Label *  gc_required,
AllocationFlags  flags 
)

◆ Allocate() [4/17]

void v8::internal::MacroAssembler::Allocate ( int  object_size,
Register  result,
Register  result_end,
Register  scratch,
Label *  gc_required,
AllocationFlags  flags 
)

◆ Allocate() [5/17]

void v8::internal::MacroAssembler::Allocate ( int  object_size,
Register  result,
Register  result_end,
Register  scratch,
Label *  gc_required,
AllocationFlags  flags 
)

◆ Allocate() [6/17]

void v8::internal::MacroAssembler::Allocate ( int  object_size,
Register  result,
Register  result_end,
Register  scratch,
Label *  gc_required,
AllocationFlags  flags 
)

◆ Allocate() [7/17]

void v8::internal::MacroAssembler::Allocate ( int  object_size,
Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required,
AllocationFlags  flags 
)

◆ Allocate() [8/17]

void v8::internal::MacroAssembler::Allocate ( int  object_size,
Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required,
AllocationFlags  flags 
)

◆ Allocate() [9/17]

void v8::internal::MacroAssembler::Allocate ( int  object_size,
Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required,
AllocationFlags  flags 
)

◆ Allocate() [10/17]

void v8::internal::MacroAssembler::Allocate ( int  object_size,
Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required,
AllocationFlags  flags 
)

◆ Allocate() [11/17]

void v8::internal::MacroAssembler::Allocate ( Register  object_size,
Register  result,
Register  result_end,
Register  scratch,
Label *  gc_required,
AllocationFlags  flags 
)

◆ Allocate() [12/17]

void v8::internal::MacroAssembler::Allocate ( Register  object_size,
Register  result,
Register  result_end,
Register  scratch,
Label *  gc_required,
AllocationFlags  flags 
)

◆ Allocate() [13/17]

void v8::internal::MacroAssembler::Allocate ( Register  object_size,
Register  result,
Register  result_end,
Register  scratch,
Label *  gc_required,
AllocationFlags  flags 
)

◆ Allocate() [14/17]

void v8::internal::MacroAssembler::Allocate ( Register  object_size,
Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required,
AllocationFlags  flags 
)

◆ Allocate() [15/17]

void v8::internal::MacroAssembler::Allocate ( Register  object_size,
Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required,
AllocationFlags  flags 
)

◆ Allocate() [16/17]

void v8::internal::MacroAssembler::Allocate ( Register  object_size,
Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required,
AllocationFlags  flags 
)

◆ Allocate() [17/17]

void v8::internal::MacroAssembler::Allocate ( Register  object_size,
Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required,
AllocationFlags  flags 
)

◆ AllocateHeapNumber() [1/7]

void v8::internal::MacroAssembler::AllocateHeapNumber ( Register  result,
Label *  gc_required,
Register  scratch1,
Register  scratch2,
CPURegister  value = NoFPReg,
CPURegister  heap_number_map = NoReg,
MutableMode  mode = IMMUTABLE 
)

◆ AllocateHeapNumber() [2/7]

void v8::internal::MacroAssembler::AllocateHeapNumber ( Register  result,
Register  scratch,
Label *  gc_required,
MutableMode  mode = IMMUTABLE 
)

◆ AllocateHeapNumber() [3/7]

void v8::internal::MacroAssembler::AllocateHeapNumber ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required,
MutableMode  mode = IMMUTABLE 
)

◆ AllocateHeapNumber() [4/7]

void v8::internal::MacroAssembler::AllocateHeapNumber ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required,
MutableMode  mode = IMMUTABLE 
)

◆ AllocateHeapNumber() [5/7]

void v8::internal::MacroAssembler::AllocateHeapNumber ( Register  result,
Register  scratch1,
Register  scratch2,
Register  heap_number_map,
Label *  gc_required,
TaggingMode  tagging_mode = TAG_RESULT,
MutableMode  mode = IMMUTABLE 
)

◆ AllocateHeapNumber() [6/7]

void v8::internal::MacroAssembler::AllocateHeapNumber ( Register  result,
Register  scratch1,
Register  scratch2,
Register  heap_number_map,
Label *  gc_required,
TaggingMode  tagging_mode = TAG_RESULT,
MutableMode  mode = IMMUTABLE 
)

◆ AllocateHeapNumber() [7/7]

void v8::internal::MacroAssembler::AllocateHeapNumber ( Register  result,
Register  scratch1,
Register  scratch2,
Register  heap_number_map,
Label *  gc_required,
TaggingMode  tagging_mode = TAG_RESULT,
MutableMode  mode = IMMUTABLE 
)

◆ AllocateHeapNumberWithValue() [1/3]

void v8::internal::MacroAssembler::AllocateHeapNumberWithValue ( Register  result,
DwVfpRegister  value,
Register  scratch1,
Register  scratch2,
Register  heap_number_map,
Label *  gc_required 
)

◆ AllocateHeapNumberWithValue() [2/3]

void v8::internal::MacroAssembler::AllocateHeapNumberWithValue ( Register  result,
FPURegister  value,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateHeapNumberWithValue() [3/3]

void v8::internal::MacroAssembler::AllocateHeapNumberWithValue ( Register  result,
FPURegister  value,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateOneByteConsString() [1/7]

void v8::internal::MacroAssembler::AllocateOneByteConsString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateOneByteConsString() [2/7]

void v8::internal::MacroAssembler::AllocateOneByteConsString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateOneByteConsString() [3/7]

void v8::internal::MacroAssembler::AllocateOneByteConsString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateOneByteConsString() [4/7]

void v8::internal::MacroAssembler::AllocateOneByteConsString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateOneByteConsString() [5/7]

void v8::internal::MacroAssembler::AllocateOneByteConsString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateOneByteConsString() [6/7]

void v8::internal::MacroAssembler::AllocateOneByteConsString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateOneByteConsString() [7/7]

void v8::internal::MacroAssembler::AllocateOneByteConsString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateOneByteSlicedString() [1/7]

void v8::internal::MacroAssembler::AllocateOneByteSlicedString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateOneByteSlicedString() [2/7]

void v8::internal::MacroAssembler::AllocateOneByteSlicedString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateOneByteSlicedString() [3/7]

void v8::internal::MacroAssembler::AllocateOneByteSlicedString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateOneByteSlicedString() [4/7]

void v8::internal::MacroAssembler::AllocateOneByteSlicedString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateOneByteSlicedString() [5/7]

void v8::internal::MacroAssembler::AllocateOneByteSlicedString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateOneByteSlicedString() [6/7]

void v8::internal::MacroAssembler::AllocateOneByteSlicedString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateOneByteSlicedString() [7/7]

void v8::internal::MacroAssembler::AllocateOneByteSlicedString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateOneByteString() [1/9]

void v8::internal::MacroAssembler::AllocateOneByteString ( Register  result,
int  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateOneByteString() [2/9]

void v8::internal::MacroAssembler::AllocateOneByteString ( Register  result,
int  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateOneByteString() [3/9]

void v8::internal::MacroAssembler::AllocateOneByteString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)

◆ AllocateOneByteString() [4/9]

void v8::internal::MacroAssembler::AllocateOneByteString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)

◆ AllocateOneByteString() [5/9]

void v8::internal::MacroAssembler::AllocateOneByteString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)

◆ AllocateOneByteString() [6/9]

void v8::internal::MacroAssembler::AllocateOneByteString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)

◆ AllocateOneByteString() [7/9]

void v8::internal::MacroAssembler::AllocateOneByteString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)

◆ AllocateOneByteString() [8/9]

void v8::internal::MacroAssembler::AllocateOneByteString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)

◆ AllocateOneByteString() [9/9]

void v8::internal::MacroAssembler::AllocateOneByteString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)

◆ AllocateTwoByteConsString() [1/7]

void v8::internal::MacroAssembler::AllocateTwoByteConsString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateTwoByteConsString() [2/7]

void v8::internal::MacroAssembler::AllocateTwoByteConsString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateTwoByteConsString() [3/7]

void v8::internal::MacroAssembler::AllocateTwoByteConsString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateTwoByteConsString() [4/7]

void v8::internal::MacroAssembler::AllocateTwoByteConsString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateTwoByteConsString() [5/7]

void v8::internal::MacroAssembler::AllocateTwoByteConsString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateTwoByteConsString() [6/7]

void v8::internal::MacroAssembler::AllocateTwoByteConsString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateTwoByteConsString() [7/7]

void v8::internal::MacroAssembler::AllocateTwoByteConsString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateTwoByteSlicedString() [1/7]

void v8::internal::MacroAssembler::AllocateTwoByteSlicedString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateTwoByteSlicedString() [2/7]

void v8::internal::MacroAssembler::AllocateTwoByteSlicedString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateTwoByteSlicedString() [3/7]

void v8::internal::MacroAssembler::AllocateTwoByteSlicedString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateTwoByteSlicedString() [4/7]

void v8::internal::MacroAssembler::AllocateTwoByteSlicedString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateTwoByteSlicedString() [5/7]

void v8::internal::MacroAssembler::AllocateTwoByteSlicedString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateTwoByteSlicedString() [6/7]

void v8::internal::MacroAssembler::AllocateTwoByteSlicedString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateTwoByteSlicedString() [7/7]

void v8::internal::MacroAssembler::AllocateTwoByteSlicedString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)

◆ AllocateTwoByteString() [1/7]

void v8::internal::MacroAssembler::AllocateTwoByteString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)

◆ AllocateTwoByteString() [2/7]

void v8::internal::MacroAssembler::AllocateTwoByteString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)

◆ AllocateTwoByteString() [3/7]

void v8::internal::MacroAssembler::AllocateTwoByteString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)

◆ AllocateTwoByteString() [4/7]

void v8::internal::MacroAssembler::AllocateTwoByteString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)

◆ AllocateTwoByteString() [5/7]

void v8::internal::MacroAssembler::AllocateTwoByteString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)

◆ AllocateTwoByteString() [6/7]

void v8::internal::MacroAssembler::AllocateTwoByteString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)

◆ AllocateTwoByteString() [7/7]

void v8::internal::MacroAssembler::AllocateTwoByteString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)

◆ AllowThisStubCall() [1/7]

bool v8::internal::MacroAssembler::AllowThisStubCall ( CodeStub stub)
inline

◆ AllowThisStubCall() [2/7]

bool v8::internal::MacroAssembler::AllowThisStubCall ( CodeStub stub)

◆ AllowThisStubCall() [3/7]

bool v8::internal::MacroAssembler::AllowThisStubCall ( CodeStub stub)
inline

◆ AllowThisStubCall() [4/7]

bool v8::internal::MacroAssembler::AllowThisStubCall ( CodeStub stub)
inline

◆ AllowThisStubCall() [5/7]

bool v8::internal::MacroAssembler::AllowThisStubCall ( CodeStub stub)
inline

◆ AllowThisStubCall() [6/7]

bool v8::internal::MacroAssembler::AllowThisStubCall ( CodeStub stub)
inline

◆ AllowThisStubCall() [7/7]

bool v8::internal::MacroAssembler::AllowThisStubCall ( CodeStub stub)
inline

◆ And() [1/2]

void v8::internal::MacroAssembler::And ( const Register rd,
const Register rn,
const Operand operand 
)
inline

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

48  {
49  DCHECK(allow_macro_instructions_);
50  DCHECK(!rd.IsZero());
51  LogicalMacro(rd, rn, operand, AND);
52 }
void LogicalMacro(const Register &rd, const Register &rn, const Operand &operand, LogicalOp op)

References v8::internal::AND, DCHECK, v8::internal::CPURegister::IsZero(), and LogicalMacro().

+ Here is the call graph for this function:

◆ And() [2/2]

void v8::internal::MacroAssembler::And ( Register  dst,
Register  src1,
const Operand src2,
Condition  cond = al 
)

Referenced by DecodeFieldToSmi(), IsObjectStringType(), JumpIfEitherSmi(), NonNegativeSmiTst(), and SmiTst().

+ Here is the caller graph for this function:

◆ Ands()

void v8::internal::MacroAssembler::Ands ( const Register rd,
const Register rn,
const Operand operand 
)
inline

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

57  {
58  DCHECK(allow_macro_instructions_);
59  DCHECK(!rd.IsZero());
60  LogicalMacro(rd, rn, operand, ANDS);
61 }

References v8::internal::ANDS, DCHECK, v8::internal::CPURegister::IsZero(), and LogicalMacro().

+ Here is the call graph for this function:

◆ AnnotateInstrumentation()

void v8::internal::MacroAssembler::AnnotateInstrumentation ( const char *  marker_name)
inline

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

1689  {
1690  DCHECK(strlen(marker_name) == 2);
1691 
1692  // We allow only printable characters in the marker names. Unprintable
1693  // characters are reserved for controlling features of the instrumentation.
1694  DCHECK(isprint(marker_name[0]) && isprint(marker_name[1]));
1695 
1696  InstructionAccurateScope scope(this, 1);
1697  movn(xzr, (marker_name[1] << 8) | marker_name[0]);
1698 }
void movn(const Register &rd, uint64_t imm, int shift=-1)

References DCHECK, and v8::internal::Assembler::movn().

+ Here is the call graph for this function:

◆ ArgumentStackSlotsForCFunctionCall()

int v8::internal::MacroAssembler::ArgumentStackSlotsForCFunctionCall ( int  num_arguments)

◆ Asr() [1/2]

void v8::internal::MacroAssembler::Asr ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

324  {
325  DCHECK(allow_macro_instructions_);
326  DCHECK(!rd.IsZero());
327  asrv(rd, rn, rm);
328 }
void asrv(const Register &rd, const Register &rn, const Register &rm)

References v8::internal::Assembler::asrv(), DCHECK, and v8::internal::CPURegister::IsZero().

+ Here is the call graph for this function:

◆ Asr() [2/2]

void v8::internal::MacroAssembler::Asr ( const Register rd,
const Register rn,
unsigned  shift 
)
inline

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

315  {
316  DCHECK(allow_macro_instructions_);
317  DCHECK(!rd.IsZero());
318  asr(rd, rn, shift);
319 }
void shift(Register dst, Immediate shift_amount, int subcode, int size)
void asr(Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)

References v8::internal::Assembler::asr(), DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::shift().

Referenced by SmiUntag().

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

◆ Assert() [1/7]

void v8::internal::MacroAssembler::Assert ( Condition  cc,
BailoutReason  reason 
)

◆ Assert() [2/7]

void v8::internal::MacroAssembler::Assert ( Condition  cc,
BailoutReason  reason 
)

◆ Assert() [3/7]

void v8::internal::MacroAssembler::Assert ( Condition  cc,
BailoutReason  reason 
)

◆ Assert() [4/7]

void v8::internal::MacroAssembler::Assert ( Condition  cc,
BailoutReason  reason,
Register  rs,
Operand  rt 
)

◆ Assert() [5/7]

void v8::internal::MacroAssembler::Assert ( Condition  cc,
BailoutReason  reason,
Register  rs,
Operand  rt 
)

◆ Assert() [6/7]

void v8::internal::MacroAssembler::Assert ( Condition  cond,
BailoutReason  reason 
)

◆ Assert() [7/7]

void v8::internal::MacroAssembler::Assert ( Condition  cond,
BailoutReason  reason 
)

◆ AssertFastElements() [1/7]

void v8::internal::MacroAssembler::AssertFastElements ( Register  elements)

◆ AssertFastElements() [2/7]

void v8::internal::MacroAssembler::AssertFastElements ( Register  elements)

◆ AssertFastElements() [3/7]

void v8::internal::MacroAssembler::AssertFastElements ( Register  elements)

◆ AssertFastElements() [4/7]

void v8::internal::MacroAssembler::AssertFastElements ( Register  elements)

◆ AssertFastElements() [5/7]

void v8::internal::MacroAssembler::AssertFastElements ( Register  elements)

◆ AssertFastElements() [6/7]

void v8::internal::MacroAssembler::AssertFastElements ( Register  elements)

◆ AssertFastElements() [7/7]

void v8::internal::MacroAssembler::AssertFastElements ( Register  elements)

◆ AssertFPCRState()

void v8::internal::MacroAssembler::AssertFPCRState ( Register  fpcr = NoReg)

◆ AssertHasValidColor()

void v8::internal::MacroAssembler::AssertHasValidColor ( const Register reg)

◆ AssertIsRoot() [1/3]

void v8::internal::MacroAssembler::AssertIsRoot ( Register  reg,
Heap::RootListIndex  index 
)

◆ AssertIsRoot() [2/3]

void v8::internal::MacroAssembler::AssertIsRoot ( Register  reg,
Heap::RootListIndex  index 
)

◆ AssertIsRoot() [3/3]

void v8::internal::MacroAssembler::AssertIsRoot ( Register  reg,
Heap::RootListIndex  index 
)

◆ AssertIsString()

void v8::internal::MacroAssembler::AssertIsString ( const Register object)

◆ AssertName() [1/7]

void v8::internal::MacroAssembler::AssertName ( Register  object)

◆ AssertName() [2/7]

void v8::internal::MacroAssembler::AssertName ( Register  object)

◆ AssertName() [3/7]

void v8::internal::MacroAssembler::AssertName ( Register  object)

◆ AssertName() [4/7]

void v8::internal::MacroAssembler::AssertName ( Register  object)

◆ AssertName() [5/7]

void v8::internal::MacroAssembler::AssertName ( Register  object)

◆ AssertName() [6/7]

void v8::internal::MacroAssembler::AssertName ( Register  object)

◆ AssertName() [7/7]

void v8::internal::MacroAssembler::AssertName ( Register  object)

◆ AssertNotSmi() [1/7]

void v8::internal::MacroAssembler::AssertNotSmi ( Register  object)

◆ AssertNotSmi() [2/7]

void v8::internal::MacroAssembler::AssertNotSmi ( Register  object)

◆ AssertNotSmi() [3/7]

void v8::internal::MacroAssembler::AssertNotSmi ( Register  object)

◆ AssertNotSmi() [4/7]

void v8::internal::MacroAssembler::AssertNotSmi ( Register  object)

◆ AssertNotSmi() [5/7]

void v8::internal::MacroAssembler::AssertNotSmi ( Register  object)

◆ AssertNotSmi() [6/7]

void v8::internal::MacroAssembler::AssertNotSmi ( Register  object)

◆ AssertNotSmi() [7/7]

void v8::internal::MacroAssembler::AssertNotSmi ( Register  object,
BailoutReason  reason = kOperandIsASmi 
)

◆ AssertNumber() [1/3]

void v8::internal::MacroAssembler::AssertNumber ( Register  object)

◆ AssertNumber() [2/3]

void v8::internal::MacroAssembler::AssertNumber ( Register  object)

◆ AssertNumber() [3/3]

void v8::internal::MacroAssembler::AssertNumber ( Register  object)

◆ AssertRegisterIsClear()

void v8::internal::MacroAssembler::AssertRegisterIsClear ( Register  reg,
BailoutReason  reason 
)

◆ AssertRegisterIsRoot()

void v8::internal::MacroAssembler::AssertRegisterIsRoot ( Register  reg,
Heap::RootListIndex  index,
BailoutReason  reason = kRegisterDidNotMatchExpectedRoot 
)

◆ AssertRootValue()

void v8::internal::MacroAssembler::AssertRootValue ( Register  src,
Heap::RootListIndex  root_value_index,
BailoutReason  reason 
)

◆ AssertSmi() [1/8]

void v8::internal::MacroAssembler::AssertSmi ( const Operand object)

◆ AssertSmi() [2/8]

void v8::internal::MacroAssembler::AssertSmi ( Register  object)

Referenced by SmiUntag(), SmiUntagToDouble(), and SmiUntagToFloat().

+ Here is the caller graph for this function:

◆ AssertSmi() [3/8]

void v8::internal::MacroAssembler::AssertSmi ( Register  object)

◆ AssertSmi() [4/8]

void v8::internal::MacroAssembler::AssertSmi ( Register  object)

◆ AssertSmi() [5/8]

void v8::internal::MacroAssembler::AssertSmi ( Register  object)

◆ AssertSmi() [6/8]

void v8::internal::MacroAssembler::AssertSmi ( Register  object)

◆ AssertSmi() [7/8]

void v8::internal::MacroAssembler::AssertSmi ( Register  object)

◆ AssertSmi() [8/8]

void v8::internal::MacroAssembler::AssertSmi ( Register  object,
BailoutReason  reason = kOperandIsNotASmi 
)

◆ AssertStackConsistency()

void v8::internal::MacroAssembler::AssertStackConsistency ( )

Referenced by BumpSystemStackPointer(), and SyncSystemStackPointer().

+ Here is the caller graph for this function:

◆ AssertStackIsAligned() [1/2]

void v8::internal::MacroAssembler::AssertStackIsAligned ( )

◆ AssertStackIsAligned() [2/2]

void v8::internal::MacroAssembler::AssertStackIsAligned ( )

◆ AssertString() [1/7]

void v8::internal::MacroAssembler::AssertString ( Register  object)

◆ AssertString() [2/7]

void v8::internal::MacroAssembler::AssertString ( Register  object)

◆ AssertString() [3/7]

void v8::internal::MacroAssembler::AssertString ( Register  object)

◆ AssertString() [4/7]

void v8::internal::MacroAssembler::AssertString ( Register  object)

◆ AssertString() [5/7]

void v8::internal::MacroAssembler::AssertString ( Register  object)

◆ AssertString() [6/7]

void v8::internal::MacroAssembler::AssertString ( Register  object)

◆ AssertString() [7/7]

void v8::internal::MacroAssembler::AssertString ( Register  object)

◆ AssertUndefinedOrAllocationSite() [1/7]

void v8::internal::MacroAssembler::AssertUndefinedOrAllocationSite ( Register  object)

◆ AssertUndefinedOrAllocationSite() [2/7]

void v8::internal::MacroAssembler::AssertUndefinedOrAllocationSite ( Register  object)

◆ AssertUndefinedOrAllocationSite() [3/7]

void v8::internal::MacroAssembler::AssertUndefinedOrAllocationSite ( Register  object)

◆ AssertUndefinedOrAllocationSite() [4/7]

void v8::internal::MacroAssembler::AssertUndefinedOrAllocationSite ( Register  object,
Register  scratch 
)

◆ AssertUndefinedOrAllocationSite() [5/7]

void v8::internal::MacroAssembler::AssertUndefinedOrAllocationSite ( Register  object,
Register  scratch 
)

◆ AssertUndefinedOrAllocationSite() [6/7]

void v8::internal::MacroAssembler::AssertUndefinedOrAllocationSite ( Register  object,
Register  scratch 
)

◆ AssertUndefinedOrAllocationSite() [7/7]

void v8::internal::MacroAssembler::AssertUndefinedOrAllocationSite ( Register  object,
Register  scratch 
)

◆ AssertZeroExtended()

void v8::internal::MacroAssembler::AssertZeroExtended ( Register  reg)

◆ B() [1/4]

void v8::internal::MacroAssembler::B ( Condition  cond,
Label *  label 
)
inline

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

337  {
338  DCHECK(allow_macro_instructions_);
339  B(label, cond);
340 }
void B(Label *label, BranchType type, Register reg=NoReg, int bit=-1)

References B(), and DCHECK.

+ Here is the call graph for this function:

◆ B() [2/4]

void v8::internal::MacroAssembler::B ( Label *  label)
inline

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

331  {
332  b(label);
333  CheckVeneerPool(false, false);
334 }
void b(int branch_offset, Condition cond=al)
void CheckVeneerPool(bool force_emit, bool require_jump, int margin=kVeneerDistanceMargin)

References v8::internal::Assembler::b(), and v8::internal::Assembler::CheckVeneerPool().

+ Here is the call graph for this function:

◆ B() [3/4]

void v8::internal::MacroAssembler::B ( Label *  label,
BranchType  type,
Register  reg = NoReg,
int  bit = -1 
)

Referenced by B(), CompareAndBranch(), IsInstanceJSObjectType(), IsObjectJSStringType(), IsObjectNameType(), jmp(), JumpIfJSArrayHasAllocationMemento(), JumpIfSmi(), TestAndBranchIfAllClear(), and TestAndBranchIfAnySet().

+ Here is the caller graph for this function:

◆ B() [4/4]

void v8::internal::MacroAssembler::B ( Label *  label,
Condition  cond 
)

◆ Bfc()

void v8::internal::MacroAssembler::Bfc ( Register  dst,
Register  src,
int  lsb,
int  width,
Condition  cond = al 
)

◆ Bfi() [1/2]

void v8::internal::MacroAssembler::Bfi ( const Register rd,
const Register rn,
unsigned  lsb,
unsigned  width 
)
inline

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

346  {
347  DCHECK(allow_macro_instructions_);
348  DCHECK(!rd.IsZero());
349  bfi(rd, rn, lsb, width);
350 }
void bfi(Register dst, Register src, int lsb, int width, Condition cond=al)

References v8::internal::Assembler::bfi(), DCHECK, and v8::internal::CPURegister::IsZero().

+ Here is the call graph for this function:

◆ Bfi() [2/2]

void v8::internal::MacroAssembler::Bfi ( Register  dst,
Register  src,
Register  scratch,
int  lsb,
int  width,
Condition  cond = al 
)

◆ Bfxil()

void v8::internal::MacroAssembler::Bfxil ( const Register rd,
const Register rn,
unsigned  lsb,
unsigned  width 
)
inline

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

356  {
357  DCHECK(allow_macro_instructions_);
358  DCHECK(!rd.IsZero());
359  bfxil(rd, rn, lsb, width);
360 }
void bfxil(const Register &rd, const Register &rn, unsigned lsb, unsigned width)

References v8::internal::Assembler::bfxil(), DCHECK, and v8::internal::CPURegister::IsZero().

+ Here is the call graph for this function:

◆ Bic()

void v8::internal::MacroAssembler::Bic ( const Register rd,
const Register rn,
const Operand operand 
)
inline

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

73  {
74  DCHECK(allow_macro_instructions_);
75  DCHECK(!rd.IsZero());
76  LogicalMacro(rd, rn, operand, BIC);
77 }

References v8::internal::BIC, DCHECK, v8::internal::CPURegister::IsZero(), and LogicalMacro().

Referenced by AlignAndSetCSPForFrame(), BumpSystemStackPointer(), and ObjectUntag().

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

◆ Bics()

void v8::internal::MacroAssembler::Bics ( const Register rd,
const Register rn,
const Operand operand 
)
inline

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

82  {
83  DCHECK(allow_macro_instructions_);
84  DCHECK(!rd.IsZero());
85  LogicalMacro(rd, rn, operand, BICS);
86 }

References v8::internal::BICS, DCHECK, v8::internal::CPURegister::IsZero(), and LogicalMacro().

+ Here is the call graph for this function:

◆ Bind()

void v8::internal::MacroAssembler::Bind ( Label *  label)
inline

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

363  {
364  DCHECK(allow_macro_instructions_);
365  bind(label);
366 }

References v8::internal::Assembler::bind(), and DCHECK.

Referenced by JumpIfJSArrayHasAllocationMemento(), ObjectTag(), and ObjectUntag().

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

◆ Bl()

void v8::internal::MacroAssembler::Bl ( Label *  label)
inline

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

369  {
370  DCHECK(allow_macro_instructions_);
371  bl(label);
372 }
void bl(int branch_offset, Condition cond=al)

References v8::internal::Assembler::bl(), and DCHECK.

+ Here is the call graph for this function:

◆ Blr()

void v8::internal::MacroAssembler::Blr ( const Register xn)
inline

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

375  {
376  DCHECK(allow_macro_instructions_);
377  DCHECK(!xn.IsZero());
378  blr(xn);
379 }
void blr(const Register &xn)

References v8::internal::Assembler::blr(), DCHECK, and v8::internal::CPURegister::IsZero().

+ Here is the call graph for this function:

◆ BooleanBitTest() [1/2]

void v8::internal::MacroAssembler::BooleanBitTest ( Register  object,
int  field_offset,
int  bit_index 
)

◆ BooleanBitTest() [2/2]

void v8::internal::MacroAssembler::BooleanBitTest ( Register  object,
int  field_offset,
int  bit_index 
)

◆ Br()

void v8::internal::MacroAssembler::Br ( const Register xn)
inline

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

382  {
383  DCHECK(allow_macro_instructions_);
384  DCHECK(!xn.IsZero());
385  br(xn);
386 }
void br(const Register &xn)

References v8::internal::Assembler::br(), DCHECK, and v8::internal::CPURegister::IsZero().

+ Here is the call graph for this function:

◆ Branch() [1/2]

void v8::internal::MacroAssembler::Branch ( Label *  L,
Condition  cond,
Register  rs,
Heap::RootListIndex  index,
BranchDelaySlot  bdslot = PROTECT 
)

Referenced by BranchOnNoOverflow(), BranchOnOverflow(), jmp(), and Push().

+ Here is the caller graph for this function:

◆ Branch() [2/2]

void v8::internal::MacroAssembler::Branch ( Label *  L,
Condition  cond,
Register  rs,
Heap::RootListIndex  index,
BranchDelaySlot  bdslot = PROTECT 
)

◆ BranchAndLinkShort() [1/8]

void v8::internal::MacroAssembler::BranchAndLinkShort ( int16_t  offset,
BranchDelaySlot  bdslot = PROTECT 
)
private

◆ BranchAndLinkShort() [2/8]

void v8::internal::MacroAssembler::BranchAndLinkShort ( int16_t  offset,
BranchDelaySlot  bdslot = PROTECT 
)
private

◆ BranchAndLinkShort() [3/8]

void v8::internal::MacroAssembler::BranchAndLinkShort ( int16_t  offset,
Condition  cond,
Register  rs,
const Operand rt,
BranchDelaySlot  bdslot = PROTECT 
)
private

◆ BranchAndLinkShort() [4/8]

void v8::internal::MacroAssembler::BranchAndLinkShort ( int16_t  offset,
Condition  cond,
Register  rs,
const Operand rt,
BranchDelaySlot  bdslot = PROTECT 
)
private

◆ BranchAndLinkShort() [5/8]

void v8::internal::MacroAssembler::BranchAndLinkShort ( Label *  L,
BranchDelaySlot  bdslot = PROTECT 
)
private

◆ BranchAndLinkShort() [6/8]

void v8::internal::MacroAssembler::BranchAndLinkShort ( Label *  L,
BranchDelaySlot  bdslot = PROTECT 
)
private

◆ BranchAndLinkShort() [7/8]

void v8::internal::MacroAssembler::BranchAndLinkShort ( Label *  L,
Condition  cond,
Register  rs,
const Operand rt,
BranchDelaySlot  bdslot = PROTECT 
)
private

◆ BranchAndLinkShort() [8/8]

void v8::internal::MacroAssembler::BranchAndLinkShort ( Label *  L,
Condition  cond,
Register  rs,
const Operand rt,
BranchDelaySlot  bdslot = PROTECT 
)
private

◆ BranchF() [1/4]

void v8::internal::MacroAssembler::BranchF ( BranchDelaySlot  bd,
Label *  target,
Label *  nan,
Condition  cc,
FPURegister  cmp1,
FPURegister  cmp2 
)
inline

Definition at line 778 of file macro-assembler-mips.h.

783  {
784  BranchF(target, nan, cc, cmp1, cmp2, bd);
785  }
void BranchF(Label *target, Label *nan, Condition cc, FPURegister cmp1, FPURegister cmp2, BranchDelaySlot bd=PROTECT)

References BranchF(), and v8::internal::cc.

+ Here is the call graph for this function:

◆ BranchF() [2/4]

void v8::internal::MacroAssembler::BranchF ( BranchDelaySlot  bd,
Label *  target,
Label *  nan,
Condition  cc,
FPURegister  cmp1,
FPURegister  cmp2 
)
inline

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

806  {
807  BranchF(target, nan, cc, cmp1, cmp2, bd);
808  }

References BranchF(), and v8::internal::cc.

+ Here is the call graph for this function:

◆ BranchF() [3/4]

void v8::internal::MacroAssembler::BranchF ( Label *  target,
Label *  nan,
Condition  cc,
FPURegister  cmp1,
FPURegister  cmp2,
BranchDelaySlot  bd = PROTECT 
)

Referenced by BranchF().

+ Here is the caller graph for this function:

◆ BranchF() [4/4]

void v8::internal::MacroAssembler::BranchF ( Label *  target,
Label *  nan,
Condition  cc,
FPURegister  cmp1,
FPURegister  cmp2,
BranchDelaySlot  bd = PROTECT 
)

◆ BranchOnNoOverflow() [1/2]

void v8::internal::MacroAssembler::BranchOnNoOverflow ( Label *  label,
Register  overflow_check,
BranchDelaySlot  bd = PROTECT 
)
inline

Definition at line 1168 of file macro-assembler-mips.h.

1170  {
1171  Branch(label, ge, overflow_check, Operand(zero_reg), bd);
1172  }
void Branch(Label *L, Condition cond, Register rs, Heap::RootListIndex index, BranchDelaySlot bdslot=PROTECT)

References Branch(), and v8::internal::ge.

+ Here is the call graph for this function:

◆ BranchOnNoOverflow() [2/2]

void v8::internal::MacroAssembler::BranchOnNoOverflow ( Label *  label,
Register  overflow_check,
BranchDelaySlot  bd = PROTECT 
)
inline

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

1185  {
1186  Branch(label, ge, overflow_check, Operand(zero_reg), bd);
1187  }

References Branch(), and v8::internal::ge.

+ Here is the call graph for this function:

◆ BranchOnOverflow() [1/2]

void v8::internal::MacroAssembler::BranchOnOverflow ( Label *  label,
Register  overflow_check,
BranchDelaySlot  bd = PROTECT 
)
inline

Definition at line 1162 of file macro-assembler-mips.h.

1164  {
1165  Branch(label, lt, overflow_check, Operand(zero_reg), bd);
1166  }

References Branch(), and v8::internal::lt.

Referenced by TrySmiTag().

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

◆ BranchOnOverflow() [2/2]

void v8::internal::MacroAssembler::BranchOnOverflow ( Label *  label,
Register  overflow_check,
BranchDelaySlot  bd = PROTECT 
)
inline

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

1179  {
1180  Branch(label, lt, overflow_check, Operand(zero_reg), bd);
1181  }

References Branch(), and v8::internal::lt.

+ Here is the call graph for this function:

◆ Brk()

void v8::internal::MacroAssembler::Brk ( int  code)
inline

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

389  {
390  DCHECK(allow_macro_instructions_);
391  brk(code);
392 }

References v8::internal::Assembler::brk(), and DCHECK.

+ Here is the call graph for this function:

◆ BumpSystemStackPointer()

void v8::internal::MacroAssembler::BumpSystemStackPointer ( const Operand space)
inline

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

1230  {
1231  DCHECK(!csp.Is(sp_));
1232  if (!TmpList()->IsEmpty()) {
1234  UseScratchRegisterScope temps(this);
1235  Register temp = temps.AcquireX();
1236  Sub(temp, StackPointer(), space);
1237  Bic(csp, temp, 0xf);
1238  } else {
1239  Sub(csp, StackPointer(), space);
1240  }
1241  } else {
1242  // TODO(jbramley): Several callers rely on this not using scratch
1243  // registers, so we use the assembler directly here. However, this means
1244  // that large immediate values of 'space' cannot be handled cleanly. (Only
1245  // 24-bits immediates or values of 'space' that can be encoded in one
1246  // instruction are accepted.) Once we implement our flexible scratch
1247  // register idea, we could greatly simplify this function.
1248  InstructionAccurateScope scope(this);
1249  DCHECK(space.IsImmediate());
1250  // Align to 16 bytes.
1251  uint64_t imm = RoundUp(space.ImmediateValue(), 0x10);
1252  DCHECK(is_uint24(imm));
1253 
1254  Register source = StackPointer();
1256  bic(csp, source, 0xf);
1257  source = csp;
1258  }
1259  if (!is_uint12(imm)) {
1260  int64_t imm_top_12_bits = imm >> 12;
1261  sub(csp, source, imm_top_12_bits << 12);
1262  source = csp;
1263  imm -= imm_top_12_bits << 12;
1264  }
1265  if (imm > 0) {
1266  sub(csp, source, imm);
1267  }
1268  }
1270 }
void sub(Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)
void bic(Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)
static bool IsSupported(CpuFeature f)
Definition: assembler.h:184
void Sub(const Register &rd, const Register &rn, const Operand &operand)
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long enable alignment of csp to bytes on platforms which prefer the register to always be expose gc extension under the specified name show built in functions in stack traces use random jit cookie to mask large constants minimum length for automatic enable preparsing CPU profiler sampling interval in microseconds trace out of bounds accesses to external arrays default size of stack region v8 is allowed to maximum length of function source code printed in a stack trace min size of a semi space(in MBytes)
@ ALWAYS_ALIGN_CSP
Definition: globals.h:632
static void RoundUp(Vector< char > buffer, int *length, int *decimal_point)
Definition: fixed-dtoa.cc:171

References v8::internal::UseScratchRegisterScope::AcquireX(), v8::internal::ALWAYS_ALIGN_CSP, AssertStackConsistency(), Bic(), v8::internal::Assembler::bic(), DCHECK, v8::internal::CpuFeatures::IsSupported(), v8::internal::RoundUp(), sp_, space(), StackPointer(), Sub(), v8::internal::Assembler::sub(), and TmpList().

Referenced by Claim(), and ClaimBySMI().

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

◆ CalculateStackPassedWords() [1/3]

int v8::internal::MacroAssembler::CalculateStackPassedWords ( int  num_reg_arguments,
int  num_double_arguments 
)

◆ CalculateStackPassedWords() [2/3]

int v8::internal::MacroAssembler::CalculateStackPassedWords ( int  num_reg_arguments,
int  num_double_arguments 
)

◆ CalculateStackPassedWords() [3/3]

int v8::internal::MacroAssembler::CalculateStackPassedWords ( int  num_reg_arguments,
int  num_double_arguments 
)

◆ Call() [1/23]

void v8::internal::MacroAssembler::Call ( Address  destination,
RelocInfo::Mode  rmode 
)

◆ Call() [2/23]

void v8::internal::MacroAssembler::Call ( Address  target,
RelocInfo::Mode  rmode 
)

◆ Call() [3/23]

void v8::internal::MacroAssembler::Call ( Address  target,
RelocInfo::Mode  rmode,
COND_ARGS   
)

◆ Call() [4/23]

void v8::internal::MacroAssembler::Call ( Address  target,
RelocInfo::Mode  rmode,
COND_ARGS   
)

◆ Call() [5/23]

void v8::internal::MacroAssembler::Call ( Address  target,
RelocInfo::Mode  rmode,
Condition  cond = al,
TargetAddressStorageMode  mode = CAN_INLINE_TARGET_ADDRESS 
)

◆ Call() [6/23]

void v8::internal::MacroAssembler::Call ( const Operand op)

◆ Call() [7/23]

void v8::internal::MacroAssembler::Call ( ExternalReference  ext)

◆ Call() [8/23]

void v8::internal::MacroAssembler::Call ( Handle< Code code,
RelocInfo::Mode  rmode = RelocInfo::CODE_TARGET,
TypeFeedbackId  ast_id = TypeFeedbackId::None() 
)

◆ Call() [9/23]

void v8::internal::MacroAssembler::Call ( Handle< Code code,
RelocInfo::Mode  rmode = RelocInfo::CODE_TARGET,
TypeFeedbackId  ast_id = TypeFeedbackId::None(),
COND_ARGS   
)

◆ Call() [10/23]

void v8::internal::MacroAssembler::Call ( Handle< Code code,
RelocInfo::Mode  rmode = RelocInfo::CODE_TARGET,
TypeFeedbackId  ast_id = TypeFeedbackId::None(),
COND_ARGS   
)

◆ Call() [11/23]

void v8::internal::MacroAssembler::Call ( Handle< Code code,
RelocInfo::Mode  rmode = RelocInfo::CODE_TARGET,
TypeFeedbackId  ast_id = TypeFeedbackId::None(),
Condition  cond = al,
TargetAddressStorageMode  mode = CAN_INLINE_TARGET_ADDRESS 
)

◆ Call() [12/23]

void v8::internal::MacroAssembler::Call ( Handle< Code code_object,
RelocInfo::Mode  rmode,
TypeFeedbackId  ast_id = TypeFeedbackId::None() 
)

◆ Call() [13/23]

void v8::internal::MacroAssembler::Call ( Label *  target)

◆ Call() [14/23]

void v8::internal::MacroAssembler::Call ( Label *  target)

◆ Call() [15/23]

void v8::internal::MacroAssembler::Call ( Label *  target)
inline

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

824 { call(target); }

References v8::internal::Assembler::call().

+ Here is the call graph for this function:

◆ Call() [16/23]

void v8::internal::MacroAssembler::Call ( Label *  target)

◆ Call() [17/23]

void v8::internal::MacroAssembler::Call ( Label *  target)

◆ Call() [18/23]

void v8::internal::MacroAssembler::Call ( Label *  target)
inline

Definition at line 859 of file macro-assembler-x64.h.

859 { call(target); }

References v8::internal::Assembler::call().

+ Here is the call graph for this function:

◆ Call() [19/23]

void v8::internal::MacroAssembler::Call ( Label *  target)
inline

Definition at line 791 of file macro-assembler-x87.h.

791 { call(target); }

References v8::internal::Assembler::call().

+ Here is the call graph for this function:

◆ Call() [20/23]

void v8::internal::MacroAssembler::Call ( Register  target)

◆ Call() [21/23]

void v8::internal::MacroAssembler::Call ( Register  target,
COND_ARGS   
)

◆ Call() [22/23]

void v8::internal::MacroAssembler::Call ( Register  target,
COND_ARGS   
)

◆ Call() [23/23]

void v8::internal::MacroAssembler::Call ( Register  target,
Condition  cond = al 
)

Referenced by CallSelf(), and v8::internal::Deoptimizer::PatchCodeForDeoptimization().

+ Here is the caller graph for this function:

◆ CallApiFunctionAndReturn() [1/7]

void v8::internal::MacroAssembler::CallApiFunctionAndReturn ( Register  function_address,
ExternalReference  thunk_ref,
int  stack_space,
int  spill_offset,
MemOperand  return_value_operand,
MemOperand context_restore_operand 
)

◆ CallApiFunctionAndReturn() [2/7]

void v8::internal::MacroAssembler::CallApiFunctionAndReturn ( Register  function_address,
ExternalReference  thunk_ref,
int  stack_space,
MemOperand  return_value_operand,
MemOperand context_restore_operand 
)

◆ CallApiFunctionAndReturn() [3/7]

void v8::internal::MacroAssembler::CallApiFunctionAndReturn ( Register  function_address,
ExternalReference  thunk_ref,
int  stack_space,
MemOperand  return_value_operand,
MemOperand context_restore_operand 
)

◆ CallApiFunctionAndReturn() [4/7]

void v8::internal::MacroAssembler::CallApiFunctionAndReturn ( Register  function_address,
ExternalReference  thunk_ref,
int  stack_space,
MemOperand  return_value_operand,
MemOperand context_restore_operand 
)

◆ CallApiFunctionAndReturn() [5/7]

void v8::internal::MacroAssembler::CallApiFunctionAndReturn ( Register  function_address,
ExternalReference  thunk_ref,
Operand  thunk_last_arg,
int  stack_space,
Operand  return_value_operand,
Operand context_restore_operand 
)

◆ CallApiFunctionAndReturn() [6/7]

void v8::internal::MacroAssembler::CallApiFunctionAndReturn ( Register  function_address,
ExternalReference  thunk_ref,
Operand  thunk_last_arg,
int  stack_space,
Operand  return_value_operand,
Operand context_restore_operand 
)

◆ CallApiFunctionAndReturn() [7/7]

void v8::internal::MacroAssembler::CallApiFunctionAndReturn ( Register  function_address,
ExternalReference  thunk_ref,
Register  thunk_last_arg,
int  stack_space,
Operand  return_value_operand,
Operand context_restore_operand 
)

◆ CallCFunction() [1/21]

void v8::internal::MacroAssembler::CallCFunction ( ExternalReference  function,
int  num_arguments 
)

◆ CallCFunction() [2/21]

void v8::internal::MacroAssembler::CallCFunction ( ExternalReference  function,
int  num_arguments 
)

◆ CallCFunction() [3/21]

void v8::internal::MacroAssembler::CallCFunction ( ExternalReference  function,
int  num_arguments 
)

◆ CallCFunction() [4/21]

void v8::internal::MacroAssembler::CallCFunction ( ExternalReference  function,
int  num_arguments 
)

◆ CallCFunction() [5/21]

void v8::internal::MacroAssembler::CallCFunction ( ExternalReference  function,
int  num_arguments 
)

◆ CallCFunction() [6/21]

void v8::internal::MacroAssembler::CallCFunction ( ExternalReference  function,
int  num_arguments 
)

◆ CallCFunction() [7/21]

void v8::internal::MacroAssembler::CallCFunction ( ExternalReference  function,
int  num_reg_arguments 
)

◆ CallCFunction() [8/21]

void v8::internal::MacroAssembler::CallCFunction ( ExternalReference  function,
int  num_reg_arguments,
int  num_double_arguments 
)

◆ CallCFunction() [9/21]

void v8::internal::MacroAssembler::CallCFunction ( ExternalReference  function,
int  num_reg_arguments,
int  num_double_arguments 
)

◆ CallCFunction() [10/21]

void v8::internal::MacroAssembler::CallCFunction ( ExternalReference  function,
int  num_reg_arguments,
int  num_double_arguments 
)

◆ CallCFunction() [11/21]

void v8::internal::MacroAssembler::CallCFunction ( ExternalReference  function,
int  num_reg_arguments,
int  num_double_arguments 
)

◆ CallCFunction() [12/21]

void v8::internal::MacroAssembler::CallCFunction ( Register  function,
int  num_arguments 
)

◆ CallCFunction() [13/21]

void v8::internal::MacroAssembler::CallCFunction ( Register  function,
int  num_arguments 
)

◆ CallCFunction() [14/21]

void v8::internal::MacroAssembler::CallCFunction ( Register  function,
int  num_arguments 
)

◆ CallCFunction() [15/21]

void v8::internal::MacroAssembler::CallCFunction ( Register  function,
int  num_arguments 
)

◆ CallCFunction() [16/21]

void v8::internal::MacroAssembler::CallCFunction ( Register  function,
int  num_arguments 
)

◆ CallCFunction() [17/21]

void v8::internal::MacroAssembler::CallCFunction ( Register  function,
int  num_arguments 
)

◆ CallCFunction() [18/21]

void v8::internal::MacroAssembler::CallCFunction ( Register  function,
int  num_reg_arguments,
int  num_double_arguments 
)

◆ CallCFunction() [19/21]

void v8::internal::MacroAssembler::CallCFunction ( Register  function,
int  num_reg_arguments,
int  num_double_arguments 
)

◆ CallCFunction() [20/21]

void v8::internal::MacroAssembler::CallCFunction ( Register  function,
int  num_reg_arguments,
int  num_double_arguments 
)

◆ CallCFunction() [21/21]

void v8::internal::MacroAssembler::CallCFunction ( Register  function,
int  num_reg_arguments,
int  num_double_arguments 
)

◆ CallCFunctionHelper() [1/3]

void v8::internal::MacroAssembler::CallCFunctionHelper ( Register  function,
int  num_reg_arguments,
int  num_double_arguments 
)
private

◆ CallCFunctionHelper() [2/3]

void v8::internal::MacroAssembler::CallCFunctionHelper ( Register  function,
int  num_reg_arguments,
int  num_double_arguments 
)
private

◆ CallCFunctionHelper() [3/3]

void v8::internal::MacroAssembler::CallCFunctionHelper ( Register  function,
int  num_reg_arguments,
int  num_double_arguments 
)
private

◆ CallExternalReference() [1/7]

void v8::internal::MacroAssembler::CallExternalReference ( const ExternalReference &  ext,
int  num_arguments 
)

◆ CallExternalReference() [2/7]

void v8::internal::MacroAssembler::CallExternalReference ( const ExternalReference &  ext,
int  num_arguments 
)

◆ CallExternalReference() [3/7]

void v8::internal::MacroAssembler::CallExternalReference ( const ExternalReference &  ext,
int  num_arguments 
)

◆ CallExternalReference() [4/7]

void v8::internal::MacroAssembler::CallExternalReference ( const ExternalReference &  ext,
int  num_arguments,
BranchDelaySlot  bd = PROTECT 
)

◆ CallExternalReference() [5/7]

void v8::internal::MacroAssembler::CallExternalReference ( const ExternalReference &  ext,
int  num_arguments,
BranchDelaySlot  bd = PROTECT 
)

◆ CallExternalReference() [6/7]

void v8::internal::MacroAssembler::CallExternalReference ( ExternalReference  ref,
int  num_arguments 
)

◆ CallExternalReference() [7/7]

void v8::internal::MacroAssembler::CallExternalReference ( ExternalReference  ref,
int  num_arguments 
)

◆ CallJSExitStub() [1/2]

void v8::internal::MacroAssembler::CallJSExitStub ( CodeStub stub)

◆ CallJSExitStub() [2/2]

void v8::internal::MacroAssembler::CallJSExitStub ( CodeStub stub)

◆ CallPrintf()

void v8::internal::MacroAssembler::CallPrintf ( int  arg_count = 0,
const CPURegister args = NULL 
)
private

◆ CallRuntime() [1/14]

void v8::internal::MacroAssembler::CallRuntime ( const Runtime::Function f,
int  num_arguments,
SaveFPRegsMode  save_doubles = kDontSaveFPRegs 
)

Referenced by CallRuntime(), and CallRuntimeSaveDoubles().

+ Here is the caller graph for this function:

◆ CallRuntime() [2/14]

void v8::internal::MacroAssembler::CallRuntime ( const Runtime::Function f,
int  num_arguments,
SaveFPRegsMode  save_doubles = kDontSaveFPRegs 
)

◆ CallRuntime() [3/14]

void v8::internal::MacroAssembler::CallRuntime ( const Runtime::Function f,
int  num_arguments,
SaveFPRegsMode  save_doubles = kDontSaveFPRegs 
)

◆ CallRuntime() [4/14]

void v8::internal::MacroAssembler::CallRuntime ( const Runtime::Function f,
int  num_arguments,
SaveFPRegsMode  save_doubles = kDontSaveFPRegs 
)

◆ CallRuntime() [5/14]

void v8::internal::MacroAssembler::CallRuntime ( const Runtime::Function f,
int  num_arguments,
SaveFPRegsMode  save_doubles = kDontSaveFPRegs 
)

◆ CallRuntime() [6/14]

void v8::internal::MacroAssembler::CallRuntime ( const Runtime::Function f,
int  num_arguments,
SaveFPRegsMode  save_doubles = kDontSaveFPRegs 
)

◆ CallRuntime() [7/14]

void v8::internal::MacroAssembler::CallRuntime ( const Runtime::Function f,
int  num_arguments,
SaveFPRegsMode  save_doubles = kDontSaveFPRegs 
)

◆ CallRuntime() [8/14]

void v8::internal::MacroAssembler::CallRuntime ( Runtime::FunctionId  id,
int  num_arguments,
SaveFPRegsMode  save_doubles = kDontSaveFPRegs 
)
inline

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

1053  {
1054  CallRuntime(Runtime::FunctionForId(id), num_arguments, save_doubles);
1055  }
void CallRuntime(const Runtime::Function *f, int num_arguments, SaveFPRegsMode save_doubles=kDontSaveFPRegs)
static const Function * FunctionForId(FunctionId id)
Definition: runtime.cc:9312

References CallRuntime(), and v8::internal::Runtime::FunctionForId().

+ Here is the call graph for this function:

◆ CallRuntime() [9/14]

void v8::internal::MacroAssembler::CallRuntime ( Runtime::FunctionId  id,
int  num_arguments,
SaveFPRegsMode  save_doubles = kDontSaveFPRegs 
)
inline

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

1104  {
1105  CallRuntime(Runtime::FunctionForId(id), num_arguments, save_doubles);
1106  }

References CallRuntime(), and v8::internal::Runtime::FunctionForId().

+ Here is the call graph for this function:

◆ CallRuntime() [10/14]

void v8::internal::MacroAssembler::CallRuntime ( Runtime::FunctionId  id,
int  num_arguments,
SaveFPRegsMode  save_doubles = kDontSaveFPRegs 
)
inline

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

754  {
755  CallRuntime(Runtime::FunctionForId(id), num_arguments, save_doubles);
756  }

References CallRuntime(), and v8::internal::Runtime::FunctionForId().

+ Here is the call graph for this function:

◆ CallRuntime() [11/14]

void v8::internal::MacroAssembler::CallRuntime ( Runtime::FunctionId  id,
int  num_arguments,
SaveFPRegsMode  save_doubles = kDontSaveFPRegs 
)
inline

Definition at line 1217 of file macro-assembler-mips.h.

1219  {
1220  CallRuntime(Runtime::FunctionForId(id), num_arguments, save_doubles);
1221  }

References CallRuntime(), and v8::internal::Runtime::FunctionForId().

+ Here is the call graph for this function:

◆ CallRuntime() [12/14]

void v8::internal::MacroAssembler::CallRuntime ( Runtime::FunctionId  id,
int  num_arguments,
SaveFPRegsMode  save_doubles = kDontSaveFPRegs 
)
inline

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

1237  {
1238  CallRuntime(Runtime::FunctionForId(id), num_arguments, save_doubles);
1239  }

References CallRuntime(), and v8::internal::Runtime::FunctionForId().

+ Here is the call graph for this function:

◆ CallRuntime() [13/14]

void v8::internal::MacroAssembler::CallRuntime ( Runtime::FunctionId  id,
int  num_arguments,
SaveFPRegsMode  save_doubles = kDontSaveFPRegs 
)
inline

Definition at line 1300 of file macro-assembler-x64.h.

1302  {
1303  CallRuntime(Runtime::FunctionForId(id), num_arguments, save_doubles);
1304  }

References CallRuntime(), and v8::internal::Runtime::FunctionForId().

+ Here is the call graph for this function:

◆ CallRuntime() [14/14]

void v8::internal::MacroAssembler::CallRuntime ( Runtime::FunctionId  id,
int  num_arguments,
SaveFPRegsMode  save_doubles = kDontSaveFPRegs 
)
inline

Definition at line 720 of file macro-assembler-x87.h.

721  {
722  CallRuntime(Runtime::FunctionForId(id), num_arguments, save_doubles);
723  }

References CallRuntime(), and v8::internal::Runtime::FunctionForId().

+ Here is the call graph for this function:

◆ CallRuntimeSaveDoubles() [1/7]

void v8::internal::MacroAssembler::CallRuntimeSaveDoubles ( Runtime::FunctionId  id)
inline

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

1045  {
1046  const Runtime::Function* function = Runtime::FunctionForId(id);
1047  CallRuntime(function, function->nargs, kSaveFPRegs);
1048  }

References CallRuntime(), v8::internal::Runtime::FunctionForId(), and v8::internal::kSaveFPRegs.

+ Here is the call graph for this function:

◆ CallRuntimeSaveDoubles() [2/7]

void v8::internal::MacroAssembler::CallRuntimeSaveDoubles ( Runtime::FunctionId  id)
inline

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

1108  {
1109  const Runtime::Function* function = Runtime::FunctionForId(id);
1110  CallRuntime(function, function->nargs, kSaveFPRegs);
1111  }

References CallRuntime(), v8::internal::Runtime::FunctionForId(), and v8::internal::kSaveFPRegs.

+ Here is the call graph for this function:

◆ CallRuntimeSaveDoubles() [3/7]

void v8::internal::MacroAssembler::CallRuntimeSaveDoubles ( Runtime::FunctionId  id)
inline

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

746  {
747  const Runtime::Function* function = Runtime::FunctionForId(id);
748  CallRuntime(function, function->nargs, kSaveFPRegs);
749  }

References CallRuntime(), v8::internal::Runtime::FunctionForId(), and v8::internal::kSaveFPRegs.

+ Here is the call graph for this function:

◆ CallRuntimeSaveDoubles() [4/7]

void v8::internal::MacroAssembler::CallRuntimeSaveDoubles ( Runtime::FunctionId  id)
inline

Definition at line 1211 of file macro-assembler-mips.h.

1211  {
1212  const Runtime::Function* function = Runtime::FunctionForId(id);
1213  CallRuntime(function, function->nargs, kSaveFPRegs);
1214  }

References CallRuntime(), v8::internal::Runtime::FunctionForId(), and v8::internal::kSaveFPRegs.

+ Here is the call graph for this function:

◆ CallRuntimeSaveDoubles() [5/7]

void v8::internal::MacroAssembler::CallRuntimeSaveDoubles ( Runtime::FunctionId  id)
inline

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

1229  {
1230  const Runtime::Function* function = Runtime::FunctionForId(id);
1231  CallRuntime(function, function->nargs, kSaveFPRegs);
1232  }

References CallRuntime(), v8::internal::Runtime::FunctionForId(), and v8::internal::kSaveFPRegs.

+ Here is the call graph for this function:

◆ CallRuntimeSaveDoubles() [6/7]

void v8::internal::MacroAssembler::CallRuntimeSaveDoubles ( Runtime::FunctionId  id)
inline

Definition at line 1294 of file macro-assembler-x64.h.

1294  {
1295  const Runtime::Function* function = Runtime::FunctionForId(id);
1296  CallRuntime(function, function->nargs, kSaveFPRegs);
1297  }

References CallRuntime(), v8::internal::Runtime::FunctionForId(), and v8::internal::kSaveFPRegs.

+ Here is the call graph for this function:

◆ CallRuntimeSaveDoubles() [7/7]

void v8::internal::MacroAssembler::CallRuntimeSaveDoubles ( Runtime::FunctionId  id)
inline

Definition at line 714 of file macro-assembler-x87.h.

714  {
715  const Runtime::Function* function = Runtime::FunctionForId(id);
716  CallRuntime(function, function->nargs, kSaveFPRegs);
717  }

References CallRuntime(), v8::internal::Runtime::FunctionForId(), and v8::internal::kSaveFPRegs.

+ Here is the call graph for this function:

◆ CallSelf() [1/3]

void v8::internal::MacroAssembler::CallSelf ( )
inline

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

829  {
830  Handle<Code> self(reinterpret_cast<Code**>(CodeObject().location()));
832  }

References v8::internal::Assembler::call(), v8::internal::RelocInfo::CODE_TARGET, and CodeObject().

+ Here is the call graph for this function:

◆ CallSelf() [2/3]

void v8::internal::MacroAssembler::CallSelf ( )
inline

Definition at line 923 of file macro-assembler-x64.h.

923  {
924  Handle<Code> self(reinterpret_cast<Code**>(CodeObject().location()));
926  }
void Call(Register target, Condition cond=al)

References Call(), v8::internal::RelocInfo::CODE_TARGET, and CodeObject().

+ Here is the call graph for this function:

◆ CallSelf() [3/3]

void v8::internal::MacroAssembler::CallSelf ( )
inline

Definition at line 796 of file macro-assembler-x87.h.

796  {
797  Handle<Code> self(reinterpret_cast<Code**>(CodeObject().location()));
799  }

References v8::internal::Assembler::call(), v8::internal::RelocInfo::CODE_TARGET, and CodeObject().

+ Here is the call graph for this function:

◆ CallSize() [1/18]

int v8::internal::MacroAssembler::CallSize ( Address  destination)
inline

Definition at line 905 of file macro-assembler-x64.h.

905  {
906  return kCallSequenceLength;
907  }
static const int kCallSequenceLength

References v8::internal::Assembler::kCallSequenceLength.

◆ CallSize() [2/18]

static int v8::internal::MacroAssembler::CallSize ( Address  target,
RelocInfo::Mode  rmode 
)
static

◆ CallSize() [3/18]

static int v8::internal::MacroAssembler::CallSize ( Address  target,
RelocInfo::Mode  rmode,
COND_ARGS   
)
static

◆ CallSize() [4/18]

static int v8::internal::MacroAssembler::CallSize ( Address  target,
RelocInfo::Mode  rmode,
COND_ARGS   
)
static

◆ CallSize() [5/18]

int v8::internal::MacroAssembler::CallSize ( Address  target,
RelocInfo::Mode  rmode,
Condition  cond = al 
)

◆ CallSize() [6/18]

int v8::internal::MacroAssembler::CallSize ( const Operand target)
inline

Definition at line 917 of file macro-assembler-x64.h.

917  {
918  // Opcode: REX_opt FF /2 m64
919  return (target.requires_rex() ? 2 : 1) + target.operand_size();
920  }

◆ CallSize() [7/18]

int v8::internal::MacroAssembler::CallSize ( ExternalReference  ext)

◆ CallSize() [8/18]

static int v8::internal::MacroAssembler::CallSize ( Handle< Code code,
RelocInfo::Mode  rmode = RelocInfo::CODE_TARGET,
TypeFeedbackId  ast_id = TypeFeedbackId::None() 
)
static

◆ CallSize() [9/18]

int v8::internal::MacroAssembler::CallSize ( Handle< Code code,
RelocInfo::Mode  rmode = RelocInfo::CODE_TARGET,
TypeFeedbackId  ast_id = TypeFeedbackId::None(),
COND_ARGS   
)

◆ CallSize() [10/18]

int v8::internal::MacroAssembler::CallSize ( Handle< Code code,
RelocInfo::Mode  rmode = RelocInfo::CODE_TARGET,
TypeFeedbackId  ast_id = TypeFeedbackId::None(),
COND_ARGS   
)

◆ CallSize() [11/18]

int v8::internal::MacroAssembler::CallSize ( Handle< Code code,
RelocInfo::Mode  rmode = RelocInfo::CODE_TARGET,
TypeFeedbackId  ast_id = TypeFeedbackId::None(),
Condition  cond = al 
)

◆ CallSize() [12/18]

int v8::internal::MacroAssembler::CallSize ( Handle< Code code_object)
inline

Definition at line 909 of file macro-assembler-x64.h.

909  {
910  // Code calls use 32-bit relative addressing.
912  }
static const int kShortCallInstructionLength

References v8::internal::Assembler::kShortCallInstructionLength.

◆ CallSize() [13/18]

static int v8::internal::MacroAssembler::CallSize ( Label *  target)
static

◆ CallSize() [14/18]

static int v8::internal::MacroAssembler::CallSize ( Register  target)
static

◆ CallSize() [15/18]

int v8::internal::MacroAssembler::CallSize ( Register  target)
inline

Definition at line 913 of file macro-assembler-x64.h.

913  {
914  // Opcode: REX_opt FF /2 m64
915  return (target.high_bit() != 0) ? 3 : 2;
916  }

References v8::internal::Register::high_bit().

+ Here is the call graph for this function:

◆ CallSize() [16/18]

static int v8::internal::MacroAssembler::CallSize ( Register  target,
COND_ARGS   
)
static

◆ CallSize() [17/18]

static int v8::internal::MacroAssembler::CallSize ( Register  target,
COND_ARGS   
)
static

◆ CallSize() [18/18]

static int v8::internal::MacroAssembler::CallSize ( Register  target,
Condition  cond = al 
)
static

◆ CallSizeNotPredictableCodeSize()

static int v8::internal::MacroAssembler::CallSizeNotPredictableCodeSize ( Isolate isolate,
Address  target,
RelocInfo::Mode  rmode,
Condition  cond = al 
)
static

Referenced by v8::internal::Deoptimizer::PatchCodeForDeoptimization().

+ Here is the caller graph for this function:

◆ CallStub() [1/7]

void v8::internal::MacroAssembler::CallStub ( CodeStub stub,
TypeFeedbackId  ast_id = TypeFeedbackId::None() 
)

◆ CallStub() [2/7]

void v8::internal::MacroAssembler::CallStub ( CodeStub stub,
TypeFeedbackId  ast_id = TypeFeedbackId::None() 
)

◆ CallStub() [3/7]

void v8::internal::MacroAssembler::CallStub ( CodeStub stub,
TypeFeedbackId  ast_id = TypeFeedbackId::None() 
)

◆ CallStub() [4/7]

void v8::internal::MacroAssembler::CallStub ( CodeStub stub,
TypeFeedbackId  ast_id = TypeFeedbackId::None() 
)

◆ CallStub() [5/7]

void v8::internal::MacroAssembler::CallStub ( CodeStub stub,
TypeFeedbackId  ast_id = TypeFeedbackId::None(),
COND_ARGS   
)

◆ CallStub() [6/7]

void v8::internal::MacroAssembler::CallStub ( CodeStub stub,
TypeFeedbackId  ast_id = TypeFeedbackId::None(),
COND_ARGS   
)

◆ CallStub() [7/7]

void v8::internal::MacroAssembler::CallStub ( CodeStub stub,
TypeFeedbackId  ast_id = TypeFeedbackId::None(),
Condition  cond = al 
)

◆ CallStubSize()

int v8::internal::MacroAssembler::CallStubSize ( CodeStub stub,
TypeFeedbackId  ast_id = TypeFeedbackId::None(),
Condition  cond = al 
)

◆ CanonicalizeNaN() [1/2]

void v8::internal::MacroAssembler::CanonicalizeNaN ( const FPRegister dst,
const FPRegister src 
)

Referenced by CanonicalizeNaN().

+ Here is the caller graph for this function:

◆ CanonicalizeNaN() [2/2]

void v8::internal::MacroAssembler::CanonicalizeNaN ( const FPRegister reg)
inline

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

847  {
848  CanonicalizeNaN(reg, reg);
849  }
void CanonicalizeNaN(const FPRegister &dst, const FPRegister &src)

References CanonicalizeNaN().

+ Here is the call graph for this function:

◆ Cbnz()

void v8::internal::MacroAssembler::Cbnz ( const Register rt,
Label *  label 
)

Referenced by CompareAndBranch().

+ Here is the caller graph for this function:

◆ Cbz()

void v8::internal::MacroAssembler::Cbz ( const Register rt,
Label *  label 
)

Referenced by CompareAndBranch().

+ Here is the caller graph for this function:

◆ Ccmn()

void v8::internal::MacroAssembler::Ccmn ( const Register rn,
const Operand operand,
StatusFlags  nzcv,
Condition  cond 
)
inline

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

141  {
142  DCHECK(allow_macro_instructions_);
143  if (operand.IsImmediate() && (operand.ImmediateValue() < 0)) {
144  ConditionalCompareMacro(rn, -operand.ImmediateValue(), nzcv, cond, CCMP);
145  } else {
146  ConditionalCompareMacro(rn, operand, nzcv, cond, CCMN);
147  }
148 }
void ConditionalCompareMacro(const Register &rn, const Operand &operand, StatusFlags nzcv, Condition cond, ConditionalCompareOp op)

References v8::internal::CCMN, v8::internal::CCMP, ConditionalCompareMacro(), DCHECK, v8::internal::Operand::ImmediateValue(), and v8::internal::Operand::IsImmediate().

+ Here is the call graph for this function:

◆ Ccmp()

void v8::internal::MacroAssembler::Ccmp ( const Register rn,
const Operand operand,
StatusFlags  nzcv,
Condition  cond 
)
inline

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

128  {
129  DCHECK(allow_macro_instructions_);
130  if (operand.IsImmediate() && (operand.ImmediateValue() < 0)) {
131  ConditionalCompareMacro(rn, -operand.ImmediateValue(), nzcv, cond, CCMN);
132  } else {
133  ConditionalCompareMacro(rn, operand, nzcv, cond, CCMP);
134  }
135 }

References v8::internal::CCMN, v8::internal::CCMP, ConditionalCompareMacro(), DCHECK, v8::internal::Operand::ImmediateValue(), and v8::internal::Operand::IsImmediate().

Referenced by IsInstanceJSObjectType().

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

◆ Ceil_l_d()

void v8::internal::MacroAssembler::Ceil_l_d ( FPURegister  fd,
FPURegister  fs 
)

◆ Ceil_w_d() [1/2]

void v8::internal::MacroAssembler::Ceil_w_d ( FPURegister  fd,
FPURegister  fs 
)

◆ Ceil_w_d() [2/2]

void v8::internal::MacroAssembler::Ceil_w_d ( FPURegister  fd,
FPURegister  fs 
)

◆ Check() [1/7]

void v8::internal::MacroAssembler::Check ( Condition  cc,
BailoutReason  reason 
)

◆ Check() [2/7]

void v8::internal::MacroAssembler::Check ( Condition  cc,
BailoutReason  reason 
)

◆ Check() [3/7]

void v8::internal::MacroAssembler::Check ( Condition  cc,
BailoutReason  reason 
)

◆ Check() [4/7]

void v8::internal::MacroAssembler::Check ( Condition  cc,
BailoutReason  reason,
Register  rs,
Operand  rt 
)

◆ Check() [5/7]

void v8::internal::MacroAssembler::Check ( Condition  cc,
BailoutReason  reason,
Register  rs,
Operand  rt 
)

◆ Check() [6/7]

void v8::internal::MacroAssembler::Check ( Condition  cond,
BailoutReason  reason 
)

◆ Check() [7/7]

void v8::internal::MacroAssembler::Check ( Condition  cond,
BailoutReason  reason 
)

◆ CheckAccessGlobalProxy() [1/7]

void v8::internal::MacroAssembler::CheckAccessGlobalProxy ( Register  holder_reg,
Register  scratch,
Label *  miss 
)

◆ CheckAccessGlobalProxy() [2/7]

void v8::internal::MacroAssembler::CheckAccessGlobalProxy ( Register  holder_reg,
Register  scratch,
Label *  miss 
)

◆ CheckAccessGlobalProxy() [3/7]

void v8::internal::MacroAssembler::CheckAccessGlobalProxy ( Register  holder_reg,
Register  scratch,
Label *  miss 
)

◆ CheckAccessGlobalProxy() [4/7]

void v8::internal::MacroAssembler::CheckAccessGlobalProxy ( Register  holder_reg,
Register  scratch,
Label *  miss 
)

◆ CheckAccessGlobalProxy() [5/7]

void v8::internal::MacroAssembler::CheckAccessGlobalProxy ( Register  holder_reg,
Register  scratch1,
Register  scratch2,
Label *  miss 
)

◆ CheckAccessGlobalProxy() [6/7]

void v8::internal::MacroAssembler::CheckAccessGlobalProxy ( Register  holder_reg,
Register  scratch1,
Register  scratch2,
Label *  miss 
)

◆ CheckAccessGlobalProxy() [7/7]

void v8::internal::MacroAssembler::CheckAccessGlobalProxy ( Register  holder_reg,
Register  scratch1,
Register  scratch2,
Label *  miss 
)

◆ CheckBothNonNegativeSmi()

Condition v8::internal::MacroAssembler::CheckBothNonNegativeSmi ( Register  first,
Register  second 
)

◆ CheckBothSmi()

Condition v8::internal::MacroAssembler::CheckBothSmi ( Register  first,
Register  second 
)

◆ CheckEitherSmi()

Condition v8::internal::MacroAssembler::CheckEitherSmi ( Register  first,
Register  second,
Register  scratch = kScratchRegister 
)

◆ CheckEnumCache() [1/7]

void v8::internal::MacroAssembler::CheckEnumCache ( Label *  call_runtime)

◆ CheckEnumCache() [2/7]

void v8::internal::MacroAssembler::CheckEnumCache ( Label *  call_runtime)

◆ CheckEnumCache() [3/7]

void v8::internal::MacroAssembler::CheckEnumCache ( Register  null_value,
Label *  call_runtime 
)

◆ CheckEnumCache() [4/7]

void v8::internal::MacroAssembler::CheckEnumCache ( Register  null_value,
Label *  call_runtime 
)

◆ CheckEnumCache() [5/7]

void v8::internal::MacroAssembler::CheckEnumCache ( Register  null_value,
Label *  call_runtime 
)

◆ CheckEnumCache() [6/7]

void v8::internal::MacroAssembler::CheckEnumCache ( Register  null_value,
Label *  call_runtime 
)

◆ CheckEnumCache() [7/7]

void v8::internal::MacroAssembler::CheckEnumCache ( Register  object,
Register  null_value,
Register  scratch0,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  call_runtime 
)

◆ CheckFastElements() [1/7]

void v8::internal::MacroAssembler::CheckFastElements ( Register  map,
Label *  fail,
Label::Distance  distance = Label::kFar 
)

◆ CheckFastElements() [2/7]

void v8::internal::MacroAssembler::CheckFastElements ( Register  map,
Label *  fail,
Label::Distance  distance = Label::kFar 
)

◆ CheckFastElements() [3/7]

void v8::internal::MacroAssembler::CheckFastElements ( Register  map,
Label *  fail,
Label::Distance  distance = Label::kFar 
)

◆ CheckFastElements() [4/7]

void v8::internal::MacroAssembler::CheckFastElements ( Register  map,
Register  scratch,
Label *  fail 
)

◆ CheckFastElements() [5/7]

void v8::internal::MacroAssembler::CheckFastElements ( Register  map,
Register  scratch,
Label *  fail 
)

◆ CheckFastElements() [6/7]

void v8::internal::MacroAssembler::CheckFastElements ( Register  map,
Register  scratch,
Label *  fail 
)

◆ CheckFastElements() [7/7]

void v8::internal::MacroAssembler::CheckFastElements ( Register  map,
Register  scratch,
Label *  fail 
)

◆ CheckFastObjectElements() [1/7]

void v8::internal::MacroAssembler::CheckFastObjectElements ( Register  map,
Label *  fail,
Label::Distance  distance = Label::kFar 
)

◆ CheckFastObjectElements() [2/7]

void v8::internal::MacroAssembler::CheckFastObjectElements ( Register  map,
Label *  fail,
Label::Distance  distance = Label::kFar 
)

◆ CheckFastObjectElements() [3/7]

void v8::internal::MacroAssembler::CheckFastObjectElements ( Register  map,
Label *  fail,
Label::Distance  distance = Label::kFar 
)

◆ CheckFastObjectElements() [4/7]

void v8::internal::MacroAssembler::CheckFastObjectElements ( Register  map,
Register  scratch,
Label *  fail 
)

◆ CheckFastObjectElements() [5/7]

void v8::internal::MacroAssembler::CheckFastObjectElements ( Register  map,
Register  scratch,
Label *  fail 
)

◆ CheckFastObjectElements() [6/7]

void v8::internal::MacroAssembler::CheckFastObjectElements ( Register  map,
Register  scratch,
Label *  fail 
)

◆ CheckFastObjectElements() [7/7]

void v8::internal::MacroAssembler::CheckFastObjectElements ( Register  map,
Register  scratch,
Label *  fail 
)

◆ CheckFastSmiElements() [1/6]

void v8::internal::MacroAssembler::CheckFastSmiElements ( Register  map,
Label *  fail,
Label::Distance  distance = Label::kFar 
)

◆ CheckFastSmiElements() [2/6]

void v8::internal::MacroAssembler::CheckFastSmiElements ( Register  map,
Label *  fail,
Label::Distance  distance = Label::kFar 
)

◆ CheckFastSmiElements() [3/6]

void v8::internal::MacroAssembler::CheckFastSmiElements ( Register  map,
Label *  fail,
Label::Distance  distance = Label::kFar 
)

◆ CheckFastSmiElements() [4/6]

void v8::internal::MacroAssembler::CheckFastSmiElements ( Register  map,
Register  scratch,
Label *  fail 
)

◆ CheckFastSmiElements() [5/6]

void v8::internal::MacroAssembler::CheckFastSmiElements ( Register  map,
Register  scratch,
Label *  fail 
)

◆ CheckFastSmiElements() [6/6]

void v8::internal::MacroAssembler::CheckFastSmiElements ( Register  map,
Register  scratch,
Label *  fail 
)

◆ CheckFor32DRegs()

void v8::internal::MacroAssembler::CheckFor32DRegs ( Register  scratch)

◆ CheckInteger32ValidSmiValue()

Condition v8::internal::MacroAssembler::CheckInteger32ValidSmiValue ( Register  src)

◆ CheckIsMinSmi()

Condition v8::internal::MacroAssembler::CheckIsMinSmi ( Register  src)

◆ CheckMap() [1/12]

void v8::internal::MacroAssembler::CheckMap ( Register  obj,
Handle< Map map,
Label *  fail,
SmiCheckType  smi_check_type 
)

◆ CheckMap() [2/12]

void v8::internal::MacroAssembler::CheckMap ( Register  obj,
Handle< Map map,
Label *  fail,
SmiCheckType  smi_check_type 
)

◆ CheckMap() [3/12]

void v8::internal::MacroAssembler::CheckMap ( Register  obj,
Handle< Map map,
Label *  fail,
SmiCheckType  smi_check_type 
)

◆ CheckMap() [4/12]

void v8::internal::MacroAssembler::CheckMap ( Register  obj,
Register  scratch,
Handle< Map map,
Label *  fail,
SmiCheckType  smi_check_type 
)

◆ CheckMap() [5/12]

void v8::internal::MacroAssembler::CheckMap ( Register  obj,
Register  scratch,
Handle< Map map,
Label *  fail,
SmiCheckType  smi_check_type 
)

◆ CheckMap() [6/12]

void v8::internal::MacroAssembler::CheckMap ( Register  obj,
Register  scratch,
Handle< Map map,
Label *  fail,
SmiCheckType  smi_check_type 
)

◆ CheckMap() [7/12]

void v8::internal::MacroAssembler::CheckMap ( Register  obj,
Register  scratch,
Handle< Map map,
Label *  fail,
SmiCheckType  smi_check_type 
)

◆ CheckMap() [8/12]

void v8::internal::MacroAssembler::CheckMap ( Register  obj,
Register  scratch,
Heap::RootListIndex  index,
Label *  fail,
SmiCheckType  smi_check_type 
)

◆ CheckMap() [9/12]

void v8::internal::MacroAssembler::CheckMap ( Register  obj,
Register  scratch,
Heap::RootListIndex  index,
Label *  fail,
SmiCheckType  smi_check_type 
)

◆ CheckMap() [10/12]

void v8::internal::MacroAssembler::CheckMap ( Register  obj,
Register  scratch,
Heap::RootListIndex  index,
Label *  fail,
SmiCheckType  smi_check_type 
)

◆ CheckMap() [11/12]

void v8::internal::MacroAssembler::CheckMap ( Register  obj,
Register  scratch,
Heap::RootListIndex  index,
Label *  fail,
SmiCheckType  smi_check_type 
)

◆ CheckMap() [12/12]

void v8::internal::MacroAssembler::CheckMap ( Register  obj_map,
Handle< Map map,
Label *  fail,
SmiCheckType  smi_check_type 
)

◆ CheckMapDeprecated() [1/7]

void v8::internal::MacroAssembler::CheckMapDeprecated ( Handle< Map map,
Register  scratch,
Label *  if_deprecated 
)

◆ CheckMapDeprecated() [2/7]

void v8::internal::MacroAssembler::CheckMapDeprecated ( Handle< Map map,
Register  scratch,
Label *  if_deprecated 
)

◆ CheckMapDeprecated() [3/7]

void v8::internal::MacroAssembler::CheckMapDeprecated ( Handle< Map map,
Register  scratch,
Label *  if_deprecated 
)

◆ CheckMapDeprecated() [4/7]

void v8::internal::MacroAssembler::CheckMapDeprecated ( Handle< Map map,
Register  scratch,
Label *  if_deprecated 
)

◆ CheckMapDeprecated() [5/7]

void v8::internal::MacroAssembler::CheckMapDeprecated ( Handle< Map map,
Register  scratch,
Label *  if_deprecated 
)

◆ CheckMapDeprecated() [6/7]

void v8::internal::MacroAssembler::CheckMapDeprecated ( Handle< Map map,
Register  scratch,
Label *  if_deprecated 
)

◆ CheckMapDeprecated() [7/7]

void v8::internal::MacroAssembler::CheckMapDeprecated ( Handle< Map map,
Register  scratch,
Label *  if_deprecated 
)

◆ CheckNonNegativeSmi()

Condition v8::internal::MacroAssembler::CheckNonNegativeSmi ( Register  src)

◆ CheckObjectTypeRange()

void v8::internal::MacroAssembler::CheckObjectTypeRange ( Register  heap_object,
Register  map,
InstanceType  min_type,
InstanceType  max_type,
Label *  false_label 
)

◆ CheckPageFlag() [1/6]

void v8::internal::MacroAssembler::CheckPageFlag ( Register  object,
Register  scratch,
int  mask,
Condition  cc,
Label *  condition_met 
)

◆ CheckPageFlag() [2/6]

void v8::internal::MacroAssembler::CheckPageFlag ( Register  object,
Register  scratch,
int  mask,
Condition  cc,
Label *  condition_met 
)

◆ CheckPageFlag() [3/6]

void v8::internal::MacroAssembler::CheckPageFlag ( Register  object,
Register  scratch,
int  mask,
Condition  cc,
Label *  condition_met 
)

◆ CheckPageFlag() [4/6]

void v8::internal::MacroAssembler::CheckPageFlag ( Register  object,
Register  scratch,
int  mask,
Condition  cc,
Label *  condition_met,
Label::Distance  condition_met_distance = Label::kFar 
)

◆ CheckPageFlag() [5/6]

void v8::internal::MacroAssembler::CheckPageFlag ( Register  object,
Register  scratch,
int  mask,
Condition  cc,
Label *  condition_met,
Label::Distance  condition_met_distance = Label::kFar 
)

◆ CheckPageFlag() [6/6]

void v8::internal::MacroAssembler::CheckPageFlag ( Register  object,
Register  scratch,
int  mask,
Condition  cc,
Label *  condition_met,
Label::Distance  condition_met_distance = Label::kFar 
)

◆ CheckPageFlagClear()

void v8::internal::MacroAssembler::CheckPageFlagClear ( const Register object,
const Register scratch,
int  mask,
Label *  if_all_clear 
)

◆ CheckPageFlagForMap() [1/2]

void v8::internal::MacroAssembler::CheckPageFlagForMap ( Handle< Map map,
int  mask,
Condition  cc,
Label *  condition_met,
Label::Distance  condition_met_distance = Label::kFar 
)

◆ CheckPageFlagForMap() [2/2]

void v8::internal::MacroAssembler::CheckPageFlagForMap ( Handle< Map map,
int  mask,
Condition  cc,
Label *  condition_met,
Label::Distance  condition_met_distance = Label::kFar 
)

◆ CheckPageFlagSet()

void v8::internal::MacroAssembler::CheckPageFlagSet ( const Register object,
const Register scratch,
int  mask,
Label *  if_any_set 
)

◆ CheckRegisterIsClear()

void v8::internal::MacroAssembler::CheckRegisterIsClear ( Register  reg,
BailoutReason  reason 
)

◆ CheckSmi() [1/2]

Condition v8::internal::MacroAssembler::CheckSmi ( const Operand src)

◆ CheckSmi() [2/2]

Condition v8::internal::MacroAssembler::CheckSmi ( Register  src)

◆ CheckSmiToIndicator() [1/2]

void v8::internal::MacroAssembler::CheckSmiToIndicator ( Register  dst,
const Operand src 
)

◆ CheckSmiToIndicator() [2/2]

void v8::internal::MacroAssembler::CheckSmiToIndicator ( Register  dst,
Register  src 
)

◆ CheckStackAlignment() [1/3]

void v8::internal::MacroAssembler::CheckStackAlignment ( )

◆ CheckStackAlignment() [2/3]

void v8::internal::MacroAssembler::CheckStackAlignment ( )

◆ CheckStackAlignment() [3/3]

void v8::internal::MacroAssembler::CheckStackAlignment ( )

◆ CheckUInteger32ValidSmiValue()

Condition v8::internal::MacroAssembler::CheckUInteger32ValidSmiValue ( Register  src)

◆ Cinc()

void v8::internal::MacroAssembler::Cinc ( const Register rd,
const Register rn,
Condition  cond 
)
inline

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

397  {
398  DCHECK(allow_macro_instructions_);
399  DCHECK(!rd.IsZero());
400  DCHECK((cond != al) && (cond != nv));
401  cinc(rd, rn, cond);
402 }
void cinc(const Register &rd, const Register &rn, Condition cond)

References v8::internal::al, v8::internal::Assembler::cinc(), DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::nv.

+ Here is the call graph for this function:

◆ Cinv()

void v8::internal::MacroAssembler::Cinv ( const Register rd,
const Register rn,
Condition  cond 
)
inline

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

407  {
408  DCHECK(allow_macro_instructions_);
409  DCHECK(!rd.IsZero());
410  DCHECK((cond != al) && (cond != nv));
411  cinv(rd, rn, cond);
412 }
void cinv(const Register &rd, const Register &rn, Condition cond)

References v8::internal::al, v8::internal::Assembler::cinv(), DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::nv.

+ Here is the call graph for this function:

◆ Claim() [1/2]

void v8::internal::MacroAssembler::Claim ( const Register count,
uint64_t  unit_size = kXRegSize 
)
inline

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

1522  {
1523  if (unit_size == 0) return;
1524  DCHECK(base::bits::IsPowerOfTwo64(unit_size));
1525 
1526  const int shift = CountTrailingZeros(unit_size, kXRegSizeInBits);
1527  const Operand size(count, LSL, shift);
1528 
1529  if (size.IsZero()) {
1530  return;
1531  }
1532 
1533  if (!csp.Is(StackPointer())) {
1535  }
1536 
1538 }
void BumpSystemStackPointer(const Operand &space)
enable harmony numeric enable harmony object literal extensions Optimize object size
bool IsPowerOfTwo64(uint64_t value)
Definition: bits.h:83
const unsigned kXRegSizeInBits
int CountTrailingZeros(uint64_t value, int width)

References BumpSystemStackPointer(), v8::internal::CountTrailingZeros(), DCHECK, v8::base::bits::IsPowerOfTwo64(), v8::internal::kXRegSizeInBits, v8::internal::LSL, v8::internal::Assembler::shift(), size, StackPointer(), and Sub().

+ Here is the call graph for this function:

◆ Claim() [2/2]

void v8::internal::MacroAssembler::Claim ( uint64_t  count,
uint64_t  unit_size = kXRegSize 
)
inline

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

1505  {
1506  uint64_t size = count * unit_size;
1507 
1508  if (size == 0) {
1509  return;
1510  }
1511 
1512  if (csp.Is(StackPointer())) {
1513  DCHECK(size % 16 == 0);
1514  } else {
1516  }
1517 
1519 }

References BumpSystemStackPointer(), DCHECK, size, StackPointer(), and Sub().

+ Here is the call graph for this function:

◆ ClaimBySMI()

void v8::internal::MacroAssembler::ClaimBySMI ( const Register count_smi,
uint64_t  unit_size = kXRegSize 
)
inline

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

1541  {
1542  DCHECK(unit_size == 0 || base::bits::IsPowerOfTwo64(unit_size));
1543  const int shift = CountTrailingZeros(unit_size, kXRegSizeInBits) - kSmiShift;
1544  const Operand size(count_smi,
1545  (shift >= 0) ? (LSL) : (LSR),
1546  (shift >= 0) ? (shift) : (-shift));
1547 
1548  if (size.IsZero()) {
1549  return;
1550  }
1551 
1552  if (!csp.Is(StackPointer())) {
1554  }
1555 
1557 }

References BumpSystemStackPointer(), v8::internal::CountTrailingZeros(), DCHECK, v8::base::bits::IsPowerOfTwo64(), kSmiShift, v8::internal::kXRegSizeInBits, v8::internal::LSL, v8::internal::LSR, v8::internal::Assembler::shift(), size, StackPointer(), and Sub().

+ Here is the call graph for this function:

◆ ClampDoubleToUint8() [1/6]

void v8::internal::MacroAssembler::ClampDoubleToUint8 ( Register  output,
DoubleRegister  input,
DoubleRegister  dbl_scratch 
)

◆ ClampDoubleToUint8() [2/6]

void v8::internal::MacroAssembler::ClampDoubleToUint8 ( Register  result_reg,
DoubleRegister  input_reg,
DoubleRegister  temp_double_reg 
)

◆ ClampDoubleToUint8() [3/6]

void v8::internal::MacroAssembler::ClampDoubleToUint8 ( Register  result_reg,
DoubleRegister  input_reg,
DoubleRegister  temp_double_reg 
)

◆ ClampDoubleToUint8() [4/6]

void v8::internal::MacroAssembler::ClampDoubleToUint8 ( Register  result_reg,
DwVfpRegister  input_reg,
LowDwVfpRegister  double_scratch 
)

◆ ClampDoubleToUint8() [5/6]

void v8::internal::MacroAssembler::ClampDoubleToUint8 ( XMMRegister  input_reg,
XMMRegister  scratch_reg,
Register  result_reg 
)

◆ ClampDoubleToUint8() [6/6]

void v8::internal::MacroAssembler::ClampDoubleToUint8 ( XMMRegister  input_reg,
XMMRegister  temp_xmm_reg,
Register  result_reg 
)

◆ ClampInt32ToUint8() [1/2]

void v8::internal::MacroAssembler::ClampInt32ToUint8 ( Register  in_out)

◆ ClampInt32ToUint8() [2/2]

void v8::internal::MacroAssembler::ClampInt32ToUint8 ( Register  output,
Register  input 
)

◆ ClampTOSToUint8()

void v8::internal::MacroAssembler::ClampTOSToUint8 ( Register  result_reg)

◆ ClampUint8() [1/6]

void v8::internal::MacroAssembler::ClampUint8 ( Register  output_reg,
Register  input_reg 
)

◆ ClampUint8() [2/6]

void v8::internal::MacroAssembler::ClampUint8 ( Register  output_reg,
Register  input_reg 
)

◆ ClampUint8() [3/6]

void v8::internal::MacroAssembler::ClampUint8 ( Register  output_reg,
Register  input_reg 
)

◆ ClampUint8() [4/6]

void v8::internal::MacroAssembler::ClampUint8 ( Register  reg)

◆ ClampUint8() [5/6]

void v8::internal::MacroAssembler::ClampUint8 ( Register  reg)

◆ ClampUint8() [6/6]

void v8::internal::MacroAssembler::ClampUint8 ( Register  reg)

◆ Cls()

void v8::internal::MacroAssembler::Cls ( const Register rd,
const Register rn 
)
inline

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

415  {
416  DCHECK(allow_macro_instructions_);
417  DCHECK(!rd.IsZero());
418  cls(rd, rn);
419 }
void cls(const Register &rd, const Register &rn)

References v8::internal::Assembler::cls(), DCHECK, and v8::internal::CPURegister::IsZero().

+ Here is the call graph for this function:

◆ Clz() [1/3]

void v8::internal::MacroAssembler::Clz ( const Register rd,
const Register rn 
)
inline

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

422  {
423  DCHECK(allow_macro_instructions_);
424  DCHECK(!rd.IsZero());
425  clz(rd, rn);
426 }
void clz(Register dst, Register src, Condition cond=al)

References v8::internal::Assembler::clz(), DCHECK, and v8::internal::CPURegister::IsZero().

+ Here is the call graph for this function:

◆ Clz() [2/3]

void v8::internal::MacroAssembler::Clz ( Register  rd,
Register  rs 
)

◆ Clz() [3/3]

void v8::internal::MacroAssembler::Clz ( Register  rd,
Register  rs 
)

◆ Cmn()

void v8::internal::MacroAssembler::Cmn ( const Register rn,
const Operand operand 
)
inline

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

202  {
203  DCHECK(allow_macro_instructions_);
204  Adds(AppropriateZeroRegFor(rn), rn, operand);
205 }
const Register & AppropriateZeroRegFor(const CPURegister &reg) const
void Adds(const Register &rd, const Register &rn, const Operand &operand)

References Adds(), v8::internal::Assembler::AppropriateZeroRegFor(), and DCHECK.

+ Here is the call graph for this function:

◆ CmovX()

void v8::internal::MacroAssembler::CmovX ( const Register rd,
const Register rn,
Condition  cond 
)
inline

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

454  {
455  DCHECK(allow_macro_instructions_);
456  DCHECK(!rd.IsSP());
457  DCHECK(rd.Is64Bits() && rn.Is64Bits());
458  DCHECK((cond != al) && (cond != nv));
459  if (!rd.is(rn)) {
460  csel(rd, rn, rd, cond);
461  }
462 }
void csel(const Register &rd, const Register &rn, const Register &rm, Condition cond)

References v8::internal::al, v8::internal::Assembler::csel(), DCHECK, v8::internal::Register::is(), v8::internal::CPURegister::Is64Bits(), v8::internal::CPURegister::IsSP(), and v8::internal::nv.

+ Here is the call graph for this function:

◆ Cmp() [1/5]

void v8::internal::MacroAssembler::Cmp ( const Operand dst,
Handle< Object source 
)

◆ Cmp() [2/5]

void v8::internal::MacroAssembler::Cmp ( const Operand dst,
Smi src 
)

◆ Cmp() [3/5]

void v8::internal::MacroAssembler::Cmp ( const Register rn,
const Operand operand 
)
inline

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

208  {
209  DCHECK(allow_macro_instructions_);
210  Subs(AppropriateZeroRegFor(rn), rn, operand);
211 }
void Subs(const Register &rd, const Register &rn, const Operand &operand)

References v8::internal::Assembler::AppropriateZeroRegFor(), DCHECK, and Subs().

Referenced by CompareAndBranch(), and IsInstanceJSObjectType().

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

◆ Cmp() [4/5]

void v8::internal::MacroAssembler::Cmp ( Register  dst,
Handle< Object source 
)

◆ Cmp() [5/5]

void v8::internal::MacroAssembler::Cmp ( Register  dst,
Smi src 
)

◆ CmpHeapObject() [1/2]

void v8::internal::MacroAssembler::CmpHeapObject ( Register  reg,
Handle< HeapObject object 
)

Referenced by CmpObject().

+ Here is the caller graph for this function:

◆ CmpHeapObject() [2/2]

void v8::internal::MacroAssembler::CmpHeapObject ( Register  reg,
Handle< HeapObject object 
)

◆ CmpInstanceType() [1/3]

void v8::internal::MacroAssembler::CmpInstanceType ( Register  map,
InstanceType  type 
)

◆ CmpInstanceType() [2/3]

void v8::internal::MacroAssembler::CmpInstanceType ( Register  map,
InstanceType  type 
)

◆ CmpInstanceType() [3/3]

void v8::internal::MacroAssembler::CmpInstanceType ( Register  map,
InstanceType  type 
)

◆ CmpObject() [1/2]

void v8::internal::MacroAssembler::CmpObject ( Register  reg,
Handle< Object object 
)
inline

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

293  {
294  AllowDeferredHandleDereference heap_object_check;
295  if (object->IsHeapObject()) {
297  } else {
298  cmp(reg, Immediate(object));
299  }
300  }
void cmp(Register src1, const Operand &src2, Condition cond=al)
static Handle< T > cast(Handle< S > that)
Definition: handles.h:116
void CmpHeapObject(Register reg, Handle< HeapObject > object)
PerThreadAssertScopeDebugOnly< DEFERRED_HANDLE_DEREFERENCE_ASSERT, true > AllowDeferredHandleDereference
Definition: assert-scope.h:130

References v8::internal::Assembler::cmp(), and CmpHeapObject().

+ Here is the call graph for this function:

◆ CmpObject() [2/2]

void v8::internal::MacroAssembler::CmpObject ( Register  reg,
Handle< Object object 
)
inline

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

271  {
272  AllowDeferredHandleDereference heap_object_check;
273  if (object->IsHeapObject()) {
275  } else {
276  cmp(reg, Immediate(object));
277  }
278  }

References v8::internal::Assembler::cmp(), and CmpHeapObject().

+ Here is the call graph for this function:

◆ CmpObjectType() [1/3]

void v8::internal::MacroAssembler::CmpObjectType ( Register  heap_object,
InstanceType  type,
Register  map 
)

◆ CmpObjectType() [2/3]

void v8::internal::MacroAssembler::CmpObjectType ( Register  heap_object,
InstanceType  type,
Register  map 
)

◆ CmpObjectType() [3/3]

void v8::internal::MacroAssembler::CmpObjectType ( Register  heap_object,
InstanceType  type,
Register  map 
)

◆ Cneg()

void v8::internal::MacroAssembler::Cneg ( const Register rd,
const Register rn,
Condition  cond 
)
inline

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

431  {
432  DCHECK(allow_macro_instructions_);
433  DCHECK(!rd.IsZero());
434  DCHECK((cond != al) && (cond != nv));
435  cneg(rd, rn, cond);
436 }
void cneg(const Register &rd, const Register &rn, Condition cond)

References v8::internal::al, v8::internal::Assembler::cneg(), DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::nv.

+ Here is the call graph for this function:

◆ CodeObject() [1/7]

Handle< Object > v8::internal::MacroAssembler::CodeObject ( )
inline

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

1143  {
1144  DCHECK(!code_object_.is_null());
1145  return code_object_;
1146  }

References code_object_, and DCHECK.

Referenced by CallSelf(), v8::internal::PlatformCodeStub::GenerateCode(), v8::internal::HydrogenCodeStub::GenerateLightweightMissCode(), v8::internal::CodeGenerator::MakeCodeEpilogue(), and v8::internal::Builtins::SetUp().

+ Here is the caller graph for this function:

◆ CodeObject() [2/7]

Handle<Object> v8::internal::MacroAssembler::CodeObject ( )
inline

◆ CodeObject() [3/7]

Handle<Object> v8::internal::MacroAssembler::CodeObject ( )
inline

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

848  {
849  DCHECK(!code_object_.is_null());
850  return code_object_;
851  }

References code_object_, and DCHECK.

◆ CodeObject() [4/7]

Handle<Object> v8::internal::MacroAssembler::CodeObject ( )
inline

Definition at line 1319 of file macro-assembler-mips.h.

1319  {
1320  DCHECK(!code_object_.is_null());
1321  return code_object_;
1322  }

References code_object_, and DCHECK.

◆ CodeObject() [5/7]

Handle<Object> v8::internal::MacroAssembler::CodeObject ( )
inline

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

1337  {
1338  DCHECK(!code_object_.is_null());
1339  return code_object_;
1340  }

References code_object_, and DCHECK.

◆ CodeObject() [6/7]

Handle<Object> v8::internal::MacroAssembler::CodeObject ( )
inline

Definition at line 1373 of file macro-assembler-x64.h.

1373  {
1374  DCHECK(!code_object_.is_null());
1375  return code_object_;
1376  }

References code_object_, and DCHECK.

◆ CodeObject() [7/7]

Handle<Object> v8::internal::MacroAssembler::CodeObject ( )
inline

Definition at line 812 of file macro-assembler-x87.h.

812  {
813  DCHECK(!code_object_.is_null());
814  return code_object_;
815  }

References code_object_, and DCHECK.

◆ CompareAndBranch()

void v8::internal::MacroAssembler::CompareAndBranch ( const Register lhs,
const Operand rhs,
Condition  cond,
Label *  label 
)
inline

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

1627  {
1628  if (rhs.IsImmediate() && (rhs.ImmediateValue() == 0) &&
1629  ((cond == eq) || (cond == ne))) {
1630  if (cond == eq) {
1631  Cbz(lhs, label);
1632  } else {
1633  Cbnz(lhs, label);
1634  }
1635  } else {
1636  Cmp(lhs, rhs);
1637  B(cond, label);
1638  }
1639 }
void Cmp(const Register &rn, const Operand &operand)
void Cbnz(const Register &rt, Label *label)
void Cbz(const Register &rt, Label *label)

References B(), Cbnz(), Cbz(), Cmp(), v8::internal::eq, v8::internal::Operand::ImmediateValue(), v8::internal::Operand::IsImmediate(), and v8::internal::ne.

+ Here is the call graph for this function:

◆ CompareAndSplit()

void v8::internal::MacroAssembler::CompareAndSplit ( const Register lhs,
const Operand rhs,
Condition  cond,
Label *  if_true,
Label *  if_false,
Label *  fall_through 
)

◆ CompareInstanceType() [1/2]

void v8::internal::MacroAssembler::CompareInstanceType ( Register  map,
Register  type_reg,
InstanceType  type 
)

◆ CompareInstanceType() [2/2]

void v8::internal::MacroAssembler::CompareInstanceType ( Register  map,
Register  type_reg,
InstanceType  type 
)

◆ CompareMap() [1/6]

void v8::internal::MacroAssembler::CompareMap ( Register  obj,
Handle< Map map 
)

◆ CompareMap() [2/6]

void v8::internal::MacroAssembler::CompareMap ( Register  obj,
Handle< Map map 
)

◆ CompareMap() [3/6]

void v8::internal::MacroAssembler::CompareMap ( Register  obj,
Handle< Map map 
)

◆ CompareMap() [4/6]

void v8::internal::MacroAssembler::CompareMap ( Register  obj,
Register  scratch,
Handle< Map map,
Label *  early_success 
)

◆ CompareMap() [5/6]

void v8::internal::MacroAssembler::CompareMap ( Register  obj_map,
Handle< Map map 
)

◆ CompareMap() [6/6]

void v8::internal::MacroAssembler::CompareMap ( Register  obj_map,
Handle< Map map,
Label *  early_success 
)

◆ CompareMapAndBranch() [1/4]

void v8::internal::MacroAssembler::CompareMapAndBranch ( Register  obj,
Register  scratch,
Handle< Map map,
Label *  early_success,
Condition  cond,
Label *  branch_to 
)

◆ CompareMapAndBranch() [2/4]

void v8::internal::MacroAssembler::CompareMapAndBranch ( Register  obj,
Register  scratch,
Handle< Map map,
Label *  early_success,
Condition  cond,
Label *  branch_to 
)

◆ CompareMapAndBranch() [3/4]

void v8::internal::MacroAssembler::CompareMapAndBranch ( Register  obj_map,
Handle< Map map,
Label *  early_success,
Condition  cond,
Label *  branch_to 
)

◆ CompareMapAndBranch() [4/4]

void v8::internal::MacroAssembler::CompareMapAndBranch ( Register  obj_map,
Handle< Map map,
Label *  early_success,
Condition  cond,
Label *  branch_to 
)

◆ CompareObjectMap() [1/2]

void v8::internal::MacroAssembler::CompareObjectMap ( Register  obj,
Heap::RootListIndex  index 
)

◆ CompareObjectMap() [2/2]

void v8::internal::MacroAssembler::CompareObjectMap ( Register  obj,
Register  scratch,
Handle< Map map 
)

◆ CompareObjectType() [1/2]

void v8::internal::MacroAssembler::CompareObjectType ( Register  heap_object,
Register  map,
Register  type_reg,
InstanceType  type 
)

Referenced by IsObjectNameType().

+ Here is the caller graph for this function:

◆ CompareObjectType() [2/2]

void v8::internal::MacroAssembler::CompareObjectType ( Register  heap_object,
Register  map,
Register  type_reg,
InstanceType  type 
)

◆ CompareRoot() [1/10]

void v8::internal::MacroAssembler::CompareRoot ( const Operand with,
Heap::RootListIndex  index 
)

◆ CompareRoot() [2/10]

void v8::internal::MacroAssembler::CompareRoot ( const Operand with,
Heap::RootListIndex  index 
)

◆ CompareRoot() [3/10]

void v8::internal::MacroAssembler::CompareRoot ( const Operand with,
Heap::RootListIndex  index 
)

◆ CompareRoot() [4/10]

void v8::internal::MacroAssembler::CompareRoot ( const Register obj,
Heap::RootListIndex  index 
)

◆ CompareRoot() [5/10]

void v8::internal::MacroAssembler::CompareRoot ( Register  obj,
Heap::RootListIndex  index 
)

◆ CompareRoot() [6/10]

void v8::internal::MacroAssembler::CompareRoot ( Register  with,
Heap::RootListIndex  index 
)

◆ CompareRoot() [7/10]

void v8::internal::MacroAssembler::CompareRoot ( Register  with,
Heap::RootListIndex  index 
)

◆ CompareRoot() [8/10]

void v8::internal::MacroAssembler::CompareRoot ( Register  with,
Heap::RootListIndex  index 
)

◆ CompareRoot() [9/10]

void v8::internal::MacroAssembler::CompareRoot ( Register  with,
Register  scratch,
Heap::RootListIndex  index 
)

◆ CompareRoot() [10/10]

void v8::internal::MacroAssembler::CompareRoot ( Register  with,
Register  scratch,
Heap::RootListIndex  index 
)

◆ ConditionalCompareMacro()

void v8::internal::MacroAssembler::ConditionalCompareMacro ( const Register rn,
const Operand operand,
StatusFlags  nzcv,
Condition  cond,
ConditionalCompareOp  op 
)

Referenced by Ccmn(), and Ccmp().

+ Here is the caller graph for this function:

◆ ConfigureFPCR()

void v8::internal::MacroAssembler::ConfigureFPCR ( )

◆ CopyBytes() [1/7]

void v8::internal::MacroAssembler::CopyBytes ( Register  destination,
Register  source,
Register  length,
int  min_length = 0,
Register  scratch = kScratchRegister 
)

◆ CopyBytes() [2/7]

void v8::internal::MacroAssembler::CopyBytes ( Register  dst,
Register  src,
Register  length,
Register  scratch,
CopyHint  hint = kCopyUnknown 
)

◆ CopyBytes() [3/7]

void v8::internal::MacroAssembler::CopyBytes ( Register  source,
Register  destination,
Register  length,
Register  scratch 
)

◆ CopyBytes() [4/7]

void v8::internal::MacroAssembler::CopyBytes ( Register  source,
Register  destination,
Register  length,
Register  scratch 
)

◆ CopyBytes() [5/7]

void v8::internal::MacroAssembler::CopyBytes ( Register  src,
Register  dst,
Register  length,
Register  scratch 
)

◆ CopyBytes() [6/7]

void v8::internal::MacroAssembler::CopyBytes ( Register  src,
Register  dst,
Register  length,
Register  scratch 
)

◆ CopyBytes() [7/7]

void v8::internal::MacroAssembler::CopyBytes ( Register  src,
Register  dst,
Register  length,
Register  scratch 
)

◆ CopyFields() [1/4]

void v8::internal::MacroAssembler::CopyFields ( Register  dst,
Register  src,
CPURegList  temps,
unsigned  count 
)

◆ CopyFields() [2/4]

void v8::internal::MacroAssembler::CopyFields ( Register  dst,
Register  src,
LowDwVfpRegister  double_scratch,
int  field_count 
)

◆ CopyFields() [3/4]

void v8::internal::MacroAssembler::CopyFields ( Register  dst,
Register  src,
RegList  temps,
int  field_count 
)

◆ CopyFields() [4/4]

void v8::internal::MacroAssembler::CopyFields ( Register  dst,
Register  src,
RegList  temps,
int  field_count 
)

◆ CopyFieldsLoopPairsHelper()

void v8::internal::MacroAssembler::CopyFieldsLoopPairsHelper ( Register  dst,
Register  src,
unsigned  count,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Register  scratch4,
Register  scratch5 
)
private

◆ CopyFieldsUnrolledHelper()

void v8::internal::MacroAssembler::CopyFieldsUnrolledHelper ( Register  dst,
Register  src,
unsigned  count,
Register  scratch1,
Register  scratch2,
Register  scratch3 
)
private

◆ CopyFieldsUnrolledPairsHelper()

void v8::internal::MacroAssembler::CopyFieldsUnrolledPairsHelper ( Register  dst,
Register  src,
unsigned  count,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Register  scratch4 
)
private

◆ CountClearHalfWords()

static unsigned v8::internal::MacroAssembler::CountClearHalfWords ( uint64_t  imm,
unsigned  reg_size 
)
static

◆ Csel()

void v8::internal::MacroAssembler::Csel ( const Register rd,
const Register rn,
const Operand operand,
Condition  cond 
)

◆ Cset()

void v8::internal::MacroAssembler::Cset ( const Register rd,
Condition  cond 
)
inline

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

465  {
466  DCHECK(allow_macro_instructions_);
467  DCHECK(!rd.IsZero());
468  DCHECK((cond != al) && (cond != nv));
469  cset(rd, cond);
470 }
void cset(const Register &rd, Condition cond)

References v8::internal::al, v8::internal::Assembler::cset(), DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::nv.

+ Here is the call graph for this function:

◆ Csetm()

void v8::internal::MacroAssembler::Csetm ( const Register rd,
Condition  cond 
)
inline

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

473  {
474  DCHECK(allow_macro_instructions_);
475  DCHECK(!rd.IsZero());
476  DCHECK((cond != al) && (cond != nv));
477  csetm(rd, cond);
478 }
void csetm(const Register &rd, Condition cond)

References v8::internal::al, v8::internal::Assembler::csetm(), DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::nv.

+ Here is the call graph for this function:

◆ Csinc()

void v8::internal::MacroAssembler::Csinc ( const Register rd,
const Register rn,
const Register rm,
Condition  cond 
)
inline

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

484  {
485  DCHECK(allow_macro_instructions_);
486  DCHECK(!rd.IsZero());
487  DCHECK((cond != al) && (cond != nv));
488  csinc(rd, rn, rm, cond);
489 }
void csinc(const Register &rd, const Register &rn, const Register &rm, Condition cond)

References v8::internal::al, v8::internal::Assembler::csinc(), DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::nv.

+ Here is the call graph for this function:

◆ Csinv()

void v8::internal::MacroAssembler::Csinv ( const Register rd,
const Register rn,
const Register rm,
Condition  cond 
)
inline

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

495  {
496  DCHECK(allow_macro_instructions_);
497  DCHECK(!rd.IsZero());
498  DCHECK((cond != al) && (cond != nv));
499  csinv(rd, rn, rm, cond);
500 }
void csinv(const Register &rd, const Register &rn, const Register &rm, Condition cond)

References v8::internal::al, v8::internal::Assembler::csinv(), DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::nv.

+ Here is the call graph for this function:

◆ Csneg()

void v8::internal::MacroAssembler::Csneg ( const Register rd,
const Register rn,
const Register rm,
Condition  cond 
)
inline

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

506  {
507  DCHECK(allow_macro_instructions_);
508  DCHECK(!rd.IsZero());
509  DCHECK((cond != al) && (cond != nv));
510  csneg(rd, rn, rm, cond);
511 }
void csneg(const Register &rd, const Register &rn, const Register &rm, Condition cond)

References v8::internal::al, v8::internal::Assembler::csneg(), DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::nv.

+ Here is the call graph for this function:

◆ Cvt_d_uw() [1/4]

void v8::internal::MacroAssembler::Cvt_d_uw ( FPURegister  fd,
FPURegister  fs,
FPURegister  scratch 
)

◆ Cvt_d_uw() [2/4]

void v8::internal::MacroAssembler::Cvt_d_uw ( FPURegister  fd,
FPURegister  fs,
FPURegister  scratch 
)

◆ Cvt_d_uw() [3/4]

void v8::internal::MacroAssembler::Cvt_d_uw ( FPURegister  fd,
Register  rs,
FPURegister  scratch 
)

◆ Cvt_d_uw() [4/4]

void v8::internal::MacroAssembler::Cvt_d_uw ( FPURegister  fd,
Register  rs,
FPURegister  scratch 
)

◆ Cvtlsi2sd() [1/2]

void v8::internal::MacroAssembler::Cvtlsi2sd ( XMMRegister  dst,
const Operand src 
)

◆ Cvtlsi2sd() [2/2]

void v8::internal::MacroAssembler::Cvtlsi2sd ( XMMRegister  dst,
Register  src 
)

◆ Cvtsi2sd() [1/2]

void v8::internal::MacroAssembler::Cvtsi2sd ( XMMRegister  dst,
const Operand src 
)

◆ Cvtsi2sd() [2/2]

void v8::internal::MacroAssembler::Cvtsi2sd ( XMMRegister  dst,
Register  src 
)
inline

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

355 { Cvtsi2sd(dst, Operand(src)); }
void Cvtsi2sd(XMMRegister dst, Register src)

References Cvtsi2sd().

Referenced by Cvtsi2sd().

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

◆ CzeroX()

void v8::internal::MacroAssembler::CzeroX ( const Register rd,
Condition  cond 
)
inline

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

442  {
443  DCHECK(allow_macro_instructions_);
444  DCHECK(!rd.IsSP() && rd.Is64Bits());
445  DCHECK((cond != al) && (cond != nv));
446  csel(rd, xzr, rd, cond);
447 }

References v8::internal::al, v8::internal::Assembler::csel(), DCHECK, v8::internal::CPURegister::Is64Bits(), v8::internal::CPURegister::IsSP(), and v8::internal::nv.

+ Here is the call graph for this function:

◆ Debug()

void v8::internal::MacroAssembler::Debug ( const char *  message,
uint32_t  code,
Instr  params = BREAK 
)
inline

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

526  {
527  DCHECK(allow_macro_instructions_);
528  debug(message, code, params);
529 }
void debug(const char *message, uint32_t code, Instr params=BREAK)

References DCHECK, and v8::internal::Assembler::debug().

+ Here is the call graph for this function:

◆ DebugBreak() [1/7]

void v8::internal::MacroAssembler::DebugBreak ( )

◆ DebugBreak() [2/7]

void v8::internal::MacroAssembler::DebugBreak ( )

◆ DebugBreak() [3/7]

void v8::internal::MacroAssembler::DebugBreak ( )

◆ DebugBreak() [4/7]

void v8::internal::MacroAssembler::DebugBreak ( )

◆ DebugBreak() [5/7]

void v8::internal::MacroAssembler::DebugBreak ( )

◆ DebugBreak() [6/7]

void v8::internal::MacroAssembler::DebugBreak ( )

◆ DebugBreak() [7/7]

void v8::internal::MacroAssembler::DebugBreak ( )

◆ DecodeField() [1/11]

template<typename Field >
void v8::internal::MacroAssembler::DecodeField ( Register  dst,
Register  src 
)
inline

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

1372  {
1373  Ubfx(dst, src, Field::kShift, Field::kSize);
1374  }
void Ubfx(Register dst, Register src, int lsb, int width, Condition cond=al)

References Ubfx().

+ Here is the call graph for this function:

◆ DecodeField() [2/11]

template<typename Field >
void v8::internal::MacroAssembler::DecodeField ( Register  dst,
Register  src 
)
inline

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

886  {
887  static const uint64_t shift = Field::kShift;
888  static const uint64_t setbits = CountSetBits(Field::kMask, 32);
889  Ubfx(dst, src, shift, setbits);
890  }
int CountSetBits(uint64_t value, int width)

References v8::internal::CountSetBits(), v8::internal::Assembler::shift(), and Ubfx().

+ Here is the call graph for this function:

◆ DecodeField() [3/11]

template<typename Field >
void v8::internal::MacroAssembler::DecodeField ( Register  dst,
Register  src 
)
inline

Definition at line 1529 of file macro-assembler-mips.h.

1529  {
1530  Ext(dst, src, Field::kShift, Field::kSize);
1531  }
void Ext(Register rt, Register rs, uint16_t pos, uint16_t size)

References Ext().

+ Here is the call graph for this function:

◆ DecodeField() [4/11]

template<typename Field >
void v8::internal::MacroAssembler::DecodeField ( Register  dst,
Register  src 
)
inline

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

1592  {
1593  Ext(dst, src, Field::kShift, Field::kSize);
1594  }

References Ext().

+ Here is the call graph for this function:

◆ DecodeField() [5/11]

template<typename Field >
void v8::internal::MacroAssembler::DecodeField ( Register  reg)
inline

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

1377  {
1378  DecodeField<Field>(reg, reg);
1379  }

◆ DecodeField() [6/11]

template<typename Field >
void v8::internal::MacroAssembler::DecodeField ( Register  reg)
inline

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

893  {
894  DecodeField<Field>(reg, reg);
895  }

◆ DecodeField() [7/11]

template<typename Field >
void v8::internal::MacroAssembler::DecodeField ( Register  reg)
inline

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

518  {
519  static const int shift = Field::kShift;
520  static const int mask = Field::kMask >> Field::kShift;
521  if (shift != 0) {
522  sar(reg, shift);
523  }
524  and_(reg, Immediate(mask));
525  }
void and_(Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)
void sar(Register dst, uint8_t imm8)

References v8::internal::Assembler::and_(), v8::internal::Assembler::sar(), and v8::internal::Assembler::shift().

+ Here is the call graph for this function:

◆ DecodeField() [8/11]

template<typename Field >
void v8::internal::MacroAssembler::DecodeField ( Register  reg)
inline

Definition at line 1534 of file macro-assembler-mips.h.

1534  {
1535  DecodeField<Field>(reg, reg);
1536  }

◆ DecodeField() [9/11]

template<typename Field >
void v8::internal::MacroAssembler::DecodeField ( Register  reg)
inline

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

1597  {
1598  DecodeField<Field>(reg, reg);
1599  }

◆ DecodeField() [10/11]

template<typename Field >
void v8::internal::MacroAssembler::DecodeField ( Register  reg)
inline

Definition at line 1045 of file macro-assembler-x64.h.

1045  {
1046  static const int shift = Field::kShift;
1047  static const int mask = Field::kMask >> Field::kShift;
1048  if (shift != 0) {
1049  shrp(reg, Immediate(shift));
1050  }
1051  andp(reg, Immediate(mask));
1052  }

References v8::internal::Assembler::shift().

+ Here is the call graph for this function:

◆ DecodeField() [11/11]

template<typename Field >
void v8::internal::MacroAssembler::DecodeField ( Register  reg)
inline

Definition at line 489 of file macro-assembler-x87.h.

489  {
490  static const int shift = Field::kShift;
491  static const int mask = Field::kMask >> Field::kShift;
492  if (shift != 0) {
493  sar(reg, shift);
494  }
495  and_(reg, Immediate(mask));
496  }

References v8::internal::Assembler::and_(), v8::internal::Assembler::sar(), and v8::internal::Assembler::shift().

+ Here is the call graph for this function:

◆ DecodeFieldToSmi() [1/9]

template<typename Field >
void v8::internal::MacroAssembler::DecodeFieldToSmi ( Register  dst,
Register  src 
)
inline

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

1382  {
1383  static const int shift = Field::kShift;
1384  static const int mask = Field::kMask >> shift << kSmiTagSize;
1385  STATIC_ASSERT((mask & (0x80000000u >> (kSmiTagSize - 1))) == 0);
1386  STATIC_ASSERT(kSmiTag == 0);
1387  if (shift < kSmiTagSize) {
1388  mov(dst, Operand(src, LSL, kSmiTagSize - shift));
1389  and_(dst, dst, Operand(mask));
1390  } else if (shift > kSmiTagSize) {
1391  mov(dst, Operand(src, LSR, shift - kSmiTagSize));
1392  and_(dst, dst, Operand(mask));
1393  } else {
1394  and_(dst, src, Operand(mask));
1395  }
1396  }
void mov(Register rd, Register rt)
STATIC_ASSERT((reg_zero==(reg_not_zero ^ 1)) &&(reg_bit_clear==(reg_bit_set ^ 1)) &&(always==(never ^ 1)))
const int kSmiTagSize
Definition: v8.h:5743
const int kSmiTag
Definition: v8.h:5742

References v8::internal::Assembler::and_(), v8::internal::kSmiTag, v8::internal::kSmiTagSize, v8::internal::LSL, v8::internal::LSR, mov(), v8::internal::Assembler::shift(), and STATIC_ASSERT().

+ Here is the call graph for this function:

◆ DecodeFieldToSmi() [2/9]

template<typename Field >
void v8::internal::MacroAssembler::DecodeFieldToSmi ( Register  dst,
Register  src 
)
inline

Definition at line 1539 of file macro-assembler-mips.h.

1539  {
1540  static const int shift = Field::kShift;
1541  static const int mask = Field::kMask >> shift << kSmiTagSize;
1542  STATIC_ASSERT((mask & (0x80000000u >> (kSmiTagSize - 1))) == 0);
1543  STATIC_ASSERT(kSmiTag == 0);
1544  if (shift < kSmiTagSize) {
1545  sll(dst, src, kSmiTagSize - shift);
1546  And(dst, dst, Operand(mask));
1547  } else if (shift > kSmiTagSize) {
1548  srl(dst, src, shift - kSmiTagSize);
1549  And(dst, dst, Operand(mask));
1550  } else {
1551  And(dst, src, Operand(mask));
1552  }
1553  }
void srl(Register rd, Register rt, uint16_t sa)
void sll(Register rd, Register rt, uint16_t sa, bool coming_from_nop=false)
void And(Register dst, Register src1, const Operand &src2, Condition cond=al)

References And(), v8::internal::kSmiTag, v8::internal::kSmiTagSize, v8::internal::Assembler::shift(), v8::internal::Assembler::sll(), v8::internal::Assembler::srl(), and STATIC_ASSERT().

+ Here is the call graph for this function:

◆ DecodeFieldToSmi() [3/9]

template<typename Field >
void v8::internal::MacroAssembler::DecodeFieldToSmi ( Register  dst,
Register  src 
)
inline

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

1602  {
1603  static const int shift = Field::kShift;
1604  static const int mask = Field::kMask >> shift;
1605  dsrl(dst, src, shift);
1606  And(dst, dst, Operand(mask));
1607  dsll32(dst, dst, 0);
1608  }
void dsrl(Register rd, Register rt, uint16_t sa)
void dsll32(Register rt, Register rd, uint16_t sa)

References And(), v8::internal::Assembler::dsll32(), v8::internal::Assembler::dsrl(), and v8::internal::Assembler::shift().

+ Here is the call graph for this function:

◆ DecodeFieldToSmi() [4/9]

template<typename Field >
void v8::internal::MacroAssembler::DecodeFieldToSmi ( Register  reg)
inline

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

1399  {
1400  DecodeField<Field>(reg, reg);
1401  }

◆ DecodeFieldToSmi() [5/9]

template<typename Field >
void v8::internal::MacroAssembler::DecodeFieldToSmi ( Register  reg)
inline

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

528  {
529  static const int shift = Field::kShift;
530  static const int mask = (Field::kMask >> Field::kShift) << kSmiTagSize;
531  STATIC_ASSERT((mask & (0x80000000u >> (kSmiTagSize - 1))) == 0);
532  STATIC_ASSERT(kSmiTag == 0);
533  if (shift < kSmiTagSize) {
534  shl(reg, kSmiTagSize - shift);
535  } else if (shift > kSmiTagSize) {
536  sar(reg, shift - kSmiTagSize);
537  }
538  and_(reg, Immediate(mask));
539  }
void shl(Register dst, uint8_t imm8)

References v8::internal::Assembler::and_(), v8::internal::kSmiTag, v8::internal::kSmiTagSize, v8::internal::Assembler::sar(), v8::internal::Assembler::shift(), v8::internal::Assembler::shl(), and STATIC_ASSERT().

+ Here is the call graph for this function:

◆ DecodeFieldToSmi() [6/9]

template<typename Field >
void v8::internal::MacroAssembler::DecodeFieldToSmi ( Register  reg)
inline

Definition at line 1556 of file macro-assembler-mips.h.

1556  {
1557  DecodeField<Field>(reg, reg);
1558  }

◆ DecodeFieldToSmi() [7/9]

template<typename Field >
void v8::internal::MacroAssembler::DecodeFieldToSmi ( Register  reg)
inline

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

1611  {
1612  DecodeField<Field>(reg, reg);
1613  }

◆ DecodeFieldToSmi() [8/9]

template<typename Field >
void v8::internal::MacroAssembler::DecodeFieldToSmi ( Register  reg)
inline

Definition at line 1055 of file macro-assembler-x64.h.

1055  {
1056  if (SmiValuesAre32Bits()) {
1057  andp(reg, Immediate(Field::kMask));
1058  shlp(reg, Immediate(kSmiShift - Field::kShift));
1059  } else {
1060  static const int shift = Field::kShift;
1061  static const int mask = (Field::kMask >> Field::kShift) << kSmiTagSize;
1064  DCHECK((mask & 0x80000000u) == 0);
1065  if (shift < kSmiShift) {
1066  shlp(reg, Immediate(kSmiShift - shift));
1067  } else if (shift > kSmiShift) {
1068  sarp(reg, Immediate(shift - kSmiShift));
1069  }
1070  andp(reg, Immediate(mask));
1071  }
1072  }
static bool SmiValuesAre32Bits()
Definition: v8.h:5808
static bool SmiValuesAre31Bits()
Definition: v8.h:5807

References DCHECK, kSmiShift, v8::internal::kSmiTagSize, v8::internal::Assembler::shift(), v8::internal::SmiValuesAre31Bits(), and v8::internal::SmiValuesAre32Bits().

+ Here is the call graph for this function:

◆ DecodeFieldToSmi() [9/9]

template<typename Field >
void v8::internal::MacroAssembler::DecodeFieldToSmi ( Register  reg)
inline

Definition at line 499 of file macro-assembler-x87.h.

499  {
500  static const int shift = Field::kShift;
501  static const int mask = (Field::kMask >> Field::kShift) << kSmiTagSize;
502  STATIC_ASSERT((mask & (0x80000000u >> (kSmiTagSize - 1))) == 0);
503  STATIC_ASSERT(kSmiTag == 0);
504  if (shift < kSmiTagSize) {
505  shl(reg, kSmiTagSize - shift);
506  } else if (shift > kSmiTagSize) {
507  sar(reg, shift - kSmiTagSize);
508  }
509  and_(reg, Immediate(mask));
510  }

References v8::internal::Assembler::and_(), v8::internal::kSmiTag, v8::internal::kSmiTagSize, v8::internal::Assembler::sar(), v8::internal::Assembler::shift(), v8::internal::Assembler::shl(), and STATIC_ASSERT().

+ Here is the call graph for this function:

◆ DecrementCounter() [1/9]

void v8::internal::MacroAssembler::DecrementCounter ( Condition  cc,
StatsCounter counter,
int  value 
)

◆ DecrementCounter() [2/9]

void v8::internal::MacroAssembler::DecrementCounter ( Condition  cc,
StatsCounter counter,
int  value 
)

◆ DecrementCounter() [3/9]

void v8::internal::MacroAssembler::DecrementCounter ( StatsCounter counter,
int  value 
)

◆ DecrementCounter() [4/9]

void v8::internal::MacroAssembler::DecrementCounter ( StatsCounter counter,
int  value 
)

◆ DecrementCounter() [5/9]

void v8::internal::MacroAssembler::DecrementCounter ( StatsCounter counter,
int  value 
)

◆ DecrementCounter() [6/9]

void v8::internal::MacroAssembler::DecrementCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)

◆ DecrementCounter() [7/9]

void v8::internal::MacroAssembler::DecrementCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)

◆ DecrementCounter() [8/9]

void v8::internal::MacroAssembler::DecrementCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)

◆ DecrementCounter() [9/9]

void v8::internal::MacroAssembler::DecrementCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)

◆ DefaultFPTmpList()

static CPURegList v8::internal::MacroAssembler::DefaultFPTmpList ( )
static

Referenced by v8::internal::RecordWriteStub::RegisterAllocation::RegisterAllocation().

+ Here is the caller graph for this function:

◆ DefaultTmpList()

static CPURegList v8::internal::MacroAssembler::DefaultTmpList ( )
static

Referenced by v8::internal::RecordWriteStub::RegisterAllocation::GetValidRegistersForAllocation(), and v8::internal::RecordWriteStub::RegisterAllocation::RegisterAllocation().

+ Here is the caller graph for this function:

◆ DEFINE_INSTRUCTION() [1/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Addu  )

◆ DEFINE_INSTRUCTION() [2/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Addu  )

◆ DEFINE_INSTRUCTION() [3/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( And  )

◆ DEFINE_INSTRUCTION() [4/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( And  )

◆ DEFINE_INSTRUCTION() [5/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Daddu  )

◆ DEFINE_INSTRUCTION() [6/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Ddiv  )

◆ DEFINE_INSTRUCTION() [7/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Div  )

◆ DEFINE_INSTRUCTION() [8/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Divu  )

◆ DEFINE_INSTRUCTION() [9/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Dmod  )

◆ DEFINE_INSTRUCTION() [10/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Dmul  )

◆ DEFINE_INSTRUCTION() [11/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Dmulh  )

◆ DEFINE_INSTRUCTION() [12/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Dror  )

◆ DEFINE_INSTRUCTION() [13/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Dsubu  )

◆ DEFINE_INSTRUCTION() [14/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Mod  )

◆ DEFINE_INSTRUCTION() [15/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Modu  )

◆ DEFINE_INSTRUCTION() [16/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Mul  )

◆ DEFINE_INSTRUCTION() [17/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Mul  )

◆ DEFINE_INSTRUCTION() [18/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Mulh  )

◆ DEFINE_INSTRUCTION() [19/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Mulh  )

◆ DEFINE_INSTRUCTION() [20/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Nor  )

◆ DEFINE_INSTRUCTION() [21/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Nor  )

◆ DEFINE_INSTRUCTION() [22/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Or  )

◆ DEFINE_INSTRUCTION() [23/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Or  )

◆ DEFINE_INSTRUCTION() [24/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Ror  )

◆ DEFINE_INSTRUCTION() [25/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Ror  )

◆ DEFINE_INSTRUCTION() [26/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Slt  )

◆ DEFINE_INSTRUCTION() [27/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Slt  )

◆ DEFINE_INSTRUCTION() [28/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Sltu  )

◆ DEFINE_INSTRUCTION() [29/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Sltu  )

◆ DEFINE_INSTRUCTION() [30/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Subu  )

◆ DEFINE_INSTRUCTION() [31/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Subu  )

◆ DEFINE_INSTRUCTION() [32/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Xor  )

◆ DEFINE_INSTRUCTION() [33/33]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION ( Xor  )

◆ DEFINE_INSTRUCTION2() [1/14]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION2 ( Ddiv  )

◆ DEFINE_INSTRUCTION2() [2/14]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION2 ( Ddivu  )

◆ DEFINE_INSTRUCTION2() [3/14]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION2 ( Div  )

◆ DEFINE_INSTRUCTION2() [4/14]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION2 ( Div  )

◆ DEFINE_INSTRUCTION2() [5/14]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION2 ( Divu  )

◆ DEFINE_INSTRUCTION2() [6/14]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION2 ( Divu  )

◆ DEFINE_INSTRUCTION2() [7/14]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION2 ( Dmult  )

◆ DEFINE_INSTRUCTION2() [8/14]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION2 ( Dmultu  )

◆ DEFINE_INSTRUCTION2() [9/14]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION2 ( Mult  )

◆ DEFINE_INSTRUCTION2() [10/14]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION2 ( Mult  )

◆ DEFINE_INSTRUCTION2() [11/14]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION2 ( Multu  )

◆ DEFINE_INSTRUCTION2() [12/14]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION2 ( Multu  )

◆ DEFINE_INSTRUCTION2() [13/14]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION2 ( Neg  )

◆ DEFINE_INSTRUCTION2() [14/14]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION2 ( Neg  )

◆ DEFINE_INSTRUCTION3() [1/2]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION3 ( Div  )

◆ DEFINE_INSTRUCTION3() [2/2]

v8::internal::MacroAssembler::DEFINE_INSTRUCTION3 ( Mul  )

◆ DisableInstrumentation()

void v8::internal::MacroAssembler::DisableInstrumentation ( )
inline

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

1683  {
1684  InstructionAccurateScope scope(this, 1);
1686 }

References v8::internal::InstrumentStateDisable, and v8::internal::Assembler::movn().

+ Here is the call graph for this function:

◆ DispatchMap() [1/7]

void v8::internal::MacroAssembler::DispatchMap ( Register  obj,
Register  scratch,
Handle< Map map,
Handle< Code success,
SmiCheckType  smi_check_type 
)

◆ DispatchMap() [2/7]

void v8::internal::MacroAssembler::DispatchMap ( Register  obj,
Register  scratch,
Handle< Map map,
Handle< Code success,
SmiCheckType  smi_check_type 
)

◆ DispatchMap() [3/7]

void v8::internal::MacroAssembler::DispatchMap ( Register  obj,
Register  scratch,
Handle< Map map,
Handle< Code success,
SmiCheckType  smi_check_type 
)

◆ DispatchMap() [4/7]

void v8::internal::MacroAssembler::DispatchMap ( Register  obj,
Register  scratch,
Handle< Map map,
Handle< Code success,
SmiCheckType  smi_check_type 
)

◆ DispatchMap() [5/7]

void v8::internal::MacroAssembler::DispatchMap ( Register  obj,
Register  unused,
Handle< Map map,
Handle< Code success,
SmiCheckType  smi_check_type 
)

◆ DispatchMap() [6/7]

void v8::internal::MacroAssembler::DispatchMap ( Register  obj,
Register  unused,
Handle< Map map,
Handle< Code success,
SmiCheckType  smi_check_type 
)

◆ DispatchMap() [7/7]

void v8::internal::MacroAssembler::DispatchMap ( Register  obj,
Register  unused,
Handle< Map map,
Handle< Code success,
SmiCheckType  smi_check_type 
)

◆ Dmb()

void v8::internal::MacroAssembler::Dmb ( BarrierDomain  domain,
BarrierType  type 
)
inline

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

514  {
515  DCHECK(allow_macro_instructions_);
516  dmb(domain, type);
517 }
void dmb(BarrierDomain domain, BarrierType type)

References DCHECK, and v8::internal::Assembler::dmb().

+ Here is the call graph for this function:

◆ DoubleToI() [1/2]

void v8::internal::MacroAssembler::DoubleToI ( Register  result_reg,
XMMRegister  input_reg,
XMMRegister  scratch,
MinusZeroMode  minus_zero_mode,
Label *  lost_precision,
Label *  is_nan,
Label *  minus_zero,
Label::Distance  dst = Label::kFar 
)

◆ DoubleToI() [2/2]

void v8::internal::MacroAssembler::DoubleToI ( Register  result_reg,
XMMRegister  input_reg,
XMMRegister  scratch,
MinusZeroMode  minus_zero_mode,
Label *  lost_precision,
Label *  is_nan,
Label *  minus_zero,
Label::Distance  dst = Label::kFar 
)

◆ Drop() [1/8]

void v8::internal::MacroAssembler::Drop ( const Register count,
uint64_t  unit_size = kXRegSize 
)
inline

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

1580  {
1581  if (unit_size == 0) return;
1582  DCHECK(base::bits::IsPowerOfTwo64(unit_size));
1583 
1584  const int shift = CountTrailingZeros(unit_size, kXRegSizeInBits);
1585  const Operand size(count, LSL, shift);
1586 
1587  if (size.IsZero()) {
1588  return;
1589  }
1590 
1592 
1593  if (!csp.Is(StackPointer()) && emit_debug_code()) {
1594  // It is safe to leave csp where it is when unwinding the JavaScript stack,
1595  // but if we keep it matching StackPointer, the simulator can detect memory
1596  // accesses in the now-free part of the stack.
1598  }
1599 }
bool emit_debug_code() const
Definition: assembler.h:65
void Add(const Register &rd, const Register &rn, const Operand &operand)

References Add(), v8::internal::CountTrailingZeros(), DCHECK, v8::internal::AssemblerBase::emit_debug_code(), v8::base::bits::IsPowerOfTwo64(), v8::internal::kXRegSizeInBits, v8::internal::LSL, v8::internal::Assembler::shift(), size, StackPointer(), and SyncSystemStackPointer().

+ Here is the call graph for this function:

◆ Drop() [2/8]

void v8::internal::MacroAssembler::Drop ( int  count,
Condition  cond = al 
)

◆ Drop() [3/8]

void v8::internal::MacroAssembler::Drop ( int  count,
Condition  cond = cc_always,
Register  reg = no_reg,
const Operand op = Operand(no_reg) 
)

◆ Drop() [4/8]

void v8::internal::MacroAssembler::Drop ( int  count,
Condition  cond = cc_always,
Register  reg = no_reg,
const Operand op = Operand(no_reg) 
)

◆ Drop() [5/8]

void v8::internal::MacroAssembler::Drop ( int  element_count)

◆ Drop() [6/8]

void v8::internal::MacroAssembler::Drop ( int  element_count)

◆ Drop() [7/8]

void v8::internal::MacroAssembler::Drop ( int  stack_elements)

◆ Drop() [8/8]

void v8::internal::MacroAssembler::Drop ( uint64_t  count,
uint64_t  unit_size = kXRegSize 
)
inline

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

1560  {
1561  uint64_t size = count * unit_size;
1562 
1563  if (size == 0) {
1564  return;
1565  }
1566 
1568 
1569  if (csp.Is(StackPointer())) {
1570  DCHECK(size % 16 == 0);
1571  } else if (emit_debug_code()) {
1572  // It is safe to leave csp where it is when unwinding the JavaScript stack,
1573  // but if we keep it matching StackPointer, the simulator can detect memory
1574  // accesses in the now-free part of the stack.
1576  }
1577 }

References Add(), DCHECK, v8::internal::AssemblerBase::emit_debug_code(), size, StackPointer(), and SyncSystemStackPointer().

+ Here is the call graph for this function:

◆ Dropad()

void v8::internal::MacroAssembler::Dropad ( )

◆ DropAndRet() [1/4]

void v8::internal::MacroAssembler::DropAndRet ( int  drop)

◆ DropAndRet() [2/4]

void v8::internal::MacroAssembler::DropAndRet ( int  drop)

◆ DropAndRet() [3/4]

void v8::internal::MacroAssembler::DropAndRet ( int  drop,
Condition  cond,
Register  reg,
const Operand op 
)

◆ DropAndRet() [4/4]

void v8::internal::MacroAssembler::DropAndRet ( int  drop,
Condition  cond,
Register  reg,
const Operand op 
)

◆ DropBySMI()

void v8::internal::MacroAssembler::DropBySMI ( const Register count_smi,
uint64_t  unit_size = kXRegSize 
)
inline

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

1602  {
1603  DCHECK(unit_size == 0 || base::bits::IsPowerOfTwo64(unit_size));
1604  const int shift = CountTrailingZeros(unit_size, kXRegSizeInBits) - kSmiShift;
1605  const Operand size(count_smi,
1606  (shift >= 0) ? (LSL) : (LSR),
1607  (shift >= 0) ? (shift) : (-shift));
1608 
1609  if (size.IsZero()) {
1610  return;
1611  }
1612 
1614 
1615  if (!csp.Is(StackPointer()) && emit_debug_code()) {
1616  // It is safe to leave csp where it is when unwinding the JavaScript stack,
1617  // but if we keep it matching StackPointer, the simulator can detect memory
1618  // accesses in the now-free part of the stack.
1620  }
1621 }

References Add(), v8::internal::CountTrailingZeros(), DCHECK, v8::internal::AssemblerBase::emit_debug_code(), v8::base::bits::IsPowerOfTwo64(), kSmiShift, v8::internal::kXRegSizeInBits, v8::internal::LSL, v8::internal::LSR, v8::internal::Assembler::shift(), size, StackPointer(), and SyncSystemStackPointer().

+ Here is the call graph for this function:

◆ DropUnderReturnAddress()

void v8::internal::MacroAssembler::DropUnderReturnAddress ( int  stack_elements,
Register  scratch = kScratchRegister 
)

◆ Dsb()

void v8::internal::MacroAssembler::Dsb ( BarrierDomain  domain,
BarrierType  type 
)
inline

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

520  {
521  DCHECK(allow_macro_instructions_);
522  dsb(domain, type);
523 }
void dsb(BarrierDomain domain, BarrierType type)

References DCHECK, and v8::internal::Assembler::dsb().

+ Here is the call graph for this function:

◆ EmitCodeAgeSequence() [1/2]

static void v8::internal::MacroAssembler::EmitCodeAgeSequence ( Assembler assm,
Code stub 
)
static

◆ EmitCodeAgeSequence() [2/2]

void v8::internal::MacroAssembler::EmitCodeAgeSequence ( Code stub)

◆ EmitFPUTruncate() [1/2]

void v8::internal::MacroAssembler::EmitFPUTruncate ( FPURoundingMode  rounding_mode,
Register  result,
DoubleRegister  double_input,
Register  scratch,
DoubleRegister  double_scratch,
Register  except_flag,
CheckForInexactConversion  check_inexact = kDontCheckForInexactConversion 
)

◆ EmitFPUTruncate() [2/2]

void v8::internal::MacroAssembler::EmitFPUTruncate ( FPURoundingMode  rounding_mode,
Register  result,
DoubleRegister  double_input,
Register  scratch,
DoubleRegister  double_scratch,
Register  except_flag,
CheckForInexactConversion  check_inexact = kDontCheckForInexactConversion 
)

◆ EmitFrameSetupForCodeAgePatching() [1/2]

void v8::internal::MacroAssembler::EmitFrameSetupForCodeAgePatching ( )

◆ EmitFrameSetupForCodeAgePatching() [2/2]

static void v8::internal::MacroAssembler::EmitFrameSetupForCodeAgePatching ( Assembler assm)
static

◆ EmitSeqStringSetCharCheck() [1/7]

void v8::internal::MacroAssembler::EmitSeqStringSetCharCheck ( Register  string,
Register  index,
Register  value,
Register  scratch,
uint32_t  encoding_mask 
)

◆ EmitSeqStringSetCharCheck() [2/7]

void v8::internal::MacroAssembler::EmitSeqStringSetCharCheck ( Register  string,
Register  index,
Register  value,
Register  scratch,
uint32_t  encoding_mask 
)

◆ EmitSeqStringSetCharCheck() [3/7]

void v8::internal::MacroAssembler::EmitSeqStringSetCharCheck ( Register  string,
Register  index,
Register  value,
uint32_t  encoding_mask 
)

◆ EmitSeqStringSetCharCheck() [4/7]

void v8::internal::MacroAssembler::EmitSeqStringSetCharCheck ( Register  string,
Register  index,
Register  value,
uint32_t  encoding_mask 
)

◆ EmitSeqStringSetCharCheck() [5/7]

void v8::internal::MacroAssembler::EmitSeqStringSetCharCheck ( Register  string,
Register  index,
Register  value,
uint32_t  encoding_mask 
)

◆ EmitSeqStringSetCharCheck() [6/7]

void v8::internal::MacroAssembler::EmitSeqStringSetCharCheck ( Register  string,
Register  index,
Register  value,
uint32_t  encoding_mask 
)

◆ EmitSeqStringSetCharCheck() [7/7]

void v8::internal::MacroAssembler::EmitSeqStringSetCharCheck ( Register  string,
Register  index,
SeqStringSetCharCheckIndexType  index_type,
Register  scratch,
uint32_t  encoding_mask 
)

◆ EnableInstrumentation()

void v8::internal::MacroAssembler::EnableInstrumentation ( )
inline

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

1677  {
1678  InstructionAccurateScope scope(this, 1);
1680 }

References v8::internal::InstrumentStateEnable, and v8::internal::Assembler::movn().

+ Here is the call graph for this function:

◆ EnsureNotWhite() [1/7]

void v8::internal::MacroAssembler::EnsureNotWhite ( Register  object,
Register  scratch1,
Register  scratch2,
Label *  object_is_white_and_not_data,
Label::Distance  distance 
)

◆ EnsureNotWhite() [2/7]

void v8::internal::MacroAssembler::EnsureNotWhite ( Register  object,
Register  scratch1,
Register  scratch2,
Label *  object_is_white_and_not_data,
Label::Distance  distance 
)

◆ EnsureNotWhite() [3/7]

void v8::internal::MacroAssembler::EnsureNotWhite ( Register  object,
Register  scratch1,
Register  scratch2,
Label *  object_is_white_and_not_data,
Label::Distance  distance 
)

◆ EnsureNotWhite() [4/7]

void v8::internal::MacroAssembler::EnsureNotWhite ( Register  object,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  object_is_white_and_not_data 
)

◆ EnsureNotWhite() [5/7]

void v8::internal::MacroAssembler::EnsureNotWhite ( Register  object,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  object_is_white_and_not_data 
)

◆ EnsureNotWhite() [6/7]

void v8::internal::MacroAssembler::EnsureNotWhite ( Register  object,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  object_is_white_and_not_data 
)

◆ EnsureNotWhite() [7/7]

void v8::internal::MacroAssembler::EnsureNotWhite ( Register  object,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Register  scratch4,
Label *  object_is_white_and_not_data 
)

◆ EnterApiExitFrame() [1/3]

void v8::internal::MacroAssembler::EnterApiExitFrame ( int  arg_stack_space)

◆ EnterApiExitFrame() [2/3]

void v8::internal::MacroAssembler::EnterApiExitFrame ( int  argc)

◆ EnterApiExitFrame() [3/3]

void v8::internal::MacroAssembler::EnterApiExitFrame ( int  argc)

◆ EnterExitFrame() [1/7]

void v8::internal::MacroAssembler::EnterExitFrame ( bool  save_doubles)

◆ EnterExitFrame() [2/7]

void v8::internal::MacroAssembler::EnterExitFrame ( bool  save_doubles)

◆ EnterExitFrame() [3/7]

void v8::internal::MacroAssembler::EnterExitFrame ( bool  save_doubles,
const Register scratch,
int  extra_space = 0 
)

◆ EnterExitFrame() [4/7]

void v8::internal::MacroAssembler::EnterExitFrame ( bool  save_doubles,
int  stack_space = 0 
)

◆ EnterExitFrame() [5/7]

void v8::internal::MacroAssembler::EnterExitFrame ( bool  save_doubles,
int  stack_space = 0 
)

◆ EnterExitFrame() [6/7]

void v8::internal::MacroAssembler::EnterExitFrame ( bool  save_doubles,
int  stack_space = 0 
)

◆ EnterExitFrame() [7/7]

void v8::internal::MacroAssembler::EnterExitFrame ( int  arg_stack_space = 0,
bool  save_doubles = false 
)

◆ EnterExitFrameEpilogue() [1/3]

void v8::internal::MacroAssembler::EnterExitFrameEpilogue ( int  arg_stack_space,
bool  save_doubles 
)
private

◆ EnterExitFrameEpilogue() [2/3]

void v8::internal::MacroAssembler::EnterExitFrameEpilogue ( int  argc,
bool  save_doubles 
)
private

◆ EnterExitFrameEpilogue() [3/3]

void v8::internal::MacroAssembler::EnterExitFrameEpilogue ( int  argc,
bool  save_doubles 
)
private

◆ EnterExitFramePrologue() [1/3]

void v8::internal::MacroAssembler::EnterExitFramePrologue ( )
private

◆ EnterExitFramePrologue() [2/3]

void v8::internal::MacroAssembler::EnterExitFramePrologue ( )
private

◆ EnterExitFramePrologue() [3/3]

void v8::internal::MacroAssembler::EnterExitFramePrologue ( bool  save_rax)
private

◆ EnterFrame() [1/7]

void v8::internal::MacroAssembler::EnterFrame ( StackFrame::Type  type)

◆ EnterFrame() [2/7]

void v8::internal::MacroAssembler::EnterFrame ( StackFrame::Type  type)

◆ EnterFrame() [3/7]

void v8::internal::MacroAssembler::EnterFrame ( StackFrame::Type  type)

◆ EnterFrame() [4/7]

void v8::internal::MacroAssembler::EnterFrame ( StackFrame::Type  type)

◆ EnterFrame() [5/7]

void v8::internal::MacroAssembler::EnterFrame ( StackFrame::Type  type)

◆ EnterFrame() [6/7]

void v8::internal::MacroAssembler::EnterFrame ( StackFrame::Type  type)

◆ EnterFrame() [7/7]

void v8::internal::MacroAssembler::EnterFrame ( StackFrame::Type  type,
bool  load_constant_pool = false 
)

Referenced by v8::internal::FrameAndConstantPoolScope::FrameAndConstantPoolScope(), and v8::internal::FrameScope::FrameScope().

+ Here is the caller graph for this function:

◆ EnumLength() [1/6]

void v8::internal::MacroAssembler::EnumLength ( Register  dst,
Register  map 
)

◆ EnumLength() [2/6]

void v8::internal::MacroAssembler::EnumLength ( Register  dst,
Register  map 
)

◆ EnumLength() [3/6]

void v8::internal::MacroAssembler::EnumLength ( Register  dst,
Register  map 
)

◆ EnumLength() [4/6]

void v8::internal::MacroAssembler::EnumLength ( Register  dst,
Register  map 
)

◆ EnumLength() [5/6]

void v8::internal::MacroAssembler::EnumLength ( Register  dst,
Register  map 
)

◆ EnumLength() [6/6]

void v8::internal::MacroAssembler::EnumLength ( Register  dst,
Register  map 
)

◆ EnumLengthSmi()

void v8::internal::MacroAssembler::EnumLengthSmi ( Register  dst,
Register  map 
)

◆ EnumLengthUntagged()

void v8::internal::MacroAssembler::EnumLengthUntagged ( Register  dst,
Register  map 
)

◆ Eon()

void v8::internal::MacroAssembler::Eon ( const Register rd,
const Register rn,
const Operand operand 
)
inline

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

118  {
119  DCHECK(allow_macro_instructions_);
120  DCHECK(!rd.IsZero());
121  LogicalMacro(rd, rn, operand, EON);
122 }

References DCHECK, v8::internal::EON, v8::internal::CPURegister::IsZero(), and LogicalMacro().

+ Here is the call graph for this function:

◆ Eor()

void v8::internal::MacroAssembler::Eor ( const Register rd,
const Register rn,
const Operand operand 
)
inline

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

109  {
110  DCHECK(allow_macro_instructions_);
111  DCHECK(!rd.IsZero());
112  LogicalMacro(rd, rn, operand, EOR);
113 }

References DCHECK, v8::internal::EOR, v8::internal::CPURegister::IsZero(), and LogicalMacro().

+ Here is the call graph for this function:

◆ ExitFramePreserveFPRegs()

void v8::internal::MacroAssembler::ExitFramePreserveFPRegs ( )

◆ ExitFrameRestoreFPRegs()

void v8::internal::MacroAssembler::ExitFrameRestoreFPRegs ( )

◆ Ext() [1/2]

void v8::internal::MacroAssembler::Ext ( Register  rt,
Register  rs,
uint16_t  pos,
uint16_t  size 
)

Referenced by DecodeField().

+ Here is the caller graph for this function:

◆ Ext() [2/2]

void v8::internal::MacroAssembler::Ext ( Register  rt,
Register  rs,
uint16_t  pos,
uint16_t  size 
)

◆ ExternalOperand()

Operand v8::internal::MacroAssembler::ExternalOperand ( ExternalReference  reference,
Register  scratch = kScratchRegister 
)

◆ Extr()

void v8::internal::MacroAssembler::Extr ( const Register rd,
const Register rn,
const Register rm,
unsigned  lsb 
)
inline

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

535  {
536  DCHECK(allow_macro_instructions_);
537  DCHECK(!rd.IsZero());
538  extr(rd, rn, rm, lsb);
539 }
void extr(const Register &rd, const Register &rn, const Register &rm, unsigned lsb)

References DCHECK, v8::internal::Assembler::extr(), and v8::internal::CPURegister::IsZero().

+ Here is the call graph for this function:

◆ Fabs()

void v8::internal::MacroAssembler::Fabs ( const FPRegister fd,
const FPRegister fn 
)
inline

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

542  {
543  DCHECK(allow_macro_instructions_);
544  fabs(fd, fn);
545 }

References DCHECK, and v8::internal::Assembler::fabs().

+ Here is the call graph for this function:

◆ Fadd()

void v8::internal::MacroAssembler::Fadd ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm 
)
inline

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

550  {
551  DCHECK(allow_macro_instructions_);
552  fadd(fd, fn, fm);
553 }
void fadd(const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)

References DCHECK, and v8::internal::Assembler::fadd().

+ Here is the call graph for this function:

◆ Fccmp()

void v8::internal::MacroAssembler::Fccmp ( const FPRegister fn,
const FPRegister fm,
StatusFlags  nzcv,
Condition  cond 
)
inline

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

559  {
560  DCHECK(allow_macro_instructions_);
561  DCHECK((cond != al) && (cond != nv));
562  fccmp(fn, fm, nzcv, cond);
563 }
void fccmp(const FPRegister &fn, const FPRegister &fm, StatusFlags nzcv, Condition cond)

References v8::internal::al, DCHECK, v8::internal::Assembler::fccmp(), and v8::internal::nv.

+ Here is the call graph for this function:

◆ FCmp() [1/3]

void v8::internal::MacroAssembler::FCmp ( )

◆ FCmp() [2/3]

void v8::internal::MacroAssembler::FCmp ( )

◆ FCmp() [3/3]

void v8::internal::MacroAssembler::FCmp ( )

◆ Fcmp() [1/2]

void v8::internal::MacroAssembler::Fcmp ( const FPRegister fn,
const FPRegister fm 
)
inline

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

566  {
567  DCHECK(allow_macro_instructions_);
568  fcmp(fn, fm);
569 }
void fcmp(const FPRegister &fn, const FPRegister &fm)

References DCHECK, and v8::internal::Assembler::fcmp().

+ Here is the call graph for this function:

◆ Fcmp() [2/2]

void v8::internal::MacroAssembler::Fcmp ( const FPRegister fn,
double  value 
)
inline

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

572  {
573  DCHECK(allow_macro_instructions_);
574  if (value != 0.0) {
575  UseScratchRegisterScope temps(this);
576  FPRegister tmp = temps.AcquireSameSizeAs(fn);
577  Fmov(tmp, value);
578  fcmp(fn, tmp);
579  } else {
580  fcmp(fn, value);
581  }
582 }
void Fmov(FPRegister fd, FPRegister fn)

References v8::internal::UseScratchRegisterScope::AcquireSameSizeAs(), DCHECK, v8::internal::Assembler::fcmp(), and Fmov().

+ Here is the call graph for this function:

◆ Fcsel()

void v8::internal::MacroAssembler::Fcsel ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm,
Condition  cond 
)
inline

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

588  {
589  DCHECK(allow_macro_instructions_);
590  DCHECK((cond != al) && (cond != nv));
591  fcsel(fd, fn, fm, cond);
592 }
void fcsel(const FPRegister &fd, const FPRegister &fn, const FPRegister &fm, Condition cond)

References v8::internal::al, DCHECK, v8::internal::Assembler::fcsel(), and v8::internal::nv.

+ Here is the call graph for this function:

◆ Fcvt()

void v8::internal::MacroAssembler::Fcvt ( const FPRegister fd,
const FPRegister fn 
)
inline

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

595  {
596  DCHECK(allow_macro_instructions_);
597  fcvt(fd, fn);
598 }
void fcvt(const FPRegister &fd, const FPRegister &fn)

References DCHECK, and v8::internal::Assembler::fcvt().

+ Here is the call graph for this function:

◆ Fcvtas()

void v8::internal::MacroAssembler::Fcvtas ( const Register rd,
const FPRegister fn 
)
inline

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

601  {
602  DCHECK(allow_macro_instructions_);
603  DCHECK(!rd.IsZero());
604  fcvtas(rd, fn);
605 }
void fcvtas(const Register &rd, const FPRegister &fn)

References DCHECK, v8::internal::Assembler::fcvtas(), and v8::internal::CPURegister::IsZero().

+ Here is the call graph for this function:

◆ Fcvtau()

void v8::internal::MacroAssembler::Fcvtau ( const Register rd,
const FPRegister fn 
)
inline

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

608  {
609  DCHECK(allow_macro_instructions_);
610  DCHECK(!rd.IsZero());
611  fcvtau(rd, fn);
612 }
void fcvtau(const Register &rd, const FPRegister &fn)

References DCHECK, v8::internal::Assembler::fcvtau(), and v8::internal::CPURegister::IsZero().

+ Here is the call graph for this function:

◆ Fcvtms()

void v8::internal::MacroAssembler::Fcvtms ( const Register rd,
const FPRegister fn 
)
inline

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

615  {
616  DCHECK(allow_macro_instructions_);
617  DCHECK(!rd.IsZero());
618  fcvtms(rd, fn);
619 }
void fcvtms(const Register &rd, const FPRegister &fn)

References DCHECK, v8::internal::Assembler::fcvtms(), and v8::internal::CPURegister::IsZero().

+ Here is the call graph for this function:

◆ Fcvtmu()

void v8::internal::MacroAssembler::Fcvtmu ( const Register rd,
const FPRegister fn 
)
inline

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

622  {
623  DCHECK(allow_macro_instructions_);
624  DCHECK(!rd.IsZero());
625  fcvtmu(rd, fn);
626 }
void fcvtmu(const Register &rd, const FPRegister &fn)

References DCHECK, v8::internal::Assembler::fcvtmu(), and v8::internal::CPURegister::IsZero().

+ Here is the call graph for this function:

◆ Fcvtns()

void v8::internal::MacroAssembler::Fcvtns ( const Register rd,
const FPRegister fn 
)
inline

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

629  {
630  DCHECK(allow_macro_instructions_);
631  DCHECK(!rd.IsZero());
632  fcvtns(rd, fn);
633 }
void fcvtns(const Register &rd, const FPRegister &fn)

References DCHECK, v8::internal::Assembler::fcvtns(), and v8::internal::CPURegister::IsZero().

+ Here is the call graph for this function:

◆ Fcvtnu()

void v8::internal::MacroAssembler::Fcvtnu ( const Register rd,
const FPRegister fn 
)
inline

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

636  {
637  DCHECK(allow_macro_instructions_);
638  DCHECK(!rd.IsZero());
639  fcvtnu(rd, fn);
640 }
void fcvtnu(const Register &rd, const FPRegister &fn)

References DCHECK, v8::internal::Assembler::fcvtnu(), and v8::internal::CPURegister::IsZero().

+ Here is the call graph for this function:

◆ Fcvtzs()

void v8::internal::MacroAssembler::Fcvtzs ( const Register rd,
const FPRegister fn 
)
inline

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

643  {
644  DCHECK(allow_macro_instructions_);
645  DCHECK(!rd.IsZero());
646  fcvtzs(rd, fn);
647 }
void fcvtzs(const Register &rd, const FPRegister &fn)

References DCHECK, v8::internal::Assembler::fcvtzs(), and v8::internal::CPURegister::IsZero().

+ Here is the call graph for this function:

◆ Fcvtzu()

void v8::internal::MacroAssembler::Fcvtzu ( const Register rd,
const FPRegister fn 
)
inline

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

648  {
649  DCHECK(allow_macro_instructions_);
650  DCHECK(!rd.IsZero());
651  fcvtzu(rd, fn);
652 }
void fcvtzu(const Register &rd, const FPRegister &fn)

References DCHECK, v8::internal::Assembler::fcvtzu(), and v8::internal::CPURegister::IsZero().

+ Here is the call graph for this function:

◆ Fdiv()

void v8::internal::MacroAssembler::Fdiv ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm 
)
inline

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

657  {
658  DCHECK(allow_macro_instructions_);
659  fdiv(fd, fn, fm);
660 }
void fdiv(const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)

References DCHECK, and v8::internal::Assembler::fdiv().

+ Here is the call graph for this function:

◆ FillFields()

void v8::internal::MacroAssembler::FillFields ( Register  dst,
Register  field_count,
Register  filler 
)

◆ Floor_l_d()

void v8::internal::MacroAssembler::Floor_l_d ( FPURegister  fd,
FPURegister  fs 
)

◆ Floor_w_d() [1/2]

void v8::internal::MacroAssembler::Floor_w_d ( FPURegister  fd,
FPURegister  fs 
)

◆ Floor_w_d() [2/2]

void v8::internal::MacroAssembler::Floor_w_d ( FPURegister  fd,
FPURegister  fs 
)

◆ FlushICache() [1/2]

void v8::internal::MacroAssembler::FlushICache ( Register  address,
unsigned  instructions 
)

◆ FlushICache() [2/2]

void v8::internal::MacroAssembler::FlushICache ( Register  address,
unsigned  instructions 
)

◆ Fmadd()

void v8::internal::MacroAssembler::Fmadd ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm,
const FPRegister fa 
)
inline

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

666  {
667  DCHECK(allow_macro_instructions_);
668  fmadd(fd, fn, fm, fa);
669 }
void fmadd(const FPRegister &fd, const FPRegister &fn, const FPRegister &fm, const FPRegister &fa)

References DCHECK, and v8::internal::Assembler::fmadd().

+ Here is the call graph for this function:

◆ Fmax()

void v8::internal::MacroAssembler::Fmax ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm 
)
inline

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

674  {
675  DCHECK(allow_macro_instructions_);
676  fmax(fd, fn, fm);
677 }
void fmax(const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)

References DCHECK, and v8::internal::Assembler::fmax().

+ Here is the call graph for this function:

◆ Fmaxnm()

void v8::internal::MacroAssembler::Fmaxnm ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm 
)
inline

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

682  {
683  DCHECK(allow_macro_instructions_);
684  fmaxnm(fd, fn, fm);
685 }
void fmaxnm(const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)

References DCHECK, and v8::internal::Assembler::fmaxnm().

+ Here is the call graph for this function:

◆ Fmin()

void v8::internal::MacroAssembler::Fmin ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm 
)
inline

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

690  {
691  DCHECK(allow_macro_instructions_);
692  fmin(fd, fn, fm);
693 }
void fmin(const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)

References DCHECK, and v8::internal::Assembler::fmin().

+ Here is the call graph for this function:

◆ Fminnm()

void v8::internal::MacroAssembler::Fminnm ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm 
)
inline

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

698  {
699  DCHECK(allow_macro_instructions_);
700  fminnm(fd, fn, fm);
701 }
void fminnm(const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)

References DCHECK, and v8::internal::Assembler::fminnm().

+ Here is the call graph for this function:

◆ Fmov() [1/6]

void v8::internal::MacroAssembler::Fmov ( FPRegister  fd,
double  imm 
)
inline

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

722  {
723  DCHECK(allow_macro_instructions_);
724  if (fd.Is32Bits()) {
725  Fmov(fd, static_cast<float>(imm));
726  return;
727  }
728 
729  DCHECK(fd.Is64Bits());
730  if (IsImmFP64(imm)) {
731  fmov(fd, imm);
732  } else if ((imm == 0.0) && (copysign(1.0, imm) == 1.0)) {
733  fmov(fd, xzr);
734  } else {
735  Ldr(fd, imm);
736  }
737 }
void fmov(FPRegister fd, double imm)
static bool IsImmFP64(double imm)
void Ldr(const CPURegister &rt, const Immediate &imm)

References DCHECK, v8::internal::Assembler::fmov(), Fmov(), v8::internal::CPURegister::Is32Bits(), v8::internal::CPURegister::Is64Bits(), v8::internal::Assembler::IsImmFP64(), and Ldr().

+ Here is the call graph for this function:

◆ Fmov() [2/6]

void v8::internal::MacroAssembler::Fmov ( FPRegister  fd,
float  imm 
)
inline

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

740  {
741  DCHECK(allow_macro_instructions_);
742  if (fd.Is64Bits()) {
743  Fmov(fd, static_cast<double>(imm));
744  return;
745  }
746 
747  DCHECK(fd.Is32Bits());
748  if (IsImmFP32(imm)) {
749  fmov(fd, imm);
750  } else if ((imm == 0.0) && (copysign(1.0, imm) == 1.0)) {
751  fmov(fd, wzr);
752  } else {
753  UseScratchRegisterScope temps(this);
754  Register tmp = temps.AcquireW();
755  // TODO(all): Use Assembler::ldr(const FPRegister& ft, float imm).
756  Mov(tmp, float_to_rawbits(imm));
757  Fmov(fd, tmp);
758  }
759 }
static bool IsImmFP32(float imm)
void Mov(const Register &rd, const Operand &operand, DiscardMoveMode discard_mode=kDontDiscardForSameWReg)
static uint32_t float_to_rawbits(float value)
Definition: utils-arm64.h:27

References v8::internal::UseScratchRegisterScope::AcquireW(), DCHECK, v8::internal::float_to_rawbits(), v8::internal::Assembler::fmov(), Fmov(), v8::internal::CPURegister::Is32Bits(), v8::internal::CPURegister::Is64Bits(), v8::internal::Assembler::IsImmFP32(), and Mov().

+ Here is the call graph for this function:

◆ Fmov() [3/6]

void v8::internal::MacroAssembler::Fmov ( FPRegister  fd,
FPRegister  fn 
)
inline

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

704  {
705  DCHECK(allow_macro_instructions_);
706  // Only emit an instruction if fd and fn are different, and they are both D
707  // registers. fmov(s0, s0) is not a no-op because it clears the top word of
708  // d0. Technically, fmov(d0, d0) is not a no-op either because it clears the
709  // top of q0, but FPRegister does not currently support Q registers.
710  if (!fd.Is(fn) || !fd.Is64Bits()) {
711  fmov(fd, fn);
712  }
713 }

References DCHECK, v8::internal::Assembler::fmov(), v8::internal::CPURegister::Is(), and v8::internal::CPURegister::Is64Bits().

Referenced by Fcmp(), and Fmov().

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

◆ Fmov() [4/6]

void v8::internal::MacroAssembler::Fmov ( FPRegister  fd,
Register  rn 
)
inline

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

716  {
717  DCHECK(allow_macro_instructions_);
718  fmov(fd, rn);
719 }

References DCHECK, and v8::internal::Assembler::fmov().

+ Here is the call graph for this function:

◆ Fmov() [5/6]

template<typename T >
void v8::internal::MacroAssembler::Fmov ( FPRegister  fd,
T  imm 
)
inline

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

401  {
402  DCHECK(allow_macro_instructions_);
403  Fmov(fd, static_cast<double>(imm));
404  }

References DCHECK, and Fmov().

+ Here is the call graph for this function:

◆ Fmov() [6/6]

void v8::internal::MacroAssembler::Fmov ( Register  rd,
FPRegister  fn 
)
inline

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

762  {
763  DCHECK(allow_macro_instructions_);
764  DCHECK(!rd.IsZero());
765  fmov(rd, fn);
766 }

References DCHECK, v8::internal::Assembler::fmov(), and v8::internal::CPURegister::IsZero().

+ Here is the call graph for this function:

◆ FmoveHigh() [1/2]

void v8::internal::MacroAssembler::FmoveHigh ( Register  dst_high,
FPURegister  src 
)
inline

Definition at line 240 of file macro-assembler-mips.h.

240  {
241  Mfhc1(dst_high, src);
242  }
void Mfhc1(Register rt, FPURegister fs)

References Mfhc1().

+ Here is the call graph for this function:

◆ FmoveHigh() [2/2]

void v8::internal::MacroAssembler::FmoveHigh ( Register  dst_high,
FPURegister  src 
)
inline

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

261  {
262  mfhc1(dst_high, src);
263  }
void mfhc1(Register rt, FPURegister fs)

References v8::internal::Assembler::mfhc1().

+ Here is the call graph for this function:

◆ FmoveLow() [1/2]

void v8::internal::MacroAssembler::FmoveLow ( Register  dst_low,
FPURegister  src 
)
inline

Definition at line 244 of file macro-assembler-mips.h.

244  {
245  mfc1(dst_low, src);
246  }
void mfc1(Register rt, FPURegister fs)

References v8::internal::Assembler::mfc1().

+ Here is the call graph for this function:

◆ FmoveLow() [2/2]

void v8::internal::MacroAssembler::FmoveLow ( Register  dst_low,
FPURegister  src 
)
inline

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

265  {
266  mfc1(dst_low, src);
267  }

References v8::internal::Assembler::mfc1().

+ Here is the call graph for this function:

◆ Fmsub()

void v8::internal::MacroAssembler::Fmsub ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm,
const FPRegister fa 
)
inline

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

772  {
773  DCHECK(allow_macro_instructions_);
774  fmsub(fd, fn, fm, fa);
775 }
void fmsub(const FPRegister &fd, const FPRegister &fn, const FPRegister &fm, const FPRegister &fa)

References DCHECK, and v8::internal::Assembler::fmsub().

+ Here is the call graph for this function:

◆ Fmul()

void v8::internal::MacroAssembler::Fmul ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm 
)
inline

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

780  {
781  DCHECK(allow_macro_instructions_);
782  fmul(fd, fn, fm);
783 }
void fmul(const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)

References DCHECK, and v8::internal::Assembler::fmul().

+ Here is the call graph for this function:

◆ Fneg()

void v8::internal::MacroAssembler::Fneg ( const FPRegister fd,
const FPRegister fn 
)
inline

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

786  {
787  DCHECK(allow_macro_instructions_);
788  fneg(fd, fn);
789 }
void fneg(const FPRegister &fd, const FPRegister &fn)

References DCHECK, and v8::internal::Assembler::fneg().

+ Here is the call graph for this function:

◆ Fnmadd()

void v8::internal::MacroAssembler::Fnmadd ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm,
const FPRegister fa 
)
inline

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

795  {
796  DCHECK(allow_macro_instructions_);
797  fnmadd(fd, fn, fm, fa);
798 }
void fnmadd(const FPRegister &fd, const FPRegister &fn, const FPRegister &fm, const FPRegister &fa)

References DCHECK, and v8::internal::Assembler::fnmadd().

+ Here is the call graph for this function:

◆ Fnmsub()

void v8::internal::MacroAssembler::Fnmsub ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm,
const FPRegister fa 
)
inline

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

804  {
805  DCHECK(allow_macro_instructions_);
806  fnmsub(fd, fn, fm, fa);
807 }
void fnmsub(const FPRegister &fd, const FPRegister &fn, const FPRegister &fm, const FPRegister &fa)

References DCHECK, and v8::internal::Assembler::fnmsub().

+ Here is the call graph for this function:

◆ FPTmpList()

CPURegList* v8::internal::MacroAssembler::FPTmpList ( )
inline

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

1956 { return &fptmp_list_; }

References fptmp_list_.

◆ Frinta()

void v8::internal::MacroAssembler::Frinta ( const FPRegister fd,
const FPRegister fn 
)
inline

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

810  {
811  DCHECK(allow_macro_instructions_);
812  frinta(fd, fn);
813 }
void frinta(const FPRegister &fd, const FPRegister &fn)

References DCHECK, and v8::internal::Assembler::frinta().

+ Here is the call graph for this function:

◆ Frintm()

void v8::internal::MacroAssembler::Frintm ( const FPRegister fd,
const FPRegister fn 
)
inline

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

816  {
817  DCHECK(allow_macro_instructions_);
818  frintm(fd, fn);
819 }
void frintm(const FPRegister &fd, const FPRegister &fn)

References DCHECK, and v8::internal::Assembler::frintm().

+ Here is the call graph for this function:

◆ Frintn()

void v8::internal::MacroAssembler::Frintn ( const FPRegister fd,
const FPRegister fn 
)
inline

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

822  {
823  DCHECK(allow_macro_instructions_);
824  frintn(fd, fn);
825 }
void frintn(const FPRegister &fd, const FPRegister &fn)

References DCHECK, and v8::internal::Assembler::frintn().

+ Here is the call graph for this function:

◆ Frintz()

void v8::internal::MacroAssembler::Frintz ( const FPRegister fd,
const FPRegister fn 
)
inline

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

828  {
829  DCHECK(allow_macro_instructions_);
830  frintz(fd, fn);
831 }
void frintz(const FPRegister &fd, const FPRegister &fn)

References DCHECK, and v8::internal::Assembler::frintz().

+ Here is the call graph for this function:

◆ Fsqrt()

void v8::internal::MacroAssembler::Fsqrt ( const FPRegister fd,
const FPRegister fn 
)
inline

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

834  {
835  DCHECK(allow_macro_instructions_);
836  fsqrt(fd, fn);
837 }

References DCHECK, and v8::internal::Assembler::fsqrt().

+ Here is the call graph for this function:

◆ Fsub()

void v8::internal::MacroAssembler::Fsub ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm 
)
inline

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

842  {
843  DCHECK(allow_macro_instructions_);
844  fsub(fd, fn, fm);
845 }
void fsub(const FPRegister &fd, const FPRegister &fn, const FPRegister &fm)

References DCHECK, and v8::internal::Assembler::fsub().

+ Here is the call graph for this function:

◆ FXamMinusZero()

void v8::internal::MacroAssembler::FXamMinusZero ( )

◆ FXamSign()

void v8::internal::MacroAssembler::FXamSign ( )

◆ generating_stub() [1/7]

bool v8::internal::MacroAssembler::generating_stub ( )
inline

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

References generating_stub_.

◆ generating_stub() [2/7]

bool v8::internal::MacroAssembler::generating_stub ( )
inline

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

887 { return generating_stub_; }

References generating_stub_.

◆ generating_stub() [3/7]

bool v8::internal::MacroAssembler::generating_stub ( )
inline

Definition at line 1355 of file macro-assembler-mips.h.

1355 { return generating_stub_; }

References generating_stub_.

◆ generating_stub() [4/7]

bool v8::internal::MacroAssembler::generating_stub ( )
inline

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

1373 { return generating_stub_; }

References generating_stub_.

◆ generating_stub() [5/7]

bool v8::internal::MacroAssembler::generating_stub ( )
inline

Definition at line 1430 of file macro-assembler-x64.h.

1430 { return generating_stub_; }

References generating_stub_.

◆ generating_stub() [6/7]

bool v8::internal::MacroAssembler::generating_stub ( )
inline

Definition at line 854 of file macro-assembler-x87.h.

854 { return generating_stub_; }

References generating_stub_.

◆ generating_stub() [7/7]

bool v8::internal::MacroAssembler::generating_stub ( ) const
inline

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

1274 { return generating_stub_; }

References generating_stub_.

◆ GetBuiltinEntry() [1/7]

void v8::internal::MacroAssembler::GetBuiltinEntry ( Register  target,
Builtins::JavaScript  id 
)

◆ GetBuiltinEntry() [2/7]

void v8::internal::MacroAssembler::GetBuiltinEntry ( Register  target,
Builtins::JavaScript  id 
)

◆ GetBuiltinEntry() [3/7]

void v8::internal::MacroAssembler::GetBuiltinEntry ( Register  target,
Builtins::JavaScript  id 
)

◆ GetBuiltinEntry() [4/7]

void v8::internal::MacroAssembler::GetBuiltinEntry ( Register  target,
Builtins::JavaScript  id 
)

◆ GetBuiltinEntry() [5/7]

void v8::internal::MacroAssembler::GetBuiltinEntry ( Register  target,
Builtins::JavaScript  id 
)

◆ GetBuiltinEntry() [6/7]

void v8::internal::MacroAssembler::GetBuiltinEntry ( Register  target,
Builtins::JavaScript  id 
)

◆ GetBuiltinEntry() [7/7]

void v8::internal::MacroAssembler::GetBuiltinEntry ( Register  target,
Register  function,
Builtins::JavaScript  id 
)

◆ GetBuiltinFunction() [1/7]

void v8::internal::MacroAssembler::GetBuiltinFunction ( Register  target,
Builtins::JavaScript  id 
)

◆ GetBuiltinFunction() [2/7]

void v8::internal::MacroAssembler::GetBuiltinFunction ( Register  target,
Builtins::JavaScript  id 
)

◆ GetBuiltinFunction() [3/7]

void v8::internal::MacroAssembler::GetBuiltinFunction ( Register  target,
Builtins::JavaScript  id 
)

◆ GetBuiltinFunction() [4/7]

void v8::internal::MacroAssembler::GetBuiltinFunction ( Register  target,
Builtins::JavaScript  id 
)

◆ GetBuiltinFunction() [5/7]

void v8::internal::MacroAssembler::GetBuiltinFunction ( Register  target,
Builtins::JavaScript  id 
)

◆ GetBuiltinFunction() [6/7]

void v8::internal::MacroAssembler::GetBuiltinFunction ( Register  target,
Builtins::JavaScript  id 
)

◆ GetBuiltinFunction() [7/7]

void v8::internal::MacroAssembler::GetBuiltinFunction ( Register  target,
Builtins::JavaScript  id 
)

◆ GetCodeMarker() [1/3]

static int v8::internal::MacroAssembler::GetCodeMarker ( Instr  instr)
inlinestatic

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

699  {
700  int dst_reg_offset = 12;
701  int dst_mask = 0xf << dst_reg_offset;
702  int src_mask = 0xf;
703  int dst_reg = (instr & dst_mask) >> dst_reg_offset;
704  int src_reg = instr & src_mask;
705  uint32_t non_register_mask = ~(dst_mask | src_mask);
706  uint32_t mov_mask = al | 13 << 21;
707 
708  // Return <n> if we have a mov rn rn, else return -1.
709  int type = ((instr & non_register_mask) == mov_mask) &&
710  (dst_reg == src_reg) &&
711  (FIRST_IC_MARKER <= dst_reg) && (dst_reg < LAST_CODE_MARKER)
712  ? src_reg
713  : -1;
714  DCHECK((type == -1) ||
715  ((FIRST_IC_MARKER <= type) && (type < LAST_CODE_MARKER)));
716  return type;
717  }

References v8::internal::al, DCHECK, v8::internal::Assembler::FIRST_IC_MARKER, and v8::internal::Assembler::LAST_CODE_MARKER.

◆ GetCodeMarker() [2/3]

static int v8::internal::MacroAssembler::GetCodeMarker ( Instr  instr)
inlinestatic

Definition at line 464 of file macro-assembler-mips.h.

464  {
465  uint32_t opcode = ((instr & kOpcodeMask));
466  uint32_t rt = ((instr & kRtFieldMask) >> kRtShift);
467  uint32_t rs = ((instr & kRsFieldMask) >> kRsShift);
468  uint32_t sa = ((instr & kSaFieldMask) >> kSaShift);
469 
470  // Return <n> if we have a sll zero_reg, zero_reg, n
471  // else return -1.
472  bool sllzz = (opcode == SLL &&
473  rt == static_cast<uint32_t>(ToNumber(zero_reg)) &&
474  rs == static_cast<uint32_t>(ToNumber(zero_reg)));
475  int type =
476  (sllzz && FIRST_IC_MARKER <= sa && sa < LAST_CODE_MARKER) ? sa : -1;
477  DCHECK((type == -1) ||
478  ((FIRST_IC_MARKER <= type) && (type < LAST_CODE_MARKER)));
479  return type;
480  }
const int kRtShift
const int kRsFieldMask
int ToNumber(Register reg)
const int kRsShift
const int kRtFieldMask
const int kOpcodeMask
const int kSaFieldMask
const int kSaShift

References DCHECK, v8::internal::Assembler::FIRST_IC_MARKER, v8::internal::kOpcodeMask, v8::internal::kRsFieldMask, v8::internal::kRsShift, v8::internal::kRtFieldMask, v8::internal::kRtShift, v8::internal::kSaFieldMask, v8::internal::kSaShift, v8::internal::Assembler::LAST_CODE_MARKER, v8::internal::SLL, and v8::internal::ToNumber().

+ Here is the call graph for this function:

◆ GetCodeMarker() [3/3]

static int v8::internal::MacroAssembler::GetCodeMarker ( Instr  instr)
inlinestatic

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

485  {
486  uint32_t opcode = ((instr & kOpcodeMask));
487  uint32_t rt = ((instr & kRtFieldMask) >> kRtShift);
488  uint32_t rs = ((instr & kRsFieldMask) >> kRsShift);
489  uint32_t sa = ((instr & kSaFieldMask) >> kSaShift);
490 
491  // Return <n> if we have a sll zero_reg, zero_reg, n
492  // else return -1.
493  bool sllzz = (opcode == SLL &&
494  rt == static_cast<uint32_t>(ToNumber(zero_reg)) &&
495  rs == static_cast<uint32_t>(ToNumber(zero_reg)));
496  int type =
497  (sllzz && FIRST_IC_MARKER <= sa && sa < LAST_CODE_MARKER) ? sa : -1;
498  DCHECK((type == -1) ||
499  ((FIRST_IC_MARKER <= type) && (type < LAST_CODE_MARKER)));
500  return type;
501  }

References DCHECK, v8::internal::Assembler::FIRST_IC_MARKER, v8::internal::kOpcodeMask, v8::internal::kRsFieldMask, v8::internal::kRsShift, v8::internal::kRtFieldMask, v8::internal::kRtShift, v8::internal::kSaFieldMask, v8::internal::kSaShift, v8::internal::Assembler::LAST_CODE_MARKER, v8::internal::SLL, and v8::internal::ToNumber().

+ Here is the call graph for this function:

◆ GetLeastBitsFromInt32() [1/3]

void v8::internal::MacroAssembler::GetLeastBitsFromInt32 ( Register  dst,
Register  src,
int  mun_least_bits 
)

◆ GetLeastBitsFromInt32() [2/3]

void v8::internal::MacroAssembler::GetLeastBitsFromInt32 ( Register  dst,
Register  src,
int  mun_least_bits 
)

◆ GetLeastBitsFromInt32() [3/3]

void v8::internal::MacroAssembler::GetLeastBitsFromInt32 ( Register  dst,
Register  src,
int  mun_least_bits 
)

◆ GetLeastBitsFromSmi() [1/3]

void v8::internal::MacroAssembler::GetLeastBitsFromSmi ( Register  dst,
Register  src,
int  num_least_bits 
)

◆ GetLeastBitsFromSmi() [2/3]

void v8::internal::MacroAssembler::GetLeastBitsFromSmi ( Register  dst,
Register  src,
int  num_least_bits 
)

◆ GetLeastBitsFromSmi() [3/3]

void v8::internal::MacroAssembler::GetLeastBitsFromSmi ( Register  dst,
Register  src,
int  num_least_bits 
)

◆ GetMarkBits() [1/7]

void v8::internal::MacroAssembler::GetMarkBits ( Register  addr_reg,
Register  bitmap_reg,
Register  mask_reg 
)
inlineprivate

◆ GetMarkBits() [2/7]

void v8::internal::MacroAssembler::GetMarkBits ( Register  addr_reg,
Register  bitmap_reg,
Register  mask_reg 
)
inlineprivate

◆ GetMarkBits() [3/7]

void v8::internal::MacroAssembler::GetMarkBits ( Register  addr_reg,
Register  bitmap_reg,
Register  mask_reg 
)
inlineprivate

◆ GetMarkBits() [4/7]

void v8::internal::MacroAssembler::GetMarkBits ( Register  addr_reg,
Register  bitmap_reg,
Register  mask_reg 
)
inlineprivate

◆ GetMarkBits() [5/7]

void v8::internal::MacroAssembler::GetMarkBits ( Register  addr_reg,
Register  bitmap_reg,
Register  mask_reg 
)
inlineprivate

◆ GetMarkBits() [6/7]

void v8::internal::MacroAssembler::GetMarkBits ( Register  addr_reg,
Register  bitmap_reg,
Register  mask_reg 
)
inlineprivate

◆ GetMarkBits() [7/7]

void v8::internal::MacroAssembler::GetMarkBits ( Register  addr_reg,
Register  bitmap_reg,
Register  shift_reg 
)
inline

◆ GetNumberHash() [1/7]

void v8::internal::MacroAssembler::GetNumberHash ( Register  key,
Register  scratch 
)

◆ GetNumberHash() [2/7]

void v8::internal::MacroAssembler::GetNumberHash ( Register  r0,
Register  scratch 
)

◆ GetNumberHash() [3/7]

void v8::internal::MacroAssembler::GetNumberHash ( Register  r0,
Register  scratch 
)

◆ GetNumberHash() [4/7]

void v8::internal::MacroAssembler::GetNumberHash ( Register  r0,
Register  scratch 
)

◆ GetNumberHash() [5/7]

void v8::internal::MacroAssembler::GetNumberHash ( Register  reg0,
Register  scratch 
)

◆ GetNumberHash() [6/7]

void v8::internal::MacroAssembler::GetNumberHash ( Register  reg0,
Register  scratch 
)

◆ GetNumberHash() [7/7]

void v8::internal::MacroAssembler::GetNumberHash ( Register  t0,
Register  scratch 
)

◆ GetObjectType() [1/2]

void v8::internal::MacroAssembler::GetObjectType ( Register  function,
Register  map,
Register  type_reg 
)

◆ GetObjectType() [2/2]

void v8::internal::MacroAssembler::GetObjectType ( Register  function,
Register  map,
Register  type_reg 
)

◆ GetRelocatedValue() [1/2]

void v8::internal::MacroAssembler::GetRelocatedValue ( Register  li_location,
Register  value,
Register  scratch 
)

◆ GetRelocatedValue() [2/2]

void v8::internal::MacroAssembler::GetRelocatedValue ( Register  li_location,
Register  value,
Register  scratch 
)

◆ GetRelocatedValueLocation() [1/2]

void v8::internal::MacroAssembler::GetRelocatedValueLocation ( Register  ldr_location,
Register  result 
)

◆ GetRelocatedValueLocation() [2/2]

void v8::internal::MacroAssembler::GetRelocatedValueLocation ( Register  ldr_location,
Register  result,
Register  scratch 
)

◆ GetSmiConstant()

Register v8::internal::MacroAssembler::GetSmiConstant ( Smi value)
private

Referenced by Move().

+ Here is the caller graph for this function:

◆ has_frame() [1/7]

bool v8::internal::MacroAssembler::has_frame ( )
inline

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

References has_frame_.

Referenced by v8::internal::Builtins::SetUp().

+ Here is the caller graph for this function:

◆ has_frame() [2/7]

bool v8::internal::MacroAssembler::has_frame ( )
inline

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

889 { return has_frame_; }

References has_frame_.

◆ has_frame() [3/7]

bool v8::internal::MacroAssembler::has_frame ( )
inline

Definition at line 1357 of file macro-assembler-mips.h.

1357 { return has_frame_; }

References has_frame_.

◆ has_frame() [4/7]

bool v8::internal::MacroAssembler::has_frame ( )
inline

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

1375 { return has_frame_; }

References has_frame_.

◆ has_frame() [5/7]

bool v8::internal::MacroAssembler::has_frame ( )
inline

Definition at line 1432 of file macro-assembler-x64.h.

1432 { return has_frame_; }

References has_frame_.

◆ has_frame() [6/7]

bool v8::internal::MacroAssembler::has_frame ( )
inline

Definition at line 856 of file macro-assembler-x87.h.

856 { return has_frame_; }

References has_frame_.

◆ has_frame() [7/7]

bool v8::internal::MacroAssembler::has_frame ( ) const
inline

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

1283 { return has_frame_; }

References has_frame_.

◆ HasColor() [1/6]

void v8::internal::MacroAssembler::HasColor ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  has_color,
int  first_bit,
int  second_bit 
)

◆ HasColor() [2/6]

void v8::internal::MacroAssembler::HasColor ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  has_color,
int  first_bit,
int  second_bit 
)

◆ HasColor() [3/6]

void v8::internal::MacroAssembler::HasColor ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  has_color,
int  first_bit,
int  second_bit 
)

◆ HasColor() [4/6]

void v8::internal::MacroAssembler::HasColor ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  has_color,
int  first_bit,
int  second_bit 
)

◆ HasColor() [5/6]

void v8::internal::MacroAssembler::HasColor ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  has_color,
Label::Distance  has_color_distance,
int  first_bit,
int  second_bit 
)

◆ HasColor() [6/6]

void v8::internal::MacroAssembler::HasColor ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  has_color,
Label::Distance  has_color_distance,
int  first_bit,
int  second_bit 
)

◆ Hint()

void v8::internal::MacroAssembler::Hint ( SystemHint  code)
inline

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

848  {
849  DCHECK(allow_macro_instructions_);
850  hint(code);
851 }
void hint(SystemHint code)

References DCHECK, and v8::internal::Assembler::hint().

+ Here is the call graph for this function:

◆ Hlt()

void v8::internal::MacroAssembler::Hlt ( int  code)
inline

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

854  {
855  DCHECK(allow_macro_instructions_);
856  hlt(code);
857 }

References DCHECK, and v8::internal::Assembler::hlt().

+ Here is the call graph for this function:

◆ IncrementalMarkingRecordWriteHelper() [1/3]

void v8::internal::MacroAssembler::IncrementalMarkingRecordWriteHelper ( Register  object,
Register  value,
Register  address 
)

◆ IncrementalMarkingRecordWriteHelper() [2/3]

void v8::internal::MacroAssembler::IncrementalMarkingRecordWriteHelper ( Register  object,
Register  value,
Register  address 
)

◆ IncrementalMarkingRecordWriteHelper() [3/3]

void v8::internal::MacroAssembler::IncrementalMarkingRecordWriteHelper ( Register  object,
Register  value,
Register  address 
)

◆ IncrementCounter() [1/9]

void v8::internal::MacroAssembler::IncrementCounter ( Condition  cc,
StatsCounter counter,
int  value 
)

◆ IncrementCounter() [2/9]

void v8::internal::MacroAssembler::IncrementCounter ( Condition  cc,
StatsCounter counter,
int  value 
)

◆ IncrementCounter() [3/9]

void v8::internal::MacroAssembler::IncrementCounter ( StatsCounter counter,
int  value 
)

◆ IncrementCounter() [4/9]

void v8::internal::MacroAssembler::IncrementCounter ( StatsCounter counter,
int  value 
)

◆ IncrementCounter() [5/9]

void v8::internal::MacroAssembler::IncrementCounter ( StatsCounter counter,
int  value 
)

◆ IncrementCounter() [6/9]

void v8::internal::MacroAssembler::IncrementCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)

◆ IncrementCounter() [7/9]

void v8::internal::MacroAssembler::IncrementCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)

◆ IncrementCounter() [8/9]

void v8::internal::MacroAssembler::IncrementCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)

◆ IncrementCounter() [9/9]

void v8::internal::MacroAssembler::IncrementCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)

◆ IndexFromHash() [1/7]

void v8::internal::MacroAssembler::IndexFromHash ( Register  hash,
Register  index 
)

◆ IndexFromHash() [2/7]

void v8::internal::MacroAssembler::IndexFromHash ( Register  hash,
Register  index 
)

◆ IndexFromHash() [3/7]

void v8::internal::MacroAssembler::IndexFromHash ( Register  hash,
Register  index 
)

◆ IndexFromHash() [4/7]

void v8::internal::MacroAssembler::IndexFromHash ( Register  hash,
Register  index 
)

◆ IndexFromHash() [5/7]

void v8::internal::MacroAssembler::IndexFromHash ( Register  hash,
Register  index 
)

◆ IndexFromHash() [6/7]

void v8::internal::MacroAssembler::IndexFromHash ( Register  hash,
Register  index 
)

◆ IndexFromHash() [7/7]

void v8::internal::MacroAssembler::IndexFromHash ( Register  hash,
Register  index 
)

◆ InitializeFieldsWithFiller() [1/6]

void v8::internal::MacroAssembler::InitializeFieldsWithFiller ( Register  start_offset,
Register  end_offset,
Register  filler 
)

◆ InitializeFieldsWithFiller() [2/6]

void v8::internal::MacroAssembler::InitializeFieldsWithFiller ( Register  start_offset,
Register  end_offset,
Register  filler 
)

◆ InitializeFieldsWithFiller() [3/6]

void v8::internal::MacroAssembler::InitializeFieldsWithFiller ( Register  start_offset,
Register  end_offset,
Register  filler 
)

◆ InitializeFieldsWithFiller() [4/6]

void v8::internal::MacroAssembler::InitializeFieldsWithFiller ( Register  start_offset,
Register  end_offset,
Register  filler 
)

◆ InitializeFieldsWithFiller() [5/6]

void v8::internal::MacroAssembler::InitializeFieldsWithFiller ( Register  start_offset,
Register  end_offset,
Register  filler 
)

◆ InitializeFieldsWithFiller() [6/6]

void v8::internal::MacroAssembler::InitializeFieldsWithFiller ( Register  start_offset,
Register  end_offset,
Register  filler 
)

◆ InitializeNewString() [1/4]

void v8::internal::MacroAssembler::InitializeNewString ( Register  string,
Register  length,
Heap::RootListIndex  map_index,
Register  scratch1,
Register  scratch2 
)
private

◆ InitializeNewString() [2/4]

void v8::internal::MacroAssembler::InitializeNewString ( Register  string,
Register  length,
Heap::RootListIndex  map_index,
Register  scratch1,
Register  scratch2 
)
private

◆ InitializeNewString() [3/4]

void v8::internal::MacroAssembler::InitializeNewString ( Register  string,
Register  length,
Heap::RootListIndex  map_index,
Register  scratch1,
Register  scratch2 
)
private

◆ InitializeNewString() [4/4]

void v8::internal::MacroAssembler::InitializeNewString ( Register  string,
Register  length,
Heap::RootListIndex  map_index,
Register  scratch1,
Register  scratch2 
)
private

◆ InitializeRootRegister() [1/5]

void v8::internal::MacroAssembler::InitializeRootRegister ( )
inline

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

590  {
591  ExternalReference roots_array_start =
592  ExternalReference::roots_array_start(isolate());
593  mov(kRootRegister, Operand(roots_array_start));
594  }
Isolate * isolate() const
Definition: assembler.h:62
const Register kRootRegister

References v8::internal::AssemblerBase::isolate(), v8::internal::kRootRegister, and mov().

+ Here is the call graph for this function:

◆ InitializeRootRegister() [2/5]

void v8::internal::MacroAssembler::InitializeRootRegister ( )
inline

◆ InitializeRootRegister() [3/5]

void v8::internal::MacroAssembler::InitializeRootRegister ( )
inline

Definition at line 907 of file macro-assembler-mips.h.

907  {
908  ExternalReference roots_array_start =
909  ExternalReference::roots_array_start(isolate());
910  li(kRootRegister, Operand(roots_array_start));
911  }
void li(Register rd, Operand j, LiFlags mode=OPTIMIZE_SIZE)

References v8::internal::AssemblerBase::isolate(), v8::internal::kRootRegister, and li().

+ Here is the call graph for this function:

◆ InitializeRootRegister() [4/5]

void v8::internal::MacroAssembler::InitializeRootRegister ( )
inline

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

930  {
931  ExternalReference roots_array_start =
932  ExternalReference::roots_array_start(isolate());
933  li(kRootRegister, Operand(roots_array_start));
934  }

References v8::internal::AssemblerBase::isolate(), v8::internal::kRootRegister, and li().

+ Here is the call graph for this function:

◆ InitializeRootRegister() [5/5]

void v8::internal::MacroAssembler::InitializeRootRegister ( )
inline

Definition at line 340 of file macro-assembler-x64.h.

340  {
341  ExternalReference roots_array_start =
342  ExternalReference::roots_array_start(isolate());
343  Move(kRootRegister, roots_array_start);
344  addp(kRootRegister, Immediate(kRootRegisterBias));
345  }
void Move(Register dst, Handle< Object > value)
const int kRootRegisterBias

References v8::internal::AssemblerBase::isolate(), v8::internal::kRootRegister, v8::internal::kRootRegisterBias, and Move().

+ Here is the call graph for this function:

◆ InitializeSmiConstantRegister()

void v8::internal::MacroAssembler::InitializeSmiConstantRegister ( )
inline

Definition at line 397 of file macro-assembler-x64.h.

397  {
400  }
static RelocInfo::Mode RelocInfoNone()
static Smi * FromInt(int value)
Definition: objects-inl.h:1321
const int kSmiConstantRegisterValue
const Register kSmiConstantRegister

References v8::internal::Smi::FromInt(), v8::internal::kSmiConstantRegister, v8::internal::kSmiConstantRegisterValue, Move(), and v8::internal::Assembler::RelocInfoNone().

+ Here is the call graph for this function:

◆ InlineData()

void v8::internal::MacroAssembler::InlineData ( uint64_t  data)
inline

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

1670  {
1671  DCHECK(is_uint16(data));
1672  InstructionAccurateScope scope(this, 1);
1673  movz(xzr, data);
1674 }
void movz(const Register &rd, uint64_t imm, int shift=-1)

References DCHECK, and v8::internal::Assembler::movz().

+ Here is the call graph for this function:

◆ InNewSpace() [1/7]

void v8::internal::MacroAssembler::InNewSpace ( Register  object,
Condition  cond,
Label *  branch 
)
private

◆ InNewSpace() [2/7]

void v8::internal::MacroAssembler::InNewSpace ( Register  object,
Register  scratch,
Condition  cc,
Label *  branch,
Label::Distance  distance = Label::kFar 
)
private

◆ InNewSpace() [3/7]

void v8::internal::MacroAssembler::InNewSpace ( Register  object,
Register  scratch,
Condition  cc,
Label *  condition_met,
Label::Distance  condition_met_distance = Label::kFar 
)
private

◆ InNewSpace() [4/7]

void v8::internal::MacroAssembler::InNewSpace ( Register  object,
Register  scratch,
Condition  cc,
Label *  condition_met,
Label::Distance  condition_met_distance = Label::kFar 
)
private

◆ InNewSpace() [5/7]

void v8::internal::MacroAssembler::InNewSpace ( Register  object,
Register  scratch,
Condition  cond,
Label *  branch 
)
private

Referenced by JumpIfInNewSpace(), JumpIfNotInNewSpace(), and Move().

+ Here is the caller graph for this function:

◆ InNewSpace() [6/7]

void v8::internal::MacroAssembler::InNewSpace ( Register  object,
Register  scratch,
Condition  cond,
Label *  branch 
)
private

◆ InNewSpace() [7/7]

void v8::internal::MacroAssembler::InNewSpace ( Register  object,
Register  scratch,
Condition  cond,
Label *  branch 
)
private

◆ Ins() [1/2]

void v8::internal::MacroAssembler::Ins ( Register  rt,
Register  rs,
uint16_t  pos,
uint16_t  size 
)

◆ Ins() [2/2]

void v8::internal::MacroAssembler::Ins ( Register  rt,
Register  rs,
uint16_t  pos,
uint16_t  size 
)

◆ Integer32ToSmi()

void v8::internal::MacroAssembler::Integer32ToSmi ( Register  dst,
Register  src 
)

◆ Integer32ToSmiField()

void v8::internal::MacroAssembler::Integer32ToSmiField ( const Operand dst,
Register  src 
)

◆ Integer64PlusConstantToSmi()

void v8::internal::MacroAssembler::Integer64PlusConstantToSmi ( Register  dst,
Register  src,
int  constant 
)

◆ InvokeBuiltin() [1/7]

void v8::internal::MacroAssembler::InvokeBuiltin ( Builtins::JavaScript  id,
InvokeFlag  flag,
const CallWrapper call_wrapper = NullCallWrapper() 
)

◆ InvokeBuiltin() [2/7]

void v8::internal::MacroAssembler::InvokeBuiltin ( Builtins::JavaScript  id,
InvokeFlag  flag,
const CallWrapper call_wrapper = NullCallWrapper() 
)

◆ InvokeBuiltin() [3/7]

void v8::internal::MacroAssembler::InvokeBuiltin ( Builtins::JavaScript  id,
InvokeFlag  flag,
const CallWrapper call_wrapper = NullCallWrapper() 
)

◆ InvokeBuiltin() [4/7]

void v8::internal::MacroAssembler::InvokeBuiltin ( Builtins::JavaScript  id,
InvokeFlag  flag,
const CallWrapper call_wrapper = NullCallWrapper() 
)

◆ InvokeBuiltin() [5/7]

void v8::internal::MacroAssembler::InvokeBuiltin ( Builtins::JavaScript  id,
InvokeFlag  flag,
const CallWrapper call_wrapper = NullCallWrapper() 
)

◆ InvokeBuiltin() [6/7]

void v8::internal::MacroAssembler::InvokeBuiltin ( Builtins::JavaScript  id,
InvokeFlag  flag,
const CallWrapper call_wrapper = NullCallWrapper() 
)

◆ InvokeBuiltin() [7/7]

void v8::internal::MacroAssembler::InvokeBuiltin ( Builtins::JavaScript  id,
InvokeFlag  flag,
const CallWrapper call_wrapper = NullCallWrapper() 
)

◆ InvokeCode() [1/9]

void v8::internal::MacroAssembler::InvokeCode ( const Operand code,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeCode() [2/9]

void v8::internal::MacroAssembler::InvokeCode ( const Operand code,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeCode() [3/9]

void v8::internal::MacroAssembler::InvokeCode ( Register  code,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

Referenced by InvokeCode().

+ Here is the caller graph for this function:

◆ InvokeCode() [4/9]

void v8::internal::MacroAssembler::InvokeCode ( Register  code,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeCode() [5/9]

void v8::internal::MacroAssembler::InvokeCode ( Register  code,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)
inline

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

310  {
311  InvokeCode(Operand(code), expected, actual, flag, call_wrapper);
312  }
void InvokeCode(Register code, const ParameterCount &expected, const ParameterCount &actual, InvokeFlag flag, const CallWrapper &call_wrapper)
kFeedbackVectorOffset flag
Definition: objects-inl.h:5418

References v8::internal::flag, and InvokeCode().

+ Here is the call graph for this function:

◆ InvokeCode() [6/9]

void v8::internal::MacroAssembler::InvokeCode ( Register  code,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeCode() [7/9]

void v8::internal::MacroAssembler::InvokeCode ( Register  code,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeCode() [8/9]

void v8::internal::MacroAssembler::InvokeCode ( Register  code,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeCode() [9/9]

void v8::internal::MacroAssembler::InvokeCode ( Register  code,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)
inline

Definition at line 284 of file macro-assembler-x87.h.

288  {
289  InvokeCode(Operand(code), expected, actual, flag, call_wrapper);
290  }

References v8::internal::flag, and InvokeCode().

+ Here is the call graph for this function:

◆ InvokeFunction() [1/21]

void v8::internal::MacroAssembler::InvokeFunction ( Handle< JSFunction function,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [2/21]

void v8::internal::MacroAssembler::InvokeFunction ( Handle< JSFunction function,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [3/21]

void v8::internal::MacroAssembler::InvokeFunction ( Handle< JSFunction function,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [4/21]

void v8::internal::MacroAssembler::InvokeFunction ( Handle< JSFunction function,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [5/21]

void v8::internal::MacroAssembler::InvokeFunction ( Handle< JSFunction function,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [6/21]

void v8::internal::MacroAssembler::InvokeFunction ( Handle< JSFunction function,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [7/21]

void v8::internal::MacroAssembler::InvokeFunction ( Handle< JSFunction function,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [8/21]

void v8::internal::MacroAssembler::InvokeFunction ( Register  function,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [9/21]

void v8::internal::MacroAssembler::InvokeFunction ( Register  function,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [10/21]

void v8::internal::MacroAssembler::InvokeFunction ( Register  function,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [11/21]

void v8::internal::MacroAssembler::InvokeFunction ( Register  function,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [12/21]

void v8::internal::MacroAssembler::InvokeFunction ( Register  function,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [13/21]

void v8::internal::MacroAssembler::InvokeFunction ( Register  function,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [14/21]

void v8::internal::MacroAssembler::InvokeFunction ( Register  function,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [15/21]

void v8::internal::MacroAssembler::InvokeFunction ( Register  function,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [16/21]

void v8::internal::MacroAssembler::InvokeFunction ( Register  function,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [17/21]

void v8::internal::MacroAssembler::InvokeFunction ( Register  function,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [18/21]

void v8::internal::MacroAssembler::InvokeFunction ( Register  function,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [19/21]

void v8::internal::MacroAssembler::InvokeFunction ( Register  function,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [20/21]

void v8::internal::MacroAssembler::InvokeFunction ( Register  function,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokeFunction() [21/21]

void v8::internal::MacroAssembler::InvokeFunction ( Register  function,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)

◆ InvokePrologue() [1/7]

void v8::internal::MacroAssembler::InvokePrologue ( const ParameterCount &  expected,
const ParameterCount &  actual,
Handle< Code code_constant,
const Operand code_operand,
Label *  done,
bool definitely_mismatches,
InvokeFlag  flag,
Label::Distance  done_distance,
const CallWrapper call_wrapper = NullCallWrapper() 
)
private

◆ InvokePrologue() [2/7]

void v8::internal::MacroAssembler::InvokePrologue ( const ParameterCount &  expected,
const ParameterCount &  actual,
Handle< Code code_constant,
const Operand code_operand,
Label *  done,
bool definitely_mismatches,
InvokeFlag  flag,
Label::Distance  done_distance,
const CallWrapper call_wrapper = NullCallWrapper() 
)
private

◆ InvokePrologue() [3/7]

void v8::internal::MacroAssembler::InvokePrologue ( const ParameterCount &  expected,
const ParameterCount &  actual,
Handle< Code code_constant,
Register  code_reg,
Label *  done,
bool definitely_mismatches,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)
private

◆ InvokePrologue() [4/7]

void v8::internal::MacroAssembler::InvokePrologue ( const ParameterCount &  expected,
const ParameterCount &  actual,
Handle< Code code_constant,
Register  code_reg,
Label *  done,
bool definitely_mismatches,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)
private

◆ InvokePrologue() [5/7]

void v8::internal::MacroAssembler::InvokePrologue ( const ParameterCount &  expected,
const ParameterCount &  actual,
Handle< Code code_constant,
Register  code_reg,
Label *  done,
bool definitely_mismatches,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)
private

◆ InvokePrologue() [6/7]

void v8::internal::MacroAssembler::InvokePrologue ( const ParameterCount &  expected,
const ParameterCount &  actual,
Handle< Code code_constant,
Register  code_reg,
Label *  done,
InvokeFlag  flag,
bool definitely_mismatches,
const CallWrapper call_wrapper 
)

◆ InvokePrologue() [7/7]

void v8::internal::MacroAssembler::InvokePrologue ( const ParameterCount &  expected,
const ParameterCount &  actual,
Handle< Code code_constant,
Register  code_register,
Label *  done,
bool definitely_mismatches,
InvokeFlag  flag,
Label::Distance  near_jump = Label::kFar,
const CallWrapper call_wrapper = NullCallWrapper() 
)
private

◆ Isb()

void v8::internal::MacroAssembler::Isb ( )
inline

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

860  {
861  DCHECK(allow_macro_instructions_);
862  isb();
863 }

References DCHECK, and v8::internal::Assembler::isb().

+ Here is the call graph for this function:

◆ IsImmMovn()

static bool v8::internal::MacroAssembler::IsImmMovn ( uint64_t  imm,
unsigned  reg_size 
)
static

◆ IsImmMovz()

static bool v8::internal::MacroAssembler::IsImmMovz ( uint64_t  imm,
unsigned  reg_size 
)
static

◆ IsInstanceJSObjectType() [1/6]

void v8::internal::MacroAssembler::IsInstanceJSObjectType ( Register  map,
Register  scratch,
Label *  fail 
)

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

1462  {
1463  Ldrb(scratch, FieldMemOperand(map, Map::kInstanceTypeOffset));
1464  // If cmp result is lt, the following ccmp will clear all flags.
1465  // Z == 0, N == V implies gt condition.
1468 
1469  // If we didn't get a valid label object just fall through and leave the
1470  // flags updated.
1471  if (fail != NULL) {
1472  B(gt, fail);
1473  }
1474 }
void Ccmp(const Register &rn, const Operand &operand, StatusFlags nzcv, Condition cond)
static const int kInstanceTypeOffset
Definition: objects.h:6229
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf map
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long enable alignment of csp to bytes on platforms which prefer the register to always be NULL
@ LAST_NONCALLABLE_SPEC_OBJECT_TYPE
Definition: objects.h:785
@ FIRST_NONCALLABLE_SPEC_OBJECT_TYPE
Definition: objects.h:784
MemOperand FieldMemOperand(Register object, int offset)

References B(), Ccmp(), Cmp(), v8::internal::FieldMemOperand(), v8::internal::FIRST_NONCALLABLE_SPEC_OBJECT_TYPE, v8::internal::ge, v8::internal::gt, v8::internal::Map::kInstanceTypeOffset, v8::internal::LAST_NONCALLABLE_SPEC_OBJECT_TYPE, map, v8::internal::NoFlag, and NULL.

Referenced by IsObjectJSObjectType().

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

◆ IsInstanceJSObjectType() [2/6]

void v8::internal::MacroAssembler::IsInstanceJSObjectType ( Register  map,
Register  scratch,
Label *  fail 
)
inline

◆ IsInstanceJSObjectType() [3/6]

void v8::internal::MacroAssembler::IsInstanceJSObjectType ( Register  map,
Register  scratch,
Label *  fail 
)

◆ IsInstanceJSObjectType() [4/6]

void v8::internal::MacroAssembler::IsInstanceJSObjectType ( Register  map,
Register  scratch,
Label *  fail 
)

◆ IsInstanceJSObjectType() [5/6]

void v8::internal::MacroAssembler::IsInstanceJSObjectType ( Register  map,
Register  scratch,
Label *  fail 
)

◆ IsInstanceJSObjectType() [6/6]

void v8::internal::MacroAssembler::IsInstanceJSObjectType ( Register  map,
Register  scratch,
Label *  fail 
)

◆ IsMarkedCode() [1/3]

static bool v8::internal::MacroAssembler::IsMarkedCode ( Instr  instr,
int  type 
)
inlinestatic

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

693  {
694  DCHECK((FIRST_IC_MARKER <= type) && (type < LAST_CODE_MARKER));
695  return IsNop(instr, type);
696  }
static bool IsNop(Instr instr, int type=NON_MARKING_NOP)

References DCHECK, v8::internal::Assembler::FIRST_IC_MARKER, v8::internal::Assembler::IsNop(), and v8::internal::Assembler::LAST_CODE_MARKER.

+ Here is the call graph for this function:

◆ IsMarkedCode() [2/3]

static bool v8::internal::MacroAssembler::IsMarkedCode ( Instr  instr,
int  type 
)
inlinestatic

Definition at line 458 of file macro-assembler-mips.h.

458  {
459  DCHECK((FIRST_IC_MARKER <= type) && (type < LAST_CODE_MARKER));
460  return IsNop(instr, type);
461  }

References DCHECK, v8::internal::Assembler::FIRST_IC_MARKER, v8::internal::Assembler::IsNop(), and v8::internal::Assembler::LAST_CODE_MARKER.

+ Here is the call graph for this function:

◆ IsMarkedCode() [3/3]

static bool v8::internal::MacroAssembler::IsMarkedCode ( Instr  instr,
int  type 
)
inlinestatic

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

479  {
480  DCHECK((FIRST_IC_MARKER <= type) && (type < LAST_CODE_MARKER));
481  return IsNop(instr, type);
482  }

References DCHECK, v8::internal::Assembler::FIRST_IC_MARKER, v8::internal::Assembler::IsNop(), and v8::internal::Assembler::LAST_CODE_MARKER.

+ Here is the call graph for this function:

◆ IsObjectJSObjectType() [1/6]

void v8::internal::MacroAssembler::IsObjectJSObjectType ( Register  heap_object,
Register  map,
Register  scratch,
Label *  fail 
)

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

1454  {
1456  IsInstanceJSObjectType(map, scratch, fail);
1457 }
static const int kMapOffset
Definition: objects.h:1427
void IsInstanceJSObjectType(Register map, Register scratch, Label *fail)

References v8::internal::FieldMemOperand(), IsInstanceJSObjectType(), v8::internal::HeapObject::kMapOffset, Ldr(), and map.

+ Here is the call graph for this function:

◆ IsObjectJSObjectType() [2/6]

void v8::internal::MacroAssembler::IsObjectJSObjectType ( Register  heap_object,
Register  map,
Register  scratch,
Label *  fail 
)
inline

◆ IsObjectJSObjectType() [3/6]

void v8::internal::MacroAssembler::IsObjectJSObjectType ( Register  heap_object,
Register  map,
Register  scratch,
Label *  fail 
)

◆ IsObjectJSObjectType() [4/6]

void v8::internal::MacroAssembler::IsObjectJSObjectType ( Register  heap_object,
Register  map,
Register  scratch,
Label *  fail 
)

◆ IsObjectJSObjectType() [5/6]

void v8::internal::MacroAssembler::IsObjectJSObjectType ( Register  heap_object,
Register  map,
Register  scratch,
Label *  fail 
)

◆ IsObjectJSObjectType() [6/6]

void v8::internal::MacroAssembler::IsObjectJSObjectType ( Register  heap_object,
Register  map,
Register  scratch,
Label *  fail 
)

◆ IsObjectJSStringType() [1/4]

void v8::internal::MacroAssembler::IsObjectJSStringType ( Register  object,
Register  scratch,
Label *  fail 
)

◆ IsObjectJSStringType() [2/4]

void v8::internal::MacroAssembler::IsObjectJSStringType ( Register  object,
Register  scratch,
Label *  fail 
)

◆ IsObjectJSStringType() [3/4]

void v8::internal::MacroAssembler::IsObjectJSStringType ( Register  object,
Register  scratch,
Label *  fail 
)

◆ IsObjectJSStringType() [4/4]

void v8::internal::MacroAssembler::IsObjectJSStringType ( Register  object,
Register  type,
Label *  not_string,
Label *  string = NULL 
)
inline

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

1480  {
1481  Ldr(type, FieldMemOperand(object, HeapObject::kMapOffset));
1482  Ldrb(type.W(), FieldMemOperand(type, Map::kInstanceTypeOffset));
1483 
1484  STATIC_ASSERT(kStringTag == 0);
1485  DCHECK((string != NULL) || (not_string != NULL));
1486  if (string == NULL) {
1487  TestAndBranchIfAnySet(type.W(), kIsNotStringMask, not_string);
1488  } else if (not_string == NULL) {
1489  TestAndBranchIfAllClear(type.W(), kIsNotStringMask, string);
1490  } else {
1491  TestAndBranchIfAnySet(type.W(), kIsNotStringMask, not_string);
1492  B(string);
1493  }
1494 }
void TestAndBranchIfAllClear(const Register &reg, const uint64_t bit_pattern, Label *label)
void TestAndBranchIfAnySet(const Register &reg, const uint64_t bit_pattern, Label *label)
const uint32_t kStringTag
Definition: objects.h:544
const uint32_t kIsNotStringMask
Definition: objects.h:543

References B(), DCHECK, v8::internal::FieldMemOperand(), v8::internal::Map::kInstanceTypeOffset, v8::internal::kIsNotStringMask, v8::internal::HeapObject::kMapOffset, v8::internal::kStringTag, Ldr(), NULL, STATIC_ASSERT(), TestAndBranchIfAllClear(), TestAndBranchIfAnySet(), and v8::internal::CPURegister::W().

+ Here is the call graph for this function:

◆ IsObjectNameType() [1/7]

Condition v8::internal::MacroAssembler::IsObjectNameType ( Register  heap_object,
Register  map,
Register  instance_type 
)

◆ IsObjectNameType() [2/7]

Condition v8::internal::MacroAssembler::IsObjectNameType ( Register  heap_object,
Register  map,
Register  instance_type 
)

◆ IsObjectNameType() [3/7]

Condition v8::internal::MacroAssembler::IsObjectNameType ( Register  heap_object,
Register  map,
Register  instance_type 
)

◆ IsObjectNameType() [4/7]

void v8::internal::MacroAssembler::IsObjectNameType ( Register  object,
Register  scratch,
Label *  fail 
)

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

1445  {
1446  CompareObjectType(object, type, type, LAST_NAME_TYPE);
1447  B(hi, fail);
1448 }
void CompareObjectType(Register heap_object, Register map, Register type_reg, InstanceType type)
@ LAST_NAME_TYPE
Definition: objects.h:755

References B(), CompareObjectType(), v8::internal::hi, and v8::internal::LAST_NAME_TYPE.

+ Here is the call graph for this function:

◆ IsObjectNameType() [5/7]

void v8::internal::MacroAssembler::IsObjectNameType ( Register  object,
Register  scratch,
Label *  fail 
)

◆ IsObjectNameType() [6/7]

void v8::internal::MacroAssembler::IsObjectNameType ( Register  object,
Register  scratch,
Label *  fail 
)

◆ IsObjectNameType() [7/7]

void v8::internal::MacroAssembler::IsObjectNameType ( Register  object,
Register  type,
Label *  fail 
)
inline

◆ IsObjectStringType() [1/6]

Condition v8::internal::MacroAssembler::IsObjectStringType ( Register  heap_object,
Register  map,
Register  instance_type 
)

◆ IsObjectStringType() [2/6]

Condition v8::internal::MacroAssembler::IsObjectStringType ( Register  heap_object,
Register  map,
Register  instance_type 
)

◆ IsObjectStringType() [3/6]

Condition v8::internal::MacroAssembler::IsObjectStringType ( Register  heap_object,
Register  map,
Register  instance_type 
)

◆ IsObjectStringType() [4/6]

Condition v8::internal::MacroAssembler::IsObjectStringType ( Register  obj,
Register  type,
Condition  cond = al 
)
inline

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

943  {
944  ldr(type, FieldMemOperand(obj, HeapObject::kMapOffset), cond);
945  ldrb(type, FieldMemOperand(type, Map::kInstanceTypeOffset), cond);
946  tst(type, Operand(kIsNotStringMask), cond);
947  DCHECK_EQ(0, kStringTag);
948  return eq;
949  }
void ldrb(Register dst, const MemOperand &src, Condition cond=al)
void tst(Register src1, const Operand &src2, Condition cond=al)
void ldr(Register dst, const MemOperand &src, Condition cond=al)
#define DCHECK_EQ(v1, v2)
Definition: logging.h:206

References DCHECK_EQ, v8::internal::eq, v8::internal::FieldMemOperand(), v8::internal::Map::kInstanceTypeOffset, v8::internal::kIsNotStringMask, v8::internal::HeapObject::kMapOffset, v8::internal::kStringTag, v8::internal::Assembler::ldr(), v8::internal::Assembler::ldrb(), and v8::internal::Assembler::tst().

+ Here is the call graph for this function:

◆ IsObjectStringType() [5/6]

Condition v8::internal::MacroAssembler::IsObjectStringType ( Register  obj,
Register  type,
Register  result 
)
inline

Definition at line 1097 of file macro-assembler-mips.h.

1099  {
1102  And(type, type, Operand(kIsNotStringMask));
1103  DCHECK_EQ(0, kStringTag);
1104  return eq;
1105  }
void lbu(Register rd, const MemOperand &rs)
void lw(Register rd, const MemOperand &rs)

References And(), DCHECK_EQ, v8::internal::eq, v8::internal::FieldMemOperand(), v8::internal::Map::kInstanceTypeOffset, v8::internal::kIsNotStringMask, v8::internal::HeapObject::kMapOffset, v8::internal::kStringTag, v8::internal::Assembler::lbu(), and v8::internal::Assembler::lw().

+ Here is the call graph for this function:

◆ IsObjectStringType() [6/6]

Condition v8::internal::MacroAssembler::IsObjectStringType ( Register  obj,
Register  type,
Register  result 
)
inline

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

1122  {
1125  And(type, type, Operand(kIsNotStringMask));
1126  DCHECK_EQ(0, kStringTag);
1127  return eq;
1128  }
void ld(Register rd, const MemOperand &rs)

References And(), DCHECK_EQ, v8::internal::eq, v8::internal::FieldMemOperand(), v8::internal::Map::kInstanceTypeOffset, v8::internal::kIsNotStringMask, v8::internal::HeapObject::kMapOffset, v8::internal::kStringTag, v8::internal::Assembler::lbu(), and v8::internal::Assembler::ld().

+ Here is the call graph for this function:

◆ IsUnsafeImmediate() [1/2]

bool v8::internal::MacroAssembler::IsUnsafeImmediate ( const Immediate x)

◆ IsUnsafeImmediate() [2/2]

bool v8::internal::MacroAssembler::IsUnsafeImmediate ( const Immediate x)

◆ IsUnsafeInt()

bool v8::internal::MacroAssembler::IsUnsafeInt ( const int32_t  x)

◆ IsYoungSequence()

static bool v8::internal::MacroAssembler::IsYoungSequence ( Isolate isolate,
byte sequence 
)
static

◆ J() [1/2]

void v8::internal::MacroAssembler::J ( Label *  L,
BranchDelaySlot  bdslot 
)
private

◆ J() [2/2]

void v8::internal::MacroAssembler::J ( Label *  L,
BranchDelaySlot  bdslot 
)
private

◆ Jalr() [1/2]

void v8::internal::MacroAssembler::Jalr ( Label *  L,
BranchDelaySlot  bdslot 
)
private

◆ Jalr() [2/2]

void v8::internal::MacroAssembler::Jalr ( Label *  L,
BranchDelaySlot  bdslot 
)
private

◆ jmp() [1/3]

void v8::internal::MacroAssembler::jmp ( Label *  L)
inline

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

1077 { B(L); }

References B(), and v8::internal::L.

Referenced by v8::internal::StringCharCodeAtGenerator::SkipSlow(), and v8::internal::StringCharFromCodeGenerator::SkipSlow().

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

◆ jmp() [2/3]

void v8::internal::MacroAssembler::jmp ( Label *  L)
inline

Definition at line 267 of file macro-assembler-mips.h.

267  {
268  Branch(L);
269  }

References Branch(), and v8::internal::L.

+ Here is the call graph for this function:

◆ jmp() [3/3]

void v8::internal::MacroAssembler::jmp ( Label *  L)
inline

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

288  {
289  Branch(L);
290  }

References Branch(), and v8::internal::L.

+ Here is the call graph for this function:

◆ Jr() [1/2]

void v8::internal::MacroAssembler::Jr ( Label *  L,
BranchDelaySlot  bdslot 
)
private

◆ Jr() [2/2]

void v8::internal::MacroAssembler::Jr ( Label *  L,
BranchDelaySlot  bdslot 
)
private

◆ Jump() [1/20]

void v8::internal::MacroAssembler::Jump ( Address  destination,
RelocInfo::Mode  rmode 
)

◆ Jump() [2/20]

void v8::internal::MacroAssembler::Jump ( Address  target,
RelocInfo::Mode  rmode 
)

◆ Jump() [3/20]

void v8::internal::MacroAssembler::Jump ( Address  target,
RelocInfo::Mode  rmode,
COND_ARGS   
)

◆ Jump() [4/20]

void v8::internal::MacroAssembler::Jump ( Address  target,
RelocInfo::Mode  rmode,
COND_ARGS   
)

◆ Jump() [5/20]

void v8::internal::MacroAssembler::Jump ( Address  target,
RelocInfo::Mode  rmode,
Condition  cond = al 
)

◆ Jump() [6/20]

void v8::internal::MacroAssembler::Jump ( const Operand op)

◆ Jump() [7/20]

void v8::internal::MacroAssembler::Jump ( ExternalReference  ext)

◆ Jump() [8/20]

void v8::internal::MacroAssembler::Jump ( Handle< Code code,
RelocInfo::Mode  rmode 
)

◆ Jump() [9/20]

void v8::internal::MacroAssembler::Jump ( Handle< Code code,
RelocInfo::Mode  rmode,
COND_ARGS   
)

◆ Jump() [10/20]

void v8::internal::MacroAssembler::Jump ( Handle< Code code,
RelocInfo::Mode  rmode,
COND_ARGS   
)

◆ Jump() [11/20]

void v8::internal::MacroAssembler::Jump ( Handle< Code code,
RelocInfo::Mode  rmode,
Condition  cond = al 
)

◆ Jump() [12/20]

void v8::internal::MacroAssembler::Jump ( Handle< Code code_object,
RelocInfo::Mode  rmode 
)

◆ Jump() [13/20]

void v8::internal::MacroAssembler::Jump ( intptr_t  target,
RelocInfo::Mode  rmode 
)

◆ Jump() [14/20]

void v8::internal::MacroAssembler::Jump ( intptr_t  target,
RelocInfo::Mode  rmode,
COND_ARGS   
)

◆ Jump() [15/20]

void v8::internal::MacroAssembler::Jump ( intptr_t  target,
RelocInfo::Mode  rmode,
COND_ARGS   
)

◆ Jump() [16/20]

void v8::internal::MacroAssembler::Jump ( intptr_t  target,
RelocInfo::Mode  rmode,
Condition  cond = al 
)
private

◆ Jump() [17/20]

void v8::internal::MacroAssembler::Jump ( Register  target)

◆ Jump() [18/20]

void v8::internal::MacroAssembler::Jump ( Register  target,
COND_ARGS   
)

◆ Jump() [19/20]

void v8::internal::MacroAssembler::Jump ( Register  target,
COND_ARGS   
)

◆ Jump() [20/20]

void v8::internal::MacroAssembler::Jump ( Register  target,
Condition  cond = al 
)

◆ JumpIfBlack() [1/7]

void v8::internal::MacroAssembler::JumpIfBlack ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  on_black 
)

◆ JumpIfBlack() [2/7]

void v8::internal::MacroAssembler::JumpIfBlack ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  on_black 
)

◆ JumpIfBlack() [3/7]

void v8::internal::MacroAssembler::JumpIfBlack ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  on_black 
)

◆ JumpIfBlack() [4/7]

void v8::internal::MacroAssembler::JumpIfBlack ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  on_black 
)

◆ JumpIfBlack() [5/7]

void v8::internal::MacroAssembler::JumpIfBlack ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  on_black,
Label::Distance  on_black_distance = Label::kFar 
)

◆ JumpIfBlack() [6/7]

void v8::internal::MacroAssembler::JumpIfBlack ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  on_black,
Label::Distance  on_black_distance = Label::kFar 
)

◆ JumpIfBlack() [7/7]

void v8::internal::MacroAssembler::JumpIfBlack ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  on_black,
Label::Distance  on_black_distance = Label::kFar 
)

◆ JumpIfBothInstanceTypesAreNotSequentialOneByte() [1/5]

void v8::internal::MacroAssembler::JumpIfBothInstanceTypesAreNotSequentialOneByte ( Register  first_object_instance_type,
Register  second_object_instance_type,
Register  scratch1,
Register  scratch2,
Label *  failure 
)

◆ JumpIfBothInstanceTypesAreNotSequentialOneByte() [2/5]

void v8::internal::MacroAssembler::JumpIfBothInstanceTypesAreNotSequentialOneByte ( Register  first_object_instance_type,
Register  second_object_instance_type,
Register  scratch1,
Register  scratch2,
Label *  failure 
)

◆ JumpIfBothInstanceTypesAreNotSequentialOneByte() [3/5]

void v8::internal::MacroAssembler::JumpIfBothInstanceTypesAreNotSequentialOneByte ( Register  first_object_instance_type,
Register  second_object_instance_type,
Register  scratch1,
Register  scratch2,
Label *  failure 
)

◆ JumpIfBothInstanceTypesAreNotSequentialOneByte() [4/5]

void v8::internal::MacroAssembler::JumpIfBothInstanceTypesAreNotSequentialOneByte ( Register  first_object_instance_type,
Register  second_object_instance_type,
Register  scratch1,
Register  scratch2,
Label *  failure 
)

◆ JumpIfBothInstanceTypesAreNotSequentialOneByte() [5/5]

void v8::internal::MacroAssembler::JumpIfBothInstanceTypesAreNotSequentialOneByte ( Register  first_object_instance_type,
Register  second_object_instance_type,
Register  scratch1,
Register  scratch2,
Label *  on_fail,
Label::Distance  near_jump = Label::kFar 
)

◆ JumpIfBothNotSmi()

void v8::internal::MacroAssembler::JumpIfBothNotSmi ( Register  value1,
Register  value2,
Label *  not_smi_label 
)
inline

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

1414  {
1415  JumpIfEitherSmi(value1, value2, NULL, not_smi_label);
1416 }
void JumpIfEitherSmi(Register reg1, Register reg2, Label *on_either_smi)

References JumpIfEitherSmi(), and NULL.

+ Here is the call graph for this function:

◆ JumpIfBothSmi()

void v8::internal::MacroAssembler::JumpIfBothSmi ( Register  value1,
Register  value2,
Label *  both_smi_label,
Label *  not_smi_label = NULL 
)
inline

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

1382  {
1383  STATIC_ASSERT((kSmiTagSize == 1) && (kSmiTag == 0));
1384  UseScratchRegisterScope temps(this);
1385  Register tmp = temps.AcquireX();
1386  // Check if both tag bits are clear.
1387  Orr(tmp, value1, value2);
1388  JumpIfSmi(tmp, both_smi_label, not_smi_label);
1389 }
void Orr(const Register &rd, const Register &rn, const Operand &operand)
void JumpIfSmi(Register value, Label *smi_label)

References v8::internal::UseScratchRegisterScope::AcquireX(), JumpIfSmi(), v8::internal::kSmiTag, v8::internal::kSmiTagSize, Orr(), and STATIC_ASSERT().

Referenced by JumpIfEitherNotSmi().

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

◆ JumpIfDataObject() [1/5]

void v8::internal::MacroAssembler::JumpIfDataObject ( Register  value,
Register  scratch,
Label *  not_data_object 
)

◆ JumpIfDataObject() [2/5]

void v8::internal::MacroAssembler::JumpIfDataObject ( Register  value,
Register  scratch,
Label *  not_data_object 
)

◆ JumpIfDataObject() [3/5]

void v8::internal::MacroAssembler::JumpIfDataObject ( Register  value,
Register  scratch,
Label *  not_data_object 
)

◆ JumpIfDataObject() [4/5]

void v8::internal::MacroAssembler::JumpIfDataObject ( Register  value,
Register  scratch,
Label *  not_data_object 
)

◆ JumpIfDataObject() [5/5]

void v8::internal::MacroAssembler::JumpIfDataObject ( Register  value,
Register  scratch,
Label *  not_data_object,
Label::Distance  not_data_object_distance 
)

◆ JumpIfDictionaryInPrototypeChain() [1/7]

void v8::internal::MacroAssembler::JumpIfDictionaryInPrototypeChain ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  found 
)

◆ JumpIfDictionaryInPrototypeChain() [2/7]

void v8::internal::MacroAssembler::JumpIfDictionaryInPrototypeChain ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  found 
)

◆ JumpIfDictionaryInPrototypeChain() [3/7]

void v8::internal::MacroAssembler::JumpIfDictionaryInPrototypeChain ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  found 
)

◆ JumpIfDictionaryInPrototypeChain() [4/7]

void v8::internal::MacroAssembler::JumpIfDictionaryInPrototypeChain ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  found 
)

◆ JumpIfDictionaryInPrototypeChain() [5/7]

void v8::internal::MacroAssembler::JumpIfDictionaryInPrototypeChain ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  found 
)

◆ JumpIfDictionaryInPrototypeChain() [6/7]

void v8::internal::MacroAssembler::JumpIfDictionaryInPrototypeChain ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  found 
)

◆ JumpIfDictionaryInPrototypeChain() [7/7]

void v8::internal::MacroAssembler::JumpIfDictionaryInPrototypeChain ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  found 
)

◆ JumpIfEitherInstanceTypeIsNotSequentialOneByte()

void v8::internal::MacroAssembler::JumpIfEitherInstanceTypeIsNotSequentialOneByte ( Register  first_object_instance_type,
Register  second_object_instance_type,
Register  scratch1,
Register  scratch2,
Label *  failure 
)

◆ JumpIfEitherIsNotSequentialOneByteStrings()

void v8::internal::MacroAssembler::JumpIfEitherIsNotSequentialOneByteStrings ( Register  first,
Register  second,
Register  scratch1,
Register  scratch2,
Label *  failure,
SmiCheckType  smi_check = DO_SMI_CHECK 
)

◆ JumpIfEitherNotSmi()

void v8::internal::MacroAssembler::JumpIfEitherNotSmi ( Register  value1,
Register  value2,
Label *  not_smi_label 
)
inline

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

1407  {
1408  JumpIfBothSmi(value1, value2, NULL, not_smi_label);
1409 }
void JumpIfBothSmi(Register value1, Register value2, Label *both_smi_label, Label *not_smi_label=NULL)

References JumpIfBothSmi(), and NULL.

+ Here is the call graph for this function:

◆ JumpIfEitherSmi() [1/4]

void v8::internal::MacroAssembler::JumpIfEitherSmi ( Register  reg1,
Register  reg2,
Label *  on_either_smi 
)

Referenced by JumpIfBothNotSmi().

+ Here is the caller graph for this function:

◆ JumpIfEitherSmi() [2/4]

void v8::internal::MacroAssembler::JumpIfEitherSmi ( Register  reg1,
Register  reg2,
Label *  on_either_smi 
)

◆ JumpIfEitherSmi() [3/4]

void v8::internal::MacroAssembler::JumpIfEitherSmi ( Register  reg1,
Register  reg2,
Label *  on_either_smi 
)

◆ JumpIfEitherSmi() [4/4]

void v8::internal::MacroAssembler::JumpIfEitherSmi ( Register  value1,
Register  value2,
Label *  either_smi_label,
Label *  not_smi_label = NULL 
)
inline

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

1395  {
1396  STATIC_ASSERT((kSmiTagSize == 1) && (kSmiTag == 0));
1397  UseScratchRegisterScope temps(this);
1398  Register tmp = temps.AcquireX();
1399  // Check if either tag bit is clear.
1400  And(tmp, value1, value2);
1401  JumpIfSmi(tmp, either_smi_label, not_smi_label);
1402 }

References v8::internal::UseScratchRegisterScope::AcquireX(), And(), JumpIfSmi(), v8::internal::kSmiTag, v8::internal::kSmiTagSize, and STATIC_ASSERT().

+ Here is the call graph for this function:

◆ JumpIfHeapNumber()

void v8::internal::MacroAssembler::JumpIfHeapNumber ( Register  object,
Label *  on_heap_number,
SmiCheckType  smi_check_type = DONT_DO_SMI_CHECK 
)

◆ JumpIfInNewSpace() [1/7]

void v8::internal::MacroAssembler::JumpIfInNewSpace ( Register  object,
Label *  branch 
)
inline

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

1789  {
1790  InNewSpace(object, eq, branch);
1791  }
void InNewSpace(Register object, Register scratch, Condition cond, Label *branch)

References v8::internal::eq, and InNewSpace().

+ Here is the call graph for this function:

◆ JumpIfInNewSpace() [2/7]

void v8::internal::MacroAssembler::JumpIfInNewSpace ( Register  object,
Register  scratch,
Label *  branch 
)
inline

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

219  {
220  InNewSpace(object, scratch, eq, branch);
221  }

References v8::internal::eq, and InNewSpace().

+ Here is the call graph for this function:

◆ JumpIfInNewSpace() [3/7]

void v8::internal::MacroAssembler::JumpIfInNewSpace ( Register  object,
Register  scratch,
Label *  branch 
)
inline

Definition at line 330 of file macro-assembler-mips.h.

332  {
333  InNewSpace(object, scratch, eq, branch);
334  }

References v8::internal::eq, and InNewSpace().

+ Here is the call graph for this function:

◆ JumpIfInNewSpace() [4/7]

void v8::internal::MacroAssembler::JumpIfInNewSpace ( Register  object,
Register  scratch,
Label *  branch 
)
inline

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

353  {
354  InNewSpace(object, scratch, eq, branch);
355  }

References v8::internal::eq, and InNewSpace().

+ Here is the call graph for this function:

◆ JumpIfInNewSpace() [5/7]

void v8::internal::MacroAssembler::JumpIfInNewSpace ( Register  object,
Register  scratch,
Label *  branch,
Label::Distance  distance = Label::kFar 
)
inline

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

115  {
116  InNewSpace(object, scratch, not_zero, branch, distance);
117  }

References InNewSpace(), and v8::internal::not_zero.

+ Here is the call graph for this function:

◆ JumpIfInNewSpace() [6/7]

void v8::internal::MacroAssembler::JumpIfInNewSpace ( Register  object,
Register  scratch,
Label *  branch,
Label::Distance  distance = Label::kFar 
)
inline

Definition at line 193 of file macro-assembler-x64.h.

196  {
197  InNewSpace(object, scratch, equal, branch, distance);
198  }

References v8::internal::equal, and InNewSpace().

+ Here is the call graph for this function:

◆ JumpIfInNewSpace() [7/7]

void v8::internal::MacroAssembler::JumpIfInNewSpace ( Register  object,
Register  scratch,
Label *  branch,
Label::Distance  distance = Label::kFar 
)
inline

Definition at line 111 of file macro-assembler-x87.h.

114  {
115  InNewSpace(object, scratch, not_zero, branch, distance);
116  }

References InNewSpace(), and v8::internal::not_zero.

+ Here is the call graph for this function:

◆ JumpIfInstanceTypeIsNotSequentialOneByte() [1/7]

void v8::internal::MacroAssembler::JumpIfInstanceTypeIsNotSequentialOneByte ( Register  instance_type,
Register  scratch,
Label *  on_not_flat_one_byte_string 
)

◆ JumpIfInstanceTypeIsNotSequentialOneByte() [2/7]

void v8::internal::MacroAssembler::JumpIfInstanceTypeIsNotSequentialOneByte ( Register  instance_type,
Register  scratch,
Label *  on_not_flat_one_byte_string 
)

◆ JumpIfInstanceTypeIsNotSequentialOneByte() [3/7]

void v8::internal::MacroAssembler::JumpIfInstanceTypeIsNotSequentialOneByte ( Register  instance_type,
Register  scratch,
Label *  on_not_flat_one_byte_string,
Label::Distance  near_jump = Label::kFar 
)

◆ JumpIfInstanceTypeIsNotSequentialOneByte() [4/7]

void v8::internal::MacroAssembler::JumpIfInstanceTypeIsNotSequentialOneByte ( Register  type,
Register  scratch,
Label *  failure 
)

◆ JumpIfInstanceTypeIsNotSequentialOneByte() [5/7]

void v8::internal::MacroAssembler::JumpIfInstanceTypeIsNotSequentialOneByte ( Register  type,
Register  scratch,
Label *  failure 
)

◆ JumpIfInstanceTypeIsNotSequentialOneByte() [6/7]

void v8::internal::MacroAssembler::JumpIfInstanceTypeIsNotSequentialOneByte ( Register  type,
Register  scratch,
Label *  failure 
)

◆ JumpIfInstanceTypeIsNotSequentialOneByte() [7/7]

void v8::internal::MacroAssembler::JumpIfInstanceTypeIsNotSequentialOneByte ( Register  type,
Register  scratch,
Label *  failure 
)

◆ JumpIfJSArrayHasAllocationMemento() [1/7]

void v8::internal::MacroAssembler::JumpIfJSArrayHasAllocationMemento ( Register  receiver,
Register  scratch1,
Register  scratch2,
Label *  memento_found 
)
inline

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

1655  {
1656  Label no_memento_found;
1657  TestJSArrayForAllocationMemento(receiver, scratch1, scratch2,
1658  &no_memento_found);
1659  B(eq, memento_found);
1660  Bind(&no_memento_found);
1661  }
void TestJSArrayForAllocationMemento(Register receiver_reg, Register scratch_reg, Label *no_memento_found)

References B(), Bind(), v8::internal::eq, and TestJSArrayForAllocationMemento().

+ Here is the call graph for this function:

◆ JumpIfJSArrayHasAllocationMemento() [2/7]

void v8::internal::MacroAssembler::JumpIfJSArrayHasAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  memento_found 
)
inline

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

1424  {
1425  Label no_memento_found;
1426  TestJSArrayForAllocationMemento(receiver_reg, scratch_reg,
1427  &no_memento_found);
1428  b(eq, memento_found);
1429  bind(&no_memento_found);
1430  }

References v8::internal::Assembler::b(), v8::internal::Assembler::bind(), v8::internal::eq, and TestJSArrayForAllocationMemento().

+ Here is the call graph for this function:

◆ JumpIfJSArrayHasAllocationMemento() [3/7]

void v8::internal::MacroAssembler::JumpIfJSArrayHasAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  memento_found 
)
inline

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

957  {
958  Label no_memento_found;
959  TestJSArrayForAllocationMemento(receiver_reg, scratch_reg,
960  &no_memento_found);
961  j(equal, memento_found);
962  bind(&no_memento_found);
963  }
void j(Condition cc, Label *L, Label::Distance distance=Label::kFar)

References v8::internal::Assembler::bind(), v8::internal::equal, v8::internal::Assembler::j(), and TestJSArrayForAllocationMemento().

+ Here is the call graph for this function:

◆ JumpIfJSArrayHasAllocationMemento() [4/7]

void v8::internal::MacroAssembler::JumpIfJSArrayHasAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  memento_found 
)
inline

Definition at line 1594 of file macro-assembler-mips.h.

1596  {
1597  Label no_memento_found;
1598  TestJSArrayForAllocationMemento(receiver_reg, scratch_reg,
1599  &no_memento_found, eq, memento_found);
1600  bind(&no_memento_found);
1601  }

References v8::internal::Assembler::bind(), v8::internal::eq, and TestJSArrayForAllocationMemento().

+ Here is the call graph for this function:

◆ JumpIfJSArrayHasAllocationMemento() [5/7]

void v8::internal::MacroAssembler::JumpIfJSArrayHasAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  memento_found 
)
inline

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

1650  {
1651  Label no_memento_found;
1652  TestJSArrayForAllocationMemento(receiver_reg, scratch_reg,
1653  &no_memento_found, eq, memento_found);
1654  bind(&no_memento_found);
1655  }

References v8::internal::Assembler::bind(), v8::internal::eq, and TestJSArrayForAllocationMemento().

+ Here is the call graph for this function:

◆ JumpIfJSArrayHasAllocationMemento() [6/7]

void v8::internal::MacroAssembler::JumpIfJSArrayHasAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  memento_found 
)
inline

Definition at line 1458 of file macro-assembler-x64.h.

1460  {
1461  Label no_memento_found;
1462  TestJSArrayForAllocationMemento(receiver_reg, scratch_reg,
1463  &no_memento_found);
1464  j(equal, memento_found);
1465  bind(&no_memento_found);
1466  }

References v8::internal::Assembler::bind(), v8::internal::equal, v8::internal::Assembler::j(), and TestJSArrayForAllocationMemento().

+ Here is the call graph for this function:

◆ JumpIfJSArrayHasAllocationMemento() [7/7]

void v8::internal::MacroAssembler::JumpIfJSArrayHasAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  memento_found 
)
inline

Definition at line 922 of file macro-assembler-x87.h.

924  {
925  Label no_memento_found;
926  TestJSArrayForAllocationMemento(receiver_reg, scratch_reg,
927  &no_memento_found);
928  j(equal, memento_found);
929  bind(&no_memento_found);
930  }

References v8::internal::Assembler::bind(), v8::internal::equal, v8::internal::Assembler::j(), and TestJSArrayForAllocationMemento().

+ Here is the call graph for this function:

◆ JumpIfMinusZero() [1/2]

void v8::internal::MacroAssembler::JumpIfMinusZero ( DoubleRegister  input,
Label *  on_negative_zero 
)

◆ JumpIfMinusZero() [2/2]

void v8::internal::MacroAssembler::JumpIfMinusZero ( Register  input,
Label *  on_negative_zero 
)

◆ JumpIfNonSmisNotBothSequentialOneByteStrings() [1/3]

void v8::internal::MacroAssembler::JumpIfNonSmisNotBothSequentialOneByteStrings ( Register  first,
Register  second,
Register  scratch1,
Register  scratch2,
Label *  failure 
)

◆ JumpIfNonSmisNotBothSequentialOneByteStrings() [2/3]

void v8::internal::MacroAssembler::JumpIfNonSmisNotBothSequentialOneByteStrings ( Register  first,
Register  second,
Register  scratch1,
Register  scratch2,
Label *  failure 
)

◆ JumpIfNonSmisNotBothSequentialOneByteStrings() [3/3]

void v8::internal::MacroAssembler::JumpIfNonSmisNotBothSequentialOneByteStrings ( Register  object1,
Register  object2,
Register  scratch1,
Register  scratch2,
Label *  failure 
)

◆ JumpIfNotBothSequentialOneByteStrings() [1/6]

void v8::internal::MacroAssembler::JumpIfNotBothSequentialOneByteStrings ( Register  first,
Register  second,
Register  scratch1,
Register  scratch2,
Label *  not_flat_one_byte_strings 
)

◆ JumpIfNotBothSequentialOneByteStrings() [2/6]

void v8::internal::MacroAssembler::JumpIfNotBothSequentialOneByteStrings ( Register  first,
Register  second,
Register  scratch1,
Register  scratch2,
Label *  not_flat_one_byte_strings 
)

◆ JumpIfNotBothSequentialOneByteStrings() [3/6]

void v8::internal::MacroAssembler::JumpIfNotBothSequentialOneByteStrings ( Register  first,
Register  second,
Register  scratch1,
Register  scratch2,
Label *  not_flat_one_byte_strings 
)

◆ JumpIfNotBothSequentialOneByteStrings() [4/6]

void v8::internal::MacroAssembler::JumpIfNotBothSequentialOneByteStrings ( Register  first_object,
Register  second_object,
Register  scratch1,
Register  scratch2,
Label *  on_not_both_flat_one_byte,
Label::Distance  near_jump = Label::kFar 
)

◆ JumpIfNotBothSequentialOneByteStrings() [5/6]

void v8::internal::MacroAssembler::JumpIfNotBothSequentialOneByteStrings ( Register  object1,
Register  object2,
Register  scratch1,
Register  scratch2,
Label *  on_not_flat_one_byte_strings 
)

◆ JumpIfNotBothSequentialOneByteStrings() [6/6]

void v8::internal::MacroAssembler::JumpIfNotBothSequentialOneByteStrings ( Register  object1,
Register  object2,
Register  scratch1,
Register  scratch2,
Label *  on_not_flat_one_byte_strings 
)

◆ JumpIfNotBothSmi() [1/4]

void v8::internal::MacroAssembler::JumpIfNotBothSmi ( Register  reg1,
Register  reg2,
Label *  on_not_both_smi 
)

◆ JumpIfNotBothSmi() [2/4]

void v8::internal::MacroAssembler::JumpIfNotBothSmi ( Register  reg1,
Register  reg2,
Label *  on_not_both_smi 
)

◆ JumpIfNotBothSmi() [3/4]

void v8::internal::MacroAssembler::JumpIfNotBothSmi ( Register  reg1,
Register  reg2,
Label *  on_not_both_smi 
)

◆ JumpIfNotBothSmi() [4/4]

void v8::internal::MacroAssembler::JumpIfNotBothSmi ( Register  src1,
Register  src2,
Label *  on_not_both_smi,
Label::Distance  near_jump = Label::kFar 
)

◆ JumpIfNotHeapNumber() [1/4]

void v8::internal::MacroAssembler::JumpIfNotHeapNumber ( Register  object,
Label *  on_not_heap_number,
SmiCheckType  smi_check_type = DONT_DO_SMI_CHECK 
)

◆ JumpIfNotHeapNumber() [2/4]

void v8::internal::MacroAssembler::JumpIfNotHeapNumber ( Register  object,
Register  heap_number_map,
Register  scratch,
Label *  on_not_heap_number 
)

◆ JumpIfNotHeapNumber() [3/4]

void v8::internal::MacroAssembler::JumpIfNotHeapNumber ( Register  object,
Register  heap_number_map,
Register  scratch,
Label *  on_not_heap_number 
)

◆ JumpIfNotHeapNumber() [4/4]

void v8::internal::MacroAssembler::JumpIfNotHeapNumber ( Register  object,
Register  heap_number_map,
Register  scratch,
Label *  on_not_heap_number 
)

◆ JumpIfNotInNewSpace() [1/7]

void v8::internal::MacroAssembler::JumpIfNotInNewSpace ( Register  object,
Label *  branch 
)
inline

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

1784  {
1785  InNewSpace(object, ne, branch);
1786  }

References InNewSpace(), and v8::internal::ne.

+ Here is the call graph for this function:

◆ JumpIfNotInNewSpace() [2/7]

void v8::internal::MacroAssembler::JumpIfNotInNewSpace ( Register  object,
Register  scratch,
Label *  branch 
)
inline

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

211  {
212  InNewSpace(object, scratch, ne, branch);
213  }

References InNewSpace(), and v8::internal::ne.

+ Here is the call graph for this function:

◆ JumpIfNotInNewSpace() [3/7]

void v8::internal::MacroAssembler::JumpIfNotInNewSpace ( Register  object,
Register  scratch,
Label *  branch 
)
inline

Definition at line 322 of file macro-assembler-mips.h.

324  {
325  InNewSpace(object, scratch, ne, branch);
326  }

References InNewSpace(), and v8::internal::ne.

+ Here is the call graph for this function:

◆ JumpIfNotInNewSpace() [4/7]

void v8::internal::MacroAssembler::JumpIfNotInNewSpace ( Register  object,
Register  scratch,
Label *  branch 
)
inline

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

345  {
346  InNewSpace(object, scratch, ne, branch);
347  }

References InNewSpace(), and v8::internal::ne.

+ Here is the call graph for this function:

◆ JumpIfNotInNewSpace() [5/7]

void v8::internal::MacroAssembler::JumpIfNotInNewSpace ( Register  object,
Register  scratch,
Label *  branch,
Label::Distance  distance = Label::kFar 
)
inline

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

106  {
107  InNewSpace(object, scratch, zero, branch, distance);
108  }

References InNewSpace(), and v8::internal::zero.

+ Here is the call graph for this function:

◆ JumpIfNotInNewSpace() [6/7]

void v8::internal::MacroAssembler::JumpIfNotInNewSpace ( Register  object,
Register  scratch,
Label *  branch,
Label::Distance  distance = Label::kFar 
)
inline

Definition at line 184 of file macro-assembler-x64.h.

187  {
188  InNewSpace(object, scratch, not_equal, branch, distance);
189  }

References InNewSpace(), and v8::internal::not_equal.

+ Here is the call graph for this function:

◆ JumpIfNotInNewSpace() [7/7]

void v8::internal::MacroAssembler::JumpIfNotInNewSpace ( Register  object,
Register  scratch,
Label *  branch,
Label::Distance  distance = Label::kFar 
)
inline

Definition at line 102 of file macro-assembler-x87.h.

105  {
106  InNewSpace(object, scratch, zero, branch, distance);
107  }

References InNewSpace(), and v8::internal::zero.

+ Here is the call graph for this function:

◆ JumpIfNotObjectType()

void v8::internal::MacroAssembler::JumpIfNotObjectType ( Register  object,
Register  map,
Register  type_reg,
InstanceType  type,
Label *  if_not_object 
)

◆ JumpIfNotPowerOfTwoOrZero() [1/3]

void v8::internal::MacroAssembler::JumpIfNotPowerOfTwoOrZero ( Register  reg,
Register  scratch,
Label *  not_power_of_two_or_zero 
)

◆ JumpIfNotPowerOfTwoOrZero() [2/3]

void v8::internal::MacroAssembler::JumpIfNotPowerOfTwoOrZero ( Register  reg,
Register  scratch,
Label *  not_power_of_two_or_zero 
)

◆ JumpIfNotPowerOfTwoOrZero() [3/3]

void v8::internal::MacroAssembler::JumpIfNotPowerOfTwoOrZero ( Register  reg,
Register  scratch,
Label *  not_power_of_two_or_zero 
)

◆ JumpIfNotPowerOfTwoOrZeroAndNeg()

void v8::internal::MacroAssembler::JumpIfNotPowerOfTwoOrZeroAndNeg ( Register  reg,
Register  scratch,
Label *  zero_and_neg,
Label *  not_power_of_two 
)

◆ JumpIfNotRoot()

void v8::internal::MacroAssembler::JumpIfNotRoot ( const Register obj,
Heap::RootListIndex  index,
Label *  if_not_equal 
)

◆ JumpIfNotSmi() [1/7]

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

◆ JumpIfNotSmi() [2/7]

void v8::internal::MacroAssembler::JumpIfNotSmi ( Register  value,
Label *  not_smi_label 
)
inline

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

1268  {
1269  tst(value, Operand(kSmiTagMask));
1270  b(ne, not_smi_label);
1271  }
const intptr_t kSmiTagMask
Definition: v8.h:5744

References v8::internal::Assembler::b(), v8::internal::kSmiTagMask, v8::internal::ne, and v8::internal::Assembler::tst().

+ Here is the call graph for this function:

◆ JumpIfNotSmi() [3/7]

void v8::internal::MacroAssembler::JumpIfNotSmi ( Register  value,
Label *  not_smi_label 
)
inline

◆ JumpIfNotSmi() [4/7]

void v8::internal::MacroAssembler::JumpIfNotSmi ( Register  value,
Label *  not_smi_label,
Label::Distance  distance = Label::kFar 
)
inline

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

508  {
509  test(value, Immediate(kSmiTagMask));
510  j(not_zero, not_smi_label, distance);
511  }
void test(Register reg, const Immediate &imm)

References v8::internal::Assembler::j(), v8::internal::kSmiTagMask, v8::internal::not_zero, and v8::internal::Assembler::test().

+ Here is the call graph for this function:

◆ JumpIfNotSmi() [5/7]

void v8::internal::MacroAssembler::JumpIfNotSmi ( Register  value,
Label *  not_smi_label,
Label::Distance  distance = Label::kFar 
)
inline

Definition at line 477 of file macro-assembler-x87.h.

479  {
480  test(value, Immediate(kSmiTagMask));
481  j(not_zero, not_smi_label, distance);
482  }

References v8::internal::Assembler::j(), v8::internal::kSmiTagMask, v8::internal::not_zero, and v8::internal::Assembler::test().

+ Here is the call graph for this function:

◆ JumpIfNotSmi() [6/7]

void v8::internal::MacroAssembler::JumpIfNotSmi ( Register  value,
Label *  not_smi_label,
Register  scratch = at,
BranchDelaySlot  bd = PROTECT 
)

◆ JumpIfNotSmi() [7/7]

void v8::internal::MacroAssembler::JumpIfNotSmi ( Register  value,
Label *  not_smi_label,
Register  scratch = at,
BranchDelaySlot  bd = PROTECT 
)

◆ JumpIfNotString()

void v8::internal::MacroAssembler::JumpIfNotString ( Register  object,
Register  object_map,
Label *  not_string,
Label::Distance  near_jump = Label::kFar 
)

◆ JumpIfNotUniqueNameInstanceType() [1/10]

void v8::internal::MacroAssembler::JumpIfNotUniqueNameInstanceType ( Operand  operand,
Label *  not_unique_name,
Label::Distance  distance = Label::kFar 
)

◆ JumpIfNotUniqueNameInstanceType() [2/10]

void v8::internal::MacroAssembler::JumpIfNotUniqueNameInstanceType ( Operand  operand,
Label *  not_unique_name,
Label::Distance  distance = Label::kFar 
)

◆ JumpIfNotUniqueNameInstanceType() [3/10]

void v8::internal::MacroAssembler::JumpIfNotUniqueNameInstanceType ( Operand  operand,
Label *  not_unique_name,
Label::Distance  distance = Label::kFar 
)

◆ JumpIfNotUniqueNameInstanceType() [4/10]

void v8::internal::MacroAssembler::JumpIfNotUniqueNameInstanceType ( Register  reg,
Label *  not_unique_name 
)

Referenced by JumpIfNotUniqueNameInstanceType().

+ Here is the caller graph for this function:

◆ JumpIfNotUniqueNameInstanceType() [5/10]

void v8::internal::MacroAssembler::JumpIfNotUniqueNameInstanceType ( Register  reg,
Label *  not_unique_name 
)

◆ JumpIfNotUniqueNameInstanceType() [6/10]

void v8::internal::MacroAssembler::JumpIfNotUniqueNameInstanceType ( Register  reg,
Label *  not_unique_name 
)

◆ JumpIfNotUniqueNameInstanceType() [7/10]

void v8::internal::MacroAssembler::JumpIfNotUniqueNameInstanceType ( Register  reg,
Label *  not_unique_name,
Label::Distance  distance = Label::kFar 
)
inline

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

921  {
922  JumpIfNotUniqueNameInstanceType(Operand(reg), not_unique_name, distance);
923  }
void JumpIfNotUniqueNameInstanceType(Register reg, Label *not_unique_name)

References JumpIfNotUniqueNameInstanceType().

+ Here is the call graph for this function:

◆ JumpIfNotUniqueNameInstanceType() [8/10]

void v8::internal::MacroAssembler::JumpIfNotUniqueNameInstanceType ( Register  reg,
Label *  not_unique_name,
Label::Distance  distance = Label::kFar 
)

◆ JumpIfNotUniqueNameInstanceType() [9/10]

void v8::internal::MacroAssembler::JumpIfNotUniqueNameInstanceType ( Register  reg,
Label *  not_unique_name,
Label::Distance  distance = Label::kFar 
)
inline

Definition at line 887 of file macro-assembler-x87.h.

888  {
889  JumpIfNotUniqueNameInstanceType(Operand(reg), not_unique_name, distance);
890  }

References JumpIfNotUniqueNameInstanceType().

+ Here is the call graph for this function:

◆ JumpIfNotUniqueNameInstanceType() [10/10]

void v8::internal::MacroAssembler::JumpIfNotUniqueNameInstanceType ( Register  type,
Label *  not_unique_name 
)

◆ JumpIfNotValidSmiValue()

void v8::internal::MacroAssembler::JumpIfNotValidSmiValue ( Register  src,
Label *  on_invalid,
Label::Distance  near_jump = Label::kFar 
)

◆ JumpIfObjectType()

void v8::internal::MacroAssembler::JumpIfObjectType ( Register  object,
Register  map,
Register  type_reg,
InstanceType  type,
Label *  if_cond_pass,
Condition  cond = eq 
)

◆ JumpIfRoot()

void v8::internal::MacroAssembler::JumpIfRoot ( const Register obj,
Heap::RootListIndex  index,
Label *  if_equal 
)

◆ JumpIfSmi() [1/9]

void v8::internal::MacroAssembler::JumpIfSmi ( Operand  value,
Label *  smi_label,
Label::Distance  distance = Label::kFar 
)
inline

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

501  {
502  test(value, Immediate(kSmiTagMask));
503  j(zero, smi_label, distance);
504  }

References v8::internal::Assembler::j(), v8::internal::kSmiTagMask, v8::internal::Assembler::test(), and v8::internal::zero.

+ Here is the call graph for this function:

◆ JumpIfSmi() [2/9]

void v8::internal::MacroAssembler::JumpIfSmi ( Operand  value,
Label *  smi_label,
Label::Distance  distance = Label::kFar 
)
inline

Definition at line 470 of file macro-assembler-x87.h.

472  {
473  test(value, Immediate(kSmiTagMask));
474  j(zero, smi_label, distance);
475  }

References v8::internal::Assembler::j(), v8::internal::kSmiTagMask, v8::internal::Assembler::test(), and v8::internal::zero.

+ Here is the call graph for this function:

◆ JumpIfSmi() [3/9]

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

◆ JumpIfSmi() [4/9]

void v8::internal::MacroAssembler::JumpIfSmi ( Register  value,
Label *  smi_label 
)
inline

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

1263  {
1264  tst(value, Operand(kSmiTagMask));
1265  b(eq, smi_label);
1266  }

References v8::internal::Assembler::b(), v8::internal::eq, v8::internal::kSmiTagMask, and v8::internal::Assembler::tst().

Referenced by JumpIfBothSmi(), and JumpIfEitherSmi().

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

◆ JumpIfSmi() [5/9]

void v8::internal::MacroAssembler::JumpIfSmi ( Register  value,
Label *  smi_label,
Label *  not_smi_label = NULL 
)
inline

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

1359  {
1360  STATIC_ASSERT((kSmiTagSize == 1) && (kSmiTag == 0));
1361  // Check if the tag bit is set.
1362  if (smi_label) {
1363  Tbz(value, 0, smi_label);
1364  if (not_smi_label) {
1365  B(not_smi_label);
1366  }
1367  } else {
1368  DCHECK(not_smi_label);
1369  Tbnz(value, 0, not_smi_label);
1370  }
1371 }
void Tbz(const Register &rt, unsigned bit_pos, Label *label)
void Tbnz(const Register &rt, unsigned bit_pos, Label *label)

References B(), DCHECK, v8::internal::kSmiTag, v8::internal::kSmiTagSize, STATIC_ASSERT(), Tbnz(), and Tbz().

+ Here is the call graph for this function:

◆ JumpIfSmi() [6/9]

void v8::internal::MacroAssembler::JumpIfSmi ( Register  value,
Label *  smi_label,
Label::Distance  distance = Label::kFar 
)
inline

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

494  {
495  test(value, Immediate(kSmiTagMask));
496  j(zero, smi_label, distance);
497  }

References v8::internal::Assembler::j(), v8::internal::kSmiTagMask, v8::internal::Assembler::test(), and v8::internal::zero.

+ Here is the call graph for this function:

◆ JumpIfSmi() [7/9]

void v8::internal::MacroAssembler::JumpIfSmi ( Register  value,
Label *  smi_label,
Label::Distance  distance = Label::kFar 
)
inline

Definition at line 463 of file macro-assembler-x87.h.

465  {
466  test(value, Immediate(kSmiTagMask));
467  j(zero, smi_label, distance);
468  }

References v8::internal::Assembler::j(), v8::internal::kSmiTagMask, v8::internal::Assembler::test(), and v8::internal::zero.

+ Here is the call graph for this function:

◆ JumpIfSmi() [8/9]

void v8::internal::MacroAssembler::JumpIfSmi ( Register  value,
Label *  smi_label,
Register  scratch = at,
BranchDelaySlot  bd = PROTECT 
)

◆ JumpIfSmi() [9/9]

void v8::internal::MacroAssembler::JumpIfSmi ( Register  value,
Label *  smi_label,
Register  scratch = at,
BranchDelaySlot  bd = PROTECT 
)

◆ JumpIfSmiEqualsConstant()

void v8::internal::MacroAssembler::JumpIfSmiEqualsConstant ( Register  src,
Smi constant,
Label *  on_equals,
Label::Distance  near_jump = Label::kFar 
)

◆ JumpIfUIntNotValidSmiValue()

void v8::internal::MacroAssembler::JumpIfUIntNotValidSmiValue ( Register  src,
Label *  on_invalid,
Label::Distance  near_jump = Label::kFar 
)

◆ JumpIfUIntValidSmiValue()

void v8::internal::MacroAssembler::JumpIfUIntValidSmiValue ( Register  src,
Label *  on_valid,
Label::Distance  near_jump = Label::kFar 
)

◆ JumpIfValidSmiValue()

void v8::internal::MacroAssembler::JumpIfValidSmiValue ( Register  src,
Label *  on_valid,
Label::Distance  near_jump = Label::kFar 
)

◆ JumpToExternalReference() [1/7]

void v8::internal::MacroAssembler::JumpToExternalReference ( const ExternalReference &  builtin)

◆ JumpToExternalReference() [2/7]

void v8::internal::MacroAssembler::JumpToExternalReference ( const ExternalReference &  builtin)

◆ JumpToExternalReference() [3/7]

void v8::internal::MacroAssembler::JumpToExternalReference ( const ExternalReference &  builtin,
BranchDelaySlot  bd = PROTECT 
)

◆ JumpToExternalReference() [4/7]

void v8::internal::MacroAssembler::JumpToExternalReference ( const ExternalReference &  builtin,
BranchDelaySlot  bd = PROTECT 
)

◆ JumpToExternalReference() [5/7]

void v8::internal::MacroAssembler::JumpToExternalReference ( const ExternalReference &  ext)

◆ JumpToExternalReference() [6/7]

void v8::internal::MacroAssembler::JumpToExternalReference ( const ExternalReference &  ext)

◆ JumpToExternalReference() [7/7]

void v8::internal::MacroAssembler::JumpToExternalReference ( const ExternalReference &  ext,
int  result_size 
)

◆ JumpToHandlerEntry() [1/7]

void v8::internal::MacroAssembler::JumpToHandlerEntry ( )
private

◆ JumpToHandlerEntry() [2/7]

void v8::internal::MacroAssembler::JumpToHandlerEntry ( )
private

◆ JumpToHandlerEntry() [3/7]

void v8::internal::MacroAssembler::JumpToHandlerEntry ( )
private

◆ JumpToHandlerEntry() [4/7]

void v8::internal::MacroAssembler::JumpToHandlerEntry ( )
private

◆ JumpToHandlerEntry() [5/7]

void v8::internal::MacroAssembler::JumpToHandlerEntry ( )
private

◆ JumpToHandlerEntry() [6/7]

void v8::internal::MacroAssembler::JumpToHandlerEntry ( )
private

◆ JumpToHandlerEntry() [7/7]

void v8::internal::MacroAssembler::JumpToHandlerEntry ( Register  exception,
Register  object,
Register  state,
Register  scratch1,
Register  scratch2 
)
private

◆ JumpUnlessBothNonNegativeSmi()

void v8::internal::MacroAssembler::JumpUnlessBothNonNegativeSmi ( Register  src1,
Register  src2,
Label *  on_not_both_smi,
Label::Distance  near_jump = Label::kFar 
)

◆ JumpUnlessNonNegativeSmi()

void v8::internal::MacroAssembler::JumpUnlessNonNegativeSmi ( Register  src,
Label *  on_not_smi,
Label::Distance  near_jump = Label::kFar 
)

◆ Ldnp()

void v8::internal::MacroAssembler::Ldnp ( const CPURegister rt,
const CPURegister rt2,
const MemOperand src 
)
inline

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

868  {
869  DCHECK(allow_macro_instructions_);
870  DCHECK(!AreAliased(rt, rt2));
871  ldnp(rt, rt2, src);
872 }
void ldnp(const CPURegister &rt, const CPURegister &rt2, const MemOperand &src)
bool AreAliased(const CPURegister &reg1, const CPURegister &reg2, const CPURegister &reg3=NoReg, const CPURegister &reg4=NoReg, const CPURegister &reg5=NoReg, const CPURegister &reg6=NoReg, const CPURegister &reg7=NoReg, const CPURegister &reg8=NoReg)

References v8::internal::AreAliased(), DCHECK, and v8::internal::Assembler::ldnp().

+ Here is the call graph for this function:

◆ Ldr() [1/2]

void v8::internal::MacroAssembler::Ldr ( const CPURegister rt,
const Immediate imm 
)
inline

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

875  {
876  DCHECK(allow_macro_instructions_);
877  ldr(rt, imm);
878 }

References DCHECK, and v8::internal::Assembler::ldr().

Referenced by Fmov(), IsObjectJSObjectType(), and IsObjectJSStringType().

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

◆ Ldr() [2/2]

void v8::internal::MacroAssembler::Ldr ( const CPURegister rt,
double  imm 
)
inline

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

881  {
882  DCHECK(allow_macro_instructions_);
883  DCHECK(rt.Is64Bits());
884  ldr(rt, Immediate(double_to_rawbits(imm)));
885 }
static uint64_t double_to_rawbits(double value)
Definition: utils-arm64.h:34

References DCHECK, v8::internal::double_to_rawbits(), v8::internal::CPURegister::Is64Bits(), and v8::internal::Assembler::ldr().

+ Here is the call graph for this function:

◆ Ldrd()

void v8::internal::MacroAssembler::Ldrd ( Register  dst1,
Register  dst2,
const MemOperand src,
Condition  cond = al 
)

◆ LeaveApiExitFrame() [1/3]

void v8::internal::MacroAssembler::LeaveApiExitFrame ( bool  restore_context)

◆ LeaveApiExitFrame() [2/3]

void v8::internal::MacroAssembler::LeaveApiExitFrame ( bool  restore_context)

◆ LeaveApiExitFrame() [3/3]

void v8::internal::MacroAssembler::LeaveApiExitFrame ( bool  restore_context)

◆ LeaveExitFrame() [1/7]

void v8::internal::MacroAssembler::LeaveExitFrame ( bool  save_doubles)

◆ LeaveExitFrame() [2/7]

void v8::internal::MacroAssembler::LeaveExitFrame ( bool  save_doubles)

◆ LeaveExitFrame() [3/7]

void v8::internal::MacroAssembler::LeaveExitFrame ( bool  save_doubles,
const Register scratch,
bool  restore_context 
)

◆ LeaveExitFrame() [4/7]

void v8::internal::MacroAssembler::LeaveExitFrame ( bool  save_doubles,
Register  arg_count,
bool  restore_context,
bool  do_return = NO_EMIT_RETURN 
)

◆ LeaveExitFrame() [5/7]

void v8::internal::MacroAssembler::LeaveExitFrame ( bool  save_doubles,
Register  arg_count,
bool  restore_context,
bool  do_return = NO_EMIT_RETURN 
)

◆ LeaveExitFrame() [6/7]

void v8::internal::MacroAssembler::LeaveExitFrame ( bool  save_doubles,
Register  argument_count,
bool  restore_context 
)

◆ LeaveExitFrame() [7/7]

void v8::internal::MacroAssembler::LeaveExitFrame ( bool  save_doubles = false)

◆ LeaveExitFrameEpilogue() [1/3]

void v8::internal::MacroAssembler::LeaveExitFrameEpilogue ( bool  restore_context)
private

◆ LeaveExitFrameEpilogue() [2/3]

void v8::internal::MacroAssembler::LeaveExitFrameEpilogue ( bool  restore_context)
private

◆ LeaveExitFrameEpilogue() [3/3]

void v8::internal::MacroAssembler::LeaveExitFrameEpilogue ( bool  restore_context)
private

◆ LeaveFrame() [1/7]

int v8::internal::MacroAssembler::LeaveFrame ( StackFrame::Type  type)

Referenced by v8::internal::FrameAndConstantPoolScope::GenerateLeaveFrame(), v8::internal::FrameScope::GenerateLeaveFrame(), v8::internal::FrameAndConstantPoolScope::~FrameAndConstantPoolScope(), and v8::internal::FrameScope::~FrameScope().

+ Here is the caller graph for this function:

◆ LeaveFrame() [2/7]

void v8::internal::MacroAssembler::LeaveFrame ( StackFrame::Type  type)

◆ LeaveFrame() [3/7]

void v8::internal::MacroAssembler::LeaveFrame ( StackFrame::Type  type)

◆ LeaveFrame() [4/7]

void v8::internal::MacroAssembler::LeaveFrame ( StackFrame::Type  type)

◆ LeaveFrame() [5/7]

void v8::internal::MacroAssembler::LeaveFrame ( StackFrame::Type  type)

◆ LeaveFrame() [6/7]

void v8::internal::MacroAssembler::LeaveFrame ( StackFrame::Type  type)

◆ LeaveFrame() [7/7]

void v8::internal::MacroAssembler::LeaveFrame ( StackFrame::Type  type)

◆ li() [1/6]

void v8::internal::MacroAssembler::li ( Register  dst,
Handle< Object value,
LiFlags  mode = OPTIMIZE_SIZE 
)

◆ li() [2/6]

void v8::internal::MacroAssembler::li ( Register  dst,
Handle< Object value,
LiFlags  mode = OPTIMIZE_SIZE 
)

◆ li() [3/6]

void v8::internal::MacroAssembler::li ( Register  rd,
int32_t  j,
LiFlags  mode = OPTIMIZE_SIZE 
)
inline

Definition at line 631 of file macro-assembler-mips.h.

631  {
632  li(rd, Operand(j), mode);
633  }
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long mode(MIPS only)") DEFINE_BOOL(enable_always_align_csp

References v8::internal::Assembler::j(), li(), and mode().

+ Here is the call graph for this function:

◆ li() [4/6]

void v8::internal::MacroAssembler::li ( Register  rd,
int64_t  j,
LiFlags  mode = OPTIMIZE_SIZE 
)
inline

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

650  {
651  li(rd, Operand(j), mode);
652  }

References v8::internal::Assembler::j(), li(), and mode().

+ Here is the call graph for this function:

◆ li() [5/6]

void v8::internal::MacroAssembler::li ( Register  rd,
Operand  j,
LiFlags  mode = OPTIMIZE_SIZE 
)

Referenced by InitializeRootRegister(), li(), PrepareCEntryArgs(), and PrepareCEntryFunction().

+ Here is the caller graph for this function:

◆ li() [6/6]

void v8::internal::MacroAssembler::li ( Register  rd,
Operand  j,
LiFlags  mode = OPTIMIZE_SIZE 
)

◆ Load() [1/8]

void v8::internal::MacroAssembler::Load ( const Register rt,
const MemOperand addr,
Representation  r 
)

◆ Load() [2/8]

void v8::internal::MacroAssembler::Load ( Register  destination,
ExternalReference  source 
)

◆ Load() [3/8]

void v8::internal::MacroAssembler::Load ( Register  dst,
const MemOperand src,
Representation  r 
)

◆ Load() [4/8]

void v8::internal::MacroAssembler::Load ( Register  dst,
const MemOperand src,
Representation  r 
)

◆ Load() [5/8]

void v8::internal::MacroAssembler::Load ( Register  dst,
const MemOperand src,
Representation  r 
)

◆ Load() [6/8]

void v8::internal::MacroAssembler::Load ( Register  dst,
const Operand src,
Representation  r 
)

◆ Load() [7/8]

void v8::internal::MacroAssembler::Load ( Register  dst,
const Operand src,
Representation  r 
)

◆ Load() [8/8]

void v8::internal::MacroAssembler::Load ( Register  dst,
const Operand src,
Representation  r 
)

◆ LoadAddress()

void v8::internal::MacroAssembler::LoadAddress ( Register  destination,
ExternalReference  source 
)

◆ LoadAddressSize()

int v8::internal::MacroAssembler::LoadAddressSize ( ExternalReference  source)

◆ LoadAllocationTopHelper() [1/3]

void v8::internal::MacroAssembler::LoadAllocationTopHelper ( Register  result,
Register  scratch,
AllocationFlags  flags 
)
private

◆ LoadAllocationTopHelper() [2/3]

void v8::internal::MacroAssembler::LoadAllocationTopHelper ( Register  result,
Register  scratch,
AllocationFlags  flags 
)
private

◆ LoadAllocationTopHelper() [3/3]

void v8::internal::MacroAssembler::LoadAllocationTopHelper ( Register  result,
Register  scratch,
AllocationFlags  flags 
)
private

◆ LoadConstantPoolPointerRegister()

void v8::internal::MacroAssembler::LoadConstantPoolPointerRegister ( )
private

◆ LoadContext() [1/7]

void v8::internal::MacroAssembler::LoadContext ( Register  dst,
int  context_chain_length 
)

◆ LoadContext() [2/7]

void v8::internal::MacroAssembler::LoadContext ( Register  dst,
int  context_chain_length 
)

◆ LoadContext() [3/7]

void v8::internal::MacroAssembler::LoadContext ( Register  dst,
int  context_chain_length 
)

◆ LoadContext() [4/7]

void v8::internal::MacroAssembler::LoadContext ( Register  dst,
int  context_chain_length 
)

◆ LoadContext() [5/7]

void v8::internal::MacroAssembler::LoadContext ( Register  dst,
int  context_chain_length 
)

◆ LoadContext() [6/7]

void v8::internal::MacroAssembler::LoadContext ( Register  dst,
int  context_chain_length 
)

◆ LoadContext() [7/7]

void v8::internal::MacroAssembler::LoadContext ( Register  dst,
int  context_chain_length 
)

◆ LoadElementsKindFromMap()

void v8::internal::MacroAssembler::LoadElementsKindFromMap ( Register  result,
Register  map 
)

◆ LoadFromNumberDictionary() [1/7]

void v8::internal::MacroAssembler::LoadFromNumberDictionary ( Label *  miss,
Register  elements,
Register  key,
Register  r0,
Register  r1,
Register  r2,
Register  result 
)

◆ LoadFromNumberDictionary() [2/7]

void v8::internal::MacroAssembler::LoadFromNumberDictionary ( Label *  miss,
Register  elements,
Register  key,
Register  r0,
Register  r1,
Register  r2,
Register  result 
)

◆ LoadFromNumberDictionary() [3/7]

void v8::internal::MacroAssembler::LoadFromNumberDictionary ( Label *  miss,
Register  elements,
Register  key,
Register  r0,
Register  r1,
Register  r2,
Register  result 
)

◆ LoadFromNumberDictionary() [4/7]

void v8::internal::MacroAssembler::LoadFromNumberDictionary ( Label *  miss,
Register  elements,
Register  key,
Register  result,
Register  reg0,
Register  reg1,
Register  reg2 
)

◆ LoadFromNumberDictionary() [5/7]

void v8::internal::MacroAssembler::LoadFromNumberDictionary ( Label *  miss,
Register  elements,
Register  key,
Register  result,
Register  reg0,
Register  reg1,
Register  reg2 
)

◆ LoadFromNumberDictionary() [6/7]

void v8::internal::MacroAssembler::LoadFromNumberDictionary ( Label *  miss,
Register  elements,
Register  key,
Register  result,
Register  scratch0,
Register  scratch1,
Register  scratch2,
Register  scratch3 
)

◆ LoadFromNumberDictionary() [7/7]

void v8::internal::MacroAssembler::LoadFromNumberDictionary ( Label *  miss,
Register  elements,
Register  key,
Register  result,
Register  t0,
Register  t1,
Register  t2 
)

◆ LoadFromSafepointRegisterSlot() [1/7]

void v8::internal::MacroAssembler::LoadFromSafepointRegisterSlot ( Register  dst,
Register  src 
)

◆ LoadFromSafepointRegisterSlot() [2/7]

void v8::internal::MacroAssembler::LoadFromSafepointRegisterSlot ( Register  dst,
Register  src 
)
inline

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

1763  {
1764  Peek(src, SafepointRegisterStackIndex(dst.code()) * kPointerSize);
1765  }
void Peek(const CPURegister &dst, const Operand &offset)
static int SafepointRegisterStackIndex(int reg_code)
const int kPointerSize
Definition: globals.h:129

References v8::internal::Register::code(), v8::internal::kPointerSize, Peek(), and SafepointRegisterStackIndex().

+ Here is the call graph for this function:

◆ LoadFromSafepointRegisterSlot() [3/7]

void v8::internal::MacroAssembler::LoadFromSafepointRegisterSlot ( Register  dst,
Register  src 
)

◆ LoadFromSafepointRegisterSlot() [4/7]

void v8::internal::MacroAssembler::LoadFromSafepointRegisterSlot ( Register  dst,
Register  src 
)

◆ LoadFromSafepointRegisterSlot() [5/7]

void v8::internal::MacroAssembler::LoadFromSafepointRegisterSlot ( Register  dst,
Register  src 
)

◆ LoadFromSafepointRegisterSlot() [6/7]

void v8::internal::MacroAssembler::LoadFromSafepointRegisterSlot ( Register  dst,
Register  src 
)

◆ LoadFromSafepointRegisterSlot() [7/7]

void v8::internal::MacroAssembler::LoadFromSafepointRegisterSlot ( Register  dst,
Register  src 
)

◆ LoadGlobalCell()

void v8::internal::MacroAssembler::LoadGlobalCell ( Register  dst,
Handle< Cell cell 
)

◆ LoadGlobalFunction() [1/7]

void v8::internal::MacroAssembler::LoadGlobalFunction ( int  index,
Register  function 
)

◆ LoadGlobalFunction() [2/7]

void v8::internal::MacroAssembler::LoadGlobalFunction ( int  index,
Register  function 
)

◆ LoadGlobalFunction() [3/7]

void v8::internal::MacroAssembler::LoadGlobalFunction ( int  index,
Register  function 
)

◆ LoadGlobalFunction() [4/7]

void v8::internal::MacroAssembler::LoadGlobalFunction ( int  index,
Register  function 
)

◆ LoadGlobalFunction() [5/7]

void v8::internal::MacroAssembler::LoadGlobalFunction ( int  index,
Register  function 
)

◆ LoadGlobalFunction() [6/7]

void v8::internal::MacroAssembler::LoadGlobalFunction ( int  index,
Register  function 
)

◆ LoadGlobalFunction() [7/7]

void v8::internal::MacroAssembler::LoadGlobalFunction ( int  index,
Register  function 
)

◆ LoadGlobalFunctionInitialMap() [1/7]

void v8::internal::MacroAssembler::LoadGlobalFunctionInitialMap ( Register  function,
Register  map 
)

◆ LoadGlobalFunctionInitialMap() [2/7]

void v8::internal::MacroAssembler::LoadGlobalFunctionInitialMap ( Register  function,
Register  map 
)

◆ LoadGlobalFunctionInitialMap() [3/7]

void v8::internal::MacroAssembler::LoadGlobalFunctionInitialMap ( Register  function,
Register  map 
)

◆ LoadGlobalFunctionInitialMap() [4/7]

void v8::internal::MacroAssembler::LoadGlobalFunctionInitialMap ( Register  function,
Register  map,
Register  scratch 
)

◆ LoadGlobalFunctionInitialMap() [5/7]

void v8::internal::MacroAssembler::LoadGlobalFunctionInitialMap ( Register  function,
Register  map,
Register  scratch 
)

◆ LoadGlobalFunctionInitialMap() [6/7]

void v8::internal::MacroAssembler::LoadGlobalFunctionInitialMap ( Register  function,
Register  map,
Register  scratch 
)

◆ LoadGlobalFunctionInitialMap() [7/7]

void v8::internal::MacroAssembler::LoadGlobalFunctionInitialMap ( Register  function,
Register  map,
Register  scratch 
)

◆ LoadHeapObject() [1/3]

void v8::internal::MacroAssembler::LoadHeapObject ( Register  dst,
Handle< HeapObject object 
)

Referenced by LoadObject().

+ Here is the caller graph for this function:

◆ LoadHeapObject() [2/3]

void v8::internal::MacroAssembler::LoadHeapObject ( Register  result,
Handle< HeapObject object 
)

◆ LoadHeapObject() [3/3]

void v8::internal::MacroAssembler::LoadHeapObject ( Register  result,
Handle< HeapObject object 
)

◆ LoadInstanceDescriptors() [1/7]

void v8::internal::MacroAssembler::LoadInstanceDescriptors ( Register  map,
Register  descriptors 
)

◆ LoadInstanceDescriptors() [2/7]

void v8::internal::MacroAssembler::LoadInstanceDescriptors ( Register  map,
Register  descriptors 
)

◆ LoadInstanceDescriptors() [3/7]

void v8::internal::MacroAssembler::LoadInstanceDescriptors ( Register  map,
Register  descriptors 
)

◆ LoadInstanceDescriptors() [4/7]

void v8::internal::MacroAssembler::LoadInstanceDescriptors ( Register  map,
Register  descriptors 
)

◆ LoadInstanceDescriptors() [5/7]

void v8::internal::MacroAssembler::LoadInstanceDescriptors ( Register  map,
Register  descriptors 
)

◆ LoadInstanceDescriptors() [6/7]

void v8::internal::MacroAssembler::LoadInstanceDescriptors ( Register  map,
Register  descriptors 
)

◆ LoadInstanceDescriptors() [7/7]

void v8::internal::MacroAssembler::LoadInstanceDescriptors ( Register  map,
Register  descriptors 
)

◆ LoadNumber() [1/3]

void v8::internal::MacroAssembler::LoadNumber ( Register  object,
FPURegister  dst,
Register  heap_number_map,
Register  scratch,
Label *  not_number 
)

◆ LoadNumber() [2/3]

void v8::internal::MacroAssembler::LoadNumber ( Register  object,
FPURegister  dst,
Register  heap_number_map,
Register  scratch,
Label *  not_number 
)

◆ LoadNumber() [3/3]

void v8::internal::MacroAssembler::LoadNumber ( Register  object,
LowDwVfpRegister  dst,
Register  heap_number_map,
Register  scratch,
Label *  not_number 
)

◆ LoadNumberAsInt32() [1/3]

void v8::internal::MacroAssembler::LoadNumberAsInt32 ( Register  object,
Register  dst,
Register  heap_number_map,
Register  scratch,
DwVfpRegister  double_scratch0,
LowDwVfpRegister  double_scratch1,
Label *  not_int32 
)

◆ LoadNumberAsInt32() [2/3]

void v8::internal::MacroAssembler::LoadNumberAsInt32 ( Register  object,
Register  dst,
Register  heap_number_map,
Register  scratch1,
Register  scratch2,
FPURegister  double_scratch0,
FPURegister  double_scratch1,
Label *  not_int32 
)

◆ LoadNumberAsInt32() [3/3]

void v8::internal::MacroAssembler::LoadNumberAsInt32 ( Register  object,
Register  dst,
Register  heap_number_map,
Register  scratch1,
Register  scratch2,
FPURegister  double_scratch0,
FPURegister  double_scratch1,
Label *  not_int32 
)

◆ LoadNumberAsInt32Double() [1/3]

void v8::internal::MacroAssembler::LoadNumberAsInt32Double ( Register  object,
DoubleRegister  double_dst,
Register  heap_number_map,
Register  scratch1,
Register  scratch2,
FPURegister  double_scratch,
Label *  not_int32 
)

◆ LoadNumberAsInt32Double() [2/3]

void v8::internal::MacroAssembler::LoadNumberAsInt32Double ( Register  object,
DoubleRegister  double_dst,
Register  heap_number_map,
Register  scratch1,
Register  scratch2,
FPURegister  double_scratch,
Label *  not_int32 
)

◆ LoadNumberAsInt32Double() [3/3]

void v8::internal::MacroAssembler::LoadNumberAsInt32Double ( Register  object,
DwVfpRegister  double_dst,
Register  heap_number_map,
Register  scratch,
LowDwVfpRegister  double_scratch,
Label *  not_int32 
)

◆ LoadObject() [1/3]

void v8::internal::MacroAssembler::LoadObject ( Register  result,
Handle< Object object 
)
inline

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

863  {
864  AllowDeferredHandleDereference heap_object_check;
865  if (object->IsHeapObject()) {
866  LoadHeapObject(result, Handle<HeapObject>::cast(object));
867  } else {
868  DCHECK(object->IsSmi());
869  Mov(result, Operand(object));
870  }
871  }
void LoadHeapObject(Register dst, Handle< HeapObject > object)

References DCHECK, LoadHeapObject(), and Mov().

+ Here is the call graph for this function:

◆ LoadObject() [2/3]

void v8::internal::MacroAssembler::LoadObject ( Register  result,
Handle< Object object 
)
inline

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

284  {
285  AllowDeferredHandleDereference heap_object_check;
286  if (object->IsHeapObject()) {
287  LoadHeapObject(result, Handle<HeapObject>::cast(object));
288  } else {
289  Move(result, Immediate(object));
290  }
291  }

References LoadHeapObject(), and Move().

+ Here is the call graph for this function:

◆ LoadObject() [3/3]

void v8::internal::MacroAssembler::LoadObject ( Register  result,
Handle< Object object 
)
inline

Definition at line 262 of file macro-assembler-x87.h.

262  {
263  AllowDeferredHandleDereference heap_object_check;
264  if (object->IsHeapObject()) {
265  LoadHeapObject(result, Handle<HeapObject>::cast(object));
266  } else {
267  Move(result, Immediate(object));
268  }
269  }

References LoadHeapObject(), and Move().

+ Here is the call graph for this function:

◆ LoadPowerOf2()

void v8::internal::MacroAssembler::LoadPowerOf2 ( XMMRegister  dst,
Register  scratch,
int  power 
)

◆ LoadRoot() [1/9]

void v8::internal::MacroAssembler::LoadRoot ( CPURegister  destination,
Heap::RootListIndex  index 
)

◆ LoadRoot() [2/9]

void v8::internal::MacroAssembler::LoadRoot ( Register  destination,
Heap::RootListIndex  index 
)

◆ LoadRoot() [3/9]

void v8::internal::MacroAssembler::LoadRoot ( Register  destination,
Heap::RootListIndex  index 
)

◆ LoadRoot() [4/9]

void v8::internal::MacroAssembler::LoadRoot ( Register  destination,
Heap::RootListIndex  index 
)

◆ LoadRoot() [5/9]

void v8::internal::MacroAssembler::LoadRoot ( Register  destination,
Heap::RootListIndex  index 
)

◆ LoadRoot() [6/9]

void v8::internal::MacroAssembler::LoadRoot ( Register  destination,
Heap::RootListIndex  index 
)

◆ LoadRoot() [7/9]

void v8::internal::MacroAssembler::LoadRoot ( Register  destination,
Heap::RootListIndex  index,
Condition  cond,
Register  src1,
const Operand src2 
)

◆ LoadRoot() [8/9]

void v8::internal::MacroAssembler::LoadRoot ( Register  destination,
Heap::RootListIndex  index,
Condition  cond,
Register  src1,
const Operand src2 
)

◆ LoadRoot() [9/9]

void v8::internal::MacroAssembler::LoadRoot ( Register  destination,
Heap::RootListIndex  index,
Condition  cond = al 
)

◆ LoadRootIndexed()

void v8::internal::MacroAssembler::LoadRootIndexed ( Register  destination,
Register  variable_offset,
int  fixed_offset 
)

◆ LoadSharedFunctionInfoSpecialField()

void v8::internal::MacroAssembler::LoadSharedFunctionInfoSpecialField ( Register  dst,
Register  base,
int  offset 
)

◆ LoadSmiConstant()

void v8::internal::MacroAssembler::LoadSmiConstant ( Register  dst,
Smi value 
)
private

Referenced by Move().

+ Here is the caller graph for this function:

◆ LoadStoreMacro()

void v8::internal::MacroAssembler::LoadStoreMacro ( const CPURegister rt,
const MemOperand addr,
LoadStoreOp  op 
)

◆ LoadStorePairMacro()

void v8::internal::MacroAssembler::LoadStorePairMacro ( const CPURegister rt,
const CPURegister rt2,
const MemOperand addr,
LoadStorePairOp  op 
)

◆ LoadTransitionedArrayMapConditional() [1/7]

void v8::internal::MacroAssembler::LoadTransitionedArrayMapConditional ( ElementsKind  expected_kind,
ElementsKind  transitioned_kind,
Register  map_in_out,
Register  scratch,
Label *  no_map_match 
)

◆ LoadTransitionedArrayMapConditional() [2/7]

void v8::internal::MacroAssembler::LoadTransitionedArrayMapConditional ( ElementsKind  expected_kind,
ElementsKind  transitioned_kind,
Register  map_in_out,
Register  scratch,
Label *  no_map_match 
)

◆ LoadTransitionedArrayMapConditional() [3/7]

void v8::internal::MacroAssembler::LoadTransitionedArrayMapConditional ( ElementsKind  expected_kind,
ElementsKind  transitioned_kind,
Register  map_in_out,
Register  scratch,
Label *  no_map_match 
)

◆ LoadTransitionedArrayMapConditional() [4/7]

void v8::internal::MacroAssembler::LoadTransitionedArrayMapConditional ( ElementsKind  expected_kind,
ElementsKind  transitioned_kind,
Register  map_in_out,
Register  scratch,
Label *  no_map_match 
)

◆ LoadTransitionedArrayMapConditional() [5/7]

void v8::internal::MacroAssembler::LoadTransitionedArrayMapConditional ( ElementsKind  expected_kind,
ElementsKind  transitioned_kind,
Register  map_in_out,
Register  scratch,
Label *  no_map_match 
)

◆ LoadTransitionedArrayMapConditional() [6/7]

void v8::internal::MacroAssembler::LoadTransitionedArrayMapConditional ( ElementsKind  expected_kind,
ElementsKind  transitioned_kind,
Register  map_in_out,
Register  scratch,
Label *  no_map_match 
)

◆ LoadTransitionedArrayMapConditional() [7/7]

void v8::internal::MacroAssembler::LoadTransitionedArrayMapConditional ( ElementsKind  expected_kind,
ElementsKind  transitioned_kind,
Register  map_in_out,
Register  scratch1,
Register  scratch2,
Label *  no_map_match 
)

◆ LoadTrueFalseRoots()

void v8::internal::MacroAssembler::LoadTrueFalseRoots ( Register  true_root,
Register  false_root 
)

◆ LoadUint32() [1/2]

void v8::internal::MacroAssembler::LoadUint32 ( XMMRegister  dst,
Register  src 
)

◆ LoadUint32() [2/2]

void v8::internal::MacroAssembler::LoadUint32 ( XMMRegister  dst,
Register  src 
)

◆ LoadUint32NoSSE2()

void v8::internal::MacroAssembler::LoadUint32NoSSE2 ( Register  src)

◆ LogicalMacro()

void v8::internal::MacroAssembler::LogicalMacro ( const Register rd,
const Register rn,
const Operand operand,
LogicalOp  op 
)

Referenced by And(), Ands(), Bic(), Bics(), Eon(), Eor(), Orn(), Orr(), and Tst().

+ Here is the caller graph for this function:

◆ LookupNumberStringCache() [1/7]

void v8::internal::MacroAssembler::LookupNumberStringCache ( Register  object,
Register  result,
Register  scratch1,
Register  scratch2,
Label *  not_found 
)

◆ LookupNumberStringCache() [2/7]

void v8::internal::MacroAssembler::LookupNumberStringCache ( Register  object,
Register  result,
Register  scratch1,
Register  scratch2,
Label *  not_found 
)

◆ LookupNumberStringCache() [3/7]

void v8::internal::MacroAssembler::LookupNumberStringCache ( Register  object,
Register  result,
Register  scratch1,
Register  scratch2,
Label *  not_found 
)

◆ LookupNumberStringCache() [4/7]

void v8::internal::MacroAssembler::LookupNumberStringCache ( Register  object,
Register  result,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  not_found 
)

◆ LookupNumberStringCache() [5/7]

void v8::internal::MacroAssembler::LookupNumberStringCache ( Register  object,
Register  result,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  not_found 
)

◆ LookupNumberStringCache() [6/7]

void v8::internal::MacroAssembler::LookupNumberStringCache ( Register  object,
Register  result,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  not_found 
)

◆ LookupNumberStringCache() [7/7]

void v8::internal::MacroAssembler::LookupNumberStringCache ( Register  object,
Register  result,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  not_found 
)

◆ Lsl() [1/2]

void v8::internal::MacroAssembler::Lsl ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

899  {
900  DCHECK(allow_macro_instructions_);
901  DCHECK(!rd.IsZero());
902  lslv(rd, rn, rm);
903 }
void lslv(const Register &rd, const Register &rn, const Register &rm)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::lslv().

+ Here is the call graph for this function:

◆ Lsl() [2/2]

void v8::internal::MacroAssembler::Lsl ( const Register rd,
const Register rn,
unsigned  shift 
)
inline

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

890  {
891  DCHECK(allow_macro_instructions_);
892  DCHECK(!rd.IsZero());
893  lsl(rd, rn, shift);
894 }
void lsl(Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)

References DCHECK, v8::internal::CPURegister::IsZero(), v8::internal::Assembler::lsl(), and v8::internal::Assembler::shift().

Referenced by SmiTag().

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

◆ Lsr() [1/2]

void v8::internal::MacroAssembler::Lsr ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

917  {
918  DCHECK(allow_macro_instructions_);
919  DCHECK(!rd.IsZero());
920  lsrv(rd, rn, rm);
921 }
void lsrv(const Register &rd, const Register &rn, const Register &rm)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::lsrv().

+ Here is the call graph for this function:

◆ Lsr() [2/2]

void v8::internal::MacroAssembler::Lsr ( const Register rd,
const Register rn,
unsigned  shift 
)
inline

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

908  {
909  DCHECK(allow_macro_instructions_);
910  DCHECK(!rd.IsZero());
911  lsr(rd, rn, shift);
912 }
void lsr(Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)

References DCHECK, v8::internal::CPURegister::IsZero(), v8::internal::Assembler::lsr(), and v8::internal::Assembler::shift().

+ Here is the call graph for this function:

◆ Madd()

void v8::internal::MacroAssembler::Madd ( const Register rd,
const Register rn,
const Register rm,
const Register ra 
)
inline

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

927  {
928  DCHECK(allow_macro_instructions_);
929  DCHECK(!rd.IsZero());
930  madd(rd, rn, rm, ra);
931 }
void madd(const Register &rd, const Register &rn, const Register &rm, const Register &ra)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::madd().

+ Here is the call graph for this function:

◆ Madd_d()

void v8::internal::MacroAssembler::Madd_d ( FPURegister  fd,
FPURegister  fr,
FPURegister  fs,
FPURegister  ft,
FPURegister  scratch 
)

◆ MakeSureDoubleAlignedHelper()

void v8::internal::MacroAssembler::MakeSureDoubleAlignedHelper ( Register  result,
Register  scratch,
Label *  gc_required,
AllocationFlags  flags 
)
private

◆ MarkCode() [1/3]

void v8::internal::MacroAssembler::MarkCode ( NopMarkerTypes  type)
inline

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

685  {
686  nop(type);
687  }

References v8::internal::Assembler::nop().

+ Here is the call graph for this function:

◆ MarkCode() [2/3]

void v8::internal::MacroAssembler::MarkCode ( NopMarkerTypes  type)
inline

Definition at line 450 of file macro-assembler-mips.h.

450  {
451  nop(type);
452  }

References v8::internal::Assembler::nop().

+ Here is the call graph for this function:

◆ MarkCode() [3/3]

void v8::internal::MacroAssembler::MarkCode ( NopMarkerTypes  type)
inline

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

471  {
472  nop(type);
473  }

References v8::internal::Assembler::nop().

+ Here is the call graph for this function:

◆ Mfhc1()

void v8::internal::MacroAssembler::Mfhc1 ( Register  rt,
FPURegister  fs 
)

Referenced by FmoveHigh(), and Move().

+ Here is the caller graph for this function:

◆ Mls()

void v8::internal::MacroAssembler::Mls ( Register  dst,
Register  src1,
Register  src2,
Register  srcA,
Condition  cond = al 
)

◆ Mneg()

void v8::internal::MacroAssembler::Mneg ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

936  {
937  DCHECK(allow_macro_instructions_);
938  DCHECK(!rd.IsZero());
939  mneg(rd, rn, rm);
940 }
void mneg(const Register &rd, const Register &rn, const Register &rm)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::mneg().

+ Here is the call graph for this function:

◆ Mov() [1/3]

void v8::internal::MacroAssembler::Mov ( const Register rd,
const Operand operand,
DiscardMoveMode  discard_mode = kDontDiscardForSameWReg 
)

Referenced by Fmov(), LoadObject(), Move(), Mvn(), Neg(), and Push().

+ Here is the caller graph for this function:

◆ Mov() [2/3]

void v8::internal::MacroAssembler::Mov ( const Register rd,
const Register rm 
)
inline

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

943  {
944  DCHECK(allow_macro_instructions_);
945  DCHECK(!rd.IsZero());
946  // Emit a register move only if the registers are distinct, or if they are
947  // not X registers. Note that mov(w0, w0) is not a no-op because it clears
948  // the top word of x0.
949  if (!rd.Is(rn) || !rd.Is64Bits()) {
950  Assembler::mov(rd, rn);
951  }
952 }
void mov(Register dst, const Operand &src, SBit s=LeaveCC, Condition cond=al)

References DCHECK, v8::internal::CPURegister::Is(), v8::internal::CPURegister::Is64Bits(), v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::mov().

+ Here is the call graph for this function:

◆ Mov() [3/3]

void v8::internal::MacroAssembler::Mov ( const Register rd,
uint64_t  imm 
)

◆ mov() [1/2]

void v8::internal::MacroAssembler::mov ( Register  rd,
Register  rt 
)
inline

Definition at line 624 of file macro-assembler-mips.h.

624 { or_(rd, rt, zero_reg); }
void or_(Register dst, int32_t imm32)

References v8::internal::Assembler::or_().

Referenced by DecodeFieldToSmi(), InitializeRootRegister(), Move(), v8::internal::RecordWriteStub::RegisterAllocation::Restore(), v8::internal::RecordWriteStub::RegisterAllocation::Save(), SmiUntag(), SyncSystemStackPointer(), and TrySmiTag().

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

◆ mov() [2/2]

void v8::internal::MacroAssembler::mov ( Register  rd,
Register  rt 
)
inline

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

641 { or_(rd, rt, zero_reg); }

References v8::internal::Assembler::or_().

+ Here is the call graph for this function:

◆ Move() [1/30]

void v8::internal::MacroAssembler::Move ( const Operand dst,
const Immediate x 
)

◆ Move() [2/30]

void v8::internal::MacroAssembler::Move ( const Operand dst,
const Immediate x 
)

◆ Move() [3/30]

void v8::internal::MacroAssembler::Move ( const Operand dst,
Handle< Object source 
)

◆ Move() [4/30]

void v8::internal::MacroAssembler::Move ( const Operand dst,
Smi source 
)
inline

Definition at line 739 of file macro-assembler-x64.h.

739  {
740  Register constant = GetSmiConstant(source);
741  movp(dst, constant);
742  }
void movp(Register dst, void *ptr, RelocInfo::Mode rmode)
Register GetSmiConstant(Smi *value)

References GetSmiConstant(), and v8::internal::Assembler::movp().

+ Here is the call graph for this function:

◆ Move() [5/30]

void v8::internal::MacroAssembler::Move ( DwVfpRegister  dst,
DwVfpRegister  src 
)

◆ Move() [6/30]

void v8::internal::MacroAssembler::Move ( FPURegister  dst,
double  imm 
)

◆ Move() [7/30]

void v8::internal::MacroAssembler::Move ( FPURegister  dst,
double  imm 
)

◆ Move() [8/30]

void v8::internal::MacroAssembler::Move ( FPURegister  dst,
FPURegister  src 
)
inline

Definition at line 229 of file macro-assembler-mips.h.

229  {
230  if (!dst.is(src)) {
231  mov_d(dst, src);
232  }
233  }
void mov_d(FPURegister fd, FPURegister fs)

References v8::internal::FPURegister::is(), and v8::internal::Assembler::mov_d().

+ Here is the call graph for this function:

◆ Move() [9/30]

void v8::internal::MacroAssembler::Move ( FPURegister  dst,
FPURegister  src 
)
inline

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

250  {
251  if (!dst.is(src)) {
252  mov_d(dst, src);
253  }
254  }

References v8::internal::FPURegister::is(), and v8::internal::Assembler::mov_d().

+ Here is the call graph for this function:

◆ Move() [10/30]

void v8::internal::MacroAssembler::Move ( FPURegister  dst,
Register  src_low,
Register  src_high 
)
inline

Definition at line 248 of file macro-assembler-mips.h.

248  {
249  mtc1(src_low, dst);
250  Mthc1(src_high, dst);
251  }
void mtc1(Register rt, FPURegister fs)
void Mthc1(Register rt, FPURegister fs)

References v8::internal::Assembler::mtc1(), and Mthc1().

+ Here is the call graph for this function:

◆ Move() [11/30]

void v8::internal::MacroAssembler::Move ( FPURegister  dst,
Register  src_low,
Register  src_high 
)
inline

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

269  {
270  mtc1(src_low, dst);
271  mthc1(src_high, dst);
272  }
void mthc1(Register rt, FPURegister fs)

References v8::internal::Assembler::mtc1(), and v8::internal::Assembler::mthc1().

+ Here is the call graph for this function:

◆ Move() [12/30]

void v8::internal::MacroAssembler::Move ( Register  dst,
const Immediate x 
)

◆ Move() [13/30]

void v8::internal::MacroAssembler::Move ( Register  dst,
const Immediate x 
)

◆ Move() [14/30]

void v8::internal::MacroAssembler::Move ( Register  dst,
const Operand src,
SBit  sbit = LeaveCC,
Condition  cond = al 
)
inline

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

157  {
158  if (!src.is_reg() || !src.rm().is(dst) || sbit != LeaveCC) {
159  mov(dst, src, sbit, cond);
160  }
161  }

References v8::internal::LeaveCC, and mov().

+ Here is the call graph for this function:

◆ Move() [15/30]

void v8::internal::MacroAssembler::Move ( Register  dst,
ExternalReference  ext 
)
inline

Definition at line 870 of file macro-assembler-x64.h.

870  {
871  movp(dst, reinterpret_cast<void*>(ext.address()),
873  }

References v8::internal::RelocInfo::EXTERNAL_REFERENCE, and v8::internal::Assembler::movp().

+ Here is the call graph for this function:

◆ Move() [16/30]

void v8::internal::MacroAssembler::Move ( Register  dst,
Handle< Object source 
)

◆ Move() [17/30]

void v8::internal::MacroAssembler::Move ( Register  dst,
Handle< Object value 
)

Referenced by InitializeRootRegister(), InitializeSmiConstantRegister(), and LoadObject().

+ Here is the caller graph for this function:

◆ Move() [18/30]

void v8::internal::MacroAssembler::Move ( Register  dst,
Handle< Object value,
RelocInfo::Mode  rmode 
)
inline

Definition at line 883 of file macro-assembler-x64.h.

883  {
884  AllowDeferredHandleDereference using_raw_address;
885  DCHECK(!RelocInfo::IsNone(rmode));
886  DCHECK(value->IsHeapObject());
887  DCHECK(!isolate()->heap()->InNewSpace(*value));
888  movp(dst, reinterpret_cast<void*>(value.location()), rmode);
889  }
static bool IsNone(Mode mode)
Definition: assembler.h:439

References DCHECK, InNewSpace(), v8::internal::RelocInfo::IsNone(), v8::internal::AssemblerBase::isolate(), and v8::internal::Assembler::movp().

+ Here is the call graph for this function:

◆ Move() [19/30]

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

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

877 { Mov(dst, src); }

References Mov().

+ Here is the call graph for this function:

◆ Move() [20/30]

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

Definition at line 223 of file macro-assembler-mips.h.

223  {
224  if (!dst.is(src)) {
225  mov(dst, src);
226  }
227  }

References v8::internal::Register::is(), and mov().

+ Here is the call graph for this function:

◆ Move() [21/30]

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

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

244  {
245  if (!dst.is(src)) {
246  mov(dst, src);
247  }
248  }

References v8::internal::Register::is(), and mov().

+ Here is the call graph for this function:

◆ Move() [22/30]

void v8::internal::MacroAssembler::Move ( Register  dst,
Register  src,
Condition  cond = al 
)

◆ Move() [23/30]

void v8::internal::MacroAssembler::Move ( Register  dst,
Smi source 
)
inline

Definition at line 735 of file macro-assembler-x64.h.

735  {
736  LoadSmiConstant(dst, source);
737  }
void LoadSmiConstant(Register dst, Smi *value)

References LoadSmiConstant().

+ Here is the call graph for this function:

◆ Move() [24/30]

void v8::internal::MacroAssembler::Move ( Register  dst,
void *  ptr,
RelocInfo::Mode  rmode 
)
inline

Definition at line 876 of file macro-assembler-x64.h.

876  {
877  // This method must not be used with heap object references. The stored
878  // address is not GC safe. Use the handle version instead.
880  movp(dst, ptr, rmode);
881  }

References DCHECK, v8::internal::RelocInfo::LAST_GCED_ENUM, and v8::internal::Assembler::movp().

+ Here is the call graph for this function:

◆ Move() [25/30]

void v8::internal::MacroAssembler::Move ( Register  dst_low,
Register  dst_high,
FPURegister  src 
)
inline

Definition at line 235 of file macro-assembler-mips.h.

235  {
236  mfc1(dst_low, src);
237  Mfhc1(dst_high, src);
238  }

References v8::internal::Assembler::mfc1(), and Mfhc1().

+ Here is the call graph for this function:

◆ Move() [26/30]

void v8::internal::MacroAssembler::Move ( Register  dst_low,
Register  dst_high,
FPURegister  src 
)
inline

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

256  {
257  mfc1(dst_low, src);
258  mfhc1(dst_high, src);
259  }

References v8::internal::Assembler::mfc1(), and v8::internal::Assembler::mfhc1().

+ Here is the call graph for this function:

◆ Move() [27/30]

void v8::internal::MacroAssembler::Move ( Register  target,
Register  source 
)

◆ Move() [28/30]

void v8::internal::MacroAssembler::Move ( Register  target,
Register  source 
)

◆ Move() [29/30]

void v8::internal::MacroAssembler::Move ( Register  target,
Register  source 
)

◆ Move() [30/30]

void v8::internal::MacroAssembler::Move ( XMMRegister  dst,
double  val 
)

◆ MoveHeapObject()

void v8::internal::MacroAssembler::MoveHeapObject ( Register  result,
Handle< Object object 
)

◆ MoveImmediateForShiftedOp()

Operand v8::internal::MacroAssembler::MoveImmediateForShiftedOp ( const Register dst,
int64_t  imm 
)

◆ Movf() [1/2]

void v8::internal::MacroAssembler::Movf ( Register  rd,
Register  rs,
uint16_t  cc = 0 
)

◆ Movf() [2/2]

void v8::internal::MacroAssembler::Movf ( Register  rd,
Register  rs,
uint16_t  cc = 0 
)

◆ MovFromFloatParameter() [1/3]

void v8::internal::MacroAssembler::MovFromFloatParameter ( DoubleRegister  dst)

◆ MovFromFloatParameter() [2/3]

void v8::internal::MacroAssembler::MovFromFloatParameter ( DoubleRegister  dst)

◆ MovFromFloatParameter() [3/3]

void v8::internal::MacroAssembler::MovFromFloatParameter ( DwVfpRegister  dst)

◆ MovFromFloatResult() [1/3]

void v8::internal::MacroAssembler::MovFromFloatResult ( DoubleRegister  dst)

◆ MovFromFloatResult() [2/3]

void v8::internal::MacroAssembler::MovFromFloatResult ( DoubleRegister  dst)

◆ MovFromFloatResult() [3/3]

void v8::internal::MacroAssembler::MovFromFloatResult ( DwVfpRegister  dst)

◆ Movk()

void v8::internal::MacroAssembler::Movk ( const Register rd,
uint64_t  imm,
int  shift = -1 
)
inline

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

955  {
956  DCHECK(allow_macro_instructions_);
957  DCHECK(!rd.IsZero());
958  movk(rd, imm, shift);
959 }
void movk(const Register &rd, uint64_t imm, int shift=-1)

References DCHECK, v8::internal::CPURegister::IsZero(), v8::internal::Assembler::movk(), and v8::internal::Assembler::shift().

+ Here is the call graph for this function:

◆ Movn() [1/2]

void v8::internal::MacroAssembler::Movn ( Register  rd,
Register  rs,
Register  rt 
)

◆ Movn() [2/2]

void v8::internal::MacroAssembler::Movn ( Register  rd,
Register  rs,
Register  rt 
)

◆ Movt() [1/2]

void v8::internal::MacroAssembler::Movt ( Register  rd,
Register  rs,
uint16_t  cc = 0 
)

◆ Movt() [2/2]

void v8::internal::MacroAssembler::Movt ( Register  rd,
Register  rs,
uint16_t  cc = 0 
)

◆ MovToFloatParameter() [1/3]

void v8::internal::MacroAssembler::MovToFloatParameter ( DoubleRegister  src)

◆ MovToFloatParameter() [2/3]

void v8::internal::MacroAssembler::MovToFloatParameter ( DoubleRegister  src)

◆ MovToFloatParameter() [3/3]

void v8::internal::MacroAssembler::MovToFloatParameter ( DwVfpRegister  src)

◆ MovToFloatParameters() [1/3]

void v8::internal::MacroAssembler::MovToFloatParameters ( DoubleRegister  src1,
DoubleRegister  src2 
)

◆ MovToFloatParameters() [2/3]

void v8::internal::MacroAssembler::MovToFloatParameters ( DoubleRegister  src1,
DoubleRegister  src2 
)

◆ MovToFloatParameters() [3/3]

void v8::internal::MacroAssembler::MovToFloatParameters ( DwVfpRegister  src1,
DwVfpRegister  src2 
)

◆ MovToFloatResult() [1/3]

void v8::internal::MacroAssembler::MovToFloatResult ( DoubleRegister  src)

◆ MovToFloatResult() [2/3]

void v8::internal::MacroAssembler::MovToFloatResult ( DoubleRegister  src)

◆ MovToFloatResult() [3/3]

void v8::internal::MacroAssembler::MovToFloatResult ( DwVfpRegister  src)

◆ Movz() [1/2]

void v8::internal::MacroAssembler::Movz ( Register  rd,
Register  rs,
Register  rt 
)

◆ Movz() [2/2]

void v8::internal::MacroAssembler::Movz ( Register  rd,
Register  rs,
Register  rt 
)

◆ Mrs()

void v8::internal::MacroAssembler::Mrs ( const Register rt,
SystemRegister  sysreg 
)
inline

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

962  {
963  DCHECK(allow_macro_instructions_);
964  DCHECK(!rt.IsZero());
965  mrs(rt, sysreg);
966 }
void mrs(Register dst, SRegister s, Condition cond=al)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::mrs().

+ Here is the call graph for this function:

◆ Msr()

void v8::internal::MacroAssembler::Msr ( SystemRegister  sysreg,
const Register rt 
)
inline

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

969  {
970  DCHECK(allow_macro_instructions_);
971  msr(sysreg, rt);
972 }
void msr(SRegisterFieldMask fields, const Operand &src, Condition cond=al)

References DCHECK, and v8::internal::Assembler::msr().

+ Here is the call graph for this function:

◆ Msub()

void v8::internal::MacroAssembler::Msub ( const Register rd,
const Register rn,
const Register rm,
const Register ra 
)
inline

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

978  {
979  DCHECK(allow_macro_instructions_);
980  DCHECK(!rd.IsZero());
981  msub(rd, rn, rm, ra);
982 }
void msub(const Register &rd, const Register &rn, const Register &rm, const Register &ra)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::msub().

+ Here is the call graph for this function:

◆ Mthc1()

void v8::internal::MacroAssembler::Mthc1 ( Register  rt,
FPURegister  fs 
)

Referenced by Move().

+ Here is the caller graph for this function:

◆ Mul()

void v8::internal::MacroAssembler::Mul ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

987  {
988  DCHECK(allow_macro_instructions_);
989  DCHECK(!rd.IsZero());
990  mul(rd, rn, rm);
991 }
void mul(Register dst, Register src1, Register src2, SBit s=LeaveCC, Condition cond=al)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::mul().

+ Here is the call graph for this function:

◆ MultiPop() [1/2]

void v8::internal::MacroAssembler::MultiPop ( RegList  regs)

Referenced by v8::internal::RecordWriteStub::RegisterAllocation::RestoreCallerSaveRegisters().

+ Here is the caller graph for this function:

◆ MultiPop() [2/2]

void v8::internal::MacroAssembler::MultiPop ( RegList  regs)

◆ MultiPopFPU() [1/2]

void v8::internal::MacroAssembler::MultiPopFPU ( RegList  regs)

Referenced by v8::internal::RecordWriteStub::RegisterAllocation::RestoreCallerSaveRegisters().

+ Here is the caller graph for this function:

◆ MultiPopFPU() [2/2]

void v8::internal::MacroAssembler::MultiPopFPU ( RegList  regs)

◆ MultiPopReversed() [1/2]

void v8::internal::MacroAssembler::MultiPopReversed ( RegList  regs)

◆ MultiPopReversed() [2/2]

void v8::internal::MacroAssembler::MultiPopReversed ( RegList  regs)

◆ MultiPopReversedFPU() [1/2]

void v8::internal::MacroAssembler::MultiPopReversedFPU ( RegList  regs)

◆ MultiPopReversedFPU() [2/2]

void v8::internal::MacroAssembler::MultiPopReversedFPU ( RegList  regs)

◆ MultiPush() [1/2]

void v8::internal::MacroAssembler::MultiPush ( RegList  regs)

Referenced by v8::internal::RecordWriteStub::RegisterAllocation::SaveCallerSaveRegisters().

+ Here is the caller graph for this function:

◆ MultiPush() [2/2]

void v8::internal::MacroAssembler::MultiPush ( RegList  regs)

◆ MultiPushFPU() [1/2]

void v8::internal::MacroAssembler::MultiPushFPU ( RegList  regs)

Referenced by v8::internal::RecordWriteStub::RegisterAllocation::SaveCallerSaveRegisters().

+ Here is the caller graph for this function:

◆ MultiPushFPU() [2/2]

void v8::internal::MacroAssembler::MultiPushFPU ( RegList  regs)

◆ MultiPushReversed() [1/2]

void v8::internal::MacroAssembler::MultiPushReversed ( RegList  regs)

◆ MultiPushReversed() [2/2]

void v8::internal::MacroAssembler::MultiPushReversed ( RegList  regs)

◆ MultiPushReversedFPU() [1/2]

void v8::internal::MacroAssembler::MultiPushReversedFPU ( RegList  regs)

◆ MultiPushReversedFPU() [2/2]

void v8::internal::MacroAssembler::MultiPushReversedFPU ( RegList  regs)

◆ Mvn() [1/2]

void v8::internal::MacroAssembler::Mvn ( const Register rd,
const Operand operand 
)

◆ Mvn() [2/2]

void v8::internal::MacroAssembler::Mvn ( const Register rd,
uint64_t  imm 
)
inline

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

287  {
288  DCHECK(allow_macro_instructions_);
289  DCHECK(!rd.IsZero());
290  Mov(rd, ~imm);
291 }

References DCHECK, v8::internal::CPURegister::IsZero(), and Mov().

+ Here is the call graph for this function:

◆ NeedExtraInstructionsOrRegisterBranch()

bool v8::internal::MacroAssembler::NeedExtraInstructionsOrRegisterBranch ( Label *  label,
ImmBranchType  branch_type 
)

◆ Neg()

void v8::internal::MacroAssembler::Neg ( const Register rd,
const Operand operand 
)
inline

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

215  {
216  DCHECK(allow_macro_instructions_);
217  DCHECK(!rd.IsZero());
218  if (operand.IsImmediate()) {
219  Mov(rd, -operand.ImmediateValue());
220  } else {
221  Sub(rd, AppropriateZeroRegFor(rd), operand);
222  }
223 }

References v8::internal::Assembler::AppropriateZeroRegFor(), DCHECK, v8::internal::Operand::ImmediateValue(), v8::internal::Operand::IsImmediate(), v8::internal::CPURegister::IsZero(), Mov(), and Sub().

+ Here is the call graph for this function:

◆ NegativeZeroTest() [1/7]

void v8::internal::MacroAssembler::NegativeZeroTest ( CodeGenerator cgen,
Register  result,
Register  op,
JumpTarget *  then_target 
)

◆ NegativeZeroTest() [2/7]

void v8::internal::MacroAssembler::NegativeZeroTest ( Register  result,
Register  op,
Label *  then_label 
)

◆ NegativeZeroTest() [3/7]

void v8::internal::MacroAssembler::NegativeZeroTest ( Register  result,
Register  op,
Label *  then_label 
)

◆ NegativeZeroTest() [4/7]

void v8::internal::MacroAssembler::NegativeZeroTest ( Register  result,
Register  op,
Label *  then_label 
)

◆ NegativeZeroTest() [5/7]

void v8::internal::MacroAssembler::NegativeZeroTest ( Register  result,
Register  op1,
Register  op2,
Register  scratch,
Label *  then_label 
)

◆ NegativeZeroTest() [6/7]

void v8::internal::MacroAssembler::NegativeZeroTest ( Register  result,
Register  op1,
Register  op2,
Register  scratch,
Label *  then_label 
)

◆ NegativeZeroTest() [7/7]

void v8::internal::MacroAssembler::NegativeZeroTest ( Register  result,
Register  op1,
Register  op2,
Register  scratch,
Label *  then_label 
)

◆ Negs()

void v8::internal::MacroAssembler::Negs ( const Register rd,
const Operand operand 
)
inline

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

227  {
228  DCHECK(allow_macro_instructions_);
229  Subs(rd, AppropriateZeroRegFor(rd), operand);
230 }

References v8::internal::Assembler::AppropriateZeroRegFor(), DCHECK, and Subs().

+ Here is the call graph for this function:

◆ Ngc()

void v8::internal::MacroAssembler::Ngc ( const Register rd,
const Operand operand 
)
inline

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

270  {
271  DCHECK(allow_macro_instructions_);
272  DCHECK(!rd.IsZero());
273  Register zr = AppropriateZeroRegFor(rd);
274  Sbc(rd, zr, operand);
275 }
void Sbc(const Register &rd, const Register &rn, const Operand &operand)

References v8::internal::Assembler::AppropriateZeroRegFor(), DCHECK, v8::internal::CPURegister::IsZero(), and Sbc().

+ Here is the call graph for this function:

◆ Ngcs()

void v8::internal::MacroAssembler::Ngcs ( const Register rd,
const Operand operand 
)
inline

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

279  {
280  DCHECK(allow_macro_instructions_);
281  DCHECK(!rd.IsZero());
282  Register zr = AppropriateZeroRegFor(rd);
283  Sbcs(rd, zr, operand);
284 }
void Sbcs(const Register &rd, const Register &rn, const Operand &operand)

References v8::internal::Assembler::AppropriateZeroRegFor(), DCHECK, v8::internal::CPURegister::IsZero(), and Sbcs().

+ Here is the call graph for this function:

◆ NonNegativeSmiTst() [1/3]

void v8::internal::MacroAssembler::NonNegativeSmiTst ( Register  value)
inline

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

1259  {
1260  tst(value, Operand(kSmiTagMask | kSmiSignMask));
1261  }
const intptr_t kSmiSignMask
Definition: globals.h:223

References v8::internal::kSmiSignMask, v8::internal::kSmiTagMask, and v8::internal::Assembler::tst().

+ Here is the call graph for this function:

◆ NonNegativeSmiTst() [2/3]

void v8::internal::MacroAssembler::NonNegativeSmiTst ( Register  value,
Register  scratch 
)
inline

Definition at line 1413 of file macro-assembler-mips.h.

1413  {
1414  And(scratch, value, Operand(kSmiTagMask | kSmiSignMask));
1415  }

References And(), v8::internal::kSmiSignMask, and v8::internal::kSmiTagMask.

+ Here is the call graph for this function:

◆ NonNegativeSmiTst() [3/3]

void v8::internal::MacroAssembler::NonNegativeSmiTst ( Register  value,
Register  scratch 
)
inline

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

1476  {
1477  And(scratch, value, Operand(kSmiTagMask | kSmiSignMask));
1478  }

References And(), v8::internal::kSmiSignMask, and v8::internal::kSmiTagMask.

+ Here is the call graph for this function:

◆ Nop()

void v8::internal::MacroAssembler::Nop ( )
inline

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

458 { nop(); }

References v8::internal::Assembler::nop().

+ Here is the call graph for this function:

◆ NumberOfOwnDescriptors() [1/7]

void v8::internal::MacroAssembler::NumberOfOwnDescriptors ( Register  dst,
Register  map 
)

◆ NumberOfOwnDescriptors() [2/7]

void v8::internal::MacroAssembler::NumberOfOwnDescriptors ( Register  dst,
Register  map 
)

◆ NumberOfOwnDescriptors() [3/7]

void v8::internal::MacroAssembler::NumberOfOwnDescriptors ( Register  dst,
Register  map 
)

◆ NumberOfOwnDescriptors() [4/7]

void v8::internal::MacroAssembler::NumberOfOwnDescriptors ( Register  dst,
Register  map 
)

◆ NumberOfOwnDescriptors() [5/7]

void v8::internal::MacroAssembler::NumberOfOwnDescriptors ( Register  dst,
Register  map 
)

◆ NumberOfOwnDescriptors() [6/7]

void v8::internal::MacroAssembler::NumberOfOwnDescriptors ( Register  dst,
Register  map 
)

◆ NumberOfOwnDescriptors() [7/7]

void v8::internal::MacroAssembler::NumberOfOwnDescriptors ( Register  dst,
Register  map 
)

◆ ObjectTag()

void v8::internal::MacroAssembler::ObjectTag ( Register  tagged_obj,
Register  obj 
)
inline

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

1419  {
1421  if (emit_debug_code()) {
1422  Label ok;
1423  Tbz(obj, 0, &ok);
1424  Abort(kObjectTagged);
1425  Bind(&ok);
1426  }
1427  Orr(tagged_obj, obj, kHeapObjectTag);
1428 }
void Abort(BailoutReason msg)
const int kHeapObjectTag
Definition: v8.h:5737

References Abort(), Bind(), v8::internal::AssemblerBase::emit_debug_code(), v8::internal::kHeapObjectTag, Orr(), STATIC_ASSERT(), and Tbz().

+ Here is the call graph for this function:

◆ ObjectToDoubleFPURegister() [1/2]

void v8::internal::MacroAssembler::ObjectToDoubleFPURegister ( Register  object,
FPURegister  value,
Register  scratch1,
Register  scratch2,
Register  heap_number_map,
Label *  not_number,
ObjectToDoubleFlags  flags = NO_OBJECT_TO_DOUBLE_FLAGS 
)

◆ ObjectToDoubleFPURegister() [2/2]

void v8::internal::MacroAssembler::ObjectToDoubleFPURegister ( Register  object,
FPURegister  value,
Register  scratch1,
Register  scratch2,
Register  heap_number_map,
Label *  not_number,
ObjectToDoubleFlags  flags = NO_OBJECT_TO_DOUBLE_FLAGS 
)

◆ ObjectUntag()

void v8::internal::MacroAssembler::ObjectUntag ( Register  untagged_obj,
Register  obj 
)
inline

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

1431  {
1433  if (emit_debug_code()) {
1434  Label ok;
1435  Tbnz(obj, 0, &ok);
1436  Abort(kObjectNotTagged);
1437  Bind(&ok);
1438  }
1439  Bic(untagged_obj, obj, kHeapObjectTag);
1440 }

References Abort(), Bic(), Bind(), v8::internal::AssemblerBase::emit_debug_code(), v8::internal::kHeapObjectTag, STATIC_ASSERT(), and Tbnz().

+ Here is the call graph for this function:

◆ Orn()

void v8::internal::MacroAssembler::Orn ( const Register rd,
const Register rn,
const Operand operand 
)
inline

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

100  {
101  DCHECK(allow_macro_instructions_);
102  DCHECK(!rd.IsZero());
103  LogicalMacro(rd, rn, operand, ORN);
104 }

References DCHECK, v8::internal::CPURegister::IsZero(), LogicalMacro(), and v8::internal::ORN.

+ Here is the call graph for this function:

◆ Orr()

void v8::internal::MacroAssembler::Orr ( const Register rd,
const Register rn,
const Operand operand 
)
inline

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

91  {
92  DCHECK(allow_macro_instructions_);
93  DCHECK(!rd.IsZero());
94  LogicalMacro(rd, rn, operand, ORR);
95 }

References DCHECK, v8::internal::CPURegister::IsZero(), LogicalMacro(), and v8::internal::ORR.

Referenced by JumpIfBothSmi(), and ObjectTag().

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

◆ PatchRelocatedValue() [1/2]

void v8::internal::MacroAssembler::PatchRelocatedValue ( Register  li_location,
Register  scratch,
Register  new_value 
)

◆ PatchRelocatedValue() [2/2]

void v8::internal::MacroAssembler::PatchRelocatedValue ( Register  li_location,
Register  scratch,
Register  new_value 
)

◆ Peek()

void v8::internal::MacroAssembler::Peek ( const CPURegister dst,
const Operand offset 
)

Referenced by LoadFromSafepointRegisterSlot().

+ Here is the caller graph for this function:

◆ PeekPair()

void v8::internal::MacroAssembler::PeekPair ( const CPURegister dst1,
const CPURegister dst2,
int  offset 
)

◆ Poke()

void v8::internal::MacroAssembler::Poke ( const CPURegister src,
const Operand offset 
)

Referenced by StoreToSafepointRegisterSlot().

+ Here is the caller graph for this function:

◆ PokePair()

void v8::internal::MacroAssembler::PokePair ( const CPURegister src1,
const CPURegister src2,
int  offset 
)

◆ Pop() [1/17]

void v8::internal::MacroAssembler::Pop ( const CPURegister dst0,
const CPURegister dst1 = NoReg,
const CPURegister dst2 = NoReg,
const CPURegister dst3 = NoReg 
)

◆ Pop() [2/17]

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

◆ Pop() [3/17]

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

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

151 { pop(dst); }

References v8::internal::Assembler::pop().

Referenced by pop(), Pop(), and v8::internal::RecordWriteStub::RegisterAllocation::Restore().

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

◆ pop() [1/3]

void v8::internal::MacroAssembler::pop ( Register  dst)
inline

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

630  {
631  Pop(dst);
632  }

References Pop().

Referenced by v8::internal::RecordWriteStub::RegisterAllocation::Restore(), and v8::internal::RecordWriteStub::RegisterAllocation::RestoreCallerSaveRegisters().

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

◆ Pop() [4/17]

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

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

826 { pop(dst); }

References v8::internal::Assembler::pop().

+ Here is the call graph for this function:

◆ pop() [2/3]

void v8::internal::MacroAssembler::pop ( Register  dst)
inline

Definition at line 694 of file macro-assembler-mips.h.

694  {
695  lw(dst, MemOperand(sp, 0));
696  Addu(sp, sp, Operand(kPointerSize));
697  }
const Register sp

References v8::internal::kPointerSize, v8::internal::Assembler::lw(), and v8::internal::sp.

+ Here is the call graph for this function:

◆ Pop() [5/17]

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

Definition at line 698 of file macro-assembler-mips.h.

698 { pop(dst); }

References v8::internal::Assembler::pop().

+ Here is the call graph for this function:

◆ pop() [3/3]

void v8::internal::MacroAssembler::pop ( Register  dst)
inline

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

716  {
717  ld(dst, MemOperand(sp, 0));
718  Daddu(sp, sp, Operand(kPointerSize));
719  }

References v8::internal::kPointerSize, v8::internal::Assembler::ld(), and v8::internal::sp.

+ Here is the call graph for this function:

◆ Pop() [6/17]

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

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

720 { pop(dst); }

References v8::internal::Assembler::pop().

+ Here is the call graph for this function:

◆ Pop() [7/17]

void v8::internal::MacroAssembler::Pop ( Register  dst)

◆ Pop() [8/17]

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

Definition at line 793 of file macro-assembler-x87.h.

793 { pop(dst); }

References v8::internal::Assembler::pop().

+ Here is the call graph for this function:

◆ Pop() [9/17]

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

Definition at line 701 of file macro-assembler-mips.h.

701  {
702  DCHECK(!src1.is(src2));
703  lw(src2, MemOperand(sp, 0 * kPointerSize));
704  lw(src1, MemOperand(sp, 1 * kPointerSize));
705  Addu(sp, sp, 2 * kPointerSize);
706  }

References DCHECK, v8::internal::Register::is(), v8::internal::kPointerSize, v8::internal::Assembler::lw(), and v8::internal::sp.

+ Here is the call graph for this function:

◆ Pop() [10/17]

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

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

723  {
724  DCHECK(!src1.is(src2));
725  ld(src2, MemOperand(sp, 0 * kPointerSize));
726  ld(src1, MemOperand(sp, 1 * kPointerSize));
727  Daddu(sp, sp, 2 * kPointerSize);
728  }

References DCHECK, v8::internal::Register::is(), v8::internal::kPointerSize, v8::internal::Assembler::ld(), and v8::internal::sp.

+ Here is the call graph for this function:

◆ Pop() [11/17]

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

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

382  {
383  DCHECK(!src1.is(src2));
384  if (src1.code() > src2.code()) {
385  ldm(ia_w, sp, src1.bit() | src2.bit(), cond);
386  } else {
387  ldr(src2, MemOperand(sp, 4, PostIndex), cond);
388  ldr(src1, MemOperand(sp, 4, PostIndex), cond);
389  }
390  }
void ldm(BlockAddrMode am, Register base, RegList dst, Condition cond=al)

References v8::internal::Register::bit(), v8::internal::Register::code(), DCHECK, v8::internal::ia_w, v8::internal::Register::is(), v8::internal::Assembler::ldm(), v8::internal::Assembler::ldr(), v8::internal::PostIndex, and v8::internal::sp.

+ Here is the call graph for this function:

◆ Pop() [12/17]

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

Definition at line 709 of file macro-assembler-mips.h.

709  {
710  lw(src3, MemOperand(sp, 0 * kPointerSize));
711  lw(src2, MemOperand(sp, 1 * kPointerSize));
712  lw(src1, MemOperand(sp, 2 * kPointerSize));
713  Addu(sp, sp, 3 * kPointerSize);
714  }

References v8::internal::kPointerSize, v8::internal::Assembler::lw(), and v8::internal::sp.

+ Here is the call graph for this function:

◆ Pop() [13/17]

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

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

731  {
732  ld(src3, MemOperand(sp, 0 * kPointerSize));
733  ld(src2, MemOperand(sp, 1 * kPointerSize));
734  ld(src1, MemOperand(sp, 2 * kPointerSize));
735  Daddu(sp, sp, 3 * kPointerSize);
736  }

References v8::internal::kPointerSize, v8::internal::Assembler::ld(), and v8::internal::sp.

+ Here is the call graph for this function:

◆ Pop() [14/17]

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

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

393  {
394  DCHECK(!src1.is(src2));
395  DCHECK(!src2.is(src3));
396  DCHECK(!src1.is(src3));
397  if (src1.code() > src2.code()) {
398  if (src2.code() > src3.code()) {
399  ldm(ia_w, sp, src1.bit() | src2.bit() | src3.bit(), cond);
400  } else {
401  ldr(src3, MemOperand(sp, 4, PostIndex), cond);
402  ldm(ia_w, sp, src1.bit() | src2.bit(), cond);
403  }
404  } else {
405  Pop(src2, src3, cond);
406  ldr(src1, MemOperand(sp, 4, PostIndex), cond);
407  }
408  }

References v8::internal::Register::bit(), v8::internal::Register::code(), DCHECK, v8::internal::ia_w, v8::internal::Register::is(), v8::internal::Assembler::ldm(), v8::internal::Assembler::ldr(), Pop(), v8::internal::PostIndex, and v8::internal::sp.

+ Here is the call graph for this function:

◆ Pop() [15/17]

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

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

415  {
416  DCHECK(!src1.is(src2));
417  DCHECK(!src2.is(src3));
418  DCHECK(!src1.is(src3));
419  DCHECK(!src1.is(src4));
420  DCHECK(!src2.is(src4));
421  DCHECK(!src3.is(src4));
422  if (src1.code() > src2.code()) {
423  if (src2.code() > src3.code()) {
424  if (src3.code() > src4.code()) {
425  ldm(ia_w,
426  sp,
427  src1.bit() | src2.bit() | src3.bit() | src4.bit(),
428  cond);
429  } else {
430  ldr(src4, MemOperand(sp, 4, PostIndex), cond);
431  ldm(ia_w, sp, src1.bit() | src2.bit() | src3.bit(), cond);
432  }
433  } else {
434  Pop(src3, src4, cond);
435  ldm(ia_w, sp, src1.bit() | src2.bit(), cond);
436  }
437  } else {
438  Pop(src2, src3, src4, cond);
439  ldr(src1, MemOperand(sp, 4, PostIndex), cond);
440  }
441  }

References v8::internal::Register::bit(), v8::internal::Register::code(), DCHECK, v8::internal::ia_w, v8::internal::Register::is(), v8::internal::Assembler::ldm(), v8::internal::Assembler::ldr(), Pop(), v8::internal::PostIndex, and v8::internal::sp.

+ Here is the call graph for this function:

◆ Pop() [16/17]

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

Definition at line 716 of file macro-assembler-mips.h.

716  {
717  Addu(sp, sp, Operand(count * kPointerSize));
718  }

References v8::internal::kPointerSize, and v8::internal::sp.

◆ Pop() [17/17]

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

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

738  {
739  Daddu(sp, sp, Operand(count * kPointerSize));
740  }

References v8::internal::kPointerSize, and v8::internal::sp.

◆ Popad()

void v8::internal::MacroAssembler::Popad ( )

Referenced by PopSafepointRegisters().

+ Here is the caller graph for this function:

◆ PopCalleeSavedRegisters()

void v8::internal::MacroAssembler::PopCalleeSavedRegisters ( )

◆ PopCallerSaved()

void v8::internal::MacroAssembler::PopCallerSaved ( SaveFPRegsMode  fp_mode,
Register  exclusion1 = no_reg,
Register  exclusion2 = no_reg,
Register  exclusion3 = no_reg 
)

Referenced by v8::internal::RecordWriteStub::RegisterAllocation::RestoreCallerSaveRegisters().

+ Here is the caller graph for this function:

◆ PopCPURegList()

void v8::internal::MacroAssembler::PopCPURegList ( CPURegList  registers)

Referenced by PopSizeRegList(), and v8::internal::RecordWriteStub::RegisterAllocation::RestoreCallerSaveRegisters().

+ Here is the caller graph for this function:

◆ PopDRegList()

void v8::internal::MacroAssembler::PopDRegList ( RegList  regs)
inline

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

608  {
610  }
void PopSizeRegList(RegList registers, unsigned reg_size, CPURegister::RegisterType type=CPURegister::kRegister)
const unsigned kDRegSizeInBits

References v8::internal::kDRegSizeInBits, v8::internal::CPURegister::kFPRegister, and PopSizeRegList().

+ Here is the call graph for this function:

◆ PopFixedFrame()

void v8::internal::MacroAssembler::PopFixedFrame ( Register  marker_reg = no_reg)

◆ PopHelper()

void v8::internal::MacroAssembler::PopHelper ( int  count,
int  size,
const CPURegister dst0,
const CPURegister dst1,
const CPURegister dst2,
const CPURegister dst3 
)
private

◆ PopPostamble() [1/2]

void v8::internal::MacroAssembler::PopPostamble ( int  count,
int  size 
)
inline

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

2046 { PopPostamble(count * size); }
void PopPostamble(Operand total_size)

References PopPostamble(), and size.

Referenced by PopPostamble().

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

◆ PopPostamble() [2/2]

void v8::internal::MacroAssembler::PopPostamble ( Operand  total_size)

◆ PopQuad()

void v8::internal::MacroAssembler::PopQuad ( const Operand dst)

◆ PopRegisterAsTwoSmis() [1/2]

void v8::internal::MacroAssembler::PopRegisterAsTwoSmis ( Register  dst,
Register  scratch = at 
)

◆ PopRegisterAsTwoSmis() [2/2]

void v8::internal::MacroAssembler::PopRegisterAsTwoSmis ( Register  dst,
Register  scratch = kScratchRegister 
)

◆ PopReturnAddressTo()

void v8::internal::MacroAssembler::PopReturnAddressTo ( Register  dst)
inline

Definition at line 869 of file macro-assembler-x64.h.

869 { popq(dst); }
void popq(Register dst)

References v8::internal::Assembler::popq().

+ Here is the call graph for this function:

◆ PopSafepointRegisters() [1/7]

void v8::internal::MacroAssembler::PopSafepointRegisters ( )

◆ PopSafepointRegisters() [2/7]

void v8::internal::MacroAssembler::PopSafepointRegisters ( )

◆ PopSafepointRegisters() [3/7]

void v8::internal::MacroAssembler::PopSafepointRegisters ( )
inline

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

273 { popad(); }

References v8::internal::Assembler::popad().

+ Here is the call graph for this function:

◆ PopSafepointRegisters() [4/7]

void v8::internal::MacroAssembler::PopSafepointRegisters ( )

◆ PopSafepointRegisters() [5/7]

void v8::internal::MacroAssembler::PopSafepointRegisters ( )

◆ PopSafepointRegisters() [6/7]

void v8::internal::MacroAssembler::PopSafepointRegisters ( )
inline

Definition at line 333 of file macro-assembler-x64.h.

333 { Popad(); }

References Popad().

+ Here is the call graph for this function:

◆ PopSafepointRegisters() [7/7]

void v8::internal::MacroAssembler::PopSafepointRegisters ( )
inline

Definition at line 251 of file macro-assembler-x87.h.

251 { popad(); }

References v8::internal::Assembler::popad().

+ Here is the call graph for this function:

◆ PopSafepointRegistersAndDoubles()

void v8::internal::MacroAssembler::PopSafepointRegistersAndDoubles ( )

◆ PopSizeRegList()

void v8::internal::MacroAssembler::PopSizeRegList ( RegList  registers,
unsigned  reg_size,
CPURegister::RegisterType  type = CPURegister::kRegister 
)
inline

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

590  {
591  PopCPURegList(CPURegList(type, reg_size, registers));
592  }
void PopCPURegList(CPURegList registers)

References PopCPURegList().

Referenced by PopDRegList(), PopSRegList(), PopWRegList(), and PopXRegList().

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

◆ PopSRegList()

void v8::internal::MacroAssembler::PopSRegList ( RegList  regs)
inline

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

614  {
616  }
const unsigned kSRegSizeInBits

References v8::internal::CPURegister::kFPRegister, v8::internal::kSRegSizeInBits, and PopSizeRegList().

+ Here is the call graph for this function:

◆ PopTryHandler() [1/7]

void v8::internal::MacroAssembler::PopTryHandler ( )

◆ PopTryHandler() [2/7]

void v8::internal::MacroAssembler::PopTryHandler ( )

◆ PopTryHandler() [3/7]

void v8::internal::MacroAssembler::PopTryHandler ( )

◆ PopTryHandler() [4/7]

void v8::internal::MacroAssembler::PopTryHandler ( )

◆ PopTryHandler() [5/7]

void v8::internal::MacroAssembler::PopTryHandler ( )

◆ PopTryHandler() [6/7]

void v8::internal::MacroAssembler::PopTryHandler ( )

◆ PopTryHandler() [7/7]

void v8::internal::MacroAssembler::PopTryHandler ( )

◆ PopWRegList()

void v8::internal::MacroAssembler::PopWRegList ( RegList  regs)
inline

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

602  {
604  }
const unsigned kWRegSizeInBits

References v8::internal::kWRegSizeInBits, and PopSizeRegList().

+ Here is the call graph for this function:

◆ PopXRegList()

void v8::internal::MacroAssembler::PopXRegList ( RegList  regs)
inline

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

596  {
598  }

References v8::internal::kXRegSizeInBits, and PopSizeRegList().

+ Here is the call graph for this function:

◆ PositiveSmiDivPowerOfTwoToInteger32()

void v8::internal::MacroAssembler::PositiveSmiDivPowerOfTwoToInteger32 ( Register  dst,
Register  src,
int  power 
)

◆ PositiveSmiTimesPowerOfTwoToInteger64()

void v8::internal::MacroAssembler::PositiveSmiTimesPowerOfTwoToInteger64 ( Register  dst,
Register  src,
int  power 
)

◆ Pref() [1/2]

void v8::internal::MacroAssembler::Pref ( int32_t  hint,
const MemOperand rs 
)

◆ Pref() [2/2]

void v8::internal::MacroAssembler::Pref ( int32_t  hint,
const MemOperand rs 
)

◆ PrepareCallApiFunction() [1/3]

void v8::internal::MacroAssembler::PrepareCallApiFunction ( int  arg_stack_space)

◆ PrepareCallApiFunction() [2/3]

void v8::internal::MacroAssembler::PrepareCallApiFunction ( int  argc)

◆ PrepareCallApiFunction() [3/3]

void v8::internal::MacroAssembler::PrepareCallApiFunction ( int  argc)

◆ PrepareCallCFunction() [1/9]

void v8::internal::MacroAssembler::PrepareCallCFunction ( int  num_arguments)

◆ PrepareCallCFunction() [2/9]

void v8::internal::MacroAssembler::PrepareCallCFunction ( int  num_arguments,
Register  scratch 
)

◆ PrepareCallCFunction() [3/9]

void v8::internal::MacroAssembler::PrepareCallCFunction ( int  num_arguments,
Register  scratch 
)

◆ PrepareCallCFunction() [4/9]

void v8::internal::MacroAssembler::PrepareCallCFunction ( int  num_reg_arguments,
int  num_double_registers,
Register  scratch 
)

◆ PrepareCallCFunction() [5/9]

void v8::internal::MacroAssembler::PrepareCallCFunction ( int  num_reg_arguments,
int  num_double_registers,
Register  scratch 
)

◆ PrepareCallCFunction() [6/9]

void v8::internal::MacroAssembler::PrepareCallCFunction ( int  num_reg_arguments,
int  num_double_registers,
Register  scratch 
)

◆ PrepareCallCFunction() [7/9]

void v8::internal::MacroAssembler::PrepareCallCFunction ( int  num_reg_arguments,
Register  scratch 
)

◆ PrepareCallCFunction() [8/9]

void v8::internal::MacroAssembler::PrepareCallCFunction ( int  num_reg_arguments,
Register  scratch 
)

◆ PrepareCallCFunction() [9/9]

void v8::internal::MacroAssembler::PrepareCallCFunction ( int  num_reg_arguments,
Register  scratch 
)

◆ PrepareCEntryArgs() [1/2]

void v8::internal::MacroAssembler::PrepareCEntryArgs ( int  num_args)
inline

Definition at line 1186 of file macro-assembler-mips.h.

1186 { li(a0, num_args); }

References li().

+ Here is the call graph for this function:

◆ PrepareCEntryArgs() [2/2]

void v8::internal::MacroAssembler::PrepareCEntryArgs ( int  num_args)
inline

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

1201  {
1202  li(s0, num_args);
1203  li(s1, (num_args - 1) * kPointerSize);
1204  }
const SwVfpRegister s1
const SwVfpRegister s0

References v8::internal::kPointerSize, li(), v8::internal::s0, and v8::internal::s1.

+ Here is the call graph for this function:

◆ PrepareCEntryFunction() [1/2]

void v8::internal::MacroAssembler::PrepareCEntryFunction ( const ExternalReference &  ref)
inline

Definition at line 1188 of file macro-assembler-mips.h.

1188  {
1189  li(a1, Operand(ref));
1190  }

References li().

+ Here is the call graph for this function:

◆ PrepareCEntryFunction() [2/2]

void v8::internal::MacroAssembler::PrepareCEntryFunction ( const ExternalReference &  ref)
inline

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

1206  {
1207  li(s2, Operand(ref));
1208  }
const SwVfpRegister s2

References li(), and v8::internal::s2.

+ Here is the call graph for this function:

◆ Printf()

void v8::internal::MacroAssembler::Printf ( const char *  format,
CPURegister  arg0 = NoCPUReg,
CPURegister  arg1 = NoCPUReg,
CPURegister  arg2 = NoCPUReg,
CPURegister  arg3 = NoCPUReg 
)

◆ PrintfNoPreserve()

void v8::internal::MacroAssembler::PrintfNoPreserve ( const char *  format,
const CPURegister arg0 = NoCPUReg,
const CPURegister arg1 = NoCPUReg,
const CPURegister arg2 = NoCPUReg,
const CPURegister arg3 = NoCPUReg 
)

◆ Prologue() [1/7]

void v8::internal::MacroAssembler::Prologue ( bool  code_pre_aging)

◆ Prologue() [2/7]

void v8::internal::MacroAssembler::Prologue ( bool  code_pre_aging)

◆ Prologue() [3/7]

void v8::internal::MacroAssembler::Prologue ( bool  code_pre_aging)

◆ Prologue() [4/7]

void v8::internal::MacroAssembler::Prologue ( bool  code_pre_aging)

◆ Prologue() [5/7]

void v8::internal::MacroAssembler::Prologue ( bool  code_pre_aging)

◆ Prologue() [6/7]

void v8::internal::MacroAssembler::Prologue ( bool  code_pre_aging)

◆ Prologue() [7/7]

void v8::internal::MacroAssembler::Prologue ( bool  code_pre_aging)

◆ Push() [1/36]

void v8::internal::MacroAssembler::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 
)

◆ Push() [2/36]

void v8::internal::MacroAssembler::Push ( const CPURegister src0,
const CPURegister src1 = NoReg,
const CPURegister src2 = NoReg,
const CPURegister src3 = NoReg 
)

◆ Push() [3/36]

void v8::internal::MacroAssembler::Push ( const Operand src)

◆ Push() [4/36]

void v8::internal::MacroAssembler::Push ( const Register src0,
const FPRegister src1 
)

◆ Push() [5/36]

void v8::internal::MacroAssembler::Push ( Handle< Object handle)

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

1497  {
1498  UseScratchRegisterScope temps(this);
1499  Register tmp = temps.AcquireX();
1500  Mov(tmp, Operand(handle));
1501  Push(tmp);
1502 }
Handle< T > handle(T *t, Isolate *isolate)
Definition: handles.h:146

References v8::internal::UseScratchRegisterScope::AcquireX(), v8::internal::handle(), Mov(), and Push().

+ Here is the call graph for this function:

◆ Push() [6/36]

void v8::internal::MacroAssembler::Push ( Handle< Object handle)
inline

◆ Push() [7/36]

void v8::internal::MacroAssembler::Push ( Handle< Object handle)
inline

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

845 { push(Immediate(handle)); }

References v8::internal::handle(), and push().

+ Here is the call graph for this function:

◆ Push() [8/36]

void v8::internal::MacroAssembler::Push ( Handle< Object handle)

◆ Push() [9/36]

void v8::internal::MacroAssembler::Push ( Handle< Object handle)

◆ Push() [10/36]

void v8::internal::MacroAssembler::Push ( Handle< Object handle)
inline

Definition at line 809 of file macro-assembler-x87.h.

809 { push(Immediate(handle)); }

References v8::internal::handle(), and push().

+ Here is the call graph for this function:

◆ Push() [11/36]

void v8::internal::MacroAssembler::Push ( Handle< Object source)

◆ Push() [12/36]

void v8::internal::MacroAssembler::Push ( Immediate  value)

◆ Push() [13/36]

void v8::internal::MacroAssembler::Push ( Register  src)
inline

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

150 { push(src); }

References push().

Referenced by push(), Push(), v8::internal::RecordWriteStub::RegisterAllocation::Save(), and SmiTagAndPush().

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

◆ push() [1/3]

void v8::internal::MacroAssembler::push ( Register  src)
inline

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

627  {
628  Push(src);
629  }

References Push().

Referenced by Push(), v8::internal::RecordWriteStub::RegisterAllocation::Save(), and v8::internal::RecordWriteStub::RegisterAllocation::SaveCallerSaveRegisters().

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

◆ Push() [14/36]

void v8::internal::MacroAssembler::Push ( Register  src)
inline

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

825 { push(src); }

References push().

+ Here is the call graph for this function:

◆ push() [2/3]

void v8::internal::MacroAssembler::push ( Register  src)
inline

Definition at line 645 of file macro-assembler-mips.h.

645  {
646  Addu(sp, sp, Operand(-kPointerSize));
647  sw(src, MemOperand(sp, 0));
648  }
void sw(Register rd, const MemOperand &rs)

References v8::internal::kPointerSize, v8::internal::sp, and v8::internal::Assembler::sw().

+ Here is the call graph for this function:

◆ Push() [15/36]

void v8::internal::MacroAssembler::Push ( Register  src)
inline

Definition at line 649 of file macro-assembler-mips.h.

649 { push(src); }

References push().

+ Here is the call graph for this function:

◆ push() [3/3]

void v8::internal::MacroAssembler::push ( Register  src)
inline

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

664  {
665  Daddu(sp, sp, Operand(-kPointerSize));
666  sd(src, MemOperand(sp, 0));
667  }
void sd(Register rd, const MemOperand &rs)

References v8::internal::kPointerSize, v8::internal::Assembler::sd(), and v8::internal::sp.

+ Here is the call graph for this function:

◆ Push() [16/36]

void v8::internal::MacroAssembler::Push ( Register  src)
inline

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

668 { push(src); }

References push().

+ Here is the call graph for this function:

◆ Push() [17/36]

void v8::internal::MacroAssembler::Push ( Register  src)

◆ Push() [18/36]

void v8::internal::MacroAssembler::Push ( Register  src)
inline

Definition at line 792 of file macro-assembler-x87.h.

792 { push(src); }

References push().

+ Here is the call graph for this function:

◆ Push() [19/36]

void v8::internal::MacroAssembler::Push ( Register  src,
Condition  cond,
Register  tst1,
Register  tst2 
)
inline

Definition at line 679 of file macro-assembler-mips.h.

679  {
680  // Since we don't have conditional execution we use a Branch.
681  Branch(3, cond, tst1, Operand(tst2));
682  Subu(sp, sp, Operand(kPointerSize));
683  sw(src, MemOperand(sp, 0));
684  }

References Branch(), v8::internal::kPointerSize, v8::internal::sp, and v8::internal::Assembler::sw().

+ Here is the call graph for this function:

◆ Push() [20/36]

void v8::internal::MacroAssembler::Push ( Register  src,
Condition  cond,
Register  tst1,
Register  tst2 
)
inline

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

698  {
699  // Since we don't have conditional execution we use a Branch.
700  Branch(3, cond, tst1, Operand(tst2));
701  Dsubu(sp, sp, Operand(kPointerSize));
702  sd(src, MemOperand(sp, 0));
703  }

References Branch(), v8::internal::kPointerSize, v8::internal::Assembler::sd(), and v8::internal::sp.

+ Here is the call graph for this function:

◆ Push() [21/36]

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

Definition at line 656 of file macro-assembler-mips.h.

656  {
657  Subu(sp, sp, Operand(2 * kPointerSize));
658  sw(src1, MemOperand(sp, 1 * kPointerSize));
659  sw(src2, MemOperand(sp, 0 * kPointerSize));
660  }

References v8::internal::kPointerSize, v8::internal::sp, and v8::internal::Assembler::sw().

+ Here is the call graph for this function:

◆ Push() [22/36]

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

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

675  {
676  Dsubu(sp, sp, Operand(2 * kPointerSize));
677  sd(src1, MemOperand(sp, 1 * kPointerSize));
678  sd(src2, MemOperand(sp, 0 * kPointerSize));
679  }

References v8::internal::kPointerSize, v8::internal::Assembler::sd(), and v8::internal::sp.

+ Here is the call graph for this function:

◆ Push() [23/36]

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

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

320  {
321  DCHECK(!src1.is(src2));
322  if (src1.code() > src2.code()) {
323  stm(db_w, sp, src1.bit() | src2.bit(), cond);
324  } else {
325  str(src1, MemOperand(sp, 4, NegPreIndex), cond);
326  str(src2, MemOperand(sp, 4, NegPreIndex), cond);
327  }
328  }
void stm(BlockAddrMode am, Register base, RegList src, Condition cond=al)
void str(Register src, const MemOperand &dst, Condition cond=al)

References v8::internal::Register::bit(), v8::internal::Register::code(), v8::internal::db_w, DCHECK, v8::internal::Register::is(), v8::internal::NegPreIndex, v8::internal::sp, v8::internal::Assembler::stm(), and v8::internal::Assembler::str().

+ Here is the call graph for this function:

◆ Push() [24/36]

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

Definition at line 663 of file macro-assembler-mips.h.

663  {
664  Subu(sp, sp, Operand(3 * kPointerSize));
665  sw(src1, MemOperand(sp, 2 * kPointerSize));
666  sw(src2, MemOperand(sp, 1 * kPointerSize));
667  sw(src3, MemOperand(sp, 0 * kPointerSize));
668  }

References v8::internal::kPointerSize, v8::internal::sp, and v8::internal::Assembler::sw().

+ Here is the call graph for this function:

◆ Push() [25/36]

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

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

682  {
683  Dsubu(sp, sp, Operand(3 * kPointerSize));
684  sd(src1, MemOperand(sp, 2 * kPointerSize));
685  sd(src2, MemOperand(sp, 1 * kPointerSize));
686  sd(src3, MemOperand(sp, 0 * kPointerSize));
687  }

References v8::internal::kPointerSize, v8::internal::Assembler::sd(), and v8::internal::sp.

+ Here is the call graph for this function:

◆ Push() [26/36]

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

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

331  {
332  DCHECK(!src1.is(src2));
333  DCHECK(!src2.is(src3));
334  DCHECK(!src1.is(src3));
335  if (src1.code() > src2.code()) {
336  if (src2.code() > src3.code()) {
337  stm(db_w, sp, src1.bit() | src2.bit() | src3.bit(), cond);
338  } else {
339  stm(db_w, sp, src1.bit() | src2.bit(), cond);
340  str(src3, MemOperand(sp, 4, NegPreIndex), cond);
341  }
342  } else {
343  str(src1, MemOperand(sp, 4, NegPreIndex), cond);
344  Push(src2, src3, cond);
345  }
346  }

References v8::internal::Register::bit(), v8::internal::Register::code(), v8::internal::db_w, DCHECK, v8::internal::Register::is(), v8::internal::NegPreIndex, Push(), v8::internal::sp, v8::internal::Assembler::stm(), and v8::internal::Assembler::str().

+ Here is the call graph for this function:

◆ Push() [27/36]

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

Definition at line 671 of file macro-assembler-mips.h.

671  {
672  Subu(sp, sp, Operand(4 * kPointerSize));
673  sw(src1, MemOperand(sp, 3 * kPointerSize));
674  sw(src2, MemOperand(sp, 2 * kPointerSize));
675  sw(src3, MemOperand(sp, 1 * kPointerSize));
676  sw(src4, MemOperand(sp, 0 * kPointerSize));
677  }

References v8::internal::kPointerSize, v8::internal::sp, and v8::internal::Assembler::sw().

+ Here is the call graph for this function:

◆ Push() [28/36]

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

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

690  {
691  Dsubu(sp, sp, Operand(4 * kPointerSize));
692  sd(src1, MemOperand(sp, 3 * kPointerSize));
693  sd(src2, MemOperand(sp, 2 * kPointerSize));
694  sd(src3, MemOperand(sp, 1 * kPointerSize));
695  sd(src4, MemOperand(sp, 0 * kPointerSize));
696  }

References v8::internal::kPointerSize, v8::internal::Assembler::sd(), and v8::internal::sp.

+ Here is the call graph for this function:

◆ Push() [29/36]

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

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

353  {
354  DCHECK(!src1.is(src2));
355  DCHECK(!src2.is(src3));
356  DCHECK(!src1.is(src3));
357  DCHECK(!src1.is(src4));
358  DCHECK(!src2.is(src4));
359  DCHECK(!src3.is(src4));
360  if (src1.code() > src2.code()) {
361  if (src2.code() > src3.code()) {
362  if (src3.code() > src4.code()) {
363  stm(db_w,
364  sp,
365  src1.bit() | src2.bit() | src3.bit() | src4.bit(),
366  cond);
367  } else {
368  stm(db_w, sp, src1.bit() | src2.bit() | src3.bit(), cond);
369  str(src4, MemOperand(sp, 4, NegPreIndex), cond);
370  }
371  } else {
372  stm(db_w, sp, src1.bit() | src2.bit(), cond);
373  Push(src3, src4, cond);
374  }
375  } else {
376  str(src1, MemOperand(sp, 4, NegPreIndex), cond);
377  Push(src2, src3, src4, cond);
378  }
379  }

References v8::internal::Register::bit(), v8::internal::Register::code(), v8::internal::db_w, DCHECK, v8::internal::Register::is(), v8::internal::NegPreIndex, Push(), v8::internal::sp, v8::internal::Assembler::stm(), and v8::internal::Assembler::str().

+ Here is the call graph for this function:

◆ Push() [30/36]

void v8::internal::MacroAssembler::Push ( Smi smi)
inline

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

317 { Push(Handle<Smi>(smi, isolate())); }

References v8::internal::AssemblerBase::isolate(), and Push().

Referenced by Push().

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

◆ Push() [31/36]

void v8::internal::MacroAssembler::Push ( Smi smi)
inline

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

624 { Push(Handle<Smi>(smi, isolate())); }

References v8::internal::AssemblerBase::isolate(), and Push().

Referenced by Push().

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

◆ Push() [32/36]

void v8::internal::MacroAssembler::Push ( Smi smi)
inline

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

846 { Push(Handle<Smi>(smi, isolate())); }

References v8::internal::AssemblerBase::isolate(), and Push().

Referenced by Push().

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

◆ Push() [33/36]

void v8::internal::MacroAssembler::Push ( Smi smi)
inline

Definition at line 653 of file macro-assembler-mips.h.

653 { Push(Handle<Smi>(smi, isolate())); }

References v8::internal::AssemblerBase::isolate(), and Push().

Referenced by Push().

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

◆ Push() [34/36]

void v8::internal::MacroAssembler::Push ( Smi smi)
inline

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

672 { Push(Handle<Smi>(smi, isolate())); }

References v8::internal::AssemblerBase::isolate(), and Push().

Referenced by Push().

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

◆ Push() [35/36]

void v8::internal::MacroAssembler::Push ( Smi smi)

◆ Push() [36/36]

void v8::internal::MacroAssembler::Push ( Smi smi)
inline

Definition at line 810 of file macro-assembler-x87.h.

810 { Push(Handle<Smi>(smi, isolate())); }

References v8::internal::AssemblerBase::isolate(), and Push().

Referenced by Push().

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

◆ Pushad()

void v8::internal::MacroAssembler::Pushad ( )

Referenced by PushSafepointRegisters().

+ Here is the caller graph for this function:

◆ PushAddress()

void v8::internal::MacroAssembler::PushAddress ( ExternalReference  source)

◆ PushCalleeSavedRegisters()

void v8::internal::MacroAssembler::PushCalleeSavedRegisters ( )

◆ PushCallerSaved()

void v8::internal::MacroAssembler::PushCallerSaved ( SaveFPRegsMode  fp_mode,
Register  exclusion1 = no_reg,
Register  exclusion2 = no_reg,
Register  exclusion3 = no_reg 
)

Referenced by v8::internal::RecordWriteStub::RegisterAllocation::SaveCallerSaveRegisters().

+ Here is the caller graph for this function:

◆ PushCPURegList()

void v8::internal::MacroAssembler::PushCPURegList ( CPURegList  registers)

Referenced by PushSizeRegList(), and v8::internal::RecordWriteStub::RegisterAllocation::SaveCallerSaveRegisters().

+ Here is the caller graph for this function:

◆ PushDRegList()

void v8::internal::MacroAssembler::PushDRegList ( RegList  regs)
inline

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

605  {
607  }
void PushSizeRegList(RegList registers, unsigned reg_size, CPURegister::RegisterType type=CPURegister::kRegister)

References v8::internal::kDRegSizeInBits, v8::internal::CPURegister::kFPRegister, and PushSizeRegList().

+ Here is the call graph for this function:

◆ PushFixedFrame()

void v8::internal::MacroAssembler::PushFixedFrame ( Register  marker_reg = no_reg)

◆ PushHeapObject() [1/2]

void v8::internal::MacroAssembler::PushHeapObject ( Handle< HeapObject object)

◆ PushHeapObject() [2/2]

void v8::internal::MacroAssembler::PushHeapObject ( Handle< HeapObject object)

◆ PushHelper()

void v8::internal::MacroAssembler::PushHelper ( int  count,
int  size,
const CPURegister src0,
const CPURegister src1,
const CPURegister src2,
const CPURegister src3 
)
private

◆ PushImm32()

void v8::internal::MacroAssembler::PushImm32 ( int32_t  imm32)

◆ PushMultipleTimes() [1/2]

void v8::internal::MacroAssembler::PushMultipleTimes ( CPURegister  src,
int  count 
)

◆ PushMultipleTimes() [2/2]

void v8::internal::MacroAssembler::PushMultipleTimes ( CPURegister  src,
Register  count 
)

◆ PushPreamble() [1/2]

void v8::internal::MacroAssembler::PushPreamble ( int  count,
int  size 
)
inline

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

2045 { PushPreamble(count * size); }
void PushPreamble(Operand total_size)

References PushPreamble(), and size.

Referenced by PushPreamble().

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

◆ PushPreamble() [2/2]

void v8::internal::MacroAssembler::PushPreamble ( Operand  total_size)

◆ PushQuad()

void v8::internal::MacroAssembler::PushQuad ( const Operand src)

◆ PushRegisterAsTwoSmis() [1/2]

void v8::internal::MacroAssembler::PushRegisterAsTwoSmis ( Register  src,
Register  scratch = at 
)

◆ PushRegisterAsTwoSmis() [2/2]

void v8::internal::MacroAssembler::PushRegisterAsTwoSmis ( Register  src,
Register  scratch = kScratchRegister 
)

◆ PushReturnAddressFrom()

void v8::internal::MacroAssembler::PushReturnAddressFrom ( Register  src)
inline

Definition at line 868 of file macro-assembler-x64.h.

868 { pushq(src); }
void pushq(Immediate value)

References v8::internal::Assembler::pushq().

+ Here is the call graph for this function:

◆ PushRoot()

void v8::internal::MacroAssembler::PushRoot ( Heap::RootListIndex  index)

◆ PushSafepointRegisters() [1/7]

void v8::internal::MacroAssembler::PushSafepointRegisters ( )

◆ PushSafepointRegisters() [2/7]

void v8::internal::MacroAssembler::PushSafepointRegisters ( )

◆ PushSafepointRegisters() [3/7]

void v8::internal::MacroAssembler::PushSafepointRegisters ( )
inline

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

272 { pushad(); }

References v8::internal::Assembler::pushad().

+ Here is the call graph for this function:

◆ PushSafepointRegisters() [4/7]

void v8::internal::MacroAssembler::PushSafepointRegisters ( )

◆ PushSafepointRegisters() [5/7]

void v8::internal::MacroAssembler::PushSafepointRegisters ( )

◆ PushSafepointRegisters() [6/7]

void v8::internal::MacroAssembler::PushSafepointRegisters ( )
inline

Definition at line 332 of file macro-assembler-x64.h.

332 { Pushad(); }

References Pushad().

+ Here is the call graph for this function:

◆ PushSafepointRegisters() [7/7]

void v8::internal::MacroAssembler::PushSafepointRegisters ( )
inline

Definition at line 250 of file macro-assembler-x87.h.

250 { pushad(); }

References v8::internal::Assembler::pushad().

+ Here is the call graph for this function:

◆ PushSafepointRegistersAndDoubles()

void v8::internal::MacroAssembler::PushSafepointRegistersAndDoubles ( )

◆ PushSizeRegList()

void v8::internal::MacroAssembler::PushSizeRegList ( RegList  registers,
unsigned  reg_size,
CPURegister::RegisterType  type = CPURegister::kRegister 
)
inline

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

586  {
587  PushCPURegList(CPURegList(type, reg_size, registers));
588  }
void PushCPURegList(CPURegList registers)

References PushCPURegList().

Referenced by PushDRegList(), PushSRegList(), PushWRegList(), and PushXRegList().

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

◆ PushSRegList()

void v8::internal::MacroAssembler::PushSRegList ( RegList  regs)
inline

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

References v8::internal::CPURegister::kFPRegister, v8::internal::kSRegSizeInBits, and PushSizeRegList().

+ Here is the call graph for this function:

◆ PushTryHandler() [1/7]

void v8::internal::MacroAssembler::PushTryHandler ( StackHandler::Kind  kind,
int  handler_index 
)

◆ PushTryHandler() [2/7]

void v8::internal::MacroAssembler::PushTryHandler ( StackHandler::Kind  kind,
int  handler_index 
)

◆ PushTryHandler() [3/7]

void v8::internal::MacroAssembler::PushTryHandler ( StackHandler::Kind  kind,
int  handler_index 
)

◆ PushTryHandler() [4/7]

void v8::internal::MacroAssembler::PushTryHandler ( StackHandler::Kind  kind,
int  handler_index 
)

◆ PushTryHandler() [5/7]

void v8::internal::MacroAssembler::PushTryHandler ( StackHandler::Kind  kind,
int  handler_index 
)

◆ PushTryHandler() [6/7]

void v8::internal::MacroAssembler::PushTryHandler ( StackHandler::Kind  kind,
int  handler_index 
)

◆ PushTryHandler() [7/7]

void v8::internal::MacroAssembler::PushTryHandler ( StackHandler::Kind  kind,
int  handler_index 
)

◆ PushWRegList()

void v8::internal::MacroAssembler::PushWRegList ( RegList  regs)
inline

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

599  {
601  }

References v8::internal::kWRegSizeInBits, and PushSizeRegList().

+ Here is the call graph for this function:

◆ PushXRegList()

void v8::internal::MacroAssembler::PushXRegList ( RegList  regs)
inline

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

593  {
595  }

References v8::internal::kXRegSizeInBits, and PushSizeRegList().

+ Here is the call graph for this function:

◆ Rbit()

void v8::internal::MacroAssembler::Rbit ( const Register rd,
const Register rn 
)
inline

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

994  {
995  DCHECK(allow_macro_instructions_);
996  DCHECK(!rd.IsZero());
997  rbit(rd, rn);
998 }
void rbit(const Register &rd, const Register &rn)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::rbit().

+ Here is the call graph for this function:

◆ RecordWrite() [1/7]

void v8::internal::MacroAssembler::RecordWrite ( Register  object,
Register  address,
Register  value,
LinkRegisterStatus  lr_status,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)

◆ RecordWrite() [2/7]

void v8::internal::MacroAssembler::RecordWrite ( Register  object,
Register  address,
Register  value,
LinkRegisterStatus  lr_status,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)

◆ RecordWrite() [3/7]

void v8::internal::MacroAssembler::RecordWrite ( Register  object,
Register  address,
Register  value,
RAStatus  ra_status,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)

◆ RecordWrite() [4/7]

void v8::internal::MacroAssembler::RecordWrite ( Register  object,
Register  address,
Register  value,
RAStatus  ra_status,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)

◆ RecordWrite() [5/7]

void v8::internal::MacroAssembler::RecordWrite ( Register  object,
Register  address,
Register  value,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)

◆ RecordWrite() [6/7]

void v8::internal::MacroAssembler::RecordWrite ( Register  object,
Register  address,
Register  value,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)

◆ RecordWrite() [7/7]

void v8::internal::MacroAssembler::RecordWrite ( Register  object,
Register  address,
Register  value,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)

◆ RecordWriteArray() [1/3]

void v8::internal::MacroAssembler::RecordWriteArray ( Register  array,
Register  value,
Register  index,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)

◆ RecordWriteArray() [2/3]

void v8::internal::MacroAssembler::RecordWriteArray ( Register  array,
Register  value,
Register  index,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)

◆ RecordWriteArray() [3/3]

void v8::internal::MacroAssembler::RecordWriteArray ( Register  array,
Register  value,
Register  index,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)

◆ RecordWriteContextSlot() [1/7]

void v8::internal::MacroAssembler::RecordWriteContextSlot ( Register  context,
int  offset,
Register  value,
Register  scratch,
LinkRegisterStatus  lr_status,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)
inline

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

282  {
283  RecordWriteField(context,
284  offset + kHeapObjectTag,
285  value,
286  scratch,
287  lr_status,
288  save_fp,
289  remembered_set_action,
290  smi_check,
291  pointers_to_here_check_for_value);
292  }
void RecordWriteField(Register object, int offset, Register value, Register scratch, LinkRegisterStatus lr_status, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK, PointersToHereCheck pointers_to_here_check_for_value=kPointersToHereMaybeInteresting)

References v8::internal::kHeapObjectTag, and RecordWriteField().

+ Here is the call graph for this function:

◆ RecordWriteContextSlot() [2/7]

void v8::internal::MacroAssembler::RecordWriteContextSlot ( Register  context,
int  offset,
Register  value,
Register  scratch,
LinkRegisterStatus  lr_status,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)
inline

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

1822  {
1823  RecordWriteField(context,
1824  offset + kHeapObjectTag,
1825  value,
1826  scratch,
1827  lr_status,
1828  save_fp,
1829  remembered_set_action,
1830  smi_check,
1831  pointers_to_here_check_for_value);
1832  }

References v8::internal::kHeapObjectTag, and RecordWriteField().

+ Here is the call graph for this function:

◆ RecordWriteContextSlot() [3/7]

void v8::internal::MacroAssembler::RecordWriteContextSlot ( Register  context,
int  offset,
Register  value,
Register  scratch,
RAStatus  ra_status,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)
inline

Definition at line 385 of file macro-assembler-mips.h.

395  {
396  RecordWriteField(context,
397  offset + kHeapObjectTag,
398  value,
399  scratch,
400  ra_status,
401  save_fp,
402  remembered_set_action,
403  smi_check,
404  pointers_to_here_check_for_value);
405  }

References v8::internal::kHeapObjectTag, and RecordWriteField().

+ Here is the call graph for this function:

◆ RecordWriteContextSlot() [4/7]

void v8::internal::MacroAssembler::RecordWriteContextSlot ( Register  context,
int  offset,
Register  value,
Register  scratch,
RAStatus  ra_status,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)
inline

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

416  {
417  RecordWriteField(context,
418  offset + kHeapObjectTag,
419  value,
420  scratch,
421  ra_status,
422  save_fp,
423  remembered_set_action,
424  smi_check,
425  pointers_to_here_check_for_value);
426  }

References v8::internal::kHeapObjectTag, and RecordWriteField().

+ Here is the call graph for this function:

◆ RecordWriteContextSlot() [5/7]

void v8::internal::MacroAssembler::RecordWriteContextSlot ( Register  context,
int  offset,
Register  value,
Register  scratch,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)
inline

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

172  {
173  RecordWriteField(context,
174  offset + kHeapObjectTag,
175  value,
176  scratch,
177  save_fp,
178  remembered_set_action,
179  smi_check,
180  pointers_to_here_check_for_value);
181  }

References v8::internal::kHeapObjectTag, and RecordWriteField().

+ Here is the call graph for this function:

◆ RecordWriteContextSlot() [6/7]

void v8::internal::MacroAssembler::RecordWriteContextSlot ( Register  context,
int  offset,
Register  value,
Register  scratch,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)
inline

Definition at line 243 of file macro-assembler-x64.h.

252  {
253  RecordWriteField(context,
254  offset + kHeapObjectTag,
255  value,
256  scratch,
257  save_fp,
258  remembered_set_action,
259  smi_check,
260  pointers_to_here_check_for_value);
261  }

References v8::internal::kHeapObjectTag, and RecordWriteField().

+ Here is the call graph for this function:

◆ RecordWriteContextSlot() [7/7]

void v8::internal::MacroAssembler::RecordWriteContextSlot ( Register  context,
int  offset,
Register  value,
Register  scratch,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)
inline

Definition at line 159 of file macro-assembler-x87.h.

165  {
166  RecordWriteField(context, offset + kHeapObjectTag, value, scratch, save_fp,
167  remembered_set_action, smi_check,
168  pointers_to_here_check_for_value);
169  }

References v8::internal::kHeapObjectTag, and RecordWriteField().

+ Here is the call graph for this function:

◆ RecordWriteField() [1/7]

void v8::internal::MacroAssembler::RecordWriteField ( Register  object,
int  offset,
Register  value,
Register  scratch,
LinkRegisterStatus  lr_status,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)

Referenced by RecordWriteContextSlot().

+ Here is the caller graph for this function:

◆ RecordWriteField() [2/7]

void v8::internal::MacroAssembler::RecordWriteField ( Register  object,
int  offset,
Register  value,
Register  scratch,
LinkRegisterStatus  lr_status,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)

◆ RecordWriteField() [3/7]

void v8::internal::MacroAssembler::RecordWriteField ( Register  object,
int  offset,
Register  value,
Register  scratch,
RAStatus  ra_status,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)

◆ RecordWriteField() [4/7]

void v8::internal::MacroAssembler::RecordWriteField ( Register  object,
int  offset,
Register  value,
Register  scratch,
RAStatus  ra_status,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)

◆ RecordWriteField() [5/7]

void v8::internal::MacroAssembler::RecordWriteField ( Register  object,
int  offset,
Register  value,
Register  scratch,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)

◆ RecordWriteField() [6/7]

void v8::internal::MacroAssembler::RecordWriteField ( Register  object,
int  offset,
Register  value,
Register  scratch,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)

◆ RecordWriteField() [7/7]

void v8::internal::MacroAssembler::RecordWriteField ( Register  object,
int  offset,
Register  value,
Register  scratch,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK,
PointersToHereCheck  pointers_to_here_check_for_value = kPointersToHereMaybeInteresting 
)

◆ RecordWriteForMap() [1/7]

void v8::internal::MacroAssembler::RecordWriteForMap ( Register  object,
Handle< Map map,
Register  scratch1,
Register  scratch2,
SaveFPRegsMode  save_fp 
)

◆ RecordWriteForMap() [2/7]

void v8::internal::MacroAssembler::RecordWriteForMap ( Register  object,
Handle< Map map,
Register  scratch1,
Register  scratch2,
SaveFPRegsMode  save_fp 
)

◆ RecordWriteForMap() [3/7]

void v8::internal::MacroAssembler::RecordWriteForMap ( Register  object,
Register  map,
Register  dst,
LinkRegisterStatus  lr_status,
SaveFPRegsMode  save_fp 
)

◆ RecordWriteForMap() [4/7]

void v8::internal::MacroAssembler::RecordWriteForMap ( Register  object,
Register  map,
Register  dst,
LinkRegisterStatus  lr_status,
SaveFPRegsMode  save_fp 
)

◆ RecordWriteForMap() [5/7]

void v8::internal::MacroAssembler::RecordWriteForMap ( Register  object,
Register  map,
Register  dst,
RAStatus  ra_status,
SaveFPRegsMode  save_fp 
)

◆ RecordWriteForMap() [6/7]

void v8::internal::MacroAssembler::RecordWriteForMap ( Register  object,
Register  map,
Register  dst,
RAStatus  ra_status,
SaveFPRegsMode  save_fp 
)

◆ RecordWriteForMap() [7/7]

void v8::internal::MacroAssembler::RecordWriteForMap ( Register  object,
Register  map,
Register  dst,
SaveFPRegsMode  save_fp 
)

◆ RememberedSetHelper() [1/7]

void v8::internal::MacroAssembler::RememberedSetHelper ( Register  object,
Register  addr,
Register  scratch,
SaveFPRegsMode  save_fp,
RememberedSetFinalAction  and_then 
)

◆ RememberedSetHelper() [2/7]

void v8::internal::MacroAssembler::RememberedSetHelper ( Register  object,
Register  addr,
Register  scratch,
SaveFPRegsMode  save_fp,
RememberedSetFinalAction  and_then 
)

◆ RememberedSetHelper() [3/7]

void v8::internal::MacroAssembler::RememberedSetHelper ( Register  object,
Register  addr,
Register  scratch,
SaveFPRegsMode  save_fp,
RememberedSetFinalAction  and_then 
)

◆ RememberedSetHelper() [4/7]

void v8::internal::MacroAssembler::RememberedSetHelper ( Register  object,
Register  addr,
Register  scratch,
SaveFPRegsMode  save_fp,
RememberedSetFinalAction  and_then 
)

◆ RememberedSetHelper() [5/7]

void v8::internal::MacroAssembler::RememberedSetHelper ( Register  object,
Register  addr,
Register  scratch,
SaveFPRegsMode  save_fp,
RememberedSetFinalAction  and_then 
)

◆ RememberedSetHelper() [6/7]

void v8::internal::MacroAssembler::RememberedSetHelper ( Register  object,
Register  addr,
Register  scratch,
SaveFPRegsMode  save_fp,
RememberedSetFinalAction  and_then 
)

◆ RememberedSetHelper() [7/7]

void v8::internal::MacroAssembler::RememberedSetHelper ( Register  object,
Register  addr,
Register  scratch1,
SaveFPRegsMode  save_fp,
RememberedSetFinalAction  and_then 
)

◆ ResolveBuiltin() [1/2]

Handle<Code> v8::internal::MacroAssembler::ResolveBuiltin ( Builtins::JavaScript  id,
bool resolved 
)
private

◆ ResolveBuiltin() [2/2]

Handle<Code> v8::internal::MacroAssembler::ResolveBuiltin ( Builtins::JavaScript  id,
bool resolved 
)
private

◆ RestoreFPRegs()

void v8::internal::MacroAssembler::RestoreFPRegs ( Register  location,
Register  scratch 
)

Referenced by v8::internal::RecordWriteStub::RegisterAllocation::RestoreCallerSaveRegisters().

+ Here is the caller graph for this function:

◆ Ret() [1/13]

void v8::internal::MacroAssembler::Ret ( )

Referenced by Ret(), RetOnNoOverflow(), and RetOnOverflow().

+ Here is the caller graph for this function:

◆ Ret() [2/13]

void v8::internal::MacroAssembler::Ret ( )

◆ Ret() [3/13]

void v8::internal::MacroAssembler::Ret ( )

◆ Ret() [4/13]

void v8::internal::MacroAssembler::Ret ( BranchDelaySlot  bd,
Condition  cond = al,
Register  rs = zero_reg,
const Operand rt = Operand(zero_reg) 
)
inline

Definition at line 188 of file macro-assembler-mips.h.

189  {
190  Ret(cond, rs, rt, bd);
191  }

References Ret().

+ Here is the call graph for this function:

◆ Ret() [5/13]

void v8::internal::MacroAssembler::Ret ( BranchDelaySlot  bd,
Condition  cond = al,
Register  rs = zero_reg,
const Operand rt = Operand(zero_reg) 
)
inline

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

210  {
211  Ret(cond, rs, rt, bd);
212  }

References Ret().

+ Here is the call graph for this function:

◆ Ret() [6/13]

void v8::internal::MacroAssembler::Ret ( COND_ARGS  )

◆ Ret() [7/13]

void v8::internal::MacroAssembler::Ret ( COND_ARGS  )

◆ Ret() [8/13]

void v8::internal::MacroAssembler::Ret ( Condition  cond = al)

◆ Ret() [9/13]

void v8::internal::MacroAssembler::Ret ( const Register xn = lr)
inline

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

1001  {
1002  DCHECK(allow_macro_instructions_);
1003  DCHECK(!xn.IsZero());
1004  ret(xn);
1005  CheckVeneerPool(false, false);
1006 }
void ret(const Register &xn=lr)

References v8::internal::Assembler::CheckVeneerPool(), DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::ret().

+ Here is the call graph for this function:

◆ Ret() [10/13]

void v8::internal::MacroAssembler::Ret ( int  bytes_dropped,
Register  scratch 
)

◆ Ret() [11/13]

void v8::internal::MacroAssembler::Ret ( int  bytes_dropped,
Register  scratch 
)

◆ Ret() [12/13]

void v8::internal::MacroAssembler::Ret ( int  bytes_dropped,
Register  scratch 
)

◆ Ret() [13/13]

void v8::internal::MacroAssembler::Ret ( int  drop,
Condition  cond = al 
)

◆ RetOnNoOverflow() [1/2]

void v8::internal::MacroAssembler::RetOnNoOverflow ( Register  overflow_check,
BranchDelaySlot  bd = PROTECT 
)
inline

Definition at line 1178 of file macro-assembler-mips.h.

1178  {
1179  Ret(ge, overflow_check, Operand(zero_reg), bd);
1180  }

References v8::internal::ge, and Ret().

+ Here is the call graph for this function:

◆ RetOnNoOverflow() [2/2]

void v8::internal::MacroAssembler::RetOnNoOverflow ( Register  overflow_check,
BranchDelaySlot  bd = PROTECT 
)
inline

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

1193  {
1194  Ret(ge, overflow_check, Operand(zero_reg), bd);
1195  }

References v8::internal::ge, and Ret().

+ Here is the call graph for this function:

◆ RetOnOverflow() [1/2]

void v8::internal::MacroAssembler::RetOnOverflow ( Register  overflow_check,
BranchDelaySlot  bd = PROTECT 
)
inline

Definition at line 1174 of file macro-assembler-mips.h.

1174  {
1175  Ret(lt, overflow_check, Operand(zero_reg), bd);
1176  }

References v8::internal::lt, and Ret().

+ Here is the call graph for this function:

◆ RetOnOverflow() [2/2]

void v8::internal::MacroAssembler::RetOnOverflow ( Register  overflow_check,
BranchDelaySlot  bd = PROTECT 
)
inline

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

1189  {
1190  Ret(lt, overflow_check, Operand(zero_reg), bd);
1191  }

References v8::internal::lt, and Ret().

+ Here is the call graph for this function:

◆ Rev()

void v8::internal::MacroAssembler::Rev ( const Register rd,
const Register rn 
)
inline

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

1009  {
1010  DCHECK(allow_macro_instructions_);
1011  DCHECK(!rd.IsZero());
1012  rev(rd, rn);
1013 }
void rev(const Register &rd, const Register &rn)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::rev().

+ Here is the call graph for this function:

◆ Rev16()

void v8::internal::MacroAssembler::Rev16 ( const Register rd,
const Register rn 
)
inline

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

1016  {
1017  DCHECK(allow_macro_instructions_);
1018  DCHECK(!rd.IsZero());
1019  rev16(rd, rn);
1020 }
void rev16(const Register &rd, const Register &rn)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::rev16().

+ Here is the call graph for this function:

◆ Rev32()

void v8::internal::MacroAssembler::Rev32 ( const Register rd,
const Register rn 
)
inline

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

1023  {
1024  DCHECK(allow_macro_instructions_);
1025  DCHECK(!rd.IsZero());
1026  rev32(rd, rn);
1027 }
void rev32(const Register &rd, const Register &rn)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::rev32().

+ Here is the call graph for this function:

◆ RootRegisterDelta()

int64_t v8::internal::MacroAssembler::RootRegisterDelta ( ExternalReference  other)
private

◆ Ror() [1/2]

void v8::internal::MacroAssembler::Ror ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

1041  {
1042  DCHECK(allow_macro_instructions_);
1043  DCHECK(!rd.IsZero());
1044  rorv(rd, rn, rm);
1045 }
void rorv(const Register &rd, const Register &rn, const Register &rm)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::rorv().

+ Here is the call graph for this function:

◆ Ror() [2/2]

void v8::internal::MacroAssembler::Ror ( const Register rd,
const Register rs,
unsigned  shift 
)
inline

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

1032  {
1033  DCHECK(allow_macro_instructions_);
1034  DCHECK(!rd.IsZero());
1035  ror(rd, rs, shift);
1036 }
void ror(const Register &rd, const Register &rs, unsigned shift)

References DCHECK, v8::internal::CPURegister::IsZero(), v8::internal::Assembler::ror(), and v8::internal::Assembler::shift().

+ Here is the call graph for this function:

◆ Round_l_d()

void v8::internal::MacroAssembler::Round_l_d ( FPURegister  fd,
FPURegister  fs 
)

◆ Round_w_d() [1/2]

void v8::internal::MacroAssembler::Round_w_d ( FPURegister  fd,
FPURegister  fs 
)

◆ Round_w_d() [2/2]

void v8::internal::MacroAssembler::Round_w_d ( FPURegister  fd,
FPURegister  fs 
)

◆ SafeMove() [1/3]

void v8::internal::MacroAssembler::SafeMove ( Register  dst,
const Immediate x 
)

◆ SafeMove() [2/3]

void v8::internal::MacroAssembler::SafeMove ( Register  dst,
const Immediate x 
)

◆ SafeMove() [3/3]

void v8::internal::MacroAssembler::SafeMove ( Register  dst,
Smi src 
)

◆ SafepointRegistersAndDoublesSlot() [1/3]

MemOperand v8::internal::MacroAssembler::SafepointRegistersAndDoublesSlot ( Register  reg)
private

◆ SafepointRegistersAndDoublesSlot() [2/3]

MemOperand v8::internal::MacroAssembler::SafepointRegistersAndDoublesSlot ( Register  reg)
private

◆ SafepointRegistersAndDoublesSlot() [3/3]

MemOperand v8::internal::MacroAssembler::SafepointRegistersAndDoublesSlot ( Register  reg)
private

◆ SafepointRegisterSlot() [1/6]

MemOperand v8::internal::MacroAssembler::SafepointRegisterSlot ( Register  reg)
private

◆ SafepointRegisterSlot() [2/6]

Operand v8::internal::MacroAssembler::SafepointRegisterSlot ( Register  reg)
private

◆ SafepointRegisterSlot() [3/6]

MemOperand v8::internal::MacroAssembler::SafepointRegisterSlot ( Register  reg)
private

◆ SafepointRegisterSlot() [4/6]

MemOperand v8::internal::MacroAssembler::SafepointRegisterSlot ( Register  reg)
private

◆ SafepointRegisterSlot() [5/6]

Operand v8::internal::MacroAssembler::SafepointRegisterSlot ( Register  reg)
private

◆ SafepointRegisterSlot() [6/6]

Operand v8::internal::MacroAssembler::SafepointRegisterSlot ( Register  reg)
private

◆ SafepointRegisterStackIndex() [1/10]

static int v8::internal::MacroAssembler::SafepointRegisterStackIndex ( int  reg_code)
staticprivate

Referenced by v8::internal::StandardFrame::IterateCompiledFrame(), LoadFromSafepointRegisterSlot(), SafepointRegisterStackIndex(), and StoreToSafepointRegisterSlot().

+ Here is the caller graph for this function:

◆ SafepointRegisterStackIndex() [2/10]

static int v8::internal::MacroAssembler::SafepointRegisterStackIndex ( int  reg_code)
static

◆ SafepointRegisterStackIndex() [3/10]

static int v8::internal::MacroAssembler::SafepointRegisterStackIndex ( int  reg_code)
staticprivate

◆ SafepointRegisterStackIndex() [4/10]

static int v8::internal::MacroAssembler::SafepointRegisterStackIndex ( int  reg_code)
staticprivate

◆ SafepointRegisterStackIndex() [5/10]

static int v8::internal::MacroAssembler::SafepointRegisterStackIndex ( int  reg_code)
staticprivate

◆ SafepointRegisterStackIndex() [6/10]

static int v8::internal::MacroAssembler::SafepointRegisterStackIndex ( int  reg_code)
inlinestaticprivate

Definition at line 1554 of file macro-assembler-x64.h.

1554  {
1556  }
static const int kSafepointPushRegisterIndices[Register::kNumRegisters]
const int kNumSafepointRegisters
Definition: frames-arm.h:67

References v8::internal::kNumSafepointRegisters, and kSafepointPushRegisterIndices.

◆ SafepointRegisterStackIndex() [7/10]

static int v8::internal::MacroAssembler::SafepointRegisterStackIndex ( int  reg_code)
staticprivate

◆ SafepointRegisterStackIndex() [8/10]

static int v8::internal::MacroAssembler::SafepointRegisterStackIndex ( Register  reg)
inlinestatic

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

933  {
934  return SafepointRegisterStackIndex(reg.code());
935  }

References v8::internal::Register::code(), and SafepointRegisterStackIndex().

+ Here is the call graph for this function:

◆ SafepointRegisterStackIndex() [9/10]

static int v8::internal::MacroAssembler::SafepointRegisterStackIndex ( Register  reg)
inlinestatic

Definition at line 1435 of file macro-assembler-x64.h.

1435  {
1436  return SafepointRegisterStackIndex(reg.code());
1437  }

References v8::internal::Register::code(), and SafepointRegisterStackIndex().

+ Here is the call graph for this function:

◆ SafepointRegisterStackIndex() [10/10]

static int v8::internal::MacroAssembler::SafepointRegisterStackIndex ( Register  reg)
inlinestatic

Definition at line 900 of file macro-assembler-x87.h.

900  {
901  return SafepointRegisterStackIndex(reg.code());
902  }

References v8::internal::Register::code(), and SafepointRegisterStackIndex().

+ Here is the call graph for this function:

◆ SafePush() [1/3]

void v8::internal::MacroAssembler::SafePush ( const Immediate x)

◆ SafePush() [2/3]

void v8::internal::MacroAssembler::SafePush ( const Immediate x)

◆ SafePush() [3/3]

void v8::internal::MacroAssembler::SafePush ( Smi src)

◆ SaveFPRegs()

void v8::internal::MacroAssembler::SaveFPRegs ( Register  location,
Register  scratch 
)

Referenced by v8::internal::RecordWriteStub::RegisterAllocation::SaveCallerSaveRegisters().

+ Here is the caller graph for this function:

◆ Sbc()

void v8::internal::MacroAssembler::Sbc ( const Register rd,
const Register rn,
const Operand operand 
)
inline

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

253  {
254  DCHECK(allow_macro_instructions_);
255  DCHECK(!rd.IsZero());
256  AddSubWithCarryMacro(rd, rn, operand, LeaveFlags, SBC);
257 }

References AddSubWithCarryMacro(), DCHECK, v8::internal::CPURegister::IsZero(), v8::internal::LeaveFlags, and v8::internal::SBC.

Referenced by Ngc().

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

◆ Sbcs()

void v8::internal::MacroAssembler::Sbcs ( const Register rd,
const Register rn,
const Operand operand 
)
inline

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

262  {
263  DCHECK(allow_macro_instructions_);
264  DCHECK(!rd.IsZero());
265  AddSubWithCarryMacro(rd, rn, operand, SetFlags, SBC);
266 }

References AddSubWithCarryMacro(), DCHECK, v8::internal::CPURegister::IsZero(), v8::internal::SBC, and v8::internal::SetFlags.

Referenced by Ngcs().

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

◆ Sbfiz()

void v8::internal::MacroAssembler::Sbfiz ( const Register rd,
const Register rn,
unsigned  lsb,
unsigned  width 
)
inline

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

1051  {
1052  DCHECK(allow_macro_instructions_);
1053  DCHECK(!rd.IsZero());
1054  sbfiz(rd, rn, lsb, width);
1055 }
void sbfiz(const Register &rd, const Register &rn, unsigned lsb, unsigned width)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::sbfiz().

+ Here is the call graph for this function:

◆ Sbfx() [1/2]

void v8::internal::MacroAssembler::Sbfx ( const Register rd,
const Register rn,
unsigned  lsb,
unsigned  width 
)
inline

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

1061  {
1062  DCHECK(allow_macro_instructions_);
1063  DCHECK(!rd.IsZero());
1064  sbfx(rd, rn, lsb, width);
1065 }
void sbfx(Register dst, Register src, int lsb, int width, Condition cond=al)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::sbfx().

+ Here is the call graph for this function:

◆ Sbfx() [2/2]

void v8::internal::MacroAssembler::Sbfx ( Register  dst,
Register  src,
int  lsb,
int  width,
Condition  cond = al 
)

◆ Scvtf()

void v8::internal::MacroAssembler::Scvtf ( const FPRegister fd,
const Register rn,
unsigned  fbits = 0 
)
inline

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

1070  {
1071  DCHECK(allow_macro_instructions_);
1072  scvtf(fd, rn, fbits);
1073 }
void scvtf(const FPRegister &fd, const Register &rn, unsigned fbits=0)

References DCHECK, and v8::internal::Assembler::scvtf().

Referenced by SmiUntagToDouble(), and SmiUntagToFloat().

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

◆ Sdiv()

void v8::internal::MacroAssembler::Sdiv ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

1078  {
1079  DCHECK(allow_macro_instructions_);
1080  DCHECK(!rd.IsZero());
1081  sdiv(rd, rn, rm);
1082 }
void sdiv(Register dst, Register src1, Register src2, Condition cond=al)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::sdiv().

+ Here is the call graph for this function:

◆ SelectNonSmi()

void v8::internal::MacroAssembler::SelectNonSmi ( Register  dst,
Register  src1,
Register  src2,
Label *  on_not_smis,
Label::Distance  near_jump = Label::kFar 
)

◆ Set() [1/2]

void v8::internal::MacroAssembler::Set ( const Operand dst,
intptr_t  x 
)

◆ Set() [2/2]

void v8::internal::MacroAssembler::Set ( Register  dst,
int64_t  x 
)

◆ set_generating_stub() [1/7]

void v8::internal::MacroAssembler::set_generating_stub ( bool  value)
inline

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

1179 { generating_stub_ = value; }

References generating_stub_.

Referenced by v8::internal::PlatformCodeStub::GenerateCode(), and v8::internal::HydrogenCodeStub::GenerateLightweightMissCode().

+ Here is the caller graph for this function:

◆ set_generating_stub() [2/7]

void v8::internal::MacroAssembler::set_generating_stub ( bool  value)
inline

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

1273 { generating_stub_ = value; }

References generating_stub_.

◆ set_generating_stub() [3/7]

void v8::internal::MacroAssembler::set_generating_stub ( bool  value)
inline

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

886 { generating_stub_ = value; }

References generating_stub_.

◆ set_generating_stub() [4/7]

void v8::internal::MacroAssembler::set_generating_stub ( bool  value)
inline

Definition at line 1354 of file macro-assembler-mips.h.

1354 { generating_stub_ = value; }

References generating_stub_.

◆ set_generating_stub() [5/7]

void v8::internal::MacroAssembler::set_generating_stub ( bool  value)
inline

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

1372 { generating_stub_ = value; }

References generating_stub_.

◆ set_generating_stub() [6/7]

void v8::internal::MacroAssembler::set_generating_stub ( bool  value)
inline

Definition at line 1429 of file macro-assembler-x64.h.

1429 { generating_stub_ = value; }

References generating_stub_.

◆ set_generating_stub() [7/7]

void v8::internal::MacroAssembler::set_generating_stub ( bool  value)
inline

Definition at line 853 of file macro-assembler-x87.h.

853 { generating_stub_ = value; }

References generating_stub_.

◆ set_has_frame() [1/7]

void v8::internal::MacroAssembler::set_has_frame ( bool  value)
inline

◆ set_has_frame() [2/7]

void v8::internal::MacroAssembler::set_has_frame ( bool  value)
inline

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

1282 { has_frame_ = value; }

References has_frame_.

◆ set_has_frame() [3/7]

void v8::internal::MacroAssembler::set_has_frame ( bool  value)
inline

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

888 { has_frame_ = value; }

References has_frame_.

◆ set_has_frame() [4/7]

void v8::internal::MacroAssembler::set_has_frame ( bool  value)
inline

Definition at line 1356 of file macro-assembler-mips.h.

1356 { has_frame_ = value; }

References has_frame_.

◆ set_has_frame() [5/7]

void v8::internal::MacroAssembler::set_has_frame ( bool  value)
inline

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

1374 { has_frame_ = value; }

References has_frame_.

◆ set_has_frame() [6/7]

void v8::internal::MacroAssembler::set_has_frame ( bool  value)
inline

Definition at line 1431 of file macro-assembler-x64.h.

1431 { has_frame_ = value; }

References has_frame_.

◆ set_has_frame() [7/7]

void v8::internal::MacroAssembler::set_has_frame ( bool  value)
inline

Definition at line 855 of file macro-assembler-x87.h.

855 { has_frame_ = value; }

References has_frame_.

◆ SetCounter() [1/7]

void v8::internal::MacroAssembler::SetCounter ( StatsCounter counter,
int  value 
)

◆ SetCounter() [2/7]

void v8::internal::MacroAssembler::SetCounter ( StatsCounter counter,
int  value 
)

◆ SetCounter() [3/7]

void v8::internal::MacroAssembler::SetCounter ( StatsCounter counter,
int  value 
)

◆ SetCounter() [4/7]

void v8::internal::MacroAssembler::SetCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)

◆ SetCounter() [5/7]

void v8::internal::MacroAssembler::SetCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)

◆ SetCounter() [6/7]

void v8::internal::MacroAssembler::SetCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)

◆ SetCounter() [7/7]

void v8::internal::MacroAssembler::SetCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)

◆ SetStackPointer()

void v8::internal::MacroAssembler::SetStackPointer ( const Register stack_pointer)
inline

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

797  {
798  DCHECK(!TmpList()->IncludesAliasOf(stack_pointer));
799  sp_ = stack_pointer;
800  }

References DCHECK, sp_, and TmpList().

Referenced by AlignAndSetCSPForFrame().

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

◆ SlowTruncateToI() [1/3]

void v8::internal::MacroAssembler::SlowTruncateToI ( Register  result_reg,
Register  input_reg,
int  offset = HeapNumber::kValueOffset - kHeapObjectTag 
)

◆ SlowTruncateToI() [2/3]

void v8::internal::MacroAssembler::SlowTruncateToI ( Register  result_reg,
Register  input_reg,
int  offset = HeapNumber::kValueOffset - kHeapObjectTag 
)

◆ SlowTruncateToI() [3/3]

void v8::internal::MacroAssembler::SlowTruncateToI ( Register  result_reg,
Register  input_reg,
int  offset = HeapNumber::kValueOffset - kHeapObjectTag 
)

◆ Smaddl()

void v8::internal::MacroAssembler::Smaddl ( const Register rd,
const Register rn,
const Register rm,
const Register ra 
)
inline

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

1088  {
1089  DCHECK(allow_macro_instructions_);
1090  DCHECK(!rd.IsZero());
1091  smaddl(rd, rn, rm, ra);
1092 }
void smaddl(const Register &rd, const Register &rn, const Register &rm, const Register &ra)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::smaddl().

+ Here is the call graph for this function:

◆ SmiAdd() [1/3]

void v8::internal::MacroAssembler::SmiAdd ( Register  dst,
Register  src1,
const Operand src2,
Label *  on_not_smi_result,
Label::Distance  near_jump = Label::kFar 
)

◆ SmiAdd() [2/3]

void v8::internal::MacroAssembler::SmiAdd ( Register  dst,
Register  src1,
Register  src2 
)

◆ SmiAdd() [3/3]

void v8::internal::MacroAssembler::SmiAdd ( Register  dst,
Register  src1,
Register  src2,
Label *  on_not_smi_result,
Label::Distance  near_jump = Label::kFar 
)

◆ SmiAddConstant() [1/3]

void v8::internal::MacroAssembler::SmiAddConstant ( const Operand dst,
Smi constant 
)

◆ SmiAddConstant() [2/3]

void v8::internal::MacroAssembler::SmiAddConstant ( Register  dst,
Register  src,
Smi constant 
)

◆ SmiAddConstant() [3/3]

void v8::internal::MacroAssembler::SmiAddConstant ( Register  dst,
Register  src,
Smi constant,
SmiOperationExecutionMode  mode,
Label *  bailout_label,
Label::Distance  near_jump = Label::kFar 
)

◆ SmiAnd()

void v8::internal::MacroAssembler::SmiAnd ( Register  dst,
Register  src1,
Register  src2 
)

◆ SmiAndConstant()

void v8::internal::MacroAssembler::SmiAndConstant ( Register  dst,
Register  src1,
Smi constant 
)

◆ SmiCompare() [1/5]

void v8::internal::MacroAssembler::SmiCompare ( const Operand dst,
Register  src 
)

◆ SmiCompare() [2/5]

void v8::internal::MacroAssembler::SmiCompare ( const Operand dst,
Smi src 
)

◆ SmiCompare() [3/5]

void v8::internal::MacroAssembler::SmiCompare ( Register  dst,
const Operand src 
)

◆ SmiCompare() [4/5]

void v8::internal::MacroAssembler::SmiCompare ( Register  dst,
Smi src 
)

◆ SmiCompare() [5/5]

void v8::internal::MacroAssembler::SmiCompare ( Register  smi1,
Register  smi2 
)

◆ SmiCompareInteger32()

void v8::internal::MacroAssembler::SmiCompareInteger32 ( const Operand dst,
Register  src 
)

◆ SmiDiv()

void v8::internal::MacroAssembler::SmiDiv ( Register  dst,
Register  src1,
Register  src2,
Label *  on_not_smi_result,
Label::Distance  near_jump = Label::kFar 
)

◆ SmiLoadScale()

void v8::internal::MacroAssembler::SmiLoadScale ( Register  dst,
MemOperand  src,
int  scale 
)

◆ SmiLoadUntag()

void v8::internal::MacroAssembler::SmiLoadUntag ( Register  dst,
MemOperand  src 
)

◆ SmiLoadUntagWithScale()

void v8::internal::MacroAssembler::SmiLoadUntagWithScale ( Register  d_int,
Register  d_scaled,
MemOperand  src,
int  scale 
)

◆ SmiLoadWithScale()

void v8::internal::MacroAssembler::SmiLoadWithScale ( Register  d_smi,
Register  d_scaled,
MemOperand  src,
int  scale 
)

◆ SmiMod()

void v8::internal::MacroAssembler::SmiMod ( Register  dst,
Register  src1,
Register  src2,
Label *  on_not_smi_result,
Label::Distance  near_jump = Label::kFar 
)

◆ SmiMul()

void v8::internal::MacroAssembler::SmiMul ( Register  dst,
Register  src1,
Register  src2,
Label *  on_not_smi_result,
Label::Distance  near_jump = Label::kFar 
)

◆ SmiNeg()

void v8::internal::MacroAssembler::SmiNeg ( Register  dst,
Register  src,
Label *  on_smi_result,
Label::Distance  near_jump = Label::kFar 
)

◆ SmiNot()

void v8::internal::MacroAssembler::SmiNot ( Register  dst,
Register  src 
)

◆ SmiOr()

void v8::internal::MacroAssembler::SmiOr ( Register  dst,
Register  src1,
Register  src2 
)

◆ SmiOrConstant()

void v8::internal::MacroAssembler::SmiOrConstant ( Register  dst,
Register  src1,
Smi constant 
)

◆ SmiOrIfSmis()

void v8::internal::MacroAssembler::SmiOrIfSmis ( Register  dst,
Register  src1,
Register  src2,
Label *  on_not_smis,
Label::Distance  near_jump = Label::kFar 
)

◆ SmiScale()

void v8::internal::MacroAssembler::SmiScale ( Register  dst,
Register  src,
int  scale 
)
inline

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

1444  {
1445  if (SmiValuesAre32Bits()) {
1446  // The int portion is upper 32-bits of 64-bit word.
1447  dsra(dst, src, kSmiShift - scale);
1448  } else {
1449  DCHECK(scale >= kSmiTagSize);
1450  sll(dst, src, scale - kSmiTagSize);
1451  }
1452  }
void dsra(Register rt, Register rd, uint16_t sa)

References DCHECK, v8::internal::Assembler::dsra(), kSmiShift, v8::internal::kSmiTagSize, v8::internal::Assembler::sll(), and v8::internal::SmiValuesAre32Bits().

+ Here is the call graph for this function:

◆ SmiShiftArithmeticRight()

void v8::internal::MacroAssembler::SmiShiftArithmeticRight ( Register  dst,
Register  src1,
Register  src2 
)

◆ SmiShiftArithmeticRightConstant()

void v8::internal::MacroAssembler::SmiShiftArithmeticRightConstant ( Register  dst,
Register  src,
int  shift_value 
)

◆ SmiShiftLeft()

void v8::internal::MacroAssembler::SmiShiftLeft ( Register  dst,
Register  src1,
Register  src2,
Label *  on_not_smi_result = NULL,
Label::Distance  near_jump = Label::kFar 
)

◆ SmiShiftLeftConstant()

void v8::internal::MacroAssembler::SmiShiftLeftConstant ( Register  dst,
Register  src,
int  shift_value,
Label *  on_not_smi_result = NULL,
Label::Distance  near_jump = Label::kFar 
)

◆ SmiShiftLogicalRight()

void v8::internal::MacroAssembler::SmiShiftLogicalRight ( Register  dst,
Register  src1,
Register  src2,
Label *  on_not_smi_result,
Label::Distance  near_jump = Label::kFar 
)

◆ SmiShiftLogicalRightConstant()

void v8::internal::MacroAssembler::SmiShiftLogicalRightConstant ( Register  dst,
Register  src,
int  shift_value,
Label *  on_not_smi_result,
Label::Distance  near_jump = Label::kFar 
)

◆ SmiSub() [1/4]

void v8::internal::MacroAssembler::SmiSub ( Register  dst,
Register  src1,
const Operand src2 
)

◆ SmiSub() [2/4]

void v8::internal::MacroAssembler::SmiSub ( Register  dst,
Register  src1,
const Operand src2,
Label *  on_not_smi_result,
Label::Distance  near_jump = Label::kFar 
)

◆ SmiSub() [3/4]

void v8::internal::MacroAssembler::SmiSub ( Register  dst,
Register  src1,
Register  src2 
)

◆ SmiSub() [4/4]

void v8::internal::MacroAssembler::SmiSub ( Register  dst,
Register  src1,
Register  src2,
Label *  on_not_smi_result,
Label::Distance  near_jump = Label::kFar 
)

◆ SmiSubConstant() [1/2]

void v8::internal::MacroAssembler::SmiSubConstant ( Register  dst,
Register  src,
Smi constant 
)

◆ SmiSubConstant() [2/2]

void v8::internal::MacroAssembler::SmiSubConstant ( Register  dst,
Register  src,
Smi constant,
SmiOperationExecutionMode  mode,
Label *  bailout_label,
Label::Distance  near_jump = Label::kFar 
)

◆ SmiTag() [1/10]

void v8::internal::MacroAssembler::SmiTag ( Register  dst,
Register  src 
)
inline

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

1294  {
1296  static_cast<unsigned>(kSmiShift + kSmiValueSize));
1297  DCHECK(dst.Is64Bits() && src.Is64Bits());
1298  Lsl(dst, src, kSmiShift);
1299 }
void Lsl(const Register &rd, const Register &rn, unsigned shift)
const int kSmiValueSize
Definition: v8.h:5806

References DCHECK, v8::internal::CPURegister::Is64Bits(), kSmiShift, v8::internal::kSmiValueSize, v8::internal::kXRegSizeInBits, Lsl(), and STATIC_ASSERT().

+ Here is the call graph for this function:

◆ SmiTag() [2/10]

void v8::internal::MacroAssembler::SmiTag ( Register  dst,
Register  src 
)
inline

Definition at line 1382 of file macro-assembler-mips.h.

1382  {
1383  Addu(dst, src, src);
1384  }

◆ SmiTag() [3/10]

void v8::internal::MacroAssembler::SmiTag ( Register  dst,
Register  src 
)
inline

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

1396  {
1397  STATIC_ASSERT(kSmiTag == 0);
1398  if (SmiValuesAre32Bits()) {
1399  STATIC_ASSERT(kSmiShift == 32);
1400  dsll32(dst, src, 0);
1401  } else {
1402  Addu(dst, src, src);
1403  }
1404  }

References v8::internal::Assembler::dsll32(), kSmiShift, v8::internal::kSmiTag, v8::internal::SmiValuesAre32Bits(), and STATIC_ASSERT().

+ Here is the call graph for this function:

◆ SmiTag() [4/10]

void v8::internal::MacroAssembler::SmiTag ( Register  dst,
Register  src,
SBit  s = LeaveCC 
)
inline

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

1223  {
1224  add(dst, src, Operand(src), s);
1225  }
void add(Register dst, Register src1, const Operand &src2, SBit s=LeaveCC, Condition cond=al)

References v8::internal::Assembler::add().

+ Here is the call graph for this function:

◆ SmiTag() [5/10]

void v8::internal::MacroAssembler::SmiTag ( Register  reg)
inline

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

472  {
473  STATIC_ASSERT(kSmiTag == 0);
475  add(reg, reg);
476  }

References v8::internal::Assembler::add(), v8::internal::kSmiTag, v8::internal::kSmiTagSize, and STATIC_ASSERT().

+ Here is the call graph for this function:

◆ SmiTag() [6/10]

void v8::internal::MacroAssembler::SmiTag ( Register  reg)
inline

Definition at line 1374 of file macro-assembler-mips.h.

1374  {
1375  Addu(reg, reg, reg);
1376  }

◆ SmiTag() [7/10]

void v8::internal::MacroAssembler::SmiTag ( Register  reg)
inline

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

1406  {
1407  SmiTag(reg, reg);
1408  }
void SmiTag(Register reg, SBit s=LeaveCC)

References SmiTag().

+ Here is the call graph for this function:

◆ SmiTag() [8/10]

void v8::internal::MacroAssembler::SmiTag ( Register  reg)
inline

Definition at line 443 of file macro-assembler-x87.h.

443  {
444  STATIC_ASSERT(kSmiTag == 0);
446  add(reg, reg);
447  }

References v8::internal::Assembler::add(), v8::internal::kSmiTag, v8::internal::kSmiTagSize, and STATIC_ASSERT().

+ Here is the call graph for this function:

◆ SmiTag() [9/10]

void v8::internal::MacroAssembler::SmiTag ( Register  reg,
SBit  s = LeaveCC 
)
inline

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

1220  {
1221  add(reg, reg, Operand(reg), s);
1222  }

References v8::internal::Assembler::add().

Referenced by SmiTag(), and TrySmiTag().

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

◆ SmiTag() [10/10]

void v8::internal::MacroAssembler::SmiTag ( Register  smi)
inline

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

1302 { SmiTag(smi, smi); }

References SmiTag().

+ Here is the call graph for this function:

◆ SmiTagAndPush() [1/2]

void v8::internal::MacroAssembler::SmiTagAndPush ( Register  src)
inline

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

1341  {
1342  STATIC_ASSERT((static_cast<unsigned>(kSmiShift) == kWRegSizeInBits) &&
1343  (static_cast<unsigned>(kSmiValueSize) == kWRegSizeInBits) &&
1344  (kSmiTag == 0));
1345  Push(src.W(), wzr);
1346 }

References kSmiShift, v8::internal::kSmiTag, v8::internal::kSmiValueSize, v8::internal::kWRegSizeInBits, Push(), STATIC_ASSERT(), and v8::internal::CPURegister::W().

+ Here is the call graph for this function:

◆ SmiTagAndPush() [2/2]

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

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

1349  {
1350  STATIC_ASSERT((static_cast<unsigned>(kSmiShift) == kWRegSizeInBits) &&
1351  (static_cast<unsigned>(kSmiValueSize) == kWRegSizeInBits) &&
1352  (kSmiTag == 0));
1353  Push(src1.W(), wzr, src2.W(), wzr);
1354 }

References kSmiShift, v8::internal::kSmiTag, v8::internal::kSmiValueSize, v8::internal::kWRegSizeInBits, Push(), STATIC_ASSERT(), and v8::internal::CPURegister::W().

+ Here is the call graph for this function:

◆ SmiTagCheckOverflow() [1/4]

void v8::internal::MacroAssembler::SmiTagCheckOverflow ( Register  dst,
Register  src,
Register  overflow 
)

◆ SmiTagCheckOverflow() [2/4]

void v8::internal::MacroAssembler::SmiTagCheckOverflow ( Register  dst,
Register  src,
Register  overflow 
)

◆ SmiTagCheckOverflow() [3/4]

void v8::internal::MacroAssembler::SmiTagCheckOverflow ( Register  reg,
Register  overflow 
)

Referenced by TrySmiTag().

+ Here is the caller graph for this function:

◆ SmiTagCheckOverflow() [4/4]

void v8::internal::MacroAssembler::SmiTagCheckOverflow ( Register  reg,
Register  overflow 
)

◆ SmiTest()

void v8::internal::MacroAssembler::SmiTest ( Register  src)

◆ SmiToDouble()

void v8::internal::MacroAssembler::SmiToDouble ( LowDwVfpRegister  value,
Register  smi 
)

◆ SmiToDoubleFPURegister() [1/2]

void v8::internal::MacroAssembler::SmiToDoubleFPURegister ( Register  smi,
FPURegister  value,
Register  scratch1 
)

◆ SmiToDoubleFPURegister() [2/2]

void v8::internal::MacroAssembler::SmiToDoubleFPURegister ( Register  smi,
FPURegister  value,
Register  scratch1 
)

◆ SmiToIndex()

SmiIndex v8::internal::MacroAssembler::SmiToIndex ( Register  dst,
Register  src,
int  shift 
)

◆ SmiToInteger32() [1/2]

void v8::internal::MacroAssembler::SmiToInteger32 ( Register  dst,
const Operand src 
)

◆ SmiToInteger32() [2/2]

void v8::internal::MacroAssembler::SmiToInteger32 ( Register  dst,
Register  src 
)

◆ SmiToInteger64() [1/2]

void v8::internal::MacroAssembler::SmiToInteger64 ( Register  dst,
const Operand src 
)

◆ SmiToInteger64() [2/2]

void v8::internal::MacroAssembler::SmiToInteger64 ( Register  dst,
Register  src 
)

◆ SmiToNegativeIndex()

SmiIndex v8::internal::MacroAssembler::SmiToNegativeIndex ( Register  dst,
Register  src,
int  shift 
)

◆ SmiTst() [1/3]

void v8::internal::MacroAssembler::SmiTst ( Register  value)
inline

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

1256  {
1257  tst(value, Operand(kSmiTagMask));
1258  }

References v8::internal::kSmiTagMask, and v8::internal::Assembler::tst().

+ Here is the call graph for this function:

◆ SmiTst() [2/3]

void v8::internal::MacroAssembler::SmiTst ( Register  value,
Register  scratch 
)
inline

Definition at line 1410 of file macro-assembler-mips.h.

1410  {
1411  And(scratch, value, Operand(kSmiTagMask));
1412  }

References And(), and v8::internal::kSmiTagMask.

+ Here is the call graph for this function:

◆ SmiTst() [3/3]

void v8::internal::MacroAssembler::SmiTst ( Register  value,
Register  scratch 
)
inline

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

1473  {
1474  And(scratch, value, Operand(kSmiTagMask));
1475  }

References And(), and v8::internal::kSmiTagMask.

+ Here is the call graph for this function:

◆ SmiUntag() [1/12]

void v8::internal::MacroAssembler::SmiUntag ( Register  dst,
Register  src 
)
inline

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

1305  {
1307  static_cast<unsigned>(kSmiShift + kSmiValueSize));
1308  DCHECK(dst.Is64Bits() && src.Is64Bits());
1310  AssertSmi(src);
1311  }
1312  Asr(dst, src, kSmiShift);
1313 }
void Asr(const Register &rd, const Register &rn, unsigned shift)
void AssertSmi(Register object)
const bool FLAG_enable_slow_asserts
Definition: checks.h:31

References Asr(), AssertSmi(), DCHECK, v8::internal::FLAG_enable_slow_asserts, v8::internal::CPURegister::Is64Bits(), kSmiShift, v8::internal::kSmiValueSize, v8::internal::kXRegSizeInBits, and STATIC_ASSERT().

+ Here is the call graph for this function:

◆ SmiUntag() [2/12]

void v8::internal::MacroAssembler::SmiUntag ( Register  dst,
Register  src 
)
inline

Definition at line 1405 of file macro-assembler-mips.h.

1405  {
1406  sra(dst, src, kSmiTagSize);
1407  }
void sra(Register rt, Register rd, uint16_t sa)

References v8::internal::kSmiTagSize, and v8::internal::Assembler::sra().

+ Here is the call graph for this function:

◆ SmiUntag() [3/12]

void v8::internal::MacroAssembler::SmiUntag ( Register  dst,
Register  src 
)
inline

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

1430  {
1431  if (SmiValuesAre32Bits()) {
1432  STATIC_ASSERT(kSmiShift == 32);
1433  dsra32(dst, src, 0);
1434  } else {
1435  sra(dst, src, kSmiTagSize);
1436  }
1437  }
void dsra32(Register rt, Register rd, uint16_t sa)

References v8::internal::Assembler::dsra32(), kSmiShift, v8::internal::kSmiTagSize, v8::internal::SmiValuesAre32Bits(), v8::internal::Assembler::sra(), and STATIC_ASSERT().

+ Here is the call graph for this function:

◆ SmiUntag() [4/12]

void v8::internal::MacroAssembler::SmiUntag ( Register  dst,
Register  src,
SBit  s = LeaveCC 
)
inline

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

1243  {
1244  mov(dst, Operand::SmiUntag(src), s);
1245  }

References mov().

+ Here is the call graph for this function:

◆ SmiUntag() [5/12]

void v8::internal::MacroAssembler::SmiUntag ( Register  reg)
inline

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

477  {
478  sar(reg, kSmiTagSize);
479  }

References v8::internal::kSmiTagSize, and v8::internal::Assembler::sar().

+ Here is the call graph for this function:

◆ SmiUntag() [6/12]

void v8::internal::MacroAssembler::SmiUntag ( Register  reg)
inline

Definition at line 1401 of file macro-assembler-mips.h.

1401  {
1402  sra(reg, reg, kSmiTagSize);
1403  }

References v8::internal::kSmiTagSize, and v8::internal::Assembler::sra().

+ Here is the call graph for this function:

◆ SmiUntag() [7/12]

void v8::internal::MacroAssembler::SmiUntag ( Register  reg)
inline

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

1439  {
1440  SmiUntag(reg, reg);
1441  }
void SmiUntag(Register reg, SBit s=LeaveCC)

References SmiUntag().

+ Here is the call graph for this function:

◆ SmiUntag() [8/12]

void v8::internal::MacroAssembler::SmiUntag ( Register  reg)
inline

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

448  {
449  sar(reg, kSmiTagSize);
450  }

References v8::internal::kSmiTagSize, and v8::internal::Assembler::sar().

+ Here is the call graph for this function:

◆ SmiUntag() [9/12]

void v8::internal::MacroAssembler::SmiUntag ( Register  reg,
Label *  is_smi 
)
inline

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

482  {
484  sar(reg, kSmiTagSize);
485  STATIC_ASSERT(kSmiTag == 0);
486  j(not_carry, is_smi);
487  }

References v8::internal::Assembler::j(), v8::internal::kSmiTag, v8::internal::kSmiTagSize, v8::internal::not_carry, v8::internal::Assembler::sar(), and STATIC_ASSERT().

+ Here is the call graph for this function:

◆ SmiUntag() [10/12]

void v8::internal::MacroAssembler::SmiUntag ( Register  reg,
Label *  is_smi 
)
inline

Definition at line 453 of file macro-assembler-x87.h.

453  {
455  sar(reg, kSmiTagSize);
456  STATIC_ASSERT(kSmiTag == 0);
457  j(not_carry, is_smi);
458  }

References v8::internal::Assembler::j(), v8::internal::kSmiTag, v8::internal::kSmiTagSize, v8::internal::not_carry, v8::internal::Assembler::sar(), and STATIC_ASSERT().

+ Here is the call graph for this function:

◆ SmiUntag() [11/12]

void v8::internal::MacroAssembler::SmiUntag ( Register  reg,
SBit  s = LeaveCC 
)
inline

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

1240  {
1241  mov(reg, Operand::SmiUntag(reg), s);
1242  }

References mov().

Referenced by SmiUntag().

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

◆ SmiUntag() [12/12]

void v8::internal::MacroAssembler::SmiUntag ( Register  smi)
inline

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

1316 { SmiUntag(smi, smi); }

References SmiUntag().

+ Here is the call graph for this function:

◆ SmiUntagToDouble()

void v8::internal::MacroAssembler::SmiUntagToDouble ( FPRegister  dst,
Register  src,
UntagMode  mode = kNotSpeculativeUntag 
)
inline

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

1321  {
1322  DCHECK(dst.Is64Bits() && src.Is64Bits());
1324  AssertSmi(src);
1325  }
1326  Scvtf(dst, src, kSmiShift);
1327 }
void Scvtf(const FPRegister &fd, const Register &rn, unsigned fbits=0)

References AssertSmi(), DCHECK, v8::internal::FLAG_enable_slow_asserts, v8::internal::CPURegister::Is64Bits(), v8::internal::kNotSpeculativeUntag, kSmiShift, mode(), and Scvtf().

+ Here is the call graph for this function:

◆ SmiUntagToFloat()

void v8::internal::MacroAssembler::SmiUntagToFloat ( FPRegister  dst,
Register  src,
UntagMode  mode = kNotSpeculativeUntag 
)
inline

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

1332  {
1333  DCHECK(dst.Is32Bits() && src.Is64Bits());
1335  AssertSmi(src);
1336  }
1337  Scvtf(dst, src, kSmiShift);
1338 }

References AssertSmi(), DCHECK, v8::internal::FLAG_enable_slow_asserts, v8::internal::CPURegister::Is32Bits(), v8::internal::CPURegister::Is64Bits(), v8::internal::kNotSpeculativeUntag, kSmiShift, mode(), and Scvtf().

+ Here is the call graph for this function:

◆ SmiXor()

void v8::internal::MacroAssembler::SmiXor ( Register  dst,
Register  src1,
Register  src2 
)

◆ SmiXorConstant()

void v8::internal::MacroAssembler::SmiXorConstant ( Register  dst,
Register  src1,
Smi constant 
)

◆ Smsubl()

void v8::internal::MacroAssembler::Smsubl ( const Register rd,
const Register rn,
const Register rm,
const Register ra 
)
inline

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

1098  {
1099  DCHECK(allow_macro_instructions_);
1100  DCHECK(!rd.IsZero());
1101  smsubl(rd, rn, rm, ra);
1102 }
void smsubl(const Register &rd, const Register &rn, const Register &rm, const Register &ra)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::smsubl().

+ Here is the call graph for this function:

◆ Smulh()

void v8::internal::MacroAssembler::Smulh ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

1116  {
1117  DCHECK(allow_macro_instructions_);
1118  DCHECK(!rd.IsZero());
1119  smulh(rd, rn, rm);
1120 }
void smulh(const Register &rd, const Register &rn, const Register &rm)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::smulh().

+ Here is the call graph for this function:

◆ Smull()

void v8::internal::MacroAssembler::Smull ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

1107  {
1108  DCHECK(allow_macro_instructions_);
1109  DCHECK(!rd.IsZero());
1110  smull(rd, rn, rm);
1111 }
void smull(Register dstL, Register dstH, Register src1, Register src2, SBit s=LeaveCC, Condition cond=al)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::smull().

+ Here is the call graph for this function:

◆ StackPointer()

const Register& v8::internal::MacroAssembler::StackPointer ( ) const
inline

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

803  {
804  return sp_;
805  }

References sp_.

Referenced by AlignAndSetCSPForFrame(), BumpSystemStackPointer(), Claim(), ClaimBySMI(), Drop(), DropBySMI(), SyncSystemStackPointer(), and v8::internal::compiler::FINAL< kOperandKind, kNumCachedOperands >::ToMemOperand().

+ Here is the caller graph for this function:

◆ STATIC_ASSERT()

v8::internal::MacroAssembler::STATIC_ASSERT ( (reg_zero==(reg_not_zero ^ 1)) &&(reg_bit_clear==(reg_bit_set ^ 1)) &&(always==(never ^ 1))  )

Referenced by DecodeFieldToSmi(), IsObjectJSStringType(), JumpIfBothSmi(), JumpIfEitherSmi(), JumpIfSmi(), ObjectTag(), ObjectUntag(), SmiTag(), SmiTagAndPush(), and SmiUntag().

+ Here is the caller graph for this function:

◆ Stnp()

void v8::internal::MacroAssembler::Stnp ( const CPURegister rt,
const CPURegister rt2,
const MemOperand dst 
)
inline

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

1125  {
1126  DCHECK(allow_macro_instructions_);
1127  stnp(rt, rt2, dst);
1128 }
void stnp(const CPURegister &rt, const CPURegister &rt2, const MemOperand &dst)

References DCHECK, and v8::internal::Assembler::stnp().

+ Here is the call graph for this function:

◆ Store() [1/8]

void v8::internal::MacroAssembler::Store ( const Operand dst,
Register  src,
Representation  r 
)

◆ Store() [2/8]

void v8::internal::MacroAssembler::Store ( const Register rt,
const MemOperand addr,
Representation  r 
)

◆ Store() [3/8]

void v8::internal::MacroAssembler::Store ( ExternalReference  destination,
Register  source 
)

◆ Store() [4/8]

void v8::internal::MacroAssembler::Store ( Register  src,
const MemOperand dst,
Representation  r 
)

◆ Store() [5/8]

void v8::internal::MacroAssembler::Store ( Register  src,
const MemOperand dst,
Representation  r 
)

◆ Store() [6/8]

void v8::internal::MacroAssembler::Store ( Register  src,
const MemOperand dst,
Representation  r 
)

◆ Store() [7/8]

void v8::internal::MacroAssembler::Store ( Register  src,
const Operand dst,
Representation  r 
)

◆ Store() [8/8]

void v8::internal::MacroAssembler::Store ( Register  src,
const Operand dst,
Representation  r 
)

◆ StoreNumberToDoubleElements() [1/7]

void v8::internal::MacroAssembler::StoreNumberToDoubleElements ( Register  maybe_number,
Register  elements,
Register  index,
XMMRegister  xmm_scratch,
Label *  fail,
int  elements_offset = 0 
)

◆ StoreNumberToDoubleElements() [2/7]

void v8::internal::MacroAssembler::StoreNumberToDoubleElements ( Register  maybe_number,
Register  elements,
Register  key,
Register  scratch,
Label *  fail,
int  offset = 0 
)

◆ StoreNumberToDoubleElements() [3/7]

void v8::internal::MacroAssembler::StoreNumberToDoubleElements ( Register  maybe_number,
Register  elements,
Register  key,
Register  scratch1,
XMMRegister  scratch2,
Label *  fail,
int  offset = 0 
)

◆ StoreNumberToDoubleElements() [4/7]

void v8::internal::MacroAssembler::StoreNumberToDoubleElements ( Register  value_reg,
Register  key_reg,
Register  elements_reg,
Register  scratch1,
FPRegister  fpscratch1,
Label *  fail,
int  elements_offset = 0 
)

◆ StoreNumberToDoubleElements() [5/7]

void v8::internal::MacroAssembler::StoreNumberToDoubleElements ( Register  value_reg,
Register  key_reg,
Register  elements_reg,
Register  scratch1,
LowDwVfpRegister  double_scratch,
Label *  fail,
int  elements_offset = 0 
)

◆ StoreNumberToDoubleElements() [6/7]

void v8::internal::MacroAssembler::StoreNumberToDoubleElements ( Register  value_reg,
Register  key_reg,
Register  elements_reg,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  fail,
int  elements_offset = 0 
)

◆ StoreNumberToDoubleElements() [7/7]

void v8::internal::MacroAssembler::StoreNumberToDoubleElements ( Register  value_reg,
Register  key_reg,
Register  elements_reg,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  fail,
int  elements_offset = 0 
)

◆ StoreRoot() [1/9]

void v8::internal::MacroAssembler::StoreRoot ( Register  source,
Heap::RootListIndex  index 
)

◆ StoreRoot() [2/9]

void v8::internal::MacroAssembler::StoreRoot ( Register  source,
Heap::RootListIndex  index 
)

◆ StoreRoot() [3/9]

void v8::internal::MacroAssembler::StoreRoot ( Register  source,
Heap::RootListIndex  index 
)

◆ StoreRoot() [4/9]

void v8::internal::MacroAssembler::StoreRoot ( Register  source,
Heap::RootListIndex  index 
)

◆ StoreRoot() [5/9]

void v8::internal::MacroAssembler::StoreRoot ( Register  source,
Heap::RootListIndex  index,
Condition  cond,
Register  src1,
const Operand src2 
)

◆ StoreRoot() [6/9]

void v8::internal::MacroAssembler::StoreRoot ( Register  source,
Heap::RootListIndex  index,
Condition  cond,
Register  src1,
const Operand src2 
)

◆ StoreRoot() [7/9]

void v8::internal::MacroAssembler::StoreRoot ( Register  source,
Heap::RootListIndex  index,
Condition  cond = al 
)

◆ StoreRoot() [8/9]

void v8::internal::MacroAssembler::StoreRoot ( Register  source,
Register  scratch,
Heap::RootListIndex  index 
)

◆ StoreRoot() [9/9]

void v8::internal::MacroAssembler::StoreRoot ( Register  source,
Register  scratch,
Heap::RootListIndex  index 
)

◆ StoreToSafepointRegisterSlot() [1/10]

void v8::internal::MacroAssembler::StoreToSafepointRegisterSlot ( Register  dst,
const Immediate imm 
)

◆ StoreToSafepointRegisterSlot() [2/10]

void v8::internal::MacroAssembler::StoreToSafepointRegisterSlot ( Register  dst,
Immediate  src 
)

◆ StoreToSafepointRegisterSlot() [3/10]

void v8::internal::MacroAssembler::StoreToSafepointRegisterSlot ( Register  dst,
Immediate  src 
)

◆ StoreToSafepointRegisterSlot() [4/10]

void v8::internal::MacroAssembler::StoreToSafepointRegisterSlot ( Register  dst,
Register  src 
)

◆ StoreToSafepointRegisterSlot() [5/10]

void v8::internal::MacroAssembler::StoreToSafepointRegisterSlot ( Register  dst,
Register  src 
)

◆ StoreToSafepointRegisterSlot() [6/10]

void v8::internal::MacroAssembler::StoreToSafepointRegisterSlot ( Register  dst,
Register  src 
)

◆ StoreToSafepointRegisterSlot() [7/10]

void v8::internal::MacroAssembler::StoreToSafepointRegisterSlot ( Register  src,
Register  dst 
)

◆ StoreToSafepointRegisterSlot() [8/10]

void v8::internal::MacroAssembler::StoreToSafepointRegisterSlot ( Register  src,
Register  dst 
)
inline

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

1757  {
1758  Poke(src, SafepointRegisterStackIndex(dst.code()) * kPointerSize);
1759  }
void Poke(const CPURegister &src, const Operand &offset)

References v8::internal::Register::code(), v8::internal::kPointerSize, Poke(), and SafepointRegisterStackIndex().

+ Here is the call graph for this function:

◆ StoreToSafepointRegisterSlot() [9/10]

void v8::internal::MacroAssembler::StoreToSafepointRegisterSlot ( Register  src,
Register  dst 
)

◆ StoreToSafepointRegisterSlot() [10/10]

void v8::internal::MacroAssembler::StoreToSafepointRegisterSlot ( Register  src,
Register  dst 
)

◆ Strd()

void v8::internal::MacroAssembler::Strd ( Register  src1,
Register  src2,
const MemOperand dst,
Condition  cond = al 
)

◆ StubPrologue() [1/7]

void v8::internal::MacroAssembler::StubPrologue ( )

◆ StubPrologue() [2/7]

void v8::internal::MacroAssembler::StubPrologue ( )

◆ StubPrologue() [3/7]

void v8::internal::MacroAssembler::StubPrologue ( )

◆ StubPrologue() [4/7]

void v8::internal::MacroAssembler::StubPrologue ( )

◆ StubPrologue() [5/7]

void v8::internal::MacroAssembler::StubPrologue ( )

◆ StubPrologue() [6/7]

void v8::internal::MacroAssembler::StubPrologue ( )

◆ StubPrologue() [7/7]

void v8::internal::MacroAssembler::StubPrologue ( )

◆ StubReturn() [1/3]

void v8::internal::MacroAssembler::StubReturn ( int  argc)

◆ StubReturn() [2/3]

void v8::internal::MacroAssembler::StubReturn ( int  argc)

◆ StubReturn() [3/3]

void v8::internal::MacroAssembler::StubReturn ( int  argc)

◆ Sub()

void v8::internal::MacroAssembler::Sub ( const Register rd,
const Register rn,
const Operand operand 
)
inline

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

178  {
179  DCHECK(allow_macro_instructions_);
180  if (operand.IsImmediate() && (operand.ImmediateValue() < 0) &&
181  IsImmAddSub(-operand.ImmediateValue())) {
182  AddSubMacro(rd, rn, -operand.ImmediateValue(), LeaveFlags, ADD);
183  } else {
184  AddSubMacro(rd, rn, operand, LeaveFlags, SUB);
185  }
186 }

References v8::internal::ADD, AddSubMacro(), DCHECK, v8::internal::Operand::ImmediateValue(), v8::internal::Assembler::IsImmAddSub(), v8::internal::Operand::IsImmediate(), v8::internal::LeaveFlags, and v8::internal::SUB.

Referenced by BumpSystemStackPointer(), Claim(), ClaimBySMI(), and Neg().

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

◆ Subs()

void v8::internal::MacroAssembler::Subs ( const Register rd,
const Register rn,
const Operand operand 
)
inline

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

191  {
192  DCHECK(allow_macro_instructions_);
193  if (operand.IsImmediate() && (operand.ImmediateValue() < 0) &&
194  IsImmAddSub(-operand.ImmediateValue())) {
195  AddSubMacro(rd, rn, -operand.ImmediateValue(), SetFlags, ADD);
196  } else {
197  AddSubMacro(rd, rn, operand, SetFlags, SUB);
198  }
199 }

References v8::internal::ADD, AddSubMacro(), DCHECK, v8::internal::Operand::ImmediateValue(), v8::internal::Assembler::IsImmAddSub(), v8::internal::Operand::IsImmediate(), v8::internal::SetFlags, and v8::internal::SUB.

Referenced by Cmp(), and Negs().

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

◆ SubuAndCheckForOverflow() [1/3]

void v8::internal::MacroAssembler::SubuAndCheckForOverflow ( Register  dst,
Register  left,
const Operand right,
Register  overflow_dst,
Register  scratch = at 
)

◆ SubuAndCheckForOverflow() [2/3]

void v8::internal::MacroAssembler::SubuAndCheckForOverflow ( Register  dst,
Register  left,
Register  right,
Register  overflow_dst,
Register  scratch = at 
)

◆ SubuAndCheckForOverflow() [3/3]

void v8::internal::MacroAssembler::SubuAndCheckForOverflow ( Register  dst,
Register  left,
Register  right,
Register  overflow_dst,
Register  scratch = at 
)

◆ Swap() [1/3]

void v8::internal::MacroAssembler::Swap ( Register  reg1,
Register  reg2,
Register  scratch = no_reg 
)

◆ Swap() [2/3]

void v8::internal::MacroAssembler::Swap ( Register  reg1,
Register  reg2,
Register  scratch = no_reg 
)

◆ Swap() [3/3]

void v8::internal::MacroAssembler::Swap ( Register  reg1,
Register  reg2,
Register  scratch = no_reg,
Condition  cond = al 
)

◆ Sxtb()

void v8::internal::MacroAssembler::Sxtb ( const Register rd,
const Register rn 
)
inline

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

1131  {
1132  DCHECK(allow_macro_instructions_);
1133  DCHECK(!rd.IsZero());
1134  sxtb(rd, rn);
1135 }
void sxtb(const Register &rd, const Register &rn)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::sxtb().

+ Here is the call graph for this function:

◆ Sxth()

void v8::internal::MacroAssembler::Sxth ( const Register rd,
const Register rn 
)
inline

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

1138  {
1139  DCHECK(allow_macro_instructions_);
1140  DCHECK(!rd.IsZero());
1141  sxth(rd, rn);
1142 }
void sxth(const Register &rd, const Register &rn)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::sxth().

+ Here is the call graph for this function:

◆ Sxtw()

void v8::internal::MacroAssembler::Sxtw ( const Register rd,
const Register rn 
)
inline

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

1145  {
1146  DCHECK(allow_macro_instructions_);
1147  DCHECK(!rd.IsZero());
1148  sxtw(rd, rn);
1149 }
void sxtw(const Register &rd, const Register &rn)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::sxtw().

+ Here is the call graph for this function:

◆ SyncSystemStackPointer()

void v8::internal::MacroAssembler::SyncSystemStackPointer ( )
inline

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

1273  {
1275  DCHECK(!csp.Is(sp_));
1276  { InstructionAccurateScope scope(this);
1278  bic(csp, StackPointer(), 0xf);
1279  } else {
1280  mov(csp, StackPointer());
1281  }
1282  }
1284 }

References v8::internal::ALWAYS_ALIGN_CSP, AssertStackConsistency(), v8::internal::Assembler::bic(), DCHECK, v8::internal::AssemblerBase::emit_debug_code(), v8::internal::CpuFeatures::IsSupported(), mov(), sp_, and StackPointer().

Referenced by Drop(), and DropBySMI().

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

◆ TailCallExternalReference() [1/7]

void v8::internal::MacroAssembler::TailCallExternalReference ( const ExternalReference &  ext,
int  num_arguments,
int  result_size 
)

◆ TailCallExternalReference() [2/7]

void v8::internal::MacroAssembler::TailCallExternalReference ( const ExternalReference &  ext,
int  num_arguments,
int  result_size 
)

◆ TailCallExternalReference() [3/7]

void v8::internal::MacroAssembler::TailCallExternalReference ( const ExternalReference &  ext,
int  num_arguments,
int  result_size 
)

◆ TailCallExternalReference() [4/7]

void v8::internal::MacroAssembler::TailCallExternalReference ( const ExternalReference &  ext,
int  num_arguments,
int  result_size 
)

◆ TailCallExternalReference() [5/7]

void v8::internal::MacroAssembler::TailCallExternalReference ( const ExternalReference &  ext,
int  num_arguments,
int  result_size 
)

◆ TailCallExternalReference() [6/7]

void v8::internal::MacroAssembler::TailCallExternalReference ( const ExternalReference &  ext,
int  num_arguments,
int  result_size 
)

◆ TailCallExternalReference() [7/7]

void v8::internal::MacroAssembler::TailCallExternalReference ( const ExternalReference &  ext,
int  num_arguments,
int  result_size 
)

◆ TailCallRuntime() [1/7]

void v8::internal::MacroAssembler::TailCallRuntime ( Runtime::FunctionId  fid,
int  num_arguments,
int  result_size 
)

Referenced by v8::internal::Builtins::Generate_InterruptCheck(), and v8::internal::Builtins::Generate_StackCheck().

+ Here is the caller graph for this function:

◆ TailCallRuntime() [2/7]

void v8::internal::MacroAssembler::TailCallRuntime ( Runtime::FunctionId  fid,
int  num_arguments,
int  result_size 
)

◆ TailCallRuntime() [3/7]

void v8::internal::MacroAssembler::TailCallRuntime ( Runtime::FunctionId  fid,
int  num_arguments,
int  result_size 
)

◆ TailCallRuntime() [4/7]

void v8::internal::MacroAssembler::TailCallRuntime ( Runtime::FunctionId  fid,
int  num_arguments,
int  result_size 
)

◆ TailCallRuntime() [5/7]

void v8::internal::MacroAssembler::TailCallRuntime ( Runtime::FunctionId  fid,
int  num_arguments,
int  result_size 
)

◆ TailCallRuntime() [6/7]

void v8::internal::MacroAssembler::TailCallRuntime ( Runtime::FunctionId  fid,
int  num_arguments,
int  result_size 
)

◆ TailCallRuntime() [7/7]

void v8::internal::MacroAssembler::TailCallRuntime ( Runtime::FunctionId  fid,
int  num_arguments,
int  result_size 
)

◆ TailCallStub() [1/7]

void v8::internal::MacroAssembler::TailCallStub ( CodeStub stub)

◆ TailCallStub() [2/7]

void v8::internal::MacroAssembler::TailCallStub ( CodeStub stub)

◆ TailCallStub() [3/7]

void v8::internal::MacroAssembler::TailCallStub ( CodeStub stub)

◆ TailCallStub() [4/7]

void v8::internal::MacroAssembler::TailCallStub ( CodeStub stub)

◆ TailCallStub() [5/7]

void v8::internal::MacroAssembler::TailCallStub ( CodeStub stub,
COND_ARGS   
)

◆ TailCallStub() [6/7]

void v8::internal::MacroAssembler::TailCallStub ( CodeStub stub,
COND_ARGS   
)

◆ TailCallStub() [7/7]

void v8::internal::MacroAssembler::TailCallStub ( CodeStub stub,
Condition  cond = al 
)

◆ Tbnz()

void v8::internal::MacroAssembler::Tbnz ( const Register rt,
unsigned  bit_pos,
Label *  label 
)

Referenced by JumpIfSmi(), ObjectUntag(), and TestAndBranchIfAnySet().

+ Here is the caller graph for this function:

◆ Tbz()

void v8::internal::MacroAssembler::Tbz ( const Register rt,
unsigned  bit_pos,
Label *  label 
)

Referenced by JumpIfSmi(), ObjectTag(), and TestAndBranchIfAllClear().

+ Here is the caller graph for this function:

◆ Test()

void v8::internal::MacroAssembler::Test ( const Operand dst,
Smi source 
)

◆ TestAndBranchIfAllClear()

void v8::internal::MacroAssembler::TestAndBranchIfAllClear ( const Register reg,
const uint64_t  bit_pattern,
Label *  label 
)
inline

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

1658  {
1659  int bits = reg.SizeInBits();
1660  DCHECK(CountSetBits(bit_pattern, bits) > 0);
1661  if (CountSetBits(bit_pattern, bits) == 1) {
1662  Tbz(reg, MaskToBit(bit_pattern), label);
1663  } else {
1664  Tst(reg, bit_pattern);
1665  B(eq, label);
1666  }
1667 }
void Tst(const Register &rn, const Operand &operand)
int MaskToBit(uint64_t mask)

References B(), v8::internal::CountSetBits(), DCHECK, v8::internal::eq, v8::internal::MaskToBit(), v8::internal::CPURegister::SizeInBits(), Tbz(), and Tst().

Referenced by IsObjectJSStringType().

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

◆ TestAndBranchIfAnySet()

void v8::internal::MacroAssembler::TestAndBranchIfAnySet ( const Register reg,
const uint64_t  bit_pattern,
Label *  label 
)
inline

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

1644  {
1645  int bits = reg.SizeInBits();
1646  DCHECK(CountSetBits(bit_pattern, bits) > 0);
1647  if (CountSetBits(bit_pattern, bits) == 1) {
1648  Tbnz(reg, MaskToBit(bit_pattern), label);
1649  } else {
1650  Tst(reg, bit_pattern);
1651  B(ne, label);
1652  }
1653 }

References B(), v8::internal::CountSetBits(), DCHECK, v8::internal::MaskToBit(), v8::internal::ne, v8::internal::CPURegister::SizeInBits(), Tbnz(), and Tst().

Referenced by IsObjectJSStringType().

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

◆ TestAndSplit()

void v8::internal::MacroAssembler::TestAndSplit ( const Register reg,
uint64_t  bit_pattern,
Label *  if_all_clear,
Label *  if_any_set,
Label *  fall_through 
)

◆ TestBitSharedFunctionInfoSpecialField()

void v8::internal::MacroAssembler::TestBitSharedFunctionInfoSpecialField ( Register  base,
int  offset,
int  bit_index 
)

◆ TestDoubleIsInt32()

void v8::internal::MacroAssembler::TestDoubleIsInt32 ( DwVfpRegister  double_input,
LowDwVfpRegister  double_scratch 
)

◆ TestForMinusZero()

void v8::internal::MacroAssembler::TestForMinusZero ( DoubleRegister  input)

◆ TestJSArrayForAllocationMemento() [1/7]

void v8::internal::MacroAssembler::TestJSArrayForAllocationMemento ( Register  receiver,
Register  scratch1,
Register  scratch2,
Label *  no_memento_found 
)

◆ TestJSArrayForAllocationMemento() [2/7]

void v8::internal::MacroAssembler::TestJSArrayForAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  no_memento_found 
)

Referenced by JumpIfJSArrayHasAllocationMemento().

+ Here is the caller graph for this function:

◆ TestJSArrayForAllocationMemento() [3/7]

void v8::internal::MacroAssembler::TestJSArrayForAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  no_memento_found 
)

◆ TestJSArrayForAllocationMemento() [4/7]

void v8::internal::MacroAssembler::TestJSArrayForAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  no_memento_found 
)

◆ TestJSArrayForAllocationMemento() [5/7]

void v8::internal::MacroAssembler::TestJSArrayForAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  no_memento_found 
)

◆ TestJSArrayForAllocationMemento() [6/7]

void v8::internal::MacroAssembler::TestJSArrayForAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  no_memento_found,
Condition  cond = al,
Label *  allocation_memento_present = NULL 
)

◆ TestJSArrayForAllocationMemento() [7/7]

void v8::internal::MacroAssembler::TestJSArrayForAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  no_memento_found,
Condition  cond = al,
Label *  allocation_memento_present = NULL 
)

◆ TestMapBitfield()

void v8::internal::MacroAssembler::TestMapBitfield ( Register  object,
uint64_t  mask 
)

◆ Throw() [1/7]

void v8::internal::MacroAssembler::Throw ( Register  value)

◆ Throw() [2/7]

void v8::internal::MacroAssembler::Throw ( Register  value)

◆ Throw() [3/7]

void v8::internal::MacroAssembler::Throw ( Register  value)

◆ Throw() [4/7]

void v8::internal::MacroAssembler::Throw ( Register  value)

◆ Throw() [5/7]

void v8::internal::MacroAssembler::Throw ( Register  value)

◆ Throw() [6/7]

void v8::internal::MacroAssembler::Throw ( Register  value)

◆ Throw() [7/7]

void v8::internal::MacroAssembler::Throw ( Register  value,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Register  scratch4 
)

◆ ThrowUncatchable() [1/7]

void v8::internal::MacroAssembler::ThrowUncatchable ( Register  value)

◆ ThrowUncatchable() [2/7]

void v8::internal::MacroAssembler::ThrowUncatchable ( Register  value)

◆ ThrowUncatchable() [3/7]

void v8::internal::MacroAssembler::ThrowUncatchable ( Register  value)

◆ ThrowUncatchable() [4/7]

void v8::internal::MacroAssembler::ThrowUncatchable ( Register  value)

◆ ThrowUncatchable() [5/7]

void v8::internal::MacroAssembler::ThrowUncatchable ( Register  value)

◆ ThrowUncatchable() [6/7]

void v8::internal::MacroAssembler::ThrowUncatchable ( Register  value)

◆ ThrowUncatchable() [7/7]

void v8::internal::MacroAssembler::ThrowUncatchable ( Register  value,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Register  scratch4 
)

◆ TmpList()

CPURegList* v8::internal::MacroAssembler::TmpList ( )
inline

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

1955 { return &tmp_list_; }

References tmp_list_.

Referenced by BumpSystemStackPointer(), and SetStackPointer().

+ Here is the caller graph for this function:

◆ Trunc_l_d()

void v8::internal::MacroAssembler::Trunc_l_d ( FPURegister  fd,
FPURegister  fs 
)

◆ Trunc_l_ud()

void v8::internal::MacroAssembler::Trunc_l_ud ( FPURegister  fd,
FPURegister  fs,
FPURegister  scratch 
)

◆ Trunc_uw_d() [1/4]

void v8::internal::MacroAssembler::Trunc_uw_d ( FPURegister  fd,
FPURegister  fs,
FPURegister  scratch 
)

◆ Trunc_uw_d() [2/4]

void v8::internal::MacroAssembler::Trunc_uw_d ( FPURegister  fd,
FPURegister  fs,
FPURegister  scratch 
)

◆ Trunc_uw_d() [3/4]

void v8::internal::MacroAssembler::Trunc_uw_d ( FPURegister  fd,
Register  rs,
FPURegister  scratch 
)

◆ Trunc_uw_d() [4/4]

void v8::internal::MacroAssembler::Trunc_uw_d ( FPURegister  fd,
Register  rs,
FPURegister  scratch 
)

◆ Trunc_w_d() [1/2]

void v8::internal::MacroAssembler::Trunc_w_d ( FPURegister  fd,
FPURegister  fs 
)

◆ Trunc_w_d() [2/2]

void v8::internal::MacroAssembler::Trunc_w_d ( FPURegister  fd,
FPURegister  fs 
)

◆ TruncateDoubleToI() [1/6]

void v8::internal::MacroAssembler::TruncateDoubleToI ( Register  result,
DoubleRegister  double_input 
)

◆ TruncateDoubleToI() [2/6]

void v8::internal::MacroAssembler::TruncateDoubleToI ( Register  result,
DoubleRegister  double_input 
)

◆ TruncateDoubleToI() [3/6]

void v8::internal::MacroAssembler::TruncateDoubleToI ( Register  result,
DoubleRegister  double_input 
)

◆ TruncateDoubleToI() [4/6]

void v8::internal::MacroAssembler::TruncateDoubleToI ( Register  result,
DwVfpRegister  double_input 
)

◆ TruncateDoubleToI() [5/6]

void v8::internal::MacroAssembler::TruncateDoubleToI ( Register  result_reg,
XMMRegister  input_reg 
)

◆ TruncateDoubleToI() [6/6]

void v8::internal::MacroAssembler::TruncateDoubleToI ( Register  result_reg,
XMMRegister  input_reg 
)

◆ TruncateHeapNumberToI() [1/7]

void v8::internal::MacroAssembler::TruncateHeapNumberToI ( Register  result,
Register  object 
)

◆ TruncateHeapNumberToI() [2/7]

void v8::internal::MacroAssembler::TruncateHeapNumberToI ( Register  result,
Register  object 
)

◆ TruncateHeapNumberToI() [3/7]

void v8::internal::MacroAssembler::TruncateHeapNumberToI ( Register  result,
Register  object 
)

◆ TruncateHeapNumberToI() [4/7]

void v8::internal::MacroAssembler::TruncateHeapNumberToI ( Register  result,
Register  object 
)

◆ TruncateHeapNumberToI() [5/7]

void v8::internal::MacroAssembler::TruncateHeapNumberToI ( Register  result_reg,
Register  input_reg 
)

◆ TruncateHeapNumberToI() [6/7]

void v8::internal::MacroAssembler::TruncateHeapNumberToI ( Register  result_reg,
Register  input_reg 
)

◆ TruncateHeapNumberToI() [7/7]

void v8::internal::MacroAssembler::TruncateHeapNumberToI ( Register  result_reg,
Register  input_reg 
)

◆ TruncateNumberToI() [1/4]

void v8::internal::MacroAssembler::TruncateNumberToI ( Register  object,
Register  result,
Register  heap_number_map,
Label *  not_int32 
)

◆ TruncateNumberToI() [2/4]

void v8::internal::MacroAssembler::TruncateNumberToI ( Register  object,
Register  result,
Register  heap_number_map,
Register  scratch,
Label *  not_int32 
)

◆ TruncateNumberToI() [3/4]

void v8::internal::MacroAssembler::TruncateNumberToI ( Register  object,
Register  result,
Register  heap_number_map,
Register  scratch,
Label *  not_int32 
)

◆ TruncateNumberToI() [4/4]

void v8::internal::MacroAssembler::TruncateNumberToI ( Register  object,
Register  result,
Register  heap_number_map,
Register  scratch1,
Label *  not_int32 
)

◆ TruncateX87TOSToI()

void v8::internal::MacroAssembler::TruncateX87TOSToI ( Register  result_reg)

◆ TruncatingDiv() [1/7]

void v8::internal::MacroAssembler::TruncatingDiv ( Register  dividend,
int32_t  divisor 
)

◆ TruncatingDiv() [2/7]

void v8::internal::MacroAssembler::TruncatingDiv ( Register  dividend,
int32_t  divisor 
)

◆ TruncatingDiv() [3/7]

void v8::internal::MacroAssembler::TruncatingDiv ( Register  dividend,
int32_t  divisor 
)

◆ TruncatingDiv() [4/7]

void v8::internal::MacroAssembler::TruncatingDiv ( Register  result,
Register  dividend,
int32_t  divisor 
)

◆ TruncatingDiv() [5/7]

void v8::internal::MacroAssembler::TruncatingDiv ( Register  result,
Register  dividend,
int32_t  divisor 
)

◆ TruncatingDiv() [6/7]

void v8::internal::MacroAssembler::TruncatingDiv ( Register  result,
Register  dividend,
int32_t  divisor 
)

◆ TruncatingDiv() [7/7]

void v8::internal::MacroAssembler::TruncatingDiv ( Register  result,
Register  dividend,
int32_t  divisor 
)

◆ TryConvertDoubleToInt64()

void v8::internal::MacroAssembler::TryConvertDoubleToInt64 ( Register  result,
DoubleRegister  input,
Label *  done 
)

◆ TryDoubleToInt32Exact()

void v8::internal::MacroAssembler::TryDoubleToInt32Exact ( Register  result,
DwVfpRegister  double_input,
LowDwVfpRegister  double_scratch 
)

◆ TryGetFunctionPrototype() [1/7]

void v8::internal::MacroAssembler::TryGetFunctionPrototype ( Register  function,
Register  result,
Label *  miss,
bool  miss_on_bound_function = false 
)

◆ TryGetFunctionPrototype() [2/7]

void v8::internal::MacroAssembler::TryGetFunctionPrototype ( Register  function,
Register  result,
Register  scratch,
Label *  miss,
bool  miss_on_bound_function = false 
)

◆ TryGetFunctionPrototype() [3/7]

void v8::internal::MacroAssembler::TryGetFunctionPrototype ( Register  function,
Register  result,
Register  scratch,
Label *  miss,
bool  miss_on_bound_function = false 
)

◆ TryGetFunctionPrototype() [4/7]

void v8::internal::MacroAssembler::TryGetFunctionPrototype ( Register  function,
Register  result,
Register  scratch,
Label *  miss,
bool  miss_on_bound_function = false 
)

◆ TryGetFunctionPrototype() [5/7]

void v8::internal::MacroAssembler::TryGetFunctionPrototype ( Register  function,
Register  result,
Register  scratch,
Label *  miss,
bool  miss_on_bound_function = false 
)

◆ TryGetFunctionPrototype() [6/7]

void v8::internal::MacroAssembler::TryGetFunctionPrototype ( Register  function,
Register  result,
Register  scratch,
Label *  miss,
bool  miss_on_bound_function = false 
)

◆ TryGetFunctionPrototype() [7/7]

void v8::internal::MacroAssembler::TryGetFunctionPrototype ( Register  function,
Register  result,
Register  scratch,
Label *  miss,
BoundFunctionAction  action = kDontMissOnBoundFunction 
)

◆ TryInlineTruncateDoubleToI() [1/3]

void v8::internal::MacroAssembler::TryInlineTruncateDoubleToI ( Register  result,
DoubleRegister  input,
Label *  done 
)

◆ TryInlineTruncateDoubleToI() [2/3]

void v8::internal::MacroAssembler::TryInlineTruncateDoubleToI ( Register  result,
DoubleRegister  input,
Label *  done 
)

◆ TryInlineTruncateDoubleToI() [3/3]

void v8::internal::MacroAssembler::TryInlineTruncateDoubleToI ( Register  result,
DwVfpRegister  input,
Label *  done 
)

◆ TryInt32Floor()

void v8::internal::MacroAssembler::TryInt32Floor ( Register  result,
DwVfpRegister  double_input,
Register  input_high,
LowDwVfpRegister  double_scratch,
Label *  done,
Label *  exact 
)

◆ TryOneInstrMoveImmediate()

bool v8::internal::MacroAssembler::TryOneInstrMoveImmediate ( const Register dst,
int64_t  imm 
)

◆ TryRepresentDoubleAsInt()

void v8::internal::MacroAssembler::TryRepresentDoubleAsInt ( Register  as_int,
FPRegister  value,
FPRegister  scratch_d,
Label *  on_successful_conversion = NULL,
Label *  on_failed_conversion = NULL 
)
private

Referenced by TryRepresentDoubleAsInt32(), and TryRepresentDoubleAsInt64().

+ Here is the caller graph for this function:

◆ TryRepresentDoubleAsInt32()

void v8::internal::MacroAssembler::TryRepresentDoubleAsInt32 ( Register  as_int,
FPRegister  value,
FPRegister  scratch_d,
Label *  on_successful_conversion = NULL,
Label *  on_failed_conversion = NULL 
)
inline

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

996  {
997  DCHECK(as_int.Is32Bits());
998  TryRepresentDoubleAsInt(as_int, value, scratch_d, on_successful_conversion,
999  on_failed_conversion);
1000  }
void TryRepresentDoubleAsInt(Register as_int, FPRegister value, FPRegister scratch_d, Label *on_successful_conversion=NULL, Label *on_failed_conversion=NULL)

References DCHECK, v8::internal::CPURegister::Is32Bits(), and TryRepresentDoubleAsInt().

+ Here is the call graph for this function:

◆ TryRepresentDoubleAsInt64()

void v8::internal::MacroAssembler::TryRepresentDoubleAsInt64 ( Register  as_int,
FPRegister  value,
FPRegister  scratch_d,
Label *  on_successful_conversion = NULL,
Label *  on_failed_conversion = NULL 
)
inline

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

1011  {
1012  DCHECK(as_int.Is64Bits());
1013  TryRepresentDoubleAsInt(as_int, value, scratch_d, on_successful_conversion,
1014  on_failed_conversion);
1015  }

References DCHECK, v8::internal::CPURegister::Is64Bits(), and TryRepresentDoubleAsInt().

+ Here is the call graph for this function:

◆ TrySmiTag() [1/6]

void v8::internal::MacroAssembler::TrySmiTag ( Register  dst,
Register  src,
Register  scratch,
Label *  not_a_smi 
)
inline

Definition at line 1392 of file macro-assembler-mips.h.

1395  {
1396  SmiTagCheckOverflow(at, src, scratch);
1397  BranchOnOverflow(not_a_smi, scratch);
1398  mov(dst, at);
1399  }
void BranchOnOverflow(Label *label, Register overflow_check, BranchDelaySlot bd=PROTECT)
void SmiTagCheckOverflow(Register reg, Register overflow)

References BranchOnOverflow(), mov(), and SmiTagCheckOverflow().

+ Here is the call graph for this function:

◆ TrySmiTag() [2/6]

void v8::internal::MacroAssembler::TrySmiTag ( Register  dst,
Register  src,
Register  scratch,
Label *  not_a_smi 
)
inline

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

1420  {
1421  if (SmiValuesAre32Bits()) {
1422  SmiTag(dst, src);
1423  } else {
1424  SmiTagCheckOverflow(at, src, scratch);
1425  BranchOnOverflow(not_a_smi, scratch);
1426  mov(dst, at);
1427  }
1428  }

References BranchOnOverflow(), mov(), SmiTag(), SmiTagCheckOverflow(), and v8::internal::SmiValuesAre32Bits().

+ Here is the call graph for this function:

◆ TrySmiTag() [3/6]

void v8::internal::MacroAssembler::TrySmiTag ( Register  reg,
Label *  not_a_smi 
)
inline

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

1230  {
1231  TrySmiTag(reg, reg, not_a_smi);
1232  }
void TrySmiTag(Register reg, Label *not_a_smi)

Referenced by TrySmiTag().

+ Here is the caller graph for this function:

◆ TrySmiTag() [4/6]

void v8::internal::MacroAssembler::TrySmiTag ( Register  reg,
Register  scratch,
Label *  not_a_smi 
)
inline

Definition at line 1389 of file macro-assembler-mips.h.

1389  {
1390  TrySmiTag(reg, reg, scratch, not_a_smi);
1391  }

References TrySmiTag().

+ Here is the call graph for this function:

◆ TrySmiTag() [5/6]

void v8::internal::MacroAssembler::TrySmiTag ( Register  reg,
Register  scratch,
Label *  not_a_smi 
)
inline

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

1413  {
1414  TrySmiTag(reg, reg, scratch, not_a_smi);
1415  }

References TrySmiTag().

+ Here is the call graph for this function:

◆ TrySmiTag() [6/6]

void v8::internal::MacroAssembler::TrySmiTag ( Register  reg,
Register  src,
Label *  not_a_smi 
)
inline

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

1233  {
1234  SmiTag(ip, src, SetCC);
1235  b(vs, not_a_smi);
1236  mov(reg, ip);
1237  }
const Register ip

References v8::internal::Assembler::b(), v8::internal::ip, mov(), v8::internal::SetCC, SmiTag(), and v8::internal::vs.

+ Here is the call graph for this function:

◆ Tst()

void v8::internal::MacroAssembler::Tst ( const Register rn,
const Operand operand 
)
inline

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

65  {
66  DCHECK(allow_macro_instructions_);
67  LogicalMacro(AppropriateZeroRegFor(rn), rn, operand, ANDS);
68 }

References v8::internal::ANDS, v8::internal::Assembler::AppropriateZeroRegFor(), DCHECK, and LogicalMacro().

Referenced by TestAndBranchIfAllClear(), and TestAndBranchIfAnySet().

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

◆ Ubfiz()

void v8::internal::MacroAssembler::Ubfiz ( const Register rd,
const Register rn,
unsigned  lsb,
unsigned  width 
)
inline

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

1155  {
1156  DCHECK(allow_macro_instructions_);
1157  DCHECK(!rd.IsZero());
1158  ubfiz(rd, rn, lsb, width);
1159 }
void ubfiz(const Register &rd, const Register &rn, unsigned lsb, unsigned width)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::ubfiz().

+ Here is the call graph for this function:

◆ Ubfx() [1/2]

void v8::internal::MacroAssembler::Ubfx ( const Register rd,
const Register rn,
unsigned  lsb,
unsigned  width 
)
inline

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

1165  {
1166  DCHECK(allow_macro_instructions_);
1167  DCHECK(!rd.IsZero());
1168  ubfx(rd, rn, lsb, width);
1169 }
void ubfx(Register dst, Register src, int lsb, int width, Condition cond=al)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::ubfx().

+ Here is the call graph for this function:

◆ Ubfx() [2/2]

void v8::internal::MacroAssembler::Ubfx ( Register  dst,
Register  src,
int  lsb,
int  width,
Condition  cond = al 
)

Referenced by DecodeField().

+ Here is the caller graph for this function:

◆ Ucvtf()

void v8::internal::MacroAssembler::Ucvtf ( const FPRegister fd,
const Register rn,
unsigned  fbits = 0 
)
inline

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

1174  {
1175  DCHECK(allow_macro_instructions_);
1176  ucvtf(fd, rn, fbits);
1177 }
void ucvtf(const FPRegister &fd, const Register &rn, unsigned fbits=0)

References DCHECK, and v8::internal::Assembler::ucvtf().

+ Here is the call graph for this function:

◆ Udiv()

void v8::internal::MacroAssembler::Udiv ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

1182  {
1183  DCHECK(allow_macro_instructions_);
1184  DCHECK(!rd.IsZero());
1185  udiv(rd, rn, rm);
1186 }
void udiv(Register dst, Register src1, Register src2, Condition cond=al)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::udiv().

+ Here is the call graph for this function:

◆ Uld()

void v8::internal::MacroAssembler::Uld ( Register  rd,
const MemOperand rs,
Register  scratch = at 
)

◆ Ulw() [1/2]

void v8::internal::MacroAssembler::Ulw ( Register  rd,
const MemOperand rs 
)

◆ Ulw() [2/2]

void v8::internal::MacroAssembler::Ulw ( Register  rd,
const MemOperand rs 
)

◆ Umaddl()

void v8::internal::MacroAssembler::Umaddl ( const Register rd,
const Register rn,
const Register rm,
const Register ra 
)
inline

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

1192  {
1193  DCHECK(allow_macro_instructions_);
1194  DCHECK(!rd.IsZero());
1195  umaddl(rd, rn, rm, ra);
1196 }
void umaddl(const Register &rd, const Register &rn, const Register &rm, const Register &ra)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::umaddl().

+ Here is the call graph for this function:

◆ Umsubl()

void v8::internal::MacroAssembler::Umsubl ( const Register rd,
const Register rn,
const Register rm,
const Register ra 
)
inline

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

1202  {
1203  DCHECK(allow_macro_instructions_);
1204  DCHECK(!rd.IsZero());
1205  umsubl(rd, rn, rm, ra);
1206 }
void umsubl(const Register &rd, const Register &rn, const Register &rm, const Register &ra)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::umsubl().

+ Here is the call graph for this function:

◆ UndoAllocationInNewSpace() [1/7]

void v8::internal::MacroAssembler::UndoAllocationInNewSpace ( Register  object)

◆ UndoAllocationInNewSpace() [2/7]

void v8::internal::MacroAssembler::UndoAllocationInNewSpace ( Register  object)

◆ UndoAllocationInNewSpace() [3/7]

void v8::internal::MacroAssembler::UndoAllocationInNewSpace ( Register  object)

◆ UndoAllocationInNewSpace() [4/7]

void v8::internal::MacroAssembler::UndoAllocationInNewSpace ( Register  object,
Register  scratch 
)

◆ UndoAllocationInNewSpace() [5/7]

void v8::internal::MacroAssembler::UndoAllocationInNewSpace ( Register  object,
Register  scratch 
)

◆ UndoAllocationInNewSpace() [6/7]

void v8::internal::MacroAssembler::UndoAllocationInNewSpace ( Register  object,
Register  scratch 
)

◆ UndoAllocationInNewSpace() [7/7]

void v8::internal::MacroAssembler::UndoAllocationInNewSpace ( Register  object,
Register  scratch 
)

◆ UntagAndJumpIfNotSmi() [1/3]

void v8::internal::MacroAssembler::UntagAndJumpIfNotSmi ( Register  dst,
Register  src,
Label *  non_smi_case 
)

◆ UntagAndJumpIfNotSmi() [2/3]

void v8::internal::MacroAssembler::UntagAndJumpIfNotSmi ( Register  dst,
Register  src,
Label *  non_smi_case 
)

◆ UntagAndJumpIfNotSmi() [3/3]

void v8::internal::MacroAssembler::UntagAndJumpIfNotSmi ( Register  dst,
Register  src,
Label *  non_smi_case 
)

◆ UntagAndJumpIfSmi() [1/3]

void v8::internal::MacroAssembler::UntagAndJumpIfSmi ( Register  dst,
Register  src,
Label *  smi_case 
)

◆ UntagAndJumpIfSmi() [2/3]

void v8::internal::MacroAssembler::UntagAndJumpIfSmi ( Register  dst,
Register  src,
Label *  smi_case 
)

◆ UntagAndJumpIfSmi() [3/3]

void v8::internal::MacroAssembler::UntagAndJumpIfSmi ( Register  dst,
Register  src,
Label *  smi_case 
)

◆ UpdateAllocationTopHelper() [1/3]

void v8::internal::MacroAssembler::UpdateAllocationTopHelper ( Register  result_end,
Register  scratch,
AllocationFlags  flags 
)
private

◆ UpdateAllocationTopHelper() [2/3]

void v8::internal::MacroAssembler::UpdateAllocationTopHelper ( Register  result_end,
Register  scratch,
AllocationFlags  flags 
)
private

◆ UpdateAllocationTopHelper() [3/3]

void v8::internal::MacroAssembler::UpdateAllocationTopHelper ( Register  result_end,
Register  scratch,
AllocationFlags  flags 
)
private

◆ Usat()

void v8::internal::MacroAssembler::Usat ( Register  dst,
int  satpos,
const Operand src,
Condition  cond = al 
)

◆ Usd()

void v8::internal::MacroAssembler::Usd ( Register  rd,
const MemOperand rs,
Register  scratch = at 
)

◆ use_eabi_hardfloat()

bool v8::internal::MacroAssembler::use_eabi_hardfloat ( )
inline

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

1186  {
1187 #ifdef __arm__
1188  return base::OS::ArmUsingHardFloat();
1189 #elif USE_EABI_HARDFLOAT
1190  return true;
1191 #else
1192  return false;
1193 #endif
1194  }
static bool ArmUsingHardFloat()

References v8::base::OS::ArmUsingHardFloat().

+ Here is the call graph for this function:

◆ use_real_aborts()

bool v8::internal::MacroAssembler::use_real_aborts ( ) const
inline

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

References use_real_aborts_.

◆ Usw() [1/2]

void v8::internal::MacroAssembler::Usw ( Register  rd,
const MemOperand rs 
)

◆ Usw() [2/2]

void v8::internal::MacroAssembler::Usw ( Register  rd,
const MemOperand rs 
)

◆ Uxtb()

void v8::internal::MacroAssembler::Uxtb ( const Register rd,
const Register rn 
)
inline

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

1209  {
1210  DCHECK(allow_macro_instructions_);
1211  DCHECK(!rd.IsZero());
1212  uxtb(rd, rn);
1213 }
void uxtb(Register dst, const Operand &src, Condition cond=al)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::uxtb().

+ Here is the call graph for this function:

◆ Uxth()

void v8::internal::MacroAssembler::Uxth ( const Register rd,
const Register rn 
)
inline

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

1216  {
1217  DCHECK(allow_macro_instructions_);
1218  DCHECK(!rd.IsZero());
1219  uxth(rd, rn);
1220 }
void uxth(const Register &rd, const Register &rn)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::uxth().

+ Here is the call graph for this function:

◆ Uxtw()

void v8::internal::MacroAssembler::Uxtw ( const Register rd,
const Register rn 
)
inline

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

1223  {
1224  DCHECK(allow_macro_instructions_);
1225  DCHECK(!rd.IsZero());
1226  uxtw(rd, rn);
1227 }
void uxtw(const Register &rd, const Register &rn)

References DCHECK, v8::internal::CPURegister::IsZero(), and v8::internal::Assembler::uxtw().

+ Here is the call graph for this function:

◆ VerifyX87StackDepth()

void v8::internal::MacroAssembler::VerifyX87StackDepth ( uint32_t  depth)

◆ VFPCanonicalizeNaN() [1/2]

void v8::internal::MacroAssembler::VFPCanonicalizeNaN ( const DwVfpRegister  dst,
const DwVfpRegister  src,
const Condition  cond = al 
)

Referenced by VFPCanonicalizeNaN().

+ Here is the caller graph for this function:

◆ VFPCanonicalizeNaN() [2/2]

void v8::internal::MacroAssembler::VFPCanonicalizeNaN ( const DwVfpRegister  value,
const Condition  cond = al 
)
inline

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

486  {
487  VFPCanonicalizeNaN(value, value, cond);
488  }
void VFPCanonicalizeNaN(const DwVfpRegister dst, const DwVfpRegister src, const Condition cond=al)

References VFPCanonicalizeNaN().

+ Here is the call graph for this function:

◆ VFPCompareAndLoadFlags() [1/2]

void v8::internal::MacroAssembler::VFPCompareAndLoadFlags ( const DwVfpRegister  src1,
const double  src2,
const Register  fpscr_flags,
const Condition  cond = al 
)

◆ VFPCompareAndLoadFlags() [2/2]

void v8::internal::MacroAssembler::VFPCompareAndLoadFlags ( const DwVfpRegister  src1,
const DwVfpRegister  src2,
const Register  fpscr_flags,
const Condition  cond = al 
)

◆ VFPCompareAndSetFlags() [1/2]

void v8::internal::MacroAssembler::VFPCompareAndSetFlags ( const DwVfpRegister  src1,
const double  src2,
const Condition  cond = al 
)

◆ VFPCompareAndSetFlags() [2/2]

void v8::internal::MacroAssembler::VFPCompareAndSetFlags ( const DwVfpRegister  src1,
const DwVfpRegister  src2,
const Condition  cond = al 
)

◆ VFPEnsureFPSCRState()

void v8::internal::MacroAssembler::VFPEnsureFPSCRState ( Register  scratch)

◆ Vmov()

void v8::internal::MacroAssembler::Vmov ( const DwVfpRegister  dst,
const double  imm,
const Register  scratch = no_reg 
)

◆ VmovHigh() [1/2]

void v8::internal::MacroAssembler::VmovHigh ( DwVfpRegister  dst,
Register  src 
)

◆ VmovHigh() [2/2]

void v8::internal::MacroAssembler::VmovHigh ( Register  dst,
DwVfpRegister  src 
)

◆ VmovLow() [1/2]

void v8::internal::MacroAssembler::VmovLow ( DwVfpRegister  dst,
Register  src 
)

◆ VmovLow() [2/2]

void v8::internal::MacroAssembler::VmovLow ( Register  dst,
DwVfpRegister  src 
)

◆ X87CheckIA()

void v8::internal::MacroAssembler::X87CheckIA ( )

◆ X87SetRC()

void v8::internal::MacroAssembler::X87SetRC ( int  rc)

◆ X87TOSToI()

void v8::internal::MacroAssembler::X87TOSToI ( Register  result_reg,
MinusZeroMode  minus_zero_mode,
Label *  lost_precision,
Label *  is_nan,
Label *  minus_zero,
Label::Distance  dst = Label::kFar 
)

Friends And Related Function Documentation

◆ StandardFrame

StandardFrame
friend

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

Member Data Documentation

◆ code_object_

Handle< Object > v8::internal::MacroAssembler::code_object_
private

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

Referenced by CodeObject().

◆ fptmp_list_

CPURegList v8::internal::MacroAssembler::fptmp_list_
private

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

Referenced by FPTmpList().

◆ generating_stub_

bool v8::internal::MacroAssembler::generating_stub_
private

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

Referenced by generating_stub(), and set_generating_stub().

◆ has_frame_

bool v8::internal::MacroAssembler::has_frame_
private

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

Referenced by has_frame(), and set_has_frame().

◆ kCallApiFunctionSpillSpace

const int v8::internal::MacroAssembler::kCallApiFunctionSpillSpace = 4
static

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

◆ kNumSafepointSavedRegisters

const int v8::internal::MacroAssembler::kNumSafepointSavedRegisters = 11
staticprivate

Definition at line 1476 of file macro-assembler-x64.h.

◆ kSafepointPushRegisterIndices

const int v8::internal::MacroAssembler::kSafepointPushRegisterIndices[Register::kNumRegisters]
staticprivate

Definition at line 1475 of file macro-assembler-x64.h.

Referenced by SafepointRegisterStackIndex().

◆ kSmiShift

const int v8::internal::MacroAssembler::kSmiShift = kSmiTagSize + kSmiShiftSize
staticprivate

◆ root_array_available_

bool v8::internal::MacroAssembler::root_array_available_
private

◆ sp_

Register v8::internal::MacroAssembler::sp_
private

◆ tmp_list_

CPURegList v8::internal::MacroAssembler::tmp_list_
private

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

Referenced by TmpList().

◆ use_real_aborts_


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