Commit Graph

110 Commits

Author SHA1 Message Date
Jonas Maebe
fe7eb08eef * fixed some memory leaks 2001-03-13 11:52:48 +00:00
peter
d8abf76f6b * getsym redesign, removed the globals srsym,srsymtable 2001-03-11 22:58:49 +00:00
peter
21fc432ada * noag386bin fix 2001-03-05 21:49:44 +00:00
peter
1b1f938c43 * changed to class with common TAssembler also for internal assembler 2001-03-05 21:39:11 +00:00
Jonas Maebe
2e3ba14936 * new rangecheck code now handles conversion between signed and cardinal types correctly 2001-03-04 10:26:56 +00:00
Jonas Maebe
af38291233 * simplified and optimized range checking code, FPC_BOUNDCHECK is no longer necessary 2001-03-03 12:41:22 +00:00
peter
05160462c9 * fpu fixes (merged) 2001-02-20 21:51:36 +00:00
peter
3ea409ab44 * tasm/masm fixes merged 2001-02-20 21:36:39 +00:00
peter
c72d1f4c76 * iret, lret fixes 2001-02-20 21:34:04 +00:00
Jonas Maebe
4e942c9a0f * simplified and optimized code generated for in-statements 2001-02-11 12:14:56 +00:00
peter
55d92375c4 * merged fix for bug #1327 2001-02-09 23:42:49 +00:00
Jonas Maebe
74c1d32ce9 * fixed web bug #1396: tpointerord is now a cardinal instead of a longint,
but added a hack in ncnv so that pointer(-1) still works
2001-02-08 13:09:03 +00:00
Jonas Maebe
40104b2a7a * fixed web bug #1391 2001-02-08 12:13:40 +00:00
Jonas Maebe
177ec922fe * fixed web bug #1383 2001-02-03 12:52:34 +00:00
peter
ffb25bce60 * fixed crash with new(precord), merged 2001-02-02 22:38:00 +00:00
florian
cfd15b7127 * behavior -Oa optimized 2001-01-27 21:29:35 +00:00
peter
acd6ede655 * fixed operand order that got mixed up for external writers after
my previous assembler block valid instruction check
2001-01-13 20:24:24 +00:00
peter
00c901b3c1 * check for valid asm instructions 2001-01-12 19:18:42 +00:00
Jonas Maebe
3fd4ce9c89 * really fixed problems with -Op2 opts (merged) 2001-01-10 10:29:36 +00:00
michael
d5ef327f9e + Patch from jonas so 1.0.2 can be used to cycle 2001-01-10 08:52:40 +00:00
peter
d61f29c799 * don't push high value for open array with cdecl;external; 2001-01-08 21:46:46 +00:00
peter
35a172090a * internalerror for string to chararray 2001-01-08 21:45:11 +00:00
Jonas Maebe
7725beb1e3 * fixed crashing bug to due previous changes 2001-01-07 15:51:17 +00:00
Jonas Maebe
b503c3e3b8 * fixed bug in call/jmp optimization with -Op1 and -Op2 2001-01-07 15:49:49 +00:00
Jonas Maebe
8b0adc1f23 * references to symbols were only decreased in taicpu.done for jmps, fixed 2001-01-07 15:48:56 +00:00
Jonas Maebe
e753af622e * fixed webbug 1323 2001-01-06 23:35:05 +00:00
Jonas Maebe
76ac79aace * fixed IE 10 (but code is less efficient now :( ) 2001-01-06 19:12:31 +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
Jonas Maebe
82cd898e2e + initial implementation (still needs to be made more modular) 2001-01-04 11:24:19 +00:00
Jonas Maebe
4c8ca9774f + implemented/fixed docompare() mathods for all nodes (not tested)
+ nopt.pas, nadd.pas, i386/n386opt.pas: optimized nodes for adding strings
    and constant strings/chars together
  * n386add.pas: don't copy temp strings (of size 256) to another temp string
    when adding
2000-12-31 11:14:10 +00:00
Jonas Maebe
2e5e5eb1a4 * optimized loadshortstring a bit 2000-12-31 11:02:12 +00:00
Jonas Maebe
87405bf710 * fixed potential bug in writeToMemDestroysContents 2000-12-31 11:00:31 +00:00
peter
1a9f0943cb * unrolled loops in taicpu.destroy 2000-12-26 15:56:17 +00:00
peter
32b9cdb7cf + new tlinkedlist class (merge of old tstringqueue,tcontainer and
tlinkedlist objects)
2000-12-25 00:07:25 +00:00
peter
b7c591affd * object to class for ow/og objects
* split objectdata from objectoutput
2000-12-23 19:59:35 +00:00
peter
be95b0758b * object to class conversion
* more verbosity for -vt and -vd
  * -i options can be put after eachother so the Makefiles only need
    to call fpc once for all info (will be twice as the first one will
    be to check the version if fpc supports multiple info)
2000-12-23 19:46:49 +00:00
Jonas Maebe
a4dcdea87d * fixed range error 2000-12-21 12:22:53 +00:00
peter
2c2b7bbf1e * extdebug fixes 2000-12-18 21:56:52 +00:00
Jonas Maebe
08f33f6156 * int64 case fixes
* explicit longint type casts for constants used in assembler code
    generation s,ice they can be cardinals too (or even int64's in case of
    range check errors)
2000-12-18 17:45:32 +00:00
Jonas Maebe
200e1d4b25 * removed warnings about possible range check errors 2000-12-16 15:58:18 +00:00
Jonas Maebe
4f791d04b4 - removed all ifdef cardinalmulfix code 2000-12-16 15:56:18 +00:00
peter
cf381a7f48 * clear usedasmsymbol at exit of writetree 2000-12-12 19:50:21 +00:00
Jonas Maebe
585b5f2e00 * fixed web bug #1144
+ implemented range checking for 64bit types
2000-12-11 19:10:19 +00:00
florian
9e14dafee3 * helper name of val for qword fixed 2000-12-09 22:51:37 +00:00
florian
a91a67f75b * AfterConstructor isn't called anymore when a constructor failed 2000-12-09 10:45:40 +00:00
Jonas Maebe
c91a23c27d * new constant handling: from now on, hex constants >$7fffffff are
parsed as unsigned constants (otherwise, $80000000 got sign extended
    and became $ffffffff80000000), all constants in the longint range
    become longints, all constants >$7fffffff and <=cardinal($ffffffff)
    are cardinals and the rest are int64's.
  * added lots of longint typecast to prevent range check errors in the
    compiler and rtl
  * type casts of symbolic ordinal constants are now preserved
  * fixed bug where the original resulttype wasn't restored correctly
    after doing a 64bit rangecheck
2000-12-07 17:19:42 +00:00
Jonas Maebe
a8af566cd7 + new integer regvar handling, should be much more efficient 2000-12-05 11:44:32 +00:00
Jonas Maebe
72bc010795 * when searching for constants in registers, the returned register
sometimes didn't have the same size as the requested size
2000-12-05 09:33:42 +00:00
Jonas Maebe
8e1fa5b1de * fixed bug where "shl $1,%reg" was changed to "leal (%reg),%reg2"
instread of to "leal (,%reg,2),%reg2"
2000-12-05 09:32:47 +00:00
Jonas Maebe
06af76dd6c * invalidate regs that depend on a modified register 2000-12-04 17:00:09 +00:00