Commit Graph

600 Commits

Author SHA1 Message Date
florian
6e2187c606 + windows uses now sysinit units as well
git-svn-id: trunk@5191 -
2006-11-02 23:20:35 +00:00
micha
12e8645889 * fix cross-compiling from i386/linux
git-svn-id: trunk@5186 -
2006-11-02 21:19:24 +00:00
micha
ad7d549965 + implement pascal inline asm start/halt code for linux/i386
git-svn-id: trunk@5181 -
2006-11-02 16:58:41 +00:00
yury
82b0e6df0b * More fixes for wince exceptions. Debugging also work with internal linker now for wince.
git-svn-id: trunk@5127 -
2006-10-31 16:06:44 +00:00
peter
cb246eb781 * Remove dos,strings units, use SysUtils instead
* replace split* functions with Extract* functions
  * Add Directory caching

git-svn-id: trunk@5102 -
2006-10-30 23:29:35 +00:00
florian
85d63d9fa9 * settings refactored
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
peter
3078a1927f * remove ttype
* rename old ttype variables *type to *def
  * rename resulttypepass to pass_typecheck
  * rename pass_2 to pass_generate_code

git-svn-id: trunk@5077 -
2006-10-29 22:19:39 +00:00
florian
67aa148602 * fixed softfpu support
+ softfpu enabled for arm-gba

git-svn-id: trunk@4939 -
2006-10-15 21:31:27 +00:00
peter
bf1c390027 * refactor import library generation
* support variable imports in internal linker

git-svn-id: trunk@4544 -
2006-09-03 19:22:31 +00:00
Jonas Maebe
d75b19e484 * removed/conditionalised several unused variables
git-svn-id: trunk@4194 -
2006-07-14 19:44:54 +00:00
peter
3f1070b9d7 * correct fix for resourcestrings
git-svn-id: trunk@4004 -
2006-06-29 21:08:46 +00:00
peter
2bd5aca1b5 * add number prefix to resstr symbols so the get ordered correctly when the
sections are sorted

git-svn-id: trunk@4003 -
2006-06-29 20:50:55 +00:00
peter
283f7ec301 * remove number of errors during linking
git-svn-id: trunk@3989 -
2006-06-28 20:18:47 +00:00
peter
6a4ee03913 * change edatalabel to string references. The edatalabel is not available anymore after a unit is compiled
git-svn-id: trunk@3920 -
2006-06-22 06:02:58 +00:00
yury
550626ef34 - Removed need of assembler startup files for wince. Now compiler directly creates .pdata section needed for arm-wince exception handling.
git-svn-id: trunk@3764 -
2006-06-02 08:36:25 +00:00
florian
9b75d87b55 * define PIC when generating pic
git-svn-id: trunk@3504 -
2006-05-13 20:03:40 +00:00
peter
d19c898b56 * remove obsolete generatesmartlib
git-svn-id: trunk@3341 -
2006-04-27 06:40:19 +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
0ec2921bbe * split newasmsymbol to refasmsymbol and defineasmsymbol
git-svn-id: trunk@3057 -
2006-03-27 11:45:18 +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
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
638b2ecb2b * fix dynamic library compilation on darwin (both i386 and ppc)
git-svn-id: trunk@2875 -
2006-03-11 22:31:56 +00:00
Jonas Maebe
a90e3b3e1d * fixed argc/argv/envp catching for darwin/x86 (not really nice, but
works)

git-svn-id: trunk@2848 -
2006-03-10 23:45:37 +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
5f3e0b5398 * link_allways -> link_always
git-svn-id: trunk@2594 -
2006-02-15 14:36:30 +00:00
peter
e2383470b8 * fixed invalid memory read in tp-mode when parsing uses clause
git-svn-id: trunk@2505 -
2006-02-10 08:01:53 +00:00
Jonas Maebe
2435a7a93c * finalization sections in shared libraries under Darwin are now run
* cleaned up the way the initialisation sections of shared libraries
    under Darwin are run

git-svn-id: trunk@2470 -
2006-02-07 14:29:58 +00:00
peter
232555904e * symtablestack cleanup and rewrite
git-svn-id: trunk@2448 -
2006-02-05 22:24:18 +00:00
peter
0bbead8114 * use use_section_smartlink instead of af_smartlink_sections
git-svn-id: trunk@2336 -
2006-01-25 18:07:36 +00:00
peter
abc49206fc * section smartlink for win32 added, disabled by default because ld.exe
ignores the --gc-sections for pe-i38

git-svn-id: trunk@2305 -
2006-01-16 10:50:02 +00:00
peter
66f8276445 * refactor booleans in systeminfo structure, they are now flags
* support for case aware filesystems (Windows), they do now only
    one lookup if a file exists
  * add -WI option to generate import section for DLL imports or
    let the linker handle it. Default is still import section until
    the Makefiles are fixed, then the generation can be left to the
    linker

git-svn-id: trunk@2274 -
2006-01-13 15:13:26 +00:00
Károly Balogh
fd54c6b468 + ppc-amigaos stack cookie support
git-svn-id: trunk@2199 -
2006-01-07 02:41:15 +00:00
florian
61e3b70cfa * cleaned up segmented thread variables
git-svn-id: trunk@2135 -
2006-01-03 12:49:29 +00:00
florian
43cd438544 * generate _GLOBAL_OFFSET_TABLE_ variable on i386 if necessary
git-svn-id: trunk@2124 -
2006-01-02 18:29:43 +00:00
florian
fb4557d71e * first implementation of pic for i386
git-svn-id: trunk@2107 -
2006-01-01 20:14:48 +00:00
peter
95879fe8a7 * basic support for generic classes
git-svn-id: trunk@2020 -
2005-12-21 10:11:15 +00:00
peter
39c553707e * fix win32 linking
git-svn-id: trunk@1957 -
2005-12-15 12:04:39 +00:00
florian
a1189a9d64 * exports info handling refactored, -E will be passed to ld if necessary
git-svn-id: trunk@1922 -
2005-12-10 22:00:33 +00:00
florian
07ea2a5b38 * fixed generation of exports from units/programs supporting it
git-svn-id: trunk@1920 -
2005-12-10 21:00:37 +00:00
tom_at_work
367df58016 * stack related things (sizes, calculations, etc.) are now 64 bit on 64 bit platforms
* default stack size is now also 32k for Windows (allows the use of stack checking when using threads)

git-svn-id: trunk@1718 -
2005-11-10 17:06:25 +00:00
florian
e1b34a9e7b * cleaning up sets for exports behaviour
+ allow exports from units

git-svn-id: trunk@1535 -
2005-10-19 19:06:45 +00:00
peter
51b8a4a132 * move stabs generation to a single procedure call from pmodules
git-svn-id: trunk@1358 -
2005-10-12 10:35:46 +00:00
peter
89297d2c39 * move all stabs ($ifdef gdb) code to dbgstabs
git-svn-id: trunk@1255 -
2005-10-02 11:17:05 +00:00
peter
ec4d287fd8 * aktoutputformat removed, add new paraXX vars for target
assembler and debuginfo and use these vars to override
    the defaults for the target after the parameters are read
  * remove not-maintained and tested gdb code

git-svn-id: trunk@1201 -
2005-09-25 21:17:37 +00:00
florian
3da870d699 + -Sk loads also dynlibs
git-svn-id: trunk@1150 -
2005-09-20 20:49: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
21cc9597f2 + fpcylix unit
+ -Sk option

git-svn-id: trunk@1106 -
2005-09-18 08:34:51 +00:00
peter
fdc4925fcd * basic framework for debuginfo class added
git-svn-id: trunk@1084 -
2005-09-15 08:34:51 +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
peter
375a5add80 * rename al_debug to al_typestabs
* first write al_typestabs before other sections

git-svn-id: trunk@1054 -
2005-09-06 06:32:26 +00:00
michael
a578c9b7ed + Also take resources in main program source into account
git-svn-id: trunk@990 -
2005-08-31 14:12:41 +00:00
florian
a53c9e2666 * fixed stupid copy/paste which turned softfloat always off
* fixed wince softfloat compiler proc. to be correctly named also when used outside the system unit

