@@ -890,7 +890,7 @@ let trans_visitor
890
890
let sorted_idents = sorted_htab_keys fns in
891
891
let i = arr_idx sorted_idents id in
892
892
let fn_ty = Hashtbl. find fns id in
893
- let table_ptr = get_element_ptr obj_cell Abi. obj_elt_vtbl in
893
+ let table_ptr = get_element_ptr obj_cell Abi. obj_field_vtbl in
894
894
(get_vtbl_entry_idx table_ptr i, fn_ty)
895
895
in
896
896
@@ -1479,10 +1479,10 @@ let trans_visitor
1479
1479
Abi. indirect_args_elt_closure)
1480
1480
in
1481
1481
let closure_target_cell =
1482
- get_element_ptr closure_cell Abi. obj_elt_body_box
1482
+ get_element_ptr closure_cell Abi. fn_field_closure
1483
1483
in
1484
1484
let closure_target_fn_cell =
1485
- get_element_ptr closure_target_cell Abi. obj_elt_vtbl
1485
+ get_element_ptr closure_target_cell Abi. fn_field_thunk
1486
1486
in
1487
1487
1488
1488
merge_bound_args
@@ -2473,7 +2473,7 @@ let trans_visitor
2473
2473
2474
2474
Ast. TY_fn _ ->
2475
2475
note_drop_step ty " drop_ty: fn path" ;
2476
- let binding = get_element_ptr cell Abi. obj_elt_body_box in
2476
+ let binding = get_element_ptr cell Abi. fn_field_closure in
2477
2477
let null_jmp = null_check binding in
2478
2478
(* Drop non-null bindings. *)
2479
2479
(* FIXME (issue #58): this is completely wrong, Closures need to
@@ -2486,7 +2486,7 @@ let trans_visitor
2486
2486
2487
2487
| Ast. TY_obj _ ->
2488
2488
note_drop_step ty " drop_ty: obj path" ;
2489
- let binding = get_element_ptr cell Abi. obj_elt_body_box in
2489
+ let binding = get_element_ptr cell Abi. obj_field_body_box in
2490
2490
let null_jmp = null_check binding in
2491
2491
let rc_jmp = drop_refcount_and_cmp binding in
2492
2492
let obj_box = deref binding in
@@ -2607,7 +2607,9 @@ let trans_visitor
2607
2607
| Ast. TY_obj _ ->
2608
2608
if type_has_state ty
2609
2609
then
2610
- let binding = get_element_ptr cell Abi. obj_elt_body_box in
2610
+ let binding =
2611
+ get_element_ptr cell Abi. binding_field_bound_data
2612
+ in
2611
2613
sever_box binding;
2612
2614
2613
2615
| _ ->
@@ -3094,13 +3096,17 @@ let trans_visitor
3094
3096
| Ast. TY_fn _
3095
3097
| Ast. TY_obj _ ->
3096
3098
begin
3097
- let src_item = get_element_ptr src Abi. obj_elt_vtbl in
3098
- let dst_item = get_element_ptr dst Abi. obj_elt_vtbl in
3099
+ let src_item =
3100
+ get_element_ptr src Abi. binding_field_dispatch
3101
+ in
3102
+ let dst_item =
3103
+ get_element_ptr dst Abi. binding_field_dispatch
3104
+ in
3099
3105
let src_binding =
3100
- get_element_ptr src Abi. obj_elt_body_box
3106
+ get_element_ptr src Abi. binding_field_bound_data
3101
3107
in
3102
3108
let dst_binding =
3103
- get_element_ptr dst Abi. obj_elt_body_box
3109
+ get_element_ptr dst Abi. binding_field_bound_data
3104
3110
in
3105
3111
mov dst_item (Il. Cell src_item);
3106
3112
let null_jmp = null_check src_binding in
@@ -3197,7 +3203,7 @@ let trans_visitor
3197
3203
deref_ty DEREF_none initializing dst_cell dst_ty
3198
3204
in
3199
3205
let caller_vtbl =
3200
- get_element_ptr caller_obj Abi. obj_elt_vtbl
3206
+ get_element_ptr caller_obj Abi. obj_field_vtbl
3201
3207
in
3202
3208
mov caller_vtbl caller_vtbl_oper
3203
3209
end
@@ -3235,10 +3241,10 @@ let trans_visitor
3235
3241
let fix = Hashtbl. find cx.ctxt_fn_fixups item.id in
3236
3242
3237
3243
let dst_pair_item_cell =
3238
- get_element_ptr dst_cell Abi. obj_elt_vtbl
3244
+ get_element_ptr dst_cell Abi. fn_field_thunk
3239
3245
in
3240
3246
let dst_pair_binding_cell =
3241
- get_element_ptr dst_cell Abi. obj_elt_body_box
3247
+ get_element_ptr dst_cell Abi. fn_field_closure
3242
3248
in
3243
3249
mov dst_pair_item_cell (crate_rel_imm fix);
3244
3250
mov dst_pair_binding_cell zero
@@ -3472,12 +3478,12 @@ let trans_visitor
3472
3478
3473
3479
iflog (fun _ -> annotate " set closure target code ptr" );
3474
3480
mov
3475
- (get_element_ptr targ_cell Abi. fn_elt_thunk )
3481
+ (get_element_ptr targ_cell Abi. fn_field_thunk )
3476
3482
(reify_ptr target_fn_ptr);
3477
3483
3478
3484
iflog (fun _ -> annotate " set closure target closure ptr" );
3479
3485
mov
3480
- (get_element_ptr targ_cell Abi. fn_elt_closure )
3486
+ (get_element_ptr targ_cell Abi. fn_field_closure )
3481
3487
(reify_ptr target_binding_ptr);
3482
3488
3483
3489
iflog (fun _ -> annotate " set closure bound args" );
@@ -3511,10 +3517,10 @@ let trans_visitor
3511
3517
let target_binding_ptr = callee_binding_ptr flv cc in
3512
3518
let closure_rty = closure_referent_type bound_arg_slots in
3513
3519
let closure_sz = force_sz (Il. referent_ty_size word_bits closure_rty) in
3514
- let fn_cell = get_element_ptr dst_cell Abi. obj_elt_vtbl in
3520
+ let fn_cell = get_element_ptr dst_cell Abi. fn_field_thunk in
3515
3521
let closure_cell =
3516
3522
ptr_cast
3517
- (get_element_ptr dst_cell Abi. obj_elt_body_box )
3523
+ (get_element_ptr dst_cell Abi. fn_field_closure )
3518
3524
(Il. ScalarTy (Il. AddrTy (closure_rty)))
3519
3525
in
3520
3526
iflog (fun _ -> annotate " assign glue-code to fn slot of pair" );
@@ -3824,7 +3830,7 @@ let trans_visitor
3824
3830
| CALL_indirect ->
3825
3831
(* fptr is a pair [disp, binding*] *)
3826
3832
let pair_cell = need_cell (reify_ptr fptr) in
3827
- let disp_cell = get_element_ptr pair_cell Abi. obj_elt_vtbl in
3833
+ let disp_cell = get_element_ptr pair_cell Abi. fn_field_thunk in
3828
3834
Il. Cell (crate_rel_to_ptr (Il. Cell disp_cell) Il. CodeTy )
3829
3835
3830
3836
and callee_binding_ptr
@@ -3835,7 +3841,7 @@ let trans_visitor
3835
3841
then zero
3836
3842
else
3837
3843
let (pair_cell, _) = trans_lval pair_lval in
3838
- Il. Cell (get_element_ptr pair_cell Abi. obj_elt_body_box )
3844
+ Il. Cell (get_element_ptr pair_cell Abi. fn_field_closure )
3839
3845
3840
3846
and call_ctrl flv : call_ctrl =
3841
3847
if lval_is_static cx flv
@@ -4639,10 +4645,10 @@ let trans_visitor
4639
4645
let _ = iflog (fun _ -> annotate " load destination obj pair ptr" ) in
4640
4646
let dst_pair_cell = deref (ptr_at (fp_imm out_mem_disp) obj_ty) in
4641
4647
let dst_pair_item_cell =
4642
- get_element_ptr dst_pair_cell Abi. obj_elt_vtbl
4648
+ get_element_ptr dst_pair_cell Abi. obj_field_vtbl
4643
4649
in
4644
4650
let dst_pair_state_cell =
4645
- get_element_ptr dst_pair_cell Abi. obj_elt_body_box
4651
+ get_element_ptr dst_pair_cell Abi. obj_field_body_box
4646
4652
in
4647
4653
4648
4654
(* Load first cell of pair with vtbl ptr.*)
0 commit comments