Jonas Maebe
f36e5411af
* split cpu64bit compiler define into
...
a) cpu64bitaddr, which means that we are generating a compiler which
will generate code for targets with a 64 bit address space/abi
b) cpu64bitalu, which means that we are generating a compiler which
will generate code for a cpu with support for 64 bit integer
operations (possibly running in a 32 bit address space, depending
on the cpu64bitaddr define)
All cpus which had cpu64bit set now have both the above defines set,
and none of the 32 bit cpus have cpu64bitalu set (and none will
compile with it currently)
+ pint and puint types, similar to aint/aword (not pword because that
that conflicts with pword=^word)
* several changes from aint/aword to pint/pword
* some changes of tcgsize2size[OS_INT] to sizeof(pint)
git-svn-id: trunk@10320 -
2008-02-13 20:44:00 +00:00
peter
f70a4a64a0
* swapendian for 2.0.x
...
git-svn-id: trunk@8132 -
2007-07-22 16:13:43 +00:00
daniel
9b50dc572b
* Change rest of compiler to system unit swapendian routines.
...
- Remove endian swapping routines from cutils.
git-svn-id: trunk@7859 -
2007-06-30 08:13:46 +00:00
daniel
b635d89ffa
* Fix overload selection code.
...
git-svn-id: trunk@7654 -
2007-06-13 20:49:13 +00:00
Jonas Maebe
a0b57eddb5
* new internal set format for big endian systems. Advantages:
...
* varsets ({$packset x}) are now supported on big endian targets
* gdb now displays sets properly on big endian systems
* cleanup of generic set code (in, include/exclude, helpers), all
based on "bitpacked array[] of 0..1" now
* there are no helpers available yet to convert sets from the old to
the new format, because the set format will change again slightly
in the near future (so that e.g. a set of 24..31 will be stored in
1 byte), and creating two classes of set conversion helpers would
confuse things (i.e., it's not recommended to use trunk currently for
programs which load sets stored to disk by big endian programs compiled
by previous FPC versions)
* cross-endian compiling has been tested and still works, but one case
is not supported: compiling a compiler for a different endianess
using a starting compiler from before the current revision (so first
cycle natively, and then use the newly created compiler to create a
cross-compiler)
git-svn-id: trunk@7395 -
2007-05-19 17:15:15 +00:00
tom_at_work
8c70e81c9c
* 6 bit sized members of packed records can never be split over more than 2 bytes too
...
git-svn-id: trunk@7350 -
2007-05-15 19:03:55 +00:00
Jonas Maebe
eae0ba86e7
* prefer a loadsize of 4 over 8 bytes for packed loads on 64 bit,
...
because unaligned 8 byte loads are much slower (at least on ppc64)
than unaligned 4 byte loads
git-svn-id: trunk@6744 -
2007-03-06 15:51:41 +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
pierre
18f3be105a
* get rid of unitialized warnings
...
git-svn-id: trunk@6013 -
2007-01-17 05:38:42 +00:00
Jonas Maebe
ebfddc8225
+ ansistring overloads of upper/lower (to fix ansistring Replace)
...
+ char overloads of upper/lower (to fix overload choosing problems
resulting from adding the ansistring overloads)
git-svn-id: trunk@5923 -
2007-01-12 17:11:14 +00:00
Jonas Maebe
31fcd93a1c
* replace can now also insert strings > 255 chars in ansistrings
...
git-svn-id: trunk@5327 -
2006-11-11 10:23:27 +00:00
Jonas Maebe
7135772aa0
+ ansistring overload of maybequoted
...
git-svn-id: trunk@5324 -
2006-11-10 23:46:30 +00:00
peter
b7cb804c50
* gettoken add support for " quotes
...
git-svn-id: trunk@5244 -
2006-11-05 13:27:12 +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
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
peter
4aa3ac3ebe
* call freemem without size
...
git-svn-id: trunk@4972 -
2006-10-18 21:22:28 +00:00
Almindor
85bb8872be
* fixes windows linking/preprocessor (doesn't seem to understand "") and makes the code a bit cleaner
...
git-svn-id: trunk@4797 -
2006-10-04 21:11:57 +00:00
Almindor
2978e6661a
* adds additional "quote" checks to maybequoted function for various chars in names
...
git-svn-id: trunk@4792 -
2006-10-04 18:15:49 +00:00
Jonas Maebe
b50841bfce
* more efficient temp allocation, in particular in case many small temps
...
are allocated at irregular intervals in between larger allocations
(reduces stack usage of taddnode.det_resulttype on darwin/i386 from
11+kb to 868 bytes; no effect on Darwin/ppc, and a few small
improvements on linux/i386)
git-svn-id: trunk@4640 -
2006-09-17 20:49:48 +00:00
Jonas Maebe
1f42ee201b
+ support for bitpacked records, except for:
...
* rtti
* typed constants
git-svn-id: trunk@4489 -
2006-08-23 15:44:13 +00:00
Jonas Maebe
eccbc78e04
+ support for bitpacked arrays:
...
+ use {$bitpacking on/+} to change the meaning of "packed"
into "bitpacked" for arrays. This is the default for MacPas.
You can also define individual arrays as "bitpacked", but
this is not encouraged since this keyword is not known by
other compilers and therefore makes your code unportable.
+ pack(unpackedarray,index,packedarray) to pack
length(packedarray) elements starting at
unpackedarray[index] into packedarray.
+ unpack(packedarray,unpackedarray,index) to unpack
packedarray into unpackedarray, with the first
element being stored at unpackedarray[index]
* todo:
* "open packed arrays" and rtti for packed arrays are not
yet supported
* gdb does not properly support bitpacked arrays
git-svn-id: trunk@4449 -
2006-08-19 12:54:12 +00:00
peter
c7401a1d80
* CompareStr, needed for Sort routines
...
git-svn-id: trunk@3981 -
2006-06-27 19:26:28 +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
0a0659da77
* compile fixes
...
git-svn-id: trunk@2826 -
2006-03-10 09:39:08 +00:00
florian
5ece7cbc2f
* first part of x86-64 assembler
...
git-svn-id: trunk@2824 -
2006-03-09 22:05:16 +00:00
peter
38c0ae73da
Merged revisions 2775,2788-2789 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/linker/compiler
........
r2775 | peter | 2006-03-05 22:43:30 +0100 (Sun, 05 Mar 2006) | 2 lines
* merge ppu changes to keep ppus the same
........
r2788 | peter | 2006-03-06 12:59:14 +0100 (Mon, 06 Mar 2006) | 2 lines
* Add TFPList and TFPObjectList
........
r2789 | peter | 2006-03-06 13:01:37 +0100 (Mon, 06 Mar 2006) | 2 lines
* fix powerpc
........
git-svn-id: trunk@2790 -
2006-03-06 12:04:44 +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
tom_at_work
60345fa78a
* removed hexstr(), already in RTL (and even supports 64 bit integers)
...
git-svn-id: trunk@2232 -
2006-01-08 18:01:34 +00:00
Jonas Maebe
a8ea851999
* changed min and max so more efficient code is generated for them
...
git-svn-id: trunk@2209 -
2006-01-07 16:36:04 +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
daniel
d57c048696
* Remove ifdef 1_0
...
* Add expirimental 32-bit x86_64 target to systems
git-svn-id: trunk@729 -
2005-07-23 08:37:26 +00:00
michael
7449f99d5f
+ Removed all compatibility defines from compiler
...
git-svn-id: trunk@335 -
2005-06-09 21:14:22 +00:00
florian
9c717f2a35
* some warning about uninitialized vars fixed by using out instead of var
...
git-svn-id: trunk@141 -
2005-05-29 15:18:30 +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
Tomas Hajny
b4304d6fe1
* DeleteFile replaced with RemoveFile to avoid duplicate
2005-04-23 14:15:58 +00:00
michael
55e76063df
* Fix methodpointer copy from callnode to loadnode
2005-04-06 11:49:37 +00:00
peter
abb3f82ceb
* getheapstatus fixes
2005-03-04 16:49:22 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
peter
79c20ebf7d
* use val() for decoding integers
2005-01-20 17:05:53 +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
mazen
581b52422c
- remove $IFDEF DELPHI and related code
...
- remove $IFDEF FPCPROCVAR and related code
2004-10-15 09:14:16 +00:00
mazen
573ff47a1e
* use SysUtils unit instead of Dos Unit
...
+ overload Replace to use AnsiString
2004-10-14 14:55:12 +00:00
peter
d99a5f58f3
* range check error in swapint64
2004-09-21 20:32:40 +00:00
peter
c336f79bab
* for-loop variable access removed
2004-09-13 20:26:45 +00:00
olle
883dfac48d
+ added proc DePascalQuote
2004-08-31 21:44:18 +00:00
florian
8a9758c5e2
* logs truncated
2004-06-20 08:55:28 +00:00
florian
588e2c38bf
* dwarf branch merged
2004-06-16 20:07:06 +00:00
peter
fac96dd2ed
fix range check error when array size > maxlongint
2004-05-22 23:33:18 +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