+ Add loading of softfpu in emulation mode

+ Correct routine call for softfpu
  * Extended type must also be defined even with softfpu
This commit is contained in:
carl 2002-11-30 21:32:24 +00:00
parent f8d831d6ce
commit edb20100ac
3 changed files with 42 additions and 14 deletions

View File

@ -1539,28 +1539,27 @@ implementation
if not (cs_fp_emulation in aktmoduleswitches) then
exit;
procname := 'FPC_REAL_';
case nodetype of
addn : procname := procname + 'ADD';
muln : procname := procname + 'MUL';
subn : procname := procname + 'SUB';
slashn : procname := procname + 'DIV';
ltn : procname := procname + 'LESS_THAN';
lten: procname := procname + 'LESS_EQUAL_THAN';
addn : procname := 'float32_add';
muln : procname := 'float32_mul';
subn : procname := 'float32_sub';
slashn : procname := 'float32_div';
ltn : procname := 'float32_lt';
lten: procname := 'float32_le';
gtn:
begin
procname := procname + 'LESS_EQUAL_THAN';
procname := 'float32_le';
notnode := true;
end;
gten:
begin
procname := procname + 'LESS_THAN';
procname := 'float32_lt';
notnode := true;
end;
equaln: procname := procname + 'EQUAL';
equaln: procname := 'float32_eq';
unequaln :
begin
procname := procname + 'EQUAL';
procname := 'float32_eq';
notnode := true;
end;
else
@ -1915,7 +1914,12 @@ begin
end.
{
$Log$
Revision 1.75 2002-11-27 13:11:38 peter
Revision 1.76 2002-11-30 21:32:24 carl
+ Add loading of softfpu in emulation mode
+ Correct routine call for softfpu
* Extended type must also be defined even with softfpu
Revision 1.75 2002/11/27 13:11:38 peter
* more currency fixes, taddcurr runs now successfull
Revision 1.74 2002/11/27 11:28:40 peter

View File

@ -441,6 +441,18 @@ implementation
make_ref:=false;
readconstdefs;
make_ref:=true;
{ Floating point emulation unit? }
if (cs_fp_emulation in aktmoduleswitches) then
begin
hp:=loadunit('softfpu','');
tsymtable(hp.globalsymtable).next:=symtablestack;
symtablestack:=hp.globalsymtable;
{ add to the used units }
current_module.used_units.concat(tused_unit.create(hp,true));
unitsym:=tunitsym.create('Softfpu',hp.globalsymtable);
inc(unitsym.refs);
refsymtable.insert(unitsym);
end;
{ Thread support unit? }
if (cs_threading in aktmoduleswitches) then
begin
@ -1441,7 +1453,12 @@ implementation
end.
{
$Log$
Revision 1.84 2002-11-15 01:58:53 peter
Revision 1.85 2002-11-30 21:32:24 carl
+ Add loading of softfpu in emulation mode
+ Correct routine call for softfpu
* Extended type must also be defined even with softfpu
Revision 1.84 2002/11/15 01:58:53 peter
* merged changes from 1.0.7 up to 04-11
- -V option for generating bug report tracing
- more tracing for option parsing

View File

@ -132,6 +132,8 @@ implementation
{ extended size is the best real type for the target }
addtype('Real',s32floattype);
pbestrealtype:=@s32floattype;
{ extended size is the best real type for the target }
addtype('Extended',pbestrealtype^);
end
else
begin
@ -475,7 +477,12 @@ implementation
end.
{
$Log$
Revision 1.42 2002-10-05 12:43:27 carl
Revision 1.43 2002-11-30 21:32:26 carl
+ Add loading of softfpu in emulation mode
+ Correct routine call for softfpu
* Extended type must also be defined even with softfpu
Revision 1.42 2002/10/05 12:43:27 carl
* fixes for Delphi 6 compilation
(warning : Some features do not work under Delphi)