Commit Graph

522 Commits

Author SHA1 Message Date
florian
43ba7cfe6f * correct name of set packing directive is PACKSET
git-svn-id: trunk@5313 -
2006-11-10 19:56:19 +00:00
florian
e619bd3235 * enabled SETALLOC=1 for the compiler
git-svn-id: trunk@5300 -
2006-11-09 20:46:11 +00:00
florian
667baf433d + new switch -CPSETALLOC=<y> to influence set sizes
git-svn-id: trunk@5299 -
2006-11-09 20:41:33 +00:00
florian
a13d358f1e * first partially working implementation of variant com invoking
git-svn-id: trunk@5247 -
2006-11-05 15:34:15 +00:00
florian
4cbb67aa00 * some fpu emulation code from arm to generic code generator moved
* several m68k fixes

git-svn-id: trunk@5218 -
2006-11-04 10:23:35 +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
Jonas Maebe
5acc8b44a8 * activated internal get_frame for x86
* turn off stackframe optimizations on x86 if get_frame is called
    in the current routine, or if the address of a nested function
    is taken in the current routine
  + test for the above
  * this fixes the IDE when compiled with stackframe optimizations
    on x86

git-svn-id: trunk@5146 -
2006-11-01 12:48:53 +00:00
florian
5c9b39549a * fixed olevariant -> variant conversion
git-svn-id: trunk@5131 -
2006-10-31 19:45:08 +00:00
peter
d21842fe61 * fixed linux compile
git-svn-id: trunk@5117 -
2006-10-31 11:35:54 +00:00
peter
7a2e0da7bd * extra parameter for file searching functions
that indicate if the cache shall be used or not
  * fixed compile of non-x86 targets

git-svn-id: trunk@5115 -
2006-10-31 10:56:58 +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
florian
edf01e4460 + support for -Xp to path the compiler executables to fpc
git-svn-id: trunk@5040 -
2006-10-28 14:06:55 +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
67aa148602 * fixed softfpu support
+ softfpu enabled for arm-gba

git-svn-id: trunk@4939 -
2006-10-15 21:31:27 +00:00
florian
fb5e396881 + experimental -Sv option to support vector arithmetics
git-svn-id: trunk@4825 -
2006-10-07 21:39:48 +00:00
peter
2f0ce31751 * string concat changed from function to procedure to
allow runtime optimization if the destination is the
    same as a source parameter
  * tassignmentnode now sets aktassignmentnode global that can be used
    to use the left node as a destination parameter and
    skip the assignment
  * disabled all cpu specific shortstr concat/append

git-svn-id: trunk@4770 -
2006-10-02 20:00:06 +00:00
Marc Weustink
48340d291e * splitup dwarf2/dwarf3
* changed cpu64bit define into isdwarf64 boolean
* generate info for methods

git-svn-id: trunk@4759 -
2006-09-30 15:21:17 +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
florian
239a7a5d9c * do default replacements for -o, fixes #7198
git-svn-id: trunk@4304 -
2006-07-30 07:37:40 +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
Tomas Hajny
419ab6aeac + allow output of full version in QuickInfo
git-svn-id: trunk@4165 -
2006-07-13 23:06:46 +00:00
marco
2a5332e3bd * Link ordering working FreeBSD implementation
git-svn-id: trunk@3894 -
2006-06-19 14:17:45 +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
peter
0bb57006e5 * fix setting of internal/external linker
git-svn-id: trunk@3612 -
2006-05-21 10:52:23 +00:00
daniel
1d9b6ed5f0 * Disable internal_backtrace again
git-svn-id: trunk@3526 -
2006-05-14 13:58:00 +00:00
daniel
3048a98a6f * Fix and activate internal backtrace routines
git-svn-id: trunk@3524 -
2006-05-14 13:04:03 +00:00
daniel
4d37c919cc * Internal implementations of get_frame, get_caller_frame and get_caller_addr.
Not yet activated.

git-svn-id: trunk@3517 -
2006-05-14 08:39:19 +00:00
florian
b698d6eb02 * fixed bootstrapping on 64 bit CPUs
git-svn-id: trunk@3461 -
2006-05-09 13:15:22 +00:00
florian
ab1660c9c2 + tf_winlikewidestring
git-svn-id: trunk@3457 -
2006-05-08 18:20:26 +00:00
peter
d69ad5d84d * cleanup external/nolink options
git-svn-id: trunk@3375 -
2006-04-29 21:49:37 +00:00
florian
aa2e2a2829 * fix for -Oa parsing, by Roozbeh GHolizadeh
git-svn-id: trunk@3372 -
2006-04-29 21:34:02 +00:00
peter
f9a741df23 * CPU386 define for Delphi compatibility
git-svn-id: trunk@3276 -
2006-04-19 06:46:54 +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
f26e214fe9 * fix warning that reports incompatibility of assembler and target
git-svn-id: trunk@3095 -
2006-03-31 10:34:50 +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
tom_at_work
6d99152f4b * fixed wrong method of disabling stabs debug info in 2956
git-svn-id: trunk@2965 -
2006-03-19 10:54:52 +00:00
tom_at_work
496c31ac29 * DWARF debug info is now default on ppc64/linux
* disallow stabs debug info generation on ppc64/linux.

git-svn-id: trunk@2956 -
2006-03-18 20:48:04 +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
17bc033747 Merged revisions 2791-2793,2798-2800,2806-2825,2829-2830,2833,2839,2898 via svnmerge from
http://svn.freepascal.org/svn/fpc/branches/linker/compiler

........
r2791 | peter | 2006-03-06 14:57:20 +0100 (Mon, 06 Mar 2006) | 3 lines

  * disable internal linker if -s is used
  * enable section smartlink by default for internal linker

........
r2792 | peter | 2006-03-06 14:58:23 +0100 (Mon, 06 Mar 2006) | 2 lines

  * support long sectionnames

........
r2793 | peter | 2006-03-06 15:04:12 +0100 (Mon, 06 Mar 2006) | 2 lines

  * register symbols in section also when reading .o files

........
r2798 | peter | 2006-03-07 10:08:07 +0100 (Tue, 07 Mar 2006) | 2 lines

  * symbolrefs need to be loaded from relocations when loading a .o

........
r2799 | peter | 2006-03-07 16:17:52 +0100 (Tue, 07 Mar 2006) | 3 lines

  * remove unreferenced sections
  * set stacksize in peopthaeder

........
r2800 | peter | 2006-03-07 17:02:46 +0100 (Tue, 07 Mar 2006) | 2 lines

  * objsection.fullname added

........
........
r2807 | peter | 2006-03-08 08:18:04 +0100 (Wed, 08 Mar 2006) | 2 lines

  * powerpc64 fixes

........
r2808 | peter | 2006-03-08 08:35:53 +0100 (Wed, 08 Mar 2006) | 2 lines

  * register x86_64_pecoff

........
r2809 | peter | 2006-03-08 11:26:38 +0100 (Wed, 08 Mar 2006) | 2 lines

  * optimize and cleanup matches()

........
r2810 | peter | 2006-03-08 12:25:28 +0100 (Wed, 08 Mar 2006) | 2 lines

  * small tweak to readdata to copy values direct without calling move()

........
r2811 | peter | 2006-03-08 15:55:21 +0100 (Wed, 08 Mar 2006) | 2 lines

  * compile fix

........
........
........
........
........
........
r2817 | peter | 2006-03-09 14:20:52 +0100 (Thu, 09 Mar 2006) | 2 lines

  * more readable with long secnames

........
........
........
........
........
........
........
........
r2825 | peter | 2006-03-10 09:52:05 +0100 (Fri, 10 Mar 2006) | 2 lines

  * don't initialize/finalize external variables

........
r2829 | peter | 2006-03-10 10:58:08 +0100 (Fri, 10 Mar 2006) | 2 lines

  * merge 64bit assembler

........
r2830 | peter | 2006-03-10 12:25:08 +0100 (Fri, 10 Mar 2006) | 2 lines

  * TElfAssembler rename

........
r2833 | peter | 2006-03-10 15:22:27 +0100 (Fri, 10 Mar 2006) | 3 lines

  * support & prefix to force identifier parsing, used to access fields that
    have the names of a register

........
r2839 | peter | 2006-03-10 19:37:11 +0100 (Fri, 10 Mar 2006) | 2 lines

  * merge stabs section flags

