Bläddra i källkod

* better recognization of procedure exit code

git-svn-id: trunk@41060 -
florian 6 år sedan
förälder
incheckning
6cb6517411
1 ändrade filer med 8 tillägg och 0 borttagningar
  1. 8 0
      compiler/x86/aoptx86.pas

+ 8 - 0
compiler/x86/aoptx86.pas

@@ -949,6 +949,14 @@ unit aoptx86;
           GetNextInstruction(p,hp2) and
           GetNextInstruction(p,hp2) and
           MatchInstruction(hp2,A_RET,[S_NO])
           MatchInstruction(hp2,A_RET,[S_NO])
          ) or
          ) or
+         (((taicpu(p).opcode=A_LEA) and
+           MatchOpType(taicpu(p),top_ref,top_reg) and
+           (taicpu(p).oper[0]^.ref^.base=NR_STACK_POINTER_REG) and
+           (taicpu(p).oper[1]^.reg=NR_STACK_POINTER_REG)
+           ) and
+          GetNextInstruction(p,hp2) and
+          MatchInstruction(hp2,A_RET,[S_NO])
+         ) or
          ((((taicpu(p).opcode=A_MOV) and
          ((((taicpu(p).opcode=A_MOV) and
            MatchOpType(taicpu(p),top_reg,top_reg) and
            MatchOpType(taicpu(p),top_reg,top_reg) and
            (taicpu(p).oper[0]^.reg=current_procinfo.framepointer) and
            (taicpu(p).oper[0]^.reg=current_procinfo.framepointer) and