Commit Graph

261 Commits

Author SHA1 Message Date
Jonas Maebe
33c4197f43 * changed FPC_EMPTYCHAR into a widechar because it's also used for
widestring -> pwidechar conversions (mantis #9897)

git-svn-id: trunk@8756 -
2007-10-09 17:52:25 +00:00
peter
e8322a83e4 * optimized generic implementations to use pointers instead of
array accesses. This also allows better register variable
    optimizations

git-svn-id: trunk@8742 -
2007-10-07 18:36:18 +00:00
Tomas Hajny
58bca68e6a + infrastructure for CtrlBreakHandler added
git-svn-id: trunk@8691 -
2007-09-30 14:14:33 +00:00
Jonas Maebe
fd98a0cc5b * don't call runerror if a unix threading error occurs (because this
immediately terminates the whole application), but instead call
    handleerrorframe (which can be converted into an exception) (#7954)

git-svn-id: trunk@8248 -
2007-08-08 13:59:17 +00:00
Jonas Maebe
c630797934 * fixed swap(integer) due to counter-intuitive TP/Delphi compatible
shr-behaviour

git-svn-id: trunk@6752 -
2007-03-08 22:30:12 +00:00
daniel
7c5d3f69ac * hexstr can handle pointers
git-svn-id: trunk@6526 -
2007-02-17 16:39:02 +00:00
daniel
984191ef0e * Also add symteminline condition.
git-svn-id: trunk@5691 -
2006-12-23 15:48:28 +00:00
daniel
29ee556451 * Make real48 operators inline
git-svn-id: trunk@5690 -
2006-12-23 15:44:46 +00:00
florian
fd2032dab2 + start of embedded rtl
+ feature support in the compiler

git-svn-id: trunk@5628 -
2006-12-17 18:40:36 +00:00
yury
4bfe0e6819 * Optimization for code size.
git-svn-id: trunk@5331 -
2006-11-11 14:19:33 +00:00
daniel
de001ec4ad * Free hidden cmdline instead of cmdline property.
git-svn-id: trunk@4968 -
2006-10-18 20:32:45 +00:00
florian
86cc5ec31b * more debugging
git-svn-id: trunk@4564 -
2006-09-07 20:07:41 +00:00
yury
4e9ca8c0f0 * Note was fixed.
git-svn-id: trunk@4533 -
2006-09-02 08:15:35 +00:00
oro06
d1dc6efeea *fix rtl compile : HAS_MEMORYMANAGER/HAS_MT_MEMORYMANAGER
git-svn-id: trunk@4431 -
2006-08-17 09:39:01 +00:00
Jonas Maebe
ec1d8a139f * fixed for non-Windows and non-OS/2
git-svn-id: trunk@4411 -
2006-08-12 12:23:19 +00:00
florian
d337c3ca6a * clean up heap at exit, fixes #7183
git-svn-id: trunk@4410 -
2006-08-11 22:09:29 +00:00
michael
5ef20e6215 + Added delphi compatibility Error procedure
git-svn-id: trunk@3610 -
2006-05-21 09:57:47 +00:00
florian
acc016c9ec * finished safecall support
git-svn-id: trunk@3417 -
2006-05-04 20:40:31 +00:00
peter
2d3c01d83a * basic work to make Move() and FillChar() internal under ifdef INTERNALMOVEFILLCHAR
git-svn-id: trunk@3021 -
2006-03-24 17:32:39 +00:00
peter
9381c9360e * Flush all StdIO output files
git-svn-id: trunk@2985 -
2006-03-20 09:56:00 +00:00
Vincent Snijders
cfcbd77133 * write caller address, even if no caller frame was found
git-svn-id: trunk@2897 -
2006-03-12 21:30:06 +00:00
peter
4c56a87d59 * integrate loaders in system unit
git-svn-id: trunk@2695 -
2006-02-26 18:21:35 +00:00
Jonas Maebe
1bcde3436d * random(int64(0)) now return 0 instead of division by zero
* random(negative_longint) now returns values between -l+1 and 0
    instead of between -l and 0

git-svn-id: trunk@2422 -
2006-02-03 20:57:32 +00:00
peter
94f2b1d941 * add initialstkptr to get the stackpointer at startup before
PASCALMAIN is called so the main body framepointer is seen as
    a valid pointer with backtracing

git-svn-id: trunk@2266 -
2006-01-12 09:29:57 +00:00
Jonas Maebe
5b9f58ef73 * reverted r2037 because of braindead "out" semantics for refcounted
types

git-svn-id: trunk@2045 -
2005-12-24 01:06:05 +00:00
Jonas Maebe
84aab46550 * changed formal "var" paramters of move, movechar0 and fill* into
"out" parameters to avoid wrong "uninitialized" warnings

git-svn-id: trunk@2037 -
2005-12-23 20:59:08 +00:00
tom_at_work
1b4b42fdd6 * added CheckInitialStkLen() function which checks whether the given stack size value is valid on the OS when creating a thread, fixing stack checking
git-svn-id: trunk@1722 -
2005-11-11 12:16:08 +00:00
tom_at_work
367df58016 * stack related things (sizes, calculations, etc.) are now 64 bit on 64 bit platforms
* default stack size is now also 32k for Windows (allows the use of stack checking when using threads)

git-svn-id: trunk@1718 -
2005-11-10 17:06:25 +00:00
yury
2332eae403 * prevent endless stack dump if an exception occured during the dump itself.
git-svn-id: trunk@1427 -
2005-10-16 17:17:50 +00:00
tom_at_work
f7f0f9c426 * makefile adaption to be able to cycle compiler and RTL on PowerPC64 target
* some fixes for PowerPC64 target in the code generator and the RTL
* stabs generation for PowerPC64 is okay now (untested)

git-svn-id: trunk@1337 -
2005-10-08 15:48:39 +00:00
michael
c15d1b280f + Initial implementation of RTL resource support
git-svn-id: trunk@991 -
2005-08-31 15:54:30 +00:00
florian
25b79e9db3 * patch from Yury Sidorov to make simply exception handling without sysutils possible
git-svn-id: trunk@595 -
2005-07-07 18:53:21 +00:00
michael
5cafc069b5 + Removed NOSAVEREGISTERS define
git-svn-id: trunk@307 -
2005-06-09 17:58:20 +00:00
michael
3a2eaa94b1 + Removed INTERNCONSTINTF define
git-svn-id: trunk@267 -
2005-06-07 22:04:18 +00:00
michael
93ba0409be + Removed HASCOMPILERPROC define
git-svn-id: trunk@265 -
2005-06-07 21:41:02 +00:00
michael
a20556e62d + Removed INTERNLENGTH/INTERNSETLENGTH defines
git-svn-id: trunk@257 -
2005-06-07 21:07:21 +00:00
michael
21425e303c + Removed HASVARIANT define
git-svn-id: trunk@244 -
2005-06-07 20:48:31 +00:00
michael
8a226bba52 + Removed HASWIDESTRING/HASWIDECHAR defines
git-svn-id: trunk@241 -
2005-06-07 20:42:22 +00:00
peter
4ace790492 * remove $Log
git-svn-id: trunk@231 -
2005-06-07 09:47:55 +00:00
Jonas Maebe
7ba46ce6f0 * Darwin TThreadID is a pointer
* BeginThread now returns a TThreadID instead of dword

git-svn-id: trunk@189 -
2005-06-04 09:33:39 +00:00
michael
d438530088 + Fix for bug #3917 by Michael Deutschmann
git-svn-id: trunk@112 -
2005-05-25 21:35:29 +00:00
fpc
790a4fe2d3 * log and id tags removed
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
michael
ffb55c4254 + Removed VER1_0 defines
git-svn-id: trunk@33 -
2005-05-19 21:14:45 +00:00
fpc
50778076c3 initial import
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
Jonas Maebe
2426ecafc3 * fixed several warnings and notes about unused variables (mainly) or
uninitialised use of variables/function results (a few)
2005-03-25 22:53:39 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
florian
f093fa9242 - killed power from system unit
* move operator ** to math unit
2005-02-08 20:25:28 +00:00
florian
aeac2a046d + InitProc 2005-02-06 20:35:54 +00:00
peter
e49fa4bd08 * threads for go32v2,os,emx,netware 2005-02-06 16:57:18 +00:00
peter
86025bbcb6 * moved file and dir functions to sysfile/sysdir
* win32 thread in systemunit
2005-02-06 13:06:20 +00:00
peter
2fbaae2b91 * threading in system unit
* removed systhrds unit
2005-02-06 11:20:52 +00:00
Tomas Hajny
353d5cc3de + GetProcessID added 2004-12-05 14:36:37 +00:00
Jonas Maebe
b6a6e78db1 * fixed remaining compilation problems 2004-11-21 16:14:59 +00:00
Jonas Maebe
cfeaa8aa65 * some compilation fixes for powerpc after all the internconst and
internproc changes, still crashes with internalerror(88) for ppc1
    on real2str.inc(193,39)
2004-11-20 15:49:21 +00:00
peter
14eb8f59b4 internconst, internproc and some external declarations moved to interface 2004-11-17 22:19:04 +00:00
marco
58a29c168d * arraytostring added 2004-10-30 20:49:10 +00:00
peter
fd759e521f * saveregisters calling convention is obsolete 2004-10-24 20:01:41 +00:00
Jonas Maebe
0f26252376 + cgenmath with libc math functions. Faster than the routines in genmath
and also have full double support (exp() only has support for values in
    the single range in genmath, for example). Used in FPC_USE_LIBC is
    defined
  * several fixes to allow compilation with -dHASINLINE, but internalerrors
    because of missing support for inlining assembler code
2004-10-09 21:00:46 +00:00
olle
9a4855aa43 + added maxExitCode to all System.pp
* constrained error code to be below maxExitCode in RunError et. al.
2004-09-03 19:25:21 +00:00
Jonas Maebe
491071539b * fixed compilation with 1.0.x 2004-08-31 12:23:53 +00:00
Jonas Maebe
814478ac33 * fixed random(int64) 2004-08-30 17:36:18 +00:00
peter
76c6e4dd83 no message 2004-08-29 10:23:12 +00:00
florian
7a7c34e1b7 + several unicode (to/from utf-8 conversion) stuff added
* some longint -> SizeInt changes
2004-07-18 20:21:44 +00:00
peter
9e8618afe6 * stop backtrace also when caller frame is nil 2004-05-27 23:34:23 +00:00
peter
94adf83a8b * use thandle in do_* 2004-05-16 18:51:20 +00:00
Jonas Maebe
dedf697f3a * use some more string routines from libc if FPC_USE_LIBC is used 2004-05-01 15:26:33 +00:00
peter
55486446a3 * fix 64bit address printing 2004-04-22 19:43:43 +00:00
peter
0fbb1fe9e8 * random(int64) added 2004-04-22 17:10:38 +00:00
daniel
173d1a2554 * Applied 2004-02-20 11:01:20 +00:00
daniel
f9efd57801 * Use $ for hex numbers instead of alien 0x 2004-02-06 20:17:12 +00:00
florian
f65558b4c4 * fixed syscall number 2004-01-22 20:12:37 +00:00
Jonas Maebe
4a8d1bcb06 * fixed wrong include filename 2004-01-11 12:21:06 +00:00
Jonas Maebe
5439babeb5 + cgeneric.inc: implementations of rtl routines based on libc
* system.inc: include cgeneric.inc before powerpc.inc/i386.inc/... if
    FPC_USE_LIBC is defined
  * powerpc.inc, i386.inc: check whether the routines they implement aren't
    implemented yet in another include file (cgeneric.inc)
2004-01-11 11:10:07 +00:00
Jonas Maebe
6bd3eccdac + fpc_cpuinit procedure to allow cpu/fpu initialisation before any unit
initialises
  + fpu exceptions for invalid operations and division by zero enabled for
    ppc
2004-01-02 17:21:50 +00:00
Jonas Maebe
c2efd86268 + integer division-by-zero detection support for ppc
+ compilerproc FPC_DIVBYZERO
2004-01-01 17:58:16 +00:00
marco
b15ba0a5ae * Peter's Cardinal<->Longint fixes patch 2003-11-03 09:42:27 +00:00
Jonas Maebe
34e1c9af8f * hack to allow repeatable random sequences using the new random number
generator
  * fixed range warning/error
2003-10-29 18:23:45 +00:00
Tomas Hajny
a3636fc097 * minor fix for new Random 2003-10-26 21:15:43 +00:00
Jonas Maebe
3f4f17e1f6 * replaced random generator with the Mersenne twister, which is about
3.5 times faster
2003-10-26 18:46:02 +00:00
peter
abbc3fa755 * moved int64 asm code to int64p.inc
* save ebx,esi
2003-09-14 11:34:13 +00:00
florian
8d771df2d4 * arm fixes to the common rtl code
* some generic math code fixed
  * ...
2003-09-03 14:09:37 +00:00
olle
f384584ac7 - removed parameter from fpc_iocheck
* changed processor compiler directive * to cpu*
2003-08-21 22:10:55 +00:00
peter
1e86b585f9 * changed address parameter/return values to pointer instead
of longint
2003-03-17 14:30:11 +00:00
mazen
92f035d47f * fixing run time errors related to unimplemented abstract methods in CG
+ giving empty emplementations for some RTL functions
2003-02-05 21:48:34 +00:00
carl
781415a0da - avoid warnings (add typecast) 2002-12-07 14:34:30 +00:00
peter
ef708fdab9 * Swap(QWord) constant support 2002-11-18 18:33:51 +00:00
peter
5fff238567 * threads unit added for thread support 2002-10-14 19:39:16 +00:00
carl
23f2c80911 * assert now halts with exitcode 227 (as Delphi does) 2002-09-18 18:32:01 +00:00
peter
01dfac4a4e * old logs removed and tabs fixed 2002-09-07 15:06:34 +00:00
peter
c3af3cda9b * SYSTEMINLINE define that will add inline directives for small
functions and wrappers. This will be defined automaticly when
    the compiler defines the HASINLINE directive
2002-08-19 19:34:02 +00:00
florian
7ac5c3743d * several fixes for linux/powerpc
* several fixes to MT
2002-07-28 20:43:47 +00:00
florian
05a95ba5bc * interface of system unit for Linux/PowerPC compiles 2002-07-26 22:46:06 +00:00
florian
b6fe4bdebd * endian directive for PowerPC fixed 2002-07-26 16:42:00 +00:00
florian
95c6c8f430 + some x86-64 support added 2002-07-04 20:40:09 +00:00
carl
1b88940d62 * StackError is now a typed constant
+ $S can be used under unix
2002-04-21 15:51:50 +00:00
peter
dd7bc0dbdd * stackcheck protected against infinite recursive after stack error
* stackcheck requires saveregisters, because it can be called from
    iocheck and then will destroy the result of the original function
2002-04-15 19:38:40 +00:00
carl
b6da7bd8a2 + generic stack checking can be overriden 2002-04-15 18:51:20 +00:00
carl
7d6edd04b2 + generic stack checking 2002-04-12 17:34:05 +00:00
michael
bec30ba1b5 + Added double2real function from main branch 2001-12-13 20:23:19 +00:00
carl
6c657fe80e + don't print stack information if previous frame = 0 2001-11-19 02:40:24 +00:00