mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-05 09:31:03 +03:00
Prepare generic x86 TargetABI for proper MSVC support
Based on Rainer's work in
3e36652c2c
This commit is contained in:
parent
5fce371c91
commit
e7f26a94b0
7 changed files with 21 additions and 9 deletions
|
@ -29,11 +29,15 @@ struct X86TargetABI : TargetABI {
|
|||
: isOSX(global.params.isOSX),
|
||||
isMSVC(global.params.targetTriple.isWindowsMSVCEnvironment()) {}
|
||||
|
||||
llvm::CallingConv::ID callingConv(llvm::FunctionType *ft, LINK l) override {
|
||||
llvm::CallingConv::ID callingConv(llvm::FunctionType *ft, LINK l,
|
||||
FuncDeclaration *fdecl = nullptr) override {
|
||||
switch (l) {
|
||||
case LINKc:
|
||||
case LINKcpp:
|
||||
return llvm::CallingConv::C;
|
||||
case LINKcpp:
|
||||
return isMSVC && !ft->isVarArg() && fdecl && fdecl->isThis()
|
||||
? llvm::CallingConv::X86_ThisCall
|
||||
: llvm::CallingConv::C;
|
||||
case LINKd:
|
||||
case LINKdefault:
|
||||
case LINKpascal:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue