v8  3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MacroAssembler Class Reference

#include <macro-assembler-arm.h>

Inheritance diagram for MacroAssembler:
Collaboration diagram for MacroAssembler:

Data Structures

class  BASE_EMBEDDED
 
class  NoUseRealAbortsScope
 
class  PushPopQueue
 
struct  Unresolved
 

Public Types

enum  RememberedSetFinalAction {
  kReturnAtEnd, kFallThroughAtEnd, kReturnAtEnd, kFallThroughAtEnd,
  kReturnAtEnd, kFallThroughAtEnd, kReturnAtEnd, kFallThroughAtEnd,
  kReturnAtEnd, kFallThroughAtEnd
}
 
enum  BoundFunctionAction { kMissOnBoundFunction, kDontMissOnBoundFunction }
 
enum  RememberedSetFinalAction {
  kReturnAtEnd, kFallThroughAtEnd, kReturnAtEnd, kFallThroughAtEnd,
  kReturnAtEnd, kFallThroughAtEnd, kReturnAtEnd, kFallThroughAtEnd,
  kReturnAtEnd, kFallThroughAtEnd
}
 
enum  RememberedSetFinalAction {
  kReturnAtEnd, kFallThroughAtEnd, kReturnAtEnd, kFallThroughAtEnd,
  kReturnAtEnd, kFallThroughAtEnd, kReturnAtEnd, kFallThroughAtEnd,
  kReturnAtEnd, kFallThroughAtEnd
}
 
enum  RememberedSetFinalAction {
  kReturnAtEnd, kFallThroughAtEnd, kReturnAtEnd, kFallThroughAtEnd,
  kReturnAtEnd, kFallThroughAtEnd, kReturnAtEnd, kFallThroughAtEnd,
  kReturnAtEnd, kFallThroughAtEnd
}
 
enum  RememberedSetFinalAction {
  kReturnAtEnd, kFallThroughAtEnd, kReturnAtEnd, kFallThroughAtEnd,
  kReturnAtEnd, kFallThroughAtEnd, kReturnAtEnd, kFallThroughAtEnd,
  kReturnAtEnd, kFallThroughAtEnd
}
 
- Public Types inherited from 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, FIRST_NOP_MARKER = DEBUG_BREAK_NOP, LAST_NOP_MARKER = INTERRUPT_CODE_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, FIRST_NOP_MARKER = DEBUG_BREAK_NOP, LAST_NOP_MARKER = INTERRUPT_CODE_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, FIRST_NOP_MARKER = DEBUG_BREAK_NOP, LAST_NOP_MARKER = INTERRUPT_CODE_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)
 
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)
 
int CallSize (Address target, RelocInfo::Mode rmode, 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 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 (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)
 
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)
 
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)
 
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 PushSafepointRegistersAndDoubles ()
 
void PopSafepointRegistersAndDoubles ()
 
void StoreToSafepointRegisterSlot (Register src, Register dst)
 
