Skip to content

Commit 770a495

Browse files
committed
Move calls to PtrToInt out of trans_upcall2.
1 parent 26ec883 commit 770a495

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/comp/middle/trans.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -856,7 +856,8 @@ fn get_upcall(&hashmap[str, ValueRef] upcalls,
856856

857857
fn trans_upcall(@block_ctxt cx, str name, vec[ValueRef] args) -> result {
858858
auto cxx = cx.fcx.ccx;
859-
auto t = trans_upcall2(cx.build, cxx.glues, cx.fcx.lltaskptr,
859+
auto lltaskptr = cx.build.PtrToInt(cx.fcx.lltaskptr, T_int());
860+
auto t = trans_upcall2(cx.build, cxx.glues, lltaskptr,
860861
cxx.upcalls, cxx.tn, cxx.llmod, name, args);
861862
ret res(cx, t);
862863
}
@@ -871,7 +872,7 @@ fn trans_upcall2(builder b, @glue_fns glues, ValueRef lltaskptr,
871872

872873
let ValueRef llglue = glues.upcall_glues.(n);
873874
let vec[ValueRef] call_args = vec(llupcall);
874-
call_args += vec( b.PtrToInt(lltaskptr, T_int()));
875+
call_args += vec( b.ZExtOrBitCast(lltaskptr, T_int()));
875876

876877
for (ValueRef a in args) {
877878
call_args += vec(b.ZExtOrBitCast(a, T_int()));
@@ -5692,8 +5693,9 @@ fn trans_exit_task_glue(@glue_fns glues,
56925693

56935694
auto entrybb = llvm.LLVMAppendBasicBlock(llfn, _str.buf("entry"));
56945695
auto build = new_builder(entrybb);
5696+
auto tptr = build.PtrToInt(lltaskptr, T_int());
56955697

5696-
trans_upcall2(build, glues, lltaskptr,
5698+
trans_upcall2(build, glues, tptr,
56975699
upcalls, tn, llmod, "upcall_exit", V_args);
56985700
build.RetVoid();
56995701
}

0 commit comments

Comments
 (0)