Jonas Maebe
df99ef17b6
+ mfpvr, mfdcr, mtdcr, mfdec and mtdec opcodes (mantis #18878 )
...
git-svn-id: trunk@21500 -
2012-06-06 18:17:55 +00:00
Jonas Maebe
417b5dcfda
+ internal round/trunc support for ppc970 using fctid/fctidz
...
* a_fctw_ -> a_fctiw_
git-svn-id: trunk@10367 -
2008-02-20 11:49:15 +00:00
Jonas Maebe
359c19ee9e
- removed ppc601 as ppc32 cpu target
...
+ added ppc740 (g3), ppc7400 (G4) and ppc970 (G5) as ppc32 cpu
targets
* initialise optimizecputype by default to ppc7400 for ppc32 and to
ppc970 for ppc64
* merged ppc32/ppc64 overflow checking code and use the ppc64 one
in case cputype or optimizecputype >= ppc970, because one of
the instructions used in the ppc32 version no longer exists on the
ppc970 (although it's emulated in the kernel on at least Mac OS X)
* moved some other support routines and constants to ppcgen which
were needed for the overflow checking (were identical for ppc32 and
ppc64)
git-svn-id: trunk@6323 -
2007-02-03 19:32:44 +00:00
Jonas Maebe
32e06e7a7a
* fixed memory leaks in ppc peephole optimizer
...
git-svn-id: trunk@5569 -
2006-12-11 15:53:30 +00:00
Jonas Maebe
d26ee9dccf
* fixed overflow errors
...
git-svn-id: trunk@5318 -
2006-11-10 21:14:37 +00:00
Jonas Maebe
e08aa358fb
* removed stb from calculation_target_op0 (stb does not calculate a value
...
to store in operand 0)
git-svn-id: trunk@4269 -
2006-07-20 22:38:26 +00:00
Jonas Maebe
ef16df72da
* some optimizations for code generated for
...
"(x and power_of_two_const) <>/= 0)"
git-svn-id: trunk@4159 -
2006-07-13 17:48:41 +00:00
Jonas Maebe
bc96cd8008
+ more rlwinm optimizations
...
git-svn-id: trunk@3823 -
2006-06-08 09:48:08 +00:00
tom_at_work
c5cbdda62e
* fixed generation of ANDI and ANDIS instructions in the optimizer, properly casting the immediate parameter to an unsigned integer
...
git-svn-id: trunk@3800 -
2006-06-04 21:16:10 +00:00
Jonas Maebe
488d8ae766
* improved support for merging two consecutive rlwinm's (now also works
...
if both perform a rotation)
git-svn-id: trunk@3759 -
2006-05-31 20:25:39 +00:00
Jonas Maebe
67dc63048c
* fixed and enhanced rlwinm optimizations somewhat
...
git-svn-id: trunk@3555 -
2006-05-17 19:04:31 +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
tom_at_work
3645a69686
* added mftbu (move from timebase upper) opcode
...
git-svn-id: trunk@1596 -
2005-10-25 20:45:05 +00:00
Jonas Maebe
b458554f5b
+ some optimizations for comparisons with zero whereby the result has to
...
go to a register
git-svn-id: trunk@1379 -
2005-10-15 11:09:44 +00:00
Jonas Maebe
4558cd705e
+ optimize some slwi/rlwinm combos
...
git-svn-id: trunk@1378 -
2005-10-14 21:03:48 +00:00
Jonas Maebe
9cf0865d0e
* remove a number of superfluous register moves
...
git-svn-id: trunk@1377 -
2005-10-14 20:34:53 +00:00
Jonas Maebe
e14d8e6611
* don't replace cmplwi's with flag-setting variants of integer operations,
...
as the latter perform a signed comparison with 0
git-svn-id: trunk@1365 -
2005-10-13 07:49:02 +00:00
Jonas Maebe
cd3f064a33
+ enabled postpeepholeopts phase
...
+ optimize "integer op" followed by comparison of target register with zero
to a variant of that integer op which sets the flags (ppc)
+ change rlwinm. instructions which do nothing but an "and" operation into
andi./andis., since the rlwinm. is cracked on the G5 while andi./andis.
isn't
git-svn-id: trunk@1361 -
2005-10-12 19:47:21 +00:00
Jonas Maebe
42e49ccd90
+ srwi followed by slwi optimized
...
+ srwi followed by certain rlwinm's optimized
git-svn-id: trunk@1351 -
2005-10-10 20:43:23 +00:00
Jonas Maebe
cd93450fd6
* fixed a few bugs in yesterday's optimization
...
git-svn-id: trunk@1322 -
2005-10-08 11:37:18 +00:00
Jonas Maebe
ab3bc45fa4
* cpu-specific overrides of optimizer methods now get called
...
+ first simple rlwinm optimization for ppc
git-svn-id: trunk@1320 -
2005-10-07 21:44:00 +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
Jonas Maebe
ec959955bd
* fixed generic jumps optimizer and enabled it for ppc (the label table
...
was not being initialised -> getfinaldestination always failed, which
caused wrong optimizations in some cases)
* changed the inverse_cond into a function, because tasmcond is a record
on ppc
+ added a compare_conditions() function for the same reason
2005-02-26 01:26:59 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
florian
8a9758c5e2
* logs truncated
2004-06-20 08:55:28 +00:00
peter
06ebac4e27
* readded missing revisions
2002-05-18 13:34:04 +00:00
carl
21b3a10f02
+ defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
...
+ try to fix temp allocation (still in ifdef)
+ generic constructor calls
+ start of tassembler / tmodulebase class cleanup
2002-05-16 19:46:34 +00:00
peter
2992e1819c
* removed old logs and updated copyright year
2002-05-14 19:34:38 +00:00
florian
525be77ced
* some cg reorganisation
...
* some PPC updates
2001-08-26 13:29:33 +00:00