florian 
							
						 
					 
					
						
						
						
						
							
						
						
							2167655902 
							
						 
					 
					
						
						
							
							* patch from Thorsten Engler submitted in  #8235  
						
						... 
						
						
						
						git-svn-id: trunk@6272 - 
						
					 
					
						2007-01-30 19:53:42 +00:00 
						 
				 
			
				
					
						
							
							
								tom_at_work 
							
						 
					 
					
						
						
						
						
							
						
						
							106fe68ce6 
							
						 
					 
					
						
						
							
							* renamed TStringList to TCmdStrList, in general use TCmdStr instead of shortstrings to fix bug  #6351  
						
						... 
						
						
						
						git-svn-id: trunk@6215 - 
						
					 
					
						2007-01-26 22:29:39 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							44dffffdf2 
							
						 
					 
					
						
						
							
							* undid accidental commit of partial TCmdStrListItem change  
						
						... 
						
						
						
						git-svn-id: trunk@6199 - 
						
					 
					
						2007-01-26 12:42:20 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							5fde39cd69 
							
						 
					 
					
						
						
							
							* reinstated trashing of out parameters with -gt (see mantis 8216,  
						
						... 
						
						
						
						fix for the compiler was in symtable.pas)
git-svn-id: trunk@6198 - 
						
					 
					
						2007-01-26 10:26:35 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							879a1594e1 
							
						 
					 
					
						
						
							
							* don't trash out parameters, because the caller may expect them to be  
						
						... 
						
						
						
						unchanged in case the callee doesn't touch them (e.g. srdef in pexpr.pas)
  * extra safety to not trash any typed constants and initialised variables
git-svn-id: trunk@6184 - 
						
					 
					
						2007-01-25 15:11:23 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							14a95ccdc3 
							
						 
					 
					
						
						
							
							* fixed r6149  
						
						... 
						
						
						
						git-svn-id: trunk@6157 - 
						
					 
					
						2007-01-24 09:33:34 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							fcb128c66c 
							
						 
					 
					
						
						
							
							* don't trash reference counted types with -gt (mantis 8183)  
						
						... 
						
						
						
						git-svn-id: trunk@6149 - 
						
					 
					
						2007-01-23 16:49:59 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							5c74d8078a 
							
						 
					 
					
						
						
							
							* take result register size from funcretloc  
						
						... 
						
						
						
						git-svn-id: trunk@6116 - 
						
					 
					
						2007-01-21 22:55:35 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							b951947b64 
							
						 
					 
					
						
						
							
							* partially fixed Delphi compatibility for assembler procedures: in case  
						
						... 
						
						
						
						only parameters on the stack are passed and if the function result is
    not referenced, don't allocate a stackframe. Fixes mantis 8155, but
    see that bug report for other rules (there's one error there: Delphi
    *does* allocate a function result for non-string/variant/interface
    if @result is referenced)
git-svn-id: trunk@6102 - 
						
					 
					
						2007-01-21 16:53:59 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							323fc850b9 
							
						 
					 
					
						
						
							
							* fixed duplicate alias check  
						
						... 
						
						
						
						git-svn-id: trunk@6003 - 
						
					 
					
						2007-01-16 18:31:27 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							c9703d43d5 
							
						 
					 
					
						
						
							
							* check also procedure aliases for duplicate names when  
						
						... 
						
						
						
						generating an export stub
git-svn-id: trunk@5993 - 
						
					 
					
						2007-01-15 17:45:37 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							e815b923d5 
							
						 
					 
					
						
						
							
							* a_loadfpu_* gets two size parameters: fromsize and tosize  
						
						... 
						
						
						
						* fixed downsizing the precision of floating point values
  * floating point constants are now treated using only the minimal
    precision required (e.g. 2.0 is now a single, 1.1 extended etc)
    (Delphi compatible)
