Commit Graph

755 Commits

Author SHA1 Message Date
Jonas Maebe
1dd5fc2b47 * changed first_sse_imreg to first_mm_imreg 2004-07-09 23:30:13 +00:00
peter
b6ed8c482b * varargs calculation fixed, it's now the same as the other
targets
2004-07-09 23:09:02 +00:00
peter
4445ae854d * fixed parsing of strings in db 2004-07-06 19:47:19 +00:00
peter
b55648ad7d * align directive added 2004-06-23 14:54:46 +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
7dd6b85e01 * fix shl/shr with value > 63 2004-05-23 14:10:17 +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
florian
b5bf8cefad + <pointer> - <pointer> result is divided by the pointer element size now
this is delphi compatible as well as resulting in the expected result for p1+(p2-p1)
2004-05-20 21:54:33 +00:00
peter
6fc2ea345d * extra typecast to prevent range check 2004-05-19 23:30:18 +00:00
florian
c68ea95074 + syscall directive support for MorphOS added 2004-04-28 15:19:03 +00:00
peter
ffb2785d2b * A_MOVSL renamed to A_MOVSD 2004-04-09 14:36:05 +00:00
peter
406eb57a59 * MOVSL fixed 2004-04-08 16:49:42 +00:00
olle
ea51b18d9b * bugfix for multiline string constants 2004-03-17 12:03:00 +00:00
Jonas Maebe
74836e0d0d * fixed refaddr bug that caused go32v2 cycle failure 2004-03-14 18:42:32 +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
Jonas Maebe
401d1891ae * fixed bug in ref_addr changes 2004-02-28 16:59:02 +00:00
Jonas Maebe
756dd463ff * fixed optimizer for new treference fields 2004-02-27 19:55:23 +00:00
olle
d6382f17f2 + added Tai_symbol_end 2004-02-27 13:42:52 +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
5332b623ad * fixed bugs that caused pasjpeg crashes 2004-02-25 20:39:58 +00:00
florian
0c35b6f3c4 * x86_64 uses generic concatcopy_valueopenarray for now 2004-02-22 16:48:09 +00:00
florian
00dbe6655d + nx86set added
* some more x86-64 fixes
2004-02-22 12:04:04 +00:00
peter
e6929a1a32 * more x86_64 parameter fixes
* tparalocation.lochigh is now used to indicate if registerhigh
    is used and what the type is
2004-02-09 22:14:17 +00:00
peter
221090453c * x86_64 fixes for opsize 2004-02-05 18:28:37 +00:00
florian
465aa5851b * several fixes to compile x86-64 system 2004-02-05 01:24:08 +00:00
peter
8c5b0f7d82 * first try to get cpupara working for x86_64 2004-02-04 22:01:13 +00:00
peter
8012731ede *** empty log message *** 2004-02-04 19:22:27 +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
peter
8a86aad56d * remove previous commit 2004-02-03 21:19:40 +00:00
peter
7ca069476f *** empty log message *** 2004-02-03 16:53:37 +00:00
florian
e35b683e4d + added prefetch(const mem) support 2004-02-02 20:41:59 +00:00
peter
64d60391bd * fixed crashes when procdef.funcretsym is not valid 2004-01-22 16:14:17 +00:00
florian
c37035a450 * common addnode code for x86-64 and i386 2004-01-20 12:59:36 +00:00
florian
85bed883ce * another bunch of x86-64 fixes mainly calling convention and
assembler reader related
2004-01-14 23:39:05 +00:00
peter
60814ccb16 * disable addmmxset 2004-01-14 17:19:04 +00:00
peter
42c6e9323b * sparc updates, mostly float related 2004-01-12 16:39:40 +00:00
florian
d38abc3a3f + setting of bit 6 of cr for c var args on ppc implemented 2003-12-28 22:09:12 +00:00
florian
ace2d682b0 * rtl and compiler compile with -Cfsse2 2003-12-26 13:19:16 +00:00
florian
dd2bb53aa5 + possible sse2 unit usage for double calculations
* some sse2 assembler issues fixed
2003-12-25 12:01:35 +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
peter
3afcfd7f86 * extnumber failure is $ffff instead of -1
* fix non-vmt call for register calling on i386
2003-12-23 23:12:44 +00:00
peter
29cae38f12 * overlfow support in second_mul 2003-12-23 22:13:41 +00:00
peter
ed708a0650 * more byte->word 2003-12-23 19:52:55 +00:00
peter
e6d9331341 * overflow for instruction counters 2003-12-22 23:11:41 +00:00
peter
8fe15f4c99 * removed unused checkobject method 2003-12-22 23:08:59 +00:00
daniel
448e336682 * Some work to allow mmx instructions to be used for 32 byte sets 2003-12-21 11:28:41 +00:00
Jonas Maebe
bade472032 * fixed some more optimizer bugs, make cycle now works with -O2p3,
-O2p3u, -O3p3 and -O3p3u
2003-12-20 22:53:33 +00:00
daniel
d84b7d0743 * Some work to restore the MMX capabilities 2003-12-19 22:08:44 +00:00
peter
a529392b93 * register call fix 2003-12-17 21:59:59 +00:00
peter
1367e342db * reg allocations for imaginary register are now inserted just
before reg allocation
  * tregister changed to enum to allow compile time check
  * fixed several tregister-tsuperregister errors
