mirror of
https://github.com/pret/agbcc.git
synced 2026-08-25 11:54:15 -05:00
remove code for unused FP modes
This commit is contained in:
@@ -182,15 +182,6 @@ extern int target_flags;
|
||||
fprintf (STREAM, "\n"); \
|
||||
}
|
||||
|
||||
#define ASM_OUTPUT_LONG_DOUBLE(STREAM,VALUE) \
|
||||
do { char dstr[30]; \
|
||||
long l[3]; \
|
||||
REAL_VALUE_TO_TARGET_LONG_DOUBLE (VALUE, l); \
|
||||
REAL_VALUE_TO_DECIMAL (VALUE, "%.20g", dstr); \
|
||||
fprintf (STREAM, "\t.long 0x%lx,0x%lx,0x%lx\t%s long double %s\n", \
|
||||
l[0], l[1], l[2], ASM_COMMENT_START, dstr); \
|
||||
} while (0)
|
||||
|
||||
#define ASM_OUTPUT_DOUBLE(STREAM, VALUE) \
|
||||
do { char dstr[30]; \
|
||||
long l[2]; \
|
||||
|
||||
@@ -6906,11 +6906,6 @@ add_const_value_attribute (die, rtl)
|
||||
REAL_VALUE_TO_TARGET_DOUBLE (rv, array);
|
||||
break;
|
||||
|
||||
case XFmode:
|
||||
case TFmode:
|
||||
REAL_VALUE_TO_TARGET_LONG_DOUBLE (rv, array);
|
||||
break;
|
||||
|
||||
default:
|
||||
abort ();
|
||||
}
|
||||
|
||||
@@ -1228,20 +1228,6 @@ operand_subword (op, i, validate_address, mode)
|
||||
else
|
||||
abort ();
|
||||
}
|
||||
else if (HOST_BITS_PER_WIDE_INT >= BITS_PER_WORD
|
||||
&& GET_MODE_CLASS (mode) == MODE_FLOAT
|
||||
&& GET_MODE_BITSIZE (mode) > 64
|
||||
&& GET_CODE (op) == CONST_DOUBLE)
|
||||
{
|
||||
long k[4];
|
||||
REAL_VALUE_TYPE rv;
|
||||
|
||||
REAL_VALUE_FROM_CONST_DOUBLE (rv, op);
|
||||
REAL_VALUE_TO_TARGET_LONG_DOUBLE (rv, k);
|
||||
|
||||
if (BITS_PER_WORD == 32)
|
||||
return GEN_INT ((HOST_WIDE_INT) k[i]);
|
||||
}
|
||||
#else /* no REAL_ARITHMETIC */
|
||||
if (((HOST_FLOAT_FORMAT == TARGET_FLOAT_FORMAT
|
||||
&& HOST_BITS_PER_WIDE_INT == BITS_PER_WORD)
|
||||
|
||||
194
gcc/expr.c
194
gcc/expr.c
@@ -593,150 +593,6 @@ convert_move (to, from, unsignedp)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef HAVE_trunchfqf2
|
||||
if (HAVE_trunchfqf2 && from_mode == HFmode && to_mode == QFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_trunchfqf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_trunctqfqf2
|
||||
if (HAVE_trunctqfqf2 && from_mode == TQFmode && to_mode == QFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_trunctqfqf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_truncsfqf2
|
||||
if (HAVE_truncsfqf2 && from_mode == SFmode && to_mode == QFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_truncsfqf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_truncdfqf2
|
||||
if (HAVE_truncdfqf2 && from_mode == DFmode && to_mode == QFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_truncdfqf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_truncxfqf2
|
||||
if (HAVE_truncxfqf2 && from_mode == XFmode && to_mode == QFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_truncxfqf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_trunctfqf2
|
||||
if (HAVE_trunctfqf2 && from_mode == TFmode && to_mode == QFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_trunctfqf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_trunctqfhf2
|
||||
if (HAVE_trunctqfhf2 && from_mode == TQFmode && to_mode == HFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_trunctqfhf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_truncsfhf2
|
||||
if (HAVE_truncsfhf2 && from_mode == SFmode && to_mode == HFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_truncsfhf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_truncdfhf2
|
||||
if (HAVE_truncdfhf2 && from_mode == DFmode && to_mode == HFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_truncdfhf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_truncxfhf2
|
||||
if (HAVE_truncxfhf2 && from_mode == XFmode && to_mode == HFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_truncxfhf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_trunctfhf2
|
||||
if (HAVE_trunctfhf2 && from_mode == TFmode && to_mode == HFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_trunctfhf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_truncsftqf2
|
||||
if (HAVE_truncsftqf2 && from_mode == SFmode && to_mode == TQFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_truncsftqf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_truncdftqf2
|
||||
if (HAVE_truncdftqf2 && from_mode == DFmode && to_mode == TQFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_truncdftqf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_truncxftqf2
|
||||
if (HAVE_truncxftqf2 && from_mode == XFmode && to_mode == TQFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_truncxftqf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_trunctftqf2
|
||||
if (HAVE_trunctftqf2 && from_mode == TFmode && to_mode == TQFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_trunctftqf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_truncdfsf2
|
||||
if (HAVE_truncdfsf2 && from_mode == DFmode && to_mode == SFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_truncdfsf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_truncxfsf2
|
||||
if (HAVE_truncxfsf2 && from_mode == XFmode && to_mode == SFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_truncxfsf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_trunctfsf2
|
||||
if (HAVE_trunctfsf2 && from_mode == TFmode && to_mode == SFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_trunctfsf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_truncxfdf2
|
||||
if (HAVE_truncxfdf2 && from_mode == XFmode && to_mode == DFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_truncxfdf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_trunctfdf2
|
||||
if (HAVE_trunctfdf2 && from_mode == TFmode && to_mode == DFmode)
|
||||
{
|
||||
emit_unop_insn (CODE_FOR_trunctfdf2, to, from, UNKNOWN);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
libcall = (rtx) 0;
|
||||
switch (from_mode)
|
||||
@@ -747,15 +603,6 @@ convert_move (to, from, unsignedp)
|
||||
case DFmode:
|
||||
libcall = extendsfdf2_libfunc;
|
||||
break;
|
||||
|
||||
case XFmode:
|
||||
libcall = extendsfxf2_libfunc;
|
||||
break;
|
||||
|
||||
case TFmode:
|
||||
libcall = extendsftf2_libfunc;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -767,52 +614,11 @@ convert_move (to, from, unsignedp)
|
||||
case SFmode:
|
||||
libcall = truncdfsf2_libfunc;
|
||||
break;
|
||||
|
||||
case XFmode:
|
||||
libcall = extenddfxf2_libfunc;
|
||||
break;
|
||||
|
||||
case TFmode:
|
||||
libcall = extenddftf2_libfunc;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case XFmode:
|
||||
switch (to_mode)
|
||||
{
|
||||
case SFmode:
|
||||
libcall = truncxfsf2_libfunc;
|
||||
break;
|
||||
|
||||
case DFmode:
|
||||
libcall = truncxfdf2_libfunc;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case TFmode:
|
||||
switch (to_mode)
|
||||
{
|
||||
case SFmode:
|
||||
libcall = trunctfsf2_libfunc;
|
||||
break;
|
||||
|
||||
case DFmode:
|
||||
libcall = trunctfdf2_libfunc;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
147
gcc/optabs.c
147
gcc/optabs.c
@@ -3002,37 +3002,7 @@ emit_float_lib_cmp (x, y, comparison)
|
||||
rtx libfunc = 0;
|
||||
rtx result;
|
||||
|
||||
if (mode == HFmode)
|
||||
switch (comparison)
|
||||
{
|
||||
case EQ:
|
||||
libfunc = eqhf2_libfunc;
|
||||
break;
|
||||
|
||||
case NE:
|
||||
libfunc = nehf2_libfunc;
|
||||
break;
|
||||
|
||||
case GT:
|
||||
libfunc = gthf2_libfunc;
|
||||
break;
|
||||
|
||||
case GE:
|
||||
libfunc = gehf2_libfunc;
|
||||
break;
|
||||
|
||||
case LT:
|
||||
libfunc = lthf2_libfunc;
|
||||
break;
|
||||
|
||||
case LE:
|
||||
libfunc = lehf2_libfunc;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
else if (mode == SFmode)
|
||||
if (mode == SFmode)
|
||||
switch (comparison)
|
||||
{
|
||||
case EQ:
|
||||
@@ -3089,66 +3059,6 @@ emit_float_lib_cmp (x, y, comparison)
|
||||
libfunc = ledf2_libfunc;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
else if (mode == XFmode)
|
||||
switch (comparison)
|
||||
{
|
||||
case EQ:
|
||||
libfunc = eqxf2_libfunc;
|
||||
break;
|
||||
|
||||
case NE:
|
||||
libfunc = nexf2_libfunc;
|
||||
break;
|
||||
|
||||
case GT:
|
||||
libfunc = gtxf2_libfunc;
|
||||
break;
|
||||
|
||||
case GE:
|
||||
libfunc = gexf2_libfunc;
|
||||
break;
|
||||
|
||||
case LT:
|
||||
libfunc = ltxf2_libfunc;
|
||||
break;
|
||||
|
||||
case LE:
|
||||
libfunc = lexf2_libfunc;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
else if (mode == TFmode)
|
||||
switch (comparison)
|
||||
{
|
||||
case EQ:
|
||||
libfunc = eqtf2_libfunc;
|
||||
break;
|
||||
|
||||
case NE:
|
||||
libfunc = netf2_libfunc;
|
||||
break;
|
||||
|
||||
case GT:
|
||||
libfunc = gttf2_libfunc;
|
||||
break;
|
||||
|
||||
case GE:
|
||||
libfunc = getf2_libfunc;
|
||||
break;
|
||||
|
||||
case LT:
|
||||
libfunc = lttf2_libfunc;
|
||||
break;
|
||||
|
||||
case LE:
|
||||
libfunc = letf2_libfunc;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -3749,28 +3659,6 @@ expand_float (to, from, unsignedp)
|
||||
else
|
||||
abort ();
|
||||
}
|
||||
else if (GET_MODE (to) == XFmode)
|
||||
{
|
||||
if (GET_MODE (from) == SImode)
|
||||
libfcn = floatsixf_libfunc;
|
||||
else if (GET_MODE (from) == DImode)
|
||||
libfcn = floatdixf_libfunc;
|
||||
else if (GET_MODE (from) == TImode)
|
||||
libfcn = floattixf_libfunc;
|
||||
else
|
||||
abort ();
|
||||
}
|
||||
else if (GET_MODE (to) == TFmode)
|
||||
{
|
||||
if (GET_MODE (from) == SImode)
|
||||
libfcn = floatsitf_libfunc;
|
||||
else if (GET_MODE (from) == DImode)
|
||||
libfcn = floatditf_libfunc;
|
||||
else if (GET_MODE (from) == TImode)
|
||||
libfcn = floattitf_libfunc;
|
||||
else
|
||||
abort ();
|
||||
}
|
||||
else
|
||||
abort ();
|
||||
|
||||
@@ -3972,28 +3860,6 @@ expand_fix (to, from, unsignedp)
|
||||
else
|
||||
abort ();
|
||||
}
|
||||
else if (GET_MODE (from) == XFmode)
|
||||
{
|
||||
if (GET_MODE (to) == SImode)
|
||||
libfcn = unsignedp ? fixunsxfsi_libfunc : fixxfsi_libfunc;
|
||||
else if (GET_MODE (to) == DImode)
|
||||
libfcn = unsignedp ? fixunsxfdi_libfunc : fixxfdi_libfunc;
|
||||
else if (GET_MODE (to) == TImode)
|
||||
libfcn = unsignedp ? fixunsxfti_libfunc : fixxfti_libfunc;
|
||||
else
|
||||
abort ();
|
||||
}
|
||||
else if (GET_MODE (from) == TFmode)
|
||||
{
|
||||
if (GET_MODE (to) == SImode)
|
||||
libfcn = unsignedp ? fixunstfsi_libfunc : fixtfsi_libfunc;
|
||||
else if (GET_MODE (to) == DImode)
|
||||
libfcn = unsignedp ? fixunstfdi_libfunc : fixtfdi_libfunc;
|
||||
else if (GET_MODE (to) == TImode)
|
||||
libfcn = unsignedp ? fixunstfti_libfunc : fixtfti_libfunc;
|
||||
else
|
||||
abort ();
|
||||
}
|
||||
else
|
||||
abort ();
|
||||
|
||||
@@ -4137,9 +4003,6 @@ void
|
||||
init_optabs ()
|
||||
{
|
||||
int i;
|
||||
#ifdef FIXUNS_TRUNC_LIKE_FIX_TRUNC
|
||||
int j;
|
||||
#endif
|
||||
|
||||
enum insn_code *p;
|
||||
|
||||
@@ -4230,14 +4093,6 @@ init_optabs ()
|
||||
/* Fill in the optabs with the insns we support. */
|
||||
init_all_optabs ();
|
||||
|
||||
#ifdef FIXUNS_TRUNC_LIKE_FIX_TRUNC
|
||||
/* This flag says the same insns that convert to a signed fixnum
|
||||
also convert validly to an unsigned one. */
|
||||
for (i = 0; i < NUM_MACHINE_MODES; i++)
|
||||
for (j = 0; j < NUM_MACHINE_MODES; j++)
|
||||
fixtrunctab[i][j][1] = fixtrunctab[i][j][0];
|
||||
#endif
|
||||
|
||||
#ifdef EXTRA_CC_MODES
|
||||
init_mov_optab ();
|
||||
#endif
|
||||
|
||||
1542
gcc/real.c
1542
gcc/real.c
File diff suppressed because it is too large
Load Diff
@@ -97,8 +97,6 @@ extern void ereal_to_int (HOST_WIDE_INT *, HOST_WIDE_INT *,
|
||||
REAL_VALUE_TYPE);
|
||||
extern REAL_VALUE_TYPE ereal_ldexp (REAL_VALUE_TYPE, int);
|
||||
|
||||
extern void etartdouble (REAL_VALUE_TYPE, long *);
|
||||
extern void etarldouble (REAL_VALUE_TYPE, long *);
|
||||
extern void etardouble (REAL_VALUE_TYPE, long *);
|
||||
extern long etarsingle (REAL_VALUE_TYPE);
|
||||
extern void ereal_to_decimal (REAL_VALUE_TYPE, char *);
|
||||
@@ -148,7 +146,6 @@ extern REAL_VALUE_TYPE real_value_truncate (enum machine_mode,
|
||||
ereal_from_uint (&d, lo, hi, mode)
|
||||
|
||||
/* IN is a REAL_VALUE_TYPE. OUT is an array of longs. */
|
||||
#define REAL_VALUE_TO_TARGET_LONG_DOUBLE(IN, OUT) (etartdouble ((IN), (OUT)))
|
||||
#define REAL_VALUE_TO_TARGET_DOUBLE(IN, OUT) (etardouble ((IN), (OUT)))
|
||||
|
||||
/* IN is a REAL_VALUE_TYPE. OUT is a long. */
|
||||
|
||||
28
gcc/varasm.c
28
gcc/varasm.c
@@ -1780,40 +1780,12 @@ assemble_real (d, mode)
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
#ifdef ASM_OUTPUT_BYTE_FLOAT
|
||||
case QFmode:
|
||||
ASM_OUTPUT_BYTE_FLOAT (asm_out_file, d);
|
||||
break;
|
||||
#endif
|
||||
#ifdef ASM_OUTPUT_SHORT_FLOAT
|
||||
case HFmode:
|
||||
ASM_OUTPUT_SHORT_FLOAT (asm_out_file, d);
|
||||
break;
|
||||
#endif
|
||||
#ifdef ASM_OUTPUT_THREE_QUARTER_FLOAT
|
||||
case TQFmode:
|
||||
ASM_OUTPUT_THREE_QUARTER_FLOAT (asm_out_file, d);
|
||||
break;
|
||||
#endif
|
||||
#ifdef ASM_OUTPUT_FLOAT
|
||||
case SFmode:
|
||||
ASM_OUTPUT_FLOAT (asm_out_file, d);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#ifdef ASM_OUTPUT_DOUBLE
|
||||
case DFmode:
|
||||
ASM_OUTPUT_DOUBLE (asm_out_file, d);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#ifdef ASM_OUTPUT_LONG_DOUBLE
|
||||
case XFmode:
|
||||
case TFmode:
|
||||
ASM_OUTPUT_LONG_DOUBLE (asm_out_file, d);
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
abort ();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user