diff options
| author | Brian Anderson <banderson@mozilla.com> | 2011-07-18 13:14:33 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2011-07-18 13:56:15 -0700 |
| commit | c40d6265ce2ae093b3bb9e15177f60b375a158fa (patch) | |
| tree | 6e189545311d1b6e2c46a3aa0cd4b623327dfd44 /src/comp/lib/llvm.rs | |
| parent | 682875929efe558b42318d6ae8b2ef8dc625e94a (diff) | |
| download | rust-c40d6265ce2ae093b3bb9e15177f60b375a158fa.tar.gz rust-c40d6265ce2ae093b3bb9e15177f60b375a158fa.zip | |
Support x86 stdcall convention
This allows rust to call the Win32 API
Diffstat (limited to 'src/comp/lib/llvm.rs')
| -rw-r--r-- | src/comp/lib/llvm.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/comp/lib/llvm.rs b/src/comp/lib/llvm.rs index 2f0abed3d27..bb7dd4f2621 100644 --- a/src/comp/lib/llvm.rs +++ b/src/comp/lib/llvm.rs @@ -1314,6 +1314,15 @@ obj builder(BuilderRef B, @mutable bool terminated) { ret v; } + fn CallWithConv(ValueRef Fn, &ValueRef[] Args, + uint Conv) -> ValueRef { + assert !(*terminated); + auto v = llvm::LLVMBuildCall(B, Fn, ivec::to_ptr(Args), + ivec::len(Args), str::buf("")); + llvm::LLVMSetInstructionCallConv(v, Conv); + ret v; + } + fn Select(ValueRef If, ValueRef Then, ValueRef Else) -> ValueRef { assert (!*terminated); ret llvm::LLVMBuildSelect(B, If, Then, Else, str::buf("")); |
