florian 
							
						 
					 
					
						
						
						
						
							
						
						
							7ef37b5d2a 
							
						 
					 
					
						
						
							
							* PLD is not supported by thumb  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25407 - 
						
					 
					
						2013-09-03 21:09:41 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							cb1f38b0af 
							
						 
					 
					
						
						
							
							* strd/ldrd are not supported by thumb  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25406 - 
						
					 
					
						2013-09-03 21:09:13 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							0e7a7c68b0 
							
						 
					 
					
						
						
							
							* the -CI switch is now handled correctly  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25405 - 
						
					 
					
						2013-09-03 19:24:01 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jeppe Johansen 
							
						 
					 
					
						
						
						
						
							
						
						
							9acfd929f5 
							
						 
					 
					
						
						
							
							Added ARMv6M to cpu types where the default instruction set is Thumb  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25402 - 
						
					 
					
						2013-09-03 06:57:24 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							1a78ec1f11 
							
						 
					 
					
						
						
							
							* workaround for bug in Apple's assembler regarding movq/vmovq and integer  
						
						 
						
						... 
						
						
						
						registers
git-svn-id: trunk@25396 - 
						
					 
					
						2013-09-02 14:39:26 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							e41149a7ec 
							
						 
					 
					
						
						
							
							* x86_64: reworked register saving/restoring to use PUSH/POP instructions for procedures with RSP-based frame and SEH finalization procedures. XMM registers are also saved/restored without involving tempgen in mentioned cases. This prevents SEH finalization procedures from saving registers in stack frame of their parent procedures, fixing incorrect unwind bytecode (Mantis  #24791 ). It also reduces executable size (for compiler itself, by about 100Kb).  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25389 - 
						
					 
					
						2013-08-30 07:54:02 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							fcaad5baf2 
							
						 
					 
					
						
						
							
							* perform -CTlowercaseprocstart conversion it tprocsym.create rather than  
						
						 
						
						... 
						
						
						
						when building the mangled name, because the latter can also be performed
    when compiler another unit (and therefore if that other unit's setting
    is different from that of the original unit, a wrong mangled name was
    generated) + test for this case
git-svn-id: trunk@25388 - 
						
					 
					
						2013-08-29 22:43:06 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							a14ceba791 
							
						 
					 
					
						
						
							
							+ -CTinitlocals switch for the JVM that initialises all local variables  
						
						 
						
						... 
						
						
						
						that may trigger JVM bytecode verification errors if they are used
    before they are initialised (this includes passing them as a "var"
    parameter) + test
  * sorted -CT parameters alphabetically and alligned them
git-svn-id: trunk@25387 - 
						
					 
					
						2013-08-29 22:21:23 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							10bb07a665 
							
						 
					 
					
						
						
							
							* brackets around and/or combination  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25386 - 
						
					 
					
						2013-08-29 22:21:19 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							6013606a97 
							
						 
					 
					
						
						
							
							+ -CTlowercaseprocstart switch to lowercase the first character of routines  
						
						 
						
						... 
						
						
						
						so that code written according to Delphi coding standards can be compiled
    into JVM bytecode with routine names conforming to JVM coding standards
git-svn-id: trunk@25385 - 
						
					 
					
						2013-08-29 22:21:15 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Károly Balogh 
							
						 
					 
					
						
						
						
						
							
						
						
							86cb4d0c12 
							
						 
					 
					
						
						
							
							use a TSuperRegister instead of an aint  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25383 - 
						
					 
					
						2013-08-28 12:58:29 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Károly Balogh 
							
						 
					 
					
						
						
						
						
							
						
						
							c677f1fd69 
							
						 
					 
					
						
						
							
							trying harder to follow the code style (no functional changes)  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25382 - 
						
					 
					
						2013-08-28 11:25:15 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							5dda96bdfe 
							
						 
					 
					
						
						
							
							- Tcgx86_64.init_register_allocators: removed 'preserved_by_proc' parameter, because it isn't used by RA in any way.  
						
						 
						
						... 
						
						
						
						* tcgx86_64.g_intf_wrapper: jump directly to reference without loading its content into RAX, this saves an instruction.
git-svn-id: trunk@25381 - 
						
					 
					
						2013-08-28 09:10:57 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Károly Balogh 
							
						 
					 
					
						
						
						
						
							
						
						
							25619d4991 
							
						 
					 
					
						
						
							
							removed the const-in-the-left internalerror  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25380 - 
						
					 
					
						2013-08-27 16:18:53 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Károly Balogh 
							
						 
					 
					
						
						
						
						
							
						
						
							cb4d01627f 
							
						 
					 
					
						
						
							
							save an extra reg if it's required to keep 64bit stack alignment on ARM  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25379 - 
						
					 
					
						2013-08-27 12:49:50 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							f58d1461c3 
							
						 
					 
					
						
						
							
							* fixed help page for -C3 as mentioned by Dmitry Boyarintsev on the mailing list  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25375 - 
						
					 
					
						2013-08-26 20:48:49 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								masta 
							
						 
					 
					
						
						
						
						
							
						
						
							ff95d42216 
							
						 
					 
					
						
						
							
							Fix ShiftShift2Shift 1 ARM-peephole optimizer  
						
						 
						
						... 
						
						
						
						The previous code deleted the newly inserted instruction instead of the
existing one, which obviously broke code.
Assembly:
  mov r0, r0, lsr #23 
  mov r0, r0, lsr #23 
transformed into:
  mov r0, r0, lsr #23 
expected was:
  mov r0, #0 
The problem only shows up in the very unlikely case of two LSR/ASR or
two LSL following on each other and having a total shift of more than 31
bits.
This fixes test/opt/tarmshift.pp
I've also removed the {%norun} directive from tarmshift.pp as this test
does only make sense when it also runs.
git-svn-id: trunk@25374 - 
						
					 
					
						2013-08-26 17:41:54 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							d4968e054b 
							
						 
					 
					
						
						
							
							+ arm: tsettings.instructionset  
						
						 
						
						... 
						
						
						
						* the selected instruction set is now independent from the cpu type: e.g. armv7-a can perfectly execute thumb(2) code
git-svn-id: trunk@25370 - 
						
					 
					
						2013-08-25 21:56:12 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							6e7edf1933 
							
						 
					 
					
						
						
							
							* make x86memorymodel i8086 only  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25369 - 
						
					 
					
						2013-08-25 21:56:08 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							bf3e48d8e0 
							
						 
					 
					
						
						
							
							* compilation of ppudump fixed  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25368 - 
						
					 
					
						2013-08-25 17:11:57 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							63a42b9da6 
							
						 
					 
					
						
						
							
							* incremented the ppu version as well after r25365  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25367 - 
						
					 
					
						2013-08-25 16:52:37 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							571e9c2e3e 
							
						 
					 
					
						
						
							
							+ added the new i8086 memory model flags to ppudump as well  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25366 - 
						
					 
					
						2013-08-25 16:48:13 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							243e3bbb77 
							
						 
					 
					
						
						
							
							+ added i8086 memory model flags to the ppu flags and added a check that prevents the using of units compiled for different memory models  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25365 - 
						
					 
					
						2013-08-25 16:45:04 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							b327eac688 
							
						 
					 
					
						
						
							
							- disable cs_opt_regvar from -O2 on i8086, since it's not working properly yet  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25364 - 
						
					 
					
						2013-08-24 23:06:10 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							f9d0caa7c7 
							
						 
					 
					
						
						
							
							* pass the option -w-orphan-labels to nasm to avoid the spurious warnings about labels without a trailing colon and without an instruction on the same line  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25358 - 
						
					 
					
						2013-08-23 23:40:24 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							7cef301e84 
							
						 
					 
					
						
						
							
							* disable optimization LdrbAnd2Ldrb for arm thumb as it is currently done  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25356 - 
						
					 
					
						2013-08-23 18:41:26 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							f34bee1df7 
							
						 
					 
					
						
						
							
							* arm thumb does not support ror reg1,reg2,#imm  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25355 - 
						
					 
					
						2013-08-23 18:41:24 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							950194678a 
							
						 
					 
					
						
						
							
							* handle jump tables correctly when inserting constant pools on arm thumb  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25354 - 
						
					 
					
						2013-08-23 18:41:21 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Károly Balogh 
							
						 
					 
					
						
						
						
						
							
						
						
							6591a24bd3 
							
						 
					 
					
						
						
							
							removed some code which must never be called, added an internalerror() instead  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25352 - 
						
					 
					
						2013-08-23 15:58:37 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							e514e84c83 
							
						 
					 
					
						
						
							
							* first_moddivint should not change the return type if div/mul/add is used  
						
						 
						
						... 
						
						
						
						* use create_internal when creating internally add nodes
git-svn-id: trunk@25351 - 
						
					 
					
						2013-08-23 15:23:00 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							3ebe708574 
							
						 
					 
					
						
						
							
							* do not use r13/r15 for certain data processing operations  
						
						 
						
						... 
						
						
						
						* correct OP_AND with certain types of constants
git-svn-id: trunk@25350 - 
						
					 
					
						2013-08-23 15:22:58 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							2fe48077b2 
							
						 
					 
					
						
						
							
							* using r13 and r15 is on arm thumb2 also forbidden under certain conditions for the instructions A_SUB,A_AND,A_BIC,A_EOR  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25349 - 
						
					 
					
						2013-08-23 15:22:55 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							d5ddf39f73 
							
						 
					 
					
						
						
							
							* do not do the RedundantMovProcess optimization when the involved registers are r13 or r15 and if the target is arm thumb(2)  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25348 - 
						
					 
					
						2013-08-23 15:22:53 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							b4c7b40049 
							
						 
					 
					
						
						
							
							* do not split statements following A_IT* instructions on arm thumb2 when inserting constant pools  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25347 - 
						
					 
					
						2013-08-23 15:22:51 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							8884f1c0bf 
							
						 
					 
					
						
						
							
							* arm thumb2 supports only left shifted index registers up to 3 bits  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25346 - 
						
					 
					
						2013-08-23 15:22:49 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							6df2917d93 
							
						 
					 
					
						
						
							
							* fix spilling of vfp instructions  
						
						 
						
						... 
						
						
						
						* spelling mistake fixed
git-svn-id: trunk@25345 - 
						
					 
					
						2013-08-23 15:22:46 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							c350c3a5e4 
							
						 
					 
					
						
						
							
							* arm thumb2 does not understand tst reg1,reg2,lsl reg3  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25344 - 
						
					 
					
						2013-08-23 15:22:44 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							bb73a2891b 
							
						 
					 
					
						
						
							
							* prevent generation of mul/mla statements with illegal registers  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25343 - 
						
					 
					
						2013-08-23 15:22:41 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							bfcdf6b825 
							
						 
					 
					
						
						
							
							* Replaced tai_ent and tai_ent_end classes with tai_directive subtypes. Having separate classes for them is unnecessary complication.  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25338 - 
						
					 
					
						2013-08-23 12:38:49 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							108d3cb090 
							
						 
					 
					
						
						
							
							- Removed tai_label.is_global field, was used in just one place and is generally not needed: binding is controlled by 'bind' property of referenced AsmLabel.  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25336 - 
						
					 
					
						2013-08-23 11:34:08 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							b8a76c5da2 
							
						 
					 
					
						
						
							
							- Removed gen_proc_symbol procedure, no longer used, replaced by thlcgobj.gen_proc_symbol method.  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25335 - 
						
					 
					
						2013-08-23 10:54:57 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							1af312c129 
							
						 
					 
					
						
						
							
							* don't overwrite result of librarysearchpath.FindFile() in  
						
						 
						
						... 
						
						
						
						GetDarwinPrtobjName() if it found something
git-svn-id: trunk@25330 - 
						
					 
					
						2013-08-22 21:37:06 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								svenbarth 
							
						 
					 
					
						
						
						
						
							
						
						
							b57a587842 
							
						 
					 
					
						
						
							
							Fix for Mantis  #24903 .  
						
						 
						
						... 
						
						
						
						ncon.pas, tstringconstnode:
  * buildderefimpl: don't build the deref if we don't need to
  * derefimpl: do not try to resolve the deref if it wasn't stored at all
git-svn-id: trunk@25329 - 
						
					 
					
						2013-08-22 20:18:14 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							528f5d1096 
							
						 
					 
					
						
						
							
							* initialise result of GetDarwinPrtobjName() in case GetDarwinCrt1ObjName()  
						
						 
						
						... 
						
						
						
						returns an empty string
git-svn-id: trunk@25328 - 
						
					 
					
						2013-08-22 19:55:57 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							4ec9ec2009 
							
						 
					 
					
						
						
							
							+ PIC support for Darwin/ARM:  
						
						 
						
						... 
						
						
						
						o does not use GOT
   o enabled by default like for other Darwin platforms
  - removed Darwin/ARM call stub support: no longer needed with current
    Xcode versions (at least Xcode 4.2+), and we didn't support PIC
    in them yet
git-svn-id: trunk@25325 - 
						
					 
					
						2013-08-22 08:14:24 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							8ffb704b8c 
							
						 
					 
					
						
						
							
							* don't split address labels from the instruction they belong with when  
						
						 
						
						... 
						
						
						
						rescheduling (needed for GOT-less PIC)
git-svn-id: trunk@25324 - 
						
					 
					
						2013-08-22 08:14:18 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							b31e5c2536 
							
						 
					 
					
						
						
							
							+ PIC support for ARM jump tables (only for plain ARM right now, not  
						
						 
						
						... 
						
						
						
						yet for thumb/thumb2)
git-svn-id: trunk@25323 - 
						
					 
					
						2013-08-21 22:28:24 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							936bd3c902 
							
						 
					 
					
						
						
							
							* fixed definitions/uses of asmsymbols: always explicitly define local  
						
						 
						
						... 
						
						
						
						symbols as local, don't use RefAsmSymbol for symbols that may still
    be defined/used as local symbols later
git-svn-id: trunk@25318 - 
						
					 
					
						2013-08-21 09:49:07 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							efa95bed66 
							
						 
					 
					
						
						
							
							* changes so the compiler can be compiled with a unicode RTL without warnings  
						
						 
						
						... 
						
						
						
						git-svn-id: branches/cpstrrtl@25307 - 
						
					 
					
						2013-08-19 22:47:07 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							6606955b88 
							
						 
					 
					
						
						
							
							+ basic support for pic on arm-linux  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25297 - 
						
					 
					
						2013-08-19 21:35:37 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							a1fa1954b8 
							
						 
					 
					
						
						
							
							* i8086 medium model fixes in Tresourcestrings.CreateResourceStringData  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25292 - 
						
					 
					
						2013-08-18 21:18:22 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							e4f84b0f5d 
							
						 
					 
					
						
						
							
							* i8086 medium model fixes in tnodeutils.InsertResourceTablesTable  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25290 - 
						
					 
					
						2013-08-18 20:37:18 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							2806947a8f 
							
						 
					 
					
						
						
							
							+ FindRegAllocBackward  
						
						 
						
						... 
						
						
						
						* search reg. allocations backward in RemoveSuperfluousMove because the changed instruction could be the first one in a list
git-svn-id: trunk@25289 - 
						
					 
					
						2013-08-18 18:56:56 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							bca6dafbc5 
							
						 
					 
					
						
						
							
							* mark the current procedure if it has a non local exit, not the targetted one  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25288 - 
						
					 
					
						2013-08-18 18:55:53 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							10db067372 
							
						 
					 
					
						
						
							
							* specify Tasmsymtype=AT_FUNCTION and use Create_nil_codeptr when generating the code pointers in the InitFinal table  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25286 - 
						
					 
					
						2013-08-18 18:27:48 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							e147895f80 
							
						 
					 
					
						
						
							
							* make symbols generated in procedures global when auto-inlining is on  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25285 - 
						
					 
					
						2013-08-18 17:32:47 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								paul 
							
						 
					 
					
						
						
						
						
							
						
						
							17ef986b17 
							
						 
					 
					
						
						
							
							compiler: don't treat methods without self node (static class methods, class contructors, destructors, operators) as method pointers, fix comparison of procdef and procvardef to allow assignment of a static class method to a regular procedural variable (issue  #24486 )  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25284 - 
						
					 
					
						2013-08-18 17:29:23 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							a2a405581c 
							
						 
					 
					
						
						
							
							* don't call the ansistring val variant for a zero based array if not necessary to avoid ansistring usage in embedded applications  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25283 - 
						
					 
					
						2013-08-18 17:04:06 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							38f3448e22 
							
						 
					 
					
						
						
							
							* applied patch by Cyrax to  fix   #24722 , revertes partially r25054 which was wrong  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25282 - 
						
					 
					
						2013-08-18 16:05:43 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								paul 
							
						 
					 
					
						
						
						
						
							
						
						
							dc95ba5b07 
							
						 
					 
					
						
						
							
							compiler: handle other places where we check current_procdef for self node  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25281 - 
						
					 
					
						2013-08-18 13:09:32 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								paul 
							
						 
					 
					
						
						
						
						
							
						
						
							4b76782691 
							
						 
					 
					
						
						
							
							compiler: fix property access from a nested routine of the static class method and extend a test  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25280 - 
						
					 
					
						2013-08-18 12:36:04 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							38058505ba 
							
						 
					 
					
						
						
							
							* Changed linking infrastructure to look like assembler one:  
						
						 
						
						... 
						
						
						
						* Changed direct references to linker classes in TSystemInfo records to enumerated ids.
  * RegisterExtennalLinker and RegisterInternalLinker procedures replaced by single RegisterLinker procedure and moved to link.pas.
  - TAbstractLinker is no longer necessary, removed.
This change allows to register linker once per id, rather than once per target, and also allows TSystemInfo records to be read-only.
git-svn-id: trunk@25279 - 
						
					 
					
						2013-08-18 12:01:21 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							9e3d17778d 
							
						 
					 
					
						
						
							
							- Removed TAbstractAssembler and TAbstractAssemblerClass, they are not used anymore.  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25278 - 
						
					 
					
						2013-08-18 11:03:30 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							eec8129738 
							
						 
					 
					
						
						
							
							* TInternalLinker.Load_ReadStaticLibrary: exit if error has occurred while opening a static library or dynamic object, continuing can cause other errors/crashes in this case.  
						
						 
						
						... 
						
						
						
						* t_linux.pas: use sysrootpath when specifying dynamic interpreter (for cross-linking).
git-svn-id: trunk@25277 - 
						
					 
					
						2013-08-18 09:14:16 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							088c06d308 
							
						 
					 
					
						
						
							
							* fixed class VMT generation for the i8086 medium memory model (near code, far data) by setting correctly the Tasmsymtype to each symbol according to whether it points to code or data  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25276 - 
						
					 
					
						2013-08-18 00:03:55 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							57cdd8c106 
							
						 
					 
					
						
						
							
							* set symbol type/binding of data referred by ppc and arm/darwin stubs (part  
						
						 
						
						... 
						
						
						
						of r25264, fixes internalerror 2013081601 after r25266)
git-svn-id: trunk@25275 - 
						
					 
					
						2013-08-17 16:26:37 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								paul 
							
						 
					 
					
						
						
						
						
							
						
						
							5c33644e5c 
							
						 
					 
					
						
						
							
							compiler: fix calling class methods from a nested routine of a static class method (mantis  #0024865 )  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25274 - 
						
					 
					
						2013-08-17 04:44:19 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								paul 
							
						 
					 
					
						
						
						
						
							
						
						
							89e154bc10 
							
						 
					 
					
						
						
							
							compiler: if method has no self node then load it as a usual identifier (issue  #0024871 )  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25273 - 
						
					 
					
						2013-08-17 02:54:55 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							d11ec8ac47 
							
						 
					 
					
						
						
							
							- Reverted r25269 and commented out r25261. The former one is wrong because it changes unit initialization order. The latter one causes RTL build failures on some targets, needs testing and likely RTL/makefiles patching.  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25271 - 
						
					 
					
						2013-08-16 15:17:25 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							e1ddd914ac 
							
						 
					 
					
						
						
							
							* Do not implicitly load Variants unit when compiling units. Doing so is mostly waste of time, and introduces unwanted build dependencies. It is enough to set uf_uses_variants flag for units, and examine these flags when compiling program/library.  Resolves   #24880 .  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25269 - 
						
					 
					
						2013-08-16 12:42:47 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							8d1090269e 
							
						 
					 
					
						
						
							
							* synchronised with trunk r25259  
						
						 
						
						... 
						
						
						
						git-svn-id: branches/cpstrrtl@25267 - 
						
					 
					
						2013-08-16 11:33:44 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							da6d9cf3f3 
							
						 
					 
					
						
						
							
							* give an internalerror when we try to change the type of an asmsymbol from  
						
						 
						
						... 
						
						
						
						anything but none (= undefined) to local
git-svn-id: trunk@25266 - 
						
					 
					
						2013-08-16 10:10:38 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							d8c84706dd 
							
						 
					 
					
						
						
							
							* use Tai_symbol.Create_global() when emitting a global symbol for an  
						
						 
						
						... 
						
						
						
						abstract method wrapper (tai_symbol.create() currently overrides the
    symbol type from global to local; will fix in next commit)
  * only generate global abstract method wrappers for the class in which
    the abstract method is declared to prevent duplicate symbol errors
    after the above fix
git-svn-id: trunk@25265 - 
						
					 
					
						2013-08-16 10:09:37 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							3b9b6a0cd7 
							
						 
					 
					
						
						
							
							* explicitly define the asmsymbols for Darwin call stubs as local  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25264 - 
						
					 
					
						2013-08-16 10:07:46 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							c558991d8f 
							
						 
					 
					
						
						
							
							* Implicitly use Variants unit when (ole)Variant type appears as a function/operator result and nowhere else. Mantis  #24863 .  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25261 - 
						
					 
					
						2013-08-16 08:38:21 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							92811d09c1 
							
						 
					 
					
						
						
							
							* Generate stub bodies for abstract methods, so corresponding symbols can be referenced from code.  Resolves   #24536 .  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25260 - 
						
					 
					
						2013-08-15 10:04:37 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							3a12e94d21 
							
						 
					 
					
						
						
							
							* TVMTWriter.writeinterfaceids: pass target asmlist as parameter.  
						
						 
						
						... 
						
						
						
						* Changed section type for interface GUID and name from sec_rodata to sec_rodata_norel, because GUIDs and strings are not relocatable.
git-svn-id: trunk@25259 - 
						
					 
					
						2013-08-14 11:54:00 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							d23a5b7c7d 
							
						 
					 
					
						
						
							
							* store break/continue usage in a variable  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25247 - 
						
					 
					
						2013-08-11 21:13:24 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							cfcb4cab26 
							
						 
					 
					
						
						
							
							* simplify body of for loop before unrolling  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25246 - 
						
					 
					
						2013-08-11 21:13:22 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							5d4a094799 
							
						 
					 
					
						
						
							
							* calculate complexity of exit nodes correctly  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25245 - 
						
					 
					
						2013-08-11 21:13:20 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							0a22199738 
							
						 
					 
					
						
						
							
							* always use the varrec size retrieved from the system unit when advancing to the next element  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25244 - 
						
					 
					
						2013-08-11 20:13:57 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							fe4cac96be 
							
						 
					 
					
						
						
							
							+ added overloads to tai_const.Createname and Create_type_name, which take a Tasmsymtype parameter; to be used for declaring external symbols which reside in the data segment with AT_DATA, which is necessary for i8086 medium and compact memory models (where code and data pointers are of different size)  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25243 - 
						
					 
					
						2013-08-11 19:46:17 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							7ae9c5b668 
							
						 
					 
					
						
						
							
							+ added optional Tasmsymtype parameter to TAsmData.RefAsmSymbol and WeakRefAsmSymbol to allow specifying things like AT_DATA for external symbols that reside in the data segment, which is needed for i8086 medium and compact memory models  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25242 - 
						
					 
					
						2013-08-11 19:24:54 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							3d90ac82f8 
							
						 
					 
					
						
						
							
							* disable regable 4 bytes records on 16 bit alu targets, to enable them, location handling should be rewritten else gen_load_cgpara_loc gets even more messy  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25239 - 
						
					 
					
						2013-08-11 16:12:41 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							11ff8a4ec1 
							
						 
					 
					
						
						
							
							+ support register parameters with multiple locations  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25238 - 
						
					 
					
						2013-08-11 16:12:39 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							86c36995dd 
							
						 
					 
					
						
						
							
							* i8086 has no 32 bit rol/ror support so disabled inlined ror/rol for now  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25237 - 
						
					 
					
						2013-08-11 16:12:37 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								svenbarth 
							
						 
					 
					
						
						
						
						
							
						
						
							ff3bb9322a 
							
						 
					 
					
						
						
							
							Fix for Mantis  #24848 .  
						
						 
						
						... 
						
						
						
						ngenutil.pas, AddToStructsInit:
  * don't add class constructors/destructors to the init table if they belong to a generic type
+ test
git-svn-id: trunk@25234 - 
						
					 
					
						2013-08-11 11:20:12 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							a5517cd3d4 
							
						 
					 
					
						
						
							
							* SI and DI removed from the i8086 saved_standard_registers list, because they are volatile in TP7's default calling convention  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25231 - 
						
					 
					
						2013-08-09 12:21:30 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							57d4185d44 
							
						 
					 
					
						
						
							
							* allocate/deallocate cpu registers as late/early as possible, this gives the reg. allocator more flexibility  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25229 - 
						
					 
					
						2013-08-08 20:55:45 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							e1550e1aed 
							
						 
					 
					
						
						
							
							* Restore registers in correct order (for push/pop it *does* matter), fixes crashes caused by r25224.  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25228 - 
						
					 
					
						2013-08-08 05:35:51 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								masta 
							
						 
					 
					
						
						
						
						
							
						
						
							b81f746e05 
							
						 
					 
					
						
						
							
							Inline Length(DynamicArray)  
						
						 
						
						... 
						
						
						
						Up until now a helperfunction was called at runtime. This change inlines
the whole code in the same way Length(AnsiString) works. As dynamic
arrays do not record their length but their highest index, an additional
"OP_ADD" is this case.
git-svn-id: trunk@25227 - 
						
					 
					
						2013-08-07 22:07:08 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							2ba22f666e 
							
						 
					 
					
						
						
							
							+ support for R_SUBMMX and R_SUBMMY in generic_regname()  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25225 - 
						
					 
					
						2013-08-07 12:41:47 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							5c4abfa75a 
							
						 
					 
					
						
						
							
							+ Implemented saving/restoring registers using PUSH/POP instructions on i386 targets with non-fixed stack. Provides some advantage in code size (e.g. the compiler becomes about 20KBytes smaller).  
						
						 
						
						... 
						
						
						
						* This should be applicable to i8086 targets as well (but needs testing), by copying changes from i386/cgcpu.pas to i8086/cgcpu.pas and removing "$ifdef i386" lines in cgx86.pas.
git-svn-id: trunk@25224 - 
						
					 
					
						2013-08-07 09:59:07 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							1ce93f7430 
							
						 
					 
					
						
						
							
							* when automatically generating an overriding getter/setter method (because  
						
						 
						
						... 
						
						
						
						a property in a child class has a higher visibility than the getter/
    setter), ensure that we call the inherited method and not the method
    itself (causing a stack overflow due to infinite recursion)
git-svn-id: trunk@25223 - 
						
					 
					
						2013-08-06 21:50:56 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							a21a20d559 
							
						 
					 
					
						
						
							
							+ i8086-specific version of g_stackpointer_alloc.  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25219 - 
						
					 
					
						2013-08-06 08:11:39 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							1f72143eef 
							
						 
					 
					
						
						
							
							* In preparation for fixing Mantis  #24791 : Copy related code from tcgx86.g_proc_entry to tcgx86_64.g_proc_entry, and remove win64-specific stuff from tcgx86 version.  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25218 - 
						
					 
					
						2013-08-06 07:34:50 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							ea65e272dd 
							
						 
					 
					
						
						
							
							* Changed global variable into field.  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25217 - 
						
					 
					
						2013-08-05 16:32:37 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							912268b1b9 
							
						 
					 
					
						
						
							
							* make loop unrolling dependent on the cpu optimization type instead of the instruction set  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25211 - 
						
					 
					
						2013-08-03 20:49:20 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							db541b59fa 
							
						 
					 
					
						
						
							
							- disallow calling tai_symbol_end.Createname with a symbol name that isn't yet defined  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25210 - 
						
					 
					
						2013-08-03 12:27:43 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							b262b4d76b 
							
						 
					 
					
						
						
							
							* fix loop unrolling of for in loops  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25209 - 
						
					 
					
						2013-08-02 21:21:14 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							fb8fb29574 
							
						 
					 
					
						
						
							
							* record/use the code page of string constants typecasted to an ansistring  
						
						 
						
						... 
						
						
						
						type with a non-default code page
   TODO: ensure that string constants typecasted to ansistring become
     ansistrings rather than typeless string constants
git-svn-id: trunk@25207 - 
						
					 
					
						2013-08-02 13:23:32 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							d0fa5fff8c 
							
						 
					 
					
						
						
							
							* use Tai_const.Create_nil_dataptr in TVMTWriter.intf_gen_intf_ref for writing the nil value for the GUID ptr of Corba interfaces  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25201 - 
						
					 
					
						2013-07-31 15:18:13 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							875e676441 
							
						 
					 
					
						
						
							
							* use Create_nil_dataptr in objectdef_rtti_class_full() when writing the current vmt address for objects that have no vmt  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25200 - 
						
					 
					
						2013-07-31 15:10:46 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							a000d65447 
							
						 
					 
					
						
						
							
							* use Taiconst.Create_nil_codeptr when writing nil values for abstract methods in TVMTWriter.do_gen_published_methods  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25199 - 
						
					 
					
						2013-07-31 14:51:18 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							259bb5421e 
							
						 
					 
					
						
						
							
							* tobjectdef.vmtmethodoffset updated to take into account the current i8086 memory model code pointer size  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25195 - 
						
					 
					
						2013-07-30 23:26:34 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							b85f87620c 
							
						 
					 
					
						
						
							
							* use Tai_const.Create_nil_dataptr for creating the nil pointers located before the method table in the class vmt  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25194 - 
						
					 
					
						2013-07-30 23:09:52 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							0bdd9db7a2 
							
						 
					 
					
						
						
							
							* terminate the list of virtual method pointers in the vmt with Tai_const.Create_nil_codeptr  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25193 - 
						
					 
					
						2013-07-30 23:04:25 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							9b364f4989 
							
						 
					 
					
						
						
							
							* use Tai_const.Create_nil_dataptr instead of Tai_const.Create_sym(nil) when writing nil for the parent vmt pointer  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25191 - 
						
					 
					
						2013-07-30 22:48:05 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Károly Balogh 
							
						 
					 
					
						
						
						
						
							
						
						
							614afca755 
							
						 
					 
					
						
						
							
							ARM: try to inline 64bit multiplication for the most common cases instead of calling FPC_MUL_ helpers (results in 5-10x speedup)  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25189 - 
						
					 
					
						2013-07-30 14:40:50 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							fcbc435435 
							
						 
					 
					
						
						
							
							* only call findclose if findfirst succeeded  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25188 - 
						
					 
					
						2013-07-30 13:39:32 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							1f8a67f552 
							
						 
					 
					
						
						
							
							+ Property TObjSymbol.ObjData, allows to access owning TObjData for external/common symbols, i.e. ones with ObjSection=nil.  
						
						 
						
						... 
						
						
						
						* For common symbols, report objdata of the original ObjSymbol, not of the resolving one, so the map file shows where it comes from.
+ TElfExeOutput.OrderOrphanSections method, handles object sections not mentioned in script similar to ld.
- t_linux.pas: removed sections that are not part of ld scripts, they are now handled by OrderOrphanSections.
git-svn-id: trunk@25184 - 
						
					 
					
						2013-07-30 09:23:48 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							42e82c9de3 
							
						 
					 
					
						
						
							
							* when a i8086 reference uses only one register, choose it from the set [BX,BP,SI,DI] as it can be treated either as a base or an index, depending on what's convenient  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25183 - 
						
					 
					
						2013-07-29 21:03:10 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							5b6e50c9da 
							
						 
					 
					
						
						
							
							* It is incorrect to use var_align() in linker code: it depends on current_settings.alignment, which is valid only while compiling, not while linking. Replaced with size_2_align().  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25182 - 
						
					 
					
						2013-07-29 15:51:30 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							e7f6b06969 
							
						 
					 
					
						
						
							
							+ MIPS internal linker: support TLS IE/LE and GPREL32 relocations, is now able to link tw14265.  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25181 - 
						
					 
					
						2013-07-29 09:30:40 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							11b72b5515 
							
						 
					 
					
						
						
							
							x86_64 internal ELF linker:  
						
						 
						
						... 
						
						
						
						* Split generation of regular and TLSIE GOT entries. Although code for both is similar to some extent, mixing them in a single method turns it into spaghetti.
* Several fixes to content and dynamic relocations of TLSIE entries.
git-svn-id: trunk@25180 - 
						
					 
					
						2013-07-29 08:34:00 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							c2f7ccb253 
							
						 
					 
					
						
						
							
							* coalesce more aggressive  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25177 - 
						
					 
					
						2013-07-26 19:06:20 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							70dda94474 
							
						 
					 
					
						
						
							
							* x86_64-win64: don't allocate outgoing parameter area in nostackframe procedures, it fails compilation if range/overflow/etc checking is enabled (which always sets pi_do_call) due to check introduced in r22677.  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25176 - 
						
					 
					
						2013-07-26 10:24:31 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								svenbarth 
							
						 
					 
					
						
						
						
						
							
						
						
							53ea24a0b1 
							
						 
					 
					
						
						
							
							Correctly specialize generics if locally declared types are used (e.g. two procedures could both define a different "TRec" type which is used to specialize a generic inside the procedures).  
						
						 
						
						... 
						
						
						
						symtype.pas, tdef:
  + add method "fullownerhierarchyname" which allows to retrieve the owner hierarchy name including procedure/function/method names
  + add method "fulltypename" which uses "fullownerhierarchyname" to return a full type name
symdef.pas, tstoreddef:
  * implement "fullownerhierarchyname" (including caching of the result)
pgenutil.pas, parse_generic_specialization_types_internal:
  * use "tdef.fulltypename" instead of "tdef.typename" to have unique values for each parsed type and thus for the specialization itself
+ tests
git-svn-id: trunk@25175 - 
						
					 
					
						2013-07-26 09:02:24 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							6f5bcaae2b 
							
						 
					 
					
						
						
							
							* UMUL et al. have only register restrictions on arm below v6  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25171 - 
						
					 
					
						2013-07-24 20:18:12 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							404c3efa58 
							
						 
					 
					
						
						
							
							* MIPS: handle get_frame internally, so it sets pi_needs_stackframe flag on current procedure. This makes possible not to force pi_needs_stackframe on every procedure and thus omit saving/restoring $fp register when it is not necessary.  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25170 - 
						
					 
					
						2013-07-24 15:25:12 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							29132f45b7 
							
						 
					 
					
						
						
							
							* synchronised with trunk up to r25167 (fixes glib compilation via r25164,  
						
						 
						
						... 
						
						
						
						and occasional crashes in executeprocess on libc platforms via r25167)
git-svn-id: branches/cpstrrtl@25169 - 
						
					 
					
						2013-07-24 14:24:49 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							35b771e421 
							
						 
					 
					
						
						
							
							* previously, we preferred pchar->shortstring to pchar->ansistring in  
						
						 
						
						... 
						
						
						
						case of {$h-}. Now this is no longer done because it caused
    pchar->ansistring and pchar->unicodestring to have the same
    overload preference, which regularly caused problems with the
    added unicodestring overloads in the RTL in the cpstrrtl branch.
  * fixed tw3328.pp (it was missing a {$mode delphi}), which failed
    before this patch but compiles new
  + extra variants of that test for the compiler changes
git-svn-id: trunk@25164 - 
						
					 
					
						2013-07-24 09:39:34 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jeppe Johansen 
							
						 
					 
					
						
						
						
						
							
						
						
							d89b9a4311 
							
						 
					 
					
						
						
							
							Add support in ARM assembler reader for ldr reg, =literal syntax  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25157 - 
						
					 
					
						2013-07-21 16:06:57 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jeppe Johansen 
							
						 
					 
					
						
						
						
						
							
						
						
							fdcc68cfd7 
							
						 
					 
					
						
						
							
							Disabled preindex/postindexed peephole optimizations for Thumb and Thumb2  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25156 - 
						
					 
					
						2013-07-21 14:21:16 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jeppe Johansen 
							
						 
					 
					
						
						
						
						
							
						
						
							0977d76f42 
							
						 
					 
					
						
						
							
							Mark global symbols with assembler references as non-regable  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25155 - 
						
					 
					
						2013-07-21 13:41:10 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							dddc78514d 
							
						 
					 
					
						
						
							
							* Internal ELF linker: for MIPS targets, place .got section after .data. This corresponds to behavior of ld, and reduces amount of processing when adding GOT slots for local symbols (which requires re-doing layout for all sections that come after .got)  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25154 - 
						
					 
					
						2013-07-21 13:10:57 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							2e97de9522 
							
						 
					 
					
						
						
							
							+ added an i8086 specific override of thlcgcpu.location_force_mem, which handles 6-byte (medium/compact memory model) method pointers  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25151 - 
						
					 
					
						2013-07-20 19:40:27 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							f5a0702f9a 
							
						 
					 
					
						
						
							
							+ added i8086 specific implementation of Tcgtypeconvnode.second_nil_to_methodprocvar, which supports memory models with far code and/or far data  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25150 - 
						
					 
					
						2013-07-20 16:58:41 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							91d7b2bc94 
							
						 
					 
					
						
						
							
							+ added i8086 medium/compact model 6-byte (mixed near + far) method pointer support in tcgloadnode and tcgassignmentnode  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25149 - 
						
					 
					
						2013-07-20 15:06:14 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							8e6d4b41e2 
							
						 
					 
					
						
						
							
							+ MIPS: started the peephole optimizer.  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25148 - 
						
					 
					
						2013-07-20 13:44:21 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							9494fadf08 
							
						 
					 
					
						
						
							
							* MIPS: set pi_do_call flag for assembler procedures with stackframes, so in PIC mode it further receives pi_needs_got in PIC mode and allocates the GP save temp.  
						
						 
						
						... 
						
						
						
						* Deallocate GP save temp in epilogue to avoid warnings when compiled with -dEXTDEBUG
* g_concatcopy: don't check alignment, this allows single byte or word locations to be copied with 2 instructions. Larger unaligned references are supposed to be handled in g_concatcopy_unaligned instead.
git-svn-id: trunk@25147 - 
						
					 
					
						2013-07-20 13:42:41 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							1a560e9875 
							
						 
					 
					
						
						
							
							* when concatenating ansistrings, do not map CP_NONE (rawbytestring) to  
						
						 
						
						... 
						
						
						
						CP_ACP (defaultsystemcodepage), because if all input strings have the
    same code page then the result should also have that code page if it's
    assigned to a rawbytestring rather than getting defaultsystemcodepage
  * do not consider empty strings to determine the code page of the result
    in fpc_AnsiStr_Concat_multi(), because that will cause a different
    result than when using a sequence of fpc_AnsiStr_Concat() calls (it
    ignores empty strings to determine the result code page) and it's also
    slower
  * do not consider the run time code page of the destination string in
    fpc_AnsiStr_Concat(_multi)() because Delphi does not do so either. This
    was introduced in r19118, probably to hide another bug
  + test
git-svn-id: branches/cpstrrtl@25143 - 
						
					 
					
						2013-07-19 16:33:14 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							f80ce76a69 
							
						 
					 
					
						
						
							
							+ MIPS: emulate "flags", i.e. support LOC_FLAGS location. This allows to generate differently optimized code for branching and for conversion to register, typically saving a register and instruction per compare.  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25131 - 
						
					 
					
						2013-07-19 14:06:47 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							9a6edd0fb8 
							
						 
					 
					
						
						
							
							* MIPS: handle restoring GP after calls without GAS macro processing, removes ugly workaround for GAS bug.  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25130 - 
						
					 
					
						2013-07-19 08:04:06 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							4b93fa1323 
							
						 
					 
					
						
						
							
							* set all the i8086 calling conventions' volatile registers to be the same as the 'pascal' calling convention; this should make cdecl compatible with 16-bit C compilers  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25128 - 
						
					 
					
						2013-07-18 21:01:41 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							dffe9cbc55 
							
						 
					 
					
						
						
							
							* Output sizes in map files without truncation and without leading zeros, plus a few more tweaks to make it look more like map files generated by ld.  Resolves   #24747 .  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25127 - 
						
					 
					
						2013-07-17 14:52:02 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							8b1463aedc 
							
						 
					 
					
						
						
							
							* tprocdef.customprocname: fixed bug introduced in r21069 that was causing result to always contain 'procedure' or 'function' word. These should be included only if pno_proctypeoption flag is given.  Resolves   #24640 .  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25126 - 
						
					 
					
						2013-07-17 12:41:55 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							f49be98507 
							
						 
					 
					
						
						
							
							* MIPS: avoid temp if possible also when converting unsigned 32-bit integers to real.  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25123 - 
						
					 
					
						2013-07-17 11:19:19 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							c3350d13f9 
							
						 
					 
					
						
						
							
							* MIPS: floating point parameters on stack should be loaded to/from FPU registers directly, without using temp.  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25122 - 
						
					 
					
						2013-07-17 11:00:46 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							2a64ba0ad3 
							
						 
					 
					
						
						
							
							* do a 32-bit comparison on far and huge pointers  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25110 - 
						
					 
					
						2013-07-16 07:57:49 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nickysn 
							
						 
					 
					
						
						
						
						
							
						
						
							7a0bf4fa54 
							
						 
					 
					
						
						
							
							* the change in r25067 disabled for 16-bit and 8-bit CPUs, because it relies on reg_cgsize, which gives wrong results on archs that use GetNextReg()  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25086 - 
						
					 
					
						2013-07-11 12:28:26 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							e82ecd66f3 
							
						 
					 
					
						
						
							
							- MIPS: removed target-specific real_to_real conversion, generic code handles it just well.  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25083 - 
						
					 
					
						2013-07-11 08:28:24 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							ac2006898f 
							
						 
					 
					
						
						
							
							* Mark procedures with shortstring value parameters as non-leaf, because such parameters generate a call (to fpc_shortstr_assign).  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25082 - 
						
					 
					
						2013-07-11 08:21:45 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							1ca2a253e8 
							
						 
					 
					
						
						
							
							MIPS, improved integer to real conversions:  
						
						 
						
						... 
						
						
						
						* Use fpc_[int64|qword]_to_double instead of [int64|qword]_to_float64, makes RTL no longer dependent on softfloat code.
* Move 32-bit values from integer registers to FPU registers without using memory.
* Fixed branching, was still using a macro and delay slot was missing.
git-svn-id: trunk@25071 - 
						
					 
					
						2013-07-09 14:17:51 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								svenbarth 
							
						 
					 
					
						
						
						
						
							
						
						
							6b34c84704 
							
						 
					 
					
						
						
							
							nadd.pas, taddnode.create_internal:  
						
						 
						
						... 
						
						
						
						* Fix formatting of parameters
git-svn-id: trunk@25070 - 
						
					 
					
						2013-07-09 08:51:49 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								svenbarth 
							
						 
					 
					
						
						
						
						
							
						
						
							fc79d47b09 
							
						 
					 
					
						
						
							
							Fix for Mantis  #24651 . Allow pointer comparison for internal expressions (in this case check for valid VMT).  
						
						 
						
						... 
						
						
						
						nadd.pas, taddnode:
  + add new constructor "create_internal" which adds "nf_internal" to the node's "flags"
  * pass_typecheck_internal: allow pointer comparisons other than "=" and "<>" for nodes which have "nf_internal" set
psub.pas, generate_bodyentry_block:
  * create the addnode using "create_internal" instead of "create" to allow the pointer comparison
+ added test 
git-svn-id: trunk@25069 - 
						
					 
					
						2013-07-09 08:04:11 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								svenbarth 
							
						 
					 
					
						
						
						
						
							
						
						
							407e9d173b 
							
						 
					 
					
						
						
							
							Fix for Mantis  #17598 . When extended syntax is off allow the result of constructors to be dropped when the constructor is called as an instance method instead of a class method.  
						
						 
						
						... 
						
						
						
						pstatmnt.pas, statement:
  * check whether the constructor is called as an instance or class method
nflw.pas, tlabelnode.pass_1:
  * don't check the owner of the labelsym when there is none (happens with internally created labels like for e.g. exception handling)
+ added test  
git-svn-id: trunk@25068 - 
						
					 
					
						2013-07-09 07:56:45 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							f3a1c749fb 
							
						 
					 
					
						
						
							
							* tcgtypeconvnode.second_int_to_int: reuse 8 and 16-bit-sized register locations on targets with 32-bit-only registers when casting to larger size (except ShortInt to Word cast). This is possible because upper bits of such registers are always kept valid by code generators (see 'maybeadjustresult' method in cgcpu.pas). Removes a lot of useless register moves.  
						
						 
						
						... 
						
						
						
						git-svn-id: trunk@25067 - 
						
					 
					
						2013-07-08 13:27:03 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							faa778b6c7 
							
						 
					 
					
						
						
							
							* MIPS: div/mod and 32-bit shifts: don't bother reusing argument locations, always allocate new register and emit 3-address instructions.  
						
						 
						
						... 
						
						
						
						* Fixed possible overwrite of LOC_CREGISTER numerator in optimized division by power of 2.
git-svn-id: trunk@25066 - 
						
					 
					
						2013-07-08 11:51:39 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								sergei 
							
						 
					 
					
						
						
						
						
							
						
						
							9e4cc57768 
							
						 
					 
					
						
						
							
							* MIPS: handle 8 and 16-bit arithmetic shifts internally, by shifting argument left by 24/16 bits, followed with 32-bit arithmetic shift right by appropriately adjusted amount.  
						
						 
						
						... 
						
						
						
						This approach should be usable for other non-x86 targets as well.
git-svn-id: trunk@25062 - 
						
					 
					
						2013-07-08 08:45:16 +00:00