Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / tools / perf / arch / x86 / tests / gen-insn-x86-dat.awk
1 #!/bin/awk -f
2 # SPDX-License-Identifier: GPL-2.0-only
3 # gen-insn-x86-dat.awk: script to convert data for the insn-x86 test
4 # Copyright (c) 2015, Intel Corporation.
5 #
6
7 BEGIN {
8         print "/*"
9         print " * Generated by gen-insn-x86-dat.sh and gen-insn-x86-dat.awk"
10         print " * from insn-x86-dat-src.c for inclusion by insn-x86.c"
11         print " * Do not change this code."
12         print "*/\n"
13         op = ""
14         branch = ""
15         rel = 0
16         going = 0
17 }
18
19 / Start here / {
20         going = 1
21 }
22
23 / Stop here / {
24         going = 0
25 }
26
27 /^\s*[0-9a-fA-F]+\:/ {
28         if (going) {
29                 colon_pos = index($0, ":")
30                 useful_line = substr($0, colon_pos + 1)
31                 first_pos = match(useful_line, "[0-9a-fA-F]")
32                 useful_line = substr(useful_line, first_pos)
33                 gsub("\t", "\\t", useful_line)
34                 printf "{{"
35                 len = 0
36                 for (i = 2; i <= NF; i++) {
37                         if (match($i, "^[0-9a-fA-F][0-9a-fA-F]$")) {
38                                 printf "0x%s, ", $i
39                                 len += 1
40                         } else {
41                                 break
42                         }
43                 }
44                 printf "}, %d, %s, \"%s\", \"%s\",", len, rel, op, branch
45                 printf "\n\"%s\",},\n", useful_line
46                 op = ""
47                 branch = ""
48                 rel = 0
49         }
50 }
51
52 / Expecting: / {
53         expecting_str = " Expecting: "
54         expecting_len = length(expecting_str)
55         expecting_pos = index($0, expecting_str)
56         useful_line = substr($0, expecting_pos + expecting_len)
57         for (i = 1; i <= NF; i++) {
58                 if ($i == "Expecting:") {
59                         i++
60                         op = $i
61                         i++
62                         branch = $i
63                         i++
64                         rel = $i
65                         break
66                 }
67         }
68 }