Commit Graph

68 Commits

Author SHA1 Message Date
Jonas Maebe
621cecced4 * getfinaldestination works completely again (a lot of functionality
got lost in the conversion resulting from the removal of
    ait_labeled_instruction)
1999-11-06 16:24:00 +00:00
peter
0887060ff2 * truncated log to 20 revs 1999-11-06 14:34:16 +00:00
peter
6b1ab5eb31 * procinfo is now a pointer
* support for result setting in sub procedure
1999-09-27 23:44:46 +00:00
florian
ac20c15ef4 + fld reg;fxxx to fxxxr reg optimization 1999-09-05 14:27:19 +00:00
Jonas Maebe
5fc1435036 * changed pai386, paippc and paiapha (same for tai*) to paicpu (taicpu) 1999-08-25 11:59:32 +00:00
Jonas Maebe
618547adf0 * fixed pop/push optmization 1999-08-23 10:20:46 +00:00
pierre
e5df050607 * avoid unused locals 1999-08-10 12:30:00 +00:00
Jonas Maebe
aff06b2d4e * "add/sub const,%esp;sub $2,%esp" wasn't always optimized 1999-08-05 15:02:48 +00:00
florian
ca53eee67e * renamed i386asm and i386base to cpuasm and cpubase 1999-08-04 00:22:34 +00:00
Jonas Maebe
6e07359718 * fix for sar/shr-shl optimization 1999-08-03 17:13:28 +00:00
Jonas Maebe
19e34088fa * fix so (,reg) gets optimized to (reg) 1999-07-30 18:17:55 +00:00
Jonas Maebe
ab9734f7d5 * enabled "mov reg1,reg2;mov (reg2,..), reg2" also if the second mov is
a movzx or movsx
1999-07-01 18:12:16 +00:00
Jonas Maebe
4e6bcf9ed7 * merged 1999-06-23 12:33:52 +00:00
peter
c261796ebf * merged 1999-06-18 09:55:30 +00:00
peter
0b272f13c7 * removed oldasm
* plabel -> pasmlabel
  * -a switches to source writing automaticly
  * assembler readers OOPed
  * asmsymbol automaticly external
  * jumptables and other label fixes for asm readers
1999-05-27 19:43:55 +00:00
peter
bc903063c1 * removed R_DEFAULT_SEG
* uniform float names
1999-05-12 00:19:34 +00:00
Jonas Maebe
ddc47d6753 + remove the segment prefixes from LEA instructions 1999-05-05 16:19:04 +00:00
florian
253ba04a57 * a delphi compiled compiler recompiles ppc 1999-05-05 10:05:48 +00:00
florian
8836c26503 * several bugs regarding -Or fixed 1999-05-02 21:33:52 +00:00
peter
8bf7af6b29 * fixed dec -> sub $1 opt which didn't set ops=2 1999-05-02 14:26:31 +00:00
peter
611da2d24e * merged nasm compiler
* old asm moved to oldasm/
1999-05-01 13:23:57 +00:00
florian
d27b21891b * changes of Bruessel:
+ message handler can now take an explicit self
     * typinfo fixed: sometimes the type names weren't written
     * the type checking for pointer comparisations and subtraction
       and are now more strict (was also buggy)
     * small bug fix to link.pas to support compiling on another
       drive
     * probable bug in popt386 fixed: call/jmp => push/jmp
       transformation didn't count correctly the jmp references
     + threadvar support
     * warning if ln/sqrt gets an invalid constant argument
1999-04-28 06:01:54 +00:00
peter
67aad628f8 * skipped vesion 1.44 :( 1999-04-20 11:01:42 +00:00
peter
2c62da11c8 * fixed typo with and/or type check 1999-04-20 10:32:39 +00:00
pierre
f58a4b485c * ifdef USE_OP3 released (changed into ifndef NO_OP3)
* SHRD and SHLD first operand (ATT syntax) can only be CL reg or immediate const
1999-04-17 22:16:55 +00:00
Jonas Maebe
e16f0f99db * changes to work with -dUSE_OP3 1999-04-16 15:16:29 +00:00
peter
ac80a9af26 * fixed browcol
+ -ar to show regalloc info in .s file
1999-04-10 16:15:00 +00:00
peter
e1ad502d10 * fixed mov reg,treg;mov treg,x bug 1999-04-09 08:33:05 +00:00
peter
b549e55a00 * added type check for or/test x,x
* added size check for mov,mov,mov optimizes
1999-03-29 16:02:50 +00:00
peter
a17c03cca3 * assembler writers fixed for ag386bin 1999-02-26 00:48:13 +00:00
peter
c8f444b65f * ag386bin updates
+ coff writer
1999-02-25 21:02:16 +00:00
peter
bf9b5e3a54 * updates for ag386bin 1999-02-22 02:14:59 +00:00
Jonas Maebe
0d51aa650c + mov reg, mem1 to mov reg, mem1
mov mem2, reg           cmp reg, mem2
     cmp mem1, reg
    # reg released
1999-01-04 22:04:15 +00:00
Jonas Maebe
4f997fddd1 * no fistp/fild optimization for S_IQ (fistq doesn't exist) 1999-01-04 12:58:55 +00:00
Jonas Maebe
8cf4da6d5e + optimize pascal code surrounding assembler blocks 1998-12-29 18:48:15 +00:00
Jonas Maebe
0395e5e0b6 * change "inc x/dec x; test x, x" to "add 1, x/sub 1,x" because inc and dec
don't affect the carry flag (test does). This *doesn't* fix the problem with
   cardinal, that's a cg issue.
1998-12-23 15:16:21 +00:00
Jonas Maebe
f3d215d12d * fixed fistp/fild optimization 1998-12-16 12:09:29 +00:00
Jonas Maebe
97966cb9b5 + change "sub/add const1, reg" or "dec reg" followed by "sub const2, reg" to one
"sub const3, reg"
  * some small cleaning up
1998-12-15 22:30:39 +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
Jonas Maebe
30fa4efbd4 - removed {$ifdef ver0_99_11}'s 1998-12-14 22:01:45 +00:00
peter
1b369bb4bb + globtype,tokens,version unit splitted from globals 1998-12-11 00:02:37 +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
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
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
Jonas Maebe
63d4c1f2a1 * "call x;jmp y" optimization not done anymore for P6 and equivalents
* made FPU optimizations simpler and more effective
1998-11-03 16:26:09 +00:00
Jonas Maebe
286d20463c + change "call x; jmp y" to "push y; jmp x" (suggestion from Daniel) 1998-10-29 18:37:55 +00:00
Jonas Maebe
0e54f2bc9c * bugfix in fpu optimizations for single division/substraction 1998-10-28 19:51:15 +00:00
Jonas Maebe
88356f2c40 + no loading of values on the fpu stack if the memory expression can be used
inside the next mathematical operation
1998-10-28 12:32:46 +00:00
Jonas Maebe
2f34365234 + some small FPU peephole optimizations (use value in FP regs instead of loading it
from memory if possible, mostly with var1+var1 and var1*var1)
1998-10-23 15:38:23 +00:00