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