2003-12-15 21:25:48 +00:00
Jonas Maebe
6abc491796 - disable removal of dead loads before a call, because register
parameters are released before a call
  * fix storeback of registers in case of different sizes (e.g., first
    a "movl %eax,%edx" and later a "movb %dl,%al")
2003-12-15 16:08:15 +00:00
peter
2057dbd01a * fix statedebug compile 2003-12-15 15:58:58 +00:00
peter
9cc9068dc9 * wasm args fix from wiktor 2003-12-15 15:58:17 +00:00
peter
c98d2211bc * fixed range check errors 2003-12-14 22:42:39 +00:00
peter
39b4e0398a * fixed csdebug 2003-12-14 22:42:14 +00:00
peter
19b2170ee4 * optimizer works again with 1.0.x
* fixed wrong loop in FindRegWithConst
2003-12-14 14:18:59 +00:00
Jonas Maebe
942cfc9aac * isgp32reg was being called with both tsuperregister and tregister
parameters, so changed type to tsuperregister (fixes bug reported by
    Bas Steendijk)
  * improved regsizesok() checking so it gives no false positives anymore
2003-12-13 15:48:47 +00:00
peter
41bf3e473c * int64 shl/shr > 63 returns 0 2003-12-10 17:28:41 +00:00
peter
cea1da4a1e * fix loading of word/byte to real 2003-12-08 15:35:00 +00:00
Jonas Maebe
f3d82160b1 * fixed some more bugs which only showed up in a ppc cross compiler 2003-12-07 19:19:56 +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
1b0d0ca3c4 * s128real type is not compatible with s80real 2003-12-01 18:43:31 +00:00
florian
ea754b9a49 * fixed several pi_do_call problems 2003-11-29 20:13:25 +00:00
florian
11c5331fbf + nasmelf mode for BeOS
+ DQWORD directive in intel assembler mode
2003-11-29 15:53:06 +00:00
peter
bc762e9af4 * support type() 2003-11-29 14:41:02 +00:00
Jonas Maebe
7f4a3bf1a9 * fixed bug which only showed up in the ppc crosscompiler :) 2003-11-28 18:49:05 +00:00
peter
b26e3c444a * reversed offset calculation for caller side so it works
correctly for interfaces
2003-11-28 17:24:22 +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
7128b3fdd2 * fixed double unit usage 2003-11-22 13:10:32 +00:00
Jonas Maebe
aad37ce53c * fixed optimiser so it compiles again
* fixed several bugs which were in there already for a long time, but
    which only popped up now :) -O2/-O3 will now optimise less than in
    the past (and correctly so), but -O2u/-O3u will optimise a bit more
  * some more small improvements for -O3 are still possible
2003-11-22 00:40:19 +00:00
Jonas Maebe
52980d5488 * fixed properties for MOVSB 2003-11-22 00:35:42 +00:00
Jonas Maebe
16834b1854 * fixed XSTORE instruction info 2003-11-13 18:54:22 +00:00
florian
1af574ceca * assembler readers OOPed
+ typed currency constants
  + typed 128 bit float constants if the CPU supports it
