v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
assembler-ia32.h File Reference
Include dependency graph for assembler-ia32.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  v8::internal::Immediate
 
union  v8::internal::Immediate::Value
 
class  v8::internal::Operand
 
class  v8::internal::Displacement
 
class  v8::internal::Assembler
 
class  v8::internal::EnsureSpace
 

Namespaces

namespace  v8
 
namespace  v8::internal
 

Macros

#define PACKED_CMP_LIST(V)
 
#define SSE_CMP_P(instr, imm8)
 
#define PACKED_OP_LIST(V)
 
#define SSE_PACKED_OP_DECLARE(name, opcode)
 
#define AVX_PACKED_OP_DECLARE(name, opcode)
 
#define AVX_CMP_P(instr, imm8)
 
#define DECLARE_SSE_UNOP_AND_AVX(instruction, escape, 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)
 
#define DECLARE_SSE34_AVX_INSTRUCTION(instruction, prefix, escape1, escape2, opcode)
 
#define DECLARE_SSE4_AVX_RM_INSTRUCTION(instruction, prefix, escape1, escape2, opcode)
 
#define AVX2_INSTRUCTION(instr, prefix, escape1, escape2, opcode)
 
#define FMA(instr, length, prefix, escape1, escape2, extension, opcode)
 

Enumerations

