ia64.c: Include libfuncs.h.
authorDouglas B Rupp <rupp@gnat.com>
Sat, 22 Aug 2009 02:50:30 +0000 (02:50 +0000)
committerDouglas Rupp <rupp@gcc.gnu.org>
Sat, 22 Aug 2009 02:50:30 +0000 (02:50 +0000)
commitf2972bf8bfded6c265ad6e7e55472070d8538456
tree5ba87de8a7d9c89aad2cd960d2d8dbb5410cc3ed
parent124b06300a9b1e1469f712b6db8f8641ce4af0f4
ia64.c: Include libfuncs.h.

* 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.

Co-Authored-By: Olivier Hainque <hainque@adacore.com>
From-SVN: r151009
gcc/ChangeLog
gcc/config/ia64/ia64.c
gcc/config/ia64/ia64.h
gcc/config/ia64/vms.h