1
Fork 0

Make tydesc glue functions use cdecl.

This commit is contained in:
Michael Sullivan 2011-06-14 15:54:58 -07:00
parent 5378f48a03
commit ccd1bcf7a7
2 changed files with 12 additions and 12 deletions

View file

@ -1971,7 +1971,7 @@ fn declare_generic_glue(&@local_ctxt cx,
fn_nm = mangle_internal_name_by_seq(cx.ccx, fn_nm = mangle_internal_name_by_seq(cx.ccx,
"glue_" + name); "glue_" + name);
} }
auto llfn = decl_fastcall_fn(cx.ccx.llmod, fn_nm, llfnty); auto llfn = decl_cdecl_fn(cx.ccx.llmod, fn_nm, llfnty);
set_glue_inlining(cx, llfn, t); set_glue_inlining(cx, llfn, t);
ret llfn; ret llfn;
} }
@ -3232,11 +3232,11 @@ fn call_tydesc_glue_full(&@block_ctxt cx, ValueRef v,
auto llfnptr = cx.build.GEP(tydesc, [C_int(0), C_int(field)]); auto llfnptr = cx.build.GEP(tydesc, [C_int(0), C_int(field)]);
auto llfn = cx.build.Load(llfnptr); auto llfn = cx.build.Load(llfnptr);
cx.build.FastCall(llfn, [C_null(T_ptr(T_nil())), cx.build.Call(llfn, [C_null(T_ptr(T_nil())),
cx.fcx.lltaskptr, cx.fcx.lltaskptr,
C_null(T_ptr(T_nil())), C_null(T_ptr(T_nil())),
lltydescs, lltydescs,
llrawptr]); llrawptr]);
} }
fn call_tydesc_glue(&@block_ctxt cx, ValueRef v, fn call_tydesc_glue(&@block_ctxt cx, ValueRef v,
@ -3311,7 +3311,7 @@ fn call_cmp_glue(&@block_ctxt cx,
llrawrhsptr, llrawrhsptr,
llop]; llop];
r.bcx.build.FastCall(llfn, llargs); r.bcx.build.Call(llfn, llargs);
ret res(r.bcx, r.bcx.build.Load(llcmpresultptr)); ret res(r.bcx, r.bcx.build.Load(llcmpresultptr));
} }

View file

@ -206,11 +206,11 @@ struct rust_timer {
#include "rust_util.h" #include "rust_util.h"
typedef void FASTCALL (glue_fn)(void *, rust_task *, void *, typedef void CDECL (glue_fn)(void *, rust_task *, void *,
const type_desc **, void *); const type_desc **, void *);
typedef void FASTCALL (cmp_glue_fn)(void *, rust_task *, void *, typedef void CDECL (cmp_glue_fn)(void *, rust_task *, void *,
const type_desc **, const type_desc **,
void *, void *, int8_t); void *, void *, int8_t);
struct type_desc { struct type_desc {