Commit Graph

269 Commits

Author SHA1 Message Date
florian
c68ea95074 + syscall directive support for MorphOS added 2004-04-28 15:19:03 +00:00
peter
f80bea52e9 * reset current_module,current_procinfo so the destroy routines
can't access their info anymore, because that can be already
    destroyed
2004-03-16 16:20:49 +00:00
peter
ba9f4a0703 * packrecords fixed for settings from $PACKRECORDS
* default packrecords now uses value 0 and uses info from aligment
    structure only, initpackrecords removed
2004-03-14 20:08:37 +00:00
florian
61f15e4ec4 * make cycle fixed
+ pic support for darwin
  + support of importing vars from shared libs on darwin implemented
2004-03-02 17:32:12 +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
8caaa7740d * more record alignment fixes 2004-01-28 22:16:31 +00:00
peter
526cffbaad * set ms_compiled after the program/unit is parsed
* check for ms_compiled before checking preproc matches
2003-10-29 21:02:51 +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
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
0dceec9a64 * current_procdef removed, use current_procinfo.procdef instead 2003-06-13 21:19:30 +00:00
peter
ab66b66673 * add inputfile prefix to ppas/link.res 2003-06-12 16:41:51 +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
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
6720314fc5 * reset aktfilepos when setting new module for compile 2003-04-26 00:30:52 +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
bbf8bddbb4 * unit loading changed to first register units and load them
afterwards. This is needed to support uses xxx in yyy correctly
  * unit dependency check fixed
2002-12-29 14:57:50 +00:00
peter
680c90c65d * fixed crash when old_compiled_module was nil 2002-12-24 23:32:19 +00:00
mazen
301bf08921 * $UNITPATH directive is now working 2002-11-20 12:36:23 +00:00
peter
e08206f2dc * Place old data in compile() in the heap to save stack 2002-10-07 19:29:52 +00:00
peter
37bb42694b * fixed crash when current_module becomes nil 2002-09-05 19:27:05 +00:00
peter
197899d70a * more current_scanner fixes 2002-08-18 19:58:28 +00:00
peter
87088e16fe * fixed possible crashes with current_scanner 2002-08-16 15:31:08 +00:00
peter
8082f79ea6 * first things tai,tnode storing in ppu 2002-08-15 19:10:35 +00:00
peter
724ece4715 * tscannerfile is now destroyed in tmodule.reset and current_scanner
is updated accordingly. This removes all the loading and saving of
    the old scanner and the invalid flag marking
2002-08-12 16:46:04 +00:00
carl
9da171faf2 + stab register indexes for powerpc (moved from gdb to cpubase)
+ tprocessor enumeration moved to cpuinfo
  + linker in target_info is now a class
  * many many updates for m68k (will soon start to compile)
  - removed some ifdef or correct them for correct cpu
2002-08-12 15:08:39 +00:00
peter
fb64d51f69 * TScannerFile.SetInvalid added that will also reset inputfile 2002-08-11 14:28:19 +00:00
peter
ac71268ce6 * saving of asmsymbols in ppu supported
* asmsymbollist global is removed and moved into a new class
    tasmlibrarydata that will hold the info of a .a file which
    corresponds with a single module. Added librarydata to tmodule
    to keep the library info stored for the module. In the future the
    objectfiles will also be stored to the tasmlibrarydata class
  * all getlabel/newasmsymbol and friends are moved to the new class
2002-08-11 13:24:10 +00:00
carl
1ef442f4bf - removed newcg define 2002-08-09 19:15:41 +00:00
florian
4f7b35be5b + source code page support 2002-07-20 17:11:48 +00:00
peter
4285e99853 * internal linker
* reorganized aasm layer
2002-07-01 18:46:20 +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
5ea6f2b824 * fixed memleaks when file can't be opened 2002-04-21 18:57:23 +00:00
carl
87aa88e9b7 + generic FPC_CHECKPOINTER
+ first parameter offset in stack now portable
* rename some constants
+ move some cpu stuff to other units
- remove unused constents
* fix stacksize for some targets
* fix generic size problems which depend now on EXTEND_SIZE constant
2002-04-20 21:32:23 +00:00
peter
70ff711f73 * mangledname rewrite, tprocdef.mangledname is now created dynamicly
in most cases and not written to the ppu
  * add mangeledname_prefix() routine to generate the prefix of
    manglednames depending on the current procedure, object and module
  * removed static procprefix since the mangledname is now build only
    on demand from tprocdef.mangledname
