xcoffout.c (xcoffout_declare_function): Add documentation.
* xcoffout.c (xcoffout_declare_function): Add documentation. * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not TARGET_64BIT. Compare constant to -1, not bit pattern. (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT. (expand_block_move): Allow 8 DImode loads for PowerPC64. Fix gen_movsi typos. From-SVN: r29697
This commit is contained in:
parent
628d441075
commit
c81fc13e34
@ -1,3 +1,12 @@
|
||||
Tue Sep 28 16:45:40 1999 David Edelsohn <edelsohn@gnu.org>
|
||||
|
||||
* xcoffout.c (xcoffout_declare_function): Add documentation.
|
||||
* rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
|
||||
TARGET_64BIT. Compare constant to -1, not bit pattern.
|
||||
(easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
|
||||
(expand_block_move): Allow 8 DImode loads for PowerPC64. Fix
|
||||
gen_movsi typos.
|
||||
|
||||
Tue Sep 28 16:43:14 1999 Nick Clifton <nickc@cygnus.com>
|
||||
|
||||
* dwarf2out.c (add_abstract_origin_attribute): Abort if
|
||||
@ -167,7 +176,7 @@ Fri Sep 24 11:57:06 1999 Geoffrey Keating <geoffk@cygnus.com>
|
||||
|
||||
Thu Sep 23 18:18:55 1999 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
* stmt.c (expand_start_bindings): Don't allow cleanup isntructions
|
||||
* stmt.c (expand_start_bindings): Don't allow cleanup instructions
|
||||
to disappear.
|
||||
|
||||
Thu Sep 23 18:07:01 1999 Mark Mitchell <mark@codesourcery.com>
|
||||
|
@ -455,9 +455,9 @@ direct_return ()
|
||||
|
||||
if (info->first_gp_reg_save == 32
|
||||
&& info->first_fp_reg_save == 64
|
||||
&& !info->lr_save_p
|
||||
&& !info->cr_save_p
|
||||
&& !info->push_p)
|
||||
&& ! info->lr_save_p
|
||||
&& ! info->cr_save_p
|
||||
&& ! info->push_p)
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -676,7 +676,7 @@ num_insns_constant_wide (value)
|
||||
return 1;
|
||||
|
||||
#if HOST_BITS_PER_WIDE_INT == 64
|
||||
else if (TARGET_64BIT)
|
||||
else if (TARGET_POWERPC64)
|
||||
{
|
||||
HOST_WIDE_INT low = value & 0xffffffff;
|
||||
HOST_WIDE_INT high = value >> 32;
|
||||
@ -684,10 +684,10 @@ num_insns_constant_wide (value)
|
||||
if (high == 0 && (low & 0x80000000) == 0)
|
||||
return 2;
|
||||
|
||||
else if (high == 0xffffffff && (low & 0x80000000) != 0)
|
||||
else if (high == -1 && (low & 0x80000000) != 0)
|
||||
return 2;
|
||||
|
||||
else if (!low)
|
||||
else if (! low)
|
||||
return num_insns_constant_wide (high) + 1;
|
||||
|
||||
else
|
||||
@ -748,8 +748,7 @@ num_insns_constant (op, mode)
|
||||
if (high == 0 && (low & 0x80000000) == 0)
|
||||
return num_insns_constant_wide (low);
|
||||
|
||||
else if (((high & 0xffffffff) == 0xffffffff)
|
||||
&& ((low & 0x80000000) != 0))
|
||||
else if (high == -1 && (low & 0x80000000) != 0)
|
||||
return num_insns_constant_wide (low);
|
||||
|
||||
else if (mask64_operand (op, mode))
|
||||
@ -820,7 +819,7 @@ easy_fp_constant (op, mode)
|
||||
}
|
||||
|
||||
else if (mode == DImode)
|
||||
return ((TARGET_64BIT
|
||||
return ((TARGET_POWERPC64
|
||||
&& GET_CODE (op) == CONST_DOUBLE && CONST_DOUBLE_LOW (op) == 0)
|
||||
|| (num_insns_constant (op, DImode) <= 2));
|
||||
|
||||
@ -1132,7 +1131,7 @@ current_file_function_operand (op, mode)
|
||||
return (GET_CODE (op) == SYMBOL_REF
|
||||
&& (SYMBOL_REF_FLAG (op)
|
||||
|| (op == XEXP (DECL_RTL (current_function_decl), 0)
|
||||
&& !DECL_WEAK (current_function_decl))));
|
||||
&& ! DECL_WEAK (current_function_decl))));
|
||||
}
|
||||
|
||||
|
||||
@ -1549,7 +1548,7 @@ function_arg (cum, mode, type, named)
|
||||
&& function_arg_boundary (mode, type) == 64) ? 1 : 0;
|
||||
int align_words = cum->words + align;
|
||||
|
||||
if (!named)
|
||||
if (! named)
|
||||
return NULL_RTX;
|
||||
|
||||
if (type && TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST)
|
||||
@ -1724,7 +1723,7 @@ setup_incoming_varargs (cum, mode, type, pretend_size, no_rtl)
|
||||
}
|
||||
|
||||
set = get_varargs_alias_set ();
|
||||
if (!no_rtl && first_reg_offset < GP_ARG_NUM_REG)
|
||||
if (! no_rtl && first_reg_offset < GP_ARG_NUM_REG)
|
||||
{
|
||||
mem = gen_rtx_MEM (BLKmode,
|
||||
plus_constant (save_area,
|
||||
@ -1742,7 +1741,7 @@ setup_incoming_varargs (cum, mode, type, pretend_size, no_rtl)
|
||||
|
||||
/* Save FP registers if needed. */
|
||||
if ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS)
|
||||
&& TARGET_HARD_FLOAT && !no_rtl
|
||||
&& TARGET_HARD_FLOAT && ! no_rtl
|
||||
&& next_cum.fregno <= FP_ARG_V4_MAX_REG)
|
||||
{
|
||||
int fregno = next_cum.fregno;
|
||||
@ -2087,12 +2086,18 @@ expand_block_move (operands)
|
||||
then don't generate more than 8 loads. */
|
||||
if (TARGET_STRING)
|
||||
{
|
||||
if (bytes > 4*8)
|
||||
if (bytes > 8*4)
|
||||
return 0;
|
||||
}
|
||||
else if (! STRICT_ALIGNMENT)
|
||||
{
|
||||
if (bytes > 4*8)
|
||||
if (TARGET_POWERPC64 && align >= 4)
|
||||
{
|
||||
if (bytes > 8*8)
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
if (bytes > 8*4)
|
||||
return 0;
|
||||
}
|
||||
else if (bytes > 8*align)
|
||||
@ -2290,7 +2295,7 @@ expand_block_move (operands)
|
||||
{
|
||||
move_bytes = 2;
|
||||
tmp_reg = gen_reg_rtx (HImode);
|
||||
emit_insn (gen_movsi (tmp_reg,
|
||||
emit_insn (gen_movhi (tmp_reg,
|
||||
expand_block_move_mem (HImode,
|
||||
src_addr,
|
||||
orig_src)));
|
||||
@ -2303,7 +2308,7 @@ expand_block_move (operands)
|
||||
{
|
||||
move_bytes = 1;
|
||||
tmp_reg = gen_reg_rtx (QImode);
|
||||
emit_insn (gen_movsi (tmp_reg,
|
||||
emit_insn (gen_movqi (tmp_reg,
|
||||
expand_block_move_mem (QImode,
|
||||
src_addr,
|
||||
orig_src)));
|
||||
@ -3919,16 +3924,16 @@ rs6000_stack_info ()
|
||||
if (info_ptr->gp_size == 0)
|
||||
info_ptr->gp_save_offset = 0;
|
||||
|
||||
if (!info_ptr->lr_save_p)
|
||||
if (! info_ptr->lr_save_p)
|
||||
info_ptr->lr_save_offset = 0;
|
||||
|
||||
if (!info_ptr->cr_save_p)
|
||||
if (! info_ptr->cr_save_p)
|
||||
info_ptr->cr_save_offset = 0;
|
||||
|
||||
if (!info_ptr->toc_save_p)
|
||||
if (! info_ptr->toc_save_p)
|
||||
info_ptr->toc_save_offset = 0;
|
||||
|
||||
if (!info_ptr->main_save_p)
|
||||
if (! info_ptr->main_save_p)
|
||||
info_ptr->main_save_offset = 0;
|
||||
|
||||
return info_ptr;
|
||||
@ -3940,7 +3945,7 @@ debug_stack_info (info)
|
||||
{
|
||||
const char *abi_string;
|
||||
|
||||
if (!info)
|
||||
if (! info)
|
||||
info = rs6000_stack_info ();
|
||||
|
||||
fprintf (stderr, "\nStack information for function %s:\n",
|
||||
@ -4080,7 +4085,7 @@ rs6000_output_load_toc_table (file, reg)
|
||||
fprintf (file, "\n");
|
||||
|
||||
/* possibly create the toc section */
|
||||
if (!toc_initialized)
|
||||
if (! toc_initialized)
|
||||
{
|
||||
toc_section ();
|
||||
function_section (current_function_decl);
|
||||
@ -4339,13 +4344,13 @@ output_prolog (file, size)
|
||||
if ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS)
|
||||
&& flag_pic == 1 && regs_ever_live[PIC_OFFSET_TABLE_REGNUM])
|
||||
{
|
||||
if (!info->lr_save_p)
|
||||
if (! info->lr_save_p)
|
||||
asm_fprintf (file, "\tmflr %s\n", reg_names[0]);
|
||||
|
||||
fputs ("\tbl _GLOBAL_OFFSET_TABLE_@local-4\n", file);
|
||||
asm_fprintf (file, "\tmflr %s\n", reg_names[PIC_OFFSET_TABLE_REGNUM]);
|
||||
|
||||
if (!info->lr_save_p)
|
||||
if (! info->lr_save_p)
|
||||
asm_fprintf (file, "\tmtlr %s\n", reg_names[0]);
|
||||
}
|
||||
|
||||
@ -4459,7 +4464,7 @@ output_prolog (file, size)
|
||||
if (TARGET_TOC && TARGET_MINIMAL_TOC && get_pool_size () != 0)
|
||||
{
|
||||
#ifdef USING_SVR4_H
|
||||
if (!profile_flag)
|
||||
if (! profile_flag)
|
||||
rs6000_pic_func_labelno = rs6000_pic_labelno;
|
||||
#endif
|
||||
rs6000_output_load_toc_table (file, 30);
|
||||
@ -5195,7 +5200,7 @@ output_toc (file, x, labelno)
|
||||
a TOC reference to an unknown section. Thus, for vtables only,
|
||||
we emit the TOC reference to reference the symbol and not the
|
||||
section. */
|
||||
if (!strncmp ("_vt.", name, 4))
|
||||
if (! strncmp ("_vt.", name, 4))
|
||||
{
|
||||
RS6000_OUTPUT_BASENAME (file, name);
|
||||
if (offset < 0)
|
||||
@ -5983,7 +5988,7 @@ rs6000_encode_section_info (decl)
|
||||
{
|
||||
rtx sym_ref = XEXP (DECL_RTL (decl), 0);
|
||||
if ((TREE_ASM_WRITTEN (decl) || ! TREE_PUBLIC (decl))
|
||||
&& !DECL_WEAK (decl))
|
||||
&& ! DECL_WEAK (decl))
|
||||
SYMBOL_REF_FLAG (sym_ref) = 1;
|
||||
|
||||
if (DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_NT)
|
||||
|
@ -485,6 +485,9 @@ xcoffout_declare_function (file, decl, name)
|
||||
file and/or at the wrong line number. */
|
||||
xcoffout_source_file (file, DECL_SOURCE_FILE (decl), 0);
|
||||
dbxout_symbol (decl, 0);
|
||||
|
||||
/* .function NAME, TOP, MAPPING, TYPE, SIZE
|
||||
16 and 044 are placeholders for backwards compatibility */
|
||||
fprintf (file, "\t.function .%s,.%s,16,044,FE..%s-.%s\n", n, n, n, n);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user