From 35573144c59c747d572dee31975d61faf7b1eaef Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Sat, 9 Apr 2011 00:54:46 +0000 Subject: Remove silly legacy glue-offset encoding, predicate runtime adjustments by ABI. LLVM should inline most glue now. --- src/rt/rust_crate_cache.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/rt/rust_crate_cache.cpp') diff --git a/src/rt/rust_crate_cache.cpp b/src/rt/rust_crate_cache.cpp index f9cc400d76b..6c498b320f1 100644 --- a/src/rt/rust_crate_cache.cpp +++ b/src/rt/rust_crate_cache.cpp @@ -221,12 +221,14 @@ rust_crate_cache::get_type_desc(size_t size, // FIXME (issue #136): Below is a miscalculation. td->is_stateful |= descs[i]->is_stateful; } - adjust_disp(td->copy_glue_off, descs[0], td); - adjust_disp(td->drop_glue_off, descs[0], td); - adjust_disp(td->free_glue_off, descs[0], td); - adjust_disp(td->mark_glue_off, descs[0], td); - adjust_disp(td->sever_glue_off, descs[0], td); - adjust_disp(td->obj_drop_glue_off, descs[0], td); + if (crate->abi_tag == ABI_X86_RUSTBOOT_CDECL) { + adjust_disp(td->copy_glue_off, descs[0], td); + adjust_disp(td->drop_glue_off, descs[0], td); + adjust_disp(td->free_glue_off, descs[0], td); + adjust_disp(td->mark_glue_off, descs[0], td); + adjust_disp(td->sever_glue_off, descs[0], td); + adjust_disp(td->obj_drop_glue_off, descs[0], td); + } HASH_ADD(hh, this->type_descs, descs, keysz, td); return td; } -- cgit 1.4.1-3-g733a5