11369 Commits

Author SHA1 Message Date
Richard Kenner
03ffa17103 (final_scan_insn, case CODE_LABEL): Invoke FINAL_PRESCAN_INSN if
FINAL_SCAN_LABEL is defined.

From-SVN: r11548
1996-03-16 19:31:33 -05:00
Richard Kenner
6cba9fcc21 (substitute_in_expr, case COMPONENT_REF): Ignore if inner
PLACEHOLDER_EXPR has not yet been initialized.

From-SVN: r11547
1996-03-16 19:23:14 -05:00
Richard Kenner
0c05582760 (insv): Restore missing end of comment.
From-SVN: r11546
1996-03-16 19:19:01 -05:00
Richard Kenner
8ab92e4eeb (standard_80386_constant_p): -0.0 is not 0.0.
From-SVN: r11545
1996-03-16 19:16:54 -05:00
Richard Kenner
9e74dc4154 (make_extraction): Correct typo in force_to_mode call in previous change.
Return 0 if pos+len out of range of want desired mode.

From-SVN: r11544
1996-03-16 18:56:24 -05:00
Richard Kenner
ff352ceaa0 Initial revision
From-SVN: r11543
1996-03-16 16:18:52 -05:00
Richard Kenner
e211a9d8c6 (output_prolog): Set alpha_function_needs_gp if profiling and
TARGET_PROFILING_NEEDS_GP defined.

From-SVN: r11542
1996-03-16 16:18:22 -05:00
David Edelsohn
1465faecc9 fix TImode offset addres test
From-SVN: r11541
1996-03-15 03:27:18 +00:00
David Edelsohn
42eaff6f2d add -bnoentry if no entry point for shared object
From-SVN: r11540
1996-03-15 03:26:31 +00:00
Jim Wilson
a88d48a43c (ASM_OUTPUT_DOUBLE_INT): Use 'X' if CONST_INT and
HOST_BITS_PER_WIDE_INT == 64.

From-SVN: r11539
1996-03-14 16:58:32 -08:00
Ian Lance Taylor
b4c6e06c29 Recognize mips-*-sysv*
From-SVN: r11531
1996-03-15 00:14:04 +00:00
Michael Meissner
644d82dd23 Fix bug with 8-16 byte structures not getting instantiated correctly
From-SVN: r11530
1996-03-14 20:20:34 +00:00
Jim Wilson
e0c228daf7 (mips_expand_prologue): Change TYPE_NEEDS_CONSTRUCTING to
TREE_ADDRESSABLE;

From-SVN: r11529
1996-03-14 09:46:53 -08:00
Michael Meissner
e56bb9ed51 Add exception attribute for Windows
From-SVN: r11528
1996-03-14 16:25:20 +00:00
Jeff Law
80363f0d97 pa.h (ASM_DECLARE_FUNCTION_NAME): Change TYPE_NEEDS_CONSTRUCTING to TREE_ADDRESSABLE.
* pa/pa.h (ASM_DECLARE_FUNCTION_NAME): Change TYPE_NEEDS_CONSTRUCTING
        to TREE_ADDRESSABLE.  From Jim Wilson.

From-SVN: r11527
1996-03-13 23:54:34 -07:00
Jim Wilson
ab68478599 (warn_sign_compare): Add extern to declaration.
From-SVN: r11526
1996-03-13 15:20:46 -08:00
Michael Meissner
d5967781ed Fix ASM_OUTPUT_ALIGN
From-SVN: r11525
1996-03-13 18:30:30 +00:00
Michael Meissner
2aa35c6312 Add static constructor/destructor support to Windows NT
From-SVN: r11524
1996-03-13 17:12:13 +00:00
Per Bothner
5bfaaedad7 dbxout.c (dbxout_type): Better "variant" handling to ignore const/volatile but not typedef names.
* dbxout.c (dbxout_type):  Better "variant" handling to ignore
const/volatile but not typedef names.  Improves Feb 12 change.

From-SVN: r11523
1996-03-12 21:47:30 -08:00
Jim Wilson
d3debd4b78 (ROUND_TPE_SIZE): Return round_up result instead of
COMPUTED.

From-SVN: r11522
1996-03-12 15:51:01 -08:00
Richard Kenner
6dd1b47377 (__LONG_MAX__): on Alpha, use 64 bit value.
From-SVN: r11521
1996-03-12 17:24:57 -05:00
Richard Kenner
bf1b20dab8 (nonlocal_goto): Emit barrier after jump.
(setjmp{,_64,_32}): New patterns.

From-SVN: r11520
1996-03-12 13:54:00 -05:00
Jim Wilson
f2420d0b92 (expand_expr, case COMPONENT_REF): For unaligned object in
an aligned union, delete check for EXPAND_SUM.

From-SVN: r11519
1996-03-12 09:51:15 -08:00
Jim Wilson
2af1bac84c (clear_storage): Add comment terminator.
From-SVN: r11518
1996-03-12 09:42:04 -08:00
Torbjorn Granlund
ac6849cbdf (dbra peepholes): Use flags_in_68881.
From-SVN: r11517
1996-03-12 15:07:49 +00:00
Torbjorn Granlund
6a0f85e3bc (valid_dbcc_comparison_p): Don't test cc_prev_status here.
(flags_in_68881): New function.

