Age | Commit message (Collapse) | Author | Files | Lines |
|
From-SVN: r41863
|
|
sequences of xgdx and xgdy.
* config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Optimize moves
between X and Y by using sequences of xgdx and xgdy.
From-SVN: r41861
|
|
alternative ('!' is too strong).
* config/m68hc11/m68hc11.md ("*logicalsi3_silshr16"): Use '?' instead
of '!' for the 'D' alternative ('!' is too strong).
("*logicalsi3_silshl16"): Likewise.
("movstricthi"): Accept 'A' when 'd' constraint, remove spurious '+'.
("movstrictsi"): Remove spurious '+'.
("movstrictqi"): Don't accept 'A' and remove spurious '+'.
("tstqi_1", "*lshrqi3_const1"): Put 'm' constraint before 'd'.
("subqi3"): Disparage with '!' the 'x' and 'y' registers to avoid
a reload to them.
From-SVN: r41859
|
|
ChangeLog entry.
* gcc.c-torture/execute/20001227-1.c: Remove duplicate of
gcc.c-torture/execute/20000412-3.c with no ChangeLog entry.
From-SVN: r41858
|
|
From-SVN: r41856
|
|
2001-05-04 Lars Brinkhoff <lars@nocrew.org>
* simplify-rtx.c (simplify_binary_operation): Simplify ~a + 1
into -a.
From-SVN: r41854
|
|
2000-05-04 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* config/rs6000/rs6000.md (ashldi3 splits): Guard with TARGET_POWERPC64.
From-SVN: r41852
|
|
* config/m68hc11/m68hc11.md (lshrhi3_const1): Fix shift of
soft register, use ror instead of rol.
From-SVN: r41850
|
|
increment decrement for 68HC12.
* config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Take
into account pre/post increment decrement for 68HC12.
Fix other problems in replacement and fix call to reg_mentioned_p.
From-SVN: r41848
|
|
* config/m68hc11/larith.asm (L_regs_frame): New for _.frame.
Put the soft registers in bss for 68HC12.
(L_regs_d3_4): New for _.d3 and _.d4.
(L_regs_d5_6): Likewise.
(L_regs_d1_2): Likewise.
* config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Compile new parts.
From-SVN: r41846
|
|
-fshort-double is specified.
* config/m68hc11/m68hc11.h (CPP_SPEC): Pass -D__HAVE_SHORT_DOUBLE__
to the pre-processor when -fshort-double is specified.
* config/m68hc11/m68hc11.2 (CPP_SPEC): Likewise.
From-SVN: r41843
|
|
* config/m68hc11/larith.asm (divmodhi4): Empty for 68HC12.
(__mulsi3): Rewrite for 68HC12.
* config/m68hc11/m68hc11.md (divmodhi4): Use idivs for 68HC12.
Mark 'x' constraint with earlyclobber to prevent a
RELOAD_FOR_OTHER_ADDRESS to go in it.
(mulhi3_m68hc12): New pattern.
(mulhi3_m68hc11): Rename of mulhi3.
(mulhi3): New expand for 68HC12 optimisation.
(umulhisi3, mulhisi3): New patterns for 68HC12.
From-SVN: r41841
|
|
From-SVN: r41838
|
|
* config/m68hc11/m68hc11.md (*tbne, *tbeq): New patterns for 68HC12.
(extendqisi2, extendqihi2, extendhisi2): Use sex for 68HC12.
(uminqi3, umaxqi3, uminhi3, umaxhi3): New pattern for 68HC12.
From-SVN: r41836
|
|
* config/m68hc11/m68hc11.h (CONST_COSTS): Make the cost of
constants cheap after reload.
* config/m68hc11/m68hc11.c (m68hc11_shift_cost): Shift by 16 and 32
are cheap.
(m68hc11_rtx_costs): Cost of multiplication by 65536 is expensive
so that gcc prefers a shift by 16.
(m6811_cost, m6812_cost): Make the shift cheap compared to an add.
From-SVN: r41834
|
|
From-SVN: r41832
|
|
* alpha.h: NULL_PTR -> NULL.
* arm.c: Likewise.
* arm.h: Likewise.
* avr.h: Likewise.
* c4x.c: Likewise.
* c4x.h: Likewise.
* i386.c: Likewise.
* i386.md: Likewise.
* i860.c: Likewise.
* ia64.c: Likewise.
* m68hc11.h: Likewise.
* rs6000.h: Likewise.
* sh.c: Likewise.
* sh.h: Likewise.
* sparc.h: Likewise.
* v850.c: Likewise.
* expr.c: Likewise.
* final.c: Likewise.
* gcc.c: Likewise.
* recog.c: Likewise.
From-SVN: r41831
|
|
`int'.
* i386.c (ix86_emit_restore_regs_using_mov, ix86_save_reg): Change
`bool' parameter to `int'.
* hash.c (hash_lookup): Likewise.
* hash.h (hash_lookup): Likewise.
* tlink.c (symbol_hash_lookup, demangled_hash_lookup): Likewise.
From-SVN: r41829
|
|
From-SVN: r41828
|
|
From-SVN: r41826
|
|
-malign-loops, -malign-functions.
* invoke.texi (i386 Options): Delete references to -malign-jumps,
-malign-loops, -malign-functions.
* i386.c (ix86_align_funcs): Delete.
(ix86_align_loops): Delete.
(ix86_align_jumps): Delete.
(override_options): Mark -malign-* as obsolete. Emulate their
behaviour with the -falign-* options. Default -falign-* from
the processor table.
* i386.h (FUNCTION_BOUNDARY): Define to 16; revert Richard Kenner's
patch of Wed May 2 13:09:36 2001.
(LOOP_ALIGN): Delete.
(LOOP_ALIGN_MAX_SKIP): Delete.
(LABEL_ALIGN_AFTER_BARRIER): Delete.
(LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Delete.
From-SVN: r41825
|
|
* cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER.
(pfn_vflag_identifier): Define.
Update comment about layout of pointer functions.
(build_ptrmemfunc1): Update prototype.
(expand_ptrmemfunc_cst): Update prototype.
* decl.c (initialize_predefined_identifiers): Initialize
pfn_vflag_identifier.
(build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add
an extra field to the type.
* expr.c (cplus_expand_constant): Pass 'flag' between
expand_ptrmemfunc_cst and build_ptrmemfunc1.
* typeck.c (get_member_function_from_ptrfunc): When
FUNCTION_BOUNDARY < 16, look at additional field to determine
if a pointer-to-member is a real pointer or a vtable offset.
(build_ptrmemfunc1): Add new parameter to contain extra field.
(build_ptrmemfunc): Pass the extra field around.
(expand_ptrmemfunc_cst): Add new parameter to return extra field.
(pfn_from_ptrmemfunc): Ignore the extra field.
From-SVN: r41824
|
|
* except.h: Add prototype declaration for
expand_builtin_init_dwarf_reg_sizes.
From-SVN: r41823
|
|
* cp-tree.h (flag_inline_trees): Update documentation.
* decl.c (init_decl_processing): Adjust handling of
flag_inline_functions and flag_inline_trees to support -O3.
(grokfndecl): Set DECL_INLINE on all functions if that's what
the user requested.
(save_function_data): Clear DECL_INLINE in
current_function_cannot_inline is non-NULL.
* decl2.c (flag_inline_trees): Update documentation.
From-SVN: r41822
|
|
2001-05-03 Geoffrey Keating <geoffk@redhat.com>
* Makefile.in (site.exp): Set TESTING_IN_BUILD_TREE.
Index: gcc/gcc/testsuite/ChangeLog
2001-05-03 Geoffrey Keating <geoffk@redhat.com>
* lib/g++.exp (g++_include_flags): Don't use any special flags
if TESTING_IN_BUILD_TREE is not defined.
(g++_init): Use a plain 'c++' as the compiler if
TESTING_IN_BUILD_TREEE is not defined.
From-SVN: r41820
|
|
byte swap.
2001-05-03 Mo DeJong <mdejong@redhat.com>
* lex.c (java_new_lexer): Call iconv_close on temp handle used to
check for byte swap.
(http://gcc.gnu.org/ml/java-patches/2001-q2/msg00185.html )
From-SVN: r41818
|
|
* config/m68hc11/m68hc11.md ("bitcmpqi"): New pattern for bitb
instruction.
("bitcmpqi2"): New pattern for bit-extract and test.
("bitcmphi"): New pattern for bitb/bita instructions.
From-SVN: r41812
|
|
* gccbug.in: Use a temporary directory when the mktemp command is
not available.
From-SVN: r41809
|
|
* config/m68hc11/m68hc11.h (STATIC_CHAIN_REGNUM): Use soft z register
instead of _.d1.
(INITIALIZE_TRAMPOLINE): Call it.
(TRAMPOLINE_SIZE): Define according to 68HC11/68HC12.
(TRAMPOLINE_TEMPLATE): Remove.
* config/m68hc11/m68hc11.c (m68hc11_initialize_trampoline): New.
* config/m68hc11/m68hc11-protos.h (m68hc11_initialize_trampoline):
Declare.
From-SVN: r41808
|
|
2001-05-03 David O'Brien <obrien@FreeBSD.org>
* config/t-freebsd: Don't install "assert.h" in gcc. Compile crtbeginS.o
and crtendS.o with PIC.
Approved by: Richard Henderson <rth@redhat.com>
Message-ID: <20010503125836.A15813@redhat.com>
From-SVN: r41803
|
|
* config/m68hc11/larith.asm (__mulqi3): Fix multiplication of two
negative numbers.
(___subdi3, ___adddi3): Use x instead of y as index register.
(__init_bss_section, __map_data_section): Optimize for 68HC12.
(__memset, __memcpy): Likewise.
(regs): Put the soft registers in bss for 68HC12.
(abort): Use trap to abort for 68hc12.
(__mulhi3, __mulhi32): Use emul for 68hc12.
(__mulsi3): Avoid to use the tmp soft register for 68hc12.
* config/m68hc11/m68hc11.h (LIMIT_RELOAD_CLASS): Don't define.
* config/m68hc11/m68hc11-protos.h (limit_reload_class): Remove.
* config/m68hc11/m68hc11.c (limit_reload_class): Remove.
(m68hc11_override_options): Remove setting of flag_no_nonansi_builtin.
Set 68HC12 min offset to -65536.
(print_operand): Put parenthesis arround the operand if it refers
to a symbol having the same name as a register.
(m68hc11_z_replacement): When z register is replaced by its
equivalent soft register, force the insn to be re-recognized.
(m68hc11_check_z_replacement): Fix the test when destination is
the index register and z dies in the insn.
(m68hc11_reorg): Remove the REG_DEAD notes beforce recomputing them.
* config/m68hc11/m68hc11.c (m68hc11_override_options): Initialize
costs according to processor variant.
(m68hc11_shift_cost): New function to compute shift costs.
(m68hc11_rtx_costs): Define costs according to processor variant.
(m6811_cost): Costs for 68HC11.
(m6812_cost): Costs for 68HC12.
(COSTS_N_INSNS): Remove.
* config/m68hc11/m68hc11.h (RTX_COSTS): New.
(DEFAULT_RTX_COSTS): Remove.
(CONST_COSTS): Define costs according to OUTER_CODE.
(processor_costs): New struct to define costs.
(m68hc11_cost): Pointer to current costs.
* config/m68hc11/m68hc11.md (*addhi3_68hc12): Fix generation
and use m68hc11_notice_keep_cc when using leax/leay.
(addhi3 split): Reject split if the insn is handled by
leax/leay above.
* config/m68hc11/m68hc11.c (m68hc11_split_move): For 68HC12 the
push must be handled in a special way if the source operand uses
sp as index register.
(m68hc11_notice_keep_cc): New function.
(m68hc11_gen_movhi): Use it when an insn changes a register but
not the flags.
(m68hc11_gen_movqi): Fix move for 68HC12.
* config/m68hc11/m68hc11-protos.h (m68hc11_notice_keep_cc): Declare.
* config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use LCT_CONST
and don't pass operands[0] to emit_library_call_value.
* config/m68hc11/m68hc11.md (tsthi_1): Use cpd for 68HC12.
(zero_extendsi split): Simplify and use (zero_extendhi).
(*addhi3): Remove 'w' constraint since stack pointer is handled
by (addhi3_sp).
(*ashlhi3_2): Operand 2 is clobbered use '+' for its constraint.
(*ashlhi3, *ashrhi3, *lshrhi3): Likewise.
(*ashrhi3_const): Fix shift by 7.
(*lshrsi3_const16): Fix template.
(call, call_value): Fix constraint and predicate.
* config/m68hc11/m68hc11.md (X_REGNUM, D_REGNUM): New constant.
(Y_REGNUM, SP_REGNUM, PC_REGNUM, A_REGNUM, B_REGNUM): Likewise.
(CC_REGNUM): Likewise.
(*unnamed splits): Use above constants instead of hard coded numbers.
(*adcq, *subcq, *addsi_carry, *rotlqi3_with_carry): Likewise.
(*rotlhi3_with_carry, *rotrhi3_with_carry): Likewise.
(*return_16bit, *unnamed peepholes): Likewise.
From-SVN: r41802
|
|
twice.
2001-05-03 David O'Brien <obrien@FreeBSD.org>
* config.gcc(rs6000-ibm-aix|powerpc-ibm-aix): Do not include
rs6000/rs6000.h twice.
Approved by: David Edelsohn <dje@watson.ibm.com>
<200105031901.PAA24582@makai.watson.ibm.com>
From-SVN: r41799
|
|
* config/i386/djgpp.h (CPP_PREDEFINES): Define __GO32__.
(CPP_SPEC): Conditionally define MSDOS and GO32.
(SUBTARGET_SWITCHES): Ignore -mbnu210 and -mno-bnu210.
(SUBTARGET_OVERRIDE_OPTIONS): Warn that -mbnu210 and -mno-bnu210 are
ignored.
(SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Remove.
From-SVN: r41798
|
|
From-SVN: r41797
|
|
From-SVN: r41792
|
|
* integrate.h (struct inline_remap): Add leaf_reg_map table.
* integrate.c (expand_inline_function): Use xcalloc to allocate
memory.
(copy_rtx_and_substitute): Use the leaf_reg_map for leaf
registers.
From-SVN: r41791
|
|
* c-dump.c (dequeue_and_dump): Don't look at DECL_ASSEMBLER_NAME
if it is not set.
From-SVN: r41788
|
|
* config/mn10300/mn10300.h (LINK_SPEC): Pass --relax to the
linker if -mrelax is given.
(TARGET_SWITCHES): Document -mrelax.
From-SVN: r41787
|
|
* hwint.h (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Use long long
if it's wider than long and the target's long is wider than the
host's.
From-SVN: r41785
|
|
* dump.c (cp_dump_tree, USING_STMT case): New case.
* tree.c (cp_statement_code_p): Add USING_STMT.
* decl2.c (do_using_directive): Add the using directive statement.
* tree.c (walk_tree): Reformat an if block.
From-SVN: r41783
|
|
2001-05-02 David O'Brien <obrien@FreeBSD.org>
* config.gcc, config/rs6000/aix51.h, config/rs6000/mach.h: Do not
directly include rs6000/rs6000.h. Instead do it in tm.h.
Approved by: Geoff Keating <geoffk@geoffk.org>
Message-ID: <jmae4vtdi0.fsf@geoffk.org>
From-SVN: r41782
|
|
From-SVN: r41780
|
|
NeXT-style runtimes.
* objc/objc-act.c (STRING_OBJECT_CLASS_NAME): Default to
NSConstantString for NeXT-style runtimes.
(STRING_OBJECT_GLOBAL_NAME): New macro.
(enum objc_tree_index): Add values OCTI_CNST_STR_GLOB_ID and
OCTI_STRING_CLASS_DECL.
(constant_string_global_id): New macro.
(string_class_decl): Ditto.
(setup_string_decl): New function.
(build_objc_string_object): Use it to build a NeXT runtime
compatible string initializer.
From-SVN: r41776
|
|
* g++.old-deja/g++.eh/catch13.C: New test.
* g++.old-deja/g++.eh/catch14.C: New test.
From-SVN: r41774
|
|
* tradcpp.c (do_define): Make sure we don't walk past limit.
* gcc.dg/cpp/tr-define.c: New test.
From-SVN: r41773
|
|
REG_OK_STRICT.
2000-05-01 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* config/rs6000/rs6000.c (rs6000_legitimate_address): Allow any stack
offsets if not REG_OK_STRICT.
* config/rs6000/rs6000.h (REG_OK_STRICT_FLAG): New macro.
(INT_REG_OK_FOR_INDEX_P): Likewise.
(INT_REG_OK_FOR_BASE_P): Likewise.
(REG_OK_FOR_INDEX_P): Use INT_REG_OK_FOR_INDEX_P.
(REG_OK_FOR_BASE_P): Use INT_REG_OK_FOR_BASE_P.
(LEGITIMATE_OFFSET_ADDRESS_P): Use INT_REG_OK_FOR_INDEX_P and
INT_REG_OK_FOR_BASE_P instead of REG_OK_FOR_INDEX_P and
REG_OK_FOR_BASE_P. Take an additional parameter.
(LEGITIMATE_INDEXED_ADDRESS_P): Likeewise.
(LEGITIMATE_INDIRECT_ADDRESS_P): Likewise.
(LEGITIMATE_LO_SUM_ADDRESS_P): Likewise.
(GO_IF_LEGITIMATE_ADDRESS): Move code into new function
rs6000_legitimate_address() and use it.
* config/rs6000/rs6000.c: Update all callers.
(rs6000_legitimate_address): New function.
From-SVN: r41772
|
|
2001-05-02 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (rs6000_emit_move): Merge
special_constant conditional blocks together.
2001-05-02 Dale Johannesen <dalej@apple.com>
* config/rs6000/rs6000.h (RS6000_ARG_SIZE): Remove unused NAMED
parameter.
(STRICT_ARGUMENT_NAMING): Define.
* config/rs6000/rs6000.c (function_arg_advance, function_arg,
function_arg_partial_nregs, setup_incoming_varargs): Remove
args logic which depends on "named" now that STRICT_ARGUMENT_NAMING
is defined.
From-SVN: r41771
|
|
when processing a template.
* decl.c (compute_array_index_type): Don't try to do anything with
the indices when processing a template.
From-SVN: r41770
|
|
From-SVN: r41767
|
|
* function.c (fixup_var_regs_1, case SUBREG): Use promoted mode
for replacement.
From-SVN: r41765
|