Commit Graph

2326 Commits

Author SHA1 Message Date
pierre
8025581bfd * DLL index used for win32 target with DEF file
+ DLL initialization/finalization support
1999-11-20 01:19:10 +00:00
pierre
bb6dc0cee8 * avoid certain wrong notes/hints 1999-11-19 14:49:15 +00:00
pierre
9a9219324f * avoid double warnings 1999-11-18 23:35:40 +00:00
pierre
b528749138 * Notes/Hints for local syms changed to
Set_varstate function
1999-11-18 15:34:44 +00:00
pierre
fd1e583ead + IsExe global var needed for IDE 1999-11-18 13:43:48 +00:00
peter
2392d09110 * reinserted jonas version 1999-11-18 11:39:43 +00:00
peter
b5a64f5239 * reinserted 1999-11-18 11:31:47 +00:00
pierre
62da9bd4c0 * Notes/hints changes 1999-11-17 17:04:58 +00:00
pierre
4decca16cf symconst is now a unit 1999-11-17 16:49:45 +00:00
pierre
1cac8fdbd8 * global var token was changed by overload code (form bug #707) 1999-11-16 23:45:28 +00:00
peter
32d3653596 * use outputexedir for link.res location 1999-11-16 23:39:04 +00:00
peter
be864a992e * updated 1999-11-16 23:37:34 +00:00
peter
918b5219ea * labels used but not defined give error instead of warning, the warning
is now only with declared but not defined and not used.
1999-11-15 22:00:46 +00:00
peter
79f6135498 * LOC_JUMP support for vecn 1999-11-15 21:54:38 +00:00
peter
76e4b69919 * fixed constant eval for bool xor/or/and bool 1999-11-15 21:53:42 +00:00
peter
892d38d1f4 * push address also for raise at 1999-11-15 21:49:09 +00:00
peter
173c9ae360 * distclean cleans also ppas link.res log 1999-11-15 21:48:48 +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
pierre
5fa01cdc9e * -g disables reloc section for win32 1999-11-15 17:42:40 +00:00
pierre
604766601d * Pavel's changes for reloc section in executable
+ warning that -g needs -WN under win32
1999-11-15 15:03:46 +00:00
pierre
50193df98e + Pavel's changes to support reloc section in exes 1999-11-15 15:01:56 +00:00
pierre
7526d8714f * last was not handled correctly in TStringQueue 1999-11-15 14:59:55 +00:00
pierre
8e738214a1 * self pointer stabs for local function was wrong 1999-11-15 14:04:00 +00:00
peter
8cbc068314 * fixed crash with an errordef 1999-11-14 15:57:35 +00:00
peter
2537225035 * fixed stringqueue.delete 1999-11-14 15:56:36 +00:00
peter
46ae55d3cd * makefile.fpc note 1999-11-14 15:54:26 +00:00
Jonas Maebe
404ca4568d + basic register renaming (not yet working completely, between
-dreplacereg/-dreplaceregdebug)
1999-11-14 11:26:53 +00:00
Jonas Maebe
dce0f2cd38 * fixed stupid typo in previous commit :( 1999-11-14 11:25:38 +00:00
Jonas Maebe
9ffa216681 * don't remove align objects between JMP's and labels 1999-11-13 19:03:56 +00:00
Jonas Maebe
0a2e7859d2 * Jcc doesn't destroy anything (instead of everyting)
* MOVcc reads op1, writes op2 and raads from the flags
1999-11-13 19:03:16 +00:00
Jonas Maebe
194c612b07 * div, idiv and mul destroy edx!! 1999-11-13 19:01:51 +00:00
michael
c68cf725c6 New error message file from Michael Baikov 1999-11-12 22:52:13 +00:00
peter
e169c592f8 * searchpaths changed to stringqueue object 1999-11-12 11:03:49 +00:00
pierre
ff38b7943a * Enum element reference location corrected 1999-11-11 00:56:54 +00:00
peter
ba170472db * fpcmake updated 1999-11-10 22:10:44 +00:00
pierre
fdd9823d85 * LookUp function now returns the complete name in browcol
and fpsymbol only yakes a part of LoopUpStr
1999-11-10 00:42:42 +00:00
pierre
acaa9296b7 * more browser details 1999-11-10 00:24:02 +00:00
pierre
614fff10f0 * adapted to procinfo as pointer 1999-11-10 00:06:08 +00:00
pierre
3fa7ed902e * some DBX work 1999-11-09 23:51:25 +00:00
pierre
71f8768399 * some DBX work, still does not work 1999-11-09 23:48:47 +00:00
pierre
f88f9f5763 + minimal_stop to avoid memory loss with -iTO switch 1999-11-09 23:47:53 +00:00
pierre
d13efaa366 * power search for ** operator not in browser
* DBX support work, still does not work !
1999-11-09 23:46:00 +00:00
pierre
142ace2afc * better browser info 1999-11-09 23:43:08 +00:00
pierre
d766ee87fc + better reference pos for forward defs 1999-11-09 23:35:49 +00:00
pierre
2bb6dcfa7b + resolving_forward boolean used for references 1999-11-09 23:34:46 +00:00
peter
23ca9de3b3 * esi_offset -> selfpointer_offset to be newcg compatible
* hcogegen -> cgbase fixes for newcg
1999-11-09 23:06:44 +00:00
peter
3835a94b89 * compiles again both i386,alpha both with optimizer 1999-11-09 22:57:08 +00:00
peter
1d8ee73e62 * fpcmake 1999-11-09 22:55:19 +00:00
peter
67a8409186 * fixed wrong asm with inc(qword), but not it's not correctly supported 1999-11-09 22:54:45 +00:00
peter
7fc2e3bf91 * pointer->array is allowed for all pointer types in FPC, fixed assign
check for it.
1999-11-09 14:47:03 +00:00
peter
a2cdbddb56 * valid_for_assign allow properties with calln 1999-11-09 13:29:33 +00:00
peter
b8b39e0980 * fixed 'raise end;' 1999-11-09 13:02:46 +00:00
peter
225bbac550 * define FPC_DELPHI,FPC_OBJFPC,FPC_TP,FPC_GPC
* initial support for ansistring default with modes
1999-11-09 13:00:37 +00:00
peter
18c5e77444 * support absolute unit.variable 1999-11-09 12:58:29 +00:00
peter
5ba2053928 * allow typecasting to integer within pointer typecast+deref 1999-11-08 22:45:33 +00:00
peter
1f5571c3ca * PP -> FPC 1999-11-08 22:44:49 +00:00
florian
08a34c6308 * disposetree for classrefdef added 1999-11-08 18:50:11 +00:00
pierre
ffbacdffde + Reset AnsiStrings to clean up memory 1999-11-08 16:27:20 +00:00
pierre
a4926e2d26 * missing disposetree added to avoid memory loss 1999-11-08 16:24:28 +00:00
peter
79d331a978 * fpcmake support 1999-11-08 15:01:38 +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
peter
df694c76e8 * filename fixes for win32 imports for units with multiple needed dll's 1999-11-08 10:37:12 +00:00
pierre
aa99cfa4d0 + higher level browser 1999-11-07 23:57:36 +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
Jonas Maebe
8a2453ab1d * much more complete/waterproof RegModifiedByInstruction() 1999-11-07 14:57:09 +00:00
Jonas Maebe
8cad9f9dbf * fixed properties for cmp (didn't read any operands, only changed
flags)
1999-11-07 14:55:49 +00:00
Jonas Maebe
621cecced4 * getfinaldestination works completely again (a lot of functionality
got lost in the conversion resulting from the removal of
    ait_labeled_instruction)
1999-11-06 16:24:00 +00:00
Jonas Maebe
d70b3211a4 + search optimial register to use in alignment code (compile with
-dalignreg, -dalignregdebug to see chosen register in
    assembler code). Still needs support in ag386bin.
1999-11-06 16:21:57 +00:00
peter
0887060ff2 * truncated log to 20 revs 1999-11-06 14:34:16 +00:00
pierre
25553ebfea * local browsing works at first level
ie for function defined in interface or implementation
    not yet for functions inside other functions
1999-11-05 17:18:02 +00:00
Jonas Maebe
2688bfd9ec + first implementation of choosing least used register for alignment code
(not yet working, between ifdef alignreg)
1999-11-05 16:01:45 +00:00
florian
3d9daba4c7 * some fixes to get the new cg compiling again 1999-11-05 13:15:00 +00:00
Jonas Maebe
b3276fa59e + a_jmp_cond() 1999-11-05 07:05:56 +00:00
peter
338a386280 * fixed inherited with properties 1999-11-05 00:10:30 +00:00
peter
94cb2299ea * moved unit alias support into ifdef 1999-11-04 23:13:25 +00:00
peter
aa295af911 * fixed pchar and deref detection for assigning 1999-11-04 23:11:21 +00:00
peter
38ee2fd8b4 * TSearchPathString for the string type of the searchpaths, which is
ansistring under FPC/Delphi
1999-11-04 10:55:31 +00:00
peter
1610a9d709 + -Ua<oldname>=<newname> unit alias support 1999-11-04 10:54:02 +00:00
pierre
7b5bae5ded * fix for fpuvaroffset for unused return value 1999-11-04 00:23:58 +00:00
peter
c60316b0d3 * fixed comment level counting after directive 1999-11-03 23:44:28 +00:00
peter
8e27e760ce * fixed ar commands 1999-11-03 23:43:45 +00:00
peter
d1e68e7136 * default units/rtl paths 1999-11-03 23:43:09 +00:00
Jonas Maebe
e10deeca37 + initial implementation 1999-11-03 14:13:59 +00:00
peter
19443ae269 * import library fixes for win32
* alignment works again
1999-11-02 15:06:56 +00:00
peter
be22c241fb * fixed oldtp comment parsing 1999-11-02 15:05:08 +00:00
peter
f4932cb67b * fpc_freemem fpc_getmem new callings updated 1999-10-30 17:35:26 +00:00
peter
0e7c4919c8 * fixed line counter when the first line had #10 only. This was buggy
for both the main file as for include files
1999-10-30 12:32:30 +00:00
peter
00ef632f73 * fixed assert, the tree is now disposed in firstpass if assertions
are off.
1999-10-29 15:28:51 +00:00
pierre
4849432ede * allow doubles in TLinkContainer needed for double libraries 1999-10-28 13:14:00 +00:00
pierre
6db8e1edba * fix for cygwin make problem with -iTP 1999-10-28 11:13:36 +00:00
pierre
a7ee8d9c4a * Libs can be link serveral times 1999-10-28 10:33:06 +00:00
peter
67589c0532 * fixed typo 1999-10-28 09:48:10 +00:00
peter
26a239136d * update to use i386ins.dat 1999-10-28 09:47:45 +00:00
peter
f5a9e30c98 * insns.dat is used to generate all i386*.inc files 1999-10-27 16:11:27 +00:00
peter
63158d246c * updated for new layout 1999-10-27 16:06:52 +00:00
peter
e0fe0916fd * check for object in extended new 1999-10-27 16:06:19 +00:00
peter
e2134ddcab * valid_for_assign support for calln,asn 1999-10-27 16:04:45 +00:00
peter
7ab2ee0e79 * fixed property reading 1999-10-27 16:04:06 +00:00
florian
19694e6112 * property overriding fixed 1999-10-27 14:17:08 +00:00
peter
2a12c5f1da * define INCLUDEOK, which seems to work correct 1999-10-26 13:13:47 +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
a905c026f2 * fixed os2 linker 1999-10-26 12:25:04 +00:00
peter
4a74f18756 * fixed bug #301 1999-10-25 12:18:11 +00:00
peter
44a1fdfa7e * ansistring 2 chararray support
* optimized ansitring 2 pchar
1999-10-25 10:32:43 +00:00
Jonas Maebe
9feb0d4b0e + entry/exitcode for SystemV (Linux) and AIX/Mac from the Altivec
PIM (no AltiVec support yet though)
  * small fix to the a_cmp_* methods
1999-10-24 09:22:18 +00:00
Jonas Maebe
a9b5e27bc1 * finally got around making GetNextInstruction return false when
the current pai object is a AsmBlockStart marker
  * changed a loop in aopt386 which was incompatible with this change
1999-10-23 14:44:24 +00:00
peter
863f35e72b * reset linklibc 1999-10-22 14:42:40 +00:00
peter
8e7dd52200 * error when properties are passed to var parameters 1999-10-22 14:37:25 +00:00
peter
461430ad5c * fixed esi reload with as 1999-10-22 14:36:04 +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
0dd2b51943 * problems with readln fixed: esi wasn't restored correctly when
reading ordinal fields of objects futher the register allocation
    didn't take care of the extra register when reading ordinal values
  * enumerations can now be used in constant indexes of properties
1999-10-21 16:41:37 +00:00
peter
fefc839b29 * redesigned linker object
+ library support for linux (only procedures can be exported)
1999-10-21 14:29:32 +00:00
peter
46b5193e9b * tp7 fix 1999-10-21 14:18:54 +00:00
Jonas Maebe
6de203e9dc * fixed a_loadaddress_ref_reg (mentioned as ToDo in rev. 1.5)
* small bugfix in a_load_store
1999-10-20 12:23:24 +00:00
Jonas Maebe
8f3c1464d5 * changed scratch_registers to (R_11,_R12,R_30) because R_0 is a special
case and R_31 is used as some kind of frame pointer under LinuxPPC
1999-10-20 12:21:34 +00:00
michael
9a3d560559 Added rtlinstall target 1999-10-15 20:47:52 +00:00
florian
fa19f0aa09 - removed the hcodegen use in the new cg, use cgbase instead 1999-10-14 14:57:51 +00:00
pierre
ff8ba9c049 * fix for uggly bug of Marco 1999-10-13 22:09:29 +00:00
peter
9f49a743ee * cgmessagepos functions 1999-10-13 10:42:15 +00:00
peter
c439829c5d * subscript support for tp_procvar 1999-10-13 10:40:55 +00:00
peter
19aa88a729 * moved mangledname creation of normal proc so it also handles a wrong
method proc
1999-10-13 10:37:36 +00:00
peter
851ad1af06 * var must match exactly error msg extended with got and expected type
* array constructor type check now gives error on wrong types
1999-10-13 10:35:23 +00:00
peter
1e940ee840 * dpmi can only be set after reading the options 1999-10-13 10:24:49 +00:00
florian
51b96fabc3 * compiler didn't complain about l1+l2:=l1+l2; it gave only an assembler
error, fixed
1999-10-12 22:35:48 +00:00
florian
8b9633266b * new codegenerator compiles again 1999-10-12 21:20:41 +00:00
pierre
281c77f2b1 * error if calling interrupt procedure 1999-10-12 15:50:54 +00:00
michael
fc4e4bc74a Nieuw error file from Michael Baikov 1999-10-12 14:41:23 +00:00
Jonas Maebe
9a8ecfc76b * fixed bug which sometimes caused a crash when optimizing blocks of code with
assembler blocks (didn't notice before because of lack of zero page protection
    under Win9x :( )
1999-10-11 11:11:31 +00:00
pierre
7bf3213a01 * use and remember that C functions with complex data results use ret $4 1999-10-08 15:40:47 +00:00
pierre
a7992b0232 * library list keeps doubles 1999-10-08 15:38:42 +00:00
Jonas Maebe
2ad775b888 * small bugfix in ArrayRefsEq 1999-10-07 16:07:35 +00:00
peter
e10d770cc3 * fixed stabs writting for forward types 1999-10-06 17:39:14 +00:00
peter
755fc18c07 * fixed empty const ansistring 2 pchar 1999-10-06 08:32:00 +00:00
peter
c61bb81b5e * new tool 1999-10-06 06:29:03 +00:00
pierre
781429264d * bug exit('test') + fail for classes 1999-10-05 22:01:52 +00:00
peter
5726bd1684 * fixed first pass for if branches if the expression got an error 1999-10-04 20:27:41 +00:00
michael
35feded070 * patch from peter for classes 1999-10-04 13:46:04 +00:00
peter
2d21165dd8 * removed objpasunit reference, tvarrec is now searched in systemunit
where it already was located
1999-10-03 19:44:41 +00:00
peter
1a52969bdd * inittable for record fixed (it was only checking for classes) 1999-10-03 19:41:38 +00:00
peter
b2ae851b20 * error check after pass1 of second for argument 1999-10-03 19:39:40 +00:00
peter
6b6fc5aac4 * fixed forward decl check for tp7/delphi 1999-10-03 19:38:39 +00:00
Jonas Maebe
6ca2b6e276 * CSE now updates the RegAlloc's 1999-10-01 13:51:40 +00:00
peter
ca15c4c4fb * class/record type forward checking fixed 1999-10-01 11:18:02 +00:00
peter
b444d6fbe8 * fixed forward checking within class/record 1999-10-01 11:15:57 +00:00
peter
532d85cd50 + procedure directive support in const declarations, fixes bug #232 1999-10-01 10:05:37 +00:00
peter
78246cf227 * fixed is_equal for proc -> procvar which didn't check the
callconvention and type anymore since the splitting of procoptions
1999-10-01 10:04:07 +00:00
peter
49fcd8aceb * forward type declaration rewritten 1999-10-01 08:02:45 +00:00
peter
e838769af8 * fixed object field parsing 1999-10-01 07:59:20 +00:00
Jonas Maebe
47b0fcf922 * fixed small efficiency which caused some missed optimizations (saves 1
assembler instruction on the whole compiler/RTL source tree! :)
1999-09-30 14:43:13 +00:00
Jonas Maebe
167f8d654f * fixes from daopt386.pas integrated 1999-09-29 13:50:34 +00:00
Jonas Maebe
e62d58ea51 * writing to a position in an array now only destroys registers
containing a reference pointing somewhere in that array (since my last
    fix, it behaved like a write to a pointer location)
1999-09-29 13:49:53 +00:00
florian
796234f596 * fixed bug #292 from bugs directory 1999-09-29 11:46:18 +00:00
peter
4e9c029777 * reinserted 1999-09-28 22:40:12 +00:00
florian
1bad993700 * fixed bug #608 1999-09-28 21:07:53 +00:00
florian
ed7dd22b82 * fixed bug #610
+ added $D- for TP in symtable.pas else it can't be compiled anymore
    (too much symbols :()
1999-09-28 20:48:23 +00:00
florian
f050faa02b * bug #617 fixed 1999-09-28 19:48:45 +00:00
florian
9f62eb480b * the maybe_push fix of Pierre wasn't 100%, the tree parameter
must contain a valid location (which is saved if necessary)
1999-09-28 19:43:45 +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
peter
6b1ab5eb31 * procinfo is now a pointer
* support for result setting in sub procedure
1999-09-27 23:44:46 +00:00
peter
eb72952214 * fixed macro within macro endless-loop 1999-09-27 23:40:10 +00:00
peter
1936476701 * bracket support for macro define 1999-09-27 23:38:17 +00:00
peter
e45b7754be * fixed push/restore bug in div/mod 1999-09-27 23:37:26 +00:00
peter
1664cb06a1 * fixed -al with macro's 1999-09-27 23:36:33 +00:00
peter
0f8f8e8ff4 * fix for pointer reading in const with @type.method 1999-09-27 11:59:42 +00:00
peter
2687d75c38 + constant pointer support which can happend with typecasting like
const p=pointer(1)
  * better procvar parsing in typed consts
1999-09-26 21:30:15 +00:00
peter
dc7dcdd2a6 * short jmp with alignment problems fixed 1999-09-26 21:13:40 +00:00
florian
d6c22004f4 * exception patch of Romio nevertheless the excpetion handling
needs some corections regarding register saving
  * gettempansistring is again a procedure
1999-09-26 13:26:01 +00:00
peter
3c1d12b5c4 * fixed temp allocation for short->ansi 1999-09-23 21:20:37 +00:00
florian
00b063c621 * fixed 1/s problem from mailing list 1999-09-21 20:53:21 +00:00
Jonas Maebe
552b86f85b * fixed bug in destroyrefs (indexes are now handled as pointers) 1999-09-21 15:46:58 +00:00
peter
71f28ed588 * cs_create_smart instead of cs_smartlink
* -CX is create smartlink
  * -CD is create dynamic, but does nothing atm.
1999-09-20 16:38:51 +00:00
peter
bc62d96930 * restored old alignment, saves 40k on ppc386 1999-09-20 16:35:43 +00:00
florian
b8efed648c * fixed calls to procedures with manglednames=255 chars
(taking the address of such a procedure would still cause a problem!)
1999-09-19 20:55:11 +00:00
peter
7f63615b43 * @procvar fixes for tp mode
* @<id>:= gives now an error
1999-09-17 17:14:02 +00:00
florian
a0badc3a30 * initial revision 1999-09-17 09:59:19 +00:00
peter
1512794c0f * removed uses globals 1999-09-17 09:17:49 +00:00
peter
5db2ac22e5 * ppu header writting now uses currentppuversion 1999-09-17 09:14:56 +00:00
florian
fbbf8a505c * m68k compiler is again compilable (only gas writer, no assembler reader) 1999-09-16 23:05:51 +00:00
pierre
40777cd66e + warning if truncate unit name found 1999-09-16 14:18:12 +00:00
peter
870895b72b * better error checking 1999-09-16 13:41:37 +00:00
peter
956eb97743 * arrayconstructor 2 set conversion is now called always in the
beginning of firstadd
1999-09-16 13:39:14 +00:00
peter
64dcafcf80 * updated 1999-09-16 13:35:56 +00:00
pierre
fc0d67a752 + error if PPU modulename is different from what is searched
(8+3 limitations!)
  + cond ORDERSOURCES to allow recompilation of FP
    if symppu.inc is changed (need PPUversion change!)
1999-09-16 13:27:08 +00:00
pierre
910372616a * typo correction 1999-09-16 11:34:44 +00:00
pierre
a9b15a7344 * firstexit must now set procinfo.funcret_is_valid 1999-09-16 10:44:30 +00:00
pierre
84507b72ad + old_compiled_module to avoid wrong file info when load PPU files 1999-09-16 08:02:39 +00:00
pierre
b184fc0d75 + compiled_module to avoid wrong file info when load PPU files 1999-09-16 08:00:50 +00:00
pierre
beb97ee1d5 + problems with unit names longer than 8 letters 1999-09-16 07:59:32 +00:00
pierre
b5f43cf97b + RESULT pseudo var added in GDB debug info 1999-09-16 07:58:14 +00:00
pierre
1ef3c84bb8 * double del_reference removed 1999-09-16 07:56:46 +00:00
pierre
e4d44f4281 * BuildSourceList allways called for dependency in FP 1999-09-16 07:54:48 +00:00
pierre
cac8e59f0f * FLDPI must increment fpuvaroffset 1999-09-16 07:52:37 +00:00
florian
863df30860 + rtti is now automatically generated for published classes, i.e.
they are handled like an implicit property
1999-09-15 22:09:15 +00:00
florian
1c638f2952 * small fix to operator overloading when in MMX mode
+ the compiler uses now fldz and fld1 if possible
  + some fixes to floating point registers
  + some math. functions (arctan, ln, sin, cos, sqrt, sqr, pi) are now inlined
  * .... ???
1999-09-15 20:35:37 +00:00
daniel
2d925677e5 + Dw switch now does something. 1999-09-15 20:24:56 +00:00
florian
134030a529 * only small updates to work with the current compiler 1999-09-14 11:16:09 +00:00
florian
e73862f10d * per default a property is stored, fixed 1999-09-14 11:09:08 +00:00
florian
78977be752 * finally!? fixed
with <function with result in temp> do
    My last and also Peter's fix before were wrong :(
1999-09-14 07:59:46 +00:00
peter
0308dbcbfa * fixed crashes under plain dos 1999-09-13 22:56:17 +00:00
florian
c549646c95 * hopefully an error in Peter's previous commit fixed 1999-09-13 20:49:41 +00:00
peter
8a941c2568 * typo in previous commit open_array -> chararray :( 1999-09-13 16:28:05 +00:00
peter
1163717044 * fix for jmps to be always near
* string writing fixed
1999-09-13 16:27:24 +00:00
peter
8a6774104d * fix crash with empty object as childs 1999-09-13 16:26:32 +00:00
peter
0004218ade * remvoed unused var 1999-09-13 16:23:42 +00:00
florian
e8f6d4e836 * fixed a crash under Linux. Why doesn't have the damned Windows DPMI nil pointer
protection???
1999-09-12 21:35:38 +00:00
florian
6bbd06b90c * tnamedindexobject._name should be never accessed direct! Use the
function name instead
1999-09-12 15:45:11 +00:00
florian
c3b3c19887 + implemented creation of methodname/address tables 1999-09-12 14:50:50 +00:00
florian
02c2611b20 * bugs 593 and 607 fixed
* some other potential bugs with array constructors fixed
  * for classes compiled in $M+ and it's childs, the default access method
    is now published
  * fixed copyright message (it is now 1993-99)
1999-09-12 08:48:03 +00:00
florian
35eef74308 * bug fix for @tobject.method, fixes bug #557, 605 and 606 1999-09-11 19:47:26 +00:00
florian
6165d59dfd * bug #603 fixed 1999-09-11 11:23:58 +00:00
florian
a42799b4f2 * fix of my previous commit, make cycle was broken 1999-09-11 11:10:39 +00:00
florian
1609dde2ca * fixed bug #596
* fixed some problems with procedure variables and procedures of object,
    especially in TP mode. Procedure of object doesn't apply only to classes,
    it is also allowed for objects !!
1999-09-11 09:08:31 +00:00
florian
4c2361303c * some more fixes for stored properties 1999-09-10 20:57:33 +00:00
florian
a9d8bfa1f7 * some bug fixes (e.g. must_be_valid and procinfo.funcret_is_valid)
* most things for stored properties fixed
1999-09-10 18:48:00 +00:00
peter
9ef54daf28 * fixed with <calln> do
* fixed finalize/initialize call for new/dispose
1999-09-10 15:42:50 +00:00
peter
96bd939047 * added symbol_end 1999-09-10 15:41:18 +00:00
peter
40291ee626 * fixed array check for operators, becuase array can also be a set 1999-09-10 15:40:46 +00:00
michael
118a99513d * Stored specifier for properties is now correctly parsed 1999-09-08 21:06:06 +00:00
peter
dd0d54cdef * added pointer and asm field axx 1999-09-08 16:07:21 +00:00
peter
be49731850 * pointer add/sub is now as expected and the same results as inc/dec 1999-09-08 16:05:29 +00:00
peter
05f2be0455 * better support for object fields and more error checks for
field accesses which create buggy code
1999-09-08 16:04:01 +00:00
peter
91962591f3 * tokendat compiles for tp
* tokens.dat supplied by default
1999-09-08 16:02:03 +00:00
Jonas Maebe
d8cce3f25a * some small changes so the new optimizer is again compilable 1999-09-08 15:05:43 +00:00
Jonas Maebe
28ddb689cb * some small changes so the noew optimizer is again compilable 1999-09-08 15:01:29 +00:00
peter
d2fd1ea874 * fixed bug #248 1999-09-08 08:05:44 +00:00
pierre
79f1833059 * runerror => do_halt 1999-09-07 15:22:20 +00:00
pierre
7439aa4828 * use do_internalerror insetead of runerror 1999-09-07 15:11:00 +00:00
pierre
a5c2aa5df8 * use do_halt instead of halt 1999-09-07 15:10:04 +00:00
pierre
1540c674d3 * runerror => do_internalerror 1999-09-07 15:08:51 +00:00
pierre
9d5205f1e9 * avoid some infinite recursions 1999-09-07 15:07:49 +00:00
pierre
eca64b4ab6 * use do_halt instead of runerror 1999-09-07 15:05:19 +00:00
pierre
aaba6f160a * powerpc default was alpha !! 1999-09-07 15:02:41 +00:00
pierre
ee98742add * elem in set_type did not work yet 1999-09-07 15:01:33 +00:00
pierre
c528cf639f * bugfix for 237 and 244 1999-09-07 14:59:40 +00:00
Jonas Maebe
88306ed3f3 * framepointer cannot be changed to esp for methods 1999-09-07 14:12:35 +00:00
pierre
b72dcb6d51 * arraytokeninfo type set to ttokenarray 1999-09-07 14:06:49 +00:00
pierre
f5d21809d7 * halt removed in do_lowhigh 1999-09-07 14:05:11 +00:00
pierre
2e65e6a618 + added do_halt procedure 1999-09-07 14:03:48 +00:00
peter
6f3c128959 * better OFFSET support for reference reading 1999-09-07 13:03:10 +00:00
peter
7fd914d24c * @(<x>) support 1999-09-07 08:01:20 +00:00
peter
ea753c5807 * reload esi in except block to allow virtual methods 1999-09-07 07:56:37 +00:00
peter
2c94850f4c * small array push to open array fixed, open array always needs addr
pushing
1999-09-07 07:54:23 +00:00
peter
f89f09413b * > < >= <= support for boolean
* boolean constants are now calculated like integer constants
1999-09-07 07:52:19 +00:00
peter
453773ecb2 * TYPE support 1999-09-07 07:45:29 +00:00
florian
ac20c15ef4 + fld reg;fxxx to fxxxr reg optimization 1999-09-05 14:27:19 +00:00
Jonas Maebe
9793c4eee9 * fixed typo's in -darithopt 1999-09-05 12:37:50 +00:00
florian
96dd7c82fa * bug #580 fixed 1999-09-04 20:50:08 +00:00
florian
f7af47f31f * bug #577 fixed 1999-09-04 20:29:11 +00:00
Jonas Maebe
56ddb9a0af + implemented most necessary methods 1999-09-03 13:15:47 +00:00
Jonas Maebe
f4180329fc + implemented some parameter passing methods, but they require\n some more helper routines\n * fix for loading symbol addresses (still needs to be done in a_loadaddress)\n * several changes to the way conditional branches are handled 1999-09-03 13:14:11 +00:00
Jonas Maebe
818885454f * several changes to the way conditional branches are handled\n * some typos fixed 1999-09-03 13:11:59 +00:00
Jonas Maebe
3086a9f355 * condition is now zeroed using fillchar\n because on powerpc it's a record now 1999-09-03 13:10:11 +00:00
Jonas Maebe
6be94d5604 * fixed typo regarding scratchregs pointer 1999-09-03 13:09:09 +00:00
Jonas Maebe
4abc13fd78 * defined some necessary virtual helper methods 1999-09-03 13:08:36 +00:00
pierre
781117b288 * message about conditionals changed to Hint 1999-09-03 10:54:22 +00:00
peter
0b396c0466 * $IFNDEF is 7 chars and not 6 chars 1999-09-03 10:02:48 +00:00
peter
6b25740f01 * included the 1.60 version of Pierre which was lost ! 1999-09-03 10:00:49 +00:00
peter
7ad9983cb7 * reading of search paths fixed to work as expected 1999-09-03 09:31:22 +00:00
pierre
29bdd631a1 * tokens.dat only used for TP, and also removed from
compiler dependencies
1999-09-03 08:37:34 +00:00
daniel
1777e0c901 * Could not compile with TP, some arrays moved to heap
* NOAG386BIN default for TP
  * AG386* files were not compatible with TP, fixed.
1999-09-02 18:47:41 +00:00
florian
63ceb87e8f * problems with -Or fixed: tdef.isfpuregable was wrong! 1999-09-02 17:07:38 +00:00
peter
bd55afa666 * fixed double dispose of propsymlist 1999-09-02 09:23:51 +00:00
peter
037319700d * moved parsing interface/implementation to -vu 1999-09-01 22:18:37 +00:00
peter
678aa200f1 * fixed crash with assigned() 1999-09-01 22:08:58 +00:00
peter
e767ef9897 * turn off stripping if profiling or debugging 1999-09-01 22:07:20 +00:00
daniel
6d332cfc77 * Vertalingsfouten verbeterd. 1999-09-01 19:08:20 +00:00
florian
860747346f * fixed writing of class rtti: vmt offset were written wrong 1999-09-01 13:44:56 +00:00
peter
c60bf19553 * update for new push_lea_loc 1999-09-01 09:42:13 +00:00
peter
4a9bbef37a * removed warning 1999-09-01 09:37:14 +00:00
peter
8e5c13cf47 * fixed temp allocation for arrayconstructor 1999-09-01 09:26:21 +00:00
pierre
72507a8397 + tmacrosym.is_used set 1999-08-31 15:55:45 +00:00
pierre
5b38d71a12 * in_second_compile cleaned up, in_compile and in_second_load added 1999-08-31 15:51:10 +00:00
pierre
5536344e9f + startup conditionnals stored in PPU file for debug info 1999-08-31 15:47:56 +00:00
pierre
6a5ee6b933 * do_crc must be false for all browser stuff
+ tmacrosym defined_at_startup set in def_macro and set_macro
1999-08-31 15:46:21 +00:00
pierre
f2f1fed583 + tmacrosym is_used and defined_at_startup boolean fields added 1999-08-31 15:42:24 +00:00
pierre
c2abde1296 * tempclosing of ppufiles under dos was wrong 1999-08-30 16:21:40 +00:00
pierre
20d1fb52b6 * problem with maybe_push/restore solved hopefully 1999-08-30 12:00:44 +00:00
peter
0274f3a08b * fixed crash in psub
* ansistringcompare fixed
  * support for #$0b8
1999-08-30 10:17:56 +00:00
pierre
6c8bdc4351 * last change undone because cycle was broken 1999-08-30 09:41:31 +00:00
peter
61bb479584 * fixed crash in restore 1999-08-28 17:48:34 +00:00
peter
c71963e885 * resources are working correct 1999-08-28 17:46:10 +00:00
florian
656d4330cd * bug #519 fixed 1999-08-28 15:34:16 +00:00
michael
76f28920e9 * Fixed small bug: next field in resourcelist was not initialized 1999-08-27 15:55:36 +00:00
pierre
55f6e70490 * double checksum problem solved 1999-08-27 14:52:56 +00:00
peter
e54801a2fe * fixed crash with typedconst array 1999-08-27 14:37:50 +00:00
pierre
71829524a2 + define SHORT_ON_FILE_HANDLES for DOS targets
causes tempclose of ppufiles
  + double_checksum code released
    (you can try with -dDONT_USE_DOUBLE_CHECKSUM to see the difference)
    this allow second compilation of compiler without any
    unit recompilation !!!!
1999-08-27 10:57:56 +00:00
pierre
92801b8a35 * some code adapted to CRC_only computation
+ main file is search in unitspathlist
    and triggers do_compile flag
  * some changes to get identical CRC vaules after
    interface and after implementation
1999-08-27 10:54:45 +00:00
pierre
7288d7bd89 + simplify_ppu code added :
sets all registers used at PPU writing
  * tprocdef mangledname writing is CRC relevant
1999-08-27 10:52:19 +00:00
pierre
3d12f8119a + tppufile.tempclose and tempopen added
* some changes so that nothing is writtedn to disk while
    calculating CRC only
1999-08-27 10:48:40 +00:00
pierre
03263b9285 + some EXTTEMPREGDEBUG code added 1999-08-27 10:46:26 +00:00
pierre
d585f0544f options -Ca sets simply_ppu to true 1999-08-27 10:45:00 +00:00
pierre
01c6ff7169 + interface CRC check with ifdef Test_double_checksum added 1999-08-27 10:43:20 +00:00
pierre
154386ac6a * pi_is_global was missing for global methods
+ code to restore overloaded list order
    (necessary to get same CRC values after interface and after
    implementation)
1999-08-27 10:41:46 +00:00
pierre
e1744c9db6 * uf_local_browser made problem when computing interface CRC 1999-08-27 10:39:24 +00:00
pierre
088f2ba6cc + EXTTEMPREGDEBUG code added 1999-08-27 10:38:31 +00:00
michael
ea0a5097c8 + Inittables should not contain fields which are classes 1999-08-27 10:24:34 +00:00
peter
2f95239feb * fixed crash when childof was nil 1999-08-26 21:17:39 +00:00
peter
cbd7de9e6f * write date of the compiler into the executable 1999-08-26 21:16:21 +00:00
peter
1ae7f425c5 * array elementsize of 0 doesn't crash anymore 1999-08-26 21:13:58 +00:00
peter
5e26e5d0c9 * better error recovery for case 1999-08-26 21:10:08 +00:00
michael
dc3cc78caa + Hopefuly last fixes for resourcestrings 1999-08-26 20:24:37 +00:00
Jonas Maebe
acc55a83c7 * first implementation of concatcopy (requires 4 scratch regs) 1999-08-26 14:53:41 +00:00
Jonas Maebe
6531f55008 * added segprefix field for i386 in tainstruction object 1999-08-26 14:52:59 +00:00
Jonas Maebe
fc6b6505fd * changed get_scratch_reg so it actually uses the\n scratch_reg_array_pointer 1999-08-26 14:51:54 +00:00
Jonas Maebe
bb974dc8aa * fixed small type in TP conditional 1999-08-26 14:50:52 +00:00
pierre
0e54531413 * remove trailing space in cfg files 1999-08-25 22:51:00 +00:00
peter
da93f32ae0 * resources are working again 1999-08-25 16:41:04 +00:00
peter
01fc4505c9 * symbol name is now written using separate asmwrite() calls to overcome
> 255 char strings
1999-08-25 16:03:46 +00:00
Jonas Maebe
5fc1435036 * changed pai386, paippc and paiapha (same for tai*) to paicpu (taicpu) 1999-08-25 11:59:32 +00:00
michael
9f61960ca1 * more resourcestring changes 1999-08-24 22:38:51 +00:00
peter
06a845c5e8 * MEMDEBUG to see the sizes of asmlist,asmsymbols,symtables 1999-08-24 13:13:57 +00:00
michael
85ff3e15db + changes for resourcestrings 1999-08-24 12:01:32 +00:00
pierre
87847fac70 * wrong testregisters32 placement corrected 1999-08-24 09:07:04 +00:00
pierre
2fe4c8b727 * hnewn location corrected 1999-08-23 23:49:21 +00:00
pierre
4fcd7adf4a * del_reference moved to respect registers32 in secondin 1999-08-23 23:46:42 +00:00
pierre
e7d56c97a8 * setelementn registers32 corrected 1999-08-23 23:44:05 +00:00
pierre
cf18a314d1 * hnewn reg allocation corrected 1999-08-23 23:42:52 +00:00
pierre
57c239961e * for reg allocation corrected 1999-08-23 23:41:45 +00:00
pierre
71bcdce000 * in_inc_x register allocation corrected 1999-08-23 23:41:04 +00:00
pierre
a7bc2dfb17 + TEMPREGDEBUG code added 1999-08-23 23:38:18 +00:00
pierre
1c9e86eb05 * firstnot register counting error corrected 1999-08-23 23:37:01 +00:00
pierre
f3c414e84a * one more register needed if hnewn with CREGISTER 1999-08-23 23:34:15 +00:00
pierre
0fb02e9155 * double del_location removed in add_set 1999-08-23 23:31:00 +00:00
pierre
009aaad4a9 + dummy InitCpu/DoneCpu 1999-08-23 23:27:54 +00:00
pierre
409b092c87 + TEMPREGDEBUG code, test of register allocation
if a tree uses more than registers32 regs then
    internalerror(10) is issued
  + EXTTEMPREGDEBUG will also give internalerror(10) if
    a same register is freed twice (happens in several part
    of current compiler like addn for strings and sets)
1999-08-23 23:25:58 +00:00
Jonas Maebe
1ec81566cc + checksequence (processor independent)\n + processor independent part of docse 1999-08-23 14:41:12 +00:00
michael
ec590068e2 * resourcestrings ams list needs unitname prepended 1999-08-23 11:48:23 +00:00
michael
d57e16aec2 * Hopefully final attempt at resourcestrings 1999-08-23 11:45:39 +00:00
Jonas Maebe
1ef759bc9a * fixed <= and >= for sets 1999-08-23 10:35:13 +00:00
Jonas Maebe
618547adf0 * fixed pop/push optmization 1999-08-23 10:20:46 +00:00
michael
f0fa79dad2 + Patch from pierre 1999-08-20 10:17:01 +00:00
michael
5f30aacb93 + Fixed ifdef NOAG386BIN bug 1999-08-19 20:05:09 +00:00
pierre
82999520e4 + faillabel for _FAIL 1999-08-19 13:10:18 +00:00
pierre
63608b6dbb * emit_??? used 1999-08-19 13:08:43 +00:00
pierre
1f1b9e7883 * _FAIL will now free memory correctly
and reset VMT field on static instances
    (not yet tested for classes, is it allowed ?)
  + emit_.... all variant defined here to avoid tons of
    exprasmlist^.concat(new(pai386,...) in cg386***
1999-08-19 13:06:45 +00:00
pierre
1c8a7a1924 + label faillabel added for _FAIL support 1999-08-19 13:02:08 +00:00
florian
2359c7c013 + initial revision 1999-08-18 19:29:39 +00:00
florian
c512d38256 + implemented initilizing of data for the new code generator
so it should compile now simple programs
1999-08-18 17:05:53 +00:00
Jonas Maebe
56524f33df + compilable!
+ dataflow analyzer finished
  + start of CSE units
  + aoptbase which contains a base object for all optimizer objects
  * some constants and type definitions moved around to avoid circular
    dependencies
  * moved some methods from base objects to specialized objects because
    they're not used anywhere else
1999-08-18 14:32:20 +00:00
Jonas Maebe
cd3160e0c2 + some constants for the new optimizer 1999-08-18 13:26:23 +00:00
Jonas Maebe
8dc154ce24 * minor fixes regarding the reading of operands 1999-08-18 13:25:54 +00:00
pierre
d04add7c9f * esp loading corrected 1999-08-18 11:35:59 +00:00
michael
94d0da0639 RTTI writing patch 1999-08-17 13:58:56 +00:00
peter
19c48bf75b * arrayconstructor -> arrayofconst fixed when arraycosntructor was not
variant.
1999-08-17 13:26:06 +00:00
peter
8e653af606 * arrayconstructor -> openarray type conversions for element types 1999-08-16 23:23:38 +00:00
peter
da93a8740e * range check for array of const 1999-08-16 23:20:28 +00:00
peter
63499d5cc5 * fixes from gabor 1999-08-16 18:25:49 +00:00
peter
f225a5f0bd * reset resourcestringlist in newmodule. 1999-08-16 18:23:56 +00:00
pierre
576a2e4f42 * error in stabs for tclassrefdef corrected 1999-08-16 16:26:04 +00:00