Skip to content

Commit e687dd5

Browse files
committed
Make lltaskptr a regular argument element in args in calls to trans_upcall2.
1 parent 770a495 commit e687dd5

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/comp/middle/trans.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -857,22 +857,22 @@ fn get_upcall(&hashmap[str, ValueRef] upcalls,
857857
fn trans_upcall(@block_ctxt cx, str name, vec[ValueRef] args) -> result {
858858
auto cxx = cx.fcx.ccx;
859859
auto lltaskptr = cx.build.PtrToInt(cx.fcx.lltaskptr, T_int());
860-
auto t = trans_upcall2(cx.build, cxx.glues, lltaskptr,
861-
cxx.upcalls, cxx.tn, cxx.llmod, name, args);
860+
auto args2 = vec(lltaskptr) + args;
861+
auto t = trans_upcall2(cx.build, cxx.glues,
862+
cxx.upcalls, cxx.tn, cxx.llmod, name, args2);
862863
ret res(cx, t);
863864
}
864865

865-
fn trans_upcall2(builder b, @glue_fns glues, ValueRef lltaskptr,
866+
fn trans_upcall2(builder b, @glue_fns glues,
866867
&hashmap[str, ValueRef] upcalls,
867868
type_names tn, ModuleRef llmod, str name,
868869
vec[ValueRef] args) -> ValueRef {
869-
let int n = (_vec.len[ValueRef](args) as int) + 1;
870+
let int n = (_vec.len[ValueRef](args) as int);
870871
let ValueRef llupcall = get_upcall(upcalls, tn, llmod, name, n);
871872
llupcall = llvm.LLVMConstPointerCast(llupcall, T_int());
872873

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

877877
for (ValueRef a in args) {
878878
call_args += vec(b.ZExtOrBitCast(a, T_int()));
@@ -5694,9 +5694,9 @@ fn trans_exit_task_glue(@glue_fns glues,
56945694
auto entrybb = llvm.LLVMAppendBasicBlock(llfn, _str.buf("entry"));
56955695
auto build = new_builder(entrybb);
56965696
auto tptr = build.PtrToInt(lltaskptr, T_int());
5697-
5698-
trans_upcall2(build, glues, tptr,
5699-
upcalls, tn, llmod, "upcall_exit", V_args);
5697+
auto V_args2 = vec(tptr) + V_args;
5698+
trans_upcall2(build, glues,
5699+
upcalls, tn, llmod, "upcall_exit", V_args2);
57005700
build.RetVoid();
57015701
}
57025702

0 commit comments

Comments
 (0)