Browse Source

* fix add_move_instruction for sse moves

git-svn-id: trunk@18789 -
florian 14 years ago
parent
commit
13ac5d185f
1 changed files with 10 additions and 7 deletions
  1. 10 7
      compiler/x86/cgx86.pas

+ 10 - 7
compiler/x86/cgx86.pas

@@ -1143,17 +1143,20 @@ unit cgx86;
               end
             else
               internalerror(200312202);
+            add_move_instruction(instr);
           end
         else if shufflescalar(shuffle) then
-          instr:=taicpu.op_reg_reg(get_scalar_mm_op(fromsize,tosize),S_NO,reg1,reg2)
+          begin
+            instr:=taicpu.op_reg_reg(get_scalar_mm_op(fromsize,tosize),S_NO,reg1,reg2);
+            case get_scalar_mm_op(fromsize,tosize) of
+              A_MOVSS,
+              A_MOVSD,
+              A_MOVQ:
+                add_move_instruction(instr);
+            end;
+          end
         else
           internalerror(200312201);
-        case get_scalar_mm_op(fromsize,tosize) of
-          A_MOVSS,
-          A_MOVSD,
-          A_MOVQ:
-            add_move_instruction(instr);
-        end;
         list.concat(instr);
       end;