Commit Graph

863 Commits

Author SHA1 Message Date
florian
3baa79797b * first version, all planned processors (?) added 1998-12-15 22:16:03 +00:00
Jonas Maebe
2b0c6c2951 * uncommented OpsEqual & added to interface because popt386 uses it now 1998-12-15 19:33:58 +00:00
peter
c7230805a2 * fixed const s : ^string
* first things for const pchar : @string[1]
1998-12-15 17:16:00 +00:00
peter
4fbc61f5ea * fix for tp7 1998-12-15 17:14:17 +00:00
peter
6b4aa2289a * pointer+ord not allowed in tp mode 1998-12-15 17:12:35 +00:00
peter
a22d732459 * string:=pchar not allowed in tp mode 1998-12-15 17:11:37 +00:00
florian
9c7239cfbe + first version, derived from old routines 1998-12-15 16:32:58 +00:00
Jonas Maebe
5da43943cd * fixed bug in shr/shl optimization 1998-12-15 15:43:20 +00:00
peter
9a889d1750 * removed commentlevel 1998-12-15 11:53:54 +00:00
peter
ff335d3911 * fixed dup release of statement label in case 1998-12-15 11:52:18 +00:00
peter
02904d8319 + -iSO, -iSP, -iTO, -iTP 1998-12-15 10:23:23 +00:00
Jonas Maebe
30fa4efbd4 - removed {$ifdef ver0_99_11}'s 1998-12-14 22:01:45 +00:00
peter
c91c9bb341 * version 0.99.11 1998-12-14 12:58:45 +00:00
florian
6283947c69 + again more stuff for int64/qword:
- comparision operators
       - code generation for: str, read(ln), write(ln)
1998-12-11 23:36:06 +00:00
florian
d439e323fd * fixed previous commit bug fix of getexplicitregister32
(usableregs32 was decremented twice, thnaks Pierre for that hint)
1998-12-11 17:22:40 +00:00
florian
1b4cf9afb5 + typed const int64 and qword
+ unary minus-operator  q1:=-q2;
  + not-operator
1998-12-11 16:50:22 +00:00
florian
8534a40b75 + shifting for 64 bit ints added
* bug in getexplicitregister32 fixed: usableregs wasn't decremented !!
1998-12-11 16:10:07 +00:00
pierre
1b4990c597 * #0 char removed 1998-12-11 10:48:11 +00:00
pierre
ad717054b5 * internal gdb types for booleans and 64bit integers 1998-12-11 08:57:22 +00:00
peter
1bae98d429 * splitted from globals.pas 1998-12-11 00:05:27 +00:00
peter
1b369bb4bb + globtype,tokens,version unit splitted from globals 1998-12-11 00:02:37 +00:00
pierre
4a85a1b59e * fix for operators 1998-12-10 14:57:52 +00:00
florian
467c0de643 * bug with p(const a : ansistring) fixed
* duplicate constant ansistrings were handled wrong, fixed
1998-12-10 14:39:29 +00:00
florian
86b17cd44f + some basic operations with qwords and int64 added: +, xor, and, or;
the register allocation works fine
1998-12-10 11:16:00 +00:00
florian
4244dda54b + basic operations with int64/qord (compiler with -dint64)
+ rtti of enumerations extended: names are now written
1998-12-10 09:47:13 +00:00
Jonas Maebe
2fcfb2ce50 * corrected small syntax error in part between {ifdef ver0_99_11}
+ added fistp/fild optimization between {ifdef ver0_99_11}
1998-12-09 18:16:13 +00:00
Jonas Maebe
f6e600a839 * replaced two "in [A_...]" constructs I had missed before
* for shrd/shld: "if operands[1].operandtype = OPR_CONSTANT" instead of
    "if operands[3].operandtype ..."
1998-12-09 13:23:40 +00:00
Jonas Maebe
7aaa973e8f * allow constant offsets for go32v2 in assembler blocks 1998-12-08 23:03:46 +00:00
peter
6e7f776c4f + -gh for heaptrc unit 1998-12-08 10:18:07 +00:00
pierre
917fc582ad + constructor destructor info for gdbpas 1998-12-08 09:06:30 +00:00
florian
061be51016 * better code generation for classes which are passed as parameters to
subroutines
1998-12-06 13:12:44 +00:00
florian
df1edc9bc0 * some stuff for procedures of object added
* bug with overridden virtual constructors fixed (reported by Italo Gomes)
1998-12-04 10:18:06 +00:00
peter
37c2997e50 * target_os.use_bound_instruction boolean 1998-12-03 10:17:32 +00:00
Jonas Maebe
242244016d * changed "if longintvar in set" to case or "if () or () .." statements
* tree.pas: changed inlinenumber (and associated constructor/vars) to a byte
1998-12-02 16:23:29 +00:00
pierre
9cfedd8bb0 * writing of .edata was wrong for indexes above number of exported items
* importing by index only did not work !
1998-12-02 10:26:13 +00:00
pierre
c89458e721 * new try for correct debug info generation 1998-12-01 23:40:53 +00:00
pierre
44f5d0a911 * postprocessexec for win32 changed 1998-12-01 23:39:46 +00:00
pierre
f61d574389 * function type problem for gdb fix 1998-12-01 23:37:39 +00:00
pierre
49e2d0ad2d * zero padded alignment was buggy 1998-12-01 23:36:31 +00:00
pierre
0505500441 * alignment fixes 1998-12-01 23:35:43 +00:00
peter
2d524e51a2 * fixed placing of ppas.sh and link.res when using -FE 1998-12-01 12:51:19 +00:00
peter
895c8b8d77 * fixed range problem with in [tasmop] 1998-12-01 11:19:38 +00:00
peter
144544f8c2 * some more rangecheck fixes 1998-11-30 19:48:54 +00:00
pierre
65e4bc90c1 * corrected problems with rangecheck
+ added needed code for no rangecheck  in CRC32 functions in ppu unit
  * enumdef lso need its rangenr reset to zero
    when calling reset_global_defs
1998-11-30 16:34:45 +00:00
pierre
00229cc405 * the code for ordering the exported procs/vars was buggy
+ added -WB to force binding (Ozerski way of creating DLL)
    this is off by default as direct writing of .edata section seems
    OK
1998-11-30 13:26:23 +00:00
pierre
a1f1003555 * some range check bugs fixed (still not working !)
+ added DLL writing support for win32 (also accepts variables)
  + TempAnsi for code that could be used for Temporary ansi strings
    handling
1998-11-30 09:42:52 +00:00
peter
e0b2f65f9a * fixed constant ansistring -> pchar 1998-11-29 22:37:30 +00:00
florian
67d932c449 * problem with arrays with init tables fixed 1998-11-29 21:45:48 +00:00
peter
1b481e1cca * fixes for 'asm sti end;' 1998-11-29 12:47:21 +00:00
peter
a53f6ba9d4 * hack for arraydef.size overflow 1998-11-29 12:45:59 +00:00
peter
6df97708c1 * check for constants with array decl 1998-11-29 12:42:24 +00:00
peter
d02a24bc75 * newcnv -> not oldcnv 1998-11-29 12:40:19 +00:00
peter
b4045fe57e + support for dll variables 1998-11-28 16:20:48 +00:00
michael
cdd4a7a793 Fixed generation of constant ansistrings 1998-11-28 15:36:02 +00:00
michael
5aecf1085b + Added catch unit again 1998-11-27 22:54:52 +00:00
peter
a41f61713d + open strings, $P switch support 1998-11-27 14:50:30 +00:00
peter
162124d10c * give error when string[0] decl is found 1998-11-27 14:34:41 +00:00
Jonas Maebe
31cc13417a - removed A_CLTD opcode (use A_CDQ instead)
* changed cbw, cwde and cwd to cbtw, cwtl and cwtd in att_op2str array
  * in daopt386: adapted AsmInstr array to reflect changes + fixed line too long
