@@ -323,7 +323,9 @@ let bound_error_call = ref 0
323323let bound_error_label ?label dbg ~spacetime =
324324 if !Clflags.debug || Config.spacetime then begin
325325 let lbl_bound_error = new_label() in
326- let lbl_frame = record_frame_label ?label Reg.Set.empty false dbg in
326+ let lbl_frame =
327+ record_frame_label ?label Reg.Set.empty false (Dbg_other dbg)
328+ in
327329 bound_error_sites :=
328330 { bd_lbl = lbl_bound_error; bd_frame = lbl_frame;
329331 bd_spacetime = spacetime; } :: !bound_error_sites;
@@ -516,16 +518,16 @@ let emit_instr fallthrough i =
516518 load_symbol_addr s (res i 0)
517519 | Lop(Icall_ind { label_after; }) ->
518520 I.call (arg i 0);
519- record_frame i.live false i.dbg ~label:label_after
521+ record_frame i.live false (Dbg_other i.dbg) ~label:label_after
520522 | Lop(Icall_imm { func; label_after; }) ->
521523 add_used_symbol func;
522524 emit_call func;
523- record_frame i.live false i.dbg ~label:label_after
525+ record_frame i.live false (Dbg_other i.dbg) ~label:label_after
524526 | Lop(Itailcall_ind { label_after; }) ->
525527 output_epilogue begin fun () ->
526528 I.jmp (arg i 0);
527529 if Config.spacetime then begin
528- record_frame Reg.Set.empty false i.dbg ~label:label_after
530+ record_frame Reg.Set.empty false (Dbg_other i.dbg) ~label:label_after
529531 end
530532 end
531533 | Lop(Itailcall_imm { func; label_after; }) ->
@@ -540,14 +542,14 @@ let emit_instr fallthrough i =
540542 end
541543 end;
542544 if Config.spacetime then begin
543- record_frame Reg.Set.empty false i.dbg ~label:label_after
545+ record_frame Reg.Set.empty false (Dbg_other i.dbg) ~label:label_after
544546 end
545547 | Lop(Iextcall { func; alloc; label_after; }) ->
546548 add_used_symbol func;
547549 if alloc then begin
548550 load_symbol_addr func rax;
549551 emit_call "caml_c_call";
550- record_frame i.live false i.dbg ~label:label_after;
552+ record_frame i.live false (Dbg_other i.dbg) ~label:label_after;
551553 if system <> S_win64 then begin
552554 (* TODO: investigate why such a diff.
553555 This comes from:
@@ -562,7 +564,7 @@ let emit_instr fallthrough i =
562564 end else begin
563565 emit_call func;
564566 if Config.spacetime then begin
565- record_frame Reg.Set.empty false i.dbg ~label:label_after
567+ record_frame Reg.Set.empty false (Dbg_other i.dbg) ~label:label_after
566568 end
567569 end
568570 | Lop(Istackoffset n) ->
@@ -611,7 +613,8 @@ let emit_instr fallthrough i =
611613 | Double | Double_u ->
612614 I.movsd (arg i 0) (addressing addr REAL8 i 1)
613615 end
614- | Lop(Ialloc { words = n; label_after_call_gc; spacetime_index; }) ->
616+ | Lop(Ialloc { words = n; blocks = dbg;
617+ label_after_call_gc; spacetime_index; }) ->
615618 if !fastcode_flag then begin
616619 let lbl_redo = new_label() in
617620 def_label lbl_redo;
@@ -635,12 +638,9 @@ let emit_instr fallthrough i =
635638 end else
636639 I.cmp (mem64_rip QWORD (emit_symbol "caml_young_limit")) r15;
637640 let lbl_call_gc = new_label() in
638- let dbg =
639- if not Config.spacetime then Debuginfo.none
640- else i.dbg
641- in
642641 let lbl_frame =
643- record_frame_label ?label:label_after_call_gc i.live false dbg
642+ record_frame_label ?label:label_after_call_gc
643+ i.live false (Dbg_alloc dbg)
644644 in
645645 I.jb (label lbl_call_gc);
646646 I.lea (mem64 NONE 8 R15) (res i 0);
@@ -668,7 +668,7 @@ let emit_instr fallthrough i =
668668 end;
669669 let label =
670670 record_frame_label ?label:label_after_call_gc i.live false
671- Debuginfo.none
671+ (Dbg_alloc dbg)
672672 in
673673 def_label label;
674674 I.lea (mem64 NONE 8 R15) (res i 0)
@@ -856,7 +856,7 @@ let emit_instr fallthrough i =
856856 begin match k with
857857 | Cmm.Raise_withtrace ->
858858 emit_call "caml_raise_exn";
859- record_frame Reg.Set.empty true i.dbg
859+ record_frame Reg.Set.empty true (Dbg_other i.dbg)
860860 | Cmm.Raise_notrace ->
861861 I.mov r14 rsp;
862862 I.pop r14;
@@ -1083,7 +1083,7 @@ let end_assembly() =
10831083 efa_data_label = (fun l -> D.qword (ConstLabel (emit_label l)));
10841084 efa_16 = (fun n -> D.word (const n));
10851085 efa_32 = (fun n -> D.long (const_32 n));
1086- efa_word = (fun n -> D.qword (const n));
1086+ efa_word = (fun n -> D.qword (const_nat n));
10871087 efa_align = D.align;
10881088 efa_label_rel =
10891089 (fun lbl ofs ->
0 commit comments