]> rtime.felk.cvut.cz Git - l4.git/blobdiff - l4/pkg/valgrind/src/valgrind-3.6.0-svn/none/tests/amd64/gen_insn_test.pl
update
[l4.git] / l4 / pkg / valgrind / src / valgrind-3.6.0-svn / none / tests / amd64 / gen_insn_test.pl
index faa1c7f9b1e42b125e3325d0b1e2291ca7394c18..409249e3ea456dbb25f236f6f9e17fc98b914383 100644 (file)
@@ -628,7 +628,12 @@ while (<>)
 
     foreach my $result (@results)
     {
-        if ($result->{type} =~ /^(m(8|16|32|64|128)|st|eflags|fpu[cs]w)$/)
+        if ($result->{type} eq "xmm")
+        {
+            $result->{argnuml} = $argnum++;
+            $result->{argnumh} = $argnum++;
+        }
+        else
         {
             $result->{argnum} = $argnum++;
         }
@@ -638,15 +643,15 @@ while (<>)
     {
         if (defined($arg->{name}))
         {
-            $arg->{argnum} = $argnum++;
-        }
-    }
-    
-    foreach my $result (@results)
-    {
-        if ($result->{type} =~ /^(r(8|16|32|64)|mm|xmm)$/)
-        {
-            $result->{argnum} = $argnum++;
+            if ($arg->{type} eq "xmm")
+            {
+                $arg->{argnuml} = $argnum++;
+                $arg->{argnumh} = $argnum++;
+            }
+            else
+            {
+                $arg->{argnum} = $argnum++;
+            }
         }
     }
 
@@ -689,8 +694,8 @@ while (<>)
         }
         elsif ($arg->{type} eq "xmm")
         {
-            print qq|         \"movlps 0+%$arg->{argnum}, %%$arg->{register}\\n\"\n|;
-            print qq|         \"movhps 8+%$arg->{argnum}, %%$arg->{register}\\n\"\n|;
+            print qq|         \"movlps %$arg->{argnuml}, %%$arg->{register}\\n\"\n|;
+            print qq|         \"movhps %$arg->{argnumh}, %%$arg->{register}\\n\"\n|;
         }
         elsif ($arg->{type} eq "st")
         {
@@ -803,8 +808,8 @@ while (<>)
         }
         elsif ($result->{type} eq "xmm")
         {
-            print qq|         \"movlps %%$result->{register}, 0+%$result->{argnum}\\n\"\n|;
-            print qq|         \"movhps %%$result->{register}, 8+%$result->{argnum}\\n\"\n|;
+            print qq|         \"movlps %%$result->{register}, %$result->{argnuml}\\n\"\n|;
+            print qq|         \"movhps %%$result->{register}, %$result->{argnumh}\\n\"\n|;
         }
         elsif ($result->{type} eq "st")
         {
@@ -852,11 +857,16 @@ while (<>)
 
     foreach my $result (@results)
     {
-        if ($result->{type} =~ /^(m(8|16|32|64|128)|st|eflags|fpu[cs]w)$/)
+        if ($result->{type} eq "xmm")
+        {
+            print qq|$prefix\"=m\" \($result->{name}.uq[0]\), \"=m\" \($result->{name}.uq[1]\)|;
+        }
+        else
         {
             print qq|$prefix\"=m\" \($result->{name}\)|;
-            $prefix = ", ";
         }
+
+        $prefix = ", ";
     }
 
     print qq|\n|;
@@ -867,16 +877,15 @@ while (<>)
     {
         if (defined($arg->{name}))
         {
-            print qq|$prefix\"m\" \($arg->{name}\)|;
-            $prefix = ", ";
-        }
-    }
-    
-    foreach my $result (@results)
-    {
-        if ($result->{type} =~ /^(r(8|16|32|64)|mm|xmm)$/)
-        {
-            print qq|$prefix\"m\" \($result->{name}\)|;
+            if ($arg->{type} eq "xmm")
+            {
+                print qq|$prefix\"m\" \($arg->{name}.uq[0]\), \"m\" \($arg->{name}.uq[1]\)|;
+            }
+            else
+            {
+                print qq|$prefix\"m\" \($arg->{name}\)|;
+            }
+
             $prefix = ", ";
         }
     }