aboutsummaryrefslogtreecommitdiff
path: root/src/boot/be
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot/be')
-rw-r--r--src/boot/be/abi.ml3
-rw-r--r--src/boot/be/x86.ml8
2 files changed, 8 insertions, 3 deletions
diff --git a/src/boot/be/abi.ml b/src/boot/be/abi.ml
index c16fec36..a7b98c2c 100644
--- a/src/boot/be/abi.ml
+++ b/src/boot/be/abi.ml
@@ -126,7 +126,8 @@ type abi =
-> Common.nabi
-> Common.fixup (* grow_task *)
-> bool (* is_obj_fn *)
- -> unit);
+ -> bool (* minimal *)
+ -> unit);
abi_emit_fn_epilogue: (Il.emitter -> unit);
diff --git a/src/boot/be/x86.ml b/src/boot/be/x86.ml
index 468d1ab1..dd21c329 100644
--- a/src/boot/be/x86.ml
+++ b/src/boot/be/x86.ml
@@ -1236,6 +1236,7 @@ let fn_prologue
(nabi:nabi)
(grow_task_fixup:fixup)
(is_obj_fn:bool)
+ (minimal:bool)
: unit =
let esi_n = word_n (h esi) in
@@ -1372,8 +1373,11 @@ let fn_prologue
in
(* "Full" frame size-check. *)
- stack_growth_check e nabi grow_task_fixup
- dynamic_frame_sz dynamic_grow_jmp restart_pc (h esi) (h edi);
+ match dynamic_grow_jmp with
+ None when minimal -> ()
+ | _ ->
+ stack_growth_check e nabi grow_task_fixup
+ dynamic_frame_sz dynamic_grow_jmp restart_pc (h esi) (h edi);
(* Establish a frame, wherever we landed. *)