Forráskód Böngészése

* better recognization of procedure exit code

git-svn-id: trunk@41060 -
florian 6 éve
szülő
commit
6cb6517411
1 módosított fájl, 8 hozzáadás és 0 törlés
  1. 8 0
      compiler/x86/aoptx86.pas

+ 8 - 0
compiler/x86/aoptx86.pas

@@ -949,6 +949,14 @@ unit aoptx86;
           GetNextInstruction(p,hp2) and
           MatchInstruction(hp2,A_RET,[S_NO])
          ) 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
            MatchOpType(taicpu(p),top_reg,top_reg) and
            (taicpu(p).oper[0]^.reg=current_procinfo.framepointer) and