This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] IA64 VMS ABI issues (2nd try)
- From: Steve Ellcey <sje at cup dot hp dot com>
- To: Douglas B Rupp <rupp at gnat dot com>
- Cc: gcc-patches at gcc dot gnu dot org, Jim Wilson <wilson at codesourcery dot com>
- Date: Wed, 19 Aug 2009 16:30:15 -0700
- Subject: Re: [PATCH] IA64 VMS ABI issues (2nd try)
- References: <4A87142B.6080406@gnat.com>
- Reply-to: sje at cup dot hp dot com
On Sat, 2009-08-15 at 13:01 -0700, Douglas B Rupp wrote:
> I had to rework this patch for TARGET_PROMOTE_FUNCTION_MODE and I also
> combined it with the TARGET_VALID_POINTER_MODE patch. Seemed like it
> needed re-approval.
>
> OK to commit?
>
> --Douglas Rupp
> AdaCore
> 2009-08-15 Douglas B Rupp <rupp@gnat.com>
> Olivier Hainque <hainque@adacore.com>
>
> * config/ia64/ia64.c: Include libfuncs.h.
> (TARGET_PROMOTE_FUNCITON_MODE): Define target macro.
> (ia64_expand_call): Use reg 25 on VMS.
> (ia64_initialize_trampoline): Fix for VMS ABI.
> (ia64_function_arg_offset): Always returns 0 when TARGET_ABI_OPEN_VMS.
> (ia64_function_arg): Initialize reg 25 on VMS.
> Fix OpenVMS ABI issues for varargs.
> For OpenVMS, emit the Argument Information register set in the
> incoming/sibcall case as well.
> (ia64_arg_type): New function.
> (ia64_function_arg_advance): Keep track of cum->words.
> Fix OpenVMS ABI issues for varargs.
> (ia64_function_value): On VMS, promote mode of non-aggregate types.
> (ia64_override_options): Set flag_no_common on VMS.
> (ia64_init_builtins): Disable FWRITE builtin.
> (ia64_asm_output_external): Call DO_CRTL_NAMES.
> (ia64_vms_init_libfuncs): Add decc$ routines.
> (ia64_vms_valid_pointer_mode): New function.
> (ia64_struct_value_rtx): Allways NULL_RTX on VMS.
> (ia64_promote_function_mode): New function
> * config/ia64/ia64.h (TARGET_ABI_OPEN_VMS): Define as 0 for default.
> (LONG_DOUBLE_TYPE_SIZE): Force to 64 on VMS.
> (LIBCGC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
> (INIT_CUMULATIVE_ARGS): Add atypes for VMS.
> (INIT_CUMULATIVE_INCOMING_ARGS): Likewise.
> (ASM_OUTPUT_DEF): Use ISDIGIT instead of isdigit.
> Suppress trailing '#' if VALUE is numeric.
> * config/ia64/vms.h (PROMOTE_FUNCTION_MODE): Remove, code moved to
> ia64_promote_function_mode.
> (TARGET_VALID_POINTER_MODE): Define.
Yes, this is OK.
Steve Ellcey
sje@cup.hp.com