diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2013-05-19 09:54:40 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2013-05-19 09:54:40 +0000 |
commit | be4d6e42dfa287b93b1a35ec820ab2a5aaf8c7ec (patch) | |
tree | c51b66e9154bc64cf4fd4191251f29d102928841 /ia32/Machregs.v | |
parent | 60e1fd71c7e97b2214daf574e0f41b55a3e0bceb (diff) | |
download | compcert-be4d6e42dfa287b93b1a35ec820ab2a5aaf8c7ec.tar.gz compcert-be4d6e42dfa287b93b1a35ec820ab2a5aaf8c7ec.zip |
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
Diffstat (limited to 'ia32/Machregs.v')
-rw-r--r-- | ia32/Machregs.v | 9 |
1 files changed, 8 insertions, 1 deletions
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 |