* pa-linux.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Define. * pa-protos.h (attr_length_millicode_call, attr_length_call, pa_init_machine_status): Declare new global functions. * pa.c (void copy_fp_args, length_fp_args, get_plabel): Declare and implement new functions. (attr_length_millicode_call, attr_length_call): Implement. (total_code_bytes): Change type to long. (pa_output_function_prologue): Compute total_code_bytes on TARGET_64BIT. Reset counter if flag_function_sections. (output_deferred_plabels): Set output alignment to 3 for TARGET_64BIT. (output_cbranch): Move call to gen_label_rtx. (output_millicode_call): Rewrite adding long TARGET_64BIT call, expose delay slot in all variants, shorten pc-relative calls. (output_call): Rewrite adding long TARGET_64BIT call, improved delay slot usage and exposure, various new call variants, and shortened sequences for some variants on TARGET_PA_20. Miscellaneous format changes. * pa.h (total_code_bytes): Change type to long. (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_LONG_ABS_CALL, TARGET_LONG_PIC_SDIFF_CALL, TARGET_LONG_PIC_PCREL_CALL): Define. (TARGET_SWITCHES): Add "-mlong-calls" and "-mno-long-calls" options. (EXTRA_CONSTRAINT, GO_IF_LEGITIMATE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Don't use long floating point loads and stores on TARGET_ELF32. *pa.md (define_delay): Allow insns in delay on TARGET_PORTABLE_RUNTIME. (unnamed patterns for mulsi3, divsi3, udivsi3, modsi3, umodsi3 and canonicalize_funcptr_for_compare expanders): Calculate attribute length attr_length_millicode_call(). (call_internal_symref, call_value_internal_symref): Clobber register 1. Calculate attribute length using attr_length_call(). (call_internal_reg_64bit, call_value_internal_reg_64bit): Move gp load to delay slot. (sibcall, sibcall_value): Rewrite. (sibcall_internal_symref, sibcall_value_internal_symref): Clobber register 1. Use attr_length_call(). (sibcall_internal_symref_64bit, sibcall_value_internal_symref_64bit): New patterns. (unamed pattern for canonicalize_funcptr_for_compare): Rewrite. * som.h (MEMBER_TYPE_FORCES_BLK): Define. * t-pa64 (TARGET_LIBGCC2_CFLAGS): Add "-mlong-calls". * doc/invoke.texi (mlong-calls): Document. From-SVN: r58665
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
elf.h | Loading commit data... | |
lib2funcs.asm | Loading commit data... | |
long_double.h | Loading commit data... | |
milli64.S | Loading commit data... | |
pa-64.h | Loading commit data... | |
pa-hiux.h | Loading commit data... | |
pa-hpux.h | Loading commit data... | |
pa-hpux10.h | Loading commit data... | |
pa-hpux11.h | Loading commit data... | |
pa-hpux7.h | Loading commit data... | |
pa-hpux9.h | Loading commit data... | |
pa-linux.h | Loading commit data... | |
pa-modes.def | Loading commit data... | |
pa-oldas.h | Loading commit data... | |
pa-osf.h | Loading commit data... | |
pa-pro-end.h | Loading commit data... | |
pa-protos.h | Loading commit data... | |
pa.c | Loading commit data... | |
pa.h | Loading commit data... | |
pa.md | Loading commit data... | |
pa32-linux.h | Loading commit data... | |
pa32-regs.h | Loading commit data... | |
pa64-hpux.h | Loading commit data... | |
pa64-linux.h | Loading commit data... | |
pa64-regs.h | Loading commit data... | |
pa64-start.h | Loading commit data... | |
quadlib.c | Loading commit data... | |
rtems.h | Loading commit data... | |
som.h | Loading commit data... | |
t-bsd | Loading commit data... | |
t-dce-thr | Loading commit data... | |
t-hpux-shlib | Loading commit data... | |
t-linux | Loading commit data... | |
t-linux64 | Loading commit data... | |
t-mpeix | Loading commit data... | |
t-pa | Loading commit data... | |
t-pa-hpux | Loading commit data... | |
t-pa64 | Loading commit data... | |
t-pro | Loading commit data... | |
x-ada | Loading commit data... |