Commit Graph

4776 Commits

Author SHA1 Message Date
carl
1e006a805c + first version (uncompilable!) 2002-12-07 19:51:35 +00:00
carl
081a4aab35 * 3% memory optimization
* changed some types
  + added type checking with different size for call node and for
     parameters
2002-12-07 14:27:07 +00:00
carl
7fdc498fbe + add some explicit typecasts to remove some warnings 2002-12-07 14:15:33 +00:00
carl
0c89979a9b * bugfix on invalid typecast 2002-12-07 14:14:19 +00:00
carl
113608e577 - removed unused variable 2002-12-07 14:12:56 +00:00
carl
d47a5f9aea * fix warnings by adding explicit typecasts 2002-12-07 14:10:21 +00:00
carl
f154b31ef8 * fix warning 2002-12-07 14:08:11 +00:00
carl
857e2918ad * stricter version / revision checking (also remove some warnings) 2002-12-07 14:06:20 +00:00
carl
4d9e00f251 * convert some vars from longint -> byte 2002-12-07 14:04:59 +00:00
carl
d23ef9fb9a - remove some duplicates and unused vars 2002-12-07 14:03:25 +00:00
carl
effb0aae89 - remove compilation warnings 2002-12-07 14:02:18 +00:00
peter
76f0990e8b * m68k library support 2002-12-06 17:51:43 +00:00
peter
dc66eafb0b * merged cdecl and array fixes 2002-12-06 17:51:09 +00:00
peter
5fffe4335e * long symbol name fix merged 2002-12-06 17:50:39 +00:00
peter
8a5d95d911 * symbol count fix merged 2002-12-06 17:50:21 +00:00
peter
2183d2edde * amiga fixes merged 2002-12-06 17:50:00 +00:00
peter
419a0592ab * prefer string-shortstring over other string-string conversions 2002-12-06 17:49:44 +00:00
peter
cab4c8879f * only compile cs_fp_emulation support when cpufpuemu is defined
* define cpufpuemu for m68k only
2002-12-06 16:56:57 +00:00
mazen
773c99e9ba * local source installation independent script 2002-12-06 16:11:24 +00:00
mazen
e0451e6641 + command line to compile test programs 2002-12-06 08:32:41 +00:00
carl
6227991d96 - remove lower in hint 2002-12-05 19:27:40 +00:00
carl
e992fd20ab * remove a stupid thing that i commited 2002-12-05 19:27:00 +00:00
florian
3058a57591 + oo_dispinterface added 2002-12-05 14:44:38 +00:00
florian
fbbaf36800 * added missing then, Carl did you really a make fullcycle :) ? 2002-12-05 14:39:21 +00:00
florian
121ca40b39 * some variant <-> dyn. array stuff 2002-12-05 14:27:25 +00:00
florian
1b2a455ced * two comments fixed 2002-12-05 14:18:09 +00:00
carl
fa27bba8c2 + use FPC_CHECKPOINTER once again 2002-12-03 22:14:12 +00:00
carl
6e46f3424c * bugfix of problems with profile code which clobbers some registers 2002-12-03 22:13:39 +00:00
carl
d9c9277d32 * fix some errors 2002-12-02 19:38:06 +00:00
carl
0516c74e5b * fix stupid mistake in my last commit 2002-12-02 19:37:10 +00:00
carl
6413a958a5 * rename an error message 2002-12-01 22:12:36 +00:00
carl
051cd78965 * some small cleanup (remove some specific operators which are not supported) 2002-12-01 22:08:34 +00:00
carl
eeea5fdae0 * warning of portabilitiy problems with parasize / localsize
+ some added documentation
2002-12-01 22:07:41 +00:00
carl
2f89d59534 * warning of portabilitiy problems with parasize / localsize 2002-12-01 22:06:59 +00:00
carl
38f35b25cc * cleanup of error messages 2002-12-01 22:06:14 +00:00
carl
df0cf8a44c * no more warnings for structures over 32K since this is
handled correctly in this version of the compiler.
2002-12-01 22:05:27 +00:00
carl
953223dd74 - remove unused messages
* final cleanup stage finished
  + more portability warnings
2002-12-01 22:03:30 +00:00
carl
9b4b57ce01 * fix bugs with istemp() was wrong, and every reference was a temp 2002-12-01 18:58:26 +00:00
carl
5c35de2252 * disable overflow checking in some parts to avoid problems 2002-12-01 18:57:34 +00:00
carl
abb3152190 * fix compilation problems 2002-12-01 16:19:16 +00:00
Tomas Hajny
0482b366dc * fix for not linked import libraries for units with no code 2002-12-01 13:20:33 +00:00
carl
62e2cd1c67 * merges from Pierre's fixes in m68k fixes branch 2002-11-30 23:33:02 +00:00
carl
4b4df45eab * messafe file finihsed updating (still left to remove unused messages) 2002-11-30 23:17:48 +00:00
carl
5b05c7d2c3 - removed unused message 2002-11-30 23:16:39 +00:00
carl
0fa2b27920 * updating of message files finihsed
(left to remove unused messages)
2002-11-30 23:15:56 +00:00
carl
dc22ce1415 - removed cs_fp_emulation checking for m68k, its now controled
by a global switch
  + added powerpc/sparc/vis message options support
2002-11-30 23:14:55 +00:00
carl
6f5c977415 - cs_fp_emulation is no longer automatic for m68k target 2002-11-30 23:13:48 +00:00
carl
edb20100ac + Add loading of softfpu in emulation mode
+ Correct routine call for softfpu
  * Extended type must also be defined even with softfpu
2002-11-30 21:32:24 +00:00
carl
f8d831d6ce + -Ce for softfpu 2002-11-30 21:29:56 +00:00
mazen
3c658bda85 + ncpuinln node 2002-11-30 20:03:29 +00:00
carl
65113dcece + profiling support for Win32 2002-11-30 18:44:57 +00:00
carl
c79bdd9179 * try to fix profiling for win32 2002-11-30 14:39:15 +00:00
carl
93d011d184 + checking for symbols used with hint directives is done mostly in pexpr
only now
2002-11-30 11:12:48 +00:00
carl
a62998ff03 * fix bug n last commit (this bug was only detected gby 1.0.x, fixed) 2002-11-30 11:08:46 +00:00
carl
87e69126fb * fix bug with checking of duplicated items in sets (new sets bug only) 2002-11-30 10:45:14 +00:00
pierre
a47e4fb345 * remove double in delphimodeswitches to allow compilation with -Cr option 2002-11-30 00:34:20 +00:00
carl
5c5db0e0a3 + unimplemented hint directive added
* hint directive parsing implemented
  * warning on these directives
2002-11-29 22:31:19 +00:00
carl
5abec3d375 * warning / hint for possible loss of data in assignment 2002-11-29 20:02:42 +00:00
carl
e047d2063d * warning / hint for possible loss of data in assignment 2002-11-29 19:54:22 +00:00
florian
593e30b839 * push_value_para didn't release floatdef locations, fixes tw2045 2002-11-28 23:28:14 +00:00
florian
e8bb7d10c3 * loop node flags from node flags splitted 2002-11-28 11:17:01 +00:00
olle
b924813d4a * changed proc ref from .xxx[PR] (refering to its section)
to .xxx (refering to its label) to allow for multiple ref to a proc.
2002-11-28 10:56:07 +00:00
olle
5e90be8184 * macos: changing code gen for references to globals 2002-11-28 10:55:16 +00:00
peter
18fd47a47a * rewrote isbinaryoverloadable to use a case. it's now much easier
to understand what is happening
2002-11-27 22:11:59 +00:00
peter
1b116848d8 * cdecl array of const fixes 2002-11-27 20:04:38 +00:00
peter
3d696d9c7c * tvarsym.get_push_size replaced by paramanager.push_size 2002-11-27 20:04:09 +00:00
carl
4532dbd680 * updated notes and hints 2002-11-27 19:43:21 +00:00
carl
77cc6dff3e + added documentation for assembler readers (unfinished)
* several spelling mistakes fixed
  * changed some types of messages
