AMD64 ABI compatibility

Jan Hubicka
Wed Jul 11 12:02:00 GMT 2007

> I thank you very much for your great help. Currently I am stucked on 
> x86_function_value_regno_p (macro FUNCTION_VALUE_REGNO_P). It is not clear 
> what's to do here for the FIRST_FLOAT_REG case. Maybe I could use the 
> ms_abi variant for sysv_abi as default too. But I think, it breaks 87 fpu 
> stuff for this ABI !?!

x86_function_value_regno_p is tricky one.  Speaking strictly from
definition I think it should
 - for current SYSV ABI with no MS ABI function calls return set it
   returns for MS ABI (not including x87)
 - for current SYSV ABI or MS ABI with SYSV ABI function calls return set it
   returns for SYSV ABI (including x87)

However see the use in builtins.c - it expects that this function is
invariant for whole compilation unit, so implementing the above would
need updating builtins.c too.

The feature is used just seldomly - for the extra builtin expansion,
in combine.c for logic that won't fire for x87, in mode switching to
support the builtin_apply above and in rtlanal.c to avoid separating
the return value from call. With x87 register we should not be spoiled
here either, since x87 is quite symetric before regstack and restack will know
how to fix this up.

My best bet would be that making the function dependent on default ABI
is good enough.  You might add some comment that the function should
depend on current function ABI but builtins.c would need updating then.

> Cheers,
>  i.A. Kai Tietz
> |  (\_/)  This is Bunny. Copy and paste Bunny
> | (='.'=) into your signature to help him gain
> | (")_(") world domination.
> ------------------------------------------------------------------------------------------
>   OneVision Software Entwicklungs GmbH & Co. KG
>   Dr.-Leo-Ritter-StraĂŸe 9 - 93049 Regensburg
>   Tel: +49.(0)941.78004.0 - Fax: +49.(0)941.78004.489 -
>   Commerzbank Regensburg - BLZ 750 400 62 - Konto 6011050
>   Handelsregister: HRA 6744, Amtsgericht Regensburg
>   Komplementärin: OneVision Software Entwicklungs Verwaltungs GmbH
>   Dr.-Leo-Ritter-StraĂŸe 9 ??? 93049 Regensburg
>   Handelsregister: HRB 8932, Amtsgericht Regensburg - Geschäftsfßhrer: 
> Ulrike DĂśhler, Manuela Kluger

More information about the Gcc mailing list