Jonas Maebe
ac24965242
* procedures which use goto/label revert to the older and less
...
efficient regvar allocation scheme
* also allocate regvars before the loops, not just afterwards
git-svn-id: trunk@2192 -
2006-01-05 23:45:00 +00:00
Jonas Maebe
61ef30381c
* Only synchronise regvars after a loop (and only those regvars
...
which are used in the loop). The compiler makes now much
more efficient use of registers for register variables (and
different regvars can now also share the same register if
their live range does not overlap)
git-svn-id: trunk@2186 -
2006-01-05 17:48:11 +00:00
Jonas Maebe
3f86e6b728
* keep upper bound of loops in a register instead of in memory
...
git-svn-id: trunk@2105 -
2006-01-01 17:02:34 +00:00
tom_at_work
0f10de3d1a
- Powerpc compiler cycles again; during adding PowerPC64 code, the trefaddr enumeration for PPC was mixed up
...
git-svn-id: trunk@1195 -
2005-09-25 19:16:57 +00:00
peter
6bf3269b41
* powerpc64 port from Thomas Schatzl
...
git-svn-id: trunk@1193 -
2005-09-25 17:19:44 +00:00
michael
7449f99d5f
+ Removed all compatibility defines from compiler
...
git-svn-id: trunk@335 -
2005-06-09 21:14:22 +00:00
florian
ebcb69478f
* fixed a lot of stuff for fpu/mm register variables
...
git-svn-id: trunk@199 -
2005-06-04 21:23:15 +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
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
florian
5fb0678de2
* fixed class field info alignment
2004-12-27 15:54:54 +00:00
florian
0037f4a199
* fixed operand size calculation for sse operands
...
+ all nasm assembler targets to help page output added
2004-12-12 10:50:34 +00:00
peter
6c9c4c686c
* small m68k updates to bring it up2date
...
* give better error for external local variable
2004-11-09 22:32:59 +00:00
peter
b0afe9a351
* indexword can't be used for 1.9.4
2004-11-09 16:18:12 +00:00
peter
c95a859f0a
* generic tlocation
...
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
michael
9e879f3931
* fix clearing of superregset (from Peter)
2004-10-14 10:59:58 +00:00
florian
1eb575fa22
* fixed longbool(<int64>) on sparc
2004-08-24 21:02:32 +00:00
florian
ed4d14932e
* indexword in 1.0.x is broken
2004-07-19 19:21:02 +00:00
Jonas Maebe
c7afb87846
* use indexword() in tsuperregisterworklist.delete, greatly speeds up
...
compilation of tw2242
2004-07-18 15:14:59 +00:00
daniel
d2a2aeac9f
* supregset_reset clears 8kb of memory. However, it is being called in
...
inner loops, see for example colour_registers. According to profile data
this causes fillchar to be the most time consuming procedure.
Some modifications done to make it clear less than 8kb of memory each
call. Divides time spent in fillchar by two, but it still is the no.1
procedure.
2004-07-07 17:35:26 +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
florian
fabb9c33ac
* top_symbol killed
...
+ refaddr to treference added
+ refsymbol to treference added
* top_local stuff moved to an extra record to save memory
+ aint introduced
* tppufile.get/putint64/aint implemented
2004-02-27 10:21:04 +00:00
peter
e6929a1a32
* more x86_64 parameter fixes
...
* tparalocation.lochigh is now used to indicate if registerhigh
is used and what the type is
2004-02-09 22:14:17 +00:00
peter
47f08937e4
* use localalign info for alignment for locals and temps
...
* sparc fpu flags branching added
* moved powerpc copy_valye_openarray to generic
2004-01-12 22:11:38 +00:00
peter
d68c75f65a
* R_SUB_FS added to make a difference between double and single
...
floats, required for sparc only
2004-01-12 16:35:05 +00:00
daniel
cdbb601a4e
* Degree=0 problem fixed
...
* Degree to high problem fixed
2004-01-09 22:02:29 +00:00
florian
06442fa677
+ $fputype directive support
...
+ single data type operations with sse unit
* fixed more x86-64 stuff
2003-12-25 01:07:09 +00:00
peter
2fb059e289
* use low(longint) instead of $8000000
2003-12-22 23:10:21 +00:00
florian
b52cee6639
* fixed ppc inlining stuff
...
* fixed wrong unit writing
+ added some sse stuff
2003-12-21 19:42:42 +00:00
daniel
d84b7d0743
* Some work to restore the MMX capabilities
2003-12-19 22:08:44 +00:00
peter
1367e342db
* reg allocations for imaginary register are now inserted just
...
before reg allocation
* tregister changed to enum to allow compile time check
* fixed several tregister-tsuperregister errors
2003-12-15 21:25:48 +00:00
daniel
7061f04355
* Register allocator speed optimizations
...
- Worklist no longer a ringbuffer
- No find operations are left
- Simplify now done in constant time
- unusedregs is now a Tsuperregisterworklist
- Microoptimizations
2003-12-14 20:24:28 +00:00
peter
30f1eb4705
* fix for referencecounted temps
2003-11-04 15:35:13 +00:00
peter
e9aaebe873
* int_cgsize returned garbage for a=0
2003-11-03 17:48:04 +00:00
peter
bd96bacd81
* USEINLINE directive added (not enabled yet)
2003-10-31 15:51:11 +00:00
mazen
bb42874171
+ add support for double float register vars
2003-10-30 14:56:40 +00:00
mazen
7eb56b216a
* 32 registers are available
2003-10-29 15:07:01 +00:00
peter
ef94a6d0e4
* renamed R_SUBF64 to R_SUBFD
2003-10-24 15:21:31 +00:00
peter
d0de3b3ea8
* 64k registers supported
...
* fixed some memory leaks
2003-10-17 14:38:32 +00:00
florian
46d9a10ecc
* some ideas for mm support implemented
2003-10-13 01:10:01 +00:00
florian
1df13c788c
* fixed some MMX<->SSE
...
* started to fix ppc, needs an overhaul
+ stabs info improve for spilling, not sure if it works correctly/completly
- MMX_SUPPORT removed from Makefile.fpc
2003-10-11 16:06:42 +00:00
daniel
b2343f4b16
* Register allocator splitted, ans abstract now
2003-10-09 21:31:37 +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
99bb20747e
* parent framepointer changed to hidden parameter
...
* tloadparentfpnode added
2003-09-28 17:55:03 +00:00
peter
56c14885bb
* remove allocate_intterupt_parameter, allocation is platform
...
dependent and needs to be done in create_paraloc_info
2003-09-25 21:25:13 +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
f8bb9785e0
* remove obsolete code already in comments
2003-09-14 19:18:10 +00:00
peter
b9d09a4e5c
* preparations for different default calling conventions
...
* various RA fixes
2003-09-07 22:09:34 +00:00
peter
6a8d5eb25d
* NEWRA branch merged
2003-09-03 15:55:00 +00:00
peter
15958fec9f
* methodpointer fixes
2003-08-26 12:43:02 +00:00
peter
d113495cf1
* fixed stackalloc to not allocate localst.datasize twice
...
* order of stackalloc code fixed for implicit init/final
2003-08-20 17:48:49 +00:00
peter
52c73e80d1
* start of sparc support for newra
2003-08-11 21:18:20 +00:00
peter
32d076480b
* framepointer fixes for sparc
...
* parent framepointer code more generic
2003-07-06 17:58:22 +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
peter
77d641fa2a
* init/final of procedure data splitted from genentrycode
...
* use asmnode getposition to insert final at the correct position
als for the implicit try...finally
2003-06-09 12:23:29 +00:00
Jonas Maebe
6f3e16298a
* function results can now also be regvars
...
- removed tprocinfo.return_offset, never use it again since it's invalid
if the result is a regvar
2003-06-02 21:42:05 +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
8ff5792776
* remove some unit dependencies
...
* current_procinfo changes to store more info
2003-05-23 14:27:35 +00:00
Jonas Maebe
3973883fe1
- undid previous commit, it wasn't necessary
2003-05-16 20:54:12 +00:00
Jonas Maebe
d816c6a8c6
* powerpc nested procedure fixes, should work completely now if all
...
local variables of the parent procedure are declared before the
nested procedures are declared
2003-05-16 20:00:39 +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
05c05f2555
* failn removed
...
* inherited result code check moven to pexpr
2003-05-13 19:14:41 +00:00
peter
1a2eedd767
* self moved to hidden parameter
...
* removed hdisposen,hnewn,selfn
2003-05-09 17:47:02 +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
9b236892b7
* set return_offset moved to after_header
2003-04-26 00:31:42 +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
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
Jonas Maebe
ec71805aa8
* several ppc/generic result offset related fixes. The "normal" result
...
offset seems now to be calculated correctly and a lot of duplicate
calculations have been removed. Nested functions accessing the parent's
function result don't work at all though :(
2003-04-05 21:09:31 +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
26f160a541
* dynamic arrays have size OS_ADDR
2003-03-20 17:51:45 +00:00
daniel
55a161bbbf
* Tregister changed into a record
2003-01-08 18:43:56 +00:00
peter
e4ebaf4af3
* removed unused method
2003-01-01 21:04:48 +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
carl
67486c96c3
* fixes for Delphi 6 compilation
...
(warning : Some features do not work under Delphi)
2002-10-05 12:43:23 +00:00
carl
5c1fa99660
* range check error fix
2002-10-03 21:20:19 +00:00
florian
d5f0cbbf2b
* fixes to common code to get the alpha compiler compiled applied
2002-09-30 07:00:44 +00:00
florian
bf32e2d2cf
+ tcg.direction is used now
2002-09-07 19:34:08 +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
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
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
florian
b136cecacd
* first part of ppc calling conventions fix
2002-08-06 20:55:20 +00:00
carl
eff31e8524
+ more more more documentation
...
+ first version include/exclude (can't test though, not enough scratch for i386 :()...
2002-08-05 18:27:48 +00:00
carl
32f3f65a26
+ added generic exception support (still does not work!)
...
+ more documentation
2002-08-04 19:06:41 +00:00
florian
59abf2555b
* types.pas renamed to defbase.pas because D6 contains a types
...
unit so this would conflicts if D6 programms are compiled
+ Willamette/SSE2 instructions to assembler added
2002-07-20 11:57:52 +00:00
peter
4285e99853
* internal linker
...
* reorganized aasm layer
2002-07-01 18:46:20 +00:00
carl
d75603c2ed
* bugfix of hdisponen (base must be set, not index)
...
* more portability fixes
2002-05-20 13:30:40 +00:00
peter
06ebac4e27
* readded missing revisions
2002-05-18 13:34:04 +00:00
carl
21b3a10f02
+ defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
...
+ try to fix temp allocation (still in ifdef)
+ generic constructor calls
+ start of tassembler / tmodulebase class cleanup
2002-05-16 19:46:34 +00:00
peter
2992e1819c
* removed old logs and updated copyright year
2002-05-14 19:34:38 +00:00
peter
cc8c4d7093
* moved more routines from cga/n386util
2002-04-25 20:16:38 +00:00
carl
75c39ebf55
- remove duplicate constants
...
- move some constants to cginfo
2002-04-21 15:28:06 +00:00
carl
87aa88e9b7
+ generic FPC_CHECKPOINTER
...
+ first parameter offset in stack now portable
* rename some constants
+ move some cpu stuff to other units
- remove unused constents
* fix stacksize for some targets
* fix generic size problems which depend now on EXTEND_SIZE constant
2002-04-20 21:32:23 +00:00