2002-11-27 19:19:42 +00:00
peter
67153fd9a1 * the never ending story of tp procvar hacks 2002-11-27 15:33:46 +00:00
peter
c3d39472cd * fixed relabeling to relabel only tasmlabel (formerly proclocal) 2002-11-27 15:33:19 +00:00
peter
acb449fb1f * more currency fixes, taddcurr runs now successfull 2002-11-27 13:11:38 +00:00
peter
8351bb059b * when converting from and to currency divide or multiple the
result by 10000
2002-11-27 11:29:21 +00:00
peter
184ddcb6ed * when both flaottypes are the same then handle the addnode using
that floattype instead of bestrealtype
2002-11-27 11:28:40 +00:00
peter
34e8266af4 * case statement inlining added
* fixed inlining of write()
  * switched statementnode left and right parts so the statements are
    processed in the correct order when getcopy is used. This is
    required for tempnodes
2002-11-27 02:37:12 +00:00
peter
0da515f669 * fixed typo in method comparing 2002-11-27 02:35:28 +00:00
peter
26fcfc6b6f * only find real equal procvars 2002-11-27 02:34:20 +00:00
peter
8c82be898d * copy_value_on_stack method added for cdecl record passing 2002-11-27 02:33:19 +00:00
peter
1c2eecfb9d * fix cp_procvar compare 2002-11-27 02:32:14 +00:00
peter
1ba12c259e * fixed inlinetree parsing in det_resulttype 2002-11-27 02:31:17 +00:00
peter
5c9b8361a4 * fix Copy(array,x,y) 2002-11-26 22:59:09 +00:00
peter
2e692659df * fix for tw2178. When a ^ or . follows a procsym then the procsym
needs to be called
2002-11-26 22:58:24 +00:00
peter
6c097b4546 * fix macro nesting check 2002-11-26 22:56:40 +00:00
carl
fdbae45a2c + hint for in operator with non byte sized operand 2002-11-26 21:52:37 +00:00
carl
b844e3e32b * several mistakes fixed in message files 2002-11-25 21:05:51 +00:00
mazen
eca8ef3436 * fixed support of nSparcInline 2002-11-25 19:21:49 +00:00
carl
6a52e7a9e5 - removed the invalid if <> checking (Delphi is strange on this)
+ implemented abstract warning on instance creation of class with
    abstract methods.
 * some error message cleanups
2002-11-25 18:43:31 +00:00
peter
f3fc72095f * splitted defbase in defutil,symutil,defcmp
* merged isconvertable and is_equal into compare_defs(_ext)
  * made operator search faster by walking the list only once
2002-11-25 17:43:16 +00:00
carl
3113922e0b + tos also has short filenames 2002-11-24 18:19:56 +00:00
carl
8b9e720ae9 + checkpointer for interfaces also 2002-11-24 18:19:20 +00:00
carl
53d90a34ab - remove some unused defines 2002-11-24 18:18:04 +00:00
carl
8b721383d9 * fix compilation problems after my changes to tcontsym 2002-11-24 18:17:29 +00:00
peter
3dad4cd3c4 * regenarated 2002-11-24 16:31:10 +00:00
Jonas Maebe
85c3f6195a + some comments describing the fields of treference 2002-11-24 14:28:56 +00:00
carl
60d17dbc01 * some small speed optimizations
+ added several new warnings/hints
2002-11-23 22:50:04 +00:00
carl
05d86bbef8 * memory optimization with tconstsym (1.5%) 2002-11-22 22:48:10 +00:00
carl
e15d019b58 + small optimization for speed 2002-11-22 22:45:49 +00:00
Jonas Maebe
bd484276cd * fixed error in my previous commit (the size of the location of the
funcretnode must be based on the current resulttype of the node and not
    the resulttype defined by the function; these can be different in case
    of "absolute" declarations)
