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
8012731ede
*** empty log message ***
2004-02-04 19:22:27 +00:00
peter
ecfbbeffc3
* renamed xNNbittype to xNNinttype
...
* renamed registers32 to registersint
* replace some s32bit,u32bit with torddef([su]inttype).def.typ
2004-02-03 22:32:53 +00:00
florian
d7786f6246
* fixed generic shl/shr operations
...
+ added register allocation hook calls for arm specific operand types:
register set and shifter op
2004-01-23 15:12:49 +00:00
Jonas Maebe
e9eff10134
+ support for evaluating qword constant expressions (both arguments have
...
to be a qword, constants have to be explicitly typecasted to qword)
2003-12-09 21:17:04 +00:00
peter
95f132db3d
* set_varstate cleanup
2003-10-08 19:19:45 +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
peter
b9d09a4e5c
* preparations for different default calling conventions
...
* various RA fixes
2003-09-07 22:09:34 +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
Jonas Maebe
f8c0236bf4
* fixed expectloc of notnode for all processors that have flags
2003-05-24 16:32:34 +00:00
peter
1a2eedd767
* self moved to hidden parameter
...
* removed hdisposen,hnewn,selfn
2003-05-09 17:47:02 +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
c21ca3dfa0
+ added currency support based on int64
...
+ is_64bit for use in cg units instead of is_64bitint
* removed cgmessage from n386add, replace with internalerrors
2003-04-23 20:16:03 +00:00
peter
47489f2376
* firstpass uses expectloc
...
* checks if there are differences between the expectloc and
location.loc from secondpass in EXTDEBUG
2003-04-22 23:50:22 +00:00
peter
f3fc72095f
* splitted defbase in defutil,symutil,defcmp
...
* merged isconvertable and is_equal into compare_defs(_ext)
* made operator search faster by walking the list only once
2002-11-25 17:43:16 +00:00
Jonas Maebe
e3700b1d79
* fixed web bug #2139 : checking for division by zero fixed
2002-10-04 21:19:28 +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
daniel
b0364566d1
* Make Tprocdef.defs protected
2002-09-03 16:26:26 +00:00
peter
3486c0c668
* don't optimize not([lten,gten]) for setdefs
2002-08-25 11:32:33 +00:00
peter
160103faba
* fixed not(not()) removal
2002-08-25 09:10:58 +00:00
carl
9d4f336f74
+ fpu emulation helpers (ppu checking also)
2002-08-15 15:09:41 +00:00
carl
e212fa90d5
+ generic int_to_real type conversion
...
+ generic unaryminus node
2002-08-14 19:26:55 +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
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
da8b01e708
+ change unit use
2002-04-07 13:25:20 +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
peter
b4cc4b7b01
* removed compiler warnings
2002-03-04 19:10:11 +00:00
michael
30c1ee7971
* Compilation without mmx support fixed from Peter
2002-02-11 11:45:51 +00:00
Jonas Maebe
928493e3ba
* made 'mod powerof2' -> 'and' optimization processor independent
2001-12-29 15:27:24 +00:00
Jonas Maebe
92977ca6ee
* fixed fpuregister counting errors ("merged")
2001-12-27 15:33:58 +00:00
peter
d2e1952377
* procsym definition rewrite
2001-11-02 22:58:00 +00:00
Jonas Maebe
8a2c142e46
* fixed internalerror(10) due to previous fpu overflow fixes ("merged")
...
* fixed bug in n386add (introduced after compilerproc changes for string
operations) where calcregisters wasn't called for shortstring addnodes
* NOTE: from now on, the location of a binary node must now always be set
before you call calcregisters() for it
2001-10-12 13:51:51 +00:00
Jonas Maebe
a39cd8a580
* made multiplying, dividing and mod'ing of int64 and qword processor
...
independent with compilerprocs (+ small optimizations by using shift/and
where possible)
2001-09-05 15:22:09 +00:00
peter
43dea5a35f
* move class of definitions into type section for delphi
2001-09-02 21:12:06 +00:00
florian
9746f4c2d6
* some cg reorganisation
...
* some PPC updates
2001-08-26 13:35:06 +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
3b021ef283
* fix constant not evaluation
2001-04-05 21:00:27 +00:00
peter
759f678192
* move constant folding into det_resulttype
2001-04-04 22:42:39 +00:00
peter
4e2655cdc5
* resulttype rewrite
2001-04-02 21:20:29 +00:00
Jonas Maebe
1fb6eeab5e
* not (cardinal) now has cardinal instead of longint result (bug reported
...
in mailinglist) ("merged")
2001-03-20 18:11:03 +00:00
Jonas Maebe
ff333ffa1b
* fixed 'qword mod/div pos_const' to have qword result
2001-03-04 10:38:55 +00:00
peter
fd7d431a0c
* remove nasm hack
2001-02-20 21:48:17 +00:00
peter
e16486a958
* fixed wrong notes about locals
2001-01-06 18:28:39 +00:00
florian
00917cb46f
* the info about exception frames is stored now on the stack
...
instead on the heap
2001-01-05 17:35:50 +00:00
peter
32b9cdb7cf
+ new tlinkedlist class (merge of old tstringqueue,tcontainer and
...
tlinkedlist objects)
2000-12-25 00:07:25 +00:00
Jonas Maebe
519abba1ff
* 'resulttype of cardinal shl/shr x' is cardinal instead of longint
2000-12-16 15:54:01 +00:00
florian
b9796f6a7f
* unused units removed from uses clause
...
* some changes for widestrings
2000-11-29 00:30:30 +00:00