Mercurial > projects > ldc
comparison gen/tocall.cpp @ 526:642f6fa854e5
First step towards D abi compliance.
Framepointer elimination is now disabled for functions using inline asm (with a hack from aKor).
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Tue, 19 Aug 2008 20:18:01 +0200 |
parents | 993b217af574 |
children | d30c40f1128d |
comparison
equal
deleted
inserted
replaced
525:b18b6135e54b | 526:642f6fa854e5 |
---|---|
35 unsigned DtoCallingConv(LINK l) | 35 unsigned DtoCallingConv(LINK l) |
36 { | 36 { |
37 if (l == LINKc || l == LINKcpp) | 37 if (l == LINKc || l == LINKcpp) |
38 return llvm::CallingConv::C; | 38 return llvm::CallingConv::C; |
39 else if (l == LINKd || l == LINKdefault) | 39 else if (l == LINKd || l == LINKdefault) |
40 return llvm::CallingConv::Fast; | 40 { |
41 if (global.params.cpu == ARCHx86) | |
42 return llvm::CallingConv::X86_StdCall; | |
43 else | |
44 return llvm::CallingConv::Fast; | |
45 } | |
41 else if (l == LINKwindows) | 46 else if (l == LINKwindows) |
42 return llvm::CallingConv::X86_StdCall; | 47 return llvm::CallingConv::X86_StdCall; |
43 else | 48 else |
44 assert(0 && "Unsupported calling convention"); | 49 assert(0 && "Unsupported calling convention"); |
45 } | 50 } |