Jonas Maebe
e815b923d5
* a_loadfpu_* gets two size parameters: fromsize and tosize
...
* fixed downsizing the precision of floating point values
* floating point constants are now treated using only the minimal
precision required (e.g. 2.0 is now a single, 1.1 extended etc)
(Delphi compatible)
git-svn-id: trunk@5927 -
2007-01-12 18:33:51 +00:00
Jonas Maebe
1ad6417f7f
* fixed some unneeded 64 bit conversions + rarely triggered bug on x86
...
regarding packed records/arrays
git-svn-id: trunk@5790 -
2007-01-02 18:47:14 +00:00
Jonas Maebe
c963543c74
* fixed typo in comments
...
git-svn-id: trunk@5521 -
2006-12-01 19:40:31 +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
107974330c
* use aword(1) shl x, to prevent overflow with 1 shl 31
...
git-svn-id: trunk@5276 -
2006-11-07 18:14:25 +00:00
Jonas Maebe
469ac311e0
* fixed r5214
...
git-svn-id: trunk@5222 -
2006-11-04 16:44:29 +00:00
peter
3cae449fda
* moved rtti to ncgrtti
...
git-svn-id: trunk@5219 -
2006-11-04 10:43:27 +00:00
Jonas Maebe
66cf666f65
* optimized storing constants into subsetreg/refs (a packed array of
...
boolean can now be as efficient as a set of boolean -- and it is
on ppc32/64)
git-svn-id: trunk@5214 -
2006-11-03 22:00:27 +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
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
tom_at_work
a7311621eb
* fixed bitmask generation code for subsetreg* methods on 64 bit platforms
...
git-svn-id: trunk@4990 -
2006-10-20 21:48:44 +00:00
florian
67ba76f090
* several arm fixes
...
git-svn-id: trunk@4742 -
2006-09-27 21:05:05 +00:00
Jonas Maebe
acd485d5fb
* removed some unused and assigned-but-not-used variables
...
git-svn-id: trunk@4719 -
2006-09-24 17:48:52 +00:00
Jonas Maebe
0be55cf230
* fixed a missed "(1 shl 32) - 1 = 0" problem for x86
...
git-svn-id: trunk@4491 -
2006-08-23 17:56:16 +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
2e131baa4c
* code generator support for subsetreferences (memory locations which
...
are not a multiple of 8 bits, nor necessarily aligned at a
multiple of 8 bits). Supports both constant and variable bit
indices.
git-svn-id: trunk@4443 -
2006-08-19 11:14:43 +00:00
Jonas Maebe
d5aa230395
* removed things which shouldn't have been committed yet
...
git-svn-id: trunk@4326 -
2006-08-01 20:44:43 +00:00
Jonas Maebe
dec97dea73
* forgot to commit in previous revision
...
git-svn-id: trunk@4325 -
2006-08-01 20:42:29 +00:00
Jonas Maebe
c0f805ae6d
* fixed a_param_ref in case the paraloc size is different from the source size
...
git-svn-id: trunk@3653 -
2006-05-24 09:36:41 +00:00
Jonas Maebe
b5ce7e454c
* fixed bug when assigning a negative value in a register to certain
...
fields of record regvars + test
git-svn-id: trunk@3641 -
2006-05-23 09:17:21 +00:00
Jonas Maebe
32a9702965
* fixed loading of negative constants in some record regvar fields
...
git-svn-id: trunk@3640 -
2006-05-23 09:07:03 +00:00
Jonas Maebe
7131a2beb6
+ a_load_loc_subsetreg
...
git-svn-id: trunk@3638 -
2006-05-23 08:54:52 +00:00
Jonas Maebe
e344ee3cd7
+ support for register variables which contain records
...
git-svn-id: trunk@3580 -
2006-05-19 15:49:07 +00:00
florian
f27fa0d24f
* forgotten commit of r3566
...
git-svn-id: trunk@3569 -
2006-05-18 20:43:16 +00:00
florian
570c1bc3a5
* widestrings aren't ref. counted anymore on windows
...
git-svn-id: trunk@3466 -
2006-05-09 20:54:26 +00:00
peter
0ec2921bbe
* split newasmsymbol to refasmsymbol and defineasmsymbol
...
git-svn-id: trunk@3057 -
2006-03-27 11:45:18 +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
peter
588cccb3ca
* remove some obsolete i386 specific code
...
* use a_optimize_const to remove useless opcodes
git-svn-id: trunk@2910 -
2006-03-13 16:37:08 +00:00
Jonas Maebe
20160f1a35
* fixed a_param_ref for large parameters
...
git-svn-id: trunk@2854 -
2006-03-11 13:54:20 +00:00
Jonas Maebe
7cdf9bbaac
* moved the indirect symbol stuff from nppcld to cgobj and ncgld, since
...
darwin/x86 needs the same code
- removed now empty nppcld unit
git-svn-id: trunk@2821 -
2006-03-09 18:27:11 +00:00
tom_at_work
cb807cb2af
* more fixes (to the optimizations) for range check code generation
...
git-svn-id: trunk@2803 -
2006-03-07 22:52:03 +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
da1373d50e
* hopefully final range check fix
...
git-svn-id: trunk@2659 -
2006-02-21 10:00:20 +00:00
Jonas Maebe
914e2af9b0
* properly rangecheck arrays after last changes
...
git-svn-id: trunk@2655 -
2006-02-20 12:04:02 +00:00
Jonas Maebe
cf6968ae95
* optimize some more range checks away again, fixes 64bit cpu issues
...
git-svn-id: trunk@2621 -
2006-02-18 20:59:44 +00:00
Jonas Maebe
33e6604b91
* also perform range checking in case fromdef falls inside todef, in
...
order to catch invalid operations due to uninitialised values,
not type-checked assignments (via explicit typecasts or e.g.
blockread), ...
git-svn-id: trunk@2608 -
2006-02-16 15:59:15 +00:00
florian
94038b0d83
+ translate register variable locations, enables register variable debug info, with SSA it requires to be extended maintaining location list
...
git-svn-id: trunk@2409 -
2006-02-02 21:27:23 +00:00
Jonas Maebe
b769a968e3
* make sure live_start and live_end are correctly updated while
...
generating the initialisation and entry code
git-svn-id: trunk@2185 -
2006-01-05 17:46:16 +00:00
Jonas Maebe
7aa315c71a
* made some Tcpuregisterset parameters const to avoid useless copying
...
git-svn-id: trunk@2176 -
2006-01-05 10:10:25 +00:00
florian
1851481694
* fixed typo
...
git-svn-id: trunk@2173 -
2006-01-05 09:35:59 +00:00
florian
fb4557d71e
* first implementation of pic for i386
...
git-svn-id: trunk@2107 -
2006-01-01 20:14:48 +00:00
Jonas Maebe
3f86e6b728
* keep upper bound of loops in a register instead of in memory
...
git-svn-id: trunk@2105 -
2006-01-01 17:02:34 +00:00
peter
95879fe8a7
* basic support for generic classes
...
git-svn-id: trunk@2020 -
2005-12-21 10:11:15 +00:00
florian
82a94db712
* fixed resetting of ansistrings
...
git-svn-id: trunk@2017 -
2005-12-20 21:22:06 +00:00
florian
7a4c89e68d
* optimized generation of fpc_decr_* calls
...
git-svn-id: trunk@1966 -
2005-12-15 22:37:21 +00:00
florian
72d7597edc
+ implementation of lazy binding for linux
...
git-svn-id: trunk@1750 -
2005-11-14 22:28:12 +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
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
florian
32b96e75f3
* more fixes for float parameter handling on arm
...
git-svn-id: trunk@728 -
2005-07-22 20:14:03 +00:00