peter
a496dbe1ff
* pass proccalloption to ret_in_xxx and push_xxx functions
2002-11-18 17:31:54 +00:00
florian
bf32e2d2cf
+ tcg.direction is used now
2002-09-07 19:34:08 +00:00
peter
dcd9e0107c
* old logs removed and tabs fixed
2002-09-07 15:25:00 +00:00
carl
6c2bede5a8
* second part bug report 1996 fix, testrange in cordconstnode
...
only called if option is set (also make parsing a tiny faster)
2002-09-07 12:16:03 +00:00
peter
8a75d59544
* fixed parsing of register names with lowercase
2002-09-02 18:40:52 +00:00
peter
90308521d5
* fixed direct assembler for i386
2002-09-01 14:43:12 +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
florian
e313bab4ff
* first part of procinfo rewrite
2002-08-17 09:23:33 +00:00
carl
745efb2c47
* issameref() to test if two references are the same (then emit no opcodes)
...
+ ret_in_reg to replace ret_in_acc
(fix some register allocation bugs at the same time)
+ save_std_register now has an extra parameter which is the
usedinproc registers
2002-08-16 14:24:57 +00:00
peter
425bb45ddc
* renamed current_library to objectlibrary
2002-08-11 14:32:25 +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
carl
6b9e686ae3
+ reading of used registers in assembler routines is now
...
cpu-independent
2002-08-09 19:11:44 +00:00
florian
b136cecacd
* first part of ppc calling conventions fix
2002-08-06 20:55:20 +00:00
florian
3fe0229843
+ added direct assembler reader for PowerPC
2002-07-28 20:45:22 +00:00
florian
59abf2555b
* types.pas renamed to defbase.pas because D6 contains a types
...
unit so this would conflicts if D6 programms are compiled
+ Willamette/SSE2 instructions to assembler added
2002-07-20 11:57:52 +00:00
daniel
399036f1c2
* State tracker work
...
* The whilen and repeatn are now completely unified into whilerepeatn. This
allows the state tracker to change while nodes automatically into
repeat nodes.
* Resulttypepass improvements to the notn. 'not not a' is optimized away and
'not(a>b)' is optimized into 'a<=b'.
* Resulttypepass improvements to the whilerepeatn. 'while not a' is optimized
by removing the notn and later switchting the true and falselabels. The
same is done with 'repeat until not a'.
2002-07-19 11:41:34 +00:00
florian
31da813d1d
* exit is now a syssym instead of a keyword
2002-07-16 15:34:20 +00:00
florian
336808f6c3
* start of the new generic parameter handling
2002-07-11 14:41:27 +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
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
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