enum  v8::internal::Condition : int {
  v8::internal::kNoCondition = -1 , v8::internal::eq = 0 << 28 , v8::internal::ne = 1 << 28 , v8::internal::cs = 2 << 28 ,
  v8::internal::cc = 3 << 28 , v8::internal::mi = 4 << 28 , v8::internal::pl = 5 << 28 , v8::internal::vs = 6 << 28 ,
  v8::internal::vc = 7 << 28 , v8::internal::hi = 8 << 28 , v8::internal::ls = 9 << 28 , v8::internal::ge = 10 << 28 ,
  v8::internal::lt = 11 << 28 , v8::internal::gt = 12 << 28 , v8::internal::le = 13 << 28 , v8::internal::al = 14 << 28 ,
  v8::internal::kSpecialCondition = 15 << 28 , v8::internal::kNumberOfConditions = 16 , v8::internal::hs = cs , v8::internal::lo = cc ,
  v8::internal::kEqual = eq , v8::internal::kNotEqual = ne , v8::internal::kLessThan = lt , v8::internal::kGreaterThan = gt ,
  v8::internal::kLessThanEqual = le , v8::internal::kGreaterThanEqual = ge , v8::internal::kUnsignedLessThan = lo , v8::internal::kUnsignedGreaterThan = hi ,
  v8::internal::kUnsignedLessThanEqual = ls , v8::internal::kUnsignedGreaterThanEqual = hs , v8::internal::kOverflow = vs , v8::internal::kNoOverflow = vc ,
  v8::internal::kZero = eq , v8::internal::kNotZero = ne , v8::internal::eq = 0 << 28 , v8::internal::ne = 1 << 28 ,
  v8::internal::hs = cs , v8::internal::cs = 2 << 28 , v8::internal::lo = cc , v8::internal::cc = 3 << 28 ,
  v8::internal::mi = 4 << 28 , v8::internal::pl = 5 << 28 , v8::internal::vs = 6 << 28 , v8::internal::vc = 7 << 28 ,
  v8::internal::hi = 8 << 28 , v8::internal::ls = 9 << 28 , v8::internal::ge = 10 << 28 , v8::internal::lt = 11 << 28 ,
  v8::internal::gt = 12 << 28 , v8::internal::le = 13 << 28 , v8::internal::al = 14 << 28 , v8::internal::nv = 15 ,
  v8::internal::kEqual = eq , v8::internal::kNotEqual = ne , v8::internal::kLessThan = lt , v8::internal::kGreaterThan = gt ,
  v8::internal::kLessThanEqual = le , v8::internal::kGreaterThanEqual = ge , v8::internal::kUnsignedLessThan = lo , v8::internal::kUnsignedGreaterThan = hi ,
  v8::internal::kUnsignedLessThanEqual = ls , v8::internal::kUnsignedGreaterThanEqual = hs , v8::internal::kOverflow = vs , v8::internal::kNoOverflow = vc ,
  v8::internal::kZero = eq , v8::internal::kNotZero = ne , v8::internal::overflow = 0 , v8::internal::no_overflow = 1 ,
  v8::internal::below = 2 , v8::internal::above_equal = 3 , v8::internal::equal = 4 , v8::internal::not_equal = 5 ,
  v8::internal::below_equal = 6 , v8::internal::above = 7 , v8::internal::negative = 8 , v8::internal::positive = 9 ,
  v8::internal::parity_even = 10 , v8::internal::parity_odd = 11 , v8::internal::less = 12 , v8::internal::greater_equal = 13 ,
  v8::internal::less_equal = 14 , v8::internal::greater = 15 , v8::internal::carry = below , v8::internal::not_carry = above_equal ,
  v8::internal::zero = equal , v8::internal::not_zero = not_equal , v8::internal::sign = negative , v8::internal::not_sign = positive ,
  v8::internal::kEqual = eq , v8::internal::kNotEqual = ne , v8::internal::kLessThan = lt , v8::internal::kGreaterThan = gt ,
  v8::internal::kLessThanEqual = le , v8::internal::kGreaterThanEqual = ge , v8::internal::kUnsignedLessThan = lo , v8::internal::kUnsignedGreaterThan = hi ,
  v8::internal::kUnsignedLessThanEqual = ls , v8::internal::kUnsignedGreaterThanEqual = hs , v8::internal::kOverflow = vs , v8::internal::kNoOverflow = vc ,
  v8::internal::kZero = eq , v8::internal::kNotZero = ne , v8::internal::overflow = 0 , v8::internal::no_overflow = 1 ,
  v8::internal::Uless = 2 , v8::internal::Ugreater_equal = 3 , v8::internal::Uless_equal = 4 , v8::internal::Ugreater = 5 ,
  v8::internal::equal = 4 , v8::internal::not_equal = 5 , v8::internal::negative = 8 , v8::internal::positive = 9 ,
  v8::internal::parity_even = 10 , v8::internal::parity_odd = 11 , v8::internal::less = 12 , v8::internal::greater_equal = 13 ,
  v8::internal::less_equal = 14 , v8::internal::greater = 15 , v8::internal::ueq = 16 , v8::internal::ogl = 17 ,
  v8::internal::cc_always = 18 , v8::internal::carry = below , v8::internal::not_carry = above_equal , v8::internal::zero = equal ,
  v8::internal::eq = 0 << 28 , v8::internal::not_zero = not_equal , v8::internal::ne = 1 << 28 , v8::internal::nz = not_equal ,
  v8::internal::sign = negative , v8::internal::not_sign = positive , v8::internal::mi = 4 << 28 , v8::internal::pl = 5 << 28 ,
  v8::internal::hi = 8 << 28 , v8::internal::ls = 9 << 28 , v8::internal::ge = 10 << 28 , v8::internal::lt = 11 << 28 ,
  v8::internal::gt = 12 << 28 , v8::internal::le = 13 << 28 , v8::internal::hs = cs , v8::internal::lo = cc ,
  v8::internal::al = 14 << 28 , v8::internal::ult = Uless , v8::internal::uge = Ugreater_equal , v8::internal::ule = Uless_equal ,
  v8::internal::ugt = Ugreater , v8::internal::kEqual = eq , v8::internal::kNotEqual = ne , v8::internal::kLessThan = lt ,
  v8::internal::kGreaterThan = gt , v8::internal::kLessThanEqual = le , v8::internal::kGreaterThanEqual = ge , v8::internal::kUnsignedLessThan = lo ,
  v8::internal::kUnsignedGreaterThan = hi , v8::internal::kUnsignedLessThanEqual = ls , v8::internal::kUnsignedGreaterThanEqual = hs , v8::internal::kOverflow = vs ,
  v8::internal::kNoOverflow = vc , v8::internal::kZero = eq , v8::internal::kNotZero = ne , v8::internal::overflow = 0 ,
  v8::internal::no_overflow = 1 , v8::internal::Uless = 2 , v8::internal::Ugreater_equal = 3 , v8::internal::Uless_equal = 4 ,
  v8::internal::Ugreater = 5 , v8::internal::equal = 4 , v8::internal::not_equal = 5 , v8::internal::negative = 8 ,
  v8::internal::positive = 9 , v8::internal::parity_even = 10 , v8::internal::parity_odd = 11 , v8::internal::less = 12 ,
  v8::internal::greater_equal = 13 , v8::internal::less_equal = 14 , v8::internal::greater = 15 , v8::internal::ueq = 16 ,
  v8::internal::ogl = 17 , v8::internal::cc_always = 18 , v8::internal::carry = below , v8::internal::not_carry = above_equal ,
  v8::internal::zero = equal , v8::internal::eq = 0 << 28 , v8::internal::not_zero = not_equal , v8::internal::ne = 1 << 28 ,
  v8::internal::nz = not_equal , v8::internal::sign = negative , v8::internal::not_sign = positive , v8::internal::mi = 4 << 28 ,
  v8::internal::pl = 5 << 28 , v8::internal::hi = 8 << 28 , v8::internal::ls = 9 << 28 , v8::internal::ge = 10 << 28 ,
  v8::internal::lt = 11 << 28 , v8::internal::gt = 12 << 28 , v8::internal::le = 13 << 28 , v8::internal::hs = cs ,
  v8::internal::lo = cc , v8::internal::al = 14 << 28 , v8::internal::ult = Uless , v8::internal::uge = Ugreater_equal ,
  v8::internal::ule = Uless_equal , v8::internal::ugt = Ugreater , v8::internal::kEqual = eq , v8::internal::kNotEqual = ne ,
  v8::internal::kLessThan = lt , v8::internal::kGreaterThan = gt , v8::internal::kLessThanEqual = le , v8::internal::kGreaterThanEqual = ge ,
  v8::internal::kUnsignedLessThan = lo , v8::internal::kUnsignedGreaterThan = hi , v8::internal::kUnsignedLessThanEqual = ls , v8::internal::kUnsignedGreaterThanEqual = hs ,
  v8::internal::kOverflow = vs , v8::internal::kNoOverflow = vc , v8::internal::kZero = eq , v8::internal::kNotZero = ne ,
  v8::internal::kNoCondition = -1 , v8::internal::eq = 0 << 28 , v8::internal::ne = 1 << 28 , v8::internal::ge = 10 << 28 ,
  v8::internal::lt = 11 << 28 , v8::internal::gt = 12 << 28 , v8::internal::le = 13 << 28 , v8::internal::unordered = 6 ,
  v8::internal::ordered = 7 , v8::internal::overflow = 0 , v8::internal::nooverflow = 9 , v8::internal::al = 14 << 28 ,
  v8::internal::kEqual = eq , v8::internal::kNotEqual = ne , v8::internal::kLessThan = lt , v8::internal::kGreaterThan = gt ,
  v8::internal::kLessThanEqual = le , v8::internal::kGreaterThanEqual = ge , v8::internal::kUnsignedLessThan = lo , v8::internal::kUnsignedGreaterThan = hi ,
  v8::internal::kUnsignedLessThanEqual = ls , v8::internal::kUnsignedGreaterThanEqual = hs , v8::internal::kOverflow = vs , v8::internal::kNoOverflow = vc ,
  v8::internal::kZero = eq , v8::internal::kNotZero = ne , v8::internal::overflow = 0 , v8::internal::no_overflow = 1 ,
  v8::internal::Uless = 2 , v8::internal::Ugreater_equal = 3 , v8::internal::Uless_equal = 4 , v8::internal::Ugreater = 5 ,
  v8::internal::equal = 4 , v8::internal::not_equal = 5 , v8::internal::less = 12 , v8::internal::greater_equal = 13 ,
  v8::internal::less_equal = 14 , v8::internal::greater = 15 , v8::internal::cc_always = 18 , v8::internal::eq = 0 << 28 ,
  v8::internal::ne = 1 << 28 , v8::internal::ge = 10 << 28 , v8::internal::lt = 11 << 28 , v8::internal::gt = 12 << 28 ,
  v8::internal::le = 13 << 28 , v8::internal::al = 14 << 28 , v8::internal::ult = Uless , v8::internal::uge = Ugreater_equal ,
  v8::internal::ule = Uless_equal , v8::internal::ugt = Ugreater , v8::internal::kEqual = eq , v8::internal::kNotEqual = ne ,
  v8::internal::kLessThan = lt , v8::internal::kGreaterThan = gt , v8::internal::kLessThanEqual = le , v8::internal::kGreaterThanEqual = ge ,
  v8::internal::kUnsignedLessThan = lo , v8::internal::kUnsignedGreaterThan = hi , v8::internal::kUnsignedLessThanEqual = ls , v8::internal::kUnsignedGreaterThanEqual = hs ,
  v8::internal::kOverflow = vs , v8::internal::kNoOverflow = vc , v8::internal::kZero = eq , v8::internal::kNotZero = ne ,
  v8::internal::kNoCondition = -1 , v8::internal::eq = 0 << 28 , v8::internal::ne = 1 << 28 , v8::internal::ge = 10 << 28 ,
  v8::internal::lt = 11 << 28 , v8::internal::gt = 12 << 28 , v8::internal::le = 13 << 28 , v8::internal::al = 14 << 28 ,
  v8::internal::CC_NOP = 0x0 , v8::internal::CC_EQ = 0x08 , v8::internal::CC_LT = 0x04 , v8::internal::CC_LE = CC_EQ | CC_LT ,
  v8::internal::CC_GT = 0x02 , v8::internal::CC_GE = CC_EQ | CC_GT , v8::internal::CC_OF = 0x01 , v8::internal::CC_NOF = 0x0E ,
  v8::internal::CC_ALWAYS = 0x0F , v8::internal::unordered = 6 , v8::internal::ordered = 7 , v8::internal::overflow = 0 ,
  v8::internal::nooverflow = 9 , v8::internal::mask0x0 = 0 , v8::internal::mask0x1 = 1 , v8::internal::mask0x2 = 2 ,
  v8::internal::mask0x3 = 3 , v8::internal::mask0x4 = 4 , v8::internal::mask0x5 = 5 , v8::internal::mask0x6 = 6 ,
  v8::internal::mask0x7 = 7 , v8::internal::mask0x8 = 8 , v8::internal::mask0x9 = 9 , v8::internal::mask0xA = 10 ,
  v8::internal::mask0xB = 11 , v8::internal::mask0xC = 12 , v8::internal::mask0xD = 13 , v8::internal::mask0xE = 14 ,
  v8::internal::mask0xF = 15 , v8::internal::kEqual = eq , v8::internal::kNotEqual = ne , v8::internal::kLessThan = lt ,
  v8::internal::kGreaterThan = gt , v8::internal::kLessThanEqual = le , v8::internal::kGreaterThanEqual = ge , v8::internal::kUnsignedLessThan = lo ,
  v8::internal::kUnsignedGreaterThan = hi , v8::internal::kUnsignedLessThanEqual = ls , v8::internal::kUnsignedGreaterThanEqual = hs , v8::internal::kOverflow = vs ,
  v8::internal::kNoOverflow = vc , v8::internal::kZero = eq , v8::internal::kNotZero = ne , v8::internal::overflow = 0 ,
  v8::internal::no_overflow = 1 , v8::internal::below = 2 , v8::internal::above_equal = 3 , v8::internal::equal = 4 ,
  v8::internal::not_equal = 5 , v8::internal::below_equal = 6 , v8::internal::above = 7 , v8::internal::negative = 8 ,
  v8::internal::positive = 9 , v8::internal::parity_even = 10 , v8::internal::parity_odd = 11 , v8::internal::less = 12 ,
  v8::internal::greater_equal = 13 , v8::internal::less_equal = 14 , v8::internal::greater = 15 , v8::internal::carry = below ,
  v8::internal::not_carry = above_equal , v8::internal::zero = equal , v8::internal::not_zero = not_equal , v8::internal::sign = negative ,
  v8::internal::not_sign = positive , v8::internal::kEqual = eq , v8::internal::kNotEqual = ne , v8::internal::kLessThan = lt ,
  v8::internal::kGreaterThan = gt , v8::internal::kLessThanEqual = le , v8::internal::kGreaterThanEqual = ge , v8::internal::kUnsignedLessThan = lo ,
  v8::internal::kUnsignedGreaterThan = hi , v8::internal::kUnsignedLessThanEqual = ls , v8::internal::kUnsignedGreaterThanEqual = hs , v8::internal::kOverflow = vs ,
  v8::internal::kNoOverflow = vc , v8::internal::kZero = eq , v8::internal::kNotZero = ne
}
 
