Commit Graph

213 Commits

Author SHA1 Message Date
mazen
675f2770da + defining FPC_SYSTEM_HAS_DECLOCKED and FPC_SYSTEM_HAS_INCLOCKED to avoid
compilation error on generic.inc
2003-01-06 23:03:13 +00:00
peter
69ec4efe4d * fix possible overflow when array len > 255 when converting to
shortstring
2003-01-03 17:14:54 +00:00
peter
8bb7e03d19 * fixed return value when len=0 for indexchar,indexword 2002-12-15 22:32:25 +00:00
carl
dec8b274f3 * avoid crashes with negative len counts on fills/moves 2002-10-20 11:50:57 +00:00
carl
9afe6d5835 * Replace 220 -> 219 2002-10-15 19:23:43 +00:00
peter
5fff238567 * threads unit added for thread support 2002-10-14 19:39:16 +00:00
peter
ea8118b37c * fpc_pchar_length compilerproc and strlen alias 2002-10-05 14:20:16 +00:00
peter
603b3bc48b * Copy() changed to internal function calling compilerprocs
* FPC_SHORTSTR_COPY renamed to FPC_SHORTSTR_ASSIGN because of the
    new copy functions
2002-10-02 18:21:51 +00:00
carl
5ed7522ade - removed unused defines 2002-09-07 21:32:08 +00:00
peter
9f31783a0a * old logs removed and tabs fixed 2002-09-07 16:01:16 +00:00
peter
685caf03b6 * add alias for fpc_dispose_class so it can be called from
fpc_help_fail_class
2002-09-03 15:43:36 +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
3f2a82784e * changed multi threading define: it's MT instead of MTRTL 2002-07-26 15:45:33 +00:00
carl
dfa44b9f00 + added TEST_GENERIC to test generic version 2002-07-06 20:31:59 +00:00
carl
2604402b16 + TEST_GENERIC to test generic versions of code 2002-06-16 08:21:26 +00:00
Jonas Maebe
0d606ac980 * fixed memory corruption bug in fpc_help_constructor 2002-06-09 12:54:37 +00:00
peter
90ff7a6db8 * fpc_freemem and fpc_getmem compilerproc 2002-04-21 18:56:59 +00:00
carl
fe48bc8f27 - no need for runerror 203, already fixed! 2002-04-01 14:23:17 +00:00
carl
16b2fe5095 * cause runtime error 203 on failed class creation 2002-03-30 14:52:04 +00:00
peter
7484da248d * freemem(var) -> freemem(value) 2001-12-03 21:39:19 +00:00
carl
901072c39e * bugfix #1639 (IsMultiThread varialbe setting) 2001-10-09 02:42:05 +00:00
Jonas Maebe
41a57028b9 * converted adding/comparing of strings to compileproc. Note that due
to the way the shortstring helpers for i386 are written, they are
    still handled by the old code (reason: fpc_shortstr_compare returns
    results in the flags instead of in eax and fpc_shortstr_concat
    has wierd parameter conventions). The compilerproc stuff should work
    fine with the generic implementations though.
  * removed some nested comments warnings
2001-08-30 15:43:14 +00:00
Jonas Maebe
06f9cd4c96 * some fixes in compilerprocs for chararray to string conversions
* conversion from string to chararray is now also done via compilerprocs
2001-08-29 19:49:03 +00:00
Jonas Maebe
fc92c3b336 + compilerproc implementation of most string-related type conversions
- removed all code from the compiler which has been replaced by
    compilerproc implementations (using {$ifdef hascompilerproc} is not
    necessary in the compiler)
2001-08-28 13:24:46 +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
ca8d604964 * various widestring updates, it works now mostly without charset
mapping supported
2001-07-08 21:00:14 +00:00
florian
a4755024cc * some fixes for widestrings and variants 2001-05-31 22:42:56 +00:00
peter
64b57cd77d * add nop after popa (merged) 2001-04-21 12:18:09 +00:00
peter
73a59b9ca3 * merged popal fix 2001-04-16 11:22:53 +00:00
Jonas Maebe
547bc5f275 * optimized FPC_HELP_CONSTRUCTOR a bit 2001-04-08 13:19:28 +00:00
Jonas Maebe
ab2ea0a472 * moved implementations of strlen and strpas to separate include files
(they were duplicated in i386.inc and strings.inc/stringss.inc)
  * strpas supports 'nil' pchars again (returns an empty string)
    (both merged)
