Commit Graph

382 Commits

Author SHA1 Message Date
michael
130bac9c03 * Fixed bug #10511
git-svn-id: trunk@9594 -
2007-12-30 21:35:04 +00:00
micha
0625040eba + add -XR switch for target root file system with libs (also used for C lib type detection)
git-svn-id: trunk@8695 -
2007-09-30 15:00:54 +00:00
peter
6b8aed593f * remove registers{int/mmx/fpu} from firstpass
* small cleanups of unused variables in firstpass
  * node_resources_fpu() created to get an approximation of the
    required fpu registers
  * for the moment use node_complexity in the CG until the
    node_resource_int() is created

git-svn-id: trunk@8655 -
2007-09-26 21:12:01 +00:00
Tomas Hajny
3db626873b * first part of cfileutl cleanup
git-svn-id: trunk@8533 -
2007-09-17 21:20:37 +00:00
Jonas Maebe
488cfa3c32 + -go<x> switch for debugging options (some global switches could be
moved to it)
  + -go[no]dwarfsets switch to [disable]/enable generation of dwarf set
    information, as this breaks gdb < 6.5 (used to be disabled in the
    compiler by an ifdef, still off by default)

git-svn-id: trunk@8414 -
2007-09-09 09:27:49 +00:00
Jonas Maebe
21abdd2f4e + support for specifying the minimal precision for floating point
constants. The default is currently 32 bits/single, which corresponds
    to the old behaviour (constants which cannot be exactly represented
    in the default/chosen precision will also still be automatically
    upgraded to higher precision). Supported constructs:
   * Command line switch -CF<x>
   * Compiler directive {$MINFPCONSTPREC <x>}
  whereby in both cases <x> can be default, 32 or 64. 80 is not supported
  because there is no generic way to figure out whether the current target
  actually supports 80 bit precision floating point calculations while
  parsing the command line switches (pbestreal can still change in case of
  win64 or -Cfsse2)

git-svn-id: trunk@8349 -
2007-09-01 19:38:27 +00:00
Jonas Maebe
a3c9dc5ec6 + support for {$linkframework x} to link to framework x (Darwin only)
+ support for {$frameworkpath x} and -Ffx to add x to the directories to
    search for frameworks (Darwin only)

git-svn-id: trunk@8165 -
2007-07-25 15:42:30 +00:00
daniel
4c81c227fa - Remove long2hex, replace by hexstr.
git-svn-id: trunk@8111 -
2007-07-21 10:29:09 +00:00
Jonas Maebe
28bab3fb4f - removed some unused variables
* fixed some (harmless) ptrint warnings
  - removed some commented code in agppcmpw
  * added one missing field in a typed constant in cp1251

git-svn-id: trunk@8081 -
2007-07-17 13:57:15 +00:00
yury
1782305ae2 * Completely fixed float constants in softfloat mode when compiler was compiled in hardfloat mode on arm-linux host.
git-svn-id: trunk@8015 -
2007-07-10 21:05:12 +00:00
marco
569d7e1138 * fixed deprecated
git-svn-id: trunk@7719 -
2007-06-17 20:40:47 +00:00
daniel
9adb202a92 * Rework the constexprint to allow operations from low(int64) to high(qword).
+ Some initial work on a formaldef which also carries the typinfo of a parameter.

git-svn-id: trunk@7639 -
2007-06-13 07:41:18 +00:00
peter
e4605f9b52 * fix range check error
git-svn-id: trunk@6649 -
2007-02-25 17:51:04 +00:00
daniel
a662c5fedb + On GO32, GBA and NDS, disable RTL features that aren't implemented.
git-svn-id: trunk@6521 -
2007-02-17 09:10:27 +00:00
daniel
5aef9bc086 - Put gpc mode between ifdefs. The only thing it does it disable all
features, this is not gpc compatibility.

