소스 검색

* 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: