Commit Graph

290 Commits

Author SHA1 Message Date
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
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
Jonas Maebe
b19a9cfc0a * do callparatemp stuff only after the parameters have been firstpassed,
because some nodes are turned into calls during the firstpass
2003-04-27 09:08:44 +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
peter
32d79d4f80 * fix warning for calling constructor inside constructor 2003-04-23 13:21:06 +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