void StoreToSafepointRegistersAndDoublesSlot (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 Prologue (PrologueFrameMode frame_mode)
 
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 PushTryHandler (StackHandler::Kind kind, int handler_index)
 
void PopTryHandler ()
 
void Throw (Register value)
 
void ThrowUncatchable (Register value)
 
void Throw (BailoutReason reason)
 
void ThrowIf (Condition cc, BailoutReason reason)
 
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 AllocateAsciiString (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 AllocateAsciiConsString (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 AllocateAsciiSlicedString (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)
 
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 IllegalOperation (int num_arguments)
 
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 JumpIfNonSmisNotBothSequentialAsciiStrings (Register object1, Register object2, Register scratch1, Register scratch2, Label *failure)
 
void JumpIfNotBothSequentialAsciiStrings (Register first, Register second, Register scratch1, Register scratch2, Label *not_flat_ascii_strings)
 
void JumpIfBothInstanceTypesAreNotSequentialAscii (Register first_object_instance_type, Register second_object_instance_type, Register scratch1, Register scratch2, Label *failure)
 
void JumpIfInstanceTypeIsNotSequentialAscii (Register type, Register scratch, Label *failure)
 
void JumpIfNotUniqueName (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)
 
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 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)
 
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 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)
 
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 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 Ldp (const CPURegister &rt, const CPURegister &rt2, const MemOperand &src)
 
void Ldpsw (const Register &rt, const Register &rt2, const MemOperand &src)
 
void Ldr (const FPRegister &ft, double imm)
 
void Ldr (const FPRegister &ft, float imm)
 
void Ldr (const Register &rt, uint64_t 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 Stp (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 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 InitializeRootRegister ()
 
void LoadRoot (Register 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 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 SmiAbs (const Register &smi, Label *slow)
 
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 AssertName (Register object)
 
void AssertUndefinedOrAllocationSite (Register object, Register scratch)
 
void AssertString (Register object)
 
void JumpForHeapNumber (Register object, Register heap_number_map, Label *on_heap_number, Label *on_not_heap_number=NULL)
 
void JumpIfHeapNumber (Register object, Label *on_heap_number, Register heap_number_map=NoReg)
 
void JumpIfNotHeapNumber (Register object, Label *on_not_heap_number, Register heap_number_map=NoReg)
 
void TestForMinusZero (DoubleRegister input)
 
void JumpIfMinusZero (DoubleRegister 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 TryConvertDoubleToInt32 (Register as_int, FPRegister value, FPRegister scratch_d, Label *on_successful_conversion=NULL, Label *on_failed_conversion=NULL)
 
void TryConvertDoubleToInt64 (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 JumpIfEitherIsNotSequentialAsciiStrings (Register first, Register second, Register scratch1, Register scratch2, Label *failure, SmiCheckType smi_check=DO_SMI_CHECK)
 
void JumpIfInstanceTypeIsNotSequentialAscii (Register type, Register scratch, Label *failure)
 
void JumpIfEitherInstanceTypeIsNotSequentialAscii (Register first_object_instance_type, Register second_object_instance_type, Register scratch1, Register scratch2, Label *failure)
 
void JumpIfBothInstanceTypesAreNotSequentialAscii (Register first_object_instance_type, Register second_object_instance_type, Register scratch1, Register scratch2, Label *failure)
 
void JumpIfNotUniqueName (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 Throw (BailoutReason reason)
 
void ThrowIf (Condition cc, BailoutReason reason)
 
void ThrowIfSmi (const Register &value, BailoutReason reason)
 
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 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 AllocateAsciiString (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 AllocateAsciiConsString (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 AllocateAsciiSlicedString (Register result, Register length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateHeapNumber (Register result, Label *gc_required, Register scratch1, Register scratch2, Register heap_number_map=NoReg)
 
void AllocateHeapNumberWithValue (Register result, DoubleRegister value, Label *gc_required, Register scratch1, Register scratch2, Register heap_number_map=NoReg)
 
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 CompareMap (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, FPRegister fpscratch2, 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 Prologue (PrologueFrameMode frame_mode)
 
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)
 
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)
 
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)
 
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, const CPURegister &arg0=NoCPUReg, const CPURegister &arg1=NoCPUReg, const CPURegister &arg2=NoCPUReg, const 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)
 
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)
 
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)
 
void RecordWriteArray (Register array, Register value, Register index, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK)
 
void RecordWrite (Register object, Register address, Register value, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK)
 
void RecordWriteForMap (Register object, Handle< Map > map, Register scratch1, Register scratch2, SaveFPRegsMode save_fp)
 
void Prologue (PrologueFrameMode frame_mode)
 
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, bool specialize_for_processor, 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 TruncateX87TOSToI (Register result_reg)
 
void DoubleToI (Register result_reg, XMMRegister input_reg, XMMRegister scratch, MinusZeroMode minus_zero_mode, Label *conversion_failed, Label::Distance dst=Label::kFar)
 
void X87TOSToI (Register result_reg, MinusZeroMode minus_zero_mode, Label *conversion_failed, Label::Distance dst=Label::kFar)
 
void TaggedToI (Register result_reg, Register input_reg, XMMRegister temp, MinusZeroMode minus_zero_mode, Label *lost_precision)
 
void SmiTag (Register reg)
 
void SmiUntag (Register reg)
 
void SmiUntag (Register reg, Label *is_smi)
 
void LoadUint32 (XMMRegister dst, Register src, XMMRegister scratch)
 
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)
 
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 Throw (BailoutReason reason)
 
void ThrowIf (Condition cc, BailoutReason reason)
 
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)
 
void AllocateTwoByteString (Register result, Register length, Register scratch1, Register scratch2, Register scratch3, Label *gc_required)
 
void AllocateAsciiString (Register result, Register length, Register scratch1, Register scratch2, Register scratch3, Label *gc_required)
 
void AllocateAsciiString (Register result, int length, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateTwoByteConsString (Register result, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateAsciiConsString (Register result, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateTwoByteSlicedString (Register result, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateAsciiSlicedString (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 IllegalOperation (int num_arguments)
 
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, Address thunk_address, 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 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 JumpIfInstanceTypeIsNotSequentialAscii (Register instance_type, Register scratch, Label *on_not_flat_ascii_string)
 
void JumpIfNotBothSequentialAsciiStrings (Register object1, Register object2, Register scratch1, Register scratch2, Label *on_not_flat_ascii_strings)
 
void JumpIfNotUniqueName (Register reg, Label *not_unique_name, Label::Distance distance=Label::kFar)
 
void JumpIfNotUniqueName (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)
 
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)
 
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)
 
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 AllocateAsciiString (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 AllocateAsciiConsString (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 AllocateAsciiSlicedString (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)
 
void AllocateHeapNumberWithValue (Register result, FPURegister value, Register scratch1, Register scratch2, Label *gc_required)
 
 DEFINE_INSTRUCTION (Addu)
 
 DEFINE_INSTRUCTION (Subu)
 
 DEFINE_INSTRUCTION (Mul)
 
 DEFINE_INSTRUCTION2 (Mult)
 
 DEFINE_INSTRUCTION2 (Multu)
 
 DEFINE_INSTRUCTION2 (Div)
 
 DEFINE_INSTRUCTION2 (Divu)
 
 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 PushSafepointRegistersAndDoubles ()
 
void PopSafepointRegistersAndDoubles ()
 
void StoreToSafepointRegisterSlot (Register src, Register dst)
 
void StoreToSafepointRegistersAndDoublesSlot (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 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 PushTryHandler (StackHandler::Kind kind, int handler_index)
 
void PopTryHandler ()
 
void Throw (Register value)
 
void ThrowUncatchable (Register value)
 
void Throw (BailoutReason reason)
 
void ThrowIf (Condition cc, BailoutReason reason, Register rs, Operand rt)
 
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)
 
void IllegalOperation (int num_arguments)
 
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 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 JumpIfBothInstanceTypesAreNotSequentialAscii (Register first_object_instance_type, Register second_object_instance_type, Register scratch1, Register scratch2, Label *failure)
 
void JumpIfInstanceTypeIsNotSequentialAscii (Register type, Register scratch, Label *failure)
 
void JumpIfNotUniqueName (Register reg, Label *not_unique_name)
 
void EmitSeqStringSetCharCheck (Register string, Register index, Register value, Register scratch, uint32_t encoding_mask)
 
void JumpIfNonSmisNotBothSequentialAsciiStrings (Register first, Register second, Register scratch1, Register scratch2, Label *failure)
 
void JumpIfNotBothSequentialAsciiStrings (Register first, Register second, Register scratch1, Register scratch2, Label *failure)
 
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 reg)
 
void Prologue (PrologueFrameMode frame_mode)
 
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)
 
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)
 
void RecordWriteArray (Register array, Register value, Register index, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK)
 
void RecordWrite (Register object, Register address, Register value, SaveFPRegsMode save_fp, RememberedSetAction remembered_set_action=EMIT_REMEMBERED_SET, SmiCheck smi_check=INLINE_SMI_CHECK)
 
void Prologue (PrologueFrameMode frame_mode)
 
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 JumpIfNotValidSmiValue (Register src, Label *on_invalid, 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)
 
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)
 
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 PushInt64AsTwoSmis (Register src, Register scratch=kScratchRegister)
 
void PopInt64AsTwoSmis (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 JumpIfNotBothSequentialAsciiStrings (Register first_object, Register second_object, Register scratch1, Register scratch2, Label *on_not_both_flat_ascii, Label::Distance near_jump=Label::kFar)
 
void JumpIfInstanceTypeIsNotSequentialAscii (Register instance_type, Register scratch, Label *on_not_flat_ascii_string, Label::Distance near_jump=Label::kFar)
 
void JumpIfBothInstanceTypesAreNotSequentialAscii (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 JumpIfNotUniqueName (Register reg, Label *not_unique_name, Label::Distance distance=Label::kFar)
 
void JumpIfNotUniqueName (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 TestBit (const Operand &dst, int bit_index)
 
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 Call (Label *target)
 
void Push (Register src)
 
void Push (const Operand &src)
 
void Push (Immediate value)
 
void PushImm32 (int32_t imm32)
 
void Pop (Register dst)
 
void Pop (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 *conversion_failed, Label::Distance dst=Label::kFar)
 
void TaggedToI (Register result_reg, Register input_reg, XMMRegister temp, MinusZeroMode minus_zero_mode, Label *lost_precision, Label::Distance dst=Label::kFar)
 
void LoadUint32 (XMMRegister dst, Register src, XMMRegister 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 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 Throw (BailoutReason reason)
 
void ThrowIf (Condition cc, BailoutReason reason)
 
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)
 
void AllocateTwoByteString (Register result, Register length, Register scratch1, Register scratch2, Register scratch3, Label *gc_required)
 
void AllocateAsciiString (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 AllocateAsciiConsString (Register result, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateTwoByteSlicedString (Register result, Register scratch1, Register scratch2, Label *gc_required)
 
void AllocateAsciiSlicedString (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 IllegalOperation (int num_arguments)
 
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, Address thunk_address, 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)
 
- Public Member Functions inherited from 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 Address target_pointer_address_at(Address pc))
 
 INLINE (static Address target_constant_pool_address_at(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))
 
 INLINE (static Address target_address_at(Address pc, Code *code))
 
 INLINE (static void set_target_address_at(Address pc, Code *code, Address target))
 
 INLINE (static Address target_address_from_return_address(Address pc))
 
 INLINE (static Address return_address_from_call_start(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 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 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 ImmediateFitsAddrMode1Instruction (int32_t imm32)
 
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)
 
MaybeObject * AllocateConstantPool (Heap *heap)
 
void PopulateConstantPool (ConstantPoolArray *constant_pool)
 
bool can_use_constant_pool () const
 
void set_constant_pool_full ()
 
 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 ConstantPoolMarker (uint32_t size)
 
void EmitPoolGuard ()
 
void ConstantPoolGuard ()
 
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 LoadLiteral (const CPURegister &rt, int offset_from_pc)
 
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 (const Register &rt, uint64_t imm)
 
void ldr (const FPRegister &ft, double imm)
 
void ldr (const FPRegister &ft, float 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 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)
 
unsigned num_pending_reloc_info () const
 
InstructionInstructionAt (int offset) const
 
void CheckConstPool (bool force_emit, bool require_jump)
 
MaybeObject * AllocateConstantPool (Heap *heap)
 
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)
 
void LoadRelocated (const CPURegister &rt, const Operand &operand)
 
 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 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 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 inc (Register dst)
 
void inc (const Operand &dst)
 
void lea (Register dst, const Operand &src)
 
void mul (Register src)
 
void neg (Register dst)
 
void not_ (Register 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_cl (Register 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_cl (Register dst)
 
void shrd (Register dst, Register src)
 
void shrd (Register dst, const Operand &src)
 
void shr (Register dst, uint8_t imm8)
 
void shr_cl (Register 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 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 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 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)
 
void Print ()
 
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)
 
MaybeObject * AllocateConstantPool (Heap *heap)
 
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 shifted_branch_offset (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))
 
 INLINE (static Address target_address_at(Address pc, Code *code))
 
 INLINE (static void set_target_address_at(Address pc, Code *code, Address target))
 
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 bgezal (Register rs, int16_t offset)
 
void bgtz (Register rs, int16_t offset)
 
void blez (Register rs, int16_t offset)
 
void bltz (Register rs, int16_t offset)
 
void bltzal (Register rs, int16_t offset)
 
void bne (Register rs, Register rt, int16_t offset)
 
void bne (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 mul (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 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 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 mfc1 (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 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 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 ()
 
MaybeObject * AllocateConstantPool (Heap *heap)
 
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)
 
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 movsxbq (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 rcl (Register dst, Immediate imm8)
 
void rol (Register dst, Immediate imm8)
 
void roll (Register dst, Immediate imm8)
 
void rcr (Register dst, Immediate imm8)
 
void ror (Register dst, Immediate imm8)
 
void rorl (Register dst, Immediate imm8)
 
void rorl_cl (Register dst)
 
void shld (Register dst, Register src)
 
void shrd (Register dst, Register src)
 
void sar (Register dst, Immediate shift_amount)
 
void sarl (Register dst, Immediate shift_amount)
 
void sar_cl (Register dst)
 
void sarl_cl (Register dst)
 
void shl (Register dst, Immediate shift_amount)
 
void shl_cl (Register dst)
 
void shll_cl (Register dst)
 
void shll (Register dst, Immediate shift_amount)
 
void shr (Register dst, Immediate shift_amount)
 
void shr_cl (Register dst)
 
void shrl_cl (Register dst)
 
void shrl (Register dst, Immediate shift_amount)
 
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 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 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)
 
MaybeObject * AllocateConstantPool (Heap *heap)
 
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)
 
- Public Member Functions inherited from 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 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 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 (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 void EmitFrameSetupForCodeAgePatching (Assembler *assm)
 
static void EmitCodeAgeSequence (Assembler *assm, Code *stub)
 
static bool IsYoungSequence (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 SafepointRegisterStackIndex (Register reg)
 
- Static Public Member Functions inherited from Assembler
static void deserialization_set_special_target_at (Address constant_pool_entry, Code *code, Address target)
 
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 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 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 IsMovT (Instr instr)
 
static bool IsMovW (Instr instr)
 
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)
 
static Address target_address_at (Address pc, Code *code)
 
static void set_target_address_at (Address pc, Code *code, Address target)
 
static Address target_address_from_return_address (Address pc)
 
static Address return_address_from_call_start (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 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 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)
 
static Address target_address_at (Address pc, Code *code)
 
static void set_target_address_at (Address pc, Code *code, Address target)
 
static Address target_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)
 
static Address target_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)
 
static Address target_address_at (Address pc, Code *code)
 
static void set_target_address_at (Address pc, Code *code, Address target)
 
static Address target_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 Public Member Functions inherited from AssemblerBase
static void QuietNaN (HeapObject *nan)
 
- Static Public Member Functions inherited from 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 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 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 AssemblerBase
static const int kMinimalBufferSize = 4*KB
 

Friends

class StandardFrame
 

Additional Inherited Members

- Protected Member Functions inherited from Assembler
int buffer_space () const
 
int target_at (int pos)
 
void target_at_put (int pos, int target_pos)
 
void StartBlockConstPool ()
 
void EndBlockConstPool ()
 
bool is_const_pool_blocked () const
 
bool is_constant_pool_available () 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 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
 
void call (const Operand &operand)
 
void jmp (const Operand &src)
 
- Static Protected Member Functions inherited from Assembler
static bool IsImmLSUnscaled (ptrdiff_t offset)
 
static bool IsImmLSScaled (ptrdiff_t offset, LSDataSize size)
 
static bool IsImmLogical (uint64_t value, unsigned width, unsigned *n, unsigned *imm_s, unsigned *imm_r)
 
static bool IsImmConditionalCompare (int64_t immediate)
 
static bool IsImmAddSub (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)
 
- Protected Attributes inherited from Assembler
TypeFeedbackId recorded_ast_id_
 
std::multimap< int, FarBranchInfounresolved_branches_
 
int next_veneer_pool_check_
 
- Protected Attributes inherited from AssemblerBase
bytebuffer_
 
int buffer_size_
 
bool own_buffer_
 
bytepc_
 
- Static Protected Attributes inherited from Assembler
static const int kVeneerDistanceMargin = 1 * KB
 
static const int kVeneerNoProtectionFactor = 2
 
static const int kVeneerDistanceCheckMargin
 

Detailed Description

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

Member Enumeration Documentation

Enumerator
kMissOnBoundFunction 
kDontMissOnBoundFunction 

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

Enumerator
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 

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

Enumerator
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 

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

Enumerator
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 

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

Enumerator
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 

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

Enumerator
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 
kReturnAtEnd 
kFallThroughAtEnd 

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

Constructor & Destructor Documentation

MacroAssembler ( Isolate isolate,
void *  buffer,
int  size 
)
MacroAssembler ( Isolate isolate,
byte buffer,
unsigned  buffer_size 
)
MacroAssembler ( Isolate isolate,
void *  buffer,
int  size 
)
MacroAssembler ( Isolate isolate,
void *  buffer,
int  size 
)
MacroAssembler ( Isolate isolate,
void *  buffer,
int  size 
)

Member Function Documentation

void Abort ( BailoutReason  reason)
void Abort ( BailoutReason  msg)
void Abort ( BailoutReason  msg)
void Abort ( BailoutReason  msg)
void Abort ( BailoutReason  reason)
void Abs ( const Register rd,
const Register rm,
Label *  is_not_representable = NULL,
Label *  is_representable = NULL 
)
static int ActivationFrameAlignment ( )
static
static int ActivationFrameAlignment ( )
static
int ActivationFrameAlignment ( )
void Adc ( const Register rd,
const Register rn,
const Operand operand 
)
inline
void Adcs ( const Register rd,
const Register rn,
const Operand operand 
)
inline
void Adds ( const Register rd,
const Register rn,
const Operand operand 
)
inline
void AddSmiField ( Register  dst,
const Operand src 
)
void AddSubMacro ( const Register rd,
const Register rn,
const Operand operand,
FlagsUpdate  S,
AddSubOp  op 
)
void AddSubWithCarryMacro ( const Register rd,
const Register rn,
const Operand operand,
FlagsUpdate  S,
AddSubWithCarryOp  op 
)
void AdduAndCheckForOverflow ( Register  dst,
Register  left,
Register  right,
Register  overflow_dst,
Register  scratch = at 
)
void Adr ( const Register rd,
Label *  label 
)
inline

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

References Assembler::adr(), ASSERT, and CPURegister::IsZero().

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 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 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 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 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 AllocateAsciiConsString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateAsciiConsString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateAsciiConsString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateAsciiConsString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateAsciiConsString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateAsciiSlicedString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateAsciiSlicedString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateAsciiSlicedString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateAsciiSlicedString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateAsciiSlicedString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateAsciiString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)
void AllocateAsciiString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)
void AllocateAsciiString ( Register  result,
int  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateAsciiString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)
void AllocateAsciiString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)
void AllocateAsciiString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)
void AllocateHeapNumber ( Register  result,
Register  scratch1,
Register  scratch2,
Register  heap_number_map,
Label *  gc_required,
TaggingMode  tagging_mode = TAG_RESULT 
)
void AllocateHeapNumber ( Register  result,
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 
)
void AllocateHeapNumber ( Register  result,
Register  scratch,
Label *  gc_required 
)
void AllocateHeapNumber ( Register  result,
Label *  gc_required,
Register  scratch1,
Register  scratch2,
Register  heap_number_map = NoReg 
)
void AllocateHeapNumberWithValue ( Register  result,
FPURegister  value,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateHeapNumberWithValue ( Register  result,
DwVfpRegister  value,
Register  scratch1,
Register  scratch2,
Register  heap_number_map,
Label *  gc_required 
)
void AllocateHeapNumberWithValue ( Register  result,
DoubleRegister  value,
Label *  gc_required,
Register  scratch1,
Register  scratch2,
Register  heap_number_map = NoReg 
)
void AllocateTwoByteConsString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateTwoByteConsString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateTwoByteConsString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateTwoByteConsString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateTwoByteConsString ( 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 AllocateTwoByteSlicedString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateTwoByteSlicedString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateTwoByteSlicedString ( Register  result,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateTwoByteSlicedString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Label *  gc_required 
)
void AllocateTwoByteString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)
void AllocateTwoByteString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)
void AllocateTwoByteString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)
void AllocateTwoByteString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)
void AllocateTwoByteString ( Register  result,
Register  length,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  gc_required 
)
bool AllowThisStubCall ( CodeStub *  stub)
inline
bool AllowThisStubCall ( CodeStub *  stub)
inline
bool AllowThisStubCall ( CodeStub *  stub)
bool AllowThisStubCall ( CodeStub *  stub)
inline
bool AllowThisStubCall ( CodeStub *  stub)
inline
void And ( const Register rd,
const Register rn,
const Operand operand 
)
inline
void Ands ( const Register rd,
const Register rn,
const Operand operand 
)
inline
void AnnotateInstrumentation ( const char *  marker_name)
inline

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

References ASSERT, and Assembler::movn().

int ArgumentStackSlotsForCFunctionCall ( int  num_arguments)
void Asr ( const Register rd,
const Register rn,
unsigned  shift 
)
inline

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

References Assembler::asr(), ASSERT, and CPURegister::IsZero().

Referenced by MacroAssembler::SmiUntag().

void Asr ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

References Assembler::asrv(), ASSERT, and CPURegister::IsZero().

void Assert ( Condition  cc,
BailoutReason  reason 
)
void Assert ( Condition  cond,
BailoutReason  reason 
)
void Assert ( Condition  cc,
BailoutReason  reason,
Register  rs,
Operand  rt 
)
void Assert ( Condition  cc,
BailoutReason  reason 
)
void Assert ( Condition  cond,
BailoutReason  reason 
)
void AssertFastElements ( Register  elements)
void AssertFastElements ( Register  elements)
void AssertFastElements ( Register  elements)
void AssertFastElements ( Register  elements)
void AssertFastElements ( Register  elements)
void AssertHasValidColor ( const Register reg)
void AssertIsRoot ( Register  reg,
Heap::RootListIndex  index 
)
void AssertIsRoot ( Register  reg,
Heap::RootListIndex  index 
)
void AssertIsString ( const Register object)
void AssertName ( Register  object)
void AssertName ( Register  object)
void AssertName ( Register  object)
void AssertName ( Register  object)
void AssertName ( Register  object)
void AssertNotSmi ( Register  object)
void AssertNotSmi ( Register  object,
BailoutReason  reason = kOperandIsASmi 
)
void AssertNotSmi ( Register  object)
void AssertNotSmi ( Register  object)
void AssertNotSmi ( Register  object)
void AssertNumber ( Register  object)
void AssertNumber ( Register  object)
void AssertRegisterIsClear ( Register  reg,
BailoutReason  reason 
)
void AssertRegisterIsRoot ( Register  reg,
Heap::RootListIndex  index,
BailoutReason  reason = kRegisterDidNotMatchExpectedRoot 
)
void AssertRootValue ( Register  src,
Heap::RootListIndex  root_value_index,
BailoutReason  reason 
)
void AssertSmi ( Register  object)
void AssertSmi ( Register  object,
BailoutReason  reason = kOperandIsNotASmi 
)
void AssertSmi ( Register  object)
void AssertSmi ( const Operand object)
void AssertSmi ( Register  object)
void AssertStackConsistency ( )
void AssertStackIsAligned ( )
void AssertString ( Register  object)
void AssertString ( Register  object)
void AssertString ( Register  object)
void AssertString ( Register  object)
void AssertString ( Register  object)
void AssertUndefinedOrAllocationSite ( Register  object)
void AssertUndefinedOrAllocationSite ( Register  object,
Register  scratch 
)
void AssertUndefinedOrAllocationSite ( Register  object)
void AssertUndefinedOrAllocationSite ( Register  object,
Register  scratch 
)
void AssertUndefinedOrAllocationSite ( Register  object,
Register  scratch 
)
void AssertZeroExtended ( Register  reg)
void B ( Label *  label)
inline

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

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

void B ( Condition  cond,
Label *  label 
)
inline

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

References ASSERT, and MacroAssembler::B().

void B ( Label *  label,
Condition  cond 
)
void Bfc ( 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 Bfi ( const Register rd,
const Register rn,
unsigned  lsb,
unsigned  width 
)
inline

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

References ASSERT, Assembler::bfi(), and CPURegister::IsZero().

void Bfxil ( const Register rd,
const Register rn,
unsigned  lsb,
unsigned  width 
)
inline

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

References ASSERT, Assembler::bfxil(), and CPURegister::IsZero().

void Bic ( const Register rd,
const Register rn,
const Operand operand 
)
inline
void Bics ( const Register rd,
const Register rn,
const Operand operand 
)
inline
void Bind ( Label *  label)
inline
void Bl ( Label *  label)
inline

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

References ASSERT, and Assembler::bl().

void Blr ( const Register xn)
inline

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

References ASSERT, Assembler::blr(), and CPURegister::IsZero().

void BooleanBitTest ( Register  object,
int  field_offset,
int  bit_index 
)
void Br ( const Register xn)
inline

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

References ASSERT, Assembler::br(), and CPURegister::IsZero().

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

Referenced by MacroAssembler::BranchF().

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

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

References MacroAssembler::BranchF().

void BranchOnNoOverflow ( Label *  label,
Register  overflow_check,
BranchDelaySlot  bd = PROTECT 
)
inline

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

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

void BranchOnOverflow ( Label *  label,
Register  overflow_check,
BranchDelaySlot  bd = PROTECT 
)
inline

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

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

Referenced by MacroAssembler::TrySmiTag().

void Brk ( int  code)
inline

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

References ASSERT, and Assembler::brk().

void BumpSystemStackPointer ( const Operand space)
inline
int CalculateStackPassedWords ( int  num_reg_arguments,
int  num_double_arguments 
)
int CalculateStackPassedWords ( int  num_reg_arguments,
int  num_double_arguments 
)
void Call ( Register  target,
Condition  cond = al 
)
void Call ( Address  target,
RelocInfo::Mode  rmode,
Condition  cond = al,
TargetAddressStorageMode  mode = CAN_INLINE_TARGET_ADDRESS 
)
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 Call ( Label *  target)
void Call ( Register  target,
COND_ARGS   
)
void Call ( Address  target,
RelocInfo::Mode  rmode,
COND_ARGS   
)
void Call ( Handle< Code code,
RelocInfo::Mode  rmode = RelocInfo::CODE_TARGET,
TypeFeedbackId  ast_id = TypeFeedbackId::None(),
COND_ARGS   
)
void Call ( Label *  target)
void Call ( Label *  target)
inline

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

References Assembler::call().

void Call ( Label *  target)
inline

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

References Assembler::call().

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() 
)
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 CallApiFunctionAndReturn ( Register  function_address,
Address  thunk_address,
Operand  thunk_last_arg,
int  stack_space,
Operand  return_value_operand,
Operand context_restore_operand 
)
void CallApiFunctionAndReturn ( Register  function_address,
ExternalReference  thunk_ref,
int  stack_space,
int  spill_offset,
MemOperand  return_value_operand,
MemOperand context_restore_operand 
)
void CallApiFunctionAndReturn ( Register  function_address,
ExternalReference  thunk_ref,
int  stack_space,
MemOperand  return_value_operand,
MemOperand context_restore_operand 
)
void CallApiFunctionAndReturn ( Register  function_address,
ExternalReference  thunk_ref,
int  stack_space,
MemOperand  return_value_operand,
MemOperand context_restore_operand 
)
void CallApiFunctionAndReturn ( Register  function_address,
Address  thunk_address,
Register  thunk_last_arg,
int  stack_space,
Operand  return_value_operand,
Operand context_restore_operand 
)
void CallCFunction ( ExternalReference  function,
int  num_arguments 
)
void CallCFunction ( Register  function,
int  num_arguments 
)
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 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 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 CallCFunction ( ExternalReference  function,
int  num_arguments 
)
void CallCFunction ( Register  function,
int  num_arguments 
)
void CallExternalReference ( ExternalReference  ref,
int  num_arguments 
)
void CallExternalReference ( const ExternalReference &  ext,
int  num_arguments 
)
void CallExternalReference ( const ExternalReference &  ext,
int  num_arguments 
)
void CallExternalReference ( const ExternalReference &  ext,
int  num_arguments,
BranchDelaySlot  bd = PROTECT 
)
void CallExternalReference ( const ExternalReference &  ext,
int  num_arguments 
)
void CallJSExitStub ( 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 
)
inline
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 
)
inline
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 
)
inline
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 
)
inline
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 
)
inline
void CallRuntimeSaveDoubles ( Runtime::FunctionId  id)
inline
void CallRuntimeSaveDoubles ( Runtime::FunctionId  id)
inline
void CallRuntimeSaveDoubles ( Runtime::FunctionId  id)
inline
void CallRuntimeSaveDoubles ( Runtime::FunctionId  id)
inline
void CallRuntimeSaveDoubles ( Runtime::FunctionId  id)
inline
void CallSelf ( )
inline

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

References Assembler::call(), and MacroAssembler::CodeObject().

void CallSelf ( )
inline

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

References MacroAssembler::Call(), and MacroAssembler::CodeObject().

static int CallSize ( Register  target,
Condition  cond = al 
)
static
int CallSize ( Address  target,
RelocInfo::Mode  rmode,
Condition  cond = al 
)
int CallSize ( Handle< Code code,
RelocInfo::Mode  rmode = RelocInfo::CODE_TARGET,
TypeFeedbackId  ast_id = TypeFeedbackId::None(),
Condition  cond = al 
)
static int CallSize ( Register  target,
COND_ARGS   
)
static
static int CallSize ( Address  target,
RelocInfo::Mode  rmode,
COND_ARGS   
)
static
int CallSize ( Handle< Code code,
RelocInfo::Mode  rmode = RelocInfo::CODE_TARGET,
TypeFeedbackId  ast_id = TypeFeedbackId::None(),
COND_ARGS   
)
int CallSize ( Address  destination)
inline

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

References Assembler::kCallSequenceLength.

int CallSize ( ExternalReference  ext)
int CallSize ( Handle< Code code_object)
inline

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

References Assembler::kShortCallInstructionLength.

int CallSize ( Register  target)
inline

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

References Register::high_bit().

int CallSize ( const Operand target)
inline

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

static int CallSize ( Register  target)
static
static int CallSize ( Label *  target)
static
static int CallSize ( Address  target,
RelocInfo::Mode  rmode 
)
static
static int CallSize ( Handle< Code code,
RelocInfo::Mode  rmode = RelocInfo::CODE_TARGET,
TypeFeedbackId  ast_id = TypeFeedbackId::None() 
)
static
static int CallSizeNotPredictableCodeSize ( Address  target,
RelocInfo::Mode  rmode,
Condition  cond = al 
)
static
void CallStub ( CodeStub *  stub,
TypeFeedbackId  ast_id = TypeFeedbackId::None() 
)
void CallStub ( CodeStub *  stub,
TypeFeedbackId  ast_id = TypeFeedbackId::None(),
Condition  cond = al 
)
void CallStub ( CodeStub *  stub,
TypeFeedbackId  ast_id = TypeFeedbackId::None() 
)
void CallStub ( CodeStub *  stub,
TypeFeedbackId  ast_id = TypeFeedbackId::None(),
COND_ARGS   
)
void CallStub ( CodeStub *  stub,
TypeFeedbackId  ast_id = TypeFeedbackId::None() 
)
void Cbnz ( const Register rt,
Label *  label 
)
void Cbz ( const Register rt,
Label *  label 
)
void Ccmn ( const Register rn,
const Operand operand,
StatusFlags  nzcv,
Condition  cond 
)
inline
void Ceil_w_d ( FPURegister  fd,
FPURegister  fs 
)
void Check ( Condition  cc,
BailoutReason  reason 
)
void Check ( Condition  cond,
BailoutReason  reason 
)
void Check ( Condition  cc,
BailoutReason  reason,
Register  rs,
Operand  rt 
)
void Check ( Condition  cc,
BailoutReason  reason 
)
void Check ( Condition  cond,
BailoutReason  reason 
)
void CheckAccessGlobalProxy ( Register  holder_reg,
Register  scratch,
Label *  miss 
)
void CheckAccessGlobalProxy ( Register  holder_reg,
Register  scratch1,
Register  scratch2,
Label *  miss 
)
void CheckAccessGlobalProxy ( Register  holder_reg,
Register  scratch,
Label *  miss 
)
void CheckAccessGlobalProxy ( Register  holder_reg,
Register  scratch,
Label *  miss 
)
void CheckAccessGlobalProxy ( Register  holder_reg,
Register  scratch1,
Register  scratch2,
Label *  miss 
)
Condition CheckBothNonNegativeSmi ( Register  first,
Register  second 
)
Condition CheckBothSmi ( Register  first,
Register  second 
)
Condition CheckEitherSmi ( Register  first,
Register  second,
Register  scratch = kScratchRegister 
)
void CheckEnumCache ( Label *  call_runtime)
void CheckEnumCache ( Register  null_value,
Label *  call_runtime 
)
void CheckEnumCache ( Register  null_value,
Label *  call_runtime 
)
void CheckEnumCache ( Register  null_value,
Label *  call_runtime 
)
void CheckEnumCache ( Register  object,
Register  null_value,
Register  scratch0,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  call_runtime 
)
void CheckFastElements ( Register  map,
Label *  fail,
Label::Distance  distance = Label::kFar 
)
void CheckFastElements ( Register  map,
Register  scratch,
Label *  fail 
)
void CheckFastElements ( Register  map,
Label *  fail,
Label::Distance  distance = Label::kFar 
)
void CheckFastElements ( Register  map,
Register  scratch,
Label *  fail 
)
void CheckFastElements ( Register  map,
Register  scratch,
Label *  fail 
)
void CheckFastObjectElements ( Register  map,
Label *  fail,
Label::Distance  distance = Label::kFar 
)
void CheckFastObjectElements ( Register  map,
Register  scratch,
Label *  fail 
)
void CheckFastObjectElements ( Register  map,
Label *  fail,
Label::Distance  distance = Label::kFar 
)
void CheckFastObjectElements ( Register  map,
Register  scratch,
Label *  fail 
)
void CheckFastObjectElements ( Register  map,
Register  scratch,
Label *  fail 
)
void CheckFastSmiElements ( Register  map,
Label *  fail,
Label::Distance  distance = Label::kFar 
)
void CheckFastSmiElements ( Register  map,
Register  scratch,
Label *  fail 
)
void CheckFastSmiElements ( Register  map,
Label *  fail,
Label::Distance  distance = Label::kFar 
)
void CheckFastSmiElements ( Register  map,
Register  scratch,
Label *  fail 
)
void CheckFor32DRegs ( Register  scratch)
Condition CheckInteger32ValidSmiValue ( Register  src)
Condition CheckIsMinSmi ( Register  src)
void CheckMap ( Register  obj,
Handle< Map map,
Label *  fail,
SmiCheckType  smi_check_type 
)
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,
Handle< Map map,
Label *  fail,
SmiCheckType  smi_check_type 
)
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,
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 CheckMapDeprecated ( Handle< Map map,
Register  scratch,
Label *  if_deprecated 
)
void CheckMapDeprecated ( Handle< Map map,
Register  scratch,
Label *  if_deprecated 
)
void CheckMapDeprecated ( Handle< Map map,
Register  scratch,
Label *  if_deprecated 
)
void CheckMapDeprecated ( Handle< Map map,
Register  scratch,
Label *  if_deprecated 
)
void CheckMapDeprecated ( Handle< Map map,
Register  scratch,
Label *  if_deprecated 
)
Condition CheckNonNegativeSmi ( Register  src)
void CheckObjectTypeRange ( Register  heap_object,
Register  map,
InstanceType  min_type,
InstanceType  max_type,
Label *  false_label 
)
void CheckPageFlag ( Register  object,
Register  scratch,
int  mask,
Condition  cc,
Label *  condition_met,
Label::Distance  condition_met_distance = Label::kFar 
)
void CheckPageFlag ( Register  object,
Register  scratch,
int  mask,
Condition  cc,
Label *  condition_met,
Label::Distance  condition_met_distance = Label::kFar 
)
void CheckPageFlag ( Register  object,
Register  scratch,
int  mask,
Condition  cc,
Label *  condition_met 
)
void CheckPageFlag ( Register  object,
Register  scratch,
int  mask,
Condition  cc,
Label *  condition_met 
)
void CheckPageFlagClear ( const Register object,
const Register scratch,
int  mask,
Label *  if_all_clear 
)
void CheckPageFlagForMap ( Handle< Map map,
int  mask,
Condition  cc,
Label *  condition_met,
Label::Distance  condition_met_distance = Label::kFar 
)
void CheckPageFlagSet ( const Register object,
const Register scratch,
int  mask,
Label *  if_any_set 
)
void CheckRegisterIsClear ( Register  reg,
BailoutReason  reason 
)
Condition CheckSmi ( Register  src)
Condition CheckSmi ( const Operand src)
void CheckSmiToIndicator ( Register  dst,
Register  src 
)
void CheckSmiToIndicator ( Register  dst,
const Operand src 
)
void CheckStackAlignment ( )
void CheckStackAlignment ( )
Condition CheckUInteger32ValidSmiValue ( Register  src)
void Cinc ( const Register rd,
const Register rn,
Condition  cond 
)
inline
void Cinv ( const Register rd,
const Register rn,
Condition  cond 
)
inline
void Claim ( uint64_t  count,
uint64_t  unit_size = kXRegSize 
)
inline
void ClampDoubleToUint8 ( XMMRegister  input_reg,
XMMRegister  scratch_reg,
Register  result_reg 
)
void ClampDoubleToUint8 ( Register  output,
DoubleRegister  input,
DoubleRegister  dbl_scratch 
)
void ClampDoubleToUint8 ( XMMRegister  input_reg,
XMMRegister  temp_xmm_reg,
Register  result_reg 
)
void ClampDoubleToUint8 ( Register  result_reg,
DwVfpRegister  input_reg,
LowDwVfpRegister  double_scratch 
)
void ClampDoubleToUint8 ( Register  result_reg,
DoubleRegister  input_reg,
DoubleRegister  temp_double_reg 
)
void ClampInt32ToUint8 ( Register  in_out)
void ClampInt32ToUint8 ( Register  output,
Register  input 
)
void ClampUint8 ( Register  reg)
void ClampUint8 ( Register  reg)
void ClampUint8 ( Register  output_reg,
Register  input_reg 
)
void ClampUint8 ( Register  output_reg,
Register  input_reg 
)
void Cls ( const Register rd,
const Register rn 
)
inline

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

References ASSERT, Assembler::cls(), and CPURegister::IsZero().

void Clz ( Register  rd,
Register  rs 
)
void Clz ( const Register rd,
const Register rn 
)
inline

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

References ASSERT, Assembler::clz(), and CPURegister::IsZero().

void Cmn ( const Register rn,
const Operand operand 
)
inline
void CmovX ( const Register rd,
const Register rn,
Condition  cond 
)
inline
void Cmp ( const Register rn,
const Operand operand 
)
inline
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 CmpHeapObject ( Register  reg,
Handle< HeapObject object 
)
void CmpInstanceType ( Register  map,
InstanceType  type 
)
void CmpInstanceType ( Register  map,
InstanceType  type 
)
void CmpObject ( Register  reg,
Handle< Object object 
)
inline

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

References Assembler::cmp(), and MacroAssembler::CmpHeapObject().

void CmpObjectType ( Register  heap_object,
InstanceType  type,
Register  map 
)
void CmpObjectType ( Register  heap_object,
InstanceType  type,
Register  map 
)
void Cneg ( const Register rd,
const Register rn,
Condition  cond 
)
inline
Handle<Object> CodeObject ( )
inline
Handle<Object> CodeObject ( )
inline

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

References ASSERT.

Handle<Object> CodeObject ( )
inline

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

References ASSERT.

Handle<Object> CodeObject ( )
inline

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

References ASSERT.

void CompareAndSplit ( const Register lhs,
const Operand rhs,
Condition  cond,
Label *  if_true,
Label *  if_false,
Label *  fall_through 
)
void CompareInstanceType ( Register  map,
Register  type_reg,
InstanceType  type 
)
void CompareInstanceType ( Register  map,
Register  type_reg,
InstanceType  type 
)
void CompareMap ( Register  obj,
Handle< Map map 
)
void CompareMap ( Register  obj,
Register  scratch,
Handle< Map map,
Label *  early_success 
)
void CompareMap ( Register  obj_map,
Handle< Map map,
Label *  early_success 
)
void CompareMap ( Register  obj,
Handle< Map map 
)
void CompareMap ( Register  obj,
Register  scratch,
Handle< Map map 
)
void CompareMap ( Register  obj_map,
Handle< Map map 
)
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 CompareObjectType ( Register  heap_object,
Register  map,
Register  type_reg,
InstanceType  type 
)
void CompareObjectType ( Register  heap_object,
Register  map,
Register  type_reg,
InstanceType  type 
)
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 CompareRoot ( Register  with,
Heap::RootListIndex  index 
)
void CompareRoot ( const Operand with,
Heap::RootListIndex  index 
)
void CompareRoot ( Register  obj,
Heap::RootListIndex  index 
)
void CompareRoot ( const Register obj,
Heap::RootListIndex  index 
)
void ConditionalCompareMacro ( const Register rn,
const Operand operand,
StatusFlags  nzcv,
Condition  cond,
ConditionalCompareOp  op 
)
void CopyBytes ( Register  source,
Register  destination,
Register  length,
Register  scratch 
)
void CopyBytes ( Register  src,
Register  dst,
Register  length,
Register  scratch 
)
void CopyBytes ( Register  src,
Register  dst,
Register  length,
Register  scratch 
)
void CopyBytes ( Register  dst,
Register  src,
Register  length,
Register  scratch,
CopyHint  hint = kCopyUnknown 
)
void CopyBytes ( Register  destination,
Register  source,
Register  length,
int  min_length = 0,
Register  scratch = kScratchRegister 
)
void CopyFields ( Register  dst,
Register  src,
LowDwVfpRegister  double_scratch,
int  field_count 
)
void CopyFields ( Register  dst,
Register  src,
RegList  temps,
int  field_count 
)
void CopyFields ( Register  dst,
Register  src,
CPURegList  temps,
unsigned  count 
)
static unsigned CountClearHalfWords ( uint64_t  imm,
unsigned  reg_size 
)
static
void Csel ( const Register rd,
const Register rn,
const Operand operand,
Condition  cond 
)
void Cset ( const Register rd,
Condition  cond 
)
inline
void Csetm ( const Register rd,
Condition  cond 
)
inline
void Csinc ( const Register rd,
const Register rn,
const Register rm,
Condition  cond 
)
inline
void Csinv ( const Register rd,
const Register rn,
const Register rm,
Condition  cond 
)
inline
void Csneg ( const Register rd,
const Register rn,
const Register rm,
Condition  cond 
)
inline
void Cvt_d_uw ( FPURegister  fd,
FPURegister  fs,
FPURegister  scratch 
)
void Cvt_d_uw ( FPURegister  fd,
Register  rs,
FPURegister  scratch 
)
void Cvtlsi2sd ( XMMRegister  dst,
Register  src 
)
void Cvtlsi2sd ( XMMRegister  dst,
const Operand src 
)
void Cvtsi2sd ( XMMRegister  dst,
Register  src 
)
inline

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

References MacroAssembler::Cvtsi2sd().

Referenced by MacroAssembler::Cvtsi2sd().

void Cvtsi2sd ( XMMRegister  dst,
const Operand src 
)
void CzeroX ( const Register rd,
Condition  cond 
)
inline
void Debug ( const char *  message,
uint32_t  code,
Instr  params = BREAK 
)
inline

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

References ASSERT, and Assembler::debug().

void DecodeField ( Register  reg)
inline
void DecodeField ( Register  reg)
inline
void DecodeField ( Register  reg)
inline

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

References shift, Assembler::shl(), and Assembler::shr().

