diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2011-02-26 22:03:50 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2011-02-26 22:03:50 +0000 | 
| commit | d0e4e96dc17a6c1c6de3340842c80f0e187ba349 (patch) | |
| tree | ddf53b8bd9235bcb0b8aae16c5e22310dcdad665 /lib/Target/ARM/ARMHazardRecognizer.cpp | |
| parent | cf099d11218cb6f6c5cce947d6738e347f07fb12 (diff) | |
Notes
Diffstat (limited to 'lib/Target/ARM/ARMHazardRecognizer.cpp')
| -rw-r--r-- | lib/Target/ARM/ARMHazardRecognizer.cpp | 17 | 
1 files changed, 7 insertions, 10 deletions
diff --git a/lib/Target/ARM/ARMHazardRecognizer.cpp b/lib/Target/ARM/ARMHazardRecognizer.cpp index 676b01e91c53a..e97ce50bc4294 100644 --- a/lib/Target/ARM/ARMHazardRecognizer.cpp +++ b/lib/Target/ARM/ARMHazardRecognizer.cpp @@ -21,17 +21,14 @@ static bool hasRAWHazard(MachineInstr *DefMI, MachineInstr *MI,    // FIXME: Detect integer instructions properly.    const TargetInstrDesc &TID = MI->getDesc();    unsigned Domain = TID.TSFlags & ARMII::DomainMask; -  if (Domain == ARMII::DomainVFP) { -    unsigned Opcode = MI->getOpcode(); -    if (Opcode == ARM::VSTRS || Opcode == ARM::VSTRD || -        Opcode == ARM::VMOVRS || Opcode == ARM::VMOVRRD) -      return false; -  } else if (Domain == ARMII::DomainNEON) { -    if (MI->getDesc().mayStore() || MI->getDesc().mayLoad()) -      return false; -  } else +  if (TID.mayStore())      return false; -  return MI->readsRegister(DefMI->getOperand(0).getReg(), &TRI); +  unsigned Opcode = TID.getOpcode(); +  if (Opcode == ARM::VMOVRS || Opcode == ARM::VMOVRRD) +    return false; +  if ((Domain & ARMII::DomainVFP) || (Domain & ARMII::DomainNEON)) +    return MI->readsRegister(DefMI->getOperand(0).getReg(), &TRI); +  return false;  }  ScheduleHazardRecognizer::HazardType  | 
