Commit Graph

128 Commits

Author SHA1 Message Date
florian
59abf2555b * types.pas renamed to defbase.pas because D6 contains a types
unit so this would conflicts if D6 programms are compiled
  + Willamette/SSE2 instructions to assembler added
2002-07-20 11:57:52 +00:00
daniel
399036f1c2 * State tracker work
* The whilen and repeatn are now completely unified into whilerepeatn. This
  allows the state tracker to change while nodes automatically into
  repeat nodes.
* Resulttypepass improvements to the notn. 'not not a' is optimized away and
  'not(a>b)' is optimized into 'a<=b'.
* Resulttypepass improvements to the whilerepeatn. 'while not a' is optimized
  by removing the notn and later switchting the true and falselabels. The
  same is done with 'repeat until not a'.
2002-07-19 11:41:34 +00:00
florian
c3f4220f3b * readded removed changes 2002-07-15 18:03:14 +00:00
daniel
eeae0e4c00 + Added the beginning of a state tracker. This will track the values of
variables through procedures and optimize things away.
2002-07-14 18:00:43 +00:00
florian
336808f6c3 * start of the new generic parameter handling 2002-07-11 14:41:27 +00:00
florian
07783d2a0d * powerpc target fixed, very simple units can be compiled
* some basic stuff for better callparanode handling, far from being finished
2002-07-07 09:52:32 +00:00
florian
479a745096 * first x86-64 patches 2002-07-04 20:43:00 +00:00
peter
4285e99853 * internal linker
* reorganized aasm layer
2002-07-01 18:46:20 +00:00
peter
06ebac4e27 * readded missing revisions 2002-05-18 13:34:04 +00:00
carl
21b3a10f02 + defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
+ try to fix temp allocation (still in ifdef)
+ generic constructor calls
+ start of tassembler / tmodulebase class cleanup
2002-05-16 19:46:34 +00:00
peter
2992e1819c * removed old logs and updated copyright year 2002-05-14 19:34:38 +00:00
peter
4dcd96747e * moved entry and exitcode to ncgutil and cgobj
* foreach gets extra argument for passing local data to the
    iterator function
  * -CR checks also class typecasts at runtime by changing them
    into as
  * fixed compiler to cycle with the -CR option
  * fixed stabs with elf writer, finally the global variables can
    be watched
  * removed a lot of routines from cga unit and replaced them by
    calls to cgobj
  * u32bit-s32bit updates for and,or,xor nodes. When one element is
    u32bit then the other is typecasted also to u32bit without giving
    a rangecheck warning/error.
  * fixed pascal calling method with reversing also the high tree in
    the parast, detected by tcalcst3 test
2002-05-12 16:53:04 +00:00
carl
87aa88e9b7 + generic FPC_CHECKPOINTER
+ first parameter offset in stack now portable
* rename some constants
+ move some cpu stuff to other units
- remove unused constents
* fix stacksize for some targets
* fix generic size problems which depend now on EXTEND_SIZE constant
2002-04-20 21:32:23 +00:00
peter
70ff711f73 * mangledname rewrite, tprocdef.mangledname is now created dynamicly
in most cases and not written to the ppu
  * add mangeledname_prefix() routine to generate the prefix of
    manglednames depending on the current procedure, object and module
  * removed static procprefix since the mangledname is now build only
    on demand from tprocdef.mangledname
2002-04-19 15:46:01 +00:00
carl
5befcda7e5 + target_info.size_of_pointer -> pointer_Size 2002-04-15 18:57:22 +00:00
carl
0ee2ac7451 + added wdosx support (patch from Pavel) 2002-04-04 18:30:22 +00:00
Jonas Maebe
7fb55bf4e4 + a_loadfpu_* and a_loadmm_* methods in tcg
* register allocation is now handled by a class and is mostly processor
    independent (+rgobj.pas and i386/rgcpu.pas)
  * temp allocation is now handled by a class (+tgobj.pas, -i386\tgcpu.pas)
  * some small improvements and fixes to the optimizer
  * some register allocation fixes
  * some fpuvaroffset fixes in the unary minus node
  * push/popusedregisters is now called rg.save/restoreusedregisters and
    (for i386) uses temps instead of push/pop's when using -Op3 (that code is
    also better optimizable)
  * fixed and optimized register saving/restoring for new/dispose nodes
  * LOC_FPU locations now also require their "register" field to be set to
    R_ST, not R_ST0 (the latter is used for LOC_CFPUREGISTER locations only)
  - list field removed of the tnode class because it's not used currently
    and can cause hard-to-find bugs
2002-03-31 20:26:33 +00:00
peter
a6d63f0adc * commited the wrong file :( 2002-01-19 15:37:24 +00:00
peter
04248ee5b5 * also check at the end of the implementation for incomplete classes 2002-01-19 15:20:09 +00:00
peter
d6fb9766ee * check for unresolved forward classes in the interface 2002-01-19 15:12:34 +00:00
peter
d2e1952377 * procsym definition rewrite 2001-11-02 22:58:00 +00:00
peter
e37dbf904d * calling convention rewrite 2001-10-25 21:22:32 +00:00
peter
09cd7f1642 * overloaded functions don't need to be global in kylix 2001-10-22 21:20:46 +00:00
Jonas Maebe
2c87e58a77 * allow self parameter for normal procedures again (because Kylix allows
it too) ("merged")
2001-10-01 13:38:44 +00:00
Jonas Maebe
6a15178f0f * fixed web bug #1593
* writing of procvar headers is more complete (mention var/const/out for
    paras, add "of object" if applicable)
  + error if declaring explicit self para as var/const
  * fixed mangled name of procedures which contain an explicit self para
  * parsing para's should be slightly faster because mangled name of
    procedure is only updated once instead of after parsing each para
    (all merged from fixes)
2001-09-10 10:26:26 +00:00
florian
9746f4c2d6 * some cg reorganisation
* some PPC updates
2001-08-26 13:35:06 +00:00
peter
81200dc9ef * funcret moved from tprocinfo to tprocdef 2001-08-06 21:40:46 +00:00
peter
e652444594 + varargs directive 2001-06-04 11:53:12 +00:00
peter
f86ce17588 + hint directive parsing support 2001-06-03 21:57:35 +00:00
peter
9a47ac9ec2 * m68k updates merged from fixes branch 2001-04-21 12:03:11 +00:00
peter
0c03535b5b * registration of targets and assemblers 2001-04-18 22:01:53 +00:00
peter
cf8a1e1462 * better skipping of secondpass if error 2001-04-14 14:05:47 +00:00
peter
a5a695d141 * when errors are found don't generate code, but still run the
resulttype pass
2001-04-13 23:49:24 +00:00
peter
f9c8c7e2ef * don't generate code when there is already an error 2001-04-13 17:59:03 +00:00
peter
a7cf57524e * symtable change to classes
* range check generation and errors fixed, make cycle DEBUG=1 works
  * memory leaks fixed
2001-04-13 01:22:06 +00:00
peter
4e2655cdc5 * resulttype rewrite 2001-04-02 21:20:29 +00:00
peter
684970ea22 * merged generic m68k updates from fixes branch 2001-02-26 19:44:52 +00:00
peter
32b9cdb7cf + new tlinkedlist class (merge of old tstringqueue,tcontainer and
tlinkedlist objects)
2000-12-25 00:07:25 +00:00
florian
b9796f6a7f * unused units removed from uses clause
* some changes for widestrings
2000-11-29 00:30:30 +00:00
Jonas Maebe
50f0345bb8 * if a procedure uses exceptions (be it implicit or explicit), the
usedregisters are set to all (because FPC_POPADDRSTACK doesn't save
    any registers) ("merged", fixes make cycle woth -Or)
2000-11-08 16:38:24 +00:00
peter
5115083270 * tprocdef.fullprocname added for better casesensitve writing of
procedures
2000-11-01 23:04:37 +00:00
peter
451723647e * symtable splitted, no real code changes 2000-10-31 22:02:46 +00:00
peter
299d6098aa * set usedregisters after writing entry and exit code (merged) 2000-10-24 22:21:25 +00:00
florian
f80c24177a * a lot of changes:
- basic dyn. array support
     - basic C++ support
     - some work for interfaces done
     ....
2000-10-21 18:16:11 +00:00
peter
eb3ca9c51d * unit names and procedure names are stored mixed case 2000-10-15 07:47:51 +00:00
peter
e171f341a0 * moehrendorf oct 2000 rewrite 2000-10-14 10:14:45 +00:00
peter
24fc983597 * message updates merges 2000-09-24 21:33:46 +00:00
peter
5218af7926 * delphi compile fixes 2000-09-24 21:19:48 +00:00
peter
a71e44ac49 * use defines.inc 2000-09-24 15:06:10 +00:00
peter
3b46bdb72d * overload checking in implementation removed (merged) 2000-09-10 20:11:07 +00:00