From 7a8a7b225321b70d7a4a2ca5f6e1ba811bd378ab Mon Sep 17 00:00:00 2001 From: Bernhard Schommer Date: Thu, 10 Mar 2016 19:00:53 +0100 Subject: Clean up of ia32 target dependend code. Removed some unused functions and opens. Bug 18394 --- ia32/Asmexpand.ml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'ia32/Asmexpand.ml') diff --git a/ia32/Asmexpand.ml b/ia32/Asmexpand.ml index 7ca31902..f2b6ad90 100644 --- a/ia32/Asmexpand.ml +++ b/ia32/Asmexpand.ml @@ -16,7 +16,6 @@ open Asm open Asmexpandaux -open Asmgen open AST open Camlcoq open Datatypes @@ -94,7 +93,7 @@ let global_addr id ofs = Addrmode(None, None, Coq_inr(id, ofs)) (* Unaligned memory accesses are quite fast on IA32, so use large memory accesses regardless of alignment. *) -let expand_builtin_memcpy_small sz al src dst = +let expand_builtin_memcpy_small sz _ src dst = let rec copy src dst sz = if sz >= 8 && !Clflags.option_ffpu then begin emit (Pmovq_rm (XMM7, src)); @@ -115,7 +114,7 @@ let expand_builtin_memcpy_small sz al src dst = end in copy (addressing_of_builtin_arg src) (addressing_of_builtin_arg dst) sz -let expand_builtin_memcpy_big sz al src dst = +let expand_builtin_memcpy_big sz _ src dst = if src <> BA (IR ESI) then emit (Plea (ESI, addressing_of_builtin_arg src)); if dst <> BA (IR EDI) then emit (Plea (EDI, addressing_of_builtin_arg dst)); emit (Pmov_ri (ECX,coqint_of_camlint (Int32.of_int (sz / 4)))); @@ -377,7 +376,7 @@ let expand_builtin_inline name args res = let expand_instruction instr = match instr with - | Pallocframe (sz, ofs_ra, ofs_link) -> + | Pallocframe (sz, _, ofs_link) -> let sz = sp_adjustment sz in let addr = linear_addr ESP (coqint_of_camlint (Int32.add sz 4l)) in let addr' = linear_addr ESP ofs_link in @@ -387,13 +386,13 @@ let expand_instruction instr = emit (Plea (EDX,addr)); emit (Pmov_mr (addr',EDX)); PrintAsmaux.current_function_stacksize := sz - | Pfreeframe(sz, ofs_ra, ofs_link) -> + | Pfreeframe(sz, _, _) -> let sz = sp_adjustment sz in emit (Padd_ri (ESP,coqint_of_camlint sz)) | Pbuiltin (ef,args, res) -> begin match ef with - | EF_builtin(name, sg) -> + | EF_builtin(name, _) -> expand_builtin_inline (camlstring_of_coqstring name) args res | EF_vload chunk -> expand_builtin_vload chunk args res -- cgit From 272a5b812b72f4c3e409ccdbeaf3476d95c4b552 Mon Sep 17 00:00:00 2001 From: Bernhard Schommer Date: Tue, 15 Mar 2016 15:07:47 +0100 Subject: Deactivate warning 27 and added back removed code. The code was mostly there for documentation effort. So warning 27 is deactivated again. Bug 18349 --- ia32/Asmexpand.ml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'ia32/Asmexpand.ml') diff --git a/ia32/Asmexpand.ml b/ia32/Asmexpand.ml index f2b6ad90..3a3548f9 100644 --- a/ia32/Asmexpand.ml +++ b/ia32/Asmexpand.ml @@ -93,7 +93,7 @@ let global_addr id ofs = Addrmode(None, None, Coq_inr(id, ofs)) (* Unaligned memory accesses are quite fast on IA32, so use large memory accesses regardless of alignment. *) -let expand_builtin_memcpy_small sz _ src dst = +let expand_builtin_memcpy_small sz al src dst = let rec copy src dst sz = if sz >= 8 && !Clflags.option_ffpu then begin emit (Pmovq_rm (XMM7, src)); @@ -114,7 +114,7 @@ let expand_builtin_memcpy_small sz _ src dst = end in copy (addressing_of_builtin_arg src) (addressing_of_builtin_arg dst) sz -let expand_builtin_memcpy_big sz _ src dst = +let expand_builtin_memcpy_big sz al src dst = if src <> BA (IR ESI) then emit (Plea (ESI, addressing_of_builtin_arg src)); if dst <> BA (IR EDI) then emit (Plea (EDI, addressing_of_builtin_arg dst)); emit (Pmov_ri (ECX,coqint_of_camlint (Int32.of_int (sz / 4)))); @@ -376,7 +376,7 @@ let expand_builtin_inline name args res = let expand_instruction instr = match instr with - | Pallocframe (sz, _, ofs_link) -> + | Pallocframe (sz, ofs_ra, ofs_link) -> let sz = sp_adjustment sz in let addr = linear_addr ESP (coqint_of_camlint (Int32.add sz 4l)) in let addr' = linear_addr ESP ofs_link in @@ -386,13 +386,13 @@ let expand_instruction instr = emit (Plea (EDX,addr)); emit (Pmov_mr (addr',EDX)); PrintAsmaux.current_function_stacksize := sz - | Pfreeframe(sz, _, _) -> + | Pfreeframe(sz, ofs_ra, ofs_link) -> let sz = sp_adjustment sz in emit (Padd_ri (ESP,coqint_of_camlint sz)) | Pbuiltin (ef,args, res) -> begin match ef with - | EF_builtin(name, _) -> + | EF_builtin(name, sg) -> expand_builtin_inline (camlstring_of_coqstring name) args res | EF_vload chunk -> expand_builtin_vload chunk args res -- cgit From 1e08d4adb241e076a96f9525fdb8359cf8845527 Mon Sep 17 00:00:00 2001 From: Bernhard Schommer Date: Wed, 16 Mar 2016 13:51:33 +0100 Subject: Added interface for the Asmexpansion. Hide the reference used internally behind the interface and added some functions to access the needed values. Bug 18394 --- ia32/Asmexpand.ml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'ia32/Asmexpand.ml') diff --git a/ia32/Asmexpand.ml b/ia32/Asmexpand.ml index 3a3548f9..4f2bb937 100644 --- a/ia32/Asmexpand.ml +++ b/ia32/Asmexpand.ml @@ -200,12 +200,12 @@ let expand_builtin_vstore chunk args = (* Handling of varargs *) let expand_builtin_va_start r = - if not !current_function.fn_sig.sig_cc.cc_vararg then + if not (is_current_function_variadic ()) then invalid_arg "Fatal error: va_start used in non-vararg function"; let ofs = coqint_of_camlint Int32.(add (add !PrintAsmaux.current_function_stacksize 4l) (mul 4l (Z.to_int32 (Conventions1.size_arguments - !current_function.fn_sig)))) in + (get_current_function_sig ()))))) in emit (Pmov_mr (linear_addr r _0, ESP)); emit (Padd_mi (linear_addr r _0, ofs)) -- cgit