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
6458bd0ce1
* tvarsym splitted
2004-11-08 22:09:58 +00:00
peter
f4a7c3d444
fixed debuginfo for variables in staticsymtable
2004-11-04 17:09:54 +00:00
peter
c95a859f0a
* generic tlocation
...
* move tlocation to cgutils
2004-10-31 21:45:02 +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
c25b06a836
* fix misplaced begin..end for self stabs
...
* no fpu regable for staticsymtable
2004-10-13 18:47:45 +00:00
peter
6ffca1688e
* fixed visibility for procsyms
...
* fixed override check when there was no entry yet
2004-10-12 14:34:49 +00:00
peter
cf20eafbe0
* don't generate stabs for self when it is in a regvar
2004-10-11 20:48:34 +00:00
peter
66df745917
* small regvar for para fixes
...
* function tvarsym.is_regvar added
* tvarsym.getvaluesize removed, use getsize instead
2004-10-11 15:48:15 +00:00
peter
4f7667488b
* parameter regvar fixes
2004-10-10 21:08:55 +00:00
peter
b0c25b50a0
* symtable allocation rewritten
...
* loading of parameters to local temps/regs cleanup
* regvar support for parameters
* regvar support for staticsymtable (main body)
2004-10-10 20:22:53 +00:00
peter
5ca70455ed
regvar ppu writing doesn't affect any crc
2004-10-10 09:31:28 +00:00
peter
63cf4464d3
* tvarsym.varregable added, split vo_regable from varoptions
2004-10-08 17:09:43 +00:00
Jonas Maebe
2b030488b2
* regvar fixes from Peter
2004-10-06 19:26:50 +00:00
peter
6d16520853
* don't add stabs for register variables
2004-10-01 15:22:22 +00:00
peter
8fb3536f6e
* simple regvar support, not yet finished
2004-09-26 17:45:29 +00:00
peter
33a834821f
* paraloc branch merged
2004-09-21 17:25:12 +00:00
Jonas Maebe
0ccc15675e
* add cprefix to procedures which are autoamtically marked as external in
...
macpas mode
2004-08-15 12:06:03 +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
peter
b151676e8a
quote all low ascii chars in stabs
2004-05-22 23:32:52 +00:00
olle
649873016f
* Moved import_implicit_external to symsym
2004-05-11 22:52:48 +00:00
olle
4a092ae765
+ mode macpas: support for implicit external
2004-05-11 18:29:41 +00:00
florian
aae508c277
+ arm floating point register saving implemented
...
* hopefully stabs generation for MacOSX fixed
+ some defines for arm added
2004-03-29 19:19:35 +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
peter
37f3f95b59
* more stabs fixes
...
* special mode -gv for valgrind compatible stabs
2004-03-10 22:52:57 +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
florian
fac0d1e23e
* for vars with is_dll_var the mangledname is written to the ppu as well
2004-03-02 18:12:31 +00:00
florian
61f15e4ec4
* make cycle fixed
...
+ pic support for darwin
+ support of importing vars from shared libs on darwin implemented
2004-03-02 17:32:12 +00:00
olle
4fecc1a56f
* big transformation of Tai_[const_]Symbol.Create[data]name*
2004-03-02 00:36:32 +00:00
peter
05e0d83348
* operator overload chooses rewrite
...
* overload choosing is now generic and moved to htypechk
2004-02-24 16:12:39 +00:00
daniel
ca593dede2
* Escape newlines in constant string stabs
2004-02-22 22:13:27 +00:00
peter
f967fa5f74
* use sp_internal flag to silence unused internal variable
2004-02-20 21:54:47 +00:00
peter
3a3fdde6d1
* compare_defs_ext has now a options argument
...
* fixes for variants
2004-02-13 15:42:21 +00:00
peter
7b04fdec2e
* fix compilation without GDB
2004-02-11 19:59:06 +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
20469d47a0
* Tvarsym.highvarsym removed
2004-02-05 14:13:53 +00:00
daniel
5db278a977
* Empty destructor Tlabelsym.destroy removed
2004-02-04 23:01:36 +00:00
daniel
63f2dfc2dd
* Tvarsym.highvarsym commented out (unused by compiler, purpose unknown)
2004-02-04 22:54:57 +00:00
daniel
d735071838
* Rtti generation moved to ncgutil
...
* Assmtai usage of symsym removed
* operator overloading cleanup up
2004-02-04 22:15:15 +00:00
daniel
c22f863764
* Fix stabs generation problem reported by Jonas
2004-01-31 22:48:31 +00:00
daniel
2c01fc3afd
* Stabs lineinfo problem fixed
2004-01-31 21:09:58 +00:00
daniel
862e121a0a
* Last steps before removal of aasmtai dependency in symsym can be
...
accomplished.
2004-01-31 18:40:15 +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
9b33343e90
* Stab generation bug fixed
2004-01-27 22:45:30 +00:00
daniel
3dfde8c397
* Bugfix on constant strings stab generation. Never worked and still
...
doesn't work for unknown reasons.
2004-01-26 22:08:20 +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
7a417defc8
* 2nd round of gdb cleanup
2004-01-25 11:33:48 +00:00
daniel
143b3f4c05
* Applied Peters patch
2004-01-16 18:08:39 +00:00
daniel
eaa7da9015
+ Cleanup of stabstring generation code. Cleaner, faster, and compiler
...
executable reduced by 50 kb,
2004-01-15 23:16:32 +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
peter
4b9ba9e064
* fix stabs for locals
2004-01-06 15:46:12 +00:00
peter
46769ccfcb
* don't generate rtti for errordef
2003-12-23 22:13:26 +00:00
marco
9b3b94883b
* always generate RTTI patch from peter
2003-12-12 12:09:40 +00:00
peter
9aba5c8c7a
* fixed some crashes
...
* fixed varargs and register calling probs
2003-12-01 18:44:15 +00:00
Jonas Maebe
dbe054ba4e
* don't internalerror when emitting debuginfo for LOC_FPUREGISTER
2003-11-29 18:16:39 +00:00
peter
51384ca53c
* register calling is left-right
...
* parameter ordering
* left-right calling inserts result parameter last
2003-11-23 17:05:15 +00:00
peter
19727a3609
* don't search for overloads in parents for constructors
2003-10-30 16:23:13 +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
079e489b08
* absolute to object field supported, fixes tb0458
2003-10-28 15:36:01 +00:00
peter
6878c55c80
* write derefdata in a separate ppu entry
2003-10-22 20:39:59 +00:00
peter
fcabdbbf35
* fixed unitsym-globalsymtable relation so the uses of a unit
...
is counted correctly
2003-10-22 15:22:33 +00:00
peter
921502cce3
* fix writing of widechar to ppu
2003-10-21 18:14:30 +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
peter
95f132db3d
* set_varstate cleanup
2003-10-08 19:19:45 +00:00
peter
e720d73bd9
* compare_paras() has a parameter to ignore hidden parameters
...
* cross unit overload searching ignores hidden parameters when
comparing parameter lists. Now function(string):string is
not overriden with procedure(string) which has the same visible
parameter list
2003-10-07 21:14:32 +00:00
peter
e27d6f67da
* inline supported again, LOC_REFERENCEs are used to pass the
...
parameters
* inlineparasymtable,inlinelocalsymtable removed
* exitlabel inserting fixed
2003-10-07 15:17:07 +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
349fceb4fc
* has_local_copy gdb fix
2003-09-25 21:25:37 +00:00
peter
545f437740
* fixed stabs for globals,static
2003-09-25 16:18:54 +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
76a53a375d
* varspez in calls to push_addr_param
2003-09-16 16:17:01 +00:00
peter
aca99d30e8
* fix previous commit, also include objectsymtable
2003-09-14 13:20:12 +00:00
peter
8dd0a4027a
* support mulitple overloads in implementation, this is delphi
...
compatible
* procsym only stores the overloads available in the interface
2003-09-14 12:58:00 +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
daniel
cdb8a15f4a
* Some more R_NO changes
...
* Preventive code to loadref added
2003-08-20 20:29:06 +00:00
peter
af3946938a
* check if owner.defowner is valid when checking private/protected
2003-07-05 22:41:59 +00:00
pierre
ecaa77a503
* single threadvar debugging support
2003-07-04 22:41:41 +00:00
peter
0dceec9a64
* current_procdef removed, use current_procinfo.procdef instead
2003-06-13 21:19:30 +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
5a59576557
* fix to compile without gdb
2003-06-05 17:53:30 +00:00
florian
b84cead281
* absolutesyms aren't fpuregable either
2003-06-02 22:59:17 +00:00
Jonas Maebe
7d1f5c8330
* fixed intregister bug
...
* fixed error in my previous commit: vo_(fpu)regable should only be set
for (inline)localsymtable and (inline)parasymtable entries
2003-05-30 18:48:17 +00:00
Jonas Maebe
6c7f3ad02e
* the vartype field of tvarsym is now a property, because is_XXXregable
...
must be updated when the vartype is changed
2003-05-30 13:35:10 +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
peter
b42efec29d
* create rtti label using newasmsymboldata and update binding
...
only when calling tai_symbol.create
* tai_symbol.create_global added
2003-05-12 18:13:57 +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
Jonas Maebe
e514b12f7a
* fixed stabs generation for local variables on systems where they have
...
a positive offset relative to the stack/framepointer
2003-04-27 10:03:18 +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
4cee86cad2
* fix operator overload search parameter order
2003-04-23 13:13:58 +00:00
peter
8da3f59d32
* vs_hidden released
2003-04-10 17:57:52 +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
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
daniel
55a161bbbf
* Tregister changed into a record
2003-01-08 18:43:56 +00:00
daniel
5041b70618
* Removed ifdefs around notifications
...
ifdefs around for loop optimizations remain
2003-01-03 12:15:55 +00:00
michael
fbd28675c9
+ Patch from peter to support initial values for local variables
2003-01-02 11:14:02 +00:00
peter
d0725b2e7d
* high value insertion changed so it works also when 2 parameters
...
are passed
2003-01-01 22:51:03 +00:00
daniel
158e9689d7
+ Notification implementation complete
...
+ Add for loop code optimization using notifications
results in 1.5-1.9% speed improvement in nestloop benchmark
Optimization incomplete, compiler does not cycle yet with
notifications enabled.
2002-12-31 09:55:58 +00:00
daniel
038fec836e
* Some work on notifications
2002-12-30 22:44:53 +00:00
peter
c466e75da1
* fix crashes when searching symbols
2002-12-27 18:07:44 +00:00
peter
b52fbd46ba
* fix stupid copy&paste bug in binary operator search
2002-12-20 16:02:22 +00:00
peter
dfb2918780
* fix order of procdefs in procsym, procdefs are now always appended
...
so that loading from a ppu will keep the same order. This is
important for the generation of VMTs
2002-12-16 22:08:31 +00:00
peter
409bc6f4dc
* better error message when no operator is found for equal
2002-12-11 22:39:23 +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
peter
dc66eafb0b
* merged cdecl and array fixes
2002-12-06 17:51:09 +00:00
peter
3d696d9c7c
* tvarsym.get_push_size replaced by paramanager.push_size
2002-11-27 20:04:09 +00:00
peter
26fcfc6b6f
* only find real equal procvars
2002-11-27 02:34:20 +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
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
53aa63ead1
+ align RTTI tables
2002-11-09 15:30:07 +00:00
peter
fb36caedf1
* give correct fileposition for undefined forward procs
2002-10-13 21:33:37 +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
peter
c597544d99
* split boolean check in two lines for easier debugging
2002-10-05 00:52:20 +00:00
florian
e1c908703a
+ constsym with type=constguid can be written to ppu now,
...
fixes web bug #1820
2002-09-26 12:04:53 +00:00
peter
cea50f7185
* add argument to equal_paras() to support default values or not
2002-09-16 14:11:12 +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
carl
121dfde260
* bugfix 2109 (bad imho, but only way)
2002-09-08 11:10:17 +00:00
florian
e4664f0ed6
+ tvarsym.paraitem added
2002-09-07 18:17:41 +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
93f33a3d0c
* internalerror instead of crash in getprocdef
2002-09-05 14:51:42 +00:00
daniel
b0364566d1
* Make Tprocdef.defs protected
2002-09-03 16:26:26 +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
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
5c57932695
* fixed loop in concat_procdefs
2002-08-25 09:06:21 +00:00
peter
70028e433d
* write address of varsym always
2002-08-20 16:54:40 +00:00
daniel
ba29715c7a
* Tcallnode.det_resulttype rewritten
2002-08-20 10:31:26 +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
e313bab4ff
* first part of procinfo rewrite
2002-08-17 09:23:33 +00:00
carl
745efb2c47
* issameref() to test if two references are the same (then emit no opcodes)
...
+ ret_in_reg to replace ret_in_acc
(fix some register allocation bugs at the same time)
+ save_std_register now has an extra parameter which is the
usedinproc registers
2002-08-16 14:24:57 +00:00
florian
af4302bc67
* more fixes for ppc calling conventions
2002-08-13 21:40:55 +00:00
carl
9da171faf2
+ stab register indexes for powerpc (moved from gdb to cpubase)
...
+ tprocessor enumeration moved to cpuinfo
+ linker in target_info is now a class
* many many updates for m68k (will soon start to compile)
- removed some ifdef or correct them for correct cpu
2002-08-12 15:08:39 +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
daniel
950b60d3f8
* Added important comment
2002-07-23 10:13:23 +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
daniel
94e5bd51a1
* Register variables are now possible for global variables too. This is
...
important for small programs without procedures.
2002-07-20 17:45:29 +00:00