From-SVN: r11516
1996-03-12 15:07:49 +00:00
Jeff Law
69f724c026 recog.c (constrain_operands, case 'V'): Don't call offsettable_memref_p before reload has completed.
* recog.c (constrain_operands, case 'V'): Don't call
        offsettable_memref_p before reload has completed.

From-SVN: r11515
1996-03-11 17:08:58 -07:00
Doug Evans
269c14e111 h8300.h (SP_AND_G_REGS): Renamed from SP_AND_G_REG.
* 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
1996-03-11 21:05:49 +00:00
Michael Meissner
4e74d8ec4b Make long longs use normal CONST_DOUBLE in movdi, do not split too early
From-SVN: r11513
1996-03-11 18:57:23 +00:00
Jim Wilson
9740123d5c (jump_optimize): When handle a USE insn before an unconditional jump...
(jump_optimize): When handle a USE insn before an
unconditional jump, disable the optimization if the USE is the
only insn in the loop.

From-SVN: r11512
1996-03-11 10:12:30 -08:00
Richard Kenner
8319988283 Use proper modes and predicates for {sign,zero}_extract.
From-SVN: r11511
1996-03-11 06:53:27 -05:00
Richard Kenner
d7cd794fdf (make_extraction): Use proper mode for INNER in all cases.
(simplify_comparison, case ZERO_EXTRACT): For bits big endian and no extzv,
use BITS_PER_WORD.

From-SVN: r11510
1996-03-11 06:49:32 -05:00
Doug Evans
2ae508e5e3 (move_pic_label_si,move_label_di): Rewrite length
attr calcs to be more conservative.

From-SVN: r11509
1996-03-11 06:05:08 +00:00
Richard Kenner
4312729434 (free_insn): New variable.
(init_emit, restore_emit_status): Clear it.
(gen_sequence): Store insn in free_insn when sequence length is 1.
(make_insn_raw): Use free_insn if available and still in the rtl generation
phase.

From-SVN: r11508
1996-03-10 06:23:17 -05:00
Richard Kenner
935ddcf539 Update comment for rtx_equal_function_value_matters.
From-SVN: r11507
1996-03-10 06:15:07 -05:00
Mike Stump
357a4089d9 85th Cygnus<->FSF quick merge
From-SVN: r11506
1996-03-09 20:23:30 +00:00
Mike Stump
934c6b1387 85th Cygnus<->FSF quick merge
From-SVN: r11505
1996-03-09 19:44:47 +00:00
Mike Stump
2a888d4cd0 expr.c (expand_expr, [...]): Delay putting the cleanup on the cleanup chain until after the subexpression...
* expr.c (expand_expr, case TARGET_EXPR): Delay putting the cleanup
	on the cleanup chain until after the subexpression has been expanded.
Fixes eh44.C and eh45.C

From-SVN: r11504
1996-03-08 23:44:26 +00:00
Jim Wilson
23ccec44cc (store_constructor_field): Add explanatory comment.
Call store_field if bitpos is nonzero and target is not a MEM.

From-SVN: r11503
1996-03-08 13:52:23 -08:00
Stan Cox
29e8f73f36 (ix86_binary_operator_ok): one memory operand is OK.
From-SVN: r11502
1996-03-08 21:19:14 +00:00
Jim Wilson
8b760293d7 (reg_unused_after): Return 0 if see a JUMP_INSN.
From-SVN: r11501
1996-03-08 11:10:35 -08:00
Doug Evans
449bf2aa18 (CPP_SPEC): Use %(cpp_cpu).
From-SVN: r11500
1996-03-08 17:59:37 +00:00
Doug Evans
b6697adbe1 sparc.h (TARGET_SWITCHES): Move -mlive-g0 from here,
* sparc.h (TARGET_SWITCHES): Move -mlive-g0 from here,
* splet.h (SUBTARGET_SWITCHES): To here.

From-SVN: r11499
1996-03-08 01:18:14 +00:00
Doug Evans
f48d6f4786 sparc.h (TARGET_SWITCHES): Move -mlive-g0 from here,
splet.h (SUBTARGET_SWITCHES): To here.

From-SVN: r11498
1996-03-08 01:17:17 +00:00
Mike Stump
e76a26469d 85th Cygnus<->FSF merge
From-SVN: r11497
1996-03-08 00:38:10 +00:00
Doug Evans
838b5ca862 Initial revision
From-SVN: r11496
1996-03-08 00:21:09 +00:00
Doug Evans
1ee4af950a (eligible_for_epilogue_delay): Move set of `pat'.
From-SVN: r11495
1996-03-08 00:13:46 +00:00
Doug Evans
c4ce68534a sparc.h (MASK_LIVE_G0,TARGET_LIVE_G0): Define.
* 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
1996-03-08 00:12:21 +00:00
Jim Wilson
05066d29ea (PASS_IN_REG_P): Change < to <=.
From-SVN: r11493
1996-03-07 15:12:02 -08:00
Jim Wilson
9bad074fa5 (va_start): Change __SH3E___ to __SH3E__.
(va_arg): Add little-endian SH3E support.  Fix big-endian version
to work for arguments smaller than the word size.

From-SVN: r11492
1996-03-07 15:10:54 -08:00