fpc/compiler/arm
masta b9fa9da629 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: trunk@22213 -
2012-08-23 14:22:29 +00:00
..
aasmcpu.pas + make use of the armv6+ sign/zero extension instructions if appropriate 2012-08-05 14:04:11 +00:00
agarmgas.pas * pass march to GNU AS for cpu_armv6 and cpu_armv7 2012-07-23 20:20:17 +00:00
aoptcpu.pas Small fixes to OpCmp2OpS 2012-08-23 14:22:29 +00:00
aoptcpub.pas * set MaxOps to 4 for the optimizer because fpc generates now mla instructions 2012-08-17 12:38:59 +00:00
aoptcpuc.pas
aoptcpud.pas
armatt.inc + patch by Bernd to add the push/pop mnemonic for arm/thumb-2, resolves #22041 2012-05-15 18:52:09 +00:00
armatts.inc + patch by Bernd to add the push/pop mnemonic for arm/thumb-2, resolves #22041 2012-05-15 18:52:09 +00:00
armins.dat + patch by Bernd to add the push/pop mnemonic for arm/thumb-2, resolves #22041 2012-05-15 18:52:09 +00:00
armnop.inc
armop.inc + patch by Bernd to add the push/pop mnemonic for arm/thumb-2, resolves #22041 2012-05-15 18:52:09 +00:00
armreg.dat + support for the ARM hard float EABI on Linux (patch by Peter Green): 2012-03-29 20:50:09 +00:00
armtab.inc
cgcpu.pas + a lot missing flag allocs/deallocs added 2012-08-23 08:54:52 +00:00
cpubase.pas * make cpubase for arm use inlining 2012-08-22 19:51:08 +00:00
cpuinfo.pas + add a description to the cpuflags where I know the exact meaning/definition 2012-08-17 20:45:46 +00:00
cpunode.pas + take advantage of the mla instruction when calculating array offsets 2012-05-23 20:48:26 +00:00
cpupara.pas + introduce cstylearrayofconst because pocall_mwcall was forgotten at several places 2012-08-05 08:48:23 +00:00
cpupi.pas * start with a qword aligned frame pointer to enable more ldrd/strd optimizations 2012-08-11 15:12:19 +00:00
cputarg.pas
hlcgcpu.pas
itcpugas.pas
narmadd.pas + a lot missing flag allocs/deallocs added 2012-08-23 08:54:52 +00:00
narmcal.pas + support for the ARM hard float EABI on Linux (patch by Peter Green): 2012-03-29 20:50:09 +00:00
narmcnv.pas + a lot missing flag allocs/deallocs added 2012-08-23 08:54:52 +00:00
narmcon.pas
narminl.pas + a lot missing flag allocs/deallocs added 2012-08-23 08:54:52 +00:00
narmmat.pas + a lot missing flag allocs/deallocs added 2012-08-23 08:54:52 +00:00
narmmem.pas + take advantage of the mla instruction when calculating array offsets 2012-05-23 20:48:26 +00:00
narmset.pas + a lot missing flag allocs/deallocs added 2012-08-23 08:54:52 +00:00
pp.lpi.template
raarm.pas
raarmgas.pas Fix ARM ASM-reader for MVN/CMP/CMN/TST/TEQ 2012-07-15 01:03:08 +00:00
rarmcon.inc + support for the ARM hard float EABI on Linux (patch by Peter Green): 2012-03-29 20:50:09 +00:00
rarmdwa.inc
rarmnor.inc
rarmnum.inc + support for the ARM hard float EABI on Linux (patch by Peter Green): 2012-03-29 20:50:09 +00:00
rarmrni.inc + support for the ARM hard float EABI on Linux (patch by Peter Green): 2012-03-29 20:50:09 +00:00
rarmsri.inc + support for the ARM hard float EABI on Linux (patch by Peter Green): 2012-03-29 20:50:09 +00:00
rarmsta.inc
rarmstd.inc + support for the ARM hard float EABI on Linux (patch by Peter Green): 2012-03-29 20:50:09 +00:00
rarmsup.inc + support for the ARM hard float EABI on Linux (patch by Peter Green): 2012-03-29 20:50:09 +00:00
rgcpu.pas Consolidate do_spill_read/do_spill_written on arm 2012-07-12 01:11:23 +00:00