Jeff Law [Thu, 8 Oct 1992 17:21:43 +0000 (11:21 -0600)]
pa.md (fp_alu function unit, case fpcc): Fpcc instructions use the fpalu unit.
* pa.md (fp_alu function unit, case fpcc): Fpcc instructions use
the fpalu unit. In the most common case their result will be used
in a ftest instruction. Minimum distance between the fcmp and
ftest instruction is 4.
Richard Kenner [Thu, 8 Oct 1992 08:42:53 +0000 (04:42 -0400)]
(mark_target_live_regs): Look at USE insns made by update_block when scanning forward past target.
(mark_target_live_regs): Look at USE insns made by update_block when scanning
forward past target.
(mark_target_live_regs, dbr_schedule): Use GET_RTX_CLASS.
Tom Wood [Wed, 7 Oct 1992 20:24:33 +0000 (20:24 +0000)]
(dwarfout_{begin,end}_function): New functions.
(body_{begin,end}_attribute): New functions.
(dwarf_attr_name): Print AT_body_begin and AT_body_end.
(output_{local,global}_subroutine_die): Output the new attributes.
Tom Wood [Wed, 7 Oct 1992 20:21:09 +0000 (20:21 +0000)]
(FASTEST_ALIGNMENT): Define as 8 for -m88110 otherwise 4.
(CONSTANT_ALIGNMENT, DATA_ALIGNMENT): Base on FASTEST_ALIGNMENT.
(READONLY_DATA_SECTION): Don't override svr4.h
(ASM_OUTPUT_CASE_LABEL): For svr4, use .rodata.
Tom Wood [Wed, 7 Oct 1992 20:19:22 +0000 (20:19 +0000)]
(best_from_align): Add a target processor dimension for -m88000, -m88110, and -m88100.
(best_from_align): Add a target processor dimension for
-m88000, -m88110, and -m88100.
(expand_block_move): Choose method and limits based on -m88xxx option.
(block_move_no_loop): Extend to allow DImode.
(output_call): Use different syntax for GAS.
In the first part (instead of va-*.h), define __gnuc_va_list, as in gstdarg.h.
In the first part (instead of va-*.h), define
__gnuc_va_list, as in gstdarg.h. Always use __gunc_va_list
as basis for defining va_list.
Move interaction with BSD-NET2 down to where va_list itself is defined.
(NO_DOLLAR_IN_LABEL): Undef because gas understands dollars in labels and gdb expects them if configured for gas.
(NO_DOLLAR_IN_LABEL): Undef because gas understands dollars
in labels and gdb expects them if configured for gas.
(STARTFILE_SPEC): Include huge.o to be compatible with native cc.
(ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
(CTOR_LISTS_DEFINED_EXTERNALLY, DO_GLOBAL_DTORS_BODY):
(STARTFILE_SPEC): Conditionally redefine for a collectless version
of gcc if USE_COLLECT2 is not defined.
(shadow_tag_warned): Use pedwarn for useless keyword.
(pushdecl): Internally generated vars can be
detected with DECL_SOURCE_LINE of zero, not DECL_IGNORED_P.
(start_enum): Push obstacks, switch to permanent if global.
(finish_enum): Pop obstacks.
(store_parm_decls): When clearing ->names, clear out the values
from the identifiers, restore shadowed values, and clear ->shadowed.
(grokdeclarator): Don't warn of const or volatile function
in a system header file.
(start_struct): Push the obstacks.
Switch to permanent if at top level.
(finish_struct): Pop them.
(store_parm_decls): If we have (erroneously) a prototype
and old-style parm decls, throw away the old-style parm decls.
(finish_decl): Do the pop_obstacks sooner, when it's
time to start allocating in the ambient context's obstack.
Don't call permanent_allocation unless got back to permanent obstack.
(explicit_flag_signed_bitfields): New variable.
(c_decode_option): Set that for -f[un]signed-bitfields.
(grokdeclarator): If that's set, and -fsigned-bitfields,
disregard -traditional when handling bitfield signedness.
(hard-reg-set.h): Included to get decl of `reg_names'.
(PRINT_REG): Default definition added.
(dwarf_last_decl): Variable declaration added.
(output_reg_number): New function; handle -fverbose-asm reg printing.
(output_mem_loc_descriptor, output_loc_descriptor): Call it.
(output_decl): Set `dwarf_last_decl' each time this fn is called.
Jim Wilson [Thu, 1 Oct 1992 19:17:02 +0000 (12:17 -0700)]
(SECONDARY_INPUT_RELOAD_CLASS): Also need a temp reg when loading HImode and QImode values from memory to FP_REGS.
(SECONDARY_INPUT_RELOAD_CLASS): Also need a temp reg
when loading HImode and QImode values from memory to FP_REGS.
(SECONDARY_OUTPUT_RELOAD_CLASS): New macro. Define this to handle
HImode and QImode stores from FP_REGS to memory similar to above.
Jeff Law [Thu, 1 Oct 1992 17:06:29 +0000 (11:06 -0600)]
pa.md (add high part and dp register): Split into two patterns, one for normal code, one for kernels.
* pa.md (add high part and dp register): Split into two patterns,
one for normal code, one for kernels. Kernel version only allows
"r1" as the destination register.
Jeff Law [Thu, 1 Oct 1992 17:05:02 +0000 (11:05 -0600)]
pa.h (LEGITIMIZE_ADDRESS, [...]): Emit a sequence which will cause "addil" instructions to be emitted instead of...
* pa.h (LEGITIMIZE_ADDRESS, SYMBOL_REF case): Emit a sequence
which will cause "addil" instructions to be emitted instead of
"ldil; add" sequences.
* pa.h (TARGET_KERNEL): New switch "-mkernel" which forces gcc to
avoid "ldil; add" sequences with %r27 and instead generate "addil"
sequences. This avoids a HPUX linker bug when compiling kernels.
Jeff Law [Thu, 1 Oct 1992 17:03:46 +0000 (11:03 -0600)]
pa.c (emit_move_sequence): When making a reference to the data space before reload...
* pa.c (emit_move_sequence): When making a reference to the data
space before reload, emit an insn sequence which is much more
likely to create "addil" instructions rather than "ldil; add"
sequences. Doing so greatly reduces the chance of running into a
HPUX linker bug when compiling kernels.