Commit Graph

143 Commits

Author SHA1 Message Date
florian
569c4871fc + first batch of varset support, as long as packset isn't changed, it doesn't change anything
git-svn-id: trunk@4710 -
2006-09-24 14:40:11 +00:00
Jonas Maebe
08612ed157 * declare fpc_sqr_real as inline instead of fpc_sqrt_real
git-svn-id: trunk@4642 -
2006-09-17 21:55:14 +00:00
chrivers
7ec741fa05 Added fpc_intf_assign_by_iid compilerproc. Needed for _IMPLEMENTS
git-svn-id: trunk@4360 -
2006-08-06 00:58:17 +00:00
florian
849878b472 * fixed memory leak with the as operator, fixes #7174
git-svn-id: trunk@4355 -
2006-08-05 21:53:38 +00:00
Jonas Maebe
316c4d6313 * fixed web bug tw4954 (warning when reading from a typed file)
+ test for the above (submitted test program minus childish remarks)

git-svn-id: trunk@3733 -
2006-05-29 09:54:42 +00:00
florian
570c1bc3a5 * widestrings aren't ref. counted anymore on windows
git-svn-id: trunk@3466 -
2006-05-09 20:54:26 +00:00
peter
a77f503a30 * optimize multiple concats for ansi/widestring
git-svn-id: trunk@2650 -
2006-02-20 10:58:28 +00:00
Jonas Maebe
0e2a5dde24 * the pointer parameter of fpc_Read_Text_PChar_As_Pointer is not an
out parameter, but a const (the pointer is const and must be
    valid already)

