Jonas Maebe
4e20c12326
* fixed compilation on x86_64 and ARM after r12891
...
git-svn-id: trunk@12903 -
2009-03-16 08:24:12 +00:00
Jonas Maebe
7e8343f6e2
* removed any use of pushleftright_pocalls for non-i386 platforms, since
...
they always use the same parameter pushing order
* define the pushleftright_pocalls constant only for i386 so it cannot
be accidentally used anymore for other platforms
git-svn-id: trunk@12891 -
2009-03-15 10:38:40 +00:00
yury
afa7ade545
* Replace ? and @ in external names only if the external is imported from DLL on Windows.
...
Also @ character is allowed in symbol names by GNU AS for x86.
git-svn-id: trunk@12842 -
2009-03-01 12:24:53 +00:00
Jonas Maebe
549f1ecc1b
* when using overloaded functions in Delphi mode without the "overload"
...
directive, state that "overload" is missing rather than that
overloading is disabled (mantis #10081 )
git-svn-id: trunk@12723 -
2009-02-08 16:01:41 +00:00
peter
9086a2549d
* refactor overload collection in tcallcandidates. separate
...
the collecting of overloads. The actual building of
candidate list is now common
git-svn-id: trunk@12064 -
2008-11-12 22:38:38 +00:00
peter
a3a66ba74d
* split tvisibility from tsymoptions
...
* replace current_object_option with symtable.currentvisibility
git-svn-id: trunk@12048 -
2008-11-11 09:05:39 +00:00
peter
af437d5beb
* refactor the forward type declaration handling, remove
...
global typecanbeforward and move 'class of ..' parsing
to ptype
git-svn-id: trunk@12045 -
2008-11-09 22:07:36 +00:00
Jonas Maebe
a23630260b
+ "weakexternal" support for imported procedures and variables.
...
the syntax is exactly the same as for "external", except for
the keyword. It is currently only active for Darwin targets.
It should also work at least for Linux targets, but only with
the GNU assembler (which is why it is not activated there)
+ test for this functionality
git-svn-id: trunk@12009 -
2008-11-01 18:38:32 +00:00
Károly Balogh
d41cb0c251
* another attempt to properly fix the fix for 8391
...
git-svn-id: trunk@11873 -
2008-10-10 07:10:21 +00:00
florian
8c9baed5cb
* force static; being repeated in the procedure body, this avoids trouble as in #12242
...
+ add static when using fullprocname
git-svn-id: trunk@11835 -
2008-09-28 18:45:37 +00:00
peter
6c586e4eca
* store specializations in globalsymtable for units, use localsymtable
...
for programs. this allows speciailizations to be done in the interface
part of the unit
* support tobject.typemember.typemember nesting for generics
* fix generic parameter checking when a typemember was created with the
type of a parameter
* known issue is nested specializations don't work yet because the token
replay can't handled nested replays yet
git-svn-id: trunk@11404 -
2008-07-18 23:30:44 +00:00
florian
95c69a64ad
* don't generate a hidden parameter for static class methods, resolves #10998
...
git-svn-id: trunk@10876 -
2008-05-04 07:43:24 +00:00
peter
beb01e6e79
* give warning for disabling inline if assembler
...
is detected
git-svn-id: trunk@10473 -
2008-03-11 17:57:24 +00:00
florian
d8d96f14e6
+ experimental directive, resolves #10833
...
git-svn-id: trunk@10331 -
2008-02-15 19:29:34 +00:00
Jonas Maebe
f36e5411af
* split cpu64bit compiler define into
...
a) cpu64bitaddr, which means that we are generating a compiler which
will generate code for targets with a 64 bit address space/abi
b) cpu64bitalu, which means that we are generating a compiler which
will generate code for a cpu with support for 64 bit integer
operations (possibly running in a 32 bit address space, depending
on the cpu64bitaddr define)
All cpus which had cpu64bit set now have both the above defines set,
and none of the 32 bit cpus have cpu64bitalu set (and none will
compile with it currently)
+ pint and puint types, similar to aint/aword (not pword because that
that conflicts with pword=^word)
* several changes from aint/aword to pint/pword
* some changes of tcgsize2size[OS_INT] to sizeof(pint)
git-svn-id: trunk@10320 -
2008-02-13 20:44:00 +00:00
Jonas Maebe
8349cde7db
* changed byte/word/longbool to be Delphi-compatible (+ similar changes
...
for qwordbool) + test:
o assigning true to such a variable now sets them to $ff/$ffff/$ffffffff
o these types are now all signed
o converting an integer type to a byte/word/long/qwordbool using an
explicit type cast keeps the integer's original value stored in the
bool, instead of forcing it to ord(true)/ord(false)
(mantis #10233 and #10613 , implemented for all architectures, testsuite
tested for ppc32, sparc and x86)
* fixed some places where the rtl depended on longbool(true) having the
value 1
* extended several boolean tests (and adapted some to no longer assume
that byte/word/long/qwordbool(true)=1)
+ support for converting to qwordbool in second_int_to_bool for x86, ppc
and sparc
git-svn-id: trunk@9898 -
2008-01-24 21:30:55 +00:00
Jonas Maebe
719c29cf86
+ new cpo_openequalisexact parameter comparison option which
...
treats equal open arrays, open strings and arrays of const
(implicitly also open) as exactly matching (since you
cannot declare such types on their own, so they will
never match exactly)
* require that forward declared procedures match the
implementation exactly for both the parameters (with
the above modification) and result type (mantis
#10425 and the related webtbf/tw10425a.pp)
git-svn-id: trunk@9484 -
2007-12-16 22:22:11 +00:00
peter
1e123d66ba
* improved generics
...
git-svn-id: trunk@8838 -
2007-10-18 00:24:05 +00:00
peter
6b8aed593f
* remove registers{int/mmx/fpu} from firstpass
...
* small cleanups of unused variables in firstpass
* node_resources_fpu() created to get an approximation of the
required fpu registers
* for the moment use node_complexity in the CG until the
node_resource_int() is created
git-svn-id: trunk@8655 -
2007-09-26 21:12:01 +00:00
peter
68245771cc
* fix invalid typecast
...
git-svn-id: trunk@8432 -
2007-09-11 22:13:31 +00:00
Jonas Maebe
91629f810f
* better error messages for non-overloadable operators:
...
* only suggest = if the user tried to overload <>
* suggest ** if the user tried to overload ^ (mantis #9606 )
* no suggestion otherwise
(instead of always suggesting '=')
git-svn-id: trunk@8402 -
2007-09-08 10:49:16 +00:00
peter
0fc65c5eec
* for tp mode don't allow unitname reuse
...
git-svn-id: trunk@8158 -
2007-07-23 20:38:05 +00:00
Jonas Maebe
28bab3fb4f
- removed some unused variables
...
* fixed some (harmless) ptrint warnings
- removed some commented code in agppcmpw
* added one missing field in a typed constant in cp1251
git-svn-id: trunk@8081 -
2007-07-17 13:57:15 +00:00
yury
84306f80e9
* fixed tw8391.pp for i386.
...
git-svn-id: trunk@7768 -
2007-06-21 23:22:48 +00:00
daniel
9adb202a92
* Rework the constexprint to allow operations from low(int64) to high(qword).
...
+ Some initial work on a formaldef which also carries the typinfo of a parameter.
git-svn-id: trunk@7639 -
2007-06-13 07:41:18 +00:00
florian
36471608c1
* fixed regression caused by r7180
...
git-svn-id: trunk@7555 -
2007-06-02 20:35:17 +00:00
peter
e7ead9fc9f
* nested procedures are not supported in generic methods
...
git-svn-id: trunk@7368 -
2007-05-16 20:56:00 +00:00
peter
c831b2fb00
* set symoptions for all implicit created parameters
...
git-svn-id: trunk@7321 -
2007-05-12 22:16:06 +00:00
florian
2eb40fc025
* forbid file types as function results
...
git-svn-id: trunk@7180 -
2007-04-28 18:32:03 +00:00
florian
8800db8fa0
* allow external in cppclasses
...
* don't insert vmt pointer for C++ constructor/destructor calls
git-svn-id: trunk@7156 -
2007-04-22 19:55:05 +00:00
Tomas Hajny
30b78920cd
* OS/2 compilation fixes (not completely finished yet)
...
git-svn-id: trunk@6937 -
2007-03-20 00:49:20 +00:00
peter
6db1d803fa
* removed invalid code from proc_get_importname where the result could be empty
...
git-svn-id: trunk@6926 -
2007-03-18 21:35:42 +00:00
yury
7547f3a0c0
* Allow @ and ? characters in imported function name when AS is used. It fixes bug #8391 .
...
+ test.
git-svn-id: trunk@6669 -
2007-02-26 17:51:38 +00:00
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