asmLeadingUnderscore(false), asmAlignmentIsInBytes(false),
asmPrintDotLocalConstants(false), asmPrintDotLCommConstants(false),
asmPrintConstantAlignment(false) {
- // Declare a boolean for each platform
+ // Declare a boolean for each major platform.
bool forCygwin = false;
bool forDarwin = false;
bool forWindows = false;
#elif defined(__APPLE__)
forDarwin = true;
#elif defined(_WIN32)
- forWindws = true;
+ forWindows = true;
#endif
}
if (forCygwin) {
asmLeadingUnderscore = true;
- }
- if (forDarwin) {
+ } else if (forDarwin) {
stackAlignment = 16;
indirectExternAndWeakGlobals = true;
asmDarwinLinkerStubs = true;
asmLeadingUnderscore = true;
asmPrintDotLCommConstants = true;
- }
- if (forWindows) {
+ } else if (forWindows) {
}
}
class X86Subtarget : public TargetSubtarget {
protected:
- /// Used by the target machine to set up the target frame info
+ /// stackAlignment - The minimum alignment known to hold of the stack frame on
+ /// entry to the function and which must be maintained by every function.
unsigned stackAlignment;
/// Used by instruction selector
/// of the specified module.
///
X86Subtarget(const Module &M);
-
- /// Returns the preferred stack alignment for the current target triple, or
- /// the default if no target triple is set.
+
+ /// getStackAlignment - Returns the minimum alignment known to hold of the
+ /// stack frame on entry to the function and which must be maintained by every
+ /// function for this subtarget.
unsigned getStackAlignment() const { return stackAlignment; }
/// Returns true if the instruction selector should treat global values
/// referencing external or weak symbols as indirect rather than direct
/// references.
- bool getIndirectExternAndWeakGlobals() const {
- return indirectExternAndWeakGlobals; }
+ bool getIndirectExternAndWeakGlobals() const {
+ return indirectExternAndWeakGlobals;
+ }
};
} // End llvm namespace