Commit Graph

149 Commits

Author SHA1 Message Date
peter
793b28882f * classes vmt changed to only positive addresses
* sharedlib creation is working
1999-08-09 22:19:46 +00:00
peter
f7dd7ed1ed * fixed pushing of self with methodpointer 1999-08-09 10:37:55 +00:00
florian
e53aceb9be + floating point register variables !!
* pairegalloc is now generated for register variables
1999-08-04 13:45:17 +00:00
florian
ca53eee67e * renamed i386asm and i386base to cpuasm and cpubase 1999-08-04 00:22:34 +00:00
peter
ed8eb13d59 * moved bitmask constants to sets
* some other type/const renamings
1999-08-03 22:02:29 +00:00
florian
62cb5453d3 * a lot bug fixes:
- po_external isn't any longer necessary for procedure compatibility
     - m_tp_procvar is in -Sd now available
     - error messages of procedure variables improved
     - return values with init./finalization fixed
     - data types with init./finalization aren't any longer allowed in variant
       record
1999-07-06 21:48:09 +00:00
peter
1f99e8e497 * merged 1999-06-22 13:31:24 +00:00
peter
eca8cbb3be * merged 1999-06-16 09:32:45 +00:00
peter
03e6ec96c5 * merged 1999-06-14 17:47:45 +00:00
florian
2ad3da43e6 * make cycle fixed i.e. compilation with 0.99.10
* some fixes for qword
  * start of register calling conventions
1999-06-02 10:11:39 +00:00
pierre
71e0799f74 * forgotten emitcall change in conditionnal 1999-05-28 15:59:46 +00:00
peter
164fba5879 * removed ungettempoftype 1999-05-28 11:00:49 +00:00
peter
0b272f13c7 * removed oldasm
* plabel -> pasmlabel
  * -a switches to source writing automaticly
  * assembler readers OOPed
  * asmsymbol automaticly external
  * jumptables and other label fixes for asm readers
1999-05-27 19:43:55 +00:00
florian
6b33f4d87d * better error recovering in typed constants
* some problems with arrays of const fixed, some problems
    due my previous
     - the location type of array constructor is now LOC_MEM
     - the pushing of high fixed
     - parameter copying fixed
     - zero temp. allocation removed
  * small problem in the assembler writers fixed:
    ref to nil wasn't written correctly
1999-05-23 18:41:55 +00:00
peter
bfed29ff8b * NEWLAB for label as symbol 1999-05-21 13:54:38 +00:00
pierre
1a3b65af0b * extedebug problem solved 1999-05-18 22:34:26 +00:00
florian
d7b52d0183 * fixed some bugs related to temp. ansistrings and functions results
which return records/objects/arrays which need init/final.
1999-05-18 21:58:22 +00:00
peter
e8bf496ae8 * containsself fixes
* checktypes()
1999-05-18 14:15:18 +00:00
peter
d4659125d9 * procedure of object and addrn fixes 1999-05-18 09:52:17 +00:00
peter
12313fbed8 * with temp vars now use a reference with a persistant temp instead
of setting datasize
1999-05-17 23:51:37 +00:00
florian
8706cd801f * new temporary ansistring handling 1999-05-17 21:56:57 +00:00
peter
611da2d24e * merged nasm compiler
* old asm moved to oldasm/
1999-05-01 13:23:57 +00:00
pierre
f0a468fdef * fix for ID 388 removing real from stack was wrong 1999-04-29 22:12:21 +00:00
pierre
d4486b584c * fix for TESTOBJEXT code 1999-04-25 22:33:19 +00:00
pierre
833f624fc4 + cdecl or stdcall push all args with longint size
*  tempansi stuff cleaned up
1999-04-19 09:45:46 +00:00
Jonas Maebe
246a653a5d * more regalloc fixes (still not complete) 1999-04-16 13:42:23 +00:00
pierre
45a7ff2aa8 * no add $0,%esp for cdecl functions without parameters 1999-04-16 10:26:56 +00:00
peter
370f15bcc4 * define to get ansistring returns in ref instead of reg 1999-04-09 08:41:48 +00:00
peter
2bfdf91c5c * assembler inlining working for ag386bin 1999-03-31 13:55:03 +00:00
peter
d0cb5a147a * fixed bugs 212,222,225,227,229,231,233 1999-03-24 23:16:42 +00:00
peter
c8f444b65f * ag386bin updates
+ coff writer
1999-02-25 21:02:16 +00:00
peter
bf9b5e3a54 * updates for ag386bin 1999-02-22 02:14:59 +00:00
pierre
f59803f7d2 * fix for normal method calls inside static methods :
WARNING there were both parser and codegen errors !!
    added static_call boolean to calln tree
1999-02-11 09:46:21 +00:00
florian
b73b83a01b + complex results for assembler functions, fixes bug0155 1999-02-09 15:45:46 +00:00
pierre
85e61ae63b * fix for bug0214
several problems where combined
   search_class_member did not set srsymtable
   => in do_member_read the call node got a wrong symtable
   in cg386cal the vmt was pushed twice without chacking if it exists
   now %esi is set to zero and pushed if not vmt
   (not very efficient but should work !)
