Jim Wilson [Wed, 24 Jul 1996 21:44:03 +0000 (14:44 -0700)]
(branch_true, branch_false, inverse_branch_true,
inverse_branch_false, beq, bne, bgt, blt, ble, bge, bgtu, bltu,
bgeu, bleu, casesi): Express tests of the T bit as comparisons
against zero, rather thann one.
Jeff Law [Wed, 24 Jul 1996 17:04:34 +0000 (11:04 -0600)]
pa.c (move_operand): Relax "mode" test.
Wed Jul 24 10:53:38 1996 Jeffrey A Law (law@cygnus.com)
* pa/pa.c (move_operand): Relax "mode" test. Allow scaled
indexed addressing modes.
(output_fp_move_double): Tweak output strings to work with updated
'F' and 'M' output modifiers.
(print_operand): Collapse 'F' and 'M' into a single hunk of code.
For auto-increment modes output "s,ma" and "s,mb".
For scaled indexing modes output "x,s"
For other addresses, output nothing for 'M' and "s" for 'F'.
* pa.h (EXTRA_CONSTRAINT): Don't accept scaled indexed addresses
for 'Q' and 'T'. Do accept scaled indexed addresses for 'R'.
(GO_IF_LEGITIMATE_ADDRESS): Accept scaled indexed addresses
for SFmode and DFmode.
* pa.md: Remove all scaled indexed load patterns.
(movsi patterns): Accept scaled indexed addresses in some
cases. Update output strings for updated 'M' and 'F' output modifiers.
(movhi, movqi, movsf, movdf, movdi patterns): Likewise.
Jim Wilson [Mon, 22 Jul 1996 23:54:46 +0000 (16:54 -0700)]
(output_call_frame_info): Change FDE CIE offset to be section name rather than 0.
(output_call_frame_info): Change FDE CIE offset to
be section name rather than 0.
(gen_subprogram_die): Only emit DW_AT_external if origin is NULL.
Only call equate_decl_number_to_die if origin is NULL.
(dwarfout_begin_function): In code that computes offset of frame
pointer, change 4 to UNITS_PER_WORD.
Jeff Law [Thu, 11 Jul 1996 16:11:48 +0000 (10:11 -0600)]
h8300.c (shift_one): Emit tabs between opcode and operands to be consistent with the rest of the...
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.
Jim Wilson [Mon, 8 Jul 1996 21:59:51 +0000 (14:59 -0700)]
(function_arg): Add explicit checks for FIELD_DECLs.
(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.
Jim Wilson [Mon, 8 Jul 1996 21:55:32 +0000 (14:55 -0700)]
(function_arg): Add explicit checks for FIELD_DECLs.
(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.
Jeff Law [Mon, 8 Jul 1996 21:02:16 +0000 (15:02 -0600)]
* First cut at support for the H8/S.
* 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.