void DecodeField ( Register  reg)
inline
void DecodeField ( Register  reg)
inline
void DecrementCounter ( StatsCounter counter,
int  value 
)
void DecrementCounter ( Condition  cc,
StatsCounter counter,
int  value 
)
void DecrementCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)
void DecrementCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)
void DecrementCounter ( StatsCounter counter,
int  value 
)
void DecrementCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)
DEFINE_INSTRUCTION ( Addu  )
DEFINE_INSTRUCTION ( Subu  )
DEFINE_INSTRUCTION ( Mul  )
DEFINE_INSTRUCTION ( And  )
DEFINE_INSTRUCTION ( Or  )
DEFINE_INSTRUCTION ( Xor  )
DEFINE_INSTRUCTION ( Nor  )
DEFINE_INSTRUCTION ( Slt  )
DEFINE_INSTRUCTION ( Sltu  )
DEFINE_INSTRUCTION ( Ror  )
DEFINE_INSTRUCTION2 ( Mult  )
DEFINE_INSTRUCTION2 ( Multu  )
DEFINE_INSTRUCTION2 ( Div  )
DEFINE_INSTRUCTION2 ( Divu  )
DEFINE_INSTRUCTION2 ( Neg  )
void DisableInstrumentation ( )
inline
void DispatchMap ( Register  obj,
Register  unused,
Handle< Map map,
Handle< Code success,
SmiCheckType  smi_check_type 
)
void DispatchMap ( Register  obj,
Register  scratch,
Handle< Map map,
Handle< Code success,
SmiCheckType  smi_check_type 
)
void DispatchMap ( Register  obj,
Register  unused,
Handle< Map map,
Handle< Code success,
SmiCheckType  smi_check_type 
)
void DispatchMap ( Register  obj,
Register  scratch,
Handle< Map map,
Handle< Code success,
SmiCheckType  smi_check_type 
)
void DispatchMap ( Register  obj,
Register  scratch,
Handle< Map map,
Handle< Code success,
SmiCheckType  smi_check_type 
)
void Dmb ( BarrierDomain  domain,
BarrierType  type 
)
inline

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

References ASSERT, and Assembler::dmb().

void DoubleToI ( Register  result_reg,
XMMRegister  input_reg,
XMMRegister  scratch,
MinusZeroMode  minus_zero_mode,
Label *  conversion_failed,
Label::Distance  dst = Label::kFar 
)
void DoubleToI ( Register  result_reg,
XMMRegister  input_reg,
XMMRegister  scratch,
MinusZeroMode  minus_zero_mode,
Label *  conversion_failed,
Label::Distance  dst = Label::kFar 
)
void Drop ( int  count,
Condition  cond = al 
)
void Drop ( int  count,
Condition  cond = cc_always,
Register  reg = no_reg,
const Operand op = Operand(no_reg) 
)
void Drop ( uint64_t  count,
uint64_t  unit_size = kXRegSize 
)
inline
void Drop ( int  element_count)
void Drop ( int  stack_elements)
void Dropad ( )
void DropAndRet ( int  drop)
void DropAndRet ( int  drop,
Condition  cond,
Register  reg,
const Operand op 
)
void Dsb ( BarrierDomain  domain,
BarrierType  type 
)
inline

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

References ASSERT, and Assembler::dsb().

static void EmitCodeAgeSequence ( Assembler assm,
Code stub 
)
static
void EmitCodeAgeSequence ( Code stub)
void EmitFPUTruncate ( FPURoundingMode  rounding_mode,
Register  result,
DoubleRegister  double_input,
Register  scratch,
DoubleRegister  double_scratch,
Register  except_flag,
CheckForInexactConversion  check_inexact = kDontCheckForInexactConversion 
)
static void EmitFrameSetupForCodeAgePatching ( Assembler assm)
static
void EmitFrameSetupForCodeAgePatching ( )
void EmitSeqStringSetCharCheck ( Register  string,
Register  index,
Register  value,
uint32_t  encoding_mask 
)
void EmitSeqStringSetCharCheck ( Register  string,
Register  index,
Register  value,
uint32_t  encoding_mask 
)
void EmitSeqStringSetCharCheck ( Register  string,
Register  index,
Register  value,
uint32_t  encoding_mask 
)
void EmitSeqStringSetCharCheck ( Register  string,
Register  index,
Register  value,
Register  scratch,
uint32_t  encoding_mask 
)
void EmitSeqStringSetCharCheck ( Register  string,
Register  index,
SeqStringSetCharCheckIndexType  index_type,
Register  scratch,
uint32_t  encoding_mask 
)
void EnableInstrumentation ( )
inline
void EnsureNotWhite ( Register  object,
Register  scratch1,
Register  scratch2,
Label *  object_is_white_and_not_data,
Label::Distance  distance 
)
void EnsureNotWhite ( Register  object,
Register  scratch1,
Register  scratch2,
Label *  object_is_white_and_not_data,
Label::Distance  distance 
)
void EnsureNotWhite ( Register  object,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  object_is_white_and_not_data 
)
void EnsureNotWhite ( Register  object,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  object_is_white_and_not_data 
)
void EnsureNotWhite ( Register  object,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Register  scratch4,
Label *  object_is_white_and_not_data 
)
void EnterApiExitFrame ( int  argc)
void EnterApiExitFrame ( int  arg_stack_space)
void EnterExitFrame ( bool  save_doubles)
void EnterExitFrame ( int  arg_stack_space = 0,
bool  save_doubles = false 
)
void EnterExitFrame ( bool  save_doubles,
int  stack_space = 0 
)
void EnterExitFrame ( bool  save_doubles,
int  stack_space = 0 
)
void EnterExitFrame ( bool  save_doubles,
const Register scratch,
int  extra_space = 0 
)
void EnterFrame ( StackFrame::Type  type)
void EnterFrame ( StackFrame::Type  type,
bool  load_constant_pool = false 
)
void EnterFrame ( StackFrame::Type  type)
void EnterFrame ( StackFrame::Type  type)
void EnterFrame ( StackFrame::Type  type)
void EnumLength ( Register  dst,
Register  map 
)
void EnumLength ( Register  dst,
Register  map 
)
void EnumLength ( Register  dst,
Register  map 
)
void EnumLength ( Register  dst,
Register  map 
)
void EnumLengthSmi ( Register  dst,
Register  map 
)
void EnumLengthUntagged ( Register  dst,
Register  map 
)
void Eon ( const Register rd,
const Register rn,
const Operand operand 
)
inline
void Eor ( const Register rd,
const Register rn,
const Operand operand 
)
inline
void ExitFramePreserveFPRegs ( )
void ExitFrameRestoreFPRegs ( )
void Ext ( Register  rt,
Register  rs,
uint16_t  pos,
uint16_t  size 
)
Operand ExternalOperand ( ExternalReference  reference,
Register  scratch = kScratchRegister 
)
void Extr ( const Register rd,
const Register rn,
const Register rm,
unsigned  lsb 
)
inline

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

References ASSERT, Assembler::extr(), and CPURegister::IsZero().

void Fabs ( const FPRegister fd,
const FPRegister fn 
)
inline

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

References ASSERT, and Assembler::fabs().

void Fadd ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm 
)
inline

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

References ASSERT, and Assembler::fadd().

void Fccmp ( const FPRegister fn,
const FPRegister fm,
StatusFlags  nzcv,
Condition  cond 
)
inline
void Fcmp ( const FPRegister fn,
const FPRegister fm 
)
inline

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

References ASSERT, and Assembler::fcmp().

void Fcmp ( const FPRegister fn,
double  value 
)
inline
void FCmp ( )
void FCmp ( )
void Fcsel ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm,
Condition  cond 
)
inline
void Fcvt ( const FPRegister fd,
const FPRegister fn 
)
inline

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

References ASSERT, and Assembler::fcvt().

void Fcvtas ( const Register rd,
const FPRegister fn 
)
inline

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

References ASSERT, Assembler::fcvtas(), and CPURegister::IsZero().

void Fcvtau ( const Register rd,
const FPRegister fn 
)
inline

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

References ASSERT, Assembler::fcvtau(), and CPURegister::IsZero().

void Fcvtms ( const Register rd,
const FPRegister fn 
)
inline

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

References ASSERT, Assembler::fcvtms(), and CPURegister::IsZero().

void Fcvtmu ( const Register rd,
const FPRegister fn 
)
inline

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

References ASSERT, Assembler::fcvtmu(), and CPURegister::IsZero().

void Fcvtns ( const Register rd,
const FPRegister fn 
)
inline

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

References ASSERT, Assembler::fcvtns(), and CPURegister::IsZero().

void Fcvtnu ( const Register rd,
const FPRegister fn 
)
inline

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

References ASSERT, Assembler::fcvtnu(), and CPURegister::IsZero().

void Fcvtzs ( const Register rd,
const FPRegister fn 
)
inline

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

References ASSERT, Assembler::fcvtzs(), and CPURegister::IsZero().

void Fcvtzu ( const Register rd,
const FPRegister fn 
)
inline

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

References ASSERT, Assembler::fcvtzu(), and CPURegister::IsZero().

void Fdiv ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm 
)
inline

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

References ASSERT, and Assembler::fdiv().

void FillFields ( Register  dst,
Register  field_count,
Register  filler 
)
void Floor_w_d ( FPURegister  fd,
FPURegister  fs 
)
void FlushICache ( Register  address,
unsigned  instructions 
)
void Fmadd ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm,
const FPRegister fa 
)
inline

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

References ASSERT, and Assembler::fmadd().

void Fmax ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm 
)
inline

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

References ASSERT, and Assembler::fmax().

void Fmaxnm ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm 
)
inline

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

References ASSERT, and Assembler::fmaxnm().

void Fmin ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm 
)
inline

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

References ASSERT, and Assembler::fmin().

void Fminnm ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm 
)
inline

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

References ASSERT, and Assembler::fminnm().

void Fmov ( FPRegister  fd,
FPRegister  fn 
)
inline
void Fmov ( FPRegister  fd,
Register  rn 
)
inline

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

References ASSERT, and Assembler::fmov().

void Fmov ( FPRegister  fd,
T  imm 
)
inline

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

References ASSERT, and MacroAssembler::Fmov().

void Fmov ( Register  rd,
FPRegister  fn 
)
inline

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

References ASSERT, Assembler::fmov(), and CPURegister::IsZero().

void FmoveHigh ( Register  dst_high,
FPURegister  src 
)
inline
void FmoveLow ( Register  dst_low,
FPURegister  src 
)
inline

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

References Assembler::mfc1().

void Fmsub ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm,
const FPRegister fa 
)
inline

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

References ASSERT, and Assembler::fmsub().

void Fmul ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm 
)
inline

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

References ASSERT, and Assembler::fmul().

void Fneg ( const FPRegister fd,
const FPRegister fn 
)
inline

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

References ASSERT, and Assembler::fneg().

void Fnmadd ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm,
const FPRegister fa 
)
inline

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

References ASSERT, and Assembler::fnmadd().

void Fnmsub ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm,
const FPRegister fa 
)
inline

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

References ASSERT, and Assembler::fnmsub().

CPURegList* FPTmpList ( )
inline

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

Referenced by RegisterDump::Dump().

void Frinta ( const FPRegister fd,
const FPRegister fn 
)
inline

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

References ASSERT, and Assembler::frinta().

void Frintn ( const FPRegister fd,
const FPRegister fn 
)
inline

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

References ASSERT, and Assembler::frintn().

void Frintz ( const FPRegister fd,
const FPRegister fn 
)
inline

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

References ASSERT, and Assembler::frintz().

void Fsqrt ( const FPRegister fd,
const FPRegister fn 
)
inline

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

References ASSERT, and Assembler::fsqrt().

void Fsub ( const FPRegister fd,
const FPRegister fn,
const FPRegister fm 
)
inline

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

References ASSERT, and Assembler::fsub().

bool generating_stub ( )
inline

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

bool generating_stub ( )
inline

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

bool generating_stub ( ) const
inline

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

bool generating_stub ( )
inline

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

bool generating_stub ( )
inline

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

void GetBuiltinEntry ( Register  target,
Builtins::JavaScript  id 
)
void GetBuiltinEntry ( Register  target,
Builtins::JavaScript  id 
)
void GetBuiltinEntry ( Register  target,
Register  function,
Builtins::JavaScript  id 
)
void GetBuiltinEntry ( Register  target,
Builtins::JavaScript  id 
)
void GetBuiltinEntry ( Register  target,
Builtins::JavaScript  id 
)
void GetBuiltinFunction ( Register  target,
Builtins::JavaScript  id 
)
void GetBuiltinFunction ( Register  target,
Builtins::JavaScript  id 
)
void GetBuiltinFunction ( Register  target,
Builtins::JavaScript  id 
)
void GetBuiltinFunction ( Register  target,
Builtins::JavaScript  id 
)
void GetBuiltinFunction ( Register  target,
Builtins::JavaScript  id 
)
static int GetCodeMarker ( Instr  instr)
inlinestatic
void GetLeastBitsFromInt32 ( Register  dst,
Register  src,
int  mun_least_bits 
)
void GetLeastBitsFromInt32 ( Register  dst,
Register  src,
int  mun_least_bits 
)
void GetLeastBitsFromSmi ( Register  dst,
Register  src,
int  num_least_bits 
)
void GetLeastBitsFromSmi ( Register  dst,
Register  src,
int  num_least_bits 
)
void GetMarkBits ( Register  addr_reg,
Register  bitmap_reg,
Register  shift_reg 
)
inline
void GetNumberHash ( Register  reg0,
Register  scratch 
)
void GetNumberHash ( Register  r0,
Register  scratch 
)
void GetNumberHash ( Register  t0,
Register  scratch 
)
void GetNumberHash ( Register  r0,
Register  scratch 
)
void GetNumberHash ( Register  key,
Register  scratch 
)
void GetObjectType ( Register  function,
Register  map,
Register  type_reg 
)
void GetRelocatedValue ( Register  li_location,
Register  value,
Register  scratch 
)
void GetRelocatedValueLocation ( Register  ldr_location,
Register  result 
)
void GetRelocatedValueLocation ( Register  ldr_location,
Register  result 
)
bool has_frame ( )
inline

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

bool has_frame ( )
inline

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

Referenced by Builtins::SetUp().

bool has_frame ( ) const
inline

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

bool has_frame ( )
inline

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

bool has_frame ( )
inline

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

void HasColor ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  has_color,
Label::Distance  has_color_distance,
int  first_bit,
int  second_bit 
)
void HasColor ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  has_color,
int  first_bit,
int  second_bit 
)
void HasColor ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  has_color,
int  first_bit,
int  second_bit 
)
void HasColor ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  has_color,
int  first_bit,
int  second_bit 
)
void Hint ( SystemHint  code)
inline

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

References ASSERT, and Assembler::hint().

void Hlt ( int  code)
inline

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

References ASSERT, and Assembler::hlt().

void IllegalOperation ( int  num_arguments)
void IllegalOperation ( int  num_arguments)
void IllegalOperation ( int  num_arguments)
void IllegalOperation ( int  num_arguments)
void IncrementalMarkingRecordWriteHelper ( Register  object,
Register  value,
Register  address 
)
void IncrementalMarkingRecordWriteHelper ( Register  object,
Register  value,
Register  address 
)
void IncrementCounter ( StatsCounter counter,
int  value 
)
void IncrementCounter ( Condition  cc,
StatsCounter counter,
int  value 
)
void IncrementCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)
void IncrementCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)
void IncrementCounter ( StatsCounter counter,
int  value 
)
void IncrementCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)
void IndexFromHash ( Register  hash,
Register  index 
)
void IndexFromHash ( Register  hash,
Register  index 
)
void IndexFromHash ( Register  hash,
Register  index 
)
void IndexFromHash ( Register  hash,
Register  index 
)
void IndexFromHash ( Register  hash,
Register  index 
)
void InitializeFieldsWithFiller ( Register  start_offset,
Register  end_offset,
Register  filler 
)
void InitializeFieldsWithFiller ( Register  start_offset,
Register  end_offset,
Register  filler 
)
void InitializeFieldsWithFiller ( Register  start_offset,
Register  end_offset,
Register  filler 
)
void InitializeFieldsWithFiller ( Register  start_offset,
Register  end_offset,
Register  filler 
)
void InitializeRootRegister ( )
inline
void InitializeRootRegister ( )
inline
void InitializeRootRegister ( )
inline
void InitializeRootRegister ( )
inline
void InlineData ( uint64_t  data)
inline

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

References ASSERT, and Assembler::movz().