git-svn-id: trunk@966 -
2005-08-28 21:08:23 +00:00
michael
d93edfdf13 + Pointer to FPC_RESSYMBOL not in fpc.resptr section
git-svn-id: trunk@962 -
2005-08-28 15:36:17 +00:00
florian
adb193497d + softfloat support for wince
* more units are build for wince

git-svn-id: trunk@959 -
2005-08-28 12:40:43 +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
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
8bc4e0a32f * inline and compilerproc are now procoptions instead of proccall types
(so both can be combined with each other, as well as with other calling
     conventions)
  * defined COMPPROCINLINEFIXED so SYSTEMINLINE is again activated

git-svn-id: trunk@658 -
2005-07-18 15:27:14 +00:00
peter
34df933534 * remove chained overloades before releasing static symtable
git-svn-id: trunk@642 -
2005-07-18 07:06:10 +00:00
florian
83c6b3aca2 * from Yury Sidorov:
+ Added new target WinCE for i386 (to be able compile and run programs in WinCE emulator)

git-svn-id: trunk@596 -
2005-07-09 09:31:57 +00:00
florian
c2fe9e3814 + compiler part of WinCE patches from Yuri Sidorov
git-svn-id: trunk@573 -
2005-07-03 15:52:54 +00:00
florian
f5b9130b98 * deallocation of translated resourcestrings
* load heaptrc before objpas

git-svn-id: trunk@549 -
2005-06-30 19:07:45 +00:00
Jonas Maebe
9d9fd923d9 * the 'main' procedure for darwin is now placed in the main program instead
of in the system unit
+ ability to rename this 'main' symbol (-XM<x>, e.g. -XMSDL_main for SDL), for
  all OS'es
+ mention the -Xm parameter in the help

git-svn-id: trunk@503 -
2005-06-26 13:24:12 +00:00
peter
2720cbd25b * win32 dll smartlink patch from Pavel V. Ozerski
git-svn-id: trunk@182 -
2005-06-03 11:39:57 +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
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
peter
c5488ea6b1 * -Fa option added, it'll load the units before the uses
line is parsed. Can be used to load cthreads from the commandline.
    Example '-g -Faheaptrc,lineinfo' is the same as '-ghl'
2005-02-06 21:33:28 +00:00
peter
ad9d04f104 * removed $threading 2005-02-06 11:15:31 +00:00
florian
b1c8bfc478 + x86_64 pic draft 2005-02-06 00:05:56 +00:00
peter
e820bc93f2 * interface wrapper generation moved to cgobj
* generate interface wrappers after the module is parsed
2005-01-24 22:08:32 +00:00
peter
8d251e8506 * unit mapping rewrite
* new derefmap added
2005-01-19 22:19:41 +00:00
olle
7572f3a539 * rework of macro subsystem
+ exportable macros for mode macpas
2005-01-09 20:24:43 +00:00
peter
9c0be16488 implicit load of variants unit 2004-12-06 19:23:05 +00:00
peter
06cfe01791 * os2 fixes for import
* asmsymtype support for intel reader
2004-11-29 18:50:15 +00:00
michael
180966c0aa * Split po_public into po_public and po_global (Peter) 2004-11-19 08:17:01 +00:00
peter
87d2861f89 * fixes for win32 mangledname 2004-11-16 20:32:40 +00:00
peter
e740a66636 * tparaitem removed, use tparavarsym instead
* parameter order is now calculated from paranr value in tparavarsym
2004-11-15 23:35:30 +00:00
peter
6458bd0ce1 * tvarsym splitted 2004-11-08 22:09:58 +00:00
florian
fa2f619598 * THREADVARLIST is now aligned 2004-11-05 20:04:49 +00:00
peter
088892de9b use filepos of main when generating the module stabs 2004-11-04 23:59:13 +00:00
peter
f4a7c3d444 fixed debuginfo for variables in staticsymtable 2004-11-04 17:09:54 +00:00
olle
f8c9ad629c + All sections get names in macos 2004-10-31 15:29:39 +00:00
peter
759c010f6a * -Ch for heapsize added again
* __heapsize contains the heapsize
2004-10-26 15:11:01 +00:00
peter
e7459f5466 * heap and heapsize removed
* checkpointer fixes
2004-10-25 15:38:41 +00:00
mazen
581b52422c - remove $IFDEF DELPHI and related code
- remove $IFDEF FPCPROCVAR and related code
2004-10-15 09:14:16 +00:00
peter
ef7ae0eab1 * debuginfo fixes 2004-10-04 18:26:51 +00:00
peter
7f8844e74d * release localsymtables when module is compiled 2004-09-14 16:33:46 +00:00
armin
354004d803 * target netwlibc added (libc is preferred for newer netware versions) 2004-09-04 21:18:47 +00:00
armin
5f567e75f8 * dont create main for netware (only PASCALMAIN) 2004-09-03 16:12:32 +00:00
olle
189214f79b + Added automatic use of unit macpas under mode macpas 2004-08-16 22:52:35 +00:00
peter
9d7048d917 * remove unused and not loaded units before linking 2004-07-06 20:23:25 +00:00
peter
230105093d * only enable dwarf for supported platforms 2004-06-29 21:00:08 +00:00
florian
8a9758c5e2 * logs truncated 2004-06-20 08:55:28 +00:00
peter
2eecc76977 * fixed debuginfo symbol 2004-06-18 15:16:27 +00:00
florian
588e2c38bf * dwarf branch merged 2004-06-16 20:07:06 +00:00
peter
a3c4abf4a7 * initialize errorsym/errortype.def.owner to prevent crashes 2004-05-23 20:56:42 +00:00
peter
72365ec95b * implicit_finally flag must be set in pass1
* add check whether the implicit frame is generated when expected
2004-05-23 15:06:20 +00:00
peter
c553f6b320 * add DEBUGINFO symbol to reference the .o file that includes the
stabs info for types and global/static variables
  * debuginfo flag added to ppu to indicate whether debuginfo is
    generated or not