2002-11-22 16:22:45 +00:00
pierre
01af531efb * commented check code tht was invalid in 1.1 2002-11-20 22:49:55 +00:00
pierre
3ee1aba341 * fix compilation failure for IDE 2002-11-20 22:48:42 +00:00
mazen
301bf08921 * $UNITPATH directive is now working 2002-11-20 12:36:23 +00:00
mazen
1d381958d4 + module path is now passed to AddPath to fix relative unit path 2002-11-20 11:12:46 +00:00
mazen
11b3fa6d81 + TSearchPathList.AddPath supports a local path in addition to file name 2002-11-20 10:11:46 +00:00
pierre
65c85744da * correct a stabs generation problem that lead to use errordef in stabs 2002-11-19 16:26:33 +00:00
pierre
60ef11ac16 * correct several stabs generation problems 2002-11-19 16:21:29 +00:00
pierre
3390a23c26 * fix compilation failure 2002-11-19 12:08:24 +00:00
peter
bc7a7ddb20 * fix crash with EXTDEBUG code 2002-11-18 18:34:41 +00:00
peter
ef708fdab9 * Swap(QWord) constant support 2002-11-18 18:33:51 +00:00
peter
aee4b7195a * fix tw2209 (merged) 2002-11-18 17:48:21 +00:00
peter
a496dbe1ff * pass proccalloption to ret_in_xxx and push_xxx functions 2002-11-18 17:31:54 +00:00
peter
10131c9ffa * sparc added 2002-11-18 17:29:31 +00:00
mazen
a835405a27 * fixed a compilation bug accmulator-->accumulator, in definition of return_result_reg 2002-11-17 18:26:15 +00:00
mazen
41153e2b1a + return_result_reg and function_result_reg are now used, in all plateforms, to pass functions result between called function and its caller. See the explanation of each one 2002-11-17 17:49:08 +00:00
carl
64655be168 * memory optimization (3-4%) : cleanup of tai fields,
cleanup of tdef and tsym fields.
  * make it work for m68k
2002-11-17 16:31:55 +00:00
carl
170f43315d * document flags2reg 2002-11-17 16:27:31 +00:00
florian
192199b9cc * made target_cpu_name lowercase 2002-11-16 20:07:57 +00:00
carl
766e56fffc * avoid Range check errors 2002-11-16 19:53:18 +00:00
carl
4595fb4663 - remove my last stupid commit (Thanks, Peter!) 2002-11-16 18:40:38 +00:00
peter
ca3e231da3 * fix merged proc-procvar check 2002-11-16 18:00:53 +00:00
peter
7dfdac71c0 * only push small arrays on the stack for win32 2002-11-16 18:00:04 +00:00
peter
2facc2b2f7 * load threadvar input/output variable in temp 2002-11-16 17:59:31 +00:00
peter
98ee9c11cc * return error 210 for failed self test 2002-11-16 17:06:28 +00:00
florian
ee5a01e81a * generic location for float results 2002-11-16 15:34:30 +00:00
florian
41b608f1bb * fixed Cish syntax 2002-11-16 15:29:16 +00:00
carl
cd256ebfb4 - browser information is off by default 2002-11-16 14:49:12 +00:00
carl
5ad42ea159 * don't add debug information in not in debug mode 2002-11-16 14:46:50 +00:00
peter
a073dadb63 * fix infinite loop in pd_inline 2002-11-16 14:20:50 +00:00
peter
5b2dd3bf97 * fix tbs0417 2002-11-16 14:20:22 +00:00
Jonas Maebe
bb9d5e4dcf * proper fix for tw2110, also fixes tb0416 (funcretnode of parent
function was handled wrong inside nested functions/procedures)
2002-11-15 21:16:39 +00:00
peter
edbd98176b * made tasmsymbol.refs private (merged) 2002-11-15 16:29:30 +00:00
peter
fa18e5160a * fixed rtti for int64 (merged) 2002-11-15 16:29:09 +00:00
peter
656a4c2147 * new unit 2002-11-15 12:23:49 +00:00
peter
bfd72ad5d5 * merged changes from 1.0.7 up to 04-11
- -V option for generating bug report tracing
    - more tracing for option parsing
    - errors for cdecl and high()
    - win32 import stabs
    - win32 records<=8 are returned in eax:edx (turned off by default)
    - heaptrc update
    - more info for temp management in .s file with EXTDEBUG
2002-11-15 01:58:45 +00:00
peter
b716b77913 * merged verbosity check 2002-11-15 01:13:42 +00:00
mazen
37247e8cde * fixing return value variable address 2002-11-14 21:42:08 +00:00
mazen
f97aa452bd * SPARC calling mechanism almost OK (as in GCC./mppcsparc ) 2002-11-10 19:07:45 +00:00
mazen
3a78921639 * A_RET --> A_RETT (RET from Trap) 2002-11-10 17:49:14 +00:00
carl
7c0f175681 * flags2reg() was not extending the byte register to the correct result size 2002-11-09 21:18:31 +00:00
carl
ed213ff331 - remove superfluous data in classname 2002-11-09 16:19:43 +00:00
carl
3e7b597352 + update for compilation 2002-11-09 16:10:35 +00:00
carl
6af65a5928 + update makefile for fullcycle and NOOPT 2002-11-09 16:09:54 +00:00
carl
bd7af8b12f + resource string tables are now aligned 2002-11-09 15:39:03 +00:00
carl
fd24f60a1c + added var_align/const_align routines 2002-11-09 15:38:39 +00:00
carl
c3bfb968a4 + NOOPT removed the optinfo field 2002-11-09 15:38:03 +00:00
carl
c328dff091 - removed no longer used defines 2002-11-09 15:37:21 +00:00
carl
c0db65da11 * align all constants correctly (default of 4 size for real type constants) 2002-11-09 15:36:50 +00:00
carl
8ef2c267c4 * major alignment updates for objects/class tables 2002-11-09 15:35:35 +00:00
carl
391b49d410 * major alignment updates 2002-11-09 15:33:26 +00:00
carl
6d8024afc4 * noopt for non-i386 targets 2002-11-09 15:32:30 +00:00
carl
9a151c3d65 + align ansi/wide string constants 2002-11-09 15:31:57 +00:00
carl
53aa63ead1 + align RTTI tables 2002-11-09 15:30:07 +00:00
carl
8e942d82bb + bss / constant alignment fixes
* avoid incrementing address/datasize in local symtable for const's
2002-11-09 15:29:28 +00:00
Jonas Maebe
fb5b623e30 * fixed bctr(l) problems 2002-11-07 15:50:23 +00:00
mazen
da271ad1ba *** empty log message *** 2002-11-06 15:34:00 +00:00
mazen
928e3c583b * op_reg_reg_reg don't need any more a TOpSize parameter 2002-11-06 11:31:24 +00:00
mazen
1097619459 *** empty log message *** 2002-11-05 16:15:00 +00:00
olle
c5ac9e90af * globals are located in TOC and relative r2, instead of absolute
* symbols which only differs in case are treated as a single symbol
  + tai_const_symbol supported
  * only refs_full accepted
2002-11-04 18:24:53 +00:00
olle
9284b36d3b * macos: globals are located in TOC and relative r2, instead of absolute 2002-11-04 18:24:19 +00:00
mazen
f170b21371 * parameter handling updated 2002-11-03 20:22:40 +00:00
pierre
f723f73f77 * correct last wrong fix for tw2158 2002-10-31 13:28:32 +00:00
peter
28488f4331 * do not include catch unit when compiling with NOCATCH 2002-10-30 21:45:02 +00:00
peter
477bc04c6a * always include lineno after fileswitch. valgrind requires this 2002-10-30 21:01:14 +00:00
pierre
1bd92de936 * merge of fix for tw2158 bug 2002-10-30 17:10:00 +00:00
pierre
fc1d5c0a98 * fix crash report as webbug 2174 2002-10-29 10:01:22 +00:00
olle
b71c1492a9 * macos entry/exit: only used registers are saved
- macos entry/exit: stackptr not saved in r31 anymore
  * macos entry/exit: misc fixes
2002-10-28 22:24:28 +00:00
mazen
1e23f14e4f * TOpSize values changed S_L --> S_SW 2002-10-28 20:59:17 +00:00
mazen
379fb9a4ff * TOpSize values changed S_L --> S_SW 2002-10-28 20:37:44 +00:00
mazen
510ad4c33b * bug of references name missing last character fixed 2002-10-25 19:37:53 +00:00
peter
5805755619 * fix -n that was broken in the previous commit 2002-10-23 17:07:40 +00:00
peter
3f3b1f8912 * first search for fpc.cfg instead of deprecated ppc386.cfg
* parse commandline options first before searching configfile so -vt
    can be used to display the searched files
