浏览代码

* extended do_spill_replace with some sse instructions

git-svn-id: trunk@18788 -
florian 14 年之前
父节点
当前提交
ca1f33aae1
共有 1 个文件被更改,包括 12 次插入2 次删除
  1. 12 2
      compiler/x86/rgx86.pas

+ 12 - 2
compiler/x86/rgx86.pas

@@ -182,7 +182,12 @@ implementation
                           A_BT,
                           A_BTS,
                           A_BTC,
-                          A_BTR :
+                          A_BTR,
+
+                          { shufp* would require 16 byte alignment for memory locations so we force the source
+                            operand into a register }
+                          A_SHUFPD,
+                          A_SHUFPS :
                             replaceoper:=-1;
                         end;
                       end;
@@ -232,7 +237,12 @@ implementation
                           A_ORPD,
                           A_ORPS,
                           A_ANDPD,
-                          A_ANDPS:
+                          A_ANDPS,
+                          A_UNPCKLPS,
+                          A_UNPCKHPS,
+                          A_SHUFPD,
+                          A_SHUFPS:
+
                             replaceoper:=-1;
 {$ifdef x86_64}
                           A_MOV: