From 579e163f8ef7494868833b5a780dbb1c87516713 Mon Sep 17 00:00:00 2001 From: Mylloon Date: Mon, 1 Jan 2024 20:20:47 +0100 Subject: [PATCH] stuff --- flap/src/x86-64/retrolixToX86_64.ml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/flap/src/x86-64/retrolixToX86_64.ml b/flap/src/x86-64/retrolixToX86_64.ml index d5f2d47..8e8d07f 100644 --- a/flap/src/x86-64/retrolixToX86_64.ml +++ b/flap/src/x86-64/retrolixToX86_64.ml @@ -524,23 +524,22 @@ module FrameManager (IS : InstructionSelector) : FrameManager = struct + fd.locals_space ;; + (* Ajoute les éléments de liste sur la pile *) let add_stack stack list start op_addr = - let stack, _ = - List.fold_left - (fun (stack, addr) id -> S.IdMap.add id (Mint.of_int addr) stack, op_addr addr) - (stack, start) - list - in - stack + fst + (List.fold_left + (fun (stack, addr) id -> S.IdMap.add id (Mint.of_int addr) stack, op_addr addr) + (stack, start) + list) ;; let frame_descriptor ~params ~locals = (* Ajout à la pile les variables présentent dans la liste *) let stack = add_stack S.IdMap.empty locals (-8) (fun x -> x - 8) in - let stack = add_stack stack params 16 (fun x -> x + 8) in + let stack' = add_stack stack params 16 (fun x -> x + 8) in { param_count = List.length params ; locals_space = List.length locals * 8 - ; stack_map = stack + ; stack_map = stack' } ;;