Commit Graph

86 Commits

Author SHA1 Message Date
florian
6d1506a7c6 * when compiling <interface> as <interface> we can't assume
anything about relation
2002-10-06 16:10:23 +00:00
carl
67486c96c3 * fixes for Delphi 6 compilation
(warning : Some features do not work under Delphi)
2002-10-05 12:43:23 +00:00
florian
eeae421d91 - removed the relation check for <class> as <interface> because we don't
know the runtime type of <class>! It could be a child class of the given type
    which implements additional interfaces
2002-10-02 20:23:50 +00:00
florian
4cf1bb7038 + the as operator for <class> as <interface> has to check the parent classes as well 2002-10-02 20:17:14 +00:00
florian
d5f0cbbf2b * fixes to common code to get the alpha compiler compiled applied 2002-09-30 07:00:44 +00:00
peter
cea50f7185 * add argument to equal_paras() to support default values or not 2002-09-16 14:11:12 +00:00
carl
752beef0dd * cardinal -> longword 2002-09-07 20:40:23 +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
Jonas Maebe
86830c26b8 - reverted my last commit, it was completely bogus :( 2002-09-05 05:56:07 +00:00
Jonas Maebe
d2401f67b4 - removed unnecessary typeconversion from char_to_string 2002-09-04 19:38:42 +00:00
peter
a17291b2d4 * array of char support for Str() 2002-09-02 19:24:41 +00:00
daniel
4b82d30953 * Removed sets from Tcallnode.det_resulttype
+ Added read/write notifications of variables. These will be usefull
   for providing information for several optimizations. For example
   the value of the loop variable of a for loop does matter is the
   variable is read after the for loop, but if it's no longer used
   or written, it doesn't matter and this can be used to optimize
   the loop code generation.
2002-09-01 08:01:16 +00:00
peter
4b81e16fe2 * tempgen cleanup
* tt_noreuse temp type added that will be used in genentrycode
2002-08-23 16:14:48 +00:00
Jonas Maebe
ed08ed1ce0 * the as node again uses a compilerproc
+ (untested) support for interface "as" statements
2002-08-20 18:23:32 +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
florian
e313bab4ff * first part of procinfo rewrite 2002-08-17 09:23:33 +00:00
carl
e212fa90d5 + generic int_to_real type conversion
+ generic unaryminus node
2002-08-14 19:26:55 +00:00
florian
31c178f207 + support of explicit type case boolean->char 2002-08-11 16:08:55 +00:00
florian
589c742efe + support of explicit type case <any ordinal type>->pointer
(delphi mode only)
2002-08-11 15:28:00 +00:00
florian
030eae46de * a couple of interface related fixes 2002-08-09 07:33:01 +00:00
florian
e7a6cd18dd * more fixes for the ppc
+ wrappers for the tcnvnode.first_* stuff introduced
2002-07-29 21:23:42 +00:00
daniel
1130395e7e * Readded old set code. To use it define 'oldset'. Activated by default
for ppc.
2002-07-23 12:34:29 +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
daniel
3a134c6e07 * Sets are now internally sets. 2002-07-22 11:48:04 +00:00
florian
4f7b35be5b + source code page support 2002-07-20 17:11:48 +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
peter
68ce5a00e5 * cg64 patch
* basics for currency
  * asnode updates for class and interface (not finished)
2002-07-01 16:23:52 +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
cc8c4d7093 * moved more routines from cga/n386util 2002-04-25 20:16:38 +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
Jonas Maebe
71a52a4aeb * several powerpc-related additions and fixes 2002-04-06 18:10:42 +00:00
peter
5e7a1e3729 * removed unused units
* use tlocation.size in cg.a_*loc*() routines
2002-04-04 19:05:54 +00:00
peter
5b242f7741 * tlocation,treference update
* LOC_CONSTANT added for better constant handling
  * secondadd splitted in multiple routines
  * location_force_reg added for loading a location to a register
    of a specified size
  * secondassignment parses now first the right and then the left node
    (this is compatible with Kylix). This saves a lot of push/pop especially
    with string operations
  * adapted some routines to use the new cg methods
2002-04-02 17:11:27 +00:00
peter
190ead04c0 * more fixes for protected handling 2002-02-03 09:30:03 +00:00
Jonas Maebe
cd378a2881 * fixed type conversions from dynamic arrays to open arrays 2001-12-10 14:34:04 +00:00
florian
b60666ae1f + parasym to tparaitem added 2001-12-06 17:57:33 +00:00
peter
e45bb82d81 * freemem change to value parameter
* torddef low/high range changed to int64
2001-12-03 21:48:41 +00:00
Jonas Maebe
a87a30b831 * fixed web bug #1665 (allow char to chararray type conversion) ("merged") 2001-11-02 23:24:11 +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
peter
17d6dded66 * interface 2 guid support
* guid constants support
2001-10-20 19:28:37 +00:00
peter
cea68ee35c * fixed size of constset when change from small to normalset 2001-10-20 17:21:54 +00:00
Jonas Maebe
f33d23922a - removed unnecessary i386 pass_2 of as- and isnode and added dummy generic ones 2001-09-30 16:12:46 +00:00
Jonas Maebe
fc6d300a95 * almost all second pass typeconvnode helpers are now processor independent
* fixed converting boolean to int64/qword
  * fixed register allocation bugs which could cause internalerror 10
  * isnode and asnode are completely processor indepent now as well
  * fpc_do_as now returns its class argument (necessary to be able to use it
    properly with compilerproc)
2001-09-29 21:32:46 +00:00
Jonas Maebe
f256a47f04 * compilerproc implementation of set addition/substraction/...
* changed the declaration of some set helpers somewhat to accomodate the
    above change
  * i386 still uses the old code for comparisons of sets, because its
    helpers return the results in the flags
  * dummy tc_normal_2_small_set type conversion because I need the original
    resulttype of the set add nodes
  NOTE: you have to start a cycle with 1.0.5!
2001-09-03 13:27:41 +00:00