5#ifndef V8_CODEGEN_ARM64_ASSEMBLER_ARM64_H_
6#define V8_CODEGEN_ARM64_ASSEMBLER_ARM64_H_
13#include "absl/container/flat_hash_map.h"
25#if defined(V8_OS_WIN) && defined(mvn)
36class SafepointTableBuilder;
103 inline bool IsZero()
const;
172 std::holds_alternative<
Zone*>(zone)
204 std::unique_ptr<AssemblerBuffer> = {});
221 static constexpr int kNoHandlerTable = 0;
225 int handler_table_offset);
231 GetCode(isolate, desc, kNoSafepointTable, kNoHandlerTable);
246 inline void Unreachable();
276 inline static Address target_pointer_address_at(Address
pc);
283 inline static Tagged_t target_compressed_address_at(Address
pc,
284 Address constant_pool);
286 Address
pc, Address constant_pool, Address target,
290 inline static void set_target_compressed_address_at(
291 Address
pc, Address constant_pool,
Tagged_t target,
299 inline void set_embedded_object_index_referenced_from(
307 static inline Builtin target_builtin_at(Address
pc);
320 Address
pc, Address constant_pool, uint32_t new_constant,
328 static constexpr int kSpecialTargetSize = 0;
333 return pc_ - buffer_start_;
365 return veneer_pool_blocked_nesting_ > 0;
508 void bic(
const VRegister& vd,
const int imm8,
const int left_shift = 0);
527 const int shift_amount = 0);
534 const int shift_amount = 0);
597 void orr(
const VRegister& vd,
const int imm8,
const int left_shift = 0);
642 bfm(rd, rn, lsb, lsb + width - 1);
663 sbfm(rd, rn, lsb, lsb + width - 1);
680 ubfm(rd, rn, (reg_size - shift) % reg_size, reg_size - shift - 1);
700 ubfm(rd, rn, lsb, lsb + width - 1);
749 extr(rd, rs, rs, shift);
1550 MoveWide(rd, imm, shift,
MOVK);
1555 MoveWide(rd, imm, shift,
MOVN);
1560 MoveWide(rd, imm, shift,
MOVZ);
1610 FIRST_NOP_MARKER = DEBUG_BREAK_NOP,
1611 LAST_NOP_MARKER = ADR_FAR_NOP
2702 void dc8(uint8_t data) { EmitData(&data,
sizeof(data)); }
2705 void dc32(uint32_t data) { EmitData(&data,
sizeof(data)); }
2708 void dc64(uint64_t data) { EmitData(&data,
sizeof(data)); }
2733 void db(uint8_t data) { dc8(data); }
2742 void dp(uintptr_t data) {
2757 return reinterpret_cast<uint8_t*
>(
instr) - buffer_start_;
2763 return rd.
code() << Rd_offset;
2768 return rn.
code() << Rn_offset;
2773 return rm.
code() << Rm_offset;
2784 return ra.
code() << Ra_offset;
2789 return rt.
code() << Rt_offset;
2794 return rt2.
code() << Rt2_offset;
2799 return rs.
code() << Rs_offset;
2819 inline static Instr ImmPCRelAddress(
int imm21);
2822 inline static Instr ImmUncondBranch(
int imm26);
2823 inline static Instr ImmCondBranch(
int imm19);
2824 inline static Instr ImmCmpBranch(
int imm19);
2825 inline static Instr ImmTestBranch(
int imm14);
2826 inline static Instr ImmTestBranchBit(
unsigned bit_pos);
2830 inline static Instr ImmAddSub(
int imm);
2831 inline static Instr ImmS(
unsigned imms,
unsigned reg_size);
2832 inline static Instr ImmR(
unsigned immr,
unsigned reg_size);
2833 inline static Instr ImmSetBits(
unsigned imms,
unsigned reg_size);
2834 inline static Instr ImmRotate(
unsigned immr,
unsigned reg_size);
2835 inline static Instr ImmLLiteral(
int imm19);
2836 inline static Instr BitN(
unsigned bitn,
unsigned reg_size);
2838 inline static Instr ImmDPShift(
unsigned amount);
2840 inline static Instr ImmExtendShift(
unsigned left_shift);
2841 inline static Instr ImmCondCmp(
unsigned imm);
2845 return is_uint12(immediate) ||
2846 (is_uint12(immediate >> 12) && ((immediate & 0xFFF) == 0));
2850 return is_uint5(immediate);
2854 unsigned* imm_s,
unsigned* imm_r);
2857 inline static Instr ImmLSUnsigned(
int imm12);
2858 inline static Instr ImmLS(
int imm9);
2859 inline static Instr ImmLSPair(
int imm7,
unsigned size);
2860 inline static Instr ImmShiftLS(
unsigned shift_amount);
2861 inline static Instr ImmException(
int imm16);
2862 inline static Instr ImmSystemRegister(
int imm15);
2863 inline static Instr ImmHint(
int imm7);
2864 inline static Instr ImmBarrierDomain(
int imm2);
2865 inline static Instr ImmBarrierType(
int imm2);
2979 h = (index >> 2) & 1;
2980 l = (index >> 1) & 1;
2981 m = (index >> 0) & 1;
2984 h = (index >> 1) & 1;
2985 l = (index >> 0) & 1;
2989 h = (index >> 0) & 1;
2993 return (h << NEONH_offset) | (l << NEONL_offset) | (
m << NEONM_offset);
2998 return imm4 << ImmNEONExt_offset;
3004 int imm5 = (index << (s + 1)) | (1 << s);
3005 return imm5 << ImmNEON5_offset;
3011 int imm4 = index <<
s;
3012 return imm4 << ImmNEON4_offset;
3018 instr = ((imm8 >> 5) & 7) << ImmNEONabc_offset;
3019 instr |= (imm8 & 0x1f) << ImmNEONdefgh_offset;
3025 return cmode << NEONCmode_offset;
3030 return op << NEONModImmOp_offset;
3037 bool offset_is_size_multiple =
3038 (
static_cast<int64_t
>(
static_cast<uint64_t
>(
offset >> size_log2)
3039 << size_log2) ==
offset);
3040 return offset_is_size_multiple && is_uint12(
offset >> size_log2);
3045 inline static Instr ImmMoveWide(
int imm);
3046 inline static Instr ShiftMoveWide(
int shift);
3060 constpool_.Check(Emission::kForced, Jump::kOmitted);
3063 constpool_.Check(Emission::kForced, Jump::kRequired);
3068 if (constpool_.IsEmpty())
return;
3069 constpool_.Check(Emission::kIfNeeded, Jump::kRequired, margin);
3079 return max_reachable_pc < MaxPCOffsetAfterVeneerPoolIfEmittedNow(margin);
3082 return ShouldEmitVeneer(unresolved_branches_first_limit(), margin);
3095 size_t margin = kVeneerDistanceMargin);
3100 size_t margin = kVeneerDistanceMargin);
3109 : assem_(assem), block_const_pool_(assem, margin) {
3110 assem_->CheckVeneerPool(
false,
true, margin);
3111 assem_->StartBlockVeneerPool();
3115 : assem_(assem), block_const_pool_(assem, check) {
3116 assem_->StartBlockVeneerPool();
3126#if defined(V8_OS_WIN)
3127 win64_unwindinfo::XdataEncoder* GetXdataEncoder() {
3128 return xdata_encoder_.get();
3131 win64_unwindinfo::BuiltinUnwindInfo GetUnwindInfo()
const;
3138 inline void LoadStoreScaledImmOffset(
Instr memop,
int offset,
unsigned size);
3139 inline void LoadStoreUnscaledImmOffset(
Instr memop,
int offset);
3140 inline void LoadStoreWRegOffset(
Instr memop,
const Register& regoffset);
3161 unsigned imm_s,
unsigned imm_r,
LogicalOp op);
3176 unsigned left_shift);
3185 int immediate,
Instr op);
3239 const int left_shift,
3242 const int shift_amount,
3294 inline int LinkAndGetBranchInstructionOffsetTo(
Label*
label);
3296 static constexpr int kStartOfLabelLinkChain = 0;
3303 static_assert(
sizeof(*pc_) == 1);
3304 static_assert(
sizeof(instruction) ==
kInstrSize);
3307 memcpy(
pc_, &instruction,
sizeof(instruction));
3308 pc_ +=
sizeof(instruction);
3319 memcpy(
pc_, data, size);
3335 if (
pc_offset() >= next_veneer_pool_check_) {
3336 CheckVeneerPool(
false,
true);
3338 constpool_.MaybeCheck();
3342 int veneer_pool_blocked_nesting_ = 0;
3346 static constexpr int kMaxRelocSize = RelocInfoWriter::kMaxSize;
3361 static constexpr int kGap = 64;
3362 static_assert(AssemblerBase::kMinimalBufferSize >= 2 * kGap);
3367 size_t GetConstantPoolEntriesSizeForTesting()
const {
3369 return constpool_.Entry32Count() *
kInt32Size +
3373 static size_t GetCheckConstPoolIntervalForTesting() {
3374 return ConstantPool::kCheckInterval;
3377 static size_t GetApproxMaxDistToConstPoolForTesting() {
3378 return ConstantPool::kApproxDistToPool64;
3414 static constexpr int kVeneerDistanceMargin = 1 *
KB;
3418 static constexpr int kVeneerNoProtectionFactor = 2;
3419 static constexpr int kVeneerDistanceCheckMargin =
3420 kVeneerNoProtectionFactor * kVeneerDistanceMargin;
3422 DCHECK(!unresolved_branches_.empty());
3425 return unresolved_branches_.begin()->first & ~1;
3434#if defined(V8_OS_WIN)
3435 std::unique_ptr<win64_unwindinfo::XdataEncoder> xdata_encoder_;
3440 static const int kMaximalBufferSize = 512 *
MB;
3461 friend class ConstantPool;
interpreter::OperandScale scale
std::unique_ptr< AssemblerBuffer > buffer_
size_t EmbeddedObjectIndex
std::optional< Zone > maybe_local_zone_
AssemblerZone(const MaybeAssemblerZone &zone)
BlockPoolsScope(Assembler *assem, size_t margin=0)
BlockPoolsScope(Assembler *assem, PoolEmissionCheck check)
BlockConstPoolScope block_const_pool_
DISALLOW_IMPLICIT_CONSTRUCTORS(BlockPoolsScope)
void ldumina(const Register &rs, const Register &rt, const MemOperand &src)
void smax(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void uxtb(const Register &rd, const Register &rn)
void ssra(const VRegister &vd, const VRegister &vn, int shift)
void NEONAddlp(const VRegister &vd, const VRegister &vn, NEON2RegMiscOp op)
void stsetlb(const Register &rs, const MemOperand &src)
void ldeoral(const Register &rs, const Register &rt, const MemOperand &src)
static bool IsImmFP32(uint32_t bits)
void LogicalImmediate(const Register &rd, const Register &rn, unsigned n, unsigned imm_s, unsigned imm_r, LogicalOp op)
void lsr(const Register &rd, const Register &rn, int shift)
void ldsminl(const Register &rs, const Register &rt, const MemOperand &src)
void shsub(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void uaba(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void uqshrn(const VRegister &vd, const VRegister &vn, int shift)
void staddlb(const Register &rs, const MemOperand &src)
void ldclralh(const Register &rs, const Register &rt, const MemOperand &src)
void sbcs(const Register &rd, const Register &rn, const Operand &operand)
void fcvtms(const VRegister &vd, const VRegister &vn)
void rev32(const Register &rd, const Register &rn)
static Instr RnSP(Register rn)
void smlsl2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void lduminlh(const Register &rs, const Register &rt, const MemOperand &src)
void steorb(const Register &rs, const MemOperand &src)
void fcvtnu(const Register &rd, const VRegister &vn)
void fmaxp(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ldsmaxal(const Register &rs, const Register &rt, const MemOperand &src)
uint64_t InstructionsGeneratedSince(const Label *label)
void mvni(const VRegister &vd, const int imm8, Shift shift=LSL, const int shift_amount=0)
void uadalp(const VRegister &vd, const VRegister &vn)
void frinti(const VRegister &vd, const VRegister &vn)
intptr_t MaxPCOffsetAfterVeneerPoolIfEmittedNow(size_t margin)
void steorlh(const Register &rs, const MemOperand &src)
void GetCode(LocalIsolate *isolate, CodeDesc *desc)
void swpah(const Register &rs, const Register &rt, const MemOperand &src)
void ssubl2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
const AssemblerZone zone_
void cset(const Register &rd, Condition cond)
void umaddl(const Register &rd, const Register &rn, const Register &rm, const Register &ra)
void rshrn2(const VRegister &vd, const VRegister &vn, int shift)
void mul(const Register &rd, const Register &rn, const Register &rm)
void stsminh(const Register &rs, const MemOperand &src)
void fmov(const VRegister &fd, const Register &rn)
static Instr NEONCmode(int cmode)
static Instr RdSP(Register rd)
void uqxtn(const VRegister &vd, const VRegister &vn)
void ldumaxalb(const Register &rs, const Register &rt, const MemOperand &src)
void fcmle(const VRegister &vd, const VRegister &vn, double imm)
void fcvtzs(const Register &rd, const VRegister &vn, int fbits=0)
void casah(const Register &rs, const Register &rt, const MemOperand &src)
void ldaddalh(const Register &rs, const Register &rt, const MemOperand &src)
void uabal2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void dup(const VRegister &vd, const VRegister &vn, int vn_index)
void ldsetb(const Register &rs, const Register &rt, const MemOperand &src)
void LoadStoreStructSingleAllLanes(const VRegister &vt, const MemOperand &addr, NEONLoadStoreSingleStructOp op)
void uhsub(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void NEONPerm(const VRegister &vd, const VRegister &vn, const VRegister &vm, NEONPermOp op)
void lduminalb(const Register &rs, const Register &rt, const MemOperand &src)
void sxtl(const VRegister &vd, const VRegister &vn)
void ldclrb(const Register &rs, const Register &rt, const MemOperand &src)
void casal(const Register &rs, const Register &rt, const MemOperand &src)
void zip1(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void staddb(const Register &rs, const MemOperand &src)
void bif(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ldeorlh(const Register &rs, const Register &rt, const MemOperand &src)
void umov(const Register &rd, const VRegister &vn, int vn_index)
static constexpr bool IsImmLSScaled(int64_t offset, unsigned size_log2)
static Instr RmNot31(CPURegister rm)
void csetm(const Register &rd, Condition cond)
void sqdmlal(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void stclrlb(const Register &rs, const MemOperand &src)
void casb(const Register &rs, const Register &rt, const MemOperand &src)
void ldsmaxl(const Register &rs, const Register &rt, const MemOperand &src)
void sqshrun(const VRegister &vd, const VRegister &vn, int shift)
void DataProcExtendedRegister(const Register &rd, const Register &rn, const Operand &operand, FlagsUpdate S, Instr op)
void fcmgt(const VRegister &vd, const VRegister &vn, double imm)
void pmull(const VRegister &vd, const VRegister &vn, const VRegister &vm)
int next_veneer_pool_check_
void ldsminab(const Register &rs, const Register &rt, const MemOperand &src)
void frintx(const VRegister &vd, const VRegister &vn)
void urhadd(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void sdot(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void fcvtnu(const VRegister &rd, const VRegister &vn)
void smull2(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void cmge(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void bic(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void tbx(const VRegister &vd, const VRegister &vn, const VRegister &vn2, const VRegister &vn3, const VRegister &vm)
void uaddl(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void bit(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ld3r(const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const MemOperand &src)
void ngcs(const Register &rd, const Operand &operand)
void NEON3DifferentW(const VRegister &vd, const VRegister &vn, const VRegister &vm, NEON3DifferentOp vop)
static bool IsImmLSPair(int64_t offset, unsigned size)
void ldumaxh(const Register &rs, const Register &rt, const MemOperand &src)
void fcvtps(const VRegister &vd, const VRegister &vn)
void shll(const VRegister &vd, const VRegister &vn, int shift)
void mov(const VRegister &vd, const VRegister &vn, int vn_index)
void rbit(const Register &rd, const Register &rn)
void addp(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void movn(const Register &rd, uint64_t imm, int shift=-1)
void swp(const Register &rs, const Register &rt, const MemOperand &src)
void FPDataProcessing1Source(const VRegister &fd, const VRegister &fn, FPDataProcessing1SourceOp op)
void hint(SystemHint code)
void NEONFP2RegMisc(const VRegister &vd, const VRegister &vn, NEON2RegMiscOp vop, double value)
static Instr LSVFormat(VRegister vd)
void sqrshrun2(const VRegister &vd, const VRegister &vn, int shift)
static Instr Ra(CPURegister ra)
void sqxtn(const VRegister &vd, const VRegister &vn)
void RecordConstPool(int size)
void ldumaxlh(const Register &rs, const Register &rt, const MemOperand &src)
void eor(const Register &rd, const Register &rn, const Operand &operand)
void lduminl(const Register &rs, const Register &rt, const MemOperand &src)
void smull(const Register &rd, const Register &rn, const Register &rm)
void smaxp(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void fminp(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void saddw2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ConditionalSelect(const Register &rd, const Register &rn, const Register &rm, Condition cond, ConditionalSelectOp op)
void ldsetab(const Register &rs, const Register &rt, const MemOperand &src)
void fcvtzu(const Register &rd, const VRegister &vn, int fbits=0)
void st1(const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const MemOperand &src)
void fnmsub(const VRegister &vd, const VRegister &vn, const VRegister &vm, const VRegister &va)
void fcvtau(const VRegister &vd, const VRegister &vn)
void tbl(const VRegister &vd, const VRegister &vn, const VRegister &vn2, const VRegister &vn3, const VRegister &vn4, const VRegister &vm)
void facge(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void sqdmull(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void subhn(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void sqsub(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void rsubhn2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void near_call(HeapNumberRequest request)
void ldumaxal(const Register &rs, const Register &rt, const MemOperand &src)
void FPDataProcessing2Source(const VRegister &fd, const VRegister &fn, const VRegister &fm, FPDataProcessing2SourceOp op)
void uzp2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void NEONFPByElement(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index, NEONByIndexedElementOp op)
void fcvtxn(const VRegister &vd, const VRegister &vn)
void stlxrb(const Register &rs, const Register &rt, const Register &rn)
void ands(const Register &rd, const Register &rn, const Operand &operand)
void ld4r(const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, const MemOperand &src)
void mla(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void csinc(const Register &rd, const Register &rn, const Register &rm, Condition cond)
void ucvtf(const VRegister &fd, const Register &rn, int fbits=0)
absl::flat_hash_map< int, int > branch_link_chain_back_edge_
void ldumin(const Register &rs, const Register &rt, const MemOperand &src)
void adcs(const Register &rd, const Register &rn, const Operand &operand)
void AddSubWithCarry(const Register &rd, const Register &rn, const Operand &operand, FlagsUpdate S, AddSubWithCarryOp op)
Assembler(const MaybeAssemblerZone &, const AssemblerOptions &, std::unique_ptr< AssemblerBuffer >={})
void stsmaxlb(const Register &rs, const MemOperand &src)
void ldaddal(const Register &rs, const Register &rt, const MemOperand &src)
void NEONAcrossLanes(const VRegister &vd, const VRegister &vn, NEONAcrossLanesOp op)
void ldclrh(const Register &rs, const Register &rt, const MemOperand &src)
void br(const Register &xn)
void DeleteUnresolvedBranchInfoForLabelTraverse(Label *label)
void sqneg(const VRegister &vd, const VRegister &vn)
void swpalb(const Register &rs, const Register &rt, const MemOperand &src)
void frinta(const VRegister &vd, const VRegister &vn)
void sshr(const VRegister &vd, const VRegister &vn, int shift)
void staddlh(const Register &rs, const MemOperand &src)
void ldumaxl(const Register &rs, const Register &rt, const MemOperand &src)
void ldeorb(const Register &rs, const Register &rt, const MemOperand &src)
void str(const CPURegister &rt, const MemOperand &dst)
void st1(const VRegister &vt, const VRegister &vt2, const MemOperand &src)
void ld1(const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const MemOperand &src)
void NEONByElementL(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index, NEONByIndexedElementOp op)
void steorl(const Register &rs, const MemOperand &src)
void cmn(const Register &rn, const Operand &operand)
void uqxtn2(const VRegister &vd, const VRegister &vn)
void lduminh(const Register &rs, const Register &rt, const MemOperand &src)
uint64_t SizeOfCodeGeneratedSince(const Label *label)
void scvtf(const VRegister &fd, const VRegister &vn, int fbits=0)
void stumax(const Register &rs, const MemOperand &src)
void ldset(const Register &rs, const Register &rt, const MemOperand &src)
void fmsub(const VRegister &vd, const VRegister &vn, const VRegister &vm, const VRegister &va)
void RecordVeneerPool(int location_offset, int size)
void fmov(const Register &rd, const VRegister &vn, int index)
void ldclr(const Register &rs, const Register &rt, const MemOperand &src)
void ushll2(const VRegister &vd, const VRegister &vn, int shift)
static bool IsConstantPoolAt(Instruction *instr)
void swpl(const Register &rs, const Register &rt, const MemOperand &src)
void sbfiz(const Register &rd, const Register &rn, int lsb, int width)
void AllocateAndInstallRequestedHeapNumbers(LocalIsolate *isolate)
void sadalp(const VRegister &vd, const VRegister &vn)
void usqadd(const VRegister &vd, const VRegister &vn)
void strh(const Register &rt, const MemOperand &dst)
static Instr Rm(CPURegister rm)
void caspl(const Register &rs, const Register &rs2, const Register &rt, const Register &rt2, const MemOperand &src)
void sqshrn2(const VRegister &vd, const VRegister &vn, int shift)
void ldeorab(const Register &rs, const Register &rt, const MemOperand &src)
void ldsminah(const Register &rs, const Register &rt, const MemOperand &src)
static Instr Rd(CPURegister rd)
void sxtw(const Register &rd, const Register &rn)
void ldsetal(const Register &rs, const Register &rt, const MemOperand &src)
void ld1(const VRegister &vt, const MemOperand &src)
void fminnmp(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void orr(const VRegister &vd, const int imm8, const int left_shift=0)
void NEONShiftImmediate(const VRegister &vd, const VRegister &vn, NEONShiftImmediateOp op, int immh_immb)
void mneg(const Register &rd, const Register &rn, const Register &rm)
void mvn(const Register &rd, const Operand &operand)
void fcvtzs(const VRegister &vd, const VRegister &vn, int fbits=0)
void cmeq(const VRegister &vd, const VRegister &vn, int value)
bool ShouldEmitVeneers(size_t margin=kVeneerDistanceMargin)
void tbl(const VRegister &vd, const VRegister &vn, const VRegister &vn2, const VRegister &vn3, const VRegister &vm)
void orr(const VRegister &vd, const VRegister &vn, const VRegister &vm)
uint64_t SizeOfGeneratedCode() const
void suqadd(const VRegister &vd, const VRegister &vn)
void stuminlb(const Register &rs, const MemOperand &src)
void uqshl(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void NEONFPConvertToInt(const Register &rd, const VRegister &vn, Instr op)
void ldclrl(const Register &rs, const Register &rt, const MemOperand &src)
void umull2(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void and_(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void sminv(const VRegister &vd, const VRegister &vn)
void ursqrte(const VRegister &vd, const VRegister &vn)
void smull(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void umlal(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void raddhn2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void urshr(const VRegister &vd, const VRegister &vn, int shift)
static void deserialization_set_target_internal_reference_at(Address pc, Address target, WritableJitAllocation &jit_allocation, RelocInfo::Mode mode=RelocInfo::INTERNAL_REFERENCE)
void ccmn(const Register &rn, const Operand &operand, StatusFlags nzcv, Condition cond)
void udiv(const Register &rd, const Register &rn, const Register &rm)
void bcax(const VRegister &vd, const VRegister &vn, const VRegister &vm, const VRegister &va)
void bti(BranchTargetIdentifier id)
void xtn2(const VRegister &vd, const VRegister &vn)
void ldsetalh(const Register &rs, const Register &rt, const MemOperand &src)
void frsqrts(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void sqdmulh(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void ldclra(const Register &rs, const Register &rt, const MemOperand &src)
void ushll(const VRegister &vd, const VRegister &vn, int shift)
void ldadd(const Register &rs, const Register &rt, const MemOperand &src)
void swplb(const Register &rs, const Register &rt, const MemOperand &src)
void DataProcessing3Source(const Register &rd, const Register &rn, const Register &rm, const Register &ra, DataProcessing3SourceOp op)
void ldumaxb(const Register &rs, const Register &rt, const MemOperand &src)
void fcvtl(const VRegister &vd, const VRegister &vn)
void subs(const Register &rd, const Register &rn, const Operand &operand)
void st1(const VRegister &vt, int lane, const MemOperand &src)
void EndBlockVeneerPool()
void caslb(const Register &rs, const Register &rt, const MemOperand &src)
void ldaddh(const Register &rs, const Register &rt, const MemOperand &src)
void sbfx(const Register &rd, const Register &rn, int lsb, int width)
void RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data=0, ConstantPoolMode constant_pool_mode=NEEDS_POOL_ENTRY)
void uxth(const Register &rd, const Register &rn)
void ldadda(const Register &rs, const Register &rt, const MemOperand &src)
void tbl(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void stclrlh(const Register &rs, const MemOperand &src)
void facgt(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void asrv(const Register &rd, const Register &rn, const Register &rm)
void NEONAcrossLanesL(const VRegister &vd, const VRegister &vn, NEONAcrossLanesOp op)
void umlal(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void saba(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void smull2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void sqabs(const VRegister &vd, const VRegister &vn)
void ldr_pcrel(const CPURegister &rt, int imm19)
void mov(const VRegister &vd, const VRegister &vn)
void scvtf(const VRegister &fd, const Register &rn, int fbits=0)
void ror(const Register &rd, const Register &rs, unsigned shift)
void ldaxrh(const Register &rt, const Register &rn)
void ldumaxalh(const Register &rs, const Register &rt, const MemOperand &src)
void ld3(const VRegister &vt, const VRegister &vt2, const VRegister &vt3, int lane, const MemOperand &src)
void ldsetah(const Register &rs, const Register &rt, const MemOperand &src)
void fmaxnmv(const VRegister &vd, const VRegister &vn)
void ssubw(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void frintn(const VRegister &vd, const VRegister &vn)
void ldaddab(const Register &rs, const Register &rt, const MemOperand &src)
void ldeorh(const Register &rs, const Register &rt, const MemOperand &src)
void fjcvtzs(const Register &rd, const VRegister &vn)
void rbit(const VRegister &vd, const VRegister &vn)
void usubl2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void stsminlb(const Register &rs, const MemOperand &src)
void ngc(const Register &rd, const Operand &operand)
void fmaxnm(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void madd(const Register &rd, const Register &rn, const Register &rm, const Register &ra)
void smlal(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void caspal(const Register &rs, const Register &rs2, const Register &rt, const Register &rt2, const MemOperand &src)
ZoneAbslBTreeMap< int, Label * > unresolved_branches_
void stsetl(const Register &rs, const MemOperand &src)
void sqrshrn(const VRegister &vd, const VRegister &vn, int shift)
ptrdiff_t InstructionOffset(Instruction *instr) const
Instruction * InstructionAt(ptrdiff_t offset) const
void stsminlh(const Register &rs, const MemOperand &src)
void b(Label *label, Condition cond)
void fmulx(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void sqdmlsl2(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
static Instr ImmNEONHLM(int index, int num_bits)
void swpalh(const Register &rs, const Register &rt, const MemOperand &src)
void ldsetlh(const Register &rs, const Register &rt, const MemOperand &src)
void cmge(const VRegister &vd, const VRegister &vn, int value)
void lduminab(const Register &rs, const Register &rt, const MemOperand &src)
void mla(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void fcmge(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void sxth(const Register &rd, const Register &rn)
void ldsminlh(const Register &rs, const Register &rt, const MemOperand &src)
void frintp(const VRegister &vd, const VRegister &vn)
void neg(const Register &rd, const Operand &operand)
void tbz(const Register &rt, unsigned bit_pos, Label *label)
void sqdmlsl(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void srhadd(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ldrsw(const Register &rt, const MemOperand &src)
void ldclrlh(const Register &rs, const Register &rt, const MemOperand &src)
static Instr VFormat(VRegister vd)
void stlrh(const Register &rt, const Register &rn)
void fcvtn(const VRegister &vd, const VRegister &vn)
void ldsetl(const Register &rs, const Register &rt, const MemOperand &src)
static Instr Rt(CPURegister rt)
void fmov(const VRegister &fd, const VRegister &fn)
void sqxtun2(const VRegister &vd, const VRegister &vn)
void fminv(const VRegister &vd, const VRegister &vn)
void clz(const VRegister &vd, const VRegister &vn)
void uabdl2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void abs(const VRegister &vd, const VRegister &vn)
void sqrdmulh(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void sli(const VRegister &vd, const VRegister &vn, int shift)
void casa(const Register &rs, const Register &rt, const MemOperand &src)
void saddl(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void sabdl2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void StartBlockVeneerPool()
void saddw(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void cmhs(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ldaddalb(const Register &rs, const Register &rt, const MemOperand &src)
void bfm(const Register &rd, const Register &rn, int immr, int imms)
void zip2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void uaddw2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void lslv(const Register &rd, const Register &rn, const Register &rm)
void frintz(const VRegister &vd, const VRegister &vn)
void fcvtms(const Register &rd, const VRegister &vn)
void NEON2RegMisc(const VRegister &vd, const VRegister &vn, NEON2RegMiscOp vop, int value=0)
void near_jump(int offset, RelocInfo::Mode rmode)
void fminnmv(const VRegister &vd, const VRegister &vn)
void mov(const Register &rd, const VRegister &vn, int vn_index)
void sqxtun(const VRegister &vd, const VRegister &vn)
void ld4(const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, int lane, const MemOperand &src)
void cmp(const Register &rn, const Operand &operand)
void mov(const Register &rd, const Register &rn)
void ld2(const VRegister &vt, const VRegister &vt2, const MemOperand &src)
void ssubw2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void tbx(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void EmitExtendShift(const Register &rd, const Register &rn, Extend extend, unsigned left_shift)
static constexpr bool IsImmAddSub(int64_t immediate)
void ldsminb(const Register &rs, const Register &rt, const MemOperand &src)
void LoadStoreStruct(const VRegister &vt, const MemOperand &addr, NEONLoadStoreMultiStructOp op)
void sqshl(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void smlal2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ldumaxa(const Register &rs, const Register &rt, const MemOperand &src)
void fmul(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void strb(const Register &rt, const MemOperand &dst)
void cmgt(const VRegister &vd, const VRegister &vn, int value)
void faddp(const VRegister &vd, const VRegister &vn)
void msr(SystemRegister sysreg, const Register &rt)
void stlrb(const Register &rt, const Register &rn)
void fcvtxn2(const VRegister &vd, const VRegister &vn)
void faddp(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void steor(const Register &rs, const MemOperand &src)
void stlr(const Register &rt, const Register &rn)
void ldsetlb(const Register &rs, const Register &rt, const MemOperand &src)
void ldumaxlb(const Register &rs, const Register &rt, const MemOperand &src)
void uabdl(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void umax(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void addv(const VRegister &vd, const VRegister &vn)
void ssubl(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void umlsl2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
static Instr NEONModImmOp(int op)
void fcvtmu(const Register &rd, const VRegister &vn)
void EmitConstPoolWithJumpIfNeeded(size_t margin=0)
void ldumaxah(const Register &rs, const Register &rt, const MemOperand &src)
void uaddw(const VRegister &vd, const VRegister &vn, const VRegister &vm)
static uint32_t uint32_constant_at(Address pc, Address constant_pool)
void casab(const Register &rs, const Register &rt, const MemOperand &src)
static Instr FPFormat(VRegister vd)
void msub(const Register &rd, const Register &rn, const Register &rm, const Register &ra)
void ldaddah(const Register &rs, const Register &rt, const MemOperand &src)
void umin(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ldr(const CPURegister &rt, const Operand &operand)
void cneg(const Register &rd, const Register &rn, Condition cond)
void dsb(BarrierDomain domain, BarrierType type)
void umlsl(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void DeleteUnresolvedBranchInfoForLabel(Label *label)
void adc(const Register &rd, const Register &rn, const Operand &operand)
void uaddl2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ldsmaxalh(const Register &rs, const Register &rt, const MemOperand &src)
void frecps(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void fminnmp(const VRegister &vd, const VRegister &vn)
void sqdmull2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void DataProcShiftedRegister(const Register &rd, const Register &rn, const Operand &operand, FlagsUpdate S, Instr op)
void uhadd(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void add(const Register &rd, const Register &rn, const Operand &operand)
void fcvtzu(const VRegister &vd, const VRegister &vn, int fbits=0)
void ldrb(const Register &rt, const MemOperand &src)
void ldrsb(const Register &rt, const MemOperand &src)
void uqsub(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void sri(const VRegister &vd, const VRegister &vn, int shift)
void dmb(BarrierDomain domain, BarrierType type)
void pmull2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void fcmp(const VRegister &vn, const VRegister &vm)
void cls(const Register &rd, const Register &rn)
void umulh(const Register &rd, const Register &rn, const Register &rm)
void sabal(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void smlal2(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void swpab(const Register &rs, const Register &rt, const MemOperand &src)
void ldsmax(const Register &rs, const Register &rt, const MemOperand &src)
void bsl(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ushr(const VRegister &vd, const VRegister &vn, int shift)
void rev16(const VRegister &vd, const VRegister &vn)
void saddlv(const VRegister &vd, const VRegister &vn)
static void set_uint32_constant_at(Address pc, Address constant_pool, uint32_t new_constant, WritableJitAllocation *jit_allocation=nullptr, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
void uqrshl(const VRegister &vd, const VRegister &vn, const VRegister &vm)
static Instr Rt2(CPURegister rt2)
void swplh(const Register &rs, const Register &rt, const MemOperand &src)
void sminp(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void rorv(const Register &rd, const Register &rn, const Register &rm)
static Address target_address_at(Address pc, Address constant_pool)
void lduminal(const Register &rs, const Register &rt, const MemOperand &src)
void ubfx(const Register &rd, const Register &rn, int lsb, int width)
void ConditionalCompare(const Register &rn, const Operand &operand, StatusFlags nzcv, Condition cond, ConditionalCompareOp op)
void umlal2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void stsmax(const Register &rs, const MemOperand &src)
void fmov(const VRegister &fd, double imm)
void smaddl(const Register &rd, const Register &rn, const Register &rm, const Register &ra)
void shrn2(const VRegister &vd, const VRegister &vn, int shift)
void stsetlh(const Register &rs, const MemOperand &src)
void eor3(const VRegister &vd, const VRegister &vn, const VRegister &vm, const VRegister &va)
void ld3(const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const MemOperand &src)
void fcmp(const VRegister &vn, double value)
void Emit(Instr instruction)
void fcmeq(const VRegister &vd, const VRegister &vn, double imm)
void stclr(const Register &rs, const MemOperand &src)
void ldaddlb(const Register &rs, const Register &rt, const MemOperand &src)
void extr(const Register &rd, const Register &rn, const Register &rm, int lsb)
void addp(const VRegister &vd, const VRegister &vn)
void frecpe(const VRegister &vd, const VRegister &vn)
void ldaddb(const Register &rs, const Register &rt, const MemOperand &src)
void sqrshrun(const VRegister &vd, const VRegister &vn, int shift)
static Instr ImmNEON5(Instr format, int index)
void fcvt(const VRegister &vd, const VRegister &vn)
void ld1(const VRegister &vt, int lane, const MemOperand &src)
void near_call(int offset, RelocInfo::Mode rmode)
int unresolved_branches_first_limit() const
void fcvtns(const Register &rd, const VRegister &vn)
void cmhi(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ldar(const Register &rt, const Register &rn)
void ldp(const CPURegister &rt, const CPURegister &rt2, const MemOperand &src)
void ld2(const VRegister &vt, const VRegister &vt2, int lane, const MemOperand &src)
void fsqrt(const VRegister &vd, const VRegister &vn)
void ld1r(const VRegister &vt, const MemOperand &src)
void cmgt(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void fminp(const VRegister &vd, const VRegister &vn)
void staddl(const Register &rs, const MemOperand &src)
static Instr Rs(CPURegister rs)
void smsubl(const Register &rd, const Register &rn, const Register &rm, const Register &ra)
void umull(const VRegister &vd, const VRegister &vn, const VRegister &vm)
static constexpr int kGap
static Instr ImmNEONExt(int imm4)
void stset(const Register &rs, const MemOperand &src)
void tbl(const VRegister &vd, const VRegister &vn, const VRegister &vn2, const VRegister &vm)
void caspa(const Register &rs, const Register &rs2, const Register &rt, const Register &rt2, const MemOperand &src)
void ld1(const VRegister &vt, const VRegister &vt2, const MemOperand &src)
static Instr SFormat(VRegister vd)
static Instr ImmNEONFP(double imm)
std::deque< int > internal_reference_positions_
void fadd(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void usubl(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void smlsl(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void LoadStore(const CPURegister &rt, const MemOperand &addr, LoadStoreOp op)
void ldsmaxb(const Register &rs, const Register &rt, const MemOperand &src)
static Instr ImmFP(double imm)
void smull(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void fcvtn2(const VRegister &vd, const VRegister &vn)
void swpb(const Register &rs, const Register &rt, const MemOperand &src)
void cas(const Register &rs, const Register &rt, const MemOperand &src)
void RemoveBranchFromLabelLinkChain(Instruction *branch, Label *label, Instruction *label_veneer=nullptr)
void ForceConstantPoolEmissionWithJump()
void sqdmlal2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void NEONShiftRightImmediate(const VRegister &vd, const VRegister &vn, int shift, NEONShiftImmediateOp op)
static bool IsImmFP64(uint64_t bits)
void uqrshrn(const VRegister &vd, const VRegister &vn, int shift)
int LinkAndGetByteOffsetTo(Label *label)
void fminnm(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ldaddl(const Register &rs, const Register &rt, const MemOperand &src)
void adr(const Register &rd, Label *label)
void ldsminh(const Register &rs, const Register &rt, const MemOperand &src)
void mov(const VRegister &vd, int vd_index, const VRegister &vn, int vn_index)
void NEONShiftImmediateN(const VRegister &vd, const VRegister &vn, int shift, NEONShiftImmediateOp op)
void adr(const Register &rd, int imm21)
void trn1(const VRegister &vd, const VRegister &vn, const VRegister &vm)
static Instr ImmNEON4(Instr format, int index)
void trn2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void frecpx(const VRegister &vd, const VRegister &vn)
void rshrn(const VRegister &vd, const VRegister &vn, int shift)
void fmulx(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void cls(const VRegister &vd, const VRegister &vn)
void fccmp(const VRegister &vn, const VRegister &vm, StatusFlags nzcv, Condition cond)
void fmadd(const VRegister &vd, const VRegister &vn, const VRegister &vm, const VRegister &va)
void GetCode(Isolate *isolate, CodeDesc *desc)
void st3(const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const MemOperand &src)
void NEON3Same(const VRegister &vd, const VRegister &vn, const VRegister &vm, NEON3SameOp vop)
void lduminalh(const Register &rs, const Register &rt, const MemOperand &src)
void uxtl(const VRegister &vd, const VRegister &vn)
void fcvtpu(const Register &rd, const VRegister &vn)
void add(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void orr(const Register &rd, const Register &rn, const Operand &operand)
void sxtl2(const VRegister &vd, const VRegister &vn)
void stclrb(const Register &rs, const MemOperand &src)
void cinc(const Register &rd, const Register &rn, Condition cond)
void ldsmaxa(const Register &rs, const Register &rt, const MemOperand &src)
void urecpe(const VRegister &vd, const VRegister &vn)
void fcvtmu(const VRegister &vd, const VRegister &vn)
void ubfiz(const Register &rd, const Register &rn, int lsb, int width)
void smulh(const Register &rd, const Register &rn, const Register &rm)
void cmtst(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void fmov(const VRegister &vd, int index, const Register &rn)
void uxtl2(const VRegister &vd, const VRegister &vn)
void fsub(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void LoadStoreStructVerify(const VRegister &vt, const MemOperand &addr, Instr op)
void bfxil(const Register &rd, const Register &rn, int lsb, int width)
void ldclrah(const Register &rs, const Register &rt, const MemOperand &src)
void ldclrab(const Register &rs, const Register &rt, const MemOperand &src)
void sub(const Register &rd, const Register &rn, const Operand &operand)
void csel(const Register &rd, const Register &rn, const Register &rm, Condition cond)
void lduminb(const Register &rs, const Register &rt, const MemOperand &src)
void fmaxv(const VRegister &vd, const VRegister &vn)
void fabs(const VRegister &vd, const VRegister &vn)
void MaybeEmitOutOfLineConstantPool()
void tst(const Register &rn, const Operand &operand)
void fcmge(const VRegister &vd, const VRegister &vn, double imm)
void usubw2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
static constexpr bool IsImmConditionalCompare(int64_t immediate)
void ldrsh(const Register &rt, const MemOperand &src)
void fmls(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void sqrshl(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void sshll(const VRegister &vd, const VRegister &vn, int shift)
void saddl2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void tbz(const Register &rt, unsigned bit_pos, int imm14)
void bics(const Register &rd, const Register &rn, const Operand &operand)
void and_(const Register &rd, const Register &rn, const Operand &operand)
void ldeora(const Register &rs, const Register &rt, const MemOperand &src)
void fmax(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void sqshrun2(const VRegister &vd, const VRegister &vn, int shift)
void ldeoralb(const Register &rs, const Register &rt, const MemOperand &src)
void ldr(const CPURegister &rt, const Immediate &imm)
void eon(const Register &rd, const Register &rn, const Operand &operand)
void ldseta(const Register &rs, const Register &rt, const MemOperand &src)
static Instr ImmNEONabcdefgh(int imm8)
void movz(const Register &rd, uint64_t imm, int shift=-1)
static bool IsImmLLiteral(int64_t offset)
void umull2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void lduminlb(const Register &rs, const Register &rt, const MemOperand &src)
void fcmgt(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void umlsl(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void neg(const VRegister &vd, const VRegister &vn)
void uqshrn2(const VRegister &vd, const VRegister &vn, int shift)
void ldeorah(const Register &rs, const Register &rt, const MemOperand &src)
void b(int imm19, Condition cond)
void stsmaxl(const Register &rs, const MemOperand &src)
void umlsl2(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void FPDataProcessing3Source(const VRegister &fd, const VRegister &fn, const VRegister &fm, const VRegister &fa, FPDataProcessing3SourceOp op)
void cbnz(const Register &rt, int imm19)
void sqdmlsl2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void lsl(const Register &rd, const Register &rn, int shift)
void stuminh(const Register &rs, const MemOperand &src)
void stumaxb(const Register &rs, const MemOperand &src)
void fcmeq(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void sabd(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void fdiv(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void NEONShiftImmediateL(const VRegister &vd, const VRegister &vn, int shift, NEONShiftImmediateOp op)
void sqdmulh(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void tbnz(const Register &rt, unsigned bit_pos, Label *label)
void ccmp(const Register &rn, const Operand &operand, StatusFlags nzcv, Condition cond)
void casp(const Register &rs, const Register &rs2, const Register &rt, const Register &rt2, const MemOperand &src)
void rev16(const Register &rd, const Register &rn)
void not_(const VRegister &vd, const VRegister &vn)
void eor(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void sqxtn2(const VRegister &vd, const VRegister &vn)
void EmitVeneers(bool force_emit, bool need_protection, size_t margin=kVeneerDistanceMargin)
void LoadStoreStructSingle(const VRegister &vt, uint32_t lane, const MemOperand &addr, NEONLoadStoreSingleStructOp op)
void MoveWide(const Register &rd, uint64_t imm, int shift, MoveWideImmediateOp mov_op)
void tbx(const VRegister &vd, const VRegister &vn, const VRegister &vn2, const VRegister &vn3, const VRegister &vn4, const VRegister &vm)
void ld2r(const VRegister &vt, const VRegister &vt2, const MemOperand &src)
void ldeorl(const Register &rs, const Register &rt, const MemOperand &src)
void mul(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void uqadd(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void mov(const VRegister &vd, int vd_index, const Register &rn)
void stseth(const Register &rs, const MemOperand &src)
void EmitShift(const Register &rd, const Register &rn, Shift shift, unsigned amount)
void sqshrn(const VRegister &vd, const VRegister &vn, int shift)
void cash(const Register &rs, const Register &rt, const MemOperand &src)
void stsminl(const Register &rs, const MemOperand &src)
void ldclrlb(const Register &rs, const Register &rt, const MemOperand &src)
void sshl(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ubfm(const Register &rd, const Register &rn, int immr, int imms)
void mul(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void smov(const Register &rd, const VRegister &vn, int vn_index)
void ldsminalh(const Register &rs, const Register &rt, const MemOperand &src)
void shadd(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ushl(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ld4(const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, const MemOperand &src)
void LoadStoreStruct1(const VRegister &vt, int reg_count, const MemOperand &addr)
void pmul(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void addhn(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void adds(const Register &rd, const Register &rn, const Operand &operand)
void uqrshrn2(const VRegister &vd, const VRegister &vn, int shift)
void st4(const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, const MemOperand &src)
void fmla(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void fmaxnmp(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void sqdmull(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void stclrh(const Register &rs, const MemOperand &src)
void movi(const VRegister &vd, const uint64_t imm, Shift shift=LSL, const int shift_amount=0)
void st3(const VRegister &vt, const VRegister &vt2, const VRegister &vt3, int lane, const MemOperand &src)
void stsetb(const Register &rs, const MemOperand &src)
void sqdmlal2(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void uminp(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void sqrshrn2(const VRegister &vd, const VRegister &vn, int shift)
void movk(const Register &rd, uint64_t imm, int shift=-1)
void umaxv(const VRegister &vd, const VRegister &vn)
void sbfm(const Register &rd, const Register &rn, int immr, int imms)
void ldsmaxh(const Register &rs, const Register &rt, const MemOperand &src)
void fcvtpu(const VRegister &vd, const VRegister &vn)
void GetCode(LocalIsolate *isolate, CodeDesc *desc, SafepointTableBuilderBase *safepoint_table_builder, int handler_table_offset)
void steorh(const Register &rs, const MemOperand &src)
void sqshlu(const VRegister &vd, const VRegister &vn, int shift)
void sshll2(const VRegister &vd, const VRegister &vn, int shift)
void ldsmina(const Register &rs, const Register &rt, const MemOperand &src)
void tbx(const VRegister &vd, const VRegister &vn, const VRegister &vn2, const VRegister &vm)
void ext(const VRegister &vd, const VRegister &vn, const VRegister &vm, int index)
static Instr Rn(CPURegister rn)
void ldaddlh(const Register &rs, const Register &rt, const MemOperand &src)
void orn(const Register &rd, const Register &rn, const Operand &operand)
void sabdl(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ldaxrb(const Register &rt, const Register &rn)
void bic(const Register &rd, const Register &rn, const Operand &operand)
void fmaxnmp(const VRegister &vd, const VRegister &vn)
static constexpr bool IsImmLSUnscaled(int64_t offset)
void cinv(const Register &rd, const Register &rn, Condition cond)
static int deserialization_special_target_size(Address location)
void ldeor(const Register &rs, const Register &rt, const MemOperand &src)
void sub(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void addhn2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void mls(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void uzp1(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void fcvtns(const VRegister &rd, const VRegister &vn)
void swpa(const Register &rs, const Register &rt, const MemOperand &src)
void ins(const VRegister &vd, int vd_index, const VRegister &vn, int vn_index)
void fcvtl2(const VRegister &vd, const VRegister &vn)
void EmitStringData(const char *string)
void bic(const VRegister &vd, const int imm8, const int left_shift=0)
void stumaxh(const Register &rs, const MemOperand &src)
void NEONModifiedImmShiftMsl(const VRegister &vd, const int imm8, const int shift_amount, NEONModifiedImmediateOp op)
void smlsl2(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void uaddlv(const VRegister &vd, const VRegister &vn)
void urshl(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void frintm(const VRegister &vd, const VRegister &vn)
void stsminb(const Register &rs, const MemOperand &src)
void uminv(const VRegister &vd, const VRegister &vn)
void blr(const Register &xn)
void ldsminal(const Register &rs, const Register &rt, const MemOperand &src)
void sqshl(const VRegister &vd, const VRegister &vn, int shift)
void fnmadd(const VRegister &vd, const VRegister &vn, const VRegister &vm, const VRegister &va)
void stsmaxlh(const Register &rs, const MemOperand &src)
void cnt(const VRegister &vd, const VRegister &vn)
void stumaxl(const Register &rs, const MemOperand &src)
void shrn(const VRegister &vd, const VRegister &vn, int shift)
void NEON3DifferentL(const VRegister &vd, const VRegister &vn, const VRegister &vm, NEON3DifferentOp vop)
void nop(NopMarkerTypes n)
void uabd(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ldsmaxlb(const Register &rs, const Register &rt, const MemOperand &src)
void ucvtf(const VRegister &fd, const VRegister &vn, int fbits=0)
void shl(const VRegister &vd, const VRegister &vn, int shift)
void tbnz(const Register &rt, unsigned bit_pos, int imm14)
void sqdmull2(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void DataProcessing1Source(const Register &rd, const Register &rn, DataProcessing1SourceOp op)
void stlxr(const Register &rs, const Register &rt, const Register &rn)
static uint32_t FPToImm8(double imm)
void uqshl(const VRegister &vd, const VRegister &vn, int shift)
void st2(const VRegister &vt, const VRegister &vt2, const MemOperand &src)
void usra(const VRegister &vd, const VRegister &vn, int shift)
void LoadStorePair(const CPURegister &rt, const CPURegister &rt2, const MemOperand &addr, LoadStorePairOp op)
void fmov(const VRegister &fd, float imm)
void stp(const CPURegister &rt, const CPURegister &rt2, const MemOperand &dst)
void sqadd(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ins(const VRegister &vd, int vd_index, const Register &rn)
void shll2(const VRegister &vd, const VRegister &vn, int shift)
void fmaxp(const VRegister &vd, const VRegister &vn)
static void set_target_address_at(Address pc, Address constant_pool, Address target, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
void ldclralb(const Register &rs, const Register &rt, const MemOperand &src)
void ldeoralh(const Register &rs, const Register &rt, const MemOperand &src)
void stumaxlb(const Register &rs, const MemOperand &src)
void NEONModifiedImmShiftLsl(const VRegister &vd, const int imm8, const int left_shift, NEONModifiedImmediateOp op)
void ldsmaxah(const Register &rs, const Register &rt, const MemOperand &src)
void negs(const Register &rd, const Operand &operand)
void ldseth(const Register &rs, const Register &rt, const MemOperand &src)
void stuminb(const Register &rs, const MemOperand &src)
void cbnz(const Register &rt, Label *label)
void stadd(const Register &rs, const MemOperand &src)
void mvn(const VRegister &vd, const VRegister &vn)
void rev64(const VRegister &vd, const VRegister &vn)
void AddSub(const Register &rd, const Register &rn, const Operand &operand, FlagsUpdate S, AddSubOp op)
void st2(const VRegister &vt, const VRegister &vt2, int lane, const MemOperand &src)
void stsmaxb(const Register &rs, const MemOperand &src)
void cbz(const Register &rt, int imm19)
void steorlb(const Register &rs, const MemOperand &src)
static bool IsImmLogical(uint64_t value, unsigned width, unsigned *n, unsigned *imm_s, unsigned *imm_r)
void NEONShiftLeftImmediate(const VRegister &vd, const VRegister &vn, int shift, NEONShiftImmediateOp op)
void ursra(const VRegister &vd, const VRegister &vn, int shift)
void cbz(const Register &rt, Label *label)
void fneg(const VRegister &vd, const VRegister &vn)
void sqrdmulh(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void NEONFP2RegMisc(const VRegister &vd, const VRegister &vn, Instr op)
void ldumax(const Register &rs, const Register &rt, const MemOperand &src)
void fmul(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void st1(const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, const MemOperand &src)
void stsmaxh(const Register &rs, const MemOperand &src)
void ldsmaxalb(const Register &rs, const Register &rt, const MemOperand &src)
void srshr(const VRegister &vd, const VRegister &vn, int shift)
void CheckLabelLinkChain(Label const *label)
void srsra(const VRegister &vd, const VRegister &vn, int shift)
void stuminlh(const Register &rs, const MemOperand &src)
void fcvtas(const VRegister &vd, const VRegister &vn)
void frsqrte(const VRegister &vd, const VRegister &vn)
void ld1(const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, const MemOperand &src)
void umull(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void cmlt(const VRegister &vd, const VRegister &vn, int value)
void ForceConstantPoolEmissionWithoutJump()
void caslh(const Register &rs, const Register &rt, const MemOperand &src)
void uxtw(const Register &rd, const Register &rn)
void NEONTable(const VRegister &vd, const VRegister &vn, const VRegister &vm, NEONTableOp op)
void mls(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void st1(const VRegister &vt, const MemOperand &src)
void srshl(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void stumaxlh(const Register &rs, const MemOperand &src)
void smaxv(const VRegister &vd, const VRegister &vn)
void fmin(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void smlsl(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void fmla(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void clz(const Register &rd, const Register &rn)
void subhn2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void dup(const VRegister &vd, const Register &rn)
void sdiv(const Register &rd, const Register &rn, const Register &rm)
void uaddlp(const VRegister &vd, const VRegister &vn)
bool ShouldEmitVeneer(int max_reachable_pc, size_t margin)
void stsmin(const Register &rs, const MemOperand &src)
void mrs(const Register &rt, SystemRegister sysreg)
void EmitData(void const *data, unsigned size)
void AbortedCodeGeneration() override
void swpal(const Register &rs, const Register &rt, const MemOperand &src)
void ldsmaxab(const Register &rs, const Register &rt, const MemOperand &src)
void sxtb(const Register &rd, const Register &rn)
void ldumaxab(const Register &rs, const Register &rt, const MemOperand &src)
void debug(const char *message, uint32_t code, Instr params=BREAK)
void usubw(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void sqdmlsl(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void st4(const VRegister &vt, const VRegister &vt2, const VRegister &vt3, const VRegister &vt4, int lane, const MemOperand &src)
void casl(const Register &rs, const Register &rt, const MemOperand &src)
void fcvtps(const Register &rd, const VRegister &vn)
void fcvtas(const Register &rd, const VRegister &vn)
void rev(const Register &rd, const Register &rn)
void ldsetalb(const Register &rs, const Register &rt, const MemOperand &src)
void smin(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void saddlp(const VRegister &vd, const VRegister &vn)
void NEONFP3Same(const VRegister &vd, const VRegister &vn, const VRegister &vm, Instr op)
void umaxp(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void asr(const Register &rd, const Register &rn, int shift)
void fabd(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ret(const Register &xn=lr)
void umsubl(const Register &rd, const Register &rn, const Register &rm, const Register &ra)
void sbc(const Register &rd, const Register &rn, const Operand &operand)
Instr LoadStoreStructAddrModeField(const MemOperand &addr)
void fmls(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ldaxr(const Register &rt, const Register &rn)
void sabal2(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void stumin(const Register &rs, const MemOperand &src)
void ldarb(const Register &rt, const Register &rn)
void casalb(const Register &rs, const Register &rt, const MemOperand &src)
void Logical(const Register &rd, const Register &rn, const Operand &operand, LogicalOp op)
void umlal2(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void xtn(const VRegister &vd, const VRegister &vn)
void bfi(const Register &rd, const Register &rn, int lsb, int width)
void ldarh(const Register &rt, const Register &rn)
void stclrl(const Register &rs, const MemOperand &src)
void NEONByElement(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index, NEONByIndexedElementOp op)
void ldclral(const Register &rs, const Register &rt, const MemOperand &src)
void ldsmin(const Register &rs, const Register &rt, const MemOperand &src)
void orn(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void ldsminlb(const Register &rs, const Register &rt, const MemOperand &src)
bool is_veneer_pool_blocked() const
void fcsel(const VRegister &vd, const VRegister &vn, const VRegister &vm, Condition cond)
void RecordDeoptReason(DeoptimizeReason reason, uint32_t node_id, SourcePosition position, int id)
void ldrh(const Register &rt, const MemOperand &src)
void ldeorlb(const Register &rs, const Register &rt, const MemOperand &src)
void smlal(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void ldr(const CPURegister &rt, const MemOperand &src)
void casalh(const Register &rs, const Register &rt, const MemOperand &src)
void fmov(const Register &rd, const VRegister &fn)
void NEONFPConvertToInt(const VRegister &vd, const VRegister &vn, Instr op)
void swph(const Register &rs, const Register &rt, const MemOperand &src)
void ldsminalb(const Register &rs, const Register &rt, const MemOperand &src)
void fcvtau(const Register &rd, const VRegister &vn)
void stlxrh(const Register &rs, const Register &rt, const Register &rn)
void cmeq(const VRegister &vd, const VRegister &vn, const VRegister &vm)
static int ConstantPoolSizeAt(Instruction *instr)
void staddh(const Register &rs, const MemOperand &src)
void cmle(const VRegister &vd, const VRegister &vn, int value)
void uabal(const VRegister &vd, const VRegister &vn, const VRegister &vm)
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 sqdmlal(const VRegister &vd, const VRegister &vn, const VRegister &vm, int vm_index)
void fnmul(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void rev32(const VRegister &vd, const VRegister &vn)
void rsubhn(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void stuminl(const Register &rs, const MemOperand &src)
void lsrv(const Register &rd, const Register &rn, const Register &rm)
void fcmlt(const VRegister &vd, const VRegister &vn, double imm)
void ldsmaxlh(const Register &rs, const Register &rt, const MemOperand &src)
void NEONXtn(const VRegister &vd, const VRegister &vn, NEON2RegMiscOp vop)
void CheckVeneerPool(bool force_emit, bool require_jump, size_t margin=kVeneerDistanceMargin)
void raddhn(const VRegister &vd, const VRegister &vn, const VRegister &vm)
void NEON3DifferentHN(const VRegister &vd, const VRegister &vn, const VRegister &vm, NEON3DifferentOp vop)
void ldpsw(const Register &rt, const Register &rt2, const MemOperand &src)
void lduminah(const Register &rs, const Register &rt, const MemOperand &src)
Assembler::BlockPoolsScope block_pools_scope_
V8_INLINE EnsureSpace(Assembler *assembler)
const Register & base() const
bool IsImmediateOffset() const
AddrMode addrmode() const
bool IsRegisterOffset() const
unsigned shift_amount() const
const Register & regoffset() const
bool IsExtendedRegister() const
std::optional< HeapNumberRequest > heap_number_request_
int64_t ImmediateValue() const
RelocInfo::Mode ImmediateRMode() const
unsigned shift_amount() const
bool NeedsRelocation(const Assembler *assembler) const
HeapNumberRequest heap_number_request() const
Immediate immediate_for_heap_number_request() const
bool IsHeapNumberRequest() const
Operand ToExtendedRegister() const
static Operand EmbeddedHeapNumber(double number)
static Operand EmbeddedNumber(double number)
V8_INLINE Operand(int32_t immediate, RelocInfo::Mode rmode=RelocInfo::NO_INFO)
bool IsShiftedRegister() const
Immediate immediate() const
BlockPoolsScope block_constant_pool_emission_scope
static constexpr int kAdrFarPatchableNNops
void PatchSubSp(uint32_t immediate)
static constexpr int kAdrFarPatchableNInstrs
void PatchAdrFar(int64_t target_offset)
PatchingAssembler(Zone *zone, const AssemblerOptions &options, uint8_t *start, unsigned count)
constexpr int8_t code() const
base::OwnedVector< uint8_t > buffer_
too high values may cause the compiler to set high thresholds for inlining to as much as possible avoid inlined allocation of objects that cannot escape trace load stores from virtual maglev objects use TurboFan fast string builder analyze liveness of environment slots and zap dead values trace TurboFan load elimination emit data about basic block usage in builtins to this enable builtin reordering when run mksnapshot flag for emit warnings when applying builtin profile data verify register allocation in TurboFan randomly schedule instructions to stress dependency tracking enable store store elimination in TurboFan rewrite far to near simulate GC compiler thread race related to allow float parameters to be passed in simulator mode JS Wasm Run additional turbo_optimize_inlined_js_wasm_wrappers enable experimental feedback collection in generic lowering enable Turboshaft s WasmLoadElimination enable Turboshaft s low level load elimination for JS enable Turboshaft s escape analysis for string concatenation use enable Turbolev features that we want to ship in the not too far future trace individual Turboshaft reduction steps trace intermediate Turboshaft reduction steps invocation count threshold for early optimization Enables optimizations which favor memory size over execution speed Enables sampling allocation profiler with X as a sample interval min size of a semi the new space consists of two semi spaces max size of the Collect garbage after Collect garbage after keeps maps alive for< n > old space garbage collections print one detailed trace line in allocation gc speed threshold for starting incremental marking via a task in percent of available threshold for starting incremental marking immediately in percent of available Use a single schedule for determining a marking schedule between JS and C objects schedules the minor GC task with kUserVisible priority max worker number of concurrent for NumberOfWorkerThreads start background threads that allocate memory concurrent_array_buffer_sweeping use parallel threads to clear weak refs in the atomic pause trace progress of the incremental marking trace object counts and memory usage * MB
refactor address components for immediate indexing make OptimizeMaglevOnNextCall optimize to turbofan instead of maglev filter for tracing turbofan compilation trace turbo cfg trace TurboFan s graph trimmer trace TurboFan s control equivalence trace TurboFan s register allocator trace stack load store counters for optimized code in run fuzzing &&concurrent_recompilation trace_turbo trace_turbo_scheduled trace_turbo_stack_accesses verify TurboFan machine graph of code stubs enable FixedArray bounds checks print TurboFan statistics of wasm compilations maximum cumulative size of bytecode considered for inlining scale factor of bytecode size used to calculate the inlining budget * KB
V8_INLINE IndirectHandle< T > handle(Tagged< T > object, Isolate *isolate)
constexpr NEONFormatField NEON_8B
V8_EXPORT_PRIVATE base::Vector< Flag > Flags()
uint32_t AddSubWithCarryOp
constexpr NEONFormatField NEON_16B
uint32_t NEONAcrossLanesOp
constexpr NEONLSFormatField LS_NEON_1D
constexpr MoveWideImmediateOp MOVZ
constexpr MoveWideImmediateOp MOVN
constexpr NEONScalarFormatField NEON_H
uint32_t NEONModifiedImmediateOp
constexpr GenericInstrField FP64
uint32_t NEONShiftImmediateOp
constexpr NEONLSFormatField LS_NEON_2D
constexpr NEONFPFormatField NEON_FP_2D
constexpr NEONFormatField NEON_2S
uint32_t ConditionalSelectOp
std::variant< Zone *, AccountingAllocator * > MaybeAssemblerZone
uint32_t ConditionalCompareOp
uint32_t FPDataProcessing3SourceOp
constexpr AddrMode Offset
constexpr NEONFormatField NEON_1D
constexpr uint64_t kSmiShiftMask
uint32_t FPDataProcessing2SourceOp
constexpr NEONFPFormatField NEON_FP_4S
constexpr NEONLSFormatField LS_NEON_4H
int LaneSizeInBytesLog2FromFormat(VectorFormat vform)
uint32_t DataProcessing3SourceOp
constexpr NEONFormatField NEON_4H
uint32_t NEON3DifferentOp
constexpr NEONLSFormatField LS_NEON_8H
constexpr NEONFormatField NEON_8H
constexpr unsigned kRegCodeMask
unsigned CalcLSDataSizeLog2(LoadStoreOp op)
constexpr NEONFPFormatField NEON_FP_8H
constexpr MoveWideImmediateOp MOVK
constexpr NEONLSFormatField LS_NEON_16B
uint32_t NEONLoadStoreMultiStructOp
constexpr NEONFormatField NEON_4S
uint32_t MoveWideImmediateOp
constexpr NEONScalarFormatField NEON_D
constexpr NEONFPFormatField NEON_FP_2S
uint32_t NEONLoadStoreSingleStructOp
constexpr NEONFormatField NEON_2D
constexpr NEONScalarFormatField NEON_S
constexpr GenericInstrField FP32
constexpr uint8_t kInstrSize
constexpr int kSPRegInternalCode
constexpr NEONScalarFormatField NEON_B
constexpr NEONLSFormatField LS_NEON_2S
uint32_t DataProcessing1SourceOp
constexpr NEONLSFormatField LS_NEON_8B
std::unique_ptr< AssemblerBuffer > ExternalAssemblerBuffer(void *start, int size)
constexpr NEONLSFormatField LS_NEON_4S
uint32_t NEONByIndexedElementOp
uint32_t FPDataProcessing1SourceOp
constexpr NEONFPFormatField NEON_FP_4H
#define DCHECK_LE(v1, v2)
#define DCHECK_NE(v1, v2)
#define DCHECK_GE(v1, v2)
#define DCHECK(condition)
#define DCHECK_LT(v1, v2)
#define DCHECK_EQ(v1, v2)
#define V8_EXPORT_PRIVATE
#define V8_UNLIKELY(condition)