37#ifndef V8_CODEGEN_IA32_ASSEMBLER_IA32_H_
38#define V8_CODEGEN_IA32_ASSEMBLER_IA32_H_
56class SafepointTableBuilder;
128 :
Immediate(static_cast<intptr_t>(value.ptr())) {}
143 return value_.heap_number_request;
190 value_.immediate =
reinterpret_cast<int32_t
>(
value);
237 set_dispr(disp, rmode);
243 set_dispr(imm.immediate(), imm.rmode_);
253 set_dispr(
reinterpret_cast<intptr_t
>(
label), RelocInfo::INTERNAL_REFERENCE);
265 return Operand(index,
scale,
reinterpret_cast<int32_t
>(table),
266 RelocInfo::INTERNAL_REFERENCE);
270 return Operand(
base, imm.value_.immediate, imm.rmode_);
297 inline void set_disp8(int8_t disp);
299 DCHECK(len_ == 1 || len_ == 2);
300 Address p =
reinterpret_cast<Address
>(&
buf_[len_]);
301 WriteUnalignedValue(p, disp);
302 len_ +=
sizeof(int32_t);
307 return ((
buf_[0] & 0xF8) == 0xC0)
308 && ((
buf_[0] & 0x07) == reg_code);
319 "Operand must be small enough to pass it by value");
350 n > 0 ?
L->link_to(n) :
L->Unuse();
383 static constexpr int kGap = 32;
384 static_assert(AssemblerBase::kMinimalBufferSize >= 2 * kGap);
395 std::unique_ptr<AssemblerBuffer> = {});
398 std::unique_ptr<AssemblerBuffer> buffer = {})
402 static constexpr int kNoHandlerTable = 0;
406 int handler_table_offset);
412 GetCode(isolate, desc, kNoSafepointTable, kNoHandlerTable);
424 Address
pc, Address constant_pool, Address target,
430 Address instruction_payload);
440 Address
pc, Address constant_pool, uint32_t new_constant,
447 static constexpr uint8_t kTestAlByte = 0xA8;
452 static constexpr uint8_t kJmpShortOpcode = 0xEB;
454 static constexpr uint8_t kJccShortPrefix = 0x70;
455 static constexpr uint8_t kJncShortOpcode = kJccShortPrefix |
not_carry;
456 static constexpr uint8_t kJcShortOpcode = kJccShortPrefix |
carry;
457 static constexpr uint8_t kJnzShortOpcode = kJccShortPrefix |
not_zero;
458 static constexpr uint8_t kJzShortOpcode = kJccShortPrefix | zero;
911 sse2_instr(dst, src, 0x66, 0x0F, 0x51);
925#define PACKED_CMP_LIST(V) \
932#define SSE_CMP_P(instr, imm8) \
933 void instr##ps(XMMRegister dst, XMMRegister src) { \
934 cmpps(dst, Operand(src), imm8); \
936 void instr##ps(XMMRegister dst, Operand src) { cmpps(dst, src, imm8); } \
937 void instr##pd(XMMRegister dst, XMMRegister src) { \
938 cmppd(dst, Operand(src), imm8); \
940 void instr##pd(XMMRegister dst, Operand src) { cmppd(dst, src, imm8); }
980 sse2_instr(dst, src, 0x66, 0x0F, 0x28);
983 sse2_instr(dst, src, 0x66, 0x0F, 0x10);
1034 pshufhw(dst,
Operand(src), shuffle);
1038 pshuflw(dst,
Operand(src), shuffle);
1042 pshufd(dst,
Operand(src), shuffle);
1097 vaddss(dst, src1,
Operand(src2));
1100 vss(0x58, dst, src1, src2);
1103 vsubss(dst, src1,
Operand(src2));
1106 vss(0x5c, dst, src1, src2);
1109 vmulss(dst, src1,
Operand(src2));
1112 vss(0x59, dst, src1, src2);
1115 vdivss(dst, src1,
Operand(src2));
1118 vss(0x5e, dst, src1, src2);
1121 vmaxss(dst, src1,
Operand(src2));
1124 vss(0x5f, dst, src1, src2);
1127 vminss(dst, src1,
Operand(src2));
1130 vss(0x5d, dst, src1, src2);
1133 vsqrtss(dst, src1,
Operand(src2));
1136 vss(0x51, dst, src1, src2);
1141 vhaddps(dst, src1,
Operand(src2));
1144 vinstr(0x7C, dst, src1, src2, kF2, k0F, kWIG);
1148 vinstr(0x51, dst, xmm0, src, k66, k0F, kWIG);
1151 vinstr(0x11, src, xmm0, dst, kF3, k0F, kWIG);
1154 vinstr(0x10, dst, src1, src2, kF3, k0F, kWIG);
1157 vinstr(0x10, dst, xmm0, src, kF3, k0F, kWIG);
1160 vinstr(0x11, src, xmm0, dst, kF2, k0F, kWIG);
1163 vinstr(0x10, dst, src1, src2, kF2, k0F, kWIG);
1166 vinstr(0x10, dst, xmm0, src, kF2, k0F, kWIG);
1183 vshufps(dst, src1,
Operand(src2), imm8);
1188 vshufpd(dst, src1,
Operand(src2), imm8);
1209 vpshufhw(dst,
Operand(src), shuffle);
1213 vpshuflw(dst,
Operand(src), shuffle);
1217 vpshufd(dst,
Operand(src), shuffle);
1283 vinstr(0xE6, dst, xmm0, src, kF3, k0F, kWIG);
1286 vinstr(0x5A, dst, xmm0, src, k66, k0F, kWIG);
1289 vcvttps2dq(dst,
Operand(src));
1292 vinstr(0x5B, dst, xmm0, src, kF3, k0F, kWIG);
1295 vinstr(0xE6, dst, xmm0, src, k66, k0F, kWIG);
1299 vinstr(0x2c, idst, xmm0, src, kF2, k0F, kW0);
1303 vinstr(0x2c, idst, xmm0, src, kF2, k0F, kW0);
1306 vinstr(0x5a, dst, src1, src2, kF3, k0F, kWIG);
1309 vinstr(0x5a, dst, src1, src2, kF3, k0F, kWIG);
1313 vinstr(0x2c, idst, xmm0, src, kF3, k0F, kW0);
1317 vinstr(0x2c, idst, xmm0, src, kF3, k0F, kW0);
1321 vinstr(0x12, dst, xmm0, src, kF2, k0F, kWIG);
1327 vinstr(0x16, dst, xmm0, src, kF3, k0F, kWIG);
1330 vinstr(0x18, dst, xmm0, src, k66, k0F38, kW0, AVX2);
1333 vinstr(0x18, dst, xmm0, src, k66, k0F38, kW0);
1336 vinstr(0x6F, dst, xmm0, src, k66, k0F, kWIG);
1339 vinstr(0x6F, dst, xmm0, src, k66, k0F, kWIG);
1342 vinstr(0x6F, dst, xmm0, src, kF3, k0F, kWIG);
1345 vinstr(0x7F, src, xmm0, dst, kF3, k0F, kWIG);
1349 vinstr(0x6E, dst, xmm0, src, k66, k0F, kWIG);
1353 vinstr(0x7E, src, xmm0, dst, k66, k0F, kWIG);
1362 vinstr(0x2E, dst, xmm0, src, k66, k0F, kWIG);
1365 vinstr(0x2E, dst, xmm0, src, k66, k0F, kWIG);
1368 vinstr(0x2E, dst, xmm0, src, kNoPrefix, k0F, kWIG);
1371 vinstr(0x2E, dst, xmm0, src, kNoPrefix, k0F, kWIG);
1376 andn(dst, src1,
Operand(src2));
1379 bmi1(0xf2, dst, src1, src2);
1382 bextr(dst,
Operand(src1), src2);
1385 bmi1(0xf7, dst, src2, src1);
1403 bzhi(dst,
Operand(src1), src2);
1406 bmi2(kNoPrefix, 0xf5, dst, src2, src1);
1409 mulx(dst1, dst2,
Operand(src));
1412 bmi2(kF2, 0xf6, dst1, dst2, src);
1415 pdep(dst, src1,
Operand(src2));
1418 bmi2(kF2, 0xf5, dst, src1, src2);
1421 pext(dst, src1,
Operand(src2));
1424 bmi2(kF3, 0xf5, dst, src1, src2);
1427 sarx(dst,
Operand(src1), src2);
1430 bmi2(kF3, 0xf7, dst, src2, src1);
1433 shlx(dst,
Operand(src1), src2);
1436 bmi2(k66, 0xf7, dst, src2, src1);
1439 shrx(dst,
Operand(src1), src2);
1442 bmi2(kF2, 0xf7, dst, src2, src1);
1445 rorx(dst,
Operand(src), imm8);
1454#define PACKED_OP_LIST(V) \
1467#define SSE_PACKED_OP_DECLARE(name, opcode) \
1468 void name##ps(XMMRegister dst, XMMRegister src) { \
1469 ps(opcode, dst, Operand(src)); \
1471 void name##ps(XMMRegister dst, Operand src) { ps(opcode, dst, src); } \
1472 void name##pd(XMMRegister dst, XMMRegister src) { \
1473 pd(opcode, dst, Operand(src)); \
1475 void name##pd(XMMRegister dst, Operand src) { pd(opcode, dst, src); }
1478#undef SSE_PACKED_OP_DECLARE
1480#define AVX_PACKED_OP_DECLARE(name, opcode) \
1481 void v##name##ps(XMMRegister dst, XMMRegister src1, XMMRegister src2) { \
1482 vps(opcode, dst, src1, Operand(src2)); \
1484 void v##name##ps(XMMRegister dst, XMMRegister src1, Operand src2) { \
1485 vps(opcode, dst, src1, src2); \
1487 void v##name##pd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { \
1488 vpd(opcode, dst, src1, Operand(src2)); \
1490 void v##name##pd(XMMRegister dst, XMMRegister src1, Operand src2) { \
1491 vpd(opcode, dst, src1, src2); \
1495#undef AVX_PACKED_OP_DECLARE
1496#undef PACKED_OP_LIST
1504#define AVX_CMP_P(instr, imm8) \
1505 void v##instr##ps(XMMRegister dst, XMMRegister src1, XMMRegister src2) { \
1506 vcmpps(dst, src1, Operand(src2), imm8); \
1508 void v##instr##ps(XMMRegister dst, XMMRegister src1, Operand src2) { \
1509 vcmpps(dst, src1, src2, imm8); \
1511 void v##instr##pd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { \
1512 vcmppd(dst, src1, Operand(src2), imm8); \
1514 void v##instr##pd(XMMRegister dst, XMMRegister src1, Operand src2) { \
1515 vcmppd(dst, src1, src2, imm8); \
1522#undef PACKED_CMP_LIST
1525#define DECLARE_SSE_UNOP_AND_AVX(instruction, escape, opcode) \
1526 void instruction(XMMRegister dst, XMMRegister src) { \
1527 instruction(dst, Operand(src)); \
1529 void instruction(XMMRegister dst, Operand src) { \
1530 sse_instr(dst, src, 0x##escape, 0x##opcode); \
1532 void v##instruction(XMMRegister dst, XMMRegister src) { \
1533 v##instruction(dst, Operand(src)); \
1535 void v##instruction(XMMRegister dst, Operand src) { \
1536 vinstr(0x##opcode, dst, xmm0, src, kNoPrefix, k##escape, kWIG); \
1540#undef DECLARE_SSE_UNOP_AND_AVX
1542#define DECLARE_SSE2_INSTRUCTION(instruction, prefix, escape, opcode) \
1543 void instruction(XMMRegister dst, XMMRegister src) { \
1544 instruction(dst, Operand(src)); \
1546 void instruction(XMMRegister dst, Operand src) { \
1547 sse2_instr(dst, src, 0x##prefix, 0x##escape, 0x##opcode); \
1552#undef DECLARE_SSE2_INSTRUCTION
1554#define DECLARE_SSE2_AVX_INSTRUCTION(instruction, prefix, escape, opcode) \
1555 void v##instruction(XMMRegister dst, XMMRegister src1, XMMRegister src2) { \
1556 v##instruction(dst, src1, Operand(src2)); \
1558 void v##instruction(XMMRegister dst, XMMRegister src1, Operand src2) { \
1559 vinstr(0x##opcode, dst, src1, src2, k##prefix, k##escape, kW0); \
1564#undef DECLARE_SSE2_AVX_INSTRUCTION
1566#define DECLARE_SSSE3_INSTRUCTION(instruction, prefix, escape1, escape2, \
1568 void instruction(XMMRegister dst, XMMRegister src) { \
1569 instruction(dst, Operand(src)); \
1571 void instruction(XMMRegister dst, Operand src) { \
1572 ssse3_instr(dst, src, 0x##prefix, 0x##escape1, 0x##escape2, 0x##opcode); \
1577#undef DECLARE_SSSE3_INSTRUCTION
1579#define DECLARE_SSE4_INSTRUCTION(instruction, prefix, escape1, escape2, \
1581 void instruction(XMMRegister dst, XMMRegister src) { \
1582 instruction(dst, Operand(src)); \
1584 void instruction(XMMRegister dst, Operand src) { \
1585 sse4_instr(dst, src, 0x##prefix, 0x##escape1, 0x##escape2, 0x##opcode); \
1593#undef DECLARE_SSE4_INSTRUCTION
1595#define DECLARE_SSE34_AVX_INSTRUCTION(instruction, prefix, escape1, escape2, \
1597 void v##instruction(XMMRegister dst, XMMRegister src1, XMMRegister src2) { \
1598 v##instruction(dst, src1, Operand(src2)); \
1600 void v##instruction(XMMRegister dst, XMMRegister src1, Operand src2) { \
1601 vinstr(0x##opcode, dst, src1, src2, k##prefix, k##escape1##escape2, kW0); \
1606#undef DECLARE_SSE34_AVX_INSTRUCTION
1608#define DECLARE_SSE4_AVX_RM_INSTRUCTION(instruction, prefix, escape1, escape2, \
1610 void v##instruction(XMMRegister dst, XMMRegister src) { \
1611 v##instruction(dst, Operand(src)); \
1613 void v##instruction(XMMRegister dst, Operand src) { \
1614 vinstr(0x##opcode, dst, xmm0, src, k##prefix, k##escape1##escape2, kW0); \
1619#undef DECLARE_SSE4_AVX_RM_INSTRUCTION
1622#define AVX2_INSTRUCTION(instr, prefix, escape1, escape2, opcode) \
1623 void instr(XMMRegister dst, XMMRegister src) { \
1624 vinstr(0x##opcode, dst, xmm0, src, k##prefix, k##escape1##escape2, kW0, \
1627 void instr(XMMRegister dst, Operand src) { \
1628 vinstr(0x##opcode, dst, xmm0, src, k##prefix, k##escape1##escape2, kW0, \
1632#undef AVX2_INSTRUCTION
1634#define FMA(instr, length, prefix, escape1, escape2, extension, opcode) \
1635 void instr(XMMRegister dst, XMMRegister src1, XMMRegister src2) { \
1636 vinstr(0x##opcode, dst, src1, src2, k##length, k##prefix, \
1637 k##escape1##escape2, k##extension, FMA3); \
1639 void instr(XMMRegister dst, XMMRegister src1, Operand src2) { \
1640 vinstr(0x##opcode, dst, src1, src2, k##length, k##prefix, \
1641 k##escape1##escape2, k##extension, FMA3); \
1667 void dp(uintptr_t data) { dd(data); }
1674 return pc_ >= reloc_info_writer.pos() - kGap;
1683 return (buffer_start_ +
buffer_->size()) - reloc_info_writer.pos();
1687 static constexpr int kMaximalBufferSize = 512 *
MB;
1701 return reinterpret_cast<Address
>(buffer_start_ +
pos);
1706 return ReadUnalignedValue<uint32_t>(addr_at(
pos));
1709 WriteUnalignedValue(addr_at(
pos),
x);
1714 inline void emit(uint32_t
x);
1721 inline void emit_q(uint64_t
x);
1724 inline void emit_code_relative_offset(
Label*
label);
1744 enum SIMDPrefix { kNoPrefix = 0x0, k66 = 0x1, kF3 = 0x2, kF2 = 0x3 };
1746 enum VexW { kW0 = 0x0, kW1 = 0x80, kWIG = kW0 };
1761 inline void emit_near_disp(
Label* L);
1767 uint8_t escape1, uint8_t escape2, uint8_t opcode);
1769 uint8_t escape2, uint8_t opcode);
1806 std::deque<int> internal_reference_positions_;
1821 space_before_ = assembler->available_space();
1828 DCHECK(bytes_generated < assembler_->kGap);
#define AVX2_INSTRUCTION(instr, prefix, escape1, escape2, opcode)
#define SSE_CMP_P(instr, imm8)
#define PACKED_CMP_LIST(V)
#define DECLARE_SSE4_AVX_RM_INSTRUCTION(instruction, prefix, escape1, escape2, opcode)
#define AVX_CMP_P(instr, imm8)
#define FMA(instr, length, prefix, escape1, escape2, extension, opcode)
#define DECLARE_SSE34_AVX_INSTRUCTION(instruction, prefix, escape1, escape2, opcode)
#define AVX_PACKED_OP_DECLARE(name, opcode)
#define DECLARE_SSE_UNOP_AND_AVX(instruction, escape, opcode)
#define PACKED_OP_LIST(V)
#define SSE_PACKED_OP_DECLARE(name, opcode)
#define DECLARE_SSE2_INSTRUCTION(instruction, prefix, escape, opcode)
#define DECLARE_SSE2_AVX_INSTRUCTION(instruction, prefix, escape, opcode)
#define DECLARE_SSSE3_INSTRUCTION(instruction, prefix, escape1, escape2, opcode)
#define DECLARE_SSE4_INSTRUCTION(instruction, prefix, escape1, escape2, opcode)
interpreter::OperandScale scale
static constexpr T decode(U value)
void bind_to(Label *L, int pos)
void xor_(Register dst, Operand src)
void shrx(Register dst, Register src1, Register src2)
void movdqu(XMMRegister dst, XMMRegister src)
void test_w(Register reg, Immediate imm16)
void mov_w(Operand dst, Register src)
void palignr(XMMRegister dst, Operand src, uint8_t mask)
void vpblendvb(XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister mask)
void sse_instr(XMMRegister dst, Operand src, uint8_t prefix, uint8_t opcode)
void cmov(Condition cc, Register dst, Register src)
void xor_(Operand dst, const Immediate &x)
void vmovhps(Operand dst, XMMRegister src)
void GetCode(LocalIsolate *isolate, CodeDesc *desc)
void adc(Register dst, Register src)
void divss(XMMRegister dst, XMMRegister src)
void shrx(Register dst, Operand src1, Register src2)
void emit_sse_operand(XMMRegister dst, XMMRegister src)
void mov(Register dst, Handle< HeapObject > handle)
void test(Operand op, Register reg)
void vaddss(XMMRegister dst, XMMRegister src1, Operand src2)
void movsd(XMMRegister dst, Operand src)
void call(Address entry, RelocInfo::Mode rmode)
void mulx(Register dst1, Register dst2, Register src)
void cmppd(XMMRegister dst, XMMRegister src, uint8_t cmp)
void cmpw(Register dst, Immediate src)
void sqrtss(XMMRegister dst, Operand src)
void cmpb(Register dst, Register src)
void test_w(Register reg, Operand op)
void movapd(XMMRegister dst, XMMRegister src)
void adc(Register dst, int32_t imm32)
void cvttss2si(Register dst, XMMRegister src)
void popcnt(Register dst, Register src)
void or_(Register dst, Operand src)
void vinstr(uint8_t op, XMMRegister dst, XMMRegister src1, Operand src2, VectorLength l, SIMDPrefix pp, LeadingOpcode m, VexW w, CpuFeature=AVX)
void vextractps(Operand dst, XMMRegister src, uint8_t imm8)
void vmovd(XMMRegister dst, Operand src)
void or_(Register dst, Register src)
void sub(Register dst, Register src)
void cvtsi2sd(XMMRegister dst, Operand src)
void vpsrad(XMMRegister dst, XMMRegister src, uint8_t imm8)
void vsqrtpd(XMMRegister dst, Operand src)
void insertps(XMMRegister dst, Operand src, uint8_t offset)
void maxss(XMMRegister dst, Operand src)
void vhaddps(XMMRegister dst, XMMRegister src1, Operand src2)
void vpextrd(Operand dst, XMMRegister src, uint8_t offset)
void vcvtpd2ps(XMMRegister dst, XMMRegister src)
void vpalignr(XMMRegister dst, XMMRegister src1, Operand src2, uint8_t mask)
void psllw(XMMRegister reg, uint8_t shift)
void ror_cl(Register dst)
void rcr(Register dst, uint8_t imm8)
void vmovlps(Operand dst, XMMRegister src)
void pext(Register dst, Register src1, Register src2)
void movlhps(XMMRegister dst, XMMRegister src)
void and_(Register dst, const Immediate &x)
void sub(Register dst, const Immediate &imm)
void sub(Register dst, Operand src)
void vmaxss(XMMRegister dst, XMMRegister src1, XMMRegister src2)
void ucomiss(XMMRegister dst, XMMRegister src)
void record_farjmp_position(Label *L, int pos)
void bmi1(uint8_t op, Register reg, Register vreg, Operand rm)
void mov_b(Operand dst, int8_t src)
void movss(XMMRegister dst, Operand src)
void movupd(XMMRegister dst, Operand src)
void vmovss(XMMRegister dst, XMMRegister src1, XMMRegister src2)
void subss(XMMRegister dst, XMMRegister src)
void vroundsd(XMMRegister dst, XMMRegister src1, XMMRegister src2, RoundingMode mode)
void cmp(Operand op, const Immediate &imm)
void vmovshdup(XMMRegister dst, XMMRegister src)
void vblendvpd(XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister mask)
void blsi(Register dst, Operand src)
void sbb(Register dst, Operand src)
void vpextrd(Register dst, XMMRegister src, uint8_t offset)
void lzcnt(Register dst, Register src)
void ucomisd(XMMRegister dst, Operand src)
void vmovd(XMMRegister dst, Register src)
void mov(Register dst, Operand src)
void test_b(Register dst, Register src)
void roundss(XMMRegister dst, XMMRegister src, RoundingMode mode)
void mov(Operand dst, Address src, RelocInfo::Mode)
void emit_sse_operand(XMMRegister dst, Register src)
void vps(uint8_t op, XMMRegister dst, XMMRegister src1, Operand src2)
void shrd_cl(Operand dst, Register src)
void vpshuflw(XMMRegister dst, XMMRegister src, uint8_t shuffle)
void cmpb(Operand op, Immediate imm8)
void movss(Operand dst, XMMRegister src)
void vroundps(XMMRegister dst, XMMRegister src, RoundingMode mode)
void sarx(Register dst, Operand src1, Register src2)
void sar(Register dst, uint8_t imm8)
void vpinsrb(XMMRegister dst, XMMRegister src1, Operand src2, uint8_t offset)
void jmp(Address entry, RelocInfo::Mode rmode)
void psllq(XMMRegister reg, uint8_t shift)
void emit_label(Label *label)
Assembler(const MaybeAssemblerZone &, const AssemblerOptions &options, std::unique_ptr< AssemblerBuffer > buffer={})
void vpd(uint8_t op, XMMRegister dst, XMMRegister src1, Operand src2)
void palignr(XMMRegister dst, XMMRegister src, uint8_t mask)
void vpinsrw(XMMRegister dst, XMMRegister src1, Operand src2, uint8_t offset)
void test(Operand op, const Immediate &imm)
void vmovups(XMMRegister dst, Operand src)
void ucomisd(XMMRegister dst, XMMRegister src)
void maxss(XMMRegister dst, XMMRegister src)
void imul(Register dst, Register src, int32_t imm32)
void blsmsk(Register dst, Register src)
void psraw(XMMRegister reg, uint8_t shift)
void add(Operand dst, Register src)
static int deserialization_special_target_size(Address instruction_payload)
void vshufpd(XMMRegister dst, XMMRegister src1, XMMRegister src2, uint8_t imm8)
void emit_operand(int code, Operand adr)
void mulss(XMMRegister dst, Operand src)
void ror(Operand dst, uint8_t imm8)
void movmskps(Register dst, XMMRegister src)
void AllocateAndInstallRequestedHeapNumbers(LocalIsolate *isolate)
void xor_(Operand dst, Register src)
void cmp(Register reg, Handle< HeapObject > handle)
void vminss(XMMRegister dst, XMMRegister src1, Operand src2)
void vmovdqa(XMMRegister dst, XMMRegister src)
void vpsraw(XMMRegister dst, XMMRegister src, uint8_t imm8)
void vcvtss2sd(XMMRegister dst, XMMRegister src1, XMMRegister src2)
void vmovlps(XMMRegister dst, XMMRegister src1, Operand src2)
void vmovsd(Operand dst, XMMRegister src)
void xadd_w(Operand dst, Register src)
void pd(uint8_t op, XMMRegister dst, Operand src)
void vaddss(XMMRegister dst, XMMRegister src1, XMMRegister src2)
void divss(XMMRegister dst, Operand src)
void lzcnt(Register dst, Operand src)
void psrlq(XMMRegister reg, uint8_t shift)
void mov_b(Register dst, int8_t imm8)
void set_byte_at(int pos, uint8_t value)
void vpsrld(XMMRegister dst, XMMRegister src, uint8_t imm8)
static void deserialization_set_target_internal_reference_at(Address pc, Address target, WritableJitAllocation &jit_allocation, RelocInfo::Mode mode=RelocInfo::INTERNAL_REFERENCE)
void vpextrw(Register dst, XMMRegister src, uint8_t offset)
void mov_b(Operand dst, const Immediate &src)
void vmovss(XMMRegister dst, Operand src)
void mulss(XMMRegister dst, XMMRegister src)
void vsubss(XMMRegister dst, XMMRegister src1, Operand src2)
void mov_w(Register dst, Operand src)
void sar(Operand dst, uint8_t imm8)
void vpshufd(XMMRegister dst, XMMRegister src, uint8_t shuffle)
void j(Condition cc, Label *L, Label::Distance distance=Label::kFar)
void cmpb(Operand op, Register reg)
void movd(XMMRegister dst, Register src)
void vinstr(uint8_t op, XMMRegister dst, XMMRegister src1, XMMRegister src2, SIMDPrefix pp, LeadingOpcode m, VexW w, CpuFeature=AVX)
void vpsrlq(XMMRegister dst, XMMRegister src, uint8_t imm8)
void sbb(Register dst, Register src)
void cmpxchg(Operand dst, Register src)
void imul(Register dst, Operand src, int32_t imm32)
void vbroadcastss(XMMRegister dst, XMMRegister src)
void vmulss(XMMRegister dst, XMMRegister src1, XMMRegister src2)
void vmovups(Operand dst, XMMRegister src)
void movups(XMMRegister dst, XMMRegister src)
void ror(Register dst, uint8_t imm8)
void jmp(Handle< Code > code, RelocInfo::Mode rmode)
int available_space() const
void vmovhps(XMMRegister dst, XMMRegister src1, Operand src2)
void shrd_cl(Register dst, Register src)
void vpinsrb(XMMRegister dst, XMMRegister src1, Register src2, uint8_t offset)
void subss(XMMRegister dst, Operand src)
void vblendvps(XMMRegister dst, XMMRegister src1, XMMRegister src2, XMMRegister mask)
void rol(Operand dst, uint8_t imm8)
void and_(Register dst, int32_t imm32)
void vmovddup(XMMRegister dst, Operand src)
void add(Register dst, Operand src)
void cvtsi2ss(XMMRegister dst, Operand src)
void mov_w(Operand dst, const Immediate &src)
void vcvttsd2si(Register dst, XMMRegister src)
void long_at_put(int pos, uint32_t x)
void ps(uint8_t op, XMMRegister dst, Operand src)
void vmulss(XMMRegister dst, XMMRegister src1, Operand src2)
void vmovsd(XMMRegister dst, Operand src)
void vmovmskps(Register dst, XMMRegister src)
void shufps(XMMRegister dst, XMMRegister src, uint8_t imm8)
void cmpw(Operand dst, Immediate src)
void roundpd(XMMRegister dst, XMMRegister src, RoundingMode mode)
void xchg_w(Register reg, Operand op)
void vpinsrw(XMMRegister dst, XMMRegister src1, Register src2, uint8_t offset)
void shr(Register dst, uint8_t imm8)
void vpmovmskb(Register dst, XMMRegister src)
void vucomiss(XMMRegister dst, Operand src)
void pextrd(Operand dst, XMMRegister src, uint8_t offset)
void add(Register dst, const Immediate &imm)
void movdqa(XMMRegister dst, Operand src)
void cmp(Operand op, Register reg)
void vcmppd(XMMRegister dst, XMMRegister src1, Operand src2, uint8_t cmp)
void shl_cl(Register dst)
void ucomiss(XMMRegister dst, Operand src)
void extractps(Register dst, XMMRegister src, uint8_t imm8)
void pinsrw(XMMRegister dst, Register src, uint8_t offset)
static void set_uint32_constant_at(Address pc, Address constant_pool, uint32_t new_constant, WritableJitAllocation *jit_allocation, ICacheFlushMode icache_flush_mode=FLUSH_ICACHE_IF_NEEDED)
void vmovupd(XMMRegister dst, Operand src)
void psrad(XMMRegister reg, uint8_t shift)
void vmovapd(XMMRegister dst, XMMRegister src)
void cvttsd2si(Register dst, Operand src)
void pshufhw(XMMRegister dst, XMMRegister src, uint8_t shuffle)
void vsubss(XMMRegister dst, XMMRegister src1, XMMRegister src2)
void minss(XMMRegister dst, Operand src)
void vpblendw(XMMRegister dst, XMMRegister src1, Operand src2, uint8_t mask)
void mov(Operand dst, Handle< HeapObject > handle)
void pcmpgtq(XMMRegister dst, XMMRegister src)
void vcvttss2si(Register dst, XMMRegister src)
void sub(Operand dst, Register src)
void bextr(Register dst, Register src1, Register src2)
void RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data=0)
void vpshufhw(XMMRegister dst, Operand src, uint8_t shuffle)
void tzcnt(Register dst, Operand src)
void popcnt(Register dst, Operand src)
void rol_cl(Register dst)
void or_(Operand dst, const Immediate &x)
void shl(Register dst, uint8_t imm8)
void cmpxchg_b(Operand dst, Register src)
void test_b(Register reg, Operand op)
void movddup(XMMRegister dst, XMMRegister src)
void vdivss(XMMRegister dst, XMMRegister src1, XMMRegister src2)
void setcc(Condition cc, Register reg)
void vmovss(Operand dst, XMMRegister src)
void movapd(XMMRegister dst, Operand src)
void pinsrd(XMMRegister dst, Operand src, uint8_t offset)
static uint32_t uint32_constant_at(Address pc, Address constant_pool)
void bzhi(Register dst, Register src1, Register src2)
void shrd(Register dst, Register src, uint8_t shift)
void movddup(XMMRegister dst, Operand src)
void psrld(XMMRegister reg, uint8_t shift)
void rol(Register dst, uint8_t imm8)
void print(const Label *L)
void sse4_instr(XMMRegister dst, Operand src, uint8_t prefix, uint8_t escape1, uint8_t escape2, uint8_t opcode)
void GetCode(LocalIsolate *isolate, CodeDesc *desc, SafepointTableBuilder *safepoint_table_builder, int handler_table_offset)
void vucomisd(XMMRegister dst, XMMRegister src)
void pblendw(XMMRegister dst, XMMRegister src, uint8_t mask)
void cmpps(XMMRegister dst, Operand src, uint8_t cmp)
void add(Register dst, Register src)
void cmp(Register reg, Operand op)
void pshufd(XMMRegister dst, Operand src, uint8_t shuffle)
void vinstr(uint8_t op, XMMRegister dst, XMMRegister src1, XMMRegister src2, VectorLength l, SIMDPrefix pp, LeadingOpcode m, VexW w, CpuFeature=AVX)
void mov_b(Register dst, Register src)
void pinsrb(XMMRegister dst, Register src, uint8_t offset)
void cmpxchg_w(Operand dst, Register src)
void movss(XMMRegister dst, XMMRegister src)
void cmpw(Register dst, Register src)
void and_(Operand dst, Register src)
void cmpb(Register reg, Operand op)
void and_(Register dst, Operand src)
void test_w(Operand op, Immediate imm16)
static Address target_address_at(Address pc, Address constant_pool)
void test_b(Operand op, Register reg)
void pinsrd(XMMRegister dst, Register src, uint8_t offset)
uint32_t long_at(int pos)
void vcvttss2si(Register dst, Operand src)
void rorx(Register dst, Register src, uint8_t imm8)
void vmovd(Operand dst, XMMRegister src)
void addss(XMMRegister dst, Operand src)
void vroundss(XMMRegister dst, XMMRegister src1, XMMRegister src2, RoundingMode mode)
void mov_b(Operand dst, Register src)
void or_(Register dst, int32_t imm32)
void roundsd(XMMRegister dst, XMMRegister src, RoundingMode mode)
void test(Register reg, const Immediate &imm)
void movzx_w(Register dst, Register src)
void sqrtpd(XMMRegister dst, XMMRegister src)
int relocation_writer_size()
void sse2_instr(XMMRegister dst, Operand src, uint8_t prefix, uint8_t escape, uint8_t opcode)
void pdep(Register dst, Register src1, Register src2)
void vsqrtss(XMMRegister dst, XMMRegister src1, Operand src2)
void vucomiss(XMMRegister dst, XMMRegister src)
void cmp(Register reg, int32_t imm32)
bool is_optimizable_farjmp(int idx)
void pinsrw(XMMRegister dst, Operand src, uint8_t offset)
void movzx_b(Register dst, Register src)
void mov(Register dst, const Immediate &x)
void vmovd(Register dst, XMMRegister src)
void xor_(Register dst, int32_t imm32)
void andn(Register dst, Register src1, Operand src2)
void or_(Operand dst, Register src)
void rorx(Register dst, Operand src, uint8_t imm8)
void shld_cl(Register dst, Register src)
void vpinsrd(XMMRegister dst, XMMRegister src1, Operand src2, uint8_t offset)
void movdqa(Operand dst, XMMRegister src)
void cvttpd2dq(XMMRegister dst, XMMRegister src)
void cmppd(XMMRegister dst, Operand src, uint8_t cmp)
void vinsertps(XMMRegister dst, XMMRegister src1, Operand src2, uint8_t offset)
void vpslld(XMMRegister dst, XMMRegister src, uint8_t imm8)
void vshufpd(XMMRegister dst, XMMRegister src1, Operand src2, uint8_t imm8)
void xchg(Register dst, Operand src)
void cmpltsd(XMMRegister dst, XMMRegister src)
void sub(Operand dst, const Immediate &x)
void sarx(Register dst, Register src1, Register src2)
void vmovdqu(Operand dst, XMMRegister src)
void movdqu(XMMRegister dst, Operand src)
void vcvtss2sd(XMMRegister dst, XMMRegister src1, Operand src2)
void bzhi(Register dst, Operand src1, Register src2)
void movsd(Operand dst, XMMRegister src)
void fma_instr(uint8_t op, XMMRegister dst, XMMRegister src1, Operand src2, VectorLength l, SIMDPrefix pp, LeadingOpcode m, VexW w)
void cmp(Register reg, const Immediate &imm)
void cmov(Condition cc, Register dst, Operand src)
void bsf(Register dst, Register src)
void fisttp_d(Operand adr)
void vpsllq(XMMRegister dst, XMMRegister src, uint8_t imm8)
void imul(Register dst, Register src)
void movsd(XMMRegister dst, XMMRegister src)
void movzx_b(Register dst, Operand src)
void vhaddps(XMMRegister dst, XMMRegister src1, XMMRegister src2)
void pextrw(Operand dst, XMMRegister src, uint8_t offset)
void and_(Register dst, Register src)
void vpextrw(Operand dst, XMMRegister src, uint8_t offset)
void movaps(XMMRegister dst, XMMRegister src)
void cvtsi2sd(XMMRegister dst, Register src)
void jmp(Label *L, Label::Distance distance=Label::kFar)
void cvtss2sd(XMMRegister dst, Operand src)
void haddps(XMMRegister dst, XMMRegister src)
void mov(Operand dst, Register src)
void GetCode(Isolate *isolate, CodeDesc *desc)
void adc(Register dst, Operand src)
void vpshuflw(XMMRegister dst, Operand src, uint8_t shuffle)
void vmovdqu(XMMRegister dst, Operand src)
void fisttp_s(Operand adr)
void emit_sse_operand(Register dst, XMMRegister src)
void movsx_w(Register dst, Register src)
void xchg(Register dst, Register src)
void cvttsd2si(Register dst, XMMRegister src)
void movsx_w(Register dst, Operand src)
void vpcmpgtq(XMMRegister dst, XMMRegister src1, XMMRegister src2)
void movdq(bool aligned, XMMRegister dst, Operand src)
void mov(Operand dst, const Immediate &x)
void vucomisd(XMMRegister dst, Operand src)
void blsr(Register dst, Register src)
void pslld(XMMRegister reg, uint8_t shift)
void MaybeEmitOutOfLineConstantPool()
void fistp_d(Operand adr)
void vmovaps(XMMRegister dst, Operand src)
void emit_sse_operand(XMMRegister reg, Operand adr)
void sqrtss(XMMRegister dst, XMMRegister src)
void cmpb(Register reg, Immediate imm8)
void vcvttpd2dq(XMMRegister dst, XMMRegister src)
void test(Register reg0, Register reg1)
void pextrb(Register dst, XMMRegister src, uint8_t offset)
void bsf(Register dst, Operand src)
void pshufhw(XMMRegister dst, Operand src, uint8_t shuffle)
void andn(Register dst, Register src1, Register src2)
void vmovdqa(XMMRegister dst, Operand src)
void emit_vex_prefix(XMMRegister v, VectorLength l, SIMDPrefix pp, LeadingOpcode m, VexW w)
void bmi2(SIMDPrefix pp, uint8_t op, Register reg, Register vreg, Operand rm)
void bextr(Register dst, Operand src1, Register src2)
void pextrd(Register dst, XMMRegister src, uint8_t offset)
void movshdup(XMMRegister dst, XMMRegister src)
static bool IsNop(Address addr)
void pshuflw(XMMRegister dst, Operand src, uint8_t shuffle)
void vmaxss(XMMRegister dst, XMMRegister src1, Operand src2)
void movd(Operand dst, XMMRegister src)
void cvtsd2si(Register dst, XMMRegister src)
void blsr(Register dst, Operand src)
void haddps(XMMRegister dst, Operand src)
void lea(Register dst, Register src, Label *lbl)
void vmovsd(XMMRegister dst, XMMRegister src1, XMMRegister src2)
void cvttps2dq(XMMRegister dst, XMMRegister src)
void vshufps(XMMRegister dst, XMMRegister src1, XMMRegister src2, uint8_t imm8)
void psrlw(XMMRegister reg, uint8_t shift)
void imul(Register dst, Operand src)
void pextrw(Register dst, XMMRegister src, uint8_t offset)
void test_b(Operand op, Immediate imm8)
void movsx_b(Register dst, Operand src)
void mov_w(Operand dst, int16_t src)
void vdivss(XMMRegister dst, XMMRegister src1, Operand src2)
void vpextrb(Register dst, XMMRegister src, uint8_t offset)
void j(Condition cc, Handle< Code > code, RelocInfo::Mode rmode=RelocInfo::CODE_TARGET)
void vpblendw(XMMRegister dst, XMMRegister src1, XMMRegister src2, uint8_t mask)
void emit_vex_prefix(Register v, VectorLength l, SIMDPrefix pp, LeadingOpcode m, VexW w)
void pextrb(Operand dst, XMMRegister src, uint8_t offset)
void vmovapd(XMMRegister dst, Operand src)
void pinsrb(XMMRegister dst, Operand src, uint8_t offset)
void cmpw(Operand dst, Register src)
void call(Handle< Code > code, RelocInfo::Mode rmode)
void test_b(Register reg, Immediate imm8)
void emit_farith(int b1, int b2, int i)
void shr_cl(Register dst)
void pdep(Register dst, Register src1, Operand src2)
void pblendw(XMMRegister dst, Operand src, uint8_t mask)
void vpextrb(Operand dst, XMMRegister src, uint8_t offset)
void wasm_call(Address address, RelocInfo::Mode rmode)
void or_(Register dst, const Immediate &imm)
void shufpd(XMMRegister dst, XMMRegister src, uint8_t imm8)
void vmovaps(XMMRegister dst, XMMRegister src)
void vpshufhw(XMMRegister dst, XMMRegister src, uint8_t shuffle)
void mov_b(Register dst, Operand src)
void push(const Immediate &x)
void fisub_s(Operand adr)
void rcl(Register dst, uint8_t imm8)
void vminss(XMMRegister dst, XMMRegister src1, XMMRegister src2)
void lea(Register dst, Operand src)
void emit_arith_b(int op1, int op2, Register dst, int imm8)
void vpsrlw(XMMRegister dst, XMMRegister src, uint8_t imm8)
void sqrtpd(XMMRegister dst, Operand src)
void bt(Operand dst, Register src)
void shlx(Register dst, Register src1, Register src2)
void test(Register reg, Operand op)
void vroundpd(XMMRegister dst, XMMRegister src, RoundingMode mode)
void emit_operand(Register reg, Operand adr)
void movdqa(XMMRegister dst, XMMRegister src)
void xadd_b(Operand dst, Register src)
void fma_instr(uint8_t op, XMMRegister dst, XMMRegister src1, XMMRegister src2, VectorLength l, SIMDPrefix pp, LeadingOpcode m, VexW w)
void vmovmskpd(Register dst, XMMRegister src)
void add(Operand dst, const Immediate &x)
void bsr(Register dst, Register src)
void xor_(Register dst, const Immediate &imm)
void movsx_b(Register dst, Register src)
void cmp(Register reg0, Register reg1)
void shlx(Register dst, Operand src1, Register src2)
void movmskpd(Register dst, XMMRegister src)
void bts(Register dst, Register src)
void fistp_s(Operand adr)
void bsr(Register dst, Operand src)
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 movd(Register dst, XMMRegister src)
void xchg_b(Register reg, Operand op)
void sar_cl(Register dst)
void shl(Operand dst, uint8_t imm8)
void movhps(XMMRegister dst, Operand src)
void vinsertps(XMMRegister dst, XMMRegister src1, XMMRegister src2, uint8_t offset)
void pmovmskb(Register dst, XMMRegister src)
void vpalignr(XMMRegister dst, XMMRegister src1, XMMRegister src2, uint8_t mask)
void movd(XMMRegister dst, Operand src)
void movups(XMMRegister dst, Operand src)
void push_imm32(int32_t imm32)
void bts(Operand dst, Register src)
void vpsllw(XMMRegister dst, XMMRegister src, uint8_t imm8)
void cvtpd2ps(XMMRegister dst, XMMRegister src)
void prefetch(Operand src, int level)
void xadd(Operand dst, Register src)
void blsi(Register dst, Register src)
void roundps(XMMRegister dst, XMMRegister src, RoundingMode mode)
void mulx(Register dst1, Register dst2, Operand src)
void cvttps2dq(XMMRegister dst, Operand src)
void sub_sp_32(uint32_t imm)
void vcvtdq2pd(XMMRegister dst, XMMRegister src)
void movhlps(XMMRegister dst, XMMRegister src)
Assembler(const AssemblerOptions &, std::unique_ptr< AssemblerBuffer >={})
void pshufd(XMMRegister dst, XMMRegister src, uint8_t shuffle)
void xor_(Register dst, Register src)
void blsmsk(Register dst, Operand src)
void cvtdq2pd(XMMRegister dst, XMMRegister src)
void movdqu(Operand dst, XMMRegister src)
void vcmpps(XMMRegister dst, XMMRegister src1, Operand src2, uint8_t cmp)
void j(Condition cc, uint8_t *entry, RelocInfo::Mode rmode)
void cvtsi2ss(XMMRegister dst, Register src)
void vpinsrd(XMMRegister dst, XMMRegister src1, Register src2, uint8_t offset)
void movlps(Operand dst, XMMRegister src)
void vsqrtss(XMMRegister dst, XMMRegister src1, XMMRegister src2)
void extractps(Operand dst, XMMRegister src, uint8_t imm8)
void movups(Operand dst, XMMRegister src)
void cmpxchg8b(Operand dst)
void minss(XMMRegister dst, XMMRegister src)
void vss(uint8_t op, XMMRegister dst, XMMRegister src1, Operand src2)
void FinalizeJumpOptimizationInfo()
void movq(Operand dst, XMMRegister src)
void mov(Register dst, int32_t imm32)
void mov(Register dst, Register src)
void vmovups(XMMRegister dst, XMMRegister src)
bool buffer_overflow() const
void cmpw(Register dst, Operand src)
void test_w(Register dst, Register src)
void cvttss2si(Register dst, Operand src)
void vmovhlps(XMMRegister dst, XMMRegister src1, XMMRegister src2)
void pext(Register dst, Register src1, Operand src2)
void tzcnt(Register dst, Register src)
void vmovlhps(XMMRegister dst, XMMRegister src1, XMMRegister src2)
void shld(Register dst, Register src, uint8_t shift)
void movaps(XMMRegister dst, Operand src)
int SizeOfCodeGeneratedSince(Label *label)
void vsqrtpd(XMMRegister dst, XMMRegister src)
void vcvttps2dq(XMMRegister dst, XMMRegister src)
void cmp(Operand op, Handle< HeapObject > handle)
void insertps(XMMRegister dst, XMMRegister src, uint8_t offset)
void RecordDeoptReason(DeoptimizeReason reason, uint32_t node_id, SourcePosition position, int id)
void addss(XMMRegister dst, XMMRegister src)
void movlps(XMMRegister dst, Operand src)
void vshufps(XMMRegister dst, XMMRegister src1, Operand src2, uint8_t imm8)
void ssse3_instr(XMMRegister dst, Operand src, uint8_t prefix, uint8_t escape1, uint8_t escape2, uint8_t opcode)
void vpshufd(XMMRegister dst, Operand src, uint8_t shuffle)
void and_(Operand dst, const Immediate &x)
void test_w(Operand op, Register reg)
void emit_operand(XMMRegister reg, Operand adr)
void emit_arith(int sel, Operand dst, const Immediate &x)
void movzx_w(Register dst, Operand src)
void vbroadcastss(XMMRegister dst, Operand src)
void vcvttsd2si(Register dst, Operand src)
void cmpps(XMMRegister dst, XMMRegister src, uint8_t cmp)
void movhps(Operand dst, XMMRegister src)
void cvtss2sd(XMMRegister dst, XMMRegister src)
void vmovddup(XMMRegister dst, XMMRegister src)
void vinstr(uint8_t op, XMMRegister dst, XMMRegister src1, Operand src2, SIMDPrefix pp, LeadingOpcode m, VexW w, CpuFeature=AVX)
void movq(XMMRegister dst, Operand src)
void shr(Operand dst, uint8_t imm8)
void pshuflw(XMMRegister dst, XMMRegister src, uint8_t shuffle)
void vcvttps2dq(XMMRegister dst, Operand src)
void next(Label *L) const
Displacement(Label *L, Type type)
void init(Label *L, Type type)
V8_INLINE EnsureSpace(Assembler *assembler)
Assembler *const assembler_
bool is_reg(Register reg) const
Operand(Register base, Register index, ScaleFactor scale, int32_t disp, RelocInfo::Mode rmode=RelocInfo::NO_INFO)
V8_INLINE Operand(Immediate imm)
Operand(Register base, int32_t disp, RelocInfo::Mode rmode=RelocInfo::NO_INFO)
static Operand ForRegisterPlusImmediate(Register base, Immediate imm)
bool is_reg(int reg_code) const
bool is_reg(XMMRegister reg) const
V8_INLINE Operand(XMMRegister xmm_reg)
static Operand JumpTable(Register index, ScaleFactor scale, Label *table)
Operand(Register index, ScaleFactor scale, int32_t disp, RelocInfo::Mode rmode=RelocInfo::NO_INFO)
void set_dispr(int32_t disp, RelocInfo::Mode rmode)
V8_INLINE Operand(int32_t disp, RelocInfo::Mode rmode)
base::Vector< const uint8_t > encoded_bytes() const
void set_modrm(int mod, Register rm)
V8_INLINE Operand(Register reg)
constexpr int8_t code() const
static constexpr bool IsNoInfo(Mode mode)
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
#define FMA_INSTRUCTION_LIST(V)
#define SSE_UNOP_INSTRUCTION_LIST(V)
#define SSSE3_UNOP_INSTRUCTION_LIST(V)
#define SSE4_INSTRUCTION_LIST(V)
#define SSE4_RM_INSTRUCTION_LIST(V)
#define SSE2_INSTRUCTION_LIST(V)
#define SSE2_INSTRUCTION_LIST_SD(V)
#define SSSE3_INSTRUCTION_LIST(V)
#define AVX2_BROADCAST_LIST(V)
V8_INLINE Dest bit_cast(Source const &source)
V8_INLINE IndirectHandle< T > handle(Tagged< T > object, Isolate *isolate)
constexpr VFPRoundingMode kRoundToNearest
bool operator!=(ExternalReference lhs, ExternalReference rhs)
@ kUnsignedGreaterThanEqual
void PrintF(const char *format,...)
std::variant< Zone *, AccountingAllocator * > MaybeAssemblerZone
constexpr int kSystemPointerSize
Condition NegateCondition(Condition cond)
constexpr VFPRoundingMode kRoundToZero
@ times_system_pointer_size
@ times_half_system_pointer_size
#define DCHECK_IMPLIES(v1, v2)
#define DCHECK_GE(v1, v2)
#define DCHECK(condition)
#define DCHECK_LT(v1, v2)
#define DCHECK_EQ(v1, v2)
#define ASSERT_TRIVIALLY_COPYABLE(T)
#define V8_EXPORT_PRIVATE
#define V8_UNLIKELY(condition)
std::unique_ptr< ValueMirror > value