........
r2898 | peter | 2006-03-12 23:18:18 +0100 (Sun, 12 Mar 2006) | 2 lines

  * reorder instructions for better first match

........

git-svn-id: trunk@2902 -
2006-03-13 09:29:57 +00:00
peter
b6e35a200e * rewrite of optimizer options
git-svn-id: trunk@2901 -
2006-03-13 09:05:50 +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
peter
9566255122 * allow out file parameters
* assign has out file

git-svn-id: trunk@2717 -
2006-03-01 10:18:47 +00:00
peter
232555904e * symtablestack cleanup and rewrite
git-svn-id: trunk@2448 -
2006-02-05 22:24:18 +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
florian
a76d26bcb1 * according to errore.msg -gw generates dwarf debugging info, this wasn't the case, fixed
git-svn-id: trunk@2298 -
2006-01-15 16:08:43 +00:00
peter
daa0be6ed1 * use not unsetbool for -WI-
git-svn-id: trunk@2277 -
2006-01-13 17:27:47 +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
3ccec3fbdd * proper error if a directory is passed as configuration file
git-svn-id: trunk@2134 -
2006-01-02 21:07:15 +00:00
michael
0362fa505d + -o now sets output path only if a path is explicitly specified
git-svn-id: trunk@1698 -
2005-11-08 20:25:04 +00:00
michael
9b59f0675f + Fixed -o option
git-svn-id: trunk@1669 -
2005-11-05 23:26:23 +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
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
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
florian
21cc9597f2 + fpcylix unit
+ -Sk option

git-svn-id: trunk@1106 -
2005-09-18 08:34:51 +00:00
michael
7184d30fc1 + Fixed bootstrap problem for resources
git-svn-id: trunk@1013 -
2005-09-01 16:57:03 +00:00
florian
d9f6a5a374 * support of apptype native for windows after a suggestion of Brian Bi
git-svn-id: trunk@977 -
2005-08-29 19:03:12 +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
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
olle
2a5e6d7b92 + compile time variables can be given on the command line
git-svn-id: trunk@923 -
2005-08-22 19:34:54 +00:00
florian
9a624dd82f * proper displaying of arm targets
git-svn-id: trunk@853 -
2005-08-13 16:57:06 +00:00
florian
0f671b0962 * default apptype for wince is gui
git-svn-id: trunk@852 -
2005-08-13 16:48:00 +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
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
4292e7f939 - removed obsolete FPC_MTFSB0_CORRECTED macro
git-svn-id: trunk@487 -
2005-06-24 18:34:58 +00:00
Jonas Maebe
6a8eddb6ce * fixed compilation with -dUSE_SYSUTILS
git-svn-id: trunk@486 -
2005-06-24 18:34:14 +00:00
florian
7cd67ea3f0 * node optimizer branch merged
* gotonode and gotolabel refactored
  * -Nu added to enable for loop unrolling

git-svn-id: trunk@446 -
2005-06-19 17:42:10 +00:00
florian
ec6d5ff211 + utf-8 support for string constants added
git-svn-id: trunk@428 -
2005-06-16 20:16:37 +00:00
michael
7449f99d5f + Removed all compatibility defines from compiler
git-svn-id: trunk@335 -
2005-06-09 21:14:22 +00:00
florian
21ae782854 * fixed more xmm stuff
+ some win64 stuff added

