5 #ifndef V8_ARM64_CODE_STUBS_ARM64_H_
6 #define V8_ARM64_CODE_STUBS_ARM64_H_
15 class StringHelper :
public AllStatic {
148 patcher.
adr(xzr, offset_to_incremental_noncompacting);
149 patcher.
adr(xzr, offset_to_incremental_compacting);
154 patcher.
adr(xzr, offset_to_incremental_compacting);
158 patcher.
adr(xzr, offset_to_incremental_noncompacting);
193 pool_available.
Remove(used_regs);
312 class ObjectBits:
public BitField<int, 0, 5> {};
313 class ValueBits:
public BitField<int, 5, 5> {};
314 class AddressBits:
public BitField<int, 10, 5> {};
315 class RememberedSetActionBits:
public BitField<RememberedSetAction, 15, 1> {};
316 class SaveFPRegsModeBits:
public BitField<SaveFPRegsMode, 16, 1> {};
319 RegisterAllocation
regs_;
325 class DirectCEntryStub:
public PlatformCodeStub {
379 class LookupModeBits:
public BitField<LookupMode, 0, 1> {};
void adr(const Register &rd, Label *label)
void b(int branch_offset, Condition cond=al)
Instruction * InstructionAt(int offset) const
void Remove(const CPURegList &other)
CPURegister PopLowestIndex()
byte * instruction_start()
DEFINE_NULL_CALL_INTERFACE_DESCRIPTOR()
DirectCEntryStub(Isolate *isolate)
void GenerateCall(MacroAssembler *masm, Register target)
DEFINE_PLATFORM_CODE_STUB(DirectCEntry, PlatformCodeStub)
bool NeedsImmovableCode()
Source to read snapshot and builtins files from.
static const int kHeaderSize
static const int kElementsStartIndex
static const int kCapacityIndex
IncrementalMarking * incremental_marking()
void ActivateGeneratedStub(Code *stub)
bool IsUncondBranchImm() const
Instruction * following(int count=1)
bool IsPCRelAddressing() const
static CPURegList DefaultTmpList()
void PushCPURegList(CPURegList registers)
void PopCPURegList(CPURegList registers)
static CPURegList DefaultFPTmpList()
static const int kElementsStartOffset
virtual bool SometimesSetsUpAFrame()
NameDictionaryLookupStub(Isolate *isolate, LookupMode mode)
static const int kCapacityOffset
DEFINE_NULL_CALL_INTERFACE_DESCRIPTOR()
static const int kTotalProbes
static void GeneratePositiveLookup(MacroAssembler *masm, Label *miss, Label *done, Register elements, Register name, Register scratch1, Register scratch2)
static const int kInlinedProbes
DEFINE_PLATFORM_CODE_STUB(NameDictionaryLookup, PlatformCodeStub)
static void GenerateNegativeLookup(MacroAssembler *masm, Label *miss, Label *done, Register receiver, Register properties, Handle< Name > name, Register scratch0)
void Restore(MacroAssembler *masm)
CPURegList saved_fp_regs_
RegisterAllocation(Register object, Register address, Register scratch)
void SaveCallerSaveRegisters(MacroAssembler *masm, SaveFPRegsMode mode)
void Save(MacroAssembler *masm)
void RestoreCallerSaveRegisters(MacroAssembler *masm, SaveFPRegsMode mode)
static CPURegList GetValidRegistersForAllocation()
void GenerateIncremental(MacroAssembler *masm, Mode mode)
void Activate(Code *code)
void InformIncrementalMarker(MacroAssembler *masm)
RememberedSetAction remembered_set_action() const
SaveFPRegsMode save_fp_regs_mode() const
RecordWriteStub(Isolate *isolate, Register object, Register value, Register address, RememberedSetAction remembered_set_action, SaveFPRegsMode fp_mode)
OnNoNeedToInformIncrementalMarker
@ kUpdateRememberedSetOnNoNeedToInformIncrementalMarker
@ kReturnOnNoNeedToInformIncrementalMarker
DEFINE_NULL_CALL_INTERFACE_DESCRIPTOR()
RecordWriteStub(uint32_t key, Isolate *isolate)
virtual Major MajorKey() const FINAL OVERRIDE
void CheckNeedsToInformIncrementalMarker(MacroAssembler *masm, OnNoNeedToInformIncrementalMarker on_no_need, Mode mode)
static void Patch(Code *stub, Mode mode)
virtual bool SometimesSetsUpAFrame()
static Mode GetMode(Code *stub)
virtual void Generate(MacroAssembler *masm) OVERRIDE
static void GenerateOneByteCharsCompareLoop(MacroAssembler *masm, Register left, Register right, Register length, Register scratch1, Register scratch2, Label *chars_not_equal)
DISALLOW_IMPLICIT_CONSTRUCTORS(StringHelper)
static void GenerateCompareFlatOneByteStrings(MacroAssembler *masm, Register left, Register right, Register scratch1, Register scratch2, Register scratch3, Register scratch4)
static void GenerateFlatOneByteStringEquals(MacroAssembler *masm, Register left, Register right, Register scratch1, Register scratch2, Register scratch3)
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long enable alignment of csp to bytes on platforms which prefer the register to always be expose gc extension under the specified name show built in functions in stack traces use random jit cookie to mask large constants minimum length for automatic enable preparsing CPU profiler sampling interval in microseconds trace out of bounds accesses to external arrays default size of stack region v8 is allowed to maximum length of function source code printed in a stack trace min size of a semi the new space consists of two semi spaces print one trace line following each garbage collection do not print trace line after scavenger collection print cumulative GC statistics in name
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long mode(MIPS only)") DEFINE_BOOL(enable_always_align_csp
#define DCHECK(condition)
bool AreAliased(const CPURegister ®1, const CPURegister ®2, const CPURegister ®3=NoReg, const CPURegister ®4=NoReg, const CPURegister ®5=NoReg, const CPURegister ®6=NoReg, const CPURegister ®7=NoReg, const CPURegister ®8=NoReg)
const unsigned kXRegSizeInBits
void ArrayNativeCode(MacroAssembler *masm, Label *call_generic_code)
const unsigned kInstructionSize
const unsigned kInstructionSizeLog2
const RegList kCallerSaved
Debugger support for the V8 JavaScript engine.
static Register from_code(int code)