[fpc-devel] softfloat: sizeOf( floatx80 )
Martin Frb
lazarus at mfriebe.de
Sat Sep 28 10:26:57 CEST 2024
On 28/09/2024 09:45, Martin Frb via fpc-devel wrote:
> On 28/09/2024 09:34, Pierre Muller via fpc-devel wrote:
>> I think that the big endian version (see grep below)
>> would suffer if you would use packed
>> because the high field of size 2,
>> would put the low field of size 8 at offset 2,
>> which would trigger unaligned access to this field.
>>
>
> About the big endian issue: That means it is not memory compatible
> with a native "extended" because it has a gap. So if you load data
> from a file/stream that has been written with native (gap free)
> extended, then it wont work.
>
> I don't know if floatx80 promises such compatibility. But it would be
> very useful if it did.
> On little endian, tests have shown that it can be used that way.
Just for my understanding.... As I haven't really looked deeply into the
representation of those numbers.
My current understanding starts of with the DWARF spec. That simply
specifies
- type: float
- size (in bytes or bit): ... e.g. 8/64 or 10/80.
In addition, now googled, on wikipedia there is only one format for
80bits? (unless I missed something). But it's in a paragraph referring
to x86...
https://en.wikipedia.org/wiki/Extended_precision#x86_extended_precision_format
From that any debugger on any platform seems to be able to read such a
float. So I presumed that for a given length there is a standard how the
number should be represented in memory?
I haven't tested if e.g. gdb would on a big endian be able to read an
80bit float. Or if it would just say that is an invalid size for the
platform.
But given that floats (like any other data) can be streamed to files and
other media, I would expect that the existence does not change by the
features of the CPU.
Of course the byte order may change. (I don't know if bytes or bits for
extended are in a diff order on a big endian? But if they are the reader
of a stream would know to fix that). But I wouldn't expect gaps in the
data, that is assuming the data can exist.
Now all of the above are just conclusions from one rather small starting
point. So I may well be wrong. If I am, I would like to know where?
More information about the fpc-devel
mailing list