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
fa0507ec2c
* fixed compilation on arm in extdebug mode
...
git-svn-id: trunk@8771 -
2007-10-12 16:14:49 +00:00
yury
3e60b4a8dd
* Don't optimize (eliminate) arm fpu move instruction if it performs float type conversion. It fixes tb0519.pp on arm-linux.
...
git-svn-id: trunk@8059 -
2007-07-14 21:52:15 +00:00
daniel
182fca72f2
* Change spill_* routines to return Taicpu instead of Tai to increase
...
strong typing.
* Fix PowerPC R0 register allocation
git-svn-id: trunk@7317 -
2007-05-12 15:43:16 +00:00
florian
70b438a40f
* better insert of pc relative data
...
git-svn-id: trunk@6975 -
2007-03-24 18:35:53 +00:00
florian
ffd79553a0
+ prefetch support for arm
...
git-svn-id: trunk@6561 -
2007-02-19 17:27:07 +00:00
florian
3609ddc5dd
* more MustBeLast fixes
...
* const insertation algorithm fixed
git-svn-id: trunk@6337 -
2007-02-04 18:45:43 +00:00
florian
762bd12d16
* handle embedded case jump tables correctly
...
git-svn-id: trunk@6333 -
2007-02-04 14:33:57 +00:00
florian
35b9bfc83e
* several range check errors fixed
...
git-svn-id: trunk@6324 -
2007-02-03 19:36:06 +00:00
Jonas Maebe
a23fa2e81e
* moved (unfinished) routines related to writing taicpu's to ppu files
...
from x86/aasmcpu to aasmtai and (new) aasmsym, so that when they're
finished they're available for all targets
* added dummy implementation of tai_cpu_abstract.pass1 and pass2 so there
are no more hundreds of warnings on non-x86 about constructing taicpu
instances with abstract methods
git-svn-id: trunk@5787 -
2007-01-02 18:28:05 +00:00
yury
a4407d5ad2
* fixed insertpcrelativedata when case jump table is used.
...
git-svn-id: trunk@5468 -
2006-11-24 13:40:49 +00:00
yury
87d5058dec
* fix arm-wince exception handling.
...
git-svn-id: trunk@5375 -
2006-11-14 16:49:02 +00:00
yury
ba53db3b5d
* ARM PC relative references optimization.
...
git-svn-id: trunk@5368 -
2006-11-14 09:31:17 +00:00
florian
ef7bd58c54
* germanism removed (aktfilepos -> current_filepos)
...
git-svn-id: trunk@5099 -
2006-10-30 22:37:31 +00:00
florian
f073b1288d
* avoid crash when multiple references to one text symbol entry are used
...
git-svn-id: trunk@3339 -
2006-04-26 18:46:38 +00:00
florian
a25337d9ca
+ op_reg_reg_reg_shifterop
...
git-svn-id: trunk@3330 -
2006-04-25 18:50:19 +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
florian
4443ce0d2a
* typo fixed
...
git-svn-id: trunk@2785 -
2006-03-06 10:33:50 +00:00
Jonas Maebe
f6ad9bea87
* marked resetpass[12] override
...
git-svn-id: trunk@2784 -
2006-03-06 10:03:45 +00:00
peter
f1976eda5c
Merged revisions 2782 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/linker/compiler
........
r2782 | peter | 2006-03-06 10:59:35 +0100 (Mon, 06 Mar 2006) | 2 lines
* fix arm compile
........
git-svn-id: trunk@2783 -
2006-03-06 10:00:14 +00:00
peter
785550d7e3
Merged revisions 2669,2673,2677,2683,2696,2699-2702,2704,2708,2712-2715,2718,2722-2723,2728-2730,2740,2769 via svnmerge from
...
svn+ssh://peter@www.freepascal.org/FPC/svn/fpc/branches/linker/compiler
........
r2669 | peter | 2006-02-23 09:31:21 +0100 (Thu, 23 Feb 2006) | 2 lines
* add compiler dir
........
r2673 | peter | 2006-02-23 17:08:56 +0100 (Thu, 23 Feb 2006) | 2 lines
* enabled more code
........
r2677 | peter | 2006-02-24 17:46:29 +0100 (Fri, 24 Feb 2006) | 2 lines
* pe stub and headers
........
r2683 | peter | 2006-02-25 23:13:24 +0100 (Sat, 25 Feb 2006) | 2 lines
* section options cleanup
........
r2696 | peter | 2006-02-26 20:27:41 +0100 (Sun, 26 Feb 2006) | 2 lines
* fixed typecasts
........
r2699 | peter | 2006-02-26 23:04:32 +0100 (Sun, 26 Feb 2006) | 2 lines
* simple linking works
........
r2700 | peter | 2006-02-27 09:44:50 +0100 (Mon, 27 Feb 2006) | 2 lines
* internal linker script
........
r2701 | peter | 2006-02-27 12:05:12 +0100 (Mon, 27 Feb 2006) | 2 lines
* make elf working again
........
r2702 | peter | 2006-02-27 14:04:43 +0100 (Mon, 27 Feb 2006) | 3 lines
* disable dwarf for smartlinking with .a
* fix section start in new .a file
........
r2704 | peter | 2006-02-27 18:30:43 +0100 (Mon, 27 Feb 2006) | 2 lines
* stab section fixes
........
r2708 | peter | 2006-02-28 19:29:17 +0100 (Tue, 28 Feb 2006) | 2 lines
* basic work to merge stabs sections
........
r2712 | peter | 2006-02-28 23:17:48 +0100 (Tue, 28 Feb 2006) | 2 lines
* unload tmodules before linking
........
r2713 | peter | 2006-02-28 23:18:51 +0100 (Tue, 28 Feb 2006) | 2 lines
* fixed stabs linking
........
r2714 | peter | 2006-02-28 23:19:19 +0100 (Tue, 28 Feb 2006) | 2 lines
* show code and data size
........
r2715 | peter | 2006-02-28 23:25:35 +0100 (Tue, 28 Feb 2006) | 2 lines
* unload .stabs from objdata after it is merged
........
r2718 | peter | 2006-03-01 12:24:38 +0100 (Wed, 01 Mar 2006) | 3 lines
* memsize/datasize cleanup
* check for exports/resources when adding module to linker
........
r2722 | peter | 2006-03-03 09:12:20 +0100 (Fri, 03 Mar 2006) | 2 lines
* new TObjSymbol splitted from TAsmSymbol
........
r2723 | peter | 2006-03-03 14:08:55 +0100 (Fri, 03 Mar 2006) | 2 lines
* coff fixes after recent objsymbol changes
........
r2728 | peter | 2006-03-03 22:43:04 +0100 (Fri, 03 Mar 2006) | 2 lines
* fixed coff writer
........
r2729 | peter | 2006-03-04 01:10:32 +0100 (Sat, 04 Mar 2006) | 2 lines
* fix read-only opening
........
r2730 | peter | 2006-03-04 01:11:16 +0100 (Sat, 04 Mar 2006) | 2 lines
* Read edata from DLLs, basic work
........
r2740 | peter | 2006-03-04 21:13:43 +0100 (Sat, 04 Mar 2006) | 3 lines
* deletedef added
* don't remove defs from index when we are already clearing everything
........
r2769 | peter | 2006-03-05 21:42:33 +0100 (Sun, 05 Mar 2006) | 4 lines
* moved TObj classes to ogbase
* ObjSection.SymbolRefs and SymbolDefines list
* DLL importing
........
git-svn-id: trunk@2771 -
2006-03-05 21:10:37 +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
florian
95dc2eba5f
* basic operand matching works
...
+ skeleton for pass 2 implemented
git-svn-id: trunk@1075 -
2005-09-11 20:53:16 +00:00
florian
6ad3930a5d
* fixed broken powerpc compilation
...
* fixed imm24 constant matching on the arm
git-svn-id: trunk@1074 -
2005-09-11 16:13:55 +00:00
florian
d280ed6e8b
* continued to work on arm binary writer, started to fix operand matching
...
git-svn-id: trunk@1073 -
2005-09-11 10:01:54 +00:00
florian
caecabf7ba
+ more arm assembler stuff
...
git-svn-id: trunk@1070 -
2005-09-10 09:30:39 +00:00
florian
e7e12f0f31
+ some more arm binary writer stuff, this is mainly a transfer commit
...
git-svn-id: trunk@1068 -
2005-09-09 16:12:19 +00:00
florian
9452e2a91f
+ added all used instructions to armins.dat
...
* first clean up of armins.dat
git-svn-id: trunk@1065 -
2005-09-08 22:08:31 +00:00
florian
14fca113bf
* basic framework for integrated arm assembler
...
git-svn-id: trunk@1061 -
2005-09-07 21:34:25 +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
florian
00d9868260
* fixed constant insertation
2005-02-20 12:23:45 +00:00
florian
f3df72d1b1
* don't split indirect calls while inserting pc relative constants
2005-02-15 21:24:40 +00:00
florian
f3b711d3bf
* don't generate overflow results if they aren't necessary
...
* fixed op_reg_reg_reg_reg on arm
2005-02-15 19:53:41 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
florian
22d9294ab3
+ overflow checking for the arm
2005-02-13 18:55:19 +00:00
florian
73c30d6579
* fixed arm compilation with cgutils
...
* ...
2004-11-01 17:41:28 +00:00
florian
410d01458c
* fixed several arm compiler bugs
2004-10-24 17:32:53 +00:00
florian
960bf7b8b1
* fixed float spilling to use sfm/lfm instead of stf/ldf
2004-07-04 15:22:34 +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
aae508c277
+ arm floating point register saving implemented
...
* hopefully stabs generation for MacOSX fixed
+ some defines for arm added
2004-03-29 19:19:35 +00:00
florian
f9840598b0
* handling of spilling improved
2004-03-15 22:20:13 +00:00
florian
16366a944c
* spilling problem fixed
...
* handling of floating point memory references fixed
2004-03-14 16:15:39 +00:00
florian
abc41f1c3c
* several fixes to parameter handling on arm
2004-02-09 22:48:45 +00:00
Jonas Maebe
71202a141d
* taicpu.is_same_reg_move() now gets a regtype parameter so it only
...
removes moves of that particular register type. This is necessary so
we don't remove the live_start instruction of a register before it
has been processed
2004-02-08 23:10:21 +00:00
Jonas Maebe
9495f77117
- removed taicpu.is_reg_move because it's not used anymore
...
+ support tracking fpu register moves by rgobj for the ppc
2004-02-08 20:15:42 +00:00
florian
35110d8ef5
* fixed several arm issues
2004-01-26 19:05:56 +00:00
florian
8d335b9466
* fixed some spilling stuff
...
+ not(<int64>) implemented
+ small set comparisations implemented
2004-01-24 20:19:46 +00:00
florian
d7786f6246
* fixed generic shl/shr operations
...
+ added register allocation hook calls for arm specific operand types:
register set and shifter op
2004-01-23 15:12:49 +00:00