void Ins ( Register  rt,
Register  rs,
uint16_t  pos,
uint16_t  size 
)
void Integer32ToSmi ( Register  dst,
Register  src 
)
void Integer32ToSmiField ( const Operand dst,
Register  src 
)
void Integer64PlusConstantToSmi ( Register  dst,
Register  src,
int  constant 
)
void InvokeBuiltin ( Builtins::JavaScript  id,
InvokeFlag  flag,
const CallWrapper call_wrapper = NullCallWrapper() 
)
void InvokeBuiltin ( Builtins::JavaScript  id,
InvokeFlag  flag,
const CallWrapper call_wrapper = NullCallWrapper() 
)
void InvokeBuiltin ( Builtins::JavaScript  id,
InvokeFlag  flag,
const CallWrapper call_wrapper = NullCallWrapper() 
)
void InvokeBuiltin ( Builtins::JavaScript  id,
InvokeFlag  flag,
const CallWrapper call_wrapper = NullCallWrapper() 
)
void InvokeBuiltin ( Builtins::JavaScript  id,
InvokeFlag  flag,
const CallWrapper call_wrapper = NullCallWrapper() 
)
void InvokeCode ( Register  code,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)
inline

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

References MacroAssembler::InvokeCode().

void InvokeCode ( const Operand code,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)
void InvokeCode ( Register  code,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)
void InvokeCode ( Register  code,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
const CallWrapper call_wrapper 
)
void InvokeCode ( Register  code,
const ParameterCount &  expected,
const ParameterCount &  actual,
InvokeFlag  flag,
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 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 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 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 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 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 Isb ( )
inline

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

References ASSERT, and Assembler::isb().

static bool IsImmMovn ( uint64_t  imm,
unsigned  reg_size 
)
static
static bool IsImmMovz ( uint64_t  imm,
unsigned  reg_size 
)
static
void IsInstanceJSObjectType ( Register  map,
Register  scratch,
Label *  fail 
)
void IsInstanceJSObjectType ( Register  map,
Register  scratch,
Label *  fail 
)
void IsInstanceJSObjectType ( Register  map,
Register  scratch,
Label *  fail 
)
inline
static bool IsMarkedCode ( Instr  instr,
int  type 
)
inlinestatic
static bool IsMarkedCode ( Instr  instr,
int  type 
)
inlinestatic
void IsObjectJSObjectType ( Register  heap_object,
Register  map,
Register  scratch,
Label *  fail 
)
void IsObjectJSObjectType ( Register  heap_object,
Register  map,
Register  scratch,
Label *  fail 
)
void IsObjectJSObjectType ( Register  heap_object,
Register  map,
Register  scratch,
Label *  fail 
)
void IsObjectJSObjectType ( Register  heap_object,
Register  map,
Register  scratch,
Label *  fail 
)
inline
void IsObjectJSStringType ( Register  object,
Register  scratch,
Label *  fail 
)
void IsObjectJSStringType ( Register  object,
Register  scratch,
Label *  fail 
)
Condition IsObjectNameType ( Register  heap_object,
Register  map,
Register  instance_type 
)
void IsObjectNameType ( Register  object,
Register  scratch,
Label *  fail 
)
void IsObjectNameType ( Register  object,
Register  scratch,
Label *  fail 
)
Condition IsObjectNameType ( Register  heap_object,
Register  map,
Register  instance_type 
)
void IsObjectNameType ( Register  object,
Register  type,
Label *  fail 
)
inline
Condition IsObjectStringType ( Register  heap_object,
Register  map,
Register  instance_type 
)
Condition IsObjectStringType ( Register  heap_object,
Register  map,
Register  instance_type 
)
bool IsUnsafeImmediate ( const Immediate &  x)
bool IsUnsafeInt ( const int32_t  x)
static bool IsYoungSequence ( byte sequence)
static
void jmp ( Label *  L)
inline

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

References MacroAssembler::Branch().

void jmp ( Label *  L)
inline
void Jump ( Register  target,
Condition  cond = al 
)
void Jump ( Address  target,
RelocInfo::Mode  rmode,
Condition  cond = al 
)
void Jump ( Handle< Code code,
RelocInfo::Mode  rmode,
Condition  cond = al 
)
void Jump ( Register  target,
COND_ARGS   
)
void Jump ( intptr_t  target,
RelocInfo::Mode  rmode,
COND_ARGS   
)
void Jump ( Address  target,
RelocInfo::Mode  rmode,
COND_ARGS   
)
void Jump ( Handle< Code code,
RelocInfo::Mode  rmode,
COND_ARGS   
)
void Jump ( Address  destination,
RelocInfo::Mode  rmode 
)
void Jump ( ExternalReference  ext)
void Jump ( const Operand op)
void Jump ( Handle< Code code_object,
RelocInfo::Mode  rmode 
)
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 JumpForHeapNumber ( Register  object,
Register  heap_number_map,
Label *  on_heap_number,
Label *  on_not_heap_number = NULL 
)
void JumpIfBlack ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  on_black,
Label::Distance  on_black_distance = Label::kFar 
)
void JumpIfBlack ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  on_black,
Label::Distance  on_black_distance = Label::kFar 
)
void JumpIfBlack ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  on_black 
)
void JumpIfBlack ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  on_black 
)
void JumpIfBlack ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  on_black 
)
void JumpIfBothInstanceTypesAreNotSequentialAscii ( Register  first_object_instance_type,
Register  second_object_instance_type,
Register  scratch1,
Register  scratch2,
Label *  on_fail,
Label::Distance  near_jump = Label::kFar 
)
void JumpIfBothInstanceTypesAreNotSequentialAscii ( Register  first_object_instance_type,
Register  second_object_instance_type,
Register  scratch1,
Register  scratch2,
Label *  failure 
)
void JumpIfBothInstanceTypesAreNotSequentialAscii ( Register  first_object_instance_type,
Register  second_object_instance_type,
Register  scratch1,
Register  scratch2,
Label *  failure 
)
void JumpIfBothInstanceTypesAreNotSequentialAscii ( Register  first_object_instance_type,
Register  second_object_instance_type,
Register  scratch1,
Register  scratch2,
Label *  failure 
)
void JumpIfBothNotSmi ( Register  value1,
Register  value2,
Label *  not_smi_label 
)
inline
void JumpIfBothSmi ( Register  value1,
Register  value2,
Label *  both_smi_label,
Label *  not_smi_label = NULL 
)
inline
void JumpIfDataObject ( Register  value,
Register  scratch,
Label *  not_data_object,
Label::Distance  not_data_object_distance 
)
void JumpIfDataObject ( Register  value,
Register  scratch,
Label *  not_data_object 
)
void JumpIfDataObject ( Register  value,
Register  scratch,
Label *  not_data_object 
)
void JumpIfDataObject ( Register  value,
Register  scratch,
Label *  not_data_object 
)
void JumpIfDictionaryInPrototypeChain ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  found 
)
void JumpIfDictionaryInPrototypeChain ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  found 
)
void JumpIfDictionaryInPrototypeChain ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  found 
)
void JumpIfDictionaryInPrototypeChain ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  found 
)
void JumpIfDictionaryInPrototypeChain ( Register  object,
Register  scratch0,
Register  scratch1,
Label *  found 
)
void JumpIfEitherInstanceTypeIsNotSequentialAscii ( Register  first_object_instance_type,
Register  second_object_instance_type,
Register  scratch1,
Register  scratch2,
Label *  failure 
)
void JumpIfEitherIsNotSequentialAsciiStrings ( Register  first,
Register  second,
Register  scratch1,
Register  scratch2,
Label *  failure,
SmiCheckType  smi_check = DO_SMI_CHECK 
)
void JumpIfEitherNotSmi ( Register  value1,
Register  value2,
Label *  not_smi_label 
)
inline
void JumpIfEitherSmi ( Register  value1,
Register  value2,
Label *  either_smi_label,
Label *  not_smi_label = NULL 
)
inline
void JumpIfEitherSmi ( Register  reg1,
Register  reg2,
Label *  on_either_smi 
)
void JumpIfEitherSmi ( Register  reg1,
Register  reg2,
Label *  on_either_smi 
)
void JumpIfHeapNumber ( Register  object,
Label *  on_heap_number,
Register  heap_number_map = NoReg 
)
void JumpIfInNewSpace ( Register  object,
Register  scratch,
Label *  branch,
Label::Distance  distance = Label::kFar 
)
inline

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

References v8::internal::not_zero.

void JumpIfInNewSpace ( Register  object,
Register  scratch,
Label *  branch,
Label::Distance  distance = Label::kFar 
)
inline

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

References v8::internal::equal.

void JumpIfInNewSpace ( Register  object,
Register  scratch,
Label *  branch 
)
inline

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

References v8::internal::eq.

void JumpIfInNewSpace ( Register  object,
Register  scratch,
Label *  branch 
)
inline

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

References v8::internal::eq.

void JumpIfInNewSpace ( Register  object,
Label *  branch 
)
inline

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

References v8::internal::eq.

void JumpIfInstanceTypeIsNotSequentialAscii ( Register  instance_type,
Register  scratch,
Label *  on_not_flat_ascii_string,
Label::Distance  near_jump = Label::kFar 
)
void JumpIfInstanceTypeIsNotSequentialAscii ( Register  instance_type,
Register  scratch,
Label *  on_not_flat_ascii_string 
)
void JumpIfInstanceTypeIsNotSequentialAscii ( Register  type,
Register  scratch,
Label *  failure 
)
void JumpIfInstanceTypeIsNotSequentialAscii ( Register  type,
Register  scratch,
Label *  failure 
)
void JumpIfInstanceTypeIsNotSequentialAscii ( Register  type,
Register  scratch,
Label *  failure 
)
void JumpIfJSArrayHasAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  memento_found 
)
inline
void JumpIfJSArrayHasAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  memento_found 
)
inline
void JumpIfJSArrayHasAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  memento_found 
)
inline
void JumpIfJSArrayHasAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  memento_found 
)
inline
void JumpIfJSArrayHasAllocationMemento ( Register  receiver,
Register  scratch1,
Register  scratch2,
Label *  memento_found 
)
inline
void JumpIfMinusZero ( DoubleRegister  input,
Label *  on_negative_zero 
)
void JumpIfNonSmisNotBothSequentialAsciiStrings ( Register  object1,
Register  object2,
Register  scratch1,
Register  scratch2,
Label *  failure 
)
void JumpIfNonSmisNotBothSequentialAsciiStrings ( Register  first,
Register  second,
Register  scratch1,
Register  scratch2,
Label *  failure 
)
void JumpIfNotBothSequentialAsciiStrings ( Register  first_object,
Register  second_object,
Register  scratch1,
Register  scratch2,
Label *  on_not_both_flat_ascii,
Label::Distance  near_jump = Label::kFar 
)
void JumpIfNotBothSequentialAsciiStrings ( Register  object1,
Register  object2,
Register  scratch1,
Register  scratch2,
Label *  on_not_flat_ascii_strings 
)
void JumpIfNotBothSequentialAsciiStrings ( Register  first,
Register  second,
Register  scratch1,
Register  scratch2,
Label *  not_flat_ascii_strings 
)
void JumpIfNotBothSequentialAsciiStrings ( Register  first,
Register  second,
Register  scratch1,
Register  scratch2,
Label *  failure 
)
void JumpIfNotBothSmi ( Register  src1,
Register  src2,
Label *  on_not_both_smi,
Label::Distance  near_jump = Label::kFar 
)
void JumpIfNotBothSmi ( Register  reg1,
Register  reg2,
Label *  on_not_both_smi 
)
void JumpIfNotBothSmi ( Register  reg1,
Register  reg2,
Label *  on_not_both_smi 
)
void JumpIfNotHeapNumber ( Register  object,
Label *  on_not_heap_number,
Register  heap_number_map = NoReg 
)
void JumpIfNotHeapNumber ( Register  object,
Register  heap_number_map,
Register  scratch,
Label *  on_not_heap_number 
)
void JumpIfNotHeapNumber ( Register  object,
Register  heap_number_map,
Register  scratch,
Label *  on_not_heap_number 
)
void JumpIfNotInNewSpace ( Register  object,
Register  scratch,
Label *  branch,
Label::Distance  distance = Label::kFar 
)
inline

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

References v8::internal::zero.

void JumpIfNotInNewSpace ( Register  object,
Register  scratch,
Label *  branch,
Label::Distance  distance = Label::kFar 
)
inline

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

References v8::internal::not_equal.

void JumpIfNotInNewSpace ( Register  object,
Register  scratch,
Label *  branch 
)
inline

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

References v8::internal::ne.

void JumpIfNotInNewSpace ( Register  object,
Register  scratch,
Label *  branch 
)
inline

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

References v8::internal::ne.

void JumpIfNotInNewSpace ( Register  object,
Label *  branch 
)
inline

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

References v8::internal::ne.

void JumpIfNotObjectType ( Register  object,
Register  map,
Register  type_reg,
InstanceType  type,
Label *  if_not_object 
)
void JumpIfNotPowerOfTwoOrZero ( Register  reg,
Register  scratch,
Label *  not_power_of_two_or_zero 
)
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 JumpIfNotRoot ( const Register obj,
Heap::RootListIndex  index,
Label *  if_not_equal 
)
void JumpIfNotSmi ( Register  src,
Label *  on_not_smi,
Label::Distance  near_jump = Label::kFar 
)
void JumpIfNotSmi ( Register  value,
Label *  not_smi_label,
Label::Distance  distance = Label::kFar 
)
inline
void JumpIfNotSmi ( Register  value,
Label *  not_smi_label 
)
inline
void JumpIfNotSmi ( Register  value,
Label *  not_smi_label 
)
inline
void JumpIfNotSmi ( Register  value,
Label *  not_smi_label,
Register  scratch = at,
BranchDelaySlot  bd = PROTECT 
)
void JumpIfNotString ( Register  object,
Register  object_map,
Label *  not_string,
Label::Distance  near_jump = Label::kFar 
)
void JumpIfNotUniqueName ( Register  reg,
Label *  not_unique_name,
Label::Distance  distance = Label::kFar 
)
void JumpIfNotUniqueName ( Operand  operand,
Label *  not_unique_name,
Label::Distance  distance = Label::kFar 
)
void JumpIfNotUniqueName ( Register  reg,
Label *  not_unique_name,
Label::Distance  distance = Label::kFar 
)
inline

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

References MacroAssembler::JumpIfNotUniqueName().

void JumpIfNotUniqueName ( Operand  operand,
Label *  not_unique_name,
Label::Distance  distance = Label::kFar 
)
void JumpIfNotUniqueName ( Register  type,
Label *  not_unique_name 
)
void JumpIfNotUniqueName ( Register  reg,
Label *  not_unique_name 
)
void JumpIfNotUniqueName ( Register  reg,
Label *  not_unique_name 
)
void JumpIfNotValidSmiValue ( Register  src,
Label *  on_invalid,
Label::Distance  near_jump = Label::kFar 
)
void JumpIfObjectType ( Register  object,
Register  map,
Register  type_reg,
InstanceType  type,
Label *  if_cond_pass,
Condition  cond = eq 
)
void JumpIfRoot ( const Register obj,
Heap::RootListIndex  index,
Label *  if_equal 
)
void JumpIfSmi ( Register  value,
Label *  smi_label,
Label::Distance  distance = Label::kFar 
)
inline
void JumpIfSmi ( Register  src,
Label *  on_smi,
Label::Distance  near_jump = Label::kFar 
)
void JumpIfSmi ( Operand  value,
Label *  smi_label,
Label::Distance  distance = Label::kFar 
)
inline
void JumpIfSmi ( Register  value,
Label *  smi_label,
Label *  not_smi_label = NULL 
)
inline
void JumpIfSmi ( Register  value,
Label *  smi_label 
)
inline
void JumpIfSmi ( Register  value,
Label *  smi_label,
Register  scratch = at,
BranchDelaySlot  bd = PROTECT 
)
void JumpIfSmiEqualsConstant ( Register  src,
Smi constant,
Label *  on_equals,
Label::Distance  near_jump = Label::kFar 
)
void JumpIfUIntNotValidSmiValue ( Register  src,
Label *  on_invalid,
Label::Distance  near_jump = Label::kFar 
)
void JumpToExternalReference ( const ExternalReference &  ext)
void JumpToExternalReference ( const ExternalReference &  builtin)
void JumpToExternalReference ( const ExternalReference &  builtin)
void JumpToExternalReference ( const ExternalReference &  builtin,
BranchDelaySlot  bd = PROTECT 
)
void JumpToExternalReference ( const ExternalReference &  ext,
int  result_size 
)
void JumpUnlessBothNonNegativeSmi ( Register  src1,
Register  src2,
Label *  on_not_both_smi,
Label::Distance  near_jump = Label::kFar 
)
void JumpUnlessNonNegativeSmi ( Register  src,
Label *  on_not_smi,
Label::Distance  near_jump = Label::kFar 
)
void Ldnp ( const CPURegister rt,
const CPURegister rt2,
const MemOperand src 
)
inline
void Ldp ( const CPURegister rt,
const CPURegister rt2,
const MemOperand src 
)
inline

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