2002-10-23 16:57:16 +00:00
olle
e2f2f22f91 * branch b does not jump to dotted symbol now 2002-10-23 15:31:01 +00:00
mazen
351c11d2a8 - cga.pas redueced to an empty unit 2002-10-22 13:43:01 +00:00
Jonas Maebe
f18626a534 * some range errors fixed 2002-10-21 18:08:05 +00:00
mazen
220be9c38f + op_raddr_reg and op_caddr_reg added to fix functions prologue 2002-10-20 19:01:38 +00:00
olle
e4cabcd385 * changed newline char, asm file ending and case sensitivity 2002-10-20 17:54:32 +00:00
peter
41f6e26675 * removed df_unique flag. It breaks code. For a good type=type <id>
a def copy is required
2002-10-20 15:34:16 +00:00
peter
b9665f560b * having overloads is the same as overload directive for hiding of
parent methods. This is required becuase it can be possible that a
    method will then hide a method in the parent that an overloaded
    method requires. See webbug tw2185
2002-10-20 15:33:36 +00:00
peter
3a419bde8a * set funcret state for exit(0) 2002-10-20 15:31:49 +00:00
peter
21933875b5 * store original source time in ppu so it can be compared instead of
comparing with the ppu time
2002-10-20 14:49:31 +00:00
Jonas Maebe
c5ba7e8d6d * re-enabled optimized version of comparisons with the empty string that
I accidentally disabled in revision 1.26
2002-10-20 13:11:27 +00:00
olle
650843907e * import directive changed 2002-10-19 23:52:40 +00:00
olle
4d3ed1a22c * macos stack frame size computing updated
+ macos epilogue: control register now restored
  * macos prologue and epilogue: fp reg now saved and restored
2002-10-19 23:51:48 +00:00
mazen
c8b64f79dc * carl's patch applied 2002-10-19 20:35:07 +00:00
peter
d27f79ae28 + tobjectdef.members_need_inittable that is used to generate only the
inittable when it is really used. This saves a lot of useless calls
    to fpc_finalize when destroying classes
2002-10-19 15:09:24 +00:00
olle
7fde7960b5 * reorganized prologue and epilogue routines 2002-10-19 12:50:36 +00:00
Jonas Maebe
3be297f39c + added entry for pwchar_to_string conversion addition 2002-10-18 16:38:42 +00:00
mazen
a9431165fc * branch instructions are now contigous 2002-10-17 14:48:34 +00:00
florian
b52db11151 + s:=s+<string type> where s is an ansistring is done via calls to append_ansistring_* 2002-10-17 12:44:09 +00:00
olle
fdfa16d47a * header comment updated 2002-10-16 20:18:33 +00:00
peter
83dae76625 + $IMPLICITEXCEPTIONS switch to turn on/off generation of the
implicit exception frames for procedures with initialized variables
    and for constructors. The default is on for compatibility
2002-10-16 19:01:43 +00:00
mazen
38298e3548 * patch of Carl Eric added 2002-10-16 12:36:54 +00:00
michael
39f16b03ef + Renamed thread unit to systhrds 2002-10-16 06:27:30 +00:00
peter
52ed1daebc * small tweak to use speedvalue before comparing strings 2002-10-15 19:00:42 +00:00
peter
52b34259f1 * GDB switch is not required 2002-10-15 18:16:44 +00:00
mazen
e95fb0ff3a * sone coding style modified 2002-10-15 09:00:28 +00:00
peter
08c058037f * only allow threadvar when threading switch is defined 2002-10-14 19:45:02 +00:00
peter
7489b6629f * threadvars need 4 bytes extra for storing the threadvar index 2002-10-14 19:44:43 +00:00
peter
fe277e4c87 * (hacked) new threadvar relocate code 2002-10-14 19:44:13 +00:00
peter
fb12ccee3b * threading switch, defines the symbol FPC_THREADING 2002-10-14 19:43:41 +00:00
peter
798289b1f3 * only use init tables for threadvars 2002-10-14 19:42:33 +00:00
carl
ed1a28dcdc * var parameter checking for classes and interfaces in Delphi mode 2002-10-14 18:20:30 +00:00