Commit Graph

338 Commits

Author SHA1 Message Date
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
florian
6476fbf2fe * fixed and added a lot of stuff to get the Jedi DX( headers
compiled
2001-08-19 21:02:01 +00:00
Jonas Maebe
b9f6efc85b + "compproc" helpers
* renamed several helpers so that their name is the same as their
    "public alias", which should facilitate the conversion of processor
    specific code in the code generator to processor independent code
  * some small fixes to the val_ansistring and val_widestring helpers
    (always immediately exit if the source string is longer than 255
     chars)
  * fixed fpc_dynarray_high and fpc_dynarray_length if the dynarray is
    still nil (used to crash, now return resp -1 and 0)
2001-08-01 15:00:09 +00:00
peter
e7c86006db * m68k updates merged 2001-07-30 21:38:54 +00:00
peter
eb32168592 * include lowmath for m68k (merged) 2001-07-29 14:05:55 +00:00
peter
bc74424ab1 * m68k updates merged 2001-07-29 13:49:15 +00:00
peter
db87f86f00 * Length made internal
* Add array support for Length
2001-07-09 21:15:40 +00:00
peter
ca8d604964 * various widestring updates, it works now mostly without charset
mapping supported
2001-07-08 21:00:14 +00:00
peter
69b8e3ad44 * big endian updates (merged) 2001-06-13 18:32:05 +00:00
peter
675b517bbe * lib_exit added 2001-06-03 15:15:58 +00:00
peter
8bf13fd185 *** empty log message *** 2001-05-09 19:57:07 +00:00
peter
22db4256ce * removed rtllite define 2001-04-13 18:06:28 +00:00
Jonas Maebe
4f791d04b4 - removed all ifdef cardinalmulfix code 2000-12-16 15:56:18 +00:00
Jonas Maebe
75ad22bf64 * support for range checking when converting from 64bit to something
smaller (32bit, 16bit, 8bit)
  * fixed range checking between longint/cardinal and for array indexing
    with cardinal (values > $7fffffff were considered negative)
2000-11-13 14:47:46 +00:00
peter
24b631132e * ptr returns farpointer 2000-11-11 16:12:01 +00:00
peter
2660e94c5f * removed some warnings 2000-11-06 21:35:59 +00:00
florian
8dc903fc3b * fixed linker errors 2000-11-04 17:52:46 +00:00
peter
b8461475c8 * FPC_BREAK_ERROR added 2000-10-13 12:04:03 +00:00
michael
7aa1e88a5d + Added some delphi compatibility types 2000-08-13 17:55:14 +00:00
marco
e817560f04 * fixes for val(int64 or qword) to ansistring 2000-08-09 19:31:18 +00:00
michael
586c4cea50 + Conditionals fixed 2000-07-14 10:33:09 +00:00
michael
650fbb86aa + removed logs 2000-07-13 11:32:24 +00:00
michael
e7aca136a1 + Initial import 2000-07-13 06:29:38 +00:00
pierre
2f715a886a * disable check in Exit and Error code 2000-05-23 20:35:41 +00:00
peter
ebbf2e578f * backtraces for exceptions are now only generated from the place of the
exception
  * frame is also pushed for exceptions
  * raise statement enhanced with [,<frame>]
2000-04-24 11:11:50 +00:00
pierre
f1ab3ebad2 + get longer backtrace when redirected to file 2000-04-14 12:17:12 +00:00
florian
548f14e16d * halt in the finalization statement of a unit lead to an endless loop; fixed 2000-04-02 09:39:25 +00:00
pierre
dafcbea824 + HandleErrorAddrFrame 2000-03-14 07:31:57 +00:00
Jonas Maebe
0b02714817 + new str_real which is completely TP compatible regarding output
format and which should have no rounding errors anymore
2000-02-26 15:49:40 +00:00
peter
6b66a55cd6 * truncated log 2000-02-09 16:59:28 +00:00
peter
6c15031ffd * moved halt to system.inc
* syslinux doesn't use direct asm anymore
2000-02-09 12:17:51 +00:00
peter
78cb6bfa89 * lineinfo unit added which uses stabs to get lineinfo for backtraces 2000-02-06 17:19:22 +00:00
peter
c775ade1d6 * primitives added 2000-01-10 09:54:30 +00:00
daniel
ec29a31834 * copyright 2000 2000-01-07 16:41:28 +00:00
daniel
a79b4a404b * copyright 2000 added 2000-01-07 16:32:21 +00:00
pierre
8b91888fc2 * allow v09912 to compile system 1999-12-21 11:10:22 +00:00
florian
89c403c529 * very basic widestring support 1999-12-18 14:54:34 +00:00
Jonas Maebe
047a68614f * remove "random(longint): longint" if cardinalmulfixed is defined 1999-12-12 13:29:34 +00:00
Jonas Maebe
7f899914bc + function random(longint): longint 1999-12-01 12:37:13 +00:00
Jonas Maebe
5ffd2e21d4 * reinstated old random generator, but modified it so the integer
one now has a much longer period
1999-11-20 12:48:09 +00:00
peter
78d5e706ac * exception address fixes 1999-11-15 21:49:47 +00:00
pierre
36912a7a2b + get also first BackTrace address with ' 0x' prefix 1999-11-09 22:40:12 +00:00
daniel
ec77ff77ee * Committed new random generator. 1999-11-09 20:14:12 +00:00
peter
aa083c5b4d * truncated log 1999-11-06 14:35:38 +00:00
peter
6eafc25151 * *errorproc are not procvars instead of pointers which allows better
error checking for the parameters (shortstring<->ansistring)
1999-10-26 12:31:00 +00:00
Jonas Maebe
cd47cbb67a * dump_stack now actually dumps its info to f (was still hardcoded
to stderr)
1999-09-18 16:05:12 +00:00
peter
c5faa84f92 * saveregister is now working and used for assert and iocheck (which has
been moved to system.inc because it's now system independent)
1999-08-05 23:45:09 +00:00
peter
00c8bda3b2 * fixed assert() to push/pop registers 1999-07-28 12:58:22 +00:00
peter
ebd738f2f5 * removed temp defines 1999-07-05 20:04:21 +00:00
peter
a3bcef25cc * $ifdef int64 1999-07-03 01:24:19 +00:00
florian
01aceb4f07 + qword/int64: lo/hi/swap 1999-07-02 18:06:40 +00:00
florian
404cffaad4 + qword/int64 type released 1999-07-01 15:39:50 +00:00
peter
dc8c1c62bd * random doesn't rte 200 with random(0) 1999-06-11 11:47:00 +00:00
michael
2ffca0ba47 + AbstractErro should call HandleError, not runerror. 1999-06-05 20:45:12 +00:00
florian
e905aeea04 * most of the Object Pascal stuff moved to the system unit 1999-05-17 21:52:33 +00:00
peter
dc1f9b5bbb * addr() internal 1999-04-17 13:10:23 +00:00
peter
6120616a20 + finalization support 1999-04-15 12:19:59 +00:00
peter
af8a04a5af * use external names
* removed all direct assembler modes
1999-03-01 15:40:48 +00:00
florian
e207d78d70 + functions lo/hi for DWord type implemented 1999-02-01 00:05:14 +00:00
pierre
1cd9b0fb0e * Fillchar(..,..,boolean) added 1999-01-29 09:23:09 +00:00
pierre
ab763cd69c + added text arg for dump_stack 1999-01-22 12:39:19 +00:00
pierre
33aac9b556 + system_exit procedure added 1999-01-18 10:05:47 +00:00
peter
f11d46a93e + stdout, which is needed when you write something in the system unit
to the screen. Like the runtime error
1998-12-28 15:50:42 +00:00
pierre
02a46a6547 * HandleError -> HandleErrorFrame to avoid problem in
assembler code in i386.inc
    (call to overloaded function in assembler block !)
1998-12-21 14:28:20 +00:00
peter
4eeae4e425 * fixed io-error handling 1998-12-18 17:21:32 +00:00
peter
516958a67b * removed temp symbols 1998-12-15 22:42:49 +00:00
peter
f2b6d631e5 * removed warnign 1998-12-10 23:59:56 +00:00
pierre
67dba7efc3 + added conversion from exceptions into run time error
(only if syswin32 compiled with -ddebug for now !)
  * added HandleError(errno,frame)
    where you specify the frame
    needed for win32 exception handling
1998-12-01 14:00:08 +00:00
Jonas Maebe
5271ef0830 * changed RandSeed and OldRandSeed to Cardinal to avoid negative random numbers 1998-11-26 23:16:13 +00:00
michael
62952be3eb + renamed astrings.pp to astrings.inc 1998-11-17 10:36:07 +00:00
peter
dbbdb79dfe * fixes for H+ 1998-11-16 10:21:24 +00:00
pierre
c1b6f90bcf * fix for length(char) in const expressions 1998-11-05 10:29:34 +00:00
michael
233c8c8c79 + Removed ifdef useansistrings 1998-11-04 20:34:01 +00:00
Jonas Maebe
3aca7519c9 * fixed RandSeed bug 1998-10-12 22:11:28 +00:00
florian
26635465aa * made FPC_HANDLEERROR public 1998-10-12 12:43:37 +00:00
Jonas Maebe
7688b443a8 * changed seed2 and seed3 to cardinal to prevent overflow 1998-10-07 11:40:08 +00:00
peter
369e79adf9 + assert() support 1998-10-05 12:32:44 +00:00
peter
96159c617a * more constant expression evals 1998-10-02 09:25:09 +00:00
peter
e47964d613 * shortstring=string type added 1998-09-22 15:30:54 +00:00
michael
ac4ac905aa Added AbstractErrorHandler 1998-09-16 13:08:03 +00:00
michael
c3781fba38 Added FPC_ prefix to abstracterror 1998-09-16 12:37:07 +00:00
michael
2ec08b84f3 + Merged changes from fixes branch 1998-09-15 17:12:32 +00:00
peter
4620a73a9b * FPC_ names
* Heap manager is now system independent
1998-09-14 10:48:00 +00:00
peter
b8ff0c3320 + internconst 1998-09-01 17:36:17 +00:00
carl
1dd8fe99d5 + important comment added 1998-08-17 12:24:16 +00:00
Jonas Maebe
bee0c9d3b4 * random now returns a value between 0 and max-1 instead of between 0 and max 1998-08-13 16:22:11 +00:00
peter
bd57e42086 * $ifdef ver0_99_5 updates 1998-08-11 00:04:46 +00:00
michael
4e11459938 + Added support for ErrorProc variable. All internal functions are required
to call HandleError instead of runerror from now on.
  This is necessary for exception support.
1998-07-30 13:26:14 +00:00
michael
8cc8cb80b2 + added setjmp/longjmp and exception support 1998-07-28 20:37:45 +00:00
michael
e639e7b163 + Adapted assert to Delphi format 1998-07-23 19:53:20 +00:00
michael
72b2ff141f + Implemented DO_ASSERT function. 1998-07-23 13:08:41 +00:00
carl
44820af8cb * would not compile under FPC v0.99.5 1998-07-15 12:09:35 +00:00
florian
ba57d2813b * some problems with ansi string support fixed 1998-07-13 21:19:07 +00:00
carl
4f8884b466 * randon and Random(l) now work correctly - don't touch it works! 1998-07-08 11:56:55 +00:00
carl
004bb57ae9 * hmmm... it is luck (BSS zeroed with GAS) that DoError and ErrorBase work.
Now they are initilized instead.
1998-07-02 13:01:55 +00:00
carl
a546945c4d * DOERROR RESOTRED! DON'T TOUCH :) 1998-07-02 12:53:09 +00:00
carl
5434ee6d4c * no SINGLE in m68k and other processors! 1998-07-02 12:11:50 +00:00
peter
b5203c5b09 * fixed do_error in runtimeerror 1998-07-02 09:25:05 +00:00
peter
5a638754f4 * better readln/writeln 1998-07-01 15:29:56 +00:00
daniel
8a84b20446 - Doerror removed. 1998-06-26 08:20:57 +00:00
peter
4ac8e5d18f + internal inc/dec 1998-06-25 14:04:17 +00:00
daniel
c43a386001 + RTLLITE directive to compile minimal RTL. 1998-06-25 09:44:19 +00:00
daniel
c48b67d0b3 * RTLLITE conditional added to produce smaller RTL 1998-06-15 15:16:26 +00:00
michael
504b4faf62 + Forgot to commit some changes 1998-06-10 07:46:45 +00:00
michael
05b01ddb00 Implemented rtti, inserted ansistrings again 1998-06-08 12:38:21 +00:00
peter
d0ce4085d3 * comp,extended are only i386 added support_comp,support_extended 1998-06-04 23:45:56 +00:00
cvs
ac974a7634 * test commit. Shouldn't be allowed. 1998-05-20 11:23:09 +00:00
peter
e64becf81c * moved getopts to inc/, all supported OS's need argc,argv exported
+ strpas, strlen are now exported in the systemunit
  * removed logs
  * removed $ifdef ver_above
1998-05-12 10:42:41 +00:00
peter
4594d7ae04 + inc(pchar), dec(pchar), incc(pchar,a),dec(pchar,a) 1998-04-16 12:30:47 +00:00
michael
62001bab9a + Changed Random() function. Moved from system to processor dependent files (from Pedro Gimeno) 1998-04-08 07:53:31 +00:00
florian
4a9ba91007 * complete Object Pascal support moved to objpas unit 1998-03-25 23:39:17 +00:00
root
d1a1f501c8 Initial revision 1998-03-25 11:18:12 +00:00