Commit Graph

364 Commits

Author SHA1 Message Date
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