Commit Graph

75 Commits

Author SHA1 Message Date
Jonas Maebe
8272526892 * CSE of constant loading in regs works properly again
+ if a constant is stored into memory using "mov const, ref" and
    there is a reg that contains this const, it is changed into
    "mov reg, ref"
1999-12-05 16:48:43 +00:00
peter
ad2b1fb278 * newoptimizations define added 1999-12-02 11:26:41 +00:00
Jonas Maebe
ff017bbd5f * even more missing register deallocations are added! 1999-11-27 23:45:43 +00:00
Jonas Maebe
653d672377 * improved fixing of missing regallocs (they're almost all correct
now!)
1999-11-21 13:06:30 +00:00
Jonas Maebe
6746b61501 * fixed small typo (C_M* -> Ch_M*) so -darithopt compiles again 1999-11-20 12:50:32 +00:00
Jonas Maebe
dce0f2cd38 * fixed stupid typo in previous commit :( 1999-11-14 11:25:38 +00:00
Jonas Maebe
194c612b07 * div, idiv and mul destroy edx!! 1999-11-13 19:01:51 +00:00
Jonas Maebe
8a2453ab1d * much more complete/waterproof RegModifiedByInstruction() 1999-11-07 14:57:09 +00:00
peter
0887060ff2 * truncated log to 20 revs 1999-11-06 14:34:16 +00:00
Jonas Maebe
2688bfd9ec + first implementation of choosing least used register for alignment code
(not yet working, between ifdef alignreg)
1999-11-05 16:01:45 +00:00
peter
f5a9e30c98 * insns.dat is used to generate all i386*.inc files 1999-10-27 16:11:27 +00:00
Jonas Maebe
a9b5e27bc1 * finally got around making GetNextInstruction return false when
the current pai object is a AsmBlockStart marker
  * changed a loop in aopt386 which was incompatible with this change
1999-10-23 14:44:24 +00:00
florian
fa19f0aa09 - removed the hcodegen use in the new cg, use cgbase instead 1999-10-14 14:57:51 +00:00
Jonas Maebe
2ad775b888 * small bugfix in ArrayRefsEq 1999-10-07 16:07:35 +00:00
Jonas Maebe
e62d58ea51 * writing to a position in an array now only destroys registers
containing a reference pointing somewhere in that array (since my last
    fix, it behaved like a write to a pointer location)
1999-09-29 13:49:53 +00:00
peter
6b1ab5eb31 * procinfo is now a pointer
* support for result setting in sub procedure
1999-09-27 23:44:46 +00:00
Jonas Maebe
552b86f85b * fixed bug in destroyrefs (indexes are now handled as pointers) 1999-09-21 15:46:58 +00:00
Jonas Maebe
9793c4eee9 * fixed typo's in -darithopt 1999-09-05 12:37:50 +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
8dc154ce24 * minor fixes regarding the reading of operands 1999-08-18 13:25:54 +00:00
peter
bfe185d206 + KNI instructions 1999-08-12 14:36:01 +00:00
Jonas Maebe
13bffb711a * fix in -darithopt code (sometimes crashed on 8/16bit regs) 1999-08-05 15:01:52 +00:00
florian
ca53eee67e * renamed i386asm and i386base to cpuasm and cpubase 1999-08-04 00:22:34 +00:00
Jonas Maebe
e2302d38bc * bugfix in DestroyRefs 1999-08-02 14:35:21 +00:00
Jonas Maebe
77fef43fda * also add arithmetic operations to instruction sequences contained in registers
(compile with -darithopt, very nice!)
1999-08-02 12:12:53 +00:00
Jonas Maebe
8dcdd36b13 * small bugfix in instructionsequal
* small bugfix in reginsequence
  * made regininstruction a bit more logical
1999-07-30 18:18:51 +00:00
florian
774df6096e * bug #487 fixed, (inc(<property>) isn't allowed)
* more fixes to compile with Delphi
1999-07-18 14:47:19 +00:00
Jonas Maebe
8c52e10620 * removed unused AsmL parameter from FindLoHiLabels 1999-07-01 18:21:21 +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
Jonas Maebe
26fa893ed7 * seperate OPTimizer INFO pointer field in tai object
* fix to GetLastInstruction that sometimes caused a crash
1999-05-08 20:40:02 +00:00
peter
9c69c18d96 * merged nasm compiler 1999-05-01 13:48:37 +00:00
Jonas Maebe
05acbe4077 * fix for crash when the first instruction of a sequence that gets
optimized is removed (this situation can't occur aymore now)
1999-04-18 17:57:17 +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
Jonas Maebe
246a653a5d * more regalloc fixes (still not complete) 1999-04-16 13:42:23 +00:00
peter
61eee61f9a + tempalloc
+ -at to show temp alloc info in .s file
1999-04-16 11:49:36 +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
653a798afd * small bugfix (memory corruption could occur when certain fpu instructions
were encountered)
1999-01-20 17:41:26 +00:00
florian
1896be988f Changes of Alexander Stohr integrated:
+ added KNI opcodes
    + added KNI registers
    + added 3DNow! opcodes
    + added 64 bit and 128 bit register flags
    * translated a few comments into english
1999-01-08 12:39:22 +00:00
Jonas Maebe
8cf4da6d5e + optimize pascal code surrounding assembler blocks 1998-12-29 18:48:15 +00:00
Jonas Maebe
09f430de39 + extra checks in RegsEquivalent so some more optimizations can be done (which
where disabled by the second fix from revision 1.22)
1998-12-17 16:37:38 +00:00
Jonas Maebe
2b0c6c2951 * uncommented OpsEqual & added to interface because popt386 uses it now 1998-12-15 19:33:58 +00:00
peter
1b369bb4bb + globtype,tokens,version unit splitted from globals 1998-12-11 00:02:37 +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
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
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
4df2da0cc7 * fixed problems posiible with 3 operand instructions 1998-11-24 19:47:22 +00:00
peter
d3946024c8 * fixed crash 1998-11-24 12:50:09 +00:00