2001-03-05 17:10:04 +00:00
Jonas Maebe
18de59f50c * fixed all implementations of strpas 2001-03-04 17:31:34 +00:00
Jonas Maebe
af38291233 * simplified and optimized range checking code, FPC_BOUNDCHECK is no longer necessary 2001-03-03 12:41:22 +00:00
florian
5da658c6db * interfaces basically running 2000-11-12 23:23:34 +00:00
florian
f79644d9ca + AfterConstruction and BeforeDestruction implemented
+ TInterfacedObject implemented
2000-11-07 23:42:21 +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
Jonas Maebe
be0deb8185 - removed fpc_strconcat_len for -dnewoptimizations since it's not
used anymore (because the strconcat optimizations have been
    disabled quite a while ago)
2000-07-08 09:09:35 +00:00
marco
f5fd205ab5 * Changed move (var source;var dest) to move (const source;var dest) 2000-07-07 18:23:41 +00:00
pierre
bf20aa47d9 * fix ingnored assembler error in IndexDWord 2000-05-09 06:21:58 +00:00
Jonas Maebe
ff9782d70c + FPC_SHORTSTR_CONCAT_LEN (temporary, for -dnewoptimizations) 2000-04-23 09:26:51 +00:00
Jonas Maebe
ec08464c80 + added destroyed registers list for move procedure (it doesn't destroy
edx)
2000-04-10 09:47:15 +00:00
florian
33f3467ef0 * the bounds check error gets now a correct stack frame 2000-04-06 08:39:22 +00:00
peter
6b66a55cd6 * truncated log 2000-02-09 16:59:28 +00:00
Jonas Maebe
7fbe48e245 * fixed warning 2000-01-13 13:06:03 +00:00
marco
e8258f23c9 * Changed some direct asm params to real params 2000-01-11 21:11:04 +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
5f6f1fd669 * typo error if previous commit 1999-12-21 11:48:09 +00:00
pierre
ffc5263bfc + FPC_CHARARRAY_TO_SHORTSTRING added 1999-12-21 11:13:34 +00:00
Jonas Maebe
c14811e633 * faster abs() function (no jump anymore) 1999-12-11 18:59:44 +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
daniel
ec77ff77ee * Committed new random generator. 1999-11-09 20:14:12 +00:00
peter
71d7f4ef38 * memorymanager expanded with allocmem/reallocmem 1999-10-30 17:39:05 +00:00
pierre
e8f2eba064 * fix for FPC_HELP_FAIL_CLASS 1999-10-08 14:40:54 +00:00
pierre
7e716ff478 + code for fail for class 1999-10-05 20:50:06 +00:00
peter
88b7b037b2 + new heap manager supporting delphi freemem(pointer) 1999-09-17 17:14:11 +00:00
Jonas Maebe
d581decb97 * added dummy local var to boundcheck to force stackframe generation 1999-09-15 13:04:04 +00:00
pierre
7efee9b639 * changes for fail support 1999-08-19 12:50:08 +00:00
pierre
a0e69fbd00 + VMT reset to -1 if getmem called, neede for fail 1999-08-18 10:43:31 +00:00
peter
793b28882f * classes vmt changed to only positive addresses
* sharedlib creation is working
1999-08-09 22:19:46 +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
82c6138188 * removed temp defines 1999-07-06 10:53:52 +00:00
florian
b49d48c4e0 * int_new_class returned with zero flag=1, if at the entrance eax was zero
and newinstance wasn't called, fixed
1999-07-03 09:03:47 +00:00
pierre
13b4e5f347 * added $define FPC_SYSTEM_HAS_... for use with generic.inc 1999-05-31 22:03:37 +00:00
peter
03535bc427 * smaller sptr function 1999-05-31 12:49:19 +00:00
peter
62effc73d7 * nil check for strpas 1999-04-22 10:52:40 +00:00
florian
e3dc06bceb * the class helper routines doesn't store the registers properly,
fixed
1999-04-19 06:13:28 +00:00
peter
17f26f6577 * removed warnings 1999-04-08 11:30:57 +00:00
pierre
1bbbb8e6ca + no assembler if systemdebug defined 1999-04-07 16:21:10 +00:00
peter
af8a04a5af * use external names
* removed all direct assembler modes
1999-03-01 15:40:48 +00:00
pierre
8c54e5656a * VMT field zeroed at destructor forgot offset !! 1999-02-22 13:23:22 +00:00
pierre
2d311def72 + code for FPC_TESTOBJEXT conditionnal 1999-02-05 12:26:25 +00:00
florian
769b8d8711 * class destructor helper routine for the new calling copnventions fixed 1999-02-02 11:04:27 +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
pierre
86f0e64b17 * vmt address pushed for CHECK_OBJECT was not removed from stack 1998-11-30 15:27:28 +00:00
peter
842c6be313 * NOATTCDQ define 1998-11-28 14:09:48 +00:00
Jonas Maebe
fc52d94323 * changed cdq to cltd in AT&T assembler block 1998-11-26 23:14:52 +00:00
peter
d2ba96eeac + FPC_BOUNDCHECK 1998-11-26 21:33:58 +00:00
peter
7aeb09d89d * renamed string functions 1998-11-17 00:41:08 +00:00
pierre
5c9acf66ad * removed old code forgotten about vmtoffset 1998-10-19 08:49:16 +00:00
pierre
850e611770 * added code for vmt_offset in destructors 1998-10-16 13:37:45 +00:00
peter
852db81fd0 * fill_object in constructor changed to 'inline' code to overcome
pushw/pushl problem
1998-10-16 08:53:50 +00:00
pierre
2312760103 + first step of variable vmt offset
offset is stored in R_EDI (R_D0)
   if objectvmtoffset is defined
