diff options
| author | Tim Northover <tnorthover@apple.com> | 2014-04-03 07:06:13 +0000 | 
|---|---|---|
| committer | Tim Northover <tnorthover@apple.com> | 2014-04-03 07:06:13 +0000 | 
| commit | c7c6a9370490acb1a4c158e2227f0cdda7d08cb8 (patch) | |
| tree | eae046b7fb20cb5252d8a8488734fe2cd08c6706 /llvm/lib | |
| parent | f51ee3c416a05a138e22d87aec8b6bbf19969c8a (diff) | |
| download | bcm5719-llvm-c7c6a9370490acb1a4c158e2227f0cdda7d08cb8.tar.gz bcm5719-llvm-c7c6a9370490acb1a4c158e2227f0cdda7d08cb8.zip | |
ARM64: don't generate __sincos_stret calls unless on MachO
This should fix PR19314.
llvm-svn: 205514
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/ARM64/ARM64ISelLowering.cpp | 15 | 
1 files changed, 10 insertions, 5 deletions
| diff --git a/llvm/lib/Target/ARM64/ARM64ISelLowering.cpp b/llvm/lib/Target/ARM64/ARM64ISelLowering.cpp index 956c57a6495..8164e6d2967 100644 --- a/llvm/lib/Target/ARM64/ARM64ISelLowering.cpp +++ b/llvm/lib/Target/ARM64/ARM64ISelLowering.cpp @@ -351,11 +351,16 @@ ARM64TargetLowering::ARM64TargetLowering(ARM64TargetMachine &TM)    setOperationAction(ISD::PREFETCH, MVT::Other, Custom); -  // For iOS, we don't want to the normal expansion of a libcall to -  // sincos. We want to issue a libcall to __sincos_stret to avoid memory -  // traffic. -  setOperationAction(ISD::FSINCOS, MVT::f64, Custom); -  setOperationAction(ISD::FSINCOS, MVT::f32, Custom); +  if (Subtarget->isTargetMachO()) { +    // For iOS, we don't want to the normal expansion of a libcall to +    // sincos. We want to issue a libcall to __sincos_stret to avoid memory +    // traffic. +    setOperationAction(ISD::FSINCOS, MVT::f64, Custom); +    setOperationAction(ISD::FSINCOS, MVT::f32, Custom); +  } else { +    setOperationAction(ISD::FSINCOS, MVT::f64, Expand); +    setOperationAction(ISD::FSINCOS, MVT::f32, Expand); +  }    // ARM64 does not have floating-point extending loads, i1 sign-extending load,    // floating-point truncating stores, or v2i32->v2i16 truncating store. | 

