mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 03:39:40 +01:00 
			
		
		
		
	* fixed double parameters passing and storing result for ARM in softfloat mode (by removing old hacks).
git-svn-id: trunk@5438 -
This commit is contained in:
		
							parent
							
								
									257a76d6c8
								
							
						
					
					
						commit
						5ceef96cf3
					
				@ -401,15 +401,6 @@ unit cpupara;
 | 
				
			|||||||
                   end;
 | 
					                   end;
 | 
				
			||||||
                 dec(paralen,tcgsize2size[paraloc^.size]);
 | 
					                 dec(paralen,tcgsize2size[paraloc^.size]);
 | 
				
			||||||
               end;
 | 
					               end;
 | 
				
			||||||
             { hack to swap doubles in int registers }
 | 
					 | 
				
			||||||
             if is_double(hp.vardef) and (paracgsize=OS_64) and
 | 
					 | 
				
			||||||
               (hp.paraloc[side].location^.loc=LOC_REGISTER) then
 | 
					 | 
				
			||||||
               begin
 | 
					 | 
				
			||||||
                 paraloc:=hp.paraloc[side].location;
 | 
					 | 
				
			||||||
                 hp.paraloc[side].location:=hp.paraloc[side].location^.next;
 | 
					 | 
				
			||||||
                 hp.paraloc[side].location^.next:=paraloc;
 | 
					 | 
				
			||||||
                 paraloc^.next:=nil;
 | 
					 | 
				
			||||||
               end;
 | 
					 | 
				
			||||||
          end;
 | 
					          end;
 | 
				
			||||||
        curintreg:=nextintreg;
 | 
					        curintreg:=nextintreg;
 | 
				
			||||||
        curfloatreg:=nextfloatreg;
 | 
					        curfloatreg:=nextfloatreg;
 | 
				
			||||||
@ -456,8 +447,8 @@ unit cpupara;
 | 
				
			|||||||
                    begin
 | 
					                    begin
 | 
				
			||||||
                      { low }
 | 
					                      { low }
 | 
				
			||||||
                      p.funcretloc[side].loc:=LOC_REGISTER;
 | 
					                      p.funcretloc[side].loc:=LOC_REGISTER;
 | 
				
			||||||
                      p.funcretloc[side].register64.reglo:=NR_FUNCTION_RESULT64_HIGH_REG;
 | 
					                      p.funcretloc[side].register64.reglo:=NR_FUNCTION_RESULT64_LOW_REG;
 | 
				
			||||||
                      p.funcretloc[side].register64.reghi:=NR_FUNCTION_RESULT64_LOW_REG;
 | 
					                      p.funcretloc[side].register64.reghi:=NR_FUNCTION_RESULT64_HIGH_REG;
 | 
				
			||||||
                      p.funcretloc[side].size:=OS_64;
 | 
					                      p.funcretloc[side].size:=OS_64;
 | 
				
			||||||
                    end;
 | 
					                    end;
 | 
				
			||||||
                  OS_32,
 | 
					                  OS_32,
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user