* fixed handling of doubles in a native arm compiler

* fixed handling of typed double constants on arm
This commit is contained in:
florian 2004-03-17 22:27:41 +00:00
parent 98923076ac
commit 0b0c4a4062
3 changed files with 31 additions and 5 deletions

View File

@ -534,6 +534,8 @@ var
swap64bitarray(t64bitarray(d));
AsmWrite(#9'.byte'#9);
{$ifdef arm}
{ on a real arm cpu, it's already hi/lo swapped }
{$ifndef cpuarm}
if tai_real_64bit(hp).formatoptions=fo_hiloswapped then
begin
for i:=4 to 7 do
@ -549,6 +551,7 @@ var
end;
end
else
{$endif cpuarm}
{$endif arm}
begin
for i:=0 to 7 do
@ -879,7 +882,11 @@ var
end.
{
$Log$
Revision 1.47 2004-03-02 17:32:12 florian
Revision 1.48 2004-03-17 22:27:41 florian
* fixed handling of doubles in a native arm compiler
* fixed handling of typed double constants on arm
Revision 1.47 2004/03/02 17:32:12 florian
* make cycle fixed
+ pic support for darwin
+ support of importing vars from shared libs on darwin implemented

View File

@ -230,7 +230,12 @@ implementation
s32real :
curconstSegment.concat(Tai_real_32bit.Create(ts32real(value)));
s64real :
curconstSegment.concat(Tai_real_64bit.Create(ts64real(value)));
{$ifdef ARM}
if aktfputype in [fpu_fpa,fpu_fpa10,fpu_fpa11] then
curconstSegment.concat(Tai_real_64bit.Create_hiloswapped(ts64real(value)))
else
{$endif ARM}
curconstSegment.concat(Tai_real_64bit.Create(ts64real(value)));
s80real :
curconstSegment.concat(Tai_real_80bit.Create(value));
@ -1020,7 +1025,11 @@ implementation
end.
{
$Log$
Revision 1.80 2004-03-02 00:36:33 olle
Revision 1.81 2004-03-17 22:27:41 florian
* fixed handling of doubles in a native arm compiler
* fixed handling of typed double constants on arm
Revision 1.80 2004/03/02 00:36:33 olle
* big transformation of Tai_[const_]Symbol.Create[data]name*
Revision 1.79 2004/02/26 16:15:23 peter

View File

@ -1557,7 +1557,13 @@ end;
Begin
case real_typ of
s32real : p.concat(Tai_real_32bit.Create(value));
s64real : p.concat(Tai_real_64bit.Create(value));
s64real :
{$ifdef ARM}
if aktfputype in [fpu_fpa,fpu_fpa10,fpu_fpa11] then
p.concat(Tai_real_64bit.Create_hiloswapped(value))
else
{$endif ARM}
p.concat(Tai_real_64bit.Create(value));
s80real : p.concat(Tai_real_80bit.Create(value));
s64comp : p.concat(Tai_comp_64bit.Create(trunc(value)));
end;
@ -1626,7 +1632,11 @@ end;
end.
{
$Log$
Revision 1.82 2004-03-02 00:36:33 olle
Revision 1.83 2004-03-17 22:27:41 florian
* fixed handling of doubles in a native arm compiler
* fixed handling of typed double constants on arm
Revision 1.82 2004/03/02 00:36:33 olle
* big transformation of Tai_[const_]Symbol.Create[data]name*
Revision 1.81 2004/02/21 21:04:09 daniel