1999-02-08 11:29:04 +00:00
florian
9b3fd7f5b6 + range checking for ansi- and widestrings
* made it compilable with TP
1999-02-04 10:49:39 +00:00
pierre
b186605bc4 * conditionnal code for extended check of virtual methods 1999-02-03 10:18:14 +00:00
florian
2ac877d04f * problem with calls to method pointers in methods fixed
- double ansistrings temp management removed
1999-02-02 23:52:32 +00:00
florian
491c20797c * class destructors fixed, class instances weren't disposed correctly 1999-02-02 11:04:36 +00:00
florian
02b4722695 * the reference in the result location of a function call wasn't resetted =>
problem with unallowed far pointer, is solved now
1999-01-28 23:56:44 +00:00
florian
ccd94e19cc * "procedure of object"-stuff fixed 1999-01-27 00:13:52 +00:00
peter
4517f917fd * fixed array of const
* generic platform independent high() support
1999-01-21 22:10:35 +00:00
pierre
0cfc4c8f6b * fix for constructor inside with statements 1999-01-21 16:40:51 +00:00
peter
000336a586 * released valuepara 1998-12-30 13:41:05 +00:00
florian
802fd8fb5c * memory leaks for ansistring type casts fixed 1998-12-22 13:10:56 +00:00
florian
d656d708b7 * ansistring memory leaks fixed 1998-12-19 00:23:40 +00:00
peter
1b369bb4bb + globtype,tokens,version unit splitted from globals 1998-12-11 00:02:37 +00:00
florian
467c0de643 * bug with p(const a : ansistring) fixed
* duplicate constant ansistrings were handled wrong, fixed
1998-12-10 14:39:29 +00:00
florian
4244dda54b + basic operations with int64/qord (compiler with -dint64)
+ rtti of enumerations extended: names are now written
1998-12-10 09:47:13 +00:00
florian
061be51016 * better code generation for classes which are passed as parameters to
subroutines
1998-12-06 13:12:44 +00:00
pierre
a1f1003555 * some range check bugs fixed (still not working !)
+ added DLL writing support for win32 (also accepts variables)
  + TempAnsi for code that could be used for Temporary ansi strings
    handling
1998-11-30 09:42:52 +00:00
peter
a41f61713d + open strings, $P switch support 1998-11-27 14:50:30 +00:00
peter
66f37e9d4a * fix for valuepara 1998-11-26 21:30:03 +00:00
peter
df89c828e5 * ansistring -> pchar fixed
* ansistring constants fixed
  * ansistring constants are now written once
1998-11-26 14:39:10 +00:00
peter
0cadc4f3c3 * VALUEPARA for tp7 compatible value parameters 1998-11-18 15:44:05 +00:00
peter
3df27389c0 * rename laod/copystring -> load/copyshortstring
* fixed int-bool cnv bug
  + char-ansistring conversion
1998-11-16 15:35:35 +00:00
florian
3bb3dc34ff * some stuff of Pavel implement (win32 dll creation)
* bug with ansistring function results fixed
1998-11-15 16:32:33 +00:00
pierre
274bce92b8 + added -Se in Makefile cvstest target
+ lexlevel cleanup
    normal_function_level main_program_level and unit_init_level defined
  * tins_cache grown to A_EMMS (gave range check error in asm readers)
    (test added in code !)
  * -Un option was wrong
  * _FAIL and _SELF only keyword inside
    constructors and methods respectively
1998-11-13 15:40:12 +00:00
pierre
920691ac0a * fix for first line of function break 1998-11-12 11:19:30 +00:00
peter
0353e61e9b * va_list -> array of const 1998-11-10 10:09:08 +00:00
peter
20188aa991 + va_list for printf support 1998-11-09 11:44:33 +00:00
pierre
6c1766feed * bug fix for IOCHECK inside a procedure with iocheck modifier
* removed the GPF for unexistant overloading
    (firstcall was called with procedinition=nil !)
  * changed typen to what Florian proposed
    gentypenode(p : pdef) sets the typenodetype field
    and resulttype is only set if inside bt_type block !
1998-10-21 15:12:49 +00:00
florian
d666ac848e + ansistring operator +
+ $h and string[n] for n>255 added
  * small problem with TP fixed
1998-10-21 08:39:56 +00:00
pierre
1a77339355 * several memory corruptions due to double freemem solved
=> never use p^.loc.location:=p^.left^.loc.location;
  + finally I added now by default
    that ra386dir translates global and unit symbols
  + added a first field in tsymtable and
    a nextsym field in tsym
    (this allows to obtain ordered type info for
    records and objects in gdb !)
