nickysn
2a9d38d878
+ proper spilling support for R_SUBH (i.e. AH,BH,CH,DH) x86 registers in trgx86.do_spill_replace
...
git-svn-id: trunk@24476 -
2013-05-09 11:57:00 +00:00
sergei
1579583484
* COMISD (and COMISS, too) instruction cannot have memory reference as destination, Mantis #22150 .
...
git-svn-id: trunk@21432 -
2012-05-29 14:43:01 +00:00
sergei
b3335abe75
* MOVSXD destination operand cannot be in memory, resolves #20850 .
...
git-svn-id: trunk@19848 -
2011-12-13 22:56:24 +00:00
florian
ca1f33aae1
* extended do_spill_replace with some sse instructions
...
git-svn-id: trunk@18788 -
2011-08-20 12:29:41 +00:00
florian
66a8dd1e32
* cmov cannot use memory location as destination, fixed spiling code, resolves #19201
...
git-svn-id: trunk@17359 -
2011-04-21 13:51:45 +00:00
Jonas Maebe
99a75c56fc
* fixed copy-paste error in r15600
...
* fixed spilling error after r15600 the same register appears twice in an
instruction (it was spilled once in that case)
git-svn-id: trunk@15601 -
2010-07-18 21:24:52 +00:00
Jonas Maebe
a75016e67b
* make sure that registers are of the right type before calling get_alias
...
on them (could cause crashes or, in very rare instances, wrong spilling
code)
git-svn-id: trunk@15600 -
2010-07-18 21:01:06 +00:00
Jonas Maebe
146a819615
* fixed spilling of and operations on spilled 32 bit values for x86_64
...
(mantis #14403 )
git-svn-id: trunk@13573 -
2009-08-21 16:20:16 +00:00
Jonas Maebe
4e1859e108
* fixed spilling of "mov $64bitconst,%reg" on x86_64
...
git-svn-id: trunk@12711 -
2009-02-07 22:57:59 +00:00
yury
491f0fa1d8
* Replaced all user defined warnings by TODO comments to reduce compiler noise.
...
git-svn-id: trunk@11443 -
2008-07-23 11:00:03 +00:00
yury
5548824859
* Removed/ifdefed/commented unused local variables.
...
git-svn-id: trunk@11438 -
2008-07-23 09:22:47 +00:00
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