Commit Graph

307 Commits

Author SHA1 Message Date
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