2004-05-19 21:16:12 +00:00
peter
d4dcaeafaf * fix checking for forwards in static symtable 2004-05-16 13:29:21 +00:00
olle
6227590f61 * changed $mode mac to $mode macpas (macro defined should be FPC_MACPAS) 2004-05-11 18:22:16 +00:00
olle
90bf09aa35 + enable omitting of IMPLEMENTATION for mode mac
+ added macro FPC_MAC for mode mac
2004-05-03 09:55:27 +00:00
peter
2b1fee21f1 * fix stabs for globals 2004-05-02 17:26:19 +00:00
Tomas Hajny
9238319c2f * OS/2 heap management modified to be able to grow heap as needed 2004-03-24 20:24:25 +00:00
olle
a7f25327f6 * change AT_FUNCTION to AT_DATA where appropriate 2004-03-18 11:43:57 +00:00
peter
1ae8d3849b * fix stabs lineno for fpc_compiled 2004-03-14 20:10:14 +00:00
peter
37f3f95b59 * more stabs fixes
* special mode -gv for valgrind compatible stabs
2004-03-10 22:52:57 +00:00
peter
d8c68fdfe0 * more stabs updates 2004-03-09 20:45:04 +00:00
peter
abbd54f334 * stabs updates to write stabs for def for all implictly used
units
2004-03-08 22:07:46 +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
olle
4fecc1a56f * big transformation of Tai_[const_]Symbol.Create[data]name* 2004-03-02 00:36:32 +00:00
peter
356b3378e8 * tai_const.create_ptr added 2004-02-26 16:16:38 +00:00
daniel
42f9b1b0e2 * Removed not very usefull nextglobal & previousglobal fields from
Tstoreddef, saving 78 kb of memory
2004-02-06 22:37:00 +00:00
daniel
d735071838 * Rtti generation moved to ncgutil
* Assmtai usage of symsym removed
  * operator overloading cleanup up
2004-02-04 22:15:15 +00:00
peter
a8b90d3014 use local string of 8 chars 2004-01-28 16:48:24 +00:00
Jonas Maebe
7f911c2f4a * Never generate a "main" symbol for PASCALMAIN for Darwin and classic
Mac OS, they use a C-main in their system unit
2004-01-04 21:08:09 +00:00
peter
83abfdc39d * check unit name when expected unitname > 8 chars 2003-12-12 19:42:21 +00:00
peter
fa52c0e3a0 * don't allow duplicate uses
* fix wrong circular dependency
2003-12-08 22:33:43 +00:00
florian
ea754b9a49 * fixed several pi_do_call problems 2003-11-29 20:13:25 +00:00
peter
cac39ccfd4 * renamed mangeldname_prefix to make_mangledname and made it more
generic
  * make_mangledname is now also used for internal threadvar/resstring
    lists
  * Add P$ in front of program modulename to prevent duplicated symbols
    at assembler level, because the main program can have the same name
    as a unit, see webtbs/tw1251b
