Ver código fonte

* fixed comparedword in case len=0

git-svn-id: trunk@8815 -
Jonas Maebe 18 anos atrás
pai
commit
cc843f5f62
1 arquivos alterados com 7 adições e 4 exclusões
  1. 7 4
      rtl/i386/i386.inc

+ 7 - 4
rtl/i386/i386.inc

@@ -421,9 +421,9 @@ asm
         movl    %edx,%esi
         movl    %ecx,%eax
 {$else}
-        movl    len,%eax
         movl    buf2,%esi       { Load params}
         movl    buf1,%edi
+        movl    len,%eax
 {$endif}
         testl   %eax,%eax       {We address -1(%esi), so we have to deal with len=0}
         je      .LCmpbyteExit
@@ -479,9 +479,9 @@ asm
         movl    %edx,%esi
         movl    %ecx,%eax
 {$else}
-        movl    len,%eax
         movl    buf2,%esi       { Load params}
         movl    buf1,%edi
+        movl    len,%eax
 {$endif}
         testl   %eax,%eax       {We address -2(%esi), so we have to deal with len=0}
         je      .LCmpwordExit
@@ -544,13 +544,16 @@ asm
 {$ifdef REGCALL}
         movl    %eax,%edi
         movl    %edx,%esi
+        movl    %ecx,%eax
 {$else}
-        movl    len,%ecx
         movl    buf2,%esi       { Load params}
         movl    buf1,%edi
+        movl    len,%eax
+        movl    %eax,%ecx
 {$endif}
-        testl   %ecx,%ecx
+        testl   %eax,%eax
         je      .LCmpDwordExit
+        movl    %eax,%ecx
         xorl    %eax,%eax
         rep                     { Compare entire DWords}
         cmpsl