Age | Commit message (Collapse) | Author | Files | Lines |
|
(setjmp{,_64,_32}): New patterns.
From-SVN: r11520
|
|
From-SVN: r11517
|
|
(flags_in_68881): New function.
From-SVN: r11516
|
|
* h8300/h8300.h (SP_AND_G_REGS): Renamed from SP_AND_G_REG.
(CC_DONE_CBIT): Delete.
(CC_OVERFLOW_0,CC_OVERFLOW_UNUSABLE,CC_NO_CARRY): Define.
* h8300/h8300.c (cond_string): Delete CC_DONE_CBIT handling.
(notice_update_cc): Delete CC_CBIT, CC_WHOOPS. Add CC_SET_ZN_C0.
(restore_compare_p): New function.
(shift_one): Use shll instead of shal so overflow bit is usable.
Set cc_valid bits to cc_status.flags values.
(emit_a_shift): Set cc_status.flags.
* h8300/h8300.md (attr cc): Delete whoops,cbit. Add set_zn_c0.
(all patterns) Update cc attr setting.
(tstqi,tsthi,tstsi): Delete CC_DONE_CBIT handling.
(addhi3,subhi3): Change define_expand to define_insn.
(branch_true,branch_false): Check if compare needs to be restored.
From-SVN: r11514
|
|
From-SVN: r11513
|
|
From-SVN: r11511
|
|
attr calcs to be more conservative.
From-SVN: r11509
|
|
From-SVN: r11502
|
|
From-SVN: r11501
|
|
From-SVN: r11500
|
|
* sparc.h (TARGET_SWITCHES): Move -mlive-g0 from here,
* splet.h (SUBTARGET_SWITCHES): To here.
From-SVN: r11499
|
|
splet.h (SUBTARGET_SWITCHES): To here.
From-SVN: r11498
|
|
From-SVN: r11496
|
|
From-SVN: r11495
|
|
* sparc/sparc.h (MASK_LIVE_G0,TARGET_LIVE_G0): Define.
(TARGET_SWITCHES): Add live-g0.
(FIRST_PSEUDO_REGISTER): Add 1 for %icc (now 101).
(FIXED_REGISTERS,CALL_USED_REGISTERS): Update.
(FIXED_REGISTERS): %g0 is fixed by default.
(SPARC_{FIRST,LAST}_V9_FCC_REG): Define.
(SPARC_{ICC,FCC}_REG): Define.
(CONDITIONAL_REGISTER_USAGE): Don't fix %fcc0 if v8.
(REG_CLASS_CONTENTS): Reg 0 is an int reg, reg 100 is %icc.
(REGNO_REG_CLASS): Rewrite to use global `sparc_regno_reg_class'.
(REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER,LEAF_REGISTERS): Add %icc.
(REG_CLASS_FROM_LETTER): Handle 'c' for FPCC_REGS in non-v9 case.
(REGNO_OK_FOR_{BASE,INDEX}_P): Treat %g0 as a normal reg.
(REG_OK_FOR_{BASE,INDEX}_P,EXTRA_CONSTRAINT): Likewise.
(REGISTER_NAMES): Add %icc.
(ADDITIONAL_REGISTER_NAMES): Use SPARC_ICC_REG.
* sparc/sparc.c (leaf_reg_remap): Add %icc=100.
(reg_or_0_operand): Don't allow 0 if TARGET_LIVE_G0.
(fcc_reg_operand): Renamed from ccfp_reg_operand.
Use SPARC_FCC_REG. Don't treat reg 0 as an fcc reg. Don't match
modes if `mode' argument is VOIDmode.
(icc_or_fcc_reg_operand): New function.
(gen_compare_reg): Use SPARC_FCC_REG for v8 fp compares.
Use SPARC_ICC_REG for int compares.
(eligible_for_epilogue_delay): Don't allow anything if TARGET_LIVE_G0.
Delete unnecessary test for %g0.
(emit_move_sequence): Don't emit (set (mem) (const_int 0)) if
TARGET_LIVE_G0.
(output_scc_insn): Label moved to operand 3. Condition code reg
moved to operand 2.
(sparc_mode_class): Enum C_MODE renamed to CC_MODE.
(hard_32bit_mode_classes): Set reg 0 to S_MODES. Add entry for %icc.
(hard_64bit_mode_classes): Set reg 0 to D_MODES. Add entry for %icc.
(sparc_regno_reg_class): New global.
(sparc_init_modes): Initialize it.
(output_cbranch): Delete fp_cond_reg argument.
(print_operand, MEM op): Don't print "%g0+" if TARGET_SPARCLET.
(sparc_flat_eligible_for_epilogue_delay): Don't allow anything if
TARGET_LIVE_G0.
* sparc/sparc.md (live_g0): New attribute.
(*): Integer condition code register is now reg 100.
Use SPARC_ICC_REG instead of hardcoding reg 100 where possible.
Non-v9 floating point condition code register is now reg 96.
(*cmp{sf,df,tf}_{fpe,fp}_sp{32,64}): Combine v9/non-v9 cases.
(*{normal,inverted}_{,fp,fpe}_branch): Update call to output_cbranch.
(*mov{qi,hi,si}_insn): Don't use if TARGET_LIVE_G0.
(*mov{qi,hi,si}_insn_liveg0): New patterns.
(*mov{si,di,sf,df,tf}_ccfp{,e}_sp64): ccfp_reg_operand renamed to
fcc_reg_operand.
(*negdi2_sp32,negsi2,one_cmplsi2,ffssi2): Ensure %%g0 is 0 if
TARGET_LIVE_G0.
(*one_cmpldi2_sp32): Move operand 1 to rs1 and use 0 as rs2.
(patterns that use %g0 in rs2): Use 0 immediate value instead.
(patterns that read %g0): Don't use if TARGET_LIVE_G0.
From-SVN: r11494
|
|
From-SVN: r11493
|
|
* lib2funcs.asm: Remove entry/exit routines. Move them into...
* ee.asm: New file. Entry/exit code.
* ee_fp.asm: New file. Entry/exit code with frame pointer.
* t-pa: Corresponding changes.
* t-pro: Corresponding changes.
From-SVN: r11491
|
|
From-SVN: r11490
|
|
* pa.c: Fix misc small typos/thinkos in recent changes.
From-SVN: r11489
|
|
From-SVN: r11488
|
|
* lib2funcs.asm (__outline_prologue): Remove frame pointer
support.
(__outline_prologue_fp): Out of line prologue with frame pointer.
(__outline_epilogue, outline_epilogue_fp): Similarly.
* pa.c (compute_frame_size): Allocate enough space to avoid holes
in the callee register saves. Remove some special handling of %r3.
(hppa_expand_prologue): Don't do an out of line prologue/epilogue
if it would take more insns than an inline prologue/epilogue.
Don't leave holes in the callee register save set.
(hppa_expand_prologue): Corresponding changes. Pass stack size
to out of line epilogue code.
* pa.h (FRAME_POINTER_REQUIRED): Revert last change.
* pa.md (outline_prologue_call): Handle outline prologues which
don't need frame pointers.
(outline_epilogue_call): Similarly.
* t-pro: Reenable multilib code. Build a set of libraries that
optimize for space.
From-SVN: r11483
|
|
From-SVN: r11482
|
|
From-SVN: r11481
|
|
From-SVN: r11480
|
|
From-SVN: r11479
|
|
From-SVN: r11478
|
|
From-SVN: r11477
|
|
(switch_table_difference_label_flag): Make extern.
From-SVN: r11476
|
|
hi_limit to 510 instead of 512.
From-SVN: r11464
|
|
* sparc/sparc.md (*mov{qi,hi,si}_insn): Simplify length attribute.
(*movsi_insn): Use fpload/fpstore attributes for fp loads/stores.
%r1 -> %1 for fpstore alternative.
(*movsf_insn,*movsf_no_f_insn): %r1 -> %1.
From-SVN: r11463
|
|
From-SVN: r11460
|
|
From-SVN: r11459
|
|
From-SVN: r11457
|
|
* lib2funcs.asm (__outline_prologue): New "function".
(__outline_epilogue): New "function".
* pa.h (TARGET_SPACE): Define.
(target_flags): Add -mspace and -mno-space. Enable/disable
space saving optimizations.
(FRAME_POINTER_REQUIRED): Frame pointers are always required
when generating out of line prologues and epilogues.
* pa.c (compute_frame_size): Handle out of line prologues/epilogues.
(hppa_expand_prologue): If optimizing for space, emit an out of
line prologue.
* pa.c (compute_frame_size): Handle out of line prologues/epilogues.
(hppa_expand_prologue): If optimizing for space, emit an out of
line prologue.
(hppa_expand_epilogue): Similarly.
(override_options): Optimizing for space is not compatable with
either profiling or PIC code generation.
* pa.md (outline_prologue_call): New pattern.
(outline_epilogue_call): Likewise.
From-SVN: r11438
|
|
* sparc/sparc.md (*cmp{si,di}_insn): %r0 -> %0.
(DFmode move split): Ensure registers not extended v9 fp regs.
(*mov{sf,df,tf}_cc_reg_sp64): %r3 -> %3.
From-SVN: r11437
|
|
From-SVN: r11430
|
|
From-SVN: r11429
|
|
by ASM_OUTPUT_INTERNAL_LABEL.
(FUNCTION_PROFILER): Emit label references corresponding to those generated
by ASM_OUTPUT_INTERNAL_LABEL.
(MOTOROLA, MOTOROLA_BSR, ...): Define #ifndef USE_GAS.
(ASM_SPEC): Define properly #ifdef USE_GAS.
(LIB_SPEC): -L/usr/lib/libp deleted.
(STARTFILE_SPEC): -L/usr/lib/libp added.
(DEFAULT_A_OUT_NAME): Define.
(LINK_SPEC): Pass -v if GNU ld is used.
(LOCAL_LABEL_PREFIX): Local labels start with .L using GAS, else L%.
(USER_LABEL_PREFIX): Undefine.
(FUNCTION_PROFILER): Call asm_fprintf instead of normal fprintf.
(ASM_APP_ON, ASM_FILE_START): GAS supports it.
(CTORS_.../DTORS_...): Define if GNU ld is used.
(ASM_FILE_START): Define properly for Motorola and GNU as syntax.
(TARGET_VERSION): Re-define only #ifndef USE_GAS.
(CALL_USED_REGISTERS): Deleted.
(GLOBAL_ASM_OP): Re-define only #ifndef USE_GAS.
(ASM_{LONG,SHORT,CHAR,BYTE,BYTE_OP}): New macros.
(ASM_OUTPUT_{DOUBLE,LONG_DOUBLE,FLOAT,INT,SHORT}): Use them.
(ASM_OUTPUT_{CHAR,BYTE,ASCII,FLOAT_OPERAND,DOUBLE_OPERAND}): Likewise.
(ALIGN_ASM_OP, SKIP_ASM_OP): New macros.
(ASM_OUTPUT_{ALIGN,SKIP}): Use them.
(ASM_OUTPUT_SOURCE_FILENAME): Define only if not using GNU as.
(ASM_{GENERATE,OUTPUT}_INTERAL_LABEL): Provide proper definitions for
Motorola and GNU as syntax.
(ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Changed for portability between
Motorola and GNU as syntax.
(ASM_OUTPUT_{CASE_LABEL,OPCODE}): Define only if not using GNU as.
(ASM_OUTPUT_CASE_FETCH, ASM_RETURN_CASE_JUMP): New macros.
(ASM_OUTPUT_{COMMON,LOCAL}): Proper defns for Motorola and gas syntax.
(SDB_...): Define only for Motorola as.
(ALT_LIBM): New define to tell g++.c about an alternative name for `-lm'.
(MATH_LIBRARY, NEED_ATEXIT, HAVE_ATEXIT, EXIT_BODY): New macros.
From-SVN: r11428
|
|
From-SVN: r11427
|
|
For SH3e, do reject parameter that won't fit entirely in registers.
From-SVN: r11424
|
|
smulsi3_highpart, umulsi3_highpart): Renames operands 1/2 to 0/1.
(mulsidi3, umulsidi3): Add support for TARGET_LITTLE_ENDIAN.
From-SVN: r11423
|
|
From-SVN: r11422
|
|
(machine_dependent_reorg): In TARGET_RELAX code, when scan
forward from LINK, fail if pass a CODE_LABEL before finding INSN.
Fail if SCAN not INSN is a JUMP_INSN.
From-SVN: r11419
|
|
From-SVN: r11417
|
|
From-SVN: r11416
|
|
(ASM_OUTPUT_LABEL): Use xstrdup instead of strdup.
(FIX_FRAME_POINTER_ADDRESS): Don't use DEPTH in string.
From-SVN: r11414
|
|
(float_label): xstrdup instead of strdup.
From-SVN: r11413
|
|
From-SVN: r11406
|
|
with TARGET_ALIGN_300.
* h8300.h (BIGGEST_FIELD_ALIGNMENT): Replace uses of
TARGET_ALIGN_STRUCT_300 with TARGET_ALIGN_300.
(BIGGEST_ALIGNMENT): Likewise.
From-SVN: r11403
|
|
From-SVN: r11402
|