2003-10-29 19:48:50 +00:00
peter
b327c20b12 * cleanup of the entry and exit code insertion 2003-10-24 17:40:23 +00:00
peter
fcabdbbf35 * fixed unitsym-globalsymtable relation so the uses of a unit
is counted correctly
2003-10-22 15:22:33 +00:00
peter
276688dbb4 * fixed memleak for initfinalcode
* exit from generatecode when there are already errors
2003-10-21 15:14:33 +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
michael
953269fcff + Patch from Wiktor Sywula for watcom support 2003-09-30 08:39:50 +00:00
peter
ddc50a91ca * add missing release of main_proc 2003-09-23 18:03:08 +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
daniel
49e539ac8d * Adding register allocation order 2003-09-09 20:59:27 +00:00
peter
05a15df3c2 * use register with least interferences in spillregister 2003-09-09 15:55:44 +00:00
peter
b9d09a4e5c * preparations for different default calling conventions
* various RA fixes
2003-09-07 22:09:34 +00:00
florian
22f1ff8da4 * merged Wiktor's Watcom patches in 1.1 2003-09-05 17:41:12 +00:00
peter
90782badfe * reload flagged units when interface is loaded 2003-08-23 22:29:24 +00:00
peter
8cf0c122f4 * remove convert_registers 2003-08-21 14:47:41 +00:00
peter
d113495cf1 * fixed stackalloc to not allocate localst.datasize twice
* order of stackalloc code fixed for implicit init/final
2003-08-20 17:48:49 +00:00
daniel
ebb1f3a361 * New register coding now mandatory, some more convert_registers calls
removed.
2003-08-20 09:07:00 +00:00
Jonas Maebe
177d57f22c * split en_exit_code into a part that may allocate a register and a part
that doesn't, so the former can be done before the register colouring
    has been performed
2003-07-23 11:04:15 +00:00
peter
32d076480b * framepointer fixes for sparc
* parent framepointer code more generic
2003-07-06 17:58:22 +00:00
peter
0dceec9a64 * current_procdef removed, use current_procinfo.procdef instead 2003-06-13 21:19:30 +00:00
peter
77d641fa2a * init/final of procedure data splitted from genentrycode
* use asmnode getposition to insert final at the correct position
    als for the implicit try...finally
2003-06-09 12:23:29 +00:00
peter
e7975c7592 * re-resolving added instead of reloading from ppu
* tderef object added to store deref info for resolving
2003-06-07 20:26:32 +00:00
mazen
af653c3dd7 - removed unneeded ifdefs
- removed unneeded cases for sparc and x86_64
2003-06-03 20:21:45 +00:00
daniel
41e0bc4cec * Register allocator finished 2003-06-03 13:01:59 +00:00
peter
047a066711 * procinlinenode removed
* aktexit2label removed, fast exit removed
  + tcallnode.inlined_pass_2 added
2003-05-26 21:17:17 +00:00
peter
aaf6114364 * moved Comment calls to messge file 2003-05-25 10:27:12 +00:00
peter
345228fd29 * defer codegeneration for nested procedures 2003-05-22 21:31:35 +00:00
peter
92ee1804b6 * removed selfpointer_offset, vmtpointer_offset
* tvarsym.adjusted_address
  * address in localsymtable is now in the real direction
  * removed some obsolete globals
2003-05-15 18:58:53 +00:00
florian
76f18e2fc9 * fixed implicit init/final code for units, stack frame was wrong for ppc 2003-05-11 19:31:28 +00:00
peter
dfd469b7a3 * fix stabs generation for implicit initfinal 2003-04-28 21:19:02 +00:00
peter
60978ba89c * aktprocdef renamed to current_procdef
* procinfo renamed to current_procinfo
  * procinfo will now be stored in current_module so it can be
    cleaned up properly
  * gen_main_procsym changed to create_main_proc and release_main_proc
    to also generate a tprocinfo structure
  * fixed unit implicit initfinal
