Commit Graph

85 Commits

Author SHA1 Message Date
florian
21ae782854 * fixed more xmm stuff
+ some win64 stuff added

git-svn-id: trunk@330 -
2005-06-09 20:50:17 +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
Jonas Maebe
126f3fa6cf * fixed loop which could go into neverneverland in case of embedded
assembler blocks
2005-02-26 01:23:29 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
Jonas Maebe
f9b99ad965 * remove "release subregA; allocate other_subreg_of_A" sequences so the
register renaming doesn't stop early
2005-01-03 14:59:28 +00:00
Jonas Maebe
f041b36ce7 * fixed checking of overlapping references 2004-12-30 13:49:42 +00:00
Jonas Maebe
53c04512cc * fixed several regvar related bugs, cycle with -OZp3r doesn't work
yet though
2004-12-28 18:01:40 +00:00
Jonas Maebe
84aa52942f * fixed tracking of usage of flags register
* fixed destroying of "memwrite"'s
  * fixed checking of entire sequences in all cases (previously this was
    only guaranteed if the new sequence was longer than the old one, and
    not if vice versa)
  * fixed wrong removal of sequences if a register load was already
    completely removed in the previous sequence (because in that case,
    that register has to be removed and renamed in the new sequence as
    well before removing the new sequence)
2004-12-18 15:16:10 +00:00
Jonas Maebe
a3627d9345 * fixed compilation with -dcsdebug -dallocregdebug 2004-12-18 14:07:35 +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
c95a859f0a * generic tlocation
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
Jonas Maebe
cf085fb9d0 * several fixes to allocregbetween() 2004-10-10 15:01:19 +00:00
Jonas Maebe
0cf348b3df * take into account the size of a write to determine whether a write to
one reference influences the contents of another reference
2004-10-06 19:24:38 +00:00
peter
f5471aef6e * more spilling rewrites 2004-10-05 20:41:01 +00:00
peter
ee3585f56f * spilling code rewritten for x86. It now used the generic
spilling routines. Special x86 optimization still needs
    to be added.
  * Spilling fixed when both operands needed to be spilled
  * Cleanup of spilling routine, do_spill_readwritten removed
2004-10-04 20:46:22 +00:00
peter
8fb3536f6e * simple regvar support, not yet finished 2004-09-26 17:45:29 +00:00
florian
8a9758c5e2 * logs truncated 2004-06-20 08:55:28 +00:00
peter
5358278ca1 tai_regalloc.allocation changed to ratype to notify rgobj of register size changes 2004-05-22 23:34:27 +00:00
Jonas Maebe
756dd463ff * fixed optimizer for new treference fields 2004-02-27 19:55:23 +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
ed708a0650 * more byte->word 2003-12-23 19:52:55 +00:00
peter
e6d9331341 * overflow for instruction counters 2003-12-22 23:11:41 +00:00
Jonas Maebe
bade472032 * fixed some more optimizer bugs, make cycle now works with -O2p3,
-O2p3u, -O3p3 and -O3p3u
2003-12-20 22:53:33 +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
peter
2057dbd01a * fix statedebug compile 2003-12-15 15:58:58 +00:00
peter
39b4e0398a * fixed csdebug 2003-12-14 22:42:14 +00:00
peter
19b2170ee4 * optimizer works again with 1.0.x
* fixed wrong loop in FindRegWithConst
2003-12-14 14:18:59 +00:00
Jonas Maebe
942cfc9aac * isgp32reg was being called with both tsuperregister and tregister
parameters, so changed type to tsuperregister (fixes bug reported by
    Bas Steendijk)
  * improved regsizesok() checking so it gives no false positives anymore
2003-12-13 15:48:47 +00:00
Jonas Maebe
f3d82160b1 * fixed some more bugs which only showed up in a ppc cross compiler 2003-12-07 19:19:56 +00:00
Jonas Maebe
7128b3fdd2 * fixed double unit usage 2003-11-22 13:10:32 +00:00
Jonas Maebe
aad37ce53c * fixed optimiser so it compiles again
* fixed several bugs which were in there already for a long time, but
    which only popped up now :) -O2/-O3 will now optimise less than in
    the past (and correctly so), but -O2u/-O3u will optimise a bit more
  * some more small improvements for -O3 are still possible
2003-11-22 00:40:19 +00:00
peter
0dceec9a64 * current_procdef removed, use current_procinfo.procdef instead 2003-06-13 21:19:30 +00:00
Jonas Maebe
db7d93495b * first small steps towards an oop optimizer 2003-06-08 18:48:03 +00:00
peter
4c66ac6cab * internal changeregsize for optimizer
* fix with a hack to not remove the first instruction of a block
    which will leave blockstart pointing to invalid memory
2003-06-03 21:09: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
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
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
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
daniel
55a161bbbf * Tregister changed into a record 2003-01-08 18:43:56 +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
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
4285e99853 * internal linker
* reorganized aasm layer
2002-07-01 18:46:20 +00:00
Jonas Maebe
09de3f8d5b * fixed errors found with new -CR code from Peter when cycling with -O2p3r 2002-06-24 12:43:00 +00:00
Jonas Maebe
e483612cf2 * IDIV reads edx too (but now the div/mod optimization fails :/ ) 2002-06-09 12:56:04 +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