pierre
7e62e2cfc1
* correct debug info for parentfp hidden parameter,
...
this is a vs_value parameter, not a vs_var.
This allows to get higher local variables in IDE
to work again (see ide/test.pas)
git-svn-id: trunk@5984 -
2007-01-15 05:13:53 +00:00
peter
91dbd27a42
* cleanup deleting of defs
...
git-svn-id: trunk@5902 -
2007-01-11 20:46:57 +00:00
florian
a2ec2e72b6
* better hint about abstract methods (fixes 5098)
...
+ code generation for invoking dispinterface methods
* small dispinterface problems fixed
git-svn-id: trunk@5798 -
2007-01-03 19:14:31 +00:00
florian
475664acf5
* fixed local check, fixes #7242
...
git-svn-id: trunk@5760 -
2006-12-30 23:47:21 +00:00
Jonas Maebe
f308bfb45c
* fixed mantis 6686 ("function a;" without prior definition of "a"
...
accepted in Delphi mode + extra test case where something similar
has to succeed)
git-svn-id: trunk@5698 -
2006-12-24 10:48:49 +00:00
Jonas Maebe
9d28af4269
* removed po_function and instead check proctypeoption (more
...
comprehensive too)
git-svn-id: trunk@5693 -
2006-12-23 21:04:30 +00:00
Jonas Maebe
a63ed25f74
* fixed support for repeating constructor without parameters in Delphi
...
mode + test
git-svn-id: trunk@5692 -
2006-12-23 20:53:47 +00:00
Jonas Maebe
e5a1d628eb
* fixed one regression in r5682: implementation declarations with a
...
calling convention that has different hidden parameters than the
interface declaration no longer compiled in Delphi mode (e.g.
webtbs/tw7329.pp on i386)
* fixed remaining declaration parsing incompatibilities in TP/Delphi
modes (other modes already gave errors for the things below):
* give an error for "function a: byte;" in interface followed by
"procedure a;" in implementation ("function a;" in implementation
still allowed as in TP/Delphi)
* give an error for "function a(b: byte):byte" in interface
followed by "function a: byte;" in implementation (if one parameter
or return type is specified in implementation, everything must
be repeated -- "function a;" still allowed)
* copied webtbs/tw0890.pp to webtbf/tw0890a.pp since it now correctly
fails, and modified webtbs/tw0890.pp so it doesn't fail with the
new code
git-svn-id: trunk@5688 -
2006-12-23 11:17:21 +00:00
Jonas Maebe
f3f8a76559
* fixed mantis 7173 (properly check parameters in unit
...
implementation in Delphi/TP mode if they are repeated)
git-svn-id: trunk@5682 -
2006-12-22 17:48:28 +00:00
florian
534048e286
* fixed parameter name change message
...
git-svn-id: trunk@5334 -
2006-11-11 18:06:11 +00:00
peter
13f359aa80
* resultname changed to pshortstring
...
git-svn-id: trunk@5295 -
2006-11-09 07:43:13 +00:00
peter
0557ddc342
* removed typed const, it is now handled by staticvarsym
...
* globalvarsym renamed to staticvarsym
* fixed invalid regvar use in init when the finalize also uses the var
git-svn-id: trunk@5290 -
2006-11-08 21:04:22 +00:00
peter
0c8796c210
* fix hiding of symbols
...
git-svn-id: trunk@5272 -
2006-11-07 08:53:15 +00:00
peter
35c21515a9
* fixed adding of .dll extension
...
git-svn-id: trunk@5243 -
2006-11-05 13:05:21 +00:00
peter
86f1fe11d6
* fix generics parsing for new symtable
...
git-svn-id: trunk@5220 -
2006-11-04 12:13:06 +00:00
peter
e17b424e28
* refactor procsym procdef list
...
git-svn-id: trunk@5210 -
2006-11-03 18:44:46 +00:00
peter
658c46b903
* remove tdictionary and tindexarray
...
* symtables based on TFPHashObjectList and TFPObjectList
* rename torddef.typ to torddef.ordtype
* rename tfloatdef.typ to tfloatdef.floattype
* rename tdef.deftype to tdef.typ
* remove obsolete browser code, browcol is kept so the ide
can still be compiled
git-svn-id: trunk@5192 -
2006-11-03 00:30:30 +00:00
peter
136d3e8d46
* refactor implemented interfaces
...
git-svn-id: trunk@5134 -
2006-10-31 22:38:49 +00:00
peter
cb246eb781
* Remove dos,strings units, use SysUtils instead
...
* replace split* functions with Extract* functions
* Add Directory caching
git-svn-id: trunk@5102 -
2006-10-30 23:29:35 +00:00
florian
bce905b106
* give correct error locations for errors when specializing templates
...
* removed more germanisms
* better dumping of tokenbuf in ppudump
git-svn-id: trunk@5101 -
2006-10-30 23:28:06 +00:00
florian
ef7bd58c54
* germanism removed (aktfilepos -> current_filepos)
...
git-svn-id: trunk@5099 -
2006-10-30 22:37:31 +00:00
florian
85d63d9fa9
* settings refactored
...
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
peter
3078a1927f
* remove ttype
...
* rename old ttype variables *type to *def
* rename resulttypepass to pass_typecheck
* rename pass_2 to pass_generate_code
git-svn-id: trunk@5077 -
2006-10-29 22:19:39 +00:00
peter
0f6355e805
* fix property overriding
...
git-svn-id: trunk@5045 -
2006-10-28 20:35:53 +00:00
florian
9a1b9071a5
* implemented kylix like local directive, fixes #7242
...
git-svn-id: trunk@4982 -
2006-10-19 20:26:14 +00:00
Jonas Maebe
593f74d155
+ full support for varargs-related functionality for "mwpascal; external;"
...
functions
git-svn-id: trunk@4910 -
2006-10-14 17:56:42 +00:00
florian
948ec12140
* use oldfpccall for interrupts
...
git-svn-id: trunk@4837 -
2006-10-08 18:20:13 +00:00
peter
506f44dc7a
* only compare non-hidden parameters when searching for an implementation. The location
...
of hidden parameters can be different between calling conventions and cause problems
with delphi mode where the implementation calling convention can be skipped
git-svn-id: trunk@4741 -
2006-09-27 20:53:24 +00:00
peter
d0156354a6
* inline directive enabled by default for fpc,objfpc,delphi modes
...
* -Si and $inline directive control are now local switches and
have finer control on whether a function will really inlined or not
git-svn-id: trunk@4553 -
2006-09-04 19:54:21 +00:00
florian
bc5e1be7b1
* fixed object constructor handling for 64 bit CPUs
...
git-svn-id: trunk@4465 -
2006-08-20 09:37:24 +00:00
florian
22146e2bcf
* partial fix (not for 64 bit CPUs yet) for #5641 (tested only lower byte of result of object constructors)
...
git-svn-id: trunk@4455 -
2006-08-19 22:40:59 +00:00
peter
eb829ea21b
* store procdef messageinf in the ppu
...
git-svn-id: trunk@4386 -
2006-08-07 19:39:32 +00:00
Károly Balogh
b77a51f67d
+ first somewhat-valid AmigaOS/PowerPC support (no linking yet)
...
git-svn-id: trunk@4329 -
2006-08-02 18:47:25 +00:00
yury
8bef50f29f
* fixed import by ordinal number for all Windows targets when using external linker.
...
git-svn-id: trunk@3830 -
2006-06-09 20:02:03 +00:00
florian
6620181ee0
* expect repetition of class for class methods and fixed error message to show the forward declaration instead of the current one
...
git-svn-id: trunk@3685 -
2006-05-26 19:06:40 +00:00
yury
5d82676f78
* Do not use cprefix for cdecl DLL imports in Windows.
...
git-svn-id: trunk@3663 -
2006-05-24 23:53:10 +00:00
peter
392ef22a7f
* win imports are only by importname not anymore per procdef
...
git-svn-id: trunk@3622 -
2006-05-21 20:40:18 +00:00
florian
e4d2d87bb9
* function results can be a generic parameter
...
git-svn-id: trunk@3585 -
2006-05-19 21:54:39 +00:00
florian
a5dfe315ec
* made safecall working, handling not consistent yet though
...
git-svn-id: trunk@3418 -
2006-05-04 22:15:31 +00:00
florian
23af245ba2
* fixed parameter order of self and result to be COM compatible
...
git-svn-id: trunk@3391 -
2006-04-30 20:00:45 +00:00
florian
2bb707a4ee
* fixed COM parameter passing
...
git-svn-id: trunk@3389 -
2006-04-30 19:09:27 +00:00
florian
06e7d4be7a
+ dispid parsing
...
git-svn-id: trunk@3378 -
2006-04-30 08:25:36 +00:00
peter
76534b1888
* always add library prefix and suffix to generate uniform dll name
...
git-svn-id: trunk@3285 -
2006-04-19 16:23:42 +00:00
peter
d858a419c8
* missing import_name flag
...
git-svn-id: trunk@3256 -
2006-04-17 21:06:36 +00:00
peter
ce58e15393
* fix coff section names to fix resourcestrings with
...
the external linker
* create import libraries for dll imports, this uses
the new objdata framework to generate the binary
object files directly without needing an assembler pass
* store import_dll and import_name in ppu
* external linker uses import libraries
* internal linker uses import info from symtables,
no dlls are needed anymore
git-svn-id: trunk@3255 -
2006-04-17 20:48:22 +00:00
peter
b2121dae20
* fix intf map resolving with for inherited intfs
...
git-svn-id: trunk@3055 -
2006-03-27 09:28:17 +00:00
peter
2ee71781a7
* openstring now uses a type in the system unit
...
git-svn-id: trunk@3053 -
2006-03-27 09:07:33 +00:00
peter
95be416b9d
* don't allow stringconst+integer
...
* change booleans in arraydef to set
* set option in arraydef to indicate a constant string so
a nicer type can be shown instead of array[0..x] of char
git-svn-id: trunk@3051 -
2006-03-27 07:22:02 +00:00
peter
38c0ae73da
Merged revisions 2775,2788-2789 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/linker/compiler
........
r2775 | peter | 2006-03-05 22:43:30 +0100 (Sun, 05 Mar 2006) | 2 lines
* merge ppu changes to keep ppus the same
........
r2788 | peter | 2006-03-06 12:59:14 +0100 (Mon, 06 Mar 2006) | 2 lines
* Add TFPList and TFPObjectList
........
r2789 | peter | 2006-03-06 13:01:37 +0100 (Mon, 06 Mar 2006) | 2 lines
* fix powerpc
........
git-svn-id: trunk@2790 -
2006-03-06 12:04:44 +00:00
peter
785550d7e3
Merged revisions 2669,2673,2677,2683,2696,2699-2702,2704,2708,2712-2715,2718,2722-2723,2728-2730,2740,2769 via svnmerge from
...
svn+ssh://peter@www.freepascal.org/FPC/svn/fpc/branches/linker/compiler
........
r2669 | peter | 2006-02-23 09:31:21 +0100 (Thu, 23 Feb 2006) | 2 lines
* add compiler dir
........
r2673 | peter | 2006-02-23 17:08:56 +0100 (Thu, 23 Feb 2006) | 2 lines
* enabled more code
........
r2677 | peter | 2006-02-24 17:46:29 +0100 (Fri, 24 Feb 2006) | 2 lines
* pe stub and headers
........
r2683 | peter | 2006-02-25 23:13:24 +0100 (Sat, 25 Feb 2006) | 2 lines
* section options cleanup
........
r2696 | peter | 2006-02-26 20:27:41 +0100 (Sun, 26 Feb 2006) | 2 lines
* fixed typecasts
........
r2699 | peter | 2006-02-26 23:04:32 +0100 (Sun, 26 Feb 2006) | 2 lines
* simple linking works
........
r2700 | peter | 2006-02-27 09:44:50 +0100 (Mon, 27 Feb 2006) | 2 lines
* internal linker script
........
r2701 | peter | 2006-02-27 12:05:12 +0100 (Mon, 27 Feb 2006) | 2 lines
* make elf working again
........
r2702 | peter | 2006-02-27 14:04:43 +0100 (Mon, 27 Feb 2006) | 3 lines
* disable dwarf for smartlinking with .a
* fix section start in new .a file
........
r2704 | peter | 2006-02-27 18:30:43 +0100 (Mon, 27 Feb 2006) | 2 lines
* stab section fixes
........
r2708 | peter | 2006-02-28 19:29:17 +0100 (Tue, 28 Feb 2006) | 2 lines
* basic work to merge stabs sections
........
r2712 | peter | 2006-02-28 23:17:48 +0100 (Tue, 28 Feb 2006) | 2 lines
* unload tmodules before linking
........
r2713 | peter | 2006-02-28 23:18:51 +0100 (Tue, 28 Feb 2006) | 2 lines
* fixed stabs linking
........
r2714 | peter | 2006-02-28 23:19:19 +0100 (Tue, 28 Feb 2006) | 2 lines
* show code and data size
........
r2715 | peter | 2006-02-28 23:25:35 +0100 (Tue, 28 Feb 2006) | 2 lines
* unload .stabs from objdata after it is merged
........
r2718 | peter | 2006-03-01 12:24:38 +0100 (Wed, 01 Mar 2006) | 3 lines
* memsize/datasize cleanup
* check for exports/resources when adding module to linker
........
r2722 | peter | 2006-03-03 09:12:20 +0100 (Fri, 03 Mar 2006) | 2 lines
* new TObjSymbol splitted from TAsmSymbol
........
r2723 | peter | 2006-03-03 14:08:55 +0100 (Fri, 03 Mar 2006) | 2 lines
* coff fixes after recent objsymbol changes
........
r2728 | peter | 2006-03-03 22:43:04 +0100 (Fri, 03 Mar 2006) | 2 lines
* fixed coff writer
........
r2729 | peter | 2006-03-04 01:10:32 +0100 (Sat, 04 Mar 2006) | 2 lines
* fix read-only opening
........
r2730 | peter | 2006-03-04 01:11:16 +0100 (Sat, 04 Mar 2006) | 2 lines
* Read edata from DLLs, basic work
........
r2740 | peter | 2006-03-04 21:13:43 +0100 (Sat, 04 Mar 2006) | 3 lines
* deletedef added
* don't remove defs from index when we are already clearing everything
........
r2769 | peter | 2006-03-05 21:42:33 +0100 (Sun, 05 Mar 2006) | 4 lines
* moved TObj classes to ogbase
* ObjSection.SymbolRefs and SymbolDefines list
* DLL importing
........
git-svn-id: trunk@2771 -
2006-03-05 21:10:37 +00:00
peter
9566255122
* allow out file parameters
...
* assign has out file
git-svn-id: trunk@2717 -
2006-03-01 10:18:47 +00:00
peter
232555904e
* symtablestack cleanup and rewrite
...
git-svn-id: trunk@2448 -
2006-02-05 22:24:18 +00:00
peter
66f8276445
* refactor booleans in systeminfo structure, they are now flags
...
* support for case aware filesystems (Windows), they do now only
one lookup if a file exists
* add -WI option to generate import section for DLL imports or
let the linker handle it. Default is still import section until
the Makefiles are fixed, then the generation can be left to the
linker
git-svn-id: trunk@2274 -
2006-01-13 15:13:26 +00:00
Károly Balogh
b718d9ff37
+ added framework code for AmigaOS/PPC syscall support
...
git-svn-id: trunk@2239 -
2006-01-09 08:58:30 +00:00
peter
ad0f93da39
* don't report name differences after implicit renames
...
git-svn-id: trunk@2021 -
2005-12-21 11:04:42 +00:00
peter
95879fe8a7
* basic support for generic classes
...
git-svn-id: trunk@2020 -
2005-12-21 10:11:15 +00:00
Károly Balogh
739ae4c254
+ 1st attempt to have explicit funcretloc for Amiga/m68k
...
git-svn-id: trunk@1978 -
2005-12-18 03:58:27 +00:00
Károly Balogh
238964e443
Various m68k fixes/additions:
...
- fixes in asmreader, basic stuff works again, the rest is untested
- removed lot of unnecessary ungetcpuregister()s
- various other fixes i forgot
+ basic amigaos syscalls support. still lacks explicit funcretloc
git-svn-id: trunk@1943 -
2005-12-13 20:42:15 +00:00
Jonas Maebe
c9b2e34524
* also make "out" shortstring parameters openstrings if required
...
git-svn-id: trunk@1887 -
2005-12-06 19:39:59 +00:00
peter
9a8dc6bfb2
* store hidden symbols correctly in ppu
...
git-svn-id: trunk@1751 -
2005-11-15 08:35:01 +00:00
peter
59a26e4f68
* fixed interface name mapping
...
git-svn-id: trunk@1443 -
2005-10-17 16:02:44 +00:00
florian
158c6f72b7
* names of cdecl'ed exports on linux fixed
...
git-svn-id: trunk@1233 -
2005-09-29 21:40:19 +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
florian
83c6b3aca2
* from Yury Sidorov:
...
+ Added new target WinCE for i386 (to be able compile and run programs in WinCE emulator)
git-svn-id: trunk@596 -
2005-07-09 09:31:57 +00:00
florian
c2fe9e3814
+ compiler part of WinCE patches from Yuri Sidorov
...
git-svn-id: trunk@573 -
2005-07-03 15:52:54 +00:00
peter
c1b2e1aac5
* check function/procedure type when adding a proc definition
...
git-svn-id: trunk@546 -
2005-06-30 14:56:05 +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
florian
f6442b758c
* overloading of assignment operator by different unique result types now possible
2005-04-28 19:32:11 +00:00
florian
e33bf907d8
* fixed previous commit
2005-04-06 19:39:04 +00:00
florian
1f4e15705c
* hidden parameters can be put now in registers as well
2005-04-06 19:09:39 +00:00
Jonas Maebe
bfa2301575
* const record parameters > 8 bytes are now passed by reference for non
...
cdecl/cppdecl procedures on Mac OS/Mac OS X to fix compatibility with
GPC (slightly more efficient than Metrowerks behaviour below, but
less efficient in most cases than our previous scheme)
+ "mwpascal" procedure directive to support the const record parameter
behaviour of Metrowerks Pascal, which passes all const records by
reference
2005-03-27 14:10:52 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
peter
ffb7b80888
* more procvar directive fixes
2005-02-03 17:11:40 +00:00
michael
ac1642de89
* Patch from peter: fix macpas anonymous function procvar
2005-02-01 08:46:13 +00:00
peter
371e741a9d
* macpas procvars in parameters
2005-01-31 21:27:51 +00:00
peter
8d251e8506
* unit mapping rewrite
...
* new derefmap added
2005-01-19 22:19:41 +00:00
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
peter
cea50f7185
* add argument to equal_paras() to support default values or not
2002-09-16 14:11:12 +00:00
peter
706ec85bcb
* don't insert parast in symtablestack, because typesyms should not be
...
searched in the the parast
2002-09-10 16:27:28 +00:00
peter
2e6865175e
* check return type for forwarddefs also not delphi mode when
...
the type is not void
2002-09-09 19:39:07 +00:00
peter
a540ff122c
* tdicationary.replace added to replace and item in a dictionary. This
...
is only allowed for the same name
* varsyms are inserted in symtable before the types are parsed. This
fixes the long standing "var longint : longint" bug
- consume_idlist and idstringlist removed. The loops are inserted
at the callers place and uses the symtable for duplicate id checking
2002-09-09 17:34:14 +00:00
peter
dcd9e0107c
* old logs removed and tabs fixed
2002-09-07 15:25:00 +00:00
daniel
b0364566d1
* Make Tprocdef.defs protected
2002-09-03 16:26:26 +00:00
peter
f68c3a9552
* calc param_offset after parameters are read, because the calculation
...
depends on po_containself
2002-09-01 12:11:33 +00:00
peter
a28f75ed03
* sym.insert_in_data removed
...
* symtable.insertvardata/insertconstdata added
* removed insert_in_data call from symtable.insert, it needs to be
called separatly. This allows to deref the address calculation
* procedures now calculate the parast addresses after the procedure
directives are parsed. This fixes the cdecl parast problem
* push_addr_param has an extra argument that specifies if cdecl is used
or not
2002-08-25 19:25:18 +00:00
peter
8a43a12934
* also check the paratypes when a forward was found
2002-08-25 11:33:06 +00:00
peter
91b49914f6
* More fixes for cross unit inlining, all tnodes are now implemented
...
* Moved pocall_internconst to po_internconst because it is not a
calling type at all and it conflicted when inlining of these small
functions was requested
2002-08-19 19:36:42 +00:00
peter
98dd65b0f3
* inlining is now also allowed in interface
...
* renamed write/load to ppuwrite/ppuload
* tnode storing in ppu
* nld,ncon,nbas are already updated for storing in ppu
2002-08-18 20:06:23 +00:00
florian
e313bab4ff
* first part of procinfo rewrite
2002-08-17 09:23:33 +00:00
peter
425bb45ddc
* renamed current_library to objectlibrary
2002-08-11 14:32:25 +00:00
peter
ac71268ce6
* saving of asmsymbols in ppu supported
...
* asmsymbollist global is removed and moved into a new class
tasmlibrarydata that will hold the info of a .a file which
corresponds with a single module. Added librarydata to tmodule
to keep the library info stored for the module. In the future the
objectfiles will also be stored to the tasmlibrarydata class
* all getlabel/newasmsymbol and friends are moved to the new class
2002-08-11 13:24:10 +00:00
florian
eb2ca8d10f
* rewrote the system handling
2002-07-26 21:15:37 +00:00
florian
59abf2555b
* types.pas renamed to defbase.pas because D6 contains a types
...
unit so this would conflicts if D6 programms are compiled
+ Willamette/SSE2 instructions to assembler added
2002-07-20 11:57:52 +00:00
florian
336808f6c3
* start of the new generic parameter handling
2002-07-11 14:41:27 +00:00
peter
4285e99853
* internal linker
...
* reorganized aasm layer
2002-07-01 18:46:20 +00:00
peter
06ebac4e27
* readded missing revisions
2002-05-18 13:34:04 +00:00
carl
21b3a10f02
+ defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
...
+ try to fix temp allocation (still in ifdef)
+ generic constructor calls
+ start of tassembler / tmodulebase class cleanup
2002-05-16 19:46:34 +00:00
peter
2992e1819c
* removed old logs and updated copyright year
2002-05-14 19:34:38 +00:00
peter
4dcd96747e
* moved entry and exitcode to ncgutil and cgobj
...
* foreach gets extra argument for passing local data to the
iterator function
* -CR checks also class typecasts at runtime by changing them
into as
* fixed compiler to cycle with the -CR option
* fixed stabs with elf writer, finally the global variables can
be watched
* removed a lot of routines from cga unit and replaced them by
calls to cgobj
* u32bit-s32bit updates for and,or,xor nodes. When one element is
u32bit then the other is typecasted also to u32bit without giving
a rangecheck warning/error.
* fixed pascal calling method with reversing also the high tree in
the parast, detected by tcalcst3 test
2002-05-12 16:53:04 +00:00
peter
6320530bdd
* removed newn and disposen nodes, the code is now directly
...
inlined from pexpr
* -an option that will write the secondpass nodes to the .s file, this
requires EXTDEBUG define to actually write the info
* fixed various internal errors and crashes due recent code changes
2002-04-21 19:02:03 +00:00