Commit Graph

10860 Commits

Author SHA1 Message Date
sergei
5c1f404631 * softfpu.pp: clean up.
git-svn-id: trunk@27283 -
2014-03-25 14:45:41 +00:00
sergei
14ee9d52aa * Made constants DP1,DP2,DP3 local to function rem_pio2, because their values are correct only for double-precision calculations.
git-svn-id: trunk@27282 -
2014-03-25 14:32:14 +00:00
pierre
1396e903a5 Fix ugly error causing troubles in go32v2 2.6.4 release IDE with GDB
git-svn-id: trunk@27281 -
2014-03-25 11:21:44 +00:00
sergei
d1348d3f9b - i386 and x86_64: Once softfloat stuff has been cleaned up, SysResetFPU and SysInitFPU end up doing exactly the same. Removed one of them.
git-svn-id: trunk@27280 -
2014-03-25 10:52:07 +00:00
nickysn
ab3b3ab169 + i8086 far data memory model support in Sptr and get_frame
git-svn-id: trunk@27269 -
2014-03-24 17:10:38 +00:00
nickysn
4a649c9b08 + i8086 far data memory model support in DebugWrite
git-svn-id: trunk@27265 -
2014-03-24 16:51:38 +00:00
nickysn
32c3f4e682 + added cld to DebugWrite
git-svn-id: trunk@27264 -
2014-03-24 15:41:29 +00:00
nickysn
25be2bc720 * define macros identifying the code and data model in each of the memory models
git-svn-id: trunk@27263 -
2014-03-24 14:02:57 +00:00
nickysn
0236c2823a + added startup modules for compact, large and huge model that define the
memory model and include the common startup code prt0comn.asm (which is not
  yet adapted for the new models, but eventually will be)

git-svn-id: trunk@27262 -
2014-03-24 13:42:42 +00:00
nickysn
f4c463b6bd * prt0stm.asm renamed prt0comn.asm, as it will probably be used as the common
startup code for all memory models and not just for small, tiny and medium

git-svn-id: trunk@27261 -
2014-03-24 13:23:36 +00:00
nickysn
a0f08f3d5c * objpas.IntegerArray on 16 and 8-bit CPUs made as large as possible without
causing 'data element too large'

git-svn-id: trunk@27250 -
2014-03-24 00:01:13 +00:00
nickysn
a4ac2a3538 * fixed compilation of unit objpas in i8086 large memory model
git-svn-id: trunk@27249 -
2014-03-23 23:54:15 +00:00
nickysn
dfa1f3e0a3 * NativeInt and NativeUInt redefined as aliases to PtrInt/PtrUInt, so now they
become 32-bit in some i8086 memory models. Added comment explaining why they
  were introduced (delphi compatibility) and why they shouldn't be used in the
  FPC RTL.

git-svn-id: trunk@27238 -
2014-03-23 14:06:47 +00:00
nickysn
fb20791cbe * replaced all the remaining uses of nativeint in the rtl with either sizeint
or objpasint

git-svn-id: trunk@27237 -
2014-03-23 13:38:16 +00:00
nickysn
e471a7dd2c * use ObjpasInt, instead of nativeint in fpc_div_dword and fpc_mod_dword
git-svn-id: trunk@27236 -
2014-03-23 13:09:22 +00:00
nickysn
ec9a57f854 * local variables in fpc_AnsiStr_Concat_multi changed from nativeint to objpasint
git-svn-id: trunk@27235 -
2014-03-23 12:43:52 +00:00
nickysn
ff6b258379 * changed ExceptTryLevel from nativeint to objpasint
git-svn-id: trunk@27234 -
2014-03-23 12:42:57 +00:00
sergei
531c2d79e0 - RTL: removed 'unimplementedwidestring' procedure and use 'unimplementedunicodestring' instead. Reduces bloat. Furthermore, a separate message about missing widestring manager is misleading, because there is only one wide/unicodestring manager that can be set.
git-svn-id: trunk@27233 -
2014-03-23 02:16:03 +00:00
sergei
8ad5e6fb26 - RTL: cleaned out FPC_FREEMEM_X. We now have a dedicated compilerproc 'fpc_freemem' for this purpose.
git-svn-id: trunk@27232 -
2014-03-23 02:11:38 +00:00
marco
c376210946 * regenned makefiles which were regennerated with a 2.6.x fpcmake in the rtl-unicode transition
Mantis #25897

git-svn-id: trunk@27231 -
2014-03-22 20:11:13 +00:00
sergei
a882e89bc2 * x86_64: SetExceptionMask and SetRoundingMode must return the old value of mask/mode respectively, not the new one.
git-svn-id: trunk@27225 -
2014-03-21 18:08:11 +00:00
nickysn
47aed8b01f * optimized the i8086 version of Get8087CW
git-svn-id: trunk@27221 -
2014-03-21 13:46:38 +00:00
sergei
bce33ee063 * software_rounding_mode -> softfloat_rounding_mode.
git-svn-id: trunk@27219 -
2014-03-21 07:45:13 +00:00
sergei
295e795a0a * SPARC: SetExceptionMask and SetRoundingMode must return the old value of mask/mode respectively, not the new one.
git-svn-id: trunk@27218 -
2014-03-21 06:26:06 +00:00
sergei
67a8c315d8 * ARM: SetExceptionMask and SetRoundingMode must return the old value of mask/mode respectively, not the new one.
git-svn-id: trunk@27217 -
2014-03-21 06:03:00 +00:00
sergei
29bf988ca7 + Implemented m68k-specific (actually, softfloat-specific) part of Math unit.
git-svn-id: trunk@27216 -
2014-03-21 05:24:09 +00:00
sergei
94a045aa3d * Moved declarations of TFPURoundingMode,TFPUExceptionMask and TFPUPrecisionMode to System unit. Declarations in Math unit changed to aliases.
* Changed type of softfloat_exception_mask and softfloat_exception_flags to TFPUExceptionMask, softfloat_rounding_mode to TFPURoundingMode.
- Cleaned out numerous conversions happening when getting/setting exception mask and rounding mode.

