about summary refs log tree commit diff
path: root/src/comp/lib
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2010-11-14 13:41:10 -0800
committerGraydon Hoare <graydon@mozilla.com>2010-11-14 13:41:10 -0800
commita352efadad7271798848c6ef4a22d8de7c8eba3a (patch)
tree13e38ac987a13c1b5cf27d1c949275af68808c36 /src/comp/lib
parent4cbef9d8a1f5d894325c252a70429116c24d5364 (diff)
downloadrust-a352efadad7271798848c6ef4a22d8de7c8eba3a.tar.gz
rust-a352efadad7271798848c6ef4a22d8de7c8eba3a.zip
Switch upcall glues to fastcall as well.
Diffstat (limited to 'src/comp/lib')
-rw-r--r--src/comp/lib/llvm.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/comp/lib/llvm.rs b/src/comp/lib/llvm.rs
index 0cd177a406d..da48c6b5d4d 100644
--- a/src/comp/lib/llvm.rs
+++ b/src/comp/lib/llvm.rs
@@ -1026,6 +1026,15 @@ obj builder(BuilderRef B) {
                                _str.buf(""));
     }
 
+    fn FastCall(ValueRef Fn, vec[ValueRef] Args) -> ValueRef {
+        auto v = llvm.LLVMBuildCall(B, Fn,
+                                    _vec.buf[ValueRef](Args),
+                                    _vec.len[ValueRef](Args),
+                                    _str.buf(""));
+        llvm.LLVMSetInstructionCallConv(v, LLVMFastCallConv);
+        ret v;
+    }
+
     fn Select(ValueRef If, ValueRef Then, ValueRef Else) -> ValueRef {
         ret llvm.LLVMBuildSelect(B, If, Then, Else, _str.buf(""));
     }