diff options
author | dim <dim@FreeBSD.org> | 2012-10-10 21:37:21 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2012-10-10 21:37:21 +0000 |
commit | 181fd8e457cf876d0944c1736fafce944d874bd9 (patch) | |
tree | ed6249b71b01a87646940c026cac6d822982113f /contrib/llvm/include | |
parent | 38198ecb8af50337c780a861dae2d99add15e451 (diff) | |
download | FreeBSD-src-181fd8e457cf876d0944c1736fafce944d874bd9.zip FreeBSD-src-181fd8e457cf876d0944c1736fafce944d874bd9.tar.gz |
Pull in r164132 from upstream llvm trunk:
When creating MCAsmBackend pass the CPU string as well. In X86AsmBackend
store this and use it to not emit long nops when the CPU is geode which
doesnt support them.
Fixes PR11212.
Pull in r164133 from upstream clang trunk:
Follow up on llvm r164132.
This should prevent illegal instructions when building world on Geode
CPUs (e.g. Soekris).
MFC after: 3 days
Diffstat (limited to 'contrib/llvm/include')
-rw-r--r-- | contrib/llvm/include/llvm/Support/TargetRegistry.h | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/contrib/llvm/include/llvm/Support/TargetRegistry.h b/contrib/llvm/include/llvm/Support/TargetRegistry.h index c0be8f1..8253c4c 100644 --- a/contrib/llvm/include/llvm/Support/TargetRegistry.h +++ b/contrib/llvm/include/llvm/Support/TargetRegistry.h @@ -93,7 +93,9 @@ namespace llvm { CodeGenOpt::Level OL); typedef AsmPrinter *(*AsmPrinterCtorTy)(TargetMachine &TM, MCStreamer &Streamer); - typedef MCAsmBackend *(*MCAsmBackendCtorTy)(const Target &T, StringRef TT); + typedef MCAsmBackend *(*MCAsmBackendCtorTy)(const Target &T, + StringRef TT, + StringRef CPU); typedef MCTargetAsmLexer *(*MCAsmLexerCtorTy)(const Target &T, const MCRegisterInfo &MRI, const MCAsmInfo &MAI); @@ -353,10 +355,10 @@ namespace llvm { /// /// \arg Triple - The target triple string. /// \arg Backend - The target independent assembler object. - MCAsmBackend *createMCAsmBackend(StringRef Triple) const { + MCAsmBackend *createMCAsmBackend(StringRef Triple, StringRef CPU) const { if (!MCAsmBackendCtorFn) return 0; - return MCAsmBackendCtorFn(*this, Triple); + return MCAsmBackendCtorFn(*this, Triple, CPU); } /// createMCAsmLexer - Create a target specific assembly lexer. @@ -1063,8 +1065,9 @@ namespace llvm { } private: - static MCAsmBackend *Allocator(const Target &T, StringRef Triple) { - return new MCAsmBackendImpl(T, Triple); + static MCAsmBackend *Allocator(const Target &T, StringRef Triple, + StringRef CPU) { + return new MCAsmBackendImpl(T, Triple, CPU); } }; |