* <signed type> to qword range check for 64 bit targets fixed

This commit is contained in:
florian 2004-11-02 17:25:36 +00:00
parent 4e8795893e
commit 143b4a8cb1

View File

@ -1736,7 +1736,17 @@ implementation
a_load_loc_reg(list,OS_INT,l,hreg);
a_op_const_reg(list,OP_SUB,OS_INT,aint(lto),hreg);
objectlibrary.getlabel(neglabel);
a_cmp_const_reg_label(list,OS_INT,OC_BE,aint(hto-lto),hreg,neglabel);
{
if from_signed then
a_cmp_const_reg_label(list,OS_INT,OC_GTE,aint(hto-lto),hreg,neglabel)
else
}
{$ifdef cpu64bit}
if qword(hto-lto)>qword(aintmax) then
a_cmp_const_reg_label(list,OS_INT,OC_BE,aintmax,hreg,neglabel)
else
{$endif cpu64bit}
a_cmp_const_reg_label(list,OS_INT,OC_BE,aint(hto-lto),hreg,neglabel);
a_call_name(list,'FPC_RANGEERROR');
a_label(list,neglabel);
end;
@ -2029,7 +2039,10 @@ finalization
end.
{
$Log$
Revision 1.183 2004-10-31 21:45:02 peter
Revision 1.184 2004-11-02 17:25:36 florian
* <signed type> to qword range check for 64 bit targets fixed
Revision 1.183 2004/10/31 21:45:02 peter
* generic tlocation
* move tlocation to cgutils