From 5909a0340ad0fe871dede1eaead855fb4b68fb0e Mon Sep 17 00:00:00 2001 From: xleroy Date: Mon, 8 Aug 2011 06:31:10 +0000 Subject: 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 --- ia32/standard/Conventions1.v | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'ia32/standard/Conventions1.v') 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]. *) -- cgit