From a9e2327a18e782df524c14dc42910d61a4785324 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Thu, 9 Sep 2010 15:59:29 -0700 Subject: Switch tags to purely nominal, removing TY_iso and TY_idx. Seems to mostly work, possibly a little bumpy. Changes a lot. --- src/boot/be/x86.ml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/boot/be') diff --git a/src/boot/be/x86.ml b/src/boot/be/x86.ml index b6d57e27..f4475894 100644 --- a/src/boot/be/x86.ml +++ b/src/boot/be/x86.ml @@ -1028,7 +1028,11 @@ let unwind_glue (* Puts result in eax; clobbers ecx, edx in the process. *) -let rec calculate_sz (e:Il.emitter) (size:size) (in_obj:bool) : unit = +let rec calculate_sz + (e:Il.emitter) + (size:size) + (in_obj:bool) + : unit = let emit = Il.emit e in let mov dst src = emit (Il.umov dst src) in let push x = emit (Il.Push x) in @@ -1060,9 +1064,11 @@ let rec calculate_sz (e:Il.emitter) (size:size) (in_obj:bool) : unit = (* Note that we cheat here and pretend only to have i+1 tydescs (because we GEP to the i'th while still in this function, so no one outside finds out about the lie. *) - let tydesc_tys = Array.init (i + 1) (fun _ -> Ast.TY_type) in - let ty_params_ty = Ast.TY_tup tydesc_tys in - let ty_params_rty = Semant.referent_type word_bits ty_params_ty in + let tydesc_rtys = + Array.init (i + 1) + (fun _ -> (Il.ScalarTy (Il.AddrTy tydesc_rty))) + in + let ty_params_rty = Il.StructTy tydesc_rtys in (* ... and fetch! *) -- cgit v1.2.3