[PING^3 PATCH]: Preparations for SYSV/MS ABI attributes in backend may before stage 3

Kai Tietz Kai.Tietz@onevision.com
Wed Sep 12 11:44:00 GMT 2007


Hi,

As discussed with Jan, I submit a patch preparing the implementation of 
supporting different call ABI's in one target. Therefore the macros 
OUTGOING_REG_PARM_STACK_SPACE and RETURN_IN_MEMORY need to get function 
decl/type parameters. Additionally I need to change some code in expr.c, 
function.c, and calls.c for providing a function declaration type to those 
macros AFAP.  This patch bring the RETURN_IN_MEMORY up to date with new 
target macro. May in a follow-up patch the RETURN_IN_MEMORY macro could be 
replaced by the TARGET_RETURN_IN_MEMORY ?
I update the patch file with current repository. The second part related 
to i386 I will sent in next minutes, too.

Is this patch OK ? Can somebody comment or approve this ?

ChangeLog /gcc/gcc


        * gcc/config/alpha/unicosmk.h, gcc/config/arm/arm.c,
        gcc/config/arm/arm.h, gcc/config/bfin/bfin.h, 
gcc/config/cris/cris.h,
        gcc/config/i386/cygming.h, gcc/config/i386/i386-interix.h, 
gcc/config/i386/i386.h,
        gcc/config/i386/i386elf.h, gcc/config/i386/ptx4-i.h, 
gcc/config/i386/sol2-10.h,
        gcc/config/i386/sysv4.h, gcc/config/i386/vx-common.h, 
gcc/config/iq2000/iq2000.h,
        gcc/config/m68hc11/m68hc11.h, gcc/config/mips/mips.h, 
gcc/config/mn10300/mn10300.h,
        gcc/config/mt/mt.h, gcc/config/pa/pa.h, 
gcc/config/rs6000/rs6000.h,
        gcc/config/score/score.h, gcc/config/spu/spu.h, 
gcc/config/v850/v850.h,
        gcc/defaults.h,
        (OUTGOING_REG_PARM_STACK_SPACE): Add fndecl parm.
        (RETURN_IN_MEMORY): Add fntype parm.
        * gcc/calls.c: (finalize_must_preallocate): Add fndecl parm.
        (expand_call): Adjust OUTGOING_REG_PARM_STACK_SPACE parm.
        (emit_library_call_value_1): Likewise.
        * gcc/expr.c: (block_move_libcall_safe_for_call_parm): Adjust
        OUTGOING_REG_PARM_STACK_SPACE parm.
        * gcc/function.c: (STACK_DYNAMIC_OFFSET): Adjust
        OUTGOING_REG_PARM_STACK_SPACE parm.
        (allocate_struct_function): Add new optional hook 
OVERRIDE_ABI_FORMAT.
        * gcc/targhooks.c: (default_return_in_memory): Pass additonal parm
        to RETURN_IN_MEMORY.
        * gcc/doc/tm.texi: (OUTGOING_REG_PARM_STACK_SPACE): Adjust 
documentation
        about new parameter.


Regards,
 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
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: amd64_abis_part1.txt
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20070912/85427672/attachment.txt>


More information about the Gcc-patches mailing list