Commit Graph

3625 Commits

Author SHA1 Message Date
peter
aff68fdfd4 * asw support 2001-10-18 20:55:18 +00:00
Jonas Maebe
daa7693b45 * property parameters are now fully parsed by the firstcall code to
check for the correct amount and types (merged)
2001-10-18 16:30:38 +00:00
florian
451ca157c4 * several widechar fixes, case works now 2001-10-17 22:41:04 +00:00
peter
ec9e4f4556 * fpc -PB instead of -P?
* check if fpc exists if not found fallback to ppc386
2001-10-16 20:52:34 +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
d8c104b25d * fixed goto/label/try bugs 2001-10-16 15:10:34 +00:00
peter
393ef5c2c2 * cross compiler support 2001-10-15 21:46:03 +00:00
Jonas Maebe
350a2ad8e3 * better size checking of data (now an error is returned for
"array[longint] of longint") ("merged")
2001-10-15 13:16:26 +00:00
peter
6f2baf0fcf * regenerated 2001-10-14 21:43:09 +00:00
Jonas Maebe
66567674ba + also replace mem references in modify operands with regs 2001-10-14 11:50:21 +00:00
Jonas Maebe
32deddeab1 * finetuned register allocation info for assignments 2001-10-14 11:49:51 +00:00
Jonas Maebe
42002892ab * fixed bug with using procedures as procvar parameters in TP/Delphi mode 2001-10-13 09:01:14 +00:00
Jonas Maebe
9a5955d79f * fixed crashing bug in unit reference counting 2001-10-12 20:27:43 +00:00
peter
b5d198ee3c * duplicate imports fix for gdb (merged) 2001-10-12 16:06:27 +00:00
peter
e178da120d * pathexists fix (merged) 2001-10-12 16:06:17 +00:00
peter
81825432d7 * more registers (merged) 2001-10-12 16:05:36 +00:00
peter
09178604e9 * system lib search fixed (merged) 2001-10-12 16:05:34 +00:00
peter
68bc48c96a * nested inline fix (merged) 2001-10-12 16:04:32 +00:00
peter
5beb1658ce * fix bug #1634 (merged) 2001-10-12 16:02:34 +00:00
Jonas Maebe
82f7cf0957 + memory references are now replaced by register reads in "regular"
instructions (e.g. "addl ref1,%eax" will be replaced by "addl %ebx,%eax"
    if %ebx contains ref1). Previously only complete load sequences were
    optimized away, but not such small accesses in other instructions than
    mov/movzx/movsx
2001-10-12 13:58:05 +00:00
Jonas Maebe
97c1152c6d * finer granularity for allocation of reused/replaced registers 2001-10-12 13:55:03 +00:00
Jonas Maebe
eefd8e9f86 * fixed small crashing bug ("merged")
* some more optimizations are now only done once at the end of the optimizing
    cycle instead of every iteration
2001-10-12 13:53:24 +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
bdf2593265 * fixed range check errors 2001-10-04 14:33:28 +00:00
Jonas Maebe
588c9858e0 * changed error message for explicit self parameter (it's allowed again
for normal procedures) (merged)
2001-10-01 13:54:55 +00:00
Jonas Maebe
2c87e58a77 * allow self parameter for normal procedures again (because Kylix allows
it too) ("merged")
2001-10-01 13:38:44 +00:00
Jonas Maebe
da7d733384 + implemented second_int_to_real
* fixed small bug in second_int_to_int
2001-10-01 12:17:26 +00:00
peter
59cb901446 * gdb fixes merged 2001-09-30 21:29:47 +00:00
peter
7312815d01 * int64->boolean fixed 2001-09-30 21:28:34 +00:00
peter
27f1d79fd1 * much cleaner default source and target setting 2001-09-30 21:27:59 +00:00
peter
f709d48789 * removed obsolete newst defines 2001-09-30 21:26:42 +00:00
peter
0d27041955 * merged delphi comment fix 2001-09-30 21:23:59 +00:00
peter
f15271ad22 * merged absolute support for constants 2001-09-30 21:15:48 +00:00
Jonas Maebe
4be6d060a4 - removed unused units 2001-09-30 16:19:58 +00:00
Jonas Maebe
39f67208a8 * made most constant and mem handling processor independent 2001-09-30 16:17:17 +00:00
Jonas Maebe
a40c2b8dd0 - removed unused units form uses-clause and unused local vars 2001-09-30 16:16:28 +00:00
Jonas Maebe
f33d23922a - removed unnecessary i386 pass_2 of as- and isnode and added dummy generic ones 2001-09-30 16:12:46 +00:00
carl
51148594b0 * updated for UNIX compatiblity 2001-09-29 23:13:32 +00:00
Jonas Maebe
7649deb8c3 - removed files, already integrated in main compiler dir 2001-09-29 21:36:06 +00:00
Jonas Maebe
170234049b - removed unused code (replaced by processor independent code) 2001-09-29 21:34:04 +00:00
Jonas Maebe
c3e0203058 * support 64bit operands in def_cgsize() 2001-09-29 21:33:47 +00:00
Jonas Maebe
32759c4953 * small optimization 2001-09-29 21:33:30 +00:00
Jonas Maebe
ca8623dfb6 + implemented bool_to_int and int_to_int (+ helper in nppcutil) 2001-09-29 21:33:12 +00:00
Jonas Maebe
fc6d300a95 * almost all second pass typeconvnode helpers are now processor independent
* fixed converting boolean to int64/qword
  * fixed register allocation bugs which could cause internalerror 10
  * isnode and asnode are completely processor indepent now as well
  * fpc_do_as now returns its class argument (necessary to be able to use it
    properly with compilerproc)
2001-09-29 21:32:46 +00:00
Jonas Maebe
fac1fb3d6c * fixed bug in a_load_reg_reg + implemented a_call 2001-09-29 21:32:19 +00:00
Jonas Maebe
eea498a0ed * moved to main compiler dir 2001-09-28 20:42:00 +00:00
Jonas Maebe
fa0a56f559 * several additions, almost complete (only some problems with resflags left) 2001-09-28 20:40:05 +00:00
Jonas Maebe
b374bec6fb * changed all flow control structures (except for exception handling
related things) to processor independent code (in new ncgflw unit)
  + generic cgobj unit which contains lots of code generator helpers with
    global "cg" class instance variable
  + cgcpu unit for i386 (implements processor specific routines of the above
    unit)
  * updated cgbase and cpubase for the new code generator units
  * include ncgflw unit in cpunode unit
2001-09-28 20:39:32 +00:00
Jonas Maebe
8e70f9aaf8 * fixed big bug in my previous changes (the arguent for bts/btr is always
a 32 bit register, but it wasn't cleared properly if the value was only
    an 8 bit one)
2001-09-28 20:38:51 +00:00
Jonas Maebe
49f399d750 * fixed bug reported by sg about self not being restored after calling
setlength
2001-09-27 13:03:18 +00:00