References v8::internal::AreAliased(), ASSERT, and Assembler::ldp().

void Ldpsw ( const Register rt,
const Register rt2,
const MemOperand src 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::ldpsw().

void Ldr ( const FPRegister ft,
double  imm 
)
inline
void Ldr ( const FPRegister ft,
float  imm 
)
inline
void Ldr ( const Register rt,
uint64_t  imm 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::ldr().

void Ldrd ( Register  dst1,
Register  dst2,
const MemOperand src,
Condition  cond = al 
)
void LeaveApiExitFrame ( bool  restore_context)
void LeaveApiExitFrame ( bool  restore_context)
void LeaveExitFrame ( bool  save_doubles)
void LeaveExitFrame ( bool  save_doubles = false)
void LeaveExitFrame ( bool  save_doubles,
Register  argument_count,
bool  restore_context 
)
void LeaveExitFrame ( bool  save_doubles,
Register  arg_count,
bool  restore_context,
bool  do_return = NO_EMIT_RETURN 
)
void LeaveExitFrame ( bool  save_doubles,
const Register scratch,
bool  restore_context 
)
void LeaveFrame ( StackFrame::Type  type)
void LeaveFrame ( StackFrame::Type  type)
void LeaveFrame ( StackFrame::Type  type)
void LeaveFrame ( StackFrame::Type  type)
void li ( Register  rd,
int32_t  j,
LiFlags  mode = OPTIMIZE_SIZE 
)
inline

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

References MacroAssembler::li(), and v8::internal::mode().

void li ( Register  dst,
Handle< Object value,
LiFlags  mode = OPTIMIZE_SIZE 
)
void Load ( Register  dst,
const Operand src,
Representation  r 
)
void Load ( Register  destination,
ExternalReference  source 
)
void Load ( Register  dst,
const MemOperand src,
Representation  r 
)
void Load ( const Register rt,
const MemOperand addr,
Representation  r 
)
void Load ( Register  dst,
const MemOperand src,
Representation  r 
)
void Load ( Register  dst,
const Operand src,
Representation  r 
)
void LoadAddress ( Register  destination,
ExternalReference  source 
)
int LoadAddressSize ( ExternalReference  source)
void LoadContext ( Register  dst,
int  context_chain_length 
)
void LoadContext ( Register  dst,
int  context_chain_length 
)
void LoadContext ( Register  dst,
int  context_chain_length 
)
void LoadContext ( Register  dst,
int  context_chain_length 
)
void LoadContext ( Register  dst,
int  context_chain_length 
)
void LoadElementsKindFromMap ( Register  result,
Register  map 
)
void LoadFromNumberDictionary ( Label *  miss,
Register  elements,
Register  key,
Register  result,
Register  reg0,
Register  reg1,
Register  reg2 
)
void LoadFromNumberDictionary ( Label *  miss,
Register  elements,
Register  key,
Register  r0,
Register  r1,
Register  r2,
Register  result 
)
void LoadFromNumberDictionary ( Label *  miss,
Register  elements,
Register  key,
Register  result,
Register  t0,
Register  t1,
Register  t2 
)
void LoadFromNumberDictionary ( Label *  miss,
Register  elements,
Register  key,
Register  r0,
Register  r1,
Register  r2,
Register  result 
)
void LoadFromNumberDictionary ( Label *  miss,
Register  elements,
Register  key,
Register  result,
Register  scratch0,
Register  scratch1,
Register  scratch2,
Register  scratch3 
)
void LoadFromSafepointRegisterSlot ( Register  dst,
Register  src 
)
void LoadFromSafepointRegisterSlot ( Register  dst,
Register  src 
)
void LoadFromSafepointRegisterSlot ( Register  dst,
Register  src 
)
void LoadFromSafepointRegisterSlot ( Register  dst,
Register  src 
)
void LoadFromSafepointRegisterSlot ( Register  dst,
Register  src 
)
inline
void LoadGlobalCell ( Register  dst,
Handle< Cell cell 
)
void LoadGlobalFunction ( int  index,
Register  function 
)
void LoadGlobalFunction ( int  index,
Register  function 
)
void LoadGlobalFunction ( int  index,
Register  function 
)
void LoadGlobalFunction ( int  index,
Register  function 
)
void LoadGlobalFunction ( int  index,
Register  function 
)
void LoadGlobalFunctionInitialMap ( Register  function,
Register  map 
)
void LoadGlobalFunctionInitialMap ( Register  function,
Register  map,
Register  scratch 
)
void LoadGlobalFunctionInitialMap ( Register  function,
Register  map,
Register  scratch 
)
void LoadGlobalFunctionInitialMap ( Register  function,
Register  map 
)
void LoadGlobalFunctionInitialMap ( Register  function,
Register  map,
Register  scratch 
)
void LoadHeapObject ( Register  result,
Handle< HeapObject object 
)
void LoadHeapObject ( Register  dst,
Handle< HeapObject object 
)
void LoadInstanceDescriptors ( Register  map,
Register  descriptors 
)
void LoadInstanceDescriptors ( Register  map,
Register  descriptors 
)
void LoadInstanceDescriptors ( Register  map,
Register  descriptors 
)
void LoadInstanceDescriptors ( Register  map,
Register  descriptors 
)
void LoadInstanceDescriptors ( Register  map,
Register  descriptors 
)
void LoadNumber ( Register  object,
LowDwVfpRegister  dst,
Register  heap_number_map,
Register  scratch,
Label *  not_number 
)
void LoadNumber ( Register  object,
FPURegister  dst,
Register  heap_number_map,
Register  scratch,
Label *  not_number 
)
void LoadNumberAsInt32 ( Register  object,
Register  dst,
Register  heap_number_map,
Register  scratch,
DwVfpRegister  double_scratch0,
LowDwVfpRegister  double_scratch1,
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 LoadNumberAsInt32Double ( Register  object,
DwVfpRegister  double_dst,
Register  heap_number_map,
Register  scratch,
LowDwVfpRegister  double_scratch,
Label *  not_int32 
)
void LoadNumberAsInt32Double ( Register  object,
DoubleRegister  double_dst,
Register  heap_number_map,
Register  scratch1,
Register  scratch2,
FPURegister  double_scratch,
Label *  not_int32 
)
void LoadObject ( Register  result,
Handle< Object object 
)
inline
void LoadObject ( Register  result,
Handle< Object object 
)
inline
void LoadPowerOf2 ( XMMRegister  dst,
Register  scratch,
int  power 
)
void LoadRoot ( Register  destination,
Heap::RootListIndex  index 
)
void LoadRoot ( Register  destination,
Heap::RootListIndex  index 
)
void LoadRoot ( Register  destination,
Heap::RootListIndex  index,
Condition  cond = al 
)
void LoadRoot ( Register  destination,
Heap::RootListIndex  index 
)
void LoadRoot ( Register  destination,
Heap::RootListIndex  index,
Condition  cond,
Register  src1,
const Operand src2 
)
void LoadRoot ( Register  destination,
Heap::RootListIndex  index 
)
void LoadRootIndexed ( Register  destination,
Register  variable_offset,
int  fixed_offset 
)
void LoadStoreMacro ( const CPURegister rt,
const MemOperand addr,
LoadStoreOp  op 
)
void LoadTransitionedArrayMapConditional ( ElementsKind  expected_kind,
ElementsKind  transitioned_kind,
Register  map_in_out,
Register  scratch,
Label *  no_map_match 
)
void LoadTransitionedArrayMapConditional ( ElementsKind  expected_kind,
ElementsKind  transitioned_kind,
Register  map_in_out,
Register  scratch,
Label *  no_map_match 
)
void LoadTransitionedArrayMapConditional ( ElementsKind  expected_kind,
ElementsKind  transitioned_kind,
Register  map_in_out,
Register  scratch,
Label *  no_map_match 
)
void LoadTransitionedArrayMapConditional ( ElementsKind  expected_kind,
ElementsKind  transitioned_kind,
Register  map_in_out,
Register  scratch,
Label *  no_map_match 
)
void LoadTransitionedArrayMapConditional ( ElementsKind  expected_kind,
ElementsKind  transitioned_kind,
Register  map_in_out,
Register  scratch1,
Register  scratch2,
Label *  no_map_match 
)
void LoadTrueFalseRoots ( Register  true_root,
Register  false_root 
)
void LoadUint32 ( XMMRegister  dst,
Register  src,
XMMRegister  scratch 
)
void LoadUint32 ( XMMRegister  dst,
Register  src,
XMMRegister  scratch 
)
void LoadUint32NoSSE2 ( Register  src)
void LookupNumberStringCache ( Register  object,
Register  result,
Register  scratch1,
Register  scratch2,
Label *  not_found 
)
void LookupNumberStringCache ( Register  object,
Register  result,
Register  scratch1,
Register  scratch2,
Label *  not_found 
)
void LookupNumberStringCache ( Register  object,
Register  result,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  not_found 
)
void LookupNumberStringCache ( Register  object,
Register  result,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  not_found 
)
void LookupNumberStringCache ( Register  object,
Register  result,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  not_found 
)
void Lsl ( const Register rd,
const Register rn,
unsigned  shift 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::lsl().

Referenced by MacroAssembler::SmiTag().

void Lsl ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::lslv().

void Lsr ( const Register rd,
const Register rn,
unsigned  shift 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::lsr().

void Lsr ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::lsrv().

void Madd ( const Register rd,
const Register rn,
const Register rm,
const Register ra 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::madd().

void MarkCode ( NopMarkerTypes  type)
inline

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

References Assembler::nop().

void MarkCode ( NopMarkerTypes  type)
inline

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

References Assembler::nop().

void Mneg ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::mneg().

void Mov ( const Register rd,
uint64_t  imm 
)
void Mov ( const Register rd,
const Register rm 
)
inline
void Move ( Register  dst,
Register  src,
Condition  cond = al 
)
void Move ( DwVfpRegister  dst,
DwVfpRegister  src 
)
void Move ( Register  dst,
Register  src 
)
inline

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

References Register::is(), and MacroAssembler::mov().

void Move ( FPURegister  dst,
FPURegister  src 
)
inline

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

References FPURegister::is(), and Assembler::mov_d().

void Move ( Register  dst_low,
Register  dst_high,
FPURegister  src 
)
inline
void Move ( FPURegister  dst,
Register  src_low,
Register  src_high 
)
inline
void Move ( FPURegister  dst,
double  imm 
)
void Move ( Register  dst,
Smi source 
)
inline

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

void Move ( const Operand dst,
Smi source 
)
inline

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

References Assembler::movp().

void Move ( Register  target,
Register  source 
)
void Move ( Register  dst,
Handle< Object source 
)
void Move ( const Operand dst,
Handle< Object source 
)
void Move ( Register  dst,
Register  src 
)
inline

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

References MacroAssembler::Mov().

void Move ( Register  target,
Register  source 
)
void Move ( Register  dst,
const Immediate &  x 
)
void Move ( Register  dst,
ExternalReference  ext 
)
inline

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

References Assembler::movp().

void Move ( const Operand dst,
const Immediate &  x 
)
void Move ( XMMRegister  dst,
double  val 
)
void Move ( Register  dst,
void *  ptr,
RelocInfo::Mode  rmode 
)
inline

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

References ASSERT, and Assembler::movp().

void Move ( Register  dst,
Handle< Object value,
RelocInfo::Mode  rmode 
)
inline

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

References ASSERT, AssemblerBase::isolate(), and Assembler::movp().

void MoveHeapObject ( Register  result,
Handle< Object object 
)
void Movf ( Register  rd,
Register  rs,
uint16_t  cc = 0 
)
void MovFromFloatParameter ( DwVfpRegister  dst)
void MovFromFloatParameter ( DoubleRegister  dst)
void MovFromFloatResult ( DwVfpRegister  dst)
void MovFromFloatResult ( DoubleRegister  dst)
void Movk ( const Register rd,
uint64_t  imm,
int  shift = -1 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::movk().

void Movn ( Register  rd,
Register  rs,
Register  rt 
)
void Movt ( Register  rd,
Register  rs,
uint16_t  cc = 0 
)
void MovToFloatParameter ( DwVfpRegister  src)
void MovToFloatParameter ( DoubleRegister  src)
void MovToFloatParameters ( DwVfpRegister  src1,
DwVfpRegister  src2 
)
void MovToFloatParameters ( DoubleRegister  src1,
DoubleRegister  src2 
)
void MovToFloatResult ( DwVfpRegister  src)
void MovToFloatResult ( DoubleRegister  src)
void Movz ( Register  rd,
Register  rs,
Register  rt 
)
void Mrs ( const Register rt,
SystemRegister  sysreg 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::mrs().

void Msr ( SystemRegister  sysreg,
const Register rt 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::msr().

void Msub ( const Register rd,
const Register rn,
const Register rm,
const Register ra 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::msub().

void Mul ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::mul().

void MultiPop ( RegList  regs)
void MultiPopFPU ( RegList  regs)
void MultiPopReversed ( RegList  regs)
void MultiPopReversedFPU ( RegList  regs)
void MultiPush ( RegList  regs)
void MultiPushFPU ( RegList  regs)
void MultiPushReversed ( RegList  regs)
void MultiPushReversedFPU ( RegList  regs)
void Mvn ( const Register rd,
uint64_t  imm 
)
inline

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

References ASSERT, CPURegister::IsZero(), and MacroAssembler::Mov().

void Mvn ( const Register rd,
const Operand operand 
)
bool NeedExtraInstructionsOrRegisterBranch ( Label *  label,
ImmBranchType  branch_type 
)
void NegativeZeroTest ( Register  result,
Register  op,
Label *  then_label 
)
void NegativeZeroTest ( Register  result,
Register  op1,
Register  op2,
Register  scratch,
Label *  then_label 
)
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 Negs ( const Register rd,
const Operand operand 
)
inline
void Ngc ( const Register rd,
const Operand operand 
)
inline
void Ngcs ( const Register rd,
const Operand operand 
)
inline
void NonNegativeSmiTst ( Register  value)
inline
void NonNegativeSmiTst ( Register  value,
Register  scratch 
)
inline
void Nop ( )
inline

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

References Assembler::nop().

void NumberOfOwnDescriptors ( Register  dst,
Register  map 
)
void NumberOfOwnDescriptors ( Register  dst,
Register  map 
)
void NumberOfOwnDescriptors ( Register  dst,
Register  map 
)
void NumberOfOwnDescriptors ( Register  dst,
Register  map 
)
void NumberOfOwnDescriptors ( Register  dst,
Register  map 
)
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 Orn ( const Register rd,
const Register rn,
const Operand operand 
)
inline
void Orr ( const Register rd,
const Register rn,
const Operand operand 
)
inline
void PatchRelocatedValue ( Register  li_location,
Register  scratch,
Register  new_value 
)
void Peek ( const CPURegister dst,
const Operand offset 
)
void PeekPair ( const CPURegister dst1,
const CPURegister dst2,
int  offset 
)
void Poke ( const CPURegister src,
const Operand offset 
)
void PokePair ( const CPURegister src1,
const CPURegister src2,
int  offset 
)
void Pop ( Register  dst)
inline

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

References Assembler::pop().

Referenced by MacroAssembler::Pop(), and MacroAssembler::pop().

void Pop ( const CPURegister dst0,
const CPURegister dst1 = NoReg,
const CPURegister dst2 = NoReg,
const CPURegister dst3 = NoReg 
)
void pop ( Register  dst)
inline

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

References MacroAssembler::Pop().

void pop ( Register  dst)
inline
void Pop ( Register  dst)
inline

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

References Assembler::pop().

void Pop ( Register  src1,
Register  src2 
)
inline
void Pop ( Register  src1,
Register  src2,
Register  src3 
)
inline
void Pop ( uint32_t  count = 1)
inline

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

References v8::internal::kPointerSize, and v8::internal::sp.

void Pop ( Register  dst)
inline

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

References Assembler::pop().

void Pop ( Register  dst)
void Pop ( const Operand dst)
void Popad ( )
void PopCalleeSavedRegisters ( )
void PopCallerSaved ( SaveFPRegsMode  fp_mode,
Register  exclusion1 = no_reg,
Register  exclusion2 = no_reg,
Register  exclusion3 = no_reg 
)
void PopCPURegList ( CPURegList  registers)
void PopDRegList ( RegList  regs)
inline
void PopFixedFrame ( Register  marker_reg = no_reg)
void PopInt64AsTwoSmis ( Register  dst,
Register  scratch = kScratchRegister 
)
void PopReturnAddressTo ( Register  dst)
inline

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

References Assembler::popq().

void PopSafepointRegisters ( )
inline

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

References Assembler::popad().

void PopSafepointRegisters ( )
inline

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

References MacroAssembler::Popad().

void PopSafepointRegisters ( )
void PopSafepointRegisters ( )
void PopSafepointRegisters ( )
void PopSafepointRegistersAndDoubles ( )
void PopSafepointRegistersAndDoubles ( )
void PopSafepointRegistersAndDoubles ( )
void PopSRegList ( RegList  regs)
inline
void PopTryHandler ( )
void PopTryHandler ( )
void PopTryHandler ( )
void PopTryHandler ( )
void PopTryHandler ( )
void PopWRegList ( RegList  regs)
inline
void PopXRegList ( RegList  regs)
inline
void PositiveSmiDivPowerOfTwoToInteger32 ( Register  dst,
Register  src,
int  power 
)
void PositiveSmiTimesPowerOfTwoToInteger64 ( Register  dst,
Register  src,
int  power 
)
void Pref ( int32_t  hint,
const MemOperand rs 
)
void PrepareCallApiFunction ( int  argc)
void PrepareCallApiFunction ( int  arg_stack_space)
void PrepareCallCFunction ( int  num_arguments,
Register  scratch 
)
void PrepareCallCFunction ( int  num_reg_arguments,
int  num_double_registers,
Register  scratch 
)
void PrepareCallCFunction ( int  num_reg_arguments,
Register  scratch 
)
void PrepareCallCFunction ( int  num_reg_arguments,
int  num_double_registers,
Register  scratch 
)
void PrepareCallCFunction ( int  num_reg_arguments,
Register  scratch 
)
void PrepareCallCFunction ( int  num_arguments)
void PrepareCEntryArgs ( int  num_args)
inline
void PrepareCEntryFunction ( const ExternalReference &  ref)
inline

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

References MacroAssembler::li(), and v8::internal::s2.

void Printf ( const char *  format,
const CPURegister arg0 = NoCPUReg,
const CPURegister arg1 = NoCPUReg,
const CPURegister arg2 = NoCPUReg,
const 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 Prologue ( PrologueFrameMode  frame_mode)
void Prologue ( PrologueFrameMode  frame_mode)
void Prologue ( PrologueFrameMode  frame_mode)
void Prologue ( PrologueFrameMode  frame_mode)
void Prologue ( PrologueFrameMode  frame_mode)
void Push ( Register  src)
inline

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

References MacroAssembler::push().

Referenced by MacroAssembler::Push(), and MacroAssembler::push().

void Push ( Smi smi)
inline

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

References AssemblerBase::isolate(), and MacroAssembler::Push().

Referenced by MacroAssembler::Push().

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 Push ( Handle< Object handle)
inline
void Push ( Smi smi)
inline

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

References AssemblerBase::isolate(), and MacroAssembler::Push().

Referenced by MacroAssembler::Push().

void push ( Register  src)
inline

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

References MacroAssembler::Push().

Referenced by MacroAssembler::Push().

void push ( Register  src)
inline
void Push ( Register  src)
inline

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

References MacroAssembler::push().

void Push ( Handle< Object handle)
void Push ( Smi smi)
inline

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

References AssemblerBase::isolate(), and MacroAssembler::Push().

Referenced by MacroAssembler::Push().

void Push ( Register  src1,
Register  src2 
)
inline
void Push ( Register  src1,
Register  src2,
Register  src3 
)
inline
void Push ( Register  src1,
Register  src2,
Register  src3,
Register  src4 
)
inline
void Push ( Register  src,
Condition  cond,
Register  tst1,
Register  tst2 
)
inline
void Push ( Smi smi)
void Push ( Handle< Object source)
void Push ( Register  src)
inline

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

References MacroAssembler::push().

void Push ( Register  src)
void Push ( const Operand src)
void Push ( Immediate  value)
void Push ( Handle< Object handle)
inline

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

References MacroAssembler::push().

void Push ( Smi smi)
inline

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

References AssemblerBase::isolate(), and MacroAssembler::Push().

Referenced by MacroAssembler::Push().

void Pushad ( )
void PushAddress ( ExternalReference  source)
void PushCalleeSavedRegisters ( )
void PushCallerSaved ( SaveFPRegsMode  fp_mode,
Register  exclusion1 = no_reg,
Register  exclusion2 = no_reg,
Register  exclusion3 = no_reg 
)
void PushCPURegList ( CPURegList  registers)
void PushDRegList ( RegList  regs)
inline
void PushFixedFrame ( Register  marker_reg = no_reg)
void PushHeapObject ( Handle< HeapObject object)
void PushImm32 ( int32_t  imm32)
void PushInt64AsTwoSmis ( Register  src,
Register  scratch = kScratchRegister 
)
void PushMultipleTimes ( CPURegister  src,
Register  count 
)
void PushMultipleTimes ( CPURegister  src,
int  count 
)
void PushReturnAddressFrom ( Register  src)
inline

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

References Assembler::pushq().

void PushRoot ( Heap::RootListIndex  index)
void PushSafepointRegisters ( )
inline

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

References Assembler::pushad().

void PushSafepointRegisters ( )
inline

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

References MacroAssembler::Pushad().

void PushSafepointRegisters ( )
void PushSafepointRegisters ( )
void PushSafepointRegisters ( )
void PushSafepointRegistersAndDoubles ( )
void PushSafepointRegistersAndDoubles ( )
void PushSafepointRegistersAndDoubles ( )
void PushSRegList ( RegList  regs)
inline
void PushTryHandler ( StackHandler::Kind  kind,
int  handler_index 
)
void PushTryHandler ( StackHandler::Kind  kind,
int  handler_index 
)
void PushTryHandler ( StackHandler::Kind  kind,
int  handler_index 
)
void PushTryHandler ( StackHandler::Kind  kind,
int  handler_index 
)
void PushTryHandler ( StackHandler::Kind  kind,
int  handler_index 
)
void PushWRegList ( RegList  regs)
inline
void PushXRegList ( RegList  regs)
inline
void Rbit ( const Register rd,
const Register rn 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::rbit().

void RecordWrite ( Register  object,
Register  address,
Register  value,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK 
)
void RecordWrite ( Register  object,
Register  address,
Register  value,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK 
)
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 
)
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 
)
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 
)
void RecordWriteArray ( Register  array,
Register  value,
Register  index,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK 
)
void RecordWriteArray ( Register  array,
Register  value,
Register  index,
SaveFPRegsMode  save_fp,
RememberedSetAction  remembered_set_action = EMIT_REMEMBERED_SET,
SmiCheck  smi_check = INLINE_SMI_CHECK 
)
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 
)
inline
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 
)
inline
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 
)
inline
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 
)
inline
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 
)
inline
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 
)
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 
)
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 
)
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 
)
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 
)
void RecordWriteForMap ( Register  object,
Handle< Map map,
Register  scratch1,
Register  scratch2,
SaveFPRegsMode  save_fp 
)
void RememberedSetHelper ( Register  object,
Register  addr,
Register  scratch,
SaveFPRegsMode  save_fp,
RememberedSetFinalAction  and_then 
)
void RememberedSetHelper ( Register  object,
Register  addr,
Register  scratch,
SaveFPRegsMode  save_fp,
RememberedSetFinalAction  and_then 
)
void RememberedSetHelper ( Register  object,
Register  addr,
Register  scratch,
SaveFPRegsMode  save_fp,
RememberedSetFinalAction  and_then 
)
void RememberedSetHelper ( Register  object,
Register  addr,
Register  scratch,
SaveFPRegsMode  save_fp,
RememberedSetFinalAction  and_then 
)
void RememberedSetHelper ( Register  object,
Register  addr,
Register  scratch1,
SaveFPRegsMode  save_fp,
RememberedSetFinalAction  and_then 
)
void RestoreFPRegs ( Register  location,
Register  scratch 
)
void Ret ( Condition  cond = al)
void Ret ( int  drop,
Condition  cond = al 
)
void Ret ( COND_ARGS  )
void Ret ( BranchDelaySlot  bd,
Condition  cond = al,
Register  rs = zero_reg,
const Operand rt = Operand(zero_reg) 
)
inline

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

