Jonas Maebe
61ef30381c
* Only synchronise regvars after a loop (and only those regvars
...
which are used in the loop). The compiler makes now much
more efficient use of registers for register variables (and
different regvars can now also share the same register if
their live range does not overlap)
git-svn-id: trunk@2186 -
2006-01-05 17:48:11 +00:00
Jonas Maebe
fe71df8928
* also synchronise FPU and MM CREGISTERS at the end of procedures
...
git-svn-id: trunk@2178 -
2006-01-05 10:24:14 +00:00
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