aboutsummaryrefslogtreecommitdiffstats
path: root/ia32/standard
diff options
context:
space:
mode:
authorxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2011-08-08 06:31:10 +0000
committerxleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2011-08-08 06:31:10 +0000
commit5909a0340ad0fe871dede1eaead855fb4b68fb0e (patch)
tree4dd849283a636edd09bbcc8be8c6371a11b6faa0 /ia32/standard
parent5d1c52555bb166430402103afe9540cc4c296487 (diff)
downloadcompcert-5909a0340ad0fe871dede1eaead855fb4b68fb0e.tar.gz
compcert-5909a0340ad0fe871dede1eaead855fb4b68fb0e.zip
IA32 port: more faithful treatment of pseudoregister ST0.
Related general change: support for destroyed_at_moves. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1700 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'ia32/standard')
-rw-r--r--ia32/standard/Conventions1.v17
1 files changed, 12 insertions, 5 deletions
diff --git a/ia32/standard/Conventions1.v b/ia32/standard/Conventions1.v
index 781617e7..49f5da92 100644
--- a/ia32/standard/Conventions1.v
+++ b/ia32/standard/Conventions1.v
@@ -42,15 +42,22 @@ Definition float_callee_save_regs : list mreg := nil.
Definition destroyed_at_call_regs :=
int_caller_save_regs ++ float_caller_save_regs.
-Definition destroyed_at_call :=
- List.map R destroyed_at_call_regs.
+Definition destroyed_at_call := List.map R destroyed_at_call_regs.
Definition int_temporaries := IT1 :: IT2 :: nil.
-Definition float_temporaries := FT1 :: FT2 :: FP0 :: nil.
+Definition float_temporaries := FT1 :: FT2 :: nil.
+
+(** [FP0] is not used for reloading, hence it is not in [float_temporaries],
+ however it is not allocatable, hence it is in [temporaries]. *)
-Definition temporaries :=
- R IT1 :: R IT2 :: R FT1 :: R FT2 :: R FP0 :: nil.
+Definition temporary_regs := IT1 :: IT2 :: FT1 :: FT2 :: FP0 :: nil.
+
+Definition temporaries := List.map R temporary_regs.
+
+Definition destroyed_at_move_regs := FP0 :: nil.
+
+Definition destroyed_at_move := List.map R destroyed_at_move_regs.
Definition dummy_int_reg := AX. (**r Used in [Coloring]. *)
Definition dummy_float_reg := X0. (**r Used in [Coloring]. *)