enum  v8::internal::RoundingMode { v8::internal::kRoundDown = 0x1 , v8::internal::kRoundUp = 0x2 , v8::internal::kRoundDown = 0x1 , v8::internal::kRoundUp = 0x2 }
 
enum  v8::internal::ScaleFactor {
  v8::internal::times_1 = 0 , v8::internal::times_2 = 1 , v8::internal::times_4 = 2 , v8::internal::times_8 = 3 ,
  v8::internal::times_int_size = times_4 , v8::internal::times_half_system_pointer_size = times_2 , v8::internal::times_system_pointer_size = times_4 , v8::internal::times_tagged_size = times_4 ,
  v8::internal::times_1 = 0 , v8::internal::times_2 = 1 , v8::internal::times_4 = 2 , v8::internal::times_8 = 3 ,
  v8::internal::times_int_size = times_4 , v8::internal::times_half_system_pointer_size = times_2 , v8::internal::times_system_pointer_size = times_4 , v8::internal::times_tagged_size = times_4 ,
  v8::internal::times_external_pointer_size = V8_ENABLE_SANDBOX_BOOL ? times_4 : times_8
}
 

Functions

Condition v8::internal::NegateCondition (Condition cond)
 
 v8::internal::ASSERT_TRIVIALLY_COPYABLE (Operand)
 
