Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							38b993f7dc 
							
						 
					 
					
						
						
							
							* moved skipinstr from daopt386 to aasm  
						
						 
						
						... 
						
						
						
						* fixed crashing bug with -dreplacereg in csopt386.pas 
						
					 
					
						2000-01-28 15:15:31 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								michael 
							
						 
					 
					
						
						
						
						
							
						
						
							587a967353 
							
						 
					 
					
						
						
							
							+ Fixes from Jonas.  
						
						 
						
						
						
					 
					
						2000-01-23 11:11:36 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							02381105d6 
							
						 
					 
					
						
						
							
							+ all code generator generated "mov reg1,reg2" instructions are now  
						
						 
						
						... 
						
						
						
						attempted to be removed using the replacereg code
    (-dnewoptimizations)
  * small fixes to -dreplacereg code 
						
					 
					
						2000-01-22 16:10:06 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							5910b48cbe 
							
						 
					 
					
						
						
							
							* released -dalignreg  
						
						 
						
						... 
						
						
						
						* some small fixes to -dnewOptimizations helper procedures 
						
					 
					
						2000-01-13 13:07:05 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							e525797c51 
							
						 
					 
					
						
						
							
							* updated copyright to 2000  
						
						 
						
						
						
					 
					
						2000-01-07 01:14:18 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							ace77883c8 
							
						 
					 
					
						
						
							
							* fixed bug with -dreplacereg  
						
						 
						
						
						
					 
					
						2000-01-03 17:11:17 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								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 
							
						 
					 
					
						
						
						
						
							
						
						
							7d1b3066d9 
							
						 
					 
					
						
						
							
							* fixed some missed optimizations because 8bit regs were not always  
						
						 
						
						... 
						
						
						
						taken into account 
						
					 
					
						1999-11-21 13:09:41 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							1a761b3881 
							
						 
					 
					
						
						
							
							* make cycle works with -dreplacereg (register renaming)! I have not  
						
						 
						
						... 
						
						
						
						tested it yet together with -darithopt, but I don't expect problems 
						
					 
					
						1999-11-20 11:37:03 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							404ca4568d 
							
						 
					 
					
						
						
							
							+ basic register renaming (not yet working completely, between  
						
						 
						
						... 
						
						
						
						-dreplacereg/-dreplaceregdebug) 
						
					 
					
						1999-11-14 11:26:53 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							d70b3211a4 
							
						 
					 
					
						
						
							
							+ search optimial register to use in alignment code (compile with  
						
						 
						
						... 
						
						
						
						-dalignreg, -dalignregdebug to see chosen register in
    assembler code). Still needs support in ag386bin. 
						
					 
					
						1999-11-06 16:21:57 +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  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							9a8ecfc76b 
							
						 
					 
					
						
						
							
							* fixed bug which sometimes caused a crash when optimizing blocks of code with  
						
						 
						
						... 
						
						
						
						assembler blocks (didn't notice before because of lack of zero page protection
    under Win9x :( ) 
						
					 
					
						1999-10-11 11:11:31 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							6ca2b6e276 
							
						 
					 
					
						
						
							
							* CSE now updates the RegAlloc's  
						
						 
						
						
						
					 
					
						1999-10-01 13:51:40 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							47b0fcf922 
							
						 
					 
					
						
						
							
							* fixed small efficiency which caused some missed optimizations (saves 1  
						
						 
						
						... 
						
						
						
						assembler instruction on the whole compiler/RTL source tree! :) 
						
					 
					
						1999-09-30 14:43:13 +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 
							
						 
					 
					
						
						
						
						
							
						
						
							5fc1435036 
							
						 
					 
					
						
						
							
							* changed pai386, paippc and paiapha (same for tai*) to paicpu (taicpu)  
						
						 
						
						
						
					 
					
						1999-08-25 11:59:32 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							ca53eee67e 
							
						 
					 
					
						
						
							
							* renamed i386asm and i386base to cpuasm and cpubase  
						
						 
						
						
						
					 
					
						1999-08-04 00:22:34 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							7e4f903a9e 
							
						 
					 
					
						
						
							
							* sequences are now checked only once (previously, some long ones were  
						
						 
						
						... 
						
						
						
						checked once completely and then several times partially) 
						
					 
					
						1999-06-03 15:45:08 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							460464ff24 
							
						 
					 
					
						
						
							
							* seperate OPTimizer INFO pointer field in tai object  
						
						 
						
						
						
					 
					
						1999-05-08 20:38:02 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							611da2d24e 
							
						 
					 
					
						
						
							
							* merged nasm compiler  
						
						 
						
						... 
						
						
						
						* old asm moved to oldasm/ 
						
					 
					
						1999-05-01 13:23:57 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							a17c03cca3 
							
						 
					 
					
						
						
							
							* assembler writers fixed for ag386bin  
						
						 
						
						
						
					 
					
						1999-02-26 00:48:13 +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 
							
						 
					 
					
						
						
						
						
							
						
						
							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 
							
						 
					 
					
						
						
						
						
							
						
						
							4df2da0cc7 
							
						 
					 
					
						
						
							
							* fixed problems posiible with 3 operand instructions  
						
						 
						
						
						
					 
					
						1998-11-24 19:47:22 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							2b9d08c912 
							
						 
					 
					
						
						
							
							* fixed comments from last commit (apparently there's still a 255 char limit :( )  
						
						 
						
						
						
					 
					
						1998-11-09 19:40:46 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							d8c11fa743 
							
						 
					 
					
						
						
							
							* changed specific bugfix (which was actually wrong implemented, but did the  
						
						 
						
						... 
						
						
						
						right thing in most cases nevertheless) to general bugfix
  * fixed bug that caused
    mov (ebp), edx                                    mov (ebp), edx
    mov (edx), edx 
						
					 
					
						1998-11-09 19:33:39 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							9a650233f0 
							
						 
					 
					
						
						
							
							* removed some unused vars  
						
						 
						
						
						
					 
					
						1998-10-20 09:32:54 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							de7086cc3c 
							
						 
					 
					
						
						
							
							* changed state to WState (WriteState), added RState for future use in  
						
						 
						
						... 
						
						
						
						instruction scheduling 
						
					 
					
						1998-10-07 16:24:52 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							8b104e763e 
							
						 
					 
					
						
						
							
							* much better interregister CSE  
						
						 
						
						
						
					 
					
						1998-10-02 17:29:23 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							965c651dcc 
							
						 
					 
					
						
						
							
							* inter-register CSE, still requires some tweaks (peepholeoptpass2, better  RegAlloc)  
						
						 
						
						
						
					 
					
						1998-10-01 20:21:47 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								pierre 
							
						 
					 
					
						
						
						
						
							
						
						
							d11f7636be 
							
						 
					 
					
						
						
							
							+ added vmt_offset in tobjectdef.write for fututre use  
						
						 
						
						... 
						
						
						
						(first steps to have objects without vmt if no virtual !!)
  + added fpu_used field for tabstractprocdef  :
    sets this level to 2 if the functions return with value in FPU
    (is then set to correct value at parsing of implementation)
    THIS MIGHT refuse some code with FPU expression too complex
    that were accepted before and even in some cases
    that don't overflow in fact
    ( like if f : float; is a forward that finally in implementation
     only uses one fpu register !!)
    Nevertheless I think that it will improve security on
    FPU operations !!
  * most other changes only for UseBrowser code
    (added symtable references for record and objects)
    local switch for refs to args and local of each function
    (static symtable still missing)
    UseBrowser still not stable and probably broken by
    the definition hash array !! 
						
					 
					
						1998-09-21 08:45:05 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							fccf4109e0 
							
						 
					 
					
						
						
							
							* small fix for uncertain optimizations & more cleaning up  
						
						 
						
						
						
					 
					
						1998-09-20 17:12:35 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							1151b6d698 
							
						 
					 
					
						
						
							
							* big error (with little consequences) corrected in NoChangedRegInRef  
						
						 
						
						
						
					 
					
						1998-09-17 21:54:21 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							2c1ae07bea 
							
						 
					 
					
						
						
							
							* optimizer now completely dependant on GetNext/GetLast instruction, works again with -dRegAlloc  
						
						 
						
						
						
					 
					
						1998-09-16 17:59:59 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							a3b5867cb8 
							
						 
					 
					
						
						
							
							* removed $ before and after Log in comment  
						
						 
						
						
						
					 
					
						1998-08-06 19:40:25 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							76ee202b37 
							
						 
					 
					
						
						
							
							* some fixes for ansi strings  
						
						 
						
						... 
						
						
						
						* $log$ to $Log$ changed 
						
					 
					
						1998-08-05 16:00:08 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							aa224d4bd5 
							
						 
					 
					
						
						
							
							* removed some units from the uses clause  
						
						 
						
						
						
					 
					
						1998-08-04 16:19:46 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							892964eaf2 
							
						 
					 
					
						
						
							
							* split the optimizer  
						
						 
						
						
						
					 
					
						1998-07-23 19:31:18 +00:00