Commit Graph

30 Commits

Author SHA1 Message Date
peter
6058b2c247 * renamed t_times to executionweight and moved it to
code generation pass
  * include executionweight in the spilling decision

git-svn-id: trunk@9330 -
2007-11-25 16:38:05 +00:00
daniel
3ad8257ecb * Fix replace spilling of shld/shrd.
git-svn-id: trunk@7252 -
2007-05-03 20:56:09 +00:00
daniel
f3660976bc + Allow replace spilling for "opcode register,const" and "opcode const,register"
git-svn-id: trunk@7183 -
2007-04-28 19:11:17 +00:00
daniel
9256c180de * Fix register allocation bug that happens when a coalesced
move is spilled in its entirely.

git-svn-id: trunk@6408 -
2007-02-10 22:47:13 +00:00
Jonas Maebe
e815b923d5 * a_loadfpu_* gets two size parameters: fromsize and tosize
* fixed downsizing the precision of floating point values
  * floating point constants are now treated using only the minimal
    precision required (e.g. 2.0 is now a single, 1.1 extended etc)
    (Delphi compatible)

git-svn-id: trunk@5927 -
2007-01-12 18:33:51 +00:00
florian
85d63d9fa9 * settings refactored
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
daniel
3125ed73cf * Add one more call to get_alias
git-svn-id: trunk@5000 -
2006-10-22 09:18:37 +00:00
daniel
01afee1f73 * Add extra calls to get_alias to properly recognize coalesced
registers to be spilled.

git-svn-id: trunk@4997 -
2006-10-21 21:31:08 +00:00
Jonas Maebe
51259b697b * more mmx/sse register spilling fixes:
* operand read/write info for movaps and movapd
    * use "movapd reg,reg" instead of "movaps reg,reg" if appropriate
      so the spilling code can spill the correct size to memory
    * replace movaps/movapd with movss/movsd when spilling to memory
      instead of movq

git-svn-id: trunk@4612 -
2006-09-12 11:07:45 +00:00
Jonas Maebe
cd0c38b9d9 * fixed spilling of mmx registers
git-svn-id: trunk@4604 -
2006-09-10 15:59:58 +00:00
florian
0378f8c162 + more reg/reg reg/mem only instructions
git-svn-id: trunk@3587 -
2006-05-19 23:51:13 +00:00
peter
b7fe6797bf Merged revisions 2921-2922,2925 via svnmerge from
http://svn.freepascal.org/svn/fpc/branches/linker/compiler

........
r2921 | peter | 2006-03-15 08:35:00 +0100 (Wed, 15 Mar 2006) | 2 lines

  * pass ObjectWriter to ObjectOuput

........
r2922 | peter | 2006-03-15 12:40:30 +0100 (Wed, 15 Mar 2006) | 2 lines

  * refactor asmdata

........
r2925 | peter | 2006-03-15 16:09:39 +0100 (Wed, 15 Mar 2006) | 3 lines

  * add cfi to asmdata
  * move asmlist, asmcfi, asmdata to own unit

........

git-svn-id: trunk@2932 -
2006-03-16 08:52:22 +00:00
peter
b6e35a200e * rewrite of optimizer options
git-svn-id: trunk@2901 -
2006-03-13 09:05:50 +00:00
florian
0e89afa607 * mm register spilling fixed
* no sse instruction can operate on memory

git-svn-id: trunk@762 -
2005-07-27 19:31:31 +00:00
florian
146efddbb7 * unified internal error
git-svn-id: trunk@756 -
2005-07-26 21:02:31 +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
4794119dd3 movzx,movsx don't support memory destinations 2005-03-10 00:27:04 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
florian
852ca7e923 + added sse instruction being not be able writing to a memory location 2004-11-01 17:30:17 +00:00
peter
c95a859f0a * generic tlocation
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
peter
c853d10cc2 * optimized spilling writing when the reg operand can be
replaced by reference
2004-10-10 16:30:26 +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
ec04a5a899 * handle 3 operand opcodes the same as 2 operand opcodes, the
third operand can only be a const or register CL, so it doesn't
    affect spilling
  * support shrd/shld that don't allow memory operands
2004-09-27 14:49:45 +00:00
florian
9ebffe215b * ie checking in spilling code improved 2004-09-26 07:15:07 +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
c34c9af5ce * moved spilling code from taicpu to rg 2004-01-12 16:37:59 +00:00
florian
7887af7c75 * rg unified for i386/x86-64 2003-12-24 00:12:57 +00:00