alpha.c (alpha_emit_xfloating_cvt): Do not assume incoming operands array is large enough for one more operand.
* config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume incoming operands array is large enough for one more operand. (alpha_emit_xfloating_arith): Likewise. From-SVN: r31629
This commit is contained in:
parent
cef40e9fa4
commit
c77f46c67e
2 changed files with 17 additions and 5 deletions
|
@ -1,3 +1,9 @@
|
|||
2000-01-26 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||||
|
||||
* config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
|
||||
incoming operands array is large enough for one more operand.
|
||||
(alpha_emit_xfloating_arith): Likewise.
|
||||
|
||||
2000-01-25 Zack Weinberg <zack@wolery.cumb.org>
|
||||
|
||||
* fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
|
||||
|
|
|
@ -1936,12 +1936,15 @@ alpha_emit_xfloating_arith (code, operands)
|
|||
{
|
||||
const char *func;
|
||||
int mode;
|
||||
rtx out_operands[3];
|
||||
|
||||
func = alpha_lookup_xfloating_lib_func (code);
|
||||
mode = alpha_compute_xfloating_mode_arg (code, alpha_fprm);
|
||||
|
||||
operands[3] = GEN_INT (mode);
|
||||
alpha_emit_xfloating_libcall (func, operands[0], operands+1, 3,
|
||||
out_operands[0] = operands[1];
|
||||
out_operands[1] = operands[2];
|
||||
out_operands[2] = GEN_INT (mode);
|
||||
alpha_emit_xfloating_libcall (func, operands[0], out_operands, 3,
|
||||
gen_rtx_fmt_ee (code, TFmode, operands[1],
|
||||
operands[2]));
|
||||
}
|
||||
|
@ -1978,27 +1981,30 @@ alpha_emit_xfloating_cvt (code, operands)
|
|||
rtx operands[];
|
||||
{
|
||||
int noperands = 1, mode;
|
||||
rtx out_operands[2];
|
||||
const char *func;
|
||||
|
||||
func = alpha_lookup_xfloating_lib_func (code);
|
||||
|
||||
out_operands[0] = operands[1];
|
||||
|
||||
switch (code)
|
||||
{
|
||||
case FIX:
|
||||
mode = alpha_compute_xfloating_mode_arg (code, ALPHA_FPRM_CHOP);
|
||||
operands[2] = GEN_INT (mode);
|
||||
out_operands[1] = GEN_INT (mode);
|
||||
noperands = 2;
|
||||
break;
|
||||
case FLOAT_TRUNCATE:
|
||||
mode = alpha_compute_xfloating_mode_arg (code, alpha_fprm);
|
||||
operands[2] = GEN_INT (mode);
|
||||
out_operands[1] = GEN_INT (mode);
|
||||
noperands = 2;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
alpha_emit_xfloating_libcall (func, operands[0], operands+1, noperands,
|
||||
alpha_emit_xfloating_libcall (func, operands[0], out_operands, noperands,
|
||||
gen_rtx_fmt_e (code, GET_MODE (operands[0]),
|
||||
operands[1]));
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue