Index: src/IceInstX86Base.h |
diff --git a/src/IceInstX86Base.h b/src/IceInstX86Base.h |
index 9b0b5fc72e8e439f07e656bb2c5adcceb61ebf25..36b34ac9e22dce3d476c5cd7d9076680e2f5c20a 100644 |
--- a/src/IceInstX86Base.h |
+++ b/src/IceInstX86Base.h |
@@ -68,6 +68,7 @@ public: |
Icmp, |
Idiv, |
Imul, |
+ ImulImm, |
Insertps, |
Jmp, |
Label, |
@@ -1622,6 +1623,25 @@ private: |
}; |
template <class Machine> |
+class InstX86ImulImm |
+ : public InstX86BaseThreeAddressop<Machine, InstX86Base<Machine>::ImulImm> { |
+public: |
+ static InstX86ImulImm *create(Cfg *Func, Variable *Dest, Operand *Source0, |
+ Operand *Source1) { |
+ return new (Func->allocate<InstX86ImulImm>()) |
+ InstX86ImulImm(Func, Dest, Source0, Source1); |
+ } |
+ |
+ void emit(const Cfg *Func) const override; |
+ void emitIAS(const Cfg *Func) const override; |
+ |
+private: |
+ InstX86ImulImm(Cfg *Func, Variable *Dest, Operand *Source0, Operand *Source1) |
+ : InstX86BaseThreeAddressop<Machine, InstX86Base<Machine>::ImulImm>( |
+ Func, Dest, Source0, Source1) {} |
+}; |
+ |
+template <class Machine> |
class InstX86Mulps |
: public InstX86BaseBinopXmm<Machine, InstX86Base<Machine>::Mulps, true> { |
public: |
@@ -2790,6 +2810,7 @@ template <class Machine> struct Insts { |
using XorRMW = InstX86XorRMW<Machine>; |
using Pxor = InstX86Pxor<Machine>; |
using Imul = InstX86Imul<Machine>; |
+ using ImulImm = InstX86ImulImm<Machine>; |
using Mulps = InstX86Mulps<Machine>; |
using Mulss = InstX86Mulss<Machine>; |
using Pmull = InstX86Pmull<Machine>; |
@@ -2897,6 +2918,7 @@ template <class Machine> struct Insts { |
template <> const char *InstX86XorRMW<Machine>::Base::Opcode = "xor"; \ |
template <> const char *InstX86Pxor<Machine>::Base::Opcode = "pxor"; \ |
template <> const char *InstX86Imul<Machine>::Base::Opcode = "imul"; \ |
+ template <> const char *InstX86ImulImm<Machine>::Base::Opcode = "imul"; \ |
template <> const char *InstX86Mulps<Machine>::Base::Opcode = "mulps"; \ |
template <> const char *InstX86Mulss<Machine>::Base::Opcode = "mulss"; \ |
template <> const char *InstX86Pmull<Machine>::Base::Opcode = "pmull"; \ |