aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/ARM
diff options
context:
space:
mode:
authorDavid Sehr <sehr@chromium.org>2012-11-13 16:23:57 -0800
committerDavid Sehr <sehr@chromium.org>2012-11-13 16:23:57 -0800
commitc58bc8e4e567fa86383d3e5da8613f49e39104b6 (patch)
tree2b79196c779fda8e29ff09c0b608cc646d98f80c /lib/Target/ARM
parent29274ca957d53f1c3714b91bd8ecee7671a1a531 (diff)
Fix thumb2 jump relocation test
Enable return address stack feature Use DwarfCFI only for NaCl BUG= http://code.google.com/p/nativeclient/issues/detail?id=3124 TEST=thumb_jump24_fixup.ll Review URL: https://codereview.chromium.org/11360241
Diffstat (limited to 'lib/Target/ARM')
-rw-r--r--lib/Target/ARM/ARM.td5
-rw-r--r--lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp5
-rw-r--r--lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.h6
-rw-r--r--lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp2
4 files changed, 11 insertions, 7 deletions
diff --git a/lib/Target/ARM/ARM.td b/lib/Target/ARM/ARM.td
index 00bf1b85ec..5c56b2dc47 100644
--- a/lib/Target/ARM/ARM.td
+++ b/lib/Target/ARM/ARM.td
@@ -222,8 +222,9 @@ def : Processor<"arm1156t2f-s", ARMV6Itineraries, [HasV6T2Ops, FeatureVFP2,
def : ProcessorModel<"cortex-a8", CortexA8Model,
// @LOCALMOD-BEGIN
// TODO(pdox): Resolve this mismatch.
- [ProcA8, HasV7Ops, FeatureDB]>;
-// FeatureNEON, FeatureDSPThumb2, FeatureHasRAS]>;
+ [ProcA8, HasV7Ops, FeatureDB,
+// FeatureNEON,
+ FeatureDSPThumb2, FeatureHasRAS]>;
// @LOCALMOD-END
def : ProcessorModel<"cortex-a9", CortexA9Model,
diff --git a/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp b/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
index b94f963507..c1aab9c72c 100644
--- a/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
+++ b/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
@@ -57,9 +57,4 @@ ARMELFMCAsmInfo::ARMELFMCAsmInfo() {
// Exceptions handling
if (EnableARMEHABI)
ExceptionsType = ExceptionHandling::ARM;
-
- // @LOCALMOD-BEGIN
- // Exceptions handling
- ExceptionsType = ExceptionHandling::DwarfCFI;
- // @LOCALMOD-END
}
diff --git a/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.h b/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.h
index f0b289c6f3..059ee99f1c 100644
--- a/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.h
+++ b/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.h
@@ -28,6 +28,12 @@ namespace llvm {
virtual void anchor();
public:
explicit ARMELFMCAsmInfo();
+ // @LOCALMOD-BEGIN
+ // Exceptions handling
+ void setExceptionsType(ExceptionHandling::ExceptionsType ExType) {
+ ExceptionsType = ExType;
+ }
+ // @LOCALMOD-END
};
} // namespace llvm
diff --git a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
index d6ce86c736..7a57e40a17 100644
--- a/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
+++ b/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
@@ -163,6 +163,8 @@ static MCAsmInfo *createARMMCAsmInfo(const Target &T, StringRef TT) {
// @LOCALMOD-BEGIN
ARMELFMCAsmInfo *MAI = new ARMELFMCAsmInfo();
if (TheTriple.getOS() == Triple::NativeClient) {
+ // NativeClient uses Dwarf exception handling
+ MAI->setExceptionsType(ExceptionHandling::DwarfCFI);
// Initial state of the frame ARM:SP points to cfa
MachineLocation Dst(MachineLocation::VirtualFP);
MachineLocation Src(ARM::SP, 0);