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

* check also for 64 bit registers in TX86AsmOptimizer.RegModifiedByInstruction

florian 3 жил өмнө
parent
commit
2a7744df80

+ 8 - 8
compiler/x86/aoptx86.pas

@@ -882,49 +882,49 @@ unit aoptx86;
               begin
                 case getsupreg(reg) of
                   RS_EAX:
-                    if [Ch_WEAX,Ch_RWEAX,Ch_MEAX]*Ch<>[] then
+                    if [Ch_WEAX,Ch_RWEAX,Ch_MEAX,Ch_WRAX,Ch_RWRAX,Ch_MRAX]*Ch<>[] then
                       begin
                         Result := True;
                         exit
                       end;
                   RS_ECX:
-                    if [Ch_WECX,Ch_RWECX,Ch_MECX]*Ch<>[] then
+                    if [Ch_WECX,Ch_RWECX,Ch_MECX,Ch_WRCX,Ch_RWRCX,Ch_MRCX]*Ch<>[] then
                       begin
                         Result := True;
                         exit
                       end;
                   RS_EDX:
-                    if [Ch_WEDX,Ch_RWEDX,Ch_MEDX]*Ch<>[] then
+                    if [Ch_WEDX,Ch_RWEDX,Ch_MEDX,Ch_WRDX,Ch_RWRDX,Ch_MRDX]*Ch<>[] then
                       begin
                         Result := True;
                         exit
                       end;
                   RS_EBX:
-                    if [Ch_WEBX,Ch_RWEBX,Ch_MEBX]*Ch<>[] then
+                    if [Ch_WEBX,Ch_RWEBX,Ch_MEBX,Ch_WRBX,Ch_RWRBX,Ch_MRBX]*Ch<>[] then
                       begin
                         Result := True;
                         exit
                       end;
                   RS_ESP:
-                    if [Ch_WESP,Ch_RWESP,Ch_MESP]*Ch<>[] then
+                    if [Ch_WESP,Ch_RWESP,Ch_MESP,Ch_WRSP,Ch_RWRSP,Ch_MRSP]*Ch<>[] then
                       begin
                         Result := True;
                         exit
                       end;
                   RS_EBP:
-                    if [Ch_WEBP,Ch_RWEBP,Ch_MEBP]*Ch<>[] then
+                    if [Ch_WEBP,Ch_RWEBP,Ch_MEBP,Ch_WRBP,Ch_RWRBP,Ch_MRBP]*Ch<>[] then
                       begin
                         Result := True;
                         exit
                       end;
                   RS_ESI:
-                    if [Ch_WESI,Ch_RWESI,Ch_MESI]*Ch<>[] then
+                    if [Ch_WESI,Ch_RWESI,Ch_MESI,Ch_WRSI,Ch_RWRSI,Ch_MRSI]*Ch<>[] then
                       begin
                         Result := True;
                         exit
                       end;
                   RS_EDI:
-                    if [Ch_WEDI,Ch_RWEDI,Ch_MEDI]*Ch<>[] then
+                    if [Ch_WEDI,Ch_RWEDI,Ch_MEDI,Ch_WRDI,Ch_RWRDI,Ch_MRDI]*Ch<>[] then
                       begin
                         Result := True;
                         exit