summaryrefslogtreecommitdiff
path: root/rtl/arm
diff options
context:
space:
mode:
authorflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2014-03-11 21:20:49 +0000
committerflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2014-03-11 21:20:49 +0000
commit3c3ad644e2023f541f26dc006ac0ddba5d78f378 (patch)
treee3f665f56f07f6437d0f573f0d0cf81688ab3ffc /rtl/arm
parent70b4678f00853b99eae330909c9264a81bb1d053 (diff)
downloadfpc-3c3ad644e2023f541f26dc006ac0ddba5d78f378.tar.gz
* generate rfs/wfs for thumb2 only if an fpa fpu is used
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27100 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'rtl/arm')
-rw-r--r--rtl/arm/thumb2.inc15
1 files changed, 8 insertions, 7 deletions
diff --git a/rtl/arm/thumb2.inc b/rtl/arm/thumb2.inc
index f75add7504..cd92f4b7bd 100644
--- a/rtl/arm/thumb2.inc
+++ b/rtl/arm/thumb2.inc
@@ -33,18 +33,19 @@ Procedure SysInitFPU;{$ifdef SYSTEMINLINE}inline;{$endif}
begin
{ Enable FPU exceptions, but disable INEXACT, UNDERFLOW, DENORMAL }
asm
- {$IFDEF FPUFPV4_S16}
+{$if defined(FPUFPA) or defined(FPUFPA10) or defined(FPUFPA11)}
+
+ rfs r0
+ and r0,r0,#0xffe0ffff
+ orr r0,r0,#0x00070000
+ wfs r0
+{$else}
movw r0, #(0xed88)
movt r0, #(0xe000)
ldr r1, [r0]
orr r1, r1, #(0xF << 20)
str r1, [r0]
- {$ELSE FPUFPV4_S16}
- rfs r0
- and r0,r0,#0xffe0ffff
- orr r0,r0,#0x00070000
- wfs r0
- {$endif FPUFPV4_S16}
+{$endif}
end;
end;
{$endif}