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
michael
953269fcff
+ Patch from Wiktor Sywula for watcom support
2003-09-30 08:39:50 +00:00
peter
ddc50a91ca
* add missing release of main_proc
2003-09-23 18:03:08 +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
daniel
49e539ac8d
* Adding register allocation order
2003-09-09 20:59:27 +00:00
peter
05a15df3c2
* use register with least interferences in spillregister
2003-09-09 15:55:44 +00:00
peter
b9d09a4e5c
* preparations for different default calling conventions
...
* various RA fixes
2003-09-07 22:09:34 +00:00
florian
22f1ff8da4
* merged Wiktor's Watcom patches in 1.1
2003-09-05 17:41:12 +00:00
peter
90782badfe
* reload flagged units when interface is loaded
2003-08-23 22:29:24 +00:00
peter
8cf0c122f4
* remove convert_registers
2003-08-21 14:47:41 +00:00
peter
d113495cf1
* fixed stackalloc to not allocate localst.datasize twice
...
* order of stackalloc code fixed for implicit init/final
2003-08-20 17:48:49 +00:00
daniel
ebb1f3a361
* New register coding now mandatory, some more convert_registers calls
...
removed.
2003-08-20 09:07:00 +00:00
Jonas Maebe
177d57f22c
* split en_exit_code into a part that may allocate a register and a part
...
that doesn't, so the former can be done before the register colouring
has been performed
2003-07-23 11:04:15 +00:00
peter
32d076480b
* framepointer fixes for sparc
...
* parent framepointer code more generic
2003-07-06 17:58:22 +00:00
peter
0dceec9a64
* current_procdef removed, use current_procinfo.procdef instead
2003-06-13 21:19:30 +00:00
peter
77d641fa2a
* init/final of procedure data splitted from genentrycode
...
* use asmnode getposition to insert final at the correct position
als for the implicit try...finally
2003-06-09 12:23:29 +00:00
peter
e7975c7592
* re-resolving added instead of reloading from ppu
...
* tderef object added to store deref info for resolving
2003-06-07 20:26:32 +00:00
mazen
af653c3dd7
- removed unneeded ifdefs
...
- removed unneeded cases for sparc and x86_64
2003-06-03 20:21:45 +00:00
daniel
41e0bc4cec
* Register allocator finished
2003-06-03 13:01:59 +00:00
peter
047a066711
* procinlinenode removed
...
* aktexit2label removed, fast exit removed
+ tcallnode.inlined_pass_2 added
2003-05-26 21:17:17 +00:00
peter
aaf6114364
* moved Comment calls to messge file
2003-05-25 10:27:12 +00:00
peter
345228fd29
* defer codegeneration for nested procedures
2003-05-22 21:31:35 +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
florian
76f18e2fc9
* fixed implicit init/final code for units, stack frame was wrong for ppc
2003-05-11 19:31:28 +00:00
peter
dfd469b7a3
* fix stabs generation for implicit initfinal
2003-04-28 21:19:02 +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
florian
0284016ee9
* fixed several issues with powerpc
...
+ applied a patch from Jonas for nested function calls (PowerPC only)
* ...
2003-04-23 12:35:34 +00:00
peter
aca9555704
* Use the original unitname when defining a unitsym
2003-04-12 15:13:03 +00:00
Tomas Hajny
8e7124f9f8
+ emx target added
2003-03-23 23:11:17 +00:00
peter
bb15f5641e
*** empty log message ***
2003-03-17 22:20:08 +00:00
peter
dab938e084
* fix import linking under linux
2003-03-17 13:36:39 +00:00
daniel
86bcea6ef5
* Code generator converted to new register notation
...
- Horribily outdated todo.txt removed
2003-02-19 22:00:14 +00:00
mazen
9ad1d0ffe2
* fixing bug related to errornous program main entry stack frame
2003-02-06 22:36:55 +00:00
peter
2b0e576cbe
* tai_const_symbol.createdataname added
2003-01-30 21:46:20 +00:00
Tomas Hajny
23591531b8
* correction from rev. 1.88 put back
2003-01-11 11:19:54 +00:00
daniel
55a161bbbf
* Tregister changed into a record
2003-01-08 18:43:56 +00:00
florian
b59b436130
* x86-64 compiles
...
+ very basic support for float128 type (x86-64 only)
2003-01-05 13:36:53 +00:00
peter
a77c4e01dd
* insert unitsym with the name as specified in the uses list
2002-12-29 18:17:23 +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
Tomas Hajny
6fff1b96bd
* another (hopefully final ;-) ) fix for not linked import libraries for units with no code
2002-12-27 19:09:33 +00:00
peter
abbbc7443d
* Use FixFilename for specified unit sourcefile in uses
2002-12-24 23:32:56 +00:00
peter
cab4c8879f
* only compile cs_fp_emulation support when cpufpuemu is defined
...
* define cpufpuemu for m68k only
2002-12-06 16:56:57 +00:00
carl
edb20100ac
+ Add loading of softfpu in emulation mode
...
+ Correct routine call for softfpu
* Extended type must also be defined even with softfpu
2002-11-30 21:32:24 +00:00
peter
bfd72ad5d5
* merged changes from 1.0.7 up to 04-11
...
- -V option for generating bug report tracing
- more tracing for option parsing
- errors for cdecl and high()
- win32 import stabs
- win32 records<=8 are returned in eax:edx (turned off by default)
- heaptrc update
- more info for temp management in .s file with EXTDEBUG
2002-11-15 01:58:45 +00:00
carl
391b49d410
* major alignment updates
2002-11-09 15:33:26 +00:00
michael
39f16b03ef
+ Renamed thread unit to systhrds
2002-10-16 06:27:30 +00:00
peter
798289b1f3
* only use init tables for threadvars
2002-10-14 19:42:33 +00:00
peter
6d4fcce014
* Add finalization of typed consts
...
* Finalization of globals in the main program
2002-10-06 19:41:30 +00:00
peter
a540ff122c
* tdicationary.replace added to replace and item in a dictionary. This
...
is only allowed for the same name
* varsyms are inserted in symtable before the types are parsed. This
fixes the long standing "var longint : longint" bug
- consume_idlist and idstringlist removed. The loops are inserted
at the callers place and uses the symtable for duplicate id checking
2002-09-09 17:34:14 +00:00
peter
dcd9e0107c
* old logs removed and tabs fixed
2002-09-07 15:25:00 +00:00
daniel
b0364566d1
* Make Tprocdef.defs protected
2002-09-03 16:26:26 +00:00
peter
36481b72bb
* insert PASCALMAIN in library for Win32 only
2002-09-02 18:46:26 +00:00
florian
5e60724d23
+ HEAP* stuff must be generated for Linux/PPC as well
...
+ direct assembler reader searches now global and static symtables as well
2002-08-31 15:59:30 +00:00
peter
a28f75ed03
* sym.insert_in_data removed
...
* symtable.insertvardata/insertconstdata added
* removed insert_in_data call from symtable.insert, it needs to be
called separatly. This allows to deref the address calculation
* procedures now calculate the parast addresses after the procedure
directives are parsed. This fixes the cdecl parast problem
* push_addr_param has an extra argument that specifies if cdecl is used
or not
2002-08-25 19:25:18 +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
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
18b102ce95
+ moved target_cpu_string to cpuinfo
...
* renamed asmmode enum.
* assembler reader has now less ifdef's
* move from nppcmem.pas -> ncgmem.pas vec. node.
2002-08-10 14:46:29 +00:00
florian
eb2ca8d10f
* rewrote the system handling
2002-07-26 21:15:37 +00:00
florian
479a745096
* first x86-64 patches
2002-07-04 20:43:00 +00:00
peter
4285e99853
* internal linker
...
* reorganized aasm layer
2002-07-01 18:46:20 +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
carl
682c2289fa
+ added more patches from Mazen for SPARC port
2002-05-06 19:54:50 +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
carl
37091f14da
+ align code section and data section according to alignment rules
2002-04-14 16:53:10 +00:00
carl
c8b3a5b3db
+ generic stack checking
2002-04-07 17:58:38 +00:00
peter
5e7a1e3729
* removed unused units
...
* use tlocation.size in cg.a_*loc*() routines
2002-04-04 19:05:54 +00:00
carl
0ee2ac7451
+ added wdosx support (patch from Pavel)
2002-04-04 18:30:22 +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
armin
1179c13288
addToLocalThreadvarList used '_'+name instead of mangledname to find asm symbol
2002-04-01 13:43:32 +00:00
armin
6b6df5ee46
+ allow exports for netware
2002-03-29 17:19:50 +00:00
armin
0de84898a3
+ forgot to delete a debug writeln
2002-03-29 09:00:56 +00:00
armin
ed209a3961
+ initialize threadvars defined local in units
2002-03-28 16:07:52 +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
carl
bc558402fb
+ Stack checking for solaris
2001-12-09 03:34:58 +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
michael
f959a590fe
* Fixes win32 linking problems with import libraries
...
* LINKLIB Libraries are now looked for using C file extensions
* get_exepath fix
2001-09-18 11:30:47 +00:00
michael
6f56bc2312
+ Committed patch from peter
2001-09-13 14:47:19 +00:00
florian
9746f4c2d6
* some cg reorganisation
...
* some PPC updates
2001-08-26 13:35:06 +00:00
peter
fd8e5fa78c
* palmos support from v10 merged
2001-08-19 11:22:22 +00:00
peter
f4b983bdd8
* typo in extdebug msg
2001-08-12 19:59:49 +00:00
peter
81200dc9ef
* funcret moved from tprocinfo to tprocdef
2001-08-06 21:40:46 +00:00
peter
a62da20a8c
* beos fix (merged)
2001-08-05 12:26:52 +00:00
peter
2a1adf0ee6
* updates so it works with the ide
2001-08-04 10:23:54 +00:00
Jonas Maebe
367f7a0362
+ "compilerproc" directive support, which turns both the public and mangled
...
name to lowercase(declaration_name). This prevents a normal user from
accessing the routine, but they can still be easily looked up within
the compiler. This is used for helper procedures and should facilitate
the writing of more processor independent code in the code generator
itself (mostly written by Peter)
+ new "createintern" constructor for tcal nodes to create a call to
helper exported using the "compilerproc" directive
+ support for high(dynamic_array) using the the above new things
+ definition of 'HASCOMPILERPROC' symbol (to be able to check in the
compiler and rtl whether the "compilerproc" directive is supported)
2001-08-01 15:07:29 +00:00
peter
c4b84ce276
* m68k updates from v10 merged
2001-07-30 20:59:27 +00:00
peter
e24474d9ac
* -Ur switch (merged)
...
* masm fixes (merged)
* quoted filenames for go32v2 and win32
2001-06-18 20:36:23 +00:00
peter
3fc45a47d2
* Win32 fixes for Makefile so it doesn't require sh.exe
2001-06-06 21:58:16 +00:00
peter
f86ce17588
+ hint directive parsing support
2001-06-03 21:57:35 +00:00
peter
5fed44fe5d
* dllprt0 stub for linux shared libs
...
* pass -init and -fini for linux shared libs
* libprefix splitted into staticlibprefix and sharedlibprefix
2001-06-03 15:15:31 +00:00
peter
6e65cd0ee4
* support uses <unit> in <file> construction
2001-05-19 23:05:19 +00:00
peter
3be0e8b544
* merged alignment for non-i386
2001-05-18 22:26:36 +00:00
Jonas Maebe
d5526ff45c
* range check error fixes from Peter
2001-05-09 14:11:10 +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
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
4e2655cdc5
* resulttype rewrite
2001-04-02 21:20:29 +00:00
peter
6eb671f761
* fixed some memory leaks
2001-03-13 18:45:06 +00:00
peter
aab27143a3
* patch from Pavel with a new and much faster DLL Scanner for
...
automatic importing so $linklib works for DLLs. Thanks Pavel!
2001-03-06 18:28:02 +00:00
peter
8f2aaed119
* generate .rst from ppufilename instead of modulename
2001-02-24 10:44:55 +00:00
peter
8acb794be6
* moved deref to be done after loading of implementation units. prederef
...
is still done directly after loading of symbols and definitions.
2001-02-21 19:37:19 +00:00
peter
73a75d5d5c
* fixed crash with program name as a important unit name
2001-01-14 22:13:52 +00:00
peter
32b9cdb7cf
+ new tlinkedlist class (merge of old tstringqueue,tcontainer and
...
tlinkedlist objects)
2000-12-25 00:07:25 +00:00
florian
b9796f6a7f
* unused units removed from uses clause
...
* some changes for widestrings
2000-11-29 00:30:30 +00:00
peter
5115083270
* tprocdef.fullprocname added for better casesensitve writing of
...
procedures
2000-11-01 23:04:37 +00:00
peter
451723647e
* symtable splitted, no real code changes
2000-10-31 22:02:46 +00:00
peter
20dae06236
* merged pierres fixes
2000-10-21 14:36:26 +00:00
peter
12818742d3
* use System for the systemunit instead of target dependent
2000-10-15 09:08:58 +00:00
peter
eb3ca9c51d
* unit names and procedure names are stored mixed case
2000-10-15 07:47:51 +00:00
pierre
f95a082233
* IsExe restored
2000-10-04 14:51:08 +00:00
peter
dc6c26755b
* filepos when unit not found (merged)
2000-09-30 16:07:40 +00:00
peter
24fc983597
* message updates merges
2000-09-24 21:33:46 +00:00
peter
a71e44ac49
* use defines.inc
2000-09-24 15:06:10 +00:00
michael
df6ab32e61
+ Applied patch from Peter
2000-08-31 07:53:02 +00:00
peter
f3c0f91294
* _init and _finalize procsyms also need a $ prefix
2000-08-29 19:00:01 +00:00
peter
bec1c5cdf9
* store strings with case in ppu, when an internal symbol is created
...
a '$' is prefixed so it's not automatic uppercased
2000-08-27 20:19:38 +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
Jonas Maebe
dab7718b68
* fixed bug with include files at the very beginning of .pp/.pas files
...
(wrong name used for generating exe/checking unit name) (merged from
fixes branch)
2000-08-25 08:48:22 +00:00
pierre
f1bd579bf4
* fix the stabs problems
2000-08-21 11:27:44 +00:00
michael
665c1f6410
+ patched to 1.1.0 with former 1.09patch from peter
2000-07-13 12:08:24 +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
0d58e53bfc
* first look for ppu in cwd and outputpath and after that for source
...
in cwd
* fixpath() for not linux makes path now lowercase so comparing paths
with different cases (sometimes a drive letter could be
uppercased) gives the expected results
* sources_checked flag if there was already a full search for sources
which aren't found, so another scan isn't done when checking for the
sources only when recompile is needed
2000-06-15 18:10:11 +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
1bd418e467
* some DBX changes but it still does not work !
2000-05-11 09:40:11 +00:00
peter
6d282de1d4
* fixed setting of output names with includefile
2000-05-08 13:18:09 +00:00
peter
1cd3fb9f4c
* don't write rst files if errors found
2000-05-04 20:43:33 +00:00
pierre
d6b3b9a9cd
* Use RestoreUnitsSyms to avoid wrong hints about unused units
...
* Avoid hints about unsused units if thet have a init or finalize code
2000-05-03 14:39:51 +00:00
pierre
71cbe13810
* power to ** operator fixed
2000-04-27 11:35:03 +00:00
pierre
3174b39bcc
* More changes for operator bug
...
Order_overloaded method removed because it conflicted with
new implementation where the defs are ordered
according to the unit loading order !
2000-04-26 08:54:18 +00:00
pierre
dbdb7ee667
+ Hint about unused unit
...
* Testop bug fixed !!
Now the operators are only applied if the unit is explicitly loaded
2000-04-25 23:55:29 +00:00
pierre
7a2993fe8b
* close ppu file if errors
2000-04-14 08:15:05 +00:00
florian
339d986a2a
* bug #701 fixed: ansistrings in interface and implementation part of the units
...
are now finalized correctly even if there are no explicit initialization/
finalization statements
2000-04-02 10:18:18 +00:00
florian
9573dc7006
* some new stuff for the new cg
2000-03-01 15:36:11 +00:00
peter
4a4a24b6e8
* log truncated
2000-02-09 13:22:42 +00:00
peter
f0efb42197
* -gl switch for auto lineinfo including
2000-02-06 17:20:52 +00:00
peter
25dda03cdc
* renamed call_offset to para_offset
2000-01-16 22:17:11 +00:00
Jonas Maebe
094d7d1829
* changed "with object_type" construct because of bug in the
...
compiler
2000-01-16 14:15:33 +00:00
peter
3ffb57efe4
* align codesegment at the end after main proc
2000-01-12 10:30:15 +00:00
Jonas Maebe
edf419d5a7
* removed a lot of memory leaks when an error is encountered (caused by
...
procinfo and pstringcontainers). There are still plenty left though :)
2000-01-11 17:16:04 +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
pierre
c3fb5e5237
* relocation with debug info in rva (only with internal compiler)
1999-12-20 22:29:26 +00:00
peter
23c127a58e
* only check relocsection for win32
1999-12-10 10:02:53 +00:00