Age | Commit message (Collapse) | Author | Files | Lines |
|
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: r11497
|
|
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
|
|
(va_arg): Add little-endian SH3E support. Fix big-endian version
to work for arguments smaller than the word size.
From-SVN: r11492
|
|
* 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
|
|
From-SVN: r11487
|
|
From-SVN: r11486
|
|
From-SVN: r11485
|
|
From-SVN: r11484
|
|
* 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
|
|
From-SVN: r11475
|
|
From-SVN: r11465
|
|
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: r11462
|
|
with DECL_NO_STATIC_CHAIN set, abort.
(expand_expr, case *_DECL): If we make a non-local
reference from a function with DECL_NO_STATIC_CHAIN set, abort.
(expand_expr, case ADDR_EXPR): We don't need a trampoline for a
function with DECL_NO_STATIC_CHAIN set.
From-SVN: r11461
|
|
From-SVN: r11460
|
|
From-SVN: r11459
|
|
vary depending on...
* loop.c (init_loop): Use pseudo reg in add_cost computation
so cost doesn't vary depending on whether reg 0 happens to be
fixed or not.
From-SVN: r11458
|
|
From-SVN: r11457
|
|
From-SVN: r11456
|
|
From-SVN: r11455
|
|
From-SVN: r11454
|
|
From-SVN: r11453
|
|
From-SVN: r11452
|
|
From-SVN: r11451
|
|
From-SVN: r11450
|
|
From-SVN: r11449
|
|
(__objc_init_install_dtable): Likewise.
(__objc_update_dispatch_table_for_class): Likewise.
(__objc_print_dtable_stats): Likewise.
From-SVN: r11448
|
|
(sel_get_any_uid, sel_get_name, sel_register_name): Likewise.
(sel_register_typed_name): Likewise.
From-SVN: r11447
|
|
(struct sarray): Maintain multiple versions.
(sarray_remove_garbage): Add prototype.
From-SVN: r11446
|
|
(sarray_at_put, sarray_new, sarray_lazy_copy):
Modify/copy sarray structure/data in a thread-safe manner
(sarray_{realloc,free}): Reallocate/free sarray structure/data in a
thread-safe manner.
From-SVN: r11445
|
|
From-SVN: r11444
|
|
From-SVN: r11443
|