Richard Kenner [Fri, 15 Sep 1995 21:43:55 +0000 (17:43 -0400)]
(decrement_and_branchsi and related insns): Don't use a "2" to select a...
(decrement_and_branchsi and related insns): Don't use a "2" to select
a register preference for operand 1 if operand 2 hasn't been seen yet.
Add appropriate clobbers in decrement_and_branchsi.
Add patterns where the pc/label_ref are interchanged.
Richard Kenner [Fri, 15 Sep 1995 21:39:39 +0000 (17:39 -0400)]
(fill_simple_delay_slots): When filling an insn's delay slot with a JUMP_INSN...
(fill_simple_delay_slots): When filling an insn's delay slot with a
JUMP_INSN, don't assume the JUMP_INSN immediately follows the insn on
the unfilled slots obstack.
Richard Kenner [Fri, 15 Sep 1995 21:06:46 +0000 (17:06 -0400)]
(FLO_union_type): Add words field if double precision to get at the separate words.
(FLO_union_type): Add words field if double precision to get at the separate
words.
(FLO_union_type, pack_d, unpack_d): Use FLOAT_BIT_ORDER_MISMATCH to
determine when the bitfields need to be reversed, and
FLOAT_WORD_ORDER_MISMATCH when the words need to be reversed.
Richard Kenner [Mon, 11 Sep 1995 23:21:16 +0000 (19:21 -0400)]
(float{,uns}sidf2): Call rs6000_float_const to portably build the proper floating point constant for conversions.
(float{,uns}sidf2): Call rs6000_float_const to portably build the proper
floating point constant for conversions.
(movdi): Properly handle movdi of CONST_{INT,DOUBLE} on little endian systems.
Richard Kenner [Mon, 11 Sep 1995 23:20:44 +0000 (19:20 -0400)]
(output_option{,s}): New functions to write -f, -m, and -W options to the asm file.
(output_option{,s}): New functions to write -f, -m, and -W options to the
asm file.
(rs6000_float_const): New function to generate floating point constants
portably used in signed,unsigned -> double conversions.
(rs6000_stack_info,debug_stack_info): Use ABI enumeration instead
of AIX vs. V.4 boolean.
Richard Kenner [Mon, 11 Sep 1995 23:20:14 +0000 (19:20 -0400)]
(rs6000_abi): New enumeration to describe which ABI we're conforming to.
(rs6000_stack): Use abi enum, not AIX vs. V.4 boolean.
(ASM_OUTPUT_OPTIONS): New macro to print output options in .s file.
(ASM_FILE_START): Use it.
(output_options,rs6000_float_const): Declare new functions.
Richard Kenner [Mon, 11 Sep 1995 22:53:34 +0000 (18:53 -0400)]
(FLO_union_type): Remove bitfields to set sign...
(FLO_union_type): Remove bitfields to set sign, exponent, and
mantissa, and add value_raw field, which is an integer of the
appropriate type. If _DEBUG_BITFLOAT is defined, provide little and
big endian bitfields. If the macro FLOAT_BIT_ORDER_MISMATCH is
defined, use explicit bitfields.
(pack_d, unpack_d): Switch to use value_raw and explicit shifts and
masks so that we don't have to worry about whether the target is big
or little endian unless FLOAT_BIT_ORDER_MISMATCH is defined. If
single precision floating point, rename to pack_f and unpack_f, so
there is no confusion in the debugger.
Richard Kenner [Mon, 11 Sep 1995 22:48:01 +0000 (18:48 -0400)]
(FLO_union_type): Remove bitfields to set sign...
(FLO_union_type): Remove bitfields to set sign, exponent, and
mantissa, and add value_raw field, which is an integer of the
appropriate type. If _DEBUG_BITFLOAT is defined, provide little and
big endian bitfields.
(pack_d, unpack_d): Switch to use value_raw and explicit shifts and
masks so that we don't have to worry about whether the target is big
or little endian. If single precision floating point, rename to
pack_f and unpack_f, so there is no confusion in the debugger.
Richard Kenner [Mon, 11 Sep 1995 21:39:30 +0000 (17:39 -0400)]
(xcoff_inlining): New variable...
(xcoff_inlining): New variable, used in place of
xcoff_current_include_file when determining whether to use absolute
line numbers.
(xcoffout_source_file): Switched to using xcoff_inlining to determine
when to emit .bi/.ei directives.
Richard Kenner [Thu, 31 Aug 1995 22:38:14 +0000 (18:38 -0400)]
(ends_in_label): New %union member.
(stmts, stmt_or_label): Use new member to avoid lexical lookahead hack.
(lineno_stmt_or_labels): New rule.
(lineno_stmt_or_label, stmt_or_label): Yield nonzero if it ends in a label.
Richard Kenner [Thu, 31 Aug 1995 12:30:38 +0000 (08:30 -0400)]
(push_reload): Add case for output reload of a SUBREG of a hard reg when output mode is invalid for that mode.
(push_reload): Add case for output reload of a SUBREG
of a hard reg when output mode is invalid for that mode.
In both that case and existing case for in, don't remove SUBREG.
Richard Kenner [Sat, 26 Aug 1995 10:56:53 +0000 (06:56 -0400)]
(emit_reload_insns): Do nothing for SUBREG whose operand is unused subsequently.
(emit_reload_insns): Do nothing for SUBREG whose operand is unused
subsequently.
In secondary reload case, if paradoxical SUBREG for output, reload thing
inside SUBREG, just like gen_reload.
Per Bothner [Fri, 25 Aug 1995 23:04:48 +0000 (19:04 -0400)]
(flag_new_for_scope): Add a new mode that follows ANSI for-scoping, but supports (and warns about) old programs.
(flag_new_for_scope): Add a new mode that follows ANSI
for-scoping, but supports (and warns about) old programs.
Make the new mode (with value 1) the default.
(lang_f_options): The on-value for flag_new_for_scope is now 2.