Cause the mips16/nomips16 attribute to be passed to LLVM from Clang
in the LLVM assembly language output. llvm-svn: 176971
This commit is contained in:
parent
74fc23fa5d
commit
3d5966f31b
|
@ -4321,11 +4321,17 @@ public:
|
|||
|
||||
void SetTargetAttributes(const Decl *D, llvm::GlobalValue *GV,
|
||||
CodeGen::CodeGenModule &CGM) const {
|
||||
//
|
||||
// can fill this in when new attribute work in llvm is done.
|
||||
// attributes mips16 and nomips16 need to be handled here.
|
||||
//
|
||||
const FunctionDecl *FD = dyn_cast<FunctionDecl>(D);
|
||||
if (!FD) return;
|
||||
llvm::Function *Fn = cast<llvm::Function>(GV);
|
||||
if (FD->hasAttr<Mips16Attr>()) {
|
||||
Fn->addFnAttr("mips16");
|
||||
}
|
||||
else if (FD->hasAttr<NoMips16Attr>()) {
|
||||
Fn->addFnAttr("nomips16");
|
||||
}
|
||||
}
|
||||
|
||||
bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
|
||||
llvm::Value *Address) const;
|
||||
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
// RUN: %clang_cc1 -triple mipsel-linux-gnu -emit-llvm -o - %s | FileCheck %s
|
||||
void __attribute__((mips16)) foo (void) {
|
||||
|
||||
}
|
||||
|
||||
// CHECK: define void @foo() [[MIPS16:#[0-9]+]]
|
||||
|
||||
void __attribute__((nomips16)) nofoo (void) {
|
||||
|
||||
}
|
||||
|
||||
// CHECK: define void @nofoo() [[NOMIPS16:#[0-9]+]]
|
||||
|
||||
// CHECK: attributes [[MIPS16]] = { nounwind "fp-contract-model"="standard" "mips16" {{.*}} }
|
||||
|
||||
// CHECK: attributes [[NOMIPS16]] = { nounwind "fp-contract-model"="standard" "nomips16" {{.*}} }
|
||||
|
Loading…
Reference in New Issue