[mips] Compute stack alignment on the fly.
authorAkira Hatanaka <ahatanaka@mips.com>
Wed, 30 Oct 2013 02:29:43 +0000 (02:29 +0000)
committerAkira Hatanaka <ahatanaka@mips.com>
Wed, 30 Oct 2013 02:29:43 +0000 (02:29 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193673 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Mips/Mips.td
lib/Target/Mips/MipsSubtarget.cpp
lib/Target/Mips/MipsSubtarget.h

index 0581d84a054e6a591eb6e725dfe966fa0fd24b45..b8e3f39256da07d123a975adbe5d4443f7ccfcc0 100644 (file)
@@ -30,12 +30,10 @@ def MipsInstrInfo : InstrInfo;
 // Mips Subtarget features                                                    //
 //===----------------------------------------------------------------------===//
 
-def StackAlign16 : SubtargetFeature<"stackalign16", "StackAlignment", "16",
-                                    "Set stack alignment to 16-bytes.">;
 def FeatureGP64Bit     : SubtargetFeature<"gp64", "IsGP64bit", "true",
                                 "General Purpose Registers are 64-bit wide.">;
 def FeatureFP64Bit     : SubtargetFeature<"fp64", "IsFP64bit", "true",
-                                "Support 64-bit FP registers.", [StackAlign16]>;
+                                "Support 64-bit FP registers.">;
 def FeatureSingleFloat : SubtargetFeature<"single-float", "IsSingleFloat",
                                 "true", "Only supports single precision float">;
 def FeatureO32         : SubtargetFeature<"o32", "MipsABI", "O32",
index 07957ef61bedffc56dcf22d1f06ad9fa1fc7ed32..0a81072b085817d4fe8f37716c5b3709af2c76f0 100644 (file)
@@ -72,7 +72,7 @@ MipsSubtarget::MipsSubtarget(const std::string &TT, const std::string &CPU,
   InMips16Mode(false), InMips16HardFloat(Mips16HardFloat),
   InMicroMipsMode(false), HasDSP(false), HasDSPR2(false),
   AllowMixed16_32(Mixed16_32 | Mips_Os16), Os16(Mips_Os16), HasMSA(false),
-  StackAlignment(8), RM(_RM), OverrideMode(NoOverride), TM(_TM)
+  RM(_RM), OverrideMode(NoOverride), TM(_TM)
 {
   std::string CPUName = CPU;
   if (CPUName.empty())
index 378fc00f4527721e9f946d6836844dea144eb607..7c175537a725b7d5052697a8c7e844ec2a4aa677 100644 (file)
@@ -116,8 +116,6 @@ protected:
   // HasMSA -- supports MSA ASE.
   bool HasMSA;
 
-  unsigned StackAlignment;
-
   InstrItineraryData InstrItins;
 
   // The instance to the register info section object
@@ -219,7 +217,7 @@ public:
 //
 static bool useConstantIslands();
 
-  unsigned stackAlignment() const { return StackAlignment; }
+  unsigned stackAlignment() const { return isFP64bit() ? 16 : 8; }
 
   // Grab MipsRegInfo object
   const MipsReginfo &getMReginfo() const { return MRI; }