xref: /qemu/target/hexagon/gen_op_attribs.py (revision 057f7680f4ed1cc27a0520c0628bfb94f850c56a)
1 #!/usr/bin/env python3
2 
3 ##
4 ##  Copyright(c) 2019-2024 Qualcomm Innovation Center, Inc. All Rights Reserved.
5 ##
6 ##  This program is free software; you can redistribute it and/or modify
7 ##  it under the terms of the GNU General Public License as published by
8 ##  the Free Software Foundation; either version 2 of the License, or
9 ##  (at your option) any later version.
10 ##
11 ##  This program is distributed in the hope that it will be useful,
12 ##  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 ##  GNU General Public License for more details.
15 ##
16 ##  You should have received a copy of the GNU General Public License
17 ##  along with this program; if not, see <http://www.gnu.org/licenses/>.
18 ##
19 
20 import sys
21 import re
22 import string
23 import hex_common
24 
25 
26 def main():
27     hex_common.read_semantics_file(sys.argv[1])
28     hex_common.calculate_attribs()
29 
30     ##
31     ##     Generate all the attributes associated with each instruction
32     ##
33     with open(sys.argv[-1], "w") as f:
34         for tag in hex_common.tags:
35             f.write(
36                 f"OP_ATTRIB({tag},ATTRIBS("
37                 f'{",".join(sorted(hex_common.attribdict[tag]))}))\n'
38             )
39 
40 
41 if __name__ == "__main__":
42     main()
43