Jonas Maebe
d03841dc16
* store register para's to memory before copying the valuepara's, because
...
that one requires them to be there already (and it calls subroutines ->
could overwrite those registers)
2003-04-27 16:30:34 +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
florian
b5d749d24d
* fixed passing of fpu values by fpu register
2003-04-26 17:21:08 +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
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
9ed2ce8c12
* removed some notes/hints
2003-04-22 14:33:38 +00:00
peter
e248c0ece4
* fixed C style array of const
...
* fixed C array passing
* fixed left to right with high parameters
2003-04-22 13:47:08 +00:00
daniel
25059e21b6
+ Implemented the actual register allocator
...
+ Scratch registers unavailable when new register allocator used
+ maybe_save/maybe_restore unavailable when new register allocator used
2003-04-22 10:09:34 +00:00
Jonas Maebe
56132c1a9c
* assembler procedures now again get a stackframe if they have local
...
variables. No space is reserved for a function result however.
Also, the register parameters aren't automatically saved on the stack
anymore in assembler procedures.
2003-04-16 09:26:55 +00:00
olle
a069aadad0
* changed newasmsymbol to newasmsymboldata for data symbols
2003-04-06 21:11:23 +00:00
peter
4a0b87ac59
* fix classmethod from classmethod call
...
* move BeforeDestruction/AfterConstruction calls to
genentrycode/genexitcode instead of generating them on the fly
after a call to a constructor
2003-03-30 20:59:07 +00:00
peter
c4ddcc78a8
* generic constructor working for i386
...
* remove fixed self register
* esi added as address register for i386
2003-03-28 19:16:56 +00:00
peter
ec2a9a6ef8
* fix range error
2003-03-17 15:52:20 +00:00
Jonas Maebe
d168ae15df
* lots of new regallocator fixes, both in generic and ppc-specific code
...
(ppc compiler still can't compile the linux system unit though)
2003-03-11 21:46:24 +00:00
daniel
18ab545cb7
* Fixed the optimizer
2003-02-26 21:15:43 +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
2c19def917
* bugfix of FPU emulation code
2003-02-15 22:17:38 +00:00
florian
2102ce7031
* fixed some PowerPC issues
2003-01-09 22:00:53 +00:00
florian
34a91d9171
* fixed broken PowerPC compiler
2003-01-09 20:41:10 +00:00
daniel
55a161bbbf
* Tregister changed into a record
2003-01-08 18:43:56 +00:00
florian
cd4c8de820
* web bug #2214 fixed: ie 10 in const array constructors
2002-12-29 23:51:43 +00:00
peter
af98b48c22
* stackpointer_alloc added for adjusting ESP. Win32 needs
...
this for the pageprotection
2002-12-24 15:56:50 +00:00
florian
fbbaf36800
* added missing then, Carl did you really a make fullcycle :) ?
2002-12-05 14:39:21 +00:00
carl
6e46f3424c
* bugfix of problems with profile code which clobbers some registers
2002-12-03 22:13:39 +00:00
carl
2f89d59534
* warning of portabilitiy problems with parasize / localsize
2002-12-01 22:06:59 +00:00
carl
65113dcece
+ profiling support for Win32
2002-11-30 18:44:57 +00:00
carl
c79bdd9179
* try to fix profiling for win32
2002-11-30 14:39:15 +00:00
florian
593e30b839
* push_value_para didn't release floatdef locations, fixes tw2045
2002-11-28 23:28:14 +00:00
peter
8c82be898d
* copy_value_on_stack method added for cdecl record passing
2002-11-27 02:33:19 +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
peter
a496dbe1ff
* pass proccalloption to ret_in_xxx and push_xxx functions
2002-11-18 17:31:54 +00:00
mazen
41153e2b1a
+ return_result_reg and function_result_reg are now used, in all plateforms, to pass functions result between called function and its caller. See the explanation of each one
2002-11-17 17:49:08 +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
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
mazen
f97aa452bd
* SPARC calling mechanism almost OK (as in GCC./mppcsparc )
2002-11-10 19:07:45 +00:00
mazen
f170b21371
* parameter handling updated
2002-11-03 20:22:40 +00:00
peter
83dae76625
+ $IMPLICITEXCEPTIONS switch to turn on/off generation of the
...
implicit exception frames for procedures with initialized variables
and for constructors. The default is on for compatibility
2002-10-16 19:01:43 +00:00
peter
798289b1f3
* only use init tables for threadvars
2002-10-14 19:42:33 +00:00
peter
6d4fcce014
* Add finalization of typed consts
...
* Finalization of globals in the main program
2002-10-06 19:41:30 +00:00
carl
d170f6625f
* fix heap leaks
2002-10-05 15:18:42 +00:00
florian
d5f0cbbf2b
* fixes to common code to get the alpha compiler compiled applied
2002-09-30 07:00:44 +00:00
carl
8733061c78
* stack checking cannot be called before system unit is initialized
...
* MC68020 define
2002-09-22 14:02:34 +00:00
Jonas Maebe
a15d8cfe39
* a_load_reg_reg() now has two size parameters: source and dest. This
...
allows some optimizations on architectures that don't encode the
register size in the register name.
2002-09-17 18:54:01 +00:00
florian
55c7896d06
* improved handling of procedures with register calling conventions
2002-09-10 21:48:30 +00:00
peter
dcd9e0107c
* old logs removed and tabs fixed
2002-09-07 15:25:00 +00:00
peter
c850b953c0
* fixed (not) pushing of empty parameters
...
* fixed implicit initialization/finalization generation
* fixed/optimized local copy of value arguments init/final
2002-09-02 18:44:48 +00:00
peter
f77536fece
* use index register when available for generating a reference with
...
only a signle register. Using the base register could possibly
destroy the framepointer
2002-09-01 19:27:34 +00:00
peter
5a06f334b7
* fixed maybe_save that did not support a reference with only
...
a index register. It now also updates the location with the new
base register only
2002-09-01 18:50:20 +00:00
peter
a4e309d6ae
* removevaluepara added to fix the stackpointer so restoring of
...
saved registers works
2002-09-01 14:42:41 +00:00