09.09.2014 13:19, Sven Barth пишет:
Am 09.09.2014 08:53 schrieb "Sergei Gorelkin" <sergei_gorel...@mail.ru
<mailto:sergei_gorel...@mail.ru>>:
>
> 09.09.2014 9:53, Sven Barth пишет:
>
>> On 08.09.2014 22:54, Michael Ring wrote:
>>>
>>> This smells like a problem I had on pic32. In my case the pic32 chips do
>>> not have a floating point unit and the processor creates an illegal
>>> instruction (or something similar) exception.
>>>
>>> I solved this for me by patching out the call to the hardware
>>> coprocessor when softfpu is selected.
>>
>>
>> Which should be the correct approach for softfpu anyway. Afterall the
premise of softfpu is that
>> there is no hardware FPU to use and thus corresponding CPU instructions are
useless (or as it seems
>> in this case lead to nothing).
>>
>
> This patch is correct only if the goal is do disable floating-point
completely. If the goal is to
have floating-point calculations available using emulation, then the entire
procedures SysInitFPU
and SysResetFPU together with {$define FPC_SYSTEM_HAS_SYSRESETFPU} and {$define
FPC_SYSTEM_HAS_SYSINITFPU} must be disabled. Doing so will cause
softfpu-specific routines from
generic.inc to be used.
Well, according to Reinier's test at least the route seems to be correct. So we
need to ensure that
softfpu code for MIPS works correctly.
> I also wonder what is the correct way to generate code that calls softfpu:
> 1) -SfSOFTFPU
> 2) -CfSOFT
> 3) -Ce
> ?
I only know -CfSOFT and that is what I use for m68k. -Ce likely only does the
same as -CfSOFT, but I
don't know what -SfSOFTFPU is supposed to do.
Well, for m68k you can omit -CfSOFT and nothing will change, because currently nothing else is
supported there.
As for -Ce, the compiler code sometimes checks for it (cs_fp_emulation in
current_settings.moduleswitches), sometimes for -CfSOFT (current_settings.fputype=fpu_soft),
sometimes for both. That's why I wonder.
-SfSOFTFPU is for embedded targets where it enables "softfpu feature", for non-embedded targets it
is assumed to be permanently present (?), but again it's unclear if this feature replaces hardware
FPU (if present) or appends to it.
Regards,
Sergei
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel