Jonas Maebe
67431891e0
* fixed resulttype of unaryminusn for qwords on 32 bit platforms (was
...
qword, now is int64)
* simplified currency checking in unaryminusn pass_typecheck
git-svn-id: trunk@9524 -
2007-12-25 23:43:07 +00:00
peter
6b8aed593f
* remove registers{int/mmx/fpu} from firstpass
...
* small cleanups of unused variables in firstpass
* node_resources_fpu() created to get an approximation of the
required fpu registers
* for the moment use node_complexity in the CG until the
node_resource_int() is created
git-svn-id: trunk@8655 -
2007-09-26 21:12:01 +00:00
Jonas Maebe
cc0bd74ea0
- removed unused variable after div-by-zero simplify patch
...
git-svn-id: trunk@8359 -
2007-09-02 21:06:50 +00:00
Jonas Maebe
ac22ff09da
* detect division by zero in tmoddiv.simplify (mantis #9499 )
...
git-svn-id: trunk@8341 -
2007-08-30 17:21:29 +00:00
peter
8bd95f4dd4
* keep signess of orginal variable in shl/shr operation
...
git-svn-id: trunk@8143 -
2007-07-22 22:56:35 +00:00
Jonas Maebe
28bab3fb4f
- removed some unused variables
...
* fixed some (harmless) ptrint warnings
- removed some commented code in agppcmpw
* added one missing field in a typed constant in cp1251
git-svn-id: trunk@8081 -
2007-07-17 13:57:15 +00:00
yury
afdd053172
* fixed unary minus in softfloat mode (bug #8737 ).
...
git-svn-id: trunk@8047 -
2007-07-14 10:09:37 +00:00
daniel
9adb202a92
* Rework the constexprint to allow operations from low(int64) to high(qword).
...
+ Some initial work on a formaldef which also carries the typinfo of a parameter.
git-svn-id: trunk@7639 -
2007-06-13 07:41:18 +00:00
Jonas Maebe
7bd8d0200e
* handle mod/div between a cardinal/qword and a smaller unsigned variable
...
(byte, word, postive subrange) as an unsigned operation (mantis #8870 )
git-svn-id: trunk@7334 -
2007-05-14 19:24:33 +00:00
tom_at_work
89257f94c6
* do not convert input of unaryminusnode to sint if the original is currency; fixes tfloattostr for 64 bit platforms which use int64 as currency type
...
git-svn-id: trunk@6110 -
2007-01-21 22:09:32 +00:00
Jonas Maebe
7f24462fcb
* warn when doing not(uninitialised_variable)
...
git-svn-id: trunk@6000 -
2007-01-16 16:34:44 +00:00
yury
bcd86ef782
* added support for very big/small currency constants for non x86 CPUs.
...
git-svn-id: trunk@5937 -
2007-01-13 12:12:20 +00:00
florian
e3f37f98ae
* correct handling of -<currency> on non x86 CPUs
...
git-svn-id: trunk@5896 -
2007-01-11 19:34:10 +00:00
Jonas Maebe
4ae9ac969a
* implicitly call procvars in tp/delphi modes for divmodn, shlshrn
...
and notn (mantis 7200)
git-svn-id: trunk@5724 -
2006-12-27 14:29:23 +00:00
peter
658c46b903
* remove tdictionary and tindexarray
...
* symtables based on TFPHashObjectList and TFPObjectList
* rename torddef.typ to torddef.ordtype
* rename tfloatdef.typ to tfloatdef.floattype
* rename tdef.deftype to tdef.typ
* remove obsolete browser code, browcol is kept so the ide
can still be compiled
git-svn-id: trunk@5192 -
2006-11-03 00:30:30 +00:00
florian
85d63d9fa9
* settings refactored
...
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
peter
3078a1927f
* remove ttype
...
* rename old ttype variables *type to *def
* rename resulttypepass to pass_typecheck
* rename pass_2 to pass_generate_code
git-svn-id: trunk@5077 -
2006-10-29 22:19:39 +00:00
florian
67aa148602
* fixed softfpu support
...
+ softfpu enabled for arm-gba
git-svn-id: trunk@4939 -
2006-10-15 21:31:27 +00:00
florian
9e66674ff9
+ first part of qwordbool implementation
...
git-svn-id: trunk@4462 -
2006-08-19 23:16:17 +00:00
Jonas Maebe
d75b19e484
* removed/conditionalised several unused variables
...
git-svn-id: trunk@4194 -
2006-07-14 19:44:54 +00:00
florian
6387c36346
* fixed make cycle
...
git-svn-id: trunk@3871 -
2006-06-15 16:46:07 +00:00
Jonas Maebe
5fa53a1a8c
* optimize away "x mod 1" and "x div 1" + test (ppc code generator handled
...
"div 1" wrongly)
git-svn-id: trunk@3868 -
2006-06-15 15:53:43 +00:00
florian
281d6907d2
* fixed overloading of div operator
...
git-svn-id: trunk@3513 -
2006-05-13 21:37:54 +00:00
peter
b6e35a200e
* rewrite of optimizer options
...
git-svn-id: trunk@2901 -
2006-03-13 09:05:50 +00:00
Jonas Maebe
42ec76598c
* new categories for vs_*: vs_declared, vs_initialised, vs_read,
...
vs_written, vs_readwritten. vs_initialised is the old vs_assigned;
vs_used has been replaced by vs_read, vs_written and vs_readwritten
* the valid_for_*() routines in htypechk now get an extra parameter to
decide whether or not errors should be reported
git-svn-id: trunk@1913 -
2005-12-10 16:51:26 +00:00
florian
a53c9e2666
* fixed stupid copy/paste which turned softfloat always off
...
* fixed wince softfloat compiler proc. to be correctly named also when used outside the system unit
git-svn-id: trunk@966 -
2005-08-28 21:08:23 +00:00
florian
adb193497d
+ softfloat support for wince
...
* more units are build for wince
git-svn-id: trunk@959 -
2005-08-28 12:40:43 +00:00
florian
e920b10d7a
+ nmat refactored to have simplify
...
git-svn-id: trunk@142 -
2005-05-29 16:00:51 +00:00
fpc
790a4fe2d3
* log and id tags removed
...
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
50778076c3
initial import
...
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
peter
3f9d6ab32f
* add hint when passing an uninitialized variable to a var parameter
2005-03-25 22:20:18 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
florian
8a9758c5e2
* logs truncated
2004-06-20 08:55:28 +00:00
florian
588e2c38bf
* dwarf branch merged
2004-06-16 20:07:06 +00:00
peter
07c67967cf
* fixed div qword
2004-05-28 21:14:34 +00:00
peter
c25228226d
* don't change sign for unsigned shl/shr operations
...
* cleanup for u32bit
2004-05-19 23:29:25 +00:00
peter
e661df03ee
* fixes to previous constant integer commit
2004-03-29 14:44:10 +00:00
peter
e46cdcea48
* constants ordinals now always have a type assigned
...
* integer constants have the smallest type, unsigned prefered over
signed
2004-03-23 22:34:49 +00:00
peter
05e0d83348
* operator overload chooses rewrite
...
* overload choosing is now generic and moved to htypechk
2004-02-24 16:12:39 +00:00
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
peter
451723647e
* symtable splitted, no real code changes
2000-10-31 22:02:46 +00:00
peter
38951f5ce1
* lot of compile updates for cg11
2000-10-01 19:48:23 +00:00
florian
a30886fbf6
* finally nadd.pas compiles
2000-09-27 21:33:22 +00:00
florian
5a855db55d
* more stuff fixed
2000-09-27 20:25:44 +00:00
peter
a71e44ac49
* use defines.inc
2000-09-24 15:06:10 +00:00
florian
83d20f9b14
* some fixes
2000-09-22 22:48:54 +00:00
florian
8b7be9c5dd
* more stuff converted
2000-09-22 22:09:54 +00:00
florian
d7abdc5840
* initial revision
2000-09-20 21:35:12 +00:00