2003-11-12 16:05:39 +00:00
peter
50f8604526 * check for push_addr 2003-11-11 21:11:23 +00:00
peter
517c5de6aa * line numbering is now only done when #10, #10#13 is really parsed
instead of when it is the next character
2003-11-10 19:08:32 +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
florian
8b337fb5ef + type cast variant<->enum
* cnv. node second pass uses now as well helper wrappers
2003-11-04 22:30:15 +00:00
peter
48ef24605a * support scalefactor for opr_local
* support reference with opr_local set, fixes tw2631
2003-10-30 19:59:00 +00:00
peter
bef3bb7b22 * fix field offset in reference 2003-10-29 16:47:18 +00:00
peter
5925d38ac7 * support indexing and offset retrieval for locals 2003-10-29 15:40:20 +00:00
peter
d28f3dfdae * fixed trec.field to return constant 2003-10-27 15:29:43 +00:00
florian
4d070e2a71 * fixed web bug #2128 2003-10-26 13:37:22 +00:00
peter
53e8350307 * more intel parser updates 2003-10-24 17:39:03 +00:00
peter
9342178c7d * typecasting fixes
* reference building more delphi compatible
2003-10-23 17:19:44 +00:00
peter
86782a9b08 * ignore @ in Unit.@Proc 2003-10-21 18:17:40 +00:00
peter
96f9973b46 * taicpu_abstract.oper[] changed to pointers 2003-10-21 15:15:35 +00:00
peter
77c5f6485d * fix vecnode code that caused to much register conflicts 2003-10-21 15:13:27 +00:00
peter
10f32e68cd * fix check for register subscription of reference parameter 2003-10-20 19:29:35 +00:00
florian
05fcae577a * some ppc stuff fixed
* memory leak fixed
2003-10-19 01:34:30 +00:00
Tomas Hajny
f70561922d * Watcom patch by Wiktor Sywula 2003-10-18 09:16:45 +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
63c5e8cfdf + __HIGH() to retrieve high value 2003-10-16 21:29:24 +00:00
florian
57a2fe6ddb + some code for PIC support added 2003-10-14 00:30:48 +00:00
florian
b04af27efc * fixed forgotten commit 2003-10-13 09:38:22 +00:00
florian
c70c620d9b * some ideas for mm support implemented 2003-10-13 01:58:03 +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
florian
b3064de6c0 * fixed full bool evalution and bool xor, if the left or right side have LOC_JUMP 2003-10-08 09:13:16 +00:00
peter
3e6f799919 * fix crash
* allow parameter subscription for register parameters
2003-10-07 18:21:18 +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
3a92a2a25a * parameter alignment fixes 2003-10-03 22:00:33 +00:00
peter
6093a37d1b * fix operand order when a prefix opcode is supplied 2003-10-02 21:17:38 +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
michael
953269fcff + Patch from Wiktor Sywula for watcom support 2003-09-30 08:39:50 +00:00
peter
540691bf02 * optimized releasing of registers 2003-09-29 20:58:55 +00:00
peter
47d211aa2e * fix register leaks 2003-09-28 21:48:20 +00:00
peter
99bb20747e * parent framepointer changed to hidden parameter
* tloadparentfpnode added
2003-09-28 17:55:03 +00:00
peter
eb5429425a * shortstr compare updated for different calling conventions 2003-09-28 13:35:40 +00:00
peter
116153cf24 * register calling updates 2003-09-28 13:35:24 +00:00
peter
2392f28675 * parameter fixes 2003-09-25 21:28:00 +00:00
peter
e487793919 * %st is st0 in nasm 2003-09-25 14:59:16 +00:00
peter
7c6560ab7f * fix intf wrapper code 2003-09-25 14:59:06 +00:00
florian
0493cd3d2e * more x86-64 fixes 2003-09-25 13:13:32 +00:00
peter
72761249f1 * fix global var+offset 2003-09-23 20:37:53 +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
florian
8f66389b46 * improved arm code generation
* move some protected and private field around
  * the temp. register for register parameters/arguments are now released
    before the move to the parameter register is done. This improves
    the code in a lot of cases.
2003-09-11 11:54:59 +00:00
marco
cd5ae5fcc3 * Patch from Peter for paraloc 2003-09-10 08:31:47 +00:00
peter
3a3d710c47 * basics for x86 register calling 2003-09-09 21:03:17 +00:00
daniel
49e539ac8d * Adding register allocation order 2003-09-09 20:59:27 +00:00
peter
6b06f9e985 * winapi doesn't like pushing 8 byte record 2003-09-09 15:55:05 +00:00
florian
f495796796 * x86 instruction table updated to nasm 0.98.37:
- sse3 aka prescott support
      - small fixes