git-svn-id: trunk@6518 -
2007-02-16 23:13:28 +00:00
Jonas Maebe
359c19ee9e - removed ppc601 as ppc32 cpu target
+ added ppc740 (g3), ppc7400 (G4) and ppc970 (G5) as ppc32 cpu
    targets
  * initialise optimizecputype by default to ppc7400 for ppc32 and to
    ppc970 for ppc64
  * merged ppc32/ppc64 overflow checking code and use the ppc64 one
    in case cputype or optimizecputype >= ppc970, because one of
    the instructions used in the ppc32 version no longer exists on the
    ppc970 (although it's emulated in the kernel on at least Mac OS X)
  * moved some other support routines and constants to ppcgen which
    were needed for the overflow checking (were identical for ppc32 and
    ppc64) 

git-svn-id: trunk@6323 -
2007-02-03 19:32:44 +00:00
Jonas Maebe
246f75c43a - removed inlining_procedure global var (artefact from pass_2 inlining)
git-svn-id: trunk@6266 -
2007-01-29 15:33:56 +00:00
Jonas Maebe
d6a4fbea47 * removed no longer used allow_only_static global variable
git-svn-id: trunk@6265 -
2007-01-29 14:49:28 +00:00
Jonas Maebe
2ea611e069 * fixed searching fpc.cfg on {$ifdef need_path_search} OS'es
git-svn-id: trunk@6237 -
2007-01-27 20:58:26 +00:00
tom_at_work
106fe68ce6 * renamed TStringList to TCmdStrList, in general use TCmdStr instead of shortstrings to fix bug #6351
git-svn-id: trunk@6215 -
2007-01-26 22:29:39 +00:00
florian
dac9896a6d + added -vs for time stamping
git-svn-id: trunk@6176 -
2007-01-24 20:32:06 +00:00
peter
5e428406e0 * remove redundant initalization of LinkTypeSetExplicitly
git-svn-id: trunk@5938 -
2007-01-13 12:28:14 +00:00
Jonas Maebe
adbe0ab1d2 * support linker options (-k) which are > 255 chars combined
git-svn-id: trunk@5924 -
2007-01-12 17:12:29 +00:00
florian
fa493c7898 * move exception mask initialization to procedure compile
* reset exception mask at compiler exit
* use math routines for exception masking

git-svn-id: trunk@5841 -
2007-01-07 12:24:39 +00:00
florian
fd2032dab2 + start of embedded rtl
+ feature support in the compiler

git-svn-id: trunk@5628 -
2006-12-17 18:40:36 +00:00
yury
d8d25c2489 * fixed memory leaks in compiler.
git-svn-id: trunk@5369 -
2006-11-14 09:32:58 +00:00
Jonas Maebe
caf501d499 * shell needs an ansistring parameter to avoid cutting of
command lines

git-svn-id: trunk@5323 -
2006-11-10 23:45:39 +00:00
peter
0557ddc342 * removed typed const, it is now handled by staticvarsym
* globalvarsym renamed to staticvarsym
  * fixed invalid regvar use in init when the finalize also uses the var

git-svn-id: trunk@5290 -
2006-11-08 21:04:22 +00:00
peter
658c46b903 * remove tdictionary and tindexarray
* symtables based on TFPHashObjectList and TFPObjectList
  * rename torddef.typ to torddef.ordtype
  * rename tfloatdef.typ to tfloatdef.floattype
  * rename tdef.deftype to tdef.typ
  * remove obsolete browser code, browcol is kept so the ide
    can still be compiled

git-svn-id: trunk@5192 -
2006-11-03 00:30:30 +00:00
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
peter
d21842fe61 * fixed linux compile
git-svn-id: trunk@5117 -
2006-10-31 11:35:54 +00:00
peter
3997ef0253 * dos compile fixes
git-svn-id: trunk@5111 -
2006-10-31 09:08:32 +00:00
peter
9f5d69ce31 * make win32 compile
git-svn-id: trunk@5103 -
2006-10-30 23:46:28 +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
bce905b106 * give correct error locations for errors when specializing templates
* removed more germanisms
* better dumping of tokenbuf in ppudump

git-svn-id: trunk@5101 -
2006-10-30 23:28:06 +00:00
florian
ef7bd58c54 * germanism removed (aktfilepos -> current_filepos)
git-svn-id: trunk@5099 -
2006-10-30 22:37:31 +00:00
florian
2974bbaf10 * get proper moduleindex when loading a unit, fixes #4778
git-svn-id: trunk@5097 -
2006-10-30 21:01:51 +00:00
peter
568e21ef1d * maxfpuregisters to shortint
git-svn-id: trunk@5096 -
2006-10-30 20:23:03 +00:00
florian
85d63d9fa9 * settings refactored
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
Jonas Maebe
36c6879581 + -Sx command line switch to turn on exception keywords in non-Delphi/ObjFPC
modes (mainly for MacPas, to replace nested gotos with exceptions)

git-svn-id: trunk@4984 -
2006-10-20 12:54:47 +00:00
florian
a61abb25cb * reorganized optimizer switch sets
git-svn-id: trunk@4862 -
2006-10-11 18:16:10 +00:00
peter
d07f470b71 * remove ifdef fpc
git-svn-id: trunk@4819 -
2006-10-07 13:43:34 +00:00
micha
d704af7216 fix compilation for {$T+} linux/win
git-svn-id: trunk@4794 -
2006-10-04 20:43:55 +00:00
florian
569c4871fc + first batch of varset support, as long as packset isn't changed, it doesn't change anything
git-svn-id: trunk@4710 -
2006-09-24 14:40:11 +00:00
peter
d0156354a6 * inline directive enabled by default for fpc,objfpc,delphi modes
* -Si and $inline directive control are now local switches and 
    have finer control on whether a function will really inlined or not

git-svn-id: trunk@4553 -
2006-09-04 19:54:21 +00:00
olle
05d6f0e94d macos: added a fake sysutils for use by compiler, and fixed some tests
git-svn-id: trunk@4549 -
2006-09-03 22:30:37 +00:00
Jonas Maebe
848b7b8914 - removed {$ifdef havelinuxrtl10} code
git-svn-id: trunk@4345 -
2006-08-04 12:29:34 +00:00
Jonas Maebe
5f699c7838 + -gt, -gtt, -gttt and -gtttt switches to trash local variables with
different values (resp. $55, $AA, $EF and $00) in function/procedure
    prologs to help find uninitialized uses. Should still be extended
    for "out" parameters.

git-svn-id: trunk@4271 -
2006-07-20 22:54:23 +00:00
peter
c3d99528e7 * use internal linker by default
git-svn-id: trunk@3992 -
2006-06-28 20:47:10 +00:00
florian
dc2bef3875 + implemented directives $setpeflags, $maxstacksize, $minstacksize and $imagebase, fixes #6349 and #6714
git-svn-id: trunk@3935 -
2006-06-25 10:22:42 +00:00
florian
90cc0f3619 + define the assembler reader always explicitly
git-svn-id: trunk@3882 -
2006-06-17 13:22:30 +00:00
marco
179451dcfd * Initial linkordering subsystem. Not active (need t_* mods which I want in a different revision to ease merging)
git-svn-id: trunk@3788 -
2006-06-04 12:44:48 +00:00
florian
eebef025c2 * default instruction set set to pentium on i386
git-svn-id: trunk@3738 -
2006-05-29 19:52:59 +00:00
florian
64f51612d4 * fixed broken fpu type setting in 2.1.1
git-svn-id: trunk@3586 -
2006-05-19 23:28:55 +00:00
peter
d69ad5d84d * cleanup external/nolink options
git-svn-id: trunk@3375 -
2006-04-29 21:49:37 +00:00
peter
ce58e15393 * fix coff section names to fix resourcestrings with
the external linker
  * create import libraries for dll imports, this uses
    the new objdata framework to generate the binary
    object files directly without needing an assembler pass
  * store import_dll and import_name in ppu
  * external linker uses import libraries
  * internal linker uses import info from symtables,
    no dlls are needed anymore

git-svn-id: trunk@3255 -
2006-04-17 20:48:22 +00:00
yury
7d8aa405b1 * GenerateImportSection is true by default as before. Import libs issue need to be fixed before setting this option to false by default.
git-svn-id: trunk@3203 -
2006-04-14 06:47:38 +00:00
Jonas Maebe
76937d5222 * fixed previous commit
git-svn-id: trunk@3195 -
2006-04-12 10:46:21 +00:00
Jonas Maebe
05540cad44 * give an error for {$calling } (i.e., when a procedure directive is
missing)

git-svn-id: trunk@3193 -
2006-04-12 07:58:25 +00:00
Jonas Maebe
4d55b3aee3 + support for {$calling default} to switch back to the default calling
convention

git-svn-id: trunk@3192 -
2006-04-11 20:41:53 +00:00
peter
a609d76920 * don't generate import data section anymore by default
git-svn-id: trunk@3117 -
2006-04-02 00:31:52 +00:00
peter
fc6e4adf74 Merged revisions 3068,3070,3114 via svnmerge from
svn+ssh://peter@www.freepascal.org/FPC/svn/fpc/branches/linker/compiler

r3068 | peter | 2006-03-28 15:02:06 +0100 (Tue, 28 Mar 2006) | 2 lines

  * Add new TFPHashList and TFPHashObjectList

r3070 | peter | 2006-03-29 07:39:04 +0100 (Wed, 29 Mar 2006) | 2 lines

  * fix compile

r3114 | peter | 2006-04-01 23:47:50 +0100 (Sat, 01 Apr 2006) | 3 lines

  * remove debug writelns
  * enable vtable optimizer with -Xv

git-svn-id: trunk@3116 -
2006-04-02 00:13:03 +00:00
peter
ecdb5df2d6 * fix alignment of tdoublearray by using a variant record
git-svn-id: trunk@3071 -
2006-03-29 06:40:47 +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
d8dc5679e3 * aktcputype and aktoptimizecputype was missing in the previous optimization commits
git-svn-id: trunk@2907 -
2006-03-13 12:29:56 +00:00
peter
2888a21593 * list supported optimization options in -i
* support $OPTIMIZATION and $O+

git-svn-id: trunk@2904 -
2006-03-13 11:17:56 +00:00
peter
b6e35a200e * rewrite of optimizer options
git-svn-id: trunk@2901 -
2006-03-13 09:05:50 +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
daniel
fbc08c229d + Add m_property mode switch to allow per mode recognition of
property.

git-svn-id: trunk@2570 -
2006-02-14 17:11:18 +00:00
florian
4662a12fd5 * compilation for arm target fixed
git-svn-id: trunk@2408 -
2006-02-02 17:26:18 +00:00
tom_at_work
a2307edf2c * fixed -dUSE_SYSUTILS compilation
* the call to "ar" is now automatically broken into multiple calls, avoiding shell errors when expanding the '*' in the original commandline

git-svn-id: trunk@2378 -
2006-01-29 18:01:53 +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
florian
a8e4073903 * fixed broken DirectoryExists
git-svn-id: trunk@2136 -
2006-01-03 12:53:27 +00:00
florian
3ccec3fbdd * proper error if a directory is passed as configuration file
git-svn-id: trunk@2134 -
2006-01-02 21:07:15 +00:00
peter
95879fe8a7 * basic support for generic classes
git-svn-id: trunk@2020 -
2005-12-21 10:11:15 +00:00
Jonas Maebe
b3b104130d * compiler discerns between +0.0 and -0.0
+ test for the above

git-svn-id: trunk@1917 -
2005-12-10 20:37:17 +00:00
peter
539b7dc220 * setting the compile mode should set the preprocessor symbol directly
git-svn-id: trunk@1457 -
2005-10-18 06:57:39 +00:00
Tomas Hajny
022e3ceef8 * check added to avoid potential SIGSEGV
git-svn-id: trunk@1261 -
2005-10-02 22:18:45 +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
peter
6bf3269b41 * powerpc64 port from Thomas Schatzl
git-svn-id: trunk@1193 -
2005-09-25 17:19:44 +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
olle
6bee709682 * default packenum in mode macpas changed to 1
git-svn-id: trunk@580 -
2005-07-04 18:26:04 +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
Jonas Maebe
6a8eddb6ce * fixed compilation with -dUSE_SYSUTILS
git-svn-id: trunk@486 -
2005-06-24 18:34:14 +00:00
Jonas Maebe
1aa8233c57 - removed unused maxparasize and maxlocalsize
git-svn-id: trunk@384 -
2005-06-11 17:08:00 +00:00
Jonas Maebe
ad86df3b6f * removed m_repeat_forward for macpas mode
git-svn-id: trunk@382 -
2005-06-11 16:05:51 +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
bfa2301575 * const record parameters > 8 bytes are now passed by reference for non
cdecl/cppdecl procedures on Mac OS/Mac OS X to fix compatibility with
    GPC (slightly more efficient than Metrowerks behaviour below, but
    less efficient in most cases than our previous scheme)
  + "mwpascal" procedure directive to support the const record parameter
    behaviour of Metrowerks Pascal, which passes all const records by
    reference
2005-03-27 14:10:52 +00:00
olle
878c56bad6 * Cleaned up handling of source file extension.
+ Added support for .p extension for macos and darwin
2005-03-20 22:36:45 +00:00
florian
6601ef0ca8 + gpc mode uses tp_procvars 2005-03-13 11:27:52 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
olle
e90d15bd5e * fixed compilation on MacOS 2005-02-08 22:33:51 +00:00
florian
72f65a379f * fixed typo in define 2005-02-07 21:30:25 +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
9a8e62553a * oldfpccall fixed 2005-02-06 19:55:19 +00:00
florian
602026d89d + setting sse exception mask on x86_64 2005-02-05 16:17:19 +00:00
olle
d5d8694c96 * macpas now uses tp style proc params 2005-02-01 17:57:30 +00:00