* 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
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
* 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
* 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
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
* 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
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
* Make-lang.in ($(srcdir)/java/gcj.info): Added `-I..'.
(java/gcj.dvi): Added $(srcdir) to TEXINPUTS.
* gcj.texi: Updated copyright text. Include fdl.texi.
(Top): Link to new node.
From-SVN: r41743
2001-05-01 Jeffrey Oldham <oldham@codesourcery.com>
* gc_priv.h (UNLOCK): Change type of GC_noop1 argument.
(GC_noop1): Change declaration to take one argument.
From-SVN: r41738
2001-05-01 Zack Weinberg <zackw@stanford.edu>
* config.gcc: Don't default xmake_file to ${cpu_type}/x-${cpu_type}.
Remove references to deleted files.
(*-*-openbsd): No need to override xmake_file.
(*-*-sysv4): Treat like *-*-sysv.
* configure.in: Probe for ldopen in various places, and set up
collect2 to be linked with them if found.
Don't dink with Windows registry stuff unless $host_os is a
Win32 os name. Check to see if we need -ladvapi32.
* configure: Regenerate.
* Makefile: Get rid of CLIB and HOST_CLIB.
Substitute in COLLECT2_LIBS and link collect2 against its contents.
* build-make: Get rid of HOST_CLIB.
* config/a29k/x-unix, config/alpha/x-osf, config/i386/x-aix,
config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3,
config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony,
config/mips/x-sysv, config/rs6000/x-aix31, config/rs6000/x-aix41,
config/rs6000/x-rs6000: Delete.
* config/i386/x-cygwin, config/m68k/t-aux, config/mips/x-iris:
Don't set CLIB.
24 x-host fragments remain, 0 x-cpu, 3 top level.
2001-05-01 Zack Weinberg <zackw@stanford.edu>
* aclocal.m4 (gcc_AC_C_CHAR_BIT): Correct test program.
* configure: Regenerate.
From-SVN: r41732