Jan Hubicka wrote on 11.07.2007 14:01:54:

> > 
> > 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 restackwill 
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.
> 
> Honza

I noticed, that OUTGOING_REG_PARM_STACK_SPACE makes troubles too. What is 
about extending this macro by a FNDECL argument ? This would solve the 
problem and AFAICS the function declaration seems to be always present.

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 - www.OneVision.com
  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

Reply via email to