diff options
author | David Sehr <sehr@chromium.org> | 2012-11-13 16:23:57 -0800 |
---|---|---|
committer | David Sehr <sehr@chromium.org> | 2012-11-13 16:23:57 -0800 |
commit | c58bc8e4e567fa86383d3e5da8613f49e39104b6 (patch) | |
tree | 2b79196c779fda8e29ff09c0b608cc646d98f80c /lib/Target/ARM | |
parent | 29274ca957d53f1c3714b91bd8ecee7671a1a531 (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.td | 5 | ||||
-rw-r--r-- | lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp | 5 | ||||
-rw-r--r-- | lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.h | 6 | ||||
-rw-r--r-- | lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp | 2 |
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); |