Commit Graph

325 Commits

Author SHA1 Message Date
Károly Balogh
5908985365 * more SysV call support stuff for MorphOS 2005-01-06 02:13:03 +00:00
Károly Balogh
86c111a794 * fixed SysV syscall support (MorphOS) 2005-01-05 02:31:06 +00:00
Károly Balogh
088575dc32 + sysv style syscalls added for MorphOS 2005-01-04 17:40:33 +00:00
peter
ac962df59f * don't parse public,private,protected as procdirectives, leave
procdirective parsing before any other check is done
2004-12-27 17:32:06 +00:00
peter
0d4ba90aa8 * don't allow class methods in interfaces 2004-12-26 20:12:23 +00:00
peter
fad0e529a4 * syscall with sysv abi for morphos 2004-12-15 19:30:32 +00:00
peter
00c14e1083 * external is again allowed in implementation 2004-12-15 16:00:16 +00:00
peter
78c2af7b3c * set vo_explicit_paraloc flag 2004-12-07 16:11:52 +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
olle
53f77231d5 + bugfix for $Z+ for mode macpas 2004-12-05 00:32:56 +00:00
peter
24cc110e9f * public is allowd in interface 2004-11-29 21:50:08 +00:00
peter
05127d887d * when importing by index don't change mangledname 2004-11-29 17:48:34 +00:00
Jonas Maebe
a7d7a49615 * fixed importing of cdecl routines for OS'es which have a cprefix 2004-11-22 12:22:25 +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
peter
29d3a94892 * fixed message methods
* fixed typo with win32 dll import from implementation
  * released external check
2004-11-21 16:33:19 +00:00
michael
180966c0aa * Split po_public into po_public and po_global (Peter) 2004-11-19 08:17:01 +00:00
peter
1687306d22 * make some checks EXTDEBUG only for now so linux cycles again 2004-11-17 22:41:41 +00:00
peter
14d25d278b mangledname setting moved to place after the complete proc declaration is read
import generation moved to place where body is also parsed (still gives problems with win32)
2004-11-17 22:21:35 +00:00
peter
c4502aebe7 * _mangledname for symbols moved only to symbols that really need it
* overload number removed, add function result type to the mangledname fo
  procdefs
