Commit Graph

9878 Commits

Author SHA1 Message Date
florian
f0487f8fde * remove packed used for nan records in the softfpu code, it served no purpose
* recordered files of nan records in the softfpu code

git-svn-id: trunk@23300 -
2013-01-02 18:13:21 +00:00
florian
21d62277ce + build sysutils unit for arm-embedded
git-svn-id: trunk@23296 -
2013-01-02 11:02:44 +00:00
florian
358a62d7c3 * enable command line handling dummy for arm-embedded
git-svn-id: trunk@23295 -
2013-01-02 10:52:19 +00:00
florian
8ee1445b81 * stripped trailing spaces
git-svn-id: trunk@23294 -
2013-01-02 10:50:32 +00:00
florian
82f20cedbd * make threading code dependend on feature switch
git-svn-id: trunk@23293 -
2013-01-02 10:48:29 +00:00
florian
68d04a4d21 + add random code from Francesco's GBA code
git-svn-id: trunk@23292 -
2013-01-02 10:47:35 +00:00
florian
d1856df4f7 * variants do not hurt arm either
git-svn-id: trunk@23281 -
2013-01-01 19:32:47 +00:00
florian
dcc227882d + newline
git-svn-id: trunk@23280 -
2013-01-01 19:32:17 +00:00
florian
d460d44671 * fixed typo as pointed out by Aleksa Todorovic
git-svn-id: trunk@23278 -
2013-01-01 18:18:39 +00:00
florian
24f518f232 + redirect calls to empty virtual methods to FPC_EMPTYMETHOD
* do empty subroutine/method optimization only for O2 and higer

git-svn-id: trunk@23276 -
2013-01-01 16:43:27 +00:00
paul
431ce7afc8 rtl: remove unused variables
git-svn-id: trunk@23275 -
2013-01-01 16:31:31 +00:00
florian
d2a7d09931 * use pascal loop, so it can be better optimized
git-svn-id: trunk@23273 -
2013-01-01 14:59:30 +00:00
Károly Balogh
652d69d145 fixed typo
git-svn-id: trunk@23269 -
2013-01-01 02:44:01 +00:00
Károly Balogh
0702109f37 get_frame to return a5 on Amiga
git-svn-id: trunk@23268 -
2013-01-01 02:37:39 +00:00
Károly Balogh
79a0f706de save/restore FP from A5 on Amiga
git-svn-id: trunk@23267 -
2013-01-01 02:27:53 +00:00
Károly Balogh
601cc80fc6 define HAS_SLEEP and add a very simple sleep implementation
git-svn-id: trunk@23266 -
2013-01-01 01:53:14 +00:00
Károly Balogh
3137c6ac4a answer the WBMsg on process exit, when run from Workbench
git-svn-id: trunk@23265 -
2013-01-01 01:47:30 +00:00
florian
85ae82def4 * enable more features for arm-embedded, they don't blow up executables if not used
git-svn-id: trunk@23263 -
2012-12-31 19:32:04 +00:00
florian
92565c80ba * make exception variables threadvars or not depending on threading support
git-svn-id: trunk@23262 -
2012-12-31 19:31:22 +00:00
florian
ebd2e79270 * calling SysInitExceptions is not really needed because it sets only some vars to nil which are nil anyways, this saves some bytes
git-svn-id: trunk@23261 -
2012-12-31 19:28:45 +00:00
florian
e6f2c8cbd3 * turn off threadvars in softfpu if threading is not enabled
git-svn-id: trunk@23258 -
2012-12-31 16:31:03 +00:00
florian
0215f00490 * fix compilation of objpas if ansistrings are disabled as requested by Michael Ring on fpc-devel
git-svn-id: trunk@23256 -
2012-12-31 14:26:48 +00:00
florian
020b3e02ea + parallel compilation of embedded rtl
* fix rules for GNU Make 3.82