git-svn-id: trunk@330 -
2005-06-09 20:50:17 +00:00
florian
ebcb69478f * fixed a lot of stuff for fpu/mm register variables
git-svn-id: trunk@199 -
2005-06-04 21:23:15 +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
83fa3bd0cb + output of supported instruction sets in info page 2005-05-05 14:53:55 +00:00
florian
f6442b758c * overloading of assignment operator by different unique result types now possible 2005-04-28 19:32:11 +00:00
peter
9843416e70 * always use exceptions to stop the compiler
- remove stop, do_stop
2005-04-24 21:01:37 +00:00
peter
9db3d9e07c * -Fe on commandline redirects now all output 2005-04-15 15:43:54 +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
eeaded577a * fixed copy(dyn. array,...); 2005-03-05 16:37:28 +00:00
peter
abb3f82ceb * getheapstatus fixes 2005-03-04 16:49:22 +00:00
florian
534b11cfb1 * userdata in file/textrecs now 32 bytes 2005-02-26 15:42:45 +00:00
florian
83b04efbc3 * defaultreplacement expansion for -XP and -Xr 2005-02-19 18:32:16 +00:00
florian
16718b81e4 * cross compiliation defines 2005-02-19 18:10:57 +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
florian
e995e131bd *** empty log message *** 2005-02-05 10:24:17 +00:00
peter
79c20ebf7d * use val() for decoding integers 2005-01-20 17:05:53 +00:00
olle
7572f3a539 * rework of macro subsystem
+ exportable macros for mode macpas
2005-01-09 20:24:43 +00:00
peter
eae6d4fc8b * Allow #include ~/.fpc.cfg 2005-01-08 23:14:50 +00:00
florian
a90585b5a4 * arm sets FPUFPA by default for now 2005-01-04 16:19:52 +00:00
peter
b34de6861f fix outline of 3rd level of options (-SI option mainly) 2005-01-03 20:27:47 +00:00
Tomas Hajny
f290fbb299 * 8.3 fixes (short target name in paths) 2004-12-28 20:43:00 +00:00
marco
e79fb753bc * slash typo 2004-12-16 08:06:42 +00:00
marco
9dec5c3179 * introduction "cleanpath" (=fexpand), fixfilename(paramstr(0)) + search $PREFIX/etc/fpc.cfg 2004-12-15 16:06:47 +00:00
peter
a263b1d40e * GetHeapStatus added, removed MaxAvail,MemAvail,HeapSize 2004-11-22 19:34:58 +00:00
peter
14d25d278b mangledname setting moved to place after the complete proc declaration is read
import generation moved to place where body is also parsed (still gives problems with win32)
2004-11-17 22:21:35 +00:00
peter
f80f3fc0fa * shortstr compare with empty string fixed
* removed special i386 code
2004-11-01 12:43:28 +00:00
peter
7d745c0483 * default paths fixed 2004-10-31 19:09:54 +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
peter
705868e816 * remove saveregister calling convention 2004-10-24 20:01:08 +00:00
mazen
581b52422c - remove $IFDEF DELPHI and related code
- remove $IFDEF FPCPROCVAR and related code
2004-10-15 09:14:16 +00:00
mazen
75363a20b0 * Merge is complete for this file, cycles ! 2004-10-14 14:03:02 +00:00
florian
feeba0ede6 * bootstrapping with rtti alignment fixed 2004-10-05 20:21:02 +00:00
Tomas Hajny
5df0c00360 * better PathExists, fix for too long command line, correction of message 2004-09-21 23:33:43 +00:00
peter
33a834821f * paraloc branch merged 2004-09-21 17:25:12 +00:00
peter
90c280a42d * Use FExpand on paths passed to compiler 2004-09-16 16:31:53 +00:00
Jonas Maebe
1c0fb6a6ea * exit with exit code 0 instead of 1 after writing out quick options
(such as -iV)
2004-09-10 21:00:23 +00:00
michael
41f7fa8c37 + Check if outputdir exists, Fix exitcode when displaying help pages 2004-09-08 11:23:30 +00:00
peter
d763f9e142 browser disabled
uf_local_symtable ppu flag when a localsymtable is stored
2004-08-27 21:59:26 +00:00
olle
4b0b17a5aa + allow fileextension .p, in mode macpas 2004-07-05 21:26:28 +00:00
Jonas Maebe
bfe36fde4d * fixed "-g-l" (and other "-g-*" combinations) 2004-07-04 12:24:04 +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
5168141540 * m68k compiler compilation fixed 2004-05-06 20:30:51 +00:00
olle
46451e4662 + added $APPTYPE TOOL for MPW tools on MacOS 2004-04-04 18:46:09 +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
3554fac953 + added FPC_COMP_IS_INT64 define 2004-03-27 23:23:03 +00:00
peter
e46cdcea48 * constants ordinals now always have a type assigned
* integer constants have the smallest type, unsigned prefered over
    signed