bool v8::internal::operator!= (Operand op, XMMRegister r)
 

Macro Definition Documentation

◆ AVX2_INSTRUCTION

#define AVX2_INSTRUCTION ( instr,
prefix,
escape1,
escape2,
opcode )
Value:
void instr(XMMRegister dst, XMMRegister src) { \
vinstr(0x##opcode, dst, xmm0, src, k##prefix, k##escape1##escape2, kW0, \
AVX2); \
} \
void instr(XMMRegister dst, Operand src) { \
vinstr(0x##opcode, dst, xmm0, src, k##prefix, k##escape1##escape2, kW0, \
AVX2); \
}
Instruction * instr
int x

Definition at line 1622 of file assembler-ia32.h.

◆ AVX_CMP_P

#define AVX_CMP_P ( instr,
imm8 )
Value:
void v##instr##ps(XMMRegister dst, XMMRegister src1, XMMRegister src2) { \
vcmpps(dst, src1, Operand(src2), imm8); \
} \
void v##instr##ps(XMMRegister dst, XMMRegister src1, Operand src2) { \
vcmpps(dst, src1, src2, imm8); \
} \
void v##instr##pd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { \
vcmppd(dst, src1, Operand(src2), imm8); \
} \
void v##instr##pd(XMMRegister dst, XMMRegister src1, Operand src2) { \
vcmppd(dst, src1, src2, imm8); \
}

