| Index: src/IceInstX8632.cpp
|
| diff --git a/src/IceInstX8632.cpp b/src/IceInstX8632.cpp
|
| index 18b4b44a9be24eb9890d26c160b1d64ccca47f35..7150fa98c0bd72102e842f24f5cde243949df838 100644
|
| --- a/src/IceInstX8632.cpp
|
| +++ b/src/IceInstX8632.cpp
|
| @@ -782,7 +782,8 @@ const x86::AssemblerX86::GPREmitterRegOp InstX8632Lea::Emitter = {
|
| // Unary XMM ops
|
| template <>
|
| const x86::AssemblerX86::XmmEmitterRegOp InstX8632Sqrtss::Emitter = {
|
| - &x86::AssemblerX86::sqrtss, &x86::AssemblerX86::sqrtss};
|
| + &x86::AssemblerX86::sqrtss, &x86::AssemblerX86::sqrtss
|
| +};
|
|
|
| // Binary GPR ops
|
| template <>
|
| @@ -824,58 +825,76 @@ const x86::AssemblerX86::GPREmitterShiftOp InstX8632Shr::Emitter = {
|
| // Binary XMM ops
|
| template <>
|
| const x86::AssemblerX86::XmmEmitterRegOp InstX8632Addss::Emitter = {
|
| - &x86::AssemblerX86::addss, &x86::AssemblerX86::addss};
|
| + &x86::AssemblerX86::addss, &x86::AssemblerX86::addss
|
| +};
|
| template <>
|
| const x86::AssemblerX86::XmmEmitterRegOp InstX8632Addps::Emitter = {
|
| - &x86::AssemblerX86::addps, &x86::AssemblerX86::addps};
|
| + &x86::AssemblerX86::addps, &x86::AssemblerX86::addps
|
| +};
|
| template <>
|
| const x86::AssemblerX86::XmmEmitterRegOp InstX8632Divss::Emitter = {
|
| - &x86::AssemblerX86::divss, &x86::AssemblerX86::divss};
|
| + &x86::AssemblerX86::divss, &x86::AssemblerX86::divss
|
| +};
|
| template <>
|
| const x86::AssemblerX86::XmmEmitterRegOp InstX8632Divps::Emitter = {
|
| - &x86::AssemblerX86::divps, &x86::AssemblerX86::divps};
|
| + &x86::AssemblerX86::divps, &x86::AssemblerX86::divps
|
| +};
|
| template <>
|
| const x86::AssemblerX86::XmmEmitterRegOp InstX8632Mulss::Emitter = {
|
| - &x86::AssemblerX86::mulss, &x86::AssemblerX86::mulss};
|
| + &x86::AssemblerX86::mulss, &x86::AssemblerX86::mulss
|
| +};
|
| template <>
|
| const x86::AssemblerX86::XmmEmitterRegOp InstX8632Mulps::Emitter = {
|
| - &x86::AssemblerX86::mulps, &x86::AssemblerX86::mulps};
|
| + &x86::AssemblerX86::mulps, &x86::AssemblerX86::mulps
|
| +};
|
| template <>
|
| const x86::AssemblerX86::XmmEmitterRegOp InstX8632Padd::Emitter = {
|
| - &x86::AssemblerX86::padd, &x86::AssemblerX86::padd};
|
| + &x86::AssemblerX86::padd, &x86::AssemblerX86::padd
|
| +};
|
| template <>
|
| const x86::AssemblerX86::XmmEmitterRegOp InstX8632Pand::Emitter = {
|
| - &x86::AssemblerX86::pand, &x86::AssemblerX86::pand};
|
| + &x86::AssemblerX86::pand, &x86::AssemblerX86::pand
|
| +};
|
| template <>
|
| const x86::AssemblerX86::XmmEmitterRegOp InstX8632Pandn::Emitter = {
|
| - &x86::AssemblerX86::pandn, &x86::AssemblerX86::pandn};
|
| + &x86::AssemblerX86::pandn, &x86::AssemblerX86::pandn
|
| +};
|
| template <>
|
| const x86::AssemblerX86::XmmEmitterRegOp InstX8632Pcmpeq::Emitter = {
|
| - &x86::AssemblerX86::pcmpeq, &x86::AssemblerX86::pcmpeq};
|
| + &x86::AssemblerX86::pcmpeq, &x86::AssemblerX86::pcmpeq
|
| +};
|
| template <>
|
| const x86::AssemblerX86::XmmEmitterRegOp InstX8632Pcmpgt::Emitter = {
|
| - &x86::AssemblerX86::pcmpgt, &x86::AssemblerX86::pcmpgt};
|
| + &x86::AssemblerX86::pcmpgt, &x86::AssemblerX86::pcmpgt
|
| +};
|
| template <>
|
| const x86::AssemblerX86::XmmEmitterRegOp InstX8632Pmull::Emitter = {
|
| - &x86::AssemblerX86::pmull, &x86::AssemblerX86::pmull};
|
| + &x86::AssemblerX86::pmull, &x86::AssemblerX86::pmull
|
| +};
|
| template <>
|
| const x86::AssemblerX86::XmmEmitterRegOp InstX8632Pmuludq::Emitter = {
|
| - &x86::AssemblerX86::pmuludq, &x86::AssemblerX86::pmuludq};
|
| + &x86::AssemblerX86::pmuludq, &x86::AssemblerX86::pmuludq
|
| +};
|
| template <>
|
| const x86::AssemblerX86::XmmEmitterRegOp InstX8632Por::Emitter = {
|
| - &x86::AssemblerX86::por, &x86::AssemblerX86::por};
|
| + &x86::AssemblerX86::por, &x86::AssemblerX86::por
|
| +};
|
| template <>
|
| const x86::AssemblerX86::XmmEmitterRegOp InstX8632Psub::Emitter = {
|
| - &x86::AssemblerX86::psub, &x86::AssemblerX86::psub};
|
| + &x86::AssemblerX86::psub, &x86::AssemblerX86::psub
|
| +};
|
| template <>
|
| const x86::AssemblerX86::XmmEmitterRegOp InstX8632Pxor::Emitter = {
|
| - &x86::AssemblerX86::pxor, &x86::AssemblerX86::pxor};
|
| + &x86::AssemblerX86::pxor, &x86::AssemblerX86::pxor
|
| +};
|
| template <>
|
| const x86::AssemblerX86::XmmEmitterRegOp InstX8632Subss::Emitter = {
|
| - &x86::AssemblerX86::subss, &x86::AssemblerX86::subss};
|
| + &x86::AssemblerX86::subss, &x86::AssemblerX86::subss
|
| +};
|
| template <>
|
| const x86::AssemblerX86::XmmEmitterRegOp InstX8632Subps::Emitter = {
|
| - &x86::AssemblerX86::subps, &x86::AssemblerX86::subps};
|
| + &x86::AssemblerX86::subps, &x86::AssemblerX86::subps
|
| +};
|
|
|
| // Binary XMM Shift ops
|
| template <>
|
| @@ -1427,10 +1446,11 @@ void InstX8632Icmp::emitIAS(const Cfg *Func) const {
|
| const Operand *Src1 = getSrc(1);
|
| Type Ty = Src0->getType();
|
| static const x86::AssemblerX86::GPREmitterRegOp RegEmitter = {
|
| - &x86::AssemblerX86::cmp, &x86::AssemblerX86::cmp,
|
| - &x86::AssemblerX86::cmp};
|
| + &x86::AssemblerX86::cmp, &x86::AssemblerX86::cmp, &x86::AssemblerX86::cmp
|
| + };
|
| static const x86::AssemblerX86::GPREmitterAddrOp AddrEmitter = {
|
| - &x86::AssemblerX86::cmp, &x86::AssemblerX86::cmp};
|
| + &x86::AssemblerX86::cmp, &x86::AssemblerX86::cmp
|
| + };
|
| if (const Variable *SrcVar0 = llvm::dyn_cast<Variable>(Src0)) {
|
| if (SrcVar0->hasReg()) {
|
| emitIASRegOpTyGPR(Func, Ty, SrcVar0, Src1, RegEmitter);
|
| @@ -1471,7 +1491,8 @@ void InstX8632Ucomiss::emitIAS(const Cfg *Func) const {
|
| const Variable *Src0 = llvm::cast<Variable>(getSrc(0));
|
| Type Ty = Src0->getType();
|
| const static x86::AssemblerX86::XmmEmitterRegOp Emitter = {
|
| - &x86::AssemblerX86::ucomiss, &x86::AssemblerX86::ucomiss};
|
| + &x86::AssemblerX86::ucomiss, &x86::AssemblerX86::ucomiss
|
| + };
|
| emitIASRegOpTyXMM(Func, Ty, Src0, getSrc(1), Emitter);
|
| }
|
|
|
| @@ -1517,9 +1538,11 @@ void InstX8632Test::emitIAS(const Cfg *Func) const {
|
| Type Ty = Src0->getType();
|
| // The Reg/Addr form of test is not encodeable.
|
| static const x86::AssemblerX86::GPREmitterRegOp RegEmitter = {
|
| - &x86::AssemblerX86::test, NULL, &x86::AssemblerX86::test};
|
| + &x86::AssemblerX86::test, NULL, &x86::AssemblerX86::test
|
| + };
|
| static const x86::AssemblerX86::GPREmitterAddrOp AddrEmitter = {
|
| - &x86::AssemblerX86::test, &x86::AssemblerX86::test};
|
| + &x86::AssemblerX86::test, &x86::AssemblerX86::test
|
| + };
|
| if (const Variable *SrcVar0 = llvm::dyn_cast<Variable>(Src0)) {
|
| if (SrcVar0->hasReg()) {
|
| emitIASRegOpTyGPR(Func, Ty, SrcVar0, Src1, RegEmitter);
|
| @@ -1770,8 +1793,9 @@ template <> void InstX8632Movp::emitIAS(const Cfg *Func) const {
|
| const Variable *Dest = getDest();
|
| const Operand *Src = getSrc(0);
|
| const static x86::AssemblerX86::XmmEmitterMovOps Emitter = {
|
| - &x86::AssemblerX86::movups, &x86::AssemblerX86::movups,
|
| - &x86::AssemblerX86::movups};
|
| + &x86::AssemblerX86::movups, &x86::AssemblerX86::movups,
|
| + &x86::AssemblerX86::movups
|
| + };
|
| emitIASMovlikeXMM(Func, Dest, Src, Emitter);
|
| }
|
|
|
| @@ -1794,8 +1818,8 @@ template <> void InstX8632Movq::emitIAS(const Cfg *Func) const {
|
| const Variable *Dest = getDest();
|
| const Operand *Src = getSrc(0);
|
| const static x86::AssemblerX86::XmmEmitterMovOps Emitter = {
|
| - &x86::AssemblerX86::movq, &x86::AssemblerX86::movq,
|
| - &x86::AssemblerX86::movq};
|
| + &x86::AssemblerX86::movq, &x86::AssemblerX86::movq, &x86::AssemblerX86::movq
|
| + };
|
| emitIASMovlikeXMM(Func, Dest, Src, Emitter);
|
| }
|
|
|
|
|