| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fields.
(complete_mode): Maintain linked list of modes that have a
given component.
(emit_mode_unit_size): Delete.
(emit_mode_nunits): New.
(emit_insn_modes_c): Update to match.
(emit_mode_adjustments): Propagate size and alignment
adjustments from component modes to their containers.
* machmode.h (mode_unit_size): Delete.
(mode_nunits): New.
(GET_MODE_NUNITS): Just return the value in the table.
(GET_MODE_UNIT_SIZE): Compute using GET_MODE_INNER and
GET_MODE_SIZE.
* expmed.c (store_bit_field, extract_bit_field): Can use a
plain move instruction if bitsize >= GET_MODE_BITSIZE of
destination/source mode, respectively.
* varasm.c (assemble_real): Write out the full size of the
constant, not just its bitsize.
(output_constant): Honor TYPE_MODE of TREE_REAL_CSTs.
* config/ia64/ia64-modes.def: Define XFmode as well as TFmode.
Use ADJUST_BYTESIZE and ADJUST_ALIGNMENT to set size and
alignment of XF and TF modes in compliance with ia64 ABIs.
Can now hardwire the format of both modes.
* config/ia64/ia64.c: Change TFmode to XFmode wherever appropriate.
(general_tfmode_operand, destination_tfmode_operand)
(tfreg_or_fp01_operand, spill_tfmode_operand): Rename to
general_xfmode_operand, destination_xfmode_operand,
xfreg_or_fp01_operand, spill_xfmode_operand respectively.
(ia64_init_builtins): Make TYPE_PRECISION of fpreg_type
and float80_type be 96 so they get XFmode. Use !TARGET_HPUX,
not INTEL_EXTENDED_IEEE_FORMAT, to decide how to define
__float128.
* config/ia64/ia64.h: Default TARGET_HPUX to 0.
Change TFmode to XFmode wherever appropriate. Remove all
references to INTEL_EXTENDED_IEEE_FORMAT.
(LONG_DOUBLE_TYPE_SIZE): Varies with TARGET_HPUX.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define (always 96).
(PREDICATE_CODES): Update to match function renames.
* config/ia64/ia64.md: Change TF to XF throughout; rename all
patterns to match. Remove all references to
INTEL_EXTENDED_IEEE_FORMAT. Update predicate calls to match
function renames.
* config/ia64/ia64-protos.c: Update all prototypes to match
renamed functions.
* config/ia64/hpux.h: Redefine TARGET_HPUX to 1.
Remove all references to INTEL_EXTENDED_IEEE_FORMAT.
* config/ia64/lib1funcs.asm: Add __divxf3 as new name for
__divtf3; keep old name for backward compatibility.
(L__compat): New section providing forwarding stubs for
__fixtfti, __fixunstfti, __floattitf.
* config/ia64/t-ia64: Add __compat to LIB1ASMFUNCS.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72916 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* config/ia64/lib1funcs.asm: Revert 2001-07-02 change.
* config/ia64/t-ia64: Likewise.
(LIB1ASMFUNCS): Update comment.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43796 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* config/ia64/ia64.h: Delete obsolete lib1funcs.asm comment.
* config/ia64/t-ia64: Change LIB1ASMFUNCS to use single underscore.
* config/ia64/lib1funcs.asm: Change macro names to match t-ia64.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43700 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* config/ia64/lib1funcs.asm (__divtf3): Fix incorrect bits in
extended precision divide.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42079 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
* dwarf2out.c (dwarf2out_line): Make last_file_num be unsigned.
* frame.h (__ia64_personality_v1): Add prototype.
* libgcc2.c (ia64_throw_helper): Change personality declaration to
prototype form. Add void * cast to first argument to personality
call.
...
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39227 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36395 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
(__modsi3, __umodsi3): Likewise.
(__udivsi3): Likewise. Normalize the TFmode values.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36261 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
Eliminate final copy from non-trapping case.
(__divdf3, __divsf3): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36177 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
* config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36174 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
Optimization Guide, minimum latency alternative.
(__moddi3, __udivdi3, __umoddi3): Likewise.
(__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36169 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT
as we would for i386 XFmode.
(PUT_REAL): Likewise.
(endian, ereal_atof, real_value_truncate): Likewise.
(ereal_isneg, toe64, etens, make_nan): Likewise.
* real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise.
* config/ia64/ia64-protos.h: Update.
* config/ia64/ia64.c (general_tfmode_operand): New.
(destination_tfmode_operand): New.
(tfreg_or_fp01_operand): New.
(ia64_split_timode): New.
(spill_tfmode_operand): New.
(ia64_expand_prologue): Use TFmode not XFmode.
(ia64_expand_epilogue): Likewise.
(ia64_function_arg): Likewise.
(ia64_function_arg_advance): Likewise.
(ia64_return_in_memory): Likewise.
(ia64_function_value): Likewise.
(ia64_print_operand): Likewise.
(ia64_register_move_cost): Set GR<->FR to 5.
(ia64_secondary_reload_class): Get GR for TImode memory op.
* config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove.
(ROUND_TYPE_ALIGN): Remove.
(LONG_DOUBLE_TYPE_SIZE): Set to 128.
(INTEL_EXTENDED_IEEE_FORMAT): Define.
(HARD_REGNO_NREGS): Use TFmode, not XFmode.
(HARD_REGNO_MODE_OK): Likewise. Disallow TImode in FRs.
(MODES_TIEABLE_P): Use TFmode, not XFmode.
(CLASS_MAX_NREGS): Likewise.
(ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks.
(PREDICATE_CODES): Update.
* config/ia64/ia64.md (movti): New.
(movti_internal): Use a clobber for memory alternatives.
(reload_inti, reload_outti): New.
(movsfcc_astep): Predicate properly.
(movdfcc_astep): Likewise.
(movxf): Remove.
(movtf): New.
(extendsftf2, extenddftf2): New.
(trunctfsf2, trunctfdf2): New.
(floatditf2, fix_trunctfdi2): New.
(floatunsditf2, fixuns_trunctfdi2): New.
(addtf3, subtf3, multf3, abstf2): New.
(negtf2, nabstf2, mintf3, maxtf3): New.
(maddtf3, msubtf3, nmultf3, nmaddtf3): New.
(cmptf): New.
(fr_spill): Use TFmode, not XFmode.
(fr_restore): Likewise.
* config/ia64/lib1funcs.asm (__divtf3): New.
* config/ia64/t-ia64 (LIB1ASMFUNCS): Add it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35689 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for massive code rearrangements.
* config/ia64/ia64.c (ia64_arpfs_regno): Remove.
(ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove.
(ia64_local_regs, ia64_need_regstk): Remove.
(ar_ccv_reg_operand): New.
(ia64_gp_save_reg): New.
(struct ia64_frame_info): Combine most of the size elements;
add new gr save elements.
(find_gr_spill): New.
(next_scratch_gr_reg): New.
(mark_reg_gr_used_mask): New.
(ia64_compute_frame_size): Rewrite. Allocate special AR regs
to GR backing store regs when possible.
(ia64_initial_elimination_offset): New.
(ia64_rap_fp_offset): Remove.
(save_restore_insns): Remove.
(setup_spill_pointers): New.
(finish_spill_pointers): New.
(spill_restore_mem): New.
(do_spill, do_restore): New.
(ia64_expand_prologue): Rewrite to use them.
(ia64_expand_epilogue): Likewise.
(ia64_direct_return): Update for current_frame_info changes.
(ia64_function_prologue): Simplify .prologue emission. Emit
.spill when needed.
(ia64_setup_incoming_varargs): Don't ever emit rtl.
(ia64_dbx_register_number): New.
(ia64_initialize_trampoline): New.
(ia64_secondary_reload_class): Request GR_REGS for integer
arithmetic destined for FR_REGS.
(ia64_init_machine_status): Don't reset return_address_pointer_rtx.
(ia64_mark_machine_status): Mark ia64_gp_save.
(rws_access_regno): Rename from rws_access_reg; don't treat
predicates specially.
(rws_access_reg): New. Update all callers.
(rtx_needs_barrier): Remove dead unspecs.
(ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit.
(ia64_encode_section_info): Silence signed/unsigned warnings.
(spill_offset, sp_offset, spill_offset_emitted): Remove.
(tmp_reg, tmp_saved): Remove.
(process_set): Rewrite to expect complicated bits via
REG_FRAME_RELATED_EXPR.
(ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
in the use of ar.ccv; never set RTX_UNCHANGING_P.
(ia64_expand_op_and_fetch): Likewise.
(ia64_expand_compare_and_swap): Likewise.
(ia64_expand_builtin): Likewise.
* config/ia64/ia64.h (AR_UNAT_REGNUM): New.
(FIRST_PSEUDO_REGISTER): Update.
(AR_M_REGNO_P): Update.
(FIXED_REGS): Don't mark three local registers as used.
(EXTRA_CC_MODES): New.
(SELECT_CC_MODE): New.
(HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode.
(HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates.
(FRAME_GROWS_DOWNWARD): Unset.
(STARTING_FRAME_OFFSET): Zero.
(ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer.
(INITIAL_ELIMINATION_OFFSET): Defer to out of line function.
(HARD_FRAME_POINTER_REGNUM): New.
(CAN_DEBUG_WITHOUT_FP): Define.
(TRAMPOLINE_TEMPLATE): Remove.
(TRAMPOLINE_SIZE): Lower to 32.
(TRAMPOLINE_ALIGNMENT): Lower to 64.
(INITIALIZE_TRAMPOLINE): Defer to out of line function.
(PREDICATE_CODES): Update.
(struct machine_function): Add ia64_gp_save.
* config/ia64/ia64.md: Purge unused unspecs.
(movsi patterns): Allow moves to/from AR_M_REGS.
(movdi patterns): Allow moves to/from p0.
(call patterns): Move most setjmp hackery to ia64_gp_save_reg.
(gr_spill, gr_restore): Indicate ar.unat read/written.
(nonlocal_goto): Don't pass old frame_pointer.
(nonlocal_goto_receiver): Remove.
(exception_receiver): New.
(builtin_setjmp_setup): New.
(builtin_setjmp_receiver): New.
* config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle.
(__ia64_nonlocal_goto): Bundle. Don't kill r7.
(__ia64_restore_stack_nonlocal): Likewise.
(__ia64_trampoline): New.
* config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line
function.
* config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35568 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
Use .s1 not .s0 for all FP instructions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33160 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
completers from mov.ret instruction.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33152 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* config/ia64/ia64.md (restore_stack_nonlocal): New.
* config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
(__ia64_restore_stack_nonlocal): New.
* config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32564 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32438 138bc75d-0d04-0410-961f-82ee72b054a4
|