michael
44bf61f445
* Convert array of widechar to pwidechar instead of pchar
2004-12-07 13:52:54 +00:00
peter
2b6456fe16
* procvar handling for tp procvar mode fixed
...
* proc to procvar moved from addrnode to typeconvnode
* inlininginfo is now allocated only for inline routines that
can be inlined, introduced a new flag po_has_inlining_info
2004-12-05 12:28:10 +00:00
peter
c2263a36ac
* int64 can also be put in a register
2004-12-03 15:57:39 +00:00
Jonas Maebe
bd04491f50
* patch from Peter to fix inlining of case statements
2004-11-30 18:13:39 +00:00
peter
8cf8c54609
* fixed varargs
...
* replaced dynarray with tlist
2004-11-22 22:01:19 +00:00
peter
2985766e9d
* manglednames for nested procedures include full parameters from
...
the parents to prevent double manglednames
2004-11-21 21:51:31 +00:00
peter
89b1b583c9
* ttempcreatenode.create_reg merged into .create with parameter
...
whether a register is allowed
* funcret_paraloc renamed to funcretloc
2004-11-21 17:54:59 +00:00
florian
18f7aa97dd
* changed funcret location back to tlocation
2004-11-21 17:17:03 +00:00
peter
29d3a94892
* fixed message methods
...
* fixed typo with win32 dll import from implementation
* released external check
2004-11-21 16:33:19 +00:00
peter
1687306d22
* make some checks EXTDEBUG only for now so linux cycles again
2004-11-17 22:41:41 +00:00
peter
14d25d278b
mangledname setting moved to place after the complete proc declaration is read
...
import generation moved to place where body is also parsed (still gives problems with win32)
2004-11-17 22:21:35 +00:00
peter
c4502aebe7
* _mangledname for symbols moved only to symbols that really need it
...
* overload number removed, add function result type to the mangledname fo
procdefs
2004-11-16 22:09:57 +00:00
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
0c7e53bb81
* fixed compile of powerpc,sparc,arm
2004-11-11 19:31:33 +00:00
peter
6458bd0ce1
* tvarsym splitted
2004-11-08 22:09:58 +00:00
florian
42e14b6825
+ additional extdebug check for wrong add_reg_instructions added
...
* too long manglednames are cut off at 200 chars using a crc
2004-11-06 17:44:47 +00:00
florian
7f89448cec
* vmt offset of objects is no properly aligned when necessary
2004-11-05 21:07:13 +00:00
peter
37139422aa
elecount also on 32bit needs the qword part to prevent overflow
2004-11-04 17:58:48 +00:00
peter
f4a7c3d444
fixed debuginfo for variables in staticsymtable
2004-11-04 17:09:54 +00:00
florian
926da4b9c9
* fixed writing of para locations for procedures with explicit locations for parameters
2004-11-03 09:46:34 +00:00
peter
9b00c7832e
* support > 32bit accesses for x86_64
...
* rewrote array size checking to support 64bit
2004-11-01 23:30:11 +00:00
florian
f0e07003be
* fixed type information for dyn. arrays on 64 bit systems
2004-11-01 15:33:12 +00:00
peter
c95a859f0a
* generic tlocation
...
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
peter
2e91bcf821
* align arraydef rtti
2004-10-26 15:02:33 +00:00
mazen
581b52422c
- remove $IFDEF DELPHI and related code
...
- remove $IFDEF FPCPROCVAR and related code
2004-10-15 09:14:16 +00:00
peter
4f7667488b
* parameter regvar fixes
2004-10-10 21:08:55 +00:00
florian
b39c0af01b
* rtti alignment fixed
2004-10-04 21:23:15 +00:00
Tomas Hajny
85320d6787
* SetTextLineEnding implemented, FileRec.Name position alignment for CPU64
2004-09-21 23:36:51 +00:00
peter
33a834821f
* paraloc branch merged
2004-09-21 17:25:12 +00:00
peter
7e90a8a8ab
* restart sorting of enums when deref is called, this is needed when
...
a unit is reloaded
2004-09-14 16:33:17 +00:00
peter
d763f9e142
browser disabled
...
uf_local_symtable ppu flag when a localsymtable is stored
2004-08-27 21:59:26 +00:00
Jonas Maebe
c7544e69de
+ padalgingment field for recordsymtables (saved by recorddefs)
...
+ support for Macintosh PowerPC alignment (if the first field of a record
or union has an alignment > 4, then the record or union size must be
padded to a multiple of this size)
2004-08-17 16:29:21 +00:00
peter
8184ad2048
* fixed padding of records to alignment
2004-08-15 15:05:16 +00:00
florian
6368652be2
* fixed several sparc alignment issues
...
+ Jonas' inline node patch; non functional yet
2004-08-14 14:50:42 +00:00
florian
6ab93f5ec1
* fixed web bug #3226 : type p = type pointer;
2004-08-07 14:52:45 +00:00
florian
aba734edc9
* fixed funcret_paraloc writing in units
2004-07-19 19:15:50 +00:00
olle
4ad33f01b6
- removed unused types
2004-07-14 21:37:41 +00:00
Jonas Maebe
1563d986c5
* inline procedures at the node tree level, but only under some very
...
limited circumstances for now (only procedures, and only if they have
no or only vs_out/vs_var parameters).
* fixed ppudump for inline procedures
* fixed ppudump for ppc
2004-07-12 09:14:04 +00:00
peter
a939095dbe
* revert has_localst patch
...
* replace aktstaticsymtable/aktglobalsymtable with current_module
2004-07-09 22:17:31 +00:00
peter
60b53cb1c1
* fix storing of localst in ppu
2004-07-06 19:52:04 +00:00
florian
8a9758c5e2
* logs truncated
2004-06-20 08:55:28 +00:00
peter
0ac4983a9b
* remove obsolete cardinal() typecasts
2004-06-18 15:16:46 +00:00
florian
588e2c38bf
* dwarf branch merged
2004-06-16 20:07:06 +00:00
peter
5abb93e77d
* range check error
2004-05-25 18:51:14 +00:00
peter
74e8ba82da
* removed unused voidprocdef
2004-05-23 20:57:10 +00:00
peter
c96ba04d84
* fixed qword(longint) that removed sign from the number
...
* removed code in the compiler that relied on wrong qword(longint)
code generation
2004-05-23 15:23:30 +00:00
peter
fac96dd2ed
fix range check error when array size > maxlongint
2004-05-22 23:33:18 +00:00
florian
e8098f6b71
+ added lib support for Amiga/MorphOS syscalls
2004-05-01 22:05:01 +00:00
daniel
b721e5872c
* Prepare compiler infrastructure for multiple ansistring types
2004-04-29 19:56:36 +00:00
florian
a7478ee97f
+ location support for arguments, currently PowerPC/MorphOS only
2004-04-18 15:22:24 +00:00
peter
e46cdcea48
* constants ordinals now always have a type assigned
...
* integer constants have the smallest type, unsigned prefered over
signed
2004-03-23 22:34:49 +00:00
olle
a7f25327f6
* change AT_FUNCTION to AT_DATA where appropriate
2004-03-18 11:43:57 +00:00
peter
297578a599
* valgrind doesn't like nested procedure info in stabs
2004-03-14 22:51:46 +00:00
peter
df18c0aa82
* don't write line numbers in stabs for defs
2004-03-14 20:06:40 +00:00
peter
37f3f95b59
* more stabs fixes
...
* special mode -gv for valgrind compatible stabs
2004-03-10 22:52:57 +00:00
peter
f8e067cadb
* first write parent classes
2004-03-09 22:18:22 +00:00
peter
d8c68fdfe0
* more stabs updates
2004-03-09 20:45:04 +00:00
peter
abbd54f334
* stabs updates to write stabs for def for all implictly used
...
units
2004-03-08 22:07:46 +00:00
peter
29c2944706
* fix hidden pointer for stabs
2004-03-03 22:01:44 +00:00
olle
4fecc1a56f
* big transformation of Tai_[const_]Symbol.Create[data]name*
2004-03-02 00:36:32 +00:00
peter
356b3378e8
* tai_const.create_ptr added
2004-02-26 16:16:38 +00:00
daniel
0750bd97e5
* Revert my latest change
2004-02-22 19:55:25 +00:00
daniel
efc644e349
* Fixed minor bug in Tenumdef.stabstring
2004-02-22 18:49:03 +00:00
florian
06a33abebd
* fixed arg. area calculation
2004-02-19 17:07:42 +00:00
peter
1e3875ad36
- fix rtti generation for properties containing sl_vec
...
- fix crash when overloaded operator is not available
- fix record alignment for C style variant records
2004-02-17 15:57:49 +00:00
peter
ee569d7817
* make extcycle is working again
2004-02-12 15:54:03 +00:00
Jonas Maebe
3056a64bf0
* fixed regvars support. Needs -doldregvars to activate. Only tested with
...
ppc, other processors should however only require maxregvars and
maxfpuregvars constants in cpubase.pas. Remember to take scratch-
registers into account when defining that value.
2004-02-08 18:08:59 +00:00
daniel
42f9b1b0e2
* Removed not very usefull nextglobal & previousglobal fields from
...
Tstoreddef, saving 78 kb of memory
2004-02-06 22:37:00 +00:00
florian
465aa5851b
* several fixes to compile x86-64 system
2004-02-05 01:24:08 +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
8caaa7740d
* more record alignment fixes
2004-01-28 22:16:31 +00:00
florian
4ccec73aa5
* fixed alignment of classes
2004-01-28 21:05:56 +00:00
peter
2d8d788211
* record alignment splitted in fieldalignment and recordalignment,
...
the latter is used when this record is inserted in another record.
2004-01-28 20:30:18 +00:00
daniel
3a3f65a364
* Fix string type stab generation. String constant still unsupported.
2004-01-27 10:29:32 +00:00
daniel
8bea12a84d
* Typo
2004-01-26 19:54:42 +00:00
daniel
5de754a2a1
* Try to recude stack usage of Tpointerdef.concatstabsto
2004-01-26 19:43:49 +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
daniel
60876a7c1a
* More gdb cleanup: make record & object stab generation linear instead
...
of quadratic.
2004-01-25 20:23:28 +00:00
daniel
2db2f4ac1b
* Made varags parameter constant
2004-01-25 13:18:59 +00:00
daniel
45ebe9b10b
* Last commit broke debug info for records. Fixed.
2004-01-25 12:37:15 +00:00
daniel
7a417defc8
* 2nd round of gdb cleanup
2004-01-25 11:33:48 +00:00
peter
861b7cd72e
* procvardef rtti fixed
2004-01-22 21:33:54 +00:00
peter
8f70c34b33
* enum value rtti is now in orginal case
2004-01-22 16:33:22 +00:00
florian
c37035a450
* common addnode code for x86-64 and i386
2004-01-20 12:59:36 +00:00
daniel
7a6b6f4bd4
* Some minor stuff
...
* Managed to eliminate speed effects of string compression
2004-01-15 15:16:17 +00:00
daniel
4a4b8f2a72
* Experiment: Compress strings to save memory
...
Did not save a single byte of mem; clearly the core size is boosted by
temporary memory usage...
2004-01-11 23:56:19 +00:00
Jonas Maebe
3413faf00d
* Darwin's assembler assumes that all labels starting with 'L' are local
...
-> rename symbols starting with 'L'
2004-01-04 21:10:04 +00:00
peter
6b3c925f64
* don't lowercase enumnames
2003-12-24 20:51:11 +00:00
florian
6d3d97e845
* first fixes to compile the x86-64 system unit
2003-12-24 01:47:22 +00:00
florian
b52cee6639
* fixed ppc inlining stuff
...
* fixed wrong unit writing
+ added some sse stuff
2003-12-21 19:42:42 +00:00
florian
2258e941af
+ inlined procedures inherit procinfo flags
2003-12-16 21:29:24 +00:00
marco
9b3b94883b
* always generate RTTI patch from peter
2003-12-12 12:09:40 +00:00
peter
84b1451a34
* tai_const.create_32bit changed to cardinal
2003-12-08 22:34:24 +00:00
peter
f663d2488f
* cross unit inlining fixed
2003-11-10 22:02:52 +00:00
florian
82b7c0c9cc
* tstoreddef.getcopy returns now an errordef instead of nil; this
...
allows easier error recovery
2003-11-08 23:31:27 +00:00
marco
094ab8b446
* fix from Peter arraysize warning (nav Newsgroup msg)
2003-11-05 14:18:03 +00:00
peter
aadc6dbf2b
* fix check for valid procdef in property rtti
2003-11-01 15:50:03 +00:00
peter
75e5a6e867
* procsym.deref derefs only own procdefs
...
* reset paracount in procdef.deref so a second deref doesn't increase
the paracounts to invalid values
2003-10-29 21:56:28 +00:00
peter
cac39ccfd4
* renamed mangeldname_prefix to make_mangledname and made it more
...
generic
* make_mangledname is now also used for internal threadvar/resstring
lists
* Add P$ in front of program modulename to prevent duplicated symbols
at assembler level, because the main program can have the same name
as a unit, see webtbs/tw1251b
2003-10-29 19:48:50 +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
34d0dff840
* fix counting of parameters when loading ppu
2003-10-21 18:14:49 +00:00
peter
0939085ab1
* commented out more obsolete constants
2003-10-17 15:08:34 +00:00
peter
ec2e200e42
* fixed ppc build
2003-10-17 14:52:07 +00:00
peter
d0de3b3ea8
* 64k registers supported
...
* fixed some memory leaks
2003-10-17 14:38:32 +00:00
peter
303b5252e4
* removed is_visible_for_proc
...
* search also for class overloads when finding interface
implementations
2003-10-13 14:05:12 +00:00
florian
1df13c788c
* fixed some MMX<->SSE
...
* started to fix ppc, needs an overhaul
+ stabs info improve for spilling, not sure if it works correctly/completly
- MMX_SUPPORT removed from Makefile.fpc
2003-10-11 16:06:42 +00:00
peter
fb81b7ebbb
* old trgobj moved to x86/rgcpu and renamed to trgx86fpu
...
* tregisteralloctor renamed to trgobj
* removed rgobj from a lot of units
* moved location_* and reference_* to cgobj
* first things for mmx register allocation
2003-10-10 17:48:13 +00:00
peter
c56c47fbc0
* Add calling convention in fullprocname when it is specified
2003-10-07 20:43:49 +00:00
peter
625de786dc
* tsymlist.def renamed to tsymlist.procdef
...
* tsymlist.procdef is now only used to store the procdef
2003-10-07 16:06:30 +00:00
florian
6684d2c520
+ added basic olevariant support
2003-10-06 22:23:41 +00:00
peter
da9f5e2319
* c style array of const generates callparanodes
...
* varargs paraloc fixes
2003-10-05 21:21:52 +00:00
peter
4a4c5a6df2
* don't write procdefs that are released to ppu
2003-10-05 12:56:35 +00:00
peter
3a92a2a25a
* parameter alignment fixes
2003-10-03 22:00:33 +00:00
peter
00801693bb
* protected visibility fixes
2003-10-02 21:13:46 +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
florian
d85e1a9bf4
* para items are now reversed for pascal calling conventions
2003-10-01 16:49:05 +00:00
florian
8463d2444f
* fixed FullProcName to handle constructors, destructors and operators correctly
2003-10-01 15:32:58 +00:00
peter
c348bd5a68
* don't write parast,localst debug info for externals
2003-10-01 15:00:02 +00:00
peter
d3063f722c
* connect parasym to paraitem
2003-09-23 21:03:35 +00:00
peter
8af51ea6d3
* locals and paras are allocated in the code generation
...
* tvarsym.localloc contains the location of para/local when
generating code for the current procedure
2003-09-23 17:56:05 +00:00
peter
b9d09a4e5c
* preparations for different default calling conventions
...
* various RA fixes
2003-09-07 22:09:34 +00:00
florian
f3e9e7a24f
* fixed web bug #2669
...
* cosmetic fix in printnode
* tobjectdef.gettypename implemented
2003-09-06 22:27:08 +00:00
peter
6a8d5eb25d
* NEWRA branch merged
2003-09-03 15:55:00 +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
52c73e80d1
* start of sparc support for newra
2003-08-11 21:18:20 +00:00
peter
09ed47cba6
* don't allow add/assignments for formaldef
...
* formaldef size changed to 0
2003-07-08 15:20:56 +00:00
Jonas Maebe
f909d6a620
* fixed ppc compilation problems and changed VOLATILE_REGISTERS for x86
...
so that it doesn't include ebp and esp anymore
2003-07-06 21:50:33 +00:00
daniel
268bfcf784
* Fixed register allocator. *Lots* of fixes.
2003-07-06 15:31:20 +00:00
peter
b7d99ec934
* paraloc splitted in callerparaloc,calleeparaloc
...
* sparc calling convention updates
2003-07-02 22:18:04 +00:00
peter
bfb8ae2151
* sym,def resolving partly rewritten to support also parent objects
...
not directly available through the uses clause
2003-06-25 18:31:23 +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
d6f431a5a9
* set parast.next to the owner of the procdef
2003-06-08 11:41:21 +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
peter
28ebc69c8f
* removed changesettype because that will change the definition
...
of the setdef forever and can result in a different between
original interface and current implementation definition
2003-06-05 20:05:55 +00:00
daniel
41e0bc4cec
* Register allocator finished
2003-06-03 13:01:59 +00:00
florian
89cc00f6e4
* classes and interfaces can be stored in integer registers
2003-06-02 22:55:28 +00:00
peter
047a066711
* procinlinenode removed
...
* aktexit2label removed, fast exit removed
+ tcallnode.inlined_pass_2 added
2003-05-26 21:17:17 +00:00
peter
072a55b73e
* methodpointer self pushing fixed
2003-05-25 11:34:17 +00:00
peter
92ee1804b6
* removed selfpointer_offset, vmtpointer_offset
...
* tvarsym.adjusted_address
* address in localsymtable is now in the real direction
* removed some obsolete globals
2003-05-15 18:58:53 +00:00
Jonas Maebe
0836ed1713
* patch from Peter for rtti symbols
2003-05-13 08:13:16 +00:00
peter
26d78ff5c9
* moved implicit exception frame from ncgutil to psub
...
* constructor/destructor helpers moved from cobj/ncgutil to psub
2003-05-11 21:37:03 +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
florian
9612e57805
* introduced defaultordconsttype to decribe the default size of ordinal constants
...
on 64 bit CPUs it's equal to cs64bitdef while on 32 bit CPUs it's equal to s32bitdef
+ added defines CPU32 and CPU64 for 32 bit and 64 bit CPUs
* int64s/qwords are allowed as for loop counter on 64 bit CPUs
2003-05-01 07:59:42 +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
f4b818fc1d
* removed funcretn,funcretsym, function result is now in varsym
...
and aliases for result and function name are added using absolutesym
* vs_hidden parameter for funcret passed in parameter
* vs_hidden fixes
* writenode changed to printnode and released from extdebug
* -vp option added to generate a tree.log with the nodetree
* nicer printnode for statements, callnode
2003-04-25 20:59:33 +00:00
peter
c21ca3dfa0
+ added currency support based on int64
...
+ is_64bit for use in cg units instead of is_64bitint
* removed cgmessage from n386add, replace with internalerrors
2003-04-23 20:16:03 +00:00
florian
0284016ee9
* fixed several issues with powerpc
...
+ applied a patch from Jonas for nested function calls (PowerPC only)
* ...
2003-04-23 12:35:34 +00:00
peter
8da3f59d32
* vs_hidden released
2003-04-10 17:57:52 +00:00
peter
c5efd5c7d5
* no itnernalerror for errordef.concatstabto()
2003-03-18 16:25:50 +00:00
peter
830ea4e876
* support DefaultHandler and anonymous inheritance fixed
...
for message methods
2003-03-17 16:54:41 +00:00
peter
ec66760702
* store symoptions also for procdef
...
* check symoptions (private,public) when calculating possible
overload candidates
2003-03-17 15:54:22 +00:00
daniel
86bcea6ef5
* Code generator converted to new register notation
...
- Horribily outdated todo.txt removed
2003-02-19 22:00:14 +00:00
carl
59d3edeec7
* Several bugfixes for m68k target (register alloc., opcode emission)
...
+ VIS target
+ Generic add more complete (still not verified)
2003-02-02 19:25:54 +00:00
pierre
2a17241d66
* set sizes needs to be passes in bits not bytes to stabs info
2003-01-21 14:36:44 +00:00
peter
da14652287
* fixed tprocdef.is_addressonly
2003-01-16 22:11:33 +00:00
peter
00e2ee165b
* merged methodpointer fixes from 1.0.x
2003-01-15 01:44:32 +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
florian
07110d20f9
+ added proper support of type = type <type>; for simple types
2003-01-05 15:54:15 +00:00
florian
b59b436130
* x86-64 compiles
...
+ very basic support for float128 type (x86-64 only)
2003-01-05 13:36:53 +00:00
peter
cf5d395f0a
* update self parameter only for methodpointer and methods
2003-01-02 19:49:00 +00:00
peter
59b98f4047
* tprocdef.gettypename implemented
2002-12-29 18:25:59 +00:00
peter
791300bac9
* write class methods in fullname
2002-12-27 15:23:09 +00:00
florian
3f5541e996
+ some front end stuff for vs_hidden added
2002-12-15 19:34:31 +00:00
peter
a2a1a36e83
* ignore vs_hidden parameters when choosing overloaded proc
2002-12-15 11:26:02 +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
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
peter
3d696d9c7c
* tvarsym.get_push_size replaced by paramanager.push_size
2002-11-27 20:04:09 +00:00
carl
b844e3e32b
* several mistakes fixed in message files
2002-11-25 21:05:51 +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
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
pierre
60ef11ac16
* correct several stabs generation problems
2002-11-19 16:21:29 +00:00
peter
a496dbe1ff
* pass proccalloption to ret_in_xxx and push_xxx functions
2002-11-18 17:31:54 +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
766e56fffc
* avoid Range check errors
2002-11-16 19:53:18 +00:00
peter
fa18e5160a
* fixed rtti for int64 (merged)
2002-11-15 16:29:09 +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
carl
53aa63ead1
+ align RTTI tables
2002-11-09 15:30: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
peter
e8cbd00f74
* removed obsolete rangecheck stuff
2002-10-07 21:30:27 +00:00
peter
b998cc4012
* getparamangeldname for errordef
2002-10-05 15:14:26 +00:00
carl
67486c96c3
* fixes for Delphi 6 compilation
...
(warning : Some features do not work under Delphi)
2002-10-05 12:43:23 +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
florian
685b7f4896
* fixed currency size
2002-09-16 09:31:10 +00:00
peter
a540ff122c
* tdicationary.replace added to replace and item in a dictionary. This
...
is only allowed for the same name
* varsyms are inserted in symtable before the types are parsed. This
fixes the long standing "var longint : longint" bug
- consume_idlist and idstringlist removed. The loops are inserted
at the callers place and uses the symtable for duplicate id checking
2002-09-09 17:34:14 +00:00
peter
dcd9e0107c
* old logs removed and tabs fixed
2002-09-07 15:25:00 +00:00
peter
20af604613
* memdebug enhancements
2002-09-05 19:29:42 +00:00
peter
a28f75ed03
* sym.insert_in_data removed
...
* symtable.insertvardata/insertconstdata added
* removed insert_in_data call from symtable.insert, it needs to be
called separatly. This allows to deref the address calculation
* procedures now calculate the parast addresses after the procedure
directives are parsed. This fixes the cdecl parast problem
* push_addr_param has an extra argument that specifies if cdecl is used
or not
2002-08-25 19:25:18 +00:00
peter
98dd65b0f3
* inlining is now also allowed in interface
...
* renamed write/load to ppuwrite/ppuload
* tnode storing in ppu
* nld,ncon,nbas are already updated for storing in ppu
2002-08-18 20:06:23 +00:00
florian
589c742efe
+ support of explicit type case <any ordinal type>->pointer
...
(delphi mode only)
2002-08-11 15:28:00 +00:00
peter
425bb45ddc
* renamed current_library to objectlibrary
2002-08-11 14:32:25 +00:00
peter
ac71268ce6
* saving of asmsymbols in ppu supported
...
* asmsymbollist global is removed and moved into a new class
tasmlibrarydata that will hold the info of a .a file which
corresponds with a single module. Added librarydata to tmodule
to keep the library info stored for the module. In the future the
objectfiles will also be stored to the tasmlibrarydata class
* all getlabel/newasmsymbol and friends are moved to the new class
2002-08-11 13:24:10 +00:00
florian
030eae46de
* a couple of interface related fixes
2002-08-09 07:33:01 +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
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
peter
4285e99853
* internal linker
...
* reorganized aasm layer
2002-07-01 18:46:20 +00:00
peter
68ce5a00e5
* cg64 patch
...
* basics for currency
* asnode updates for class and interface (not finished)
2002-07-01 16:23: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
cc8c4d7093
* moved more routines from cga/n386util
2002-04-25 20:16:38 +00:00
peter
67ede1276b
* add pinline unit that inserts compiler supported functions using
...
one or more statements
* moved finalize and setlength from ninl to pinline
2002-04-23 19:16:34 +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
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
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