2003-04-27 11:21:32 +00:00
peter
7f14891d66 * aktprocdef cleanup, aktprocdef is now always nil when parsing
a new procdef declaration
  * aktprocsym removed
  * lexlevel removed, use symtable.symtablelevel instead
  * implicit init/final code uses the normal genentry/genexit
  * funcret state checking updated for new funcret handling
2003-04-27 07:29:50 +00:00
florian
0284016ee9 * fixed several issues with powerpc
+ applied a patch from Jonas for nested function calls (PowerPC only)
  * ...
2003-04-23 12:35:34 +00:00
peter
aca9555704 * Use the original unitname when defining a unitsym 2003-04-12 15:13:03 +00:00
Tomas Hajny
8e7124f9f8 + emx target added 2003-03-23 23:11:17 +00:00
peter
bb15f5641e *** empty log message *** 2003-03-17 22:20:08 +00:00
peter
dab938e084 * fix import linking under linux 2003-03-17 13:36:39 +00:00
daniel
86bcea6ef5 * Code generator converted to new register notation
- Horribily outdated todo.txt removed
2003-02-19 22:00:14 +00:00
mazen
9ad1d0ffe2 * fixing bug related to errornous program main entry stack frame 2003-02-06 22:36:55 +00:00
peter
2b0e576cbe * tai_const_symbol.createdataname added 2003-01-30 21:46:20 +00:00
Tomas Hajny
23591531b8 * correction from rev. 1.88 put back 2003-01-11 11:19:54 +00:00
daniel
55a161bbbf * Tregister changed into a record 2003-01-08 18:43:56 +00:00
florian
b59b436130 * x86-64 compiles
+ very basic support for float128 type (x86-64 only)
2003-01-05 13:36:53 +00:00
peter
a77c4e01dd * insert unitsym with the name as specified in the uses list 2002-12-29 18:17:23 +00:00
peter
bbf8bddbb4 * unit loading changed to first register units and load them
afterwards. This is needed to support uses xxx in yyy correctly
  * unit dependency check fixed
2002-12-29 14:57:50 +00:00
Tomas Hajny
6fff1b96bd * another (hopefully final ;-) ) fix for not linked import libraries for units with no code 2002-12-27 19:09:33 +00:00
peter
abbbc7443d * Use FixFilename for specified unit sourcefile in uses 2002-12-24 23:32:56 +00:00
peter
cab4c8879f * only compile cs_fp_emulation support when cpufpuemu is defined
* define cpufpuemu for m68k only
2002-12-06 16:56:57 +00:00
carl
edb20100ac + Add loading of softfpu in emulation mode
+ Correct routine call for softfpu
  * Extended type must also be defined even with softfpu
2002-11-30 21:32:24 +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
carl
391b49d410 * major alignment updates 2002-11-09 15:33:26 +00:00
michael
39f16b03ef + Renamed thread unit to systhrds 2002-10-16 06:27:30 +00:00
peter
798289b1f3 * only use init tables for threadvars 2002-10-14 19:42:33 +00:00
peter
6d4fcce014 * Add finalization of typed consts
* Finalization of globals in the main program
2002-10-06 19:41:30 +00:00
peter
a540ff122c * tdicationary.replace added to replace and item in a dictionary. This
is only allowed for the same name
  * varsyms are inserted in symtable before the types are parsed. This
    fixes the long standing "var longint : longint" bug
  - consume_idlist and idstringlist removed. The loops are inserted
    at the callers place and uses the symtable for duplicate id checking
2002-09-09 17:34:14 +00:00
peter
dcd9e0107c * old logs removed and tabs fixed 2002-09-07 15:25:00 +00:00
daniel
b0364566d1 * Make Tprocdef.defs protected 2002-09-03 16:26:26 +00:00
peter
36481b72bb * insert PASCALMAIN in library for Win32 only 2002-09-02 18:46:26 +00:00
florian
5e60724d23 + HEAP* stuff must be generated for Linux/PPC as well
+ direct assembler reader searches now global and static symtables as well
2002-08-31 15:59:30 +00:00
peter
a28f75ed03 * sym.insert_in_data removed
* symtable.insertvardata/insertconstdata added
  * removed insert_in_data call from symtable.insert, it needs to be
    called separatly. This allows to deref the address calculation
  * procedures now calculate the parast addresses after the procedure
    directives are parsed. This fixes the cdecl parast problem
  * push_addr_param has an extra argument that specifies if cdecl is used
    or not
