aboutsummaryrefslogtreecommitdiff
path: root/src/boot/be
diff options
context:
space:
mode:
authorRoy Frostig <[email protected]>2010-07-16 12:23:46 -0700
committerRoy Frostig <[email protected]>2010-07-16 12:23:46 -0700
commit700e522dffae89feeeb430739f10c234c6f14703 (patch)
tree6a14f2662acb417fc882be3b82bf1f719810a5f9 /src/boot/be
parentClean up nomenclature in the Abi constants brigade. Purge magic GEP numbers ... (diff)
downloadrust-700e522dffae89feeeb430739f10c234c6f14703.tar.xz
rust-700e522dffae89feeeb430739f10c234c6f14703.zip
More renaming of GEP offsets in abi/trans. This should settle it. Also, fix some overenthusiastic renaming in previous commit.
Diffstat (limited to 'src/boot/be')
-rw-r--r--src/boot/be/abi.ml15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/boot/be/abi.ml b/src/boot/be/abi.ml
index 3de553f2..3f97f0dd 100644
--- a/src/boot/be/abi.ml
+++ b/src/boot/be/abi.ml
@@ -45,15 +45,20 @@ let stk_field_valgrind_id = 0 + 1;;
let stk_field_limit = stk_field_valgrind_id + 1;;
let stk_field_data = stk_field_limit + 1;;
-let obj_elt_vtbl = 0;;
-let obj_elt_body_box = 1;;
+(* Both obj and fn are two-word "bindings": One word points to some
+ * static dispatch information (vtbl or thunk), and the other points to
+ * some bag of bound data (object-body or closure). *)
+let binding_field_dispatch = 0;;
+let binding_field_bound_data = 1;;
+
+let obj_field_vtbl = binding_field_dispatch;;
+let obj_field_body_box = binding_field_bound_data;;
let obj_body_elt_tydesc = 0;;
let obj_body_elt_fields = 1;;
-let fn_elt_thunk = 0;;
-let fn_elt_closure = 1;;
-
+let fn_field_thunk = binding_field_dispatch;;
+let fn_field_closure = binding_field_bound_data;;
let closure_elt_rc = 0;;
let closure_elt_target = 1;;
let closure_elt_bound_args = 2;;