1
0
mirror of git://projects.qi-hardware.com/wernermisc.git synced 2024-11-15 17:59:22 +02:00
wernermisc/m1/perf/eval.pl
2011-09-18 00:51:17 -03:00

38 lines
722 B
Perl
Executable File

#!/usr/bin/perl
#while (<>) {
# last if /per-vertex PFPU fragment/;
#}
$i = 0;
while (<>) {
next unless
/^(\d+):\s+(\S+)\s+(R\d+)?(,(R\d+))?.*?(->\s+(R\d+))?\s*$/;
# 1 2 3 4 5 6 7
($c, $op, $a, $b, $d) = ($1, $2, $3, $5, $7);
undef $e;
$e = $1 if /E=(\d+)>/;
die if $c != $i;
$a = $reg{$a} if defined $reg{$a};
$b = $reg{$b} if defined $reg{$b};
if ($op eq "IF") {
$expr = "(IF $reg{002} $a $b)";
} elsif ($op eq "VECTOUT") {
$res = "$a\n$b\n";
} elsif (defined $b) {
$expr = "($op $a $b)";
} elsif (defined $a) {
$expr = "($op $a)";
} else {
$expr = "($op)";
}
$val[$e] = $expr if defined $e;
$reg{$d} = $val[$i] if defined $d;
$i++;
}
print $res;