|
From: <sv...@va...> - 2011-03-28 13:09:00
|
Author: tom
Date: 2011-03-28 14:08:52 +0100 (Mon, 28 Mar 2011)
New Revision: 11671
Log:
Fix generated assembler which writes the result to memory to correctly
use an =m constraint to indicate that the address will be written to.
Partial fix to bug #266931.
Modified:
trunk/none/tests/amd64/gen_insn_test.pl
trunk/none/tests/x86/gen_insn_test.pl
Modified: trunk/none/tests/amd64/gen_insn_test.pl
===================================================================
--- trunk/none/tests/amd64/gen_insn_test.pl 2011-03-28 09:12:55 UTC (rev 11670)
+++ trunk/none/tests/amd64/gen_insn_test.pl 2011-03-28 13:08:52 UTC (rev 11671)
@@ -628,10 +628,7 @@
foreach my $result (@results)
{
- if ($result->{type} =~ /^(m(8|16|32|64|128)|st|eflags|fpu[cs]w)$/)
- {
- $result->{argnum} = $argnum++;
- }
+ $result->{argnum} = $argnum++;
}
foreach my $arg (@presets, @args)
@@ -641,14 +638,6 @@
$arg->{argnum} = $argnum++;
}
}
-
- foreach my $result (@results)
- {
- if ($result->{type} =~ /^(r(8|16|32|64)|mm|xmm)$/)
- {
- $result->{argnum} = $argnum++;
- }
- }
my $stateargnum = $argnum++;
@@ -852,11 +841,8 @@
foreach my $result (@results)
{
- if ($result->{type} =~ /^(m(8|16|32|64|128)|st|eflags|fpu[cs]w)$/)
- {
- print qq|$prefix\"=m\" \($result->{name}\)|;
- $prefix = ", ";
- }
+ print qq|$prefix\"=m\" \($result->{name}\)|;
+ $prefix = ", ";
}
print qq|\n|;
@@ -871,15 +857,6 @@
$prefix = ", ";
}
}
-
- foreach my $result (@results)
- {
- if ($result->{type} =~ /^(r(8|16|32|64)|mm|xmm)$/)
- {
- print qq|$prefix\"m\" \($result->{name}\)|;
- $prefix = ", ";
- }
- }
print qq|$prefix\"m\" \(state[0]\)\n|;
Modified: trunk/none/tests/x86/gen_insn_test.pl
===================================================================
--- trunk/none/tests/x86/gen_insn_test.pl 2011-03-28 09:12:55 UTC (rev 11670)
+++ trunk/none/tests/x86/gen_insn_test.pl 2011-03-28 13:08:52 UTC (rev 11671)
@@ -605,10 +605,7 @@
foreach my $result (@results)
{
- if ($result->{type} =~ /^(m(8|16|32|64|128)|st|eflags|fpu[cs]w)$/)
- {
- $result->{argnum} = $argnum++;
- }
+ $result->{argnum} = $argnum++;
}
foreach my $arg (@presets, @args)
@@ -618,14 +615,6 @@
$arg->{argnum} = $argnum++;
}
}
-
- foreach my $result (@results)
- {
- if ($result->{type} =~ /^(r(8|16|32)|mm|xmm)$/)
- {
- $result->{argnum} = $argnum++;
- }
- }
my $stateargnum = $argnum++;
@@ -817,11 +806,8 @@
foreach my $result (@results)
{
- if ($result->{type} =~ /^(m(8|16|32|64|128)|st|eflags|fpu[cs]w)$/)
- {
- print qq|$prefix\"=m\" \($result->{name}\)|;
- $prefix = ", ";
- }
+ print qq|$prefix\"=m\" \($result->{name}\)|;
+ $prefix = ", ";
}
print qq|\n|;
@@ -836,15 +822,6 @@
$prefix = ", ";
}
}
-
- foreach my $result (@results)
- {
- if ($result->{type} =~ /^(r(8|16|32)|mm|xmm)$/)
- {
- print qq|$prefix\"m\" \($result->{name}\)|;
- $prefix = ", ";
- }
- }
print qq|$prefix\"m\" \(state[0]\)\n|;
|