1998-10-15 11:35:02 +00:00
peter
8b2c09d032 * added some more $ifdef FPCNAMES 1998-09-28 11:02:34 +00:00
florian
c27d0bd2e0 * FPC_NEW_CLASS optimized: addl $0,%eax => orl %eax,%eax 1998-09-28 10:23:43 +00:00
michael
afa6b37391 + Bugreport from Gertjan Schouten 1998-09-28 08:40:47 +00:00
peter
03ba16b03f + fpc_pchar_to_str alias for strpas 1998-09-22 15:32:00 +00:00
peter
4620a73a9b * FPC_ names
* Heap manager is now system independent
1998-09-14 10:48:00 +00:00
pierre
e283510c19 merge for fixes branch 1998-09-11 17:38:48 +00:00
peter
b8ff0c3320 + internconst 1998-09-01 17:36:17 +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
carl
fbe85528a9 * Put back DoError, DO NOT TOUCH! 1998-07-02 12:55:04 +00:00
carl
91a581342c + IO-Error and Overflow now print address in hex 1998-07-02 12:19:32 +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
12f6e38140 * force to use ATT or direct parsing 1998-05-31 14:15:47 +00:00
peter
a9e0837f1e * force att reading 1998-05-30 14:30:21 +00:00
peter
53be2cf842 * remake3 works again on tflily 1998-05-25 10:40:48 +00:00
peter
d26106d745 * fixed the optimizes of daniel 1998-05-22 12:34:06 +00:00
peter
70f8a1ac12 * .FILL_OBJECT and FILL_OBJECT are not the same names ;) 1998-05-20 11:01:52 +00:00
daniel
3ffd393399 * Some extra use of ;assembler;. 1998-05-20 08:09:24 +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
f11a6ba390 * some cleanup and i386_att usage 1998-04-29 13:28:19 +00:00
florian
0e34e8a6ce + some small comments added 1998-04-10 15:41:54 +00:00
michael
c297ae8bfa - Removed so-called better random function 1998-04-10 15:25:23 +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
root
d1a1f501c8 Initial revision 1998-03-25 11:18:12 +00:00