mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-10-31 22:49:30 +01:00 
			
		
		
		
	PascalScript: pass dyn. arrays in registers when i386 register calling conventions are used (related to FPC r30870 #7b0df7dac3). Issue #29230. From Maciej Izak.
git-svn-id: trunk@51018 -
This commit is contained in:
		
							parent
							
								
									1dc657f13d
								
							
						
					
					
						commit
						93d8895785
					
				| @ -542,11 +542,7 @@ _XMM0: Double; | ||||
|               Result := True; | ||||
|               exit; | ||||
|             end else begin | ||||
|             {$IFDEF FPC} | ||||
|               StoreReg(IPointer(FVar.Dta)); | ||||
|             {$ELSE} | ||||
|               StoreReg(IPointer(FVar.Dta^)); | ||||
|             {$ENDIF} | ||||
|             end; | ||||
|           end; | ||||
|         btRecord: | ||||
|  | ||||
| @ -1,7 +1,5 @@ | ||||
| { implementation of x86         abi } | ||||
| {$ifdef FPC} | ||||
| {$define PS_ARRAY_ON_STACK} | ||||
| {$endif} | ||||
| 
 | ||||
| function RealFloatCall_Register(p: Pointer; | ||||
|   _EAX, _EDX, _ECX: Cardinal; | ||||
|   StackData: Pointer; | ||||
| @ -390,9 +388,16 @@ var | ||||
|             {$IFDEF PS_DYNARRAY} | ||||
|               TempStr := StringOfChar(AnsiChar(#0),4);
 | ||||
|               Pointer((@TempStr[1])^) := Pointer(fvar.Dta^); | ||||
|             {$IFDEF PS_ARRAY_ON_STACK} | ||||
|             UseReg := false; | ||||
|             {$IFDEF FPC} | ||||
|             {$IF FPC_FULLVERSION < 30101} | ||||
|               // pass dyn. array on stack
 | ||||
|               UseReg := false; | ||||
|             {$ELSE} | ||||
|               // pass dyn. arrays in registers when i386 register calling conventions are used
 | ||||
|               // more details -> FPC r30870
 | ||||
|               UseReg := CallingConv = cdRegister; | ||||
|             {$ENDIF} | ||||
|             {$ENDIF ~FPC} | ||||
|             {$ELSE} | ||||
|               Exit; | ||||
|             {$ENDIF} | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 juha
						juha