X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=misc%2Fdecoder_test%2FXED2%2Fexamples%2Fxed-ex2.cpp;fp=misc%2Fdecoder_test%2FXED2%2Fexamples%2Fxed-ex2.cpp;h=0000000000000000000000000000000000000000;hp=79ba59053c4f6922171af569b4764f0d25afcb75;hb=7a6cd49101201e207daf7113a9048193835cebaf;hpb=320320a1c8681f2d8258a03dd087b3aed18b48a1 diff --git a/misc/decoder_test/XED2/examples/xed-ex2.cpp b/misc/decoder_test/XED2/examples/xed-ex2.cpp deleted file mode 100644 index 79ba590..0000000 --- a/misc/decoder_test/XED2/examples/xed-ex2.cpp +++ /dev/null @@ -1,128 +0,0 @@ -/*BEGIN_LEGAL -Intel Open Source License - -Copyright (c) 2002-2007 Intel Corporation -All rights reserved. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - -Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. Redistributions -in binary form must reproduce the above copyright notice, this list of -conditions and the following disclaimer in the documentation and/or -other materials provided with the distribution. Neither the name of -the Intel Corporation nor the names of its contributors may be used to -endorse or promote products derived from this software without -specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INTEL OR -ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -END_LEGAL */ -/// @file xed-ex2.cpp -/// @author Mark Charney - -// decoder example. C++ version of xed-ex4.c - -extern "C" { -#include "xed-interface.h" -} -#include -#include -#include -#include -using namespace std; - -int main(int argc, char** argv); - -int main(int argc, char** argv) { - xed_bool_t long_mode = false; - xed_state_t dstate; - int first_argv; - int bytes = 0; - unsigned char itext[XED_MAX_INSTRUCTION_BYTES]; - int i; - unsigned int u; - xed_decoded_inst_t xedd; -#define BUFLEN 1000 - char buffer[BUFLEN]; - - xed_tables_init(); - xed_state_zero(&dstate); - xed_set_verbosity( 99 ); - - if (argc > 2 && strcmp(argv[1], "-64") == 0) - long_mode = true; - - if (long_mode) { - first_argv = 2; - dstate.mmode=XED_MACHINE_MODE_LONG_64; - } - else { - first_argv=1; - xed_state_init(&dstate, - XED_MACHINE_MODE_LEGACY_32, - XED_ADDRESS_WIDTH_32b, - XED_ADDRESS_WIDTH_32b); - } - xed_decoded_inst_zero_set_mode(&xedd, &dstate); - for( i=first_argv ;i < argc; i++) { - unsigned int x; - istringstream s(argv[i]); - s >> hex >> x; - - assert(bytes < XED_MAX_INSTRUCTION_BYTES); - itext[bytes++] = STATIC_CAST(xed_uint8_t,x); - } - if (bytes == 0) { - cout << "Must supply some hex bytes" << endl; - exit(1); - } - - cout << "PARSING BYTES: "; - for( i=0;i(u); - ok = xed_format(syntax, &xedd, buffer, BUFLEN, 0); - if (ok) - cout << xed_syntax_enum_t2str(syntax) << " syntax: " << buffer << endl; - else - cout << "Error disassembling " << xed_syntax_enum_t2str(syntax) << " syntax" << endl; - } - return 0; -}