diff options
Diffstat (limited to 'contrib/llvm/lib/CodeGen/MachineInstr.cpp')
| -rw-r--r-- | contrib/llvm/lib/CodeGen/MachineInstr.cpp | 20 | 
1 files changed, 17 insertions, 3 deletions
diff --git a/contrib/llvm/lib/CodeGen/MachineInstr.cpp b/contrib/llvm/lib/CodeGen/MachineInstr.cpp index 81c6dace92e0..afea5575a3ae 100644 --- a/contrib/llvm/lib/CodeGen/MachineInstr.cpp +++ b/contrib/llvm/lib/CodeGen/MachineInstr.cpp @@ -447,6 +447,14 @@ void MachineOperand::print(raw_ostream &OS, ModuleSlotTracker &MST,        SmallString<16> Str;        getFPImm()->getValueAPF().toString(Str);        OS << "quad " << Str; +    } else if (getFPImm()->getType()->isX86_FP80Ty()) { +      APFloat APF = getFPImm()->getValueAPF(); +      OS << "x86_fp80 0xK"; +      APInt API = APF.bitcastToAPInt(); +      OS << format_hex_no_prefix(API.getHiBits(16).getZExtValue(), 4, +                                 /*Upper=*/true); +      OS << format_hex_no_prefix(API.getLoBits(64).getZExtValue(), 16, +                                 /*Upper=*/true);      } else {        OS << getFPImm()->getValueAPF().convertToDouble();      } @@ -606,7 +614,7 @@ MachineMemOperand::MachineMemOperand(MachinePointerInfo ptrinfo, Flags f,                                       uint64_t s, unsigned int a,                                       const AAMDNodes &AAInfo,                                       const MDNode *Ranges, -                                     SynchronizationScope SynchScope, +                                     SyncScope::ID SSID,                                       AtomicOrdering Ordering,                                       AtomicOrdering FailureOrdering)      : PtrInfo(ptrinfo), Size(s), FlagVals(f), BaseAlignLog2(Log2_32(a) + 1), @@ -617,8 +625,8 @@ MachineMemOperand::MachineMemOperand(MachinePointerInfo ptrinfo, Flags f,    assert(getBaseAlignment() == a && "Alignment is not a power of 2!");    assert((isLoad() || isStore()) && "Not a load/store!"); -  AtomicInfo.SynchScope = static_cast<unsigned>(SynchScope); -  assert(getSynchScope() == SynchScope && "Value truncated"); +  AtomicInfo.SSID = static_cast<unsigned>(SSID); +  assert(getSyncScopeID() == SSID && "Value truncated");    AtomicInfo.Ordering = static_cast<unsigned>(Ordering);    assert(getOrdering() == Ordering && "Value truncated");    AtomicInfo.FailureOrdering = static_cast<unsigned>(FailureOrdering); @@ -744,6 +752,12 @@ void MachineMemOperand::print(raw_ostream &OS, ModuleSlotTracker &MST) const {      OS << "(dereferenceable)";    if (isInvariant())      OS << "(invariant)"; +  if (getFlags() & MOTargetFlag1) +    OS << "(flag1)"; +  if (getFlags() & MOTargetFlag2) +    OS << "(flag2)"; +  if (getFlags() & MOTargetFlag3) +    OS << "(flag3)";  }  //===----------------------------------------------------------------------===//  | 
