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
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
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
5befcda7e5
+ target_info.size_of_pointer -> pointer_Size
2002-04-15 18:57:22 +00:00
carl
0ee2ac7451
+ added wdosx support (patch from Pavel)
2002-04-04 18:30:22 +00:00
Jonas Maebe
7fb55bf4e4
+ a_loadfpu_* and a_loadmm_* methods in tcg
...
* register allocation is now handled by a class and is mostly processor
independent (+rgobj.pas and i386/rgcpu.pas)
* temp allocation is now handled by a class (+tgobj.pas, -i386\tgcpu.pas)
* some small improvements and fixes to the optimizer
* some register allocation fixes
* some fpuvaroffset fixes in the unary minus node
* push/popusedregisters is now called rg.save/restoreusedregisters and
(for i386) uses temps instead of push/pop's when using -Op3 (that code is
also better optimizable)
* fixed and optimized register saving/restoring for new/dispose nodes
* LOC_FPU locations now also require their "register" field to be set to
R_ST, not R_ST0 (the latter is used for LOC_CFPUREGISTER locations only)
- list field removed of the tnode class because it's not used currently
and can cause hard-to-find bugs
2002-03-31 20:26:33 +00:00
peter
a6d63f0adc
* commited the wrong file :(
2002-01-19 15:37:24 +00:00
peter
04248ee5b5
* also check at the end of the implementation for incomplete classes
2002-01-19 15:20:09 +00:00
peter
d6fb9766ee
* check for unresolved forward classes in the interface
2002-01-19 15:12:34 +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
09cd7f1642
* overloaded functions don't need to be global in kylix
2001-10-22 21:20:46 +00:00
Jonas Maebe
2c87e58a77
* allow self parameter for normal procedures again (because Kylix allows
...
it too) ("merged")
2001-10-01 13:38:44 +00:00
Jonas Maebe
6a15178f0f
* fixed web bug #1593
...
* writing of procvar headers is more complete (mention var/const/out for
paras, add "of object" if applicable)
+ error if declaring explicit self para as var/const
* fixed mangled name of procedures which contain an explicit self para
* parsing para's should be slightly faster because mangled name of
procedure is only updated once instead of after parsing each para
(all merged from fixes)
2001-09-10 10:26:26 +00:00
florian
9746f4c2d6
* some cg reorganisation
...
* some PPC updates
2001-08-26 13:35:06 +00:00
peter
81200dc9ef
* funcret moved from tprocinfo to tprocdef
2001-08-06 21:40:46 +00:00
peter
e652444594
+ varargs directive
2001-06-04 11:53:12 +00:00
peter
f86ce17588
+ hint directive parsing support
2001-06-03 21:57:35 +00:00
peter
9a47ac9ec2
* m68k updates merged from fixes branch
2001-04-21 12:03:11 +00:00
peter
0c03535b5b
* registration of targets and assemblers
2001-04-18 22:01:53 +00:00
peter
cf8a1e1462
* better skipping of secondpass if error
2001-04-14 14:05:47 +00:00
peter
a5a695d141
* when errors are found don't generate code, but still run the
...
resulttype pass
2001-04-13 23:49:24 +00:00
peter
f9c8c7e2ef
* don't generate code when there is already an error
2001-04-13 17:59:03 +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
684970ea22
* merged generic m68k updates from fixes branch
2001-02-26 19:44: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
Jonas Maebe
50f0345bb8
* if a procedure uses exceptions (be it implicit or explicit), the
...
usedregisters are set to all (because FPC_POPADDRSTACK doesn't save
any registers) ("merged", fixes make cycle woth -Or)
2000-11-08 16:38:24 +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
299d6098aa
* set usedregisters after writing entry and exit code (merged)
2000-10-24 22:21:25 +00:00
florian
f80c24177a
* a lot of changes:
...
- basic dyn. array support
- basic C++ support
- some work for interfaces done
....
2000-10-21 18:16:11 +00:00
peter
eb3ca9c51d
* unit names and procedure names are stored mixed case
2000-10-15 07:47:51 +00:00
peter
e171f341a0
* moehrendorf oct 2000 rewrite
2000-10-14 10:14:45 +00:00
peter
24fc983597
* message updates merges
2000-09-24 21:33:46 +00:00
peter
5218af7926
* delphi compile fixes
2000-09-24 21:19:48 +00:00
peter
a71e44ac49
* use defines.inc
2000-09-24 15:06:10 +00:00
peter
3b46bdb72d
* overload checking in implementation removed (merged)
2000-09-10 20:11:07 +00:00
peter
b90e759995
* fixed operator overloading
2000-09-04 20:15:19 +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
7eaac1706d
* splitted namedobjectitem.next into indexnext and listnext so it
...
can be used in both lists
* don't allow "word = word" type definitions (merged)
2000-08-16 18:33:53 +00:00
peter
cb4de797c1
* class member decl wrong then no other error after it
...
* -vb has now also line numbering
* -vb is also used for interface/implementation different decls and
doesn't list the current function (merged)
2000-08-13 12:54:53 +00:00
peter
43f82ba0ff
* memdebug/memory patches (merged)
...
* only once illegal directive (merged)
2000-08-08 19:28:57 +00:00
peter
658a1f4fcd
* default parameters working !
2000-08-06 19:39:28 +00:00
peter
95253a2759
* overload fixes (merged)
2000-08-06 14:17:15 +00:00
peter
c5da6c53fd
* merged fixes
2000-07-30 17:04:43 +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
pierre
ab6fd6b3b8
* get a failure on webtbf/tbug890
2000-07-07 20:42:55 +00:00
peter
b91050ccb7
* allow in delphi mode directives without semicolons between
2000-07-06 19:04:59 +00:00
florian
73269986f3
* fixed a problem with forward declarations in TP mode, probably introduced by
...
Pierre's last changes
2000-06-25 20:13:51 +00:00
pierre
38f27344f4
* equal_paras and convertable_paras changed by transforming third parameter
...
into an enum with three possible values:
cp_none, cp_value_equal_const and cp_all.
2000-06-20 12:47:52 +00:00
peter
b71b416cd1
* support overload keyword
2000-06-18 18:12:40 +00:00
pierre
ef8abc1dd7
* operator overloading now uses isbinaryoperatoracceptable
...
and is unaryoperatoracceptable
2000-06-02 21:24:46 +00:00
pierre
5f437d210d
* Delphi defines TP so that code compiles
...
sent by Kovacs Attila Zoltan
2000-05-10 19:22:51 +00:00
pierre
51a1677da5
* calculate para_offset for interrupt procedures
2000-05-09 14:19:08 +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
peter
a9cff3c8c5
* removed unused vars
2000-04-24 12:48:37 +00:00
pierre
92e9d3bf83
* fix the handling of value parameters in cdecl function
2000-03-31 22:56:45 +00:00
pierre
700f9ce852
* fix for bug #890
2000-03-27 11:57:22 +00:00
pierre
578465bef0
* fix tf000008 bug
2000-03-23 22:17:51 +00:00
pierre
0f4e1e10e0
* fix for bug #807
2000-03-16 16:41:11 +00:00
pierre
4177d64781
* fix for bug #848 (that still genrated wrong code)
...
+ better testing for variables used in assembler
(gives an error if variable is not directly reachable !)
2000-03-15 23:09:58 +00:00
peter
50a4b4b4db
* if calling convention doesn't match don't print note about
...
different manglednames
2000-02-27 14:44:39 +00:00
florian
df41d1395c
* newcg is compiling
...
* fixed the dup id problem reported by Paul Y.
2000-02-20 20:49:45 +00:00
florian
dfe879d12e
* some updates for the newcg
2000-02-17 14:53:42 +00:00
peter
4a4a24b6e8
* log truncated
2000-02-09 13:22:42 +00:00
peter
119ebd56c6
* reset section back to code after localdata
2000-02-08 13:55:13 +00:00
florian
a0cc4f970b
* an exception in a construcor calls now the destructor (this applies only
...
to classes)
2000-02-04 20:00:21 +00:00
Jonas Maebe
16e46c496c
* moved call to resetusableregs to compile_proc_body (put it right before the
...
reset of the temp generator) so the optimizer can know which registers are
regvars
2000-02-04 14:54:17 +00:00
florian
997ddf88f9
* virtual XXXX; support for objects, only if -dWITHDMT is defined
2000-01-28 23:17:53 +00:00
florian
eb1715ded4
* fixed for the fix of bug #793
...
* fpu variables modified by nested subroutines aren't regable anymore
* $maxfpuregisters doesn't modify anymore the behavior of a procedure before
2000-01-21 22:06:16 +00:00
peter
25dda03cdc
* renamed call_offset to para_offset
2000-01-16 22:17:11 +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
e525797c51
* updated copyright to 2000
2000-01-07 01:14:18 +00:00
peter
7583de7a4f
- removed freelabel()
...
* added undefined label detection in internal assembler, this prevents
a lot of ld crashes and wrong .o files
* .o files aren't written anymore if errors have occured
* inlining of assembler labels is now correct
1999-12-22 01:01:45 +00:00
peter
03a9699ce3
* newcg compiler compiles again
1999-12-06 18:17:09 +00:00
peter
0512ba80fb
+ ttype, tsymlist
1999-11-30 10:40:42 +00:00
pierre
fca8adf6c2
* also complain about unused functions in program
1999-11-22 00:23:09 +00:00
pierre
62da9bd4c0
* Notes/hints changes
1999-11-17 17:04:58 +00:00
pierre
acaa9296b7
* more browser details
1999-11-10 00:24:02 +00:00
pierre
142ace2afc
* better browser info
1999-11-09 23:43:08 +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
0887060ff2
* truncated log to 20 revs
1999-11-06 14:34:16 +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
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
peter
19aa88a729
* moved mangledname creation of normal proc so it also handles a wrong
...
method proc
1999-10-13 10:37:36 +00:00
florian
8b9633266b
* new codegenerator compiles again
1999-10-12 21:20:41 +00:00
peter
6b6fc5aac4
* fixed forward decl check for tp7/delphi
1999-10-03 19:38:39 +00:00
peter
532d85cd50
+ procedure directive support in const declarations, fixes bug #232
1999-10-01 10:05:37 +00:00
peter
49fcd8aceb
* forward type declaration rewritten
1999-10-01 08:02:45 +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
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
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
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
pierre
c528cf639f
* bugfix for 237 and 244
1999-09-07 14:59:40 +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
peter
0274f3a08b
* fixed crash in psub
...
* ansistringcompare fixed
* support for #$0b8
1999-08-30 10:17:56 +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
1c8a7a1924
+ label faillabel added for _FAIL support
1999-08-19 13:02:08 +00:00
pierre
c63cfc6f7a
* linking to C code with cdecl;external; was broken
1999-08-10 16:24:44 +00:00
pierre
88185b4be3
+ procsym field of tprocdef set
1999-08-10 12:37:44 +00:00
peter
cb8aeb3fd6
* V_Fatal=1, all other V_ are also increased
...
* Check for local procedure when assigning procvar
* fixed comment parsing because directives
* oldtp mode directives better supported
* added some messages to errore.msg
1999-08-05 16:52:53 +00:00
Jonas Maebe
ace7ff6983
* all tokens now start with an underscore
...
* PowerPC compiles!!
1999-08-04 13:02:40 +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
1cf1665d73
* the alpha compiler can be compiled now
1999-08-03 17:09:34 +00:00
florian
eac806034d
* the main branch psub.pas is now used for
...
newcg compiler
1999-08-02 21:28:56 +00:00
peter
30be2bf063
* indirect type referencing is now allowed
1999-07-27 23:42:10 +00:00
florian
9cbaac5beb
* bugs 494-496 fixed
1999-07-26 09:41:59 +00:00
peter
f2818d7908
* merged
1999-07-11 20:10:23 +00:00
peter
f959158854
* merged
1999-07-02 13:02:24 +00:00
pierre
e8da115c3f
* merged from 0_99_12 branch
1999-06-17 13:19:50 +00:00
peter
8db8e0d6a8
* reinserted
1999-06-11 13:21:37 +00:00