2002-08-25 19:25:18 +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
e313bab4ff * first part of procinfo rewrite 2002-08-17 09:23:33 +00:00
peter
ac71268ce6 * saving of asmsymbols in ppu supported
* asmsymbollist global is removed and moved into a new class
    tasmlibrarydata that will hold the info of a .a file which
    corresponds with a single module. Added librarydata to tmodule
    to keep the library info stored for the module. In the future the
    objectfiles will also be stored to the tasmlibrarydata class
  * all getlabel/newasmsymbol and friends are moved to the new class
2002-08-11 13:24:10 +00:00
carl
18b102ce95 + moved target_cpu_string to cpuinfo
* renamed asmmode enum.
  * assembler reader has now less ifdef's
  * move from nppcmem.pas -> ncgmem.pas vec. node.
2002-08-10 14:46:29 +00:00
florian
eb2ca8d10f * rewrote the system handling 2002-07-26 21:15:37 +00:00
florian
479a745096 * first x86-64 patches 2002-07-04 20:43:00 +00:00
peter
4285e99853 * internal linker
* reorganized aasm layer
2002-07-01 18:46:20 +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
peter
4dcd96747e * moved entry and exitcode to ncgutil and cgobj
* foreach gets extra argument for passing local data to the
    iterator function
  * -CR checks also class typecasts at runtime by changing them
    into as
  * fixed compiler to cycle with the -CR option
  * fixed stabs with elf writer, finally the global variables can
    be watched
  * removed a lot of routines from cga unit and replaced them by
    calls to cgobj
  * u32bit-s32bit updates for and,or,xor nodes. When one element is
    u32bit then the other is typecasted also to u32bit without giving
    a rangecheck warning/error.
  * fixed pascal calling method with reversing also the high tree in
    the parast, detected by tcalcst3 test
2002-05-12 16:53:04 +00:00
carl
682c2289fa + added more patches from Mazen for SPARC port 2002-05-06 19:54:50 +00:00
carl
87aa88e9b7 + generic FPC_CHECKPOINTER
+ first parameter offset in stack now portable
* rename some constants
+ move some cpu stuff to other units
- remove unused constents
* fix stacksize for some targets
* fix generic size problems which depend now on EXTEND_SIZE constant
2002-04-20 21:32:23 +00:00
peter
70ff711f73 * mangledname rewrite, tprocdef.mangledname is now created dynamicly
in most cases and not written to the ppu
  * add mangeledname_prefix() routine to generate the prefix of
    manglednames depending on the current procedure, object and module
  * removed static procprefix since the mangledname is now build only
    on demand from tprocdef.mangledname
2002-04-19 15:46:01 +00:00
carl
37091f14da + align code section and data section according to alignment rules 2002-04-14 16:53:10 +00:00
carl
c8b3a5b3db + generic stack checking 2002-04-07 17:58:38 +00:00
peter
5e7a1e3729 * removed unused units
* use tlocation.size in cg.a_*loc*() routines
2002-04-04 19:05:54 +00:00
carl
0ee2ac7451 + added wdosx support (patch from Pavel) 2002-04-04 18:30:22 +00:00
peter
5b242f7741 * tlocation,treference update
* LOC_CONSTANT added for better constant handling
  * secondadd splitted in multiple routines
  * location_force_reg added for loading a location to a register
    of a specified size
  * secondassignment parses now first the right and then the left node
    (this is compatible with Kylix). This saves a lot of push/pop especially
    with string operations
  * adapted some routines to use the new cg methods
2002-04-02 17:11:27 +00:00
armin
1179c13288 addToLocalThreadvarList used '_'+name instead of mangledname to find asm symbol 2002-04-01 13:43:32 +00:00
armin
6b6df5ee46 + allow exports for netware 2002-03-29 17:19:50 +00:00