carl
682c2289fa
+ added more patches from Mazen for SPARC port
2002-05-06 19:54:50 +00:00
florian
6bbaa14daf
* block nodes within expressions shouldn't release the used registers,
...
fixed using a flag till the new rg is ready
2002-04-25 20:15:39 +00:00
peter
6320530bdd
* removed newn and disposen nodes, the code is now directly
...
inlined from pexpr
* -an option that will write the secondpass nodes to the .s file, this
requires EXTDEBUG define to actually write the info
* fixed various internal errors and crashes due recent code changes
2002-04-21 19:02:03 +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
8af460ac31
* using inherited; without a parent having the same function
...
will do nothing like delphi
2002-04-16 16:11:17 +00:00
carl
5befcda7e5
+ target_info.size_of_pointer -> pointer_Size
2002-04-15 18:57:22 +00:00
carl
9ea5003a82
+ asm statement uses ALL_REGISTERS
2002-04-14 16:53:54 +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
58218bf81f
* Regenerated with updated fpcmake
2002-03-11 19:10:28 +00:00
peter
4b2aa039e6
* allow oridinal labels again
2002-03-04 17:54:59 +00:00
peter
cdf0df1808
* allow accessing locals in other lexlevel when the current assembler
...
routine doesn't have locals.
2002-01-29 21:32:03 +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
Jonas Maebe
816cfa08b3
* allow recursive calls again in assembler procedure
2001-11-09 10:06:56 +00:00
peter
d2e1952377
* procsym definition rewrite
2001-11-02 22:58:00 +00:00
florian
b0e3e03f08
* fixed ranges in case statements with widechars
2001-10-26 22:36:42 +00:00
peter
e37dbf904d
* calling convention rewrite
2001-10-25 21:22:32 +00:00
marco
7215d46735
* Make new/dispose system functions instead of keywords
2001-10-24 11:51:39 +00:00
florian
451ca157c4
* several widechar fixes, case works now
2001-10-17 22:41:04 +00:00
Jonas Maebe
d8c104b25d
* fixed goto/label/try bugs
2001-10-16 15:10:34 +00:00
peter
67f5dc7f76
* "fpc -P?" command to query for used ppcXXX compiler
2001-09-22 11:11:43 +00:00
Jonas Maebe
ca27b25d5e
* fixed superfluous generation of stackframes for assembler procedures
...
with no local vars or para's (this broke the backtrace printing in case
of an rte)
2001-09-06 10:21:50 +00:00
Jonas Maebe
f98641013f
* set funcretsym for assembler procedures too (otherwise using __RESULT
...
in assembler procedures causes a crash)
2001-09-03 13:19:12 +00:00
florian
9746f4c2d6
* some cg reorganisation
...
* some PPC updates
2001-08-26 13:35:06 +00:00
Jonas Maebe
a6cfe4083a
+ tempcreate/ref/delete nodes (allows the use of temps in the
...
resulttype and first pass)
* made handling of read(ln)/write(ln) processor independent
* moved processor independent handling for str and reset/rewrite-typed
from firstpass to resulttype pass
* changed names of helpers in text.inc to be generic for use as
compilerprocs + added "iocheck" directive for most of them
* reading of ordinals is done by procedures instead of functions
because otherwise FPC_IOCHECK overwrote the result before it could
be stored elsewhere (range checking still works)
* compilerprocs can now be used in the system unit before they are
implemented
* added note to errore.msg that booleans can't be read using read/readln
2001-08-23 14:28:35 +00:00
peter
81200dc9ef
* funcret moved from tprocinfo to tprocdef
2001-08-06 21:40:46 +00:00
peter
f86ce17588
+ hint directive parsing support
2001-06-03 21:57:35 +00:00
Jonas Maebe
f4ab3095c2
* fixed web bugs 1480 and 1481
2001-05-17 13:25:24 +00:00
florian
3c5793d8c6
* some Delphi incompatibilities fixed:
...
- out, dispose and new can be used as idenfiers now
- const p = apointerype(nil); is supported now
+ support for const p = apointertype(pointer(1234)); added
2001-05-04 15:52:03 +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
5677fbe1b4
* fixed crash in labelnode
...
* easier detection of goto and label in try blocks
2001-04-15 09:48:29 +00:00
peter
af5d6e60e7
* moved more code from pass_1 to det_resulttype
2001-04-14 14:07:10 +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
b193bf7df3
* remove unnecessary calls to firstpass
2001-04-04 22:43:50 +00:00
peter
4e2655cdc5
* resulttype rewrite
2001-04-02 21:20:29 +00:00
florian
1008d7faa0
+ support for type a = (a=1); in Delphi mode added
...
+ procedure p(); in Delphi mode supported
+ on isn't keyword anymore, it can be used as
id etc. now
2001-03-22 22:35:42 +00:00
peter
d8abf76f6b
* getsym redesign, removed the globals srsym,srsymtable
2001-03-11 22:58:49 +00:00
peter
32b9cdb7cf
+ new tlinkedlist class (merge of old tstringqueue,tcontainer and
...
tlinkedlist objects)
2000-12-25 00:07:25 +00:00
peter
b7c591affd
* object to class for ow/og objects
...
* split objectdata from objectoutput
2000-12-23 19:59:35 +00:00
Jonas Maebe
595bf10fa7
* fixed case statements with int64 values
2000-12-16 22:45:55 +00:00
florian
b9796f6a7f
* unused units removed from uses clause
...
* some changes for widestrings
2000-11-29 00:30:30 +00:00
Jonas Maebe
587d9bb7cf
* fix for web bug #1251 (example 1)
2000-11-27 15:47:19 +00:00
peter
e6d423e466
* fixed crash with exception without sysutils (merged)
2000-11-22 22:43:34 +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
4b17f6f0ff
* fixed memory leaks
2000-10-14 21:52:54 +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
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
4c94659743
* moved some util functions from globals,cobjects to cutils
...
* splitted files into finput,fmodule
2000-08-27 16:11:48 +00:00
peter
bd6d4c3d17
* fixed bug #1096 (merged)
2000-08-12 15:41:15 +00:00
florian
cd6180fe99
+ case statement for int64/qword implemented
2000-08-12 06:46:06 +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
757f68ec58
* fixed internalerror 2002 when case expr is not correct, by creating
...
a temp correct case expression
2000-06-30 22:15:39 +00:00
pierre
40f1da8f8e
* bug found by Kovacs Attila Zoltan corrected
2000-05-04 12:59:10 +00:00
peter
ad5c964217
* support asm block without assembler directive for -Sd
2000-04-29 12:50:14 +00:00
peter
ebbf2e578f
* backtraces for exceptions are now only generated from the place of the
...
exception
* frame is also pushed for exceptions
* raise statement enhanced with [,<frame>]
2000-04-24 11:11:50 +00:00
florian
9f57527c98
* crash when using exception classes without sysutils unit fixed
2000-03-19 14:17:05 +00:00
peter
98a50970e7
* check for unknown id in on exception
2000-03-19 11:16:44 +00:00
pierre
977081b2d7
assembler method code does not need ebp framepointer
2000-03-16 15:12:06 +00:00
pierre
cadf4cc024
* destructor can have args in TP mode only (bug825 and 839)
2000-03-14 16:37:25 +00:00
pierre
35d59eeb52
Use $GOTO ON
2000-02-29 23:59:47 +00:00
peter
4a4a24b6e8
* log truncated
2000-02-09 13:22:42 +00:00
peter
f16647ede6
* fixed destructor parsing with preprocessor things
...
* support dipsoe(p,done())
* fixed constructor message with dispose(p,<nonexist>)
2000-01-23 16:33:49 +00:00
peter
25dda03cdc
* renamed call_offset to para_offset
2000-01-16 22:17:11 +00:00
peter
0e4c33391c
* fixed library with only end.
2000-01-12 10:30:50 +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
florian
577edbbd3f
+ compiler checks now if a goto leaves an exception block
1999-12-14 09:58:41 +00:00
peter
f2d894e78f
* fixed sigsegv with casedef=nil
1999-12-01 22:43:17 +00:00
peter
d3b404c1a4
* fixed bug #698
...
* removed some notes about unused vars
1999-12-01 12:42:31 +00:00
peter
0512ba80fb
+ ttype, tsymlist
1999-11-30 10:40:42 +00:00
pierre
8025581bfd
* DLL index used for win32 target with DEF file
...
+ DLL initialization/finalization support
1999-11-20 01:19:10 +00:00
pierre
b528749138
* Notes/Hints for local syms changed to
...
Set_varstate function
1999-11-18 15:34:44 +00:00
pierre
62da9bd4c0
* Notes/hints changes
1999-11-17 17:04:58 +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
pierre
acaa9296b7
* more browser details
1999-11-10 00:24:02 +00:00
peter
b8b39e0980
* fixed 'raise end;'
1999-11-09 13:02:46 +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
fa19f0aa09
- removed the hcodegen use in the new cg, use cgbase instead
1999-10-14 14:57:51 +00:00
peter
6b1ab5eb31
* procinfo is now a pointer
...
* support for result setting in sub procedure
1999-09-27 23:44:46 +00:00
florian
fbbf8a505c
* m68k compiler is again compilable (only gas writer, no assembler reader)
1999-09-16 23:05:51 +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
Jonas Maebe
88306ed3f3
* framepointer cannot be changed to esp for methods
1999-09-07 14:12:35 +00:00
peter
5e26e5d0c9
* better error recovery for case
1999-08-26 21:10:08 +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
florian
9cbaac5beb
* bugs 494-496 fixed
1999-07-26 09:41:59 +00:00
florian
497a3d3686
* use of is_ordinal checked: often a qword/int64 isn't allowed (case/for ...)
...
* small qword problems fixed
1999-06-30 22:16:19 +00:00
pierre
05b6362265
* local browser stuff corrected
1999-06-22 16:24:39 +00:00
pierre
e8da115c3f
* merged from 0_99_12 branch
1999-06-17 13:19:50 +00:00
pierre
a5305b32ee
* better uninitialized var tests for TP mode
1999-06-15 13:19:46 +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
peter
bfed29ff8b
* NEWLAB for label as symbol
1999-05-21 13:54:38 +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
peter
a47afc3857
* removed oldppu code
...
* warning if objpas is loaded from uses
* first things for new deref writing
1999-05-13 21:59:19 +00:00
peter
4841b4236c
* updated messages
1999-05-05 22:21:47 +00:00
peter
611da2d24e
* merged nasm compiler
...
* old asm moved to oldasm/
1999-05-01 13:23:57 +00:00
peter
884c517b18
* release storenumber,double_checksum
1999-04-26 13:31:24 +00:00
peter
cb70b62a82
* storenumber works
...
* fixed some typos in double_checksum
+ incompatible types type1 and type2 message (with storenumber)
1999-04-21 09:43:28 +00:00
pierre
7482ba0913
* void pointer accepted with warning in tp and delphi mode
1999-04-16 12:14:44 +00:00
pierre
9bca84a43d
* fix for bug0234
1999-04-15 12:58:07 +00:00
peter
bedd3653f2
* fixed set loading
...
* object inheritance support for browser
1999-04-15 09:01:32 +00:00
daniel
1335d7de8a
* Better use of routines in pbase and symtable. 4k code removed.
1999-04-14 18:41:24 +00:00
peter
cc9df8d478
* first things to store the symbol/def number in the ppu
1999-04-14 09:14:44 +00:00
pierre
dae5c188e4
* bug found by Peter for DirectWith code fixed
1999-04-09 12:22:06 +00:00
peter
ee82810a16
* more use of ttoken
1999-04-06 11:21:56 +00:00
peter
2bfdf91c5c
* assembler inlining working for ag386bin
1999-03-31 13:55:03 +00:00
pierre
ebd2da41dc
* typecheck for exit(value) : resulttype was not set
1999-03-10 11:23:29 +00:00
pierre
58bfc3ac78
* some m68k fixes (still not compilable !)
...
* new(tobj) does not give warning if tobj has no VMT !
1999-03-04 13:55:39 +00:00
peter
c5e45b576b
+ stabs support for binary writers
...
* more fixes and missing updates from the previous commit :(
1999-03-02 02:56:08 +00:00
peter
a17c03cca3
* assembler writers fixed for ag386bin
1999-02-26 00:48:13 +00:00
pierre
0669413251
+ -b and -bl options work !
...
+ cs_local_browser ($L+) is disabled if cs_browser ($Y+)
is not enabled when quitting global section
* local vars and procedures are not yet stored into PPU
1999-02-22 13:06:52 +00:00
peter
bf9b5e3a54
* updates for ag386bin
1999-02-22 02:14:59 +00:00
pierre
c881aae7e9
* fix for bug0216
1999-02-15 13:13:15 +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
714da479ee
* memory leak in case optimization fixed
1999-01-27 13:06:57 +00:00
peter
eadf1f63b4
* more fixes for the on bug with unknown id
1999-01-25 22:49:09 +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
0cfc4c8f6b
* fix for constructor inside with statements
1999-01-21 16:40:51 +00:00
florian
d15d426756
* mainly problem with invalid case ranges fixed (reported by Jonas)
1999-01-05 08:19:59 +00:00
Jonas Maebe
8cf4da6d5e
+ optimize pascal code surrounding assembler blocks
1998-12-29 18:48:15 +00:00
peter
2f303a746d
* fixed new(x) crash if x contains an error
1998-12-23 22:52:56 +00:00
Jonas Maebe
75331d6648
* released CaseRange
1998-12-16 12:30:59 +00:00
Jonas Maebe
401078117f
+ convert consecutive case labels to a single range (-dCaseRange)
1998-12-15 22:32:24 +00:00
peter
ff335d3911
* fixed dup release of statement label in case
1998-12-15 11:52:18 +00:00
peter
1b369bb4bb
+ globtype,tokens,version unit splitted from globals
1998-12-11 00:02:37 +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
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
364132b0bb
* fix for bug0176 and bug0177
1998-11-12 12:55:16 +00:00
peter
dedaf4db95
* fixed assembler directive and then not an ASM statement
1998-11-05 23:43:24 +00:00
peter
3fcd0a1086
* fixed dispose(destructor) crash when destructor didn't exists
1998-10-30 16:20:22 +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
pierre
a5f0168fbb
* wrong stabs info corrected once again !!
...
+ variable vmt offset with vmt field only if required
implemented now !!!
1998-10-19 08:54:53 +00:00
peter
1468993242
* new style for m68k/i386 infos and enums
1998-10-13 13:10:08 +00:00
peter
075d0d16fc
* added eof message
...
* fixed unit init section parsing with finalize
1998-10-08 13:46:22 +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
florian
7f57cdf52c
* the following doesn't work: on texception do, was a parser error, fixed
1998-09-23 21:53:04 +00:00
peter
4ae6e577c5
* merged fix
1998-09-21 10:26:07 +00:00
peter
58c2d999f0
* updated some error messages
1998-09-04 08:41:36 +00:00