2003-09-09 12:54:45 +00:00
peter
64bc322e0e * fix compilerproc for default=oldfpccall 2003-09-08 18:28:51 +00:00
peter
b9d09a4e5c * preparations for different default calling conventions
* various RA fixes
2003-09-07 22:09:34 +00:00
florian
eb9a587759 + support of NaN and Inf in the compiler as values of real constants 2003-09-06 16:47:24 +00:00
florian
22f1ff8da4 * merged Wiktor's Watcom patches in 1.1 2003-09-05 17:41:12 +00:00
marco
f34e9e5adf * applied Peter's patch. Now cycles. 2003-09-05 11:21:39 +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
ebb1f3a361 * New register coding now mandatory, some more convert_registers calls
removed.
2003-08-20 09:07:00 +00:00
marco
4c571efdda * fix for 2592, pushw imm 2003-08-18 11:52:57 +00:00
daniel
45f9851e87 * Another register allocator bug fixed.
* cpu_registers set to 6 for i386
2003-08-17 08:48:02 +00:00
peter
52c73e80d1 * start of sparc support for newra 2003-08-11 21:18:20 +00:00
daniel
42c320cb29 * cs_regalloc renamed to cs_regvars to avoid confusion with register
allocator
  * Some preventive changes to i386 spillinh code
2003-08-09 18:56:54 +00:00
daniel
a4495e3867 * Made code generator reverse or/add/and/xor/imul instructions when
possible to reduce the slowdown of spills.
2003-08-03 20:38:00 +00:00
daniel
4984afb8f0 - Removed cmpop from Ti386addnode.second_addstring 2003-08-03 20:19:43 +00:00
Jonas Maebe
3c5d94dc64 * fixed nil pointer access 2003-07-24 10:45:40 +00:00
peter
32d076480b * framepointer fixes for sparc
* parent framepointer code more generic
2003-07-06 17:58:22 +00:00
daniel
268bfcf784 * Fixed register allocator. *Lots* of fixes. 2003-07-06 15:31:20 +00:00
Jonas Maebe
70a5d1e4c2 * create_paraloc_info() is now called separately for the caller and
callee info
  * fixed ppc cycle
2003-07-05 20:11:41 +00:00
peter
b7d99ec934 * paraloc splitted in callerparaloc,calleeparaloc
* sparc calling convention updates
2003-07-02 22:18:04 +00:00
peter
b8ad3514c0 * cycle fixes 2003-06-17 16:51:30 +00:00
Jonas Maebe
404d344d92 * lots of newra fixes (need getfuncretparaloc implementation for i386)!
* renamed all_intregisters to volatile_intregisters and made it
    processor dependent
2003-06-17 16:34:44 +00:00
peter
e6e43724c3 * freeintparaloc added 2003-06-17 16:34:19 +00:00
peter
0dceec9a64 * current_procdef removed, use current_procinfo.procdef instead 2003-06-13 21:19:30 +00:00
Jonas Maebe
67e0cc3ad6 * t386innode.pass_2 already doesn't call a helper anymore since a long
time
2003-06-12 22:10:44 +00:00
peter
c036dbe71a * size para for ungetregisterfpu 2003-06-12 21:12:20 +00:00
peter
a71427cf2c * fix newra cycle for i386 2003-06-12 18:31:18 +00:00
Jonas Maebe
2b312f6e8c * fixed compilation problems 2003-06-12 18:12:49 +00:00
peter
a0b9306652 * newra compiles for sparc 2003-06-12 16:43:07 +00:00
Jonas Maebe
db7d93495b * first small steps towards an oop optimizer 2003-06-08 18:48:03 +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
5b62f5052c * use setsize for size specifier 2003-06-06 14:41:59 +00:00
peter
5e3532dd01 * needs cpuinfo 2003-06-06 14:41:22 +00:00
michael
03b57479b0 + Forgot a line in patch from peter 2003-06-06 07:36:06 +00:00
michael
732c769f30 + Patch to Patch from peter 2003-06-06 07:35:14 +00:00
michael
a762ddbdc2 + Patch from peter 2003-06-06 07:34:11 +00:00
peter
cd66717210 * updated 2003-06-05 20:58:05 +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
4c66ac6cab * internal changeregsize for optimizer
* fix with a hack to not remove the first instruction of a block
    which will leave blockstart pointing to invalid memory