git-svn-id: trunk@23255 -
2012-12-31 14:17:20 +00:00
Tomas Hajny
49cb967614 * unit sockets extended to allow interoperability with external socket libraries compiled using EMX - e.g. OpenSSL
git-svn-id: trunk@23251 -
2012-12-29 14:38:36 +00:00
michael
3367a29831 * Update ansistring header record explanation
git-svn-id: trunk@23249 -
2012-12-29 10:23:16 +00:00
svenbarth
e240856e43 * rtl/m68k/setjumph.inc:
data registers stored are 1 to 7, not 0 to 7
* rtl/m68k/setjump.inc:
    don't use "S" or "value" to reference the parameters as the code generator does not use "sp" instead of "fp" in case of "nostackframe"
    restore a0 at the end of setjmp

git-svn-id: trunk@23240 -
2012-12-28 13:00:28 +00:00
Tomas Hajny
2f25717e67 * GetTickCount(64) implementation for OS/2 added
git-svn-id: trunk@23239 -
2012-12-28 12:53:55 +00:00
svenbarth
70a7a09413 * use the correct thread ID when checking for the main thread
* ensure that the Exception reference is Nil when appending a synchronize entry to the synchronize queue

git-svn-id: trunk@23234 -
2012-12-27 23:36:16 +00:00
Tomas Hajny
e256311188 * GetCPUCount implementation for OS/2 added
git-svn-id: trunk@23233 -
2012-12-27 22:23:03 +00:00
svenbarth
764f36a179 Extend TThread with (class) methods and (class) properties from Delphi 2007 and newer.
Especially for the introduction of the Queue method the internal Synchronize handling was modified. Instead of handling only one event there is now a queue of events which is walked completely when CheckSynchronize is called. Each entry in the queue can carry a PRTLEvent which will be signaled when the contained method has been executed and thus Synchronize methods can still be blocking.
Exceptions inside the queued methods are either handed back to the calling method for Synchronize events or raised directly (after leaving the queue in a valid state) to the caller of CheckSynchronize.

The way platform specific adjustments can be made to TThread was changed. Instead of implementing the Constructor and Destructor directly one now implements the methods SysCreate and SysDestroy which are called from the Constructor and Destructor respectively. All RTLs were adjusted for this and should be controlled by the platform maintainers for correct compilation (Unix works).

The new method NameThreadForDebugging has two overloaded variants: one with the thread name as AnsiString and one with the thread name as UnicodeString.
By default the AnsiString variant calls the UnicodeString variant and the latter needs to be implemented. This can be changed by defining THREADNAME_IS_ANSISTRING for a platform. Then the UnicodeString variant calls the AnsiString one and the AnsiString one needs to be implemented.

Also added was a global property CPUCount for the System unit. This property returns the number of virtual cores of the system.

New methods and functions that should be implemented per platform are:
System.GetCPUCount (default returns 1)
Classes.TThread.GetSystemTimes (default zeros the struct)
Classes.TThread.NameThreadForDebugging (default does nothing)

More detailed information about the added methods will be available in the feature announcement mail.

git-svn-id: trunk@23227 -
2012-12-27 16:16:17 +00:00
pierre
7457a0f321 Use new getdirentriesi49 syscall, contributed by Pascal Stumpf
git-svn-id: trunk@23223 -
2012-12-26 14:33:30 +00:00
pierre
bba4932ef9 * Fix commit 23220, by moving declaration from syscallh.inc to syscall.inc
git-svn-id: trunk@23221 -
2012-12-25 22:54:49 +00:00
pierre
70a29668a4 Try to fix simply the fpc_threadvar_relocate_proc problem
git-svn-id: trunk@23220 -
2012-12-24 16:23:30 +00:00
svenbarth
e914ec7f00 Add platform independant support for "GetTickCount" and "GetTickCount64" to unit "SysUtils". "GetTickCount" is declared as deprecated from the beginning and thus "GetTickCount64" should be used instead.
The default implementation of "GetTickCount" just uses the lower 32-Bit from the result of "GetTickCount64". 
The default implementation of "GetTickCount64" is based upon "Now" for systems that support a floating point unit (and thus "Now"). 
Other systems can define a "SysTimerTick" function which is used instead if "HAS_SYSTIMERTICK" is defined.