2002-04-19 15:46:01 +00:00
peter
86a3df0e9d * update target_asm according to outputformat 2002-01-29 19:43:11 +00:00
peter
d2e1952377 * procsym definition rewrite 2001-11-02 22:58:00 +00:00
peter
e37dbf904d * calling convention rewrite 2001-10-25 21:22:32 +00:00
peter
17d62feebe * $calling directive and -Cc commandline patch added
from Pavel Ozerski
2001-10-23 21:49:42 +00:00
Jonas Maebe
d8c104b25d * fixed goto/label/try bugs 2001-10-16 15:10:34 +00:00
florian
9746f4c2d6 * some cg reorganisation
* some PPC updates
2001-08-26 13:35:06 +00:00
peter
c4b84ce276 * m68k updates from v10 merged 2001-07-30 20:59:27 +00:00
peter
b10e754536 * alignmentinfo record added
* -Oa argument supports more alignment settings that can be specified
    per type: PROC,LOOP,VARMIN,VARMAX,CONSTMIN,CONSTMAX,RECORDMIN
    RECORDMAX,LOCALMIN,LOCALMAX. It is possible to set the mimimum
    required alignment and the maximum usefull alignment. The final
    alignment will be choosen per variable size dependent on these
    settings
2001-07-01 20:16:15 +00:00
peter
6e65cd0ee4 * support uses <unit> in <file> construction 2001-05-19 23:05:19 +00:00
peter
6c7708c1e0 * ppu object to class rewrite
* move ppu read and write stuff to fppu
2001-05-06 14:49:16 +00:00
peter
0c03535b5b * registration of targets and assemblers 2001-04-18 22:01:53 +00:00
peter
5677fbe1b4 * fixed crash in labelnode
* easier detection of goto and label in try blocks
2001-04-15 09:48:29 +00:00
peter
fdeadeed22 * scanner object to class 2001-04-13 18:08:36 +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
32b9cdb7cf + new tlinkedlist class (merge of old tstringqueue,tcontainer and
tlinkedlist objects)
2000-12-25 00:07:25 +00:00
peter
377e4c5927 * moved preprocessfile into a conditional 2000-12-24 12:24:38 +00:00
florian
b9796f6a7f * unused units removed from uses clause
* some changes for widestrings
2000-11-29 00:30:30 +00:00
peter
e0a874dc4f * some realname updates for messages 2000-11-12 22:17:46 +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
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
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
cdbe6a1fa3 + usedasmsymbollist to check and reset only the used symbols (merged) 2000-08-12 15:34:21 +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
e882145e88 * made resourcestrings OOP so it's easier to handle it per module 2000-06-01 19:09:56 +00:00
pierre
6b012c36f4 * New bunch of Gabor changes 2000-05-29 10:04:40 +00:00
pierre
e112b16a51 * fix localswitch problem if compiling objpas 2000-05-11 06:52:37 +00:00
peter
013cfb9bc4 * made overloaded_operators local per unit, but it still doesn't work
correct
2000-04-24 12:45:44 +00:00
pierre
c6a47280b9 * fixes a stabs problem for functions
+ includes a stabs local var for with statements
    the name is with in lowercase followed by an index
    for nested with.
  + Withdebuglist added because the stabs declarations of local
    var are postponed to end of function.
2000-02-18 20:53:14 +00:00
marco
c23e9edb97 * Basic structures for new sethandling implemented. 2000-02-14 20:58:43 +00:00
peter
4a4a24b6e8 * log truncated 2000-02-09 13:22:42 +00:00
florian
332c7a568f * CMOV support in optimizer (in define USECMOV)
+ start of support of exceptions in constructors
2000-01-23 21:29:14 +00:00
peter
6607475609 * fixed placing of .sl directories
* use -b again for base-file selection
  * fixed group writing for linux with smartlinking
