summaryrefslogtreecommitdiff
path: root/deps/v8/src/ia32/assembler-ia32.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/ia32/assembler-ia32.h')
-rw-r--r--deps/v8/src/ia32/assembler-ia32.h34
1 files changed, 30 insertions, 4 deletions
diff --git a/deps/v8/src/ia32/assembler-ia32.h b/deps/v8/src/ia32/assembler-ia32.h
index 83e30df4f5..d57e3bee71 100644
--- a/deps/v8/src/ia32/assembler-ia32.h
+++ b/deps/v8/src/ia32/assembler-ia32.h
@@ -113,6 +113,7 @@ GENERAL_REGISTERS(DEFINE_REGISTER)
#undef DEFINE_REGISTER
constexpr Register no_reg = Register::no_reg();
+constexpr bool kPadArguments = false;
constexpr bool kSimpleFPAliasing = true;
constexpr bool kSimdMaskRegisters = false;
@@ -530,10 +531,6 @@ class Assembler : public AssemblerBase {
inline static void set_target_address_at(
Isolate* isolate, Address pc, Address constant_pool, Address target,
ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED);
- static inline Address target_address_at(Address pc, Code* code);
- static inline void set_target_address_at(
- Isolate* isolate, Address pc, Code* code, Address target,
- ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED);
// Return the code target address at a call site from the return address
// of that call in the instruction stream.
@@ -683,6 +680,9 @@ class Assembler : public AssemblerBase {
void cmpxchg_b(const Operand& dst, Register src);
void cmpxchg_w(const Operand& dst, Register src);
+ // Memory Fence
+ void lfence();
+
// Arithmetics
void adc(Register dst, int32_t imm32);
void adc(Register dst, const Operand& src);
@@ -1004,6 +1004,8 @@ class Assembler : public AssemblerBase {
void rcpps(XMMRegister dst, XMMRegister src) { rcpps(dst, Operand(src)); }
void rsqrtps(XMMRegister dst, const Operand& src);
void rsqrtps(XMMRegister dst, XMMRegister src) { rsqrtps(dst, Operand(src)); }
+ void haddps(XMMRegister dst, const Operand& src);
+ void haddps(XMMRegister dst, XMMRegister src) { haddps(dst, Operand(src)); }
void minps(XMMRegister dst, const Operand& src);
void minps(XMMRegister dst, XMMRegister src) { minps(dst, Operand(src)); }
@@ -1149,6 +1151,10 @@ class Assembler : public AssemblerBase {
}
void pextrd(const Operand& dst, XMMRegister src, int8_t offset);
+ void insertps(XMMRegister dst, XMMRegister src, int8_t offset) {
+ insertps(dst, Operand(src), offset);
+ }
+ void insertps(XMMRegister dst, const Operand& src, int8_t offset);
void pinsrb(XMMRegister dst, Register src, int8_t offset) {
pinsrb(dst, Operand(src), offset);
}
@@ -1397,6 +1403,14 @@ class Assembler : public AssemblerBase {
void vrsqrtps(XMMRegister dst, const Operand& src) {
vinstr(0x52, dst, xmm0, src, kNone, k0F, kWIG);
}
+ void vmovaps(XMMRegister dst, XMMRegister src) {
+ vps(0x28, dst, xmm0, Operand(src));
+ }
+ void vshufps(XMMRegister dst, XMMRegister src1, XMMRegister src2, byte imm8) {
+ vshufps(dst, src1, Operand(src2), imm8);
+ }
+ void vshufps(XMMRegister dst, XMMRegister src1, const Operand& src2,
+ byte imm8);
void vpsllw(XMMRegister dst, XMMRegister src, int8_t imm8);
void vpslld(XMMRegister dst, XMMRegister src, int8_t imm8);
@@ -1427,6 +1441,12 @@ class Assembler : public AssemblerBase {
}
void vpextrd(const Operand& dst, XMMRegister src, int8_t offset);
+ void vinsertps(XMMRegister dst, XMMRegister src1, XMMRegister src2,
+ int8_t offset) {
+ vinsertps(dst, src1, Operand(src2), offset);
+ }
+ void vinsertps(XMMRegister dst, XMMRegister src1, const Operand& src2,
+ int8_t offset);
void vpinsrb(XMMRegister dst, XMMRegister src1, Register src2,
int8_t offset) {
vpinsrb(dst, src1, Operand(src2), offset);
@@ -1459,6 +1479,12 @@ class Assembler : public AssemblerBase {
vinstr(0x5B, dst, xmm0, src, kF3, k0F, kWIG);
}
+ void vmovdqu(XMMRegister dst, const Operand& src) {
+ vinstr(0x6F, dst, xmm0, src, kF3, k0F, kWIG);
+ }
+ void vmovdqu(const Operand& dst, XMMRegister src) {
+ vinstr(0x7F, src, xmm0, dst, kF3, k0F, kWIG);
+ }
void vmovd(XMMRegister dst, Register src) { vmovd(dst, Operand(src)); }
void vmovd(XMMRegister dst, const Operand& src) {
vinstr(0x6E, dst, xmm0, src, k66, k0F, kWIG);