diff options
| author | Rafael Ávila de Espíndola <[email protected]> | 2011-03-21 11:11:22 -0400 |
|---|---|---|
| committer | Rafael Ávila de Espíndola <[email protected]> | 2011-03-21 11:11:22 -0400 |
| commit | 770a49520c2e5b7e369d35174c702bf23e96acb8 (patch) | |
| tree | 88951100bb56601ea970bd97521a730e3ea2fe76 /src/comp/middle | |
| parent | s/DSYMUTIL/CFG_DSYMUTIL/ (diff) | |
| download | rust-770a49520c2e5b7e369d35174c702bf23e96acb8.tar.xz rust-770a49520c2e5b7e369d35174c702bf23e96acb8.zip | |
Move calls to PtrToInt out of trans_upcall2.
Diffstat (limited to 'src/comp/middle')
| -rw-r--r-- | src/comp/middle/trans.rs | 8 |
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(); } |