1998-10-20 08:06:37 +00:00
peter
acf9818648 + target_os.stackalignment
+ stack can be aligned at 2 or 4 byte boundaries
1998-10-16 08:51:45 +00:00
pierre
7621dc0b56 * several memory leaks fixed 1998-10-09 08:56:21 +00:00
pierre
3048845e68 * some memory leaks fixed (thanks to Peter for heaptrc !) 1998-10-06 17:16:31 +00:00
peter
2b44a66b5a * fixed value openarray
* ungettemp of arrayconstruct
1998-10-01 09:22:52 +00:00
pierre
a12d8c9417 * changed all length(p^.value_str^) into str_length(p)
to get it work with and without ansistrings
  * changed sourcefiles field of tmodule to a pointer
1998-09-28 16:57:09 +00:00
florian
39584dd9f6 * small problems with DOM and excpetions fixed (code generation
of raise was wrong and self was sometimes destroyed :()
1998-09-26 15:03:02 +00:00
florian
16af381be8 * problems when calling class methods fixed 1998-09-25 00:04:00 +00:00
peter
1b83196296 * some better support for openarray 1998-09-24 14:27:37 +00:00
peter
692155686a * rewritten isconvertable to use case
* array of .. and single variable are compatible
1998-09-24 09:02:13 +00:00
pierre
d11f7636be + added vmt_offset in tobjectdef.write for fututre use
(first steps to have objects without vmt if no virtual !!)
  + added fpu_used field for tabstractprocdef  :
    sets this level to 2 if the functions return with value in FPU
    (is then set to correct value at parsing of implementation)
    THIS MIGHT refuse some code with FPU expression too complex
    that were accepted before and even in some cases
    that don't overflow in fact
    ( like if f : float; is a forward that finally in implementation
     only uses one fpu register !!)
    Nevertheless I think that it will improve security on
    FPU operations !!
  * most other changes only for UseBrowser code
    (added symtable references for record and objects)
    local switch for refs to args and local of each function
    (static symtable still missing)
    UseBrowser still not stable and probably broken by
    the definition hash array !!
1998-09-21 08:45:05 +00:00
peter
634686534e * merged fixes 1998-09-20 12:26:35 +00:00
peter
c72691c843 + pass_2 for cg386
* Message() -> CGMessage() for pass_1/pass_2
1998-09-17 09:42:09 +00:00
peter
181d4769a2 * all internal RTL functions start with FPC_ 1998-09-14 10:43:44 +00:00
peter
58c2d999f0 * updated some error messages 1998-09-04 08:41:36 +00:00
peter
1ce8f6f825 * use pdef^.size instead of orddef^.typ 1998-09-01 12:47:57 +00:00
peter
0eb6dd34aa * secondinline moved to cg386inl 1998-08-31 12:22:14 +00:00
peter
886c7ec88f * fixed error 10 with succ() and pref() 1998-08-31 08:52:03 +00:00
peter
7c8e445400 * fixed 'with object do' bug 1998-08-20 21:36:38 +00:00
Jonas Maebe
f2da32cd91 * changed optimizer switches + cleanup of DestroyRefs in daopt386.pas 1998-08-19 16:07:36 +00:00
pierre
2222aab027 * small warning position bug fixed
* support_mmx switches splitting was missing
  * rhide error and warning output corrected
1998-08-18 09:24:35 +00:00
peter
1a6ee8d4f3 * fixed procedure<>procedure construct 1998-08-13 11:00:09 +00:00
peter
d5e1886c8c * fixed sizeof(array of char) 1998-08-11 14:05:32 +00:00
peter
85c8a88cbe + localswitches, moduleswitches, globalswitches splitting 1998-08-10 14:49:33 +00:00
florian
a1f903d4b1 * final implemenation of exception support, maybe it needs
some fixes :)
1998-07-30 13:30:31 +00:00
florian
9b4225f26f * internal error 10 together with array access fixed. I hope
that's the final fix.
1998-07-24 22:16:52 +00:00
florian
206549900f * some ansi/wide/longstring support fixed:
o parameter passing
     o returning as result from functions
1998-07-18 22:54:23 +00:00
peter
9330b0e700 * packrecords 4 works
* word aligning of parameters
1998-07-07 17:40:37 +00:00
michael
9c5e9c2189 Added length checking for string reading 1998-07-06 15:51:15 +00:00
michael
9bb3b87cb8 + Added calls for reading/writing ansistrings 1998-07-06 14:19:51 +00:00
peter
4d36bc1cc3 + better writeln/readln handling, now 100% like tp7 1998-07-01 15:28:48 +00:00
peter
4ac8e5d18f + internal inc/dec 1998-06-25 14:04:17 +00:00
florian
028721c4de * first version of rtti support 1998-06-25 08:48:04 +00:00
pierre
5ad339b3d8 + added procedure directive parsing for procvars
(accepted are popstack cdecl and pascal)
  + added C vars with the following syntax
    var C calias 'true_c_name';(can be followed by external)
    reason is that you must add the Cprefix

    which is target dependent
1998-06-09 16:01:33 +00:00
pierre
0e8616ed1f + temporary variables now in temp_gen.pas unit
because it is processor independent
  * mppc68k.bat modified to undefine i386 and support_mmx
    (which are defaults for i386)
1998-06-08 13:13:28 +00:00
peter
6f4cfe38eb * splitted cgi386 1998-06-05 17:44:10 +00:00