Setting up repository
[linux-libre-firmware.git] / ath9k_htc / sboot / magpie_1_1 / sboot / athos / src / xtos / checkvecsize
1 # Script to check that vector code is 16 bytes or less
2 # $Id: //depot/rel/Cottonwood/Xtensa/OS/xtos/checkvecsize#2 $
3
4 # Copyright (c) 2001 Tensilica Inc.
5 #
6 # Permission is hereby granted, free of charge, to any person obtaining
7 # a copy of this software and associated documentation files (the
8 # "Software"), to deal in the Software without restriction, including
9 # without limitation the rights to use, copy, modify, merge, publish,
10 # distribute, sublicense, and/or sell copies of the Software, and to
11 # permit persons to whom the Software is furnished to do so, subject to
12 # the following conditions:
13 #
14 # The above copyright notice and this permission notice shall be included
15 # in all copies or substantial portions of the Software.
16 #
17 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18 # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20 # IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
21 # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
22 # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
23 # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
25 package Xtensa::checkvecsize;
26
27 # Perl library modules
28 use strict;
29 use Getopt::Long;
30 use FileHandle;
31 \f
32 # Program
33
34 use vars qw($objdump $maxsize);
35
36 {
37   $::myname = 'checkvecsize';
38
39   # command line
40   $maxsize = 16;
41   die("Usage is: $::myname -objdump prog [-maxsize n] files...\n")
42     unless &GetOptions("objdump=s" => \$objdump,
43                        "maxsize=i" => \$maxsize)
44       && @ARGV > 0 && defined($objdump);
45   my $file;
46   foreach $file (@ARGV) {
47     checkvecsize ($file);
48   }
49 }
50
51 sub checkvecsize {
52   my ($file) = @_;
53   my $od = new FileHandle "${objdump} -h $file|";
54   die("$::myname: $!, opening pipe to $objdump -h $file.\n")
55     unless $od;
56   while (<$od>) {
57     if (/^\s*\d+\s+(\S+)\s+([0-9A-Fa-f]{8})\s/) {
58       my $size = hex($2);
59       die("$::myname: $file $1 section size is $size bytes.\n")
60         if $size > $maxsize;
61     }
62   }
63   $od->close();
64 }
65
66 \f
67 # Local Variables:
68 # mode:perl
69 # perl-indent-level:2
70 # cperl-indent-level:2
71 # End: