Commit Graph

69 Commits

Author SHA1 Message Date
carl
f2f6449e6b + replace some stuff by ALL_REGISTERS 2002-04-14 16:55:43 +00:00
peter
5b242f7741 * tlocation,treference update
* LOC_CONSTANT added for better constant handling
  * secondadd splitted in multiple routines
  * location_force_reg added for loading a location to a register
    of a specified size
  * secondassignment parses now first the right and then the left node
    (this is compatible with Kylix). This saves a lot of push/pop especially
    with string operations
  * adapted some routines to use the new cg methods
2002-04-02 17:11:27 +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
carl
cbe6e19729 + patch for SPARC from Mazen NEIFER 2002-03-24 19:04:31 +00:00
Jonas Maebe
62e4cfefc1 * fixed severe slowdown when compiling a program with arrays that have
a lot (15+) dimensions ("merged")
2002-02-04 08:16:07 +00:00
peter
d6fb9766ee * check for unresolved forward classes in the interface 2002-01-19 15:12:34 +00:00
peter
8327c4284d * fixed previous commit 2002-01-06 21:52:30 +00:00
peter
d24762aeba * removed uauto from orddef, use new range_to_basetype generating
the correct ordinal type for a range
2002-01-06 12:08:15 +00:00
florian
43ece4c2b7 * publishing of publishable classes fixed 2001-12-19 09:34:51 +00:00
florian
b60666ae1f + parasym to tparaitem added 2001-12-06 17:57:33 +00:00
peter
e45bb82d81 * freemem change to value parameter
* torddef low/high range changed to int64
2001-12-03 21:48:41 +00:00
Jonas Maebe
c980b07df9 * tarraydef.size returns target_info.size_of_pointer instead of 4 for
dynamic arrays
2001-11-30 15:01:51 +00:00
peter
faf78ea813 * overloading supported in child classes
* fixed parsing of classes with private and virtual and overloaded
    so it is compatible with delphi
2001-11-18 18:43:13 +00:00
florian
889ca6ea25 * publishing of qword, int64 and widechar properties is now possible 2001-11-18 18:27:57 +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
cea68ee35c * fixed size of constset when change from small to normalset 2001-10-20 17:21:54 +00:00
Jonas Maebe
350a2ad8e3 * better size checking of data (now an error is returned for
"array[longint] of longint") ("merged")
2001-10-15 13:16:26 +00:00
michael
d75c4d6486 * Smartlinking with interfaces fixed
* Better smartlinking for rtti and init tables
2001-09-19 11:04:41 +00:00
peter
45dab81414 * merged netbsd, fpu-overflow from fixes branch 2001-09-17 21:29:10 +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
Jonas Maebe
a2218eb517 * aded missing reset of labels of rttitablesym and inittablesym labels 2001-09-03 15:18:38 +00:00
peter
915b5cd7a9 * split constsym.value in valueord,valueordptr,valueptr. The valueordptr
is used for holding target platform pointer values. As those can be
    bigger than the source platform.
2001-09-02 21:18:28 +00:00
peter
f88f6eb571 * rtti/init table updates
* rttisym for reusable global rtti/init info
  * support published for interfaces
2001-08-30 20:13:52 +00:00
florian
9746f4c2d6 * some cg reorganisation
* some PPC updates
2001-08-26 13:35:06 +00:00
florian
032023f8de * some interfaces related problems regarding
mapping of interface implementions fixed
2001-08-22 21:16:20 +00:00
peter
7b45b6a4a9 * local browser support fixed 2001-08-19 09:39:27 +00:00
peter
e72f528acf * write also dynamicarray flag to ppu 2001-08-12 22:09:40 +00:00
peter
a9044dd538 * fpu_used=0 when simplify_ppu is used
* small crc updating fixes for tprocdef
2001-08-12 20:04:33 +00:00
peter
81200dc9ef * funcret moved from tprocinfo to tprocdef 2001-08-06 21:40:46 +00:00
peter
62cccdebb5 * fixed passing of array of record or shortstring to open array 2001-08-01 21:47:48 +00:00
peter
c4b84ce276 * m68k updates from v10 merged 2001-07-30 20:59:27 +00:00
Jonas Maebe
13bcf3599c * fixed web bugs 1563/1564: procvars of object can't be regvars (merged) 2001-07-30 11:52:57 +00:00
peter
b10e754536 * alignmentinfo record added
* -Oa argument supports more alignment settings that can be specified
    per type: PROC,LOOP,VARMIN,VARMAX,CONSTMIN,CONSTMAX,RECORDMIN
    RECORDMAX,LOCALMIN,LOCALMAX. It is possible to set the mimimum
    required alignment and the maximum usefull alignment. The final
    alignment will be choosen per variable size dependent on these
    settings
2001-07-01 20:16:15 +00:00
peter
49481a0c63 * v10 merges 2001-06-27 21:37:36 +00:00
peter
7dd4f0e9dd * procdef demangling fixed 2001-06-04 18:05:39 +00:00
peter
e652444594 + varargs directive 2001-06-04 11:53:12 +00:00
peter
68c1559651 * m68k doesn't support double (merged) 2001-05-09 19:58:45 +00:00
peter
6c7708c1e0 * ppu object to class rewrite
* move ppu read and write stuff to fppu
2001-05-06 14:49:16 +00:00
florian
7e8bc49786 * more variant support 2001-04-22 22:46:49 +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
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
5e114ac4e3 * enum stabs fix (merged) 2001-04-05 21:32:22 +00:00
florian
64d7d5682e * applied several fixes to get the DD8 Delphi Unit compiled
e.g. "forward"-interfaces are working now
2001-04-04 21:30:42 +00:00
peter
4e2655cdc5 * resulttype rewrite 2001-04-02 21:20:29 +00:00
florian
295804263d * correct initialisation of rec_tguid when loading the system unit 2001-03-22 23:28:39 +00:00
florian
82a6a7ed95 + basic variant type support in the compiler 2001-03-22 00:10:58 +00:00
peter
d8abf76f6b * getsym redesign, removed the globals srsym,srsymtable 2001-03-11 22:58:49 +00:00
peter
bdb1ed1462 * merged c packrecords fix 2001-01-06 20:11:29 +00:00