2004-11-16 22:09:57 +00:00
peter
87d2861f89 * fixes for win32 mangledname 2004-11-16 20:32:40 +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
florian
60e0494a74 * fixed morphos syscall 2004-11-14 16:26:29 +00:00
peter
0c7e53bb81 * fixed compile of powerpc,sparc,arm 2004-11-11 19:31:33 +00:00
peter
6c9c4c686c * small m68k updates to bring it up2date
* give better error for external local variable
2004-11-09 22:32:59 +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
peter
ad89ee8150 * rename duplicate symbols and insert with unique name in the
symtable
2004-11-05 21:16:55 +00:00
peter
bc59556a41 * $fpctarget expands to <cpu>-<os>
* allow * in middle of the path to support ../*/units/$fpctarget
2004-10-31 18:54:24 +00:00
peter
705868e816 * remove saveregister calling convention 2004-10-24 20:01:08 +00:00
peter
34756dfe4a * don't give warning for property as unknwon proc directive 2004-10-24 13:48:50 +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
d288070a7a * mark non-regable after calling convention is set 2004-10-11 15:45:35 +00:00
peter
4f7667488b * parameter regvar fixes 2004-10-10 21:08:55 +00:00
peter
63cf4464d3 * tvarsym.varregable added, split vo_regable from varoptions 2004-10-08 17:09:43 +00:00
peter
e18eaddbfc fixed crash with error in default value
allow assembler directive in interface
2004-08-29 11:28:41 +00:00
peter
d3545c4e4c * fix for tw3261 2004-08-25 15:57:19 +00:00
florian
4b3ed28d07 * morphos now takes any pointer var. as libbase
* alignment for sparc fixed
  * int -> double conversion on sparc fixed
2004-08-22 20:11:38 +00:00
peter
9ab6f93a11 * don't insert result variables for constructor/destructors 2004-08-22 11:24:27 +00:00
Jonas Maebe
25c2441fa5 * only set the mangled name immediately for external procedures in macpas
mode if the procedure isn't cdecl (so that the c-prefix is taken into
    account, necessary for Mac OS X)
2004-08-13 17:53:37 +00:00
florian
95e40f0f69 * proc. var declarations in a class doesn't eat a public anymore 2004-08-08 12:35:09 +00:00
florian
b1dc8c5572 * function result location for syscalls on MOS hopefully correctly set now 2004-07-17 13:51:57 +00:00
olle
41bdd6178c + added external facilities for macpas 2004-07-14 23:19: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
peter
6bac8ebcfd * fixed 3114 2004-05-23 20:54:39 +00:00
peter
5e2a95d4fe * expect : after function when it is a forwarddef 2004-05-23 19:06:26 +00:00
Károly Balogh
3175dd4c6b * few small changes to add syscall support to M68k/Amiga target 2004-05-12 13:21:09 +00:00
olle
649873016f * Moved import_implicit_external to symsym 2004-05-11 22:52:48 +00:00
olle
4a092ae765 + mode macpas: support for implicit external 2004-05-11 18:29:41 +00:00
michael
e1a62208f0 + Patch from peter to hide system unit as symbol 2004-05-11 06:59:35 +00:00
peter
1ba2ef14cb C directive is mac only 2004-05-09 12:49:14 +00:00
Jonas Maebe
cbbb3b467e - removed change_forward_to_external() declaration 2004-05-03 20:02:42 +00:00
olle
758c940518 + added language constructs UNIV, C, ... for mode mac
* consolidated macro expression to conform to Pascal
  * macro true is defined as <> 0
2004-05-03 10:06:38 +00:00
florian
5a510e7438 * fixed MorphOS syscall without parameters 2004-05-01 22:38:13 +00:00
florian
e8098f6b71 + added lib support for Amiga/MorphOS syscalls 2004-05-01 22:05:01 +00:00
florian
a813f5a184 + locationstr always reset 2004-04-29 21:10:13 +00:00
florian
c68ea95074 + syscall directive support for MorphOS added 2004-04-28 15:19:03 +00:00
Károly Balogh
70cbf1f878 * fixed locationstr having nonsense values in some cases 2004-04-28 00:20:43 +00:00
Károly Balogh
fd8f76519f * quick fix for PowerPC/MorphOS location support 2004-04-19 02:12:18 +00:00
florian
a7478ee97f + location support for arguments, currently PowerPC/MorphOS only 2004-04-18 15:22:24 +00:00
peter
f8679b77ef * fix crash when method is not declared in object declaration
* fix parsing of mapped interface functions
2004-02-26 16:13:25 +00:00
peter
f967fa5f74 * use sp_internal flag to silence unused internal variable 2004-02-20 21:54:47 +00:00
peter
4f913922fa * overload directive checking for methods is now done
when the vmt is generated
2004-02-13 15:41:24 +00:00
daniel
20469d47a0 * Tvarsym.highvarsym removed 2004-02-05 14:13:53 +00:00
daniel
63f2dfc2dd * Tvarsym.highvarsym commented out (unused by compiler, purpose unknown) 2004-02-04 22:54:57 +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
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
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
75e2de9f2c + reintroduce implemented 2004-01-21 14:22:00 +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
peter
30cbfd88d4 * virtual conflicts with override 2003-11-12 15:49:06 +00:00
peter
a3c14e9c2d * procvar default value support 2003-11-10 19:09:29 +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
af5a4842d5 * insert framepointer as voidpointer instead of returntype 2003-11-03 17:47:30 +00:00
peter
19727a3609 * don't search for overloads in parents for constructors 2003-10-30 16:23:13 +00:00
peter
079e489b08 * absolute to object field supported, fixes tb0458 2003-10-28 15:36:01 +00:00
peter
e720d73bd9 * compare_paras() has a parameter to ignore hidden parameters
* cross unit overload searching ignores hidden parameters when
    comparing parameter lists. Now function(string):string is
    not overriden with procedure(string) which has the same visible
    parameter list
2003-10-07 21:14:32 +00:00
peter
828df46e33 * procvar varargs fixed 2003-10-07 20:52:54 +00:00
peter
da9f5e2319 * c style array of const generates callparanodes
* varargs paraloc fixes
2003-10-05 21:21:52 +00:00
peter
60e2738c22 * temporary fix for compilerprocs on watcom 2003-10-05 11:10:52 +00:00
peter
3a92a2a25a * parameter alignment fixes 2003-10-03 22:00:33 +00:00
peter
2bec6b14fc * procvar directive parsing fixes 2003-10-02 21:13:09 +00:00
peter
7900a544a3 * searchsym_type to search for type definitions. It ignores
records,objects and parameters
2003-10-01 19:05:33 +00:00
peter
c1c8c5dbb1 * don't look in objectsymtable when parsing the function return type 2003-10-01 18:28:55 +00:00
florian
d85e1a9bf4 * para items are now reversed for pascal calling conventions 2003-10-01 16:49:05 +00:00
peter
2c4df4364e * fix check that filedef needs var para 2003-09-28 21:44:55 +00:00
peter
99bb20747e * parent framepointer changed to hidden parameter
* tloadparentfpnode added
2003-09-28 17:55:03 +00:00
peter
eee2002780 * don't include vo_has_local_copy for open array/array of const 2003-09-25 21:24:09 +00:00
peter
06071e3d31 * remove obsolete code 2003-09-23 20:36:47 +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
peter
3a3d710c47 * basics for x86 register calling 2003-09-09 21:03:17 +00:00
peter
0a8bddc756 * calling convention fix 2003-09-09 15:54:10 +00:00
peter
b9d09a4e5c * preparations for different default calling conventions
* various RA fixes
2003-09-07 22:09:34 +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
peter
b7d99ec934 * paraloc splitted in callerparaloc,calleeparaloc
* sparc calling convention updates
2003-07-02 22:18:04 +00:00
peter
0dceec9a64 * current_procdef removed, use current_procinfo.procdef instead 2003-06-13 21:19:30 +00:00
peter
be7a5b76a4 * set po_public also when parsing the object declaration 2003-06-05 20:04:43 +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
345228fd29 * defer codegeneration for nested procedures 2003-05-22 21:31:35 +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
a467b84faa * fixed various crashes 2003-05-13 15:18:49 +00:00
peter
1a2eedd767 * self moved to hidden parameter
* removed hdisposen,hnewn,selfn
2003-05-09 17:47:02 +00:00
peter
e2cbae0ff1 * vs_hidden replaced by is_hidden boolean 2003-05-05 14:53:16 +00:00
florian
9e0e8340f7 + first changes to make self a hidden parameter 2003-04-30 09:42:42 +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
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
fe96aad6d6 * vo_is_result flag added for the special RESULT symbol 2003-04-26 00:33:07 +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
47a3437dba * comp is now written with its bit pattern to the ppu instead as an extended 2003-04-24 13:03:01 +00:00
peter
74756e4e85 * fix po_comp setting for fpc mode 2003-04-23 13:12:26 +00:00
peter
5207aaf391 * don't check po_varargs for delphi 2003-04-23 10:12:51 +00:00
peter
e248c0ece4 * fixed C style array of const
* fixed C array passing
  * fixed left to right with high parameters
2003-04-22 13:47:08 +00:00
peter
8da3f59d32 * vs_hidden released 2003-04-10 17:57:52 +00:00
peter
c4ddcc78a8 * generic constructor working for i386
* remove fixed self register
  * esi added as address register for i386
2003-03-28 19:16:56 +00:00
Tomas Hajny
8e7124f9f8 + emx target added 2003-03-23 23:11:17 +00:00
peter
31cee7b219 * only allow class [procedure|function] 2003-03-19 17:34:04 +00:00
peter
d42645ca0a * fix crash with duplicate id 2003-03-17 18:56:02 +00:00
peter
ec66760702 * store symoptions also for procdef
* check symoptions (private,public) when calculating possible
    overload candidates
2003-03-17 15:54:22 +00:00
carl
3967f76cdd * fix highname problem 2003-01-15 20:02:28 +00:00
peter
71e2d34b5a * m68k pathexist update from 1.0.x
* palmos res update from 1.0.x
2003-01-12 15:42:23 +00:00
peter
b49747a854 * removed some duplicate code when creating aktprocsym 2003-01-07 19:16:38 +00:00
peter
26a1786491 * more conflicts for constructor/destructor types 2003-01-05 18:17:45 +00:00
peter
bff0d3dd3e * pascal directive also conflicts with constructor 2003-01-05 18:09:36 +00:00
peter
cf5d395f0a * update self parameter only for methodpointer and methods 2003-01-02 19:49:00 +00:00
peter
d0725b2e7d * high value insertion changed so it works also when 2 parameters
are passed
2003-01-01 22:51:03 +00:00
peter
0e31df2ab8 * don't check for export directive repeat 2003-01-01 14:35:33 +00:00
peter
d7bedca213 * delphi allows setting calling convention in interface or
implementation
2002-12-29 18:16:06 +00:00
peter
24b7def7c2 * fix static method check
* don't require class for class methods in the implementation for
    non delphi modes
2002-12-29 14:55:44 +00:00
peter
b7d0f39211 * check procoptions when a forward is found
* exclude some call directives for constructor/destructor
2002-12-27 15:25:14 +00:00
peter
9147303907 * duplicate procsym-unitsym fix 2002-12-25 01:26:56 +00:00
peter
9f00031530 * remove code that skipped the _ prefix for win32 imports 2002-12-24 21:21:06 +00:00
peter
a44cae75fc * fix wrong internalerror when var names were different 2002-12-23 21:24:22 +00:00
peter
1c3ac34aa8 * cdecl array fix, hack to change it to vs_var is not needed 2002-12-23 20:58:52 +00:00
peter
46ed8eb932 * fixed pushing of records>8 bytes with stdcall
* simplified hightree loading
2002-12-17 22:19:33 +00:00
peter
133dee3633 * don't allow external in object declarations 2002-12-15 21:07:30 +00:00
florian
3f5541e996 + some front end stuff for vs_hidden added 2002-12-15 19:34:31 +00:00
carl
081a4aab35 * 3% memory optimization
* changed some types
  + added type checking with different size for call node and for
     parameters
2002-12-07 14:27:07 +00:00
peter
dc66eafb0b * merged cdecl and array fixes 2002-12-06 17:51:09 +00:00
carl
38f35b25cc * cleanup of error messages 2002-12-01 22:06:14 +00:00
carl
5c5db0e0a3 + unimplemented hint directive added
* hint directive parsing implemented
  * warning on these directives
2002-11-29 22:31:19 +00:00
peter
0da515f669 * fixed typo in method comparing 2002-11-27 02:35:28 +00:00
peter
f3fc72095f * splitted defbase in defutil,symutil,defcmp
* merged isconvertable and is_equal into compare_defs(_ext)
  * made operator search faster by walking the list only once
2002-11-25 17:43:16 +00:00
peter
a496dbe1ff * pass proccalloption to ret_in_xxx and push_xxx functions 2002-11-18 17:31:54 +00:00
carl
64655be168 * memory optimization (3-4%) : cleanup of tai fields,
cleanup of tdef and tsym fields.
  * make it work for m68k
2002-11-17 16:31:55 +00:00
peter
a073dadb63 * fix infinite loop in pd_inline 2002-11-16 14:20:50 +00:00
peter
bfd72ad5d5 * merged changes from 1.0.7 up to 04-11
- -V option for generating bug report tracing
    - more tracing for option parsing
    - errors for cdecl and high()
    - win32 import stabs
    - win32 records<=8 are returned in eax:edx (turned off by default)
    - heaptrc update
    - more info for temp management in .s file with EXTDEBUG
2002-11-15 01:58:45 +00:00
peter
b4ec92dad3 * variant:=nil supported 2002-10-06 15:09:12 +00:00
carl
f3d9f997cd * low-highval always checked if limit ober 2GB is reached (to avoid overflow) 2002-09-27 21:13:28 +00:00