Thu Jul 11 10:12:50 1996 Jeffrey A Law (law@cygnus.com)
* h8300/h8300.c (shift_one): Emit tabs between opcode and
operands to be consistent with the rest of the compiler.
(rotate_one): Likewise.
(shift_two, rotate_two): Define.
(get_shift_alg): Accept new argument "assembler2_p" for
rotate/shift by two insns. All callers changed. Rework
to generate more efficient code on the H8/300, H8/300H, and
H8/S. Try to simplify somewhat.
(emit_a_shift): Use shift-by-two insns when they're available.
Emit tabs between opcode and operands to be consistent with
the rest of the compiler.
From-SVN: r12426
(mips_function_value): Add explicit checks for FIELD_DECLs, and save
them in the array FIELDS. When returning structure with 1 float field,
enclose it in a PARALLEL and set the PARALLEL mode correctly.
From-SVN: r12412
(mips_function_value): Add explicit checks for FIELD_DECLs, and save
them in the array FIELDS. When returning structure with 1 float field,
enclose it in a PARALLEL and set the PARALLEL mode correctly.
* mips/mips.md (call_value): Call gen_call_value_multiple_internal0
only if there are multiple return values. Strip the PARALLEL off
if there there is only one return value.
From-SVN: r12411
* h8300/h8300.c (h8300_init_once): Handle the H8/S (treat it
like the H8/300H).
(dosize, adds_subs_operand, one_insn_adds_subs_operand): Likewise.
(output_adds_subs, const_costs, print_operand): Likewise.
(output_simode_bld, h8300_adjust_insn_length): Likewise.
(push_order, pop_order): Reverse.
(function_prologue): Try to use ldm.l and stm.l insns
on the H8/S. Minor cleanups.
(function_epilogue): Likewise.
(asm_file_start): Emit ".h8300s" when compiling for the H8/S.
* h8300/h8300.h (CPP_SPEC): Handle the H8/S.
(TARGET_H8300S): New target.
(TARGET_SWITCHES): Add "-ms" and "-mno-s".
(BITS_PER_WORD): Handle the H8/S (treat it like the H8/300H).
(UNITS_PER_WORD, POINTER_SIZE, PARM_BOUNDARY): Likewise.
(BIGGEST_ALIGNMENT, BIGGEST_FIELD_ALIGNMENT): Likewise.
(INITIALIZE_TRAMPOLINE, MOVE_MAX, Pmode): Likewise.
* h8300/h8300.md: Handle H8/S just like H8/300H
throughout the entire file.
* h8300/t-h8300 (MULTILIB_OPTIONS): Build "-ms" libraries
too.
(MULTILIB_DIRNAMES): Put H8/S libraries in "h8300s" directory.
* h8300/lib1funcs.asm: Emit ".h8300s" pseudo-op when generating
h8300s object files. Otherwise treat the H8/S just like the H8/300H.
* ginclude/stdarg.h: Handle the H8/S.
* ginclude/varargs.h: Likewise.
From-SVN: r12410