From be4d6e42dfa287b93b1a35ec820ab2a5aaf8c7ec Mon Sep 17 00:00:00 2001 From: xleroy Date: Sun, 19 May 2013 09:54:40 +0000 Subject: Merge of the float32 branch: - added RTL type "Tsingle" - ABI-compatible passing of single-precision floats on ARM and x86 git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2260 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- ia32/Machregs.v | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'ia32/Machregs.v') diff --git a/ia32/Machregs.v b/ia32/Machregs.v index 31ea8eea..528e9ed0 100644 --- a/ia32/Machregs.v +++ b/ia32/Machregs.v @@ -124,6 +124,13 @@ Definition destroyed_by_builtin (ef: external_function): list mreg := Definition destroyed_at_function_entry: list mreg := DX :: FP0 :: nil. (* must include destroyed_by_op Omove *) +Definition destroyed_by_setstack (ty: typ): list mreg := + match ty with + | Tfloat => FP0 :: nil + | Tsingle => X7 :: FP0 :: nil + | _ => nil + end. + Definition temp_for_parent_frame: mreg := DX. @@ -164,7 +171,7 @@ Definition mregs_for_builtin (ef: external_function): list (option mreg) * list Global Opaque destroyed_by_op destroyed_by_load destroyed_by_store destroyed_by_cond destroyed_by_jumptable destroyed_by_builtin - destroyed_at_function_entry temp_for_parent_frame + destroyed_by_setstack destroyed_at_function_entry temp_for_parent_frame mregs_for_operation mregs_for_builtin. (** Two-address operations. Return [true] if the first argument and -- cgit