Commit 747239fa authored by Ng Zhi An's avatar Ng Zhi An Committed by Commit Bot

Declare SSSE3 avx helpers with SSSE3 scope

Follow up from https://crrev.com/c/1874378, declare these SSSE3
instructions using a separate macro that declares the right scope.

Bug: v8:9561
Change-Id: Ia4370a4dff9e9d13b08c5e95a45670556d6ff1e2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1875657Reviewed-by: 's avatarDeepti Gandluri <gdeepti@chromium.org>
Commit-Queue: Zhi An Ng <zhin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64601}
parent c5bc87f8
...@@ -122,6 +122,13 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase { ...@@ -122,6 +122,13 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase {
.template emit<&Assembler::v##name, &Assembler::name>(dst, args...); \ .template emit<&Assembler::v##name, &Assembler::name>(dst, args...); \
} }
#define AVX_OP_SSSE3(macro_name, name) \
template <typename Dst, typename... Args> \
void macro_name(Dst dst, Args... args) { \
AvxHelper<Dst, Args...>{this, base::Optional<CpuFeature>(SSSE3)} \
.template emit<&Assembler::v##name, &Assembler::name>(dst, args...); \
}
#define AVX_OP_SSE4_1(macro_name, name) \ #define AVX_OP_SSE4_1(macro_name, name) \
template <typename Dst, typename... Args> \ template <typename Dst, typename... Args> \
void macro_name(Dst dst, Args... args) { \ void macro_name(Dst dst, Args... args) { \
...@@ -171,9 +178,7 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase { ...@@ -171,9 +178,7 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase {
AVX_OP(Sqrtpd, sqrtpd) AVX_OP(Sqrtpd, sqrtpd)
AVX_OP(Ucomiss, ucomiss) AVX_OP(Ucomiss, ucomiss)
AVX_OP(Ucomisd, ucomisd) AVX_OP(Ucomisd, ucomisd)
AVX_OP(Pshufb, pshufb)
AVX_OP(Paddusb, paddusb) AVX_OP(Paddusb, paddusb)
AVX_OP(Psignd, psignd)
AVX_OP(Pand, pand) AVX_OP(Pand, pand)
AVX_OP(Por, por) AVX_OP(Por, por)
AVX_OP(Pxor, pxor) AVX_OP(Pxor, pxor)
...@@ -189,6 +194,8 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase { ...@@ -189,6 +194,8 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase {
AVX_OP(Divpd, divpd) AVX_OP(Divpd, divpd)
AVX_OP(Shufps, shufps) AVX_OP(Shufps, shufps)
AVX_OP(Cvtdq2ps, cvtdq2ps) AVX_OP(Cvtdq2ps, cvtdq2ps)
AVX_OP_SSSE3(Pshufb, pshufb)
AVX_OP_SSSE3(Psignd, psignd)
AVX_OP_SSE4_1(Pmulld, pmulld) AVX_OP_SSE4_1(Pmulld, pmulld)
AVX_OP_SSE4_1(Pminsd, pminsd) AVX_OP_SSE4_1(Pminsd, pminsd)
AVX_OP_SSE4_1(Pminud, pminud) AVX_OP_SSE4_1(Pminud, pminud)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment