]> gcc.gnu.org Git - gcc.git/commitdiff
alpha.c (alpha_emit_xfloating_cvt): Do not assume incoming operands array is large...
authorAlexandre Oliva <oliva@lsd.ic.unicamp.br>
Wed, 26 Jan 2000 07:57:28 +0000 (07:57 +0000)
committerAlexandre Oliva <oliva@gcc.gnu.org>
Wed, 26 Jan 2000 07:57:28 +0000 (07:57 +0000)
* 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

gcc/ChangeLog
gcc/config/alpha/alpha.c

index 45ab067116d9568a6847b44b14a829d02f48103a..1f9c6f103f7462d0d15253dd60d83c50af81c1c1 100644 (file)
@@ -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
index fa59cc1b373c2ccf9f6af7b2d4abc21f0eee6aae..23faed8d2505de2fef0c8b06ad61794c11db4968 100644 (file)
@@ -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]));
 }
This page took 0.171417 seconds and 5 git commands to generate.