PATCH: Fix real10 and add real16 for ia64

Jim Wilson wilson@tuliptree.org
Wed Apr 30 19:06:00 GMT 2003


> +  if (type == 'X')
> +    {
> +      /* It is 10 byte floating point with 6 byte padding.  */
> +      prec = 8;
> +      *size = prec * sizeof (LITTLENUM_TYPE);
> +      while (prec-- >= 5)
> +	words [prec] = 0;
> +    }
>    return 0;
>  }

It looks good except for this part.  words[] is a 5-element array, and 
you are writing to 3 elements past the end of it.  You are also writing 
to the wrong object.  You should be writing to *lit instead of to words[].

Did you consider endianness issues here?  We might need to do something 
different for big-endian than little-endian.  It seems unlikely that 
your new testcase would work for a big-endian target.  I see that you 
even put LSB in the testcase.

Your gas/testsuite/gas/ia64/ia64.exp patch doesn't match the trunk.  It 
looks like you have other stuff in your copy which hasn't been checked 
in yet, which makes this part of the patch useless.

Did you report the documentation bug to Intel?

Jim



More information about the Binutils mailing list