2004-03-23 22:34:49 +00:00
florian
f3c4d487e7 + added interface support for the arm
* added  FPC_REQUIRES_PROPER_ALIGNMENT define for targets which require proper alignment
2004-03-21 22:40:15 +00:00
florian
292aa0175c + cross compilation dir search added 2004-03-20 22:57:07 +00:00
peter
37f3f95b59 * more stabs fixes
* special mode -gv for valgrind compatible stabs
2004-03-10 22:52:57 +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
florian
00dbe6655d + nx86set added
* some more x86-64 fixes
2004-02-22 12:04:04 +00:00
marco
9a83a21c64 * pthread on -CURRENT related fixes. 2004-02-15 16:34:18 +00:00
florian
0874e96a94 + FPC_PREFETCH defined 2004-02-03 00:42:08 +00:00
florian
37454274bc * fixed several arm floating point issues 2004-01-24 18:12:40 +00:00
peter
fa9e45b7cb * decrrefcount resets temps to nil 2004-01-21 22:13:20 +00:00
Jonas Maebe
4c7c8b9c3a * fixed mtfsb0 instruction for assembler reader/writer
* fixed initialisation of fpscr register to avoid spurious SIGPFE's
    (uses mtfsb0 instruction, so added extra define in options.pas to avoid
    requiring to start with a cross compiler)
2004-01-10 00:16:20 +00:00
Jonas Maebe
2af569745c * if currency = int64, FPC_CURRENCY_IS_INT64 is defined
+ round and trunc for currency and comp if FPC_CURRENCY_IS_INT64 is
    defined
  * if currency = orddef, prefer currency -> int64/qword conversion over
    currency -> float conversions
  * optimized currency/currency if currency = orddef
  * TODO: write FPC_DIV_CURRENCY and FPC_MUL_CURRENCY routines to prevent
      precision loss if currency=int64 and bestreal = double
2004-01-02 17:19:04 +00:00
Tomas Hajny
73bd91bfc3 * fixed incorrect error message 2003-12-17 22:50:42 +00:00
florian
6793170b72 * HASGLOBALPROPERTY define introduce 2003-12-11 18:15:06 +00:00
florian
96000de6d9 * variants and interfaces on powerpc released 2003-12-10 01:54:44 +00:00
peter
765b1b51b6 * define REGCALL when pocall_default=pocall_register 2003-11-11 21:10:34 +00:00
florian
bbf7300a0c * Florian's culmutative nr. 1; contains:
- invalid calling conventions for a certain cpu are rejected
    - arm softfloat calling conventions
    - -Sp for cpu dependend code generation
    - several arm fixes
    - remaining code for value open array paras on heap
2003-11-07 15:58:32 +00:00
marco
d4a94d9294 * -Xc -Xr support 2003-10-22 15:40:44 +00:00
Tomas Hajny
4c5f5382a1 * upper limit for heapsize removed 2003-10-18 09:14:18 +00:00
olle
4b274401b8 * compiler now defines cpum68k instead of cpu68k (as is used in rtl) 2003-10-17 21:05:27 +00:00
florian
57a2fe6ddb + some code for PIC support added 2003-10-14 00:30:48 +00:00
marco
d841f44994 * -Xd 2003-10-11 19:32:04 +00:00
peter
f187323816 * -P to -ap
* -V to -vv
2003-10-08 19:17:43 +00:00
marco
487650ab51 * -XP<prefix> support 2003-10-03 14:16:48 +00:00
olle
41fda4ee40 + added command line option for language mode -M<x> 2003-09-17 21:37:07 +00:00
peter
1fcc82e61a * don't check exepath when linking on target 2003-09-14 21:33:11 +00:00
olle
82e40f6506 + compiler now define abi macros for powerpc FPC_ABI_AIX or FPC_ABI_SYSV 2003-09-06 10:41:54 +00:00
florian
22f1ff8da4 * merged Wiktor's Watcom patches in 1.1 2003-09-05 17:41:12 +00:00
peter
b4d54b1889 * powerpc needs software int64 to double 2003-09-03 21:06:05 +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
peter
05c05f2555 * failn removed
* inherited result code check moven to pexpr
2003-05-13 19:14:41 +00:00
florian
fa27f77a17 * FPC_LITTLE_ENDIAN and FPC_BIG_ENDIAN is now defined as well 2003-05-11 19:17:16 +00:00
florian
9612e57805 * introduced defaultordconsttype to decribe the default size of ordinal constants
on 64 bit CPUs it's equal to cs64bitdef while on 32 bit CPUs it's equal to s32bitdef
  + added defines CPU32 and CPU64 for 32 bit and 64 bit CPUs
  * int64s/qwords are allowed as for loop counter on 64 bit CPUs
