diff options
author | Evan Cheng <evan.cheng@apple.com> | 2008-02-08 21:20:40 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2008-02-08 21:20:40 +0000 |
commit | 5fd79d0560570fed977788a86fa038b898564dfa (patch) | |
tree | 9f139c1da990cd358750d0edaaef90f8ad1ff505 /lib/Target/Sparc | |
parent | 0c191872ab61d21907d99695382e157f5d4e4b9f (diff) | |
download | external_llvm-5fd79d0560570fed977788a86fa038b898564dfa.zip external_llvm-5fd79d0560570fed977788a86fa038b898564dfa.tar.gz external_llvm-5fd79d0560570fed977788a86fa038b898564dfa.tar.bz2 |
It's not always safe to fold movsd into xorpd, etc. Check the alignment of the load address first to make sure it's 16 byte aligned.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46893 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Sparc')
-rw-r--r-- | lib/Target/Sparc/SparcInstrInfo.cpp | 7 | ||||
-rw-r--r-- | lib/Target/Sparc/SparcInstrInfo.h | 6 |
2 files changed, 8 insertions, 5 deletions
diff --git a/lib/Target/Sparc/SparcInstrInfo.cpp b/lib/Target/Sparc/SparcInstrInfo.cpp index 56727bb..79fc912 100644 --- a/lib/Target/Sparc/SparcInstrInfo.cpp +++ b/lib/Target/Sparc/SparcInstrInfo.cpp @@ -222,9 +222,10 @@ void SparcInstrInfo::loadRegFromAddr(MachineFunction &MF, unsigned DestReg, return; } -MachineInstr *SparcInstrInfo::foldMemoryOperand(MachineInstr* MI, - SmallVectorImpl<unsigned> &Ops, - int FI) const { +MachineInstr *SparcInstrInfo::foldMemoryOperand(MachineFunction &MF, + MachineInstr* MI, + SmallVectorImpl<unsigned> &Ops, + int FI) const { if (Ops.size() != 1) return NULL; unsigned OpNum = Ops[0]; diff --git a/lib/Target/Sparc/SparcInstrInfo.h b/lib/Target/Sparc/SparcInstrInfo.h index 0ed7fab..14c3b4a 100644 --- a/lib/Target/Sparc/SparcInstrInfo.h +++ b/lib/Target/Sparc/SparcInstrInfo.h @@ -94,11 +94,13 @@ public: const TargetRegisterClass *RC, SmallVectorImpl<MachineInstr*> &NewMIs) const; - virtual MachineInstr* foldMemoryOperand(MachineInstr* MI, + virtual MachineInstr* foldMemoryOperand(MachineFunction &MF, + MachineInstr* MI, SmallVectorImpl<unsigned> &Ops, int FrameIndex) const; - virtual MachineInstr* foldMemoryOperand(MachineInstr* MI, + virtual MachineInstr* foldMemoryOperand(MachineFunction &MF, + MachineInstr* MI, SmallVectorImpl<unsigned> &Ops, MachineInstr* LoadMI) const { return 0; |