#!/bin/sh # gen-insn-x86-dat: generate data for the insn-x86 test # Copyright (c) 2015, Intel Corporation. # # This program is free software; you can redistribute it and/or modify it # under the terms and conditions of the GNU General Public License, # version 2, as published by the Free Software Foundation. # # This program is distributed in the hope it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # more details. set -e if test $[uname -m] != "x86_64" { echo "ERROR: This script only works on x86_64" exit 1 } cd $[dirname $0] trap 'echo "Might need a more recent version of binutils"' EXIT echo "Compiling insn-x86-dat-src.c to 64-bit object" gcc -g -c insn-x86-dat-src.c objdump -dSw insn-x86-dat-src.o | awk -f gen-insn-x86-dat.awk > insn-x86-dat-64.c rm -f insn-x86-dat-src.o echo "Compiling insn-x86-dat-src.c to 32-bit object" gcc -g -c -m32 insn-x86-dat-src.c objdump -dSw insn-x86-dat-src.o | awk -f gen-insn-x86-dat.awk > insn-x86-dat-32.c rm -f insn-x86-dat-src.o trap - EXIT echo "Done (use git diff to see the changes)" (CommandList children: [ (C {(set)} {(-e)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(uname)} {(-m)})]) left_token: spids: [47 51] ) ) } {(KW_Bang "!") (Lit_Other "=")} {(DQ (x86_64))} {(Lit_Other "]")} ) terminator: ) ] action: [(C {(echo)} {(DQ ("ERROR: This script only works on x86_64"))}) (C {(exit)} {(1)})] spids: [-1 64] ) ] spids: [-1 78] ) (C {(cd)} { (CommandSubPart command_list: (CommandList children:[(C {(dirname)} {($ VSub_Number "$0")})]) left_token: spids: [83 87] ) } ) (C {(trap)} {(SQ <"echo \"Might need a more recent version of binutils\"">)} {(EXIT)}) (C {(echo)} {(DQ ("Compiling insn-x86-dat-src.c to 64-bit object"))}) (C {(gcc)} {(-g)} {(-c)} {(insn-x86-dat-src.c)}) (Pipeline children: [ (C {(objdump)} {(-dSw)} {(insn-x86-dat-src.o)}) (SimpleCommand words: [{(awk)} {(-f)} {(gen-insn-x86-dat.awk)}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(insn-x86-dat-64.c)} spids:[129])] ) ] negated: False ) (C {(rm)} {(-f)} {(insn-x86-dat-src.o)}) (C {(echo)} {(DQ ("Compiling insn-x86-dat-src.c to 32-bit object"))}) (C {(gcc)} {(-g)} {(-c)} {(-m32)} {(insn-x86-dat-src.c)}) (Pipeline children: [ (C {(objdump)} {(-dSw)} {(insn-x86-dat-src.o)}) (SimpleCommand words: [{(awk)} {(-f)} {(gen-insn-x86-dat.awk)}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(insn-x86-dat-32.c)} spids:[173])] ) ] negated: False ) (C {(rm)} {(-f)} {(insn-x86-dat-src.o)}) (C {(trap)} {(-)} {(EXIT)}) (C {(echo)} {(DQ ("Done (use git diff to see the changes)"))}) ] )