git-svn-id: trunk@5927 - 
						
					 
					
						2007-01-12 18:33:51 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							1d96dcc50d 
							
						 
					 
					
						
						
							
							* renamed nf_swaped to nf_swapped  
						
						... 
						
						
						
						git-svn-id: trunk@5818 - 
						
					 
					
						2007-01-05 12:47:22 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							003a23c748 
							
						 
					 
					
						
						
							
							* fixed loc_mmregister bug in r4611  
						
						... 
						
						
						
						git-svn-id: trunk@5816 - 
						
					 
					
						2007-01-05 12:25:05 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							4c2b412613 
							
						 
					 
					
						
						
							
							* x86_64-win64 returns structured types up to 8 bytes in rax  
						
						... 
						
						
						
						git-svn-id: trunk@5528 - 
						
					 
					
						2006-12-02 15:36:32 +00:00 
						 
				 
			
				
					
						
							
							
								yury 
							
						 
					 
					
						
						
						
						
							
						
						
							319d92fe9a 
							
						 
					 
					
						
						
							
							* Release register of by value parameter after making its local copy. It fixes bug when local stack location is referenced using big (>4k) PC relative offset by ARM CPU. In this case temp register is needed and wrong temp register is allocated.  
						
						... 
						
						
						
						git-svn-id: trunk@5488 - 
						
					 
					
						2006-11-26 14:42:17 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							0557ddc342 
							
						 
					 
					
						
						
							
							* removed typed const, it is now handled by staticvarsym  
						
						... 
						
						
						
						* globalvarsym renamed to staticvarsym
  * fixed invalid regvar use in init when the finalize also uses the var
git-svn-id: trunk@5290 - 
						
					 
					
						2006-11-08 21:04:22 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							f2a25e845d 
							
						 
					 
					
						
						
							
							* refactor gen_alloc_symtable so it depends on varsym type and not  
						
						... 
						
						
						
						on symtabletype
git-svn-id: trunk@5259 - 
						
					 
					
						2006-11-05 21:53:40 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							3cae449fda 
							
						 
					 
					
						
						
							
							* moved rtti to ncgrtti  
						
						... 
						
						
						
						git-svn-id: trunk@5219 - 
						
					 
					
						2006-11-04 10:43:27 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							e17b424e28 
							
						 
					 
					
						
						
							
							* refactor procsym procdef list  
						
						... 
						
						
						
						git-svn-id: trunk@5210 - 
						
					 
					
						2006-11-03 18:44:46 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							658c46b903 
							
						 
					 
					
						
						
							
							* remove tdictionary and tindexarray  
						
						... 
						
						
						
						* symtables based on TFPHashObjectList and TFPObjectList
  * rename torddef.typ to torddef.ordtype
  * rename tfloatdef.typ to tfloatdef.floattype
  * rename tdef.deftype to tdef.typ
  * remove obsolete browser code, browcol is kept so the ide
    can still be compiled
git-svn-id: trunk@5192 - 
						
					 
					
						2006-11-03 00:30:30 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							aa65525fff 
							
						 
					 
					
						
						
							
							* fixed incompatibility between -gt and openstring (and faked open strings  
						
						... 
						
						
						
						like the result of fpc_ansistr_to_shortstr)
git-svn-id: trunk@5140 - 
						
					 
					
						2006-11-01 01:03:10 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							136d3e8d46 
							
						 
					 
					
						
						
							
							* refactor implemented interfaces  
						
						... 
						
						
						
						git-svn-id: trunk@5134 - 
						
					 
					
						2006-10-31 22:38:49 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							ef7bd58c54 
							
						 
					 
					
						
						
							
							* germanism removed (aktfilepos -> current_filepos)  
						
						... 
						
						
						
						git-svn-id: trunk@5099 - 
						
					 
					
						2006-10-30 22:37:31 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							85d63d9fa9 
							
						 
					 
					
						
						
							
							* settings refactored  
						
						... 
						
						
						
						git-svn-id: trunk@5094 - 
						
					 
					
						2006-10-30 18:02:58 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							3078a1927f 
							
						 
					 
					
						
						
							
							* remove ttype  
						
						... 
						
						
						
						* rename old ttype variables *type to *def
  * rename resulttypepass to pass_typecheck
  * rename pass_2 to pass_generate_code
