Jonas Maebe
c25aba7592
* cleaned up subsetreg support (put everything in a record)
...
* prepared support for elements with arbitrary bit length (as opposed
to a multiple of 8)
git-svn-id: trunk@4324 -
2006-08-01 20:39:53 +00:00
florian
1c4312ebd1
+ handling of mm registers in array constructors
...
git-svn-id: trunk@4201 -
2006-07-14 22:05:01 +00:00
Jonas Maebe
e531c4f125
+ very limited SSA support (only outside control flow
...
constructs for now)
git-svn-id: trunk@3671 -
2006-05-25 11:45:08 +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
13493a5355
* fixed copying of unaligned value parameters
...
git-svn-id: trunk@3369 -
2006-04-29 20:13:57 +00:00
peter
0ec2921bbe
* split newasmsymbol to refasmsymbol and defineasmsymbol
...
git-svn-id: trunk@3057 -
2006-03-27 11:45:18 +00:00
peter
95be416b9d
* don't allow stringconst+integer
...
* change booleans in arraydef to set
* set option in arraydef to indicate a constant string so
a nicer type can be shown instead of array[0..x] of char
git-svn-id: trunk@3051 -
2006-03-27 07:22:02 +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
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
peter
b967ae8307
* support @inherited <method> to get the methodpointer
...
of <method> in a parent class
git-svn-id: trunk@2526 -
2006-02-11 22:49:00 +00:00
florian
61e3b70cfa
* cleaned up segmented thread variables
...
git-svn-id: trunk@2135 -
2006-01-03 12:49:29 +00:00
Jonas Maebe
66ebbbc5c2
* always generate code which can be used to build dynamically loadable
...
libraries with
git-svn-id: trunk@2013 -
2005-12-20 19:58:27 +00:00
tom_at_work
10d39167c6
* fixed code generation for calling threadvar relocation function
...
git-svn-id: trunk@1597 -
2005-10-26 19:42:12 +00:00
peter
0981495c7b
* all types with inittable need a persistant temp
...
git-svn-id: trunk@1472 -
2005-10-18 12:29:04 +00:00
Jonas Maebe
758337d115
* fixed passing currency variables to arrayconstructors on platforms where
...
currency=int64
git-svn-id: trunk@1400 -
2005-10-16 06:04:58 +00:00
florian
7ac4a7c78d
* first ie of tb0468 fixed
...
git-svn-id: trunk@1275 -
2005-10-03 20:41:25 +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
22e89e1a42
* Proof of concept: Support threadvars using segment registers.
...
git-svn-id: trunk@740 -
2005-07-24 21:06:23 +00:00
Jonas Maebe
6171499d15
* fixed creating shared libraries under Darwin/Mac OS X
...
git-svn-id: trunk@727 -
2005-07-22 10:09:52 +00:00
florian
dac1050c11
+ mmx support revived, fixes bug #4106
...
git-svn-id: trunk@555 -
2005-07-02 11:53:51 +00:00
florian
355aaa69c8
+ before calling a helper procedure, all register classes are now saved, this patch is subject to being merged back
...
git-svn-id: trunk@201 -
2005-06-05 08:12:33 +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
florian
a39fd9d2ea
* array of const for classes fixed, was broken by r10
...
* test adapted
git-svn-id: trunk@154 -
2005-05-30 18:44:42 +00:00
fpc
790a4fe2d3
* log and id tags removed
...
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
aabbd3c7df
* property svn:eol-style: native set
...
git-svn-id: trunk@16 -
2005-05-18 16:16:11 +00:00
florian
f949a53da8
* format(%u",[<qword>]); fixed
...
* made test working
git-svn-id: trunk@13 -
2005-05-17 22:27:53 +00:00
florian
d4194bce53
* array of const for currency, classes and interfaces fixed
...
git-svn-id: trunk@11 -
2005-05-17 21:17:35 +00:00
fpc
50778076c3
initial import
...
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
peter
1b41aad3a0
remove multiple pass2 calls. It is not supported anymore by all nodes (ttempcreatenode)
2005-04-08 15:18:08 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
florian
e26ab8447c
* better alignment checking
2005-02-13 19:57:15 +00:00
peter
2ce81b5177
* data with inittables need to have a memory location assigned
...
for incrref
2005-02-10 21:54:36 +00:00
florian
00324d38bf
+ optimized code generation on sparc
...
+ some stuff for pic code on sparc added
2005-01-23 17:14:21 +00:00
peter
d111c8130a
* don't release temps for array of ansistring
2005-01-04 16:37:09 +00:00
florian
b44f17099c
* fixed some alignment trouble
2004-12-18 15:48:06 +00:00
peter
5f61be6b4d
* prevent some IEs with delphi methodpointers
2004-11-29 17:32:56 +00:00
peter
7c0b6e129e
* fixed wrong typecasts
2004-11-09 17:26:47 +00:00
peter
6458bd0ce1
* tvarsym splitted
2004-11-08 22:09:58 +00:00
peter
f02ebed09e
* support @labelsym
2004-11-01 15:32:12 +00:00
peter
c95a859f0a
* generic tlocation
...
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
peter
adb6f59eef
* small regvar fixes
...
* loadref parameter removed from concatcopy,incrrefcount,etc
2004-10-24 11:44:28 +00:00
peter
0573c742e4
* passing a var parameter to var parameter is now also allowed
...
for register locations (=regvars)
2004-10-10 20:21:18 +00:00
peter
8fb3536f6e
* simple regvar support, not yet finished
2004-09-26 17:45:29 +00:00
peter
65c3ba277c
* ungetregister is now only used for cpuregisters, renamed to
...
ungetcpuregister
* renamed (get|unget)explicitregister(s) to ..cpuregister
* removed location-release/reference_release
2004-09-25 14:23:54 +00:00
peter
33a834821f
* paraloc branch merged
2004-09-21 17:25:12 +00:00
peter
63532ef166
* pwidechar support in array of const
2004-09-13 20:33:41 +00:00
florian
cf25a973f8
* fixed alignment of variant records
...
* more alignment problems fixed
2004-08-15 13:30:18 +00:00
Jonas Maebe
c40e9f31ed
- disabled temp-to-temp copy optimization, because it can cause errors
...
now that the local variables are temps as well (it can cause local
variables to be "freed" in the middle of a procedure)
2004-07-15 20:47:53 +00:00
peter
75b90eb128
* always pass right before left when type needs refcnt
2004-07-03 10:26:35 +00:00
peter
66516ba989
* redundant freetemp removed
2004-06-29 20:57:03 +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
5358278ca1
tai_regalloc.allocation changed to ratype to notify rgobj of register size changes
2004-05-22 23:34:27 +00:00
daniel
b721e5872c
* Prepare compiler infrastructure for multiple ansistring types
2004-04-29 19:56:36 +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
florian
fabb9c33ac
* top_symbol killed
...
+ refaddr to treference added
+ refsymbol to treference added
* top_local stuff moved to an extra record to save memory
+ aint introduced
* tppufile.get/putint64/aint implemented
2004-02-27 10:21:04 +00:00
florian
0c35b6f3c4
* x86_64 uses generic concatcopy_valueopenarray for now
2004-02-22 16:48:09 +00:00
florian
ec8c16f871
* fixed
...
+ second_cmpfloatsse
2004-02-22 16:30:37 +00:00
daniel
4e89e4be76
* Message system uses open arrays internally
...
* Bugfix for string handling in array constructor node
* Micro code reductions in pdecl.pas
2004-02-20 19:49:21 +00:00
Jonas Maebe
a8450c695d
* fixed regvars
2004-02-08 17:45:53 +00:00
florian
465aa5851b
* several fixes to compile x86-64 system
2004-02-05 01:24:08 +00:00
peter
ecfbbeffc3
* renamed xNNbittype to xNNinttype
...
* renamed registers32 to registersint
* replace some s32bit,u32bit with torddef([su]inttype).def.typ
2004-02-03 22:32:53 +00:00
florian
e35b683e4d
+ added prefetch(const mem) support
2004-02-02 20:41:59 +00:00
florian
06442fa677
+ $fputype directive support
...
+ single data type operations with sse unit
* fixed more x86-64 stuff
2003-12-25 01:07:09 +00:00
florian
9c476ba5f1
- delete parameter in cg64 methods removed
2003-12-24 00:10:02 +00:00
florian
bfe452936f
* reverted Peter's alloctemp patch; hopefully properly
2003-12-06 01:15:22 +00:00
peter
64b0a0eadf
* delayed paraloc allocation, a_param_*() gets extra parameter
...
if it needs to allocate temp or real paralocation
* optimized/simplified int-real loading
2003-12-03 23:13:19 +00:00
peter
9aba5c8c7a
* fixed some crashes
...
* fixed varargs and register calling probs
2003-12-01 18:44:15 +00:00
peter
f4cffd4358
* removed obsolete nf_cargs flag
2003-11-23 17:39:33 +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
079e489b08
* absolute to object field supported, fixes tb0458
2003-10-28 15:36:01 +00:00
peter
d0de3b3ea8
* 64k registers supported
...
* fixed some memory leaks
2003-10-17 14:38:32 +00:00
florian
57a2fe6ddb
+ some code for PIC support added
2003-10-14 00:30:48 +00:00
florian
1df13c788c
* fixed some MMX<->SSE
...
* started to fix ppc, needs an overhaul
+ stabs info improve for spilling, not sure if it works correctly/completly
- MMX_SUPPORT removed from Makefile.fpc
2003-10-11 16:06:42 +00:00
peter
fb81b7ebbb
* old trgobj moved to x86/rgcpu and renamed to trgx86fpu
...
* tregisteralloctor renamed to trgobj
* removed rgobj from a lot of units
* moved location_* and reference_* to cgobj
* first things for mmx register allocation
2003-10-10 17:48:13 +00:00
daniel
b2343f4b16
* Register allocator splitted, ans abstract now
2003-10-09 21:31:37 +00:00
peter
e27d6f67da
* inline supported again, LOC_REFERENCEs are used to pass the
...
parameters
* inlineparasymtable,inlinelocalsymtable removed
* exitlabel inserting fixed
2003-10-07 15:17:07 +00:00
peter
da9f5e2319
* c style array of const generates callparanodes
...
* varargs paraloc fixes
2003-10-05 21:21:52 +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
peter
540691bf02
* optimized releasing of registers
2003-09-29 20:58:55 +00:00
peter
c6f0a5fb0e
* fix allocation of threadvar parameter
2003-09-28 21:46:18 +00:00
peter
99bb20747e
* parent framepointer changed to hidden parameter
...
* tloadparentfpnode added
2003-09-28 17:55:03 +00:00
peter
d77cf79d3b
* optimized releasing of registers
2003-09-28 13:39:38 +00:00
peter
ab3d323e5b
* rearranged threadvar code so the result register is the same
...
for the relocated and address loaded variables
2003-09-25 21:27:31 +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
peter
76a53a375d
* varspez in calls to push_addr_param
2003-09-16 16:17:01 +00:00
peter
9311d0803d
* save destroyed registers when calling threadvar helper
2003-09-14 12:57:10 +00:00
marco
cd5ae5fcc3
* Patch from Peter for paraloc
2003-09-10 08:31:47 +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
daniel
81d4cc15c7
* Fixed the fixed trouble
2003-08-20 20:13:08 +00:00
daniel
78ee625c7e
* Fixed some R_NO trouble
2003-08-20 20:11:24 +00:00
Jonas Maebe
66fcf33869
* fix for threadvars with -dnewra
2003-07-20 16:26:43 +00:00
peter
32d076480b
* framepointer fixes for sparc
...
* parent framepointer code more generic
2003-07-06 17:58:22 +00:00
Jonas Maebe
acb3078279
* newra fix for threadvars
2003-07-06 15:25:54 +00:00
Jonas Maebe
3bbea08997
* fixed register allocation for threadvar loads with newra
2003-06-15 15:13:12 +00:00
peter
0dceec9a64
* current_procdef removed, use current_procinfo.procdef instead
2003-06-13 21:19:30 +00:00
peter
a0b9306652
* newra compiles for sparc
2003-06-12 16:43:07 +00:00