Definition at line 1504 of file assembler-ia32.h.

◆ AVX_PACKED_OP_DECLARE

#define AVX_PACKED_OP_DECLARE ( name,
opcode )
Value:
void v##name##ps(XMMRegister dst, XMMRegister src1, XMMRegister src2) { \
vps(opcode, dst, src1, Operand(src2)); \
} \
void v##name##ps(XMMRegister dst, XMMRegister src1, Operand src2) { \
vps(opcode, dst, src1, src2); \
} \
void v##name##pd(XMMRegister dst, XMMRegister src1, XMMRegister src2) { \
vpd(opcode, dst, src1, Operand(src2)); \
} \
void v##name##pd(XMMRegister dst, XMMRegister src1, Operand src2) { \
vpd(opcode, dst, src1, src2); \
}

Definition at line 1480 of file assembler-ia32.h.

◆ DECLARE_SSE2_AVX_INSTRUCTION

#define DECLARE_SSE2_AVX_INSTRUCTION ( instruction,
prefix,
escape,
opcode )
Value:
void v##instruction(XMMRegister dst, XMMRegister src1, XMMRegister src2) { \
v##instruction(dst, src1, Operand(src2)); \
} \
void v##instruction(XMMRegister dst, XMMRegister src1, Operand src2) { \
vinstr(0x##opcode, dst, src1, src2, k##prefix, k##escape, kW0); \
}