git-svn-id: trunk@5077 - 
						
					 
					
						2006-10-29 22:19:39 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							9a1b9071a5 
							
						 
					 
					
						
						
							
							* implemented kylix like local directive,  fixes   #7242  
						
						... 
						
						
						
						git-svn-id: trunk@4982 - 
						
					 
					
						2006-10-19 20:26:14 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							fb5e396881 
							
						 
					 
					
						
						
							
							+ experimental -Sv option to support vector arithmetics  
						
						... 
						
						
						
						git-svn-id: trunk@4825 - 
						
					 
					
						2006-10-07 21:39:48 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							67ba76f090 
							
						 
					 
					
						
						
							
							* several arm fixes  
						
						... 
						
						
						
						git-svn-id: trunk@4742 - 
						
					 
					
						2006-09-27 21:05:05 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							7528a28287 
							
						 
					 
					
						
						
							
							* keep track of a sym's initial location to use during the generation  
						
						... 
						
						
						
						of init code
git-svn-id: trunk@4611 - 
						
					 
					
						2006-09-11 18:55:40 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							8637bddf72 
							
						 
					 
					
						
						
							
							* initialize full 64 bit of 64 bit static/global register variables  
						
						... 
						
						
						
						git-svn-id: trunk@4610 - 
						
					 
					
						2006-09-11 12:33:13 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							6997121c18 
							
						 
					 
					
						
						
							
							* also perform "SSA" for certain loads (currently derefn, righthand side of  
						
						... 
						
						
						
						assignmentn and callparan), reduces number of long lived conflicts.
    Mainly helpful on register-starved cpus such as i386.
git-svn-id: trunk@4606 - 
						
					 
					
						2006-09-10 16:21:50 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							d4d4d03b3b 
							
						 
					 
					
						
						
							
							* correct handling of result register allocation of exception helpers  
						
						... 
						
						
						
						git-svn-id: trunk@4522 - 
						
					 
					
						2006-08-31 14:53:20 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							1f42ee201b 
							
						 
					 
					
						
						
							
							+ support for bitpacked records, except for:  
						
						... 
						
						
						
						* rtti
    * typed constants
git-svn-id: trunk@4489 - 
						
					 
					
						2006-08-23 15:44:13 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							eccbc78e04 
							
						 
					 
					
						
						
							
							+ support for bitpacked arrays:  
						
						... 
						
						
						
						+ use {$bitpacking on/+} to change the meaning of "packed"
      into "bitpacked" for arrays. This is the default for MacPas.
      You can also define individual arrays as "bitpacked", but
      this is not encouraged since this keyword is not known by
      other compilers and therefore makes your code unportable.
    + pack(unpackedarray,index,packedarray) to pack
      length(packedarray) elements starting at
      unpackedarray[index] into packedarray.
    + unpack(packedarray,unpackedarray,index) to unpack
      packedarray into unpackedarray, with the first
      element being stored at unpackedarray[index]
  * todo:
    * "open packed arrays" and rtti for packed arrays are not
      yet supported
    * gdb does not properly support bitpacked arrays
git-svn-id: trunk@4449 - 
						
					 
					
						2006-08-19 12:54:12 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							ac2189cb71 
							
						 
					 
					
						
						
							
							* -gt now also trashes function results passed by reference  
						
						... 
						
						
						
						(i.e., complex function results)
git-svn-id: trunk@4422 - 
						
					 
					
						2006-08-14 11:48:45 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							c25aba7592 
							
						 
					 
					
						
						
							
							* cleaned up subsetreg support (put everything in a record)  
						
						... 
						
						
						
						* prepared support for elements with arbitrary bit length (as opposed
    to a multiple of 8)
