Browse Source

* disable condition jump optimization on MIPS for now for the time being

git-svn-id: trunk@43486 -
florian 5 years ago
parent
commit
d4f0658c02
1 changed files with 5 additions and 2 deletions
  1. 5 2
      compiler/aoptobj.pas

+ 5 - 2
compiler/aoptobj.pas

@@ -2014,13 +2014,16 @@ Unit AoptObj;
                             Result := True;
                             Result := True;
                             Exit;
                             Exit;
 
 
-{$if not defined(avr) and not defined(riscv32) and not defined(riscv64)}
+{$if not defined(avr) and not defined(riscv32) and not defined(riscv64) and not defined(mips)}
                           end
                           end
                         else
                         else
                           { NOTE: There is currently no watertight, cross-platform way to create
                           { NOTE: There is currently no watertight, cross-platform way to create
                             an unconditional jump without access to the cg object.  If anyone can
                             an unconditional jump without access to the cg object.  If anyone can
                             improve this particular optimisation to work on AVR and RISC-V,
                             improve this particular optimisation to work on AVR and RISC-V,
-                            please do. [Kit]}
+                            please do. [Kit]
+
+                            On MIPS, it causes an endless loop, so I disabled it for now
+                          }
                           begin
                           begin
                             { Since cond1 is a subset of inv(cond2), jmp<cond2> will always branch if
                             { Since cond1 is a subset of inv(cond2), jmp<cond2> will always branch if
                               jmp<cond1> does not, so change jmp<cond2> to an unconditional jump. }
                               jmp<cond1> does not, so change jmp<cond2> to an unconditional jump. }