Richard Kenner [Tue, 19 Sep 1995 23:29:48 +0000 (19:29 -0400)]
(MACROPROLOGUE): New macro.
(FUNCTION_{PRO,EPI}LOGUE): Added ability to use IBM supplied function
prologue macros.
(FUNCTION_PROLOGUE): Corrected function "in-line" prologue alignment
problems.
(ASM_DECLARE_FUNCTION_NAME): Changed alignment to FullWord.
(ASM_OUTPUT_{SHORT,ASCII}): Reworked.
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.