2003-05-01 07:59:42 +00:00
florian
59906e4e7c * fixed defines for x86-64 2003-04-30 16:35:00 +00:00
florian
88f3ab569c + HAS_TYPE_* defines for floats on i386 and powerpc added 2003-04-24 11:21:45 +00:00
peter
c4ddcc78a8 * generic constructor working for i386
* remove fixed self register
  * esi added as address register for i386
2003-03-28 19:16:56 +00:00
Tomas Hajny
8e7124f9f8 + emx target added 2003-03-23 23:11:17 +00:00
daniel
e8f649f5c2 + $define newra will enable new register allocator
+ getregisterint will return imaginary registers with $newra
  + -sr switch added, will skip register allocation so you can see
    the direct output of the code generator before register allocation
2003-03-08 08:59:07 +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
dc22ce1415 - removed cs_fp_emulation checking for m68k, its now controled
by a global switch
  + added powerpc/sparc/vis message options support
2002-11-30 23:14:55 +00:00
carl
f8d831d6ce + -Ce for softfpu 2002-11-30 21:29:56 +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
5805755619 * fix -n that was broken in the previous commit 2002-10-23 17:07:40 +00:00
peter
3f3b1f8912 * first search for fpc.cfg instead of deprecated ppc386.cfg
* parse commandline options first before searching configfile so -vt
    can be used to display the searched files
2002-10-23 16:57:16 +00:00
peter
0538dce044 * define HASTHREADVAR 2002-10-13 21:33:01 +00:00
peter
d774c8d988 * Copy() is now internal syssym that calls compilerprocs 2002-10-02 18:20:52 +00:00
carl
8733061c78 * stack checking cannot be called before system unit is initialized
* MC68020 define
2002-09-22 14:02:34 +00:00
carl
9da171faf2 + stab register indexes for powerpc (moved from gdb to cpubase)
+ tprocessor enumeration moved to cpuinfo
  + linker in target_info is now a class
  * many many updates for m68k (will soon start to compile)
  - removed some ifdef or correct them for correct cpu
2002-08-12 15:08:39 +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
carl
1ef442f4bf - removed newcg define 2002-08-09 19:15:41 +00:00
florian
1b5435381b * several PowerPC related fixes to get forward with system unit compilation 2002-07-26 22:22:10 +00:00
florian
eb2ca8d10f * rewrote the system handling 2002-07-26 21:15:37 +00:00
florian
4f7b35be5b + source code page support 2002-07-20 17:11:48 +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
peter
68ce5a00e5 * cg64 patch
* basics for currency
  * asnode updates for class and interface (not finished)
2002-07-01 16:23:52 +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
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
peter
6320530bdd * removed newn and disposen nodes, the code is now directly
inlined from pexpr
  * -an option that will write the secondpass nodes to the .s file, this
    requires EXTDEBUG define to actually write the info
  * fixed various internal errors and crashes due recent code changes
2002-04-21 19:02:03 +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
carl
d5e772d8a4 + CPU defines now depends on current target 2002-04-07 10:22:35 +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
e45bb82d81 * freemem change to value parameter
* torddef low/high range changed to int64
2001-12-03 21:48:41 +00:00
carl
41c3b07113 * Renamed ppc.cfg -> fpc.cfg 2001-11-24 02:05:21 +00:00
carl
f113d708d8 + ppc.cfg is now configuration file for compiler.
(first tries loading ppc386.cfg for backward compatibility)
2001-11-23 02:48:46 +00:00
peter
17d62feebe * $calling directive and -Cc commandline patch added
from Pavel Ozerski
2001-10-23 21:49:42 +00:00
peter
45dab81414 * merged netbsd, fpu-overflow from fixes branch 2001-09-17 21:29:10 +00:00
marco
3b9df162d1 * fix from peter 2001-09-12 12:46:54 +00:00
peter
2d610e9be3 * asbsd merged 2001-08-30 20:57:09 +00:00
peter
f88f6eb571 * rtti/init table updates
* rttisym for reusable global rtti/init info
  * support published for interfaces