2000-01-11 09:52:06 +00:00
peter
e525797c51 * updated copyright to 2000 2000-01-07 01:14:18 +00:00
florian
89ccc81c2b + added compiler switch $maxfpuregisters
+ fixed a small problem in secondvecn
2000-01-04 15:15:50 +00:00
peter
c5410eee5c * preprocessor support. But it fails on the caret in type blocks 1999-12-02 17:34:34 +00:00
pierre
ae7a04ea12 * defaultsymtablestack is now restored after parser.compile 1999-11-24 11:41:03 +00:00
pierre
b528749138 * Notes/Hints for local syms changed to
Set_varstate function
1999-11-18 15:34:44 +00:00
pierre
71f8768399 * some DBX work, still does not work 1999-11-09 23:48:47 +00:00
peter
0887060ff2 * truncated log to 20 revs 1999-11-06 14:34:16 +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
8b9633266b * new codegenerator compiles again 1999-10-12 21:20:41 +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
49fcd8aceb * forward type declaration rewritten 1999-10-01 08:02:45 +00:00
pierre
84507b72ad + old_compiled_module to avoid wrong file info when load PPU files 1999-09-16 08:02:39 +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
pierre
5b38d71a12 * in_second_compile cleaned up, in_compile and in_second_load added 1999-08-31 15:51:10 +00:00
michael
dc3cc78caa + Hopefuly last fixes for resourcestrings 1999-08-26 20:24:37 +00:00
Jonas Maebe
ace7ff6983 * all tokens now start with an underscore
* PowerPC compiles!!
1999-08-04 13:02:40 +00:00
florian
1cf1665d73 * the alpha compiler can be compiled now 1999-08-03 17:09:34 +00:00
florian
9fd7385c65 * some changes to compile the new code generator 1999-08-01 23:36:38 +00:00
michael
f7284c4549 + Improved resourcestring handling 1999-07-24 16:22:10 +00:00
peter
07bb58295b * alignment is now saved in the symtable
* C alignment added for records
  * PPU version increased to solve .12 <-> .13 probs
