mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-10-31 03:11:39 +01:00 
			
		
		
		
	* forgotten part of previous commit: fix BccB2Cond optimization on arm
git-svn-id: trunk@42684 -
This commit is contained in:
		
							parent
							
								
									ba0768b6a6
								
							
						
					
					
						commit
						0a0397c9f5
					
				| @ -2315,6 +2315,7 @@ Implementation | ||||
|                            CanBeCond(hp1) and | ||||
|                            { stop on labels } | ||||
|                            not(hp1.typ=ait_label) and | ||||
|                            { avoid that we cannot recognize the case BccB2Cond } | ||||
|                            not((hp1.typ=ait_instruction) and (taicpu(hp1).opcode=A_B)) do | ||||
|                            begin | ||||
|                               inc(l); | ||||
| @ -2393,10 +2394,17 @@ Implementation | ||||
|                                        { skip hp1 to <several moves 2> } | ||||
|                                        GetNextInstruction(hp1, hp1); | ||||
|                                        while assigned(hp1) and | ||||
|                                          CanBeCond(hp1) do | ||||
|                                          CanBeCond(hp1) and | ||||
|                                          (l<=3) do | ||||
|                                          begin | ||||
|                                            inc(l); | ||||
|                                            GetNextInstruction(hp1, hp1); | ||||
|                                            if MustBeLast(hp1) then | ||||
|                                              begin | ||||
|                                                GetNextInstruction(hp1, hp1); | ||||
|                                                break; | ||||
|                                              end | ||||
|                                            else | ||||
|                                              GetNextInstruction(hp1, hp1); | ||||
|                                          end; | ||||
|                                        { hp1 points to yyy: } | ||||
|                                        if assigned(hp1) and | ||||
| @ -2409,7 +2417,13 @@ Implementation | ||||
|                                             repeat | ||||
|                                               if hp1.typ=ait_instruction then | ||||
|                                                 taicpu(hp1).condition:=condition; | ||||
|                                               GetNextInstruction(hp1,hp1); | ||||
|                                               if MustBeLast(hp1) then | ||||
|                                                 begin | ||||
|                                                   GetNextInstruction(hp1, hp1); | ||||
|                                                   break; | ||||
|                                                 end | ||||
|                                               else | ||||
|                                                 GetNextInstruction(hp1, hp1); | ||||
|                                             until not(assigned(hp1)) or | ||||
|                                               not(CanBeCond(hp1)) or | ||||
|                                               ((hp1.typ=ait_instruction) and (taicpu(hp1).opcode=A_B)); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 florian
						florian