arm.c (bad_signed_byte_operand): Check both arms of a sum in a memory address.
[platform/upstream/gcc.git] / gcc / ChangeLog
index 44e65f4..37e4637 100644 (file)
@@ -1,3 +1,224 @@
+Sat Sep 19 07:33:36 1998  Richard Earnshaw (rearnsha@arm.com)
+
+       * arm.c (add_constant): New parameter address_only, change caller.
+       Set it non-zero if taking the address of an item in the pool.
+       (arm_reorg): Handle cases where we need the address of an item in
+       the pool.
+
+       * arm.c (bad_signed_byte_operand): Check both arms of a sum in
+       a memory address.
+       * arm.md (splits for *extendqihi_insn and *extendqisi_insn): Handle
+       memory addresses that are not in standard canonical form.
+
+Sat Sep 19 01:00:32 1998  Michael Hayes  (mph@elec.canterbury.ac.nz)
+
+       * README.C4X: New file with information about the c4x ports.
+       * ginclude/va-c4x.h: New file for c4x varargs support.
+       * config/c4x: New directory with c4x port files.
+
+Fri Sep 18 22:52:05 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * reload.c (find_reloads): Do not replace a pseudo with 
+       (MEM (reg_equiv_addr)) in the initializing insn for the
+       pseudo.
+
+Fri Sep 18 23:50:56 1998  David Edelsohn  <edelsohn@mhpcc.edu>
+
+       * toplev.c (rest_of_compilation): Set bct_p on second call to
+       loop_optimize.
+       * loop.c (loop_optimize, scan_loop, strength_reduce): New argument
+       bct_p.
+       (strength_reduce): Only call analyze_loop_iterations and
+       insert_bct if bct_p set.
+       (check_dbra_loop): Fix typo.
+       (insert_bct): Use word_mode instead of SImode.
+       (instrument_loop_bct): Likewise.  Do not delete iteration count
+       condition code generation insn.  Initialize iteration count before
+       loop start.
+       * rtl.h (loop_optimize): Update prototype.
+
+       * ginclude/va-ppc.h (va_arg): longlong types in overflow area are
+       not doubleword aligned.
+
+       * rs6000.c (optimization_options): New function.
+       (secondary_reload_class): Only call true_regnum for PSEUDO_REGs.
+       * rs6000.h (OPTIMIZATION_OPTIONS): Define.
+       (REG_ALLOC_ORDER): Allocate highest numbered condition regsiters
+       first; cr1 can be used for FP record condition insns.
+
+Fri Sep 18 09:44:55 1998  Nick Clifton  <nickc@cygnus.com>
+
+       * config/m32r/m32r.h (m32r_block_immediate_operand): Add to
+       PREDICATE_CODES.
+
+       * config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal"
+       patterns.
+
+       * config/m32r/m32r.c (m32r_print_operand): Add 's' and 'p'
+       operators.
+       (block_move_call): New function: Call a library routine to copy a
+       block of memory.
+       (m32r_expand_block_move): New function: Expand a "movstrsi"
+       pattern into a sequence of insns.
+       (m32r_output_block_move): New function: Expand a
+       "movstrsi_internal" pattern into a sequence of assembler opcodes.
+       (m32r_block_immediate_operand): New function: Return true if the
+       RTL is an integer constant, less than or equal to MAX_MOVE_BYTES.
+       
+Thu Sep 17 16:42:16 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
+
+       * except.c (start_catch_handler): Issue 'fatal' instead of 'error' and
+       re-align some code.
+       * libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use <stdio.h>.
+
+Thu Sep 17 12:24:33 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * regmove.c (copy_src_to_dest): Check that modes match.
+
+Wed Sep 16 22:10:42 1998  Robert Lipe  <robertl@dgii.com>
+
+       * config/i386/sco5.h (SUPPORTS_WEAK): True only if targeting ELF.
+
+Wed Sep 16 15:24:54 1998  Richard Henderson  <rth@cygnus.com>
+
+       * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class
+       narrower than FLOAT_REGS.
+
+Wed Sep 16 17:51:00 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
+
+       * cpplib.c: removed OLD_GPLUSPLUS_INCLUDE_DIR
+       * cccp.c: ditto
+       * Makefile.in (old_gxx_include_dir): removed
+
+Wed Sep 16 12:29:22 1998  Nick Clifton  <nickc@cygnus.com>
+
+       * config/sh/sh.h: Update definition of HANDLE_PRAGMA to match
+       new specification.
+
+       * config/sh/sh.c (handle_pragma): Rename to sh_handle_pragma().
+       (sh_handle_pragma): Change function arguments to match new
+       specification for HANDLE_PRAGMA. 
+
+Wed Sep 16 12:43:19 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * gen-protos.c (parse_fn_proto): Cast argument of ISALNUM to
+       `unsigned char'.
+       (main): Mark parameter `argc' with ATTRIBUTE_UNUSED.
+       When generating output, initialize missing struct member to zero.
+
+Wed Sep 16 14:47:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * regmove.c (copy_src_to_dest): Don't copy if that requires
+       (a) new register(s).
+
+Wed Sep 16 01:29:12 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
+
+       * global.c (reg_allocno): Now static.
+       * reload1.c (reg_allocno): Delete declaration.
+       (order_regs_for_reload): Take no arguments.  Don't treat regs
+       allocated by global differently than those allocated by local-alloc.
+
+Wed Sep 16 01:09:01 1998  Kamil Iskra  <iskra@student.uci.agh.edu.pl>
+
+       * m68k/m68k.c (output_function_prologue): Reverse NO_ADDSUB_Q
+       condition, fix format strings.
+       (output_function_epilogue): Likewise.
+
+       * m68k/m68k.c: Don't include <stdlib.h> directly.
+
+Wed Sep 16 00:30:56 1998  Geoff Keating  <geoffk@ozemail.com.au>
+
+       * gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set,
+       mem_first_set, mem_last_set; because 0 can be a CUID.
+       (oprs_unchanged_p): Use new definition.
+       (record_last_reg_set_info): Likewise.
+       (record_last_mem_set_info): Likewise.
+       (compute_hash_table): Likewise.
+
+Tue Sep 15 22:59:52 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * rs6000.c (output_epilogue): Handle Chill.
+
+       * mn10200.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
+       * mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
+
+       * combine.c (make_extraction): If no mode is specified for
+       an operand of insv, extv, or extzv, default it to word_mode.
+       (simplify_comparison): Similarly.
+       * expmed.c (store_bit_field): Similarly.
+       (extract_bit_field): Similarly.
+       * function.c (fixup_var_regs_1): Similarly.
+       * recog.c (validate_replace_rtx_1): Similarly.
+       * mips.md (extv, extzv, insv expanders): Default modes for most
+       operands.  Handle TARGET_64BIT.
+       (movdi_uld, movdi_usd): New patterns.
+
+       * pa.c (emit_move_sequence): Do not replace a pseudo with its
+       equivalent memory location unless we have been provided a scratch
+       register.  Similarly do not call find_replacement unless a
+       scratch register has been provided.
+
+Tue Sep 15 19:23:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
+
+        * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants,
+        return FLOAT_REGS.
+
+Tue Sep 15 19:09:06 1998  Richard Henderson  <rth@cygnus.com>
+
+       * tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused.  Kill.
+       (BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill.
+       (BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill.
+       (BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New.
+       * c-decl.c (init_decl_processing): Update accordingly.
+       * expr.c (expand_builtin): Likewise.
+
+       * rtl.h (global_rtl): Add cfa entry.
+       (virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New.
+       (LAST_VIRTUAL_REGISTER): Update.
+       * emit-rtl.c (global_rtl): Add cfa entry.
+       (init_emit): Initialize it.
+       * function.c (cfa_offset): New.
+       (instantiate_virtual_regs): Initialize it.
+       (instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx.
+       (expand_function_end): Call expand_eh_return.
+       * tm.texi (ARG_POINTER_CFA_OFFSET): New.
+
+       * except.c (current_function_eh_stub_label): Kill.
+       (current_function_eh_old_stub_label): Likwise; update all references.
+       (expand_builtin_set_return_addr_reg): Kill.
+       (expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill.
+       (expand_builtin_set_eh_regs): Kill.
+       (eh_regs): Produce a third reg for the actual handler address.
+       (eh_return_context, eh_return_stack_adjust): New.
+       (eh_return_handler, eh_return_stub_label): New.
+       (init_eh_for_function): Initialize them.
+       (expand_builtin_eh_return, expand_eh_return): New.
+       * except.h: Update prototypes.
+       * flow.c (find_basic_blocks_1): Update references to the stub label.
+       * function.h (struct function): Kill stub label elements.
+
+       * libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the
+       register number is one that would be in the previous window.
+       Provide a dummy definition for non-windowed targets.
+       (get_reg_addr): New function.
+       (get_reg, put_reg, copy_reg): Use it.
+       (__throw): Rely on in_reg_window, not INCOMING_REGNO.  Kill stub
+       generating code and use __builtin_eh_return.  Use __builtin_dwarf_cfa.
+
+       * alpha.c (alpha_eh_epilogue_sp_ofs): New.
+       (alpha_init_expanders): Initialize it.
+       (alpha_expand_epilogue): Use it.
+       * alpha.h: Declare it.
+       * alpha.md (eh_epilogue): New.
+
+       * m68h.h (ARG_POINTER_CFA_OFFSET): New.
+       * sparc.h (ARG_POINTER_CFA_OFFSET): New.
+
+Tue Sep 15 19:31:58 1998  Michael Meissner  <meissner@cygnus.com>
+
+       * i960.h (CONST_COSTS): Fix thinko.  Test flag, not the constant
+       flag bit mask.
+
 Tue Sep 15 14:10:54 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
 
        * except.h (struct eh_entry): Add false_label field.
@@ -85,6 +306,22 @@ Sun Sep 13 04:37:28 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
        the next pointer of the most recently deleted insn when we skip
        over a NOTE.
 
+Sun Sep 13 08:13:39 1998  Ben Elliston  <bje@cygnus.com>
+
+       * objc/config-lang.in: Do not output the name of the selected
+       thread file when building the front-end.  The Makefile for the
+       runtime library will do this.
+
+       * objc/Make-lang.in: Do not build the runtime library or install
+       the Objective C header files.  The Makefile for the runtime
+       library will do this.
+
+       * objc/Makefile.in (all.indirect): Only build the front-end.
+       (compiler): Rename to `frontend'.
+       (obj-runtime): Remove target.
+       (copy-headers): Likewise.
+       (clean): No need to remove `libobjc.a' any longer.
+
 Sat Sep 12 11:37:19 1998  Michael Meissner  <meissner@cygnus.com>
 
        * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines