| OLD | NEW |
| 1 //===- subzero/src/IceInstX8632.cpp - X86-32 instruction implementation ---===// | 1 //===- subzero/src/IceInstX8632.cpp - X86-32 instruction implementation ---===// |
| 2 // | 2 // |
| 3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
| 4 // | 4 // |
| 5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
| 6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
| 7 // | 7 // |
| 8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
| 9 /// | 9 /// |
| 10 /// \file | 10 /// \file |
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 if (getBase()) | 182 if (getBase()) |
| 183 Str << "+"; | 183 Str << "+"; |
| 184 if (getShift() > 0) | 184 if (getShift() > 0) |
| 185 Str << (1u << getShift()) << "*"; | 185 Str << (1u << getShift()) << "*"; |
| 186 if (Func) | 186 if (Func) |
| 187 getIndex()->dump(Func); | 187 getIndex()->dump(Func); |
| 188 else | 188 else |
| 189 getIndex()->dump(Str); | 189 getIndex()->dump(Str); |
| 190 Dumped = true; | 190 Dumped = true; |
| 191 } | 191 } |
| 192 if (Disp) { |
| 193 if (Disp > 0) |
| 194 Str << "+"; |
| 195 Str << Disp; |
| 196 Dumped = true; |
| 197 } |
| 192 // Pretty-print the Offset. | 198 // Pretty-print the Offset. |
| 193 bool OffsetIsZero = false; | 199 bool OffsetIsZero = false; |
| 194 bool OffsetIsNegative = false; | 200 bool OffsetIsNegative = false; |
| 195 if (getOffset() == 0 && Disp == 0) { | 201 if (getOffset() == nullptr) { |
| 196 OffsetIsZero = true; | 202 OffsetIsZero = true; |
| 197 } else if (getOffset() == 0 && Disp != 0) { | |
| 198 OffsetIsZero = (Disp == 0); | |
| 199 OffsetIsNegative = (Disp < 0); | |
| 200 } else if (const auto *CI = llvm::dyn_cast<ConstantInteger32>(getOffset())) { | 203 } else if (const auto *CI = llvm::dyn_cast<ConstantInteger32>(getOffset())) { |
| 201 OffsetIsZero = (CI->getValue() + Disp == 0); | 204 OffsetIsZero = (CI->getValue() == 0); |
| 202 OffsetIsNegative = (static_cast<int32_t>(CI->getValue()) + Disp < 0); | 205 OffsetIsNegative = (static_cast<int32_t>(CI->getValue()) < 0); |
| 203 } else { | 206 } else { |
| 204 assert(llvm::isa<ConstantRelocatable>(getOffset()) && Disp == 0); | 207 assert(llvm::isa<ConstantRelocatable>(getOffset())); |
| 205 } | 208 } |
| 206 if (Dumped) { | 209 if (Dumped) { |
| 207 if (!OffsetIsZero) { // Suppress if Offset is known to be 0 | 210 if (!OffsetIsZero) { // Suppress if Offset is known to be 0 |
| 208 if (!OffsetIsNegative) // Suppress if Offset is known to be negative | 211 if (!OffsetIsNegative) // Suppress if Offset is known to be negative |
| 209 Str << "+"; | 212 Str << "+"; |
| 210 getOffset()->dump(Func, Str); | 213 getOffset()->dump(Func, Str); |
| 211 } | 214 } |
| 212 } else { | 215 } else { |
| 213 // There is only the offset. | 216 // There is only the offset. |
| 214 getOffset()->dump(Func, Str); | 217 getOffset()->dump(Func, Str); |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 314 Var->dump(Func); | 317 Var->dump(Func); |
| 315 else | 318 else |
| 316 Var->dump(Str); | 319 Var->dump(Str); |
| 317 Str << ")"; | 320 Str << ")"; |
| 318 } | 321 } |
| 319 | 322 |
| 320 } // namespace X86Internal | 323 } // namespace X86Internal |
| 321 } // end of namespace Ice | 324 } // end of namespace Ice |
| 322 | 325 |
| 323 X86INSTS_DEFINE_STATIC_DATA(TargetX8632) | 326 X86INSTS_DEFINE_STATIC_DATA(TargetX8632) |
| OLD | NEW |