* m68k.h: Declare more functions used in macros.
(REG_CLASS_CONTENTS): Completely embrace initializer.
* m68k.md (adddi3, subdi3): Add abort call to avoid warning
about returning no value.
* cse.c (find_best_addr): Declare p and found_better only if
needed.
* dbxout.c (dbxout_continue): Define only if DBX_CONTIN_LENGTH > 0.
* dwarfout.c (string_length_attribute): #if 0 away.
* function.c (expand_function_end): Define varible blktramp only
if needed.
* jump.c (find_insert_position): Define only if !HAVE_cc0.
* loop.c (combine_givs_p): Define variable tem only if needed.
* real.c: Comment out unused functions eabs, eround,
e{24,53,64,113}toasc and eiinfin.
From-SVN: r19998
+1998-05-24 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * m68k.h: Declare more functions used in macros.
+ (REG_CLASS_CONTENTS): Completely embrace initializer.
+ * m68k.md (adddi3, subdi3): Add abort call to avoid warning
+ about returning no value.
+ * cse.c (find_best_addr): Declare p and found_better only if
+ needed.
+ * dbxout.c (dbxout_continue): Define only if DBX_CONTIN_LENGTH > 0.
+ * dwarfout.c (string_length_attribute): #if 0 away.
+ * function.c (expand_function_end): Define varible blktramp only
+ if needed.
+ * jump.c (find_insert_position): Define only if !HAVE_cc0.
+ * loop.c (combine_givs_p): Define variable tem only if needed.
+ * real.c: Comment out unused functions eabs, eround,
+ e{24,53,64,113}toasc and eiinfin.
+
+
Sat May 23 23:44:53 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
* Makefile.in (boostrap2-lean, bootstrap3-lean,
#define REG_CLASS_CONTENTS \
{ \
- 0x00000000, /* NO_REGS */ \
- 0x000000ff, /* DATA_REGS */ \
- 0x0000ff00, /* ADDR_REGS */ \
- 0x00ff0000, /* FP_REGS */ \
- 0x0000ffff, /* GENERAL_REGS */ \
- 0x00ff00ff, /* DATA_OR_FP_REGS */ \
- 0x00ffff00, /* ADDR_OR_FP_REGS */ \
- 0x00ffffff, /* ALL_REGS */ \
+ {0x00000000}, /* NO_REGS */ \
+ {0x000000ff}, /* DATA_REGS */ \
+ {0x0000ff00}, /* ADDR_REGS */ \
+ {0x00ff0000}, /* FP_REGS */ \
+ {0x0000ffff}, /* GENERAL_REGS */ \
+ {0x00ff00ff}, /* DATA_OR_FP_REGS */ \
+ {0x00ffff00}, /* ADDR_OR_FP_REGS */ \
+ {0x00ffffff}, /* ALL_REGS */ \
}
/* The same information, inverted:
extern void print_operand_address ();
extern void print_operand ();
extern void notice_update_cc ();
+extern void finalize_pic ();
+extern void override_options ();
\f
/*
return \"add%.l %R2,%1\;move%.l %0,%3\;addx%.l %2,%3\;move%.l %3,%0\";
}
}
+ else
+ abort ();
} ")
(define_insn "addsi_lshrsi_31"
return \"sub%.l %R2,%1\;move%.l %0,%3\;subx%.l %2,%3\;move%.l %3,%0\";
}
}
+ else
+ abort ();
} ")
(define_insn "subsi3"
rtx insn;
rtx *loc;
{
- struct table_elt *elt, *p;
+ struct table_elt *elt;
rtx addr = *loc;
+#ifdef ADDRESS_COST
+ struct table_elt *p;
int found_better = 1;
+#endif
int save_do_not_record = do_not_record;
int save_hash_arg_in_memory = hash_arg_in_memory;
int save_hash_arg_in_struct = hash_arg_in_struct;
#endif
static void dbxout_typedefs PROTO((tree));
static void dbxout_type_index PROTO((tree));
+#if DBX_CONTIN_LENGTH > 0
static void dbxout_continue PROTO((void));
+#endif
static void dbxout_type_fields PROTO((tree));
static void dbxout_type_method_1 PROTO((tree, char *));
static void dbxout_type_methods PROTO((tree));
#endif
}
+#if DBX_CONTIN_LENGTH > 0
/* Continue a symbol-description that gets too big.
End one symbol table entry with a double-backslash
and start a new one, eventually producing something like
fprintf (asmfile, "%s \"", ASM_STABS_OP);
current_sym_nchars = 0;
}
+#endif /* DBX_CONTIN_LENGTH > 0 */
\f
/* Subroutine of `dbxout_type'. Output the type fields of TYPE.
This must be a separate function because anonymous unions require
static inline void body_end_attribute PROTO((char *));
static inline void language_attribute PROTO((unsigned));
static inline void member_attribute PROTO((tree));
+#if 0
static inline void string_length_attribute PROTO((tree));
+#endif
static inline void comp_dir_attribute PROTO((char *));
static inline void sf_names_attribute PROTO((char *));
static inline void src_info_attribute PROTO((char *));
}
}
+#if 0
static inline void
string_length_attribute (upper_bound)
register tree upper_bound;
output_bound_representation (upper_bound, 0, 'u');
ASM_OUTPUT_LABEL (asm_out_file, end_label);
}
+#endif
static inline void
comp_dir_attribute (dirname)
tree function = TREE_PURPOSE (link);
rtx context = lookup_static_chain (function);
rtx tramp = RTL_EXPR_RTL (TREE_VALUE (link));
+#ifdef TRAMPOLINE_TEMPLATE
rtx blktramp;
+#endif
rtx seq;
#ifdef TRAMPOLINE_TEMPLATE
static int delete_labelref_insn PROTO((rtx, rtx, int));
static void mark_modified_reg PROTO((rtx, rtx));
static void redirect_tablejump PROTO((rtx, rtx));
+#ifndef HAVE_cc0
static rtx find_insert_position PROTO((rtx, rtx));
+#endif
\f
/* Delete no-op jumps and optimize jumps to jumps
and jumps around jumps.
}
\f
+#ifndef HAVE_cc0
/* Return the insn that NEW can be safely inserted in front of starting at
the jump insn INSN. Return 0 if it is not safe to do this jump
optimization. Note that NEW must contain a single set. */
return reg_mentioned_p (SET_DEST (single_set (new)), prev) ? 0 : prev;
}
+#endif /* !HAVE_cc0 */
combine_givs_p (g1, g2)
struct induction *g1, *g2;
{
+#ifdef ADDRESS_COST
rtx tem;
+#endif
/* If these givs are identical, they can be combined. */
if (rtx_equal_p (g1->mult_val, g2->mult_val)
enum machine_mode));
static void eclear PROTO((unsigned EMUSHORT *));
static void emov PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
+#if 0
static void eabs PROTO((unsigned EMUSHORT *));
+#endif
static void eneg PROTO((unsigned EMUSHORT *));
static int eisneg PROTO((unsigned EMUSHORT *));
static int eisinf PROTO((unsigned EMUSHORT *));
static void einan PROTO((unsigned EMUSHORT *));
static int eiisnan PROTO((unsigned EMUSHORT *));
static int eiisneg PROTO((unsigned EMUSHORT *));
+#if 0
static void eiinfin PROTO((unsigned EMUSHORT *));
+#endif
static int eiisinf PROTO((unsigned EMUSHORT *));
static int ecmpm PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
static void eshdn1 PROTO((unsigned EMUSHORT *));
static void etoe24 PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
static void toe24 PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
static int ecmp PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
+#if 0
static void eround PROTO((unsigned EMUSHORT *, unsigned EMUSHORT *));
+#endif
static void ltoe PROTO((HOST_WIDE_INT *, unsigned EMUSHORT *));
static void ultoe PROTO((unsigned HOST_WIDE_INT *, unsigned EMUSHORT *));
static void eifrac PROTO((unsigned EMUSHORT *, HOST_WIDE_INT *,
unsigned EMUSHORT *));
static int eshift PROTO((unsigned EMUSHORT *, int));
static int enormlz PROTO((unsigned EMUSHORT *));
+#if 0
static void e24toasc PROTO((unsigned EMUSHORT *, char *, int));
static void e53toasc PROTO((unsigned EMUSHORT *, char *, int));
static void e64toasc PROTO((unsigned EMUSHORT *, char *, int));
static void e113toasc PROTO((unsigned EMUSHORT *, char *, int));
+#endif /* 0 */
static void etoasc PROTO((unsigned EMUSHORT *, char *, int));
static void asctoe24 PROTO((char *, unsigned EMUSHORT *));
static void asctoe53 PROTO((char *, unsigned EMUSHORT *));
e53toe (&d, e) IEEE double precision to e type
e64toe (&d, e) IEEE long double precision to e type
e113toe (&d, e) 128-bit long double precision to e type
+#if 0
eabs (e) absolute value
+#endif
eadd (a, b, c) c = b + a
eclear (e) e = 0
ecmp (a, b) Returns 1 if a > b, 0 if a == b,
emov (a, b) b = a
emul (a, b, c) c = b * a
eneg (e) e = -e
+#if 0
eround (a, b) b = nearest integer value to a
+#endif
esub (a, b, c) c = b - a
+#if 0
e24toasc (&f, str, n) single to ASCII string, n digits after decimal
e53toasc (&d, str, n) double to ASCII string, n digits after decimal
e64toasc (&d, str, n) 80-bit long double to ASCII string
e113toasc (&d, str, n) 128-bit long double to ASCII string
+#endif
etoasc (e, str, n) e to ASCII string, n digits after decimal
etoe24 (e, &f) convert e type to IEEE single precision
etoe53 (e, &d) convert e type to IEEE double precision
eiisnan (ai) 1 if a NaN
eiisneg (ai) 1 if sign bit of ai != 0, else 0
einan (ai) set ai = NaN
+#if 0
eiinfin (ai) set ai = infinity
+#endif
The result is always normalized and rounded to NI-4 word precision
after each arithmetic operation.
}
+#if 0
/* Absolute value of e-type X. */
static void
/* sign is top bit of last word of external format */
x[NE - 1] &= 0x7fff;
}
+#endif /* 0 */
/* Negate the e-type number X. */
return x[0] != 0;
}
+#if 0
/* Fill exploded e-type X with infinity pattern.
This has maximum exponent and significand all zeros. */
ecleaz (x);
x[E] = 0x7fff;
}
+#endif /* 0 */
/* Return nonzero if exploded e-type X is infinite. */
return (-msign); /* p is littler */
}
+#if 0
/* Find e-type nearest integer to X, as floor (X + 0.5). */
static void
eadd (ehalf, x, y);
efloor (y, y);
}
+#endif /* 0 */
/* Convert HOST_WIDE_INT LP to e type Y. */
};
#endif
+#if 0
/* Convert float value X to ASCII string STRING with NDIG digits after
the decimal point. */
e113toe (x, w);
etoasc (w, string, ndigs);
}
+#endif /* 0 */
/* Convert e-type X to ASCII string STRING with NDIGS digits after
the decimal point. */