The Windows implementation of "GetTickCount" uses Windows' "GetTickCount" function. 
The implemenation of "GetTickCount64" checks whether the system is a Windows Vista or newer and then uses Windows' "GetTickCount64" function. Otherwise Windows' "GetTickCount" is used also.

The Unix implementation of "GetTickCount" is the default one. 
The "GetTickCount64" implementation uses "fpgettimeofday".

git-svn-id: trunk@23215 -
2012-12-23 16:12:57 +00:00
sergei
27c626245b * Reuse RecordRTTI to finalize class instances. This is possible because RTTI for classes is the same as for records (except different value of tkKind field), and RecordRTTI ignores tkKind (assuming that required checks are done by its caller).
git-svn-id: trunk@23213 -
2012-12-23 12:10:11 +00:00
yury
2012220aec * Fixed HKEY_xxx defines for win64. For example HKEY_CLASSES_ROOT should be $FFFFFFFF80000000 on win64 instead of $80000000. Most registry API functions accept invalid HKEY_xxx values. But some registry functions like RegOverridePredefKey() require proper values. I had spent several hours fighting with RegOverridePredefKey() on win64 until I have found what had been wrong.
git-svn-id: trunk@23205 -
2012-12-22 16:15:32 +00:00
sergei
f9dbcbd0c3 - Removed duplicate file header
git-svn-id: trunk@23199 -
2012-12-21 09:16:23 +00:00
sergei
278fbb742e * mips-linux: call SetErrno in order to remove dependence on threadvar implementation details.
git-svn-id: trunk@23197 -
2012-12-21 04:42:41 +00:00
pierre
c979ded1f9 Use FPUSOFT instead of CPUCOLDFIRE for settings some m68k software macors
git-svn-id: trunk@23186 -
2012-12-18 15:20:33 +00:00
pierre
14c5fceb45 Add fpc_longword_to_double
git-svn-id: trunk@23185 -
2012-12-18 15:17:48 +00:00
pierre
6d5f2e0cf2 Regenerated after: Add lineinfo
git-svn-id: trunk@23184 -
2012-12-18 15:16:37 +00:00
pierre
bb6355e716 Add lineinfo
git-svn-id: trunk@23183 -
2012-12-18 15:15:26 +00:00
pierre
daccd0d283 Add aliases fro mkdir/rmdir/chdir
git-svn-id: trunk@23182 -
2012-12-18 15:14:13 +00:00
pierre
76ba2ea6c7 Save complete register set for setjmp/longjmp
git-svn-id: trunk@23174 -
2012-12-18 14:05:52 +00:00
pierre
0e14a3c5bd add fpc_longword_to_double if needed
git-svn-id: trunk@23173 -
2012-12-18 14:04:14 +00:00
Károly Balogh
e2f02faca0 do not refer reg a6 directly, base pointer might differ among platforms (a5 on m68k-amiga)
git-svn-id: trunk@23167 -
2012-12-18 02:13:43 +00:00
Károly Balogh
39755ba888 use operatingsystem_result on m68k-amiga to pass returncode to OS
git-svn-id: trunk@23166 -
2012-12-18 01:41:52 +00:00
Károly Balogh
e2ce0e54c2 made Amiga/68k RTL to build with new m68k compiler at least (result probably not functional yet)
git-svn-id: trunk@23159 -
2012-12-16 23:46:27 +00:00
florian
d4c17ec4e0 + patch by Vojtech Cihak to add csqr function, resolves #23492
+ init function for complex numbers
+ csamevalue function
+ test
+ run tests in units/ucomplex directory

git-svn-id: trunk@23156 -
2012-12-16 10:15:13 +00:00
sergei
1415569ecb - Removed UnixToWinAge, since revision 444 it does not change its argument, but wastes a lot of CPU cycles converting it from local time and back.
git-svn-id: trunk@23145 -
2012-12-15 08:38:41 +00:00