Commit 516482fa authored by Christian Würdig's avatar Christian Würdig
Browse files

added support for requirements: different from all in

parent 3d07130b
...@@ -354,7 +354,7 @@ sub build_inout_idx_class { ...@@ -354,7 +354,7 @@ sub build_inout_idx_class {
else { else {
my @regs = split(/ /, $reqs[$idx]); my @regs = split(/ /, $reqs[$idx]);
GET_CLASS: foreach my $reg (@regs) { GET_CLASS: foreach my $reg (@regs) {
if ($reg =~ /!?(in|out)\_r\d+/) { if ($reg =~ /!?(in|out)\_r\d+/ || $reg =~ /!in/) {
$class = "UNKNOWN_CLASS"; $class = "UNKNOWN_CLASS";
} }
else { else {
...@@ -439,8 +439,14 @@ sub generate_requirements { ...@@ -439,8 +439,14 @@ sub generate_requirements {
push(@req_type_mask, "arch_register_req_type_should_be_same"); push(@req_type_mask, "arch_register_req_type_should_be_same");
} }
if (defined($different_pos)) { if (defined($different_pos)) {
if ($different_pos == 666) {
push(@req_type_mask, "arch_register_req_type_should_be_different_from_all");
undef $different_pos;
}
else {
push(@req_type_mask, "arch_register_req_type_should_be_different"); push(@req_type_mask, "arch_register_req_type_should_be_different");
} }
}
$tmp .= "&_".$op."_reg_req_$inout\_$idx\n"; $tmp .= "&_".$op."_reg_req_$inout\_$idx\n";
$tmp2 .= "{\n"; $tmp2 .= "{\n";
...@@ -543,6 +549,10 @@ CHECK_REQS: foreach (@regs) { ...@@ -543,6 +549,10 @@ CHECK_REQS: foreach (@regs) {
$class = $idx_class[$2 - 1]; $class = $idx_class[$2 - 1];
next CHECK_REQS; next CHECK_REQS;
} }
elsif (/!in/) {
$class = $idx_class[0];
return ($class, 0, undef, 666);
}
# check for negate # check for negate
if (substr($_, 0, 1) eq "!") { if (substr($_, 0, 1) eq "!") {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment