tom_at_work
3b6d5c3676
- cleanup, fixing of uninitialized variables, missing return values and unused variables
...
git-svn-id: trunk@5502 -
2006-11-26 21:54:23 +00:00
Jonas Maebe
5444207df8
* better fix for tw1623 (generates more optimal code)
...
git-svn-id: trunk@5390 -
2006-11-15 14:15:00 +00:00
Jonas Maebe
248046320a
* fixed inlining of functions called in their own parameters (tw1623)
...
git-svn-id: trunk@5389 -
2006-11-15 09:56:11 +00:00
peter
0557ddc342
* removed typed const, it is now handled by staticvarsym
...
* globalvarsym renamed to staticvarsym
* fixed invalid regvar use in init when the finalize also uses the var
git-svn-id: trunk@5290 -
2006-11-08 21:04:22 +00:00
peter
f88e6a834e
* typo
...
git-svn-id: trunk@5255 -
2006-11-05 21:19:41 +00:00
florian
5cbc15b339
* some variant dispatching stuff fixed
...
git-svn-id: trunk@5254 -
2006-11-05 21:07:59 +00:00
florian
a13d358f1e
* first partially working implementation of variant com invoking
...
git-svn-id: trunk@5247 -
2006-11-05 15:34:15 +00:00
florian
c947295cb8
+ ttertiarynode
...
* traise node refactored using tertiarynode
* more dipatch stuff
git-svn-id: trunk@5215 -
2006-11-03 23:03:31 +00:00
peter
e17b424e28
* refactor procsym procdef list
...
git-svn-id: trunk@5210 -
2006-11-03 18:44:46 +00:00
peter
658c46b903
* remove tdictionary and tindexarray
...
* symtables based on TFPHashObjectList and TFPObjectList
* rename torddef.typ to torddef.ordtype
* rename tfloatdef.typ to tfloatdef.floattype
* rename tdef.deftype to tdef.typ
* remove obsolete browser code, browcol is kept so the ide
can still be compiled
git-svn-id: trunk@5192 -
2006-11-03 00:30:30 +00:00
florian
be2b715d3c
+ parsing of disp variant invokes
...
git-svn-id: trunk@5162 -
2006-11-01 21:23:04 +00:00
florian
ef7bd58c54
* germanism removed (aktfilepos -> current_filepos)
...
git-svn-id: trunk@5099 -
2006-10-30 22:37:31 +00:00
florian
85d63d9fa9
* settings refactored
...
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
daniel
1406181aa5
* Fix incorrect usage of result value.
...
git-svn-id: trunk@5090 -
2006-10-30 10:32:56 +00:00
peter
3078a1927f
* remove ttype
...
* rename old ttype variables *type to *def
* rename resulttypepass to pass_typecheck
* rename pass_2 to pass_generate_code
git-svn-id: trunk@5077 -
2006-10-29 22:19:39 +00:00
daniel
de423ab5b0
+ stringvar[l..h] now valid parameter for open array of char.
...
git-svn-id: trunk@5038 -
2006-10-27 22:23:25 +00:00
daniel
068c0f7952
* Cleaner implementation of pointer index to open array, codegen changes
...
no longer necessary and therefore reverted.
git-svn-id: trunk@5037 -
2006-10-27 20:57:51 +00:00
daniel
2450f5a778
+ First working concept of open_array_procedure(Pbyte_var[0..9]);
...
git-svn-id: trunk@5028 -
2006-10-26 20:30:16 +00:00
Jonas Maebe
0a23786605
- reverted r4880 (wrong varargs reform) and r4838 (wrong removal of
...
varargs/array of const overloads)
* arrayconstructor and array of const are no longer compatible with
the extra varargs parameters (so overloaded varargs and array of
const cdecl functions can be distinguished)
* fixed tprintf2 for the correct varargs syntax
git-svn-id: trunk@4909 -
2006-10-14 17:39:00 +00:00
florian
9288a2f76d
+ more verbose printnode for call nodes
...
git-svn-id: trunk@4892 -
2006-10-13 21:19:14 +00:00
Jonas Maebe
e9cabd17e1
* fixed handling of "varargs" procedures (i.e., those without an explicit
...
array-of-const parameter)
git-svn-id: trunk@4880 -
2006-10-13 12:35:17 +00:00
florian
02d0ac4c3e
+ only procedures doing recursive calls are checked for tail recursivity
...
+ parameters are tested if they are usable with tail recursion removal
git-svn-id: trunk@4853 -
2006-10-10 20:29:48 +00:00
peter
d07f470b71
* remove ifdef fpc
...
git-svn-id: trunk@4819 -
2006-10-07 13:43:34 +00:00
micha
d704af7216
fix compilation for {$T+} linux/win
...
git-svn-id: trunk@4794 -
2006-10-04 20:43:55 +00:00
peter
2f0ce31751
* string concat changed from function to procedure to
...
allow runtime optimization if the destination is the
same as a source parameter
* tassignmentnode now sets aktassignmentnode global that can be used
to use the left node as a destination parameter and
skip the assignment
* disabled all cpu specific shortstr concat/append
git-svn-id: trunk@4770 -
2006-10-02 20:00:06 +00:00
Jonas Maebe
733f559267
* also perform C varargs type conversions for cdecl procedures declared
...
as "varargs" instead of using an array of const parameter
git-svn-id: trunk@4572 -
2006-09-08 16:04:15 +00:00
yury
2df42b29af
* removed "Note: Local variable "X" is assigned but never used" when the variable is passed to procedure/function as OUT parameter.
...
git-svn-id: trunk@4257 -
2006-07-19 18:19:41 +00:00
Jonas Maebe
84d1fc929f
* properly set regvarability of parameters and local variables of inlined
...
functions
* fixed setting of expectloc for fields of regvar'ed records
git-svn-id: trunk@3607 -
2006-05-20 23:37:55 +00:00
Jonas Maebe
e0250bcdb4
* never remove regvar-ability of parameters passed by reference
...
(previously worked only for var/out, now also for const and
is more generic)
git-svn-id: trunk@3554 -
2006-05-17 13:38:02 +00:00
peter
ae0010ad6c
* support proc to procvar conversion for overloaded procdefs passed to parameters
...
git-svn-id: trunk@2997 -
2006-03-21 07:51:54 +00:00
Jonas Maebe
4db6e1ddb8
* moved type conversion of C varargs from tcallnode to
...
tarrayconstructornode.inset_typeconvs() and fixed them:
* integers < 32 bit are converted to 32 bit (this was previously
done in the code generator for some targets, and not for others)
* currency is also converted to double for targets where currency = int64
* single is converted to double, except for x86_64 (is at least
necessary on darwin/ppc, darwin/i386 and linux/i386)
* enums are converted to 32 bit ints
* procvars are converted to pointers
* proper errors are given for various unsupported types
NOTE: in C, floating point constants are by default double, while in
FPC they are of type extended. On platforms where extended <> double,
such constants when passed to C varargs are automatically converted
to double by default (gives warning). If you want to pass them as
single or extended or get rid of the warning, use an explicit typecast
* increased ppu version because of introduction of new node flag
(nf_cvarargs for tarrayconstructornode)
* fixed tests/test/cg/tprintf
* changed tests/test/cg/cdecl/taoc5 to use explicit typecasts for
floating point constants passed to C varargs functions.
git-svn-id: trunk@2949 -
2006-03-17 22:26:48 +00:00
peter
b6e35a200e
* rewrite of optimizer options
...
git-svn-id: trunk@2901 -
2006-03-13 09:05:50 +00:00
peter
38c0ae73da
Merged revisions 2775,2788-2789 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/linker/compiler
........
r2775 | peter | 2006-03-05 22:43:30 +0100 (Sun, 05 Mar 2006) | 2 lines
* merge ppu changes to keep ppus the same
........
r2788 | peter | 2006-03-06 12:59:14 +0100 (Mon, 06 Mar 2006) | 2 lines
* Add TFPList and TFPObjectList
........
r2789 | peter | 2006-03-06 13:01:37 +0100 (Mon, 06 Mar 2006) | 2 lines
* fix powerpc
........
git-svn-id: trunk@2790 -
2006-03-06 12:04:44 +00:00
Jonas Maebe
791be20f28
* committed wrong file in r2614 (ncal.pas instead of pexpr.pas)
...
git-svn-id: trunk@2616 -
2006-02-17 09:05:03 +00:00
Jonas Maebe
a15505521c
* fixed handling of wrong invocations of slice + improved error reporting
...
git-svn-id: trunk@2614 -
2006-02-16 20:27:31 +00:00
Jonas Maebe
765fe2b2ab
* fixed bug #4737 (check for potential range errors in for-loop
...
assignment, report correct column for potential range errors of
call parameters)
* refactored code to check potential range check errors (check_ranges
in htypechk)
git-svn-id: trunk@2501 -
2006-02-09 17:39:22 +00:00
Jonas Maebe
0dc6d51c08
* fixed displaying of hints such for procedures and functions
...
(and moved check_hints from pbase to htypechk) (forgot to commit earlier)
git-svn-id: trunk@2469 -
2006-02-07 14:23:38 +00:00
peter
232555904e
* symtablestack cleanup and rewrite
...
git-svn-id: trunk@2448 -
2006-02-05 22:24:18 +00:00
peter
45176ea2a8
* split tstringtype for stringdef and stringconstnode
...
to prevent wrong typecasts
git-svn-id: trunk@2276 -
2006-01-13 17:20:27 +00:00
Jonas Maebe
9c2ee3a722
* fixed web bug #4086 : do not create a refcounted temp for
...
interface temps created for complex callnodes
git-svn-id: trunk@2165 -
2006-01-04 21:07:10 +00:00
florian
f7d2c47f73
+ no stackframe is generated for i386 if possible
...
git-svn-id: trunk@2162 -
2006-01-04 19:19:06 +00:00
Jonas Maebe
cbb59be2f1
* fixed web bug #4651 + test
...
git-svn-id: trunk@2108 -
2006-01-01 20:19:38 +00:00
Jonas Maebe
d6559f594d
* also make "out" parameters unique
...
git-svn-id: trunk@2043 -
2005-12-23 23:48:48 +00:00
Károly Balogh
238964e443
Various m68k fixes/additions:
...
- fixes in asmreader, basic stuff works again, the rest is untested
- removed lot of unnecessary ungetcpuregister()s
- various other fixes i forgot
+ basic amigaos syscalls support. still lacks explicit funcretloc
git-svn-id: trunk@1943 -
2005-12-13 20:42:15 +00:00
Jonas Maebe
52ca5e6922
* use more precise vs_* information to replace less parameters of inlined
...
procedures with const and value parameters with temps, allowing a bit
more value propagation
+ tinline6.pp for testing wrong propagation of value parameters in
dangerous situations
git-svn-id: trunk@1914 -
2005-12-10 17:01:07 +00:00
Jonas Maebe
42ec76598c
* new categories for vs_*: vs_declared, vs_initialised, vs_read,
...
vs_written, vs_readwritten. vs_initialised is the old vs_assigned;
vs_used has been replaced by vs_read, vs_written and vs_readwritten
* the valid_for_*() routines in htypechk now get an extra parameter to
decide whether or not errors should be reported
git-svn-id: trunk@1913 -
2005-12-10 16:51:26 +00:00
peter
f622915690
* fix infinite loop in createinlineparas
...
git-svn-id: trunk@1456 -
2005-10-18 05:51:13 +00:00
florian
71b90d4d00
+ slice implemented
...
git-svn-id: trunk@1384 -
2005-10-15 16:48:27 +00:00
tom_at_work
b2e1cf2610
* powerpc64 port now (manually) cycles, most test programs in tests/test are fine too
...
* fixed bug in ncal.pas which in some circumstances treated the hidden length parameter for open arrays as 32 bit integer
git-svn-id: trunk@1303 -
2005-10-05 21:55:25 +00:00
peter
89297d2c39
* move all stabs ($ifdef gdb) code to dbgstabs
...
git-svn-id: trunk@1255 -
2005-10-02 11:17:05 +00:00
peter
edf553a223
* string constants are now array of char until
...
they are converted to a specific string type
git-svn-id: trunk@1254 -
2005-10-02 11:08:58 +00:00
peter
a720145fd1
* remove obsolete pass2inline code
...
git-svn-id: trunk@1198 -
2005-09-25 20:02:17 +00:00
peter
2f0fdd1847
* cleaner fix for tb0496 (r1185)
...
git-svn-id: trunk@1196 -
2005-09-25 19:23:37 +00:00
florian
cdd5b61af8
+ internal error added
...
git-svn-id: trunk@1069 -
2005-09-10 09:29:56 +00:00
florian
a53c9e2666
* fixed stupid copy/paste which turned softfloat always off
...
* fixed wince softfloat compiler proc. to be correctly named also when used outside the system unit
git-svn-id: trunk@966 -
2005-08-28 21:08:23 +00:00
florian
5e8db3eb5a
* better error message if a compiler can't find a compilerproc
...
git-svn-id: trunk@943 -
2005-08-25 20:21:06 +00:00
florian
80f1b0953e
* inlining on x86_64 fixed (not broken in fixes branch, needs no merging)
...
git-svn-id: trunk@755 -
2005-07-26 20:44:58 +00:00
Jonas Maebe
20e1ac4640
* fixed inlining of method calls with a methodpointer in a temp
...
+ print inline trees to screen if compiler is compiled with -ddebuginline
git-svn-id: trunk@704 -
2005-07-19 15:03:48 +00:00
Jonas Maebe
2d58a4d4d7
* fixed disabling of recusive inlining after pocall_inline to po_inline
...
change
git-svn-id: trunk@699 -
2005-07-19 11:09:24 +00:00
Jonas Maebe
8bc4e0a32f
* inline and compilerproc are now procoptions instead of proccall types
...
(so both can be combined with each other, as well as with other calling
conventions)
* defined COMPPROCINLINEFIXED so SYSTEMINLINE is again activated
git-svn-id: trunk@658 -
2005-07-18 15:27:14 +00:00
florian
7cd67ea3f0
* node optimizer branch merged
...
* gotonode and gotolabel refactored
* -Nu added to enable for loop unrolling
git-svn-id: trunk@446 -
2005-06-19 17:42:10 +00:00
peter
34ed3ae7a5
* don't use normal assingments for inlining of formal consts
...
git-svn-id: trunk@393 -
2005-06-13 06:57:54 +00:00
Jonas Maebe
893f45c9e2
* fixed web bug #4039 (include methodpointer init/fini for inlined methods)
...
git-svn-id: trunk@390 -
2005-06-12 16:40:10 +00:00
florian
21038de78d
+ started with refactoring det_resulttype
...
+ dosimplify
* inlinenig makes use of dosimplify
git-svn-id: trunk@140 -
2005-05-29 15:15:38 +00:00
fpc
790a4fe2d3
* log and id tags removed
...
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
50778076c3
initial import
...
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
michael
55e76063df
* Fix methodpointer copy from callnode to loadnode
2005-04-06 11:49:37 +00:00
peter
521b7cfa3b
* load all complex loads of parameters that are needed multiple times
...
to a temp to prevent calling functions twice
2005-04-05 21:07:43 +00:00
peter
e71066495c
fix type of temps generated for parameters during inlining
2005-03-28 15:05:17 +00:00
peter
3f9d6ab32f
* add hint when passing an uninitialized variable to a var parameter
2005-03-25 22:20:18 +00:00
peter
20ad7813c2
* fix empty varargs codegeneration for x86_64
2005-03-14 20:18:46 +00:00
peter
047c28d993
* member call to constructor returns void to prevent
...
generating unexpected code. Otherwise the return value is always
equal to self, which can also be directly accessed
2005-02-17 17:50:26 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
florian
5007b3e395
* inherited; works now in delphi mode for private methods; looks like a delphi bug
2005-02-01 22:50:50 +00:00
peter
8d251e8506
* unit mapping rewrite
...
* new derefmap added
2005-01-19 22:19:41 +00:00
peter
720815e13b
* fix aftercosntruction calls, vmt=1 is used to indicate that
...
afterconstruction needs to be called
* only accept resourcestring when objpas is loaded
2005-01-04 16:36:31 +00:00
peter
a15f1c3283
* Don't release methodpointer. It is maybe still needed when we need to
...
convert the calln to loadn
2005-01-02 16:58:48 +00:00
peter
c1bf99c30a
* fix crash with callnode.ppuload when symtableproc=nil
2004-12-27 16:36:10 +00:00
peter
ced6bf20cd
* fix lineinfo for with blocks
2004-12-26 16:22:01 +00:00
peter
29db12ecfa
* disable inlining across units when the inline procedure references
...
a variable or procedure in the static symtable
2004-12-15 21:08:15 +00:00
peter
d387fda801
* give error when paraloc is not filled in order_parameter
2004-12-15 19:30:16 +00:00
peter
78c2af7b3c
* set vo_explicit_paraloc flag
2004-12-07 16:11:52 +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
57dc23a294
* fix crashes with nodeinlining
2004-12-03 16:07:04 +00:00
peter
959bdccc49
* disable pass2inline
2004-12-02 19:26:14 +00:00
Jonas Maebe
38db3679d8
* only try to replace locals from the inlined procedure with temps,
...
cycle now works with -dNODEINLINE
2004-11-28 14:34:59 +00:00
Jonas Maebe
f244dea6ec
* fixed some bugs in the node inlining code due to the transition from
...
dynamic array to tlist
* fixed some register temp bugs (node inlining still does not work again
though)
2004-11-27 22:43:01 +00:00
peter
576e1825aa
* enabled pass1 inlining from Jonas
2004-11-22 22:19:00 +00:00
peter
8cf8c54609
* fixed varargs
...
* replaced dynarray with tlist
2004-11-22 22:01:19 +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
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
7c0b6e129e
* fixed wrong typecasts
2004-11-09 17:26:47 +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
0d506c579e
* removed wrong check for symtableprocentry
2004-11-01 18:16:48 +00:00
peter
6a0aa09b20
* give IE instead of crash when no procsym is passed for calln
2004-11-01 16:58:57 +00:00
peter
c95a859f0a
* generic tlocation
...
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
peter
e7459f5466
* heap and heapsize removed
...
* checkpointer fixes
2004-10-25 15:38:41 +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
560a790a57
* gen high tree makes copy in temp when there is a calln
2004-10-12 14:36:38 +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
63cf4464d3
* tvarsym.varregable added, split vo_regable from varoptions
2004-10-08 17:09:43 +00:00
peter
33a834821f
* paraloc branch merged
2004-09-21 17:25:12 +00:00
peter
384e764831
* use realname for abstract procs found
2004-09-13 20:29:00 +00:00
peter
8694a4b86b
* use objrealname in Message1
2004-08-28 20:00:50 +00:00
peter
923569eee2
* fixed crash when passing array constructor to formal parameter
2004-08-22 10:17:13 +00:00
florian
6368652be2
* fixed several sparc alignment issues
...
+ Jonas' inline node patch; non functional yet
2004-08-14 14:50:42 +00:00
Jonas Maebe
ddf175f171
+ temps can now also hold fpu values in registers (take care with use,
...
bacause of the x86 fpu stack)
* fpu parameters to node-inlined procedures can now also be put in
a register
2004-07-16 19:45:15 +00:00
Jonas Maebe
7cdc049df1
* the condition for when to use a temp in case of reference var/const
...
parameters was inverse
2004-07-15 21:02:05 +00:00
Jonas Maebe
c7fbf7b11b
+ (incomplete) node_complexity function to assess the complexity of a
...
tree
+ support for inlining value and const parameters at the node level
(all procedures without local variables and without formal parameters
can now be inlined at the node level)
2004-07-15 19:55:39 +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
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
330a86b7d6
* fix tcallnode.getcopy. the parameters need to be copied after
...
methodpointerinit is copied
2004-05-25 18:51:49 +00:00
peter
eca9713796
* fix passing of array to open array of array (bug 3113)
2004-05-24 17:31:51 +00:00
peter
b86f2c6a25
* methodpointer is loaded into a temp when it was a calln
2004-05-23 18:28:40 +00:00
peter
72365ec95b
* implicit_finally flag must be set in pass1
...
* add check whether the implicit frame is generated when expected
2004-05-23 15:06:20 +00:00
Károly Balogh
3175dd4c6b
* few small changes to add syscall support to M68k/Amiga target
2004-05-12 13:21:09 +00:00
florian
e8098f6b71
+ added lib support for Amiga/MorphOS syscalls
2004-05-01 22:05:01 +00:00
peter
d3f035df50
* removed unused paravisible
2004-03-14 20:07:13 +00:00
peter
b8fad24f31
* fix check for parameter length when calling procvar, broken by the
...
previous default parameter for procvar fix
2004-03-04 17:25:16 +00:00
peter
2213f0433c
* fix procvars with default paras
2004-02-26 16:09:49 +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
peter
c844c5a505
* procvar cleanup
2004-02-20 21:55:59 +00:00
florian
06a33abebd
* fixed arg. area calculation
2004-02-19 17:07:42 +00:00
peter
3a3fdde6d1
* compare_defs_ext has now a options argument
...
* fixes for variants
2004-02-13 15:42:21 +00:00
peter
ee569d7817
* make extcycle is working again
2004-02-12 15:54:03 +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
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
7a6b6f4bd4
* Some minor stuff
...
* Managed to eliminate speed effects of string compression
2004-01-15 15:16:17 +00:00
peter
2063100f51
* ignore hidden parameters when default parameters are used
2004-01-14 17:53:58 +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
florian
d38abc3a3f
+ setting of bit 6 of cr for c var args on ppc implemented
2003-12-28 22:09:12 +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
9fd5217032
* some x86-64 compilation fixe
2003-12-20 12:38:51 +00:00
florian
77f0eff7db
* better inheritence of procinfo flags of inlined procedures
2003-12-16 22:09:31 +00:00
florian
2258e941af
+ inlined procedures inherit procinfo flags
2003-12-16 21:29:24 +00:00
peter
57b4d5a0b9
* paralength is private again
2003-12-08 22:37:28 +00:00
peter
52ffda0bc4
* varargspara is left-right, so adding paraitems needs insert
...
instead of concat
2003-12-08 16:34:23 +00:00
peter
9aba5c8c7a
* fixed some crashes
...
* fixed varargs and register calling probs
2003-12-01 18:44:15 +00:00
peter
b26e3c444a
* reversed offset calculation for caller side so it works
...
correctly for interfaces
2003-11-28 17:24:22 +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
f663d2488f
* cross unit inlining fixed
2003-11-10 22:02:52 +00:00
peter
a3c14e9c2d
* procvar default value support
2003-11-10 19:09:29 +00:00
peter
25bf6452b4
* fixed calling classmethod for other object from classmethod
2003-11-06 15:54:32 +00:00
peter
9168d87b35
* use explicit typecast when generating the high value
2003-11-01 16:17:48 +00:00
peter
b34b0141d5
* support creating classes using <class of tobject>.create
2003-10-31 15:52:58 +00:00
peter
19727a3609
* don't search for overloads in parents for constructors
2003-10-30 16:23:13 +00:00
florian
6a06df943b
* fixed passing of dyn. arrays to open array parameters
2003-10-29 22:01:20 +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
aaf9043988
* only search for overloaded constructors in classes
2003-10-21 18:17:02 +00:00
peter
a57d25b3ed
* also search in parents for overloads when calling a constructor
2003-10-21 15:14:55 +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
daniel
b2343f4b16
* Register allocator splitted, ans abstract now
2003-10-09 21:31:37 +00:00
florian
8fcfcc6606
* fixed constructor call in class methods
2003-10-09 15:00:13 +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
da9f5e2319
* c style array of const generates callparanodes
...
* varargs paraloc fixes
2003-10-05 21:21:52 +00:00
peter
d3e0bca919
* don't check for abstract methods when the constructor is called
...
by inherited
* fix private member error instead of wrong number of parameters
2003-10-05 12:54:17 +00:00
florian
538164aa0a
* fixed TP 6.0 styled inherited call; fixes IDE with 1.1
2003-10-04 19:00:52 +00:00
peter
3a92a2a25a
* parameter alignment fixes
2003-10-03 22:00:33 +00:00
peter
9f2ec4dabd
* fix IE when callnode was firstpassed twice
2003-10-03 14:44:38 +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
peter
2c4df4364e
* fix check that filedef needs var para
2003-09-28 21:44:55 +00:00
peter
99bb20747e
* parent framepointer changed to hidden parameter
...
* tloadparentfpnode added
2003-09-28 17:55:03 +00:00
peter
2392f28675
* parameter fixes
2003-09-25 21:28:00 +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
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
peter
f86df421ce
* only check for size matches when parameter is enum,ord,float
2003-08-23 18:42:57 +00:00
peter
6731abb0db
* fixed some reported bugs
2003-08-10 17:25:23 +00:00
Jonas Maebe
a783aea0b9
* fixed bogus abstract method warnings
2003-07-25 09:54:57 +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
Jonas Maebe
75b147ba60
* fixed revious commit
2003-06-15 16:47:33 +00:00
Jonas Maebe
4e7fac9e7e
* callparatemp fix: if a threadvar is a parameter, that paramter also
...
does a call
2003-06-15 15:10:57 +00:00
peter
0dceec9a64
* current_procdef removed, use current_procinfo.procdef instead
2003-06-13 21:19:30 +00:00
Jonas Maebe
10eb92c546
* optimized assignments with on the right side a function that returns
...
an ansi- or widestring
2003-06-08 20:01:53 +00:00
Jonas Maebe
8e09d78f79
+ ability to change the location of a ttempref node with changelocation()
...
method. Useful to use instead of copying the contents from one temp to
another
+ some shortstring optimizations in tassignmentnode that avoid some
copying (required some shortstring optimizations to be moved from
resulttype to firstpass, because they work on callnodes and string
addnodes are only changed to callnodes in the firstpass)
* allow setting/changing the funcretnode of callnodes after the
resulttypepass has been done, funcretnode is now a property
(all of the above should have a quite big effect on callparatemp)
2003-06-08 18:27:15 +00:00
peter
563e8d205f
* creating class with abstract call checking fixed
...
* there will be only one warning for each class, the methods
are listed as hint
2003-06-08 11:42:33 +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
4d67ae9f31
* fix check for procedure without parameters
...
* calling constructor as member will not allocate memory
2003-06-03 21:05:48 +00:00
daniel
41e0bc4cec
* Register allocator finished
2003-06-03 13:01:59 +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
b1369666c4
* inline fixes
2003-05-25 08:59:16 +00:00
Jonas Maebe
527153658e
* added missing firstpass for callparatemp code
2003-05-24 17:16:37 +00:00
peter
8ff5792776
* remove some unit dependencies
...
* current_procinfo changes to store more info
2003-05-23 14:27:35 +00:00
Jonas Maebe
56b4360422
* fixed callparatemp for ansi/widestring and interfacecoms
2003-05-17 14:05:58 +00:00
Jonas Maebe
cb279b2029
* changed tt_persistant to tt_persistent :)
...
* tempcreatenode now doesn't accept a boolean anymore for persistent
temps, but a ttemptype, so you can also create ansistring temps etc
2003-05-17 13:30:08 +00:00
peter
abca40f041
* regvar fixes
2003-05-16 14:33:31 +00:00
Jonas Maebe
bfd98ec80d
* fixed callparatemp so it works with vs_var, vs_out and formal const
...
parameters
2003-05-14 19:35:50 +00:00
peter
b52ba06662
* constructors return in register
2003-05-13 20:53:41 +00:00
peter
a467b84faa
* fixed various crashes
2003-05-13 15:18:49 +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