1998-11-26 21:45:29 +00:00
peter
99b1865d05 - removed 1998-11-26 21:37:26 +00:00
peter
9d460fac9d * rangecheck updates 1998-11-26 21:33:06 +00:00
peter
66f37e9d4a * fix for valuepara 1998-11-26 21:30:03 +00:00
Jonas Maebe
f4b8ab9e61 * several small fixes in the AsmInstr table (concerning reading/writing from
regs/mem, doesn't affect current optimizer)
1998-11-26 15:43:24 +00:00
Jonas Maebe
a7e2ff769e + change "setxx mem; movb mem, reg8" to "setxx reg8" if mem is a local
variable/parameter or function result (between {$ifdef ver0_99_11})
1998-11-26 15:41:45 +00:00
michael
4b33489b11 + Fixed RTTI constants 1998-11-26 14:47:00 +00:00
peter
df89c828e5 * ansistring -> pchar fixed
* ansistring constants fixed
  * ansistring constants are now written once
1998-11-26 14:39:10 +00:00
peter
38e8f2f2a6 * set also library flag if smartlinking and outputname is different 1998-11-26 14:36:02 +00:00
peter
a62eb86cde * new int - int conversion -dNEWCNV
* some function renamings
1998-11-26 13:10:39 +00:00
peter
13d2cb30b0 * update status also for internalerrors 1998-11-26 13:08:19 +00:00
florian
a9d8c411a3 * for classes no init/final. code is necessary, fixed 1998-11-26 09:53:36 +00:00
pierre
4201ea4903 * var:=new(pointer_type) support added 1998-11-25 19:12:51 +00:00
florian
6b71ea1c62 * writting of rtti for properties fixed 1998-11-25 14:35:28 +00:00
peter
d008da6845 * handle array of char the same as strings 1998-11-24 22:59:05 +00:00
Jonas Maebe
4df2da0cc7 * fixed problems posiible with 3 operand instructions 1998-11-24 19:47:22 +00:00
peter
cd9ec74eb5 * fixed length(char) when char is a variable 1998-11-24 17:04:27 +00:00
peter
ab71649027 * fixed exactmatch removings 1998-11-24 17:03:51 +00:00
peter
6d0f6718fa * removed obsolete version.inc 1998-11-24 17:03:24 +00:00
peter
6f9679f1d2 * release smallsetord, so small sets constant are handled like longints 1998-11-24 13:40:59 +00:00
peter
6756b4ec78 * sets are not written twice anymore
* optimize for emptyset+single element which uses a new routine from
    set.inc FPC_SET_CREATE_ELEMENT
1998-11-24 12:52:40 +00:00
peter
d3946024c8 * fixed crash 1998-11-24 12:50:09 +00:00
pierre
c921c95996 * fix for bug0182 1998-11-23 18:26:44 +00:00
pierre
83a1c209c5 * added checking before dispose of reference string 1998-11-23 17:51:58 +00:00
pierre
c93531b63f * ansistring support in extdebug code 1998-11-23 17:49:03 +00:00
peter
0c1ba21ada * initital version 1998-11-23 13:41:18 +00:00
florian
d5aea5e17f * problems with rtti fixed, hope it works 1998-11-20 15:35:54 +00:00
Jonas Maebe
ae04ea5143 + gathering of register reading data, nowhere used yet (necessary for instruction scheduling) 1998-11-18 17:58:22 +00:00
peter
e413f19a4d * fixes for VALUEPARA 1998-11-18 17:45:24 +00:00
peter
0cadc4f3c3 * VALUEPARA for tp7 compatible value parameters 1998-11-18 15:44:05 +00:00
pierre
50ccd479d2 + automatic loading of profile unit with -pg option
in go32v2 mode (also defines FPC_PROFILE)
  * some memory leaks removed
  * unreleased temp problem with sets solved
1998-11-18 09:18:01 +00:00
peter
41ac2b8a59 * optimize str:='' in H+ mode
+ -! to test ansistrings
1998-11-17 11:32:44 +00:00
peter
dabc19f0ff * H+ fixes 1998-11-17 10:40:15 +00:00
peter
85726fcb35 * more ansistring fixes 1998-11-17 00:36:38 +00:00
peter
e0f66581eb * fixed for $H+ 1998-11-17 00:26:09 +00:00
peter
bf08db9b7b * fixed ansistring temp which forgot a reset 1998-11-16 16:17:16 +00:00
peter
752857f403 * tp7 didn't like my ifopt H+ :( 1998-11-16 15:41:39 +00:00
peter
83d1beb321 * fixed instruct not in table msg 1998-11-16 15:38:54 +00:00
peter
3df27389c0 * rename laod/copystring -> load/copyshortstring
* fixed int-bool cnv bug
  + char-ansistring conversion
1998-11-16 15:35:35 +00:00
pierre
006cb9f6d0 * added error for with if different segment 1998-11-16 15:35:09 +00:00
peter
ac94abe823 * fixed return for ansistrings 1998-11-16 15:33:05 +00:00
pierre
0be2deee56 + shorter cycle for win32 with cygnus b20 1998-11-16 15:30:19 +00:00
Jonas Maebe
c85141c23a + readded ait_marker support 1998-11-16 12:38:05 +00:00