2001-08-30 20:13:52 +00:00
florian
07495c8526 * renamed messages unit to cmsgs to avoid conflicts with the
win32 messages unit
2001-08-20 10:58:48 +00:00
peter
fd8e5fa78c * palmos support from v10 merged 2001-08-19 11:22:22 +00:00
peter
19e153abd3 * under development flag for targets 2001-08-12 17:57:06 +00:00
peter
7d45ac61de * list targets with -i 2001-08-07 18:42:46 +00:00
Jonas Maebe
367f7a0362 + "compilerproc" directive support, which turns both the public and mangled
name to lowercase(declaration_name). This prevents a normal user from
    accessing the routine, but they can still be easily looked up within
    the compiler. This is used for helper procedures and should facilitate
    the writing of more processor independent code in the code generator
    itself (mostly written by Peter)
  + new "createintern" constructor for tcal nodes to create a call to
    helper exported using the "compilerproc" directive
  + support for high(dynamic_array) using the the above new things
  + definition of 'HASCOMPILERPROC' symbol (to be able to check in the
    compiler and rtl whether the "compilerproc" directive is supported)
2001-08-01 15:07:29 +00:00
peter
899f2ad0bb * removed fpu_in_rtl define (merged) 2001-07-31 19:38:46 +00:00
peter
121f1a09a0 * declare fpu in rtl for m68k linux 2001-07-30 21:39:26 +00:00
peter
db87f86f00 * Length made internal
* Add array support for Length
2001-07-09 21:15:40 +00:00
peter
ca8d604964 * various widestring updates, it works now mostly without charset
mapping supported
2001-07-08 21:00:14 +00:00
peter
b10e754536 * alignmentinfo record added
* -Oa argument supports more alignment settings that can be specified
    per type: PROC,LOOP,VARMIN,VARMAX,CONSTMIN,CONSTMAX,RECORDMIN
    RECORDMAX,LOCALMIN,LOCALMAX. It is possible to set the mimimum
    required alignment and the maximum usefull alignment. The final
    alignment will be choosen per variable size dependent on these
    settings
2001-07-01 20:16:15 +00:00
peter
05e12f6894 * patch from Pavel Ozerski to support +/- better 2001-06-29 19:41:54 +00:00
Jonas Maebe
ea7b4b5367 * fixed typo in NOBOUNDCHECK define 2001-06-19 14:55:45 +00:00
peter
e24474d9ac * -Ur switch (merged)
* masm fixes (merged)
  * quoted filenames for go32v2 and win32
2001-06-18 20:36:23 +00:00
peter
8ee0413cf7 * extradefines field added to target_info, so that targets don't
need to put code in options.pas for it
2001-06-02 19:21:45 +00:00
peter
25e006b364 * endian define 2001-05-18 22:28:59 +00:00
peter
b9cb031a39 * simplify_ppu is now the default, a recompile of the compiler now
only compiles pp.pas
2001-05-12 12:11:31 +00:00
peter
0c03535b5b * registration of targets and assemblers 2001-04-18 22:01:53 +00:00
peter
a7cf57524e * symtable change to classes
* range check generation and errors fixed, make cycle DEBUG=1 works
  * memory leaks fixed
2001-04-13 01:22:06 +00:00
peter
b2c26bdd42 * fixed -Se (merged) 2001-03-25 12:27:31 +00:00
florian
e964449b71 + some stuff to compile FreeCLX added 2001-03-23 00:16:07 +00:00
peter
939f49375f * message loading fixes from Sergey (merged) 2001-03-13 20:59:56 +00:00
peter
9be4aa216f * don't check messagefile for numbers, this allows the usage of
1.1 msgfiles with a 1.0.x compiler
2001-03-10 13:19:10 +00:00
peter
e49f13a393 * press enter moved to errore.msg 2001-03-05 21:50:28 +00:00
Jonas Maebe
af38291233 * simplified and optimized range checking code, FPC_BOUNDCHECK is no longer necessary 2001-03-03 12:41:22 +00:00
peter
684970ea22 * merged generic m68k updates from fixes branch 2001-02-26 19:44:52 +00:00
Jonas Maebe
c7af813c76 * fixed bug in type checking for compatibility of set elements (merged)
* released fix in options.pas from Carl also for FPC (merged)
2001-02-26 12:47:46 +00:00
michael
71e170f80f * option_help_pages:
allow to omit an option (use one space char insteed an option)
   but to indent a continuation line as if option is present. For lines:
     3*2CX_first line
     3*2 _second line
     3*2*_third line
   we could get:
     -CX        first line
                second line
     third line
