| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
From-SVN: r23579
|
|
|
|
|
|
|
|
|
|
|
|
| |
* alpha.c (add_operand): Simplify the CONST_INT match.
(sext_add_operand): Correct typo in comparison by using
CONST_OK_FOR_LETTER_P.
* alpha.md (s?addq): Use sext_add_operand to allow the negative
constant alternatives to be generated.
(mulsi3, muldi3, umuldi3_highpart): Loosen constraints to allow
small constants, since the hw instructions do.
From-SVN: r23551
|
|
|
|
|
|
|
| |
* alpha.md (addsi3, subsi3): No new temporaries once cse is
no longer expected.
From-SVN: r23537
|
|
|
|
|
|
|
|
|
| |
midpoint to CSE.
* alpha.md (addsi3, subsi3): Expand to a DImode temporary so as
to expose this midpoint to CSE.
From-SVN: r23536
|
|
|
|
|
|
|
|
|
|
|
|
| |
* gcc.c (EXTRA_SPECS, extra_specs): Introduce an intermediate
structure which has exactly the members provided by EXTRA_SPECS.
Xmalloc() the real `extra_specs', and initialize it from this
intermediate structure.
* alpha.h (EXTRA_SPECS): Revert change for missing initializers.
* mips.h (EXTRA_SPECS): Likewise.
* sparc.h (EXTRA_SPECS): Likewise.
From-SVN: r23406
|
|
|
|
|
|
|
|
|
|
| |
* alpha.c (override_options): Use ISDIGIT(), not isdigit(). Cast
the argument to (unsigned char).
* alpha.h (EXTRA_SPECS): Add missing initializers.
(ASM_GENERATE_INTERNAL_LABEL): Ensure the argument matches the
format specifier.
From-SVN: r23253
|
|
|
|
|
|
|
|
|
| |
attribute.
Fine-grained control of -fcheck-memory-usage with new no_check_memory_usage
attribute. Misc minor bugfixes and tests for it too.
From-SVN: r22983
|
|
|
|
| |
From-SVN: r22796
|
|
|
|
|
|
|
|
| |
* alpha.c (get_aligned_mem): Revert Sep 20 change.
(alpha_set_memflags, alpha_set_memflags_1): Likewise.
(alpha_align_insns): Properly calculate initial offset wrt max_align.
From-SVN: r22559
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* alpha.c (alpha_sr_alias_set): New variable.
(override_options): Set it.
(alpha_expand_prologue, alpha_expand_epilogue): Use it.
(mode_mask_operand): Fix signed-unsigned comparision warning.
(alpha_expand_block_move): Likewise.
(print_operand): Likewise.
(get_aligned_mem): Use change_address.
(alpha_set_memflags, alpha_set_memflags_1): Set the alias set.
(alphaev4_insn_pipe, alphaev4_next_group): New functions.
(alphaev4_next_nop, alphaev5_next_nop): New functions.
(alpha_align_insns): Remade from old alphaev5_align_insns
to handle multiple processors.
(alpha_reorg): Call alpha_align_insns for both ev4 and ev5.
* output.h (label_to_alignment): Prototype.
From-SVN: r22505
|
|
|
|
|
|
|
|
|
|
| |
* alpha.c (alpha_return_addr): SET should be VOIDmode.
(alpha_emit_set_long_const): Rewrite to be callable from reload
and 32-bit hosts.
(alpha_expand_epilogue): Update for alpha_emit_set_long_const.
* alpha.md (movdi): Likewise.
From-SVN: r22479
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused. Kill.
(BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill.
(BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill.
(BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New.
* c-decl.c (init_decl_processing): Update accordingly.
* expr.c (expand_builtin): Likewise.
* cp/decl.c (init_decl_processing): Likewise.
* rtl.h (global_rtl): Add cfa entry.
(virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New.
(LAST_VIRTUAL_REGISTER): Update.
* emit-rtl.c (global_rtl): Add cfa entry.
(init_emit): Initialize it.
* function.c (cfa_offset): New.
(instantiate_virtual_regs): Initialize it.
(instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx.
(expand_function_end): Call expand_eh_return.
* tm.texi (ARG_POINTER_CFA_OFFSET): New.
* except.c (current_function_eh_stub_label): Kill.
(current_function_eh_old_stub_label): Likwise; update all references.
(expand_builtin_set_return_addr_reg): Kill.
(expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill.
(expand_builtin_set_eh_regs): Kill.
(eh_regs): Produce a third reg for the actual handler address.
(eh_return_context, eh_return_stack_adjust): New.
(eh_return_handler, eh_return_stub_label): New.
(init_eh_for_function): Initialize them.
(expand_builtin_eh_return, expand_eh_return): New.
* except.h: Update prototypes.
* flow.c (find_basic_blocks_1): Update references to the stub label.
* function.h (struct function): Kill stub label elements.
* libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the
register number is one that would be in the previous window.
Provide a dummy definition for non-windowed targets.
(get_reg_addr): New function.
(get_reg, put_reg, copy_reg): Use it.
(__throw): Rely on in_reg_window, not INCOMING_REGNO. Kill stub
generating code and use __builtin_eh_return. Use __builtin_dwarf_cfa.
* alpha.c (alpha_eh_epilogue_sp_ofs): New.
(alpha_init_expanders): Initialize it.
(alpha_expand_epilogue): Use it.
* alpha.h: Declare it.
* alpha.md (eh_epilogue): New.
* m68h.h (ARG_POINTER_CFA_OFFSET): New.
* sparc.h (ARG_POINTER_CFA_OFFSET): New.
From-SVN: r22436
|
|
|
|
|
|
|
| |
* alpha.c (alphaev5_insn_pipe): Abort on default case.
(alphaev5_next_group): Swallow CLOBBERs and USEs.
From-SVN: r22373
|
|
|
|
|
|
|
|
|
|
| |
* expr.c: Corrected comment about what MOVE_RATIO does.
* config/alpha/alpha.h: Ditto.
* config/1750a/1750a.h: Ditto.
* config/clipper/clipper.h: Ditto.
* config/i386/i386.h: Ditto.
From-SVN: r22339
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
we're generating now.
* alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence,
not whatever we're generating now.
* alpha.c (set_frame_related_p, FRP): New.
(alpha_expand_prologue): Mark frame related insns.
(alpha_expand_epilogue): Likewise, but with a null FRP.
* alpha.h (INCOMING_RETURN_ADDR_RTX): New.
* alpha.md (exception_receiver): New.
* alpha/crtbegin.asm (.eh_frame): New beginning.
(__do_frame_setup, __do_frame_takedown): New.
* alpha/crtend.asm (.eh_frame): New ending.
* alpha/elf.h (DWARF2_DEBUGGING_INFO): Define.
(ASM_SPEC): Don't emit both dwarf2 and mdebug.
(ASM_FILE_START): Don't emit .file for dwarf2.
From-SVN: r22277
|
|
|
|
|
|
|
| |
* alpha/va_list.h: New file.
* alpha/x-alpha (EXTRA_HEADERS): New. Add va_list.h.
From-SVN: r22137
|
|
|
|
|
|
|
| |
* alpha.h (LABEL_ALIGN_AFTER_BARRIER): Was ALIGN_LABEL_AFTER_BARRIER.
(MD_SCHED_VARIABLE_ISSUE): New.
From-SVN: r22011
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* alpha.c (alpha_handle_trap_shadows): Remove do-nothing exit.
Tag trapb and next insn with TImode.
(alphaev5_insn_pipe, alphaev5_next_group, alphaev5_align_insns): New.
(alpha_reorg): Add conditional for alpha_handle_trap_shadows.
Invoke alphaev5_align_insns as appropriate.
* alpha.md (attr type): Add multi.
(define_asm_attributes): New.
(prologue_stack_probe_loop, builtin_setjmp_receiver): Set type multi.
(arg_home): Likewise.
(fnop, unop, realign): New.
From-SVN: r22010
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* c-decl.c (init_decl_processing): Remove unneeded &.
* alpha.h (alpha_initialize_trampoline): Provide prototype.
* except.c (set_exception_lang_code, set_exception_version_code):
Change parameter from `short' to `int' to avoid using a gcc
extension.
* except.h (set_exception_lang_code, set_exception_version_code):
Likewise for prototypes.
* flow.c (count_reg_references): Remove unused variables `regno'
and `i'.
* gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'.
* prefix.c (translate_name): Cast the result of `alloca'.
* varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement.
Co-Authored-By: Jeffrey A Law <law@cygnus.com>
From-SVN: r21781
|
|
|
|
| |
From-SVN: r21752
|
|
|
|
|
|
|
|
|
| |
Sat Aug 15 20:22:33 1998 H.J. Lu (hjl@gnu.org)
* config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated
return type.
* config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise.
From-SVN: r21751
|
|
|
|
|
|
|
|
|
|
| |
SET are incompatible.
* genrecog.c (add_to_sequence): Fatal error if the modes of the operands
of SET are incompatible.
* alpha.md: Fix max and min patterns so modes of SET operands match.
From-SVN: r21731
|
|
|
|
|
|
|
| |
* alpha.md (extxl+1,+2): New patterns to work around
combine lossage.
From-SVN: r21651
|
|
|
|
|
|
|
| |
* alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
(fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap.
From-SVN: r21501
|
|
|
|
|
|
|
|
|
|
| |
insns and splits.
* alpha.md (fix_truncdfsi2, fix_truncsfsi2): Remove the define_expands,
but keep the insns and splits. Adjust so when the ultimate destination
is memory, use cvtql.
From-SVN: r21322
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* alpha.h (CPP_SPEC): Tidy. Hook to cpp_cpu and cpp_subtarget.
(CPP_SUBTARGET_SPEC): Default to empty string.
(CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New.
(EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New.
* alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker).
* alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New.
(LIB_SPEC): Tidy.
* alpha/linux.h (CPP_PREDEFINES): Tidy.
* alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New.
* alpha/netbsd.h (CPP_PREDEFINES): Tidy.
* alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC.
* alpha/win-nt.h (CPP_PREDEFINES): Likewise.
* alpha/vsf.h (CPP_PREDEFINES): Likewise.
(CPP_SUBTARGET_SPEC): New. Do this instead of overriding CPP_SPEC.
* alpha/vxworks.h: Likewise.
From-SVN: r21311
|
|
|
|
| |
From-SVN: r20978
|
|
|
|
| |
From-SVN: r20944
|
|
|
|
|
|
|
|
|
|
| |
VMS.
* alpha.c (alpha_initialize_trampoline): Hack around Pmode/ptr_mode
lossage on VMS. Reported by kkaempf@rmi.de.
* alpha/vms.h (TRAMPOLINE_TEMPLATE): Add missing 0.
From-SVN: r20916
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* alpha.c (alpha_initialize_trampoline): Take arguments describing
the layout. Use ptr_mode. Disable hint generation. Use gen_imb.
* alpha.h (INITIALIZE_TRAMPOLINE): Pass extra args to the init func.
(TRANSFER_FROM_TRAMPOLINE): Move ...
* alpha/osf.h: ... here.
* alpha/vms.h (INITIALIZE_TRAMPOLINE): Use alpha_initialize_trampoline.
(TRANSFER_FROM_TRAMPOLINE): Remove undef.
* alpha/win-nt.h: Likewise.
* alpha/vxworks.h: Likewise.
* alpha/linux.h: Revert gcc2 merge lossage.
From-SVN: r20864
|
|
|
|
|
|
|
|
|
|
| |
* alpha.c (reg_or_6bit_operand): Recognize CONSTANT_P_RTX.
(reg_or_8bit_operand, cint8_operand, add_operand): Likewise.
(sext_add_operand, and_operand, or_operand): Likewise.
(reg_or_cint_operand, some_operand, input_operand): Likewise.
* alpha.h (PREDICATE_CODES): Add CONSTANT_P_RTX where needed.
From-SVN: r20847
|
|
|
|
|
|
| |
details.
From-SVN: r20808
|
|
|
|
| |
From-SVN: r20755
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* alpha.c: Include system.h and toplev.h.
(cint8_operand): Mark parameter `mode' with ATTRIBUTE_UNUSED.
(const48_operand): Likewise.
(mode_width_operand): Likewise.
(mode_mask_operand): Likewise.
(mul8_operand): Likewise.
(current_file_function_operand): Likewise.
(signed_comparison_operator): Likewise.
(divmod_operator): Likewise.
(any_memory_operand): Likewise.
(alpha_return_addr): Likewise for parameter `frame'.
(alpha_builtin_saveregs): Likewise for parameter `arglist'.
(vms_valid_decl_attribute_p): Likewise for parameters `decl' and
`attributes'.
(alpha_start_function): Likewise for parameter `decl'. Use
HOST_WIDE_INT_PRINT_DEC in call to fprintf. Fix various format
specifiers. Remove unused variables `lab' and `name'.
(alpha_end_function): Mark parameter `decl' with ATTRIBUTE_UNUSED.
(check_float_value): Likewise for parameter `overflow'.
(alpha_need_linkage): Likewise for parameters `name' and `is_local'.
* alpha.h (ASM_IDENTIFY_GCC, ASM_IDENTIFY_LANGUAGE): Define as
taking an argument.
(ASM_OUTPUT_SHORT): Cast argument to `int' in call to fprintf.
(ASM_OUTPUT_CHAR): Likewise.
(ASM_OUTPUT_BYTE): Likewise.
(PRINT_OPERAND_ADDRESS): Use HOST_WIDE_INT_PRINT_DEC in call to
fprintf.
(PUT_SDB_EPILOGUE_END): Mention argument `NAME' in definition.
Add prototypes for functions in alpha.c.
* alpha.md (ashldi3): Add default case in switch.
From-SVN: r20737
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* alpha.c (alpha_function_name): Delete.
(alpha_ra_ever_killed): Notice current_function_is_thunk.
(alpha_sa_mask, alpha_sa_size, alpha_does_function_need_gp): Likewise.
(alpha_start_function): Reorg from output_prologue.
(alpha_end_function): Reorg from output_epilogue.
* alpha.h (ASM_DECLARE_FUNCTION_NAME): Call alpha_start_function.
(ASM_DECLARE_FUNCTION_SIZE): New.
(FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
(PROFILE_BEFORE_PROLOGUE): Set.
(ASM_OUTPUT_MI_THUNK): Remove bits now output by start/end_function.
* alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise.
From-SVN: r20709
|
|
|
|
| |
From-SVN: r20703
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* alpha.c (alpha_expand_prologue, alpha_expand_epilogue): New fns.
(output_prologue, output_epilogue): Merge VMS and OSF versions;
Remove anything related to the actual code generation.
(output_end_prologue): New function.
(alpha_sa_mask, alpha_sa_size): Merge VMS and OSF versions.
(alpha_does_function_need_gp): Return false for VMS.
(alpha_function_needs_gp): Make static.
(add_long_const): Delete.
(summarize_insn): Don't assume a SUBREG is of a REG.
Prototype all static functions. Rename VMS-specific global
variables vms_*.
* alpha.h (TARGET_CAN_FAULT_IN_PROLOGUE): Default to 0.
(FUNCTION_BOUNDARY): Align to cache line.
(LOOP_ALIGN, ALIGN_LABEL_AFTER_BARRIER): Align to octaword.
(FUNCTION_END_PROLOGUE): New macro.
* alpha.md (attribute length): New. Mark all insns.
(return_internal, prologue_stack_probe_loop) New patterns.
(prologue, init_fp, epilogue): New patterns.
Disable peepholes.
* linux.h (TARGET_CAN_FAULT_IN_PROLOGUE): Define.
From-SVN: r20528
|
|
|
|
| |
From-SVN: r20466
|
|
|
|
|
|
|
|
| |
* alpha/vms.h (EXTRA_SECTIONS): Add in_ctors and in_dtors.
(EXTRA_SECTION_FUNCTIONS): Add ctors_section and dtors_section.
(ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define.
From-SVN: r20376
|
|
|
|
| |
From-SVN: r20318
|
|
|
|
| |
From-SVN: r20239
|
|
|
|
|
|
|
|
|
| |
sign-extension of inputs.
* alpha.md (divsi3, udivsi3, modsi3, umodsi3): Enable, and work
around an OSF/1 library bug wrt sign-extension of inputs.
From-SVN: r20183
|
|
|
|
| |
From-SVN: r19822
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* alpha/osf.h (HAVE_STAMP_H): Define.
* alpha.c: Use it.
* alpha/netbsd.h, alpha/netbsd-elf.h: New files.
* configure.in (alpha*-*-netbsd*): New.
Based on patches from Paul H. Anderson <pha@pdq.com>.
* configure.in (alpha*-*-linux-*): Kill xm_defines.
(alpha*-*-linux-gnulibc1*) [fixincludes]: Define.
* alpha/xm-linux.h: Remove file.
From-SVN: r19809
|
|
|
|
| |
From-SVN: r19757
|
|
|
|
|
|
|
|
|
|
|
|
| |
* varasm.c (make_decl_rtl): Revert April 1 change.
* alpha/alpha.h, alpha/win-nt.h, arm/arm.h, i386/unix.h, i960/i960.h,
m68k/linux.h, pa/pa.h, sparc/sparc.h, vax/vax.h (ASM_OUTPUT_MI_THUNK):
Get function name from the SYMBOL_REF in the DECL_RTL, not from
DECL_ASSEMBLER_NAME.
* i386/winnt.c (gen_stdcall_suffix): Comment for questionable use of
DECL_ASSEMBLER_NAME.
From-SVN: r19723
|
|
|
|
| |
From-SVN: r19699
|
|
|
|
|
|
|
|
|
|
| |
* alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Add '`'.
* alpha.c (print_operand): Handle it.
* alpha.md (fix_truncdfsi2, fix_truncsfsi2): New patterns and
related define_splits. Also add peepholes for SImode reload
plus sign_extend lossage.
From-SVN: r19664
|
|
|
|
|
|
|
|
|
|
|
|
| |
* loop.c (get_condition): Don't combine when either compare is MODE_CC.
* alpha.c (alpha_emit_conditional_branch): New function. Taken from
the body of beq; additionally set the mode of the branch to CCmode for
FP compares and not fast_math.
(alpha_emit_conditional_move): Always use a compare insn for FP
when not fast_math, as well as setting CCmode on the cmov.
* alpha.md (beq, bne, blt, et al): Call alpha_emit_conditional_branch.
From-SVN: r19645
|
|
|
|
| |
From-SVN: r19601
|