2
0
Эх сурвалжийг харах

* Don't do useless string case conversions in a loop.

git-svn-id: trunk@33077 -
sergei 9 жил өмнө
parent
commit
55492a0f30

+ 5 - 5
compiler/mips/racpugas.pas

@@ -493,14 +493,13 @@ Interface
     function TMipsReader.is_asmopcode(const s: string):boolean;
       var
         cond:TAsmCond;
+        hs:string;
       Begin
-        { making s a value parameter would break other assembler readers }
         is_asmopcode:=false;
 
-        { clear op code }
+        { clear op code and condition }
         actopcode:=A_None;
-        { clear condition }
-        fillchar(actcondition,sizeof(actcondition),0);
+        actcondition:=C_None;
 
          { Search opcodes }
          actopcode:=tasmop(PtrUInt(iasmops.Find(s)));
@@ -517,8 +516,9 @@ Interface
             { we can search here without an extra table which is sorted by string length
               because we take the whole remaining string without the leading B }
             actopcode := A_BC;
+            hs:=lower(copy(s,2,maxint));
             for cond:=low(TAsmCond) to high(TAsmCond) do
-              if (Upper(copy(s,2,length(s)-1))=Upper(Cond2Str[cond])) then
+              if (hs=Cond2Str[cond]) then
                 begin
                   actasmtoken:=AS_OPCODE;
                   actcondition:=cond;