git-svn-id: trunk@27215 -
2014-03-20 22:44:46 +00:00
marco
8b293f106b * unicodeducet was still in makefile, fixed.
git-svn-id: trunk@27212 -
2014-03-20 20:33:31 +00:00
florian
1f6c43810d * fix wrong suffix
git-svn-id: trunk@27211 -
2014-03-20 20:12:46 +00:00
marco
f54d92326e * remove leftover matrix unit dep
git-svn-id: trunk@27208 -
2014-03-20 18:40:44 +00:00
marco
a1351db576 * rtl-unicode package, containing unicodeducet, collation units and *bidi* units
git-svn-id: trunk@27207 -
2014-03-20 18:28:38 +00:00
marco
3e40a5c5f6 * removed obsolete rules from Solaris makefile
git-svn-id: trunk@27206 -
2014-03-20 18:18:42 +00:00
marco
08b26eeba6 * matrix+ucomplex line removal.
git-svn-id: trunk@27205 -
2014-03-20 18:10:46 +00:00
sergei
7b56c90d82 - MIPS,SPARC and ARM-wince: removed remaining references to softfloat stuff.
git-svn-id: trunk@27204 -
2014-03-20 17:46:01 +00:00
sergei
cfd2600b24 - Don't include softfpu code on SPARC, unless bootstrapping with 2.6.
- Atari is never compiled on SPARC or MIPS (and even it does one day, softfpu is not needed).

git-svn-id: trunk@27203 -
2014-03-20 17:20:58 +00:00
florian
5d57f38619 + functions for FMA and AVX2 detection
git-svn-id: trunk@27202 -
2014-03-20 15:47:51 +00:00
sergei
30c3842802 * MIPS: reworked FPU initialization to be consistent with other targets.
git-svn-id: trunk@27199 -
2014-03-20 11:30:24 +00:00
sergei
dcb46051c4 * Get rid of last softfloat dependencies in genmath.inc. Replaced remaining calls to float_raise with expressions which generate appropriate floating-point exceptions at runtime. This is probably somewhat slower on actual softfloat targets, but the change only affects exceptional control flow, so not a significant issue.
git-svn-id: trunk@27198 -
2014-03-20 11:04:00 +00:00
sergei
fffc317759 * Replaced fpc_round_real with new implementation, having the following important properties:
- it does not directly depend on softfloat stuff.
  - it triggers 'inexact' condition in a way compatible to hardware instructions (second assertion in webtbs/tw3157.pp now works correctly).

git-svn-id: trunk@27197 -
2014-03-20 05:33:33 +00:00
sergei
825900671b * Typo in r27184.
git-svn-id: trunk@27196 -
2014-03-20 04:27:51 +00:00
sergei
b89822d3e9 * i8086: added assembler implementation of fpc_round_real and removed remaining softfloat dependencies.
git-svn-id: trunk@27195 -
2014-03-20 02:28:47 +00:00
sergei
7ba4e67564 * Fixed Linux FPU exception mapping for x86_64 and MIPS, might be still incomplete, but at least operations yielding NaNs no longer produce EAccessViolation.
git-svn-id: trunk@27194 -
2014-03-20 01:59:06 +00:00
florian
b2b26f84cf * partially merged the mips-embedded branch of Michael Ring:
- startup code/controller units are not merged yet
  - assembler call does not pass the needed CPU type yet

git-svn-id: trunk@27188 -
2014-03-19 21:25:38 +00:00
nickysn
4c8e947f0c * changed the shortstring index variables that were previously longint and were later changed to sizeint (in r26917) to ObjpasInt after r27142
git-svn-id: trunk@27185 -
2014-03-19 15:35:21 +00:00
sergei
fcfed19c84 * Fixed one of the C porting bugs (wonder how many are still left...)
git-svn-id: trunk@27184 -
2014-03-19 15:32:29 +00:00
sergei
4952754184 - i386 and x86_64 no longer use any softfloat stuff.
git-svn-id: trunk@27182 -
2014-03-19 12:14:44 +00:00
sergei
0255eb880e - Removed mathuh.inc files which are identical for all targets (except m68k, see below), their contents moved into math.pp.
+ m68k/mathu.inc: added stub implementations for missing functions.

git-svn-id: trunk@27180 -
2014-03-18 20:01:15 +00:00
sergei
13da05a778 * Factored direct access to softfloat_exception_flags into a helper procedure.
git-svn-id: trunk@27179 -
2014-03-18 16:36:47 +00:00
sergei
e79e038f9c + Win32/Win64 SEH: STATUS_FLOAT_MULTIPLE_(FAULTS|TRAPS) need additional handling. Makes floating-point exceptions consistent between x87 and SSE.
git-svn-id: trunk@27177 -
2014-03-17 22:49:29 +00:00
nickysn
b7d759344d * fixed do_filepos and do_seekend not returning the high 16 bits of the file
offset correctly

git-svn-id: trunk@27176 -
2014-03-17 22:01:09 +00:00