yury 
							
						 
					 
					
						
						
						
						
							
						
						
							92ad06f1e8 
							
						 
					 
					
						
						
							
							* Always use RIP relative symbol addressing for x86_64 Windows targets. Bug  #13657 .  
						
						... 
						
						
						
						* Support for simple form of RIP relative addressing by x86_64 assembler writer. Example: movl rax,SomeSymbol(%rip)
git-svn-id: trunk@13135 - 
						
					 
					
						2009-05-13 10:07:44 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							7d459cf12a 
							
						 
					 
					
						
						
							
							* the compiler now explicitly keeps track of the minimally guaranteed  
						
						... 
						
						
						
						alignment for each memory reference (mantis #12137 , and
    test/packages/fcl-registry/tregistry1.pp on sparc). This also
    enables better code generation for packed records in many cases.
  o several changes were made to the compiler to minimise the chances
    of accidentally forgetting to set the alignment of memory references
    in the future:
    - reference_reset*() now has an extra alignment parameter
    - location_reset() can now only be used for non LOC_(C)REFERENCE,
      use location_reset_ref() for those (split the tloc enum so the
      compiler can catch errors using range checking)
git-svn-id: trunk@12719 - 
						
					 
					
						2009-02-08 13:00:24 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							718694d1d6 
							
						 
					 
					
						
						
							
							* always specify an explicit alignment for tgobj.gettemp (so e.g.  
						
						... 
						
						
						
						shortstring temps don't get maximum alignment)
  * changed some gettemptyed() calls into gettemp() calls (gettemptyped
    means that this temp can only be used for temps of that type,
    which is necessary for refcounted types but not for floats)
git-svn-id: trunk@12036 - 
						
					 
					
						2008-11-08 22:20:47 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							3d2630c661 
							
						 
					 
					
						
						
							
							* fixed wrong location.size (sign) for x86's in_abs_long + test  
						
						... 
						
						
						
						git-svn-id: trunk@10850 - 
						
					 
					
						2008-05-01 11:47:32 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							8f239d04b6 
							
						 
					 
					
						
						
							
							* cleanup and simplify the set type handling  
						
						... 
						
						
						
						git-svn-id: trunk@10432 - 
						
					 
					
						2008-03-02 17:48:27 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							ea22e81374 
							
						 
					 
					
						
						
							
							* fixed include/exclude for byte-sized sets in registers  
						
						... 
						
						
						
						git-svn-id: trunk@9887 - 
						
					 
					
						2008-01-23 22:28:12 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							f0e804beb7 
							
						 
					 
					
						
						
							
							* typecast fix  
						
						... 
						
						
						
						git-svn-id: trunk@9349 - 
						
					 
					
						2007-11-29 21:15:08 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							fb8bbd5ff0 
							
						 
					 
					
						
						
							
							+ inline abs(<longint>) on x86  
						
						... 
						
						
						
						git-svn-id: trunk@9333 - 
						
					 
					
						2007-11-25 18:54:40 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							9d88b1d9ef 
							
						 
					 
					
						
						
							
							* x86-64 fixed  
						
						... 
						
						
						
						git-svn-id: trunk@8963 - 
						
					 
					
						2007-10-28 08:45:48 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							f32831c44a 
							
						 
					 
					
						
						
							
							* fixed assembling of fisttp of sse3 instruction set  
						
						... 
						
						
						
						+ sse3 optimized trunc() using fisttp
+ -Cfsse3 for x86-64
git-svn-id: trunk@8962 - 
						
					 
					
						2007-10-27 20:50:46 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							9715eceee7 
							
						 
					 
					
						
						
							
							* fixed expectloc setting for x86_64  
						
						... 
						
						
						
						git-svn-id: trunk@8704 - 
						
					 
					
						2007-09-30 21:02:33 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							6b8aed593f 
							
						 
					 
					
						
						
							
							* remove registers{int/mmx/fpu} from firstpass  
						
						... 
						
						
						
						* small cleanups of unused variables in firstpass
  * node_resources_fpu() created to get an approximation of the
    required fpu registers
  * for the moment use node_complexity in the CG until the
    node_resource_int() is created
git-svn-id: trunk@8655 - 
						
					 
					
						2007-09-26 21:12:01 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							0040eecf9f 
							
						 
					 
					
						
						
							
							+ support for extra packing of sets whose lower element number  
						
						... 
						
						
						
						is <> 0 (Delphi compatible now, + various tests)
  + support for enums and sets in is_in_limit()
  * fixed converting smallset expressions to varsets
  * improved choosing an appropriate common set type when mixing
    set types in an expression
  - removed no longer used normalset code from nadd.pas
  - disabled large set (>256 elements) support for now, because
    they are not yet supported entirely throughout the compiler
    and this causes errors at run time in several situations
git-svn-id: trunk@8515 - 
						
					 
					
						2007-09-16 20:04:45 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							26a4f693da 
							
						 
					 
					
						
						
							
							* more packed set operand size problems fixed (include/exclude, mantis  
						
						... 
						
						
						
						#9167 )
git-svn-id: trunk@7833 - 
					
						2007-06-27 19:50:09 +00:00 
						 
				 
			
				
					
						
							
							
								daniel 
							
						 
					 
					
						
						
						
						
							
						
						
							9adb202a92 
							
						 
					 
					
						
						
							
							* Rework the constexprint to allow operations from low(int64) to high(qword).  
						
						... 
						
						
						
						+ Some initial work on a formaldef which also carries the typinfo of a parameter.
git-svn-id: trunk@7639 - 
						
					 
					
						2007-06-13 07:41:18 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							4fc85cb084 
							
						 
					 
					
						
						
							
							* new test  
						
						... 
						
						
						
						* fix compilation on i386
git-svn-id: trunk@6861 - 
						
					 
					
						2007-03-14 21:09:05 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							bae83ee777 
							
						 
					 
					
						
						
							
							* set expectloc correctly on x86-64  
						
						... 
						
						
						
						* decide properly if we inline trunc or not on x86-64
git-svn-id: trunk@6860 - 
						
					 
					
						2007-03-14 21:05:15 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							f4840620f0 
							
						 
					 
					
						
						
							
							* location.size of trunc/round must be OS_S64  
						
						... 
						
						
						
						* fixed assembling of cvt*2si
+ optimized trunc/round for x86_64/sse
* only floats need no type cast for trunc/round
git-svn-id: trunk@6859 - 
						
					 
					
						2007-03-14 20:56:14 +00:00 
						 
				 
			
				
					
						
							
							
								pierre 
							
						 
					 
					
						
						
						
						
							
						
						
							d1d6413443 
							
						 
					 
					
						
						
							
							* use S_IQ opsize for A_FISTP instruction  
						
						... 
						
						
						
						git-svn-id: trunk@6848 - 
						
					 
					
						2007-03-14 17:09:42 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							bcb1cf0d28 
							
						 
					 
					
						
						
							
							* make no use of int registers in trunc to reduce register pressure  
						
						... 
						
						
						
						git-svn-id: trunk@6844 - 
						
					 
					
						2007-03-14 10:23:52 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							c4f65df9f9 
							
						 
					 
					
						
						
							
							* fixed expectloc setting  
						
						... 
						
						
						
						git-svn-id: trunk@6833 - 
						
					 
					
						2007-03-13 22:45:41 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							8aa259401c 
							
						 
					 
					
						
						
							
							* fixed x86-64  
						
						... 
						
						
						
						git-svn-id: trunk@6828 - 
						
					 
					
						2007-03-13 21:12:40 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							1cd41b68f7 
							
						 
					 
					
						
						
							
							* compiler handled round/trunc for x86  
						
						... 
						
						
						
						git-svn-id: trunk@6827 - 
						
					 
					
						2007-03-13 20:23:24 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							2579cd139f 
							
						 
					 
					
						
						
							
							+ support for sets with size 1 and 2  
						
						... 
						
						
						
						git-svn-id: trunk@6172 - 
						
					 
					
						2007-01-24 20:06:56 +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 
						 
				 
			
				
					
						
							
							
								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 
						 
				 
			
				
					
						
							
							
								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 
							
						 
					 
					
						
						
						
						
							
						
						
							1e52f348c0 
							
						 
					 
					
						
						
							
							* fixed load_fpu_location for xmm locations  
						
						... 
						
						
						
						git-svn-id: trunk@3248 - 
						
					 
					
						2006-04-17 16:03:55 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							0ec2921bbe 
							
						 
					 
					
						
						
							
							* split newasmsymbol to refasmsymbol and defineasmsymbol  
						
						... 
						
						
						
						git-svn-id: trunk@3057 - 
						
					 
					
						2006-03-27 11:45:18 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							b7fe6797bf 
							
						 
					 
					
						
						
							
							Merged revisions 2921-2922,2925 via svnmerge from  
						
						... 
						
						
						
						http://svn.freepascal.org/svn/fpc/branches/linker/compiler 
........
r2921 | peter | 2006-03-15 08:35:00 +0100 (Wed, 15 Mar 2006) | 2 lines
  * pass ObjectWriter to ObjectOuput
........
r2922 | peter | 2006-03-15 12:40:30 +0100 (Wed, 15 Mar 2006) | 2 lines
  * refactor asmdata
........
r2925 | peter | 2006-03-15 16:09:39 +0100 (Wed, 15 Mar 2006) | 3 lines
  * add cfi to asmdata
  * move asmlist, asmcfi, asmdata to own unit
........
git-svn-id: trunk@2932 - 
					
						2006-03-16 08:52:22 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							eb725d4e44 
							
						 
					 
					
						
						
							
							Merged revisions 2908,2911,2913-2917 via svnmerge from  
						
						... 
						
						
						
						http://svn.freepascal.org/svn/fpc/branches/linker/compiler 
........
r2908 | peter | 2006-03-13 13:35:48 +0100 (Mon, 13 Mar 2006) | 2 lines
  * merge trunk upto r2907
........
r2911 | peter | 2006-03-13 18:08:00 +0100 (Mon, 13 Mar 2006) | 2 lines
  * rename values to make room for operand size codes
........
........
........
r2915 | peter | 2006-03-14 13:51:35 +0100 (Tue, 14 Mar 2006) | 2 lines
  * check aktcputype
........
r2916 | peter | 2006-03-14 15:06:32 +0100 (Tue, 14 Mar 2006) | 3 lines
  * merge 300 opcodes
  * more 64bit versions of opcodes
........
r2917 | peter | 2006-03-14 17:34:03 +0100 (Tue, 14 Mar 2006) | 3 lines
  * x86_64 tables
  * convert movq with normal registers to mov
........
git-svn-id: trunk@2931 - 
					
						2006-03-16 08:09:28 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							d8dc5679e3 
							
						 
					 
					
						
						
							
							* aktcputype and aktoptimizecputype was missing in the previous optimization commits  
						
						... 
						
						
						
						git-svn-id: trunk@2907 - 
						
					 
					
						2006-03-13 12:29:56 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							b6e35a200e 
							
						 
					 
					
						
						
							
							* rewrite of optimizer options  
						
						... 
						
						
						
						git-svn-id: trunk@2901 - 
						
					 
					
						2006-03-13 09:05:50 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							19e97e4da2 
							
						 
					 
					
						
						
							
							+ use sse for sqrt if possible  
						
						... 
						
						
						
						* same optimization for sqrt as for sqr
git-svn-id: trunk@1266 - 
						
					 
					
						2005-10-03 12:47:05 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							6371333361 
							
						 
					 
					
						
						
							
							+ sqr uses sse on x86 if possible  
						
						... 
						
						
						
						* the result type of sqr is equal to the argument in case of usual floats
git-svn-id: trunk@1265 - 
						
					 
					
						2005-10-03 12:31:31 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							21ae782854 
							
						 
					 
					
						
						
							
							* fixed more xmm stuff  
						
						... 
						
						
						
						+ some win64 stuff added
git-svn-id: trunk@330 - 
						
					 
					
						2005-06-09 20:50:17 +00:00 
						 
				 
			
				
					
						
							
							
								fpc 
							
						 
					 
					
						
						
						
						
							
						
						
							790a4fe2d3 
							
						 
					 
					
						
						
							
							* log and id tags removed  
						
						... 
						
						
						
						git-svn-id: trunk@42 - 
						
					 
					
						2005-05-21 09:42:41 +00:00 
						 
				 
			
				
					
						
							
							
								fpc 
							
						 
					 
					
						
						
						
						
							
						
						
							50778076c3 
							
						 
					 
					
						
						
							
							initial import  
						
						... 
						
						
						
						git-svn-id: trunk@1 - 
						
					 
					
						2005-05-16 18:37:41 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							e417e34496 
							
						 
					 
					
						
						
							
							* truncate log  
						
						
						
					 
					
						2005-02-14 17:13:06 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							c95a859f0a 
							
						 
					 
					
						
						
							
							* generic tlocation  
						
						... 
						
						
						
						* move tlocation to cgutils 
						
					 
					
						2004-10-31 21:45:02 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							65c3ba277c 
							
						 
					 
					
						
						
							
							* ungetregister is now only used for cpuregisters, renamed to  
						
						... 
						
						
						
						ungetcpuregister
  * renamed (get|unget)explicitregister(s) to ..cpuregister
  * removed location-release/reference_release 
						
					 
					
						2004-09-25 14:23:54 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							8a9758c5e2 
							
						 
					 
					
						
						
							
							* logs truncated  
						
						
						
					 
					
						2004-06-20 08:55:28 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							588e2c38bf 
							
						 
					 
					
						
						
							
							* dwarf branch merged  
						
						
						
					 
					
						2004-06-16 20:07:06 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							5358278ca1 
							
						 
					 
					
						
						
							
							tai_regalloc.allocation changed to ratype to notify rgobj of register size changes  
						
						
						
					 
					
						2004-05-22 23:34:27 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							fabb9c33ac 
							
						 
					 
					
						
						
							
							* top_symbol killed  
						
						... 
						
						
						
						+ refaddr to treference added
  + refsymbol to treference added
  * top_local stuff moved to an extra record to save memory
  + aint introduced
  * tppufile.get/putint64/aint implemented 
						
					 
					
						2004-02-27 10:21:04 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							465aa5851b 
							
						 
					 
					
						
						
							
							* several fixes to compile x86-64 system  
						
						
						
					 
					
						2004-02-05 01:24:08 +00:00