| Index: src/IceInstX8632.cpp
|
| diff --git a/src/IceInstX8632.cpp b/src/IceInstX8632.cpp
|
| index 1454778f39907fa6f3a4de86ccb53c1b24d6db46..373ab59e47503c4b3535edaaf87bc17a4aa015f5 100644
|
| --- a/src/IceInstX8632.cpp
|
| +++ b/src/IceInstX8632.cpp
|
| @@ -182,8 +182,9 @@ InstX8632Cmpxchg8b::InstX8632Cmpxchg8b(Cfg *Func, OperandX8632 *Addr,
|
| addSource(Ebx);
|
| }
|
|
|
| -InstX8632Cvt::InstX8632Cvt(Cfg *Func, Variable *Dest, Operand *Source)
|
| - : InstX8632(Func, InstX8632::Cvt, 1, Dest) {
|
| +InstX8632Cvt::InstX8632Cvt(Cfg *Func, Variable *Dest, Operand *Source,
|
| + bool Trunc)
|
| + : InstX8632(Func, InstX8632::Cvt, 1, Dest), Trunc(Trunc) {
|
| addSource(Source);
|
| }
|
|
|
| @@ -798,7 +799,10 @@ void InstX8632Cmpxchg8b::dump(const Cfg *Func) const {
|
| void InstX8632Cvt::emit(const Cfg *Func) const {
|
| Ostream &Str = Func->getContext()->getStrEmit();
|
| assert(getSrcSize() == 1);
|
| - Str << "\tcvt" << TypeX8632Attributes[getSrc(0)->getType()].CvtString << "2"
|
| + Str << "\tcvt";
|
| + if (Trunc)
|
| + Str << "t";
|
| + Str << TypeX8632Attributes[getSrc(0)->getType()].CvtString << "2"
|
| << TypeX8632Attributes[getDest()->getType()].CvtString << "\t";
|
| getDest()->emit(Func);
|
| Str << ", ";
|
| @@ -809,8 +813,11 @@ void InstX8632Cvt::emit(const Cfg *Func) const {
|
| void InstX8632Cvt::dump(const Cfg *Func) const {
|
| Ostream &Str = Func->getContext()->getStrDump();
|
| dumpDest(Func);
|
| - Str << " = cvt" << TypeX8632Attributes[getSrc(0)->getType()].CvtString
|
| - << "2" << TypeX8632Attributes[getDest()->getType()].CvtString << " ";
|
| + Str << " = cvt";
|
| + if (Trunc)
|
| + Str << "t";
|
| + Str << TypeX8632Attributes[getSrc(0)->getType()].CvtString << "2"
|
| + << TypeX8632Attributes[getDest()->getType()].CvtString << " ";
|
| dumpSources(Func);
|
| }
|
|
|
|
|