aboutsummaryrefslogtreecommitdiff
path: root/src/comp/back
diff options
context:
space:
mode:
authorPatrick Walton <[email protected]>2010-12-20 10:23:37 -0800
committerPatrick Walton <[email protected]>2010-12-20 10:23:37 -0800
commita7e9984999121c84c92a3236f29d4edf649e9431 (patch)
treed5b9ca02c255a0ea3ed9de5338041f4b1cf8ead8 /src/comp/back
parentrustc: Remove the unused "name" parameter from trans.new_builder (diff)
downloadrust-a7e9984999121c84c92a3236f29d4edf649e9431.tar.xz
rust-a7e9984999121c84c92a3236f29d4edf649e9431.zip
rustc: Build tydescs for types, and make all take and drop operations go through the tydescs for simplicity (LLVM inlines them).
Diffstat (limited to 'src/comp/back')
-rw-r--r--src/comp/back/abi.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/comp/back/abi.rs b/src/comp/back/abi.rs
index 7f0ced61..fc44440a 100644
--- a/src/comp/back/abi.rs
+++ b/src/comp/back/abi.rs
@@ -28,6 +28,17 @@ const int vec_elt_alloc = 1;
const int vec_elt_fill = 2;
const int vec_elt_data = 3;
+const int tydesc_field_first_param = 0;
+const int tydesc_field_size = 1;
+const int tydesc_field_align = 2;
+const int tydesc_field_copy_glue_off = 3;
+const int tydesc_field_drop_glue_off = 4;
+const int tydesc_field_free_glue_off = 5;
+const int tydesc_field_sever_glue_off = 6;
+const int tydesc_field_mark_glue_off = 7;
+const int tydesc_field_obj_drop_glue_off = 8;
+const int tydesc_field_is_stateful = 9;
+
/* Both obj and fn are two-word "bindings": One word points to some static
* dispatch information (vtbl, thunk, callee), and the other points to some