fpc/compiler/arm
masta fe520c215b New ARM Peephole optimizer FoldShiftLdrStr
This one folds
      mov r1, r2, lsl #2
      ldr/ldrb r0, [r0, r1]
into
      ldr/ldrb r0, [r0, r2, lsl #2]

There is still some room for improvement, maybe it would be better to do this before
the register allocator runs, as we'll currently waste a register (r1 in the above example)
in many cases. That would also allow to to fold more operations, because currently if r2
gets reused between the mov and ldr we'll not be able to do the optimization.

git-svn-id: trunk@23408 -
2013-01-16 14:37:28 +00:00
..
aasmcpu.pas * remove unused units from uses statements 2013-01-03 23:07:09 +00:00
agarmgas.pas * remove unused units from uses statements 2013-01-03 23:07:09 +00:00
aoptcpu.pas New ARM Peephole optimizer FoldShiftLdrStr 2013-01-16 14:37:28 +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 Added coprocessor registers, and support for 6 operands(MCR/MRC instructions, etc) 2012-10-19 18:23:14 +00:00
armatts.inc Added coprocessor registers, and support for 6 operands(MCR/MRC instructions, etc) 2012-10-19 18:23:14 +00:00
armins.dat Added coprocessor registers, and support for 6 operands(MCR/MRC instructions, etc) 2012-10-19 18:23:14 +00:00
armnop.inc Added coprocessor registers, and support for 6 operands(MCR/MRC instructions, etc) 2012-10-19 18:23:14 +00:00
armop.inc Added coprocessor registers, and support for 6 operands(MCR/MRC instructions, etc) 2012-10-19 18:23:14 +00:00
armreg.dat + Cortex-M3 special registers, resolves #23185 2012-10-21 20:06:07 +00:00
armtab.inc Added coprocessor registers, and support for 6 operands(MCR/MRC instructions, etc) 2012-10-19 18:23:14 +00:00
cgcpu.pas * pass the procdef to getintparaloc instead of only the proccalloption, so 2013-01-06 15:05:40 +00:00
cpubase.pas * remove unused units from uses statements 2013-01-03 23:07:09 +00:00
cpuelf.pas + ELF linker back-ends for ARM and MIPS. 2013-01-13 18:05:19 +00:00
cpuinfo.pas Add implementations for read/write barrier code for ARM 2012-10-27 22:53:44 +00:00
cpunode.pas + take advantage of the mla instruction when calculating array offsets 2012-05-23 20:48:26 +00:00
cpupara.pas compiler: implement record constructors + tests 2013-01-16 02:07:42 +00:00
cpupi.pas * remove unused units from uses statements 2013-01-03 23:07:09 +00:00
cputarg.pas + ELF linker back-ends for ARM and MIPS. 2013-01-13 18:05:19 +00:00
hlcgcpu.pas * create/destroy also the high level code generator for all architectures, 2011-08-20 07:21:16 +00:00
itcpugas.pas * remove unused units from uses statements 2013-01-03 23:07:09 +00:00
narmadd.pas * remove unused units from uses statements 2013-01-03 23:07:09 +00:00
narmcal.pas * remove unused units from uses statements 2013-01-03 23:07:09 +00:00
narmcnv.pas * remove unused units from uses statements 2013-01-03 23:07:09 +00:00
narmcon.pas * remove unused units from uses statements 2013-01-03 23:07:09 +00:00
narminl.pas * remove unused units from uses statements 2013-01-03 23:07:09 +00:00
narmmat.pas * remove unused units from uses statements 2013-01-03 23:07:09 +00:00
narmmem.pas * remove unused units from uses statements 2013-01-03 23:07:09 +00:00
narmset.pas * remove unused units from uses statements 2013-01-03 23:07:09 +00:00
pp.lpi.template
raarm.pas o patch by Jeppe Johansen to fix mantis #17472: 2010-12-24 15:54:39 +00:00
raarmgas.pas * remove unused units from uses statements 2013-01-03 23:07:09 +00:00
rarmcon.inc + Cortex-M3 special registers, resolves #23185 2012-10-21 20:06:07 +00:00
rarmdwa.inc + Cortex-M3 special registers, resolves #23185 2012-10-21 20:06:07 +00:00
rarmnor.inc + Cortex-M3 special registers, resolves #23185 2012-10-21 20:06:07 +00:00
rarmnum.inc + Cortex-M3 special registers, resolves #23185 2012-10-21 20:06:07 +00:00
rarmrni.inc + Cortex-M3 special registers, resolves #23185 2012-10-21 20:06:07 +00:00
rarmsri.inc + Cortex-M3 special registers, resolves #23185 2012-10-21 20:06:07 +00:00
rarmsta.inc + Cortex-M3 special registers, resolves #23185 2012-10-21 20:06:07 +00:00
rarmstd.inc + Cortex-M3 special registers, resolves #23185 2012-10-21 20:06:07 +00:00
rarmsup.inc + Cortex-M3 special registers, resolves #23185 2012-10-21 20:06:07 +00:00
rgcpu.pas Readded cutils to compiler/arm/rgcpu.pas for DEBUG_SPILLING 2013-01-04 12:21:54 +00:00