mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 16:29:24 +02:00
* fixed Florian's quick hack :)
* fixed small bug 64bit range checking code
This commit is contained in:
parent
cfe94be378
commit
7a3e1b917c
@ -506,12 +506,16 @@ unit cg64f32;
|
|||||||
case locpara.loc of
|
case locpara.loc of
|
||||||
LOC_REGISTER:
|
LOC_REGISTER:
|
||||||
tmplochi.register:=tmplochi.registerhigh;
|
tmplochi.register:=tmplochi.registerhigh;
|
||||||
|
{ !!! i386 doesn't pass proper locations here
|
||||||
|
so always take a loc_reference, since that's what it uses (JM)
|
||||||
LOC_REFERENCE:
|
LOC_REFERENCE:
|
||||||
|
}
|
||||||
|
else
|
||||||
if target_info.endian=endian_big then
|
if target_info.endian=endian_big then
|
||||||
inc(tmploclo.reference.offset,4)
|
inc(tmploclo.reference.offset,4)
|
||||||
else
|
else
|
||||||
inc(tmplochi.reference.offset,4);
|
inc(tmplochi.reference.offset,4);
|
||||||
{ !!! i386 doesn't pass proper locations here
|
{
|
||||||
else
|
else
|
||||||
internalerror(2003042702);
|
internalerror(2003042702);
|
||||||
}
|
}
|
||||||
@ -544,12 +548,24 @@ unit cg64f32;
|
|||||||
inc(tmprefhi.offset,4);
|
inc(tmprefhi.offset,4);
|
||||||
tmplochi.register:=tmplochi.registerhigh;
|
tmplochi.register:=tmplochi.registerhigh;
|
||||||
end;
|
end;
|
||||||
|
{ !!! i386 doesn't pass proper locations here
|
||||||
|
so always take a loc_reference, since that's what it uses (JM)
|
||||||
LOC_REFERENCE:
|
LOC_REFERENCE:
|
||||||
|
}
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
if target_info.endian=endian_big then
|
||||||
|
begin
|
||||||
|
inc(tmpreflo.offset,4);
|
||||||
|
inc(tmploclo.reference.offset,4);
|
||||||
|
end
|
||||||
|
else
|
||||||
begin
|
begin
|
||||||
inc(tmprefhi.offset,4);
|
inc(tmprefhi.offset,4);
|
||||||
inc(tmplochi.reference.offset,4);
|
inc(tmplochi.reference.offset,4);
|
||||||
|
end;
|
||||||
end
|
end
|
||||||
{ !!! i386 doesn't pass proper locations here
|
{
|
||||||
else
|
else
|
||||||
internalerror(2003042701);
|
internalerror(2003042701);
|
||||||
}
|
}
|
||||||
@ -652,7 +668,7 @@ unit cg64f32;
|
|||||||
cg.g_rangecheck(list,p,todef);
|
cg.g_rangecheck(list,p,todef);
|
||||||
hdef.free;
|
hdef.free;
|
||||||
{ restore original resulttype.def }
|
{ restore original resulttype.def }
|
||||||
p.resulttype.def := todef;
|
p.resulttype.def := fromdef;
|
||||||
|
|
||||||
if from_signed and to_signed then
|
if from_signed and to_signed then
|
||||||
begin
|
begin
|
||||||
@ -865,7 +881,11 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.42 2003-04-27 09:10:49 florian
|
Revision 1.43 2003-04-27 14:48:09 jonas
|
||||||
|
* fixed Florian's quick hack :)
|
||||||
|
* fixed small bug 64bit range checking code
|
||||||
|
|
||||||
|
Revision 1.42 2003/04/27 09:10:49 florian
|
||||||
* quick fix for param64 for intel
|
* quick fix for param64 for intel
|
||||||
|
|
||||||
Revision 1.41 2003/04/27 08:23:51 florian
|
Revision 1.41 2003/04/27 08:23:51 florian
|
||||||
|
Loading…
Reference in New Issue
Block a user