mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 06:39:25 +01:00 
			
		
		
		
	* tx86addnode.second_cmpfloat: use getresflags() to reduce code duplication.
git-svn-id: trunk@25443 -
This commit is contained in:
		
							parent
							
								
									5ffca2e66f
								
							
						
					
					
						commit
						5de4bdac40
					
				@ -1192,9 +1192,8 @@ unit nx86add;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    procedure tx86addnode.second_cmpfloat;
 | 
					    procedure tx86addnode.second_cmpfloat;
 | 
				
			||||||
      var
 | 
					 | 
				
			||||||
        resflags   : tresflags;
 | 
					 | 
				
			||||||
{$ifdef i8086}
 | 
					{$ifdef i8086}
 | 
				
			||||||
 | 
					      var
 | 
				
			||||||
        tmpref: treference;
 | 
					        tmpref: treference;
 | 
				
			||||||
{$endif i8086}
 | 
					{$endif i8086}
 | 
				
			||||||
      begin
 | 
					      begin
 | 
				
			||||||
@ -1237,28 +1236,6 @@ unit nx86add;
 | 
				
			|||||||
                emit_none(A_SAHF,S_NO);
 | 
					                emit_none(A_SAHF,S_NO);
 | 
				
			||||||
                cg.ungetcpuregister(current_asmdata.CurrAsmList,NR_AX);
 | 
					                cg.ungetcpuregister(current_asmdata.CurrAsmList,NR_AX);
 | 
				
			||||||
              end;
 | 
					              end;
 | 
				
			||||||
            if nf_swapped in flags then
 | 
					 | 
				
			||||||
             begin
 | 
					 | 
				
			||||||
               case nodetype of
 | 
					 | 
				
			||||||
                   equaln : resflags:=F_E;
 | 
					 | 
				
			||||||
                 unequaln : resflags:=F_NE;
 | 
					 | 
				
			||||||
                      ltn : resflags:=F_A;
 | 
					 | 
				
			||||||
                     lten : resflags:=F_AE;
 | 
					 | 
				
			||||||
                      gtn : resflags:=F_B;
 | 
					 | 
				
			||||||
                     gten : resflags:=F_BE;
 | 
					 | 
				
			||||||
               end;
 | 
					 | 
				
			||||||
             end
 | 
					 | 
				
			||||||
            else
 | 
					 | 
				
			||||||
             begin
 | 
					 | 
				
			||||||
               case nodetype of
 | 
					 | 
				
			||||||
                   equaln : resflags:=F_E;
 | 
					 | 
				
			||||||
                 unequaln : resflags:=F_NE;
 | 
					 | 
				
			||||||
                      ltn : resflags:=F_B;
 | 
					 | 
				
			||||||
                     lten : resflags:=F_BE;
 | 
					 | 
				
			||||||
                      gtn : resflags:=F_A;
 | 
					 | 
				
			||||||
                     gten : resflags:=F_AE;
 | 
					 | 
				
			||||||
               end;
 | 
					 | 
				
			||||||
             end;
 | 
					 | 
				
			||||||
          end
 | 
					          end
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
{$endif x86_64}
 | 
					{$endif x86_64}
 | 
				
			||||||
@ -1268,34 +1245,10 @@ unit nx86add;
 | 
				
			|||||||
            current_asmdata.CurrAsmList.concat(taicpu.op_reg(A_FSTP,S_NO,NR_ST0));
 | 
					            current_asmdata.CurrAsmList.concat(taicpu.op_reg(A_FSTP,S_NO,NR_ST0));
 | 
				
			||||||
            tcgx86(cg).dec_fpu_stack;
 | 
					            tcgx86(cg).dec_fpu_stack;
 | 
				
			||||||
            tcgx86(cg).dec_fpu_stack;
 | 
					            tcgx86(cg).dec_fpu_stack;
 | 
				
			||||||
 | 
					 | 
				
			||||||
            { load fpu flags }
 | 
					 | 
				
			||||||
            if nf_swapped in flags then
 | 
					 | 
				
			||||||
             begin
 | 
					 | 
				
			||||||
               case nodetype of
 | 
					 | 
				
			||||||
                   equaln : resflags:=F_E;
 | 
					 | 
				
			||||||
                 unequaln : resflags:=F_NE;
 | 
					 | 
				
			||||||
                      ltn : resflags:=F_A;
 | 
					 | 
				
			||||||
                     lten : resflags:=F_AE;
 | 
					 | 
				
			||||||
                      gtn : resflags:=F_B;
 | 
					 | 
				
			||||||
                     gten : resflags:=F_BE;
 | 
					 | 
				
			||||||
               end;
 | 
					 | 
				
			||||||
             end
 | 
					 | 
				
			||||||
            else
 | 
					 | 
				
			||||||
             begin
 | 
					 | 
				
			||||||
               case nodetype of
 | 
					 | 
				
			||||||
                   equaln : resflags:=F_E;
 | 
					 | 
				
			||||||
                 unequaln : resflags:=F_NE;
 | 
					 | 
				
			||||||
                      ltn : resflags:=F_B;
 | 
					 | 
				
			||||||
                     lten : resflags:=F_BE;
 | 
					 | 
				
			||||||
                      gtn : resflags:=F_A;
 | 
					 | 
				
			||||||
                     gten : resflags:=F_AE;
 | 
					 | 
				
			||||||
               end;
 | 
					 | 
				
			||||||
             end;
 | 
					 | 
				
			||||||
          end;
 | 
					          end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        location_reset(location,LOC_FLAGS,OS_NO);
 | 
					        location_reset(location,LOC_FLAGS,OS_NO);
 | 
				
			||||||
        location.resflags:=resflags;
 | 
					        location.resflags:=getresflags(true);
 | 
				
			||||||
      end;
 | 
					      end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user