diff options
author | marco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-06-17 07:45:51 +0000 |
---|---|---|
committer | marco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-06-17 07:45:51 +0000 |
commit | 98b815edf9027e025d8fa473b90cef6030b85b55 (patch) | |
tree | 0ca3c68bffa7a46f6acef39b8bc019376062c16a /rtl/m68k | |
parent | 8aa44ee43cdae24a2f557b5e6084287da72eac64 (diff) | |
download | fpc-98b815edf9027e025d8fa473b90cef6030b85b55.tar.gz |
--- Merging r29614 into '.':
U rtl/amiga/Makefile.fpc
U rtl/amiga/Makefile
--- Recording mergeinfo for merge of r29614 into '.':
U .
--- Merging r29643 into '.':
G rtl/amiga/Makefile
G rtl/amiga/Makefile.fpc
--- Recording mergeinfo for merge of r29643 into '.':
G .
--- Merging r29754 into '.':
U packages/arosunits/src/exec.pas
U packages/arosunits/src/amigados.pas
--- Recording mergeinfo for merge of r29754 into '.':
G .
--- Merging r30060 into '.':
U rtl/m68k/m68k.inc
--- Recording mergeinfo for merge of r30060 into '.':
G .
--- Merging r30092 into '.':
U packages/amunits/src/otherlibs/mui.pas
--- Recording mergeinfo for merge of r30092 into '.':
G .
--- Merging r30355 into '.':
U rtl/morphos/system.pp
--- Recording mergeinfo for merge of r30355 into '.':
G .
--- Merging r30356 into '.':
U rtl/amicommon/sysheap.inc
U rtl/amiga/system.pp
--- Recording mergeinfo for merge of r30356 into '.':
G .
--- Merging r30358 into '.':
U rtl/amicommon/dos.pp
U rtl/amicommon/sysutils.pp
--- Recording mergeinfo for merge of r30358 into '.':
G .
--- Merging r30536 into '.':
U packages/amunits/src/coreunits/agraphics.pas
U packages/morphunits/src/agraphics.pas
--- Recording mergeinfo for merge of r30536 into '.':
G .
--- Merging r30537 into '.':
G packages/morphunits/src/agraphics.pas
G packages/amunits/src/coreunits/agraphics.pas
U packages/amunits/src/otherlibs/render.pas
U packages/amunits/src/utilunits/doublebuffer.pas
--- Recording mergeinfo for merge of r30537 into '.':
G .
--- Merging r30538 into '.':
U packages/rtl-console/src/amicommon/video.pp
--- Recording mergeinfo for merge of r30538 into '.':
G .
--- Merging r30539 into '.':
G packages/rtl-console/src/amicommon/video.pp
--- Recording mergeinfo for merge of r30539 into '.':
G .
# revisions: 29614,29643,29754,30060,30092,30355,30356,30358,30536,30537,30538,30539
git-svn-id: http://svn.freepascal.org/svn/fpc/branches/fixes_3_0@31075 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'rtl/m68k')
-rw-r--r-- | rtl/m68k/m68k.inc | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/rtl/m68k/m68k.inc b/rtl/m68k/m68k.inc index 57349b8ea4..a8ec3220df 100644 --- a/rtl/m68k/m68k.inc +++ b/rtl/m68k/m68k.inc @@ -29,6 +29,54 @@ {****************************************************************************} +{ 68881/2 FPCR Encodings + Rounding Mode Rounding Precision + (RND Field) Encoding (PREC Field) + To Nearest (RN) 0 0 Extend (X) + To Zero (RZ) 0 1 Single (S) + To Minus Infinity (RM) 1 0 Double (D) + To Plus Infinity (RP) 1 1 Undefined +} + +{ 68881/2 FPCR layout } +{ Exception Enable Byte: } +{ 15 - BSUN - Branch/Set on Unordered } +{ 14 - SNAN - Signal Not A Number } +{ 13 - OPERR - Operand Error } +{ 12 - OVFL - Overflow } +{ 11 - UNFL - Underflow } +{ 10 - DZ - Divide by Zero } +{ 09 - INEX2 - Inexact Operation } +{ 08 - INEX1 - Inexact Decimal Input } +{ Mode Control Byte: } +{ 07 - PREC - Rounding Precision } +{ 06 - PREC - Rounding Precision } +{ 05 - RND - Rounding Mode } +{ 04 - RND - Rounding Mode } +{ 03 - 0 - Reserved, Set to zero } +{ 02 - 0 - Reserved, Set to zero } +{ 01 - 0 - Reserved, Set to zero } +{ 00 - 0 - Reserved, Set to zero } + + +{$IFNDEF FPU_SOFT} +{$DEFINE FPC_SYSTEM_HAS_SYSRESETFPU} +procedure SysResetFPU; assembler; +asm + clr.l d0 + fmove.l d0,fpcr +end; + +{$DEFINE FPC_SYSTEM_HAS_SYSINITFPU} +procedure SysInitFPU; assembler; +asm + clr.l d0 + // FIX ME: + // move.w 0,d0 // enable a sane set of exception flags here + fmove.l d0,fpcr +end; +{$ENDIF} + procedure fpc_cpuinit; begin SysResetFPU; |