2001-02-26 08:08:39 +00:00
michael
c6f78731ed Support replacements for all -F<x> options 2001-02-26 07:49:50 +00:00
peter
6656025337 * applied patches from Sergey Korshunoff 2001-02-05 21:26:36 +00:00
Tomas Hajny
ee51dcc980 + APPTYPE support under OS/2, app_fs, GetEnvPChar for OS/2 2001-01-20 18:32:52 +00:00
peter
9964f294bd * fixed writing of quickinfo when no ppc386.cfg is available 2001-01-12 19:21:09 +00:00
florian
00917cb46f * the info about exception frames is stored now on the stack
instead on the heap
2001-01-05 17:35:50 +00:00
peter
32b9cdb7cf + new tlinkedlist class (merge of old tstringqueue,tcontainer and
tlinkedlist objects)
2000-12-25 00:07:25 +00:00
peter
6d8398ab9f * use system.paramstr() 2000-12-24 12:21:41 +00:00
peter
be95b0758b * object to class conversion
* more verbosity for -vt and -vd
  * -i options can be put after eachother so the Makefiles only need
    to call fpc once for all info (will be twice as the first one will
    be to check the version if fpc supports multiple info)
2000-12-23 19:46:49 +00:00
Jonas Maebe
4f791d04b4 - removed all ifdef cardinalmulfix code 2000-12-16 15:56:18 +00:00
Jonas Maebe
0a70f9b06e * only return int64's from functions if it int64funcresok is defined
+ added int64funcresok define to options.pas
2000-12-15 13:26:01 +00:00
florian
9107f49c03 * opts386 renamed 2000-11-30 22:48:23 +00:00
florian
b9796f6a7f * unused units removed from uses clause
* some changes for widestrings
2000-11-29 00:30:30 +00:00
marco
b65958a61e * Renamefest 2000-11-13 15:26:12 +00:00
peter
5ac2599649 * create generic toutputsection for binary writers 2000-11-12 22:20:37 +00:00
marco
e85fea41f5 * Define UNIX for FreeBSD and Linux. Checked crosscompile thingy. 2000-11-07 15:09:27 +00:00
marco
54897380bd * FreeBSD defines (FreeBSD,Linux,BSD,Unix) Linux defines (Linux,Unix) 2000-11-07 14:25:08 +00:00
peter
8df98007d6 * more fixes to get make cycle working 2000-11-06 20:30:54 +00:00
florian
51527ba1c9 + merged Attila's changes for interfaces, not tested yet 2000-11-04 14:25:19 +00:00
Jonas Maebe
fa38093530 * initmodeswitches is changed is you change the compiler mode from the
command line (the -S<x> switches didn't work anymore for changing the
    compiler mode) (merged from fixes branch)
2000-09-26 10:50:41 +00:00
peter
24fc983597 * message updates merges 2000-09-24 21:33:46 +00:00
peter
a71e44ac49 * use defines.inc 2000-09-24 15:06:10 +00:00
marco
0b7a6a9a6a * Definition of multiple FreeBSD target defines moved to after error check
commandline parsing
2000-09-18 12:28:41 +00:00
peter
4003cdb728 * freebsd support merged 2000-09-16 12:22:52 +00:00
peter
4c94659743 * moved some util functions from globals,cobjects to cutils
* splitted files into finput,fmodule
2000-08-27 16:11:48 +00:00
Jonas Maebe
cca5461149 * fixed bug in type conversions between enum subranges (it didn't take
the packenum directive into account)
  + define PACKENUMFIXED symbol in options.pas
   (merged from fixes branch)
2000-08-07 11:31:04 +00:00
michael
2949824a69 + Patch to 1.1 2000-07-14 05:11:48 +00:00
michael
665c1f6410 + patched to 1.1.0 with former 1.09patch from peter 2000-07-13 12:08:24 +00:00
michael
650fbb86aa + removed logs 2000-07-13 11:32:24 +00:00