Definition at line 1554 of file assembler-ia32.h.

◆ DECLARE_SSE2_INSTRUCTION

#define DECLARE_SSE2_INSTRUCTION ( instruction,
prefix,
escape,
opcode )
Value:
void instruction(XMMRegister dst, XMMRegister src) { \
instruction(dst, Operand(src)); \
} \
void instruction(XMMRegister dst, Operand src) { \
sse2_instr(dst, src, 0x##prefix, 0x##escape, 0x##opcode); \
}

Definition at line 1542 of file assembler-ia32.h.

◆ DECLARE_SSE34_AVX_INSTRUCTION

#define DECLARE_SSE34_AVX_INSTRUCTION ( instruction,
prefix,
escape1,
escape2,
opcode )
Value:
void v##instruction(XMMRegister dst, XMMRegister src1, XMMRegister src2) { \
v##instruction(dst, src1, Operand(src2)); \
} \
void v##instruction(XMMRegister dst, XMMRegister src1, Operand src2) { \
vinstr(0x##opcode, dst, src1, src2, k##prefix, k##escape1##escape2, kW0); \
}

Definition at line 1595 of file assembler-ia32.h.

◆ DECLARE_SSE4_AVX_RM_INSTRUCTION

#define DECLARE_SSE4_AVX_RM_INSTRUCTION ( instruction,
prefix,
escape1,
escape2,
opcode )
Value:
void v##instruction(XMMRegister dst, XMMRegister src) { \
v##instruction(dst, Operand(src)); \
} \
void v##instruction(XMMRegister dst, Operand src) { \
vinstr(0x##opcode, dst, xmm0, src, k##prefix, k##escape1##escape2, kW0); \
}

Definition at line 1608 of file assembler-ia32.h.

◆ DECLARE_SSE4_INSTRUCTION