git-svn-id: trunk@2486 -
2006-02-08 20:32:32 +00:00
Jonas Maebe
58381ff7b6 * made chararray handling 98% TP-compatible, fixes web bugs 3012
and 4080. The compatibility differences are:
      a) writing a chararray which is zero-based but not zero-
         terminated does not cause a buffer overflow
      b) non-zero-based chararrays can also be read

    The difference was that previously, all chararrays were treated
    as pchars. In TP/Delphi (and now also in FPC), this is only done
    for zero-based chararrays. For non-zero-based ones, the entire
    contents of the array should always be used (including #0's).

    The default parameters in the system unit for the chararray
    helpers are to avoid having to use a define for bootstrapping.

git-svn-id: trunk@2152 -
2006-01-04 10:05:10 +00:00
Jonas Maebe
9a08cdccf0 * several changes of var parameters into out parameters to avoid
useless warnings: code parameter of val(), destination of str(),
    destinations of ansi2wide and wide2ansi

git-svn-id: trunk@2041 -
2005-12-23 22:25:26 +00:00
florian
398cafb1a0 * fixed cases
git-svn-id: trunk@1969 -
2005-12-15 22:55:43 +00:00
florian
e2a4dac215 + i386 assembler versions of decr_ansistring and unique_ansistring
git-svn-id: trunk@1963 -
2005-12-15 19:51:57 +00:00
peter
198aa2e72a * change value to const string to remvoe implicit exception stack:
git-svn-id: trunk@1949 -
2005-12-14 17:23:32 +00:00
michael
198b2104be + Removed HASFUNCTIONCOPYDYNARR define
git-svn-id: trunk@313 -
2005-06-09 18:06:35 +00:00
michael
06ab2d2ee6 + Removed STR_USES_VALINT define
git-svn-id: trunk@305 -
2005-06-09 17:53:01 +00:00
michael
a775d3d487 + Removed HASCURRENCY VALUEGETMEM VALUEFREEMEM defines
git-svn-id: trunk@293 -
2005-06-09 17:33:22 +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
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
florian
f8c314a7b7 * changed fpc_read_text to use out instead of var
git-svn-id: trunk@73 -
2005-05-22 18:17:15 +00:00
fpc
790a4fe2d3 * log and id tags removed
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
peter
b68af1b0e3 * post 2.0.0 fixes from cvs
git-svn-id: trunk@7 -
2005-05-16 20:59:02 +00:00
fpc
50778076c3 initial import
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
olle
559ee781b3 - Removed outcommented function 2005-05-14 11:53:31 +00:00
florian
372711eea4 + a lot of vararray stuff 2005-03-28 13:38:05 +00:00
florian
eeaded577a * fixed copy(dyn. array,...); 2005-03-05 16:37:28 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
florian
13c5439bb1 + basic rtl support for variant <-> interface implemented 2005-01-07 21:15:46 +00:00
florian
48c248d6c0 * widecharray patch from Peter 2005-01-06 13:39:59 +00:00
florian
7fb9bd0f57 * implemented helper for variant<->dyn. array type cast 2004-12-05 11:49:06 +00:00
Jonas Maebe
b6a6e78db1 * fixed remaining compilation problems 2004-11-21 16:14:59 +00:00
peter
4d8460ec2f * float routines all use internproc and compilerproc helpers 2004-11-21 15:35:23 +00:00
peter
95e0ed26f8 * use helper call to retrieve address of input/output to reduce
code that is generated in the main program for loading the
    threadvar
2004-11-09 23:10:22 +00:00
mazen
b65cffcdef * widestring conversion routines takes a widechar so no
information is lost
2004-09-29 14:55:49 +00:00
peter
962ef697d5 * remove comment warnings 2004-05-31 14:31:57 +00:00
peter
81b6d9f16c * replace strlenint with sizeint 2004-05-01 23:55:18 +00:00
peter
b5df63e617 * ValSInt fixed for 64 bit 2004-05-01 20:52:50 +00:00
peter
53ec165e68 * x86-64 fixes 2004-04-29 19:50:13 +00:00
peter
cafed35e77 * str() helpers now also use valint/valuint
* int64/qword helpers disabled for cpu64
2004-04-29 18:59:43 +00:00
florian
2e3fb337ff * fixed getmem prototype for 64 bit systems 2004-04-12 18:51:02 +00:00
Jonas Maebe
c2efd86268 + integer division-by-zero detection support for ppc
+ compilerproc FPC_DIVBYZERO
2004-01-01 17:58:16 +00:00
florian
78a00b657b * fixed copy(<dynarray>, ...) 2003-10-25 22:52:07 +00:00
florian
e346ebacb6 * write helper comproc for variants fixed 2003-10-04 23:40:42 +00:00
florian
8585d3d0b8 * ifdef'd some helpers 2003-09-02 13:04:08 +00:00
peter
10f0e5cb6e * pcomp added for sparc 2003-09-01 20:47:23 +00:00
olle
f062855e7f - removed parameter from fpc_iocheck 2003-08-21 22:07:43 +00:00
Jonas Maebe
4be7651aa2 * fixed conversion of fpc_*str_unique to compilerproc 2003-06-17 19:24:08 +00:00
Jonas Maebe
394b70f94d * fpc_{ansistr|widestr}_unique is now a function so it can be used as
compilerproc
2003-06-17 16:38:53 +00:00
peter
60407e302b * fpc_shortstr_concat is now the same for all targets
* fpc_shortstr_append_shortstr added for optimized code generation
2003-05-26 19:36:46 +00:00
florian
35bb4d682f * fixed generic shortstr_compare 2003-05-16 22:40:11 +00:00
peter
163e06f93b * fpc_help_fail compilerproc
* fpc_new_class, fpc_dispose_class not needed by latest compiler
2003-05-13 19:18:08 +00:00
peter
c2c11ba6a6 * constructor helper added 2003-05-11 21:39:14 +00:00
peter
511571c60d * fpc_big_array changed to 1k only. using maxlongint will crash gdb 2003-04-25 21:15:20 +00:00
peter
a7691d8bb8 * fpc_round added, needed for int64 currency 2003-04-23 21:28:21 +00:00
peter
f0d85ac788 * class helpers compilerprocs are not needed yet, changed
ifndef i386 to ifdef dummy
2003-04-02 14:07:30 +00:00
peter
1e86b585f9 * changed address parameter/return values to pointer instead
of longint
2003-03-17 14:30:11 +00:00
florian
62db93e704 * uncommented the variant<->dyn. array stuff 2003-01-11 00:17:29 +00:00
florian
6432af8a76 * fixed helper declarations 2003-01-09 20:14:20 +00:00
mazen
a5e2afbbb3 * functions headers modified in generic.inc to make it possible compiling sparc
RTL based on generic code
2003-01-06 23:04:21 +00:00
michael
90a344edb2 + PAtch from peter fixing daily build 2003-01-06 08:25:47 +00:00
mazen
215880afe8 * fixing several bugs compiling the RTL 2003-01-05 21:32:35 +00:00
peter
d0776e3492 * implemented some more conversions 2002-12-29 16:59:17 +00:00
peter
2b6e06bd4a * fixed dynarray copy 2002-11-26 23:02:07 +00:00
florian
72ab5b62bb + ansistring_append* implemented 2002-10-17 12:43:00 +00:00
florian
6459b97052 + write(ln) support for variants added 2002-10-10 19:24:28 +00:00
florian
c6ea429567 + several widestring/pwidechar related helpers added 2002-10-10 16:08:50 +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
ab9e07a2d7 * fix 2GB limit problem 2002-09-27 21:10:40 +00:00
carl
7ebda0a778 * cardinal -> longword
- remove some unused routines
2002-09-07 21:10:47 +00:00
peter
01dfac4a4e * old logs removed and tabs fixed 2002-09-07 15:06:34 +00:00
peter
a17291b2d4 * array of char support for Str() 2002-09-02 19:24:41 +00:00
Jonas Maebe
58fc64dc09 * interface "as" helpers converted from procedures to functions 2002-08-20 18:24:05 +00:00
Jonas Maebe
a28ee81ed6 * fixed conversion from int64/qword to double errors 2002-07-31 16:58:12 +00:00
florian
7ac5c3743d * several fixes for linux/powerpc
* several fixes to MT
2002-07-28 20:43:47 +00:00
peter
0cdf327866 * updated compilerprocs
* incr ref count has now a value argument instead of var
2002-04-25 20:14:56 +00:00
peter
b0948c6122 * fpc_finalize_array renamed 2002-04-24 16:15:35 +00:00
peter
90ff7a6db8 * fpc_freemem and fpc_getmem compilerproc 2002-04-21 18:56:59 +00:00
peter
1338dbd992 * updated for dynarr:=nil 2002-01-21 20:16:08 +00:00
peter
7484da248d * freemem(var) -> freemem(value) 2001-12-03 21:39:19 +00:00
Jonas Maebe
fc6d300a95 * almost all second pass typeconvnode helpers are now processor independent
* fixed converting boolean to int64/qword
  * fixed register allocation bugs which could cause internalerror 10
  * isnode and asnode are completely processor indepent now as well
  * fpc_do_as now returns its class argument (necessary to be able to use it
    properly with compilerproc)
2001-09-29 21:32:46 +00:00
Jonas Maebe
a39cd8a580 * made multiplying, dividing and mod'ing of int64 and qword processor
independent with compilerprocs (+ small optimizations by using shift/and
    where possible)
2001-09-05 15:22:09 +00:00
Jonas Maebe
ed449defca + searchsystype() and searchsystype() functions in symtable
* changed ninl and nadd to use these functions
  * i386 set comparison functions now return their results in al instead
    of in the flags so that they can be sued as compilerprocs
  - removed all processor specific code from n386add.pas that has to do
    with set handling, it's now all done in nadd.pas
  * fixed fpc_set_contains_sets in genset.inc
  * fpc_set_in_byte is now coded inline in n386set.pas and doesn't use a
    helper anymore
  * some small fixes in compproc.inc/set.inc regarding the declaration of
    internal helper types (fpc_small_set and fpc_normal_set)
2001-09-04 11:38:54 +00:00
Jonas Maebe
f256a47f04 * compilerproc implementation of set addition/substraction/...
* changed the declaration of some set helpers somewhat to accomodate the
    above change
  * i386 still uses the old code for comparisons of sets, because its
    helpers return the results in the flags
  * dummy tc_normal_2_small_set type conversion because I need the original
    resulttype of the set add nodes
  NOTE: you have to start a cycle with 1.0.5!
2001-09-03 13:27:41 +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
a6cfe4083a + tempcreate/ref/delete nodes (allows the use of temps in the
resulttype and first pass)
  * made handling of read(ln)/write(ln) processor independent
  * moved processor independent handling for str and reset/rewrite-typed
    from firstpass to resulttype pass
  * changed names of helpers in text.inc to be generic for use as
    compilerprocs + added "iocheck" directive for most of them
  * reading of ordinals is done by procedures instead of functions
    because otherwise FPC_IOCHECK overwrote the result before it could
    be stored elsewhere (range checking still works)
  * compilerprocs can now be used in the system unit before they are
    implemented
  * added note to errore.msg that booleans can't be read using read/readln
2001-08-23 14:28:35 +00:00
Jonas Maebe
4716f168dd * renamed some str(x,y) and val(x,y) helpers so the naming scheme is the
same for all string types
  + added the str(x,y) and val(x,y,z) helpers for int64/qword to
    compproc.inc
2001-08-13 12:40:16 +00:00
Jonas Maebe
cba82c202e * changed buf parameter of fpc_type_write from var to const
+ added names of helpers in typefile.inc to compproc.inc
2001-08-06 14:13:55 +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