peter
cc8c4d7093
* moved more routines from cga/n386util
2002-04-25 20:16:38 +00:00
carl
6101b737db
+ target_info.size_of_pointer -> pointer_size
...
+ some cleanup of unused types/variables
2002-04-15 19:08:22 +00:00
carl
6e5e687dc6
+ update documentation
2002-04-07 13:38:48 +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
Jonas Maebe
2965034fca
* fixed web bug #1907
...
* fixed some other procvar related bugs (all related to accepting procvar
constructs with either too many or too little parameters)
(both merged, includes second typo fix of pexpr.pas)
2002-04-01 20:57:13 +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
2b3898aeff
* adapted ranges of native types to int64 (e.g. high cardinal is no
...
longer longint($ffffffff), but just $fffffff in psystem)
* small additional fix in 64bit rangecheck code generation for 32 bit
processors
* adaption of ranges required the matching talgorithm used for selecting
which overloaded procedure to call to be adapted. It should now always
select the closest match for ordinal parameters.
+ inttostr(qword) in sysstr.inc/sysstrh.inc
+ abs(int64), sqr(int64), sqr(qword) in systemh.inc/generic.inc (previous
fixes were required to be able to add them)
* is_in_limit() moved from ncal to types unit, should always be used
instead of direct comparisons of low/high values of orddefs because
qword is a special case
2002-01-24 12:33:52 +00:00
peter
142b4fb7f8
* proc_to_procvar_equal fixed for procvar-procvar
2002-01-06 21:50:44 +00:00
peter
d24762aeba
* removed uauto from orddef, use new range_to_basetype generating
...
the correct ordinal type for a range
2002-01-06 12:08:15 +00:00
Jonas Maebe
c68fc3adf9
* added type conversion from procvar to procvar (if their arguments are
...
convertable, two procvars are convertable too) ("merged")
2001-12-17 12:49:08 +00:00
Jonas Maebe
cd378a2881
* fixed type conversions from dynamic arrays to open arrays
2001-12-10 14:34:04 +00:00
peter
e45bb82d81
* freemem change to value parameter
...
* torddef low/high range changed to int64
2001-12-03 21:48:41 +00:00
florian
9f9c1700b0
* variant paramter passing and functions results fixed
2001-11-14 01:12:44 +00:00
Jonas Maebe
a87a30b831
* fixed web bug #1665 (allow char to chararray type conversion) ("merged")
2001-11-02 23:24:11 +00:00
peter
d2e1952377
* procsym definition rewrite
2001-11-02 22:58:00 +00:00
peter
ac400051bd
* allow assignment of overloaded procedures to procvars when we know
...
which procedure to take
2001-10-28 17:22:25 +00:00
peter
e37dbf904d
* calling convention rewrite
2001-10-25 21:22:32 +00:00
peter
87f83123d3
* allow enum(enum)
2001-10-22 21:21:09 +00:00
Jonas Maebe
2b5619dfd2
* allow typeconversion of open array-of-char to string
2001-10-22 15:13:49 +00:00
peter
17d6dded66
* interface 2 guid support
...
* guid constants support
2001-10-20 19:28:37 +00:00
florian
451ca157c4
* several widechar fixes, case works now
2001-10-17 22:41:04 +00:00
Jonas Maebe
388e8a76a8
* auto-converting from int64 to real is again allowed for all modes
...
(it's allowed in Delphi too)
2001-10-16 17:15:44 +00:00
Jonas Maebe
f256a47f04
* compilerproc implementation of set addition/substraction/...
...
* changed the declaration of some set helpers somewhat to accomodate the
above change
* i386 still uses the old code for comparisons of sets, because its
helpers return the results in the flags
* dummy tc_normal_2_small_set type conversion because I need the original
resulttype of the set add nodes
NOTE: you have to start a cycle with 1.0.5!
2001-09-03 13:27:41 +00:00
peter
d1d504ac2d
* don't allow int64->real for delphi mode
2001-09-02 21:15:34 +00:00
florian
7db13ea48f
* some bugs fix:
...
- overload; with external procedures fixed
- better selection of routine to do an overloaded
type case
- ... some more
2001-08-19 21:11:20 +00:00
peter
ca8d604964
* various widestring updates, it works now mostly without charset
...
mapping supported
2001-07-08 21:00:14 +00:00
Jonas Maebe
77a99eecdf
* fixed inconsistent handling of procvars in FPC mode (sometimes @ was
...
required to assign the address of a procedure to a procvar, sometimes
not. Now it is always required) (merged)
2001-06-29 14:16:57 +00:00
florian
05cfc07952
* some more support for widechars commited especially
...
regarding type casting and constants
2001-05-08 21:06:30 +00:00
florian
7e8bc49786
* more variant support
2001-04-22 22:46:49 +00:00
peter
0c03535b5b
* registration of targets and assemblers
2001-04-18 22:01:53 +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
florian
64d7d5682e
* applied several fixes to get the DD8 Delphi Unit compiled
...
e.g. "forward"-interfaces are working now
2001-04-04 21:30:42 +00:00
peter
4e2655cdc5
* resulttype rewrite
2001-04-02 21:20:29 +00:00
florian
e964449b71
+ some stuff to compile FreeCLX added
2001-03-23 00:16:07 +00:00
Jonas Maebe
4530233a92
+ support for arraydefs in is_signed (for their rangetype, used in rangechecks)
2001-03-03 12:38:33 +00:00
peter
684970ea22
* merged generic m68k updates from fixes branch
2001-02-26 19:44:52 +00:00
Jonas Maebe
c7af813c76
* fixed bug in type checking for compatibility of set elements (merged)
...
* released fix in options.pas from Carl also for FPC (merged)
2001-02-26 12:47:46 +00:00
peter
b47af8e4dd
* tvarrec -> array of const fixed
2001-02-20 21:44:25 +00:00
Jonas Maebe
4bf53f34e3
* fixed web bug #1363 (merged)
2001-01-22 11:20:15 +00:00
peter
49a0170412
* string isn't compatible with array of char
2001-01-08 21:43:38 +00:00
peter
32b9cdb7cf
+ new tlinkedlist class (merge of old tstringqueue,tcontainer and
...
tlinkedlist objects)
2000-12-25 00:07:25 +00:00
peter
08a2626652
* fixed bug #1286
2000-12-22 22:38:12 +00:00
Jonas Maebe
f2c918935a
- removed obsolete special case for range checking of cardinal constants
...
at compile time
2000-12-20 15:59:40 +00:00
Jonas Maebe
4b7aa484f1
* fixed range checking of cardinal constants
...
* fixed range checking of "qword constants" (they don't really exist,
but values > high(int64) were set to zero if assigned to qword)
2000-12-11 19:13:54 +00:00
Jonas Maebe
44b0e19ffe
* fix for web bug #1245 : arrays of char with size >255 are now passed to
...
overloaded procedures which expect ansistrings instead of shortstrings
if possible
* pointer to array of chars (when using $t+) are now also considered
pchars
2000-12-08 14:06:11 +00:00
Jonas Maebe
5d4f432257
* testrange now always cuts a constant to the size of the destination
...
if a rangeerror occurred
* changed an "and $ffffffff" to "and (int64($fffffff) shl 4 + $f" to
work around the constant evaluation problem we currently have
2000-11-20 15:52:47 +00:00
Jonas Maebe
a5f9476ddf
* fix in testrange so that 64bit constants are properly truncated when
...
assigned to 32bit vars
2000-11-13 14:42:41 +00:00
florian
5694e05857
* some bugs with interfaces and NIL fixed
2000-11-13 11:30:54 +00:00
florian
1462deb207
* interfaces are basically running
2000-11-12 23:24:10 +00:00
peter
efcc15cfee
* farpointer and normal pointer aren't compatible
2000-11-11 16:13:31 +00:00