1999-07-23 16:05:18 +00:00
florian
35f636dea1 + resourcestring implemented
+ start of longstring support
1999-07-22 09:37:28 +00:00
pierre
9242829c25 * don't generate browser if errors during compilation 1999-06-15 13:23:48 +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
pierre
739eb6860c * double dispose of aktprocsym removed 1999-05-18 22:35:52 +00:00
peter
884c517b18 * release storenumber,double_checksum 1999-04-26 13:31:24 +00:00
peter
6a802e85d7 * released valintern
+ deffile is now removed when compiling is finished
  * ^( compiles now correct
  + static directive
  * shrd fixed
1999-03-26 00:05:26 +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
71107624d2 * reset c,pattern,orgpattern also at startup 1999-02-02 16:39:41 +00:00
pierre
f7732dfcee * give include file name on error 1999-01-27 13:05:41 +00:00
florian
90d0bea35a * first running version of the new code generator
* when compiling exceptions under Linux fixed
1999-01-23 23:29:31 +00:00
pierre
7ffa0f6ac0 + currently compiled file name added on errors 1999-01-22 12:19:30 +00:00
peter
f379498229 + BrowserLog for browser.log generation
+ BrowserCol for browser info in TCollections
  * released all other UseBrowser
1999-01-12 14:25:24 +00:00
peter
1b369bb4bb + globtype,tokens,version unit splitted from globals 1998-12-11 00:02:37 +00:00
peter
2d524e51a2 * fixed placing of ppas.sh and link.res when using -FE 1998-12-01 12:51:19 +00:00
peter
0353e61e9b * va_list -> array of const 1998-11-10 10:09:08 +00:00
pierre
1dab5a8cf0 * removed some erros after other errors (introduced by useexcept)
* stabs works again correctly (for how long !)
1998-10-28 18:26:12 +00:00
pierre
c4bc24c00b + added two level of longjump to
allow clean freeing of used memory on errors
1998-10-26 17:15:16 +00:00
peter
39dc89f39f * reset_gdb_info -> reset_global_def becuase it also resets rangenr ! 1998-10-16 08:50:02 +00:00
pierre
bf6369f1b5 * current_module old scanner tagged as invalid if unit is recompiled
+ added ppheap for better info on tracegetmem of heaptrc
    (adds line column and file index)
  * several memory leaks removed ith help of heaptrc !!
1998-10-08 17:17:07 +00:00
peter
47c808f95a * fixed memory leaks for do nothing source
* fixed unit interdependency
1998-10-08 13:48:40 +00:00
pierre
3048845e68 * some memory leaks fixed (thanks to Peter for heaptrc !) 1998-10-06 17:16:31 +00:00
peter
4f0915d6e1 * fixed 161,165,166,167,168 1998-10-05 21:33:15 +00:00
peter
226a917014 * fixed unit interdependency with circular uses 1998-09-30 16:43:34 +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
peter
d4ac5e456b + idtoken and only one token table 1998-09-26 17:45:30 +00:00
peter
8e85a889de + aktmodeswitches 1998-09-24 23:49:05 +00:00
pierre
9589f619d7 * browser bugfixes
was adding a reference when looking for the symbol
    if -bSYM_NAME was used
1998-09-23 15:38:59 +00:00
pierre
b2661d12be + browsing updated and developed
records and objects fields are also stored
1998-09-22 17:13:42 +00:00
peter
fc476492a1 * reset_gdb_info only when debuginfo is set 1998-09-21 09:00:18 +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
pierre
be29a0b86d + improvement on the usebrowser part
(does not work correctly for now)
1998-09-18 08:01:35 +00:00
daniel
4e7516e897 + Added maxheapsize.
* Corrected semi-bug in calling the assembler and the linker
1998-09-10 15:25:31 +00:00
peter
6848d5170d * fixed in_global to allow directives also after interface token 1998-09-09 15:33:06 +00:00
peter
58c2d999f0 * updated some error messages 1998-09-04 08:41:36 +00:00
peter
c4ed67543a + aktpackenum 1998-09-01 12:53:19 +00:00
pierre
3b015ab652 * UseBrowser a little updated (might still be buggy !!)
* bug in psub.pas in function specifier removed
  * stdcall allowed in interface and in implementation
    (FPC will not yet complain if it is missing in either part
    because stdcall is only a dummy !!)
1998-09-01 07:54:16 +00:00
peter
2d765331c1 * dispose trees is now default for all > 0.99.5 compiles 1998-08-26 10:07:09 +00:00
peter
4d8b7aca79 * renamed in_main to in_global which is more logical 1998-08-18 20:52:19 +00:00
peter
cc64a929aa * static/shared linking updates 1998-08-17 09:17:43 +00:00
peter
1b24a06769 * setting the outputfile using -o works now to create static libs 1998-08-14 21:56:30 +00:00
peter
d47ac4310c * reset also the link* lists when recompiling an existing unit 1998-08-12 19:22:09 +00:00
peter
735e41d7d2 * fixed asmlist dispose for 0.99.5 1998-08-10 23:58:56 +00:00
peter
85c8a88cbe + localswitches, moduleswitches, globalswitches splitting 1998-08-10 14:49:33 +00:00
peter
6396267185 + Compiler,Comphook unit which are the new interface units to the
compiler
1998-08-10 10:18:23 +00:00
peter
c9715847f6 * updated messages file 1998-07-14 21:46:38 +00:00
peter
1bffd4e290 * released NEWINPUT 1998-07-14 14:46:36 +00:00
peter
911abb5abc + NEWINPUT for a better inputfile and scanner object 1998-07-07 11:19:50 +00:00
pierre
91130f7270 * ppu files where not closed in newppu !!
second compilation was impossible due to too many opened files
    (not visible in 'make cycle' as we remove all the ppu files)
1998-06-25 11:15:33 +00:00
peter
f07849effe * small os2 fixes
* fixed interdependent units with newppu (remake3 under linux works now)
1998-06-17 14:10:11 +00:00
peter
c2d5abdfed + targetcpu
* cleaner pmodules for newppu
1998-06-16 08:56:17 +00:00
pierre
2d681748ac * small bug in systems.pas corrected
+ operators in different units better hanlded
1998-06-15 15:38:07 +00:00
peter
c614d62eaf * working browser and newppu
* some small fixes against crashes which occured in bp7 (but not in
    fpc?!)
1998-06-13 00:10:04 +00:00
peter
f98459e1fb * smartlinking works for win32
* some defines to exclude some compiler parts
1998-06-08 22:59:41 +00:00
peter
8201248b82 * some better uses clauses 1998-06-05 17:47:28 +00:00
peter
f66f837fc8 * m68k compiles
+ .def file creation moved to gendef.pas so it could also be used
    for win32
1998-06-04 23:51:26 +00:00
peter
d6268ae22f + wordbool,longbool
* rename bis,von -> high,low
  * moved some systemunit loading/creating to psystem.pas
1998-06-03 22:48:50 +00:00