Jonas Maebe
cd5b9245f9
+ support for bitsizeof() function
...
+ some small tests for it
git-svn-id: trunk@4590 -
2006-09-09 18:57:49 +00:00
Jonas Maebe
eccbc78e04
+ support for bitpacked arrays:
...
+ use {$bitpacking on/+} to change the meaning of "packed"
into "bitpacked" for arrays. This is the default for MacPas.
You can also define individual arrays as "bitpacked", but
this is not encouraged since this keyword is not known by
other compilers and therefore makes your code unportable.
+ pack(unpackedarray,index,packedarray) to pack
length(packedarray) elements starting at
unpackedarray[index] into packedarray.
+ unpack(packedarray,unpackedarray,index) to unpack
packedarray into unpackedarray, with the first
element being stored at unpackedarray[index]
* todo:
* "open packed arrays" and rtti for packed arrays are not
yet supported
* gdb does not properly support bitpacked arrays
git-svn-id: trunk@4449 -
2006-08-19 12:54:12 +00:00
peter
eb829ea21b
* store procdef messageinf in the ppu
...
git-svn-id: trunk@4386 -
2006-08-07 19:39:32 +00:00
peter
22657a363b
* pass context class to searchsym_in_class to fix the visibility
...
of protected members called from a named class in a child class
that also has the visibility for those protected members
git-svn-id: trunk@4384 -
2006-08-07 19:10:11 +00:00
Jonas Maebe
03302dc7c4
* fixed support for macpas & and | operators: they only work on booleans
...
now, and always perform short circuit boolean evaluation (also in {$b+})
git-svn-id: trunk@3745 -
2006-05-30 13:02:36 +00:00
daniel
4d37c919cc
* Internal implementations of get_frame, get_caller_frame and get_caller_addr.
...
Not yet activated.
git-svn-id: trunk@3517 -
2006-05-14 08:39:19 +00:00
florian
f7817b5669
+ parsing of variant dispatching
...
git-svn-id: trunk@3387 -
2006-04-30 17:53:53 +00:00
florian
9e00f894a9
+ support for unaligned function
...
git-svn-id: trunk@3350 -
2006-04-29 11:15:29 +00:00
Jonas Maebe
3bc040cc45
* count references to symbols accessed via properties (fixes bug #4826 )
...
git-svn-id: trunk@2959 -
2006-03-18 22:53:27 +00:00
Jonas Maebe
791be20f28
* committed wrong file in r2614 (ncal.pas instead of pexpr.pas)
...
git-svn-id: trunk@2616 -
2006-02-17 09:05:03 +00:00
peter
b967ae8307
* support @inherited <method> to get the methodpointer
...
of <method> in a parent class
git-svn-id: trunk@2526 -
2006-02-11 22:49:00 +00:00
peter
232555904e
* symtablestack cleanup and rewrite
...
git-svn-id: trunk@2448 -
2006-02-05 22:24:18 +00:00
peter
301042c824
* more check_hints fixes
...
git-svn-id: trunk@2445 -
2006-02-05 20:18:57 +00:00
Jonas Maebe
9fd4e98dad
* fixed displaying of hints such for procedures and functions
...
(and moved check_hints from pbase to htypechk)
git-svn-id: trunk@2417 -
2006-02-03 18:14:13 +00:00
peter
45176ea2a8
* split tstringtype for stringdef and stringconstnode
...
to prevent wrong typecasts
git-svn-id: trunk@2276 -
2006-01-13 17:20:27 +00:00
Jonas Maebe
5ccbeea1d3
+ support for "return x" as equivalent for "exit(x)" in macpas mode
...
git-svn-id: trunk@2042 -
2005-12-23 22:49:15 +00:00
peter
710ea0edf0
* fix enum support in vecn in symlists
...
git-svn-id: trunk@2035 -
2005-12-23 14:11:29 +00:00
peter
80fef1e8ad
* fix parsing of typecasts in type declarations
...
git-svn-id: trunk@2026 -
2005-12-22 12:21:06 +00:00
peter
95879fe8a7
* basic support for generic classes
...
git-svn-id: trunk@2020 -
2005-12-21 10:11:15 +00:00
peter
739ea825d4
* fix sizeof(array of const)
...
git-svn-id: trunk@1954 -
2005-12-15 08:58:45 +00:00
florian
350c886460
+ support exit();
...
git-svn-id: trunk@1802 -
2005-11-22 21:27:56 +00:00
peter
f1af7cfe8f
* generate implicit 0+<x> for +<x> expressions
...
git-svn-id: trunk@1556 -
2005-10-21 07:46:14 +00:00
peter
38993ae7e8
* support procvar^, with procvar returning a procvardef in tp/mac modes
...
git-svn-id: trunk@1477 -
2005-10-18 12:33:27 +00:00
florian
71b90d4d00
+ slice implemented
...
git-svn-id: trunk@1384 -
2005-10-15 16:48:27 +00:00
peter
d1d2b0e1a1
* function name doesn't call the function in macpas
...
git-svn-id: trunk@1376 -
2005-10-14 07:25:22 +00:00
peter
89297d2c39
* move all stabs ($ifdef gdb) code to dbgstabs
...
git-svn-id: trunk@1255 -
2005-10-02 11:17:05 +00:00
peter
edf553a223
* string constants are now array of char until
...
they are converted to a specific string type
git-svn-id: trunk@1254 -
2005-10-02 11:08:58 +00:00
peter
9cda65c4b0
* support for widestrings in tconstsym
...
* fix widestring writing for stringconstn
git-svn-id: trunk@646 -
2005-07-18 12:54:15 +00:00
florian
7cd67ea3f0
* node optimizer branch merged
...
* gotonode and gotolabel refactored
* -Nu added to enable for loop unrolling
git-svn-id: trunk@446 -
2005-06-19 17:42:10 +00:00
fpc
790a4fe2d3
* log and id tags removed
...
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
50778076c3
initial import
...
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
michael
55e76063df
* Fix methodpointer copy from callnode to loadnode
2005-04-06 11:49:37 +00:00
florian
10df6ea0a2
* fpc_variant_get call fixed
2005-03-28 14:14:52 +00:00
florian
252fa84c62
+ compiler support for reading/writing of vararrays
2005-03-27 20:19:21 +00:00
peter
3f9d6ab32f
* add hint when passing an uninitialized variable to a var parameter
2005-03-25 22:20:18 +00:00
florian
eeaded577a
* fixed copy(dyn. array,...);
2005-03-05 16:37:28 +00:00
Jonas Maebe
d612918bb2
* fixed Lazarus compilation
2005-03-04 09:56:35 +00:00
Jonas Maebe
39a372756f
* properties can also be inherited/overridden
2005-03-04 07:46:36 +00:00
Jonas Maebe
7fb6b96aed
* fixed web bug #3738
2005-03-03 19:58:14 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
florian
acc34b08cd
* fixed precedence of is-operator
2005-02-06 20:29:12 +00:00
peter
79c20ebf7d
* use val() for decoding integers
2005-01-20 17:05:53 +00:00
peter
537dcdde20
* don't allow properties in C style operators
2005-01-04 16:38:07 +00:00
peter
ced6bf20cd
* fix lineinfo for with blocks
2004-12-26 16:22:01 +00:00
peter
9c0be16488
implicit load of variants unit
2004-12-06 19:23:05 +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
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
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
e740a66636
* tparaitem removed, use tparavarsym instead
...
* parameter order is now calculated from paranr value in tparavarsym
2004-11-15 23:35:30 +00:00
peter
6458bd0ce1
* tvarsym splitted
2004-11-08 22:09:58 +00:00
peter
d804452dcc
added checking for token=_ID after _POINT is parsed
2004-11-04 17:57:58 +00:00
peter
f02ebed09e
* support @labelsym
2004-11-01 15:32:12 +00:00
peter
916041c81c
* symlist typeconv for absolute fixed
2004-11-01 10:33:01 +00:00
peter
e7459f5466
* heap and heapsize removed
...
* checkpointer fixes
2004-10-25 15:38:41 +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
1bb51a2667
* all checking for visibility is now done by is_visible_for_object
2004-10-12 19:51:13 +00:00
peter
4a7e02d817
* cstyle operators with calln in the tree now use a temp
2004-10-12 14:35:47 +00:00
peter
2c9a986fa3
* fix crash with calling method pointer from class procedure
2004-08-25 15:58:36 +00:00
olle
98df0978e1
+ adding operators "|" and "&" for macpas
2004-07-05 23:25:34 +00:00
olle
ff36adb056
+ macpas style: exit, cycle, leave
...
+ macpas compiler directive: PUSH POP
2004-07-05 21:49:43 +00:00
peter
2769c9048c
* don't allow assigned(tobject) anymore, it is useless since it
...
is always true
2004-06-29 20:59:43 +00:00
michael
41655fe0ac
+ Patch from peter to fix typinfo for classes
2004-06-28 14:38:36 +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
b86f2c6a25
* methodpointer is loaded into a temp when it was a calln
2004-05-23 18:28:40 +00:00
florian
aa64bb4c2c
+ support for assigned(<dyn. array>) added
2004-05-16 15:03:48 +00:00
daniel
b721e5872c
* Prepare compiler infrastructure for multiple ansistring types
2004-04-29 19:56:36 +00:00
florian
e678705648
* small x86_64 fixes
2004-04-12 18:59:32 +00:00
peter
8d078ada18
* variant array support
2004-03-29 14:42:52 +00:00
peter
e46cdcea48
* constants ordinals now always have a type assigned
...
* integer constants have the smallest type, unsigned prefered over
signed
2004-03-23 22:34:49 +00:00
peter
c844c5a505
* procvar cleanup
2004-02-20 21:55:59 +00:00
peter
6faddb5e71
* constants are now parsed as 64bit for cpu64bit
2004-02-18 21:58:53 +00:00
daniel
b38d7f59f4
* Make better use of try_to_consume
2004-02-17 23:36:40 +00:00
peter
1e3875ad36
- fix rtti generation for properties containing sl_vec
...
- fix crash when overloaded operator is not available
- fix record alignment for C style variant records
2004-02-17 15:57:49 +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
Jonas Maebe
b46b7ff792
* integrated hack from 1.0.x so we can parse low(int64) as int64 instead
...
of as double (in 1.0.x, it was necessary for low(longint))
2003-12-29 17:19:35 +00:00
peter
1260eed8fd
* again procvar fixes
2003-12-08 22:35:28 +00:00
peter
90a0c832e4
* Initialize() added
2003-11-29 16:19:54 +00:00
peter
2d08c072b5
* fix crash with exit() in a procedure
2003-11-29 14:49:46 +00:00
peter
353219a928
* typed address only used for @ and addr() that are parsed
2003-11-29 14:33:13 +00:00
peter
76f5fbd7db
* check paralength instead of assigned(left)
2003-11-10 19:11:39 +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
25bf6452b4
* fixed calling classmethod for other object from classmethod
2003-11-06 15:54:32 +00:00
peter
1688a42f0d
* assigned(proc()) does not change the calln to loadn
2003-11-04 16:42:13 +00:00
peter
079e489b08
* absolute to object field supported, fixes tb0458
2003-10-28 15:36:01 +00:00
peter
56ebcd1249
* self is not a token anymore. It is handled special when found
...
in a code block and when parsing an method
2003-10-09 15:20:56 +00:00
florian
8fcfcc6606
* fixed constructor call in class methods
2003-10-09 15:00:13 +00:00
peter
95f132db3d
* set_varstate cleanup
2003-10-08 19:19:45 +00:00
peter
cedb10116c
* fix assigned(property)
2003-10-05 12:56:04 +00:00
peter
00801693bb
* protected visibility fixes
2003-10-02 21:13:46 +00:00
peter
70fe77ca7c
* procinfo unit contains tprocinfo
...
* cginfo renamed to cgbase
* moved cgmessage to verbose
* fixed ppc and sparc compiles
2003-10-01 20:34:48 +00:00
peter
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
florian
f3e9e7a24f
* fixed web bug #2669
...
* cosmetic fix in printnode
* tobjectdef.gettypename implemented
2003-09-06 22:27:08 +00:00
florian
22f1ff8da4
* merged Wiktor's Watcom patches in 1.1
2003-09-05 17:41:12 +00:00
peter
cb16846e3b
* fixed static class check for properties
2003-08-23 22:29:51 +00:00
peter
17d7fb5a03
* allow typeof(self) in class methods
2003-08-23 18:41:52 +00:00
peter
6731abb0db
* fixed some reported bugs
2003-08-10 17:25:23 +00:00
peter
0dceec9a64
* current_procdef removed, use current_procinfo.procdef instead
2003-06-13 21:19:30 +00:00
peter
dc64b1b54f
* don't set nf_member when loaded from with symtable
...
* allow static variables in class methods
2003-06-03 21:02:57 +00:00
peter
31286d02e6
* search defaulthandler only for message methods
2003-05-22 17:43:21 +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
fcea95f596
* ifdef'd code that checked for failed inherited constructors
2003-05-13 20:54:39 +00:00
peter
05c05f2555
* failn removed
...
* inherited result code check moven to pexpr
2003-05-13 19:14:41 +00:00
peter
26d78ff5c9
* moved implicit exception frame from ncgutil to psub
...
* constructor/destructor helpers moved from cobj/ncgutil to psub
2003-05-11 21:37:03 +00:00
peter
15b0132f6f
* tloadnode does not support objectsymtable,withsymtable anymore
...
* withnode cleanup
* direct with rewritten to use temprefnode
2003-05-11 14:45:12 +00:00
peter
1a2eedd767
* self moved to hidden parameter
...
* removed hdisposen,hnewn,selfn
2003-05-09 17:47:02 +00:00
florian
9612e57805
* introduced defaultordconsttype to decribe the default size of ordinal constants
...
on 64 bit CPUs it's equal to cs64bitdef while on 32 bit CPUs it's equal to s32bitdef
+ added defines CPU32 and CPU64 for 32 bit and 64 bit CPUs
* int64s/qwords are allowed as for loop counter on 64 bit CPUs
2003-05-01 07:59: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
peter
181da6423d
* firstaddr will check procvardef
2003-04-23 10:13:55 +00:00
peter
47489f2376
* firstpass uses expectloc
...
* checks if there are differences between the expectloc and
location.loc from secondpass in EXTDEBUG
2003-04-22 23:50:22 +00:00
peter
d780263799
* default property also increased the reference count for the
...
property symbol
2003-04-11 15:49:01 +00:00
peter
5cff10dd1a
* fix tw2454
2003-04-11 14:50:08 +00:00
peter
750c3b315e
* fixed small mem leaks
2003-03-27 17:44:13 +00:00
peter
fe6518a49c
* allow more tokens instead of only semicolon after inherited
2003-03-17 18:55:30 +00:00
peter
830ea4e876
* support DefaultHandler and anonymous inheritance fixed
...
for message methods
2003-03-17 16:54:41 +00:00
peter
25d973ef16
* self fixes for static methods (merged)
2003-01-30 21:46:57 +00:00
peter
14f92fa36f
* Find the correct procvar to load when using @ in fpc mode
2003-01-16 22:12:22 +00:00
peter
00e2ee165b
* merged methodpointer fixes from 1.0.x
2003-01-15 01:44:32 +00:00
peter
ea989e01cc
* fixed tw2273
2003-01-14 23:48:09 +00:00
peter
23861a4e45
* tp procvar handling fix for tb0448
2003-01-12 17:51:42 +00:00
peter
a0fbe08d83
* remove a lot of code to support typen in loadn-procsym
2003-01-05 22:44:14 +00:00
peter
74cd4c01b2
* assigned(procvar) fix for delphi mode, fixes tb0430
2002-12-11 22:40:36 +00:00
carl
93d011d184
+ checking for symbols used with hint directives is done mostly in pexpr
...
only now
2002-11-30 11:12:48 +00:00
peter
67153fd9a1
* the never ending story of tp procvar hacks
2002-11-27 15:33:46 +00:00
peter
2e692659df
* fix for tw2178. When a ^ or . follows a procsym then the procsym
...
needs to be called
2002-11-26 22:58:24 +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
carl
05d86bbef8
* memory optimization with tconstsym (1.5%)
2002-11-22 22:48:10 +00:00
pierre
01af531efb
* commented check code tht was invalid in 1.1
2002-11-20 22:49:55 +00:00
peter
bc7a7ddb20
* fix crash with EXTDEBUG code
2002-11-18 18:34:41 +00:00
peter
aee4b7195a
* fix tw2209 (merged)
2002-11-18 17:48:21 +00:00
peter
a496dbe1ff
* pass proccalloption to ret_in_xxx and push_xxx functions
2002-11-18 17:31:54 +00:00
peter
9d0437f8aa
* support inherited; support for overload as it is handled by
...
delphi. This is only for delphi mode as it is working is
undocumented and hard to predict what is done
2002-10-05 00:48:57 +00:00
peter
f29c79b533
* ignore vecn,subscriptn when checking for a procvar loadn
2002-10-04 21:13:59 +00:00
peter
ff5f5b33cd
* don't check interfaces for class methods
2002-10-02 20:51:22 +00:00
peter
d774c8d988
* Copy() is now internal syssym that calls compilerprocs
2002-10-02 18:20:52 +00:00
florian
d5f0cbbf2b
* fixes to common code to get the alpha compiler compiled applied
2002-09-30 07:00:44 +00:00
peter
76eb5b4a1f
* allow ^ after nil
2002-09-16 19:06:14 +00:00
peter
dcd9e0107c
* old logs removed and tabs fixed
2002-09-07 15:25:00 +00:00
carl
6c2bede5a8
* second part bug report 1996 fix, testrange in cordconstnode
...
only called if option is set (also make parsing a tiny faster)
2002-09-07 12:16:03 +00:00
daniel
b0364566d1
* Make Tprocdef.defs protected
2002-09-03 16:26:26 +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
Jonas Maebe
ad728f0267
- removed some superfluous "in_paras := true" statements
2002-08-01 16:37:47 +00:00
florian
eb2ca8d10f
* rewrote the system handling
2002-07-26 21:15:37 +00:00
daniel
46b8ed0657
* Tried to make Tprocsym.defs protected. I didn't succeed but the cleanups
...
are worth comitting.
2002-07-23 09:51:22 +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
31da813d1d
* exit is now a syssym instead of a keyword
2002-07-16 15:34:20 +00:00
carl
e8451626f6
* longstring declaration now gives parser error since its not supported!
2002-07-06 20:18:02 +00:00
Jonas Maebe
f33ee551d7
* fixed web bug #1995
2002-06-12 15:46:14 +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
67ede1276b
* add pinline unit that inserts compiler supported functions using
...
one or more statements
* moved finalize and setlength from ninl to pinline
2002-04-23 19:16:34 +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
peter
8af460ac31
* using inherited; without a parent having the same function
...
will do nothing like delphi
2002-04-16 16:11:17 +00:00
carl
da8b01e708
+ change unit use
2002-04-07 13:25:20 +00:00
Jonas Maebe
2965034fca
* fixed web bug #1907
...
* fixed some other procvar related bugs (all related to accepting procvar
constructs with either too many or too little parameters)
(both merged, includes second typo fix of pexpr.pas)
2002-04-01 20:57:13 +00:00
Jonas Maebe
7fb55bf4e4
+ a_loadfpu_* and a_loadmm_* methods in tcg
...
* register allocation is now handled by a class and is mostly processor
independent (+rgobj.pas and i386/rgcpu.pas)
* temp allocation is now handled by a class (+tgobj.pas, -i386\tgcpu.pas)
* some small improvements and fixes to the optimizer
* some register allocation fixes
* some fpuvaroffset fixes in the unary minus node
* push/popusedregisters is now called rg.save/restoreusedregisters and
(for i386) uses temps instead of push/pop's when using -Op3 (that code is
also better optimizable)
* fixed and optimized register saving/restoring for new/dispose nodes
* LOC_FPU locations now also require their "register" field to be set to
R_ST, not R_ST0 (the latter is used for LOC_CFPUREGISTER locations only)
- list field removed of the tnode class because it's not used currently
and can cause hard-to-find bugs
2002-03-31 20:26:33 +00:00
peter
935bb2185a
* fixed sizeof(TClass) to return only 4
2002-03-01 14:08:26 +00:00
peter
190ead04c0
* more fixes for protected handling
2002-02-03 09:30:03 +00:00
peter
0c96d4406b
* more checks for private and protected
2002-01-29 21:25:22 +00:00
peter
fd2ad837e2
* implicit result variable generation for assembler routines
...
* removed m_tp modeswitch, use m_tp7 or not(m_fpc) instead
2002-01-24 18:25:48 +00:00
peter
5cdb7cc52b
* removed getprocvar, use only getprocvardef
2002-01-06 21:47:32 +00:00
peter
60d2ddbbd5
* protected/private symbols parsing fixed
2001-12-31 16:59:41 +00:00
florian
b60666ae1f
+ parasym to tparaitem added
2001-12-06 17:57:33 +00:00
florian
9f9c1700b0
* variant paramter passing and functions results fixed
2001-11-14 01:12:44 +00:00
peter
887f6ba34c
* removed obsolete chainprocsym and test_procsym code
2001-11-02 23:16:50 +00:00
peter
d2e1952377
* procsym definition rewrite
2001-11-02 22:58:00 +00:00
peter
ac400051bd
* allow assignment of overloaded procedures to procvars when we know
...
which procedure to take
2001-10-28 17:22:25 +00:00
marco
7215d46735
* Make new/dispose system functions instead of keywords
2001-10-24 11:51:39 +00:00
peter
075b5188ee
* better support for indexed properties
2001-10-21 13:10:50 +00:00
peter
cb06c9bcb8
* array access for properties added
2001-10-21 12:33:05 +00:00
peter
17d6dded66
* interface 2 guid support
...
* guid constants support
2001-10-20 19:28:37 +00:00
Jonas Maebe
daa7693b45
* property parameters are now fully parsed by the firstcall code to
...
check for the correct amount and types (merged)
2001-10-18 16:30:38 +00:00
peter
915b5cd7a9
* split constsym.value in valueord,valueordptr,valueptr. The valueordptr
...
is used for holding target platform pointer values. As those can be
bigger than the source platform.
2001-09-02 21:18:28 +00:00
florian
9746f4c2d6
* some cg reorganisation
...
* some PPC updates
2001-08-26 13:35:06 +00:00
florian
032023f8de
* some interfaces related problems regarding
...
mapping of interface implementions fixed
2001-08-22 21:16:20 +00:00
peter
81200dc9ef
* funcret moved from tprocinfo to tprocdef
2001-08-06 21:40:46 +00:00
peter
db87f86f00
* Length made internal
...
* Add array support for Length
2001-07-09 21:15:40 +00:00
Jonas Maebe
77a99eecdf
* fixed inconsistent handling of procvars in FPC mode (sometimes @ was
...
required to assign the address of a procedure to a procvar, sometimes
not. Now it is always required) (merged)
2001-06-29 14:16:57 +00:00
peter
d7eb8e1e6b
* fixed tp procvar support in parameters of a called procvar
...
* typenode cleanup, no special handling needed anymore for bt_type
2001-06-04 18:16:42 +00:00
peter
04be6d3ced
* parse const after .. using bt_const block to allow expressions, this
...
is Delphi compatible
2001-06-04 11:45:35 +00:00
peter
d997613a11
* allow typenodes for typeinfo and typeof
...
* tp procvar fixes for properties
2001-05-19 21:15:53 +00:00
peter
be05f2b65b
* fixed crash with auto dereferencing
2001-05-19 12:23:59 +00:00
peter
13877f29b2
* removed unused allow_type
2001-05-09 19:52:51 +00:00
florian
3c5793d8c6
* some Delphi incompatibilities fixed:
...
- out, dispose and new can be used as idenfiers now
- const p = apointerype(nil); is supported now
+ support for const p = apointertype(pointer(1234)); added
2001-05-04 15:52:03 +00:00
peter
af5d6e60e7
* moved more code from pass_1 to det_resulttype
2001-04-14 14:07:10 +00:00
peter
ff4ee28066
* fpc mode now requires @ also when left of assignment is an procvardef
2001-04-13 23:50:24 +00:00
peter
a7cf57524e
* symtable change to classes
...
* range check generation and errors fixed, make cycle DEBUG=1 works
* memory leaks fixed
2001-04-13 01:22:06 +00:00
peter
b193bf7df3
* remove unnecessary calls to firstpass
2001-04-04 22:43:50 +00:00
peter
4e2655cdc5
* resulttype rewrite
2001-04-02 21:20:29 +00:00
peter
d8abf76f6b
* getsym redesign, removed the globals srsym,srsymtable
2001-03-11 22:58:49 +00:00
peter
32b9cdb7cf
+ new tlinkedlist class (merge of old tstringqueue,tcontainer and
...
tlinkedlist objects)
2000-12-25 00:07:25 +00:00
peter
1103739912
* cardinal const expr fix from jonas
2000-12-19 20:36:03 +00:00
peter
4df5f03ca7
* fixed static variables
2000-12-17 14:00:18 +00:00
Jonas Maebe
0a70f9b06e
* only return int64's from functions if it int64funcresok is defined
...
+ added int64funcresok define to options.pas
2000-12-15 13:26:01 +00:00
michael
62950eb5c5
+ Fix from Peter
2000-12-15 12:13:52 +00:00
Jonas Maebe
c91a23c27d
* new constant handling: from now on, hex constants >$7fffffff are
...
parsed as unsigned constants (otherwise, $80000000 got sign extended
and became $ffffffff80000000), all constants in the longint range
become longints, all constants >$7fffffff and <=cardinal($ffffffff)
are cardinals and the rest are int64's.
* added lots of longint typecast to prevent range check errors in the
compiler and rtl
* type casts of symbolic ordinal constants are now preserved
* fixed bug where the original resulttype wasn't restored correctly
after doing a 64bit rangecheck
2000-12-07 17:19:42 +00:00
florian
b9796f6a7f
* unused units removed from uses clause
...
* some changes for widestrings
2000-11-29 00:30:30 +00:00
florian
68c1a1e3e6
* System.TypeInfo fixed
...
+ System.Finalize implemented
+ some new keywords for interface support added
2000-11-09 17:46:54 +00:00
peter
8df98007d6
* more fixes to get make cycle working
2000-11-06 20:30:54 +00:00
florian
51527ba1c9
+ merged Attila's changes for interfaces, not tested yet
2000-11-04 14:25:19 +00:00
peter
451723647e
* symtable splitted, no real code changes
2000-10-31 22:02:46 +00:00
peter
8e4f77b0a5
* fixed crash with call from type decl which is not allowed (merged)
2000-10-26 23:40:54 +00:00
florian
f80c24177a
* a lot of changes:
...
- basic dyn. array support
- basic C++ support
- some work for interfaces done
....
2000-10-21 18:16:11 +00:00
peter
e171f341a0
* moehrendorf oct 2000 rewrite
2000-10-14 10:14:45 +00:00
peter
38951f5ce1
* lot of compile updates for cg11
2000-10-01 19:48:23 +00:00
peter
5218af7926
* delphi compile fixes
2000-09-24 21:19:48 +00:00
peter
a71e44ac49
* use defines.inc
2000-09-24 15:06:10 +00:00
peter
4c94659743
* moved some util functions from globals,cobjects to cutils
...
* splitted files into finput,fmodule
2000-08-27 16:11:48 +00:00
peter
90fc8a53aa
* auto derefence mode for array pointer (merged)
2000-08-20 15:12:49 +00:00
peter
7eaac1706d
* splitted namedobjectitem.next into indexnext and listnext so it
...
can be used in both lists
* don't allow "word = word" type definitions (merged)
2000-08-16 18:33:53 +00:00
florian
244fc53520
+ support of 64 bit integer constants
2000-08-16 13:06:06 +00:00
peter
4549ef44e1
* merges from fixes
2000-08-04 22:00:50 +00:00
michael
650fbb86aa
+ removed logs
2000-07-13 11:32:24 +00:00
michael
e7aca136a1
+ Initial import
2000-07-13 06:29:38 +00:00
peter
2ce33303a3
* support for inherited; only
2000-06-14 16:52:42 +00:00
pierre
7b1219536c
+ support for NOT overloading
...
+ unsupported overloaded operators generate errors
2000-06-05 20:41:17 +00:00
pierre
6433e1d8c2
tok2node moved to htypechk unit
2000-06-02 21:22:56 +00:00
peter
d75bbf8b73
* fixed crash with inherited with varsym/propsym
2000-03-23 15:56:59 +00:00
peter
797267fde1
* protected member check for classes works
2000-03-19 11:22:21 +00:00
pierre
e0cc4f9bed
+ oppower
2000-03-16 15:13:03 +00:00
pierre
34795ccd60
* - 1**4 = -1 fix
2000-03-14 15:50:19 +00:00
Jonas Maebe
0ab87d5ed8
* modifications to make the compiler functional when compiled with
...
-Or
2000-02-13 14:21:50 +00:00
peter
4a4a24b6e8
* log truncated
2000-02-09 13:22:42 +00:00
florian
6c3bbb7915
* corrected wrong error message of a member of a class/object/classref wasn't found
2000-01-19 22:41:58 +00:00
peter
99fe175be6
* added st_default stringtype
...
* genstringconstnode extended with stringtype parameter using st_default
will do the old behaviour
2000-01-09 23:16:05 +00:00
peter
e525797c51
* updated copyright to 2000
2000-01-07 01:14:18 +00:00
pierre
6d8f8ef3f9
* web bug769 fix
1999-12-20 21:24:29 +00:00
peter
d3b404c1a4
* fixed bug #698
...
* removed some notes about unused vars
1999-12-01 12:42:31 +00:00
peter
0512ba80fb
+ ttype, tsymlist
1999-11-30 10:40:42 +00:00
pierre
b528749138
* Notes/Hints for local syms changed to
...
Set_varstate function
1999-11-18 15:34:44 +00:00
pierre
62da9bd4c0
* Notes/hints changes
1999-11-17 17:04:58 +00:00
pierre
94f418dc11
+ one field added for ttoken record for operator
...
linking the id to the corresponding operator token that
can now now all be overloaded
* overloaded operators are resetted to nil in InitSymtable
(bug when trying to compile a uint that overloads operators twice)
1999-11-15 17:52:59 +00:00
peter
8cbc068314
* fixed crash with an errordef
1999-11-14 15:57:35 +00:00
florian
7265215469
* problem with "index X"-properties solved
...
* typed constants of class references are now allowed
1999-11-08 14:02:16 +00:00
florian
917bf5b071
* previous fix for 517 was imcomplete: there was a problem if the property
...
had only an index
1999-11-07 23:21:30 +00:00
florian
8b40781b6c
* finally bug #517 solved ...
1999-11-07 23:16:49 +00:00
peter
0887060ff2
* truncated log to 20 revs
1999-11-06 14:34:16 +00:00
peter
338a386280
* fixed inherited with properties
1999-11-05 00:10:30 +00:00
peter
e0fe0916fd
* check for object in extended new
1999-10-27 16:06:19 +00:00
peter
503d5a1cfa
* const parameter is now checked
...
* better and generic check if a node can be used for assigning
* export fixes
* procvar equal works now (it never had worked at least from 0.99.8)
* defcoll changed to linkedlist with pparaitem so it can easily be
walked both directions
1999-10-26 12:30:40 +00:00
peter
8e7dd52200
* error when properties are passed to var parameters
1999-10-22 14:37:25 +00:00
peter
89b677a0ee
* split type reading from pdecl to ptype unit
...
* parameter_dec routine is now used for procedure and procvars
1999-10-22 10:39:34 +00:00
florian
fa19f0aa09
- removed the hcodegen use in the new cg, use cgbase instead
1999-10-14 14:57:51 +00:00
peter
6b2a0a3a5c
* fixed result access in 'if result = XXX then'
...
* fixed const cr=chr(13)
1999-09-28 11:03:54 +00:00