Ticket #1251 (new todo)
handle ARM mixed-endian doubles
Reported by: | jkeenan | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | core | Version: | 1.7.0 |
Severity: | medium | Keywords: | |
Cc: | Language: | ||
Patch status: | Platform: |
Description
This ticket moves discussion into Trac from RT #37461.
Leopold Toetsch opened the ticket in October 2005:
Parrot bytecode (PBC) is designed to be portable. Therefore we need some code to convert ARM-generated PBCs to machine-native doubles and ARM architectures must be able to read other already supported float types.
A PBC header has a 'floattype' field, which identifies known FLOATVAL layouts.
We have currently:
0 ... 8 byte IEEE double 1 ... 12 byte IEEE double (both according to endianess)
We need additionally (at least and AFAIK):
2 ... 8 byte (ARM) mixed-endian
which is according to Nicholas a LE double with 2 BE arranged words.
And Nicholas Clark commented:
and totally legal IEEE.
(Mozilla thought that it could cheat. And it was wrong)
The mixed endian is the old soft float, as I understand it, and will be replaced by something less surprising, but that's a C ABI change.
... and that's where things stand.