+ optimize op ... / cmp .... when possible

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@22200 3ad0048d-3df7-0310-abae-a5850022a9f2
+ a lot missing flag allocs/deallocs added

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@22201 3ad0048d-3df7-0310-abae-a5850022a9f2
* move flag allocation item

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@22202 3ad0048d-3df7-0310-abae-a5850022a9f2
* checked and updated valid opcode for OpCmp2OpS optimization

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@22203 3ad0048d-3df7-0310-abae-a5850022a9f2
* opcode spelling fixed

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@22204 3ad0048d-3df7-0310-abae-a5850022a9f2
  * like other applications that custapp, these also depend on univint on
    the Darwin/iphonesim platforms
  * regenerated using a current version of fpcmake


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@22205 3ad0048d-3df7-0310-abae-a5850022a9f2
 Correct code after change in set_common_funcretloc_info which made the call to ret_in_param always return false

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@22206 3ad0048d-3df7-0310-abae-a5850022a9f2
  * regenerated using a current version of fpcmake


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@22207 3ad0048d-3df7-0310-abae-a5850022a9f2
* Split most CPU-specific code from ogelf.pas into newly created cpuelf.pas units in CPU subdirectories.


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@22208 3ad0048d-3df7-0310-abae-a5850022a9f2
 * Fix compilation of sparc/cpuelf unit

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@22209 3ad0048d-3df7-0310-abae-a5850022a9f2
* Some small fixes so sdo is parsed

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@22210 3ad0048d-3df7-0310-abae-a5850022a9f2
* Improvements so package name can be specified, fpmake is excluded 

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@22211 3ad0048d-3df7-0310-abae-a5850022a9f2
 Add possibility to test sparc elf generator with -dTEST_AGSPARC_ELF

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@22212 3ad0048d-3df7-0310-abae-a5850022a9f2
Few changes to STM32F0xx
Merge branch 'master' of git://github.com/graemeg/freepascal

* 'master' of git://github.com/graemeg/freepascal:
  Add possibility to test sparc elf generator with -dTEST_AGSPARC_ELF
  * Improvements so package name can be specified, fpmake is excluded
  * Some small fixes so sdo is parsed
  * Fix compilation of sparc/cpuelf unit
  * Split most CPU-specific code from ogelf.pas into newly created cpuelf.pas units in CPU subdirectories.
  * regenerated using a current version of fpcmake
  Correct code after change in set_common_funcretloc_info which made the call to ret_in_param always return false
  * like other applications that custapp, these also depend on univint on     the Darwin/iphonesim platforms   * regenerated using a current version of fpcmake
  * opcode spelling fixed
  * checked and updated valid opcode for OpCmp2OpS optimization
  * move flag allocation item
  + a lot missing flag allocs/deallocs added
  + optimize op ... / cmp .... when possible
Small fixes to OpCmp2OpS

1.) For UMULL and UMLAL support we would have to make sure the following
code checks RdHi and RdLo, which is currently not supported.
The former code would transform the following

  umull r0, r1, r2, r3
  cmp   r0, #0
  bne   .LSomething

into

  umulls r0,r1,r2,r3
  bne    .LSomething

which is wrong. UMULL has a 64bit result in r1+r0 and checks the full 64bit for 0
before setting the Z flag.

2.) Support MLA.

3.) Support MI/PL/NE/EQ for all instructions. As all of them are setting
the N and Z flags in the same way only based on the result of the
operation not on its input values.

N:=Result[31];
Z:=Result = 0;

Wurst

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@22213 3ad0048d-3df7-0310-abae-a5850022a9f2
* Interdependency reduction, verbosity introduced

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@22214 3ad0048d-3df7-0310-abae-a5850022a9f2
  * properly compare parameter lists involving pointers to or classrefdefs of
    forward defined types by maing sure that we always compare typesyms in
    that case instead of the forwarddefs (mantis #22705)

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

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@22216 3ad0048d-3df7-0310-abae-a5850022a9f2
+ Add/SubLdr2Ldr optimization

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