References MacroAssembler::Ret().

void Ret ( const Register xn = lr)
inline
void Ret ( int  bytes_dropped,
Register  scratch 
)
void Ret ( )
void Ret ( int  bytes_dropped,
Register  scratch 
)
void RetOnNoOverflow ( Register  overflow_check,
BranchDelaySlot  bd = PROTECT 
)
inline

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

References v8::internal::ge, and MacroAssembler::Ret().

void RetOnOverflow ( Register  overflow_check,
BranchDelaySlot  bd = PROTECT 
)
inline

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

References v8::internal::lt, and MacroAssembler::Ret().

void Rev ( const Register rd,
const Register rn 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::rev().

void Rev16 ( const Register rd,
const Register rn 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::rev16().

void Rev32 ( const Register rd,
const Register rn 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::rev32().

void Ror ( const Register rd,
const Register rs,
unsigned  shift 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::ror().

void Ror ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::rorv().

void Round_w_d ( FPURegister  fd,
FPURegister  fs 
)
void SafeMove ( Register  dst,
const Immediate &  x 
)
void SafeMove ( Register  dst,
Smi src 
)
static int SafepointRegisterStackIndex ( int  reg_code)
static
static int SafepointRegisterStackIndex ( Register  reg)
inlinestatic

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

References Register::code().

static int SafepointRegisterStackIndex ( Register  reg)
inlinestatic

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

References Register::code().

void SafePush ( const Immediate &  x)
void SafePush ( Smi src)
void SaveFPRegs ( Register  location,
Register  scratch 
)
void Sbc ( const Register rd,
const Register rn,
const Operand operand 
)
inline
void Sbcs ( const Register rd,
const Register rn,
const Operand operand 
)
inline
void Sbfiz ( const Register rd,
const Register rn,
unsigned  lsb,
unsigned  width 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::sbfiz().

void Sbfx ( Register  dst,
Register  src,
int  lsb,
int  width,
Condition  cond = al 
)
void Sbfx ( const Register rd,
const Register rn,
unsigned  lsb,
unsigned  width 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::sbfx().

void Scvtf ( const FPRegister fd,
const Register rn,
unsigned  fbits = 0 
)
inline
void Sdiv ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::sdiv().

void SelectNonSmi ( Register  dst,
Register  src1,
Register  src2,
Label *  on_not_smis,
Label::Distance  near_jump = Label::kFar 
)
void Set ( Register  dst,
int64_t  x 
)
void Set ( const Operand dst,
intptr_t  x 
)
void set_generating_stub ( bool  value)
inline

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

void set_generating_stub ( bool  value)
inline
void set_generating_stub ( bool  value)
inline

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

void set_generating_stub ( bool  value)
inline

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

void set_generating_stub ( bool  value)
inline

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

void set_has_frame ( bool  value)
inline

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

void set_has_frame ( bool  value)
inline

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

void set_has_frame ( bool  value)
inline

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

void set_has_frame ( bool  value)
inline

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

void SetCounter ( StatsCounter counter,
int  value 
)
void SetCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)
void SetCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)
void SetCounter ( StatsCounter counter,
int  value 
)
void SetCounter ( StatsCounter counter,
int  value,
Register  scratch1,
Register  scratch2 
)
void SetStackPointer ( const Register stack_pointer)
inline

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

References ASSERT, and MacroAssembler::TmpList().

Referenced by MacroAssembler::AlignAndSetCSPForFrame().

void SlowTruncateToI ( Register  result_reg,
Register  input_reg,
int  offset = HeapNumber::kValueOffset-kHeapObjectTag 
)
void SlowTruncateToI ( Register  result_reg,
Register  input_reg,
int  offset = HeapNumber::kValueOffset-kHeapObjectTag 
)
void Smaddl ( const Register rd,
const Register rn,
const Register rm,
const Register ra 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::smaddl().

void SmiAbs ( const Register smi,
Label *  slow 
)
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 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 SmiAnd ( Register  dst,
Register  src1,
Register  src2 
)
void SmiAndConstant ( Register  dst,
Register  src1,
Smi constant 
)
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 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 SmiMul ( Register  dst,
Register  src1,
Register  src2,
Label *  on_not_smi_result,
Label::Distance  near_jump = Label::kFar 
)
void SmiNeg ( Register  dst,
Register  src,
Label *  on_smi_result,
Label::Distance  near_jump = Label::kFar 
)
void SmiNot ( Register  dst,
Register  src 
)
void SmiOr ( Register  dst,
Register  src1,
Register  src2 
)
void SmiOrConstant ( Register  dst,
Register  src1,
Smi constant 
)
void SmiOrIfSmis ( Register  dst,
Register  src1,
Register  src2,
Label *  on_not_smis,
Label::Distance  near_jump = Label::kFar 
)
void SmiShiftArithmeticRight ( Register  dst,
Register  src1,
Register  src2 
)
void SmiShiftArithmeticRightConstant ( Register  dst,
Register  src,
int  shift_value 
)
void SmiShiftLeft ( Register  dst,
Register  src1,
Register  src2 
)
void SmiShiftLeftConstant ( Register  dst,
Register  src,
int  shift_value 
)
void SmiShiftLogicalRight ( Register  dst,
Register  src1,
Register  src2,
Label *  on_not_smi_result,
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 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 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 SmiTag ( Register  dst,
Register  src 
)
inline
void SmiTag ( Register  smi)
inline

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

References MacroAssembler::SmiTag().

void SmiTag ( Register  reg,
SBit  s = LeaveCC 
)
inline

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

References Assembler::add().

Referenced by MacroAssembler::SmiTag(), and MacroAssembler::TrySmiTag().

void SmiTag ( Register  dst,
Register  src,
SBit  s = LeaveCC 
)
inline

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

References Assembler::add().

void SmiTag ( Register  reg)
inline

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

void SmiTag ( Register  dst,
Register  src 
)
inline

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

void SmiTagCheckOverflow ( Register  reg,
Register  overflow 
)
void SmiTagCheckOverflow ( Register  dst,
Register  src,
Register  overflow 
)
void SmiTest ( Register  src)
void SmiToDouble ( LowDwVfpRegister  value,
Register  smi 
)
void SmiToDoubleFPURegister ( Register  smi,
FPURegister  value,
Register  scratch1 
)
SmiIndex SmiToIndex ( Register  dst,
Register  src,
int  shift 
)
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 
)
SmiIndex SmiToNegativeIndex ( Register  dst,
Register  src,
int  shift 
)
void SmiTst ( Register  value)
inline

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

References v8::internal::kSmiTagMask, and Assembler::tst().

void SmiTst ( Register  value,
Register  scratch 
)
inline

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

References MacroAssembler::And(), and v8::internal::kSmiTagMask.

void SmiUntag ( Register  reg)
inline

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

References v8::internal::kSmiTagSize, and Assembler::sar().

void SmiUntag ( Register  reg,
Label *  is_smi 
)
inline
void SmiUntag ( Register  smi)
inline

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

References MacroAssembler::SmiUntag().

void SmiUntag ( Register  reg,
SBit  s = LeaveCC 
)
inline

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

References MacroAssembler::mov().

Referenced by MacroAssembler::SmiUntag().

void SmiUntag ( Register  dst,
Register  src,
SBit  s = LeaveCC 
)
inline

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

References MacroAssembler::mov().

void SmiUntag ( Register  reg)
inline

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

References v8::internal::kSmiTagSize, and Assembler::sra().

void SmiUntag ( Register  dst,
Register  src 
)
inline

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

References v8::internal::kSmiTagSize, and Assembler::sra().

void SmiXor ( Register  dst,
Register  src1,
Register  src2 
)
void SmiXorConstant ( Register  dst,
Register  src1,
Smi constant 
)
void Smsubl ( const Register rd,
const Register rn,
const Register rm,
const Register ra 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::smsubl().

void Smulh ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::smulh().

void Smull ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::smull().

void Stnp ( const CPURegister rt,
const CPURegister rt2,
const MemOperand dst 
)
inline

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

References ASSERT, and Assembler::stnp().

void Store ( Register  src,
const Operand dst,
Representation  r 
)
void Store ( ExternalReference  destination,
Register  source 
)
void Store ( Register  src,
const MemOperand dst,
Representation  r 
)
void Store ( const Register rt,
const MemOperand addr,
Representation  r 
)
void Store ( Register  src,
const MemOperand dst,
Representation  r 
)
void Store ( const Operand dst,
Register  src,
Representation  r 
)
void StoreNumberToDoubleElements ( Register  maybe_number,
Register  elements,
Register  key,
Register  scratch1,
XMMRegister  scratch2,
Label *  fail,
bool  specialize_for_processor,
int  offset = 0 
)
void StoreNumberToDoubleElements ( Register  value_reg,
Register  key_reg,
Register  elements_reg,
Register  scratch1,
LowDwVfpRegister  double_scratch,
Label *  fail,
int  elements_offset = 0 
)
void StoreNumberToDoubleElements ( Register  maybe_number,
Register  elements,
Register  index,
XMMRegister  xmm_scratch,
Label *  fail,
int  elements_offset = 0 
)
void StoreNumberToDoubleElements ( Register  value_reg,
Register  key_reg,
Register  elements_reg,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Label *  fail,
int  elements_offset = 0 
)
void StoreNumberToDoubleElements ( Register  value_reg,
Register  key_reg,
Register  elements_reg,
Register  scratch1,
FPRegister  fpscratch1,
FPRegister  fpscratch2,
Label *  fail,
int  elements_offset = 0 
)
void StoreRoot ( Register  source,
Register  scratch,
Heap::RootListIndex  index 
)
void StoreRoot ( Register  source,
Heap::RootListIndex  index 
)
void StoreRoot ( Register  source,
Heap::RootListIndex  index,
Condition  cond = al 
)
void StoreRoot ( Register  source,
Heap::RootListIndex  index 
)
void StoreRoot ( Register  source,
Heap::RootListIndex  index,
Condition  cond,
Register  src1,
const Operand src2 
)
void StoreRoot ( Register  source,
Heap::RootListIndex  index 
)
void StoreToSafepointRegistersAndDoublesSlot ( Register  src,
Register  dst 
)
void StoreToSafepointRegistersAndDoublesSlot ( Register  src,
Register  dst 
)
void StoreToSafepointRegisterSlot ( Register  dst,
Register  src 
)
void StoreToSafepointRegisterSlot ( Register  dst,
Immediate  src 
)
void StoreToSafepointRegisterSlot ( Register  dst,
const Immediate &  imm 
)
void StoreToSafepointRegisterSlot ( Register  dst,
Register  src 
)
void StoreToSafepointRegisterSlot ( Register  src,
Register  dst 
)
void StoreToSafepointRegisterSlot ( Register  src,
Register  dst 
)
void StoreToSafepointRegisterSlot ( Register  src,
Register  dst 
)
inline
void Stp ( const CPURegister rt,
const CPURegister rt2,
const MemOperand dst 
)
inline

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

References ASSERT, and Assembler::stp().

void Strd ( Register  src1,
Register  src2,
const MemOperand dst,
Condition  cond = al 
)
void StubReturn ( int  argc)
void StubReturn ( int  argc)
void Subs ( const Register rd,
const Register rn,
const Operand operand 
)
inline
void SubuAndCheckForOverflow ( Register  dst,
Register  left,
Register  right,
Register  overflow_dst,
Register  scratch = at 
)
void Swap ( Register  reg1,
Register  reg2,
Register  scratch = no_reg,
Condition  cond = al 
)
void Swap ( Register  reg1,
Register  reg2,
Register  scratch = no_reg 
)
void Sxtb ( const Register rd,
const Register rn 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::sxtb().

void Sxth ( const Register rd,
const Register rn 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::sxth().

void Sxtw ( const Register rd,
const Register rn 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::sxtw().

void TaggedToI ( Register  result_reg,
Register  input_reg,
XMMRegister  temp,
MinusZeroMode  minus_zero_mode,
Label *  lost_precision 
)
void TaggedToI ( Register  result_reg,
Register  input_reg,
XMMRegister  temp,
MinusZeroMode  minus_zero_mode,
Label *  lost_precision,
Label::Distance  dst = Label::kFar 
)
void TailCallExternalReference ( const ExternalReference &  ext,
int  num_arguments,
int  result_size 
)
void TailCallExternalReference ( const ExternalReference &  ext,
int  num_arguments,
int  result_size 
)
void TailCallExternalReference ( const ExternalReference &  ext,
int  num_arguments,
int  result_size 
)
void TailCallExternalReference ( const ExternalReference &  ext,
int  num_arguments,
int  result_size 
)
void TailCallExternalReference ( const ExternalReference &  ext,
int  num_arguments,
int  result_size 
)
void TailCallRuntime ( Runtime::FunctionId  fid,
int  num_arguments,
int  result_size 
)
void TailCallRuntime ( Runtime::FunctionId  fid,
int  num_arguments,
int  result_size 
)
void TailCallRuntime ( Runtime::FunctionId  fid,
int  num_arguments,
int  result_size 
)
void TailCallRuntime ( Runtime::FunctionId  fid,
int  num_arguments,
int  result_size 
)
void TailCallRuntime ( Runtime::FunctionId  fid,
int  num_arguments,
int  result_size 
)
void TailCallStub ( CodeStub *  stub)
void TailCallStub ( CodeStub *  stub,
Condition  cond = al 
)
void TailCallStub ( CodeStub *  stub)
void TailCallStub ( CodeStub *  stub,
COND_ARGS   
)
void TailCallStub ( CodeStub *  stub)
void Tbnz ( const Register rt,
unsigned  bit_pos,
Label *  label 
)
void Tbz ( const Register rt,
unsigned  bit_pos,
Label *  label 
)
void Test ( const Operand dst,
Smi source 
)
void TestAndBranchIfAllClear ( const Register reg,
const uint64_t  bit_pattern,
Label *  label 
)
inline
void TestAndBranchIfAnySet ( const Register reg,
const uint64_t  bit_pattern,
Label *  label 
)
inline
void TestAndSplit ( const Register reg,
uint64_t  bit_pattern,
Label *  if_all_clear,
Label *  if_any_set,
Label *  fall_through 
)
void TestBit ( const Operand dst,
int  bit_index 
)
void TestDoubleIsInt32 ( DwVfpRegister  double_input,
LowDwVfpRegister  double_scratch 
)
void TestForMinusZero ( DoubleRegister  input)
void TestJSArrayForAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  no_memento_found 
)
void TestJSArrayForAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  no_memento_found 
)
void TestJSArrayForAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  no_memento_found 
)
void TestJSArrayForAllocationMemento ( Register  receiver_reg,
Register  scratch_reg,
Label *  no_memento_found,
Condition  cond = al,
Label *  allocation_memento_present = NULL 
)
void TestJSArrayForAllocationMemento ( Register  receiver,
Register  scratch1,
Register  scratch2,
Label *  no_memento_found 
)
void TestMapBitfield ( Register  object,
uint64_t  mask 
)
void Throw ( Register  value)
void Throw ( BailoutReason  reason)
void Throw ( Register  value)
void Throw ( BailoutReason  reason)
void Throw ( Register  value)
void Throw ( BailoutReason  reason)
void Throw ( Register  value,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Register  scratch4 
)
void Throw ( BailoutReason  reason)
void Throw ( Register  value)
void Throw ( BailoutReason  reason)
void ThrowIf ( Condition  cc,
BailoutReason  reason 
)
void ThrowIf ( Condition  cc,
BailoutReason  reason 
)
void ThrowIf ( Condition  cc,
BailoutReason  reason,
Register  rs,
Operand  rt 
)
void ThrowIf ( Condition  cc,
BailoutReason  reason 
)
void ThrowIf ( Condition  cc,
BailoutReason  reason 
)
void ThrowIfSmi ( const Register value,
BailoutReason  reason 
)
void ThrowUncatchable ( Register  value)
void ThrowUncatchable ( Register  value)
void ThrowUncatchable ( Register  value)
void ThrowUncatchable ( Register  value,
Register  scratch1,
Register  scratch2,
Register  scratch3,
Register  scratch4 
)
void ThrowUncatchable ( Register  value)
CPURegList* TmpList ( )
inline
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 TruncateDoubleToI ( Register  result_reg,
XMMRegister  input_reg 
)
void TruncateDoubleToI ( Register  result,
DoubleRegister  double_input 
)
void TruncateDoubleToI ( Register  result,
DwVfpRegister  double_input 
)
void TruncateDoubleToI ( Register  result_reg,
XMMRegister  input_reg 
)
void TruncateDoubleToI ( Register  result,
DoubleRegister  double_input 
)
void TruncateHeapNumberToI ( Register  result_reg,
Register  input_reg 
)
void TruncateHeapNumberToI ( Register  result,
Register  object 
)
void TruncateHeapNumberToI ( Register  result_reg,
Register  input_reg 
)
void TruncateHeapNumberToI ( Register  result,
Register  object 
)
void TruncateHeapNumberToI ( Register  result,
Register  object 
)
void TruncateNumberToI ( Register  object,
Register  result,
Register  heap_number_map,
Register  scratch,
Label *  not_int32 
)
void TruncateNumberToI ( Register  object,
Register  result,
Register  heap_number_map,
Register  scratch1,
Label *  not_int32 
)
void TruncateNumberToI ( Register  object,
Register  result,
Register  heap_number_map,
Label *  not_int32 
)
void TruncateX87TOSToI ( Register  result_reg)
void TruncatingDiv ( Register  dividend,
int32_t  divisor 
)
void TruncatingDiv ( Register  result,
Register  dividend,
int32_t  divisor 
)
void TruncatingDiv ( Register  result,
Register  dividend,
int32_t  divisor 
)
void TruncatingDiv ( Register  dividend,
int32_t  divisor 
)
void TruncatingDiv ( Register  result,
Register  dividend,
int32_t  divisor 
)
void TryConvertDoubleToInt32 ( Register  as_int,
FPRegister  value,
FPRegister  scratch_d,
Label *  on_successful_conversion = NULL,
Label *  on_failed_conversion = NULL 
)
inline

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

References ASSERT, and CPURegister::Is32Bits().

void TryConvertDoubleToInt64 ( Register  as_int,
FPRegister  value,
FPRegister  scratch_d,
Label *  on_successful_conversion = NULL,
Label *  on_failed_conversion = NULL 
)
inline

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

References ASSERT, and CPURegister::Is64Bits().

void TryConvertDoubleToInt64 ( Register  result,
DoubleRegister  input,
Label *  done 
)
void TryDoubleToInt32Exact ( Register  result,
DwVfpRegister  double_input,
LowDwVfpRegister  double_scratch 
)
void TryGetFunctionPrototype ( Register  function,
Register  result,
Register  scratch,
Label *  miss,
bool  miss_on_bound_function = false 
)
void TryGetFunctionPrototype ( Register  function,
Register  result,
Register  scratch,
Label *  miss,
bool  miss_on_bound_function = false 
)
void TryGetFunctionPrototype ( Register  function,
Register  result,
Register  scratch,
Label *  miss,
bool  miss_on_bound_function = false 
)
void TryGetFunctionPrototype ( Register  function,
Register  result,
Label *  miss,
bool  miss_on_bound_function = false 
)
void TryGetFunctionPrototype ( Register  function,
Register  result,
Register  scratch,
Label *  miss,
BoundFunctionAction  action = kDontMissOnBoundFunction 
)
void TryInlineTruncateDoubleToI ( Register  result,
DoubleRegister  input,
Label *  done 
)
void TryInlineTruncateDoubleToI ( Register  result,
DwVfpRegister  input,
Label *  done 
)
void TryInt32Floor ( Register  result,
DwVfpRegister  double_input,
Register  input_high,
LowDwVfpRegister  double_scratch,
Label *  done,
Label *  exact 
)
void TrySmiTag ( Register  reg,
Label *  not_a_smi 
)
inline

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

Referenced by MacroAssembler::TrySmiTag().

void TrySmiTag ( Register  reg,
Register  src,
Label *  not_a_smi 
)
inline
void TrySmiTag ( Register  reg,
Register  scratch,
Label *  not_a_smi 
)
inline

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

References MacroAssembler::TrySmiTag().

void TrySmiTag ( Register  dst,
Register  src,
Register  scratch,
Label *  not_a_smi 
)
inline
void Ubfiz ( const Register rd,
const Register rn,
unsigned  lsb,
unsigned  width 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::ubfiz().

void Ubfx ( Register  dst,
Register  src,
int  lsb,
int  width,
Condition  cond = al 
)
void Ubfx ( const Register rd,
const Register rn,
unsigned  lsb,
unsigned  width 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::ubfx().

void Ucvtf ( const FPRegister fd,
const Register rn,
unsigned  fbits = 0 
)
inline

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

References ASSERT, and Assembler::ucvtf().

void Udiv ( const Register rd,
const Register rn,
const Register rm 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::udiv().

void Ulw ( Register  rd,
const MemOperand rs 
)
void Umaddl ( const Register rd,
const Register rn,
const Register rm,
const Register ra 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::umaddl().

void Umsubl ( const Register rd,
const Register rn,
const Register rm,
const Register ra 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::umsubl().

void UndoAllocationInNewSpace ( Register  object,
Register  scratch 
)
void UndoAllocationInNewSpace ( Register  object)
void UndoAllocationInNewSpace ( Register  object,
Register  scratch 
)
void UndoAllocationInNewSpace ( Register  object)
void UndoAllocationInNewSpace ( Register  object,
Register  scratch 
)
void UntagAndJumpIfNotSmi ( Register  dst,
Register  src,
Label *  non_smi_case 
)
void UntagAndJumpIfNotSmi ( Register  dst,
Register  src,
Label *  non_smi_case 
)
void UntagAndJumpIfSmi ( Register  dst,
Register  src,
Label *  smi_case 
)
void UntagAndJumpIfSmi ( Register  dst,
Register  src,
Label *  smi_case 
)
void Usat ( Register  dst,
int  satpos,
const Operand src,
Condition  cond = al 
)
bool use_eabi_hardfloat ( )
inline

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

References OS::ArmUsingHardFloat().

Referenced by MakeConvertDToIFuncTrampoline().

bool use_real_aborts ( ) const
inline

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

void Usw ( Register  rd,
const MemOperand rs 
)
void Uxtb ( const Register rd,
const Register rn 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::uxtb().

void Uxth ( const Register rd,
const Register rn 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::uxth().

void Uxtw ( const Register rd,
const Register rn 
)
inline

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

References ASSERT, CPURegister::IsZero(), and Assembler::uxtw().

void VerifyX87StackDepth ( uint32_t  depth)
void VFPCanonicalizeNaN ( const DwVfpRegister  dst,
const DwVfpRegister  src,
const Condition  cond = al 
)
void VFPCanonicalizeNaN ( const DwVfpRegister  value,
const Condition  cond = al 
)
inline

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

References MacroAssembler::VFPCanonicalizeNaN().

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 VFPCompareAndSetFlags ( const DwVfpRegister  src1,
const DwVfpRegister  src2,
const Condition  cond = al 
)
void VFPCompareAndSetFlags ( const DwVfpRegister  src1,
const double  src2,
const Condition  cond = al 
)
void VFPEnsureFPSCRState ( Register  scratch)
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 X87TOSToI ( Register  result_reg,
MinusZeroMode  minus_zero_mode,
Label *  conversion_failed,
Label::Distance  dst = Label::kFar 
)

Friends And Related Function Documentation

StandardFrame
friend

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

Field Documentation

const int kCallApiFunctionSpillSpace = 4
static

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


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