Jonas Maebe
f36e5411af
* split cpu64bit compiler define into
...
a) cpu64bitaddr, which means that we are generating a compiler which
will generate code for targets with a 64 bit address space/abi
b) cpu64bitalu, which means that we are generating a compiler which
will generate code for a cpu with support for 64 bit integer
operations (possibly running in a 32 bit address space, depending
on the cpu64bitaddr define)
All cpus which had cpu64bit set now have both the above defines set,
and none of the 32 bit cpus have cpu64bitalu set (and none will
compile with it currently)
+ pint and puint types, similar to aint/aword (not pword because that
that conflicts with pword=^word)
* several changes from aint/aword to pint/pword
* some changes of tcgsize2size[OS_INT] to sizeof(pint)
git-svn-id: trunk@10320 -
2008-02-13 20:44:00 +00:00
florian
b5c114934d
* reverted 9727 and made a better fix for it
...
git-svn-id: trunk@9734 -
2008-01-13 13:23:19 +00:00
florian
295fdbe37c
* use the current cgsizes instead of the def to determine if loadfpu can be used, else softfloats are broken
...
git-svn-id: trunk@9728 -
2008-01-13 09:59:13 +00:00
Jonas Maebe
20dbda751a
* fixed sparc compilation after addr_lo/hi changes
...
git-svn-id: trunk@8107 -
2007-07-20 12:30:16 +00:00
tom_at_work
2d1f9b20a3
* merged trefaddr.addr_lo/addr_hi with trefaddr.addr_low/addr.high; some related bugfixing/cleanup
...
git-svn-id: trunk@7983 -
2007-07-08 20:50:58 +00:00
peter
f2a25e845d
* refactor gen_alloc_symtable so it depends on varsym type and not
...
on symtabletype
git-svn-id: trunk@5259 -
2006-11-05 21:53:40 +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
florian
fb5e396881
+ experimental -Sv option to support vector arithmetics
...
git-svn-id: trunk@4825 -
2006-10-07 21:39:48 +00:00
Jonas Maebe
2e131baa4c
* code generator support for subsetreferences (memory locations which
...
are not a multiple of 8 bits, nor necessarily aligned at a
multiple of 8 bits). Supports both constant and variable bit
indices.
git-svn-id: trunk@4443 -
2006-08-19 11:14:43 +00:00
Jonas Maebe
8e5e1d8cdb
* another shuffle fix
...
git-svn-id: trunk@3857 -
2006-06-13 07:54:35 +00:00
Jonas Maebe
bbeb8c14b1
* fixed shuffle helpers
...
git-svn-id: trunk@3856 -
2006-06-13 07:53:39 +00:00
Jonas Maebe
e344ee3cd7
+ support for register variables which contain records
...
git-svn-id: trunk@3580 -
2006-05-19 15:49:07 +00:00
Jonas Maebe
eb9f00193b
* return OS_NO from int_cgsize() for sizes which are not a power of 2
...
(fixes crash in tests/test/cg/tpara2.pp for ppc, does not break i386)
git-svn-id: trunk@3159 -
2006-04-06 22:09:25 +00:00
peter
f87b04c034
Merged revisions 2994 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/linker/compiler
........
r2994 | peter | 2006-03-21 07:58:12 +0100 (Tue, 21 Mar 2006) | 2 lines
* use float size for parameters on the stack
........
git-svn-id: trunk@2995 -
2006-03-21 06:59:04 +00:00
peter
588cccb3ca
* remove some obsolete i386 specific code
...
* use a_optimize_const to remove useless opcodes
git-svn-id: trunk@2910 -
2006-03-13 16:37:08 +00:00
florian
137f8f340d
* handling of address registers in references fixed
...
* write address registers as areg when compiling with -sr
git-svn-id: trunk@2398 -
2006-02-01 22:45:14 +00:00
Jonas Maebe
ac24965242
* procedures which use goto/label revert to the older and less
...
efficient regvar allocation scheme
* also allocate regvars before the loops, not just afterwards
git-svn-id: trunk@2192 -
2006-01-05 23:45:00 +00:00
Jonas Maebe
61ef30381c
* Only synchronise regvars after a loop (and only those regvars
...
which are used in the loop). The compiler makes now much
more efficient use of registers for register variables (and
different regvars can now also share the same register if
their live range does not overlap)
git-svn-id: trunk@2186 -
2006-01-05 17:48:11 +00:00
Jonas Maebe
3f86e6b728
* keep upper bound of loops in a register instead of in memory
...
git-svn-id: trunk@2105 -
2006-01-01 17:02:34 +00:00
tom_at_work
0f10de3d1a
- Powerpc compiler cycles again; during adding PowerPC64 code, the trefaddr enumeration for PPC was mixed up
...
git-svn-id: trunk@1195 -
2005-09-25 19:16:57 +00:00
peter
6bf3269b41
* powerpc64 port from Thomas Schatzl
...
git-svn-id: trunk@1193 -
2005-09-25 17:19:44 +00:00
michael
7449f99d5f
+ Removed all compatibility defines from compiler
...
git-svn-id: trunk@335 -
2005-06-09 21:14:22 +00:00
florian
ebcb69478f
* fixed a lot of stuff for fpu/mm register variables
...
git-svn-id: trunk@199 -
2005-06-04 21:23:15 +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
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
florian
5fb0678de2
* fixed class field info alignment
2004-12-27 15:54:54 +00:00
florian
0037f4a199
* fixed operand size calculation for sse operands
...
+ all nasm assembler targets to help page output added
2004-12-12 10:50:34 +00:00
peter
6c9c4c686c
* small m68k updates to bring it up2date
...
* give better error for external local variable
2004-11-09 22:32:59 +00:00
peter
b0afe9a351
* indexword can't be used for 1.9.4
2004-11-09 16:18:12 +00:00
peter
c95a859f0a
* generic tlocation
...
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
michael
9e879f3931
* fix clearing of superregset (from Peter)
2004-10-14 10:59:58 +00:00
florian
1eb575fa22
* fixed longbool(<int64>) on sparc
2004-08-24 21:02:32 +00:00
florian
ed4d14932e
* indexword in 1.0.x is broken
2004-07-19 19:21:02 +00:00
Jonas Maebe
c7afb87846
* use indexword() in tsuperregisterworklist.delete, greatly speeds up
...
compilation of tw2242
2004-07-18 15:14:59 +00:00
daniel
d2a2aeac9f
* supregset_reset clears 8kb of memory. However, it is being called in
...
inner loops, see for example colour_registers. According to profile data
this causes fillchar to be the most time consuming procedure.
Some modifications done to make it clear less than 8kb of memory each
call. Divides time spent in fillchar by two, but it still is the no.1
procedure.
2004-07-07 17:35:26 +00:00
florian
8a9758c5e2
* logs truncated
2004-06-20 08:55:28 +00:00
florian
588e2c38bf
* dwarf branch merged
2004-06-16 20:07:06 +00:00
florian
fabb9c33ac
* top_symbol killed
...
+ refaddr to treference added
+ refsymbol to treference added
* top_local stuff moved to an extra record to save memory
+ aint introduced
* tppufile.get/putint64/aint implemented
2004-02-27 10:21:04 +00:00
peter
e6929a1a32
* more x86_64 parameter fixes
...
* tparalocation.lochigh is now used to indicate if registerhigh
is used and what the type is
2004-02-09 22:14:17 +00:00
peter
47f08937e4
* use localalign info for alignment for locals and temps
...
* sparc fpu flags branching added
* moved powerpc copy_valye_openarray to generic
2004-01-12 22:11:38 +00:00
peter
d68c75f65a
* R_SUB_FS added to make a difference between double and single
...
floats, required for sparc only
2004-01-12 16:35:05 +00:00
daniel
cdbb601a4e
* Degree=0 problem fixed
...
* Degree to high problem fixed
2004-01-09 22:02:29 +00:00
florian
06442fa677
+ $fputype directive support
...
+ single data type operations with sse unit
* fixed more x86-64 stuff
2003-12-25 01:07:09 +00:00
peter
2fb059e289
* use low(longint) instead of $8000000
2003-12-22 23:10:21 +00:00
florian
b52cee6639
* fixed ppc inlining stuff
...
* fixed wrong unit writing
+ added some sse stuff
2003-12-21 19:42:42 +00:00
daniel
d84b7d0743
* Some work to restore the MMX capabilities
2003-12-19 22:08:44 +00:00
peter
1367e342db
* reg allocations for imaginary register are now inserted just
...
before reg allocation
* tregister changed to enum to allow compile time check
* fixed several tregister-tsuperregister errors
2003-12-15 21:25:48 +00:00
daniel
7061f04355
* Register allocator speed optimizations
...
- Worklist no longer a ringbuffer
- No find operations are left
- Simplify now done in constant time
- unusedregs is now a Tsuperregisterworklist
- Microoptimizations
2003-12-14 20:24:28 +00:00
peter
30f1eb4705
* fix for referencecounted temps
2003-11-04 15:35:13 +00:00