#!/usr/local/bin/perl5 -w
# # !/usr/local/bin/perl5 -Mbigint -w
#
# COUNT the time spent in A.kp and A.k.  Special case mipsIRQ.
# -----------------------------------------------------------------------------
if (!open(IN_KP, "<A.kp")) {
  die "Error opening A.kp for reading.\n";
}
$count_kp = 0;
$cop_0_count_kp = 0;
$performance_kp = 0;
while (<IN_KP>) {
  $l = $_;
  @line = split(/\s+/, $l);
  if ($line[1] eq "mipsIRQ" && $line[3] eq "mipsIRQ") {
    next;
  }
  if ($line[1] eq "Routine") {
    next;
  }
  $count_kp += $line[4];
  $cop_0_count_kp += $line[5];
  $performance_kp += $line[9];
}

# -----------------------------------------------------------------------------
if (!open(IN_K, "<A.k")) {
  die "Error opening A.k for reading.\n";
}
$count_k = 0;
$cop_0_count_k = 0;
$performance_k = 0;
while (<IN_K>) {
  $l = $_;
  @line = split(/\s+/, $l);
  if ($line[1] eq "mipsIRQ" && $line[3] eq "mipsIRQ") {
    next;
  }
  if ($line[1] eq "Routine") {
    next;
  }
  $count_k += $line[4];
# print "count_k=$count_k  line[4]=$line[4]\n";
  $cop_0_count_k += $line[5];
# print "cop_0_count_k=$cop_0_count_k  line[5]=$line[5]\n";
  $performance_k += $line[9];
# print "performance_k=$performance_k  line[9]=$line[9]\n";
}
# -----------------------------------------------------------------------------

printf	"%-6.6s %15s %15s %15s %18s\n", "File", "Count", "COP_0_COUNT", "Performance", "perf/(cop*2)";
printf	"%-6.6s %15s %15s %15s %18s\n", "A.kp", $count_kp, $cop_0_count_kp, $performance_kp,
	$performance_kp / ($cop_0_count_kp * 2);
printf	"%-6.6s %15s %15s %15s %18s\n", "A.k", $count_k, $cop_0_count_k, $performance_k,
	$performance_k / ($cop_0_count_k * 2);
printf	"%-6.6s %15s %15s %15s %18s\n",
	"Diff",
	$count_k - $count_kp,
	$cop_0_count_k - $cop_0_count_kp,
	$performance_k - $performance_kp,
	($performance_k-$performance_kp) / (($cop_0_count_k-$cop_0_count_kp) * 2);
exit 0