#define DECLARE_SSE4_INSTRUCTION ( instruction,
prefix,
escape1,
escape2,
opcode )
Value:
void instruction(XMMRegister dst, XMMRegister src) { \
instruction(dst, Operand(src)); \
} \
void instruction(XMMRegister dst, Operand src) { \
sse4_instr(dst, src, 0x##prefix, 0x##escape1, 0x##escape2, 0x##opcode); \
}

Definition at line 1579 of file assembler-ia32.h.

◆ DECLARE_SSE_UNOP_AND_AVX

#define DECLARE_SSE_UNOP_AND_AVX ( instruction,
escape,
opcode )
Value:
void instruction(XMMRegister dst, XMMRegister src) { \
instruction(dst, Operand(src)); \
} \
void instruction(XMMRegister dst, Operand src) { \
sse_instr(dst, src, 0x##escape, 0x##opcode); \
} \
void v##instruction(XMMRegister dst, XMMRegister src) { \
v##instruction(dst, Operand(src)); \
} \
void v##instruction(XMMRegister dst, Operand src) { \
vinstr(0x##opcode, dst, xmm0, src, kNoPrefix, k##escape, kWIG); \
}

Definition at line 1525 of file assembler-ia32.h.

◆ DECLARE_SSSE3_INSTRUCTION

#define DECLARE_SSSE3_INSTRUCTION ( instruction,
prefix,
escape1,
escape2,
opcode )
Value:
void instruction(XMMRegister dst, XMMRegister src) { \
instruction(dst, Operand(src)); \
} \
void instruction(XMMRegister dst, Operand src) { \
ssse3_instr(dst, src, 0x##prefix, 0x##escape1, 0x##escape2, 0x##opcode); \
}

Definition at line 1566 of file assembler-ia32.h.

◆ FMA

#define FMA ( instr,
length,
prefix,
escape1,
escape2,
extension,
opcode )
Value:
void instr(XMMRegister dst, XMMRegister src1, XMMRegister src2) { \
vinstr(0x##opcode, dst, src1, src2, k##length, k##prefix, \
k##escape1##escape2, k##extension, FMA3); \
} \
void instr(XMMRegister dst, XMMRegister src1, Operand src2) { \
vinstr(0x##opcode, dst, src1, src2, k##length, k##prefix, \
k##escape1##escape2, k##extension, FMA3); \
}
std::string extension

Definition at line 1634 of file assembler-ia32.h.

◆ PACKED_CMP_LIST

#define PACKED_CMP_LIST ( V)
Value:
V(cmpeq, 0x0) \
V(cmplt, 0x1) \
V(cmple, 0x2) \
V(cmpunord, 0x3) \
V(cmpneq, 0x4)
#define V(Name)

Definition at line 925 of file assembler-ia32.h.

◆ PACKED_OP_LIST

#define PACKED_OP_LIST ( V)
Value:
V(unpckl, 0x14) \
V(and, 0x54) \
V(andn, 0x55) \
V(or, 0x56) \
V(xor, 0x57) \
V(add, 0x58) \
V(mul, 0x59) \
V(sub, 0x5c) \
V(min, 0x5d) \
V(div, 0x5e) \
V(max, 0x5f)

Definition at line 1454 of file assembler-ia32.h.

◆ SSE_CMP_P

#define SSE_CMP_P ( instr,
imm8 )
Value:
void instr##ps(XMMRegister dst, XMMRegister src) { \
cmpps(dst, Operand(src), imm8); \
} \
void instr##ps(XMMRegister dst, Operand src) { cmpps(dst, src, imm8); } \
void instr##pd(XMMRegister dst, XMMRegister src) { \
cmppd(dst, Operand(src), imm8); \
} \
void instr##pd(XMMRegister dst, Operand src) { cmppd(dst, src, imm8); }

Definition at line 932 of file assembler-ia32.h.

◆ SSE_PACKED_OP_DECLARE

#define SSE_PACKED_OP_DECLARE ( name,
opcode )
Value:
void name##ps(XMMRegister dst, XMMRegister src) { \
ps(opcode, dst, Operand(src)); \
} \
void name##ps(XMMRegister dst, Operand src) { ps(opcode, dst, src); } \
void name##pd(XMMRegister dst, XMMRegister src) { \
pd(opcode, dst, Operand(src)); \
} \
void name##pd(XMMRegister dst, Operand src) { pd(opcode, dst, src); }

Definition at line 1467 of file assembler-ia32.h.