diff options
| author | Graydon Hoare <graydon@mozilla.com> | 2011-04-09 00:54:46 +0000 |
|---|---|---|
| committer | Graydon Hoare <graydon@mozilla.com> | 2011-04-09 00:54:46 +0000 |
| commit | 35573144c59c747d572dee31975d61faf7b1eaef (patch) | |
| tree | 439200e09161aae14e1aaea3e1eb50d91a1c5038 /src/rt/rust_crate_cache.cpp | |
| parent | 19ebc0f376eb4c1128ba8e43be42ab2c41292eae (diff) | |
| download | rust-35573144c59c747d572dee31975d61faf7b1eaef.tar.gz rust-35573144c59c747d572dee31975d61faf7b1eaef.zip | |
Remove silly legacy glue-offset encoding, predicate runtime adjustments by ABI. LLVM should inline most glue now.
Diffstat (limited to 'src/rt/rust_crate_cache.cpp')
| -rw-r--r-- | src/rt/rust_crate_cache.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
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; } |
