florian
abc1bcca24
* fixed previous commit ...
...
git-svn-id: trunk@2175 -
2006-01-05 09:40:04 +00:00
tom_at_work
3462426b1d
* stack frame optimizations
...
git-svn-id: trunk@2172 -
2006-01-04 23:27:40 +00:00
florian
61e3b70cfa
* cleaned up segmented thread variables
...
git-svn-id: trunk@2135 -
2006-01-03 12:49:29 +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
9603f4bf82
* fixed double writing of "<var> located in register" in assembler
...
source after previous patch
git-svn-id: trunk@2104 -
2006-01-01 15:36:42 +00:00
Jonas Maebe
018fa207d7
* only allocate the calleeside register locations of parameters when
...
needed, avoids some unnecessary register conflicts (not yet perfect
for 64bit locations on 32bit cpus)
git-svn-id: trunk@2089 -
2005-12-31 12:28:56 +00:00
Jonas Maebe
c423e23bb4
* only use r12 as frame pointer in the entry code for ppc if necessary
...
git-svn-id: trunk@2086 -
2005-12-31 10:54:09 +00:00
Jonas Maebe
de8dbbd2c4
* final fixes for Mac OS X shared library creation: procedures declared
...
as forward are no longer treated as external symbols
* changed alloc_proc_symbol() to directly call newasmsymbol as opposed
to creating a dummy tai_symbol()
git-svn-id: trunk@2058 -
2005-12-26 18:18:05 +00:00
Jonas Maebe
dbf94f4713
* properly fixed allocating procedure symbols, now also works for nested
...
procedures
git-svn-id: trunk@2029 -
2005-12-22 20:43: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
b53ee04f98
* base compiler patches to improve C parameter passing compatibility on powerpc64/linux
...
git-svn-id: trunk@1983 -
2005-12-18 22:07:24 +00:00
florian
3f2f8609e3
+ check vmt when loading one, fixes tw2318b
...
git-svn-id: trunk@1660 -
2005-11-05 16:29:13 +00:00
tom_at_work
c5f89d7efd
* release old stack pointer register on ppc64 after method prolog
...
* threading fixes for ppc64
* fixed a_param_ref to respect the size parameter on ppc64
* better stack size calculation for ppc64
git-svn-id: trunk@1599 -
2005-10-26 19:50:17 +00:00
Jonas Maebe
00b612502e
* fixed web bug #4228 (support loading int64 paras passed on the stack into
...
local regvars)
git-svn-id: trunk@1380 -
2005-10-15 16:03:00 +00:00
peter
51b8a4a132
* move stabs generation to a single procedure call from pmodules
...
git-svn-id: trunk@1358 -
2005-10-12 10:35:46 +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
a720145fd1
* remove obsolete pass2inline code
...
git-svn-id: trunk@1198 -
2005-09-25 20:02:17 +00:00
peter
2f0fdd1847
* cleaner fix for tb0496 (r1185)
...
git-svn-id: trunk@1196 -
2005-09-25 19:23:37 +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
peter
c3727c29b2
* rename al_code to al_procedures, al_bss/al_data to al_globals
...
* more work for section smartlinking
git-svn-id: trunk@1083 -
2005-09-15 06:51:12 +00:00
olle
32fac59ac5
made target macpas compile again
...
git-svn-id: trunk@1077 -
2005-09-12 19:39:58 +00:00
peter
35ac5f133e
* win32 profiling updates
...
git-svn-id: trunk@1059 -
2005-09-07 08:32:33 +00:00
Jonas Maebe
3aa4e8008e
* fixed tests/webtbs/uw3969 compilation with -Or for ppc (removed
...
superfluous call to location_get_data_ref)
git-svn-id: trunk@926 -
2005-08-23 06:39:31 +00:00
peter
05a628447f
* put typedconsts in own asmlist to prevent mixing
...
array and string data
* added al_rodata
* renamed tasmlist enum names to include al_ prefix
git-svn-id: trunk@899 -
2005-08-17 08:42:52 +00:00
daniel
e98865ab40
* Fixes and further development of fast threadvars
...
git-svn-id: trunk@743 -
2005-07-25 14:07:02 +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
daniel
d05f58b604
* Group asmlists into array to be able to add
...
some of them more comfortably.
* x86_64 compilation was broken, fixed.
* Sparc compilation was broken, fixed.
git-svn-id: trunk@731 -
2005-07-23 13:44:32 +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
37fcf95f90
(belongs together with r503)
...
* 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@541 -
2005-06-30 09:01:44 +00:00
florian
cf2c0d52e3
* initialisation of global mm register variables
...
git-svn-id: trunk@206 -
2005-06-05 10:40:20 +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
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
peter
12283206d1
named sections for intf wrappers
2005-03-28 13:10:22 +00:00
Jonas Maebe
a5c94ddccd
* removed some unused variables
2005-03-25 21:55:43 +00:00
peter
96d7cbeddc
put intf wrappers in code section
2005-03-09 22:37:24 +00:00
Jonas Maebe
ac931f6846
* use expectloc in firstcomplex()
2005-03-02 19:44:11 +00:00
peter
5edffaf371
* remove is_single_reference
...
* revert loading of ref-to-ref para valu
2005-02-15 21:39:48 +00:00
peter
dd0664156d
* fix passing of 64bit values when using -Or
2005-02-15 19:16:04 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
Jonas Maebe
2e944b3b71
* fixed darwin cycle
2005-01-30 21:51:57 +00:00
peter
e820bc93f2
* interface wrapper generation moved to cgobj
...
* generate interface wrappers after the module is parsed
2005-01-24 22:08:32 +00:00
peter
35e466d971
* remove copy_value_on_stack and a_param_copy_ref
2005-01-20 17:47:01 +00:00
peter
04c97cc129
* load jmp_buf_size from system unit
2005-01-20 16:38:45 +00:00
florian
4647e2e720
* init./final code isn't created for pure assembler procedures anymore
2005-01-19 20:04:46 +00:00
peter
b9ca478f50
* multiple location support for i386 a_param_ref
...
* remove a_param_copy_ref for i386
2005-01-18 22:19:20 +00:00
Jonas Maebe
20361e7eb8
+ support LOC_VOID in gen_load_para_value()
2005-01-13 19:31:05 +00:00
Jonas Maebe
9c22d594b0
+ support for passing records in registers under darwin
...
* tcgpara now also has an intsize field, which contains the size in
bytes of the whole parameter
2005-01-10 21:50:05 +00:00
peter
296e81146e
* insert stack_check helper call before doing register allocation
...
so the used registers can't be reused when parameters are loaded
into register variables
2005-01-03 22:27:56 +00:00
peter
00c14e1083
* external is again allowed in implementation
2004-12-15 16:00:16 +00:00
Jonas Maebe
fcf16c4983
* fixed synchronising 64bit regvars on 32bit systems at the start and
...
end of procedures
* hack for ppc for loading of paras from their callee location to local
temps
2004-12-11 12:42:28 +00:00
Jonas Maebe
7c9d8d8872
* fixed int64 regvar bug in location_force_register
2004-12-11 01:03:01 +00:00
peter
2b6456fe16
* procvar handling for tp procvar mode fixed
...
* proc to procvar moved from addrnode to typeconvnode
* inlininginfo is now allocated only for inline routines that
can be inlined, introduced a new flag po_has_inlining_info
2004-12-05 12:28:10 +00:00
peter
36268edfed
* fix for int64 parameters passed in a single LOC_REFERENCE of 8 bytes
2004-12-03 16:06:31 +00:00
peter
a29eab36c7
* fixed funcretloc for sparc
2004-11-21 18:13:31 +00:00
peter
89b1b583c9
* ttempcreatenode.create_reg merged into .create with parameter
...
whether a register is allowed
* funcret_paraloc renamed to funcretloc
2004-11-21 17:54:59 +00:00
florian
18f7aa97dd
* changed funcret location back to tlocation
2004-11-21 17:17:03 +00:00
michael
180966c0aa
* Split po_public into po_public and po_global (Peter)
2004-11-19 08:17:01 +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
peter
0c7e53bb81
* fixed compile of powerpc,sparc,arm
2004-11-11 19:31:33 +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
florian
7b8c44bbce
* fixed open arrays when using register variables
2004-11-08 20:23:29 +00:00
peter
79e754cb8c
forgot if cs_debuginfo
2004-11-04 17:12:24 +00:00
peter
f4a7c3d444
fixed debuginfo for variables in staticsymtable
2004-11-04 17:09:54 +00:00
peter
c95a859f0a
* generic tlocation
...
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
olle
51fb338952
* reverted, for macos only, last change.
2004-10-28 18:29:44 +00:00
peter
ed07ab5f04
* localloc of staticsymtable needs a AT_NONE since it is a reference
2004-10-26 15:03:31 +00:00
peter
705868e816
* remove saveregister calling convention
2004-10-24 20:01:08 +00:00
peter
adb6f59eef
* small regvar fixes
...
* loadref parameter removed from concatcopy,incrrefcount,etc
2004-10-24 11:44:28 +00:00
mazen
581b52422c
- remove $IFDEF DELPHI and related code
...
- remove $IFDEF FPCPROCVAR and related code
2004-10-15 09:14:16 +00:00
peter
a4c5a55d1b
* add reg_sync when regvars are allocated to fix first use in
...
loop
2004-10-14 17:54:06 +00:00
peter
60c73cc0e5
* -Or fixes for open array
2004-10-13 21:12:51 +00:00
peter
66df745917
* small regvar for para fixes
...
* function tvarsym.is_regvar added
* tvarsym.getvaluesize removed, use getsize instead
2004-10-11 15:48:15 +00:00
peter
4f7667488b
* parameter regvar fixes
2004-10-10 21:08:55 +00:00
peter
d6bffaf5c6
* fixed sparc compile
...
* fixed float regvar loading
2004-10-10 20:51:46 +00:00
peter
b0c25b50a0
* symtable allocation rewritten
...
* loading of parameters to local temps/regs cleanup
* regvar support for parameters
* regvar support for staticsymtable (main body)
2004-10-10 20:22:53 +00:00
olle
d87707fc6c
* Refs to DEBUGINFO_<x> is now not inserted for target MacOS
2004-10-09 10:51:13 +00:00
florian
016f2e9b15
* fixed storage of parameters passed by ref.
2004-10-08 20:52:07 +00:00
peter
63cf4464d3
* tvarsym.varregable added, split vo_regable from varoptions
2004-10-08 17:09:43 +00:00
peter
ba87da9bc2
* fix compile for oldregvars
2004-09-27 15:14:08 +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
7f8844e74d
* release localsymtables when module is compiled
2004-09-14 16:33:46 +00:00
peter
180c042911
* finalize all (also procedure local) typedconst at unit finalization
2004-09-13 20:30:05 +00:00
michael
dd042a896b
+ Patch from Peter to fix debuginfo in constructor.
2004-08-23 11:00:06 +00:00
Jonas Maebe
5ac21c998a
* don't finalize typed consts (fixes bug3212, but causes memory leak;
...
they should be finalized at the end of the module)
2004-07-17 13:14:17 +00:00
Jonas Maebe
f1bda1700a
* support register parameters for inlined procedures + some inline
...
cleanups
2004-07-09 23:41:04 +00:00
Jonas Maebe
1f990337c3
* fixed one regvar problem, but regvars are still broken since the dwarf
...
merge...
2004-07-04 12:24:59 +00:00
peter
700c983c8e
* fixed size of exceptbuf
2004-06-29 20:57:21 +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
Jonas Maebe
ecb226a54f
* fixed bug regarding parameters on the ppc (they were allocated twice
...
under some circumstances and not at all in others)
2004-06-01 20:39:33 +00:00
Jonas Maebe
74cad9b483
* more regvar optimizations in location_force_reg
2004-05-30 21:41:15 +00:00
Jonas Maebe
43fa5b9f9c
* some optimizations and associated fixes for better regvar code
2004-05-30 21:18:22 +00:00
peter
1bcda5c022
* first load para's to temps before calling entry code (profile
2004-05-28 21:14:13 +00:00
peter
c96ba04d84
* fixed qword(longint) that removed sign from the number
...
* removed code in the compiler that relied on wrong qword(longint)
code generation
2004-05-23 15:23:30 +00:00
peter
72365ec95b
* implicit_finally flag must be set in pass1
...
* add check whether the implicit frame is generated when expected
2004-05-23 15:06:20 +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
peter
c553f6b320
* add DEBUGINFO symbol to reference the .o file that includes the
...
stabs info for types and global/static variables
* debuginfo flag added to ppu to indicate whether debuginfo is
generated or not
2004-05-19 21:16:12 +00:00
peter
2b1fee21f1
* fix stabs for globals
2004-05-02 17:26:19 +00:00
peter
207e3b1231
* cleaner temp get/unget for exceptions
2004-03-29 14:43:47 +00:00
peter
4fc210952e
* use loadnode and finalize_data_node for init/final code to support
...
threadvars correctly
2004-03-03 22:02:52 +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
01d16548f4
* fixed exception reason size for 64 bit systems
2004-02-22 18:27:21 +00:00
Jonas Maebe
a8450c695d
* fixed regvars
2004-02-08 17:45:53 +00:00
florian
55557eea92
* more x86-64 fixes
2004-02-05 19:35:27 +00:00
florian
465aa5851b
* several fixes to compile x86-64 system
2004-02-05 01:24:08 +00:00
daniel
d735071838
* Rtti generation moved to ncgutil
...
* Assmtai usage of symsym removed
* operator overloading cleanup up
2004-02-04 22:15:15 +00:00
peter
8c5b0f7d82
* first try to get cpupara working for x86_64
2004-02-04 22:01:13 +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
daniel
862e121a0a
* Last steps before removal of aasmtai dependency in symsym can be
...
accomplished.
2004-01-31 18:40:15 +00:00
peter
1422985ca0
* Change several $ifdef i386 to x86
...
* Change several OS_32 to OS_INT/OS_ADDR
2004-01-31 17:45:16 +00:00
peter
ac1332a388
* fixed stackchecking for register calling
2004-01-21 21:01:34 +00:00
Jonas Maebe
df428f7a5d
* fixed allocation of parameters passed by reference for powerpc in
...
callee
2004-01-17 15:55:10 +00:00
florian
f936718fa1
* x86-64 compilation fixed
2004-01-13 18:08:58 +00:00
peter
47f08937e4
* use localalign info for alignment for locals and temps
...
* sparc fpu flags branching added
* moved powerpc copy_valye_openarray to generic
2004-01-12 22:11:38 +00:00
Jonas Maebe
85e84512fb
* fixed procedures declared as "interrupt" for non-x86
2003-12-28 21:57:43 +00:00
florian
ace2d682b0
* rtl and compiler compile with -Cfsse2
2003-12-26 13:19:16 +00:00
florian
3d8e1ab1fb
+ fpu<->mm register conversion
2003-12-26 00:32:21 +00:00
florian
9c476ba5f1
- delete parameter in cg64 methods removed
2003-12-24 00:10:02 +00:00
florian
d1116fb7f1
+ second_floataddsse implemented
2003-12-23 14:38:07 +00:00
florian
6170faf334
* fixed some x86-64 issues
2003-12-22 19:00:17 +00:00
Jonas Maebe
24fe6134a0
* fixed typo found by Charlie
2003-12-07 16:28:30 +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
florian
a567970402
* fixed several arm related problems
2003-11-30 19:35:29 +00:00
florian
ea754b9a49
* fixed several pi_do_call problems
2003-11-29 20:13:25 +00:00
peter
51384ca53c
* register calling is left-right
...
* parameter ordering
* left-right calling inserts result parameter last
2003-11-23 17:05:15 +00:00
Jonas Maebe
b3086d3122
+ extra allocations of function result regs for the optimiser
2003-11-22 00:31:25 +00:00
peter
a1cb920b51
* remove temporary stdcall hack
2003-11-11 21:10:12 +00:00
peter
f663d2488f
* cross unit inlining fixed
2003-11-10 22:02:52 +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
peter
6b90162c5a
* fixes for temp type patch
2003-11-04 19:03:50 +00:00
peter
30f1eb4705
* fix for referencecounted temps
2003-11-04 15:35:13 +00:00
florian
2660c358f3
* fixed compilation of ppc system unit
2003-10-25 11:34:02 +00:00
florian
05fcae577a
* some ppc stuff fixed
...
* memory leak fixed
2003-10-19 01:34:30 +00:00
peter
0939085ab1
* commented out more obsolete constants
2003-10-17 15:08:34 +00:00
peter
d0de3b3ea8
* 64k registers supported
...
* fixed some memory leaks
2003-10-17 14:38:32 +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
9365837ecd
* fix register calling for assembler procedures
...
* fix result loading for assembler procedures
2003-10-07 18:18:16 +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
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
22158bfb99
* updates for inlining
2003-09-30 21:02:37 +00:00
peter
540691bf02
* optimized releasing of registers
2003-09-29 20:58:55 +00:00