2003-06-03 21:09:05 +00:00
daniel
41e0bc4cec * Register allocator finished 2003-06-03 13:01:59 +00:00
Jonas Maebe
6f3e16298a * function results can now also be regvars
- removed tprocinfo.return_offset, never use it again since it's invalid
    if the result is a regvar
2003-06-02 21:42:05 +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
1e7ecac976 * FUNCTION_RESULT64_LOW/HIGH_REG added for int64 results 2003-05-31 15:05:28 +00:00
peter
0e11419a26 * load_loc_reg update 2003-05-31 15:04:31 +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
peter
047a066711 * procinlinenode removed
* aktexit2label removed, fast exit removed
  + tcallnode.inlined_pass_2 added
2003-05-26 21:17:17 +00:00
peter
0799b0663d * generic fpc_shorstr_concat
+ fpc_shortstr_append_shortstr optimization
2003-05-26 19:38:28 +00:00
peter
c48956fd16 * don't generate align in .bss 2003-05-26 19:37:57 +00:00
peter
c0995a3db1 * fix interrupt stack allocation 2003-05-25 10:26:15 +00:00
peter
437ce7f8a2 * removed some unit dependencies 2003-05-22 21:32:28 +00:00
florian
9de6468186 + basic darwin support added 2003-05-20 23:54:00 +00:00
peter
abca40f041 * regvar fixes 2003-05-16 14:33:31 +00:00
peter
92ee1804b6 * removed selfpointer_offset, vmtpointer_offset
* tvarsym.adjusted_address
  * address in localsymtable is now in the real direction
  * removed some obsolete globals
2003-05-15 18:58:53 +00:00
peter
c577c78366 * removed ret_in_acc, it's the reverse of ret_in_param
* fixed ret_in_param for win32 cdecl array
2003-05-13 15:16:13 +00:00
florian
91bbc7bea3 * error when address of an abstract method is taken
* fixed some x86-64 problems
  * merged some more x86-64 and i386 code
2003-04-30 20:53:32 +00:00
florian
de6916276a * merged more x86-64/i386 code 2003-04-30 15:45:35 +00:00
peter
60978ba89c * aktprocdef renamed to current_procdef
* procinfo renamed to current_procinfo
  * procinfo will now be stored in current_module so it can be
    cleaned up properly
  * gen_main_procsym changed to create_main_proc and release_main_proc
    to also generate a tprocinfo structure
  * fixed unit implicit initfinal
2003-04-27 11:21:32 +00:00
peter
a5e7f02527 * updated for removed lexlevel 2003-04-27 07:48:05 +00:00
peter
7f14891d66 * aktprocdef cleanup, aktprocdef is now always nil when parsing
a new procdef declaration
  * aktprocsym removed
  * lexlevel removed, use symtable.symtablelevel instead
  * implicit init/final code uses the normal genentry/genexit
  * funcret state checking updated for new funcret handling
2003-04-27 07:29:50 +00:00
peter
a23e3f0a2f * add string returns in LOC_REFERENCE 2003-04-26 09:12:55 +00:00
peter
f4b818fc1d * removed funcretn,funcretsym, function result is now in varsym
and aliases for result and function name are added using absolutesym
  * vs_hidden parameter for funcret passed in parameter
  * vs_hidden fixes
  * writenode changed to printnode and released from extdebug
  * -vp option added to generate a tree.log with the nodetree
  * nicer printnode for statements, callnode
2003-04-25 20:59:33 +00:00
florian
754a34200a * merged i386/aasmcpu and x86_64/aasmcpu to x86/aasmcpu 2003-04-25 12:43:40 +00:00
florian
ad2f6d6dab * merged agx64att and ag386att to x86/agx86att 2003-04-25 12:04:31 +00:00
florian
98d09473e4 * merged i386/cpubase and x86_64/cpubase to x86/cpubase;
different stuff went to cpubase.inc
2003-04-25 11:12:09 +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
florian
7f04bb7272 * ncgopt replaces n386opt 2003-04-24 11:19:13 +00:00
florian
2d2b85bacb - replaced by ncgopt 2003-04-24 11:18:46 +00:00
peter
c21ca3dfa0 + added currency support based on int64
+ is_64bit for use in cg units instead of is_64bitint
  * removed cgmessage from n386add, replace with internalerrors
2003-04-23 20:16:03 +00:00
daniel
9e2084b8d5 * Further register allocator work. Compiler now smaller with new
allocator than without.
  * Somebody forgot to adjust ppu version number
2003-04-23 14:42:07 +00:00