aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRafael Ávila de Espíndola <[email protected]>2011-03-21 11:11:22 -0400
committerRafael Ávila de Espíndola <[email protected]>2011-03-21 11:11:22 -0400
commit770a49520c2e5b7e369d35174c702bf23e96acb8 (patch)
tree88951100bb56601ea970bd97521a730e3ea2fe76 /src
parents/DSYMUTIL/CFG_DSYMUTIL/ (diff)
downloadrust-770a49520c2e5b7e369d35174c702bf23e96acb8.tar.xz
rust-770a49520c2e5b7e369d35174c702bf23e96acb8.zip
Move calls to PtrToInt out of trans_upcall2.
Diffstat (limited to 'src')
-rw-r--r--src/comp/middle/trans.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs
index 16ee9ae3..0158a5ed 100644
--- a/src/comp/middle/trans.rs
+++ b/src/comp/middle/trans.rs
@@ -856,7 +856,8 @@ fn get_upcall(&hashmap[str, ValueRef] upcalls,
fn trans_upcall(@block_ctxt cx, str name, vec[ValueRef] args) -> result {
auto cxx = cx.fcx.ccx;
- auto t = trans_upcall2(cx.build, cxx.glues, cx.fcx.lltaskptr,
+ auto lltaskptr = cx.build.PtrToInt(cx.fcx.lltaskptr, T_int());
+ auto t = trans_upcall2(cx.build, cxx.glues, lltaskptr,
cxx.upcalls, cxx.tn, cxx.llmod, name, args);
ret res(cx, t);
}
@@ -871,7 +872,7 @@ fn trans_upcall2(builder b, @glue_fns glues, ValueRef lltaskptr,
let ValueRef llglue = glues.upcall_glues.(n);
let vec[ValueRef] call_args = vec(llupcall);
- call_args += vec( b.PtrToInt(lltaskptr, T_int()));
+ call_args += vec( b.ZExtOrBitCast(lltaskptr, T_int()));
for (ValueRef a in args) {
call_args += vec(b.ZExtOrBitCast(a, T_int()));
@@ -5692,8 +5693,9 @@ fn trans_exit_task_glue(@glue_fns glues,
auto entrybb = llvm.LLVMAppendBasicBlock(llfn, _str.buf("entry"));
auto build = new_builder(entrybb);
+ auto tptr = build.PtrToInt(lltaskptr, T_int());
- trans_upcall2(build, glues, lltaskptr,
+ trans_upcall2(build, glues, tptr,
upcalls, tn, llmod, "upcall_exit", V_args);
build.RetVoid();
}