| Index: src/IceInstX8632.h
|
| diff --git a/src/IceInstX8632.h b/src/IceInstX8632.h
|
| index ce1cc6545b30409dd07ce83575a7531bb2dd71c8..67600574ef842a97160d184d06e7d69e226e5fb1 100644
|
| --- a/src/IceInstX8632.h
|
| +++ b/src/IceInstX8632.h
|
| @@ -145,6 +145,7 @@ public:
|
| Call,
|
| Cdq,
|
| Cmov,
|
| + Cmpps,
|
| Cmpxchg,
|
| Cmpxchg8b,
|
| Cvt,
|
| @@ -714,6 +715,35 @@ private:
|
| BrCond Condition;
|
| };
|
|
|
| +// Cmpps instruction - compare packed singled-precision floating point
|
| +// values
|
| +class InstX8632Cmpps : public InstX8632 {
|
| +public:
|
| + enum CmppsCond {
|
| +#define X(tag, emit) tag,
|
| + ICEINSTX8632CMPPS_TABLE
|
| +#undef X
|
| + Cmpps_Invalid
|
| + };
|
| +
|
| + static InstX8632Cmpps *create(Cfg *Func, Variable *Dest, Operand *Source,
|
| + CmppsCond Condition) {
|
| + return new (Func->allocate<InstX8632Cmpps>())
|
| + InstX8632Cmpps(Func, Dest, Source, Condition);
|
| + }
|
| + virtual void emit(const Cfg *Func) const;
|
| + virtual void dump(const Cfg *Func) const;
|
| + static bool classof(const Inst *Inst) { return isClassof(Inst, Cmpps); }
|
| +
|
| +private:
|
| + InstX8632Cmpps(Cfg *Func, Variable *Dest, Operand *Source, CmppsCond Cond);
|
| + InstX8632Cmpps(const InstX8632Cmpps &) LLVM_DELETED_FUNCTION;
|
| + InstX8632Cmpps &operator=(const InstX8632Cmpps &) LLVM_DELETED_FUNCTION;
|
| + virtual ~InstX8632Cmpps() {}
|
| +
|
| + CmppsCond Condition;
|
| +};
|
| +
|
| // Cmpxchg instruction - cmpxchg <dest>, <desired> will compare if <dest>
|
| // equals eax. If so, the ZF is set and <desired> is stored in <dest>.
|
| // If not, ZF is cleared and <dest> is copied to eax (or subregister).
|
|
|