Explorar o código

* really fixed problems with -Op2 opts (merged)

Jonas Maebe %!s(int64=24) %!d(string=hai) anos
pai
achega
3fd4ce9c89
Modificáronse 1 ficheiros con 7 adicións e 8 borrados
  1. 7 8
      compiler/i386/popt386.pas

+ 7 - 8
compiler/i386/popt386.pas

@@ -1924,14 +1924,10 @@ Begin
                 If (AktOptProcessor < ClassP6) And
                    GetNextInstruction(p, hp1) And
                    (hp1.typ = ait_instruction) And
-                   (Taicpu(hp1).opcode = A_JMP) Then
+                   (Taicpu(hp1).opcode = A_JMP) And
+                   (Taicpu(hp1).oper[0].typ = top_symbol) Then
                   Begin
-                    case Taicpu(hp1).oper[0].typ of
-                      top_symbol:
-                        hp2 := Taicpu.Op_sym(A_PUSH,S_L,Taicpu(hp1).oper[0].sym);
-                      top_ref:
-                        hp2 := Taicpu.Op_ref(A_PUSH,S_L,newreference(Taicpu(hp1).oper[0].ref^));
-                    end;
+                    hp2 := Taicpu.Op_sym(A_PUSH,S_L,Taicpu(hp1).oper[0].sym);
                     InsertLLItem(AsmL, p.previous, p, hp2);
                     Taicpu(p).opcode := A_JMP;
                     Taicpu(p).is_jmp := true;
@@ -2005,7 +2001,10 @@ End.
 
 {
   $Log$
-  Revision 1.7  2001-01-07 15:49:49  jonas
+  Revision 1.8  2001-01-10 10:29:36  jonas
+    * really fixed problems with -Op2 opts (merged)
+
+  Revision 1.7  2001/01/07 15:49:49  jonas
     * fixed bug in call/jmp optimization with -Op1 and -Op2
 
   Revision 1.6  2000/12/25 00:07:33  peter