Skip to content

Commit d67772e

Browse files
authored
flambda-backend: Port #1539 (add the %get_header primitive) (#2088)
1 parent 9f18958 commit d67772e

File tree

4 files changed

+15
-4
lines changed

4 files changed

+15
-4
lines changed

runtime/obj.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,13 @@ CAMLprim value caml_obj_make_forward(value blk, value fwd)
7373
return Val_unit;
7474
}
7575

76+
CAMLprim value caml_get_header(value blk)
77+
{
78+
// undefined behaviour if blk is not a block
79+
intnat r = Hd_val(blk);
80+
return caml_copy_nativeint(r);
81+
}
82+
7683
/* [size] is a value encoding a number of blocks */
7784
CAMLprim value caml_obj_block(value tag, value size)
7885
{

testsuite/tests/lib-obj/get_header.ml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
(* TEST
2-
* native
3-
reference = "${test_source_directory}/get_header.opt.reference"
42
* bytecode
5-
reference = "${test_source_directory}/get_header.byte.reference"
6-
*)
3+
reference = "${test_source_directory}/get_header.heap.reference"
4+
* stack-allocation
5+
** native
6+
reference = "${test_source_directory}/get_header.stack.reference"
7+
* no-stack-allocation
8+
** native
9+
reference = "${test_source_directory}/get_header.heap.reference"
10+
*)
711

812
(* We're likely to remove %get_header in favour of calls to
913
caml_obj_is_stack under runtime5 (since testing a block's colour isn't

0 commit comments

Comments
 (0)