git-svn-id: trunk@4324 - 
						
					 
					
						2006-08-01 20:39:53 +00:00 
						 
				 
			
				
					
						
							
							
								tom_at_work 
							
						 
					 
					
						
						
						
						
							
						
						
							65503f5786 
							
						 
					 
					
						
						
							
							* on 64 bit machines load 64 bit "trash constants" directly as well  
						
						... 
						
						
						
						git-svn-id: trunk@4297 - 
						
					 
					
						2006-07-25 20:35:13 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							f5a902b2ee 
							
						 
					 
					
						
						
							
							* fixed register allocation for -gt  
						
						... 
						
						
						
						+ also trash "out" parameters with -gt (except open arrays)
git-svn-id: trunk@4294 - 
						
					 
					
						2006-07-25 14:04:05 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							5f699c7838 
							
						 
					 
					
						
						
							
							+ -gt, -gtt, -gttt and -gtttt switches to trash local variables with  
						
						... 
						
						
						
						different values (resp. $55, $AA, $EF and $00) in function/procedure
    prologs to help find uninitialized uses. Should still be extended
    for "out" parameters.
git-svn-id: trunk@4271 - 
						
					 
					
						2006-07-20 22:54:23 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							df973fa1de 
							
						 
					 
					
						
						
							
							* fixed issue  #6977  (add regvars occupied by the invisible high parameter  
						
						... 
						
						
						
						of "open array" and "array of const" parameters to the used regvars
    for their array accesses if range checking is turned on)
git-svn-id: trunk@3914 - 
						
					 
					
						2006-06-21 18:24:01 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							9b54dcc781 
							
						 
					 
					
						
						
							
							* fixed compilation on non x86 CPUs  
						
						... 
						
						
						
						git-svn-id: trunk@3715 - 
						
					 
					
						2006-05-28 12:02:10 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							24ab8e0177 
							
						 
					 
					
						
						
							
							* create proper external stubs in case of generating pic  
						
						... 
						
						
						
						git-svn-id: trunk@3713 - 
						
					 
					
						2006-05-28 09:23:53 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							e531c4f125 
							
						 
					 
					
						
						
							
							+ very limited SSA support (only outside control flow  
						
						... 
						
						
						
						constructs for now)
git-svn-id: trunk@3671 - 
						
					 
					
						2006-05-25 11:45:08 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							e344ee3cd7 
							
						 
					 
					
						
						
							
							+ support for register variables which contain records  
						
						... 
						
						
						
						git-svn-id: trunk@3580 - 
						
					 
					
						2006-05-19 15:49:07 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							e0250bcdb4 
							
						 
					 
					
						
						
							
							* never remove regvar-ability of parameters passed by reference  
						
						... 
						
						
						
						(previously worked only for var/out, now also for const and
     is more generic)
git-svn-id: trunk@3554 - 
						
					 
					
						2006-05-17 13:38:02 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							13493a5355 
							
						 
					 
					
						
						
							
							* fixed copying of unaligned value parameters  
						
						... 
						
						
						
						git-svn-id: trunk@3369 - 
						
					 
					
						2006-04-29 20:13:57 +00:00 
						 
				 
			
				
					
						
							
							
								tom_at_work 
							
						 
					 
					
						
						
						
						
							
						
						
							3f2f694d48 
							
						 
					 
					
						
						
							
							* per-parameter alignment set in target specific paramanager now overrides default alignment of parameter locals  
						
						... 
						
						
						
						git-svn-id: trunk@3272 - 
						
					 
					
						2006-04-18 14:32:42 +00:00 
						 
				 
			
				
					
						
							
							
								tom_at_work 
							
						 
					 
					
						
						
						
						
							
						
						
							7a068de50a 
							
						 
					 
					
						
						
							
							* removed misleading non-working automatic save/restore of registers for profiling code (must be done manually in tcg.g_profilecode)  
						
						... 
						
						
						
						git-svn-id: trunk@3269 - 
						
					 
					
						2006-04-18 09:59:12 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							efe41b0766 
							
						 
					 
					
						
						
							
							* fixed section smartlinking with ld.exe  
						
						... 
						
						
						
						* reference debugstart and debugend sections
git-svn-id: trunk@3127 - 
						
					 
					
						2006-04-02 20:18:38 +00:00