peter
e740a66636
* tparaitem removed, use tparavarsym instead
...
* parameter order is now calculated from paranr value in tparavarsym
2004-11-15 23:35:30 +00:00
peter
6458bd0ce1
* tvarsym splitted
2004-11-08 22:09:58 +00:00
peter
2e161c5e9e
* nf_internal flag for internal inserted typeconvs. This will
...
supress the generation of warning/hints
2004-11-02 12:55:16 +00:00
peter
8fb3536f6e
* simple regvar support, not yet finished
2004-09-26 17:45:29 +00:00
florian
8a9758c5e2
* logs truncated
2004-06-20 08:55:28 +00:00
florian
588e2c38bf
* dwarf branch merged
2004-06-16 20:07:06 +00:00
daniel
b721e5872c
* Prepare compiler infrastructure for multiple ansistring types
2004-04-29 19:56:36 +00:00
peter
8d078ada18
* variant array support
2004-03-29 14:42:52 +00:00
peter
6b96b70118
* fixed operator overload allowing for pointer-string
...
* replaced some type_e_mismatch with more informational messages
2004-03-18 16:19:03 +00:00
peter
c844c5a505
* procvar cleanup
2004-02-20 21:55:59 +00:00
peter
ecfbbeffc3
* renamed xNNbittype to xNNinttype
...
* renamed registers32 to registersint
* replace some s32bit,u32bit with torddef([su]inttype).def.typ
2004-02-03 22:32:53 +00:00
peter
1422985ca0
* Change several $ifdef i386 to x86
...
* Change several OS_32 to OS_INT/OS_ADDR
2004-01-31 17:45:16 +00:00
daniel
97e87aaebc
* reginfo now also only allocated during register allocation
...
* third round of gdb cleanups: kick out most of concatstabto
2004-01-26 16:12:27 +00:00
peter
6091cd2824
* don't give warnings for shortstring vecnodes
2003-12-12 15:42:53 +00:00
peter
fb2a8b2b12
* don't check varstate for left of vecnode for normal arrays
2003-12-08 22:35:06 +00:00
peter
9aba5c8c7a
* fixed some crashes
...
* fixed varargs and register calling probs
2003-12-01 18:44:15 +00:00
peter
353219a928
* typed address only used for @ and addr() that are parsed
2003-11-29 14:33:13 +00:00
peter
f663d2488f
* cross unit inlining fixed
2003-11-10 22:02:52 +00:00
marco
094ab8b446
* fix from Peter arraysize warning (nav Newsgroup msg)
2003-11-05 14:18:03 +00:00
peter
f2e031273b
* don't search for compatible procvars when the proc is not
...
overloaded
2003-10-31 18:44:18 +00:00
peter
b34b0141d5
* support creating classes using <class of tobject>.create
2003-10-31 15:52:58 +00:00
peter
4a1ecb07d1
* splitted buildderef and buildderefimpl to fix interface crc
...
calculation
2003-10-23 14:44:07 +00:00
peter
6878c55c80
* write derefdata in a separate ppu entry
2003-10-22 20:39:59 +00:00
peter
a28d911c98
* IncompatibleTypes() added that will include unit names when
...
the typenames are the same
2003-10-21 18:16:13 +00:00
peter
95f132db3d
* set_varstate cleanup
2003-10-08 19:19:45 +00:00
peter
70fe77ca7c
* procinfo unit contains tprocinfo
...
* cginfo renamed to cgbase
* moved cgmessage to verbose
* fixed ppc and sparc compiles
2003-10-01 20:34:48 +00:00
peter
99bb20747e
* parent framepointer changed to hidden parameter
...
* tloadparentfpnode added
2003-09-28 17:55:03 +00:00
florian
f3e9e7a24f
* fixed web bug #2669
...
* cosmetic fix in printnode
* tobjectdef.gettypename implemented
2003-09-06 22:27:08 +00:00
florian
220e05dd5e
* fixed arm concatcopy
...
+ arm support in the common compiler sources added
* moved some generic cg code around
+ tfputype added
* ...
2003-09-03 11:18:36 +00:00
peter
6731abb0db
* fixed some reported bugs
2003-08-10 17:25:23 +00:00
Jonas Maebe
4be7651aa2
* fixed conversion of fpc_*str_unique to compilerproc
2003-06-17 19:24:08 +00:00
Jonas Maebe
404d344d92
* lots of newra fixes (need getfuncretparaloc implementation for i386)!
...
* renamed all_intregisters to volatile_intregisters and made it
processor dependent
2003-06-17 16:34:44 +00:00
peter
e7975c7592
* re-resolving added instead of reloading from ppu
...
* tderef object added to store deref info for resolving
2003-06-07 20:26:32 +00:00
Jonas Maebe
edb2179730
+ added freeintparaloc
...
* ppc get/freeintparaloc now check whether the parameter regs are
properly allocated/deallocated (and get an extra list para)
* ppc a_call_* now internalerrors if pi_do_call is not yet set
* fixed lot of missing pi_do_call's
2003-06-07 18:57:04 +00:00
Jonas Maebe
df07c64f1f
* added missing firstpass for withrefnode
2003-05-24 17:15:24 +00:00
peter
15b0132f6f
* tloadnode does not support objectsymtable,withsymtable anymore
...
* withnode cleanup
* direct with rewritten to use temprefnode
2003-05-11 14:45:12 +00:00
peter
1a2eedd767
* self moved to hidden parameter
...
* removed hdisposen,hnewn,selfn
2003-05-09 17:47:02 +00:00
peter
e2cbae0ff1
* vs_hidden replaced by is_hidden boolean
2003-05-05 14:53:16 +00:00
peter
60978ba89c
* aktprocdef renamed to current_procdef
...
* procinfo renamed to current_procinfo
* procinfo will now be stored in current_module so it can be
cleaned up properly
* gen_main_procsym changed to create_main_proc and release_main_proc
to also generate a tprocinfo structure
* fixed unit implicit initfinal
2003-04-27 11:21:32 +00:00
peter
7f14891d66
* aktprocdef cleanup, aktprocdef is now always nil when parsing
...
a new procdef declaration
* aktprocsym removed
* lexlevel removed, use symtable.symtablelevel instead
* implicit init/final code uses the normal genentry/genexit
* funcret state checking updated for new funcret handling
2003-04-27 07:29:50 +00:00
peter
18b1a27d2c
* procvar is not compared in addrn
2003-04-23 10:10:54 +00:00
peter
47489f2376
* firstpass uses expectloc
...
* checks if there are differences between the expectloc and
location.loc from secondpass in EXTDEBUG
2003-04-22 23:50:22 +00:00
peter
8da3f59d32
* vs_hidden released
2003-04-10 17:57:52 +00:00
peter
25d973ef16
* self fixes for static methods (merged)
2003-01-30 21:46:57 +00:00
peter
2721d341f0
* merged some verbosity options.
...
* V_LineInfo is a verbosity flag to include line info
2003-01-09 21:52:37 +00:00
peter
80b463da2e
* po_addressonly added to retrieve the address of a methodpointer
...
only, this is used for @tclass.method which has no self pointer
2003-01-06 21:16:52 +00:00
daniel
25af993b76
* Fixed mark_write for @ operator
...
(can happen when compiling @procvar:=nil (Delphi mode construction))
2003-01-04 15:54:03 +00:00
daniel
5041b70618
* Removed ifdefs around notifications
...
ifdefs around for loop optimizations remain
2003-01-03 12:15:55 +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
f3d9f997cd
* low-highval always checked if limit ober 2GB is reached (to avoid overflow)
2002-09-27 21:13:28 +00:00
peter
d2400aae38
* cleanup of tvecnode.det_resulttype
...
* move 0 element of string access check to resulttype
2002-09-01 18:44:17 +00:00
daniel
f4c6d762fd
- write_access fields removed in favor of a flag
2002-09-01 13:28:37 +00:00
daniel
4b82d30953
* Removed sets from Tcallnode.det_resulttype
...
+ Added read/write notifications of variables. These will be usefull
for providing information for several optimizations. For example
the value of the loop variable of a for loop does matter is the
variable is read after the for loop, but if it's no longer used
or written, it doesn't matter and this can be used to optimize
the loop code generation.
2002-09-01 08:01:16 +00:00
peter
91b49914f6
* More fixes for cross unit inlining, all tnodes are now implemented
...
* Moved pocall_internconst to po_internconst because it is not a
calling type at all and it conflicted when inlining of these small
functions was requested
2002-08-19 19:36:42 +00:00
daniel
46b8ed0657
* Tried to make Tprocsym.defs protected. I didn't succeed but the cleanups
...
are worth comitting.
2002-07-23 09:51:22 +00:00
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
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
peter
6320530bdd
* removed newn and disposen nodes, the code is now directly
...
inlined from pexpr
* -an option that will write the secondpass nodes to the .s file, this
requires EXTDEBUG define to actually write the info
* fixed various internal errors and crashes due recent code changes
2002-04-21 19:02:03 +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
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
2965034fca
* fixed web bug #1907
...
* fixed some other procvar related bugs (all related to accepting procvar
constructs with either too many or too little parameters)
(both merged, includes second typo fix of pexpr.pas)
2002-04-01 20:57:13 +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
peter
d2e1952377
* procsym definition rewrite
2001-11-02 22:58:00 +00:00
peter
ac400051bd
* allow assignment of overloaded procedures to procvars when we know
...
which procedure to take
2001-10-28 17:22:25 +00:00
peter
e37dbf904d
* calling convention rewrite
2001-10-25 21:22:32 +00:00
peter
43dea5a35f
* move class of definitions into type section for delphi
2001-09-02 21:12:06 +00:00
florian
9746f4c2d6
* some cg reorganisation
...
* some PPC updates
2001-08-26 13:35:06 +00:00
peter
55b46693d5
* removed wrongly placed set_varstate in subscriptnode
2001-04-13 22:15:21 +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
florian
e964449b71
+ some stuff to compile FreeCLX added
2001-03-23 00:16:07 +00:00
Jonas Maebe
4c8ca9774f
+ implemented/fixed docompare() mathods for all nodes (not tested)
...
+ nopt.pas, nadd.pas, i386/n386opt.pas: optimized nodes for adding strings
and constant strings/chars together
* n386add.pas: don't copy temp strings (of size 256) to another temp string
when adding
2000-12-31 11:14:10 +00:00
peter
32b9cdb7cf
+ new tlinkedlist class (merge of old tstringqueue,tcontainer and
...
tlinkedlist objects)
2000-12-25 00:07:25 +00:00
Jonas Maebe
779e5fb7e9
* fixed webbug 1268 ("merged")
2000-12-05 15:19:50 +00:00
florian
b9796f6a7f
* unused units removed from uses clause
...
* some changes for widestrings
2000-11-29 00:30:30 +00:00
florian
51527ba1c9
+ merged Attila's changes for interfaces, not tested yet
2000-11-04 14:25:19 +00:00
peter
451723647e
* symtable splitted, no real code changes
2000-10-31 22:02:46 +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
4b17f6f0ff
* fixed memory leaks
2000-10-14 21:52:54 +00:00
peter
e171f341a0
* moehrendorf oct 2000 rewrite
2000-10-14 10:14:45 +00:00
peter
38951f5ce1
* lot of compile updates for cg11
2000-10-01 19:48:23 +00:00
florian
57a566e53d
*** empty log message ***
2000-09-28 19:49:51 +00:00
florian
df4eb26ed0
* more fixes
2000-09-25 15:37:14 +00:00
florian
7549cdd6cc
* some updates
2000-09-25 15:05:25 +00:00
florian
991db24e93
* first revision for testing purpose
2000-09-25 09:58:22 +00:00