Explorar el Código

* extended do_spill_replace with some sse instructions

git-svn-id: trunk@18788 -
florian hace 14 años
padre
commit
ca1f33aae1
Se han modificado 1 ficheros con 12 adiciones y 2 borrados
  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: