daniel
81d4cc15c7
* Fixed the fixed trouble
2003-08-20 20:13:08 +00:00
daniel
78ee625c7e
* Fixed some R_NO trouble
2003-08-20 20:11:24 +00:00
Jonas Maebe
66fcf33869
* fix for threadvars with -dnewra
2003-07-20 16:26:43 +00:00
peter
32d076480b
* framepointer fixes for sparc
...
* parent framepointer code more generic
2003-07-06 17:58:22 +00:00
Jonas Maebe
acb3078279
* newra fix for threadvars
2003-07-06 15:25:54 +00:00
Jonas Maebe
3bbea08997
* fixed register allocation for threadvar loads with newra
2003-06-15 15:13:12 +00:00
peter
0dceec9a64
* current_procdef removed, use current_procinfo.procdef instead
2003-06-13 21:19:30 +00:00
peter
a0b9306652
* newra compiles for sparc
2003-06-12 16:43:07 +00:00
Jonas Maebe
dab8ab29cc
* fixed regvar optimization for call_by_reference parameters (no need
...
to load address in another register)
2003-06-09 16:41:52 +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
Jonas Maebe
edb2179730
+ added freeintparaloc
...
* ppc get/freeintparaloc now check whether the parameter regs are
properly allocated/deallocated (and get an extra list para)
* ppc a_call_* now internalerrors if pi_do_call is not yet set
* fixed lot of missing pi_do_call's
2003-06-07 18:57:04 +00:00
peter
d91c880148
* cg.a_load_* get a from and to size specifier
...
* makeregsize only accepts newregister
* i386 uses generic tcgnotnode,tcgunaryminus
2003-06-03 21:11:09 +00:00
daniel
41e0bc4cec
* Register allocator finished
2003-06-03 13:01:59 +00:00
peter
414bd5fa22
* more sparc cleanup
...
* accumulator removed, splitted in function_return_reg (called) and
function_result_reg (caller)
2003-05-30 23:57:08 +00:00
Jonas Maebe
31db518df3
* forgot to commit, a_load_loc_reg change
2003-05-30 23:54:08 +00:00
peter
0799b0663d
* generic fpc_shorstr_concat
...
+ fpc_shortstr_append_shortstr optimization
2003-05-26 19:38:28 +00:00
Jonas Maebe
d321a5aa3d
* fixed framepointer storage: it's now always stored at r1+12, which is
...
a place in the link area reserved for compiler use.
2003-05-24 11:47:27 +00:00
peter
8ff5792776
* remove some unit dependencies
...
* current_procinfo changes to store more info
2003-05-23 14:27:35 +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
8acf67d327
* fixed (last?) remaining -tvarsym(X).address to
...
tg.direction*tvarsym(X).address...
2003-05-12 17:22:00 +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
michael
cf68b27bb9
+ Patch from peter to fix wrong pushing of ansistring function results in open array
2003-04-29 07:28:52 +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
peter
e258c7bf84
* allow multi pass2 changed to global boolean instead of node flag
2003-04-23 10:12:14 +00:00
peter
47489f2376
* firstpass uses expectloc
...
* checks if there are differences between the expectloc and
location.loc from secondpass in EXTDEBUG
2003-04-22 23:50:22 +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
olle
a069aadad0
* changed newasmsymbol to newasmsymboldata for data symbols
2003-04-06 21:11:23 +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
daniel
86bcea6ef5
* Code generator converted to new register notation
...
- Horribily outdated todo.txt removed
2003-02-19 22:00:14 +00:00
daniel
55a161bbbf
* Tregister changed into a record
2003-01-08 18:43:56 +00:00
peter
a0fbe08d83
* remove a lot of code to support typen in loadn-procsym
2003-01-05 22:44:14 +00:00
peter
b994d689a3
* fixes for fpu values in arrayconstructor
2002-12-20 18:13:46 +00:00
peter
1b116848d8
* cdecl array of const fixes
2002-11-27 20:04:38 +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
Jonas Maebe
bd484276cd
* fixed error in my previous commit (the size of the location of the
...
funcretnode must be based on the current resulttype of the node and not
the resulttype defined by the function; these can be different in case
of "absolute" declarations)
2002-11-22 16:22:45 +00:00
peter
a496dbe1ff
* pass proccalloption to ret_in_xxx and push_xxx functions
2002-11-18 17:31:54 +00:00
Jonas Maebe
bb9d5e4dcf
* proper fix for tw2110, also fixes tb0416 (funcretnode of parent
...
function was handled wrong inside nested functions/procedures)
2002-11-15 21:16:39 +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
peter
fe277e4c87
* (hacked) new threadvar relocate code
2002-10-14 19:44:13 +00:00
florian
417e589ad4
* fixed threadvars
2002-10-13 11:22:06 +00:00
carl
e7ba8328ce
* bugfix for 2110 (without -Or), wrong checking was done in returntype
2002-10-03 21:32:02 +00:00
florian
d5f0cbbf2b
* fixes to common code to get the alpha compiler compiled applied
2002-09-30 07:00:44 +00:00
florian
457e32728d
+ support of passing variants to "array of const"
2002-09-26 15:02:05 +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
peter
dcd9e0107c
* old logs removed and tabs fixed
2002-09-07 15:25:00 +00:00
peter
a73ecec989
* fixed register variable loading from parasymtable, the call by
...
reference code was moved wrong
2002-09-01 19:26:32 +00:00