Commit Graph

78 Commits

Author SHA1 Message Date
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
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
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
florian
655e947521 * better commenting 2005-01-04 20:14:40 +00:00
Jonas Maebe
62d4f7dd52 * fixed regvar problem due to emit_bit_test() changing a register that
was allowed to be a LOC_CREGISTER
2004-12-11 01:04:26 +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
Jonas Maebe
bd04491f50 * patch from Peter to fix inlining of case statements 2004-11-30 18:13:39 +00:00
peter
c95a859f0a * generic tlocation
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
florian
3a06b4f0fd * jmp table code generation for case statement on sparc 2004-10-30 22:01:11 +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
Jonas Maebe
49b014379e * fixed rare case bug (see tests/test/tb0478.pp) 2004-08-25 11:51:31 +00:00
peter
4275383b15 * range checks fixed 2004-08-16 21:00:15 +00:00
Jonas Maebe
038a5dde80 * fixed relabeling (nextaltnr was never increased)
* fixed inlining of case statements at the node level
2004-07-22 10:07:09 +00:00
Jonas Maebe
d3f1b21fae * fixed regvar bug in tcginnode.pass_2 2004-07-04 12:38:55 +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
43fa5b9f9c * some optimizations and associated fixes for better regvar code 2004-05-30 21:18:22 +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
Jonas Maebe
9843118433 * fixed for regvars + simplification 2004-02-08 14:51:04 +00:00
florian
55557eea92 * more x86-64 fixes 2004-02-05 19:35:27 +00:00
florian
001e65a94e * another improvement to tcginnode.pass_2 2004-01-31 23:37:07 +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
florian
de4fa4e7e7 * fixed another couple of arm bugs 2004-01-28 15:36:46 +00:00
Jonas Maebe
da6811ed58 * fixed and optimized in-node with constant smallset
* some register usage optimisations.
2003-12-09 19:14:50 +00:00
peter
13961467e3 * fixed range compare when the last value was an equal
compare. The compare for the lower range was skipped
2003-11-10 19:10:31 +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
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
6a8d5eb25d * NEWRA branch merged 2003-09-03 15:55:00 +00:00
daniel
cdb8a15f4a * Some more R_NO changes
* Preventive code to loadref added
2003-08-20 20:29:06 +00:00
Jonas Maebe
af784cfb1e * final (?) fix to in-code 2003-07-23 11:02:53 +00:00
Jonas Maebe
db3bd69a18 * fixed bug in tcginnode.pass_2 2003-07-20 18:03:27 +00:00
Jonas Maebe
a82c9531b7 * fixed register leak
* changed a couple of case-statements to location_force_reg()
2003-07-06 14:28:04 +00:00
Jonas Maebe
7ca760912b * tcginnode.pass_2 doesn't call a helper anymore in any case
* fixed ungetregisterfpu compilation problems
2003-06-12 22:09:54 +00:00
Jonas Maebe
7081853478 - disabled gentreejmp for now, it expects that the case labels are
ordered as a perfectly balanced tree, while they are often a linked
    list -> generates extremely bad code
2003-06-08 16:03:22 +00:00
Jonas Maebe
edb2179730 + added freeintparaloc
* ppc get/freeintparaloc now check whether the parameter regs are
    properly allocated/deallocated (and get an extra list para)
  * ppc a_call_* now internalerrors if pi_do_call is not yet set
  * fixed lot of missing pi_do_call's
2003-06-07 18:57:04 +00:00
peter
d91c880148 * cg.a_load_* get a from and to size specifier
* makeregsize only accepts newregister
  * i386 uses generic tcgnotnode,tcgunaryminus
2003-06-03 21:11:09 +00:00
peter
230a14ff68 * getregisterfpu size parameter added
* op_const_reg size parameter added
  * sparc updates
2003-06-01 21:38:06 +00:00
peter
414bd5fa22 * more sparc cleanup
* accumulator removed, splitted in function_return_reg (called) and
    function_result_reg (caller)
2003-05-30 23:57:08 +00:00
Jonas Maebe
e7e2cfe9a4 * a_load_loc_reg now has an extra size parameter for the destination
register (properly fixes what I worked around in revision 1.106 of
    ncgutil.pas)
2003-05-30 23:49:18 +00:00
Jonas Maebe
1712878279 * fixed tcginnode endian bug again, but correcty this time :) 2003-05-24 19:48:49 +00:00
florian
89c93b12c4 * fixed sparc compiler compilation 2003-05-23 21:10:50 +00:00
Jonas Maebe
25435fe881 * corrected fix for endian differences in tcginnode 2003-05-23 19:52:28 +00:00
Jonas Maebe
4aadabdf80 * fixed size setting of result location of innodes 2003-05-17 19:17:35 +00:00
Jonas Maebe
a3a3311e41 * fixed endian issue in inlined in-test for smallsets
* pass the address of normalsets to fpc_set_in_set_byte instead of the
    contents of the first 4 bytes
2003-05-01 12:26:50 +00:00
daniel
6aa01a99a9 * Ifdefs around a lot of calls to cleartempgen
* Fixed registers that are allocated but not freed in several nodes
  * Tweak to register allocator to cause less spills
  * 8-bit registers now interfere with esi,edi and ebp
    Compiler can now compile rtl successfully when using new register
    allocator
2003-04-25 08:25:26 +00:00
peter
47489f2376 * firstpass uses expectloc
* checks if there are differences between the expectloc and
    location.loc from secondpass in EXTDEBUG
2003-04-22 23:50:22 +00:00
peter
9ed2ce8c12 * removed some notes/hints 2003-04-22 14:33:38 +00:00