daniel
4d37c919cc
* Internal implementations of get_frame, get_caller_frame and get_caller_addr.
...
Not yet activated.
git-svn-id: trunk@3517 -
2006-05-14 08:39:19 +00:00
florian
9e00f894a9
+ support for unaligned function
...
git-svn-id: trunk@3350 -
2006-04-29 11:15:29 +00:00
peter
ecdb5df2d6
* fix alignment of tdoublearray by using a variant record
...
git-svn-id: trunk@3071 -
2006-03-29 06:40:47 +00:00
Jonas Maebe
a15505521c
* fixed handling of wrong invocations of slice + improved error reporting
...
git-svn-id: trunk@2614 -
2006-02-16 20:27:31 +00:00
Jonas Maebe
dc5c79194f
* fixed SETTEXTBUF
...
git-svn-id: trunk@2566 -
2006-02-14 10:35:24 +00:00
Jonas Maebe
cd70b38e8b
* kill warnings about non-longint code parameters with val()
...
which popped up again after yesterday's patches to the
potential range error warnings
git-svn-id: trunk@2508 -
2006-02-10 10:08:07 +00:00
Jonas Maebe
5007ae7197
* fixed web bug #4724 (don't allow inc/dec(pointer,pointer)
...
* more accurate error postitions for inc/dec errors
git-svn-id: trunk@2502 -
2006-02-09 18:18:47 +00:00
Jonas Maebe
d11329f9cd
* openstrings and openarrays don't have to by valid in order to use
...
high()/low() on them
git-svn-id: trunk@2484 -
2006-02-08 20:30:49 +00:00
peter
232555904e
* symtablestack cleanup and rewrite
...
git-svn-id: trunk@2448 -
2006-02-05 22:24:18 +00:00
Jonas Maebe
58381ff7b6
* made chararray handling 98% TP-compatible, fixes web bugs 3012
...
and 4080. The compatibility differences are:
a) writing a chararray which is zero-based but not zero-
terminated does not cause a buffer overflow
b) non-zero-based chararrays can also be read
The difference was that previously, all chararrays were treated
as pchars. In TP/Delphi (and now also in FPC), this is only done
for zero-based chararrays. For non-zero-based ones, the entire
contents of the array should always be used (including #0 's).
The default parameters in the system unit for the chararray
helpers are to avoid having to use a define for bootstrapping.
git-svn-id: trunk@2152 -
2006-01-04 10:05:10 +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
46ecdc8f94
* allow pred/succ on non continous enumerations in delphi mode
...
git-svn-id: trunk@1878 -
2005-12-04 18:35:19 +00:00
peter
5abb9d68f6
* prevent warning for val with second parameter not being a longint
...
git-svn-id: trunk@1463 -
2005-10-18 08:26:29 +00:00
florian
8af13ed6ae
* fixed result type conversion for sqrt/sqr
...
git-svn-id: trunk@1425 -
2005-10-16 16:39:00 +00:00
florian
71b90d4d00
+ slice implemented
...
git-svn-id: trunk@1384 -
2005-10-15 16:48:27 +00:00
florian
19e97e4da2
+ use sse for sqrt if possible
...
* same optimization for sqrt as for sqr
git-svn-id: trunk@1266 -
2005-10-03 12:47:05 +00:00
florian
6371333361
+ sqr uses sse on x86 if possible
...
* the result type of sqr is equal to the argument in case of usual floats
git-svn-id: trunk@1265 -
2005-10-03 12:31:31 +00:00
florian
77db0e5185
+ length(<variant>);
...
git-svn-id: trunk@1154 -
2005-09-22 08:51:23 +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
2f8fe7d2e6
- readln(<pchar>) forbidden, there is no way to prevent an buffer overflow, fixes 4227
...
git-svn-id: trunk@810 -
2005-08-07 09:18:21 +00:00
peter
f2f968f48a
* fix overflow checking for inc(cardinal,x) and inc(pointer,x)
...
git-svn-id: trunk@593 -
2005-07-06 08:01:39 +00:00
peter
6846195a6c
* insert explicit typecast to left type of inc(left,right) before
...
assigning the value after an addn
* for inc(pointer,X) convert X to sinttype instead of ptrinttype
to support also negative values of X
git-svn-id: trunk@587 -
2005-07-05 07:15:50 +00:00
florian
7cd67ea3f0
* node optimizer branch merged
...
* gotonode and gotolabel refactored
* -Nu added to enable for loop unrolling
git-svn-id: trunk@446 -
2005-06-19 17:42:10 +00:00
peter
f67de71de2
* insert typeconv to ptrint for all inc(pointer) operations
...
git-svn-id: trunk@144 -
2005-05-29 19:17:31 +00:00
Jonas Maebe
0115a0a38e
* convert inc/dec(pointertype) to add/sub if overflow checking is turned on
...
(fixes web bug #4004 )
git-svn-id: trunk@136 -
2005-05-29 11:19:40 +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
2d62e884c8
* only give warnings for uninitialized variables in low()/high()
...
if the value is calculated at runtime
2005-04-15 15:50:18 +00:00
peter
3f9d6ab32f
* add hint when passing an uninitialized variable to a var parameter
2005-03-25 22:20:18 +00:00
Jonas Maebe
9fc51ed8f0
* terrornode.create -> cerrornode.create
2005-03-25 21:46:06 +00:00
peter
dbcfe36b70
* check parameters of str() better
2005-03-16 21:24:43 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
peter
50d0ba7a7f
* low(var) var must be valid
2005-02-04 16:30:56 +00:00
florian
020bbc8913
* another improvement of pi handling
2005-01-23 21:47:14 +00:00
florian
cc9534cf41
+ added pi bit pattern to the compiler, so pi should always be correct
2005-01-23 21:09:11 +00:00
peter
2b6456fe16
* procvar handling for tp procvar mode fixed
...
* proc to procvar moved from addrnode to typeconvnode
* inlininginfo is now allocated only for inline routines that
can be inlined, introduced a new flag po_has_inlining_info
2004-12-05 12:28:10 +00:00
peter
08d0d3b73c
* fixed read temp for result
2004-11-26 22:33:00 +00:00
peter
9a64d34d34
* add checks for filedef type to prevent crashes
2004-11-21 21:27:31 +00:00
peter
89b1b583c9
* ttempcreatenode.create_reg merged into .create with parameter
...
whether a register is allowed
* funcret_paraloc renamed to funcretloc
2004-11-21 17:54:59 +00:00
peter
4d8460ec2f
* float routines all use internproc and compilerproc helpers
2004-11-21 15:35:23 +00:00
peter
95e0ed26f8
* use helper call to retrieve address of input/output to reduce
...
code that is generated in the main program for loading the
threadvar
2004-11-09 23:10:22 +00:00
peter
6458bd0ce1
* tvarsym splitted
2004-11-08 22:09:58 +00:00
peter
2e161c5e9e
* nf_internal flag for internal inserted typeconvs. This will
...
supress the generation of warning/hints
2004-11-02 12:55:16 +00:00
florian
239dd7121e
- removed unnecessary printnode
2004-11-01 18:26:52 +00:00
florian
73c30d6579
* fixed arm compilation with cgutils
...
* ...
2004-11-01 17:41:28 +00:00
peter
c95a859f0a
* generic tlocation
...
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
peter
4978a7635a
* another fix for reading of subranges
2004-09-16 16:32:27 +00:00
peter
17f31d70c2
* fix for read(subranges) with subrange typ already being sinttype
2004-09-13 20:32:06 +00:00
peter
b815890d49
* fix sqr() and abs() constant range check errors
2004-08-25 15:56:35 +00:00
florian
120c165a62
* constant floating point assignments etc. are now overflow checked
...
if Q+ or R+ is turned on
2004-08-08 16:00:56 +00:00
Jonas Maebe
c7fbf7b11b
+ (incomplete) node_complexity function to assess the complexity of a
...
tree
+ support for inlining value and const parameters at the node level
(all procedures without local variables and without formal parameters
can now be inlined at the node level)
2004-07-15 19:55:39 +00:00
olle
e35eb9986b
+ added Ord(pointer) for macpas
2004-07-14 21:40:52 +00:00
Jonas Maebe
1f338ade0d
* fix for web bug #3210
2004-07-14 14:38:35 +00:00
florian
8a9758c5e2
* logs truncated
2004-06-20 08:55:28 +00:00
peter
0ac4983a9b
* remove obsolete cardinal() typecasts
2004-06-18 15:16:46 +00:00
florian
588e2c38bf
* dwarf branch merged
2004-06-16 20:07:06 +00:00
peter
13ee9660a4
* inc(x,y) makes y always of type x to prevent 64bit operations
...
when x is a u32bit and y is signed
2004-05-28 21:15:20 +00:00
peter
b86f2c6a25
* methodpointer is loaded into a temp when it was a calln
2004-05-23 18:28:40 +00:00
peter
6b96b70118
* fixed operator overload allowing for pointer-string
...
* replaced some type_e_mismatch with more informational messages
2004-03-18 16:19:03 +00:00
peter
c844c5a505
* procvar cleanup
2004-02-20 21:55:59 +00:00
Jonas Maebe
0b1069b6ab
+ some more usage of register temps
2004-02-04 18:45:29 +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
Jonas Maebe
694eee6cae
+ support to store ttempcreate/ref/deletenodes in registers
...
* put temps for withnodes and some newnodes in registers
Note: this currently only works because calling ungetregister()
multiple times for the same register doesn't matter. We need again
a way to specify that a register is currently a regvar and as such
should not be freed when you call ungetregister() on it.
2004-02-03 16:46:51 +00:00
florian
e35b683e4d
+ added prefetch(const mem) support
2004-02-02 20:41:59 +00:00
daniel
97e87aaebc
* reginfo now also only allocated during register allocation
...
* third round of gdb cleanups: kick out most of concatstabto
2004-01-26 16:12:27 +00:00
Jonas Maebe
a75ef67bfd
* properly fixed assigned() mess (by handling it separately in ncginl)
...
-> all assigned()-related tests in the test suite work again
2003-12-31 20:47:02 +00:00
peter
ae6be6bc0e
* support type convs for write typed
2003-12-27 22:27:55 +00:00
Jonas Maebe
fd8625f3eb
* if there are assertions, include pi_do_call in procinfo.flags
2003-12-08 21:17:12 +00:00
peter
90a0c832e4
* Initialize() added
2003-11-29 16:19:54 +00:00
peter
f663d2488f
* cross unit inlining fixed
2003-11-10 22:02:52 +00:00
peter
96f9973b46
* taicpu_abstract.oper[] changed to pointers
2003-10-21 15:15:35 +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
420c1cdfe1
* don't call firstpass in resulttypepass
2003-09-23 21:10:11 +00:00
peter
8af51ea6d3
* locals and paras are allocated in the code generation
...
* tvarsym.localloc contains the location of para/local when
generating code for the current procedure
2003-09-23 17:56:05 +00:00
peter
76a53a375d
* varspez in calls to push_addr_param
2003-09-16 16:17:01 +00:00
florian
eb9a587759
+ support of NaN and Inf in the compiler as values of real constants
2003-09-06 16:47:24 +00:00
peter
0dceec9a64
* current_procdef removed, use current_procinfo.procdef instead
2003-06-13 21:19:30 +00:00
Jonas Maebe
4d70aebb1b
* constant evaluation of trunc() and round() now also gives 64 bit
...
results
2003-05-31 21:29:04 +00:00
Jonas Maebe
cb279b2029
* changed tt_persistant to tt_persistent :)
...
* tempcreatenode now doesn't accept a boolean anymore for persistent
temps, but a ttemptype, so you can also create ansistring temps etc
2003-05-17 13:30:08 +00:00
peter
26d78ff5c9
* moved implicit exception frame from ncgutil to psub
...
* constructor/destructor helpers moved from cobj/ncgutil to psub
2003-05-11 21:37:03 +00:00
peter
1a2eedd767
* self moved to hidden parameter
...
* removed hdisposen,hnewn,selfn
2003-05-09 17:47:02 +00:00
peter
60978ba89c
* aktprocdef renamed to current_procdef
...
* procinfo renamed to current_procinfo
* procinfo will now be stored in current_module so it can be
cleaned up properly
* gen_main_procsym changed to create_main_proc and release_main_proc
to also generate a tprocinfo structure
* fixed unit implicit initfinal
2003-04-27 11:21:32 +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
Jonas Maebe
9879f684d2
* don't allow erroneuos read(typedfile,...) statements
2002-12-30 12:54:45 +00:00
Jonas Maebe
8bbf574e8b
* fixed web bug #2296
2002-12-30 12:48:07 +00:00
peter
46ed8eb932
* fixed pushing of records>8 bytes with stdcall
...
* simplified hightree loading
2002-12-17 22:19:33 +00:00
florian
1da30f2610
* tcallnode.paraitem introduced, all references to defcoll removed
2002-12-15 21:30:12 +00:00
peter
1b116848d8
* cdecl array of const fixes
2002-11-27 20:04:38 +00:00
peter
67153fd9a1
* the never ending story of tp procvar hacks
2002-11-27 15:33:46 +00:00
peter
34e8266af4
* case statement inlining added
...
* fixed inlining of write()
* switched statementnode left and right parts so the statements are
processed in the correct order when getcopy is used. This is
required for tempnodes
2002-11-27 02:37:12 +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
peter
ef708fdab9
* Swap(QWord) constant support
2002-11-18 18:33:51 +00:00
peter
a496dbe1ff
* pass proccalloption to ret_in_xxx and push_xxx functions
2002-11-18 17:31:54 +00:00
peter
2facc2b2f7
* load threadvar input/output variable in temp
2002-11-16 17:59:31 +00:00
peter
bfd72ad5d5
* merged changes from 1.0.7 up to 04-11
...
- -V option for generating bug report tracing
- more tracing for option parsing
- errors for cdecl and high()
- win32 import stabs
- win32 records<=8 are returned in eax:edx (turned off by default)
- heaptrc update
- more info for temp management in .s file with EXTDEBUG
2002-11-15 01:58:45 +00:00
florian
6459b97052
+ write(ln) support for variants added
2002-10-10 19:24:28 +00:00
florian
161d1b923e
+ several widestring/pwidechar related stuff added
2002-10-10 16:07:57 +00:00
peter
3f32669ded
* Length(PChar) supported
2002-10-05 14:21:08 +00:00