* support 32 bit operations on x86-64 in the code generator

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25895 3ad0048d-3df7-0310-abae-a5850022a9f2
* get rid of 64 bit operations on 64 bit targets as well if possible

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25896 3ad0048d-3df7-0310-abae-a5850022a9f2
+ get rid of unnecessary 64 bit conversions too if one of the operands is 8 or 16 bit

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25897 3ad0048d-3df7-0310-abae-a5850022a9f2
* make use of lea if possible

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25898 3ad0048d-3df7-0310-abae-a5850022a9f2
* optimize mov/lea

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25899 3ad0048d-3df7-0310-abae-a5850022a9f2
* some debugging infrastructure

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25900 3ad0048d-3df7-0310-abae-a5850022a9f2
* be able to replace lea by add when spilling

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25901 3ad0048d-3df7-0310-abae-a5850022a9f2
* generate sub instead of add from lea if appropriate

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25902 3ad0048d-3df7-0310-abae-a5850022a9f2
* continue to use lea to adjust the stack pointer, it is the recommended way

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25903 3ad0048d-3df7-0310-abae-a5850022a9f2
+ MatchReference
* refactored some code

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25904 3ad0048d-3df7-0310-abae-a5850022a9f2
* fold mov/lea/mov as well if possible

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25905 3ad0048d-3df7-0310-abae-a5850022a9f2
* set file positions correctly in PeepHoleOptPass1

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25906 3ad0048d-3df7-0310-abae-a5850022a9f2
* replace lea by add if possible

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25907 3ad0048d-3df7-0310-abae-a5850022a9f2
* do reg2=reg1*const by lea if possible

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25908 3ad0048d-3df7-0310-abae-a5850022a9f2
+ handle 32 bit references on x86-64 so lea can be used for 32 bit arithmetics

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@25909 3ad0048d-3df7-0310-abae-a5850022a9f2