florian
97fcac35f3
* fixed compilation on winx64
...
git-svn-id: trunk@3254 -
2006-04-17 20:33:07 +00:00
peter
efe41b0766
* fixed section smartlinking with ld.exe
...
* reference debugstart and debugend sections
git-svn-id: trunk@3127 -
2006-04-02 20:18:38 +00:00
peter
5376d2d570
Merged revisions 3072-3073 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/linker/compiler
........
r3072 | peter | 2006-03-29 13:34:42 +0200 (Wed, 29 Mar 2006) | 4 lines
* std_regname generate pair of registers for float doubles
* don't call translate_register for regvars if -sr is passed
* use std_regname in regalloc message
........
r3073 | peter | 2006-03-29 16:00:37 +0200 (Wed, 29 Mar 2006) | 2 lines
* CMP instructions only read operands
........
git-svn-id: trunk@3079 -
2006-03-30 06:36:42 +00:00
peter
dfd84c6fd3
* leb128 gets always a 64bit int
...
* fixed sleb128 encode
git-svn-id: trunk@3060 -
2006-03-27 13:42:06 +00:00
peter
e7a419cbff
* leb128 support for binary writers
...
git-svn-id: trunk@3049 -
2006-03-26 21:12:33 +00:00
peter
37c81492ad
Merged revisions 2827,2831,2837,2932-2980 via svnmerge from
...
svn+ssh://peter@www.freepascal.org/FPC/svn/fpc/branches/linker/compiler
r2827 (peter)
* smartlinking of resourcestrings
r2831 (peter)
* process_ea 64bit fixes
r2837 (peter)
* linker script
git-svn-id: trunk@2981 -
2006-03-19 22:12:52 +00:00
Jonas Maebe
d56857e998
* fixed r2970 (% instead of #)
...
git-svn-id: trunk@2977 -
2006-03-19 20:41:36 +00:00
peter
76944b0c85
* fix writing of @object for arm
...
git-svn-id: trunk@2970 -
2006-03-19 19:11:37 +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
693412e70c
* removed "inline" directive from TGNUAssembler.WriteInstruction
...
because it triggers an internalerror when loading the nodetree
for that method from the ppu file
git-svn-id: trunk@2880 -
2006-03-11 23:29:47 +00:00
peter
86a15e83e9
* fix section flags for stabs
...
git-svn-id: trunk@2838 -
2006-03-10 18:35:17 +00:00
Jonas Maebe
ba6f1e4990
* factered WriteInstruction out of TGNUAssembler into its own class
...
* put Apple-specific GNU assembler stuff in its own class
+ darwin/x86 support to the assembler writer
git-svn-id: trunk@2818 -
2006-03-09 14:59:04 +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
Jonas Maebe
c5243db965
+ more darwin i386 support
...
git-svn-id: trunk@2596 -
2006-02-15 16:31:05 +00:00
florian
2ff2918016
* fixed open arrays with dwarf
...
* fixed line info writting for smart linked files
git-svn-id: trunk@2446 -
2006-02-05 20:41:13 +00:00
Jonas Maebe
976bb457b4
* fixed WriteDecodedSleb128
...
git-svn-id: trunk@2413 -
2006-02-03 12:37:50 +00:00
florian
64acd83ab4
+ dwarf for procedures and local symbols
...
git-svn-id: trunk@2360 -
2006-01-28 21:26:37 +00:00
florian
8cd8e4ba8d
+ basic dwarf support for variables and types
...
git-svn-id: trunk@2353 -
2006-01-28 16:06:08 +00:00
florian
238d18bef2
* fixed some broken stuff due to tai_const refactoring
...
git-svn-id: trunk@2329 -
2006-01-22 21:50:12 +00:00
florian
6af88cec0f
+ first implementation of dwarf line info generation using .file and .loc, little use with binary writers though ...
...
git-svn-id: trunk@2327 -
2006-01-22 15:59:26 +00:00
florian
b06643a1eb
* tai_const refactored
...
git-svn-id: trunk@2323 -
2006-01-22 12:58:38 +00:00
florian
aa176601fb
+ added more dwarf sections
...
git-svn-id: trunk@2318 -
2006-01-21 21:22:47 +00:00
tom_at_work
c887507adf
* generic compiler patches for ppc64/linux PIC code
...
git-svn-id: trunk@2222 -
2006-01-08 13:27:31 +00:00
tom_at_work
8c8e25353b
* reverted changes from 2214, needs to be split into several commits
...
git-svn-id: trunk@2215 -
2006-01-08 01:03:15 +00:00
tom_at_work
6313a9be7b
* basic code generation for dynamic linking code for ppc64
...
git-svn-id: trunk@2214 -
2006-01-07 22:16:33 +00:00
florian
61e3b70cfa
* cleaned up segmented thread variables
...
git-svn-id: trunk@2135 -
2006-01-03 12:49:29 +00:00
florian
06c84e1c5e
* fixed writing of symbol sizes
...
git-svn-id: trunk@2123 -
2006-01-02 18:29:18 +00:00
Jonas Maebe
f0c028d6c8
+ dwarf support for darwin/mac os x (not really enabled yet, since it's
...
currently only used if a target requires it)
git-svn-id: trunk@2010 -
2005-12-20 17:54:11 +00:00
peter
1e1ea0c3b6
* write .type and .size only for target that support it
...
git-svn-id: trunk@1956 -
2005-12-15 11:39:23 +00:00
Jonas Maebe
dac02c3032
* always use the regular secnames for darwin currently
...
git-svn-id: trunk@1937 -
2005-12-12 14:45:06 +00:00
florian
ca782dddc7
* write correct type usual symbols
...
git-svn-id: trunk@1933 -
2005-12-11 23:11:55 +00:00
florian
fb8e885a94
+ write data block size and type
...
* changed .space to .zero
git-svn-id: trunk@1931 -
2005-12-11 23:03:20 +00:00
florian
924265c0af
* pic compatible section names
...
git-svn-id: trunk@1924 -
2005-12-10 22:04:04 +00:00
tom_at_work
28381b1287
* new assembler symbol type AT_LABEL needed for PowerPc64 target
...
+ added automatic definition of FPC_REQUIRES_PROPER_ALIGNMENT define for PowerPC64 target
git-svn-id: trunk@1278 -
2005-10-03 22:13:45 +00:00
tom_at_work
3681639a6a
- more PowerPC64 fixes; "Hello World" style programs can be compiled and run
...
git-svn-id: trunk@1209 -
2005-09-27 18:16:49 +00:00
florian
b1568fed2a
* don't strip aname for resources
...
git-svn-id: trunk@1199 -
2005-09-25 21:03:55 +00:00
michael
2057b480a9
+ Fixed resource section names
...
git-svn-id: trunk@1185 -
2005-09-25 13:12:42 +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
peter
c3727c29b2
* rename al_code to al_procedures, al_bss/al_data to al_globals
...
* more work for section smartlinking
git-svn-id: trunk@1083 -
2005-09-15 06:51:12 +00:00
michael
3392189fb0
+ Implemented resources for ELF
...
git-svn-id: trunk@956 -
2005-08-28 09:35:35 +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
daniel
738660fb8a
* Add remarks from the e-mails
...
git-svn-id: trunk@777 -
2005-08-01 06:57:11 +00:00
daniel
e9f8903be4
* Add Mac OS X exception again
...
git-svn-id: trunk@776 -
2005-08-01 06:44:28 +00:00
daniel
94447481c1
* Use .space instead of .fill
...
git-svn-id: trunk@775 -
2005-07-31 21:25:40 +00:00
daniel
6234341ef2
* Uninitialised variables are no longer declared with .comm
...
git-svn-id: trunk@766 -
2005-07-30 17:40:20 +00:00
daniel
e98865ab40
* Fixes and further development of fast threadvars
...
git-svn-id: trunk@743 -
2005-07-25 14:07:02 +00:00
daniel
22e89e1a42
* Proof of concept: Support threadvars using segment registers.
...
git-svn-id: trunk@740 -
2005-07-24 21:06:23 +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
6171499d15
* fixed creating shared libraries under Darwin/Mac OS X
...
git-svn-id: trunk@727 -
2005-07-22 10:09:52 +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
peter
fcde2cab80
* support rodata like data when writing ordinal cosnts
2004-10-24 13:35:25 +00:00
mazen
a8bf3670d5
* Merge is complete for this file, cycles !
2004-10-14 16:49:14 +00:00
peter
8fb3536f6e
* simple regvar support, not yet finished
2004-09-26 17:45:29 +00:00
peter
519bf9889e
don't lowercase filenames in stabs
2004-08-27 20:53:52 +00:00
Tomas Hajny
692fa34dba
* fix for OS/2 and EMX - .section not supported by as.exe
2004-07-18 22:04:55 +00:00
Jonas Maebe
bd53954c88
* Darwin fixes
2004-07-01 18:16:10 +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
peter
829ec81267
* fix wrong regalloc comments
2004-05-28 21:13:08 +00:00
peter
5358278ca1
tai_regalloc.allocation changed to ratype to notify rgobj of register size changes
2004-05-22 23:34:27 +00:00
florian
8aacc9fb7e
* fixed wrong commit from yesterday
2004-04-27 13:38:24 +00:00
florian
1f18d7ac1b
* some m68k stuff fixed
2004-04-25 21:26:16 +00:00
florian
e678705648
* small x86_64 fixes
2004-04-12 18:59:32 +00:00
florian
0b0c4a4062
* fixed handling of doubles in a native arm compiler
...
* fixed handling of typed double constants on arm
2004-03-17 22:27:41 +00:00
florian
61f15e4ec4
* make cycle fixed
...
+ pic support for darwin
+ support of importing vars from shared libs on darwin implemented
2004-03-02 17:32:12 +00:00
peter
8bfb707401
* tf_need_symbol_size added
2004-02-22 16:51:50 +00:00
florian
37454274bc
* fixed several arm floating point issues
2004-01-24 18:12:40 +00:00
florian
1779c5dd8c
* fixed symbol type writing for arm-linux
...
* fixed assembler generation for abs
2004-01-20 21:02:54 +00:00
peter
42c6e9323b
* sparc updates, mostly float related
2004-01-12 16:39:40 +00:00
Jonas Maebe
e1fc7227d9
* darwin requires the alginment of .lcomm symbols to be specified
...
together with the symbol itself, instead of in a .align directive
2004-01-07 17:40:06 +00:00
Jonas Maebe
8f33050b86
* darwin only supports .align, no .balign
2004-01-04 21:08:59 +00:00
Jonas Maebe
2d40a5008b
+ support exported procedures for linuxppc
...
* refuse to compile systems/t_linux.pas if processor-specific support
for exported procedures is absent
+ generate .type and .size info for all currently defined linux-variants
in aggas.pas
2004-01-03 13:51:05 +00:00
peter
cb201089ea
* fixed range check error
2003-12-14 22:42:54 +00:00
peter
7685cf9c78
* fix range error with tai_const
2003-12-10 17:13:22 +00:00
florian
1af574ceca
* assembler readers OOPed
...
+ typed currency constants
+ typed 128 bit float constants if the CPU supports it
2003-11-12 16:05:39 +00:00
peter
70fe77ca7c
* procinfo unit contains tprocinfo
...
* cginfo renamed to cgbase
* moved cgmessage to verbose
* fixed ppc and sparc compiles
2003-10-01 20:34:48 +00:00
peter
8af51ea6d3
* locals and paras are allocated in the code generation
...
* tvarsym.localloc contains the location of para/local when
generating code for the current procedure
2003-09-23 17:56:05 +00:00
florian
eb9a587759
+ support of NaN and Inf in the compiler as values of real constants
2003-09-06 16:47:24 +00:00
florian
0d3832776f
* first bunch of adaptions of arm compiler for new register type
2003-09-04 00:15:28 +00:00
peter
601160a0e3
* powerpc compiles again
2003-09-03 19:35:24 +00:00
peter
6a8d5eb25d
* NEWRA branch merged
2003-09-03 15:55:00 +00:00
florian
220e05dd5e
* fixed arm concatcopy
...
+ arm support in the common compiler sources added
* moved some generic cg code around
+ tfputype added
* ...
2003-09-03 11:18:36 +00:00
daniel
8cb289e65f
* Fixed PowerPC compilation
2003-08-19 11:53:03 +00:00
daniel
787fcc5797
* Made ATT asm writer work with -sr
2003-08-18 11:49:47 +00:00
daniel
0263254289
* Now -sr works...
2003-08-17 21:11:00 +00:00
daniel
63e1b70931
* Notranslation changed into -sr functionality
2003-08-17 20:47:47 +00:00
Jonas Maebe
4f8c390198
* fixed regvars so they work with newra (at least for ppc)
...
* fixed some volatile register bugs
+ -dnotranslation option for -dnewra, which causes the registers not to
be translated from virtual to normal registers. Requires support in
the assembler writer as well, which is only implemented in aggas/
agppcgas currently
2003-08-17 16:59:20 +00:00
peter
7c733ebcca
* write sec_none info in extdebug
2003-04-28 21:17:53 +00:00
peter
f4b818fc1d
* removed funcretn,funcretsym, function result is now in varsym
...
and aliases for result and function name are added using absolutesym
* vs_hidden parameter for funcret passed in parameter
* vs_hidden fixes
* writenode changed to printnode and released from extdebug
* -vp option added to generate a tree.log with the nodetree
* nicer printnode for statements, callnode
2003-04-25 20:59:33 +00:00
florian
41da381f1a
* fixed a lot of PowerPC related stuff
2003-04-24 22:29:57 +00:00
peter
9ed2ce8c12
* removed some notes/hints
2003-04-22 14:33:38 +00:00
peter
2721d341f0
* merged some verbosity options.
...
* V_LineInfo is a verbosity flag to include line info
2003-01-09 21:52:37 +00:00
daniel
55a161bbbf
* Tregister changed into a record
2003-01-08 18:43:56 +00:00
carl
d23ef9fb9a
- remove some duplicates and unused vars
2002-12-07 14:03:25 +00:00
peter
5fffe4335e
* long symbol name fix merged
2002-12-06 17:50:39 +00:00
carl
64655be168
* memory optimization (3-4%) : cleanup of tai fields,
...
cleanup of tdef and tsym fields.
* make it work for m68k
2002-11-17 16:31:55 +00:00
peter
bfd72ad5d5
* merged changes from 1.0.7 up to 04-11
...
- -V option for generating bug report tracing
- more tracing for option parsing
- errors for cdecl and high()
- win32 import stabs
- win32 records<=8 are returned in eax:edx (turned off by default)
- heaptrc update
- more info for temp management in .s file with EXTDEBUG
2002-11-15 01:58:45 +00:00
peter
477bc04c6a
* always include lineno after fileswitch. valgrind requires this
2002-10-30 21:01:14 +00:00
carl
67486c96c3
* fixes for Delphi 6 compilation
...
(warning : Some features do not work under Delphi)
2002-10-05 12:43:23 +00:00
florian
fb5e694dca
* write double # before float constants when -al is turned on
...
else some gas versions interpret it as line number
2002-08-31 16:05:17 +00:00
peter
ecb430a8eb
* don't write (stabs)line info when inlining a procedure
2002-08-20 16:55:38 +00:00
florian
0d1a344d7f
+ the ppc gas assembler writer adds now registers aliases
...
to the assembler file
2002-08-18 22:16:14 +00:00
peter
98dd65b0f3
* inlining is now also allowed in interface
...
* renamed write/load to ppuwrite/ppuload
* tnode storing in ppu
* nld,ncon,nbas are already updated for storing in ppu
2002-08-18 20:06:23 +00:00
florian
eb2ca8d10f
* rewrote the system handling
2002-07-26 21:15:37 +00:00
florian
07783d2a0d
* powerpc target fixed, very simple units can be compiled
...
* some basic stuff for better callparanode handling, far from being finished
2002-07-07 09:52:32 +00:00
peter
4285e99853
* internal linker
...
* reorganized aasm layer
2002-07-01 18:46:20 +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
carl
820e6cbe4c
+ comments in register allocator uses std_Reg2str
2002-04-15 18:53:48 +00:00
carl
4c1cbe5c2b
+ basic GNU assembler writer class
2002-04-14 16:51:54 +00:00