Fix double and long alignment.
Call the FPMover pass after register allocation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16573 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/Sparc/SparcTargetMachine.cpp b/lib/Target/Sparc/SparcTargetMachine.cpp
index 63da5af..ab93164 100644
--- a/lib/Target/Sparc/SparcTargetMachine.cpp
+++ b/lib/Target/Sparc/SparcTargetMachine.cpp
@@ -31,7 +31,7 @@
 ///
 SparcV8TargetMachine::SparcV8TargetMachine(const Module &M,
                                            IntrinsicLowering *IL)
-  : TargetMachine("SparcV8", IL, true, 4, 4, 4, 4, 4),
+  : TargetMachine("SparcV8", IL, false, 4, 4, 8, 4, 8),
     FrameInfo(TargetFrameInfo::StackGrowsDown, 8, 0), JITInfo(*this) {
 }
 
@@ -74,6 +74,7 @@
   if (PrintMachineCode)
     PM.add(createMachineFunctionPrinterPass(&std::cerr));
 
+  PM.add(createSparcV8FPMoverPass(*this));
   PM.add(createSparcV8DelaySlotFillerPass(*this));
 
   // Print machine instructions after filling delay slots.
@@ -126,6 +127,7 @@
   if (PrintMachineCode)
     PM.add(createMachineFunctionPrinterPass(&std::cerr));
 
+  PM.add(createSparcV8FPMoverPass(TM));
   PM.add(createSparcV8DelaySlotFillerPass(TM));
 
   // Print machine instructions after filling delay slots.