brintos

brintos / linux-shallow public Read only

0
0
Text · 1.3 KiB · 1a29f63 Raw
69 lines · plain
1#!/bin/awk -f2# SPDX-License-Identifier: GPL-2.0-only3# gen-insn-x86-dat.awk: script to convert data for the insn-x86 test4# Copyright (c) 2015, Intel Corporation.5#6 7BEGIN {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 = 016	going = 017}18 19/ Start here / {20	going = 121}22 23/ Stop here / {24	going = 025}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 = 036		for (i = 2; i <= NF; i++) {37			if (match($i, "^[0-9a-fA-F][0-9a-fA-F]$")) {38				printf "0x%s, ", $i39				len += 140			} else {41				break42			}43		}44		printf "}, %d, %s, \"%s\", \"%s\",", len, rel, op, branch45		printf "\n\"%s\",},\n", useful_line46		op = ""47		branch = ""48		rel = 049	}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 = $i61			i++62			branch = $i63			i++64			rel = $i65			break66		}67	}68}69