@@ -487,6 +487,8 @@ module BR = Branch_relaxation.Make (struct
487
487
else load_store_size addr
488
488
| Lop(Istore(_chunk, addr, _)) -> load_store_size addr
489
489
| Lop(Ialloc _) -> 4
490
+ | Lop(Ibeginregion | Iendregion) ->
491
+ Misc.fatal_error "Local allocations not supported on this architecture"
490
492
| Lop(Ispecific(Ialloc_far _)) -> 5
491
493
| Lop(Iintop Imod) -> 3
492
494
| Lop(Iintop(Icomp _)) -> 4
@@ -754,13 +756,15 @@ let emit_instr i =
754
756
| Single -> "stfs"
755
757
| Double | Double_u -> "stfd" in
756
758
emit_load_store storeinstr addr i.arg 1 i.arg.(0)
757
- | Lop(Ialloc { bytes = n; dbginfo }) ->
759
+ | Lop(Ialloc { bytes = n; dbginfo; mode = Alloc_heap }) ->
758
760
if !call_gc_label = 0 then call_gc_label := new_label ();
759
761
` addi 31, 31, {emit_int(-n)}\n`;
760
762
` {emit_string cmplg} 31, 30\n`;
761
763
` bltl {emit_label !call_gc_label}\n`;
762
764
record_frame i.live (Dbg_alloc dbginfo);
763
765
` addi {emit_reg i.res.(0)}, 31, {emit_int size_addr}\n`;
766
+ | Lop(Ialloc { mode = Alloc_local } | Ibeginregion | Iendregion) ->
767
+ Misc.fatal_error "Local allocations not supported on this architecture"
764
768
| Lop(Ispecific(Ialloc_far { bytes = n; dbginfo })) ->
765
769
if !call_gc_label = 0 then call_gc_label := new_label ();
766
770
let lbl = new_label() in
0 commit comments