Index: lib/Target/ARM/ARM.td =================================================================== --- lib/Target/ARM/ARM.td +++ lib/Target/ARM/ARM.td @@ -188,6 +188,10 @@ "Don't use movt/movw pairs for 32-bit " "imms">; +def FeatureLong64 : SubtargetFeature<"long64", "UseLong64", + "true", + "long type is forced to be 64-bit">; + //===----------------------------------------------------------------------===// // ARM ISAa. Index: lib/Target/ARM/ARMSubtarget.h =================================================================== --- lib/Target/ARM/ARMSubtarget.h +++ lib/Target/ARM/ARMSubtarget.h @@ -237,6 +237,9 @@ /// Target machine allowed unsafe FP math (such as use of NEON fp) bool UnsafeFPMath; + /// Force long to be 64-bit type + bool UseLong64; + /// UseSjLjEH - If true, the target uses SjLj exception handling (e.g. iOS). bool UseSjLjEH; Index: lib/Target/ARM/ARMSubtarget.cpp =================================================================== --- lib/Target/ARM/ARMSubtarget.cpp +++ lib/Target/ARM/ARMSubtarget.cpp @@ -157,6 +157,7 @@ UseNaClTrap = false; GenLongCalls = false; UnsafeFPMath = false; + UseLong64 = false; HasV7Clrex = false; HasAcquireRelease = false;