diff options
-rw-r--r-- | lib/Target/ARM/ARMInstrFormats.td | 2 | ||||
-rw-r--r-- | lib/Target/ARM/NEONMoveFix.cpp | 9 |
2 files changed, 3 insertions, 8 deletions
diff --git a/lib/Target/ARM/ARMInstrFormats.td b/lib/Target/ARM/ARMInstrFormats.td index b0cec4b1c3..359ac45cee 100644 --- a/lib/Target/ARM/ARMInstrFormats.td +++ b/lib/Target/ARM/ARMInstrFormats.td @@ -134,7 +134,7 @@ def GenericDomain : Domain<0>; def VFPDomain : Domain<1>; // Instructions in VFP domain only def NeonDomain : Domain<2>; // Instructions in Neon domain only def VFPNeonDomain : Domain<3>; // Instructions in both VFP & Neon domains -def VFPNeonA8Domain : Domain<7>; // Instructions in VFP & Neon under A8 +def VFPNeonA8Domain : Domain<5>; // Instructions in VFP & Neon under A8 //===----------------------------------------------------------------------===// // ARM special operands. diff --git a/lib/Target/ARM/NEONMoveFix.cpp b/lib/Target/ARM/NEONMoveFix.cpp index e8393c53dd..965665c282 100644 --- a/lib/Target/ARM/NEONMoveFix.cpp +++ b/lib/Target/ARM/NEONMoveFix.cpp @@ -45,13 +45,8 @@ namespace { } static bool inNEONDomain(unsigned Domain, bool isA8) { - if (Domain & ARMII::DomainNEON) { - // Some instructions only go down NEON pipeline when executed on CortexA8. - if (Domain & ARMII::DomainNEONA8) - return isA8; - return true; - } - return false; + return (Domain & ARMII::DomainNEON) || + (isA8 && (Domain & ARMII::DomainNEONA8)); } bool NEONMoveFixPass::InsertMoves(MachineBasicBlock &MBB) { |