* fixed float spilling to use sfm/lfm instead of stf/ldf

This commit is contained in:
florian 2004-07-04 15:22:34 +00:00
parent d3f1b21fae
commit 960bf7b8b1
2 changed files with 20 additions and 7 deletions

View File

@ -324,7 +324,10 @@ implementation
R_INTREGISTER :
result:=taicpu.op_reg_ref(A_LDR,r,ref);
R_FPUREGISTER :
result:=taicpu.op_reg_ref(A_LDF,r,ref);
{ use lfm because we don't know the current internal format
and avoid exceptions
}
result:=taicpu.op_reg_const_ref(A_LFM,r,1,ref);
else
internalerror(200401041);
end;
@ -337,7 +340,10 @@ implementation
R_INTREGISTER :
result:=taicpu.op_reg_ref(A_STR,r,ref);
R_FPUREGISTER :
result:=taicpu.op_reg_ref(A_STF,r,ref);
{ use sfm because we don't know the current internal format
and avoid exceptions
}
result:=taicpu.op_reg_const_ref(A_SFM,r,1,ref);
else
internalerror(200401041);
end;
@ -358,7 +364,8 @@ implementation
A_ADF,A_DVF,A_FDV,A_FML,
A_RFS,A_RFC,A_RDF,
A_RMF,A_RPW,A_RSF,A_SUF,A_ABS,A_ACS,A_ASN,A_ATN,A_COS,
A_EXP,A_LOG,A_LGN,A_MVF,A_MNF,A_FRD,A_MUF,A_POL,A_RND,A_SIN,A_SQT,A_TAN:
A_EXP,A_LOG,A_LGN,A_MVF,A_MNF,A_FRD,A_MUF,A_POL,A_RND,A_SIN,A_SQT,A_TAN,
A_LFM:
if opnr=0 then
result:=operand_write
else
@ -378,7 +385,7 @@ implementation
else
result:=operand_read;
A_STR,A_STRB,A_STRBT,A_STRD,
A_STRH,A_STRT,A_STF:
A_STRH,A_STRT,A_STF,A_SFM:
{ important is what happens with the involved registers }
if opnr=0 then
result := operand_read
@ -486,7 +493,10 @@ implementation
end.
{
$Log$
Revision 1.33 2004-06-20 08:55:31 florian
Revision 1.34 2004-07-04 15:22:34 florian
* fixed float spilling to use sfm/lfm instead of stf/ldf
Revision 1.33 2004/06/20 08:55:31 florian
* logs truncated
Revision 1.32 2004/06/16 20:07:10 florian

View File

@ -50,7 +50,7 @@ Type
Const
{# Size of native extended floating point type }
extended_size = 8;
extended_size = 12;
{# Size of a multimedia register }
mmreg_size = 16;
{ target cpu string (used by compiler options) }
@ -97,7 +97,10 @@ Implementation
end.
{
$Log$
Revision 1.9 2004-06-20 08:55:31 florian
Revision 1.10 2004-07-04 15:22:34 florian
* fixed float spilling to use sfm/lfm instead of stf/ldf
Revision 1.9 2004/06/20 08:55:31 florian
* logs truncated
Revision 1.8 2004/06/16 20:07:10 florian