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
846fbf9fa0
* fixed several (harmles) range errors
...
git-svn-id: trunk@6192 -
2007-01-25 21:43:11 +00:00
Jonas Maebe
4d1f213889
* fixed gprof support for darwin/ppc32 (although the output from gprof
...
isn't very useful, since it discards all symbols which contain a '$')
git-svn-id: trunk@6080 -
2007-01-19 21:43:12 +00:00
Jonas Maebe
e815b923d5
* a_loadfpu_* gets two size parameters: fromsize and tosize
...
* fixed downsizing the precision of floating point values
* floating point constants are now treated using only the minimal
precision required (e.g. 2.0 is now a single, 1.1 extended etc)
(Delphi compatible)
git-svn-id: trunk@5927 -
2007-01-12 18:33:51 +00:00
Jonas Maebe
85289e80ce
* fixed overflow in case of op_const64_reg_reg_reg(sub,low(int64),...)
...
git-svn-id: trunk@5821 -
2007-01-05 21:27:27 +00:00
Jonas Maebe
469ac311e0
* fixed r5214
...
git-svn-id: trunk@5222 -
2006-11-04 16:44:29 +00:00
Jonas Maebe
66cf666f65
* optimized storing constants into subsetreg/refs (a packed array of
...
boolean can now be as efficient as a set of boolean -- and it is
on ppc32/64)
git-svn-id: trunk@5214 -
2006-11-03 22:00:27 +00:00
Jonas Maebe
9acc38e82a
* moved some more common powerpc32/64 things to ppcgn
...
+ a few initial darwin/ppc64 things
git-svn-id: trunk@5197 -
2006-11-03 12:30:17 +00:00
peter
658c46b903
* remove tdictionary and tindexarray
...
* symtables based on TFPHashObjectList and TFPObjectList
* rename torddef.typ to torddef.ordtype
* rename tfloatdef.typ to tfloatdef.floattype
* rename tdef.deftype to tdef.typ
* remove obsolete browser code, browcol is kept so the ide
can still be compiled
git-svn-id: trunk@5192 -
2006-11-03 00:30:30 +00:00
florian
85d63d9fa9
* settings refactored
...
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
florian
9e66674ff9
+ first part of qwordbool implementation
...
git-svn-id: trunk@4462 -
2006-08-19 23:16:17 +00:00
Jonas Maebe
d4a818c8ae
* support for subsets which are not a multiple of 8 bits
...
git-svn-id: trunk@4442 -
2006-08-19 11:11:37 +00:00
Jonas Maebe
c25aba7592
* cleaned up subsetreg support (put everything in a record)
...
* prepared support for elements with arbitrary bit length (as opposed
to a multiple of 8)
git-svn-id: trunk@4324 -
2006-08-01 20:39:53 +00:00
Jonas Maebe
e32e5e1f9f
* fixed interface wrappers for darwin in case they end up in
...
a shared library
git-svn-id: trunk@3976 -
2006-06-27 13:42:00 +00:00
Jonas Maebe
3a3651a050
+ ppc implementations of subsetreg routines
...
git-svn-id: trunk@3758 -
2006-05-31 19:01:08 +00:00
Jonas Maebe
a387be19a0
+ a_call_ref for ppc32 and ppc64
...
git-svn-id: trunk@3392 -
2006-04-30 20:50:37 +00:00
Jonas Maebe
0d77459b9d
* added missing masking of upper 24/16 bits on ppc after performing
...
add/sub/shl/mul on 8 or 16 bit "registers" + test (tcinvint5)
* optimized register-register loading of < 32 bit values (removes
30KB of superfluous extsb/extsh/rlwinm's from compiler+rtl)
git-svn-id: trunk@3207 -
2006-04-14 13:01:10 +00:00
Jonas Maebe
c41da1172c
* removed wrong comment along with commented-out code
...
git-svn-id: trunk@3165 -
2006-04-07 21:57:30 +00:00
peter
0ec2921bbe
* split newasmsymbol to refasmsymbol and defineasmsymbol
...
git-svn-id: trunk@3057 -
2006-03-27 11:45:18 +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
Jonas Maebe
e919e1f2fd
* fixed compilation
...
git-svn-id: trunk@2914 -
2006-03-14 08:38:13 +00:00
peter
b6e35a200e
* rewrite of optimizer options
...
git-svn-id: trunk@2901 -
2006-03-13 09:05:50 +00:00
Jonas Maebe
4ed39b0c16
* don't explicitly us NR_F0 in concatcopy but ask a register from
...
the register allocator (since NR_F0 can also be used by the ra)
git-svn-id: trunk@2855 -
2006-03-11 14:13:47 +00:00
Jonas Maebe
7cdf9bbaac
* moved the indirect symbol stuff from nppcld to cgobj and ncgld, since
...
darwin/x86 needs the same code
- removed now empty nppcld unit
git-svn-id: trunk@2821 -
2006-03-09 18:27:11 +00:00
Jonas Maebe
8a10afc29d
* align symbol stubs on 16 bytes instead of 4
...
* removed some useless/wrong ".data" section directives in the symbol stubs
git-svn-id: trunk@2816 -
2006-03-09 10:36:57 +00:00
Jonas Maebe
ab5f5ca15e
* fixed ppc compilation
...
git-svn-id: trunk@2778 -
2006-03-05 22:06:44 +00:00
Jonas Maebe
71407ba8cb
* don't concatcopy if source = dest
...
git-svn-id: trunk@2691 -
2006-02-26 14:53:20 +00:00
Jonas Maebe
1273e0d7ed
* generate signed comparisons for immediate equality comparisons if
...
possible, because those can be optimized better by the peephole
optimizer
git-svn-id: trunk@2235 -
2006-01-08 19:54:58 +00:00
Jonas Maebe
5e9db609e3
* fixed bug fixref whereby a register of a reference was overwritten
...
git-svn-id: trunk@2212 -
2006-01-07 21:52:17 +00:00
Jonas Maebe
c423e23bb4
* only use r12 as frame pointer in the entry code for ppc if necessary
...
git-svn-id: trunk@2086 -
2005-12-31 10:54:09 +00:00
Jonas Maebe
6c30925e04
* fixed offsets used by stmw/lmw
...
git-svn-id: trunk@2084 -
2005-12-30 23:50:37 +00:00
Jonas Maebe
c3f27eee06
* optimized generation of and generated entry and exit code:
...
* no stack frame generated anymore if it's not necessary
* only the necessary stack space is now reserved, instead of
room for all non-volatile registers
* less usage of helper registers
git-svn-id: trunk@2082 -
2005-12-30 17:20:07 +00:00
Jonas Maebe
66ebbbc5c2
* always generate code which can be used to build dynamically loadable
...
libraries with
git-svn-id: trunk@2013 -
2005-12-20 19:58:27 +00:00
Jonas Maebe
16f9c89854
- reverted previous commit, committed the wrong file
...
git-svn-id: trunk@2001 -
2005-12-20 10:13:04 +00:00
Jonas Maebe
a16fa618de
* fixed passing record parameters of size >= 3 and whose size is not
...
divisible by 4 on Darwin (have to be passed on the stack instead of in
registers), fixes tcalext3
git-svn-id: trunk@2000 -
2005-12-20 10:11:50 +00:00
Jonas Maebe
cc44a19af5
* use stmw/lmw when saving/restoring a lot of registers, to reduce generated
...
code size and thus instruction cache pressure.
git-svn-id: trunk@1785 -
2005-11-19 17:31:35 +00:00
peter
82faa95118
* lineinfo fixed for binary writer
...
* add tai_directive to replace old tai_direct calls
in powerpc
git-svn-id: trunk@1139 -
2005-09-19 11:47:30 +00:00
peter
a3ab2053c9
* support multiple asmlabel types, renamed getlabel to
...
getjumplabel and added type para to getlabel for specific types
* moved lineinfo generation from assemble and aggas to dbgstabs
git-svn-id: trunk@1120 -
2005-09-18 21:16:10 +00:00
Jonas Maebe
9d877e055b
* no longer create new asmsymbols in a_jmp(). Very strange that the jmp
...
peephole optimization worked for ppc...
git-svn-id: trunk@1079 -
2005-09-14 19:22:22 +00:00
Jonas Maebe
b779d6d28f
* fixed fixref() (by Thomas Schatzl)
...
git-svn-id: trunk@904 -
2005-08-18 11:09:57 +00:00
peter
05a628447f
* put typedconsts in own asmlist to prevent mixing
...
array and string data
* added al_rodata
* renamed tasmlist enum names to include al_ prefix
git-svn-id: trunk@899 -
2005-08-17 08:42:52 +00:00
Jonas Maebe
f948a34c78
- disabled wrong GOT setup code which destroys r31 without saving it (should
...
have been done a long time ago already)
git-svn-id: trunk@733 -
2005-07-24 08:26:12 +00:00
daniel
d05f58b604
* Group asmlists into array to be able to add
...
some of them more comfortably.
* x86_64 compilation was broken, fixed.
* Sparc compilation was broken, fixed.
git-svn-id: trunk@731 -
2005-07-23 13:44:32 +00:00
Jonas Maebe
bf51ab03af
+ support for Mach-O in lineinfo.pp (by Jan Ruzicka)
...
* always store the return address in the stack frame on ppc if debuginfo
or lineinfo is turned on (otherwise the parent of a leaf function is
missing in backtraces)
git-svn-id: trunk@724 -
2005-07-21 13:09:45 +00:00
peter
c1b2e1aac5
* check function/procedure type when adding a proc definition
...
git-svn-id: trunk@546 -
2005-06-30 14:56:05 +00:00
Jonas Maebe
7356f83713
* fixed calling of external procedures if the first time they are used in a
...
compilation unit is in an expression which merely takes their address
git-svn-id: trunk@439 -
2005-06-18 09:06:07 +00:00
Jonas Maebe
aea6563bba
* no longer change r12 when fpu regs have to saved, corrupted copying of
...
stack parameters coming after that
git-svn-id: trunk@130 -
2005-05-27 22:09:49 +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
a5c94ddccd
* removed some unused variables
2005-03-25 21:55:43 +00:00