Commit a6c2a102 by David Edelsohn Committed by David Edelsohn

rs6000.c (rs6000_stack_info): Use if == 0 for sizes.

        * rs6000.c (rs6000_stack_info): Use if == 0 for sizes.
        (output_epilog): Use if != 0 for offset.
        (rs6000_fatal_bad_address): Prepare for Intl.
        * rs6000.h (rs6000_fatal_bad_address): Declare.
        * rs6000.md (movsfcc, movdfcc): Use else if.
        (elf_high): Use {liu|lis}.
        (elf_low): Use {cal|la}.  Remove %a template from old mnemonics.
        (movsi): Use rs6000_fatal_bad_address.

From-SVN: r21766
parent 8ec82f87
Sun Aug 16 13:52:00 1998 David Edelsohn <edelsohn@mhpcc.edu>
* rs6000.c (rs6000_stack_info): Use if == 0 for sizes.
(output_epilog): Use if != 0 for offset.
(rs6000_fatal_bad_address): Prepare for Intl.
* rs6000.h (rs6000_fatal_bad_address): Declare.
* rs6000.md (movsfcc, movdfcc): Use else if.
(elf_high): Use {liu|lis}.
(elf_low): Use {cal|la}. Remove %a template from old mnemonics.
(movsi): Use rs6000_fatal_bad_address.
Sun Aug 16 01:53:21 1998 Richard Henderson <rth@cygnus.com> Sun Aug 16 01:53:21 1998 Richard Henderson <rth@cygnus.com>
* reload.c (find_equiv_reg): Reject equivalences separated * reload.c (find_equiv_reg): Reject equivalences separated
......
...@@ -3520,10 +3520,10 @@ rs6000_stack_info () ...@@ -3520,10 +3520,10 @@ rs6000_stack_info ()
info_ptr->fpmem_offset = 0; info_ptr->fpmem_offset = 0;
/* Zero offsets if we're not saving those registers */ /* Zero offsets if we're not saving those registers */
if (!info_ptr->fp_size) if (info_ptr->fp_size == 0)
info_ptr->fp_save_offset = 0; info_ptr->fp_save_offset = 0;
if (!info_ptr->gp_size) if (info_ptr->gp_size == 0)
info_ptr->gp_save_offset = 0; info_ptr->gp_save_offset = 0;
if (!info_ptr->lr_save_p) if (!info_ptr->lr_save_p)
...@@ -4148,8 +4148,9 @@ output_epilog (file, size) ...@@ -4148,8 +4148,9 @@ output_epilog (file, size)
+ (regs_ever_live[71] != 0) * 0x10 + (regs_ever_live[71] != 0) * 0x10
+ (regs_ever_live[72] != 0) * 0x8, reg_names[12]); + (regs_ever_live[72] != 0) * 0x8, reg_names[12]);
/* If this is V.4, unwind the stack pointer after all of the loads have been done */ /* If this is V.4, unwind the stack pointer after all of the loads
if (sp_offset) have been done */
if (sp_offset != 0)
asm_fprintf (file, "\t{cal|la} %s,%d(%s)\n", asm_fprintf (file, "\t{cal|la} %s,%d(%s)\n",
reg_names[1], sp_offset, reg_names[1]); reg_names[1], sp_offset, reg_names[1]);
else if (sp_reg != 1) else if (sp_reg != 1)
...@@ -5285,3 +5286,10 @@ rs6000_encode_section_info (decl) ...@@ -5285,3 +5286,10 @@ rs6000_encode_section_info (decl)
} }
#endif /* USING_SVR4_H */ #endif /* USING_SVR4_H */
void
rs6000_fatal_bad_address (op)
rtx op;
{
fatal_insn ("bad address", op);
}
...@@ -3260,6 +3260,7 @@ extern struct rtx_def *rs6000_longcall_ref (); ...@@ -3260,6 +3260,7 @@ extern struct rtx_def *rs6000_longcall_ref ();
extern int function_arg_padding (); extern int function_arg_padding ();
extern void toc_section (); extern void toc_section ();
extern void private_data_section (); extern void private_data_section ();
extern void rs6000_fatal_bad_address ();
/* See nonlocal_goto_receiver for when this must be set. */ /* See nonlocal_goto_receiver for when this must be set. */
......
...@@ -3312,7 +3312,7 @@ ...@@ -3312,7 +3312,7 @@
emit_insn (gen_negdf2 (temp, temp)); emit_insn (gen_negdf2 (temp, temp));
emit_insn (gen_fseldfsf4 (operands[0], temp, operands[0], operands[3])); emit_insn (gen_fseldfsf4 (operands[0], temp, operands[0], operands[3]));
} }
if (code == NE) else if (code == NE)
{ {
emit_insn (gen_negdf2 (temp, temp)); emit_insn (gen_negdf2 (temp, temp));
emit_insn (gen_fseldfsf4 (operands[0], temp, operands[3], operands[0])); emit_insn (gen_fseldfsf4 (operands[0], temp, operands[3], operands[0]));
...@@ -3328,7 +3328,7 @@ ...@@ -3328,7 +3328,7 @@
emit_insn (gen_negsf2 (temp, temp)); emit_insn (gen_negsf2 (temp, temp));
emit_insn (gen_fselsfsf4 (operands[0], temp, operands[0], operands[3])); emit_insn (gen_fselsfsf4 (operands[0], temp, operands[0], operands[3]));
} }
if (code == NE) else if (code == NE)
{ {
emit_insn (gen_negsf2 (temp, temp)); emit_insn (gen_negsf2 (temp, temp));
emit_insn (gen_fselsfsf4 (operands[0], temp, operands[3], operands[0])); emit_insn (gen_fselsfsf4 (operands[0], temp, operands[3], operands[0]));
...@@ -3559,7 +3559,7 @@ ...@@ -3559,7 +3559,7 @@
emit_insn (gen_negdf2 (temp, temp)); emit_insn (gen_negdf2 (temp, temp));
emit_insn (gen_fseldfdf4 (operands[0], temp, operands[0], operands[3])); emit_insn (gen_fseldfdf4 (operands[0], temp, operands[0], operands[3]));
} }
if (code == NE) else if (code == NE)
{ {
emit_insn (gen_negdf2 (temp, temp)); emit_insn (gen_negdf2 (temp, temp));
emit_insn (gen_fseldfdf4 (operands[0], temp, operands[3], operands[0])); emit_insn (gen_fseldfdf4 (operands[0], temp, operands[3], operands[0]));
...@@ -3575,7 +3575,7 @@ ...@@ -3575,7 +3575,7 @@
emit_insn (gen_negsf2 (temp, temp)); emit_insn (gen_negsf2 (temp, temp));
emit_insn (gen_fselsfdf4 (operands[0], temp, operands[0], operands[3])); emit_insn (gen_fselsfdf4 (operands[0], temp, operands[0], operands[3]));
} }
if (code == NE) else if (code == NE)
{ {
emit_insn (gen_negsf2 (temp, temp)); emit_insn (gen_negsf2 (temp, temp));
emit_insn (gen_fselsfdf4 (operands[0], temp, operands[3], operands[0])); emit_insn (gen_fselsfdf4 (operands[0], temp, operands[3], operands[0]));
...@@ -5302,14 +5302,14 @@ ...@@ -5302,14 +5302,14 @@
[(set (match_operand:SI 0 "register_operand" "=b") [(set (match_operand:SI 0 "register_operand" "=b")
(high:SI (match_operand 1 "" "")))] (high:SI (match_operand 1 "" "")))]
"TARGET_ELF && !TARGET_64BIT" "TARGET_ELF && !TARGET_64BIT"
"{cau|addis} %0,0,%1@ha") "{liu|lis} %0,%1@ha")
(define_insn "elf_low" (define_insn "elf_low"
[(set (match_operand:SI 0 "register_operand" "=r") [(set (match_operand:SI 0 "register_operand" "=r")
(lo_sum:SI (match_operand:SI 1 "register_operand" "b") (lo_sum:SI (match_operand:SI 1 "register_operand" "b")
(match_operand 2 "" "")))] (match_operand 2 "" "")))]
"TARGET_ELF && !TARGET_64BIT" "TARGET_ELF && !TARGET_64BIT"
"{cal %0,%a2@l(%1)|addi %0,%1,%2@l}") "{cal|la} %0,%2@l(%1)")
;; Set up a register with a value from the GOT table ;; Set up a register with a value from the GOT table
...@@ -5464,7 +5464,7 @@ ...@@ -5464,7 +5464,7 @@
DONE; DONE;
} }
else else
fatal_insn (\"bad address\", operands[1]); rs6000_fatal_bad_address (operands[1]);
} }
if ((!TARGET_WINDOWS_NT || DEFAULT_ABI != ABI_NT) if ((!TARGET_WINDOWS_NT || DEFAULT_ABI != ABI_NT)
...@@ -5954,7 +5954,7 @@ ...@@ -5954,7 +5954,7 @@
switch (which_alternative) switch (which_alternative)
{ {
default: default:
abort(); abort ();
case 0: case 0:
/* We normally copy the low-numbered register first. However, if /* We normally copy the low-numbered register first. However, if
the first register operand 0 is the same as the second register of the first register operand 0 is the same as the second register of
...@@ -6001,7 +6001,7 @@ ...@@ -6001,7 +6001,7 @@
switch (which_alternative) switch (which_alternative)
{ {
default: default:
abort(); abort ();
case 0: case 0:
/* We normally copy the low-numbered register first. However, if /* We normally copy the low-numbered register first. However, if
the first register operand 0 is the same as the second register of the first register operand 0 is the same as the second register of
...@@ -6145,7 +6145,7 @@ ...@@ -6145,7 +6145,7 @@
switch (which_alternative) switch (which_alternative)
{ {
default: default:
abort(); abort ();
case 0: case 0:
/* We normally copy the low-numbered register first. However, if /* We normally copy the low-numbered register first. However, if
the first register operand 0 is the same as the second register of the first register operand 0 is the same as the second register of
...@@ -6514,7 +6514,7 @@ ...@@ -6514,7 +6514,7 @@
switch (which_alternative) switch (which_alternative)
{ {
default: default:
abort(); abort ();
case 0: case 0:
/* We normally copy the low-numbered register first. However, if /* We normally copy the low-numbered register first. However, if
the first register operand 0 is the same as the second register of the first register operand 0 is the same as the second register of
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment