Ver código fonte

bugfix gnu-assembler platform i386 vcvtsi2sd,vcvtsi2ss,vcvtusi2sd,vcvtusi2ss

git-svn-id: branches/tg74/avx512-0037785@47443 -
tg74 4 anos atrás
pai
commit
5633d5e8aa
1 arquivos alterados com 10 adições e 11 exclusões
  1. 10 11
      compiler/x86/rax86.pas

+ 10 - 11
compiler/x86/rax86.pas

@@ -1455,7 +1455,15 @@ procedure Tx86Instruction.SetInstructionOpsize;
         end
         else
         begin
-          if MemRefSize in MemRefMultiples - [msiVMemMultiple] then
+	  if (gas_needsuffix[opcode] = AttSufMMS) and (ops > 0) then
+ 	  begin
+ 	    // special handling = use source operand for calculate instructions-opsize
+            // e.g. vcvtsi2sd, vcvtsi2ss, vcvtusi2sd, vcvtusi2ss
+            
+            opsize:=tx86operand(operands[1]).opsize;
+            result := true;  
+	  end
+          else if MemRefSize in MemRefMultiples - [msiVMemMultiple] then
           begin
             case ops of
               2: begin
@@ -1469,16 +1477,7 @@ procedure Tx86Instruction.SetInstructionOpsize;
                    result := true;
                  end;
             end;
-          end
-	  else if gas_needsuffix[opcode] = AttSufMMS then
- 	  begin
- 	    // spezial handling - use source operand
-            if ops > 0 then
-	    begin	    
-              opsize:=tx86operand(operands[1]).opsize;
-              result := true;
-            end;  
-	  end;	  
+          end;
         end;
       end;
     end;