| Index: lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
 | 
| diff --git a/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp b/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
 | 
| index 7a19208cffc722b4e77492576a9eacd05575e6d9..da85359c78f681776d45f82c967816c97475aece 100644
 | 
| --- a/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
 | 
| +++ b/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
 | 
| @@ -17,6 +17,15 @@
 | 
|  
 | 
|  using namespace llvm;
 | 
|  
 | 
| +// @LOCALMOD-BEGIN
 | 
| +namespace llvm {
 | 
| +cl::opt<bool>
 | 
| +EnableARMDwarfEH("arm-enable-dwarf-eh",
 | 
| +                 cl::desc("Use DWARF EH instead of EABI EH on ARM"),
 | 
| +                 cl::init(false));
 | 
| +}
 | 
| +// @LOCALMOD-END
 | 
| +
 | 
|  void ARMMCAsmInfoDarwin::anchor() { }
 | 
|  
 | 
|  ARMMCAsmInfoDarwin::ARMMCAsmInfoDarwin(StringRef TT) {
 | 
| @@ -61,12 +70,16 @@ ARMELFMCAsmInfo::ARMELFMCAsmInfo(StringRef TT) {
 | 
|    // Exceptions handling
 | 
|    switch (TheTriple.getOS()) {
 | 
|    case Triple::NetBSD:
 | 
| +  case Triple::NaCl: // @LOCALMOD: NaCl uses DWARF EH
 | 
|      ExceptionsType = ExceptionHandling::DwarfCFI;
 | 
|      break;
 | 
|    default:
 | 
|      ExceptionsType = ExceptionHandling::ARM;
 | 
|      break;
 | 
|    }
 | 
| +  // @LOCALMOD: NonSFI mode uses DWARF EH
 | 
| +  if (EnableARMDwarfEH)
 | 
| +    ExceptionsType = ExceptionHandling::DwarfCFI;
 | 
|  
 | 
|    // foo(plt) instead of foo@plt
 | 
|    UseParensForSymbolVariant = true;
 | 
| @@ -111,4 +124,3 @@ ARMCOFFMCAsmInfoGNU::ARMCOFFMCAsmInfoGNU() {
 | 
|    UseIntegratedAssembler = false;
 | 
|    DwarfRegNumForCFI = true;
 | 
|  }
 | 
| -
 | 
| 
 |