Commit Graph

42859 Commits

Author SHA1 Message Date
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
florian
842e027a9f + prove of concept how FMA4 could be supported in inline assembler
git-svn-id: trunk@27214 -
2014-03-20 21:25:38 +00:00
Jonas Maebe
f936a48afa * don't change the forward/interface definition of regular forward/interface
functions whose implementation is declared "external". This results in less
    efficient code (all calls will go through a stub), but it prevents interface
    crc changes (-> no recompilations in case of circular dependencies) and it
    also keeps the interface stable (if the external implementation is changed
    afterwards to another external routine or to a local implementation, the
    mangled name of the routine does not change) (mantis #24121)

git-svn-id: trunk@27213 -
2014-03-20 21:03:07 +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
florian
ff6afe27cd * enabled fma instruction as the compiler knows them since r27209
git-svn-id: trunk@27210 -
2014-03-20 20:08:58 +00:00
florian
a79be2b05c + support for FMA instructions in inline assembler
+ extended avx test code with FMA

git-svn-id: trunk@27209 -
2014-03-20 20:06:56 +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
florian
5f92e11d6c * blocked already merged revisions
git-svn-id: trunk@27201 -
2014-03-20 12:25:51 +00:00
florian
aa107b914c * merged avx2 branch, developed by Torsten Grundke
git-svn-id: trunk@27200 -
2014-03-20 12:03:52 +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
Jonas Maebe
47a7b117fd * regenerated revision.inc and fpcmake.inc after r27188, which updated
fpcmake.ini (revision.inc was automatically updated by fpmake, but
    fpcmake.inc wasn't -- the latter was regenerated via a
    Makefile.fpc.fpcmake-regenerated makefile)

git-svn-id: trunk@27193 -
2014-03-19 22:45:53 +00:00
Jonas Maebe
1ac4021178 * moved po_has_inlininginfo from procoptions to procimploptions so that
the availability of the body of a function declared as "inline" no
    longer changes the CRC and hence no longer triggers recompilations
    (mantis #24121)

git-svn-id: trunk@27192 -
2014-03-19 21:53:10 +00:00
Jonas Maebe
72c1e2a8ce * write newline after synthetickind
git-svn-id: trunk@27191 -
2014-03-19 21:53:06 +00:00
Jonas Maebe
c47b4cbe86 * fixed spacing of "alias names"
git-svn-id: trunk@27190 -
2014-03-19 21:53:02 +00:00
Jonas Maebe
7d8e9cf0f6 * moved tprocdef.isempty to a new set called implprocoptions that
contains flags related to the procdef's implementation (and that
    don't influence the interface crc)

git-svn-id: trunk@27189 -
2014-03-19 21:52:59 +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
marco
31a3e98a91 * fix for #25753
git-svn-id: trunk@27187 -
2014-03-19 19:43:56 +00:00
nickysn
8ff628afe1 + added i_msdos.pas and t_msdos.pas to ppc8086.lpi
git-svn-id: trunk@27186 -
2014-03-19 16:20:25 +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
ab3ae9cf40 * Fixed comment.
git-svn-id: trunk@27183 -
2014-03-19 12:57:26 +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
florian
0e5cf6529e + peephole optimizations AndMovzToAnd, MovMov2Mov1 and MovMov2MovMov1 for x86-64
git-svn-id: trunk@27181 -
2014-03-18 21:54:42 +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
lacak
8aa280fd81 fcl-db: tests: add '23:59:59' to test time values
git-svn-id: trunk@27178 -
2014-03-18 08:20:50 +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
nickysn
d989a42111 * several local variables changed from longint to integer
git-svn-id: trunk@27175 -
2014-03-17 21:58:53 +00:00
sergei
b32579278b * Forgot to increase size of array in r27146
git-svn-id: trunk@27174 -
2014-03-17 21:28:16 +00:00
nickysn
517f802ccc * revert to the initial implementation of GetCommandLine as the code generator
bug mentioned in the comment has been fixed

git-svn-id: trunk@27173 -
2014-03-17 20:33:32 +00:00
sergei
5f985602fb * Replaced fpc_ln_real with modern port from fdlibm/uclibc, it has even better accuracy than damath library.
git-svn-id: trunk@27172 -
2014-03-17 14:54:27 +00:00
sergei
9801288cdc * Removed SysInitFPU/SysResetFPU from (remaining) system units initialization code. It is redundant there because it is called from fpc_cpuinit, or, in case of i386, from fpc_cpucodeinit.
* It fixes regression of tw16283b after r27169. 
* BeOS, Haiku: added fpc_cpucodeinit to compensate for removal of SysInitFPU, it also enables use of CPU features like SSE.

git-svn-id: trunk@27171 -
2014-03-17 10:53:52 +00:00
reiniero
420e0165a2 fcl-db: sqlconnection:
* actually follow default property for Property LogEvents..Default LogAllEvents in constructor
* addresses issue #25867

git-svn-id: trunk@27170 -
2014-03-17 08:01:36 +00:00
sergei
6baba5065c * i386: Perform all CPU-related initialization in fpc_cpucodeinit, instead of having it scattered between fpc_cpuinit,fpc_cpucodeinit and check_sse_support. Simplifies things quite a bit.
- check_sse_support and mmx_support are no longer needed, removed.

git-svn-id: trunk@27169 -
2014-03-16 22:20:39 +00:00
sergei
a9b0a92873 * cpuid_support: translated to ATT syntax and optimized a bit.
git-svn-id: trunk@27168 -
2014-03-16 22:05:04 +00:00
Jonas Maebe
4dfc731bdc + support for nested classes in the WPO devirtualisation and VMT
optimization infrastructure (mantis #25869)

git-svn-id: trunk@27167 -
2014-03-16 19:46:17 +00:00
Jonas Maebe
80863a8361 * fixed warning/compilation
git-svn-id: trunk@27166 -
2014-03-16 19:46:10 +00:00