From: Jack Lange Date: Tue, 28 Apr 2009 22:56:12 +0000 (-0500) Subject: removed misc directory from release X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=commitdiff_plain;h=7a6cd49101201e207daf7113a9048193835cebaf removed misc directory from release --- diff --git a/misc/custom.el b/misc/custom.el deleted file mode 100644 index 05d4948..0000000 --- a/misc/custom.el +++ /dev/null @@ -1,12 +0,0 @@ -(custom-set-variables - '(paren-mode (quote sexp) nil (paren)) - '(column-number-mode t) - '(pending-delete-mode nil nil (pending-del)) - '(line-number-mode t) - '(mouse-yank-at-point t) - '(font-lock-mode t nil (font-lock)) -) -(custom-set-faces - '(cperl-nonoverridable-face ((((class color) (background light)) (:foreground "steelblue")))) - '(cperl-array-face ((((class color) (background light)) (:foreground "Blue" :background "black" :bold t)))) - '(cperl-hash-face ((((class color) (background light)) (:foreground "Red" :background "black" :bold t :italic t))))) diff --git a/misc/decoder_test/.dependencies b/misc/decoder_test/.dependencies deleted file mode 100644 index 16ee898..0000000 --- a/misc/decoder_test/.dependencies +++ /dev/null @@ -1,2 +0,0 @@ -vm_guest.o: vm_guest.c -vmm_xed.o: vmm_xed.c diff --git a/misc/decoder_test/Makefile b/misc/decoder_test/Makefile deleted file mode 100644 index 6643fbd..0000000 --- a/misc/decoder_test/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -PREFIX=./ - - -INCLUDEDIR=$(PREFIX)XED2/include -LIBDIR=$(PREFIX)XED2/lib/ -BINDIR=$(PREFIX)/bin - - -TEST_OBJS = vm_guest.o vmm_xed.o test.o - - - -CFLAGS = -I$(INCLUDEDIR) -D__V3VEE__ -g -gstabs -D__DECODER_TEST__ - - - -#CC=../../devtools/i386/bin/i386-elf-gcc -CC=/usr/bin/gcc -m32 - - -#CXXFLAGS = -DDEBUG -g -gstabs+ -Wall -I/usr/kerberos/include - -LDFLAGS = -L$(LIBDIR) $(CFLAGS) -lxed - -all: test - -test: $(TEST_OBJS) - $(CC) $(CFLAGS) $(TEST_OBJS) $(LDFLAGS) -o xed_test - - - - -%.o : %.c - $(CC) -c $(CFLAGS) $< -o $*.o - -depend: - $(CC) $(CFLAGS) -MM $(TEST_OBJS:.o=.c) > .dependencies - -clean: - rm -f *.o - rm -f $(TEST_OBJS) xed_test - - -include .dependencies - - - diff --git a/misc/decoder_test/XED2/LICENSE b/misc/decoder_test/XED2/LICENSE deleted file mode 100644 index 5d9bdbb..0000000 --- a/misc/decoder_test/XED2/LICENSE +++ /dev/null @@ -1,35 +0,0 @@ -IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. By -downloading, copying, installing or using the software you agree to -this license. If you do not agree to this license, do not download, -install, copy or use the software. - -Copyright (c) 2007, Intel Corp. -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 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 COPYRIGHT -OWNER OR 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. diff --git a/misc/decoder_test/XED2/bin/xed b/misc/decoder_test/XED2/bin/xed deleted file mode 100755 index 1779732..0000000 Binary files a/misc/decoder_test/XED2/bin/xed and /dev/null differ diff --git a/misc/decoder_test/XED2/doc/html/annotated.html b/misc/decoder_test/XED2/doc/html/annotated.html deleted file mode 100644 index c68c75b..0000000 --- a/misc/decoder_test/XED2/doc/html/annotated.html +++ /dev/null @@ -1,48 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-
-
-

XED2 Data Structures

Here are the data structures with brief descriptions: - - - - - - - - - - -
xed_decoded_inst_sThe main container for instructions
xed_flag_enum_sAssociated with each flag field there can be one action
xed_flag_set_sUnion of flags bits
xed_immdis_sStores immediates and displacements for the encoder & decoder
xed_immdis_values_t
xed_inst_sConstant information about a decoded instruction form, including the pointer to the constant operand properties xed_operand_t for this instruction form
xed_operand_bitvec_t
xed_operand_sConstant information about an individual generic operand, like an operand template, describing the operand properties
xed_simple_flag_sA collection of xed_flag_action_t's and unions of read and written flags
xed_state_sEncapsulates machine modes for decoder/encoder requests
-
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/classes.html b/misc/decoder_test/XED2/doc/html/classes.html deleted file mode 100644 index 014c74a..0000000 --- a/misc/decoder_test/XED2/doc/html/classes.html +++ /dev/null @@ -1,40 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-
-
-

XED2 Data Structure Index

X

- -
  X  
-
xed_flag_set_s   xed_immdis_values_t   xed_operand_bitvec_t   xed_simple_flag_s   
xed_decoded_inst_s   xed_immdis_s   xed_inst_s   xed_operand_s   xed_state_s   
xed_flag_enum_s   

X

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/doxygen.css b/misc/decoder_test/XED2/doc/html/doxygen.css deleted file mode 100644 index 05615b2..0000000 --- a/misc/decoder_test/XED2/doc/html/doxygen.css +++ /dev/null @@ -1,310 +0,0 @@ -BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { - font-family: Geneva, Arial, Helvetica, sans-serif; -} -BODY,TD { - font-size: 90%; -} -H1 { - text-align: center; - font-size: 160%; -} -H2 { - font-size: 120%; -} -H3 { - font-size: 100%; -} -CAPTION { font-weight: bold } -DIV.qindex { - width: 100%; - background-color: #e8eef2; - border: 1px solid #84b0c7; - text-align: center; - margin: 2px; - padding: 2px; - line-height: 140%; -} -DIV.nav { - width: 100%; - background-color: #e8eef2; - border: 1px solid #84b0c7; - text-align: center; - margin: 2px; - padding: 2px; - line-height: 140%; -} -DIV.navtab { - background-color: #e8eef2; - border: 1px solid #84b0c7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} -TD.navtab { - font-size: 70%; -} -A.qindex { - text-decoration: none; - font-weight: bold; - color: #1A419D; -} -A.qindex:visited { - text-decoration: none; - font-weight: bold; - color: #1A419D -} -A.qindex:hover { - text-decoration: none; - background-color: #ddddff; -} -A.qindexHL { - text-decoration: none; - font-weight: bold; - background-color: #6666cc; - color: #ffffff; - border: 1px double #9295C2; -} -A.qindexHL:hover { - text-decoration: none; - background-color: #6666cc; - color: #ffffff; -} -A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } -A.el { text-decoration: none; font-weight: bold } -A.elRef { font-weight: bold } -A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} -A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} -A.codeRef:link { font-weight: normal; color: #0000FF} -A.codeRef:visited { font-weight: normal; color: #0000FF} -A:hover { text-decoration: none; background-color: #f2f2ff } -DL.el { margin-left: -1cm } -.fragment { - font-family: Fixed, monospace; - font-size: 95%; -} -PRE.fragment { - border: 1px solid #CCCCCC; - background-color: #f5f5f5; - margin-top: 4px; - margin-bottom: 4px; - margin-left: 2px; - margin-right: 8px; - padding-left: 6px; - padding-right: 6px; - padding-top: 4px; - padding-bottom: 4px; -} -DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } -TD.md { background-color: #F4F4FB; font-weight: bold; } -TD.mdPrefix { - background-color: #F4F4FB; - color: #606060; - font-size: 80%; -} -TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; } -TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; } -DIV.groupHeader { - margin-left: 16px; - margin-top: 12px; - margin-bottom: 6px; - font-weight: bold; -} -DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } -BODY { - background: white; - color: black; - margin-right: 20px; - margin-left: 20px; -} -TD.indexkey { - background-color: #e8eef2; - font-weight: bold; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px; - border: 1px solid #CCCCCC; -} -TD.indexvalue { - background-color: #e8eef2; - font-style: italic; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px; - border: 1px solid #CCCCCC; -} -TR.memlist { - background-color: #f0f0f0; -} -P.formulaDsp { text-align: center; } -IMG.formulaDsp { } -IMG.formulaInl { vertical-align: middle; } -SPAN.keyword { color: #008000 } -SPAN.keywordtype { color: #604020 } -SPAN.keywordflow { color: #e08000 } -SPAN.comment { color: #800000 } -SPAN.preprocessor { color: #806020 } -SPAN.stringliteral { color: #002080 } -SPAN.charliteral { color: #008080 } -.mdTable { - border: 1px solid #868686; - background-color: #F4F4FB; -} -.mdRow { - padding: 8px 10px; -} -.mdescLeft { - padding: 0px 8px 4px 8px; - font-size: 80%; - font-style: italic; - background-color: #FAFAFA; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; -} -.mdescRight { - padding: 0px 8px 4px 8px; - font-size: 80%; - font-style: italic; - background-color: #FAFAFA; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; -} -.memItemLeft { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memItemRight { - padding: 1px 8px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplItemLeft { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: none; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplItemRight { - padding: 1px 8px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: none; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplParams { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - color: #606060; - background-color: #FAFAFA; - font-size: 80%; -} -.search { color: #003399; - font-weight: bold; -} -FORM.search { - margin-bottom: 0px; - margin-top: 0px; -} -INPUT.search { font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -TD.tiny { font-size: 75%; -} -a { - color: #1A41A8; -} -a:visited { - color: #2A3798; -} -.dirtab { padding: 4px; - border-collapse: collapse; - border: 1px solid #84b0c7; -} -TH.dirtab { background: #e8eef2; - font-weight: bold; -} -HR { height: 1px; - border: none; - border-top: 1px solid black; -} - diff --git a/misc/decoder_test/XED2/doc/html/doxygen.png b/misc/decoder_test/XED2/doc/html/doxygen.png deleted file mode 100644 index f0a274b..0000000 Binary files a/misc/decoder_test/XED2/doc/html/doxygen.png and /dev/null differ diff --git a/misc/decoder_test/XED2/doc/html/files.html b/misc/decoder_test/XED2/doc/html/files.html deleted file mode 100644 index 070f2ed..0000000 --- a/misc/decoder_test/XED2/doc/html/files.html +++ /dev/null @@ -1,83 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:08 2008 - - - - -
-
-
-
-

XED2 File List

Here is a list of all files with brief descriptions: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
xed-address-width-enum.h [code]
xed-attribute-enum.h [code]
xed-category-enum.h [code]
xed-common-defs.h [code]Some pervasive defines
xed-common-hdrs.h [code]
xed-decode.h [code]
xed-decoded-inst.h [code]
xed-disas.h [code]
xed-encode.h [code]
xed-encoder-gen-defs.h [code]
xed-error-enum.h [code]
xed-extension-enum.h [code]
xed-flag-action-enum.h [code]
xed-flag-enum.h [code]
xed-flags.h [code]
xed-gen-table-defs.h [code]
xed-iclass-enum.h [code]
xed-iform-enum.h [code]
xed-immdis.h [code]
xed-immed.h [code]
xed-init.h [code]
xed-inst-printer.h [code]
xed-inst.h [code]
xed-interface.h [code]
xed-machine-mode-enum.h [code]
xed-nonterminal-enum.h [code]
xed-operand-action-enum.h [code]
xed-operand-action.h [code]
xed-operand-bitvec.h [code]
xed-operand-ctype-enum.h [code]
xed-operand-ctype-map.h [code]
xed-operand-enum.h [code]
xed-operand-storage.h [code]
xed-operand-type-enum.h [code]
xed-operand-values-interface.h [code]
xed-operand-visibility-enum.h [code]
xed-operand-width-enum.h [code]
xed-portability.h [code]
xed-reg-class-enum.h [code]
xed-reg-class.h [code]
xed-reg-enum.h [code]
xed-reg-role-enum.h [code]
xed-state.h [code]
xed-syntax-enum.h [code]
xed-types.h [code]
xed-util.h [code]
xed-version.h [code]
-
Generated on Thu May 15 03:15:08 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/ftv2blank.png b/misc/decoder_test/XED2/doc/html/ftv2blank.png deleted file mode 100644 index 493c3c0..0000000 Binary files a/misc/decoder_test/XED2/doc/html/ftv2blank.png and /dev/null differ diff --git a/misc/decoder_test/XED2/doc/html/ftv2doc.png b/misc/decoder_test/XED2/doc/html/ftv2doc.png deleted file mode 100644 index f72999f..0000000 Binary files a/misc/decoder_test/XED2/doc/html/ftv2doc.png and /dev/null differ diff --git a/misc/decoder_test/XED2/doc/html/ftv2folderclosed.png b/misc/decoder_test/XED2/doc/html/ftv2folderclosed.png deleted file mode 100644 index d6d0634..0000000 Binary files a/misc/decoder_test/XED2/doc/html/ftv2folderclosed.png and /dev/null differ diff --git a/misc/decoder_test/XED2/doc/html/ftv2folderopen.png b/misc/decoder_test/XED2/doc/html/ftv2folderopen.png deleted file mode 100644 index bbe2c91..0000000 Binary files a/misc/decoder_test/XED2/doc/html/ftv2folderopen.png and /dev/null differ diff --git a/misc/decoder_test/XED2/doc/html/ftv2lastnode.png b/misc/decoder_test/XED2/doc/html/ftv2lastnode.png deleted file mode 100644 index e7b9ba9..0000000 Binary files a/misc/decoder_test/XED2/doc/html/ftv2lastnode.png and /dev/null differ diff --git a/misc/decoder_test/XED2/doc/html/ftv2link.png b/misc/decoder_test/XED2/doc/html/ftv2link.png deleted file mode 100644 index 14f3fed..0000000 Binary files a/misc/decoder_test/XED2/doc/html/ftv2link.png and /dev/null differ diff --git a/misc/decoder_test/XED2/doc/html/ftv2mlastnode.png b/misc/decoder_test/XED2/doc/html/ftv2mlastnode.png deleted file mode 100644 index 09ceb6a..0000000 Binary files a/misc/decoder_test/XED2/doc/html/ftv2mlastnode.png and /dev/null differ diff --git a/misc/decoder_test/XED2/doc/html/ftv2mnode.png b/misc/decoder_test/XED2/doc/html/ftv2mnode.png deleted file mode 100644 index 3254c05..0000000 Binary files a/misc/decoder_test/XED2/doc/html/ftv2mnode.png and /dev/null differ diff --git a/misc/decoder_test/XED2/doc/html/ftv2node.png b/misc/decoder_test/XED2/doc/html/ftv2node.png deleted file mode 100644 index c9f06a5..0000000 Binary files a/misc/decoder_test/XED2/doc/html/ftv2node.png and /dev/null differ diff --git a/misc/decoder_test/XED2/doc/html/ftv2plastnode.png b/misc/decoder_test/XED2/doc/html/ftv2plastnode.png deleted file mode 100644 index 0b07e00..0000000 Binary files a/misc/decoder_test/XED2/doc/html/ftv2plastnode.png and /dev/null differ diff --git a/misc/decoder_test/XED2/doc/html/ftv2pnode.png b/misc/decoder_test/XED2/doc/html/ftv2pnode.png deleted file mode 100644 index 2001b79..0000000 Binary files a/misc/decoder_test/XED2/doc/html/ftv2pnode.png and /dev/null differ diff --git a/misc/decoder_test/XED2/doc/html/ftv2vertline.png b/misc/decoder_test/XED2/doc/html/ftv2vertline.png deleted file mode 100644 index b330f3a..0000000 Binary files a/misc/decoder_test/XED2/doc/html/ftv2vertline.png and /dev/null differ diff --git a/misc/decoder_test/XED2/doc/html/functions.html b/misc/decoder_test/XED2/doc/html/functions.html deleted file mode 100644 index aea7fbc..0000000 --- a/misc/decoder_test/XED2/doc/html/functions.html +++ /dev/null @@ -1,267 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-
-
-
- -
-
- -
- -

-Here is a list of all struct and union fields with links to the structures/unions they belong to: -

-

- _ -

-

- a -

-

- c -

-

- d -

-

- e -

-

- f -

-

- i -

-

- m -

-

- n -

-

- o -

-

- p -

-

- q -

-

- r -

-

- s -

-

- t -

-

- u -

-

- v -

-

- w -

-

- x -

-

- z -

-
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/functions_vars.html b/misc/decoder_test/XED2/doc/html/functions_vars.html deleted file mode 100644 index 5ec0344..0000000 --- a/misc/decoder_test/XED2/doc/html/functions_vars.html +++ /dev/null @@ -1,267 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-
-
-
- -
-
- -
- -

-  -

-

- _ -

-

- a -

-

- c -

-

- d -

-

- e -

-

- f -

-

- i -

-

- m -

-

- n -

-

- o -

-

- p -

-

- q -

-

- r -

-

- s -

-

- t -

-

- u -

-

- v -

-

- w -

-

- x -

-

- z -

-
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/globals.html b/misc/decoder_test/XED2/doc/html/globals.html deleted file mode 100644 index 2ec7096..0000000 --- a/misc/decoder_test/XED2/doc/html/globals.html +++ /dev/null @@ -1,92 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-
-
-
- -
-
- -
- -

-Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: -

-

- _ -

-
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/globals_0x72.html b/misc/decoder_test/XED2/doc/html/globals_0x72.html deleted file mode 100644 index f211532..0000000 --- a/misc/decoder_test/XED2/doc/html/globals_0x72.html +++ /dev/null @@ -1,60 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-
-
-
- -
-
- -
- -

-Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: -

-

- r -

-
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/globals_0x73.html b/misc/decoder_test/XED2/doc/html/globals_0x73.html deleted file mode 100644 index 0d5aac4..0000000 --- a/misc/decoder_test/XED2/doc/html/globals_0x73.html +++ /dev/null @@ -1,81 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-
-
-
- -
-
- -
- -

-Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: -

-

- s -

-
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/globals_0x78.html b/misc/decoder_test/XED2/doc/html/globals_0x78.html deleted file mode 100644 index 1101764..0000000 --- a/misc/decoder_test/XED2/doc/html/globals_0x78.html +++ /dev/null @@ -1,3247 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-
-
-
- -
-
- -
- -

-Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to: -

-

- x -

-
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/globals_defs.html b/misc/decoder_test/XED2/doc/html/globals_defs.html deleted file mode 100644 index 2e23fa1..0000000 --- a/misc/decoder_test/XED2/doc/html/globals_defs.html +++ /dev/null @@ -1,152 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-
-
-
- -
-
- -
- -

-  -

-

- _ -

-

- r -

-

- s -

-

- x -

-
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/globals_enum.html b/misc/decoder_test/XED2/doc/html/globals_enum.html deleted file mode 100644 index 575798c..0000000 --- a/misc/decoder_test/XED2/doc/html/globals_enum.html +++ /dev/null @@ -1,70 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-
-
-
- -
-  -

-

-
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/globals_eval.html b/misc/decoder_test/XED2/doc/html/globals_eval.html deleted file mode 100644 index 2fac948..0000000 --- a/misc/decoder_test/XED2/doc/html/globals_eval.html +++ /dev/null @@ -1,2777 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-
-
-
- -
-
- -
- -

-  -

-

- x -

-
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/globals_func.html b/misc/decoder_test/XED2/doc/html/globals_func.html deleted file mode 100644 index 536bada..0000000 --- a/misc/decoder_test/XED2/doc/html/globals_func.html +++ /dev/null @@ -1,78 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-
-
-
- -
-
- -
- -

-  -

-

- s -

-
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/globals_func_0x78.html b/misc/decoder_test/XED2/doc/html/globals_func_0x78.html deleted file mode 100644 index 4ff429b..0000000 --- a/misc/decoder_test/XED2/doc/html/globals_func_0x78.html +++ /dev/null @@ -1,431 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-
-
-
- -
-
- -
- -

-  -

-

- x -

-
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/globals_type.html b/misc/decoder_test/XED2/doc/html/globals_type.html deleted file mode 100644 index dfeba0f..0000000 --- a/misc/decoder_test/XED2/doc/html/globals_type.html +++ /dev/null @@ -1,66 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-
-
-
- -
-  -

-

-
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/globals_vars.html b/misc/decoder_test/XED2/doc/html/globals_vars.html deleted file mode 100644 index fe73b51..0000000 --- a/misc/decoder_test/XED2/doc/html/globals_vars.html +++ /dev/null @@ -1,52 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-
-
-
- -
-  -

-

-
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/group__CMDLINE.html b/misc/decoder_test/XED2/doc/html/group__CMDLINE.html deleted file mode 100644 index 23962c3..0000000 --- a/misc/decoder_test/XED2/doc/html/group__CMDLINE.html +++ /dev/null @@ -1,732 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-

XED command interface

The command line tool called xed or xed.exe is built when you build the examples (Examples of using XED) that come with XED. The xed-ex3 is just encode portion of the xed command line tool.

-This tool is useful for encoding and decoding or even decoding-then-re-encoding a single instruction or all the instructions in the text segment of an ELF binary (32 or 64b). For decoding, just jump to the examples.

-This section also explains a little language for writing the instructions for encode requests (-e option). I am constantly using this tool and updating it. The xed-ex3 (xed-ex3.exe) example is just the encoder portion of the xed command line tool.

-The SUPPRESSED operands emitted by the decoder are not used when encoding. They are ignored. They are not required to select an encoding.

-The syntax for encodable strings is as follows:

             Opcode[/width]   [operand [operand]]
-

-The width is a 8, 16, 32 or 64, indicating the effective operand width if it differs from the default. 8b operations generally require this. Or since most operations that default to 32b widths in 64b mode, it is required for 64b operation widths in 64b mode.

-The operand specifier is one of the following.

-

-

-

-

-

-

-

-

-

-

-Here is the help message:

-

% obj/xed -h
-Usage: obj/xed [options]
-One of the following is required:
-  -i input_file             (decode file)
-  -ide input_file           (decode/encode file)
-  -d hex-string             (decode one instruction)
-  -e instruction            (encode, must be last)
-  -de hex-string            (decode-then-encode)
- 
-Optional arguments:
-  -v verbosity  (0=quiet, 1=errors, 2=useful-info, 3=trace, 5=very verbose)
-  -n number-of-instructions-to-decode (default 10,000, accepts K/M/G qualifiers)
-  -I            (Intel SYSV syntax for disassembly)
-  -A            (ATT SYSV syntax for disassembly)
-  -16           (for LEGACY_16 mode)
-  -32           (for LEGACY_32 mode, default)
-  -64           (for LONG_64 mode w/64b addressing)
-  -a32          (32b addressing, default, not in LONG_64 mode)
-  -a16          (16b addressing, not in LONG_64 mode)
-  -s32          (32b stack addressing, default, not in LONG_64 mode)
-  -s16          (16b stack addressing, not in LONG_64 mode)
-

-Here are a couple of examples:

-

% xed -d 0000
-ADD INT_ALU BASE  Opcode: 00  MODRM: 00 Bytes: 2
-        Eb/EXPLICIT/RW Gb/EXPLICIT/R 
-        ADD EffWidth: 8b
-        MachineMode: LEGACY_32 AddrWidth: 32b StackAddrWidth: 32b
-        MEM/EXPLICIT/RW REG/AL(REG8)/EXPLICIT/R 
-        Read Write BASE= EAX(REG32) MemopLength = 1
-
-        rFLAGS: of-mod sf-mod zf-mod af-mod pf-mod cf-mod Read:  Written: of sf zf af pf cf             writes
-
-% xed -e ADD EAX EBX
-Encodable! 01d8
-
-xed -e ADD EAX 'MEM4(ESP,EBX,4)'
-Encodable! 03049c
-
-% xed -d 6a00
-PUSH INT_ALU BASE  Opcode: 6a  Immed: 00 Bytes: 2
-        Ib/EXPLICIT/R STACKPUSH/SUPPRESSED/R 
-        PUSH EffWidth: 32b
-        MachineMode: LEGACY_32 AddrWidth: 32b StackAddrWidth: 32b
-        MEM/SUPPRESSED/W REG/ESP(REG32)/SUPPRESSED/RW IMM/EXPLICIT/R 
-        Write SEG= SS BASE= ESP(REG32) MemopLength = 4
-        IMMED: 00
-
-        Does not use rFLAGS
-
-% xed -e MOV EAX 'MEM4(SS:ESP,-,-)'
-Encodable! 8b0424
-

-Or using the xed-ex3 example tool:

% obj/xed-ex3
-Usage: obj/xed-ex3 [-16|-32|-64] [-a16|-a32] [-s16|-s32] encode-string
-

-The -16, -32 or -64 are for specifying the major mode of the machine. The -a16 and -a32 are for specifying 16 or 32 bit addressing. The default addressing mode in 64b mode is 64b addressing. The -s16 and -a32 are for specifying 16 or 32 bit stack addressing in 16 or 32 bit modes.

-

% obj/xed-ex3 -64 PUSH/64 RAX
-Encode request:
-PUSH Prefixes:  EffOpWidth: 64b EffAddrWidth: 64b
-        MachineMode: LONG_64 AddrWidth: 64b StackAddrWidth: 32b
-        REG/RAX(REG64)/EXPLICIT/RW 
-        MemopLength = 0
-
-Encodable! 50
-
-% obj/xed-ex3 MOV 'MEM4(EAX,-,-)' 'IMM(11223344)'
-Encode request:
-MOV Prefixes:  EffOpWidth: 32b EffAddrWidth: 32b
-        MachineMode: LEGACY_32 AddrWidth: 32b StackAddrWidth: 32b
-        MEM0/EXPLICIT/RW IMM/EXPLICIT/RW 
-        TmpltIdx=0 BASE= EAX(REG32) MemopLength = 0
-        IMMED: 0x11223344 signed: 1144201745 starts@byte: 1
-
-Encodable! c70011223344
-

-An example of using the encoder

-The encoder language file which is part of the xed command line tool shows how to build up instructions from scratch. The example uses a string to drive the creation of the instruction, but that is just an example. Look at the parse_encode_request function for the required pieces.

-

/*BEGIN_LEGAL 
-Copyright (c) 2007, Intel Corp.
-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 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 COPYRIGHT
-OWNER OR 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 */
-
-// This is an example of how to use the encoder from scratch in the context
-// of parsing a string from the command line.  
-
-
-#include <iostream>
-#include <iomanip>
-#include <vector>
-#include <sstream>
-#include <cassert>
-extern "C" {
-#include "xed-interface.h"
-#include "xed-portability.h"
-#include "xed-examples-util.h"
-}
-#include "xed-enc-lang.H"
-
-
-
-
-using namespace std;
-static char xed_enc_lang_toupper(char c) {
-    if (c >= 'a' && c <= 'z')
-        return c-'a'+'A';
-    return c;
-}
-
-static string upcase(string s) {
-    string t = "";
-    xed_uint_t len = static_cast<xed_uint_t>(s.size());
-    xed_uint_t i;
-    for(i=0 ; i < len ; i++ ) 
-        t = t + xed_enc_lang_toupper(s[i]);
-    return t;
-}
-
-unsigned int
-xed_split_args(const string& sep, 
-               const string& input, 
-               vector<string>& output_array)
-{
-    // returns the number of args
-    // rip off the separator characters and split the src string based on separators.
-    
-    // find the string between last_pos and pos. pos is after last_pos
-    string::size_type last_pos = input.find_first_not_of(sep, 0);
-    string::size_type pos = input.find_first_of(sep, last_pos);  
-    if (CLIENT_VERBOSE3)
-        printf("input %s\tlast_pos " XED_FMT_U " pos " XED_FMT_U "\n", 
-               input.c_str() , STATIC_CAST(xed_uint_t,last_pos), STATIC_CAST(xed_uint_t,pos));
-    int i=0;
-    while( pos != string::npos && last_pos != string::npos ) 
-    {
-        string a = input.substr(last_pos, pos-last_pos);
-        output_array.push_back(a); 
-        if (CLIENT_VERBOSE3)
-            printf("\t\tlast_pos " XED_FMT_U " pos " XED_FMT_U " i %d\n", 
-                   STATIC_CAST(xed_uint_t,last_pos),
-                   STATIC_CAST(xed_uint_t,pos),
-                   i);
-        last_pos = input.find_first_not_of(sep, pos);
-        pos = input.find_first_of(sep, last_pos);  
-        i++;
-    }
-    if (last_pos != string::npos && pos == string::npos)
-    {
-        if (CLIENT_VERBOSE3)
-            printf("\t\tGetting last substring at " XED_FMT_U "\n", STATIC_CAST(xed_uint_t,last_pos));
-        string a = input.substr(last_pos); // get the rest of the string
-        output_array.push_back(a);
-        i++;
-    }
-    if (CLIENT_VERBOSE3)
-        printf("\t returning %d\n",i);
-    return i;
-}
-
-vector<string> 
-tokenize(const string& s,
-         const string& delimiter) {
-    vector<string> v;
-    (void) xed_split_args(delimiter, s, v);
-    return v;
-}
-
-
-void slash_split(const string& src,
-                 string& first, // output
-                 string&  second) //output
-{
-  string::size_type p = src.find("/");
-  if (p == string::npos) {
-    first = src;
-    second = "";
-  }
-  else {
-    first = src.substr(0,p);
-    second = src.substr(p+1);
-  }
-}
-
-class immed_parser_t {
-  public:
-    xed_bool_t valid;
-    string immed;
-    unsigned int width_bits;
-    xed_uint64_t immed_val;
-    string tok0;
-
-    immed_parser_t(const string& s, 
-                   const string& arg_tok0) //CONS
-        : valid(false),
-          tok0(arg_tok0)
-    {
-        vector<string> vs = tokenize(s,"(),");
-        if (vs.size() == 2) {
-            if (vs[0] == tok0) {
-                string immed_str = vs[1];
-                immed_val = convert_ascii_hex_to_int(immed_str.c_str());
-                width_bits = static_cast<unsigned int>(immed_str.size()*4); // nibbles to bits
-                valid = true;
-            }
-        }
-    }
-
-    void
-    print(ostream& o) const {
-        o << tok0 
-          << "(" ;
-        if (valid) 
-            o << hex << immed_val << dec;
-        else 
-            o << "???";
-        o << ")";
-    }
-
-};
-
-ostream& operator<<(ostream& o, const immed_parser_t& x) 
-{
-    x.print(o);
-    return o;
-}
-
-
-class seg_parser_t
-{
-  public:
-    xed_bool_t valid;
-    xed_reg_enum_t segment_reg;
-    string segment;
-
-    seg_parser_t(const string& s) // CONS
-        : valid(false),
-          segment_reg(XED_REG_INVALID)
-    {
-        vector<string> vs = tokenize(s,"(),");
-        xed_uint_t ntokens = static_cast<xed_uint_t>(vs.size());
-        cerr << "ntokens " << ntokens << ": " ;
-        for(unsigned int i=0;i<ntokens;i++) cerr  << '[' << vs[i] << "] ";
-        cerr << endl;
-        if (ntokens == 2 && vs[0] == "SEG") {
-            segment = vs[1];
-            segment_reg = str2xed_reg_enum_t(segment.c_str());
-            if (segment_reg != XED_REG_INVALID && xed_reg_class(segment_reg) == XED_REG_CLASS_SR) {
-                valid=true;
-            }
-        }
-    }
-
-};
-
-class mem_bis_parser_t 
-{
-    // parse: MEM[length]([segment:]base,index,scale[,displacement])
-    // parse: AGEN(base,index,scale[,displacement])
-    // The displacement is optional
-    // The length of the memop is usually optional 
-    //   but required for x87 ops, for example.
-  public:
-    xed_bool_t valid;
-    xed_bool_t mem;
-
-    xed_bool_t agen;
-    xed_bool_t disp_valid;
-    string segment;
-    string base;
-    string index;
-    string scale;
-    string disp; //displacement
-    xed_reg_enum_t segment_reg;
-    xed_reg_enum_t base_reg;
-    xed_reg_enum_t index_reg;
-    xed_uint8_t scale_val;
-
-
-    xed_int64_t disp_val;
-    unsigned int disp_width_bits;
-
-    unsigned int mem_len;
-
-    void
-    print(ostream& o) const {
-        if (agen) 
-            o << "AGEN"; 
-        if (mem) 
-            o << "MEM"; 
-        if (mem_len) 
-            o << setw(1) << mem_len;
-        o << "(";
-        if (segment_reg != XED_REG_INVALID)
-            o << segment_reg << ":";
-        o << base_reg;
-        o << "," << index_reg 
-          << "," 
-          << (unsigned int) scale_val;
-        if (disp_valid) 
-            o <<  "," << disp;
-        o << ")";
-     
-    }
-  
-    mem_bis_parser_t(const string& s) //CONS
-        : valid(false),
-          disp_valid(false),
-          base("INVALID"),
-          index("INVALID"),
-          scale("1"),
-          segment_reg(XED_REG_INVALID),
-          base_reg(XED_REG_INVALID),
-          index_reg(XED_REG_INVALID),
-          disp_val(0),
-          disp_width_bits(0),
-          mem_len(0)
-    {
-
-        mem = false;
-        agen = false;
-        vector<string> vs = tokenize(s,"(),");
-        xed_uint_t ntokens = static_cast<xed_uint_t>(vs.size());
-        if (ntokens >= 2 && ntokens <= 5) {
-            if (vs[0] == "AGEN") {
-                agen = true;
-            }
-            else if (vs[0].substr(0,3) == "MEM") {
-                mem = true;
-                if (vs[0].size() > 3) {
-                    string len = vs[0].substr(3);
-                    mem_len = strtol(len.c_str(),0,0);
-                    //printf("mem_len  = " XED_FMT_U "\n", mem_len);
-                }
-            }
-            else             {
-                return;
-            }
-
-            segment = "INVALID";
-            string seg_and_base = upcase(vs[1]);
-            vector<string> sb = tokenize(seg_and_base,":");
-            int seg_and_base_tokens = STATIC_CAST(int,sb.size());
-            if (seg_and_base_tokens == 1) {
-                segment = "INVALID";
-                base = sb[0];
-            }
-            else if (seg_and_base_tokens == 2) {
-                if (agen) {
-                    xedex_derror("AGENs cannot have segment overrides");
-                }
-                segment = sb[0];
-                base = sb[1];
-            }
-            else            {
-                printf("seg_and_base_tokens = %d\n",seg_and_base_tokens);
-                xedex_derror("Bad segment-and-base specifier.");
-            }
-
-            if (base == "-" || base == "NA") {
-                base = "INVALID";
-            }
-            if (ntokens > 2) {
-                index = upcase(vs[2]);
-                if (index == "-" || index == "NA") {
-                    index = "INVALID";
-                }
-            }
-
-            if (ntokens > 3) {
-                scale = vs[3];
-                if (scale == "-" || scale == "NA") {
-                    scale = "1";
-                }
-            }
-            if (scale == "1" || scale == "2" || scale == "4" || scale == "8") {
-                valid=true;
-                scale_val = STATIC_CAST(xed_uint8_t,strtol(scale.c_str(), 0, 10));
-                segment_reg = str2xed_reg_enum_t(segment.c_str());
-                base_reg = str2xed_reg_enum_t(base.c_str());
-                index_reg = str2xed_reg_enum_t(index.c_str());
-
-                // look for a displacement
-                if (ntokens == 5 && vs[4] != "-") {
-                    disp = vs[4];
-                    disp_valid = true;
-                    unsigned int nibbles = STATIC_CAST(int,disp.size());
-                    if (nibbles & 1) {
-                        // ensure an even number of nibbles
-                        string zero("0");
-                        disp = zero + disp;
-                        nibbles++;
-                    }
-                    disp_val = convert_ascii_hex_to_int(disp.c_str());
-                    disp_width_bits = nibbles*4; // nibbles to bits
-                }
-            }
-
-        }
-    
-    }
-};
-
-ostream& operator<<(ostream& o, const mem_bis_parser_t& x) {
-  x.print(o);
-  return o;
-}
-
-xed_encoder_request_t parse_encode_request(ascii_encode_request_t& areq) {
-    unsigned int i;
-    xed_encoder_request_t req;
-    xed_encoder_request_zero_set_mode(&req,&(areq.dstate)); // calls xed_encoder_request_zero()
-
-    /* This is the important function here. This encodes an instruction from scratch.
-       
-    You must set:
-    the machine mode (machine width, addressing widths)
-    the effective operand width
-    the iclass
-    for some instructions you need to specify prefixes (like REP or LOCK).
-    the operands:
-           operand kind (XED_OPERAND_{AGEN,MEM0,MEM1,IMM0,IMM1,RELBR,PTR,REG0...REG15}
-           operand order 
-                    xed_encoder_request_set_operand_order(&req,operand_index, XED_OPERAND_*);
-                    where the operand_index is a sequential index starting at zero.
-
-           operand details 
-                     FOR MEMOPS: base,segment,index,scale,displacement for memops, 
-                  FOR REGISTERS: register name
-                 FOR IMMEDIATES: immediate values
-       
-     */
-    
-
-    switch(xed_state_get_machine_mode(&(areq.dstate))) {
-        // set the default width.
-      case XED_MACHINE_MODE_LONG_64:
-        xed_encoder_request_set_effective_operand_width(&req, 32);
-        xed_encoder_request_set_effective_address_size(&req, 64);
-        break;
-
-      case XED_MACHINE_MODE_LEGACY_32:
-      case XED_MACHINE_MODE_LONG_COMPAT_32:
-        xed_encoder_request_set_effective_operand_width(&req, 32);
-        xed_encoder_request_set_effective_address_size(&req, 32);
-        break;
-
-      case XED_MACHINE_MODE_LEGACY_16:
-      case XED_MACHINE_MODE_LONG_COMPAT_16:
-        xed_encoder_request_set_effective_operand_width(&req, 16);
-        xed_encoder_request_set_effective_address_size(&req, 16);
-        break;
-
-      default:
-        assert(0);
-    }
-
-    //FIXME: allow changing the effective address size from the above defaults.
-
-    vector<string> tokens = tokenize(areq.command," ");
-    // first token has the operand and our temporary hack for the immediate
-
-    string first, second;
-    unsigned int token_index = 0;
-
-    while(token_index < tokens.size()) {
-        slash_split(tokens[token_index], first, second);
-        if (CLIENT_VERBOSE3)
-            printf( "[%s][%s][%s]\n", tokens[0].c_str(), first.c_str(), second.c_str());
-
-        if (token_index == 0 && first == "REP") {
-            xed_encoder_request_set_rep(&req);
-            token_index++;
-            continue;
-        }
-        else if (token_index == 0 && first == "REPNE") {
-            xed_encoder_request_set_repne(&req);
-            token_index++;
-            continue;
-        }
-  
-        token_index++;
-        break;
-    }
-
-    // we can attempt to override the mode 
-    if (second == "8") 
-        xed_encoder_request_set_effective_operand_width(&req, 8);
-    else if (second == "16") 
-        xed_encoder_request_set_effective_operand_width(&req, 16);
-    else if (second == "32") 
-        xed_encoder_request_set_effective_operand_width(&req, 32);
-    else if (second == "64") 
-        xed_encoder_request_set_effective_operand_width(&req, 64);
-
-    first = upcase(first);
-    xed_iclass_enum_t iclass =  str2xed_iclass_enum_t(first.c_str());
-    if (iclass == XED_ICLASS_INVALID) {
-        ostringstream os;
-        os << "Bad instruction name: " << first;
-        xedex_derror(os.str().c_str());
-    }
-    xed_encoder_request_set_iclass(&req, iclass );
-
-    xed_uint_t memop = 0;
-    xed_uint_t regnum = 0;
-    // put the operands in the request. Loop through tokens 
-    // (skip the opcode iclass, handled above)
-    xed_uint_t operand_index = 0;
-    for( i=token_index; i < tokens.size(); i++, operand_index++ ) {
-        string str_res_reg, second_x;
-        slash_split(tokens[i], str_res_reg, second_x);
-        str_res_reg = upcase(str_res_reg);
-        // prune the AGEN or MEM(base,index,scale[,displacement]) text from str_res_reg
-        // FIXME: add MEM(immed) for the OC1_A and OC1_O types????
-        mem_bis_parser_t mem_bis(str_res_reg);
-        if (mem_bis.valid) {
-            if (mem_bis.mem) {
-                if (memop == 0) {
-                    // Tell XED that we have a memory operand
-                    xed_encoder_request_set_mem0(&req);
-                    // Tell XED that the mem0 operand is the next operand:
-                    xed_encoder_request_set_operand_order(&req,operand_index, XED_OPERAND_MEM0);
-                }
-                else {
-                    xed_encoder_request_set_mem1(&req);
-                    // Tell XED that the mem1 operand is the next operand:
-                    xed_encoder_request_set_operand_order(&req,operand_index, XED_OPERAND_MEM1);
-                }
-                memop++;
-            }
-            else if (mem_bis.agen) {
-                // Tell XED we have an AGEN
-                xed_encoder_request_set_agen(&req);
-                // The AGEN is the next operand
-                xed_encoder_request_set_operand_order(&req,operand_index, XED_OPERAND_AGEN);
-            }
-            else 
-                assert(mem_bis.agen || mem_bis.mem);
-
-            xed_reg_class_enum_t rc = xed_gpr_reg_class(mem_bis.base_reg);
-            xed_reg_class_enum_t rci = xed_gpr_reg_class(mem_bis.index_reg);
-            if (mem_bis.base_reg != XED_REG_INVALID && mem_bis.index_reg != XED_REG_INVALID) 
-                if (rc != rci) {
-                    ostringstream os;
-                    os << "The base and index regs do not agree on the address size" << endl;
-                    xedex_derror(os.str().c_str()); // dies
-                }
-            
-            if (rc == XED_REG_CLASS_GPR32 || rci == XED_REG_CLASS_GPR32) 
-                xed_encoder_request_set_effective_address_size(&req, 32);
-
-            // fill in the memory fields
-            xed_encoder_request_set_base0(&req, mem_bis.base_reg);
-            xed_encoder_request_set_index(&req, mem_bis.index_reg);
-            xed_encoder_request_set_scale(&req, mem_bis.scale_val);
-            xed_encoder_request_set_seg0(&req, mem_bis.segment_reg);
-
-            if (mem_bis.mem_len) 
-                xed_encoder_request_set_memory_operand_length(&req, mem_bis.mem_len ); // BYTES
-            if (mem_bis.disp_valid)
-                xed_encoder_request_set_memory_displacement(&req,
-                                                            mem_bis.disp_val,
-                                                            mem_bis.disp_width_bits/8);
-            continue;
-        }
-
-        seg_parser_t seg_parser(str_res_reg);
-        if (seg_parser.valid) {
-            printf("Setting segment to %s\n", xed_reg_enum_t2str(seg_parser.segment_reg));
-            xed_encoder_request_set_seg0(&req, seg_parser.segment_reg);
-            xed_encoder_request_set_operand_order(&req, operand_index, XED_OPERAND_SEG0);
-            continue;
-        }
-
-        immed_parser_t imm(str_res_reg, "IMM");
-        if (imm.valid) {
-            if (CLIENT_VERBOSE3) 
-                printf("Setting immediate value to " XED_FMT_LX "\n", imm.immed_val);
-            xed_encoder_request_set_uimm0_bits(&req, 
-                                               imm.immed_val,
-                                               imm.width_bits);
-            xed_encoder_request_set_operand_order(&req,operand_index, XED_OPERAND_IMM0);
-            continue;
-        }
-        immed_parser_t simm(str_res_reg, "SIMM");
-        if (simm.valid) {
-            if (CLIENT_VERBOSE3) 
-                printf("Setting immediate value to " XED_FMT_LX "\n", simm.immed_val);
-            xed_encoder_request_set_simm(&req, 
-                                         STATIC_CAST(xed_int32_t,simm.immed_val),
-                                         simm.width_bits/8); //FIXME
-            xed_encoder_request_set_operand_order(&req,operand_index, XED_OPERAND_IMM0);
-            continue;
-        }
-        immed_parser_t imm2(str_res_reg, "IMM2");
-        if (imm2.valid) {
-            if (imm2.width_bits != 8)
-                xedex_derror("2nd immediate must be just 1 byte long");
-            xed_encoder_request_set_uimm1(&req, imm2.immed_val);
-            xed_encoder_request_set_operand_order(&req,operand_index, XED_OPERAND_IMM1);
-            continue;
-        }
-
-        immed_parser_t disp(str_res_reg, "BRDISP");
-        if (disp.valid) {
-            if (CLIENT_VERBOSE3) 
-                printf("Setting  displacement value to " XED_FMT_LX "\n", disp.immed_val);
-            xed_encoder_request_set_branch_displacement(&req,
-                                                        STATIC_CAST(xed_uint32_t,disp.immed_val),
-                                                        disp.width_bits/8); //FIXME
-            xed_encoder_request_set_operand_order(&req,operand_index, XED_OPERAND_RELBR);
-            xed_encoder_request_set_relbr(&req);
-            continue;
-        }
-
-        immed_parser_t ptr_disp(str_res_reg, "PTR");
-        if (ptr_disp.valid) {
-            if (CLIENT_VERBOSE3) 
-                printf("Setting pointer displacement value to " XED_FMT_LX "\n", ptr_disp.immed_val);
-            xed_encoder_request_set_branch_displacement(&req,
-                                                        STATIC_CAST(xed_uint32_t,ptr_disp.immed_val),
-                                                        ptr_disp.width_bits/8); //FIXME
-            xed_encoder_request_set_operand_order(&req,operand_index, XED_OPERAND_PTR);
-            xed_encoder_request_set_ptr(&req);
-            continue;
-        }
-
-        xed_reg_enum_t reg = str2xed_reg_enum_t(str_res_reg.c_str());
-        if (reg == XED_REG_INVALID) {
-            ostringstream os;
-            os << "Bad register name: " << str_res_reg << " on operand " << i;
-            xedex_derror(os.str().c_str()); // dies
-        }
-        // The registers operands aer numbered starting from the first one
-        // as XED_OPERAND_REG0. We incremenet regnum (below) every time we add a
-        // register operands.
-        xed_operand_enum_t r = STATIC_CAST(xed_operand_enum_t,XED_OPERAND_REG0 + regnum);
-        // store the register identifer in the operand storage field
-        xed_encoder_request_set_reg(&req, r, reg);
-        // store the operand storage field name in the encode-order array
-        xed_encoder_request_set_operand_order(&req, operand_index, r);
-        regnum++;
-    } // for loop
-
-    return req;
-}
-
-

- - -
-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/group__DEC.html b/misc/decoder_test/XED2/doc/html/group__DEC.html deleted file mode 100644 index ac21c6d..0000000 --- a/misc/decoder_test/XED2/doc/html/group__DEC.html +++ /dev/null @@ -1,3765 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-

Decoding Instructions


Detailed Description

-To decode an instruction you are required to provide
    -
  1. a machine state (operating mode and addressing widths)
  2. a pointer to the instruction text array of bytes
  3. a length of the text array
-

-The machine state is passed in to decoder via the class xed_state_t . That state is set via the constructor of each xed_decoded_inst_t .

-The xed_decoded_inst_t contains the results of decoding after a successful decode.

-The xed_decoded_inst_t includes an array of xed_operand_values_t and that is where most of the information about the operands, resources etc. are stored. See the Operand storage fields interface. The array is indexed by the xed_operand_enum_t enumeration. Do not access it directly though; use the interface functions in the Operand storage fields interface for portability.

-After decoding the xed_decoded_inst_t contains a pointer to the xed_inst_t which acts like a kind of template giving static information about the decoded instruction: what are the types of the operands, the iclass, category extension, etc. The xed_inst_t is accessed via the xed_decoded_inst_inst(cont xed_decoded_inst_t* xedd) function.

-Before every decode, you must call one of the initialization functions. The most common case would be to use xed_decoded_inst_zero_keep_mode() or maybe xed_decoded_inst_zero_set_mode(). -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Data Structures

struct  xed_decoded_inst_s
 The main container for instructions. More...
struct  xed_inst_s
 constant information about a decoded instruction form, including the pointer to the constant operand properties xed_operand_t for this instruction form. More...
struct  xed_operand_s
 Constant information about an individual generic operand, like an operand template, describing the operand properties. More...

xed_inst_t Attribute access

XED_DLL_EXPORT xed_attribute_enum_t xed_attribute (unsigned int i)
 Return the i'th global attribute in a linear sequence, independent of any instruction.
XED_DLL_EXPORT unsigned int xed_attribute_max ()
 Return the maximum number of defined attributes, independent of any instruction.
static XED_INLINE xed_uint32_t xed_inst_get_attribute (const xed_inst_t *p, xed_attribute_enum_t attr)
 Scan for the attribute attr and return 1 if it is found, 0 otherwise.
static XED_INLINE xed_uint32_t xed_inst_get_attributes (const xed_inst_t *p)
 Return the attributes bit vector.

xed_decoded_inst_t Operand Field Details

XED_DLL_EXPORT xed_bool_t xed_decoded_inst_conditionally_writes_registers (const xed_decoded_inst_t *p)
XED_DLL_EXPORT xed_reg_enum_t xed_decoded_inst_get_base_reg (const xed_decoded_inst_t *p, unsigned int mem_idx)
XED_DLL_EXPORT xed_int32_t xed_decoded_inst_get_branch_displacement (const xed_decoded_inst_t *p)
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_branch_displacement_width (const xed_decoded_inst_t *p)
 Result in BYTES.
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_branch_displacement_width_bits (const xed_decoded_inst_t *p)
 Result in BITS.
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_immediate_is_signed (const xed_decoded_inst_t *p)
 Return true if the first immediate (IMM0) is signed.
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_immediate_width (const xed_decoded_inst_t *p)
 Return the immediate width in BYTES.
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_immediate_width_bits (const xed_decoded_inst_t *p)
 Return the immediate width in BITS.
XED_DLL_EXPORT xed_reg_enum_t xed_decoded_inst_get_index_reg (const xed_decoded_inst_t *p, unsigned int mem_idx)
XED_DLL_EXPORT xed_int64_t xed_decoded_inst_get_memory_displacement (const xed_decoded_inst_t *p, unsigned int mem_idx)
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_memory_displacement_width (const xed_decoded_inst_t *p, unsigned int mem_idx)
 Result in BYTES.
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_memory_displacement_width_bits (const xed_decoded_inst_t *p, unsigned int mem_idx)
 Result in BITS.
XED_DLL_EXPORT unsigned int xed_decoded_inst_get_memory_operand_length (const xed_decoded_inst_t *p, unsigned int memop_idx)
static XED_INLINE xed_reg_enum_t xed_decoded_inst_get_reg (const xed_decoded_inst_t *p, xed_operand_enum_t reg_operand)
 Return the specified register operand.
XED_DLL_EXPORT const xed_simple_flag_txed_decoded_inst_get_rflags_info (const xed_decoded_inst_t *p)
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_scale (const xed_decoded_inst_t *p, unsigned int mem_idx)
static XED_INLINE xed_uint8_t xed_decoded_inst_get_second_immediate (const xed_decoded_inst_t *p)
 Return the second immediate.
XED_DLL_EXPORT xed_reg_enum_t xed_decoded_inst_get_seg_reg (const xed_decoded_inst_t *p, unsigned int mem_idx)
XED_DLL_EXPORT xed_int32_t xed_decoded_inst_get_signed_immediate (const xed_decoded_inst_t *p)
XED_DLL_EXPORT xed_uint64_t xed_decoded_inst_get_unsigned_immediate (const xed_decoded_inst_t *p)
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_is_prefetch (const xed_decoded_inst_t *p)
 Returns true if the instruction is a prefetch.
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_mem_read (const xed_decoded_inst_t *p, unsigned int mem_idx)
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_mem_written (const xed_decoded_inst_t *p, unsigned int mem_idx)
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_mem_written_only (const xed_decoded_inst_t *p, unsigned int mem_idx)
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_number_of_memory_operands (const xed_decoded_inst_t *p)
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_uses_rflags (const xed_decoded_inst_t *p)

xed_decoded_inst_t Printers

XED_DLL_EXPORT void xed_decoded_inst_dump (const xed_decoded_inst_t *p, char *buf, int buflen)
 Print out all the information about the decoded instruction to the buffer buf whose length is maximally buflen.
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_att_format (const xed_decoded_inst_t *p, char *buf, int buflen, xed_uint64_t runtime_address)
 Print the instructions with the destination operand on the right, with several exceptions (bound, invlpga, enter, and other instructions with two immediate operands).
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_att_format_context (const xed_decoded_inst_t *p, char *buf, int buflen, xed_uint64_t runtime_address, void *context)
 Print the instructions with the destination operand on the right, with several exceptions (bound, invlpga, enter, and other instructions with two immediate operands).
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_intel_format (const xed_decoded_inst_t *p, char *buf, int buflen, xed_uint64_t runtime_address)
 Print the instructions with the destination on the left.
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_intel_format_context (const xed_decoded_inst_t *p, char *buf, int buflen, xed_uint64_t runtime_address, void *context)
 Print the instructions with the destination on the left.
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_xed_format (const xed_decoded_inst_t *p, char *buf, int buflen, xed_uint64_t runtime_address)

modes

static XED_INLINE xed_uint_t xed_decoded_inst_get_address_mode (const xed_decoded_inst_t *p)
static XED_INLINE xed_uint_t xed_decoded_inst_get_mode (const xed_decoded_inst_t *p)
static XED_INLINE xed_uint_t xed_decoded_inst_get_stack_address_mode (const xed_decoded_inst_t *p)

xed_decoded_inst_t High-level accessors

XED_DLL_EXPORT xed_uint32_t xed_decoded_inst_get_attribute (const xed_decoded_inst_t *p, xed_attribute_enum_t attr)
 Returns 1 if the attribute is defined for this instruction.
XED_DLL_EXPORT xed_uint32_t xed_decoded_inst_get_attributes (const xed_decoded_inst_t *p)
 Returns the attribute bitvector.
static XED_INLINE xed_category_enum_t xed_decoded_inst_get_category (const xed_decoded_inst_t *p)
 Return the instruction category enumeration.
static XED_INLINE xed_extension_enum_t xed_decoded_inst_get_extension (const xed_decoded_inst_t *p)
 Return the instruction extension enumeration.
static XED_INLINE xed_iclass_enum_t xed_decoded_inst_get_iclass (const xed_decoded_inst_t *p)
 Return the instruction class enumeration.
static XED_INLINE const xed_inst_txed_decoded_inst_inst (const xed_decoded_inst_t *p)
 Return the xed_inst_t structure for this instruction.
static XED_INLINE xed_bool_t xed_decoded_inst_valid (const xed_decoded_inst_t *p)
 Return true if the instruction is valid.

IFORM handling

static XED_INLINE xed_iform_enum_t xed_decoded_inst_get_iform_enum (const xed_decoded_inst_t *p)
 Return the instruction iform enum of type xed_iform_enum_t .
static XED_INLINE unsigned int xed_decoded_inst_get_iform_enum_dispatch (const xed_decoded_inst_t *p)
 Return the instruction zero-based iform number based on masking the corresponding xed_iform_enum_t.
static XED_INLINE xed_uint_t xed_decoded_inst_get_old_iform (const xed_decoded_inst_t *p)
 DEPRECATED Return the instruction iform number.
XED_DLL_EXPORT xed_uint32_t xed_iform_max_per_iclass (xed_iclass_enum_t iclass)
 Return the maximum number of iforms for a particular iclass.

xed_decoded_inst_t Length

static XED_INLINE xed_uint_t xed_decoded_inst_get_length (const xed_decoded_inst_t *p)
 Return the length of the decoded instruction in bytes.

xed_decoded_inst_t User Data Field

static XED_INLINE xed_uint64_t xed_decoded_inst_get_user_data (xed_decoded_inst_t *p)
 Return a user data field for arbitrary use by the user after decoding.
static XED_INLINE void xed_decoded_inst_set_user_data (xed_decoded_inst_t *p, xed_uint64_t new_value)
 Modify the user data field.

xed_decoded_inst_t Operands: Number and Length

static XED_INLINE unsigned int xed_decoded_inst_noperands (const xed_decoded_inst_t *p)
 Return the number of operands.
XED_DLL_EXPORT unsigned int xed_decoded_inst_operand_length (const xed_decoded_inst_t *p, unsigned int operand_index)
 Return the length in bytes of the operand_index'th operand.

xed_decoded_inst_t Operands array access

static XED_INLINE xed_operand_values_txed_decoded_inst_operands (xed_decoded_inst_t *p)
 Obtain a non-constant pointer to the operands.
static XED_INLINE const xed_operand_values_txed_decoded_inst_operands_const (const xed_decoded_inst_t *p)
 Obtain a constant pointer to the operands.

xed_decoded_inst_t Modification

XED_DLL_EXPORT void xed_decoded_inst_set_branch_displacement (xed_decoded_inst_t *p, xed_int32_t disp, xed_uint_t length_bytes)
 Set the branch displacement using a BYTE length.
XED_DLL_EXPORT void xed_decoded_inst_set_branch_displacement_bits (xed_decoded_inst_t *p, xed_int32_t disp, xed_uint_t length_bits)
 Set the branch displacement a BITS length.
XED_DLL_EXPORT void xed_decoded_inst_set_immediate_signed (xed_decoded_inst_t *p, xed_int32_t x, xed_uint_t length_bytes)
 Set the signed immediate a BYTE length.
XED_DLL_EXPORT void xed_decoded_inst_set_immediate_signed_bits (xed_decoded_inst_t *p, xed_int32_t x, xed_uint_t length_bits)
 Set the signed immediate a BITS length.
XED_DLL_EXPORT void xed_decoded_inst_set_immediate_unsigned (xed_decoded_inst_t *p, xed_uint64_t x, xed_uint_t length_bytes)
 Set the unsigned immediate a BYTE length.
XED_DLL_EXPORT void xed_decoded_inst_set_immediate_unsigned_bits (xed_decoded_inst_t *p, xed_uint64_t x, xed_uint_t length_bits)
 Set the unsigned immediate a BITS length.
XED_DLL_EXPORT void xed_decoded_inst_set_memory_displacement (xed_decoded_inst_t *p, xed_int64_t disp, xed_uint_t length_bytes)
 Set the memory displacement using a BYTE length.
XED_DLL_EXPORT void xed_decoded_inst_set_memory_displacement_bits (xed_decoded_inst_t *p, xed_int64_t disp, xed_uint_t length_bits)
 Set the memory displacement a BITS length.
XED_DLL_EXPORT void xed_decoded_inst_set_scale (xed_decoded_inst_t *p, xed_uint_t scale)

xed_decoded_inst_t Initialization

XED_DLL_EXPORT void xed_decoded_inst_zero (xed_decoded_inst_t *p)
 Zero the decode structure completely.
XED_DLL_EXPORT void xed_decoded_inst_zero_keep_mode (xed_decoded_inst_t *p)
 Zero the decode structure, but preserve the existing machine state/mode information.
XED_DLL_EXPORT void xed_decoded_inst_zero_keep_mode_from_operands (xed_decoded_inst_t *p, const xed_operand_values_t *operands)
 Zero the decode structure, but copy the existing machine state/mode information from the supplied operands pointer.
XED_DLL_EXPORT void xed_decoded_inst_zero_set_mode (xed_decoded_inst_t *p, const xed_state_t *dstate)
 Zero the decode structure, but set the machine state/mode information.

xed_inst_t Template Instruction Information

XED_DLL_EXPORT unsigned int xed_inst_cpl (const xed_inst_t *p)
 Return the current privilege level (CPL).
static XED_INLINE unsigned int xed_inst_noperands (const xed_inst_t *p)
 Number of instruction operands.
static XED_INLINE const xed_operand_txed_inst_operand (const xed_inst_t *p, unsigned int i)
 Obtain a pointer to an individual operand.

xed_inst_t Template Operand Read/Written

XED_DLL_EXPORT xed_uint_t xed_operand_conditional_read (const xed_operand_t *p)
 If the operand has a conditional read (may also write).
XED_DLL_EXPORT xed_uint_t xed_operand_conditional_write (const xed_operand_t *p)
 If the operand has a conditional write (may also read).
XED_DLL_EXPORT xed_uint_t xed_operand_read (const xed_operand_t *p)
 If the operand is read, including conditional reads.
XED_DLL_EXPORT xed_uint_t xed_operand_read_and_written (const xed_operand_t *p)
 If the operand is read-and-written, conditional reads and conditional writes.
XED_DLL_EXPORT xed_uint_t xed_operand_read_only (const xed_operand_t *p)
 If the operand is read-only, including conditional reads.
static XED_INLINE xed_operand_action_enum_t xed_operand_rw (const xed_operand_t *p)
 Returns the raw R/W action.
XED_DLL_EXPORT xed_uint_t xed_operand_written (const xed_operand_t *p)
 If the operand is written, including conditional writes.
XED_DLL_EXPORT xed_uint_t xed_operand_written_only (const xed_operand_t *p)
 If the operand is written-only, including conditional writes.

xed_inst_t Template Operands Access

static XED_INLINE xed_uint32_t xed_operand_imm (const xed_operand_t *p)
static XED_INLINE xed_operand_enum_t xed_operand_name (const xed_operand_t *p)
static XED_INLINE xed_nonterminal_enum_t xed_operand_nonterminal_name (const xed_operand_t *p)
static XED_INLINE xed_operand_visibility_enum_t xed_operand_operand_visibility (const xed_operand_t *p)
XED_DLL_EXPORT void xed_operand_print (const xed_operand_t *p, char *buf, int buflen)
 Print the operand p into the buffer buf, of length buflen.
static XED_INLINE xed_reg_enum_t xed_operand_reg (const xed_operand_t *p)
 Careful with this one -- use xed_decoded_inst_get_reg()! This one is probably not what you think it is.
static XED_INLINE xed_uint_t xed_operand_template_is_register (const xed_operand_t *p)
 Careful with this one; See xed_operand_is_register().
static XED_INLINE xed_operand_type_enum_t xed_operand_type (const xed_operand_t *p)
static XED_INLINE xed_operand_width_enum_t xed_operand_width (const xed_operand_t *p)

xed_inst_t Template Operand Enum Name Classification

static XED_INLINE xed_uint_t xed_operand_is_memory_addressing_register (xed_operand_enum_t name)
 Tests the enum for inclusion in XED_OPERAND_{BASE0,BASE1,INDEX,SEG0,SEG1}.
static XED_INLINE xed_uint_t xed_operand_is_register (xed_operand_enum_t name)
 Tests the enum for inclusion in XED_OPERAND_REG0 through XED_OPERAND_REG15.

Typedefs

typedef XED_DLL_EXPORT xed_decoded_inst_s xed_decoded_inst_t
 The main container for instructions.
typedef XED_DLL_EXPORT xed_inst_s xed_inst_t
 constant information about a decoded instruction form, including the pointer to the constant operand properties xed_operand_t for this instruction form.
typedef XED_DLL_EXPORT xed_operand_s xed_operand_t
 Constant information about an individual generic operand, like an operand template, describing the operand properties.

Functions

XED_DLL_EXPORT xed_error_enum_t xed_decode (xed_decoded_inst_t *xedd, const xed_uint8_t *itext, const unsigned int bytes)
 This is the main interface to the decoder.
-


Typedef Documentation

-

- - - - -
- - - - -
typedef struct XED_DLL_EXPORT xed_decoded_inst_s xed_decoded_inst_t
-
- - - - - -
-   - - -

-The main container for instructions. -

-After decode, it holds an array of operands with derived information from decode and also valid xed_inst_t pointer which describes the operand templates and the operand order. See Decoding Instructions for API documentation.

-

- - - - -
- - - - -
typedef struct XED_DLL_EXPORT xed_inst_s xed_inst_t
-
- - - - - -
-   - - -

-constant information about a decoded instruction form, including the pointer to the constant operand properties xed_operand_t for this instruction form. -

-

-

- - - - -
- - - - -
typedef struct XED_DLL_EXPORT xed_operand_s xed_operand_t
-
- - - - - -
-   - - -

-Constant information about an individual generic operand, like an operand template, describing the operand properties. -

-See Decoding Instructions for API information.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_attribute_enum_t xed_attribute unsigned int  i  ) 
-
- - - - - -
-   - - -

-Return the i'th global attribute in a linear sequence, independent of any instruction. -

-This is used for scanning and printing all attributes.

-

- - - - -
- - - - - - - - -
XED_DLL_EXPORT unsigned int xed_attribute_max  ) 
-
- - - - - -
-   - - -

-Return the maximum number of defined attributes, independent of any instruction. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_error_enum_t xed_decode xed_decoded_inst_t xedd,
const xed_uint8_t *  itext,
const unsigned int  bytes
-
- - - - - -
-   - - -

-This is the main interface to the decoder. -

-

Parameters:
- - - - -
xedd the decoded instruction of type xed_decoded_inst_t . Mode/state sent in via xedd; See the xed_state_t
itext the pointer to the array of instruction text bytes
bytes the length of the itext input array. 1 to 15 bytes, anything more is ignored.
-
-
Returns:
xed_error_enum_t indiciating success (XED_ERROR_NONE) or failure. Note failure can be due to not enough bytes in the input array.
-The maximum instruction is 15B and XED will tell you how long the actual instruction is via an API function call xed_decoded_inst_get_length(). However, it is not always safe or advisable for XED to read 15 bytes if the decode location is at the boundary of some sort of protection limit. For example, if one is decoding near the end of a page and the XED user does not want to cause extra page faults, one might send in the number of bytes that would stop at the page boundary. In this case, XED might not be able to decode the instruction and would return an error. The XED user would then have to decide if it was safe to touch the next page and try again to decode with more bytes. Also sometimes the user process does not have read access to the next page and this allows the user to prevent XED from causing process termination by limiting the memory range that XED will access.
-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_conditionally_writes_registers const xed_decoded_inst_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_decoded_inst_dump const xed_decoded_inst_t p,
char *  buf,
int  buflen
-
- - - - - -
-   - - -

-Print out all the information about the decoded instruction to the buffer buf whose length is maximally buflen. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_att_format const xed_decoded_inst_t p,
char *  buf,
int  buflen,
xed_uint64_t  runtime_address
-
- - - - - -
-   - - -

-Print the instructions with the destination operand on the right, with several exceptions (bound, invlpga, enter, and other instructions with two immediate operands). -

-Also use instruction name suffixes to indicate operation width. Several instructions names are different as well. Recommendation: buflen must be more than 16 bytes, preferably at least 100 bytes.

Parameters:
- - - - - -
p a xed_decoded_inst_t for a decoded instruction
buf a buffer to write the disassembly in to.
buflen maximum length of the disassembly buffer
runtime_address the address of the instruction being disassembled
-
-
Returns:
Returns 0 if the disassembly fails, 1 otherwise.
-
-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_att_format_context const xed_decoded_inst_t p,
char *  buf,
int  buflen,
xed_uint64_t  runtime_address,
void *  context
-
- - - - - -
-   - - -

-Print the instructions with the destination operand on the right, with several exceptions (bound, invlpga, enter, and other instructions with two immediate operands). -

-Also use instruction name suffixes to indicate operation width. Several instructions names are different as well. buflen must be at least 100 bytes.

Parameters:
- - - - - - -
p a xed_decoded_inst_t for a decoded instruction
buf a buffer to write the disassembly in to.
buflen maximum length of the disassembly buffer
runtime_address the address of the instruction being disassembled
context A void* used only for the call back routine for symbolic disassembly if one is registered.
-
-
Returns:
Returns 0 if the disassembly fails, 1 otherwise.
-
-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_intel_format const xed_decoded_inst_t p,
char *  buf,
int  buflen,
xed_uint64_t  runtime_address
-
- - - - - -
-   - - -

-Print the instructions with the destination on the left. -

-Use PTR qualifiers for memory access widths. Recommendation: buflen must be more than 16 bytes, preferably at least 100 bytes.

Parameters:
- - - - - -
p a xed_decoded_inst_t for a decoded instruction
buf a buffer to write the disassembly in to.
buflen maximum length of the disassembly buffer
runtime_address the address of the instruction being disassembled
-
-
Returns:
Returns 0 if the disassembly fails, 1 otherwise.
-
-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_intel_format_context const xed_decoded_inst_t p,
char *  buf,
int  buflen,
xed_uint64_t  runtime_address,
void *  context
-
- - - - - -
-   - - -

-Print the instructions with the destination on the left. -

-Use PTR qualifiers for memory access widths. Recommendation: buflen must be more than 16 bytes, preferably at least 100 bytes.

Parameters:
- - - - - - -
p a xed_decoded_inst_t for a decoded instruction
buf a buffer to write the disassembly in to.
buflen maximum length of the disassembly buffer
runtime_address the address of the instruction being disassembled
context A void* used only for the call back routine for symbolic disassembly if one is registered.
-
-
Returns:
Returns 0 if the disassembly fails, 1 otherwise.
-
-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_xed_format const xed_decoded_inst_t p,
char *  buf,
int  buflen,
xed_uint64_t  runtime_address
-
- - - - - -
-   - - -

-

Parameters:
- - - - - -
p a xed_decoded_inst_t for a decoded instruction
buf a buffer to write the disassembly in to.
buflen maximum length of the disassembly buffer
runtime_address the address of the instruction being disassembled
-
-
Returns:
Returns 0 if the disassembly fails, 1 otherwise.
-
-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_uint_t xed_decoded_inst_get_address_mode const xed_decoded_inst_t p  )  [static]
-
- - - - - -
-   - - -

- -

-Definition at line 152 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_uint32_t xed_decoded_inst_get_attribute const xed_decoded_inst_t p,
xed_attribute_enum_t  attr
-
- - - - - -
-   - - -

-Returns 1 if the attribute is defined for this instruction. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint32_t xed_decoded_inst_get_attributes const xed_decoded_inst_t p  ) 
-
- - - - - -
-   - - -

-Returns the attribute bitvector. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_reg_enum_t xed_decoded_inst_get_base_reg const xed_decoded_inst_t p,
unsigned int  mem_idx
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_int32_t xed_decoded_inst_get_branch_displacement const xed_decoded_inst_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_branch_displacement_width const xed_decoded_inst_t p  ) 
-
- - - - - -
-   - - -

-Result in BYTES. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_branch_displacement_width_bits const xed_decoded_inst_t p  ) 
-
- - - - - -
-   - - -

-Result in BITS. -

-

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_category_enum_t xed_decoded_inst_get_category const xed_decoded_inst_t p  )  [static]
-
- - - - - -
-   - - -

-Return the instruction category enumeration. -

- -

-Definition at line 182 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_extension_enum_t xed_decoded_inst_get_extension const xed_decoded_inst_t p  )  [static]
-
- - - - - -
-   - - -

-Return the instruction extension enumeration. -

- -

-Definition at line 188 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_iclass_enum_t xed_decoded_inst_get_iclass const xed_decoded_inst_t p  )  [static]
-
- - - - - -
-   - - -

-Return the instruction class enumeration. -

- -

-Definition at line 194 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_iform_enum_t xed_decoded_inst_get_iform_enum const xed_decoded_inst_t p  )  [static]
-
- - - - - -
-   - - -

-Return the instruction iform enum of type xed_iform_enum_t . -

- -

-Definition at line 213 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE unsigned int xed_decoded_inst_get_iform_enum_dispatch const xed_decoded_inst_t p  )  [static]
-
- - - - - -
-   - - -

-Return the instruction zero-based iform number based on masking the corresponding xed_iform_enum_t. -

-This value is suitable for dispatching. The maximum value for a particular iclass is provided by xed_iform_max_per_iclass() . -

-Definition at line 224 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_immediate_is_signed const xed_decoded_inst_t p  ) 
-
- - - - - -
-   - - -

-Return true if the first immediate (IMM0) is signed. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_immediate_width const xed_decoded_inst_t p  ) 
-
- - - - - -
-   - - -

-Return the immediate width in BYTES. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_immediate_width_bits const xed_decoded_inst_t p  ) 
-
- - - - - -
-   - - -

-Return the immediate width in BITS. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_reg_enum_t xed_decoded_inst_get_index_reg const xed_decoded_inst_t p,
unsigned int  mem_idx
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_uint_t xed_decoded_inst_get_length const xed_decoded_inst_t p  )  [static]
-
- - - - - -
-   - - -

-Return the length of the decoded instruction in bytes. -

- -

-Definition at line 138 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_int64_t xed_decoded_inst_get_memory_displacement const xed_decoded_inst_t p,
unsigned int  mem_idx
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_memory_displacement_width const xed_decoded_inst_t p,
unsigned int  mem_idx
-
- - - - - -
-   - - -

-Result in BYTES. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_memory_displacement_width_bits const xed_decoded_inst_t p,
unsigned int  mem_idx
-
- - - - - -
-   - - -

-Result in BITS. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT unsigned int xed_decoded_inst_get_memory_operand_length const xed_decoded_inst_t p,
unsigned int  memop_idx
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_uint_t xed_decoded_inst_get_mode const xed_decoded_inst_t p  )  [static]
-
- - - - - -
-   - - -

- -

-Definition at line 148 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_uint_t xed_decoded_inst_get_old_iform const xed_decoded_inst_t p  )  [static]
-
- - - - - -
-   - - -

-DEPRECATED Return the instruction iform number. -

-The iform is zero-based number of the different instances of each iclass. -

-Definition at line 240 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - - - - - - - - - - -
static XED_INLINE xed_reg_enum_t xed_decoded_inst_get_reg const xed_decoded_inst_t p,
xed_operand_enum_t  reg_operand
[static]
-
- - - - - -
-   - - -

-Return the specified register operand. -

-The specifier is of type xed_operand_enum_t . -

-Definition at line 388 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const xed_simple_flag_t* xed_decoded_inst_get_rflags_info const xed_decoded_inst_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_scale const xed_decoded_inst_t p,
unsigned int  mem_idx
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_uint8_t xed_decoded_inst_get_second_immediate const xed_decoded_inst_t p  )  [static]
-
- - - - - -
-   - - -

-Return the second immediate. -

- -

-Definition at line 382 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_reg_enum_t xed_decoded_inst_get_seg_reg const xed_decoded_inst_t p,
unsigned int  mem_idx
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_int32_t xed_decoded_inst_get_signed_immediate const xed_decoded_inst_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_uint_t xed_decoded_inst_get_stack_address_mode const xed_decoded_inst_t p  )  [static]
-
- - - - - -
-   - - -

- -

-Definition at line 156 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint64_t xed_decoded_inst_get_unsigned_immediate const xed_decoded_inst_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_uint64_t xed_decoded_inst_get_user_data xed_decoded_inst_t p  )  [static]
-
- - - - - -
-   - - -

-Return a user data field for arbitrary use by the user after decoding. -

- -

-Definition at line 458 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE const xed_inst_t* xed_decoded_inst_inst const xed_decoded_inst_t p  )  [static]
-
- - - - - -
-   - - -

-Return the xed_inst_t structure for this instruction. -

-This is the route to the basic operands form information. -

-Definition at line 175 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_is_prefetch const xed_decoded_inst_t p  ) 
-
- - - - - -
-   - - -

-Returns true if the instruction is a prefetch. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_mem_read const xed_decoded_inst_t p,
unsigned int  mem_idx
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_mem_written const xed_decoded_inst_t p,
unsigned int  mem_idx
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_mem_written_only const xed_decoded_inst_t p,
unsigned int  mem_idx
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
static XED_INLINE unsigned int xed_decoded_inst_noperands const xed_decoded_inst_t p  )  [static]
-
- - - - - -
-   - - -

-Return the number of operands. -

- -

-Definition at line 257 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_number_of_memory_operands const xed_decoded_inst_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT unsigned int xed_decoded_inst_operand_length const xed_decoded_inst_t p,
unsigned int  operand_index
-
- - - - - -
-   - - -

-Return the length in bytes of the operand_index'th operand. -

-

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_operand_values_t* xed_decoded_inst_operands xed_decoded_inst_t p  )  [static]
-
- - - - - -
-   - - -

-Obtain a non-constant pointer to the operands. -

- -

-Definition at line 111 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE const xed_operand_values_t* xed_decoded_inst_operands_const const xed_decoded_inst_t p  )  [static]
-
- - - - - -
-   - - -

-Obtain a constant pointer to the operands. -

- -

-Definition at line 105 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_decoded_inst_set_branch_displacement xed_decoded_inst_t p,
xed_int32_t  disp,
xed_uint_t  length_bytes
-
- - - - - -
-   - - -

-Set the branch displacement using a BYTE length. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_decoded_inst_set_branch_displacement_bits xed_decoded_inst_t p,
xed_int32_t  disp,
xed_uint_t  length_bits
-
- - - - - -
-   - - -

-Set the branch displacement a BITS length. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_decoded_inst_set_immediate_signed xed_decoded_inst_t p,
xed_int32_t  x,
xed_uint_t  length_bytes
-
- - - - - -
-   - - -

-Set the signed immediate a BYTE length. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_decoded_inst_set_immediate_signed_bits xed_decoded_inst_t p,
xed_int32_t  x,
xed_uint_t  length_bits
-
- - - - - -
-   - - -

-Set the signed immediate a BITS length. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_decoded_inst_set_immediate_unsigned xed_decoded_inst_t p,
xed_uint64_t  x,
xed_uint_t  length_bytes
-
- - - - - -
-   - - -

-Set the unsigned immediate a BYTE length. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_decoded_inst_set_immediate_unsigned_bits xed_decoded_inst_t p,
xed_uint64_t  x,
xed_uint_t  length_bits
-
- - - - - -
-   - - -

-Set the unsigned immediate a BITS length. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_decoded_inst_set_memory_displacement xed_decoded_inst_t p,
xed_int64_t  disp,
xed_uint_t  length_bytes
-
- - - - - -
-   - - -

-Set the memory displacement using a BYTE length. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_decoded_inst_set_memory_displacement_bits xed_decoded_inst_t p,
xed_int64_t  disp,
xed_uint_t  length_bits
-
- - - - - -
-   - - -

-Set the memory displacement a BITS length. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_decoded_inst_set_scale xed_decoded_inst_t p,
xed_uint_t  scale
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
static XED_INLINE void xed_decoded_inst_set_user_data xed_decoded_inst_t p,
xed_uint64_t  new_value
[static]
-
- - - - - -
-   - - -

-Modify the user data field. -

- -

-Definition at line 463 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_uses_rflags const xed_decoded_inst_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_bool_t xed_decoded_inst_valid const xed_decoded_inst_t p  )  [static]
-
- - - - - -
-   - - -

-Return true if the instruction is valid. -

- -

-Definition at line 170 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_decoded_inst_zero xed_decoded_inst_t p  ) 
-
- - - - - -
-   - - -

-Zero the decode structure completely. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_decoded_inst_zero_keep_mode xed_decoded_inst_t p  ) 
-
- - - - - -
-   - - -

-Zero the decode structure, but preserve the existing machine state/mode information. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_decoded_inst_zero_keep_mode_from_operands xed_decoded_inst_t p,
const xed_operand_values_t operands
-
- - - - - -
-   - - -

-Zero the decode structure, but copy the existing machine state/mode information from the supplied operands pointer. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_decoded_inst_zero_set_mode xed_decoded_inst_t p,
const xed_state_t dstate
-
- - - - - -
-   - - -

-Zero the decode structure, but set the machine state/mode information. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint32_t xed_iform_max_per_iclass xed_iclass_enum_t  iclass  ) 
-
- - - - - -
-   - - -

-Return the maximum number of iforms for a particular iclass. -

-This function returns valid data as soon as global data is initialized. (This function does not require a decoded instruction as input).

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT unsigned int xed_inst_cpl const xed_inst_t p  ) 
-
- - - - - -
-   - - -

-Return the current privilege level (CPL). -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
static XED_INLINE xed_uint32_t xed_inst_get_attribute const xed_inst_t p,
xed_attribute_enum_t  attr
[static]
-
- - - - - -
-   - - -

-Scan for the attribute attr and return 1 if it is found, 0 otherwise. -

- -

-Definition at line 303 of file xed-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_uint32_t xed_inst_get_attributes const xed_inst_t p  )  [static]
-
- - - - - -
-   - - -

-Return the attributes bit vector. -

- -

-Definition at line 311 of file xed-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE unsigned int xed_inst_noperands const xed_inst_t p  )  [static]
-
- - - - - -
-   - - -

-Number of instruction operands. -

- -

-Definition at line 282 of file xed-inst.h.

-

- - - - -
- - - - - - - - - - - - - - - - - - -
static XED_INLINE const xed_operand_t* xed_inst_operand const xed_inst_t p,
unsigned int  i
[static]
-
- - - - - -
-   - - -

-Obtain a pointer to an individual operand. -

- -

-Definition at line 288 of file xed-inst.h.

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_operand_conditional_read const xed_operand_t p  ) 
-
- - - - - -
-   - - -

-If the operand has a conditional read (may also write). -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_operand_conditional_write const xed_operand_t p  ) 
-
- - - - - -
-   - - -

-If the operand has a conditional write (may also read). -

-

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_uint32_t xed_operand_imm const xed_operand_t p  )  [static]
-
- - - - - -
-   - - -

-

Parameters:
- - -
p an operand template, xed_operand_t. These operands represent branch displacements, memory displacements and various immediates
-
- -

-Definition at line 146 of file xed-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_uint_t xed_operand_is_memory_addressing_register xed_operand_enum_t  name  )  [static]
-
- - - - - -
-   - - -

-Tests the enum for inclusion in XED_OPERAND_{BASE0,BASE1,INDEX,SEG0,SEG1}. -

-

Parameters:
- - -
name the operand name, type xed_operand_enum_t
-
-
Returns:
1 if the operand name is for a memory addressing register operand, 0 otherwise. See also xed_operand_is_register .
- -

-Definition at line 174 of file xed-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_uint_t xed_operand_is_register xed_operand_enum_t  name  )  [static]
-
- - - - - -
-   - - -

-Tests the enum for inclusion in XED_OPERAND_REG0 through XED_OPERAND_REG15. -

-

Parameters:
- - -
name the operand name, type xed_operand_enum_t
-
-
Returns:
1 if the operand name is REG0...REG15, 0 otherwise.
-Note there are other registers for memory addressing; See xed_operand_is_memory_addressing_register . -

-Definition at line 166 of file xed-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_operand_enum_t xed_operand_name const xed_operand_t p  )  [static]
-
- - - - - -
-   - - -

- -

-Definition at line 84 of file xed-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_nonterminal_enum_t xed_operand_nonterminal_name const xed_operand_t p  )  [static]
-
- - - - - -
-   - - -

- -

-Definition at line 110 of file xed-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_operand_visibility_enum_t xed_operand_operand_visibility const xed_operand_t p  )  [static]
-
- - - - - -
-   - - -

- -

-Definition at line 90 of file xed-inst.h.

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_print const xed_operand_t p,
char *  buf,
int  buflen
-
- - - - - -
-   - - -

-Print the operand p into the buffer buf, of length buflen. -

-

Parameters:
- - - - -
p an operand template, xed_operand_t.
buf buffer that gets filled in
buflen maximum buffer length
-
-
-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_operand_read const xed_operand_t p  ) 
-
- - - - - -
-   - - -

-If the operand is read, including conditional reads. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_operand_read_and_written const xed_operand_t p  ) 
-
- - - - - -
-   - - -

-If the operand is read-and-written, conditional reads and conditional writes. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_operand_read_only const xed_operand_t p  ) 
-
- - - - - -
-   - - -

-If the operand is read-only, including conditional reads. -

-

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_reg_enum_t xed_operand_reg const xed_operand_t p  )  [static]
-
- - - - - -
-   - - -

-Careful with this one -- use xed_decoded_inst_get_reg()! This one is probably not what you think it is. -

-It is only used for hard-coded registers implicit in the instruction encoding. Most likely you want to get the xed_operand_enum_t and then look up the instruction using xed_decoded_inst_get_reg(). The hard-coded registers are also available that way.

Parameters:
- - -
p an operand template, xed_operand_t.
-
-
Returns:
the hard-wired (implicit or suppressed) registers, type xed_reg_enum_t
- -

-Definition at line 123 of file xed-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_operand_action_enum_t xed_operand_rw const xed_operand_t p  )  [static]
-
- - - - - -
-   - - -

-Returns the raw R/W action. -

-There are many cases for conditional reads and writes. -

-Definition at line 189 of file xed-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_uint_t xed_operand_template_is_register const xed_operand_t p  )  [static]
-
- - - - - -
-   - - -

-Careful with this one; See xed_operand_is_register(). -

-

Parameters:
- - -
p an operand template, xed_operand_t.
-
-
Returns:
1 if the operand template represents are register-type operand.
-Related functions: Use xed_decoded_inst_get_reg() to get the decoded name of /// the register, xed_reg_enum_t. Use xed_operand_is_register() to test xed_operand_enum_t names. -

-Definition at line 139 of file xed-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_operand_type_enum_t xed_operand_type const xed_operand_t p  )  [static]
-
- - - - - -
-   - - -

-

Returns:
The xed_operand_type_enum_t of the operand template. This is probably not what you want.
- -

-Definition at line 98 of file xed-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_operand_width_enum_t xed_operand_width const xed_operand_t p  )  [static]
-
- - - - - -
-   - - -

- -

-Definition at line 104 of file xed-inst.h.

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_operand_written const xed_operand_t p  ) 
-
- - - - - -
-   - - -

-If the operand is written, including conditional writes. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_operand_written_only const xed_operand_t p  ) 
-
- - - - - -
-   - - -

-If the operand is written-only, including conditional writes. -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/group__ENC.html b/misc/decoder_test/XED2/doc/html/group__ENC.html deleted file mode 100644 index 690616e..0000000 --- a/misc/decoder_test/XED2/doc/html/group__ENC.html +++ /dev/null @@ -1,1628 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-

Encoding Instructions


Detailed Description

-When you call xed_encode() to encode instruction you must pass:
    -
  1. an encode structure that includes a machine state ( xed_state_t )
  2. a pointer to the instruction text
  3. a length of the text array
-

-The class xed_encoder_request_t includes a xed_operand_values_t and that is where most of the information about the operands, resources etc. are stored.

-To add a LOCK, REP or REPNE prefix to a an encoder request, set it in the encoder request directly by calling xed_encoder_request_set_lock(), xed_encoder_request_set_rep() or xed_encoder_request_set_repne().

-To get nondefault width operands, during encoding, you have to call xed_encoder_request_set_effective_operand_width() .

-To set nondefault addressing widths, you must call xed_encoder_request_set_effective_address_size().

-To encode instructions you must set the following in the xed_encoder_request_t.

    -
  1. -the machine mode (machine width, addressing widths)
  2. -
  3. -the effective operand width
  4. -
  5. -the iclass
  6. -
  7. -for some instructions you need to specify prefixes (like REP, REPNE or LOCK).
  8. -
  9. -the operands:
      -
    1. -operand kind (XED_OPERAND_{AGEN,MEM0,MEM1,IMM0,IMM1,RELBR,PTR,REG0...REG15}
    2. -
    3. -operand order
      - xed_encoder_request_set_operand_order(&req,operand_index, XED_OPERAND_*); where the operand_index is a sequential index starting at zero.

      -

    4. -
    5. -operand details
        -
      1. -FOR MEMOPS: base,segment,index,scale,displacement for memops,
      2. -
      3. -FOR REGISTERS: register name
      4. -
      5. -FOR IMMEDIATES: immediate values
      6. -
      -
    6. -
    -
  10. -
-

-See An example of using the encoder for an example of using the encoder. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Encoding

XED_DLL_EXPORT xed_error_enum_t xed_encode (xed_encoder_request_t *r, xed_uint8_t *array, const unsigned int ilen, unsigned int *olen)
 This is the main interface to the encoder.
XED_DLL_EXPORT xed_error_enum_t xed_encode_nop (xed_uint8_t *array, const unsigned int ilen)
 This function will attempt to encode a NOP of exactly ilen bytes.

String Printing

XED_DLL_EXPORT void xed_encode_request_print (const xed_encoder_request_t *p, char *buf, xed_uint_t buflen)

Operand Order

XED_DLL_EXPORT xed_operand_enum_t xed_encoder_request_get_operand_order (xed_encoder_request_t *p, xed_uint_t operand_index)
static XED_INLINE xed_uint_t xed_encoder_request_operand_order_entries (xed_encoder_request_t *p)
 Retreive the number of entries in the encoder operand order array.
XED_DLL_EXPORT void xed_encoder_request_set_operand_order (xed_encoder_request_t *p, xed_uint_t operand_index, xed_operand_enum_t name)

Memory

XED_DLL_EXPORT void xed_encoder_request_set_agen (xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_set_base0 (xed_encoder_request_t *p, xed_reg_enum_t base_reg)
XED_DLL_EXPORT void xed_encoder_request_set_base1 (xed_encoder_request_t *p, xed_reg_enum_t base_reg)
XED_DLL_EXPORT void xed_encoder_request_set_index (xed_encoder_request_t *p, xed_reg_enum_t index_reg)
XED_DLL_EXPORT void xed_encoder_request_set_mem0 (xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_set_mem1 (xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_set_memory_displacement (xed_encoder_request_t *p, xed_int64_t memdisp, xed_uint_t nbytes)
XED_DLL_EXPORT void xed_encoder_request_set_memory_operand_length (xed_encoder_request_t *p, xed_uint_t nbytes)
XED_DLL_EXPORT void xed_encoder_request_set_scale (xed_encoder_request_t *p, xed_uint_t scale)
XED_DLL_EXPORT void xed_encoder_request_set_seg0 (xed_encoder_request_t *p, xed_reg_enum_t seg_reg)
XED_DLL_EXPORT void xed_encoder_request_set_seg1 (xed_encoder_request_t *p, xed_reg_enum_t seg_reg)

branches and far pointers

XED_DLL_EXPORT void xed_encoder_request_set_branch_displacement (xed_encoder_request_t *p, xed_int32_t brdisp, xed_uint_t nbytes)
XED_DLL_EXPORT void xed_encoder_request_set_ptr (xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_set_relbr (xed_encoder_request_t *p)

Primary Encode Functions

XED_DLL_EXPORT void xed_encoder_request_set_effective_address_size (xed_encoder_request_t *p, xed_uint_t width_bits)
XED_DLL_EXPORT void xed_encoder_request_set_effective_operand_width (xed_encoder_request_t *p, xed_uint_t width_bits)
XED_DLL_EXPORT void xed_encoder_request_set_reg (xed_encoder_request_t *p, xed_operand_enum_t operand, xed_reg_enum_t reg)

Prefixes

XED_DLL_EXPORT void xed_encoder_request_set_lock (xed_encoder_request_t *p)
 For locked (atomic read-modify-write) memops requests.
XED_DLL_EXPORT void xed_encoder_request_set_rep (xed_encoder_request_t *p)
 for REP(F3) and REPNE(F2) prefixe on string ops
XED_DLL_EXPORT void xed_encoder_request_set_repne (xed_encoder_request_t *p)
 for REP(F3) and REPNE(F2) prefixe on string ops

Immediates

XED_DLL_EXPORT void xed_encoder_request_set_simm (xed_encoder_request_t *p, xed_int32_t simm, xed_uint_t nbytes)
 same storage as uimm0
XED_DLL_EXPORT void xed_encoder_request_set_uimm0 (xed_encoder_request_t *p, xed_uint64_t uimm, xed_uint_t nbytes)
 Set the uimm0 using a BYTE width.
XED_DLL_EXPORT void xed_encoder_request_set_uimm0_bits (xed_encoder_request_t *p, xed_uint64_t uimm, xed_uint_t nbits)
 Set the uimm0 using a BIT width.
XED_DLL_EXPORT void xed_encoder_request_set_uimm1 (xed_encoder_request_t *p, xed_uint8_t uimm)

Initialization

XED_DLL_EXPORT void xed_encoder_request_zero (xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_zero_operand_order (xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_zero_set_mode (xed_encoder_request_t *p, const xed_state_t *dstate)

Typedefs

typedef xed_decoded_inst_s xed_encoder_request_s
typedef xed_decoded_inst_t xed_encoder_request_t

Functions

XED_DLL_EXPORT xed_iclass_enum_t xed_encoder_request_get_iclass (const xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_init_from_decode (struct xed_decoded_inst_s *d)
 Converts an decoder request to a valid encoder request.
XED_DLL_EXPORT xed_operand_values_txed_encoder_request_operands (xed_encoder_request_t *p)
XED_DLL_EXPORT const xed_operand_values_txed_encoder_request_operands_const (const xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_set_iclass (xed_encoder_request_t *p, xed_iclass_enum_t iclass)
-


Typedef Documentation

-

- - - - -
- - - - -
typedef struct xed_decoded_inst_s xed_encoder_request_s
-
- - - - - -
-   - - -

- -

-Definition at line 54 of file xed-encode.h.

-

- - - - -
- - - - -
typedef xed_decoded_inst_t xed_encoder_request_t
-
- - - - - -
-   - - -

- -

-Definition at line 56 of file xed-encode.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_error_enum_t xed_encode xed_encoder_request_t r,
xed_uint8_t *  array,
const unsigned int  ilen,
unsigned int *  olen
-
- - - - - -
-   - - -

-This is the main interface to the encoder. -

-The array should be at most 15 bytes long. The ilen parameter should indiciate this length. If the array is too short, the encoder may fail to encode the request. Failure is indicated by a return value of type xed_error_enum_t that is not equal to XED_ERROR_NONE. Otherwise, XED_ERROR_NONE is returned and the length of the encoded instruction is returned in olen.

-

Parameters:
- - - - - -
r encoder request description (xed_encoder_request_t), includes mode info
array the encoded instruction bytes are stored here
ilen the input length of array.
olen the actual length of array used for encoding
-
-
Returns:
success/failure as a xed_error_enum_t
-
-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_error_enum_t xed_encode_nop xed_uint8_t *  array,
const unsigned int  ilen
-
- - - - - -
-   - - -

-This function will attempt to encode a NOP of exactly ilen bytes. -

-If such a NOP is not encodeable, then false will be returned.

-

Parameters:
- - - -
array the encoded instruction bytes are stored here
ilen the input length array.
-
-
Returns:
success/failure as a xed_error_enum_t
-
-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encode_request_print const xed_encoder_request_t p,
char *  buf,
xed_uint_t  buflen
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_iclass_enum_t xed_encoder_request_get_iclass const xed_encoder_request_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_operand_enum_t xed_encoder_request_get_operand_order xed_encoder_request_t p,
xed_uint_t  operand_index
-
- - - - - -
-   - - -

-Retreive the name of the n'th operand in the operand order.

-

Parameters:
- - - -
[in] p xed_encoder_request_t
[in] operand_index xed_uint_t representing n'th operand position
-
-
Returns:
The xed_operand_enum_t operand name.
-
-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_init_from_decode struct xed_decoded_inst_s d  ) 
-
- - - - - -
-   - - -

-Converts an decoder request to a valid encoder request. -

-

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_uint_t xed_encoder_request_operand_order_entries xed_encoder_request_t p  )  [static]
-
- - - - - -
-   - - -

-Retreive the number of entries in the encoder operand order array. -

-

Returns:
The number of entries in the encoder operand order array
- -

-Definition at line 138 of file xed-encode.h.

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_operand_values_t* xed_encoder_request_operands xed_encoder_request_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const xed_operand_values_t* xed_encoder_request_operands_const const xed_encoder_request_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_agen xed_encoder_request_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_base0 xed_encoder_request_t p,
xed_reg_enum_t  base_reg
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_base1 xed_encoder_request_t p,
xed_reg_enum_t  base_reg
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_branch_displacement xed_encoder_request_t p,
xed_int32_t  brdisp,
xed_uint_t  nbytes
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_effective_address_size xed_encoder_request_t p,
xed_uint_t  width_bits
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_effective_operand_width xed_encoder_request_t p,
xed_uint_t  width_bits
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_iclass xed_encoder_request_t p,
xed_iclass_enum_t  iclass
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_index xed_encoder_request_t p,
xed_reg_enum_t  index_reg
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_lock xed_encoder_request_t p  ) 
-
- - - - - -
-   - - -

-For locked (atomic read-modify-write) memops requests. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_mem0 xed_encoder_request_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_mem1 xed_encoder_request_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_memory_displacement xed_encoder_request_t p,
xed_int64_t  memdisp,
xed_uint_t  nbytes
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_memory_operand_length xed_encoder_request_t p,
xed_uint_t  nbytes
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_operand_order xed_encoder_request_t p,
xed_uint_t  operand_index,
xed_operand_enum_t  name
-
- - - - - -
-   - - -

-Specify the name as the n'th operand in the operand order.

-The complication of this function is that the register operand names are specific to the position of the operand (REG0, REG1, REG2...). One can use this function for registers or one can use the xed_encoder_request_set_operand_name_reg() which takes integers instead of operand names.

-

Parameters:
- - - - -
[in] p xed_encoder_request_t
[in] operand_index xed_uint_t representing n'th operand position
[in] name xed_operand_enum_t operand name.
-
-
-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_ptr xed_encoder_request_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_reg xed_encoder_request_t p,
xed_operand_enum_t  operand,
xed_reg_enum_t  reg
-
- - - - - -
-   - - -

-Set the operands array element indexed by operand to the actual register name reg.

-

Parameters:
- - - - -
[in] p xed_encoder_request_t
[in] operand indicates which register operand storage field to use
[in] reg the actual register represented (EAX, etc.) to store.
-
-
-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_relbr xed_encoder_request_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_rep xed_encoder_request_t p  ) 
-
- - - - - -
-   - - -

-for REP(F3) and REPNE(F2) prefixe on string ops -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_repne xed_encoder_request_t p  ) 
-
- - - - - -
-   - - -

-for REP(F3) and REPNE(F2) prefixe on string ops -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_scale xed_encoder_request_t p,
xed_uint_t  scale
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_seg0 xed_encoder_request_t p,
xed_reg_enum_t  seg_reg
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_seg1 xed_encoder_request_t p,
xed_reg_enum_t  seg_reg
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_simm xed_encoder_request_t p,
xed_int32_t  simm,
xed_uint_t  nbytes
-
- - - - - -
-   - - -

-same storage as uimm0 -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_uimm0 xed_encoder_request_t p,
xed_uint64_t  uimm,
xed_uint_t  nbytes
-
- - - - - -
-   - - -

-Set the uimm0 using a BYTE width. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_uimm0_bits xed_encoder_request_t p,
xed_uint64_t  uimm,
xed_uint_t  nbits
-
- - - - - -
-   - - -

-Set the uimm0 using a BIT width. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_set_uimm1 xed_encoder_request_t p,
xed_uint8_t  uimm
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_zero xed_encoder_request_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_zero_operand_order xed_encoder_request_t p  ) 
-
- - - - - -
-   - - -

-clear the operand order array

Parameters:
- - -
[in] p xed_encoder_request_t
-
-
-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_encoder_request_zero_set_mode xed_encoder_request_t p,
const xed_state_t dstate
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/group__EXAMPLES.html b/misc/decoder_test/XED2/doc/html/group__EXAMPLES.html deleted file mode 100644 index 1ac7bc6..0000000 --- a/misc/decoder_test/XED2/doc/html/group__EXAMPLES.html +++ /dev/null @@ -1,46 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-

Examples of using XED

The source code for the examples is in the "examples" subdirectory.

-There is a makefile that will build all the examples on linux or windows.

-There are several examples:

-C++ examples:

    -
  1. xed.cpp: a decoder, encoder, image file reader, etc.
  2. xed-ex1.cpp: a simple decoder that prints the decode data structure
  3. xed-ex2.cpp: a simple decoder with different disassmebly output formats
  4. xed-ex3.cpp: an encoder (subset of the xed command line tool). Documented with "xed" on the XED command interface page.
-

-C examples:

    -
  1. xed-ex4.c: a C version of the decoder example (xed-ex2).
-

-The examples are described in the following subsections:

-

-======================================================================= -

- - -
-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/group__FLAGS.html b/misc/decoder_test/XED2/doc/html/group__FLAGS.html deleted file mode 100644 index 6d8c2fb..0000000 --- a/misc/decoder_test/XED2/doc/html/group__FLAGS.html +++ /dev/null @@ -1,807 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-

Flags Interface


Detailed Description

-There are several functions that provide more information about the flags read and written.

-The flags are available from the xed_decoded_inst_t via the xed_decoded_inst_get_rflags_info() function which returns a xed_simple_flag_t pointer. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Data Structures

struct  xed_flag_enum_s
 Associated with each flag field there can be one action. More...
union  xed_flag_set_s
 a union of flags bits More...
struct  xed_simple_flag_s
 A collection of xed_flag_action_t's and unions of read and written flags. More...

Lowest-level flag-action accessors

XED_DLL_EXPORT xed_bool_t xed_flag_action_action_invalid (const xed_flag_action_enum_t a)
 returns true if the specified action is invalid.
XED_DLL_EXPORT xed_flag_action_enum_t xed_flag_action_get_action (const xed_flag_action_t *p, unsigned int i)
 return the action
XED_DLL_EXPORT xed_flag_enum_t xed_flag_action_get_flag_name (const xed_flag_action_t *p)
 get the name of the flag
XED_DLL_EXPORT int xed_flag_action_print (const xed_flag_action_t *p, char *buf, int buflen)
 print the flag & actions
XED_DLL_EXPORT xed_bool_t xed_flag_action_read_action (xed_flag_action_enum_t a)
 test to see if the specific action is a read
XED_DLL_EXPORT xed_bool_t xed_flag_action_read_flag (const xed_flag_action_t *p)
 returns true if either action is a read
XED_DLL_EXPORT xed_bool_t xed_flag_action_write_action (xed_flag_action_enum_t a)
 test to see if a specific action is a write
XED_DLL_EXPORT xed_bool_t xed_flag_action_writes_flag (const xed_flag_action_t *p)
 returns true if either action is a write

Flag-set accessors

XED_DLL_EXPORT xed_bool_t xed_flag_set_is_subset_of (const xed_flag_set_t *p, const xed_flag_set_t *other)
 returns true if this object has a subset of the flags of the "other" object.
XED_DLL_EXPORT int xed_flag_set_print (const xed_flag_set_t *p, char *buf, int buflen)
 print the flag set in the supplied buffer

Accessing the simple flags (Mid-level access)

XED_DLL_EXPORT const xed_flag_action_txed_simple_flag_get_flag_action (const xed_simple_flag_t *p, unsigned int i)
 return the specific flag-action.
XED_DLL_EXPORT xed_bool_t xed_simple_flag_get_may_write (const xed_simple_flag_t *p)
 Indicates the flags are only conditionally written.
XED_DLL_EXPORT xed_bool_t xed_simple_flag_get_must_write (const xed_simple_flag_t *p)
 the flags always written
XED_DLL_EXPORT unsigned int xed_simple_flag_get_nflags (const xed_simple_flag_t *p)
 returns the number of flag-actions
XED_DLL_EXPORT const xed_flag_set_txed_simple_flag_get_read_flag_set (const xed_simple_flag_t *p)
 return union of bits for read flags
XED_DLL_EXPORT const xed_flag_set_txed_simple_flag_get_written_flag_set (const xed_simple_flag_t *p)
 return union of bits for written flags
XED_DLL_EXPORT int xed_simple_flag_print (const xed_simple_flag_t *p, char *buf, int buflen)
 print the flags
XED_DLL_EXPORT xed_bool_t xed_simple_flag_reads_flags (const xed_simple_flag_t *p)
 boolean test to see if flags are read, scans the flags
XED_DLL_EXPORT xed_bool_t xed_simple_flag_writes_flags (const xed_simple_flag_t *p)
 boolean test to see if flags are written, scans the flags

Typedefs

typedef XED_DLL_EXPORT xed_flag_enum_s xed_flag_action_t
 Associated with each flag field there can be one action.
typedef XED_DLL_EXPORT xed_simple_flag_s xed_simple_flag_t
 A collection of xed_flag_action_t's and unions of read and written flags.
-


Typedef Documentation

-

- - - - -
- - - - -
typedef struct XED_DLL_EXPORT xed_flag_enum_s xed_flag_action_t
-
- - - - - -
-   - - -

-Associated with each flag field there can be one action. -

-

-

- - - - -
- - - - -
typedef struct XED_DLL_EXPORT xed_simple_flag_s xed_simple_flag_t
-
- - - - - -
-   - - -

-A collection of xed_flag_action_t's and unions of read and written flags. -

-

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_flag_action_action_invalid const xed_flag_action_enum_t  a  ) 
-
- - - - - -
-   - - -

-returns true if the specified action is invalid. -

-Only the 2nd flag might be invalid.

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_flag_action_enum_t xed_flag_action_get_action const xed_flag_action_t p,
unsigned int  i
-
- - - - - -
-   - - -

-return the action -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_flag_enum_t xed_flag_action_get_flag_name const xed_flag_action_t p  ) 
-
- - - - - -
-   - - -

-get the name of the flag -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT int xed_flag_action_print const xed_flag_action_t p,
char *  buf,
int  buflen
-
- - - - - -
-   - - -

-print the flag & actions -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_flag_action_read_action xed_flag_action_enum_t  a  ) 
-
- - - - - -
-   - - -

-test to see if the specific action is a read -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_flag_action_read_flag const xed_flag_action_t p  ) 
-
- - - - - -
-   - - -

-returns true if either action is a read -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_flag_action_write_action xed_flag_action_enum_t  a  ) 
-
- - - - - -
-   - - -

-test to see if a specific action is a write -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_flag_action_writes_flag const xed_flag_action_t p  ) 
-
- - - - - -
-   - - -

-returns true if either action is a write -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_flag_set_is_subset_of const xed_flag_set_t p,
const xed_flag_set_t other
-
- - - - - -
-   - - -

-returns true if this object has a subset of the flags of the "other" object. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT int xed_flag_set_print const xed_flag_set_t p,
char *  buf,
int  buflen
-
- - - - - -
-   - - -

-print the flag set in the supplied buffer -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT const xed_flag_action_t* xed_simple_flag_get_flag_action const xed_simple_flag_t p,
unsigned int  i
-
- - - - - -
-   - - -

-return the specific flag-action. -

-Very detailed low level information

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_simple_flag_get_may_write const xed_simple_flag_t p  ) 
-
- - - - - -
-   - - -

-Indicates the flags are only conditionally written. -

-Usally MAY-writes of the flags instructions that are dependent on a REP count.

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_simple_flag_get_must_write const xed_simple_flag_t p  ) 
-
- - - - - -
-   - - -

-the flags always written -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT unsigned int xed_simple_flag_get_nflags const xed_simple_flag_t p  ) 
-
- - - - - -
-   - - -

-returns the number of flag-actions -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const xed_flag_set_t* xed_simple_flag_get_read_flag_set const xed_simple_flag_t p  ) 
-
- - - - - -
-   - - -

-return union of bits for read flags -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const xed_flag_set_t* xed_simple_flag_get_written_flag_set const xed_simple_flag_t p  ) 
-
- - - - - -
-   - - -

-return union of bits for written flags -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT int xed_simple_flag_print const xed_simple_flag_t p,
char *  buf,
int  buflen
-
- - - - - -
-   - - -

-print the flags -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_simple_flag_reads_flags const xed_simple_flag_t p  ) 
-
- - - - - -
-   - - -

-boolean test to see if flags are read, scans the flags -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_simple_flag_writes_flags const xed_simple_flag_t p  ) 
-
- - - - - -
-   - - -

-boolean test to see if flags are written, scans the flags -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/group__INIT.html b/misc/decoder_test/XED2/doc/html/group__INIT.html deleted file mode 100644 index 7f1edc0..0000000 --- a/misc/decoder_test/XED2/doc/html/group__INIT.html +++ /dev/null @@ -1,741 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-

XED initialization


Detailed Description

-This section describes the base class used for initializing the encoder / decoder requests and the XED library initialization function.

-All XED functions reside in the XED namespace. To use XED, you must include "xed-interface.h" and then use the name space:

-

    #include "xed-interface.h"
-

-If you are calling XED2 from C++, you must wrap this include:

-

    extern "C" {
-    #include "xed-interface.h"
-    }
-
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Data Structures

struct  xed_state_s
 Encapsulates machine modes for decoder/encoder requests. More...

Address width

static XED_INLINE xed_address_width_enum_t xed_state_get_address_width (const xed_state_t *p)
 return the address width
static XED_INLINE void xed_state_set_address_width (xed_state_t *p, xed_address_width_enum_t arg_addr_width)
 Set the address width.

Machine mode

static XED_INLINE xed_machine_mode_enum_t xed_state_get_machine_mode (const xed_state_t *p)
 return the machine mode
static XED_INLINE xed_bool_t xed_state_long64_mode (const xed_state_t *p)
 true iff the machine is in LONG_64 mode
static XED_INLINE xed_bool_t xed_state_mode_width_16 (const xed_state_t *p)
static XED_INLINE xed_bool_t xed_state_mode_width_32 (const xed_state_t *p)
static XED_INLINE void xed_state_set_machine_mode (xed_state_t *p, xed_machine_mode_enum_t arg_mode)
 Set the machine mode.

Stack address width

static XED_INLINE xed_address_width_enum_t xed_state_get_stack_address_width (const xed_state_t *p)
 Return the STACK address width.
static XED_INLINE void xed_state_set_stack_address_width (xed_state_t *p, xed_address_width_enum_t arg_addr_width)
 set the STACK address width

Initialization

static XED_INLINE void xed_state_init (xed_state_t *p, xed_machine_mode_enum_t arg_mmode, xed_address_width_enum_t arg_addr_width, xed_address_width_enum_t arg_stack_addr_width)
 Constructor.
static XED_INLINE void xed_state_zero (xed_state_t *p)
 clear the xed_state_t

Typedefs

typedef XED_DLL_EXPORT xed_state_s xed_state_t
 Encapsulates machine modes for decoder/encoder requests.

Functions

void XED_DLL_EXPORT xed_decode_init ()
 This is the call to initialize the XED decode tables.
void XED_DLL_EXPORT xed_encode_init ()
 This is the call to initialize the XED encode tables.
XED_DLL_EXPORT char * xed_get_version ()
 Returns a string representing XED svn commit revision and time stamp.
XED_DLL_EXPORT void xed_register_abort_function (void(*fn)(const char *msg, const char *file, int line, void *other), void *other)
 This is for registering a function to be called during XED's assert processing.
XED_DLL_EXPORT int xed_state_print (const xed_state_t *p, char *buf, int buflen)
void XED_DLL_EXPORT xed_tables_init ()
 This is the call to initialize the XED encode and decode tables.
-


Typedef Documentation

-

- - - - -
- - - - -
typedef struct XED_DLL_EXPORT xed_state_s xed_state_t
-
- - - - - -
-   - - -

-Encapsulates machine modes for decoder/encoder requests. -

-It specifies the machine operating mode as a xed_machine_mode_enum_t for decoding and encoding. For all modes other than the 64b long mode (XED_MACHINE_MODE_LONG_64), a default addressing width, and a stack addressing width must be supplied of type xed_address_width_enum_t .

-


Function Documentation

-

- - - - -
- - - - - - - - -
void XED_DLL_EXPORT xed_decode_init  ) 
-
- - - - - -
-   - - -

-This is the call to initialize the XED decode tables. -

-It must be called once before using XED.

-

- - - - -
- - - - - - - - -
void XED_DLL_EXPORT xed_encode_init  ) 
-
- - - - - -
-   - - -

-This is the call to initialize the XED encode tables. -

-It must be called once before using XED's encoder.

-

- - - - -
- - - - - - - - -
XED_DLL_EXPORT char* xed_get_version  ) 
-
- - - - - -
-   - - -

-Returns a string representing XED svn commit revision and time stamp. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_register_abort_function void(*)(const char *msg, const char *file, int line, void *other)  fn,
void *  other
-
- - - - - -
-   - - -

-This is for registering a function to be called during XED's assert processing. -

-If you do not register an abort function, then the system's abort function will be called. If your supplied function returns, then abort() will still be called.

-

Parameters:
- - - -
fn This is a function pointer for a function that should handle the assertion reporting. The function pointer points to a function that takes 4 arguments: (1) msg, the assertion message, (2) file, the file name, (3) line, the line number (as an integer), and (4) other, a void pointer that is supplied as thei 2nd argument to this registration.
other This is a void* that is passed back to your supplied function fn as its 4th argument. It can be zero if you don't need this feature. You can used this to convey whatever additional context to your assertion handler (like FILE* pointers etc.).
-
-
-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_address_width_enum_t xed_state_get_address_width const xed_state_t p  )  [static]
-
- - - - - -
-   - - -

-return the address width -

- -

-Definition at line 143 of file xed-state.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_machine_mode_enum_t xed_state_get_machine_mode const xed_state_t p  )  [static]
-
- - - - - -
-   - - -

-return the machine mode -

- -

-Definition at line 100 of file xed-state.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_address_width_enum_t xed_state_get_stack_address_width const xed_state_t p  )  [static]
-
- - - - - -
-   - - -

-Return the STACK address width. -

- -

-Definition at line 161 of file xed-state.h.

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
static XED_INLINE void xed_state_init xed_state_t p,
xed_machine_mode_enum_t  arg_mmode,
xed_address_width_enum_t  arg_addr_width,
xed_address_width_enum_t  arg_stack_addr_width
[static]
-
- - - - - -
-   - - -

-Constructor. -

-The mode, and addresses widths are enumerations that specify the number of bits. In 64b mode (XED_MACHINE_MODE_LONG_64) the address width and stack address widths are 64b (XED_ADDRESS_WIDTH_64b). In other machine modes, you must specify valid addressing widths.

-

Parameters:
- - - - - -
p the pointer to the xed_state_t type
arg_mmode the machine mode of type xed_machine_mode_enum_t
arg_addr_width the address width of type xed_address_width_enum_t (only required if not the mode is not XED_MACHINE_MODE_LONG_64)
arg_stack_addr_width the stack address width of type xed_address_width_enum_t (only required if not the mode is not XED_MACHINE_MODE_LONG_64)
-
- -

-Definition at line 77 of file xed-state.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_bool_t xed_state_long64_mode const xed_state_t p  )  [static]
-
- - - - - -
-   - - -

-true iff the machine is in LONG_64 mode -

- -

-Definition at line 107 of file xed-state.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_bool_t xed_state_mode_width_16 const xed_state_t p  )  [static]
-
- - - - - -
-   - - -

- -

-Definition at line 112 of file xed-state.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_bool_t xed_state_mode_width_32 const xed_state_t p  )  [static]
-
- - - - - -
-   - - -

- -

-Definition at line 118 of file xed-state.h.

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT int xed_state_print const xed_state_t p,
char *  buf,
int  buflen
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
static XED_INLINE void xed_state_set_address_width xed_state_t p,
xed_address_width_enum_t  arg_addr_width
[static]
-
- - - - - -
-   - - -

-Set the address width. -

- -

-Definition at line 136 of file xed-state.h.

-

- - - - -
- - - - - - - - - - - - - - - - - - -
static XED_INLINE void xed_state_set_machine_mode xed_state_t p,
xed_machine_mode_enum_t  arg_mode
[static]
-
- - - - - -
-   - - -

-Set the machine mode. -

- -

-Definition at line 126 of file xed-state.h.

-

- - - - -
- - - - - - - - - - - - - - - - - - -
static XED_INLINE void xed_state_set_stack_address_width xed_state_t p,
xed_address_width_enum_t  arg_addr_width
[static]
-
- - - - - -
-   - - -

-set the STACK address width -

- -

-Definition at line 153 of file xed-state.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE void xed_state_zero xed_state_t p  )  [static]
-
- - - - - -
-   - - -

-clear the xed_state_t -

- -

-Definition at line 88 of file xed-state.h.

-

- - - - -
- - - - - - - - -
void XED_DLL_EXPORT xed_tables_init  ) 
-
- - - - - -
-   - - -

-This is the call to initialize the XED encode and decode tables. -

-It must be called once before using XED.

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/group__OPERANDS.html b/misc/decoder_test/XED2/doc/html/group__OPERANDS.html deleted file mode 100644 index 743195f..0000000 --- a/misc/decoder_test/XED2/doc/html/group__OPERANDS.html +++ /dev/null @@ -1,2728 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-

Operand storage fields


Detailed Description

-The operand storage fields are an array of values used for decoding and for encoding. This holds derived semantic information from decode or required fields used during encoding. They are accessible from a xed_decoded_inst_t or a xed_encoder_request_t . -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Memory Addressing

XED_DLL_EXPORT xed_bool_t xed_operand_values_accesses_memory (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_reg_enum_t xed_operand_values_get_base_reg (const xed_operand_values_t *p, unsigned int memop_idx)
XED_DLL_EXPORT xed_reg_enum_t xed_operand_values_get_index_reg (const xed_operand_values_t *p, unsigned int memop_idx)
XED_DLL_EXPORT unsigned int xed_operand_values_get_memory_operand_length (const xed_operand_values_t *p, unsigned int memop_idx)
XED_DLL_EXPORT unsigned int xed_operand_values_get_scale (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_reg_enum_t xed_operand_values_get_seg_reg (const xed_operand_values_t *p, unsigned int memop_idx)
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_modrm_byte (const xed_operand_values_t *p)
 Returns true if the instruction has a MODRM byte.
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_sib_byte (const xed_operand_values_t *p)
 Returns true if the instruction has a SIB byte.
XED_DLL_EXPORT xed_bool_t xed_operand_values_memop_without_modrm (const xed_operand_values_t *p)
 Returns true if the instruction access memory but without using a MODRM byte limiting its addressing modes.
XED_DLL_EXPORT unsigned int xed_operand_values_number_of_memory_operands (const xed_operand_values_t *p)

String output

XED_DLL_EXPORT void xed_operand_values_dump (const xed_operand_values_t *ov, char *buf, int buflen)
 Dump all the information about the operands to buf.
XED_DLL_EXPORT void xed_operand_values_print_short (const xed_operand_values_t *ov, char *buf, int buflen)
 More tersely dump all the information about the operands to buf.

Branch Displacements

XED_DLL_EXPORT xed_uint8_t xed_operand_values_get_branch_displacement_byte (const xed_operand_values_t *p, unsigned int i)
XED_DLL_EXPORT xed_int32_t xed_operand_values_get_branch_displacement_int32 (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_branch_displacement_length (const xed_operand_values_t *p)
 Return the branch displacement width in bytes.
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_branch_displacement_length_bits (const xed_operand_values_t *p)
 Return the branch displacement width in bits.

Immediates

XED_DLL_EXPORT xed_uint8_t xed_operand_values_get_immediate_byte (const xed_operand_values_t *p, unsigned int i)
XED_DLL_EXPORT xed_int64_t xed_operand_values_get_immediate_int64 (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_uint_t xed_operand_values_get_immediate_is_signed (const xed_operand_values_t *p)
 Return true if the first immediate (IMM0) is signed.
XED_DLL_EXPORT xed_uint64_t xed_operand_values_get_immediate_uint64 (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_uint8_t xed_operand_values_get_second_immediate (const xed_operand_values_t *p)

Memory Displacements

XED_DLL_EXPORT xed_uint8_t xed_operand_values_get_memory_displacement_byte (const xed_operand_values_t *p, unsigned int i)
XED_DLL_EXPORT xed_int64_t xed_operand_values_get_memory_displacement_int64 (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_memory_displacement_length (const xed_operand_values_t *p)
 Return the memory displacement width in BYTES.
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_memory_displacement_length_bits (const xed_operand_values_t *p)
 Return the memory displacement width in BITS.

REP/REPNE Prefixes

XED_DLL_EXPORT xed_bool_t xed_operand_values_has_real_rep (const xed_operand_values_t *p)
 True if the instruction has a real REP prefix.
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_rep_prefix (const xed_operand_values_t *p)
 True if the instruction as a real F3 REP prefix.
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_repne_prefix (const xed_operand_values_t *p)
 True if the instruction as a real F2 REP prefix.

Initialization

XED_DLL_EXPORT void xed_operand_values_init (xed_operand_values_t *p)
 Initializes operand structure.
XED_DLL_EXPORT void xed_operand_values_init_keep_mode (xed_operand_values_t *dst, const xed_operand_values_t *src)
 Initializes dst operand structure but preserves the existing MODE/SMODE/AMODE values from the src operand structure.
XED_DLL_EXPORT void xed_operand_values_init_set_mode (xed_operand_values_t *p, const xed_state_t *dstate)
 Initializes operand structure and sets state values.

Encoding

XED_DLL_EXPORT void xed_operand_values_set_base_reg (xed_operand_values_t *p, unsigned int memop_idx, xed_reg_enum_t new_base)
XED_DLL_EXPORT void xed_operand_values_set_branch_displacement (xed_operand_values_t *p, xed_int32_t x, unsigned int len)
 Set the branch displacement using a BYTES length.
XED_DLL_EXPORT void xed_operand_values_set_branch_displacement_bits (xed_operand_values_t *p, xed_int32_t x, unsigned int len_bits)
 Set the branch displacement using a BITS length.
XED_DLL_EXPORT void xed_operand_values_set_effective_operand_width (xed_operand_values_t *p, unsigned int width)
XED_DLL_EXPORT void xed_operand_values_set_iclass (xed_operand_values_t *p, xed_iclass_enum_t iclass)
XED_DLL_EXPORT void xed_operand_values_set_immediate_signed (xed_operand_values_t *p, xed_int32_t x, unsigned int bytes)
 Set the signed immediate using a BYTES length.
XED_DLL_EXPORT void xed_operand_values_set_immediate_signed_bits (xed_operand_values_t *p, xed_int32_t x, unsigned int bits)
 Set the signed immediate using a BITS length.
XED_DLL_EXPORT void xed_operand_values_set_immediate_unsigned (xed_operand_values_t *p, xed_uint64_t x, unsigned int bytes)
 Set the unsigned immediate using a BYTE length.
XED_DLL_EXPORT void xed_operand_values_set_immediate_unsigned_bits (xed_operand_values_t *p, xed_uint64_t x, unsigned int bits)
 Set the unsigned immediate using a BIT length.
XED_DLL_EXPORT void xed_operand_values_set_index_reg (xed_operand_values_t *p, unsigned int memop_idx, xed_reg_enum_t new_index)
XED_DLL_EXPORT void xed_operand_values_set_lock (xed_operand_values_t *p)
XED_DLL_EXPORT void xed_operand_values_set_memory_displacement (xed_operand_values_t *p, xed_int64_t x, unsigned int len)
 Set the memory displacement using a BYTES length.
XED_DLL_EXPORT void xed_operand_values_set_memory_displacement_bits (xed_operand_values_t *p, xed_int64_t x, unsigned int len_bits)
 Set the memory displacement using a BITS length.
XED_DLL_EXPORT void xed_operand_values_set_memory_operand_length (xed_operand_values_t *p, unsigned int memop_length)
XED_DLL_EXPORT void xed_operand_values_set_operand_reg (xed_operand_values_t *p, xed_operand_enum_t operand_name, xed_reg_enum_t reg_name)
 Set the operand storage field entry named 'operand_name' to the register value specified by 'reg_name'.
XED_DLL_EXPORT void xed_operand_values_set_relbr (xed_operand_values_t *p)
 Indicate that we have a relative branch.
XED_DLL_EXPORT void xed_operand_values_set_scale (xed_operand_values_t *p, xed_uint_t memop_idx, xed_uint_t new_scale)
XED_DLL_EXPORT void xed_operand_values_set_seg_reg (xed_operand_values_t *p, unsigned int memop_idx, xed_reg_enum_t new_seg)
XED_DLL_EXPORT void xed_operand_values_zero_branch_displacement (xed_operand_values_t *p)
XED_DLL_EXPORT void xed_operand_values_zero_immediate (xed_operand_values_t *p)
XED_DLL_EXPORT void xed_operand_values_zero_memory_displacement (xed_operand_values_t *p)
XED_DLL_EXPORT void xed_operand_values_zero_segment_override (xed_operand_values_t *p)

Functions

XED_DLL_EXPORT xed_bool_t xed_operand_values_branch_not_taken_hint (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_bool_t xed_operand_values_branch_taken_hint (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_bool_t xed_operand_values_get_atomic (const xed_operand_values_t *p)
 Returns true if the memory operation has atomic read-modify-write semantics.
XED_DLL_EXPORT xed_bool_t xed_operand_values_get_displacement_for_memop (const xed_operand_values_t *p)
 Deprecated.
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_effective_address_width (const xed_operand_values_t *p)
 Returns The effective address width in bits: 16/32/64.
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_effective_operand_width (const xed_operand_values_t *p)
 Returns The effective operand width in bits: 16/32/64.
XED_DLL_EXPORT xed_iclass_enum_t xed_operand_values_get_iclass (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_bool_t xed_operand_values_get_long_mode (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_address_size_prefix (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_branch_displacement (const xed_operand_values_t *p)
 True if there is a branch displacement.
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_disp (const xed_operand_values_t *p)
 ALIAS for has_displacement().
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_displacement (const xed_operand_values_t *p)
 True if there is a memory or branch displacement.
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_immediate (const xed_operand_values_t *p)
 Return true if there is an immediate operand.
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_lock_prefix (const xed_operand_values_t *p)
 Returns true if the memory operatoin has a valid lock prefix.
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_memory_displacement (const xed_operand_values_t *p)
 True if there is a memory displacement.
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_operand_size_prefix (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_segment_prefix (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_bool_t xed_operand_values_is_nop (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_bool_t xed_operand_values_is_prefetch (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_reg_enum_t xed_operand_values_segment_prefix (const xed_operand_values_t *p)
 Return the segment prefix, if any, as a xed_reg_enum_t value.
XED_DLL_EXPORT xed_bool_t xed_operand_values_using_default_segment (const xed_operand_values_t *p, unsigned int i)
 Indicates if the default segment is being used.
-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_accesses_memory const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_branch_not_taken_hint const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_branch_taken_hint const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_dump const xed_operand_values_t ov,
char *  buf,
int  buflen
-
- - - - - -
-   - - -

-Dump all the information about the operands to buf. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_get_atomic const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-Returns true if the memory operation has atomic read-modify-write semantics. -

-An XCHG accessing memory is atomic with or without a LOCK prefix.

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_reg_enum_t xed_operand_values_get_base_reg const xed_operand_values_t p,
unsigned int  memop_idx
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_uint8_t xed_operand_values_get_branch_displacement_byte const xed_operand_values_t p,
unsigned int  i
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_int32_t xed_operand_values_get_branch_displacement_int32 const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_branch_displacement_length const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-Return the branch displacement width in bytes. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_branch_displacement_length_bits const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-Return the branch displacement width in bits. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_get_displacement_for_memop const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-Deprecated. -

-Compatibility function for XED0. See has_memory_displacement().

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_effective_address_width const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-Returns The effective address width in bits: 16/32/64. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_effective_operand_width const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-Returns The effective operand width in bits: 16/32/64. -

-Note this is not the same as the width of the operand! For 8 bit operations, the effective operand width is the machine mode's default width.

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_iclass_enum_t xed_operand_values_get_iclass const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_uint8_t xed_operand_values_get_immediate_byte const xed_operand_values_t p,
unsigned int  i
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_int64_t xed_operand_values_get_immediate_int64 const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_operand_values_get_immediate_is_signed const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-Return true if the first immediate (IMM0) is signed. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint64_t xed_operand_values_get_immediate_uint64 const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_reg_enum_t xed_operand_values_get_index_reg const xed_operand_values_t p,
unsigned int  memop_idx
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_get_long_mode const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_uint8_t xed_operand_values_get_memory_displacement_byte const xed_operand_values_t p,
unsigned int  i
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_int64_t xed_operand_values_get_memory_displacement_int64 const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_memory_displacement_length const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-Return the memory displacement width in BYTES. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_memory_displacement_length_bits const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-Return the memory displacement width in BITS. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT unsigned int xed_operand_values_get_memory_operand_length const xed_operand_values_t p,
unsigned int  memop_idx
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT unsigned int xed_operand_values_get_scale const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint8_t xed_operand_values_get_second_immediate const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_reg_enum_t xed_operand_values_get_seg_reg const xed_operand_values_t p,
unsigned int  memop_idx
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_address_size_prefix const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_branch_displacement const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-True if there is a branch displacement. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_disp const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-ALIAS for has_displacement(). -

-Deprecated. See has_memory_displacement() and has_branch_displacement().

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_displacement const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-True if there is a memory or branch displacement. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_immediate const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-Return true if there is an immediate operand. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_lock_prefix const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-Returns true if the memory operatoin has a valid lock prefix. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_memory_displacement const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-True if there is a memory displacement. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_modrm_byte const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-Returns true if the instruction has a MODRM byte. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_operand_size_prefix const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_real_rep const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-True if the instruction has a real REP prefix. -

-This returns false if there is no F2/F3 prefix or the F2/F3 prefix is used to refine the opcode as in some SSE operations.

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_rep_prefix const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-True if the instruction as a real F3 REP prefix. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_repne_prefix const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-True if the instruction as a real F2 REP prefix. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_segment_prefix const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_sib_byte const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-Returns true if the instruction has a SIB byte. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_init xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-Initializes operand structure. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_init_keep_mode xed_operand_values_t dst,
const xed_operand_values_t src
-
- - - - - -
-   - - -

-Initializes dst operand structure but preserves the existing MODE/SMODE/AMODE values from the src operand structure. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_init_set_mode xed_operand_values_t p,
const xed_state_t dstate
-
- - - - - -
-   - - -

-Initializes operand structure and sets state values. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_is_nop const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_is_prefetch const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_memop_without_modrm const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-Returns true if the instruction access memory but without using a MODRM byte limiting its addressing modes. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT unsigned int xed_operand_values_number_of_memory_operands const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_print_short const xed_operand_values_t ov,
char *  buf,
int  buflen
-
- - - - - -
-   - - -

-More tersely dump all the information about the operands to buf. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_reg_enum_t xed_operand_values_segment_prefix const xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-Return the segment prefix, if any, as a xed_reg_enum_t value. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_set_base_reg xed_operand_values_t p,
unsigned int  memop_idx,
xed_reg_enum_t  new_base
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_set_branch_displacement xed_operand_values_t p,
xed_int32_t  x,
unsigned int  len
-
- - - - - -
-   - - -

-Set the branch displacement using a BYTES length. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_set_branch_displacement_bits xed_operand_values_t p,
xed_int32_t  x,
unsigned int  len_bits
-
- - - - - -
-   - - -

-Set the branch displacement using a BITS length. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_set_effective_operand_width xed_operand_values_t p,
unsigned int  width
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_set_iclass xed_operand_values_t p,
xed_iclass_enum_t  iclass
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_set_immediate_signed xed_operand_values_t p,
xed_int32_t  x,
unsigned int  bytes
-
- - - - - -
-   - - -

-Set the signed immediate using a BYTES length. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_set_immediate_signed_bits xed_operand_values_t p,
xed_int32_t  x,
unsigned int  bits
-
- - - - - -
-   - - -

-Set the signed immediate using a BITS length. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_set_immediate_unsigned xed_operand_values_t p,
xed_uint64_t  x,
unsigned int  bytes
-
- - - - - -
-   - - -

-Set the unsigned immediate using a BYTE length. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_set_immediate_unsigned_bits xed_operand_values_t p,
xed_uint64_t  x,
unsigned int  bits
-
- - - - - -
-   - - -

-Set the unsigned immediate using a BIT length. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_set_index_reg xed_operand_values_t p,
unsigned int  memop_idx,
xed_reg_enum_t  new_index
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_set_lock xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_set_memory_displacement xed_operand_values_t p,
xed_int64_t  x,
unsigned int  len
-
- - - - - -
-   - - -

-Set the memory displacement using a BYTES length. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_set_memory_displacement_bits xed_operand_values_t p,
xed_int64_t  x,
unsigned int  len_bits
-
- - - - - -
-   - - -

-Set the memory displacement using a BITS length. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_set_memory_operand_length xed_operand_values_t p,
unsigned int  memop_length
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_set_operand_reg xed_operand_values_t p,
xed_operand_enum_t  operand_name,
xed_reg_enum_t  reg_name
-
- - - - - -
-   - - -

-Set the operand storage field entry named 'operand_name' to the register value specified by 'reg_name'. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_set_relbr xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-Indicate that we have a relative branch. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_set_scale xed_operand_values_t p,
xed_uint_t  memop_idx,
xed_uint_t  new_scale
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_set_seg_reg xed_operand_values_t p,
unsigned int  memop_idx,
xed_reg_enum_t  new_seg
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_operand_values_using_default_segment const xed_operand_values_t p,
unsigned int  i
-
- - - - - -
-   - - -

-Indicates if the default segment is being used. -

-

Parameters:
- - - -
[in] p the pointer to the xed_operand_values_t structure.
[in] i 0 or 1, indicating which memory operation.
-
-
Returns:
true if the memory operation is using the default segment for the associated addressing mode base register.
-
-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_zero_branch_displacement xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_zero_immediate xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_zero_memory_displacement xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_operand_values_zero_segment_override xed_operand_values_t p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/group__PRINT.html b/misc/decoder_test/XED2/doc/html/group__PRINT.html deleted file mode 100644 index bbe62df..0000000 --- a/misc/decoder_test/XED2/doc/html/group__PRINT.html +++ /dev/null @@ -1,587 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-

Printing (disassembling) Instructions


Detailed Description

-There are two kinds of printers. The legacy printers to not take a void* context parameter. The other printers take a void* context parameter that is only passed to a callback function registered by calling xed_register_disassembly_callback(). The callback is used for symbolic disassembly. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Legacy printers without context parameter

XED_DLL_EXPORT xed_bool_t xed_format (xed_syntax_enum_t syntax, xed_decoded_inst_t *xedd, char *out_buffer, int buffer_len, xed_uint64_t runtime_instruction_address)
 Disassemble the decoded instruction using the specified syntax.
XED_DLL_EXPORT xed_bool_t xed_format_att (xed_decoded_inst_t *xedd, char *out_buffer, xed_uint32_t buffer_len, xed_uint64_t runtime_instruction_address)
 Disassemble the decoded instruction using the ATT SYSV syntax.
XED_DLL_EXPORT xed_bool_t xed_format_intel (xed_decoded_inst_t *xedd, char *out_buffer, xed_uint32_t buffer_len, xed_uint64_t runtime_instruction_address)
 Disassemble the decoded instruction using the Intel syntax.
XED_DLL_EXPORT xed_bool_t xed_format_xed (xed_decoded_inst_t *xedd, char *out_buffer, xed_uint32_t buffer_len, xed_uint64_t runtime_instruction_address)
 Disassemble the decoded instruction using the XED syntax providing all operand resources (implicit, explicit, suppressed).

Printers with context parameter

XED_DLL_EXPORT xed_bool_t xed_format_att_context (xed_decoded_inst_t *xedd, char *out_buffer, xed_uint32_t buffer_len, xed_uint64_t runtime_instruction_address, void *context)
 Disassemble the decoded instruction using the ATT SYSV syntax.
XED_DLL_EXPORT xed_bool_t xed_format_context (xed_syntax_enum_t syntax, xed_decoded_inst_t *xedd, char *out_buffer, int buffer_len, xed_uint64_t runtime_instruction_address, void *context)
 Disassemble the decoded instruction using the specified syntax.
XED_DLL_EXPORT xed_bool_t xed_format_intel_context (xed_decoded_inst_t *xedd, char *out_buffer, xed_uint32_t buffer_len, xed_uint64_t runtime_instruction_address, void *context)
 Disassemble the decoded instruction using the Intel syntax.

Typedefs

typedef int XED_DLL_EXPORT(* xed_disassembly_callback_fn_t )(xed_uint64_t address, char *symbol_buffer, xed_uint32_t buffer_length, xed_uint64_t *offset, void *context)

Functions

XED_DLL_EXPORT void xed_register_disassembly_callback (xed_disassembly_callback_fn_t f)
 Register a disassembly call back function of type xed_disassembly_callback_fn_t to get called when the disassembler needs to get a symbol and offset for an address.
-


Typedef Documentation

-

- - - - -
- - - - -
typedef int XED_DLL_EXPORT(* xed_disassembly_callback_fn_t)(xed_uint64_t address, char *symbol_buffer, xed_uint32_t buffer_length, xed_uint64_t *offset, void *context)
-
- - - - - -
-   - - -

-

Parameters:
- - - - - - -
address The input address for which we want symbolic name and offset
symbol_buffer A buffer to hold the symbol name. The callback function should fill this in and terminate with a null byte.
buffer_length The maximum length of the symbol_buffer including then null
offset A pointer to a xed_uint64_t to old the offset from the provided symbol.
context This void* pointer passed to the disassembler's new interface so that the caller can identify the proper context against which to resolve the symbols. The disassembler passes this value to the callback. The legacy formatters that do not have context will pass zero for this parameter.
-
-
Returns:
0 on failure, 1 on success.
- -

-Definition at line 60 of file xed-disas.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_format xed_syntax_enum_t  syntax,
xed_decoded_inst_t xedd,
char *  out_buffer,
int  buffer_len,
xed_uint64_t  runtime_instruction_address
-
- - - - - -
-   - - -

-Disassemble the decoded instruction using the specified syntax. -

-The output buffer must be at least 25 bytes long. Returns true if disassembly proceeded without errors.

Parameters:
- - - - - - -
syntax a xed_syntax_enum_t the specifies the disassembly format
xedd a xed_decoded_inst_t for a decoded instruction
out_buffer a buffer to write the disassembly in to.
buffer_len maximum length of the disassembly buffer
runtime_instruction_address the address of the instruction being disassembled
-
-
Returns:
Returns 0 if the disassembly fails, 1 otherwise.
-
-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_format_att xed_decoded_inst_t xedd,
char *  out_buffer,
xed_uint32_t  buffer_len,
xed_uint64_t  runtime_instruction_address
-
- - - - - -
-   - - -

-Disassemble the decoded instruction using the ATT SYSV syntax. -

-The output buffer must be at least 16 bytes long. Returns true if disassembly proceeded without errors.

Parameters:
- - - - - -
xedd a xed_decoded_inst_t for a decoded instruction
out_buffer a buffer to write the disassembly in to.
buffer_len maximum length of the disassembly buffer
runtime_instruction_address the address of the instruction being disassembled
-
-
Returns:
Returns 0 if the disassembly fails, 1 otherwise.
-
-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_format_att_context xed_decoded_inst_t xedd,
char *  out_buffer,
xed_uint32_t  buffer_len,
xed_uint64_t  runtime_instruction_address,
void *  context
-
- - - - - -
-   - - -

-Disassemble the decoded instruction using the ATT SYSV syntax. -

-The output buffer must be at least 16 bytes long. Returns true if disassembly proceeded without errors.

Parameters:
- - - - - - -
xedd a xed_decoded_inst_t for a decoded instruction
out_buffer a buffer to write the disassembly in to.
buffer_len maximum length of the disassembly buffer
runtime_instruction_address the address of the instruction being disassembled
context A void* used only for the call back routine for symbolic disassembly if one is registered.
-
-
Returns:
Returns 0 if the disassembly fails, 1 otherwise.
-
-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_format_context xed_syntax_enum_t  syntax,
xed_decoded_inst_t xedd,
char *  out_buffer,
int  buffer_len,
xed_uint64_t  runtime_instruction_address,
void *  context
-
- - - - - -
-   - - -

-Disassemble the decoded instruction using the specified syntax. -

-The output buffer must be at least 25 bytes long. Returns true if disassembly proceeded without errors.

Parameters:
- - - - - - - -
syntax a xed_syntax_enum_t the specifies the disassembly format
xedd a xed_decoded_inst_t for a decoded instruction
out_buffer a buffer to write the disassembly in to.
buffer_len maximum length of the disassembly buffer
runtime_instruction_address the address of the instruction being disassembled
context A void* used only for the call back routine for symbolic disassembly if one is registered.
-
-
Returns:
Returns 0 if the disassembly fails, 1 otherwise.
-
-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_format_intel xed_decoded_inst_t xedd,
char *  out_buffer,
xed_uint32_t  buffer_len,
xed_uint64_t  runtime_instruction_address
-
- - - - - -
-   - - -

-Disassemble the decoded instruction using the Intel syntax. -

-The output buffer must be at least 16 bytes long. Returns true if disassembly proceeded without errors.

Parameters:
- - - - - -
xedd a xed_decoded_inst_t for a decoded instruction
out_buffer a buffer to write the disassembly in to.
buffer_len maximum length of the disassembly buffer
runtime_instruction_address the address of the instruction being disassembled
-
-
Returns:
Returns 0 if the disassembly fails, 1 otherwise.
-
-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_format_intel_context xed_decoded_inst_t xedd,
char *  out_buffer,
xed_uint32_t  buffer_len,
xed_uint64_t  runtime_instruction_address,
void *  context
-
- - - - - -
-   - - -

-Disassemble the decoded instruction using the Intel syntax. -

-The output buffer must be at least 16 bytes long. Returns true if disassembly proceeded without errors.

Parameters:
- - - - - - -
xedd a xed_decoded_inst_t for a decoded instruction
out_buffer a buffer to write the disassembly in to.
buffer_len maximum length of the disassembly buffer
runtime_instruction_address the address of the instruction being disassembled
context A void* used only for the call back routine for symbolic disassembly if one is registered.
-
-
Returns:
Returns 0 if the disassembly fails, 1 otherwise.
-
-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_format_xed xed_decoded_inst_t xedd,
char *  out_buffer,
xed_uint32_t  buffer_len,
xed_uint64_t  runtime_instruction_address
-
- - - - - -
-   - - -

-Disassemble the decoded instruction using the XED syntax providing all operand resources (implicit, explicit, suppressed). -

-The output buffer must be at least 25 bytes long. Returns true if disassembly proceeded without errors.

Parameters:
- - - - - -
xedd a xed_decoded_inst_t for a decoded instruction
out_buffer a buffer to write the disassembly in to.
buffer_len maximum length of the disassembly buffer
runtime_instruction_address the address of the instruction being disassembled
-
-
Returns:
Returns 0 if the disassembly fails, 1 otherwise.
-
-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_register_disassembly_callback xed_disassembly_callback_fn_t  f  ) 
-
- - - - - -
-   - - -

-Register a disassembly call back function of type xed_disassembly_callback_fn_t to get called when the disassembler needs to get a symbol and offset for an address. -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/group__REGINTFC.html b/misc/decoder_test/XED2/doc/html/group__REGINTFC.html deleted file mode 100644 index 939fd89..0000000 --- a/misc/decoder_test/XED2/doc/html/group__REGINTFC.html +++ /dev/null @@ -1,136 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-

Register Interface


Detailed Description

-There are several functions that provide more information about the GPRs and the nesting of GPRs. -

- - - - - - - - - - - - -

Functions

XED_DLL_EXPORT xed_reg_enum_t xed_get_largest_enclosing_register (xed_reg_enum_t r)
 Returns the largest enclosing register for any kind of register; This is mostly useful for GPRs.
XED_DLL_EXPORT xed_reg_class_enum_t xed_gpr_reg_class (xed_reg_enum_t r)
 Returns the specific width GPR reg class (like XED_REG_CLASS_GPR32 or XED_REG_CLASS_GPR64) for a given GPR register.
XED_DLL_EXPORT xed_reg_class_enum_t xed_reg_class (xed_reg_enum_t r)
 Returns the register class of the given input register.
-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_reg_enum_t xed_get_largest_enclosing_register xed_reg_enum_t  r  ) 
-
- - - - - -
-   - - -

-Returns the largest enclosing register for any kind of register; This is mostly useful for GPRs. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_reg_class_enum_t xed_gpr_reg_class xed_reg_enum_t  r  ) 
-
- - - - - -
-   - - -

-Returns the specific width GPR reg class (like XED_REG_CLASS_GPR32 or XED_REG_CLASS_GPR64) for a given GPR register. -

-Or XED_REG_INVALID if not a GPR.

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_reg_class_enum_t xed_reg_class xed_reg_enum_t  r  ) 
-
- - - - - -
-   - - -

-Returns the register class of the given input register. -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/group__SMALLEXAMPLES.html b/misc/decoder_test/XED2/doc/html/group__SMALLEXAMPLES.html deleted file mode 100644 index e19487c..0000000 --- a/misc/decoder_test/XED2/doc/html/group__SMALLEXAMPLES.html +++ /dev/null @@ -1,475 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-

Small Examples of using XED

Here is a minimal example of using XED from the file examples/xed-min.cpp.

-

/*BEGIN_LEGAL 
-Copyright (c) 2007, Intel Corp.
-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 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 COPYRIGHT
-OWNER OR 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 */
-
-extern "C" {
-#include "xed-interface.h"
-}
-#include <iostream>
-#include <iomanip>
-using namespace std;
-
-int main(int argc, char** argv);
-
-int main(int argc, char** argv) {
-    // initialize the XED tables -- one time.
-    xed_tables_init();
-
-    // The state of the machine -- required for decoding
-    xed_state_t dstate;
-    xed_state_zero(&dstate);
-    xed_state_init(&dstate,
-                   XED_MACHINE_MODE_LEGACY_32, 
-                   XED_ADDRESS_WIDTH_32b, 
-                   XED_ADDRESS_WIDTH_32b);
-
-    // create the decoded instruction, and fill in the machine mode (dstate)
-    xed_decoded_inst_t xedd;
-    xed_decoded_inst_zero_set_mode(&xedd, &dstate);
-        
-    // make up a simple 2Byte instruction to decode
-    unsigned int bytes = 2;
-    unsigned char itext[15] = { 0, 0};
-
-    // call decode
-    xed_error_enum_t xed_error = xed_decode(&xedd, 
-                                            STATIC_CAST(const xed_uint8_t*,itext),
-                                            bytes);
-
-    // check for errors
-    xed_bool_t okay = (xed_error == XED_ERROR_NONE);
-    if (okay) {
-        cout << "OK" << endl;
-        return 0;
-    }
-    return 1;
-    (void) argc; (void) argv; //pacify compiler
-}
-

-There is a makefile in the examples directory. Here's how to compile it from a kit:

% g++ -Ipath-to-xed2-kit/include -Ipath-to-xed2-kit/examples  -c path-to-xed2-kit/examples/xed-min.cpp
-% g++ -o xed-min xed-min.o path-to-xed2-kit/lib/libxed.a
-
where path-to-xed2-kit is where you have your include, examples and lib directories from an installed XED2 kit.

-Here is a more detailed example (examples/xed-ex1.cpp) that walks the operands much like the printing routines do for the xed_decoded_inst_t .

-

/*BEGIN_LEGAL 
-Copyright (c) 2007, Intel Corp.
-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 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 COPYRIGHT
-OWNER OR 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 */
-
-extern "C" {
-#include "xed-interface.h"
-}
-#include "xed-examples-ostreams.H"
-#include <iostream>
-#include <iomanip>
-#include <sstream>
-#include <cassert>
-using namespace std;
-
-int main(int argc, char** argv);
-
-void print_attributes(xed_decoded_inst_t* xedd) {
-    const xed_inst_t* xi = xed_decoded_inst_inst(xedd);
-    unsigned int i, nattributes  =  xed_attribute_max();
-    xed_uint32_t all_attributes = xed_inst_get_attributes(xi);
-    if (all_attributes == 0)
-        return;
-    cout << "ATTRIBUTES: ";
-    for(i=0;i<nattributes;i++) {
-        xed_attribute_enum_t attr = xed_attribute(i);
-        if (xed_inst_get_attribute(xi,attr))
-            cout << xed_attribute_enum_t2str(attr) << " ";
-    }
-    cout << endl;
-}
-
-void print_flags(xed_decoded_inst_t* xedd) {
-    unsigned int i, nflags;
-    if (xed_decoded_inst_uses_rflags(xedd)) {
-        cout << "FLAGS:" << endl;
-        const xed_simple_flag_t* rfi = xed_decoded_inst_get_rflags_info(xedd);
-        if (xed_simple_flag_reads_flags(rfi)) {
-            cout <<  "   reads-rflags ";
-        }
-        else if (xed_simple_flag_writes_flags(rfi)) {
-            //XED provides may-write and must-write information
-            if (xed_simple_flag_get_may_write(rfi)) {
-                cout << "  may-write-rflags ";
-            }
-            if (xed_simple_flag_get_must_write(rfi)) {
-                cout << "  must-write-rflags ";
-            }
-        }
-        nflags = xed_simple_flag_get_nflags(rfi);
-        for( i=0;i<nflags ;i++) {
-            const xed_flag_action_t* fa = xed_simple_flag_get_flag_action(rfi,i);
-            char buf[500];
-            xed_flag_action_print(fa,buf,500);
-            cout  <<  buf << " ";
-        }
-        cout << endl;
-        // or as as bit-union
-        const xed_flag_set_t* read_set    = xed_simple_flag_get_read_flag_set(rfi);
-        const xed_flag_set_t* written_set = xed_simple_flag_get_written_flag_set(rfi);
-        char buf[500];
-        xed_flag_set_print(read_set,buf,500);
-        cout << "  read: " << buf << endl;
-        xed_flag_set_print(written_set,buf,500);
-        cout << "  written: " << buf << endl;
-    }
-}
-
-void print_memops(xed_decoded_inst_t* xedd) {
-    unsigned int i, memops = xed_decoded_inst_number_of_memory_operands(xedd);
-    cout << "Memory Operands" << endl;
-    
-    for( i=0;i<memops ; i++)   {
-        xed_bool_t r_or_w = false;
-        cout << "  " << i << " ";
-        if ( xed_decoded_inst_mem_read(xedd,i)) {
-            cout << "read ";
-            r_or_w = true;
-        }
-        if (xed_decoded_inst_mem_written(xedd,i)) {
-            cout << "written ";
-            r_or_w = true;
-        }
-        if (!r_or_w) {
-            cout << "agen "; // LEA instructions
-        }
-        xed_reg_enum_t seg = xed_decoded_inst_get_seg_reg(xedd,i);
-        if (seg != XED_REG_INVALID) {
-            cout << "SEG= " << xed_reg_enum_t2str(seg) << " ";
-        }
-        xed_reg_enum_t base = xed_decoded_inst_get_base_reg(xedd,i);
-        if (base != XED_REG_INVALID) {
-            cout << "BASE= " << xed_reg_enum_t2str(base) << "/"
-                 <<  xed_reg_class_enum_t2str(xed_reg_class(base)) << " "; 
-        }
-        xed_reg_enum_t indx = xed_decoded_inst_get_index_reg(xedd,i);
-        if (i == 0 && indx != XED_REG_INVALID) {
-            cout << "INDEX= " << xed_reg_enum_t2str(indx)
-                 << "/" <<  xed_reg_class_enum_t2str(xed_reg_class(indx)) << " ";
-            if (xed_decoded_inst_get_scale(xedd,i) != 0) {
-                // only have a scale if the index exists.
-                cout << "SCALE= " <<  xed_decoded_inst_get_scale(xedd,i) << " ";
-            }
-        }
-        xed_uint_t disp_bits = xed_decoded_inst_get_memory_displacement_width(xedd,i);
-        if (disp_bits) {
-            cout  << "DISPLACEMENT_BYTES= " << disp_bits << " ";
-            xed_int64_t disp = xed_decoded_inst_get_memory_displacement(xedd,i);
-            cout << hex << setfill('0') << setw(16) << disp << setfill(' ') << dec;
-        }
-        cout << endl;
-    }
-    cout << "  MemopBytes = " << xed_decoded_inst_get_memory_operand_length(xedd,0) << endl;
-}
-
-void print_operands(xed_decoded_inst_t* xedd) {
-    unsigned int i, noperands;
-    cout << "Operands" << endl;
-    const xed_inst_t* xi = xed_decoded_inst_inst(xedd);
-    noperands = xed_inst_noperands(xi);
-    for( i=0; i < noperands ; i++) { 
-        const xed_operand_t* op = xed_inst_operand(xi,i);
-        xed_operand_enum_t op_name = xed_operand_name(op);
-        cout << i << " " << xed_operand_enum_t2str(op_name) << " ";
-        switch(op_name) {
-          case XED_OPERAND_AGEN:
-          case XED_OPERAND_MEM0:
-          case XED_OPERAND_MEM1:
-            // we print memops in a different function
-            break;
-          case XED_OPERAND_PTR:  // pointer (always in conjunction with a IMM0)
-          case XED_OPERAND_RELBR: { // branch displacements
-              xed_uint_t disp_bits = xed_decoded_inst_get_branch_displacement_width(xedd);
-              if (disp_bits) {
-                  cout  << "BRANCH_DISPLACEMENT_BYTES= " << disp_bits << " ";
-                  xed_int32_t disp = xed_decoded_inst_get_branch_displacement(xedd);
-                  cout << hex << setfill('0') << setw(8) << disp << setfill(' ') << dec;
-              }
-            }
-            break;
-
-          case XED_OPERAND_IMM0: { // immediates
-              xed_uint_t width = xed_decoded_inst_get_immediate_width(xedd);
-              if (xed_decoded_inst_get_immediate_is_signed(xedd)) {
-                  xed_int32_t x =xed_decoded_inst_get_signed_immediate(xedd);
-                  cout << hex << setfill('0') << setw(8) << x << setfill(' ') << dec 
-                       << '(' << width << ')';
-              }
-              else {
-                  xed_uint64_t x = xed_decoded_inst_get_unsigned_immediate(xedd); 
-                  cout << hex << setfill('0') << setw(16) << x << setfill(' ') << dec 
-                       << '(' << width << ')';
-              }
-              break;
-          }
-          case XED_OPERAND_IMM1: { // immediates
-              xed_uint8_t x = xed_decoded_inst_get_second_immediate(xedd);
-              cout << hex << setfill('0') << setw(2) << (int)x << setfill(' ') << dec;
-              break;
-          }
-
-          case XED_OPERAND_REG0:
-          case XED_OPERAND_REG1:
-          case XED_OPERAND_REG2:
-          case XED_OPERAND_REG3:
-          case XED_OPERAND_REG4:
-          case XED_OPERAND_REG5:
-          case XED_OPERAND_REG6:
-          case XED_OPERAND_REG7:
-          case XED_OPERAND_REG8:
-          case XED_OPERAND_REG9:
-          case XED_OPERAND_REG10:
-          case XED_OPERAND_REG11:
-          case XED_OPERAND_REG12:
-          case XED_OPERAND_REG13:
-          case XED_OPERAND_REG14:
-          case XED_OPERAND_REG15: {
-              xed_reg_enum_t r = xed_decoded_inst_get_reg(xedd, op_name);
-              cout << xed_operand_enum_t2str(op_name) << "=" << xed_reg_enum_t2str(r);
-              break;
-          }
-          default:
-            cout << "[Not currently printing value of field " << xed_operand_enum_t2str(op_name) << ']';
-            break;
-
-        }
-        cout << " " << xed_operand_visibility_enum_t2str(xed_operand_operand_visibility(op))
-             << " / " << xed_operand_action_enum_t2str(xed_operand_rw(op))
-             << " / " << xed_operand_width_enum_t2str(xed_operand_width(op));
-        cout << " bytes=" << xed_decoded_inst_operand_length(xedd,i);
-        cout << endl;
-    }
-}
-
-int main(int argc, char** argv) {
-    xed_state_t dstate;
-    xed_decoded_inst_t xedd;
-    int i, bytes = 0;
-    unsigned char itext[XED_MAX_INSTRUCTION_BYTES];
-    xed_bool_t long_mode = false;
-    unsigned int first_argv;
-
-    xed_tables_init();
-    xed_state_zero(&dstate);
-    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;
-        // sscanf is deprecated for MSVS8, so I'm using istringstreams
-        //sscanf(argv[i],"%x", &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 << "Attempting to decode: " << hex << setfill('0') ;
-    for(i=0;i<bytes;i++)
-        cout <<  setw(2) << static_cast<xed_uint_t>(itext[i]) << " ";
-    cout << endl << setfill(' ') << dec;
-
-    xed_error_enum_t xed_error = xed_decode(&xedd, 
-                                            REINTERPRET_CAST(const xed_uint8_t*,itext), 
-                                            bytes);
-    switch(xed_error)    {
-      case XED_ERROR_NONE:
-        break;
-      case XED_ERROR_BUFFER_TOO_SHORT:
-        cout << "Not enough bytes provided" << endl;
-        exit(1);
-      case XED_ERROR_GENERAL_ERROR:
-        cout << "Could not decode given input." << endl;
-        exit(1);
-      default:
-        cout << "Unhandled error code " << xed_error_enum_t2str(xed_error) << endl;
-        exit(1);
-    }
-        
-
-    cout << "iclass " 
-         << xed_iclass_enum_t2str(xed_decoded_inst_get_iclass(&xedd))  << "\t";
-    cout << "category " 
-         << xed_category_enum_t2str(xed_decoded_inst_get_category(&xedd))  << "\t";
-    cout << "ISA-extension " 
-         << xed_extension_enum_t2str(xed_decoded_inst_get_extension(&xedd))  << endl;
-    cout << "instruction-length " 
-         << xed_decoded_inst_get_length(&xedd) << endl;
-    cout << "effective-operand-width " 
-         << xed_operand_values_get_effective_operand_width(xed_decoded_inst_operands_const(&xedd))  << endl;   
-    cout << "effective-address-width "
-         << xed_operand_values_get_effective_address_width(xed_decoded_inst_operands_const(&xedd))  << endl; 
-    cout << "iform-enum-name " 
-         << xed_iform_enum_t2str(xed_decoded_inst_get_iform_enum(&xedd)) << endl;
-    cout << "iform-enum-name-dispatch (zero based) " 
-         << xed_decoded_inst_get_iform_enum_dispatch(&xedd) << endl;
-    cout << "iclass-max-iform-dispatch "
-         << xed_iform_max_per_iclass(xed_decoded_inst_get_iclass(&xedd))  << endl;
-
-    // operands
-    print_operands(&xedd);
-    
-    // memops
-    print_memops(&xedd);
-    
-    // flags
-    print_flags(&xedd);
-
-    // attributes
-    print_attributes(&xedd);
-    return 0;
-}
-

-Here are a few examples of running the program:

-

% ./xed-ex1 0 0
-iclass ADD      category INT_ALU        ISA-extension BASE
-instruction-length 2
-effective-operand-width 8b
-effective-address-width 32b
-Operands
-  0 MEM0  EXPLICIT / RW
-  1 REG AL EXPLICIT / R
-  2 REG EFLAGS SUPPRESSED / W
-Memory Operands
-  0 read SEG= DS BASE= EAX/REG32 
-  MemopLength = 1
-FLAGS:
-  must-write-rflags of-mod sf-mod zf-mod af-mod pf-mod cf-mod 
-  read: 
-  written: of sf zf af pf cf 
-===============================================================================
-
-% ./xed-ex1 f2 0f 58 9c 24 e0 00 00 00
-iclass ADDSD    category SSE    ISA-extension SSE2
-instruction-length 9
-effective-operand-width 32b
-effective-address-width 32b
-Operands
-  0 REG XMM3 EXPLICIT / RW
-  1 MEM0  EXPLICIT / R
-Memory Operands
-  0 read SEG= SS BASE= ESP/REG32 DISPLACEMENT= DISP32 0x000000e0
-  MemopLength = 8
-===============================================================================
-./xed-ex1 f3 90
-iclass PAUSE    category INT_ALU        ISA-extension BASE
-instruction-length 2
-effective-operand-width 32b
-effective-address-width 32b
-Operands
-Memory Operands
-  MemopLength = 0
-===============================================================================
-
-

- - -
-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/hierarchy.html b/misc/decoder_test/XED2/doc/html/hierarchy.html deleted file mode 100644 index 2677867..0000000 --- a/misc/decoder_test/XED2/doc/html/hierarchy.html +++ /dev/null @@ -1,48 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-
-
-

XED2 Class Hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically: -
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/index.html b/misc/decoder_test/XED2/doc/html/index.html deleted file mode 100644 index 68d547f..0000000 --- a/misc/decoder_test/XED2/doc/html/index.html +++ /dev/null @@ -1,8 +0,0 @@ - - -XED2 - - - - - diff --git a/misc/decoder_test/XED2/doc/html/installdox b/misc/decoder_test/XED2/doc/html/installdox deleted file mode 100755 index 9b89fe0..0000000 --- a/misc/decoder_test/XED2/doc/html/installdox +++ /dev/null @@ -1,117 +0,0 @@ -#!/usr/bin/perl - -%subst = ( ); -$quiet = 0; - -if (open(F,"search.cfg")) -{ - $_= ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_; - $_= ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_; -} - -while ( @ARGV ) { - $_ = shift @ARGV; - if ( s/^-// ) { - if ( /^l(.*)/ ) { - $v = ($1 eq "") ? shift @ARGV : $1; - ($v =~ /\/$/) || ($v .= "/"); - $_ = $v; - if ( /(.+)\@(.+)/ ) { - if ( exists $subst{$1} ) { - $subst{$1} = $2; - } else { - print STDERR "Unknown tag file $1 given with option -l\n"; - &usage(); - } - } else { - print STDERR "Argument $_ is invalid for option -l\n"; - &usage(); - } - } - elsif ( /^q/ ) { - $quiet = 1; - } - elsif ( /^\?|^h/ ) { - &usage(); - } - else { - print STDERR "Illegal option -$_\n"; - &usage(); - } - } - else { - push (@files, $_ ); - } -} - -foreach $sub (keys %subst) -{ - if ( $subst{$sub} eq "" ) - { - print STDERR "No substitute given for tag file `$sub'\n"; - &usage(); - } - elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" ) - { - print "Substituting $subst{$sub} for each occurence of tag file $sub\n"; - } -} - -if ( ! @files ) { - if (opendir(D,".")) { - foreach $file ( readdir(D) ) { - $match = ".html"; - next if ( $file =~ /^\.\.?$/ ); - ($file =~ /$match/) && (push @files, $file); - ($file =~ "tree.js") && (push @files, $file); - } - closedir(D); - } -} - -if ( ! @files ) { - print STDERR "Warning: No input files given and none found!\n"; -} - -foreach $f (@files) -{ - if ( ! $quiet ) { - print "Editing: $f...\n"; - } - $oldf = $f; - $f .= ".bak"; - unless (rename $oldf,$f) { - print STDERR "Error: cannot rename file $oldf\n"; - exit 1; - } - if (open(F,"<$f")) { - unless (open(G,">$oldf")) { - print STDERR "Error: opening file $oldf for writing\n"; - exit 1; - } - if ($oldf ne "tree.js") { - while () { - s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g; - print G "$_"; - } - } - else { - while () { - s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g; - print G "$_"; - } - } - } - else { - print STDERR "Warning file $f does not exist\n"; - } - unlink $f; -} - -sub usage { - print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n"; - print STDERR "Options:\n"; - print STDERR " -l tagfile\@linkName tag file + URL or directory \n"; - print STDERR " -q Quiet mode\n\n"; - exit 1; -} diff --git a/misc/decoder_test/XED2/doc/html/main.html b/misc/decoder_test/XED2/doc/html/main.html deleted file mode 100644 index 55cc06b..0000000 --- a/misc/decoder_test/XED2/doc/html/main.html +++ /dev/null @@ -1,191 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:08 2008 - - - - -
-
-

XED2 User Guide

-

-by Mark Charney

-

Id
xed-doc-top.txt 1597 2008-04-23 17:56:08Z mjcharne
-

-========================================================================================

-Introduction

-========================================================================================

-XED is an acronym for X86 Encoder Decoder. It is pronounced like the (British) English "z". XED2 is the current implementation of XED, in C. (XED0 is written in C++).

-XED is a software library (and associated headers) for encoding and decoding X86 (IA-32 instruction set and Intel® 64 instruction set) instructions. The decoder takes sequences of 1-15 bytes along with machine mode information and produces a data structure describing the opcode and operands, and flags. The encoder takes a similar data structure and produces a sequence of 1 to 15 bytes. XED is multi-thread safe.

-XED was designed to be very fast and extensible.

-XED compiles with the following compilers:

-

    -
  1. GNU G++ 2.96, 3.2.x, 3.3.x, 3.4.x, 4.1,x 4.2.x
  2. Microsoft Visual C++ 6 (VC98), Visual Studio 7 (.NET 2003), VS8 (Professional 2005), and VS9 (Professional 2008)
  3. Intel ICL/ICC 7.1,8.x 9.x and 10
-

-XED works with the following operating systems:

-

    -
  1. Linux, various flavors
  2. Microsoft Windows (with and without cygwin)
  3. Apple Mac OS* X
  4. FreeBSD
-

-The XED examples (Examples of using XED) also include binary image readers for Windows PECOFF, ELF and Mac OS* X MACHO binary file formats for 32b and 64b. These allow XED to be used as a simple (not symbolic) disassembler. The XED disassembler supports 3 output formats: Intel, ATT SYSV, and a more detailed internal format describing all resources read and written.

-========================================================================================

-Table of Contents

-

-========================================================================================

-Building your program using XED.

-========================================================================================

-This section describes the requirements for compiling with XED and linking the libxed.a library.

-To use XED your sources should include the top-most header file: xed-interface.h.

-Your compilation statement must include:

    -Ixedpath/include
-
where "xedpath" is the place you've unpacked the XED headers.

-Your Linux or Mac OS* X link statement must reference the libxed library:

    -lxedpath/lib/libxed.a
-

-(or link against libxed.lib for Windows).

-XED uses base types from stdint.h when GCC is the compiler. These types have the names: uint8_t, uint16_t, uint32_t, uint64_t int8_t, int16_t, int32_t, and int64_t. When the Microsoft Visual Studio compiler or the Intel compiler on Microsoft Windows are used used to compile XED, we create these types using the underlying Windows standard types. XED also defines a "uint_t" type that is shorthand for 'unsigned int".

-========================================================================================

-Terminology

-========================================================================================

-X86 instructions are 1-15 byte values. They consist of several well defined components that total at most 15 bytes:

-

    -
  1. legacy prefix bytes. Used for many purposes.
  2. REX prefix byte. Only in 64b mode. It has 4 1-bit fields: W, R, X, and B. The W bit modifies the operation width. The R, X and B fields extend the register encodings.
  3. 1-2 opcode bytes
  4. MODRM byte. Used for addressing memory, refining opcodes, specifying registers. Optional, but common. It has 3 fields: the 2-bit mod, the 3-bit reg and 3-bit "r/m" fields.
  5. SIB byte. Used for specifying memory addressing, optional. It has 3 fields: the 2-bit scale, 3-bit index and 3-bit base.
  6. Displacement bytes. Used for specifying memory offsets, optional.
  7. Immediate bytes. Optional
-

-One specific opcode byte is used as an 'escape' to indicate that two opcode bytes are required. All two-byte opcodes have this escape as their first opcode byte.

-Immediates and displacements are usually limited to 4 bytes, but there are several variants of the MOV instruction that can take 8B values. The AMD 3DNow ISA extension uses the immediate field to provide additional opcode information.

-The encodings are very byte-oriented. Bit-fields in the REX, opcode, MODRM and SIB bytes are simple and self-contained.

-The legacy prefix bytes are used for:

-

    -
  1. operand size overrides (1 prefix),
  2. address size overrides (1 prefix),
  3. atomic locking (1 prefix),
  4. default segment overrides (6 prefixes),
  5. repeating certain instructions (2 prefixes), and
  6. opcode refinement.
-

-There are 11 distinct legacy prefixes. Three of them (operand size, and the two repeat prefixes) have different meanings in different contexts; Sometimes they are used for opcode refinement and do not have their default meaning. Less frequently. two of the segment overrides can be used for conditional branch hints.

-There are also multiple ways to encode certain instructions, with the same or differing length.

-========================================================================================

-Overview of XED approach

-========================================================================================

-XED has two fundamental interfaces: encoding and decoding. Supporting these interfaces are many data structures, but the two starting points are the xed_encoder_request_t and the xed_decoded_inst_t . The xed_decoded_inst_t has more information than the xed_encoder_request_t , but both types are derived from a set of common fields called the xed_operand_values_t.

-The output of the decoder, the xed_decoded_inst_t , includes additional information that is not required for encoding, but provides more information about the instruction resources.

-The common operand fields, used by both the encoder and decoder, hold the operands and the memory addressing information.

-The decoder has an operands array that holds order of the decoded operands. This array indicates whether or not the operands are read or written.

-The encoder has an operand array where the encoder user must specify the order of the operands used for encoding.

-========================================================================================

-Instruction classes

-The xed_iclass_enum_t class describes the instruction names. The names are (mostly) taken from the Intel manual, with exceptions only for certain ambiguities. This is what is typically thought of as the instruction mnemonic. Note, XED does not typically distinguish instructions based on width unless the ISA manuals do so as well. For example, xed_iclass_enum_t's are not suffixed with "w", "l" or "q" typically. There are instructions whose xed_iclass_enum_t ends in a "B" or a "Q" (including all byte operations and certain string operations) and those names are preserved as described in the Intel programmers' reference manuals.

-Special Cases

-There are many special cases that must be accounted for in attempting to handle all the nuances of the ISA. This is an attempt to explain the nonstandard handling of certain instruction names.

-The FAR versions of 3 opcodes (really 6 distinct opcodes) are given the opcode names CALL_FAR, JMP_FAR and RET_FAR. The AMD documentation lists the far return as RETF. I call that RET_FAR to be consistent with the other far operations.

-To distinguish the SSE2 MOVSD instruction from the base string instruction MOVSD, XED calls the SSE version MOVSD_XMM.

-NOPs

-NOPs are very special. XED allows for encoding NOPs of 1 to 9 bytes through the use of the XED_ICLASS_NOP (the one byte nop), and XED_ICLASS_NOP2 ... XED_ICLASS_NOP9. These use the recommended NOP sequences from the Intel Software Developers Manual.

-The instruction 0x90 is very special in the instruction set because it gets special treatment in 64b mode. In 64b mode, 32b register writes normally zero the upper 32 bits of a 64b register. No so for 0x90. If it did zero the upper 32 bits, it would not be a NOP.

-There are two important NOP categories. XED_CATEGORY_NOP and XED_CATEGORY_WIDENOP. The XED_CATEGORY_NOP applies only to the 0x90 opcode. The WIDENOP category applies to the NOPs in the two byte table row 0F19...0F1F. The WIDENOPs take MODRM bytes, and optional SIB and displacements.

-========================================================================================

-Operands

-XED uses the operand order documented in the Intel Programmers' Reference Manual. In most cases, the first operand is a source and destination (read and written) and the second operand is just a source (read).

-For decode requests (xed_decoded_inst_t), the operands array is stored in the xed_inst_t strcture once the instruction is decoded. For encode requests, the request's operand order is stored in the xed_encoder_request_t.

-There are several types of operands:

    -
  1. registers (xed_reg_enum_t)
  2. branch displacements
  3. memory operations (which include base, index, segment and memory displacements)
  4. immediates
  5. pseudo resources (which are listed in the xed_reg_enum_t)
-

-Each operand has two associated attributes: the R/W action and a visibility. The R/W actions (xed_operand_action_enum_t) indicate whether the operand is read, written or both read-and-written, or conditionally read or written. The visibility attribute (xed_operand_visibility_enum_t) is described in the next subsection.

-The memory operation operand is really a pointer to separate fields that hold the memory operation information. The memory operation information is comprised of:

    -
  1. a segment register
  2. a base register
  3. an index register
  4. a displacement
-

-There are several important things to note:

    -
  1. There can only be two memory operations, MEM0 and MEM1.
  2. MEM0 could also be an AGEN -- a special operand that uses memory information but does not actually read memory. This is only used for the LEA instruction.
  3. There can only be an index and displacement associated with MEM0.
  4. There is just one displacement associated with the common fields. It could be associated with either the AGEN/MEM0 or with a branch or call instruction.
-

-Operand Resource Visibilities

-See xed_operand_visibility_enum_t .

-There are 3 basic types of resource visibilites:

    -
  1. EXPLICIT (EXPL),
  2. IMPLICIT (IMPL), and
  3. IMPLICIT SUPPRESSED (SUPP) (usually referred to as just "SUPPRESSED").
-

-Explicit are what you think they are: resources that are required for the encoding and for each explicit resource, there is field in the corresponding instruction encoding. The implicit and suppressed resources are a more subtle.

-SUPP operands are:

    -
  1. not used in picking an encoding,
  2. not printed in disassembly,
  3. not represented using operand bits in the encoding.
-

-IMPL operands are:

    -
  1. used in picking an encoding,
  2. expressed in disassembly, and
  3. not represented using operand bits in the encoding (like SUPP).
-

-The implicit resources are required for selecting an encoding, but do not show up as a specific field in the instruction representation. Implicit resources do show up in a conventional instruction disassembly. In the IA-32 instruction set or Intel64 instruction set, there are many instructions that use EAX or RAX implicitly, for example. Sometimes the CL or RCX register is implicit. Also, some instructions have an implicit 1 immediate. The opcode you chose fixes your choice of implicit register or immediate.

-The suppressed resources are a form of implicit resource, but they are resources not required for encoding. The suppressed operands are not normally displayed in a conventional disassembly. The suppressed operands are emitted by the decoder but are not used when encoding. They are ignored by the encoder. Examples are the stack pointer for PUSH and POP operations. There are many others, like pseudo resources.

-The explicit and implicit resources are expressed resources -- they show up in disassembly and are required for encoding. The suppressed resources are considered a kind of implicit resources that are not expressed in ATT System V or Intel disassembly formats.

-The suppressed operands are always after the implicit and explicit operands in the operand order.

-Pseudo Resources

-Some instructions reference machine registers or perform interesting operations that we need to represent. For example, the IDTR and GDTR are represented as pseudo resources. Operations that pop the x87 floating point register stack can have a X87POP or X87POP2 "register" to indicate if the x87 register stack is popped once or twice. These are part of the xed_reg_enum_t.

-Immediates and Displacements

-Using the API functions for setting immediates, memory displacements and branch displacements. Immediates and Displacements are stored in normal integers internally, but they are stored endian swapped and left justified. The API functions take care of all the endian swapping and positioning so you don't have to worry about that detail.

-Immediates and displacements are different things in the ISA. They can be 1, 2, 4 or 8 bytes. Branch displacements (1, 2 or 4 bytes) and Memory displacements (1, 2, 4 or 8 bytes) refer to the signed constants that are used for relative distances or memory "offsets" from a base register (including the instruction pointer) or start of a memory region.

-Immediates are signed or unsigned and are used for numerical computations, shift distances, and also hold things like segment selectors for far pointers for certain jump or call instructions.

-There is also a second 1B immedate used only for the ENTER instruction.

-XED will try to use the shortest allowed width for a displacement or immediate. You can control XED's selection of allowed widths using a notion of "legal widths". A "legal width" is a binary number where each bit represents a legal desired width. For example, when you have a valid base register in 32 or 64b addressing, and a displacement is required, your displacement must be either 1 byte or 4 bytes long. This is expressed by OR'ing 1 and 4 together to get 0101 (base 2) or 5 (base 10).

-If a four byte displacement was required, but the value was representable in fewer than four bytes, then the legal width should be set to 0100 (base 2) or 4 (base 10).

-========================================================================================

-API Reference

-========================================================================================

-

    -
  • INIT Initialization
  • DEC Decoding instructions
  • ENC Encoding instructions
  • OPERANDS Operand storage fields
  • PRINT Printing (disassembling) instructions
  • REGINTFC Register interface functions
  • FLAGS Flags interface functions
  • Examples Examples
-

-========================================================================================

-Porting from XED0 to XED2

-========================================================================================

-XED0 was written in C++, and XED2 is written in C. The port from XED0 to XED2 is relatively, but not completely, mechanical.

-Generally speaking, one takes the name of a class in XED0 and prepends it to the name of the XED0 method function to get the XED2 function.

-If you are using C++, when you include the "xed-interface.h" header, you must wrap it:

extern "C" {
-#include "xed-interface.h"
-}
-
The wrapping is obviously not required for C users. All the headers now have the .h extension instead of .H.

-In XED0, there was a xed_common_fields_t class that was common to encode and decode. In XED2, the shared data structure is an array of xed_operand_values_t elements. The elements are basically integers accessible via the Operand storage fields interface.

-In XED0 there was a "xed_decoded_resource_t" type. This type has been removed and is subsumed by the xed_operand_t operands array associated with each decoded instruction. The operands array is accessed from the xed_inst_t and the xed_inst_operand() function. Encode requests now have a separate encode order array updated by the xed_encoder_request_set_operand_order function.

-If you used XED0's ostream operators they are gone. They were just simple wrappers for my "enum2str()" functions which continue to exist. So

xed_iclass_t iclass = xedd->get_iclass();
-cout << iclass << endl;
-
becomes
xed_iclass_enum_t iclass = xed_decoded_inst_get_iclass(xedd);
-cout << xed_iclass_enum_t2str(iclass) << endl;
-

-Here are some common changes one has to make.

-

            XED:: -> (nothing)
-            xed_iclass_t -> xed_iclass_enum_t 
-            xedregs_t -> xed_reg_enum_t
-            XEDICLASS_ -> XED_ICLASS_
-            XEDREG_ -> XED_REG_
-            using namespace XED;  -> (remove)
-            #include "xed-interface.H" -> extern "C" {\n#include "xed-interface.h"\n}\n
-            #include "xed-iclass.H" -> extern "C" {\n#include "xed-iclass-enum.h"\n}\n
-            #include "xed-category.H" -> extern "C" {\n#include "xed-category-enum.h"\n}\n
-            #include "xed-extension.H" -> extern "C" {\n#include "xed-extension-enum.h"\n}\n
-            xedd->xed_get_base_reg(0) -> xed_decoded_inst_get_base_reg(xedd,0);
-            xedd->xed_get_index_reg(0) -> xed_decoded_inst_get_index_reg(xedd,0);
-            the XED_ROLE_* are generally replaced with corresponding XED_OPERAND_* but now
-               instead of XED_ROLE_NORMAL you specify which register operand.
-

-Far direct pointer storage has changed. In XED0, far direct pointers were stored in a 6B immediate on IA32. In XED2 there is a 4B displacement and 2B segment selector stored in the immediate.

-Encoding immediates, branch displacements and memory displacements: In XED0, there were function calls for building a xed_immdis_t that incorporated a legal_widths bit mask. In XED2, while I support a C implementation of xed_immdis_t, I discourage its use. Instead, there are functions for finding the shortest legal width of a signed or unsigned number (xed_shortest_width_signed, xed_shortest_width_unsigned). Using that length, you can then call xed_encoder_request_set_memory_displacement, xed_encoder_request_set_branch_displacement, xed_encoder_request_set_simm, xed_encoder_request_set_uimm0, or xed_encoder_request_set_uimm1 .

-========================================================================================

-Questions? Bugs?

-========================================================================================

-Send bugs and questions to mark.charney@intel.com. Complete bug reports that are easy to reproduce are fixed faster, so try to provide as much information as possible. Include: kit number, your OS version, compiler version. Try to reproduce the problem in a simple example that you can send us.

-========================================================================================

-Disclaimer and Legal Information

-========================================================================================

-The information in this manual is subject to change without notice and Intel Corporation assumes no responsibility or liability for any errors or inaccuracies that may appear in this document or any software that may be provided in association with this document. This document and the software described in it are furnished under license and may only be used or copied in accordance with the terms of the license. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted by this document. The information in this document is provided in connection with Intel products and should not be construed as a commitment by Intel Corporation.

-EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel products are not intended for use in medical, life saving, life sustaining, critical control or safety systems, or in nuclear facility applications.

-Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompat- ibilities arising from future changes to them.

-The software described in this document may contain software defects which may cause the product to deviate from published specifications. Current characterized software defects are available on request.

-Intel, the Intel logo, Intel SpeedStep, Intel NetBurst, Intel NetStructure, MMX, Intel386, Intel486, Celeron, Intel Centrino, Intel Xeon, Intel XScale, Itanium, Pentium, Pentium II Xeon, Pentium III Xeon, Pentium M, and VTune are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

-Other names and brands may be claimed as the property of others.

-Copyright 2004-2007, Intel Corporation.


Generated on Thu May 15 03:15:08 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/modules.html b/misc/decoder_test/XED2/doc/html/modules.html deleted file mode 100644 index df4b40c..0000000 --- a/misc/decoder_test/XED2/doc/html/modules.html +++ /dev/null @@ -1,41 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
-

XED2 Modules

Here is a list of all modules: -
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/search.idx b/misc/decoder_test/XED2/doc/html/search.idx deleted file mode 100644 index 9c7af7e..0000000 Binary files a/misc/decoder_test/XED2/doc/html/search.idx and /dev/null differ diff --git a/misc/decoder_test/XED2/doc/html/search.php b/misc/decoder_test/XED2/doc/html/search.php deleted file mode 100644 index b8185c2..0000000 --- a/misc/decoder_test/XED2/doc/html/search.php +++ /dev/null @@ -1,382 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
    -
  • Main Page
  • -
  • Modules
  • -
  • Data Structures
  • -
  • Files
  • -
  • -
    - - - - -1 document matching your query."; - } - else // $num>1 - { - return "Found $num documents matching your query. Showing best matches first."; - } -} - -function report_matches() -{ - return "Matches: "; -} -function end_form($value) -{ - echo " \n \n
    \n
    \n
  • \n
\n
\n"; -} - -function readInt($file) -{ - $b1 = ord(fgetc($file)); $b2 = ord(fgetc($file)); - $b3 = ord(fgetc($file)); $b4 = ord(fgetc($file)); - return ($b1<<24)|($b2<<16)|($b3<<8)|$b4; -} - -function readString($file) -{ - $result=""; - while (ord($c=fgetc($file))) $result.=$c; - return $result; -} - -function readHeader($file) -{ - $header =fgetc($file); $header.=fgetc($file); - $header.=fgetc($file); $header.=fgetc($file); - return $header; -} - -function computeIndex($word) -{ - // Fast string hashing - //$lword = strtolower($word); - //$l = strlen($lword); - //for ($i=0;$i<$l;$i++) - //{ - // $c = ord($lword{$i}); - // $v = (($v & 0xfc00) ^ ($v << 6) ^ $c) & 0xffff; - //} - //return $v; - - // Simple hashing that allows for substring search - if (strlen($word)<2) return -1; - // high char of the index - $hi = ord($word{0}); - if ($hi==0) return -1; - // low char of the index - $lo = ord($word{1}); - if ($lo==0) return -1; - // return index - return $hi*256+$lo; -} - -function search($file,$word,&$statsList) -{ - $index = computeIndex($word); - if ($index!=-1) // found a valid index - { - fseek($file,$index*4+4); // 4 bytes per entry, skip header - $index = readInt($file); - if ($index) // found words matching the hash key - { - $start=sizeof($statsList); - $count=$start; - fseek($file,$index); - $w = readString($file); - while ($w) - { - $statIdx = readInt($file); - if ($word==substr($w,0,strlen($word))) - { // found word that matches (as substring) - $statsList[$count++]=array( - "word"=>$word, - "match"=>$w, - "index"=>$statIdx, - "full"=>strlen($w)==strlen($word), - "docs"=>array() - ); - } - $w = readString($file); - } - $totalHi=0; - $totalFreqHi=0; - $totalFreqLo=0; - for ($count=$start;$count $idx, - "freq" => $freq>>1, - "rank" => 0.0, - "hi" => $freq&1 - ); - if ($freq&1) // word occurs in high priority doc - { - $totalHi++; - $totalFreqHi+=$freq*$multiplier; - } - else // word occurs in low priority doc - { - $totalFreqLo+=$freq*$multiplier; - } - } - // read name and url info for the doc - for ($i=0;$i<$numDocs;$i++) - { - fseek($file,$docInfo[$i]["idx"]); - $docInfo[$i]["name"]=readString($file); - $docInfo[$i]["url"]=readString($file); - } - $statInfo["docs"]=$docInfo; - } - $totalFreq=($totalHi+1)*$totalFreqLo + $totalFreqHi; - for ($count=$start;$count$key, - "name"=>$di["name"], - "rank"=>$rank - ); - } - $docs[$key]["words"][] = array( - "word"=>$wordInfo["word"], - "match"=>$wordInfo["match"], - "freq"=>$di["freq"] - ); - } - } - return $docs; -} - -function filter_results($docs,&$requiredWords,&$forbiddenWords) -{ - $filteredDocs=array(); - while (list ($key, $val) = each ($docs)) - { - $words = &$docs[$key]["words"]; - $copy=1; // copy entry by default - if (sizeof($requiredWords)>0) - { - foreach ($requiredWords as $reqWord) - { - $found=0; - foreach ($words as $wordInfo) - { - $found = $wordInfo["word"]==$reqWord; - if ($found) break; - } - if (!$found) - { - $copy=0; // document contains none of the required words - break; - } - } - } - if (sizeof($forbiddenWords)>0) - { - foreach ($words as $wordInfo) - { - if (in_array($wordInfo["word"],$forbiddenWords)) - { - $copy=0; // document contains a forbidden word - break; - } - } - } - if ($copy) $filteredDocs[$key]=$docs[$key]; - } - return $filteredDocs; -} - -function compare_rank($a,$b) -{ - if ($a["rank"] == $b["rank"]) - { - return 0; - } - return ($a["rank"]>$b["rank"]) ? -1 : 1; -} - -function sort_results($docs,&$sorted) -{ - $sorted = $docs; - usort($sorted,"compare_rank"); - return $sorted; -} - -function report_results(&$docs) -{ - echo "\n"; - echo " \n"; - echo " \n"; - echo " \n"; - $numDocs = sizeof($docs); - if ($numDocs==0) - { - echo " \n"; - echo " \n"; - echo " \n"; - } - else - { - echo " \n"; - echo " \n"; - echo " \n"; - $num=1; - foreach ($docs as $doc) - { - echo " \n"; - echo " "; - echo "\n"; - echo " \n"; - echo " \n"; - echo " \n"; - $num++; - } - } - echo "

".search_results()."

".matches_text(0)."
".matches_text($numDocs); - echo "\n"; - echo "
$num.".$doc["name"]."
".report_matches()." "; - foreach ($doc["words"] as $wordInfo) - { - $word = $wordInfo["word"]; - $matchRight = substr($wordInfo["match"],strlen($word)); - echo "$word$matchRight(".$wordInfo["freq"].") "; - } - echo "
\n"; -} - -function main() -{ - if(strcmp('4.1.0', phpversion()) > 0) - { - die("Error: PHP version 4.1.0 or above required!"); - } - if (!($file=fopen("search.idx","rb"))) - { - die("Error: Search index file could NOT be opened!"); - } - if (readHeader($file)!="DOXS") - { - die("Error: Header of index file is invalid!"); - } - $query=""; - if (array_key_exists("query", $_GET)) - { - $query=$_GET["query"]; - } - end_form($query); - echo " \n
\n"; - $results = array(); - $requiredWords = array(); - $forbiddenWords = array(); - $foundWords = array(); - $word=strtok($query," "); - while ($word) // for each word in the search query - { - if (($word{0}=='+')) { $word=substr($word,1); $requiredWords[]=$word; } - if (($word{0}=='-')) { $word=substr($word,1); $forbiddenWords[]=$word; } - if (!in_array($word,$foundWords)) - { - $foundWords[]=$word; - search($file,strtolower($word),$results); - } - $word=strtok(" "); - } - $docs = array(); - combine_results($results,$docs); - // filter out documents with forbidden word or that do not contain - // required words - $filteredDocs = filter_results($docs,$requiredWords,$forbiddenWords); - // sort the results based on rank - $sorted = array(); - sort_results($filteredDocs,$sorted); - // report results to the user - report_results($sorted); - echo "
\n"; - fclose($file); -} - -main(); - - -?> -
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/structxed__decoded__inst__s.html b/misc/decoder_test/XED2/doc/html/structxed__decoded__inst__s.html deleted file mode 100644 index 884a90d..0000000 --- a/misc/decoder_test/XED2/doc/html/structxed__decoded__inst__s.html +++ /dev/null @@ -1,388 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed_decoded_inst_s Struct Reference
- -[Decoding Instructions] -

#include <xed-decoded-inst.h> -

-


Detailed Description

-The main container for instructions. -

-After decode, it holds an array of operands with derived information from decode and also valid xed_inst_t pointer which describes the operand templates and the operand order. See Decoding Instructions for API documentation. -

- -

-Definition at line 61 of file xed-decoded-inst.h. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Data Fields

union {
   const xed_uint8_t *   _dec
   xed_uint8_t *   _enc
_byte_array
xed_uint8_t _decoded_length
const xed_inst_t_inst
 when we decode an instruction, we set the _inst and get the properites of that instruction here.
xed_uint8_t _n_operand_order
xed_uint8_t _operand_order [XED_ENCODE_ORDER_MAX_OPERANDS]
 Used for encode operand ordering. Not set by decode.
xed_operand_values_t _operands [XED_OPERAND_LAST]
 The operand storage fields discovered during decoding. This same array is used by encode.
union {
   xed_decoder_vars_s *   dv
   xed_encoder_vars_s *   ev
   xed_uint64_t   user_data
u
-


Field Documentation

-

- - - - -
- - - - -
union { ... } _byte_array
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - -
const xed_uint8_t* _dec
-
- - - - - -
-   - - -

- -

-Definition at line 80 of file xed-decoded-inst.h.

-

- - - - -
- - - - -
xed_uint8_t _decoded_length
-
- - - - - -
-   - - -

- -

-Definition at line 68 of file xed-decoded-inst.h.

-

- - - - -
- - - - -
xed_uint8_t* _enc
-
- - - - - -
-   - - -

- -

-Definition at line 79 of file xed-decoded-inst.h.

-

- - - - -
- - - - -
const xed_inst_t* _inst
-
- - - - - -
-   - - -

-when we decode an instruction, we set the _inst and get the properites of that instruction here. -

-This also points to the operands template array. -

-Definition at line 75 of file xed-decoded-inst.h.

-

- - - - -
- - - - -
xed_uint8_t _n_operand_order
-
- - - - - -
-   - - -

- -

-Definition at line 70 of file xed-decoded-inst.h.

-

- - - - -
- - - - -
xed_uint8_t _operand_order[XED_ENCODE_ORDER_MAX_OPERANDS]
-
- - - - - -
-   - - -

-Used for encode operand ordering. Not set by decode. -

- -

-Definition at line 66 of file xed-decoded-inst.h.

-

- - - - -
- - - - -
xed_operand_values_t _operands[XED_OPERAND_LAST]
-
- - - - - -
-   - - -

-The operand storage fields discovered during decoding. This same array is used by encode. -

- -

-Definition at line 63 of file xed-decoded-inst.h.

-

- - - - -
- - - - -
struct xed_decoder_vars_s* dv
-
- - - - - -
-   - - -

- -

-Definition at line 90 of file xed-decoded-inst.h.

-

- - - - -
- - - - -
struct xed_encoder_vars_s* ev
-
- - - - - -
-   - - -

- -

-Definition at line 91 of file xed-decoded-inst.h.

-

- - - - -
- - - - -
union { ... } u
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - -
xed_uint64_t user_data
-
- - - - - -
-   - - -

- -

-Definition at line 89 of file xed-decoded-inst.h.

-


The documentation for this struct was generated from the following file: -
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/structxed__flag__enum__s.html b/misc/decoder_test/XED2/doc/html/structxed__flag__enum__s.html deleted file mode 100644 index d4621ae..0000000 --- a/misc/decoder_test/XED2/doc/html/structxed__flag__enum__s.html +++ /dev/null @@ -1,107 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed_flag_enum_s Struct Reference
- -[Flags Interface] -

#include <xed-flags.h> -

-


Detailed Description

-Associated with each flag field there can be one action. -

- -

-Definition at line 93 of file xed-flags.h. - - - - - - -

Data Fields

xed_flag_action_enum_t action
xed_flag_enum_t flag
-


Field Documentation

-

- - - - -
- - - - -
xed_flag_action_enum_t action
-
- - - - - -
-   - - -

- -

-Definition at line 96 of file xed-flags.h.

-

- - - - -
- - - - -
xed_flag_enum_t flag
-
- - - - - -
-   - - -

- -

-Definition at line 94 of file xed-flags.h.

-


The documentation for this struct was generated from the following file: -
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/structxed__immdis__s.html b/misc/decoder_test/XED2/doc/html/structxed__immdis__s.html deleted file mode 100644 index d02eac7..0000000 --- a/misc/decoder_test/XED2/doc/html/structxed__immdis__s.html +++ /dev/null @@ -1,185 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed_immdis_s Struct Reference

#include <xed-immdis.h> -

-


Detailed Description

-Stores immediates and displacements for the encoder & decoder. -

- -

-Definition at line 71 of file xed-immdis.h. - - - - - - - - - - - - -

Data Fields

unsigned int currently_used_space:4
xed_bool_t immediate_is_unsigned: 1
unsigned int max_allocated_space:4
xed_bool_t present: 1
xed_immdis_values_t value
-


Field Documentation

-

- - - - -
- - - - -
unsigned int currently_used_space
-
- - - - - -
-   - - -

- -

-Definition at line 73 of file xed-immdis.h.

-

- - - - -
- - - - -
xed_bool_t immediate_is_unsigned
-
- - - - - -
-   - - -

- -

-Definition at line 76 of file xed-immdis.h.

-

- - - - -
- - - - -
unsigned int max_allocated_space
-
- - - - - -
-   - - -

- -

-Definition at line 74 of file xed-immdis.h.

-

- - - - -
- - - - -
xed_bool_t present
-
- - - - - -
-   - - -

- -

-Definition at line 75 of file xed-immdis.h.

-

- - - - -
- - - - -
union xed_immdis_values_t value
-
- - - - - -
-   - - -

- -

-Definition at line 72 of file xed-immdis.h.

-


The documentation for this struct was generated from the following file: -
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/structxed__inst__s.html b/misc/decoder_test/XED2/doc/html/structxed__inst__s.html deleted file mode 100644 index 6f3ba37..0000000 --- a/misc/decoder_test/XED2/doc/html/structxed__inst__s.html +++ /dev/null @@ -1,377 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed_inst_s Struct Reference
- -[Decoding Instructions] -

#include <xed-inst.h> -

-


Detailed Description

-constant information about a decoded instruction form, including the pointer to the constant operand properties xed_operand_t for this instruction form. -

- -

-Definition at line 222 of file xed-inst.h. - - - - - - - - - - - - - - - - - - - - - - - - - - -

Data Fields

xed_uint32_t _attributes
xed_category_enum_t _category
xed_uint8_t _cpl
xed_extension_enum_t _extension
xed_bool_t _flag_complex
xed_uint16_t _flag_info_index
xed_iclass_enum_t _iclass
xed_uint8_t _iform
xed_iform_enum_t _iform_enum
xed_uint8_t _noperands
xed_uint32_t _operand_base
xed_operand_bitvec_t _operand_bitvec
-


Field Documentation

-

- - - - -
- - - - -
xed_uint32_t _attributes
-
- - - - - -
-   - - -

- -

-Definition at line 239 of file xed-inst.h.

-

- - - - -
- - - - -
xed_category_enum_t _category
-
- - - - - -
-   - - -

- -

-Definition at line 224 of file xed-inst.h.

-

- - - - -
- - - - -
xed_uint8_t _cpl
-
- - - - - -
-   - - -

- -

-Definition at line 248 of file xed-inst.h.

-

- - - - -
- - - - -
xed_extension_enum_t _extension
-
- - - - - -
-   - - -

- -

-Definition at line 225 of file xed-inst.h.

-

- - - - -
- - - - -
xed_bool_t _flag_complex
-
- - - - - -
-   - - -

- -

-Definition at line 246 of file xed-inst.h.

-

- - - - -
- - - - -
xed_uint16_t _flag_info_index
-
- - - - - -
-   - - -

- -

-Definition at line 245 of file xed-inst.h.

-

- - - - -
- - - - -
xed_iclass_enum_t _iclass
-
- - - - - -
-   - - -

- -

-Definition at line 223 of file xed-inst.h.

-

- - - - -
- - - - -
xed_uint8_t _iform
-
- - - - - -
-   - - -

- -

-Definition at line 228 of file xed-inst.h.

-

- - - - -
- - - - -
xed_iform_enum_t _iform_enum
-
- - - - - -
-   - - -

- -

-Definition at line 229 of file xed-inst.h.

-

- - - - -
- - - - -
xed_uint8_t _noperands
-
- - - - - -
-   - - -

- -

-Definition at line 234 of file xed-inst.h.

-

- - - - -
- - - - -
xed_uint32_t _operand_base
-
- - - - - -
-   - - -

- -

-Definition at line 237 of file xed-inst.h.

-

- - - - -
- - - - -
xed_operand_bitvec_t _operand_bitvec
-
- - - - - -
-   - - -

- -

-Definition at line 226 of file xed-inst.h.

-


The documentation for this struct was generated from the following file: -
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/structxed__operand__s.html b/misc/decoder_test/XED2/doc/html/structxed__operand__s.html deleted file mode 100644 index a2ad322..0000000 --- a/misc/decoder_test/XED2/doc/html/structxed__operand__s.html +++ /dev/null @@ -1,298 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed_operand_s Struct Reference
- -[Decoding Instructions] -

#include <xed-inst.h> -

-


Detailed Description

-Constant information about an individual generic operand, like an operand template, describing the operand properties. -

-See Decoding Instructions for API information. -

- -

-Definition at line 64 of file xed-inst.h. - - - - - - - - - - - - - - - - - - - - - - -

Data Fields

xed_operand_enum_t _name
xed_operand_width_enum_t _oc2
xed_operand_visibility_enum_t _operand_visibility
xed_operand_action_enum_t _rw
xed_operand_type_enum_t _type
union {
   xed_uint32_t   _imm
   xed_nonterminal_enum_t   _nt
   xed_reg_enum_t   _reg
_u
-


Field Documentation

-

- - - - -
- - - - -
xed_uint32_t _imm
-
- - - - - -
-   - - -

- -

-Definition at line 75 of file xed-inst.h.

-

- - - - -
- - - - -
xed_operand_enum_t _name
-
- - - - - -
-   - - -

- -

-Definition at line 66 of file xed-inst.h.

-

- - - - -
- - - - -
xed_nonterminal_enum_t _nt
-
- - - - - -
-   - - -

- -

-Definition at line 76 of file xed-inst.h.

-

- - - - -
- - - - -
xed_operand_width_enum_t _oc2
-
- - - - - -
-   - - -

- -

-Definition at line 71 of file xed-inst.h.

-

- - - - -
- - - - -
xed_operand_visibility_enum_t _operand_visibility
-
- - - - - -
-   - - -

- -

-Definition at line 68 of file xed-inst.h.

-

- - - - -
- - - - -
xed_reg_enum_t _reg
-
- - - - - -
-   - - -

- -

-Definition at line 77 of file xed-inst.h.

-

- - - - -
- - - - -
xed_operand_action_enum_t _rw
-
- - - - - -
-   - - -

- -

-Definition at line 70 of file xed-inst.h.

-

- - - - -
- - - - -
xed_operand_type_enum_t _type
-
- - - - - -
-   - - -

- -

-Definition at line 73 of file xed-inst.h.

-

- - - - -
- - - - -
union { ... } _u
-
- - - - - -
-   - - -

-

-


The documentation for this struct was generated from the following file: -
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/structxed__simple__flag__s.html b/misc/decoder_test/XED2/doc/html/structxed__simple__flag__s.html deleted file mode 100644 index 4128ca8..0000000 --- a/misc/decoder_test/XED2/doc/html/structxed__simple__flag__s.html +++ /dev/null @@ -1,224 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed_simple_flag_s Struct Reference
- -[Flags Interface] -

#include <xed-flags.h> -

-


Detailed Description

-A collection of xed_flag_action_t's and unions of read and written flags. -

- -

-Definition at line 144 of file xed-flags.h. - - - - - - - - - - - - - - - - - -

Data Fields

xed_flag_action_t fa [XED_MAX_FLAG_ACTIONS]
 indexed from 0, not by position in archtectural flags array.
xed_bool_t may_write:1
xed_bool_t must_write:1
xed_uint8_t nflags
xed_flag_set_t read
 union of read flags
xed_flag_set_t written
 union of written flags;
-


Field Documentation

-

- - - - -
- - - - -
xed_flag_action_t fa[XED_MAX_FLAG_ACTIONS]
-
- - - - - -
-   - - -

-indexed from 0, not by position in archtectural flags array. -

- -

-Definition at line 152 of file xed-flags.h.

-

- - - - -
- - - - -
xed_bool_t may_write
-
- - - - - -
-   - - -

- -

-Definition at line 148 of file xed-flags.h.

-

- - - - -
- - - - -
xed_bool_t must_write
-
- - - - - -
-   - - -

- -

-Definition at line 149 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint8_t nflags
-
- - - - - -
-   - - -

- -

-Definition at line 146 of file xed-flags.h.

-

- - - - -
- - - - -
xed_flag_set_t read
-
- - - - - -
-   - - -

-union of read flags -

- -

-Definition at line 155 of file xed-flags.h.

-

- - - - -
- - - - -
xed_flag_set_t written
-
- - - - - -
-   - - -

-union of written flags; -

- -

-Definition at line 158 of file xed-flags.h.

-


The documentation for this struct was generated from the following file: -
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/structxed__state__s.html b/misc/decoder_test/XED2/doc/html/structxed__state__s.html deleted file mode 100644 index 671abf9..0000000 --- a/misc/decoder_test/XED2/doc/html/structxed__state__s.html +++ /dev/null @@ -1,145 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed_state_s Struct Reference
- -[XED initialization] -

#include <xed-state.h> -

-


Detailed Description

-Encapsulates machine modes for decoder/encoder requests. -

-It specifies the machine operating mode as a xed_machine_mode_enum_t for decoding and encoding. For all modes other than the 64b long mode (XED_MACHINE_MODE_LONG_64), a default addressing width, and a stack addressing width must be supplied of type xed_address_width_enum_t . -

- -

-Definition at line 53 of file xed-state.h. - - - - - - - - - - - -

Data Fields

xed_address_width_enum_t addr_width
 the current default addressing width.
xed_machine_mode_enum_t mmode
 real architected machine modes
xed_address_width_enum_t stack_addr_width
 for 16b/32b modes
-


Field Documentation

-

- - - - -
- - - - -
xed_address_width_enum_t addr_width
-
- - - - - -
-   - - -

-the current default addressing width. -

- -

-Definition at line 58 of file xed-state.h.

-

- - - - -
- - - - -
xed_machine_mode_enum_t mmode
-
- - - - - -
-   - - -

-real architected machine modes -

- -

-Definition at line 55 of file xed-state.h.

-

- - - - -
- - - - -
xed_address_width_enum_t stack_addr_width
-
- - - - - -
-   - - -

-for 16b/32b modes -

- -

-Definition at line 61 of file xed-state.h.

-


The documentation for this struct was generated from the following file: -
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/tab_b.gif b/misc/decoder_test/XED2/doc/html/tab_b.gif deleted file mode 100644 index 0d62348..0000000 Binary files a/misc/decoder_test/XED2/doc/html/tab_b.gif and /dev/null differ diff --git a/misc/decoder_test/XED2/doc/html/tab_l.gif b/misc/decoder_test/XED2/doc/html/tab_l.gif deleted file mode 100644 index 9b1e633..0000000 Binary files a/misc/decoder_test/XED2/doc/html/tab_l.gif and /dev/null differ diff --git a/misc/decoder_test/XED2/doc/html/tab_r.gif b/misc/decoder_test/XED2/doc/html/tab_r.gif deleted file mode 100644 index ce9dd9f..0000000 Binary files a/misc/decoder_test/XED2/doc/html/tab_r.gif and /dev/null differ diff --git a/misc/decoder_test/XED2/doc/html/tabs.css b/misc/decoder_test/XED2/doc/html/tabs.css deleted file mode 100644 index a61552a..0000000 --- a/misc/decoder_test/XED2/doc/html/tabs.css +++ /dev/null @@ -1,102 +0,0 @@ -/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ - -DIV.tabs -{ - float : left; - width : 100%; - background : url("tab_b.gif") repeat-x bottom; - margin-bottom : 4px; -} - -DIV.tabs UL -{ - margin : 0px; - padding-left : 10px; - list-style : none; -} - -DIV.tabs LI, DIV.tabs FORM -{ - display : inline; - margin : 0px; - padding : 0px; -} - -DIV.tabs FORM -{ - float : right; -} - -DIV.tabs A -{ - float : left; - background : url("tab_r.gif") no-repeat right top; - border-bottom : 1px solid #84B0C7; - font-size : x-small; - font-weight : bold; - text-decoration : none; -} - -DIV.tabs A:hover -{ - background-position: 100% -150px; -} - -DIV.tabs A:link, DIV.tabs A:visited, -DIV.tabs A:active, DIV.tabs A:hover -{ - color: #1A419D; -} - -DIV.tabs SPAN -{ - float : left; - display : block; - background : url("tab_l.gif") no-repeat left top; - padding : 5px 9px; - white-space : nowrap; -} - -DIV.tabs INPUT -{ - float : right; - display : inline; - font-size : 1em; -} - -DIV.tabs TD -{ - font-size : x-small; - font-weight : bold; - text-decoration : none; -} - - - -/* Commented Backslash Hack hides rule from IE5-Mac \*/ -DIV.tabs SPAN {float : none;} -/* End IE5-Mac hack */ - -DIV.tabs A:hover SPAN -{ - background-position: 0% -150px; -} - -DIV.tabs LI#current A -{ - background-position: 100% -150px; - border-width : 0px; -} - -DIV.tabs LI#current SPAN -{ - background-position: 0% -150px; - padding-bottom : 6px; -} - -DIV.nav -{ - background : none; - border : none; - border-bottom : 1px solid #84B0C7; -} diff --git a/misc/decoder_test/XED2/doc/html/tree.html b/misc/decoder_test/XED2/doc/html/tree.html deleted file mode 100644 index 66e4ffb..0000000 --- a/misc/decoder_test/XED2/doc/html/tree.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - TreeView - - - - - -
-

XED2

-
-

o*XED2 User Guide

-

o+File List

- -

o+Data Structures

- -

o+Class Hierarchy

- -

o*Data Fields

-

o+Modules

- -

\*Globals

-
-
- - diff --git a/misc/decoder_test/XED2/doc/html/unionxed__flag__set__s.html b/misc/decoder_test/XED2/doc/html/unionxed__flag__set__s.html deleted file mode 100644 index c44c93b..0000000 --- a/misc/decoder_test/XED2/doc/html/unionxed__flag__set__s.html +++ /dev/null @@ -1,689 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed_flag_set_s Union Reference
- -[Flags Interface] -

#include <xed-flags.h> -

-


Detailed Description

-a union of flags bits -

- -

-Definition at line 47 of file xed-flags.h. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Data Fields

xed_uint32_t flat
struct {
   xed_uint32_t   _if:1
 underscore to avoid token clash
   xed_uint32_t   ac:1
   xed_uint32_t   af:1
   xed_uint32_t   cf:1
   xed_uint32_t   df:1
   xed_uint32_t   fc0:1
 x87 flag FC0
   xed_uint32_t   fc1:1
 x87 flag FC1
   xed_uint32_t   fc2:1
 x87 flag FC2
   xed_uint32_t   fc3:1
 x87 flag FC3
   xed_uint32_t   id:1
   xed_uint32_t   iopl:1
   xed_uint32_t   nt:1
   xed_uint32_t   of:1
   xed_uint32_t   pf:1
   xed_uint32_t   rf:1
   xed_uint32_t   sf:1
   xed_uint32_t   tf:1
   xed_uint32_t   vif:1
   xed_uint32_t   vip:1
   xed_uint32_t   vm:1
   xed_uint32_t   zf:1
s
-


Field Documentation

-

- - - - -
- - - - -
xed_uint32_t _if
-
- - - - - -
-   - - -

-underscore to avoid token clash -

- -

-Definition at line 58 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t ac
-
- - - - - -
-   - - -

- -

-Definition at line 59 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t af
-
- - - - - -
-   - - -

- -

-Definition at line 52 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t cf
-
- - - - - -
-   - - -

- -

-Definition at line 54 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t df
-
- - - - - -
-   - - -

- -

-Definition at line 55 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t fc0
-
- - - - - -
-   - - -

-x87 flag FC0 -

- -

-Definition at line 66 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t fc1
-
- - - - - -
-   - - -

-x87 flag FC1 -

- -

-Definition at line 67 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t fc2
-
- - - - - -
-   - - -

-x87 flag FC2 -

- -

-Definition at line 68 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t fc3
-
- - - - - -
-   - - -

-x87 flag FC3 -

- -

-Definition at line 69 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t flat
-
- - - - - -
-   - - -

- -

-Definition at line 71 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t id
-
- - - - - -
-   - - -

- -

-Definition at line 64 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t iopl
-
- - - - - -
-   - - -

- -

-Definition at line 57 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t nt
-
- - - - - -
-   - - -

- -

-Definition at line 62 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t of
-
- - - - - -
-   - - -

- -

-Definition at line 49 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t pf
-
- - - - - -
-   - - -

- -

-Definition at line 53 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t rf
-
- - - - - -
-   - - -

- -

-Definition at line 61 of file xed-flags.h.

-

- - - - -
- - - - -
struct { ... } s
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - -
xed_uint32_t sf
-
- - - - - -
-   - - -

- -

-Definition at line 50 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t tf
-
- - - - - -
-   - - -

- -

-Definition at line 63 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t vif
-
- - - - - -
-   - - -

- -

-Definition at line 56 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t vip
-
- - - - - -
-   - - -

- -

-Definition at line 65 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t vm
-
- - - - - -
-   - - -

- -

-Definition at line 60 of file xed-flags.h.

-

- - - - -
- - - - -
xed_uint32_t zf
-
- - - - - -
-   - - -

- -

-Definition at line 51 of file xed-flags.h.

-


The documentation for this union was generated from the following file: -
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/unionxed__immdis__values__t.html b/misc/decoder_test/XED2/doc/html/unionxed__immdis__values__t.html deleted file mode 100644 index 4af2a38..0000000 --- a/misc/decoder_test/XED2/doc/html/unionxed__immdis__values__t.html +++ /dev/null @@ -1,104 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed_immdis_values_t Union Reference

#include <xed-immdis.h> -

-


Detailed Description

- -

- -

-Definition at line 64 of file xed-immdis.h. - - - - - - -

Data Fields

xed_uint64_t q
xed_uint8_t x [XED_MAX_IMMDIS_BYTES]
-


Field Documentation

-

- - - - -
- - - - -
xed_uint64_t q
-
- - - - - -
-   - - -

- -

-Definition at line 67 of file xed-immdis.h.

-

- - - - -
- - - - -
xed_uint8_t x[XED_MAX_IMMDIS_BYTES]
-
- - - - - -
-   - - -

- -

-Definition at line 66 of file xed-immdis.h.

-


The documentation for this union was generated from the following file: -
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/unionxed__operand__bitvec__t.html b/misc/decoder_test/XED2/doc/html/unionxed__operand__bitvec__t.html deleted file mode 100644 index 3501fea..0000000 --- a/misc/decoder_test/XED2/doc/html/unionxed__operand__bitvec__t.html +++ /dev/null @@ -1,2318 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed_operand_bitvec_t Union Reference

#include <xed-operand-bitvec.h> -

-


Detailed Description

- -

- -

-Definition at line 42 of file xed-operand-bitvec.h. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Data Fields

xed_uint32_t i [4]
struct {
   xed_uint32_t   x_AGEN: 1
   xed_uint32_t   x_AMODE: 1
   xed_uint32_t   x_ASZ: 1
   xed_uint32_t   x_BASE0: 1
   xed_uint32_t   x_BASE1: 1
   xed_uint32_t   x_BRDISP0: 1
   xed_uint32_t   x_BRDISP1: 1
   xed_uint32_t   x_BRDISP_WIDTH: 1
   xed_uint32_t   x_DEFAULT_SEG: 1
   xed_uint32_t   x_DF64: 1
   xed_uint32_t   x_DISP0: 1
   xed_uint32_t   x_DISP1: 1
   xed_uint32_t   x_DISP2: 1
   xed_uint32_t   x_DISP3: 1
   xed_uint32_t   x_DISP_WIDTH: 1
   xed_uint32_t   x_EASZ: 1
   xed_uint32_t   x_ENCODER_PREFERRED: 1
   xed_uint32_t   x_EOSZ: 1
   xed_uint32_t   x_ERROR: 1
   xed_uint32_t   x_HINT_NOT_TAKEN: 1
   xed_uint32_t   x_HINT_TAKEN: 1
   xed_uint32_t   x_ICLASS: 1
   xed_uint32_t   x_IMM0: 1
   xed_uint32_t   x_IMM0SIGNED: 1
   xed_uint32_t   x_IMM1: 1
   xed_uint32_t   x_IMM_WIDTH: 1
   xed_uint32_t   x_INDEX: 1
   xed_uint32_t   x_LOCK: 1
   xed_uint32_t   x_LOCKABLE: 1
   xed_uint32_t   x_MEM0: 1
   xed_uint32_t   x_MEM1: 1
   xed_uint32_t   x_MEM_WIDTH: 1
   xed_uint32_t   x_MOD: 1
   xed_uint32_t   x_MODE: 1
   xed_uint32_t   x_MODRM: 1
   xed_uint32_t   x_NOREX: 1
   xed_uint32_t   x_OSZ: 1
   xed_uint32_t   x_OUTREG: 1
   xed_uint32_t   x_PTR: 1
   xed_uint32_t   x_REFINING: 1
   xed_uint32_t   x_REG: 1
   xed_uint32_t   x_REG0: 1
   xed_uint32_t   x_REG1: 1
   xed_uint32_t   x_REG10: 1
   xed_uint32_t   x_REG11: 1
   xed_uint32_t   x_REG12: 1
   xed_uint32_t   x_REG13: 1
   xed_uint32_t   x_REG14: 1
   xed_uint32_t   x_REG15: 1
   xed_uint32_t   x_REG2: 1
   xed_uint32_t   x_REG3: 1
   xed_uint32_t   x_REG4: 1
   xed_uint32_t   x_REG5: 1
   xed_uint32_t   x_REG6: 1
   xed_uint32_t   x_REG7: 1
   xed_uint32_t   x_REG8: 1
   xed_uint32_t   x_REG9: 1
   xed_uint32_t   x_RELBR: 1
   xed_uint32_t   x_REP: 1
   xed_uint32_t   x_REP_ABLE: 1
   xed_uint32_t   x_REX: 1
   xed_uint32_t   x_REXB: 1
   xed_uint32_t   x_REXR: 1
   xed_uint32_t   x_REXW: 1
   xed_uint32_t   x_REXX: 1
   xed_uint32_t   x_RM: 1
   xed_uint32_t   x_SCALE: 1
   xed_uint32_t   x_SEG0: 1
   xed_uint32_t   x_SEG1: 1
   xed_uint32_t   x_SEG_OVD: 1
   xed_uint32_t   x_SIB: 1
   xed_uint32_t   x_SIBBASE: 1
   xed_uint32_t   x_SIBINDEX: 1
   xed_uint32_t   x_SIBSCALE: 1
   xed_uint32_t   x_SMODE: 1
   xed_uint32_t   x_UIMM00: 1
   xed_uint32_t   x_UIMM01: 1
   xed_uint32_t   x_UIMM02: 1
   xed_uint32_t   x_UIMM03: 1
   xed_uint32_t   x_UIMM1: 1
   xed_uint32_t   x_USING_DEFAULT_SEGMENT0: 1
   xed_uint32_t   x_USING_DEFAULT_SEGMENT1: 1
s
-


Field Documentation

-

- - - - -
- - - - -
xed_uint32_t i[4]
-
- - - - - -
-   - - -

- -

-Definition at line 43 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
struct { ... } s
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - -
xed_uint32_t x_AGEN
-
- - - - - -
-   - - -

- -

-Definition at line 45 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_AMODE
-
- - - - - -
-   - - -

- -

-Definition at line 46 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_ASZ
-
- - - - - -
-   - - -

- -

-Definition at line 47 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_BASE0
-
- - - - - -
-   - - -

- -

-Definition at line 48 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_BASE1
-
- - - - - -
-   - - -

- -

-Definition at line 49 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_BRDISP0
-
- - - - - -
-   - - -

- -

-Definition at line 51 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_BRDISP1
-
- - - - - -
-   - - -

- -

-Definition at line 52 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_BRDISP_WIDTH
-
- - - - - -
-   - - -

- -

-Definition at line 50 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_DEFAULT_SEG
-
- - - - - -
-   - - -

- -

-Definition at line 53 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_DF64
-
- - - - - -
-   - - -

- -

-Definition at line 54 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_DISP0
-
- - - - - -
-   - - -

- -

-Definition at line 56 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_DISP1
-
- - - - - -
-   - - -

- -

-Definition at line 57 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_DISP2
-
- - - - - -
-   - - -

- -

-Definition at line 58 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_DISP3
-
- - - - - -
-   - - -

- -

-Definition at line 59 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_DISP_WIDTH
-
- - - - - -
-   - - -

- -

-Definition at line 55 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_EASZ
-
- - - - - -
-   - - -

- -

-Definition at line 60 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_ENCODER_PREFERRED
-
- - - - - -
-   - - -

- -

-Definition at line 61 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_EOSZ
-
- - - - - -
-   - - -

- -

-Definition at line 62 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_ERROR
-
- - - - - -
-   - - -

- -

-Definition at line 63 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_HINT_NOT_TAKEN
-
- - - - - -
-   - - -

- -

-Definition at line 65 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_HINT_TAKEN
-
- - - - - -
-   - - -

- -

-Definition at line 64 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_ICLASS
-
- - - - - -
-   - - -

- -

-Definition at line 66 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_IMM0
-
- - - - - -
-   - - -

- -

-Definition at line 68 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_IMM0SIGNED
-
- - - - - -
-   - - -

- -

-Definition at line 69 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_IMM1
-
- - - - - -
-   - - -

- -

-Definition at line 70 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_IMM_WIDTH
-
- - - - - -
-   - - -

- -

-Definition at line 67 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_INDEX
-
- - - - - -
-   - - -

- -

-Definition at line 71 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_LOCK
-
- - - - - -
-   - - -

- -

-Definition at line 72 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_LOCKABLE
-
- - - - - -
-   - - -

- -

-Definition at line 73 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_MEM0
-
- - - - - -
-   - - -

- -

-Definition at line 75 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_MEM1
-
- - - - - -
-   - - -

- -

-Definition at line 76 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_MEM_WIDTH
-
- - - - - -
-   - - -

- -

-Definition at line 74 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_MOD
-
- - - - - -
-   - - -

- -

-Definition at line 77 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_MODE
-
- - - - - -
-   - - -

- -

-Definition at line 78 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_MODRM
-
- - - - - -
-   - - -

- -

-Definition at line 79 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_NOREX
-
- - - - - -
-   - - -

- -

-Definition at line 80 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_OSZ
-
- - - - - -
-   - - -

- -

-Definition at line 81 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_OUTREG
-
- - - - - -
-   - - -

- -

-Definition at line 82 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_PTR
-
- - - - - -
-   - - -

- -

-Definition at line 83 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REFINING
-
- - - - - -
-   - - -

- -

-Definition at line 84 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REG
-
- - - - - -
-   - - -

- -

-Definition at line 85 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REG0
-
- - - - - -
-   - - -

- -

-Definition at line 86 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REG1
-
- - - - - -
-   - - -

- -

-Definition at line 87 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REG10
-
- - - - - -
-   - - -

- -

-Definition at line 96 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REG11
-
- - - - - -
-   - - -

- -

-Definition at line 97 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REG12
-
- - - - - -
-   - - -

- -

-Definition at line 98 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REG13
-
- - - - - -
-   - - -

- -

-Definition at line 99 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REG14
-
- - - - - -
-   - - -

- -

-Definition at line 100 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REG15
-
- - - - - -
-   - - -

- -

-Definition at line 101 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REG2
-
- - - - - -
-   - - -

- -

-Definition at line 88 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REG3
-
- - - - - -
-   - - -

- -

-Definition at line 89 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REG4
-
- - - - - -
-   - - -

- -

-Definition at line 90 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REG5
-
- - - - - -
-   - - -

- -

-Definition at line 91 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REG6
-
- - - - - -
-   - - -

- -

-Definition at line 92 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REG7
-
- - - - - -
-   - - -

- -

-Definition at line 93 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REG8
-
- - - - - -
-   - - -

- -

-Definition at line 94 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REG9
-
- - - - - -
-   - - -

- -

-Definition at line 95 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_RELBR
-
- - - - - -
-   - - -

- -

-Definition at line 102 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REP
-
- - - - - -
-   - - -

- -

-Definition at line 103 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REP_ABLE
-
- - - - - -
-   - - -

- -

-Definition at line 104 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REX
-
- - - - - -
-   - - -

- -

-Definition at line 105 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REXB
-
- - - - - -
-   - - -

- -

-Definition at line 106 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REXR
-
- - - - - -
-   - - -

- -

-Definition at line 107 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REXW
-
- - - - - -
-   - - -

- -

-Definition at line 108 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_REXX
-
- - - - - -
-   - - -

- -

-Definition at line 109 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_RM
-
- - - - - -
-   - - -

- -

-Definition at line 110 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_SCALE
-
- - - - - -
-   - - -

- -

-Definition at line 111 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_SEG0
-
- - - - - -
-   - - -

- -

-Definition at line 113 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_SEG1
-
- - - - - -
-   - - -

- -

-Definition at line 114 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_SEG_OVD
-
- - - - - -
-   - - -

- -

-Definition at line 112 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_SIB
-
- - - - - -
-   - - -

- -

-Definition at line 115 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_SIBBASE
-
- - - - - -
-   - - -

- -

-Definition at line 116 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_SIBINDEX
-
- - - - - -
-   - - -

- -

-Definition at line 117 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_SIBSCALE
-
- - - - - -
-   - - -

- -

-Definition at line 118 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_SMODE
-
- - - - - -
-   - - -

- -

-Definition at line 119 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_UIMM00
-
- - - - - -
-   - - -

- -

-Definition at line 120 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_UIMM01
-
- - - - - -
-   - - -

- -

-Definition at line 122 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_UIMM02
-
- - - - - -
-   - - -

- -

-Definition at line 123 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_UIMM03
-
- - - - - -
-   - - -

- -

-Definition at line 124 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_UIMM1
-
- - - - - -
-   - - -

- -

-Definition at line 121 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_USING_DEFAULT_SEGMENT0
-
- - - - - -
-   - - -

- -

-Definition at line 125 of file xed-operand-bitvec.h.

-

- - - - -
- - - - -
xed_uint32_t x_USING_DEFAULT_SEGMENT1
-
- - - - - -
-   - - -

- -

-Definition at line 126 of file xed-operand-bitvec.h.

-


The documentation for this union was generated from the following file: -
Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-address-width-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-address-width-enum_8h-source.html deleted file mode 100644 index 48ed718..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-address-width-enum_8h-source.html +++ /dev/null @@ -1,87 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:08 2008 - - - - -
-
- -

xed-address-width-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_ADDRESS_WIDTH_ENUM_H_)
-00040 # define _XED_ADDRESS_WIDTH_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_ADDRESS_WIDTH_INVALID=0,
-00044   XED_ADDRESS_WIDTH_16b=2, 
-00045   XED_ADDRESS_WIDTH_32b=4, 
-00046   XED_ADDRESS_WIDTH_64b=8, 
-00047   XED_ADDRESS_WIDTH_LAST
-00048 } xed_address_width_enum_t;
-00049 
-00050 XED_DLL_EXPORT xed_address_width_enum_t
-00051 str2xed_address_width_enum_t(const char* s);
-00052 XED_DLL_EXPORT const char*
-00053 xed_address_width_enum_t2str(const xed_address_width_enum_t p);
-00054 
-00055 #endif
-

Generated on Thu May 15 03:15:08 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-address-width-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-address-width-enum_8h.html deleted file mode 100644 index f5da34a..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-address-width-enum_8h.html +++ /dev/null @@ -1,191 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-address-width-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-address-width-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_ADDRESS_WIDTH_ENUM_H_

Enumerations

enum  xed_address_width_enum_t {
-  XED_ADDRESS_WIDTH_INVALID = 0, -
-  XED_ADDRESS_WIDTH_16b = 2, -
-  XED_ADDRESS_WIDTH_32b = 4, -
-  XED_ADDRESS_WIDTH_64b = 8, -
-  XED_ADDRESS_WIDTH_LAST -
- }

Functions

XED_DLL_EXPORT xed_address_width_enum_t str2xed_address_width_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_address_width_enum_t2str (const xed_address_width_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_ADDRESS_WIDTH_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-address-width-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_address_width_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - -
XED_ADDRESS_WIDTH_INVALID  -
XED_ADDRESS_WIDTH_16b  -16b addressing
XED_ADDRESS_WIDTH_32b  -32b addressing
XED_ADDRESS_WIDTH_64b  -64b addressing
XED_ADDRESS_WIDTH_LAST  -
-
- -

-Definition at line 42 of file xed-address-width-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_address_width_enum_t str2xed_address_width_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_address_width_enum_t2str const xed_address_width_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-attribute-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-attribute-enum_8h-source.html deleted file mode 100644 index d8efde2..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-attribute-enum_8h-source.html +++ /dev/null @@ -1,101 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:08 2008 - - - - -
-
- -

xed-attribute-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_ATTRIBUTE_ENUM_H_)
-00040 # define _XED_ATTRIBUTE_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_ATTRIBUTE_INVALID=0, 
-00044   XED_ATTRIBUTE_ANY_REP_ABLE=1, 
-00045   XED_ATTRIBUTE_ATT_OPERAND_ORDER_EXCEPTION=2, 
-00046   XED_ATTRIBUTE_FAR_XFER=4, 
-00047   XED_ATTRIBUTE_FIXED_BASE0=8, 
-00048   XED_ATTRIBUTE_FIXED_BASE1=16, 
-00049   XED_ATTRIBUTE_REQUIRES_ALIGNMENT=32, 
-00050   XED_ATTRIBUTE_SIMD_PACKED_ALIGNMENT=64, 
-00051   XED_ATTRIBUTE_SIMD_SCALAR=128, 
-00052   XED_ATTRIBUTE_SKIPLOW32=256, 
-00053   XED_ATTRIBUTE_SKIPLOW64=512, 
-00054   XED_ATTRIBUTE_UNALIGNED=1024, 
-00055   XED_ATTRIBUTE_X87_MMX_STATE_CW=2048, 
-00056   XED_ATTRIBUTE_X87_MMX_STATE_R=4096, 
-00057   XED_ATTRIBUTE_X87_MMX_STATE_W=8192, 
-00058   XED_ATTRIBUTE_XMM_STATE_CW=16384, 
-00059   XED_ATTRIBUTE_XMM_STATE_R=32768, 
-00060   XED_ATTRIBUTE_XMM_STATE_W=65536, 
-00061   XED_ATTRIBUTE_LAST
-00062 } xed_attribute_enum_t;
-00063 
-00064 XED_DLL_EXPORT xed_attribute_enum_t
-00065 str2xed_attribute_enum_t(const char* s);
-00066 XED_DLL_EXPORT const char*
-00067 xed_attribute_enum_t2str(const xed_attribute_enum_t p);
-00068 
-00069 #endif
-

Generated on Thu May 15 03:15:08 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-attribute-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-attribute-enum_8h.html deleted file mode 100644 index 9655ec3..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-attribute-enum_8h.html +++ /dev/null @@ -1,247 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-attribute-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-attribute-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_ATTRIBUTE_ENUM_H_

Enumerations

enum  xed_attribute_enum_t {
-  XED_ATTRIBUTE_INVALID = 0, -
-  XED_ATTRIBUTE_ANY_REP_ABLE = 1, -
-  XED_ATTRIBUTE_ATT_OPERAND_ORDER_EXCEPTION = 2, -
-  XED_ATTRIBUTE_FAR_XFER = 4, -
-  XED_ATTRIBUTE_FIXED_BASE0 = 8, -
-  XED_ATTRIBUTE_FIXED_BASE1 = 16, -
-  XED_ATTRIBUTE_REQUIRES_ALIGNMENT = 32, -
-  XED_ATTRIBUTE_SIMD_PACKED_ALIGNMENT = 64, -
-  XED_ATTRIBUTE_SIMD_SCALAR = 128, -
-  XED_ATTRIBUTE_SKIPLOW32 = 256, -
-  XED_ATTRIBUTE_SKIPLOW64 = 512, -
-  XED_ATTRIBUTE_UNALIGNED = 1024, -
-  XED_ATTRIBUTE_X87_MMX_STATE_CW = 2048, -
-  XED_ATTRIBUTE_X87_MMX_STATE_R = 4096, -
-  XED_ATTRIBUTE_X87_MMX_STATE_W = 8192, -
-  XED_ATTRIBUTE_XMM_STATE_CW = 16384, -
-  XED_ATTRIBUTE_XMM_STATE_R = 32768, -
-  XED_ATTRIBUTE_XMM_STATE_W = 65536, -
-  XED_ATTRIBUTE_LAST -
- }

Functions

XED_DLL_EXPORT xed_attribute_enum_t str2xed_attribute_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_attribute_enum_t2str (const xed_attribute_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_ATTRIBUTE_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-attribute-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_attribute_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - - - - - - - - - - - - - - - -
XED_ATTRIBUTE_INVALID  -
XED_ATTRIBUTE_ANY_REP_ABLE  -
XED_ATTRIBUTE_ATT_OPERAND_ORDER_EXCEPTION  -
XED_ATTRIBUTE_FAR_XFER  -
XED_ATTRIBUTE_FIXED_BASE0  -
XED_ATTRIBUTE_FIXED_BASE1  -
XED_ATTRIBUTE_REQUIRES_ALIGNMENT  -
XED_ATTRIBUTE_SIMD_PACKED_ALIGNMENT  -
XED_ATTRIBUTE_SIMD_SCALAR  -
XED_ATTRIBUTE_SKIPLOW32  -
XED_ATTRIBUTE_SKIPLOW64  -
XED_ATTRIBUTE_UNALIGNED  -
XED_ATTRIBUTE_X87_MMX_STATE_CW  -
XED_ATTRIBUTE_X87_MMX_STATE_R  -
XED_ATTRIBUTE_X87_MMX_STATE_W  -
XED_ATTRIBUTE_XMM_STATE_CW  -
XED_ATTRIBUTE_XMM_STATE_R  -
XED_ATTRIBUTE_XMM_STATE_W  -
XED_ATTRIBUTE_LAST  -
-
- -

-Definition at line 42 of file xed-attribute-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_attribute_enum_t str2xed_attribute_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_attribute_enum_t2str const xed_attribute_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-category-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-category-enum_8h-source.html deleted file mode 100644 index e2cc1cc..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-category-enum_8h-source.html +++ /dev/null @@ -1,120 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:08 2008 - - - - -
-
- -

xed-category-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_CATEGORY_ENUM_H_)
-00040 # define _XED_CATEGORY_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_CATEGORY_INVALID,
-00044   XED_CATEGORY_3DNOW,
-00045   XED_CATEGORY_BASE,
-00046   XED_CATEGORY_BINARY,
-00047   XED_CATEGORY_BITBYTE,
-00048   XED_CATEGORY_CALL,
-00049   XED_CATEGORY_CMOV,
-00050   XED_CATEGORY_COND_BR,
-00051   XED_CATEGORY_DATAXFER,
-00052   XED_CATEGORY_DECIMAL,
-00053   XED_CATEGORY_FCMOV,
-00054   XED_CATEGORY_FLAGOP,
-00055   XED_CATEGORY_INTERRUPT,
-00056   XED_CATEGORY_IO,
-00057   XED_CATEGORY_IOSTRINGOP,
-00058   XED_CATEGORY_LOGICAL,
-00059   XED_CATEGORY_MISC,
-00060   XED_CATEGORY_MMX,
-00061   XED_CATEGORY_NOP,
-00062   XED_CATEGORY_POP,
-00063   XED_CATEGORY_PREFETCH,
-00064   XED_CATEGORY_PUSH,
-00065   XED_CATEGORY_RET,
-00066   XED_CATEGORY_ROTATE,
-00067   XED_CATEGORY_SEGOP,
-00068   XED_CATEGORY_SEMAPHORE,
-00069   XED_CATEGORY_SHIFT,
-00070   XED_CATEGORY_SSE,
-00071   XED_CATEGORY_STRINGOP,
-00072   XED_CATEGORY_SYSCALL,
-00073   XED_CATEGORY_SYSRET,
-00074   XED_CATEGORY_SYSTEM,
-00075   XED_CATEGORY_UNCOND_BR,
-00076   XED_CATEGORY_VTX,
-00077   XED_CATEGORY_WIDENOP,
-00078   XED_CATEGORY_X87_ALU,
-00079   XED_CATEGORY_XSAVE,
-00080   XED_CATEGORY_LAST
-00081 } xed_category_enum_t;
-00082 
-00083 XED_DLL_EXPORT xed_category_enum_t
-00084 str2xed_category_enum_t(const char* s);
-00085 XED_DLL_EXPORT const char*
-00086 xed_category_enum_t2str(const xed_category_enum_t p);
-00087 
-00088 #endif
-

Generated on Thu May 15 03:15:08 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-category-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-category-enum_8h.html deleted file mode 100644 index c08afae..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-category-enum_8h.html +++ /dev/null @@ -1,323 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-category-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-category-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_CATEGORY_ENUM_H_

Enumerations

enum  xed_category_enum_t {
-  XED_CATEGORY_INVALID, -
-  XED_CATEGORY_3DNOW, -
-  XED_CATEGORY_BASE, -
-  XED_CATEGORY_BINARY, -
-  XED_CATEGORY_BITBYTE, -
-  XED_CATEGORY_CALL, -
-  XED_CATEGORY_CMOV, -
-  XED_CATEGORY_COND_BR, -
-  XED_CATEGORY_DATAXFER, -
-  XED_CATEGORY_DECIMAL, -
-  XED_CATEGORY_FCMOV, -
-  XED_CATEGORY_FLAGOP, -
-  XED_CATEGORY_INTERRUPT, -
-  XED_CATEGORY_IO, -
-  XED_CATEGORY_IOSTRINGOP, -
-  XED_CATEGORY_LOGICAL, -
-  XED_CATEGORY_MISC, -
-  XED_CATEGORY_MMX, -
-  XED_CATEGORY_NOP, -
-  XED_CATEGORY_POP, -
-  XED_CATEGORY_PREFETCH, -
-  XED_CATEGORY_PUSH, -
-  XED_CATEGORY_RET, -
-  XED_CATEGORY_ROTATE, -
-  XED_CATEGORY_SEGOP, -
-  XED_CATEGORY_SEMAPHORE, -
-  XED_CATEGORY_SHIFT, -
-  XED_CATEGORY_SSE, -
-  XED_CATEGORY_STRINGOP, -
-  XED_CATEGORY_SYSCALL, -
-  XED_CATEGORY_SYSRET, -
-  XED_CATEGORY_SYSTEM, -
-  XED_CATEGORY_UNCOND_BR, -
-  XED_CATEGORY_VTX, -
-  XED_CATEGORY_WIDENOP, -
-  XED_CATEGORY_X87_ALU, -
-  XED_CATEGORY_XSAVE, -
-  XED_CATEGORY_LAST -
- }

Functions

XED_DLL_EXPORT xed_category_enum_t str2xed_category_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_category_enum_t2str (const xed_category_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_CATEGORY_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-category-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_category_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_CATEGORY_INVALID  -
XED_CATEGORY_3DNOW  -
XED_CATEGORY_BASE  -
XED_CATEGORY_BINARY  -
XED_CATEGORY_BITBYTE  -
XED_CATEGORY_CALL  -
XED_CATEGORY_CMOV  -
XED_CATEGORY_COND_BR  -
XED_CATEGORY_DATAXFER  -
XED_CATEGORY_DECIMAL  -
XED_CATEGORY_FCMOV  -
XED_CATEGORY_FLAGOP  -
XED_CATEGORY_INTERRUPT  -
XED_CATEGORY_IO  -
XED_CATEGORY_IOSTRINGOP  -
XED_CATEGORY_LOGICAL  -
XED_CATEGORY_MISC  -
XED_CATEGORY_MMX  -
XED_CATEGORY_NOP  -
XED_CATEGORY_POP  -
XED_CATEGORY_PREFETCH  -
XED_CATEGORY_PUSH  -
XED_CATEGORY_RET  -
XED_CATEGORY_ROTATE  -
XED_CATEGORY_SEGOP  -
XED_CATEGORY_SEMAPHORE  -
XED_CATEGORY_SHIFT  -
XED_CATEGORY_SSE  -
XED_CATEGORY_STRINGOP  -
XED_CATEGORY_SYSCALL  -
XED_CATEGORY_SYSRET  -
XED_CATEGORY_SYSTEM  -
XED_CATEGORY_UNCOND_BR  -
XED_CATEGORY_VTX  -
XED_CATEGORY_WIDENOP  -
XED_CATEGORY_X87_ALU  -
XED_CATEGORY_XSAVE  -
XED_CATEGORY_LAST  -
-
- -

-Definition at line 42 of file xed-category-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_category_enum_t str2xed_category_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_category_enum_t2str const xed_category_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-common-defs_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-common-defs_8h-source.html deleted file mode 100644 index 34ce65f..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-common-defs_8h-source.html +++ /dev/null @@ -1,109 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:08 2008 - - - - -
-
- -

xed-common-defs.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00036 
-00037 
-00038 
-00039 #ifndef _XED_COMMON_DEFS_H_
-00040 # define _XED_COMMON_DEFS_H_
-00041 
-00043 
-00044 #define XED_MAX_OPERANDS 11
-00045 #define XED_MAX_NONTERMINALS_PER_INSTRUCTION 20 // FIXME somewhat arbitrary
-00046 
-00047 #define XED_MAX_DISPLACEMENT_BYTES  8 // for most things it is 4, but one 64b mov allows 8
-00048 #define XED_MAX_IMMEDIATE_BYTES  8 // for most things it is max 4, but one 64b mov allows 8.
-00049 
-00050 #define XED_MAX_INSTRUCTION_BYTES  15
-00051 
-00052 
-00053 #define XED_BYTE_MASK(x) ((x) & 0xFF)
-00054 #define XED_BYTE_CAST(x) (STATIC_CAST(xed_uint8_t,x))
-00055 
-00057 // used for defining bit-field widths
-00058 // Microsoft's compiler treats enumerations as signed and if you pack
-00059 // the bit-field with values, when you assign it to a full-width enumeration,
-00060 // you get junk-- a big negative number. This compensates for cases that I've
-00061 // encountered
-00062 #if defined(__GNUC__)
-00063 #  define XED_BIT_FIELD_PSEUDO_WIDTH4 4
-00064 #  define XED_BIT_FIELD_PSEUDO_WIDTH8 8
-00065 #else
-00066 #  define XED_BIT_FIELD_PSEUDO_WIDTH4 8
-00067 #  define XED_BIT_FIELD_PSEUDO_WIDTH8 16
-00068 #endif
-00069 
-00070 
-00071 #endif
-00072 
-00073 
-00074 
-00075 
-00076 
-00077 
-00078 
-00079 
-00080 
-

Generated on Thu May 15 03:15:08 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-common-defs_8h.html b/misc/decoder_test/XED2/doc/html/xed-common-defs_8h.html deleted file mode 100644 index da1f805..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-common-defs_8h.html +++ /dev/null @@ -1,302 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-common-defs.h File Reference


Detailed Description

-some pervasive defines -

-

Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-common-defs.h. -

- -

-Go to the source code of this file. - - - - - - - - - - - - - - - - - - - - -

Defines

#define XED_BIT_FIELD_PSEUDO_WIDTH4   8
#define XED_BIT_FIELD_PSEUDO_WIDTH8   16
#define XED_BYTE_CAST(x)   (STATIC_CAST(xed_uint8_t,x))
#define XED_BYTE_MASK(x)   ((x) & 0xFF)
#define XED_MAX_DISPLACEMENT_BYTES   8
#define XED_MAX_IMMEDIATE_BYTES   8
#define XED_MAX_INSTRUCTION_BYTES   15
#define XED_MAX_NONTERMINALS_PER_INSTRUCTION   20
#define XED_MAX_OPERANDS   11
-


Define Documentation

-

- - - - -
- - - - -
#define XED_BIT_FIELD_PSEUDO_WIDTH4   8
-
- - - - - -
-   - - -

- -

-Definition at line 66 of file xed-common-defs.h.

-

- - - - -
- - - - -
#define XED_BIT_FIELD_PSEUDO_WIDTH8   16
-
- - - - - -
-   - - -

- -

-Definition at line 67 of file xed-common-defs.h.

-

- - - - -
- - - - - - - - - -
#define XED_BYTE_CAST  )    (STATIC_CAST(xed_uint8_t,x))
-
- - - - - -
-   - - -

- -

-Definition at line 54 of file xed-common-defs.h.

-

- - - - -
- - - - - - - - - -
#define XED_BYTE_MASK  )    ((x) & 0xFF)
-
- - - - - -
-   - - -

- -

-Definition at line 53 of file xed-common-defs.h.

-

- - - - -
- - - - -
#define XED_MAX_DISPLACEMENT_BYTES   8
-
- - - - - -
-   - - -

- -

-Definition at line 47 of file xed-common-defs.h.

-

- - - - -
- - - - -
#define XED_MAX_IMMEDIATE_BYTES   8
-
- - - - - -
-   - - -

- -

-Definition at line 48 of file xed-common-defs.h.

-

- - - - -
- - - - -
#define XED_MAX_INSTRUCTION_BYTES   15
-
- - - - - -
-   - - -

- -

-Definition at line 50 of file xed-common-defs.h.

-

- - - - -
- - - - -
#define XED_MAX_NONTERMINALS_PER_INSTRUCTION   20
-
- - - - - -
-   - - -

- -

-Definition at line 45 of file xed-common-defs.h.

-

- - - - -
- - - - -
#define XED_MAX_OPERANDS   11
-
- - - - - -
-   - - -

- -

-Definition at line 44 of file xed-common-defs.h.

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-common-hdrs_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-common-hdrs_8h-source.html deleted file mode 100644 index efe104f..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-common-hdrs_8h-source.html +++ /dev/null @@ -1,94 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:08 2008 - - - - -
-
- -

xed-common-hdrs.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 
-00037 
-00038 #ifndef _XED_COMMON_HDRS_H_
-00039 # define _XED_COMMON_HDRS_H_
-00040 
-00042 #if !defined(XED_MESSAGES)
-00043 # define XED_MESSAGES 0
-00044 #endif
-00045 
-00046 #if defined(XED_DLL)
-00047 //  __declspec(dllexport) works with GNU GCC or MS compilers
-00048 # define XED_DLL_EXPORT __declspec(dllexport)
-00049 # define XED_DLL_IMPORT __declspec(dllimport)
-00050 #  if defined(XED_BUILD)
-00051 #    define XED_DLL_GLOBAL XED_DLL_EXPORT
-00052 #  else
-00053 #    define XED_DLL_GLOBAL XED_DLL_IMPORT
-00054 #  endif
-00055 #else
-00056 # define XED_DLL_EXPORT 
-00057 # define XED_DLL_IMPORT
-00058 # define XED_DLL_GLOBAL
-00059 #endif
-00060 
-00061 
-00062 #endif
-00063 
-

Generated on Thu May 15 03:15:08 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-common-hdrs_8h.html b/misc/decoder_test/XED2/doc/html/xed-common-hdrs_8h.html deleted file mode 100644 index 2b63ae8..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-common-hdrs_8h.html +++ /dev/null @@ -1,155 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-common-hdrs.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-common-hdrs.h. -

- -

-Go to the source code of this file. - - - - - - - - - - -

Defines

#define XED_DLL_EXPORT
#define XED_DLL_GLOBAL
#define XED_DLL_IMPORT
#define XED_MESSAGES   0
-


Define Documentation

-

- - - - -
- - - - -
#define XED_DLL_EXPORT
-
- - - - - -
-   - - -

- -

-Definition at line 56 of file xed-common-hdrs.h.

-

- - - - -
- - - - -
#define XED_DLL_GLOBAL
-
- - - - - -
-   - - -

- -

-Definition at line 58 of file xed-common-hdrs.h.

-

- - - - -
- - - - -
#define XED_DLL_IMPORT
-
- - - - - -
-   - - -

- -

-Definition at line 57 of file xed-common-hdrs.h.

-

- - - - -
- - - - -
#define XED_MESSAGES   0
-
- - - - - -
-   - - -

- -

-Definition at line 43 of file xed-common-hdrs.h.

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-decode_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-decode_8h-source.html deleted file mode 100644 index a20f420..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-decode_8h-source.html +++ /dev/null @@ -1,95 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:08 2008 - - - - -
-
- -

xed-decode.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 
-00037 #ifndef _XED_DECODE_H_
-00038 # define _XED_DECODE_H_
-00039 
-00040 
-00041 #include "xed-decoded-inst.h"
-00042 #include "xed-error-enum.h"
-00044 // DEFINES
-00046 
-00048 // TYPES
-00050 
-00052 
-00054 // PROTOTYPES
-00056 
-00080 XED_DLL_EXPORT xed_error_enum_t
-00081 xed_decode(xed_decoded_inst_t* xedd, 
-00082            const xed_uint8_t* itext, 
-00083            const unsigned int bytes);
-00084 
-00085 
-00087 // GLOBALS
-00089 
-00090 
-00091 #endif
-00092 
-00093 //Local Variables:
-00094 //pref: "../../xed-decode.cpp"
-00095 //End:
-

Generated on Thu May 15 03:15:08 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-decode_8h.html b/misc/decoder_test/XED2/doc/html/xed-decode_8h.html deleted file mode 100644 index a946c32..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-decode_8h.html +++ /dev/null @@ -1,51 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-decode.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-decode.h. -

-#include "xed-decoded-inst.h"
-#include "xed-error-enum.h"
- -

-Go to the source code of this file. - - - - - -

Functions

XED_DLL_EXPORT xed_error_enum_t xed_decode (xed_decoded_inst_t *xedd, const xed_uint8_t *itext, const unsigned int bytes)
 This is the main interface to the decoder.
-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-decoded-inst_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-decoded-inst_8h-source.html deleted file mode 100644 index 8a3bd5f..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-decoded-inst_8h-source.html +++ /dev/null @@ -1,329 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:08 2008 - - - - -
-
- -

xed-decoded-inst.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 #if !defined(_XED_DECODER_STATE_H_)
-00037 # define _XED_DECODER_STATE_H_
-00038 #include "xed-common-hdrs.h"
-00039 #include "xed-common-defs.h"
-00040 #include "xed-portability.h"
-00041 #include "xed-util.h"
-00042 #include "xed-types.h"
-00043 #include "xed-operand-values-interface.h" 
-00044 #include "xed-inst.h"
-00045 #include "xed-flags.h"
-00046 #include "xed-encoder-gen-defs.h" //generated
-00047 
-00048 
-00049 // fwd-decl xed_simple_flag_t;
-00050 // fwd-decl xed_inst_t;
-00051 
-00052 
-00053 struct xed_encoder_vars_s;
-00054 struct xed_decoder_vars_s;
-00055 
-00061 typedef struct XED_DLL_EXPORT xed_decoded_inst_s  {
-00063     xed_operand_values_t _operands[XED_OPERAND_LAST]; // FIXME: can further squeeze down 16b units
-00064 
-00066     xed_uint8_t _operand_order[XED_ENCODE_ORDER_MAX_OPERANDS];
-00067 
-00068     xed_uint8_t _decoded_length;
-00069     // Length of the _operand_order[] array.
-00070     xed_uint8_t _n_operand_order; 
-00071 
-00075     const xed_inst_t* _inst;
-00076 
-00077     // decoder does not change it, encoder does    
-00078     union {
-00079         xed_uint8_t* _enc;
-00080         const xed_uint8_t* _dec;
-00081     } _byte_array; 
-00082 
-00083     // These are stack allocated by xed_encode() or xed_decode(). These are
-00084     // per-encode or per-decode transitory data.
-00085     union {
-00086 
-00087         /* user_data is available as a user data storage field after
-00088          * decoding. It does not live across re-encodes or re-decodes. */
-00089         xed_uint64_t user_data; 
-00090         struct xed_decoder_vars_s* dv;
-00091         struct xed_encoder_vars_s* ev;
-00092     } u;
-00093 
-00094 
-00095     
-00096 } xed_decoded_inst_t;
-00097 
-00098 
-00099 
-00101 
-00102 
-00103 
-00104 static XED_INLINE const xed_operand_values_t* 
-00105 xed_decoded_inst_operands_const(const xed_decoded_inst_t* p) {
-00106     return STATIC_CAST(xed_operand_values_t*,p->_operands);
-00107 }
-00110 static XED_INLINE xed_operand_values_t* 
-00111 xed_decoded_inst_operands(xed_decoded_inst_t* p) {
-00112     return STATIC_CAST(xed_operand_values_t*,p->_operands);
-00113 }
-00115 
-00117 
-00118 
-00119 
-00120 XED_DLL_EXPORT void  xed_decoded_inst_zero_set_mode(xed_decoded_inst_t* p, const xed_state_t* dstate);
-00123 XED_DLL_EXPORT void  xed_decoded_inst_zero_keep_mode(xed_decoded_inst_t* p);
-00126 XED_DLL_EXPORT void  xed_decoded_inst_zero(xed_decoded_inst_t* p);
-00129 XED_DLL_EXPORT void  xed_decoded_inst_zero_keep_mode_from_operands(xed_decoded_inst_t* p,
-00130                                                                    const xed_operand_values_t* operands);
-00132 
-00134 
-00135 
-00136 
-00137 static XED_INLINE xed_uint_t
-00138 xed_decoded_inst_get_length(const xed_decoded_inst_t* p) {  
-00139     return p->_decoded_length;
-00140 }
-00141 
-00142 
-00144 
-00146 
-00147 
-00148 static XED_INLINE xed_uint_t xed_decoded_inst_get_mode(const xed_decoded_inst_t* p) {
-00149     return p->_operands[XED_OPERAND_MODE];
-00150 }
-00152 static XED_INLINE xed_uint_t xed_decoded_inst_get_address_mode(const xed_decoded_inst_t* p) {
-00153     return p->_operands[XED_OPERAND_AMODE];
-00154 }
-00156 static XED_INLINE xed_uint_t xed_decoded_inst_get_stack_address_mode(const xed_decoded_inst_t* p) {
-00157     return p->_operands[XED_OPERAND_SMODE];
-00158 }
-00160 
-00161 
-00165 
-00167 
-00168 
-00169 
-00170 static XED_INLINE xed_bool_t xed_decoded_inst_valid(const xed_decoded_inst_t* p ) {
-00171     return STATIC_CAST(xed_bool_t,(p->_inst != 0));
-00172 }
-00175 static XED_INLINE const xed_inst_t* xed_decoded_inst_inst( const xed_decoded_inst_t* p) {
-00176     return p->_inst;
-00177 }
-00178 
-00179 
-00182 static XED_INLINE xed_category_enum_t xed_decoded_inst_get_category(const xed_decoded_inst_t* p) {
-00183     xed_assert(p->_inst != 0);
-00184     return xed_inst_category(p->_inst);
-00185 }
-00188 static XED_INLINE xed_extension_enum_t xed_decoded_inst_get_extension( const xed_decoded_inst_t* p) {
-00189     xed_assert(p->_inst != 0);
-00190     return xed_inst_extension(p->_inst);
-00191 }
-00194 static XED_INLINE xed_iclass_enum_t xed_decoded_inst_get_iclass( const xed_decoded_inst_t* p){
-00195     xed_assert(p->_inst != 0);
-00196     return xed_inst_iclass(p->_inst);
-00197 }
-00198 
-00201 XED_DLL_EXPORT xed_uint32_t xed_decoded_inst_get_attribute(const xed_decoded_inst_t* p, xed_attribute_enum_t attr);
-00202 
-00205 XED_DLL_EXPORT xed_uint32_t xed_decoded_inst_get_attributes(const xed_decoded_inst_t* p);
-00207 
-00209 
-00210 
-00213 static XED_INLINE xed_iform_enum_t xed_decoded_inst_get_iform_enum(const xed_decoded_inst_t* p) {
-00214     xed_assert(p->_inst != 0);
-00215     return xed_inst_iform_enum(p->_inst);
-00216 }
-00217 
-00218 
-00224 static XED_INLINE unsigned int xed_decoded_inst_get_iform_enum_dispatch(const xed_decoded_inst_t* p) {
-00225     xed_assert(p->_inst != 0);
-00226     return xed_inst_iform_enum(p->_inst) & 0xFF;
-00227 }
-00228 
-00233 XED_DLL_EXPORT xed_uint32_t xed_iform_max_per_iclass(xed_iclass_enum_t iclass);
-00234 
-00235 #define XED_MASK_IFORM(x) ((x) & 0xFF)
-00236 
-00240 static XED_INLINE xed_uint_t xed_decoded_inst_get_old_iform( const xed_decoded_inst_t* p){
-00241     xed_assert(p->_inst != 0);
-00242     return xed_inst_iform(p->_inst);
-00243 }
-00244 
-00246 
-00247 
-00248 
-00250 
-00251 
-00252 
-00253 XED_DLL_EXPORT unsigned int  xed_decoded_inst_operand_length(const xed_decoded_inst_t* p, 
-00254                                                              unsigned int operand_index);
-00257 static XED_INLINE unsigned int  xed_decoded_inst_noperands(const xed_decoded_inst_t* p) {
-00258     unsigned int noperands = xed_inst_noperands(xed_decoded_inst_inst(p));
-00259     return noperands;
-00260 }
-00262 
-00264 
-00265 
-00266 
-00267 XED_DLL_EXPORT void xed_decoded_inst_dump(const xed_decoded_inst_t* p, char* buf,  int buflen);
-00268 
-00277 XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_intel_format(const xed_decoded_inst_t* p, 
-00278                                                              char* buf, 
-00279                                                              int buflen, 
-00280                                                              xed_uint64_t runtime_address);
-00290 XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_intel_format_context(const xed_decoded_inst_t* p, 
-00291                                                                      char* buf, 
-00292                                                                      int buflen, 
-00293                                                                      xed_uint64_t runtime_address,
-00294                                                                      void* context);
-00295 
-00308 XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_att_format(const xed_decoded_inst_t* p, 
-00309                                                            char* buf, 
-00310                                                            int buflen, 
-00311                                                            xed_uint64_t runtime_address);
-00312 
-00325 XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_att_format_context(const xed_decoded_inst_t* p, 
-00326                                                                    char* buf, 
-00327                                                                    int buflen, 
-00328                                                                    xed_uint64_t runtime_address,
-00329                                                                    void* context);
-00330 
-00337 XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_xed_format(const xed_decoded_inst_t* p,
-00338                                                            char* buf, 
-00339                                                            int buflen, xed_uint64_t runtime_address) ;
-00341 
-00343 
-00344 
-00345 XED_DLL_EXPORT xed_reg_enum_t xed_decoded_inst_get_seg_reg(const xed_decoded_inst_t* p, unsigned int mem_idx);
-00347 XED_DLL_EXPORT xed_reg_enum_t xed_decoded_inst_get_base_reg(const xed_decoded_inst_t* p, unsigned int mem_idx);
-00348 XED_DLL_EXPORT xed_reg_enum_t xed_decoded_inst_get_index_reg(const xed_decoded_inst_t* p, unsigned int mem_idx);
-00350 XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_scale(const xed_decoded_inst_t* p, unsigned int mem_idx);
-00352 XED_DLL_EXPORT xed_int64_t xed_decoded_inst_get_memory_displacement(const xed_decoded_inst_t* p, unsigned int mem_idx);
-00355 XED_DLL_EXPORT xed_uint_t  xed_decoded_inst_get_memory_displacement_width(const xed_decoded_inst_t* p, unsigned int mem_idx);
-00358 XED_DLL_EXPORT xed_uint_t  xed_decoded_inst_get_memory_displacement_width_bits(const xed_decoded_inst_t* p, unsigned int mem_idx);
-00360 XED_DLL_EXPORT xed_int32_t xed_decoded_inst_get_branch_displacement(const xed_decoded_inst_t* p);
-00363 XED_DLL_EXPORT xed_uint_t  xed_decoded_inst_get_branch_displacement_width(const xed_decoded_inst_t* p);
-00366 XED_DLL_EXPORT xed_uint_t  xed_decoded_inst_get_branch_displacement_width_bits(const xed_decoded_inst_t* p);
-00368 XED_DLL_EXPORT xed_uint64_t xed_decoded_inst_get_unsigned_immediate(const xed_decoded_inst_t* p); 
-00371 XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_immediate_is_signed(const xed_decoded_inst_t* p);
-00374 XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_immediate_width(const xed_decoded_inst_t* p);
-00377 XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_immediate_width_bits(const xed_decoded_inst_t* p);
-00379 XED_DLL_EXPORT xed_int32_t xed_decoded_inst_get_signed_immediate(const xed_decoded_inst_t* p);
-00382 static XED_INLINE xed_uint8_t xed_decoded_inst_get_second_immediate(const xed_decoded_inst_t* p) {
-00383     return STATIC_CAST(xed_uint8_t,p->_operands[XED_OPERAND_UIMM1]);
-00384 }
-00385 
-00388 static XED_INLINE xed_reg_enum_t xed_decoded_inst_get_reg(const xed_decoded_inst_t* p, 
-00389                                                           xed_operand_enum_t reg_operand) {
-00390     return STATIC_CAST(xed_reg_enum_t,p->_operands[reg_operand]);
-00391 }
-00392 
-00393 
-00394 
-00396 XED_DLL_EXPORT const xed_simple_flag_t* xed_decoded_inst_get_rflags_info( const xed_decoded_inst_t* p );
-00398 XED_DLL_EXPORT xed_bool_t xed_decoded_inst_uses_rflags(const xed_decoded_inst_t* p);
-00400 XED_DLL_EXPORT xed_uint_t xed_decoded_inst_number_of_memory_operands(const xed_decoded_inst_t* p);
-00402 XED_DLL_EXPORT xed_bool_t xed_decoded_inst_mem_read(const xed_decoded_inst_t* p, unsigned int mem_idx);
-00404 XED_DLL_EXPORT xed_bool_t xed_decoded_inst_mem_written(const xed_decoded_inst_t* p, unsigned int mem_idx);
-00406 XED_DLL_EXPORT xed_bool_t xed_decoded_inst_mem_written_only(const xed_decoded_inst_t* p, unsigned int mem_idx);
-00408 XED_DLL_EXPORT xed_bool_t xed_decoded_inst_conditionally_writes_registers(const xed_decoded_inst_t* p);
-00410 XED_DLL_EXPORT unsigned int  xed_decoded_inst_get_memory_operand_length(const xed_decoded_inst_t* p, 
-00411                                                                         unsigned int memop_idx);
-00412 
-00413 
-00416 XED_DLL_EXPORT xed_bool_t xed_decoded_inst_is_prefetch(const xed_decoded_inst_t* p);
-00418 
-00419                   
-00421 
-00422 // Modifying decoded instructions before re-encoding    
-00424 XED_DLL_EXPORT void xed_decoded_inst_set_scale(xed_decoded_inst_t* p, xed_uint_t scale);
-00427 XED_DLL_EXPORT void xed_decoded_inst_set_memory_displacement(xed_decoded_inst_t* p, xed_int64_t disp, xed_uint_t length_bytes);
-00430 XED_DLL_EXPORT void xed_decoded_inst_set_branch_displacement(xed_decoded_inst_t* p, xed_int32_t disp, xed_uint_t length_bytes);
-00433 XED_DLL_EXPORT void xed_decoded_inst_set_immediate_signed(xed_decoded_inst_t* p, xed_int32_t x, xed_uint_t length_bytes);
-00436 XED_DLL_EXPORT void xed_decoded_inst_set_immediate_unsigned(xed_decoded_inst_t* p, xed_uint64_t x, xed_uint_t length_bytes);
-00437 
-00438 
-00441 XED_DLL_EXPORT void xed_decoded_inst_set_memory_displacement_bits(xed_decoded_inst_t* p, xed_int64_t disp, xed_uint_t length_bits);
-00444 XED_DLL_EXPORT void xed_decoded_inst_set_branch_displacement_bits(xed_decoded_inst_t* p, xed_int32_t disp, xed_uint_t length_bits);
-00447 XED_DLL_EXPORT void xed_decoded_inst_set_immediate_signed_bits(xed_decoded_inst_t* p, xed_int32_t x, xed_uint_t length_bits);
-00450 XED_DLL_EXPORT void xed_decoded_inst_set_immediate_unsigned_bits(xed_decoded_inst_t* p, xed_uint64_t x, xed_uint_t length_bits);
-00451 
-00453 
-00455 
-00456 
-00457 
-00458 static XED_INLINE  xed_uint64_t xed_decoded_inst_get_user_data(xed_decoded_inst_t* p) {
-00459     return p->u.user_data;
-00460 }
-00463 static XED_INLINE  void xed_decoded_inst_set_user_data(xed_decoded_inst_t* p, xed_uint64_t new_value) {
-00464     p->u.user_data = new_value;
-00465 }
-00467 #endif
-00468 //Local Variables:
-00469 //pref: "../../xed-decoded-inst.c"
-00470 //End:
-

Generated on Thu May 15 03:15:08 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-decoded-inst_8h.html b/misc/decoder_test/XED2/doc/html/xed-decoded-inst_8h.html deleted file mode 100644 index 4d1523e..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-decoded-inst_8h.html +++ /dev/null @@ -1,311 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-decoded-inst.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-decoded-inst.h. -

-#include "xed-common-hdrs.h"
-#include "xed-common-defs.h"
-#include "xed-portability.h"
-#include "xed-util.h"
-#include "xed-types.h"
-#include "xed-operand-values-interface.h"
-#include "xed-inst.h"
-#include "xed-flags.h"
-#include "xed-encoder-gen-defs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Data Structures

struct  xed_decoded_inst_s
 The main container for instructions. More...

IFORM handling

#define XED_MASK_IFORM(x)   ((x) & 0xFF)
static XED_INLINE xed_iform_enum_t xed_decoded_inst_get_iform_enum (const xed_decoded_inst_t *p)
 Return the instruction iform enum of type xed_iform_enum_t .
static XED_INLINE unsigned int xed_decoded_inst_get_iform_enum_dispatch (const xed_decoded_inst_t *p)
 Return the instruction zero-based iform number based on masking the corresponding xed_iform_enum_t.
static XED_INLINE xed_uint_t xed_decoded_inst_get_old_iform (const xed_decoded_inst_t *p)
 DEPRECATED Return the instruction iform number.
XED_DLL_EXPORT xed_uint32_t xed_iform_max_per_iclass (xed_iclass_enum_t iclass)
 Return the maximum number of iforms for a particular iclass.

xed_decoded_inst_t Operand Field Details

XED_DLL_EXPORT xed_bool_t xed_decoded_inst_conditionally_writes_registers (const xed_decoded_inst_t *p)
XED_DLL_EXPORT xed_reg_enum_t xed_decoded_inst_get_base_reg (const xed_decoded_inst_t *p, unsigned int mem_idx)
XED_DLL_EXPORT xed_int32_t xed_decoded_inst_get_branch_displacement (const xed_decoded_inst_t *p)
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_branch_displacement_width (const xed_decoded_inst_t *p)
 Result in BYTES.
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_branch_displacement_width_bits (const xed_decoded_inst_t *p)
 Result in BITS.
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_immediate_is_signed (const xed_decoded_inst_t *p)
 Return true if the first immediate (IMM0) is signed.
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_immediate_width (const xed_decoded_inst_t *p)
 Return the immediate width in BYTES.
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_immediate_width_bits (const xed_decoded_inst_t *p)
 Return the immediate width in BITS.
XED_DLL_EXPORT xed_reg_enum_t xed_decoded_inst_get_index_reg (const xed_decoded_inst_t *p, unsigned int mem_idx)
XED_DLL_EXPORT xed_int64_t xed_decoded_inst_get_memory_displacement (const xed_decoded_inst_t *p, unsigned int mem_idx)
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_memory_displacement_width (const xed_decoded_inst_t *p, unsigned int mem_idx)
 Result in BYTES.
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_memory_displacement_width_bits (const xed_decoded_inst_t *p, unsigned int mem_idx)
 Result in BITS.
XED_DLL_EXPORT unsigned int xed_decoded_inst_get_memory_operand_length (const xed_decoded_inst_t *p, unsigned int memop_idx)
static XED_INLINE xed_reg_enum_t xed_decoded_inst_get_reg (const xed_decoded_inst_t *p, xed_operand_enum_t reg_operand)
 Return the specified register operand.
XED_DLL_EXPORT const xed_simple_flag_txed_decoded_inst_get_rflags_info (const xed_decoded_inst_t *p)
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_scale (const xed_decoded_inst_t *p, unsigned int mem_idx)
static XED_INLINE xed_uint8_t xed_decoded_inst_get_second_immediate (const xed_decoded_inst_t *p)
 Return the second immediate.
XED_DLL_EXPORT xed_reg_enum_t xed_decoded_inst_get_seg_reg (const xed_decoded_inst_t *p, unsigned int mem_idx)
XED_DLL_EXPORT xed_int32_t xed_decoded_inst_get_signed_immediate (const xed_decoded_inst_t *p)
XED_DLL_EXPORT xed_uint64_t xed_decoded_inst_get_unsigned_immediate (const xed_decoded_inst_t *p)
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_is_prefetch (const xed_decoded_inst_t *p)
 Returns true if the instruction is a prefetch.
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_mem_read (const xed_decoded_inst_t *p, unsigned int mem_idx)
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_mem_written (const xed_decoded_inst_t *p, unsigned int mem_idx)
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_mem_written_only (const xed_decoded_inst_t *p, unsigned int mem_idx)
XED_DLL_EXPORT xed_uint_t xed_decoded_inst_number_of_memory_operands (const xed_decoded_inst_t *p)
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_uses_rflags (const xed_decoded_inst_t *p)

xed_decoded_inst_t Printers

XED_DLL_EXPORT void xed_decoded_inst_dump (const xed_decoded_inst_t *p, char *buf, int buflen)
 Print out all the information about the decoded instruction to the buffer buf whose length is maximally buflen.
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_att_format (const xed_decoded_inst_t *p, char *buf, int buflen, xed_uint64_t runtime_address)
 Print the instructions with the destination operand on the right, with several exceptions (bound, invlpga, enter, and other instructions with two immediate operands).
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_att_format_context (const xed_decoded_inst_t *p, char *buf, int buflen, xed_uint64_t runtime_address, void *context)
 Print the instructions with the destination operand on the right, with several exceptions (bound, invlpga, enter, and other instructions with two immediate operands).
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_intel_format (const xed_decoded_inst_t *p, char *buf, int buflen, xed_uint64_t runtime_address)
 Print the instructions with the destination on the left.
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_intel_format_context (const xed_decoded_inst_t *p, char *buf, int buflen, xed_uint64_t runtime_address, void *context)
 Print the instructions with the destination on the left.
XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_xed_format (const xed_decoded_inst_t *p, char *buf, int buflen, xed_uint64_t runtime_address)

modes

static XED_INLINE xed_uint_t xed_decoded_inst_get_address_mode (const xed_decoded_inst_t *p)
static XED_INLINE xed_uint_t xed_decoded_inst_get_mode (const xed_decoded_inst_t *p)
static XED_INLINE xed_uint_t xed_decoded_inst_get_stack_address_mode (const xed_decoded_inst_t *p)

xed_decoded_inst_t High-level accessors

XED_DLL_EXPORT xed_uint32_t xed_decoded_inst_get_attribute (const xed_decoded_inst_t *p, xed_attribute_enum_t attr)
 Returns 1 if the attribute is defined for this instruction.
XED_DLL_EXPORT xed_uint32_t xed_decoded_inst_get_attributes (const xed_decoded_inst_t *p)
 Returns the attribute bitvector.
static XED_INLINE xed_category_enum_t xed_decoded_inst_get_category (const xed_decoded_inst_t *p)
 Return the instruction category enumeration.
static XED_INLINE xed_extension_enum_t xed_decoded_inst_get_extension (const xed_decoded_inst_t *p)
 Return the instruction extension enumeration.
static XED_INLINE xed_iclass_enum_t xed_decoded_inst_get_iclass (const xed_decoded_inst_t *p)
 Return the instruction class enumeration.
static XED_INLINE const xed_inst_txed_decoded_inst_inst (const xed_decoded_inst_t *p)
 Return the xed_inst_t structure for this instruction.
static XED_INLINE xed_bool_t xed_decoded_inst_valid (const xed_decoded_inst_t *p)
 Return true if the instruction is valid.

xed_decoded_inst_t Length

static XED_INLINE xed_uint_t xed_decoded_inst_get_length (const xed_decoded_inst_t *p)
 Return the length of the decoded instruction in bytes.

xed_decoded_inst_t User Data Field

static XED_INLINE xed_uint64_t xed_decoded_inst_get_user_data (xed_decoded_inst_t *p)
 Return a user data field for arbitrary use by the user after decoding.
static XED_INLINE void xed_decoded_inst_set_user_data (xed_decoded_inst_t *p, xed_uint64_t new_value)
 Modify the user data field.

xed_decoded_inst_t Operands: Number and Length

static XED_INLINE unsigned int xed_decoded_inst_noperands (const xed_decoded_inst_t *p)
 Return the number of operands.
XED_DLL_EXPORT unsigned int xed_decoded_inst_operand_length (const xed_decoded_inst_t *p, unsigned int operand_index)
 Return the length in bytes of the operand_index'th operand.

xed_decoded_inst_t Operands array access

static XED_INLINE xed_operand_values_txed_decoded_inst_operands (xed_decoded_inst_t *p)
 Obtain a non-constant pointer to the operands.
static XED_INLINE const xed_operand_values_txed_decoded_inst_operands_const (const xed_decoded_inst_t *p)
 Obtain a constant pointer to the operands.

xed_decoded_inst_t Modification

XED_DLL_EXPORT void xed_decoded_inst_set_branch_displacement (xed_decoded_inst_t *p, xed_int32_t disp, xed_uint_t length_bytes)
 Set the branch displacement using a BYTE length.
XED_DLL_EXPORT void xed_decoded_inst_set_branch_displacement_bits (xed_decoded_inst_t *p, xed_int32_t disp, xed_uint_t length_bits)
 Set the branch displacement a BITS length.
XED_DLL_EXPORT void xed_decoded_inst_set_immediate_signed (xed_decoded_inst_t *p, xed_int32_t x, xed_uint_t length_bytes)
 Set the signed immediate a BYTE length.
XED_DLL_EXPORT void xed_decoded_inst_set_immediate_signed_bits (xed_decoded_inst_t *p, xed_int32_t x, xed_uint_t length_bits)
 Set the signed immediate a BITS length.
XED_DLL_EXPORT void xed_decoded_inst_set_immediate_unsigned (xed_decoded_inst_t *p, xed_uint64_t x, xed_uint_t length_bytes)
 Set the unsigned immediate a BYTE length.
XED_DLL_EXPORT void xed_decoded_inst_set_immediate_unsigned_bits (xed_decoded_inst_t *p, xed_uint64_t x, xed_uint_t length_bits)
 Set the unsigned immediate a BITS length.
XED_DLL_EXPORT void xed_decoded_inst_set_memory_displacement (xed_decoded_inst_t *p, xed_int64_t disp, xed_uint_t length_bytes)
 Set the memory displacement using a BYTE length.
XED_DLL_EXPORT void xed_decoded_inst_set_memory_displacement_bits (xed_decoded_inst_t *p, xed_int64_t disp, xed_uint_t length_bits)
 Set the memory displacement a BITS length.
XED_DLL_EXPORT void xed_decoded_inst_set_scale (xed_decoded_inst_t *p, xed_uint_t scale)

xed_decoded_inst_t Initialization

XED_DLL_EXPORT void xed_decoded_inst_zero (xed_decoded_inst_t *p)
 Zero the decode structure completely.
XED_DLL_EXPORT void xed_decoded_inst_zero_keep_mode (xed_decoded_inst_t *p)
 Zero the decode structure, but preserve the existing machine state/mode information.
XED_DLL_EXPORT void xed_decoded_inst_zero_keep_mode_from_operands (xed_decoded_inst_t *p, const xed_operand_values_t *operands)
 Zero the decode structure, but copy the existing machine state/mode information from the supplied operands pointer.
XED_DLL_EXPORT void xed_decoded_inst_zero_set_mode (xed_decoded_inst_t *p, const xed_state_t *dstate)
 Zero the decode structure, but set the machine state/mode information.

Defines

#define _XED_DECODER_STATE_H_

Typedefs

typedef XED_DLL_EXPORT xed_decoded_inst_s xed_decoded_inst_t
 The main container for instructions.
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_DECODER_STATE_H_
-
- - - - - -
-   - - -

- -

-Definition at line 37 of file xed-decoded-inst.h.

-

- - - - -
- - - - - - - - - -
#define XED_MASK_IFORM  )    ((x) & 0xFF)
-
- - - - - -
-   - - -

- -

-Definition at line 235 of file xed-decoded-inst.h.

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-disas_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-disas_8h-source.html deleted file mode 100644 index e3199e8..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-disas_8h-source.html +++ /dev/null @@ -1,85 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:08 2008 - - - - -
-
- -

xed-disas.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 #if !defined(_XED_DISAS_H_)
-00037 # define _XED_DISAS_H_
-00038 
-00039 #include "xed-types.h"
-00040 
-00046 //  The call back should return 0 if the buffer is not long enough to
-00047 //  include the null termination.If no symbolic information is
-00048 //  located, the function returns zero.
-00060 typedef  int XED_DLL_EXPORT (*xed_disassembly_callback_fn_t)(
-00061     xed_uint64_t  address,
-00062     char*         symbol_buffer,
-00063     xed_uint32_t  buffer_length,
-00064     xed_uint64_t* offset,
-00065     void*         context);
-00066 
-00071 XED_DLL_EXPORT void xed_register_disassembly_callback(xed_disassembly_callback_fn_t f);
-00072 
-00073 #endif
-

Generated on Thu May 15 03:15:08 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-disas_8h.html b/misc/decoder_test/XED2/doc/html/xed-disas_8h.html deleted file mode 100644 index 280980b..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-disas_8h.html +++ /dev/null @@ -1,82 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-disas.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-disas.h. -

-#include "xed-types.h"
- -

-Go to the source code of this file. - - - - - - - - - - - -

Defines

#define _XED_DISAS_H_

Typedefs

typedef int XED_DLL_EXPORT(* xed_disassembly_callback_fn_t )(xed_uint64_t address, char *symbol_buffer, xed_uint32_t buffer_length, xed_uint64_t *offset, void *context)

Functions

XED_DLL_EXPORT void xed_register_disassembly_callback (xed_disassembly_callback_fn_t f)
 Register a disassembly call back function of type xed_disassembly_callback_fn_t to get called when the disassembler needs to get a symbol and offset for an address.
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_DISAS_H_
-
- - - - - -
-   - - -

- -

-Definition at line 37 of file xed-disas.h.

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-doc-top_8txt.html b/misc/decoder_test/XED2/doc/html/xed-doc-top_8txt.html deleted file mode 100644 index c47831c..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-doc-top_8txt.html +++ /dev/null @@ -1,39 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-doc-top.txt File Reference

-

- - -
-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-encode_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-encode_8h-source.html deleted file mode 100644 index aee7cfc..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-encode_8h-source.html +++ /dev/null @@ -1,241 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:08 2008 - - - - -
-
- -

xed-encode.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 
-00037 #ifndef _XED_ENCODE_H_
-00038 # define _XED_ENCODE_H_
-00039 #include "xed-common-hdrs.h"
-00040 #include "xed-types.h"
-00041 #include "xed-error-enum.h"
-00042 #include "xed-operand-values-interface.h"
-00043 #include "xed-operand-width-enum.h"
-00044 #include "xed-encoder-iforms.h" //generated
-00045 #include "xed-encoder-gen-defs.h" //generated
-00046 
-00047 // we now (mostly) share the decode data structure
-00048 #include "xed-decoded-inst.h" 
-00049 
-00050 
-00051 // establish a type equivalence for the xed_encoder_request_t and the corresponding xed_decoded_inst_t.
-00052 
-00054 typedef struct  xed_decoded_inst_s xed_encoder_request_s; 
-00056 typedef xed_decoded_inst_t xed_encoder_request_t; 
-00057 
-00058 
-00060 XED_DLL_EXPORT xed_iclass_enum_t 
-00061 xed_encoder_request_get_iclass( const xed_encoder_request_t* p);
-00062 
-00064 // set functions
-00065 
-00067 XED_DLL_EXPORT void  
-00068 xed_encoder_request_set_iclass( xed_encoder_request_t* p, 
-00069                                 xed_iclass_enum_t iclass);
-00070 
-00072 
-00073 
-00074 
-00075 XED_DLL_EXPORT void xed_encoder_request_set_lock(xed_encoder_request_t* p);
-00078 XED_DLL_EXPORT void xed_encoder_request_set_repne(xed_encoder_request_t* p);
-00081 XED_DLL_EXPORT void xed_encoder_request_set_rep(xed_encoder_request_t* p);
-00083 
-00085 
-00086 
-00087 XED_DLL_EXPORT void  xed_encoder_request_set_effective_operand_width( xed_encoder_request_t* p, 
-00088                                                                       xed_uint_t width_bits);
-00090 XED_DLL_EXPORT void  xed_encoder_request_set_effective_address_size( xed_encoder_request_t* p, 
-00091                                                                      xed_uint_t width_bits);
-00099 XED_DLL_EXPORT void xed_encoder_request_set_reg(xed_encoder_request_t* p,
-00100                                                 xed_operand_enum_t operand, 
-00101                                                 xed_reg_enum_t reg);
-00103 
-00105 
-00106 
-00119 XED_DLL_EXPORT void xed_encoder_request_set_operand_order(xed_encoder_request_t* p, 
-00120                                                           xed_uint_t operand_index, 
-00121                                                           xed_operand_enum_t name);
-00122 
-00130 XED_DLL_EXPORT xed_operand_enum_t xed_encoder_request_get_operand_order(xed_encoder_request_t* p, 
-00131                                                                         xed_uint_t operand_index);
-00132                                                                         
-00133 
-00137 static XED_INLINE 
-00138 xed_uint_t xed_encoder_request_operand_order_entries(xed_encoder_request_t* p) {
-00139     return  p->_n_operand_order;
-00140 }
-00141 
-00143 
-00144 
-00146 
-00147 
-00148 XED_DLL_EXPORT void xed_encoder_request_set_relbr(xed_encoder_request_t* p);
-00150 XED_DLL_EXPORT void xed_encoder_request_set_branch_displacement(xed_encoder_request_t* p,
-00151                                                                 xed_int32_t brdisp,
-00152                                                                 xed_uint_t nbytes);
-00154 XED_DLL_EXPORT void xed_encoder_request_set_ptr(xed_encoder_request_t* p);
-00156 
-00157 
-00159 
-00160 
-00161 
-00162 XED_DLL_EXPORT void xed_encoder_request_set_uimm0(xed_encoder_request_t* p,
-00163                                                   xed_uint64_t uimm,
-00164                                                   xed_uint_t nbytes);
-00167 XED_DLL_EXPORT void xed_encoder_request_set_uimm0_bits(xed_encoder_request_t* p,
-00168                                                        xed_uint64_t uimm,
-00169                                                        xed_uint_t nbits);
-00171 XED_DLL_EXPORT void xed_encoder_request_set_uimm1(xed_encoder_request_t* p,
-00172                                                   xed_uint8_t uimm);
-00175 XED_DLL_EXPORT void xed_encoder_request_set_simm(xed_encoder_request_t* p,
-00176                                                  xed_int32_t simm,
-00177                                                  xed_uint_t nbytes);
-00179 
-00181 
-00182 
-00183 XED_DLL_EXPORT void xed_encoder_request_set_memory_displacement(xed_encoder_request_t* p,
-00184                                                                 xed_int64_t memdisp,
-00185                                                                 xed_uint_t nbytes);
-00186 
-00188 XED_DLL_EXPORT void xed_encoder_request_set_agen(xed_encoder_request_t* p);
-00190 XED_DLL_EXPORT void xed_encoder_request_set_mem0(xed_encoder_request_t* p);
-00192 XED_DLL_EXPORT void xed_encoder_request_set_mem1(xed_encoder_request_t* p);
-00194 XED_DLL_EXPORT void xed_encoder_request_set_memory_operand_length(xed_encoder_request_t* p,
-00195                                                                   xed_uint_t nbytes);
-00197 XED_DLL_EXPORT void xed_encoder_request_set_seg0(xed_encoder_request_t* p,
-00198                                   xed_reg_enum_t seg_reg);
-00200 XED_DLL_EXPORT void xed_encoder_request_set_seg1(xed_encoder_request_t* p,
-00201                                   xed_reg_enum_t seg_reg);
-00203 XED_DLL_EXPORT void xed_encoder_request_set_base0(xed_encoder_request_t* p,
-00204                                    xed_reg_enum_t base_reg);
-00206 XED_DLL_EXPORT void xed_encoder_request_set_base1(xed_encoder_request_t* p,
-00207                                    xed_reg_enum_t base_reg) ;
-00209 XED_DLL_EXPORT void xed_encoder_request_set_index(xed_encoder_request_t* p,
-00210                                    xed_reg_enum_t index_reg);
-00212 XED_DLL_EXPORT void xed_encoder_request_set_scale(xed_encoder_request_t* p,
-00213                                    xed_uint_t scale);
-00215 
-00218 XED_DLL_EXPORT const xed_operand_values_t* xed_encoder_request_operands_const(const xed_encoder_request_t* p);
-00220 XED_DLL_EXPORT xed_operand_values_t* xed_encoder_request_operands(xed_encoder_request_t* p);
-00221 
-00223 
-00224 
-00228 XED_DLL_EXPORT void xed_encoder_request_zero_operand_order(xed_encoder_request_t* p);
-00229 
-00231 XED_DLL_EXPORT void  xed_encoder_request_zero_set_mode(xed_encoder_request_t* p,
-00232                                                        const xed_state_t* dstate);
-00234 XED_DLL_EXPORT void  xed_encoder_request_zero(xed_encoder_request_t* p) ;
-00236 
-00237 struct xed_decoded_inst_s; //fwd decl
-00240 XED_DLL_EXPORT void  xed_encoder_request_init_from_decode(struct xed_decoded_inst_s* d);
-00241 
-00242 void
-00243 xed_encoder_request_encode_emit(xed_encoder_request_t* q,
-00244                                 const unsigned int bits,
-00245                                 const xed_uint64_t value);
-00246     
-00247 xed_bool_t
-00248 xed_encoder_request__memop_compatible(const xed_encoder_request_t* p,
-00249                                       xed_operand_width_enum_t operand_width);
-00250 
-00252 
-00253 
-00254 XED_DLL_EXPORT void xed_encode_request_print(const xed_encoder_request_t* p, 
-00255                                              char* buf, xed_uint_t buflen);
-00257 
-00258 // Type signature for an encode function
-00259 typedef xed_uint_t (*xed_encode_function_pointer_t)(xed_encoder_request_t* enc_req);
-00260 
-00261 
-00263 
-00264 
-00265 
-00266 
-00267 
-00268 
-00269 
-00270 
-00271 
-00272 
-00273 
-00274 
-00275 
-00276 
-00277 
-00278 XED_DLL_EXPORT xed_error_enum_t
-00279 xed_encode(xed_encoder_request_t* r,
-00280            xed_uint8_t* array, 
-00281            const unsigned int ilen,
-00282            unsigned int* olen);
-00283 
-00291 XED_DLL_EXPORT xed_error_enum_t
-00292 xed_encode_nop(xed_uint8_t* array, 
-00293                const unsigned int ilen);
-00295 
-00296 #endif
-00297 
-00298 //Local Variables:
-00299 //pref: "../../xed-encode.c"
-00300 //End:
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-encode_8h.html b/misc/decoder_test/XED2/doc/html/xed-encode_8h.html deleted file mode 100644 index 45ad206..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-encode_8h.html +++ /dev/null @@ -1,267 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-encode.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-encode.h. -

-#include "xed-common-hdrs.h"
-#include "xed-types.h"
-#include "xed-error-enum.h"
-#include "xed-operand-values-interface.h"
-#include "xed-operand-width-enum.h"
-#include "xed-encoder-iforms.h"
-#include "xed-encoder-gen-defs.h"
-#include "xed-decoded-inst.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Encoding

XED_DLL_EXPORT xed_error_enum_t xed_encode (xed_encoder_request_t *r, xed_uint8_t *array, const unsigned int ilen, unsigned int *olen)
 This is the main interface to the encoder.
XED_DLL_EXPORT xed_error_enum_t xed_encode_nop (xed_uint8_t *array, const unsigned int ilen)
 This function will attempt to encode a NOP of exactly ilen bytes.

String Printing

XED_DLL_EXPORT void xed_encode_request_print (const xed_encoder_request_t *p, char *buf, xed_uint_t buflen)

Operand Order

XED_DLL_EXPORT xed_operand_enum_t xed_encoder_request_get_operand_order (xed_encoder_request_t *p, xed_uint_t operand_index)
static XED_INLINE xed_uint_t xed_encoder_request_operand_order_entries (xed_encoder_request_t *p)
 Retreive the number of entries in the encoder operand order array.
XED_DLL_EXPORT void xed_encoder_request_set_operand_order (xed_encoder_request_t *p, xed_uint_t operand_index, xed_operand_enum_t name)

Memory

XED_DLL_EXPORT void xed_encoder_request_set_agen (xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_set_base0 (xed_encoder_request_t *p, xed_reg_enum_t base_reg)
XED_DLL_EXPORT void xed_encoder_request_set_base1 (xed_encoder_request_t *p, xed_reg_enum_t base_reg)
XED_DLL_EXPORT void xed_encoder_request_set_index (xed_encoder_request_t *p, xed_reg_enum_t index_reg)
XED_DLL_EXPORT void xed_encoder_request_set_mem0 (xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_set_mem1 (xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_set_memory_displacement (xed_encoder_request_t *p, xed_int64_t memdisp, xed_uint_t nbytes)
XED_DLL_EXPORT void xed_encoder_request_set_memory_operand_length (xed_encoder_request_t *p, xed_uint_t nbytes)
XED_DLL_EXPORT void xed_encoder_request_set_scale (xed_encoder_request_t *p, xed_uint_t scale)
XED_DLL_EXPORT void xed_encoder_request_set_seg0 (xed_encoder_request_t *p, xed_reg_enum_t seg_reg)
XED_DLL_EXPORT void xed_encoder_request_set_seg1 (xed_encoder_request_t *p, xed_reg_enum_t seg_reg)

branches and far pointers

XED_DLL_EXPORT void xed_encoder_request_set_branch_displacement (xed_encoder_request_t *p, xed_int32_t brdisp, xed_uint_t nbytes)
XED_DLL_EXPORT void xed_encoder_request_set_ptr (xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_set_relbr (xed_encoder_request_t *p)

Primary Encode Functions

XED_DLL_EXPORT void xed_encoder_request_set_effective_address_size (xed_encoder_request_t *p, xed_uint_t width_bits)
XED_DLL_EXPORT void xed_encoder_request_set_effective_operand_width (xed_encoder_request_t *p, xed_uint_t width_bits)
XED_DLL_EXPORT void xed_encoder_request_set_reg (xed_encoder_request_t *p, xed_operand_enum_t operand, xed_reg_enum_t reg)

Prefixes

XED_DLL_EXPORT void xed_encoder_request_set_lock (xed_encoder_request_t *p)
 For locked (atomic read-modify-write) memops requests.
XED_DLL_EXPORT void xed_encoder_request_set_rep (xed_encoder_request_t *p)
 for REP(F3) and REPNE(F2) prefixe on string ops
XED_DLL_EXPORT void xed_encoder_request_set_repne (xed_encoder_request_t *p)
 for REP(F3) and REPNE(F2) prefixe on string ops

Immediates

XED_DLL_EXPORT void xed_encoder_request_set_simm (xed_encoder_request_t *p, xed_int32_t simm, xed_uint_t nbytes)
 same storage as uimm0
XED_DLL_EXPORT void xed_encoder_request_set_uimm0 (xed_encoder_request_t *p, xed_uint64_t uimm, xed_uint_t nbytes)
 Set the uimm0 using a BYTE width.
XED_DLL_EXPORT void xed_encoder_request_set_uimm0_bits (xed_encoder_request_t *p, xed_uint64_t uimm, xed_uint_t nbits)
 Set the uimm0 using a BIT width.
XED_DLL_EXPORT void xed_encoder_request_set_uimm1 (xed_encoder_request_t *p, xed_uint8_t uimm)

Initialization

XED_DLL_EXPORT void xed_encoder_request_zero (xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_zero_operand_order (xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_zero_set_mode (xed_encoder_request_t *p, const xed_state_t *dstate)

Typedefs

typedef xed_uint_t(* xed_encode_function_pointer_t )(xed_encoder_request_t *enc_req)
typedef xed_decoded_inst_s xed_encoder_request_s
typedef xed_decoded_inst_t xed_encoder_request_t

Functions

xed_bool_t xed_encoder_request__memop_compatible (const xed_encoder_request_t *p, xed_operand_width_enum_t operand_width)
void xed_encoder_request_encode_emit (xed_encoder_request_t *q, const unsigned int bits, const xed_uint64_t value)
XED_DLL_EXPORT xed_iclass_enum_t xed_encoder_request_get_iclass (const xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_init_from_decode (struct xed_decoded_inst_s *d)
 Converts an decoder request to a valid encoder request.
XED_DLL_EXPORT xed_operand_values_txed_encoder_request_operands (xed_encoder_request_t *p)
XED_DLL_EXPORT const xed_operand_values_txed_encoder_request_operands_const (const xed_encoder_request_t *p)
XED_DLL_EXPORT void xed_encoder_request_set_iclass (xed_encoder_request_t *p, xed_iclass_enum_t iclass)
-


Typedef Documentation

-

- - - - -
- - - - -
typedef xed_uint_t(* xed_encode_function_pointer_t)(xed_encoder_request_t *enc_req)
-
- - - - - -
-   - - -

- -

-Definition at line 259 of file xed-encode.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - - - - - - - - - - -
xed_bool_t xed_encoder_request__memop_compatible const xed_encoder_request_t p,
xed_operand_width_enum_t  operand_width
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void xed_encoder_request_encode_emit xed_encoder_request_t q,
const unsigned int  bits,
const xed_uint64_t  value
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-encoder-gen-defs_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-encoder-gen-defs_8h-source.html deleted file mode 100644 index 27def12..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-encoder-gen-defs_8h-source.html +++ /dev/null @@ -1,75 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-encoder-gen-defs.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_ENCODER_GEN_DEFS_H_)
-00040 # define _XED_ENCODER_GEN_DEFS_H_
-00041 #define XED_ENCODE_ORDER_MAX_ENTRIES  23
-00042 #define XED_ENCODE_ORDER_MAX_OPERANDS 4
-00043 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-encoder-gen-defs_8h.html b/misc/decoder_test/XED2/doc/html/xed-encoder-gen-defs_8h.html deleted file mode 100644 index fbec026..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-encoder-gen-defs_8h.html +++ /dev/null @@ -1,128 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-encoder-gen-defs.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-encoder-gen-defs.h. -

- -

-Go to the source code of this file. - - - - - - - - -

Defines

#define _XED_ENCODER_GEN_DEFS_H_
#define XED_ENCODE_ORDER_MAX_ENTRIES   23
#define XED_ENCODE_ORDER_MAX_OPERANDS   4
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_ENCODER_GEN_DEFS_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-encoder-gen-defs.h.

-

- - - - -
- - - - -
#define XED_ENCODE_ORDER_MAX_ENTRIES   23
-
- - - - - -
-   - - -

- -

-Definition at line 41 of file xed-encoder-gen-defs.h.

-

- - - - -
- - - - -
#define XED_ENCODE_ORDER_MAX_OPERANDS   4
-
- - - - - -
-   - - -

- -

-Definition at line 42 of file xed-encoder-gen-defs.h.

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-error-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-error-enum_8h-source.html deleted file mode 100644 index 3344694..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-error-enum_8h-source.html +++ /dev/null @@ -1,89 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-error-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_ERROR_ENUM_H_)
-00040 # define _XED_ERROR_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_ERROR_NONE, 
-00044   XED_ERROR_BUFFER_TOO_SHORT, 
-00045   XED_ERROR_GENERAL_ERROR, 
-00046   XED_ERROR_BAD_REGISTER, 
-00047   XED_ERROR_BAD_LOCK_PREFIX, 
-00048   XED_ERROR_BAD_REP_PREFIX, 
-00049   XED_ERROR_LAST
-00050 } xed_error_enum_t;
-00051 
-00052 XED_DLL_EXPORT xed_error_enum_t
-00053 str2xed_error_enum_t(const char* s);
-00054 XED_DLL_EXPORT const char*
-00055 xed_error_enum_t2str(const xed_error_enum_t p);
-00056 
-00057 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-error-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-error-enum_8h.html deleted file mode 100644 index bee2081..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-error-enum_8h.html +++ /dev/null @@ -1,199 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-error-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-error-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_ERROR_ENUM_H_

Enumerations

enum  xed_error_enum_t {
-  XED_ERROR_NONE, -
-  XED_ERROR_BUFFER_TOO_SHORT, -
-  XED_ERROR_GENERAL_ERROR, -
-  XED_ERROR_BAD_REGISTER, -
-  XED_ERROR_BAD_LOCK_PREFIX, -
-  XED_ERROR_BAD_REP_PREFIX, -
-  XED_ERROR_LAST -
- }

Functions

XED_DLL_EXPORT xed_error_enum_t str2xed_error_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_error_enum_t2str (const xed_error_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_ERROR_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-error-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_error_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - - - -
XED_ERROR_NONE  -There was no error.
XED_ERROR_BUFFER_TOO_SHORT  -There were not enough bytes in the given buffer.
XED_ERROR_GENERAL_ERROR  -XED could not decode the given instruction.
XED_ERROR_BAD_REGISTER  -XED could not decode the given instruction because an invalid register encoding was used.
XED_ERROR_BAD_LOCK_PREFIX  -A lock prefix was found where none is allowed.
XED_ERROR_BAD_REP_PREFIX  -An F2 or F3 prefix was found where none is allowed.
XED_ERROR_LAST  -
-
- -

-Definition at line 42 of file xed-error-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_error_enum_t str2xed_error_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_error_enum_t2str const xed_error_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-extension-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-extension-enum_8h-source.html deleted file mode 100644 index ae08b18..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-extension-enum_8h-source.html +++ /dev/null @@ -1,99 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-extension-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_EXTENSION_ENUM_H_)
-00040 # define _XED_EXTENSION_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_EXTENSION_INVALID,
-00044   XED_EXTENSION_3DNOW,
-00045   XED_EXTENSION_AMD,
-00046   XED_EXTENSION_BASE,
-00047   XED_EXTENSION_LONGMODE,
-00048   XED_EXTENSION_MMX,
-00049   XED_EXTENSION_SSE,
-00050   XED_EXTENSION_SSE2,
-00051   XED_EXTENSION_SSE3,
-00052   XED_EXTENSION_SSE4,
-00053   XED_EXTENSION_SSE4A,
-00054   XED_EXTENSION_SSSE3,
-00055   XED_EXTENSION_SVM,
-00056   XED_EXTENSION_VTX,
-00057   XED_EXTENSION_X87,
-00058   XED_EXTENSION_XSAVE,
-00059   XED_EXTENSION_LAST
-00060 } xed_extension_enum_t;
-00061 
-00062 XED_DLL_EXPORT xed_extension_enum_t
-00063 str2xed_extension_enum_t(const char* s);
-00064 XED_DLL_EXPORT const char*
-00065 xed_extension_enum_t2str(const xed_extension_enum_t p);
-00066 
-00067 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-extension-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-extension-enum_8h.html deleted file mode 100644 index 594c7ac..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-extension-enum_8h.html +++ /dev/null @@ -1,239 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-extension-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-extension-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_EXTENSION_ENUM_H_

Enumerations

enum  xed_extension_enum_t {
-  XED_EXTENSION_INVALID, -
-  XED_EXTENSION_3DNOW, -
-  XED_EXTENSION_AMD, -
-  XED_EXTENSION_BASE, -
-  XED_EXTENSION_LONGMODE, -
-  XED_EXTENSION_MMX, -
-  XED_EXTENSION_SSE, -
-  XED_EXTENSION_SSE2, -
-  XED_EXTENSION_SSE3, -
-  XED_EXTENSION_SSE4, -
-  XED_EXTENSION_SSE4A, -
-  XED_EXTENSION_SSSE3, -
-  XED_EXTENSION_SVM, -
-  XED_EXTENSION_VTX, -
-  XED_EXTENSION_X87, -
-  XED_EXTENSION_XSAVE, -
-  XED_EXTENSION_LAST -
- }

Functions

XED_DLL_EXPORT xed_extension_enum_t str2xed_extension_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_extension_enum_t2str (const xed_extension_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_EXTENSION_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-extension-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_extension_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - - - - - - - - - - - - - -
XED_EXTENSION_INVALID  -
XED_EXTENSION_3DNOW  -
XED_EXTENSION_AMD  -
XED_EXTENSION_BASE  -
XED_EXTENSION_LONGMODE  -
XED_EXTENSION_MMX  -
XED_EXTENSION_SSE  -
XED_EXTENSION_SSE2  -
XED_EXTENSION_SSE3  -
XED_EXTENSION_SSE4  -
XED_EXTENSION_SSE4A  -
XED_EXTENSION_SSSE3  -
XED_EXTENSION_SVM  -
XED_EXTENSION_VTX  -
XED_EXTENSION_X87  -
XED_EXTENSION_XSAVE  -
XED_EXTENSION_LAST  -
-
- -

-Definition at line 42 of file xed-extension-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_extension_enum_t str2xed_extension_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_extension_enum_t2str const xed_extension_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-flag-action-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-flag-action-enum_8h-source.html deleted file mode 100644 index e349bf0..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-flag-action-enum_8h-source.html +++ /dev/null @@ -1,91 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-flag-action-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_FLAG_ACTION_ENUM_H_)
-00040 # define _XED_FLAG_ACTION_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_FLAG_ACTION_INVALID,
-00044   XED_FLAG_ACTION_u, 
-00045   XED_FLAG_ACTION_tst, 
-00046   XED_FLAG_ACTION_mod, 
-00047   XED_FLAG_ACTION_0, 
-00048   XED_FLAG_ACTION_pop, 
-00049   XED_FLAG_ACTION_ah, 
-00050   XED_FLAG_ACTION_1, 
-00051   XED_FLAG_ACTION_LAST
-00052 } xed_flag_action_enum_t;
-00053 
-00054 XED_DLL_EXPORT xed_flag_action_enum_t
-00055 str2xed_flag_action_enum_t(const char* s);
-00056 XED_DLL_EXPORT const char*
-00057 xed_flag_action_enum_t2str(const xed_flag_action_enum_t p);
-00058 
-00059 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-flag-action-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-flag-action-enum_8h.html deleted file mode 100644 index 264f084..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-flag-action-enum_8h.html +++ /dev/null @@ -1,207 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-flag-action-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-flag-action-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_FLAG_ACTION_ENUM_H_

Enumerations

enum  xed_flag_action_enum_t {
-  XED_FLAG_ACTION_INVALID, -
-  XED_FLAG_ACTION_u, -
-  XED_FLAG_ACTION_tst, -
-  XED_FLAG_ACTION_mod, -
-  XED_FLAG_ACTION_0, -
-  XED_FLAG_ACTION_pop, -
-  XED_FLAG_ACTION_ah, -
-  XED_FLAG_ACTION_1, -
-  XED_FLAG_ACTION_LAST -
- }

Functions

XED_DLL_EXPORT xed_flag_action_enum_t str2xed_flag_action_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_flag_action_enum_t2str (const xed_flag_action_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_FLAG_ACTION_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-flag-action-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_flag_action_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - - - - - -
XED_FLAG_ACTION_INVALID  -
XED_FLAG_ACTION_u  -undefined (treated as a write)
XED_FLAG_ACTION_tst  -test (read)
XED_FLAG_ACTION_mod  -modification (write)
XED_FLAG_ACTION_0  -value will be zero (write)
XED_FLAG_ACTION_pop  -value comes from the stack (write)
XED_FLAG_ACTION_ah  -value comes from AH (write)
XED_FLAG_ACTION_1  -value will be 1 (write)
XED_FLAG_ACTION_LAST  -
-
- -

-Definition at line 42 of file xed-flag-action-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_flag_action_enum_t str2xed_flag_action_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_flag_action_enum_t2str const xed_flag_action_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-flag-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-flag-enum_8h-source.html deleted file mode 100644 index f0f14e8..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-flag-enum_8h-source.html +++ /dev/null @@ -1,105 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-flag-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_FLAG_ENUM_H_)
-00040 # define _XED_FLAG_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_FLAG_INVALID,
-00044   XED_FLAG_of, 
-00045   XED_FLAG_sf, 
-00046   XED_FLAG_zf, 
-00047   XED_FLAG_af, 
-00048   XED_FLAG_pf, 
-00049   XED_FLAG_cf, 
-00050   XED_FLAG_df, 
-00051   XED_FLAG_vif, 
-00052   XED_FLAG_iopl, 
-00053   XED_FLAG_if, 
-00054   XED_FLAG_ac, 
-00055   XED_FLAG_vm, 
-00056   XED_FLAG_rf, 
-00057   XED_FLAG_nt, 
-00058   XED_FLAG_tf, 
-00059   XED_FLAG_id, 
-00060   XED_FLAG_vip, 
-00061   XED_FLAG_fc0, 
-00062   XED_FLAG_fc1, 
-00063   XED_FLAG_fc2, 
-00064   XED_FLAG_fc3, 
-00065   XED_FLAG_LAST
-00066 } xed_flag_enum_t;
-00067 
-00068 XED_DLL_EXPORT xed_flag_enum_t
-00069 str2xed_flag_enum_t(const char* s);
-00070 XED_DLL_EXPORT const char*
-00071 xed_flag_enum_t2str(const xed_flag_enum_t p);
-00072 
-00073 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-flag-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-flag-enum_8h.html deleted file mode 100644 index bfde849..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-flag-enum_8h.html +++ /dev/null @@ -1,263 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-flag-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-flag-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_FLAG_ENUM_H_

Enumerations

enum  xed_flag_enum_t {
-  XED_FLAG_INVALID, -
-  XED_FLAG_of, -
-  XED_FLAG_sf, -
-  XED_FLAG_zf, -
-  XED_FLAG_af, -
-  XED_FLAG_pf, -
-  XED_FLAG_cf, -
-  XED_FLAG_df, -
-  XED_FLAG_vif, -
-  XED_FLAG_iopl, -
-  XED_FLAG_if, -
-  XED_FLAG_ac, -
-  XED_FLAG_vm, -
-  XED_FLAG_rf, -
-  XED_FLAG_nt, -
-  XED_FLAG_tf, -
-  XED_FLAG_id, -
-  XED_FLAG_vip, -
-  XED_FLAG_fc0, -
-  XED_FLAG_fc1, -
-  XED_FLAG_fc2, -
-  XED_FLAG_fc3, -
-  XED_FLAG_LAST -
- }

Functions

XED_DLL_EXPORT xed_flag_enum_t str2xed_flag_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_flag_enum_t2str (const xed_flag_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_FLAG_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-flag-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_flag_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_FLAG_INVALID  -
XED_FLAG_of  -< overflow flag
XED_FLAG_sf  -sign flag
XED_FLAG_zf  -zero flag
XED_FLAG_af  -auxilliary flag
XED_FLAG_pf  -parity flag
XED_FLAG_cf  -carry flag
XED_FLAG_df  -direction flag
XED_FLAG_vif  -virtual interrupt flag
XED_FLAG_iopl  -I/O privilege level.
XED_FLAG_if  -interrupt flag
XED_FLAG_ac  -alignment check
XED_FLAG_vm  -virtual-8086 mode
XED_FLAG_rf  -resume flag
XED_FLAG_nt  -nested task
XED_FLAG_tf  -traf flag
XED_FLAG_id  -ID flag.
XED_FLAG_vip  -virtual interrupt pending
XED_FLAG_fc0  -x87 FC0 flag
XED_FLAG_fc1  -x87 FC1 flag
XED_FLAG_fc2  -x87 FC2 flag
XED_FLAG_fc3  -x87 FC3 flag
XED_FLAG_LAST  -
-
- -

-Definition at line 42 of file xed-flag-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_flag_enum_t str2xed_flag_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_flag_enum_t2str const xed_flag_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-flags_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-flags_8h-source.html deleted file mode 100644 index a31f186..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-flags_8h-source.html +++ /dev/null @@ -1,187 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-flags.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 #ifndef _XED_FLAGS_H_
-00037 # define  _XED_FLAGS_H_
-00038 
-00039 #include "xed-types.h"
-00040 #include "xed-flag-enum.h"
-00041 #include "xed-flag-action-enum.h"
-00042 
-00043 
-00047 union  XED_DLL_EXPORT xed_flag_set_s {
-00048     struct {
-00049         xed_uint32_t of:1;
-00050         xed_uint32_t sf:1;
-00051         xed_uint32_t zf:1;
-00052         xed_uint32_t af:1;
-00053         xed_uint32_t pf:1;
-00054         xed_uint32_t cf:1;
-00055         xed_uint32_t df:1;
-00056         xed_uint32_t vif:1;
-00057         xed_uint32_t iopl:1;
-00058         xed_uint32_t _if:1;  
-00059         xed_uint32_t ac:1;
-00060         xed_uint32_t vm:1;
-00061         xed_uint32_t rf:1;
-00062         xed_uint32_t nt:1;
-00063         xed_uint32_t tf:1;
-00064         xed_uint32_t id:1;
-00065         xed_uint32_t vip:1; 
-00066         xed_uint32_t fc0:1;  
-00067         xed_uint32_t fc1:1;  
-00068         xed_uint32_t fc2:1;  
-00069         xed_uint32_t fc3:1;  
-00070     } s;
-00071     xed_uint32_t flat;
-00072 };
-00073 
-00074 typedef union xed_flag_set_s xed_flag_set_t;
-00077 
-00078 
-00079 
-00080 XED_DLL_EXPORT int  xed_flag_set_print(const xed_flag_set_t* p, char* buf, int buflen);
-00084 XED_DLL_EXPORT xed_bool_t xed_flag_set_is_subset_of(const xed_flag_set_t* p,
-00085                                const xed_flag_set_t* other);
-00087 
-00088 
-00090 
-00093 typedef struct XED_DLL_EXPORT xed_flag_enum_s {
-00094     xed_flag_enum_t flag;
-00095     // there are at most two actions per flag. The 2nd may be invalid.
-00096     xed_flag_action_enum_t action;
-00097 }  xed_flag_action_t;
-00098 
-00099 
-00100 
-00101 
-00104 
-00105 
-00106 
-00107 XED_DLL_EXPORT xed_flag_enum_t
-00108 xed_flag_action_get_flag_name(const xed_flag_action_t* p);
-00111 XED_DLL_EXPORT xed_flag_action_enum_t
-00112 xed_flag_action_get_action(const xed_flag_action_t* p, unsigned int i);
-00115 XED_DLL_EXPORT xed_bool_t 
-00116 xed_flag_action_action_invalid(const xed_flag_action_enum_t a);
-00119 XED_DLL_EXPORT int xed_flag_action_print(const xed_flag_action_t* p, char* buf, int buflen);
-00122 XED_DLL_EXPORT xed_bool_t 
-00123 xed_flag_action_read_flag(const xed_flag_action_t* p );
-00126 XED_DLL_EXPORT xed_bool_t 
-00127 xed_flag_action_writes_flag(const xed_flag_action_t* p);
-00128   
-00131 XED_DLL_EXPORT xed_bool_t 
-00132 xed_flag_action_read_action( xed_flag_action_enum_t a);
-00135 XED_DLL_EXPORT xed_bool_t 
-00136 xed_flag_action_write_action( xed_flag_action_enum_t a);
-00138 
-00140 
-00141 #define XED_MAX_FLAG_ACTIONS (XED_FLAG_LAST + 3)
-00144 typedef struct  XED_DLL_EXPORT xed_simple_flag_s 
-00145 {
-00146     xed_uint8_t nflags;
-00147 
-00148     xed_bool_t may_write :1;
-00149     xed_bool_t must_write :1;
-00150 
-00152     xed_flag_action_t fa[XED_MAX_FLAG_ACTIONS];
-00153 
-00155     xed_flag_set_t read;
-00156 
-00158     xed_flag_set_t written;
-00159 } xed_simple_flag_t;
-00160 
-00163 
-00164 
-00165 
-00166 XED_DLL_EXPORT unsigned int 
-00167 xed_simple_flag_get_nflags(const xed_simple_flag_t* p);
-00168 
-00171 XED_DLL_EXPORT const xed_flag_set_t* 
-00172 xed_simple_flag_get_read_flag_set(const xed_simple_flag_t* p);
-00173 
-00176 XED_DLL_EXPORT const xed_flag_set_t*
-00177 xed_simple_flag_get_written_flag_set(const xed_simple_flag_t* p);
-00178 
-00182 XED_DLL_EXPORT xed_bool_t xed_simple_flag_get_may_write(const xed_simple_flag_t* p);
-00183 
-00186 XED_DLL_EXPORT xed_bool_t xed_simple_flag_get_must_write(const xed_simple_flag_t* p);
-00187 
-00190 XED_DLL_EXPORT const xed_flag_action_t*
-00191 xed_simple_flag_get_flag_action(const xed_simple_flag_t* p, unsigned int i);
-00192 
-00195 XED_DLL_EXPORT xed_bool_t
-00196 xed_simple_flag_reads_flags(const xed_simple_flag_t* p);
-00197 
-00200 XED_DLL_EXPORT xed_bool_t xed_simple_flag_writes_flags(const xed_simple_flag_t* p);
-00201 
-00204 XED_DLL_EXPORT int xed_simple_flag_print(const xed_simple_flag_t* p, char* buf, int buflen);
-00206 
-00208 
-00209 
-00211 
-00212 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-flags_8h.html b/misc/decoder_test/XED2/doc/html/xed-flags_8h.html deleted file mode 100644 index 4fb477d..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-flags_8h.html +++ /dev/null @@ -1,182 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-flags.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-flags.h. -

-#include "xed-types.h"
-#include "xed-flag-enum.h"
-#include "xed-flag-action-enum.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Data Structures

struct  xed_flag_enum_s
 Associated with each flag field there can be one action. More...
union  xed_flag_set_s
 a union of flags bits More...
struct  xed_simple_flag_s
 A collection of xed_flag_action_t's and unions of read and written flags. More...

Lowest-level flag-action accessors

XED_DLL_EXPORT xed_bool_t xed_flag_action_action_invalid (const xed_flag_action_enum_t a)
 returns true if the specified action is invalid.
XED_DLL_EXPORT xed_flag_action_enum_t xed_flag_action_get_action (const xed_flag_action_t *p, unsigned int i)
 return the action
XED_DLL_EXPORT xed_flag_enum_t xed_flag_action_get_flag_name (const xed_flag_action_t *p)
 get the name of the flag
XED_DLL_EXPORT int xed_flag_action_print (const xed_flag_action_t *p, char *buf, int buflen)
 print the flag & actions
XED_DLL_EXPORT xed_bool_t xed_flag_action_read_action (xed_flag_action_enum_t a)
 test to see if the specific action is a read
XED_DLL_EXPORT xed_bool_t xed_flag_action_read_flag (const xed_flag_action_t *p)
 returns true if either action is a read
XED_DLL_EXPORT xed_bool_t xed_flag_action_write_action (xed_flag_action_enum_t a)
 test to see if a specific action is a write
XED_DLL_EXPORT xed_bool_t xed_flag_action_writes_flag (const xed_flag_action_t *p)
 returns true if either action is a write

Flag-set accessors

XED_DLL_EXPORT xed_bool_t xed_flag_set_is_subset_of (const xed_flag_set_t *p, const xed_flag_set_t *other)
 returns true if this object has a subset of the flags of the "other" object.
XED_DLL_EXPORT int xed_flag_set_print (const xed_flag_set_t *p, char *buf, int buflen)
 print the flag set in the supplied buffer

Accessing the simple flags (Mid-level access)

XED_DLL_EXPORT const xed_flag_action_txed_simple_flag_get_flag_action (const xed_simple_flag_t *p, unsigned int i)
 return the specific flag-action.
XED_DLL_EXPORT xed_bool_t xed_simple_flag_get_may_write (const xed_simple_flag_t *p)
 Indicates the flags are only conditionally written.
XED_DLL_EXPORT xed_bool_t xed_simple_flag_get_must_write (const xed_simple_flag_t *p)
 the flags always written
XED_DLL_EXPORT unsigned int xed_simple_flag_get_nflags (const xed_simple_flag_t *p)
 returns the number of flag-actions
XED_DLL_EXPORT const xed_flag_set_txed_simple_flag_get_read_flag_set (const xed_simple_flag_t *p)
 return union of bits for read flags
XED_DLL_EXPORT const xed_flag_set_txed_simple_flag_get_written_flag_set (const xed_simple_flag_t *p)
 return union of bits for written flags
XED_DLL_EXPORT int xed_simple_flag_print (const xed_simple_flag_t *p, char *buf, int buflen)
 print the flags
XED_DLL_EXPORT xed_bool_t xed_simple_flag_reads_flags (const xed_simple_flag_t *p)
 boolean test to see if flags are read, scans the flags
XED_DLL_EXPORT xed_bool_t xed_simple_flag_writes_flags (const xed_simple_flag_t *p)
 boolean test to see if flags are written, scans the flags

Defines

#define XED_MAX_FLAG_ACTIONS   (XED_FLAG_LAST + 3)

Typedefs

typedef XED_DLL_EXPORT xed_flag_enum_s xed_flag_action_t
 Associated with each flag field there can be one action.
typedef xed_flag_set_s xed_flag_set_t
typedef XED_DLL_EXPORT xed_simple_flag_s xed_simple_flag_t
 A collection of xed_flag_action_t's and unions of read and written flags.
-


Define Documentation

-

- - - - -
- - - - -
#define XED_MAX_FLAG_ACTIONS   (XED_FLAG_LAST + 3)
-
- - - - - -
-   - - -

- -

-Definition at line 141 of file xed-flags.h.

-


Typedef Documentation

-

- - - - -
- - - - -
typedef union xed_flag_set_s xed_flag_set_t
-
- - - - - -
-   - - -

- -

-Definition at line 74 of file xed-flags.h.

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-gen-table-defs_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-gen-table-defs_8h-source.html deleted file mode 100644 index 53abfa5..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-gen-table-defs_8h-source.html +++ /dev/null @@ -1,82 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-gen-table-defs.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_GEN_TABLE_DEFS_H_)
-00040 # define _XED_GEN_TABLE_DEFS_H_
-00041 #define XED_MAX_ATTRIBUTE_COUNT 17
-00042 #define XED_MAX_GRAPH_NODES 8975
-00043 #define XED_MAX_GRAPH_NEXT_NODES 10668
-00044 #define XED_MAX_INST_TABLE_NODES 1943
-00045 #define XED_MAX_OPERAND_TABLE_NODES 4909
-00046 #define XED_MAX_REQUIRED_SIMPLE_FLAGS_ENTRIES 780
-00047 #define XED_MAX_REQUIRED_COMPLEX_FLAGS_ENTRIES 53
-00048 #define XED_MAX_IFORMS 1481
-00049 #define XED_MAX_IFORMS_PER_ICLASS 18
-00050 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-gen-table-defs_8h.html b/misc/decoder_test/XED2/doc/html/xed-gen-table-defs_8h.html deleted file mode 100644 index 391e99c..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-gen-table-defs_8h.html +++ /dev/null @@ -1,317 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-gen-table-defs.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-gen-table-defs.h. -

- -

-Go to the source code of this file. - - - - - - - - - - - - - - - - - - - - - - -

Defines

#define _XED_GEN_TABLE_DEFS_H_
#define XED_MAX_ATTRIBUTE_COUNT   17
#define XED_MAX_GRAPH_NEXT_NODES   10668
#define XED_MAX_GRAPH_NODES   8975
#define XED_MAX_IFORMS   1481
#define XED_MAX_IFORMS_PER_ICLASS   18
#define XED_MAX_INST_TABLE_NODES   1943
#define XED_MAX_OPERAND_TABLE_NODES   4909
#define XED_MAX_REQUIRED_COMPLEX_FLAGS_ENTRIES   53
#define XED_MAX_REQUIRED_SIMPLE_FLAGS_ENTRIES   780
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_GEN_TABLE_DEFS_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-gen-table-defs.h.

-

- - - - -
- - - - -
#define XED_MAX_ATTRIBUTE_COUNT   17
-
- - - - - -
-   - - -

- -

-Definition at line 41 of file xed-gen-table-defs.h.

-

- - - - -
- - - - -
#define XED_MAX_GRAPH_NEXT_NODES   10668
-
- - - - - -
-   - - -

- -

-Definition at line 43 of file xed-gen-table-defs.h.

-

- - - - -
- - - - -
#define XED_MAX_GRAPH_NODES   8975
-
- - - - - -
-   - - -

- -

-Definition at line 42 of file xed-gen-table-defs.h.

-

- - - - -
- - - - -
#define XED_MAX_IFORMS   1481
-
- - - - - -
-   - - -

- -

-Definition at line 48 of file xed-gen-table-defs.h.

-

- - - - -
- - - - -
#define XED_MAX_IFORMS_PER_ICLASS   18
-
- - - - - -
-   - - -

- -

-Definition at line 49 of file xed-gen-table-defs.h.

-

- - - - -
- - - - -
#define XED_MAX_INST_TABLE_NODES   1943
-
- - - - - -
-   - - -

- -

-Definition at line 44 of file xed-gen-table-defs.h.

-

- - - - -
- - - - -
#define XED_MAX_OPERAND_TABLE_NODES   4909
-
- - - - - -
-   - - -

- -

-Definition at line 45 of file xed-gen-table-defs.h.

-

- - - - -
- - - - -
#define XED_MAX_REQUIRED_COMPLEX_FLAGS_ENTRIES   53
-
- - - - - -
-   - - -

- -

-Definition at line 47 of file xed-gen-table-defs.h.

-

- - - - -
- - - - -
#define XED_MAX_REQUIRED_SIMPLE_FLAGS_ENTRIES   780
-
- - - - - -
-   - - -

- -

-Definition at line 46 of file xed-gen-table-defs.h.

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-iclass-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-iclass-enum_8h-source.html deleted file mode 100644 index 1cd2b7f..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-iclass-enum_8h-source.html +++ /dev/null @@ -1,717 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-iclass-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_ICLASS_ENUM_H_)
-00040 # define _XED_ICLASS_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_ICLASS_INVALID,
-00044   XED_ICLASS_AAA,
-00045   XED_ICLASS_AAD,
-00046   XED_ICLASS_AAM,
-00047   XED_ICLASS_AAS,
-00048   XED_ICLASS_ADC,
-00049   XED_ICLASS_ADD,
-00050   XED_ICLASS_ADDPD,
-00051   XED_ICLASS_ADDPS,
-00052   XED_ICLASS_ADDSD,
-00053   XED_ICLASS_ADDSS,
-00054   XED_ICLASS_ADDSUBPD,
-00055   XED_ICLASS_ADDSUBPS,
-00056   XED_ICLASS_AND,
-00057   XED_ICLASS_ANDNPD,
-00058   XED_ICLASS_ANDNPS,
-00059   XED_ICLASS_ANDPD,
-00060   XED_ICLASS_ANDPS,
-00061   XED_ICLASS_ARPL,
-00062   XED_ICLASS_BLENDPD,
-00063   XED_ICLASS_BLENDPS,
-00064   XED_ICLASS_BLENDVPD,
-00065   XED_ICLASS_BLENDVPS,
-00066   XED_ICLASS_BOUND,
-00067   XED_ICLASS_BSF,
-00068   XED_ICLASS_BSR,
-00069   XED_ICLASS_BSWAP,
-00070   XED_ICLASS_BT,
-00071   XED_ICLASS_BTC,
-00072   XED_ICLASS_BTR,
-00073   XED_ICLASS_BTS,
-00074   XED_ICLASS_CALL_FAR,
-00075   XED_ICLASS_CALL_NEAR,
-00076   XED_ICLASS_CBW,
-00077   XED_ICLASS_CDQ,
-00078   XED_ICLASS_CDQE,
-00079   XED_ICLASS_CLC,
-00080   XED_ICLASS_CLD,
-00081   XED_ICLASS_CLFLUSH,
-00082   XED_ICLASS_CLGI,
-00083   XED_ICLASS_CLI,
-00084   XED_ICLASS_CLTS,
-00085   XED_ICLASS_CMC,
-00086   XED_ICLASS_CMOVB,
-00087   XED_ICLASS_CMOVBE,
-00088   XED_ICLASS_CMOVL,
-00089   XED_ICLASS_CMOVLE,
-00090   XED_ICLASS_CMOVNB,
-00091   XED_ICLASS_CMOVNBE,
-00092   XED_ICLASS_CMOVNL,
-00093   XED_ICLASS_CMOVNLE,
-00094   XED_ICLASS_CMOVNO,
-00095   XED_ICLASS_CMOVNP,
-00096   XED_ICLASS_CMOVNS,
-00097   XED_ICLASS_CMOVNZ,
-00098   XED_ICLASS_CMOVO,
-00099   XED_ICLASS_CMOVP,
-00100   XED_ICLASS_CMOVS,
-00101   XED_ICLASS_CMOVZ,
-00102   XED_ICLASS_CMP,
-00103   XED_ICLASS_CMPPD,
-00104   XED_ICLASS_CMPPS,
-00105   XED_ICLASS_CMPSB,
-00106   XED_ICLASS_CMPSD,
-00107   XED_ICLASS_CMPSD_XMM,
-00108   XED_ICLASS_CMPSQ,
-00109   XED_ICLASS_CMPSS,
-00110   XED_ICLASS_CMPSW,
-00111   XED_ICLASS_CMPXCHG,
-00112   XED_ICLASS_CMPXCHG16B,
-00113   XED_ICLASS_CMPXCHG8B,
-00114   XED_ICLASS_COMISD,
-00115   XED_ICLASS_COMISS,
-00116   XED_ICLASS_CPUID,
-00117   XED_ICLASS_CQO,
-00118   XED_ICLASS_CRC32,
-00119   XED_ICLASS_CVTDQ2PD,
-00120   XED_ICLASS_CVTDQ2PS,
-00121   XED_ICLASS_CVTPD2DQ,
-00122   XED_ICLASS_CVTPD2PI,
-00123   XED_ICLASS_CVTPD2PS,
-00124   XED_ICLASS_CVTPI2PD,
-00125   XED_ICLASS_CVTPI2PS,
-00126   XED_ICLASS_CVTPS2DQ,
-00127   XED_ICLASS_CVTPS2PD,
-00128   XED_ICLASS_CVTPS2PI,
-00129   XED_ICLASS_CVTSD2SI,
-00130   XED_ICLASS_CVTSD2SS,
-00131   XED_ICLASS_CVTSI2SD,
-00132   XED_ICLASS_CVTSI2SS,
-00133   XED_ICLASS_CVTSS2SD,
-00134   XED_ICLASS_CVTSS2SI,
-00135   XED_ICLASS_CVTTPD2DQ,
-00136   XED_ICLASS_CVTTPD2PI,
-00137   XED_ICLASS_CVTTPS2DQ,
-00138   XED_ICLASS_CVTTPS2PI,
-00139   XED_ICLASS_CVTTSD2SI,
-00140   XED_ICLASS_CVTTSS2SI,
-00141   XED_ICLASS_CWD,
-00142   XED_ICLASS_CWDE,
-00143   XED_ICLASS_DAA,
-00144   XED_ICLASS_DAS,
-00145   XED_ICLASS_DEC,
-00146   XED_ICLASS_DIV,
-00147   XED_ICLASS_DIVPD,
-00148   XED_ICLASS_DIVPS,
-00149   XED_ICLASS_DIVSD,
-00150   XED_ICLASS_DIVSS,
-00151   XED_ICLASS_DPPD,
-00152   XED_ICLASS_DPPS,
-00153   XED_ICLASS_EMMS,
-00154   XED_ICLASS_ENTER,
-00155   XED_ICLASS_EXTRACTPS,
-00156   XED_ICLASS_EXTRQ,
-00157   XED_ICLASS_F2XM1,
-00158   XED_ICLASS_FABS,
-00159   XED_ICLASS_FADD,
-00160   XED_ICLASS_FADDP,
-00161   XED_ICLASS_FBLD,
-00162   XED_ICLASS_FBSTP,
-00163   XED_ICLASS_FCHS,
-00164   XED_ICLASS_FCMOVB,
-00165   XED_ICLASS_FCMOVBE,
-00166   XED_ICLASS_FCMOVE,
-00167   XED_ICLASS_FCMOVNB,
-00168   XED_ICLASS_FCMOVNBE,
-00169   XED_ICLASS_FCMOVNE,
-00170   XED_ICLASS_FCMOVNU,
-00171   XED_ICLASS_FCMOVU,
-00172   XED_ICLASS_FCOM,
-00173   XED_ICLASS_FCOMI,
-00174   XED_ICLASS_FCOMIP,
-00175   XED_ICLASS_FCOMP,
-00176   XED_ICLASS_FCOMPP,
-00177   XED_ICLASS_FCOS,
-00178   XED_ICLASS_FDECSTP,
-00179   XED_ICLASS_FDIV,
-00180   XED_ICLASS_FDIVP,
-00181   XED_ICLASS_FDIVR,
-00182   XED_ICLASS_FDIVRP,
-00183   XED_ICLASS_FEMMS,
-00184   XED_ICLASS_FFREE,
-00185   XED_ICLASS_FFREEP,
-00186   XED_ICLASS_FIADD,
-00187   XED_ICLASS_FICOM,
-00188   XED_ICLASS_FICOMP,
-00189   XED_ICLASS_FIDIV,
-00190   XED_ICLASS_FIDIVR,
-00191   XED_ICLASS_FILD,
-00192   XED_ICLASS_FIMUL,
-00193   XED_ICLASS_FINCSTP,
-00194   XED_ICLASS_FIST,
-00195   XED_ICLASS_FISTP,
-00196   XED_ICLASS_FISTTP,
-00197   XED_ICLASS_FISUB,
-00198   XED_ICLASS_FISUBR,
-00199   XED_ICLASS_FLD,
-00200   XED_ICLASS_FLD1,
-00201   XED_ICLASS_FLDCW,
-00202   XED_ICLASS_FLDENV,
-00203   XED_ICLASS_FLDL2E,
-00204   XED_ICLASS_FLDL2T,
-00205   XED_ICLASS_FLDLG2,
-00206   XED_ICLASS_FLDLN2,
-00207   XED_ICLASS_FLDPI,
-00208   XED_ICLASS_FLDZ,
-00209   XED_ICLASS_FMUL,
-00210   XED_ICLASS_FMULP,
-00211   XED_ICLASS_FNCLEX,
-00212   XED_ICLASS_FNINIT,
-00213   XED_ICLASS_FNOP,
-00214   XED_ICLASS_FNSAVE,
-00215   XED_ICLASS_FNSTCW,
-00216   XED_ICLASS_FNSTENV,
-00217   XED_ICLASS_FNSTSW,
-00218   XED_ICLASS_FPATAN,
-00219   XED_ICLASS_FPREM,
-00220   XED_ICLASS_FPREM1,
-00221   XED_ICLASS_FPTAN,
-00222   XED_ICLASS_FRNDINT,
-00223   XED_ICLASS_FRSTOR,
-00224   XED_ICLASS_FSCALE,
-00225   XED_ICLASS_FSETPM287_NOP,
-00226   XED_ICLASS_FSIN,
-00227   XED_ICLASS_FSINCOS,
-00228   XED_ICLASS_FSQRT,
-00229   XED_ICLASS_FST,
-00230   XED_ICLASS_FSTP,
-00231   XED_ICLASS_FSUB,
-00232   XED_ICLASS_FSUBP,
-00233   XED_ICLASS_FSUBR,
-00234   XED_ICLASS_FSUBRP,
-00235   XED_ICLASS_FTST,
-00236   XED_ICLASS_FUCOM,
-00237   XED_ICLASS_FUCOMI,
-00238   XED_ICLASS_FUCOMIP,
-00239   XED_ICLASS_FUCOMP,
-00240   XED_ICLASS_FUCOMPP,
-00241   XED_ICLASS_FWAIT,
-00242   XED_ICLASS_FXAM,
-00243   XED_ICLASS_FXCH,
-00244   XED_ICLASS_FXRSTOR,
-00245   XED_ICLASS_FXSAVE,
-00246   XED_ICLASS_FXTRACT,
-00247   XED_ICLASS_FYL2X,
-00248   XED_ICLASS_FYL2XP1,
-00249   XED_ICLASS_HADDPD,
-00250   XED_ICLASS_HADDPS,
-00251   XED_ICLASS_HLT,
-00252   XED_ICLASS_HSUBPD,
-00253   XED_ICLASS_HSUBPS,
-00254   XED_ICLASS_IDIV,
-00255   XED_ICLASS_IMUL,
-00256   XED_ICLASS_IN,
-00257   XED_ICLASS_INC,
-00258   XED_ICLASS_INSB,
-00259   XED_ICLASS_INSD,
-00260   XED_ICLASS_INSERTPS,
-00261   XED_ICLASS_INSERTQ,
-00262   XED_ICLASS_INSW,
-00263   XED_ICLASS_INT,
-00264   XED_ICLASS_INT1,
-00265   XED_ICLASS_INT3,
-00266   XED_ICLASS_INTO,
-00267   XED_ICLASS_INVD,
-00268   XED_ICLASS_INVLPG,
-00269   XED_ICLASS_INVLPGA,
-00270   XED_ICLASS_IRET,
-00271   XED_ICLASS_IRETD,
-00272   XED_ICLASS_IRETQ,
-00273   XED_ICLASS_JB,
-00274   XED_ICLASS_JBE,
-00275   XED_ICLASS_JL,
-00276   XED_ICLASS_JLE,
-00277   XED_ICLASS_JMP,
-00278   XED_ICLASS_JMP_FAR,
-00279   XED_ICLASS_JNB,
-00280   XED_ICLASS_JNBE,
-00281   XED_ICLASS_JNL,
-00282   XED_ICLASS_JNLE,
-00283   XED_ICLASS_JNO,
-00284   XED_ICLASS_JNP,
-00285   XED_ICLASS_JNS,
-00286   XED_ICLASS_JNZ,
-00287   XED_ICLASS_JO,
-00288   XED_ICLASS_JP,
-00289   XED_ICLASS_JRCXZ,
-00290   XED_ICLASS_JS,
-00291   XED_ICLASS_JZ,
-00292   XED_ICLASS_LAHF,
-00293   XED_ICLASS_LAR,
-00294   XED_ICLASS_LDDQU,
-00295   XED_ICLASS_LDMXCSR,
-00296   XED_ICLASS_LDS,
-00297   XED_ICLASS_LEA,
-00298   XED_ICLASS_LEAVE,
-00299   XED_ICLASS_LES,
-00300   XED_ICLASS_LFENCE,
-00301   XED_ICLASS_LFS,
-00302   XED_ICLASS_LGDT,
-00303   XED_ICLASS_LGS,
-00304   XED_ICLASS_LIDT,
-00305   XED_ICLASS_LLDT,
-00306   XED_ICLASS_LMSW,
-00307   XED_ICLASS_LODSB,
-00308   XED_ICLASS_LODSD,
-00309   XED_ICLASS_LODSQ,
-00310   XED_ICLASS_LODSW,
-00311   XED_ICLASS_LOOP,
-00312   XED_ICLASS_LOOPE,
-00313   XED_ICLASS_LOOPNE,
-00314   XED_ICLASS_LSL,
-00315   XED_ICLASS_LSS,
-00316   XED_ICLASS_LTR,
-00317   XED_ICLASS_LZCNT,
-00318   XED_ICLASS_MASKMOVDQU,
-00319   XED_ICLASS_MASKMOVQ,
-00320   XED_ICLASS_MAXPD,
-00321   XED_ICLASS_MAXPS,
-00322   XED_ICLASS_MAXSD,
-00323   XED_ICLASS_MAXSS,
-00324   XED_ICLASS_MFENCE,
-00325   XED_ICLASS_MINPD,
-00326   XED_ICLASS_MINPS,
-00327   XED_ICLASS_MINSD,
-00328   XED_ICLASS_MINSS,
-00329   XED_ICLASS_MONITOR,
-00330   XED_ICLASS_MOV,
-00331   XED_ICLASS_MOVAPD,
-00332   XED_ICLASS_MOVAPS,
-00333   XED_ICLASS_MOVD,
-00334   XED_ICLASS_MOVDDUP,
-00335   XED_ICLASS_MOVDQ2Q,
-00336   XED_ICLASS_MOVDQA,
-00337   XED_ICLASS_MOVDQU,
-00338   XED_ICLASS_MOVHLPS,
-00339   XED_ICLASS_MOVHPD,
-00340   XED_ICLASS_MOVHPS,
-00341   XED_ICLASS_MOVLHPS,
-00342   XED_ICLASS_MOVLPD,
-00343   XED_ICLASS_MOVLPS,
-00344   XED_ICLASS_MOVMSKPD,
-00345   XED_ICLASS_MOVMSKPS,
-00346   XED_ICLASS_MOVNTDQ,
-00347   XED_ICLASS_MOVNTDQA,
-00348   XED_ICLASS_MOVNTI,
-00349   XED_ICLASS_MOVNTPD,
-00350   XED_ICLASS_MOVNTPS,
-00351   XED_ICLASS_MOVNTQ,
-00352   XED_ICLASS_MOVNTSD,
-00353   XED_ICLASS_MOVNTSS,
-00354   XED_ICLASS_MOVQ,
-00355   XED_ICLASS_MOVQ2DQ,
-00356   XED_ICLASS_MOVSB,
-00357   XED_ICLASS_MOVSD,
-00358   XED_ICLASS_MOVSD_XMM,
-00359   XED_ICLASS_MOVSHDUP,
-00360   XED_ICLASS_MOVSLDUP,
-00361   XED_ICLASS_MOVSQ,
-00362   XED_ICLASS_MOVSS,
-00363   XED_ICLASS_MOVSW,
-00364   XED_ICLASS_MOVSX,
-00365   XED_ICLASS_MOVSXD,
-00366   XED_ICLASS_MOVUPD,
-00367   XED_ICLASS_MOVUPS,
-00368   XED_ICLASS_MOVZX,
-00369   XED_ICLASS_MOV_CR,
-00370   XED_ICLASS_MOV_DR,
-00371   XED_ICLASS_MPSADBW,
-00372   XED_ICLASS_MUL,
-00373   XED_ICLASS_MULPD,
-00374   XED_ICLASS_MULPS,
-00375   XED_ICLASS_MULSD,
-00376   XED_ICLASS_MULSS,
-00377   XED_ICLASS_MWAIT,
-00378   XED_ICLASS_NEG,
-00379   XED_ICLASS_NOP,
-00380   XED_ICLASS_NOP2,
-00381   XED_ICLASS_NOP3,
-00382   XED_ICLASS_NOP4,
-00383   XED_ICLASS_NOP5,
-00384   XED_ICLASS_NOP6,
-00385   XED_ICLASS_NOP7,
-00386   XED_ICLASS_NOP8,
-00387   XED_ICLASS_NOP9,
-00388   XED_ICLASS_NOT,
-00389   XED_ICLASS_OR,
-00390   XED_ICLASS_ORPD,
-00391   XED_ICLASS_ORPS,
-00392   XED_ICLASS_OUT,
-00393   XED_ICLASS_OUTSB,
-00394   XED_ICLASS_OUTSD,
-00395   XED_ICLASS_OUTSW,
-00396   XED_ICLASS_PABSB,
-00397   XED_ICLASS_PABSD,
-00398   XED_ICLASS_PABSW,
-00399   XED_ICLASS_PACKSSDW,
-00400   XED_ICLASS_PACKSSWB,
-00401   XED_ICLASS_PACKUSDW,
-00402   XED_ICLASS_PACKUSWB,
-00403   XED_ICLASS_PADDB,
-00404   XED_ICLASS_PADDD,
-00405   XED_ICLASS_PADDQ,
-00406   XED_ICLASS_PADDSB,
-00407   XED_ICLASS_PADDSW,
-00408   XED_ICLASS_PADDUSB,
-00409   XED_ICLASS_PADDUSW,
-00410   XED_ICLASS_PADDW,
-00411   XED_ICLASS_PALIGNR,
-00412   XED_ICLASS_PAND,
-00413   XED_ICLASS_PANDN,
-00414   XED_ICLASS_PAUSE,
-00415   XED_ICLASS_PAVGB,
-00416   XED_ICLASS_PAVGUSB,
-00417   XED_ICLASS_PAVGW,
-00418   XED_ICLASS_PBLENDVB,
-00419   XED_ICLASS_PBLENDW,
-00420   XED_ICLASS_PCMPEQB,
-00421   XED_ICLASS_PCMPEQD,
-00422   XED_ICLASS_PCMPEQQ,
-00423   XED_ICLASS_PCMPEQW,
-00424   XED_ICLASS_PCMPESTRI,
-00425   XED_ICLASS_PCMPESTRM,
-00426   XED_ICLASS_PCMPGTB,
-00427   XED_ICLASS_PCMPGTD,
-00428   XED_ICLASS_PCMPGTQ,
-00429   XED_ICLASS_PCMPGTW,
-00430   XED_ICLASS_PCMPISTRI,
-00431   XED_ICLASS_PCMPISTRM,
-00432   XED_ICLASS_PEXTRB,
-00433   XED_ICLASS_PEXTRD,
-00434   XED_ICLASS_PEXTRQ,
-00435   XED_ICLASS_PEXTRW,
-00436   XED_ICLASS_PF2ID,
-00437   XED_ICLASS_PF2IW,
-00438   XED_ICLASS_PFACC,
-00439   XED_ICLASS_PFADD,
-00440   XED_ICLASS_PFCMPEQ,
-00441   XED_ICLASS_PFCMPGE,
-00442   XED_ICLASS_PFCMPGT,
-00443   XED_ICLASS_PFCPIT1,
-00444   XED_ICLASS_PFMAX,
-00445   XED_ICLASS_PFMIN,
-00446   XED_ICLASS_PFMUL,
-00447   XED_ICLASS_PFNACC,
-00448   XED_ICLASS_PFPNACC,
-00449   XED_ICLASS_PFRCP,
-00450   XED_ICLASS_PFRCPIT2,
-00451   XED_ICLASS_PFRSQIT1,
-00452   XED_ICLASS_PFSQRT,
-00453   XED_ICLASS_PFSUB,
-00454   XED_ICLASS_PFSUBR,
-00455   XED_ICLASS_PHADDD,
-00456   XED_ICLASS_PHADDSW,
-00457   XED_ICLASS_PHADDW,
-00458   XED_ICLASS_PHMINPOSUW,
-00459   XED_ICLASS_PHSUBD,
-00460   XED_ICLASS_PHSUBSW,
-00461   XED_ICLASS_PHSUBW,
-00462   XED_ICLASS_PI2FD,
-00463   XED_ICLASS_PI2FW,
-00464   XED_ICLASS_PINSRB,
-00465   XED_ICLASS_PINSRD,
-00466   XED_ICLASS_PINSRQ,
-00467   XED_ICLASS_PINSRW,
-00468   XED_ICLASS_PMADDUBSW,
-00469   XED_ICLASS_PMADDWD,
-00470   XED_ICLASS_PMAXSB,
-00471   XED_ICLASS_PMAXSD,
-00472   XED_ICLASS_PMAXSW,
-00473   XED_ICLASS_PMAXUB,
-00474   XED_ICLASS_PMAXUD,
-00475   XED_ICLASS_PMAXUW,
-00476   XED_ICLASS_PMINSB,
-00477   XED_ICLASS_PMINSD,
-00478   XED_ICLASS_PMINSW,
-00479   XED_ICLASS_PMINUB,
-00480   XED_ICLASS_PMINUD,
-00481   XED_ICLASS_PMINUW,
-00482   XED_ICLASS_PMOVMSKB,
-00483   XED_ICLASS_PMOVSXBD,
-00484   XED_ICLASS_PMOVSXBQ,
-00485   XED_ICLASS_PMOVSXBW,
-00486   XED_ICLASS_PMOVSXDQ,
-00487   XED_ICLASS_PMOVSXWD,
-00488   XED_ICLASS_PMOVSXWQ,
-00489   XED_ICLASS_PMOVZXBD,
-00490   XED_ICLASS_PMOVZXBQ,
-00491   XED_ICLASS_PMOVZXBW,
-00492   XED_ICLASS_PMOVZXDQ,
-00493   XED_ICLASS_PMOVZXWD,
-00494   XED_ICLASS_PMOVZXWQ,
-00495   XED_ICLASS_PMULDQ,
-00496   XED_ICLASS_PMULHRSW,
-00497   XED_ICLASS_PMULHRW,
-00498   XED_ICLASS_PMULHUW,
-00499   XED_ICLASS_PMULHW,
-00500   XED_ICLASS_PMULLD,
-00501   XED_ICLASS_PMULLW,
-00502   XED_ICLASS_PMULUDQ,
-00503   XED_ICLASS_POP,
-00504   XED_ICLASS_POPA,
-00505   XED_ICLASS_POPAD,
-00506   XED_ICLASS_POPCNT,
-00507   XED_ICLASS_POPF,
-00508   XED_ICLASS_POPFD,
-00509   XED_ICLASS_POPFQ,
-00510   XED_ICLASS_POR,
-00511   XED_ICLASS_PREFETCHNTA,
-00512   XED_ICLASS_PREFETCHT0,
-00513   XED_ICLASS_PREFETCHT1,
-00514   XED_ICLASS_PREFETCHT2,
-00515   XED_ICLASS_PREFETCH_EXCLUSIVE,
-00516   XED_ICLASS_PREFETCH_MODIFIED,
-00517   XED_ICLASS_PREFETCH_RESERVED,
-00518   XED_ICLASS_PSADBW,
-00519   XED_ICLASS_PSHUFB,
-00520   XED_ICLASS_PSHUFD,
-00521   XED_ICLASS_PSHUFHW,
-00522   XED_ICLASS_PSHUFLW,
-00523   XED_ICLASS_PSHUFW,
-00524   XED_ICLASS_PSIGNB,
-00525   XED_ICLASS_PSIGND,
-00526   XED_ICLASS_PSIGNW,
-00527   XED_ICLASS_PSLLD,
-00528   XED_ICLASS_PSLLDQ,
-00529   XED_ICLASS_PSLLQ,
-00530   XED_ICLASS_PSLLW,
-00531   XED_ICLASS_PSRAD,
-00532   XED_ICLASS_PSRAW,
-00533   XED_ICLASS_PSRLD,
-00534   XED_ICLASS_PSRLDQ,
-00535   XED_ICLASS_PSRLQ,
-00536   XED_ICLASS_PSRLW,
-00537   XED_ICLASS_PSUBB,
-00538   XED_ICLASS_PSUBD,
-00539   XED_ICLASS_PSUBQ,
-00540   XED_ICLASS_PSUBSB,
-00541   XED_ICLASS_PSUBSW,
-00542   XED_ICLASS_PSUBUSB,
-00543   XED_ICLASS_PSUBUSW,
-00544   XED_ICLASS_PSUBW,
-00545   XED_ICLASS_PSWAPD,
-00546   XED_ICLASS_PTEST,
-00547   XED_ICLASS_PUNPCKHBW,
-00548   XED_ICLASS_PUNPCKHDQ,
-00549   XED_ICLASS_PUNPCKHQDQ,
-00550   XED_ICLASS_PUNPCKHWD,
-00551   XED_ICLASS_PUNPCKLBW,
-00552   XED_ICLASS_PUNPCKLDQ,
-00553   XED_ICLASS_PUNPCKLQDQ,
-00554   XED_ICLASS_PUNPCKLWD,
-00555   XED_ICLASS_PUSH,
-00556   XED_ICLASS_PUSHA,
-00557   XED_ICLASS_PUSHAD,
-00558   XED_ICLASS_PUSHF,
-00559   XED_ICLASS_PUSHFD,
-00560   XED_ICLASS_PUSHFQ,
-00561   XED_ICLASS_PXOR,
-00562   XED_ICLASS_RCL,
-00563   XED_ICLASS_RCPPS,
-00564   XED_ICLASS_RCPSS,
-00565   XED_ICLASS_RCR,
-00566   XED_ICLASS_RDMSR,
-00567   XED_ICLASS_RDPMC,
-00568   XED_ICLASS_RDTSC,
-00569   XED_ICLASS_RDTSCP,
-00570   XED_ICLASS_RET_FAR,
-00571   XED_ICLASS_RET_NEAR,
-00572   XED_ICLASS_ROL,
-00573   XED_ICLASS_ROR,
-00574   XED_ICLASS_ROUNDPD,
-00575   XED_ICLASS_ROUNDPS,
-00576   XED_ICLASS_ROUNDSD,
-00577   XED_ICLASS_ROUNDSS,
-00578   XED_ICLASS_RSM,
-00579   XED_ICLASS_RSQRTPS,
-00580   XED_ICLASS_RSQRTSS,
-00581   XED_ICLASS_SAHF,
-00582   XED_ICLASS_SALC,
-00583   XED_ICLASS_SAR,
-00584   XED_ICLASS_SBB,
-00585   XED_ICLASS_SCASB,
-00586   XED_ICLASS_SCASD,
-00587   XED_ICLASS_SCASQ,
-00588   XED_ICLASS_SCASW,
-00589   XED_ICLASS_SETB,
-00590   XED_ICLASS_SETBE,
-00591   XED_ICLASS_SETL,
-00592   XED_ICLASS_SETLE,
-00593   XED_ICLASS_SETNB,
-00594   XED_ICLASS_SETNBE,
-00595   XED_ICLASS_SETNL,
-00596   XED_ICLASS_SETNLE,
-00597   XED_ICLASS_SETNO,
-00598   XED_ICLASS_SETNP,
-00599   XED_ICLASS_SETNS,
-00600   XED_ICLASS_SETNZ,
-00601   XED_ICLASS_SETO,
-00602   XED_ICLASS_SETP,
-00603   XED_ICLASS_SETS,
-00604   XED_ICLASS_SETZ,
-00605   XED_ICLASS_SFENCE,
-00606   XED_ICLASS_SGDT,
-00607   XED_ICLASS_SHL,
-00608   XED_ICLASS_SHLD,
-00609   XED_ICLASS_SHR,
-00610   XED_ICLASS_SHRD,
-00611   XED_ICLASS_SHUFPD,
-00612   XED_ICLASS_SHUFPS,
-00613   XED_ICLASS_SIDT,
-00614   XED_ICLASS_SKINIT,
-00615   XED_ICLASS_SLDT,
-00616   XED_ICLASS_SMSW,
-00617   XED_ICLASS_SQRTPD,
-00618   XED_ICLASS_SQRTPS,
-00619   XED_ICLASS_SQRTSD,
-00620   XED_ICLASS_SQRTSS,
-00621   XED_ICLASS_STC,
-00622   XED_ICLASS_STD,
-00623   XED_ICLASS_STGI,
-00624   XED_ICLASS_STI,
-00625   XED_ICLASS_STMXCSR,
-00626   XED_ICLASS_STOSB,
-00627   XED_ICLASS_STOSD,
-00628   XED_ICLASS_STOSQ,
-00629   XED_ICLASS_STOSW,
-00630   XED_ICLASS_STR,
-00631   XED_ICLASS_SUB,
-00632   XED_ICLASS_SUBPD,
-00633   XED_ICLASS_SUBPS,
-00634   XED_ICLASS_SUBSD,
-00635   XED_ICLASS_SUBSS,
-00636   XED_ICLASS_SWAPGS,
-00637   XED_ICLASS_SYSCALL,
-00638   XED_ICLASS_SYSENTER,
-00639   XED_ICLASS_SYSEXIT,
-00640   XED_ICLASS_SYSRET,
-00641   XED_ICLASS_TEST,
-00642   XED_ICLASS_UCOMISD,
-00643   XED_ICLASS_UCOMISS,
-00644   XED_ICLASS_UD2,
-00645   XED_ICLASS_UNPCKHPD,
-00646   XED_ICLASS_UNPCKHPS,
-00647   XED_ICLASS_UNPCKLPD,
-00648   XED_ICLASS_UNPCKLPS,
-00649   XED_ICLASS_VERR,
-00650   XED_ICLASS_VERW,
-00651   XED_ICLASS_VMCALL,
-00652   XED_ICLASS_VMCLEAR,
-00653   XED_ICLASS_VMLAUNCH,
-00654   XED_ICLASS_VMLOAD,
-00655   XED_ICLASS_VMMCALL,
-00656   XED_ICLASS_VMPTRLD,
-00657   XED_ICLASS_VMPTRST,
-00658   XED_ICLASS_VMREAD,
-00659   XED_ICLASS_VMRESUME,
-00660   XED_ICLASS_VMRUN,
-00661   XED_ICLASS_VMSAVE,
-00662   XED_ICLASS_VMWRITE,
-00663   XED_ICLASS_VMXOFF,
-00664   XED_ICLASS_VMXON,
-00665   XED_ICLASS_WBINVD,
-00666   XED_ICLASS_WRMSR,
-00667   XED_ICLASS_XADD,
-00668   XED_ICLASS_XCHG,
-00669   XED_ICLASS_XGETBV,
-00670   XED_ICLASS_XLAT,
-00671   XED_ICLASS_XOR,
-00672   XED_ICLASS_XORPD,
-00673   XED_ICLASS_XORPS,
-00674   XED_ICLASS_XRSTOR,
-00675   XED_ICLASS_XSAVE,
-00676   XED_ICLASS_XSETBV,
-00677   XED_ICLASS_LAST
-00678 } xed_iclass_enum_t;
-00679 
-00680 XED_DLL_EXPORT xed_iclass_enum_t
-00681 str2xed_iclass_enum_t(const char* s);
-00682 XED_DLL_EXPORT const char*
-00683 xed_iclass_enum_t2str(const xed_iclass_enum_t p);
-00684 
-00685 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-iclass-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-iclass-enum_8h.html deleted file mode 100644 index 55f7e04..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-iclass-enum_8h.html +++ /dev/null @@ -1,2711 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-iclass-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-iclass-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_ICLASS_ENUM_H_

Enumerations

enum  xed_iclass_enum_t {
-  XED_ICLASS_INVALID, -
-  XED_ICLASS_AAA, -
-  XED_ICLASS_AAD, -
-  XED_ICLASS_AAM, -
-  XED_ICLASS_AAS, -
-  XED_ICLASS_ADC, -
-  XED_ICLASS_ADD, -
-  XED_ICLASS_ADDPD, -
-  XED_ICLASS_ADDPS, -
-  XED_ICLASS_ADDSD, -
-  XED_ICLASS_ADDSS, -
-  XED_ICLASS_ADDSUBPD, -
-  XED_ICLASS_ADDSUBPS, -
-  XED_ICLASS_AND, -
-  XED_ICLASS_ANDNPD, -
-  XED_ICLASS_ANDNPS, -
-  XED_ICLASS_ANDPD, -
-  XED_ICLASS_ANDPS, -
-  XED_ICLASS_ARPL, -
-  XED_ICLASS_BLENDPD, -
-  XED_ICLASS_BLENDPS, -
-  XED_ICLASS_BLENDVPD, -
-  XED_ICLASS_BLENDVPS, -
-  XED_ICLASS_BOUND, -
-  XED_ICLASS_BSF, -
-  XED_ICLASS_BSR, -
-  XED_ICLASS_BSWAP, -
-  XED_ICLASS_BT, -
-  XED_ICLASS_BTC, -
-  XED_ICLASS_BTR, -
-  XED_ICLASS_BTS, -
-  XED_ICLASS_CALL_FAR, -
-  XED_ICLASS_CALL_NEAR, -
-  XED_ICLASS_CBW, -
-  XED_ICLASS_CDQ, -
-  XED_ICLASS_CDQE, -
-  XED_ICLASS_CLC, -
-  XED_ICLASS_CLD, -
-  XED_ICLASS_CLFLUSH, -
-  XED_ICLASS_CLGI, -
-  XED_ICLASS_CLI, -
-  XED_ICLASS_CLTS, -
-  XED_ICLASS_CMC, -
-  XED_ICLASS_CMOVB, -
-  XED_ICLASS_CMOVBE, -
-  XED_ICLASS_CMOVL, -
-  XED_ICLASS_CMOVLE, -
-  XED_ICLASS_CMOVNB, -
-  XED_ICLASS_CMOVNBE, -
-  XED_ICLASS_CMOVNL, -
-  XED_ICLASS_CMOVNLE, -
-  XED_ICLASS_CMOVNO, -
-  XED_ICLASS_CMOVNP, -
-  XED_ICLASS_CMOVNS, -
-  XED_ICLASS_CMOVNZ, -
-  XED_ICLASS_CMOVO, -
-  XED_ICLASS_CMOVP, -
-  XED_ICLASS_CMOVS, -
-  XED_ICLASS_CMOVZ, -
-  XED_ICLASS_CMP, -
-  XED_ICLASS_CMPPD, -
-  XED_ICLASS_CMPPS, -
-  XED_ICLASS_CMPSB, -
-  XED_ICLASS_CMPSD, -
-  XED_ICLASS_CMPSD_XMM, -
-  XED_ICLASS_CMPSQ, -
-  XED_ICLASS_CMPSS, -
-  XED_ICLASS_CMPSW, -
-  XED_ICLASS_CMPXCHG, -
-  XED_ICLASS_CMPXCHG16B, -
-  XED_ICLASS_CMPXCHG8B, -
-  XED_ICLASS_COMISD, -
-  XED_ICLASS_COMISS, -
-  XED_ICLASS_CPUID, -
-  XED_ICLASS_CQO, -
-  XED_ICLASS_CRC32, -
-  XED_ICLASS_CVTDQ2PD, -
-  XED_ICLASS_CVTDQ2PS, -
-  XED_ICLASS_CVTPD2DQ, -
-  XED_ICLASS_CVTPD2PI, -
-  XED_ICLASS_CVTPD2PS, -
-  XED_ICLASS_CVTPI2PD, -
-  XED_ICLASS_CVTPI2PS, -
-  XED_ICLASS_CVTPS2DQ, -
-  XED_ICLASS_CVTPS2PD, -
-  XED_ICLASS_CVTPS2PI, -
-  XED_ICLASS_CVTSD2SI, -
-  XED_ICLASS_CVTSD2SS, -
-  XED_ICLASS_CVTSI2SD, -
-  XED_ICLASS_CVTSI2SS, -
-  XED_ICLASS_CVTSS2SD, -
-  XED_ICLASS_CVTSS2SI, -
-  XED_ICLASS_CVTTPD2DQ, -
-  XED_ICLASS_CVTTPD2PI, -
-  XED_ICLASS_CVTTPS2DQ, -
-  XED_ICLASS_CVTTPS2PI, -
-  XED_ICLASS_CVTTSD2SI, -
-  XED_ICLASS_CVTTSS2SI, -
-  XED_ICLASS_CWD, -
-  XED_ICLASS_CWDE, -
-  XED_ICLASS_DAA, -
-  XED_ICLASS_DAS, -
-  XED_ICLASS_DEC, -
-  XED_ICLASS_DIV, -
-  XED_ICLASS_DIVPD, -
-  XED_ICLASS_DIVPS, -
-  XED_ICLASS_DIVSD, -
-  XED_ICLASS_DIVSS, -
-  XED_ICLASS_DPPD, -
-  XED_ICLASS_DPPS, -
-  XED_ICLASS_EMMS, -
-  XED_ICLASS_ENTER, -
-  XED_ICLASS_EXTRACTPS, -
-  XED_ICLASS_EXTRQ, -
-  XED_ICLASS_F2XM1, -
-  XED_ICLASS_FABS, -
-  XED_ICLASS_FADD, -
-  XED_ICLASS_FADDP, -
-  XED_ICLASS_FBLD, -
-  XED_ICLASS_FBSTP, -
-  XED_ICLASS_FCHS, -
-  XED_ICLASS_FCMOVB, -
-  XED_ICLASS_FCMOVBE, -
-  XED_ICLASS_FCMOVE, -
-  XED_ICLASS_FCMOVNB, -
-  XED_ICLASS_FCMOVNBE, -
-  XED_ICLASS_FCMOVNE, -
-  XED_ICLASS_FCMOVNU, -
-  XED_ICLASS_FCMOVU, -
-  XED_ICLASS_FCOM, -
-  XED_ICLASS_FCOMI, -
-  XED_ICLASS_FCOMIP, -
-  XED_ICLASS_FCOMP, -
-  XED_ICLASS_FCOMPP, -
-  XED_ICLASS_FCOS, -
-  XED_ICLASS_FDECSTP, -
-  XED_ICLASS_FDIV, -
-  XED_ICLASS_FDIVP, -
-  XED_ICLASS_FDIVR, -
-  XED_ICLASS_FDIVRP, -
-  XED_ICLASS_FEMMS, -
-  XED_ICLASS_FFREE, -
-  XED_ICLASS_FFREEP, -
-  XED_ICLASS_FIADD, -
-  XED_ICLASS_FICOM, -
-  XED_ICLASS_FICOMP, -
-  XED_ICLASS_FIDIV, -
-  XED_ICLASS_FIDIVR, -
-  XED_ICLASS_FILD, -
-  XED_ICLASS_FIMUL, -
-  XED_ICLASS_FINCSTP, -
-  XED_ICLASS_FIST, -
-  XED_ICLASS_FISTP, -
-  XED_ICLASS_FISTTP, -
-  XED_ICLASS_FISUB, -
-  XED_ICLASS_FISUBR, -
-  XED_ICLASS_FLD, -
-  XED_ICLASS_FLD1, -
-  XED_ICLASS_FLDCW, -
-  XED_ICLASS_FLDENV, -
-  XED_ICLASS_FLDL2E, -
-  XED_ICLASS_FLDL2T, -
-  XED_ICLASS_FLDLG2, -
-  XED_ICLASS_FLDLN2, -
-  XED_ICLASS_FLDPI, -
-  XED_ICLASS_FLDZ, -
-  XED_ICLASS_FMUL, -
-  XED_ICLASS_FMULP, -
-  XED_ICLASS_FNCLEX, -
-  XED_ICLASS_FNINIT, -
-  XED_ICLASS_FNOP, -
-  XED_ICLASS_FNSAVE, -
-  XED_ICLASS_FNSTCW, -
-  XED_ICLASS_FNSTENV, -
-  XED_ICLASS_FNSTSW, -
-  XED_ICLASS_FPATAN, -
-  XED_ICLASS_FPREM, -
-  XED_ICLASS_FPREM1, -
-  XED_ICLASS_FPTAN, -
-  XED_ICLASS_FRNDINT, -
-  XED_ICLASS_FRSTOR, -
-  XED_ICLASS_FSCALE, -
-  XED_ICLASS_FSETPM287_NOP, -
-  XED_ICLASS_FSIN, -
-  XED_ICLASS_FSINCOS, -
-  XED_ICLASS_FSQRT, -
-  XED_ICLASS_FST, -
-  XED_ICLASS_FSTP, -
-  XED_ICLASS_FSUB, -
-  XED_ICLASS_FSUBP, -
-  XED_ICLASS_FSUBR, -
-  XED_ICLASS_FSUBRP, -
-  XED_ICLASS_FTST, -
-  XED_ICLASS_FUCOM, -
-  XED_ICLASS_FUCOMI, -
-  XED_ICLASS_FUCOMIP, -
-  XED_ICLASS_FUCOMP, -
-  XED_ICLASS_FUCOMPP, -
-  XED_ICLASS_FWAIT, -
-  XED_ICLASS_FXAM, -
-  XED_ICLASS_FXCH, -
-  XED_ICLASS_FXRSTOR, -
-  XED_ICLASS_FXSAVE, -
-  XED_ICLASS_FXTRACT, -
-  XED_ICLASS_FYL2X, -
-  XED_ICLASS_FYL2XP1, -
-  XED_ICLASS_HADDPD, -
-  XED_ICLASS_HADDPS, -
-  XED_ICLASS_HLT, -
-  XED_ICLASS_HSUBPD, -
-  XED_ICLASS_HSUBPS, -
-  XED_ICLASS_IDIV, -
-  XED_ICLASS_IMUL, -
-  XED_ICLASS_IN, -
-  XED_ICLASS_INC, -
-  XED_ICLASS_INSB, -
-  XED_ICLASS_INSD, -
-  XED_ICLASS_INSERTPS, -
-  XED_ICLASS_INSERTQ, -
-  XED_ICLASS_INSW, -
-  XED_ICLASS_INT, -
-  XED_ICLASS_INT1, -
-  XED_ICLASS_INT3, -
-  XED_ICLASS_INTO, -
-  XED_ICLASS_INVD, -
-  XED_ICLASS_INVLPG, -
-  XED_ICLASS_INVLPGA, -
-  XED_ICLASS_IRET, -
-  XED_ICLASS_IRETD, -
-  XED_ICLASS_IRETQ, -
-  XED_ICLASS_JB, -
-  XED_ICLASS_JBE, -
-  XED_ICLASS_JL, -
-  XED_ICLASS_JLE, -
-  XED_ICLASS_JMP, -
-  XED_ICLASS_JMP_FAR, -
-  XED_ICLASS_JNB, -
-  XED_ICLASS_JNBE, -
-  XED_ICLASS_JNL, -
-  XED_ICLASS_JNLE, -
-  XED_ICLASS_JNO, -
-  XED_ICLASS_JNP, -
-  XED_ICLASS_JNS, -
-  XED_ICLASS_JNZ, -
-  XED_ICLASS_JO, -
-  XED_ICLASS_JP, -
-  XED_ICLASS_JRCXZ, -
-  XED_ICLASS_JS, -
-  XED_ICLASS_JZ, -
-  XED_ICLASS_LAHF, -
-  XED_ICLASS_LAR, -
-  XED_ICLASS_LDDQU, -
-  XED_ICLASS_LDMXCSR, -
-  XED_ICLASS_LDS, -
-  XED_ICLASS_LEA, -
-  XED_ICLASS_LEAVE, -
-  XED_ICLASS_LES, -
-  XED_ICLASS_LFENCE, -
-  XED_ICLASS_LFS, -
-  XED_ICLASS_LGDT, -
-  XED_ICLASS_LGS, -
-  XED_ICLASS_LIDT, -
-  XED_ICLASS_LLDT, -
-  XED_ICLASS_LMSW, -
-  XED_ICLASS_LODSB, -
-  XED_ICLASS_LODSD, -
-  XED_ICLASS_LODSQ, -
-  XED_ICLASS_LODSW, -
-  XED_ICLASS_LOOP, -
-  XED_ICLASS_LOOPE, -
-  XED_ICLASS_LOOPNE, -
-  XED_ICLASS_LSL, -
-  XED_ICLASS_LSS, -
-  XED_ICLASS_LTR, -
-  XED_ICLASS_LZCNT, -
-  XED_ICLASS_MASKMOVDQU, -
-  XED_ICLASS_MASKMOVQ, -
-  XED_ICLASS_MAXPD, -
-  XED_ICLASS_MAXPS, -
-  XED_ICLASS_MAXSD, -
-  XED_ICLASS_MAXSS, -
-  XED_ICLASS_MFENCE, -
-  XED_ICLASS_MINPD, -
-  XED_ICLASS_MINPS, -
-  XED_ICLASS_MINSD, -
-  XED_ICLASS_MINSS, -
-  XED_ICLASS_MONITOR, -
-  XED_ICLASS_MOV, -
-  XED_ICLASS_MOVAPD, -
-  XED_ICLASS_MOVAPS, -
-  XED_ICLASS_MOVD, -
-  XED_ICLASS_MOVDDUP, -
-  XED_ICLASS_MOVDQ2Q, -
-  XED_ICLASS_MOVDQA, -
-  XED_ICLASS_MOVDQU, -
-  XED_ICLASS_MOVHLPS, -
-  XED_ICLASS_MOVHPD, -
-  XED_ICLASS_MOVHPS, -
-  XED_ICLASS_MOVLHPS, -
-  XED_ICLASS_MOVLPD, -
-  XED_ICLASS_MOVLPS, -
-  XED_ICLASS_MOVMSKPD, -
-  XED_ICLASS_MOVMSKPS, -
-  XED_ICLASS_MOVNTDQ, -
-  XED_ICLASS_MOVNTDQA, -
-  XED_ICLASS_MOVNTI, -
-  XED_ICLASS_MOVNTPD, -
-  XED_ICLASS_MOVNTPS, -
-  XED_ICLASS_MOVNTQ, -
-  XED_ICLASS_MOVNTSD, -
-  XED_ICLASS_MOVNTSS, -
-  XED_ICLASS_MOVQ, -
-  XED_ICLASS_MOVQ2DQ, -
-  XED_ICLASS_MOVSB, -
-  XED_ICLASS_MOVSD, -
-  XED_ICLASS_MOVSD_XMM, -
-  XED_ICLASS_MOVSHDUP, -
-  XED_ICLASS_MOVSLDUP, -
-  XED_ICLASS_MOVSQ, -
-  XED_ICLASS_MOVSS, -
-  XED_ICLASS_MOVSW, -
-  XED_ICLASS_MOVSX, -
-  XED_ICLASS_MOVSXD, -
-  XED_ICLASS_MOVUPD, -
-  XED_ICLASS_MOVUPS, -
-  XED_ICLASS_MOVZX, -
-  XED_ICLASS_MOV_CR, -
-  XED_ICLASS_MOV_DR, -
-  XED_ICLASS_MPSADBW, -
-  XED_ICLASS_MUL, -
-  XED_ICLASS_MULPD, -
-  XED_ICLASS_MULPS, -
-  XED_ICLASS_MULSD, -
-  XED_ICLASS_MULSS, -
-  XED_ICLASS_MWAIT, -
-  XED_ICLASS_NEG, -
-  XED_ICLASS_NOP, -
-  XED_ICLASS_NOP2, -
-  XED_ICLASS_NOP3, -
-  XED_ICLASS_NOP4, -
-  XED_ICLASS_NOP5, -
-  XED_ICLASS_NOP6, -
-  XED_ICLASS_NOP7, -
-  XED_ICLASS_NOP8, -
-  XED_ICLASS_NOP9, -
-  XED_ICLASS_NOT, -
-  XED_ICLASS_OR, -
-  XED_ICLASS_ORPD, -
-  XED_ICLASS_ORPS, -
-  XED_ICLASS_OUT, -
-  XED_ICLASS_OUTSB, -
-  XED_ICLASS_OUTSD, -
-  XED_ICLASS_OUTSW, -
-  XED_ICLASS_PABSB, -
-  XED_ICLASS_PABSD, -
-  XED_ICLASS_PABSW, -
-  XED_ICLASS_PACKSSDW, -
-  XED_ICLASS_PACKSSWB, -
-  XED_ICLASS_PACKUSDW, -
-  XED_ICLASS_PACKUSWB, -
-  XED_ICLASS_PADDB, -
-  XED_ICLASS_PADDD, -
-  XED_ICLASS_PADDQ, -
-  XED_ICLASS_PADDSB, -
-  XED_ICLASS_PADDSW, -
-  XED_ICLASS_PADDUSB, -
-  XED_ICLASS_PADDUSW, -
-  XED_ICLASS_PADDW, -
-  XED_ICLASS_PALIGNR, -
-  XED_ICLASS_PAND, -
-  XED_ICLASS_PANDN, -
-  XED_ICLASS_PAUSE, -
-  XED_ICLASS_PAVGB, -
-  XED_ICLASS_PAVGUSB, -
-  XED_ICLASS_PAVGW, -
-  XED_ICLASS_PBLENDVB, -
-  XED_ICLASS_PBLENDW, -
-  XED_ICLASS_PCMPEQB, -
-  XED_ICLASS_PCMPEQD, -
-  XED_ICLASS_PCMPEQQ, -
-  XED_ICLASS_PCMPEQW, -
-  XED_ICLASS_PCMPESTRI, -
-  XED_ICLASS_PCMPESTRM, -
-  XED_ICLASS_PCMPGTB, -
-  XED_ICLASS_PCMPGTD, -
-  XED_ICLASS_PCMPGTQ, -
-  XED_ICLASS_PCMPGTW, -
-  XED_ICLASS_PCMPISTRI, -
-  XED_ICLASS_PCMPISTRM, -
-  XED_ICLASS_PEXTRB, -
-  XED_ICLASS_PEXTRD, -
-  XED_ICLASS_PEXTRQ, -
-  XED_ICLASS_PEXTRW, -
-  XED_ICLASS_PF2ID, -
-  XED_ICLASS_PF2IW, -
-  XED_ICLASS_PFACC, -
-  XED_ICLASS_PFADD, -
-  XED_ICLASS_PFCMPEQ, -
-  XED_ICLASS_PFCMPGE, -
-  XED_ICLASS_PFCMPGT, -
-  XED_ICLASS_PFCPIT1, -
-  XED_ICLASS_PFMAX, -
-  XED_ICLASS_PFMIN, -
-  XED_ICLASS_PFMUL, -
-  XED_ICLASS_PFNACC, -
-  XED_ICLASS_PFPNACC, -
-  XED_ICLASS_PFRCP, -
-  XED_ICLASS_PFRCPIT2, -
-  XED_ICLASS_PFRSQIT1, -
-  XED_ICLASS_PFSQRT, -
-  XED_ICLASS_PFSUB, -
-  XED_ICLASS_PFSUBR, -
-  XED_ICLASS_PHADDD, -
-  XED_ICLASS_PHADDSW, -
-  XED_ICLASS_PHADDW, -
-  XED_ICLASS_PHMINPOSUW, -
-  XED_ICLASS_PHSUBD, -
-  XED_ICLASS_PHSUBSW, -
-  XED_ICLASS_PHSUBW, -
-  XED_ICLASS_PI2FD, -
-  XED_ICLASS_PI2FW, -
-  XED_ICLASS_PINSRB, -
-  XED_ICLASS_PINSRD, -
-  XED_ICLASS_PINSRQ, -
-  XED_ICLASS_PINSRW, -
-  XED_ICLASS_PMADDUBSW, -
-  XED_ICLASS_PMADDWD, -
-  XED_ICLASS_PMAXSB, -
-  XED_ICLASS_PMAXSD, -
-  XED_ICLASS_PMAXSW, -
-  XED_ICLASS_PMAXUB, -
-  XED_ICLASS_PMAXUD, -
-  XED_ICLASS_PMAXUW, -
-  XED_ICLASS_PMINSB, -
-  XED_ICLASS_PMINSD, -
-  XED_ICLASS_PMINSW, -
-  XED_ICLASS_PMINUB, -
-  XED_ICLASS_PMINUD, -
-  XED_ICLASS_PMINUW, -
-  XED_ICLASS_PMOVMSKB, -
-  XED_ICLASS_PMOVSXBD, -
-  XED_ICLASS_PMOVSXBQ, -
-  XED_ICLASS_PMOVSXBW, -
-  XED_ICLASS_PMOVSXDQ, -
-  XED_ICLASS_PMOVSXWD, -
-  XED_ICLASS_PMOVSXWQ, -
-  XED_ICLASS_PMOVZXBD, -
-  XED_ICLASS_PMOVZXBQ, -
-  XED_ICLASS_PMOVZXBW, -
-  XED_ICLASS_PMOVZXDQ, -
-  XED_ICLASS_PMOVZXWD, -
-  XED_ICLASS_PMOVZXWQ, -
-  XED_ICLASS_PMULDQ, -
-  XED_ICLASS_PMULHRSW, -
-  XED_ICLASS_PMULHRW, -
-  XED_ICLASS_PMULHUW, -
-  XED_ICLASS_PMULHW, -
-  XED_ICLASS_PMULLD, -
-  XED_ICLASS_PMULLW, -
-  XED_ICLASS_PMULUDQ, -
-  XED_ICLASS_POP, -
-  XED_ICLASS_POPA, -
-  XED_ICLASS_POPAD, -
-  XED_ICLASS_POPCNT, -
-  XED_ICLASS_POPF, -
-  XED_ICLASS_POPFD, -
-  XED_ICLASS_POPFQ, -
-  XED_ICLASS_POR, -
-  XED_ICLASS_PREFETCHNTA, -
-  XED_ICLASS_PREFETCHT0, -
-  XED_ICLASS_PREFETCHT1, -
-  XED_ICLASS_PREFETCHT2, -
-  XED_ICLASS_PREFETCH_EXCLUSIVE, -
-  XED_ICLASS_PREFETCH_MODIFIED, -
-  XED_ICLASS_PREFETCH_RESERVED, -
-  XED_ICLASS_PSADBW, -
-  XED_ICLASS_PSHUFB, -
-  XED_ICLASS_PSHUFD, -
-  XED_ICLASS_PSHUFHW, -
-  XED_ICLASS_PSHUFLW, -
-  XED_ICLASS_PSHUFW, -
-  XED_ICLASS_PSIGNB, -
-  XED_ICLASS_PSIGND, -
-  XED_ICLASS_PSIGNW, -
-  XED_ICLASS_PSLLD, -
-  XED_ICLASS_PSLLDQ, -
-  XED_ICLASS_PSLLQ, -
-  XED_ICLASS_PSLLW, -
-  XED_ICLASS_PSRAD, -
-  XED_ICLASS_PSRAW, -
-  XED_ICLASS_PSRLD, -
-  XED_ICLASS_PSRLDQ, -
-  XED_ICLASS_PSRLQ, -
-  XED_ICLASS_PSRLW, -
-  XED_ICLASS_PSUBB, -
-  XED_ICLASS_PSUBD, -
-  XED_ICLASS_PSUBQ, -
-  XED_ICLASS_PSUBSB, -
-  XED_ICLASS_PSUBSW, -
-  XED_ICLASS_PSUBUSB, -
-  XED_ICLASS_PSUBUSW, -
-  XED_ICLASS_PSUBW, -
-  XED_ICLASS_PSWAPD, -
-  XED_ICLASS_PTEST, -
-  XED_ICLASS_PUNPCKHBW, -
-  XED_ICLASS_PUNPCKHDQ, -
-  XED_ICLASS_PUNPCKHQDQ, -
-  XED_ICLASS_PUNPCKHWD, -
-  XED_ICLASS_PUNPCKLBW, -
-  XED_ICLASS_PUNPCKLDQ, -
-  XED_ICLASS_PUNPCKLQDQ, -
-  XED_ICLASS_PUNPCKLWD, -
-  XED_ICLASS_PUSH, -
-  XED_ICLASS_PUSHA, -
-  XED_ICLASS_PUSHAD, -
-  XED_ICLASS_PUSHF, -
-  XED_ICLASS_PUSHFD, -
-  XED_ICLASS_PUSHFQ, -
-  XED_ICLASS_PXOR, -
-  XED_ICLASS_RCL, -
-  XED_ICLASS_RCPPS, -
-  XED_ICLASS_RCPSS, -
-  XED_ICLASS_RCR, -
-  XED_ICLASS_RDMSR, -
-  XED_ICLASS_RDPMC, -
-  XED_ICLASS_RDTSC, -
-  XED_ICLASS_RDTSCP, -
-  XED_ICLASS_RET_FAR, -
-  XED_ICLASS_RET_NEAR, -
-  XED_ICLASS_ROL, -
-  XED_ICLASS_ROR, -
-  XED_ICLASS_ROUNDPD, -
-  XED_ICLASS_ROUNDPS, -
-  XED_ICLASS_ROUNDSD, -
-  XED_ICLASS_ROUNDSS, -
-  XED_ICLASS_RSM, -
-  XED_ICLASS_RSQRTPS, -
-  XED_ICLASS_RSQRTSS, -
-  XED_ICLASS_SAHF, -
-  XED_ICLASS_SALC, -
-  XED_ICLASS_SAR, -
-  XED_ICLASS_SBB, -
-  XED_ICLASS_SCASB, -
-  XED_ICLASS_SCASD, -
-  XED_ICLASS_SCASQ, -
-  XED_ICLASS_SCASW, -
-  XED_ICLASS_SETB, -
-  XED_ICLASS_SETBE, -
-  XED_ICLASS_SETL, -
-  XED_ICLASS_SETLE, -
-  XED_ICLASS_SETNB, -
-  XED_ICLASS_SETNBE, -
-  XED_ICLASS_SETNL, -
-  XED_ICLASS_SETNLE, -
-  XED_ICLASS_SETNO, -
-  XED_ICLASS_SETNP, -
-  XED_ICLASS_SETNS, -
-  XED_ICLASS_SETNZ, -
-  XED_ICLASS_SETO, -
-  XED_ICLASS_SETP, -
-  XED_ICLASS_SETS, -
-  XED_ICLASS_SETZ, -
-  XED_ICLASS_SFENCE, -
-  XED_ICLASS_SGDT, -
-  XED_ICLASS_SHL, -
-  XED_ICLASS_SHLD, -
-  XED_ICLASS_SHR, -
-  XED_ICLASS_SHRD, -
-  XED_ICLASS_SHUFPD, -
-  XED_ICLASS_SHUFPS, -
-  XED_ICLASS_SIDT, -
-  XED_ICLASS_SKINIT, -
-  XED_ICLASS_SLDT, -
-  XED_ICLASS_SMSW, -
-  XED_ICLASS_SQRTPD, -
-  XED_ICLASS_SQRTPS, -
-  XED_ICLASS_SQRTSD, -
-  XED_ICLASS_SQRTSS, -
-  XED_ICLASS_STC, -
-  XED_ICLASS_STD, -
-  XED_ICLASS_STGI, -
-  XED_ICLASS_STI, -
-  XED_ICLASS_STMXCSR, -
-  XED_ICLASS_STOSB, -
-  XED_ICLASS_STOSD, -
-  XED_ICLASS_STOSQ, -
-  XED_ICLASS_STOSW, -
-  XED_ICLASS_STR, -
-  XED_ICLASS_SUB, -
-  XED_ICLASS_SUBPD, -
-  XED_ICLASS_SUBPS, -
-  XED_ICLASS_SUBSD, -
-  XED_ICLASS_SUBSS, -
-  XED_ICLASS_SWAPGS, -
-  XED_ICLASS_SYSCALL, -
-  XED_ICLASS_SYSENTER, -
-  XED_ICLASS_SYSEXIT, -
-  XED_ICLASS_SYSRET, -
-  XED_ICLASS_TEST, -
-  XED_ICLASS_UCOMISD, -
-  XED_ICLASS_UCOMISS, -
-  XED_ICLASS_UD2, -
-  XED_ICLASS_UNPCKHPD, -
-  XED_ICLASS_UNPCKHPS, -
-  XED_ICLASS_UNPCKLPD, -
-  XED_ICLASS_UNPCKLPS, -
-  XED_ICLASS_VERR, -
-  XED_ICLASS_VERW, -
-  XED_ICLASS_VMCALL, -
-  XED_ICLASS_VMCLEAR, -
-  XED_ICLASS_VMLAUNCH, -
-  XED_ICLASS_VMLOAD, -
-  XED_ICLASS_VMMCALL, -
-  XED_ICLASS_VMPTRLD, -
-  XED_ICLASS_VMPTRST, -
-  XED_ICLASS_VMREAD, -
-  XED_ICLASS_VMRESUME, -
-  XED_ICLASS_VMRUN, -
-  XED_ICLASS_VMSAVE, -
-  XED_ICLASS_VMWRITE, -
-  XED_ICLASS_VMXOFF, -
-  XED_ICLASS_VMXON, -
-  XED_ICLASS_WBINVD, -
-  XED_ICLASS_WRMSR, -
-  XED_ICLASS_XADD, -
-  XED_ICLASS_XCHG, -
-  XED_ICLASS_XGETBV, -
-  XED_ICLASS_XLAT, -
-  XED_ICLASS_XOR, -
-  XED_ICLASS_XORPD, -
-  XED_ICLASS_XORPS, -
-  XED_ICLASS_XRSTOR, -
-  XED_ICLASS_XSAVE, -
-  XED_ICLASS_XSETBV, -
-  XED_ICLASS_LAST -
- }

Functions

XED_DLL_EXPORT xed_iclass_enum_t str2xed_iclass_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_iclass_enum_t2str (const xed_iclass_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_ICLASS_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-iclass-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_iclass_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_ICLASS_INVALID  -
XED_ICLASS_AAA  -
XED_ICLASS_AAD  -
XED_ICLASS_AAM  -
XED_ICLASS_AAS  -
XED_ICLASS_ADC  -
XED_ICLASS_ADD  -
XED_ICLASS_ADDPD  -
XED_ICLASS_ADDPS  -
XED_ICLASS_ADDSD  -
XED_ICLASS_ADDSS  -
XED_ICLASS_ADDSUBPD  -
XED_ICLASS_ADDSUBPS  -
XED_ICLASS_AND  -
XED_ICLASS_ANDNPD  -
XED_ICLASS_ANDNPS  -
XED_ICLASS_ANDPD  -
XED_ICLASS_ANDPS  -
XED_ICLASS_ARPL  -
XED_ICLASS_BLENDPD  -
XED_ICLASS_BLENDPS  -
XED_ICLASS_BLENDVPD  -
XED_ICLASS_BLENDVPS  -
XED_ICLASS_BOUND  -
XED_ICLASS_BSF  -
XED_ICLASS_BSR  -
XED_ICLASS_BSWAP  -
XED_ICLASS_BT  -
XED_ICLASS_BTC  -
XED_ICLASS_BTR  -
XED_ICLASS_BTS  -
XED_ICLASS_CALL_FAR  -
XED_ICLASS_CALL_NEAR  -
XED_ICLASS_CBW  -
XED_ICLASS_CDQ  -
XED_ICLASS_CDQE  -
XED_ICLASS_CLC  -
XED_ICLASS_CLD  -
XED_ICLASS_CLFLUSH  -
XED_ICLASS_CLGI  -
XED_ICLASS_CLI  -
XED_ICLASS_CLTS  -
XED_ICLASS_CMC  -
XED_ICLASS_CMOVB  -
XED_ICLASS_CMOVBE  -
XED_ICLASS_CMOVL  -
XED_ICLASS_CMOVLE  -
XED_ICLASS_CMOVNB  -
XED_ICLASS_CMOVNBE  -
XED_ICLASS_CMOVNL  -
XED_ICLASS_CMOVNLE  -
XED_ICLASS_CMOVNO  -
XED_ICLASS_CMOVNP  -
XED_ICLASS_CMOVNS  -
XED_ICLASS_CMOVNZ  -
XED_ICLASS_CMOVO  -
XED_ICLASS_CMOVP  -
XED_ICLASS_CMOVS  -
XED_ICLASS_CMOVZ  -
XED_ICLASS_CMP  -
XED_ICLASS_CMPPD  -
XED_ICLASS_CMPPS  -
XED_ICLASS_CMPSB  -
XED_ICLASS_CMPSD  -
XED_ICLASS_CMPSD_XMM  -
XED_ICLASS_CMPSQ  -
XED_ICLASS_CMPSS  -
XED_ICLASS_CMPSW  -
XED_ICLASS_CMPXCHG  -
XED_ICLASS_CMPXCHG16B  -
XED_ICLASS_CMPXCHG8B  -
XED_ICLASS_COMISD  -
XED_ICLASS_COMISS  -
XED_ICLASS_CPUID  -
XED_ICLASS_CQO  -
XED_ICLASS_CRC32  -
XED_ICLASS_CVTDQ2PD  -
XED_ICLASS_CVTDQ2PS  -
XED_ICLASS_CVTPD2DQ  -
XED_ICLASS_CVTPD2PI  -
XED_ICLASS_CVTPD2PS  -
XED_ICLASS_CVTPI2PD  -
XED_ICLASS_CVTPI2PS  -
XED_ICLASS_CVTPS2DQ  -
XED_ICLASS_CVTPS2PD  -
XED_ICLASS_CVTPS2PI  -
XED_ICLASS_CVTSD2SI  -
XED_ICLASS_CVTSD2SS  -
XED_ICLASS_CVTSI2SD  -
XED_ICLASS_CVTSI2SS  -
XED_ICLASS_CVTSS2SD  -
XED_ICLASS_CVTSS2SI  -
XED_ICLASS_CVTTPD2DQ  -
XED_ICLASS_CVTTPD2PI  -
XED_ICLASS_CVTTPS2DQ  -
XED_ICLASS_CVTTPS2PI  -
XED_ICLASS_CVTTSD2SI  -
XED_ICLASS_CVTTSS2SI  -
XED_ICLASS_CWD  -
XED_ICLASS_CWDE  -
XED_ICLASS_DAA  -
XED_ICLASS_DAS  -
XED_ICLASS_DEC  -
XED_ICLASS_DIV  -
XED_ICLASS_DIVPD  -
XED_ICLASS_DIVPS  -
XED_ICLASS_DIVSD  -
XED_ICLASS_DIVSS  -
XED_ICLASS_DPPD  -
XED_ICLASS_DPPS  -
XED_ICLASS_EMMS  -
XED_ICLASS_ENTER  -
XED_ICLASS_EXTRACTPS  -
XED_ICLASS_EXTRQ  -
XED_ICLASS_F2XM1  -
XED_ICLASS_FABS  -
XED_ICLASS_FADD  -
XED_ICLASS_FADDP  -
XED_ICLASS_FBLD  -
XED_ICLASS_FBSTP  -
XED_ICLASS_FCHS  -
XED_ICLASS_FCMOVB  -
XED_ICLASS_FCMOVBE  -
XED_ICLASS_FCMOVE  -
XED_ICLASS_FCMOVNB  -
XED_ICLASS_FCMOVNBE  -
XED_ICLASS_FCMOVNE  -
XED_ICLASS_FCMOVNU  -
XED_ICLASS_FCMOVU  -
XED_ICLASS_FCOM  -
XED_ICLASS_FCOMI  -
XED_ICLASS_FCOMIP  -
XED_ICLASS_FCOMP  -
XED_ICLASS_FCOMPP  -
XED_ICLASS_FCOS  -
XED_ICLASS_FDECSTP  -
XED_ICLASS_FDIV  -
XED_ICLASS_FDIVP  -
XED_ICLASS_FDIVR  -
XED_ICLASS_FDIVRP  -
XED_ICLASS_FEMMS  -
XED_ICLASS_FFREE  -
XED_ICLASS_FFREEP  -
XED_ICLASS_FIADD  -
XED_ICLASS_FICOM  -
XED_ICLASS_FICOMP  -
XED_ICLASS_FIDIV  -
XED_ICLASS_FIDIVR  -
XED_ICLASS_FILD  -
XED_ICLASS_FIMUL  -
XED_ICLASS_FINCSTP  -
XED_ICLASS_FIST  -
XED_ICLASS_FISTP  -
XED_ICLASS_FISTTP  -
XED_ICLASS_FISUB  -
XED_ICLASS_FISUBR  -
XED_ICLASS_FLD  -
XED_ICLASS_FLD1  -
XED_ICLASS_FLDCW  -
XED_ICLASS_FLDENV  -
XED_ICLASS_FLDL2E  -
XED_ICLASS_FLDL2T  -
XED_ICLASS_FLDLG2  -
XED_ICLASS_FLDLN2  -
XED_ICLASS_FLDPI  -
XED_ICLASS_FLDZ  -
XED_ICLASS_FMUL  -
XED_ICLASS_FMULP  -
XED_ICLASS_FNCLEX  -
XED_ICLASS_FNINIT  -
XED_ICLASS_FNOP  -
XED_ICLASS_FNSAVE  -
XED_ICLASS_FNSTCW  -
XED_ICLASS_FNSTENV  -
XED_ICLASS_FNSTSW  -
XED_ICLASS_FPATAN  -
XED_ICLASS_FPREM  -
XED_ICLASS_FPREM1  -
XED_ICLASS_FPTAN  -
XED_ICLASS_FRNDINT  -
XED_ICLASS_FRSTOR  -
XED_ICLASS_FSCALE  -
XED_ICLASS_FSETPM287_NOP  -
XED_ICLASS_FSIN  -
XED_ICLASS_FSINCOS  -
XED_ICLASS_FSQRT  -
XED_ICLASS_FST  -
XED_ICLASS_FSTP  -
XED_ICLASS_FSUB  -
XED_ICLASS_FSUBP  -
XED_ICLASS_FSUBR  -
XED_ICLASS_FSUBRP  -
XED_ICLASS_FTST  -
XED_ICLASS_FUCOM  -
XED_ICLASS_FUCOMI  -
XED_ICLASS_FUCOMIP  -
XED_ICLASS_FUCOMP  -
XED_ICLASS_FUCOMPP  -
XED_ICLASS_FWAIT  -
XED_ICLASS_FXAM  -
XED_ICLASS_FXCH  -
XED_ICLASS_FXRSTOR  -
XED_ICLASS_FXSAVE  -
XED_ICLASS_FXTRACT  -
XED_ICLASS_FYL2X  -
XED_ICLASS_FYL2XP1  -
XED_ICLASS_HADDPD  -
XED_ICLASS_HADDPS  -
XED_ICLASS_HLT  -
XED_ICLASS_HSUBPD  -
XED_ICLASS_HSUBPS  -
XED_ICLASS_IDIV  -
XED_ICLASS_IMUL  -
XED_ICLASS_IN  -
XED_ICLASS_INC  -
XED_ICLASS_INSB  -
XED_ICLASS_INSD  -
XED_ICLASS_INSERTPS  -
XED_ICLASS_INSERTQ  -
XED_ICLASS_INSW  -
XED_ICLASS_INT  -
XED_ICLASS_INT1  -
XED_ICLASS_INT3  -
XED_ICLASS_INTO  -
XED_ICLASS_INVD  -
XED_ICLASS_INVLPG  -
XED_ICLASS_INVLPGA  -
XED_ICLASS_IRET  -
XED_ICLASS_IRETD  -
XED_ICLASS_IRETQ  -
XED_ICLASS_JB  -
XED_ICLASS_JBE  -
XED_ICLASS_JL  -
XED_ICLASS_JLE  -
XED_ICLASS_JMP  -
XED_ICLASS_JMP_FAR  -
XED_ICLASS_JNB  -
XED_ICLASS_JNBE  -
XED_ICLASS_JNL  -
XED_ICLASS_JNLE  -
XED_ICLASS_JNO  -
XED_ICLASS_JNP  -
XED_ICLASS_JNS  -
XED_ICLASS_JNZ  -
XED_ICLASS_JO  -
XED_ICLASS_JP  -
XED_ICLASS_JRCXZ  -
XED_ICLASS_JS  -
XED_ICLASS_JZ  -
XED_ICLASS_LAHF  -
XED_ICLASS_LAR  -
XED_ICLASS_LDDQU  -
XED_ICLASS_LDMXCSR  -
XED_ICLASS_LDS  -
XED_ICLASS_LEA  -
XED_ICLASS_LEAVE  -
XED_ICLASS_LES  -
XED_ICLASS_LFENCE  -
XED_ICLASS_LFS  -
XED_ICLASS_LGDT  -
XED_ICLASS_LGS  -
XED_ICLASS_LIDT  -
XED_ICLASS_LLDT  -
XED_ICLASS_LMSW  -
XED_ICLASS_LODSB  -
XED_ICLASS_LODSD  -
XED_ICLASS_LODSQ  -
XED_ICLASS_LODSW  -
XED_ICLASS_LOOP  -
XED_ICLASS_LOOPE  -
XED_ICLASS_LOOPNE  -
XED_ICLASS_LSL  -
XED_ICLASS_LSS  -
XED_ICLASS_LTR  -
XED_ICLASS_LZCNT  -
XED_ICLASS_MASKMOVDQU  -
XED_ICLASS_MASKMOVQ  -
XED_ICLASS_MAXPD  -
XED_ICLASS_MAXPS  -
XED_ICLASS_MAXSD  -
XED_ICLASS_MAXSS  -
XED_ICLASS_MFENCE  -
XED_ICLASS_MINPD  -
XED_ICLASS_MINPS  -
XED_ICLASS_MINSD  -
XED_ICLASS_MINSS  -
XED_ICLASS_MONITOR  -
XED_ICLASS_MOV  -
XED_ICLASS_MOVAPD  -
XED_ICLASS_MOVAPS  -
XED_ICLASS_MOVD  -
XED_ICLASS_MOVDDUP  -
XED_ICLASS_MOVDQ2Q  -
XED_ICLASS_MOVDQA  -
XED_ICLASS_MOVDQU  -
XED_ICLASS_MOVHLPS  -
XED_ICLASS_MOVHPD  -
XED_ICLASS_MOVHPS  -
XED_ICLASS_MOVLHPS  -
XED_ICLASS_MOVLPD  -
XED_ICLASS_MOVLPS  -
XED_ICLASS_MOVMSKPD  -
XED_ICLASS_MOVMSKPS  -
XED_ICLASS_MOVNTDQ  -
XED_ICLASS_MOVNTDQA  -
XED_ICLASS_MOVNTI  -
XED_ICLASS_MOVNTPD  -
XED_ICLASS_MOVNTPS  -
XED_ICLASS_MOVNTQ  -
XED_ICLASS_MOVNTSD  -
XED_ICLASS_MOVNTSS  -
XED_ICLASS_MOVQ  -
XED_ICLASS_MOVQ2DQ  -
XED_ICLASS_MOVSB  -
XED_ICLASS_MOVSD  -
XED_ICLASS_MOVSD_XMM  -
XED_ICLASS_MOVSHDUP  -
XED_ICLASS_MOVSLDUP  -
XED_ICLASS_MOVSQ  -
XED_ICLASS_MOVSS  -
XED_ICLASS_MOVSW  -
XED_ICLASS_MOVSX  -
XED_ICLASS_MOVSXD  -
XED_ICLASS_MOVUPD  -
XED_ICLASS_MOVUPS  -
XED_ICLASS_MOVZX  -
XED_ICLASS_MOV_CR  -
XED_ICLASS_MOV_DR  -
XED_ICLASS_MPSADBW  -
XED_ICLASS_MUL  -
XED_ICLASS_MULPD  -
XED_ICLASS_MULPS  -
XED_ICLASS_MULSD  -
XED_ICLASS_MULSS  -
XED_ICLASS_MWAIT  -
XED_ICLASS_NEG  -
XED_ICLASS_NOP  -
XED_ICLASS_NOP2  -
XED_ICLASS_NOP3  -
XED_ICLASS_NOP4  -
XED_ICLASS_NOP5  -
XED_ICLASS_NOP6  -
XED_ICLASS_NOP7  -
XED_ICLASS_NOP8  -
XED_ICLASS_NOP9  -
XED_ICLASS_NOT  -
XED_ICLASS_OR  -
XED_ICLASS_ORPD  -
XED_ICLASS_ORPS  -
XED_ICLASS_OUT  -
XED_ICLASS_OUTSB  -
XED_ICLASS_OUTSD  -
XED_ICLASS_OUTSW  -
XED_ICLASS_PABSB  -
XED_ICLASS_PABSD  -
XED_ICLASS_PABSW  -
XED_ICLASS_PACKSSDW  -
XED_ICLASS_PACKSSWB  -
XED_ICLASS_PACKUSDW  -
XED_ICLASS_PACKUSWB  -
XED_ICLASS_PADDB  -
XED_ICLASS_PADDD  -
XED_ICLASS_PADDQ  -
XED_ICLASS_PADDSB  -
XED_ICLASS_PADDSW  -
XED_ICLASS_PADDUSB  -
XED_ICLASS_PADDUSW  -
XED_ICLASS_PADDW  -
XED_ICLASS_PALIGNR  -
XED_ICLASS_PAND  -
XED_ICLASS_PANDN  -
XED_ICLASS_PAUSE  -
XED_ICLASS_PAVGB  -
XED_ICLASS_PAVGUSB  -
XED_ICLASS_PAVGW  -
XED_ICLASS_PBLENDVB  -
XED_ICLASS_PBLENDW  -
XED_ICLASS_PCMPEQB  -
XED_ICLASS_PCMPEQD  -
XED_ICLASS_PCMPEQQ  -
XED_ICLASS_PCMPEQW  -
XED_ICLASS_PCMPESTRI  -
XED_ICLASS_PCMPESTRM  -
XED_ICLASS_PCMPGTB  -
XED_ICLASS_PCMPGTD  -
XED_ICLASS_PCMPGTQ  -
XED_ICLASS_PCMPGTW  -
XED_ICLASS_PCMPISTRI  -
XED_ICLASS_PCMPISTRM  -
XED_ICLASS_PEXTRB  -
XED_ICLASS_PEXTRD  -
XED_ICLASS_PEXTRQ  -
XED_ICLASS_PEXTRW  -
XED_ICLASS_PF2ID  -
XED_ICLASS_PF2IW  -
XED_ICLASS_PFACC  -
XED_ICLASS_PFADD  -
XED_ICLASS_PFCMPEQ  -
XED_ICLASS_PFCMPGE  -
XED_ICLASS_PFCMPGT  -
XED_ICLASS_PFCPIT1  -
XED_ICLASS_PFMAX  -
XED_ICLASS_PFMIN  -
XED_ICLASS_PFMUL  -
XED_ICLASS_PFNACC  -
XED_ICLASS_PFPNACC  -
XED_ICLASS_PFRCP  -
XED_ICLASS_PFRCPIT2  -
XED_ICLASS_PFRSQIT1  -
XED_ICLASS_PFSQRT  -
XED_ICLASS_PFSUB  -
XED_ICLASS_PFSUBR  -
XED_ICLASS_PHADDD  -
XED_ICLASS_PHADDSW  -
XED_ICLASS_PHADDW  -
XED_ICLASS_PHMINPOSUW  -
XED_ICLASS_PHSUBD  -
XED_ICLASS_PHSUBSW  -
XED_ICLASS_PHSUBW  -
XED_ICLASS_PI2FD  -
XED_ICLASS_PI2FW  -
XED_ICLASS_PINSRB  -
XED_ICLASS_PINSRD  -
XED_ICLASS_PINSRQ  -
XED_ICLASS_PINSRW  -
XED_ICLASS_PMADDUBSW  -
XED_ICLASS_PMADDWD  -
XED_ICLASS_PMAXSB  -
XED_ICLASS_PMAXSD  -
XED_ICLASS_PMAXSW  -
XED_ICLASS_PMAXUB  -
XED_ICLASS_PMAXUD  -
XED_ICLASS_PMAXUW  -
XED_ICLASS_PMINSB  -
XED_ICLASS_PMINSD  -
XED_ICLASS_PMINSW  -
XED_ICLASS_PMINUB  -
XED_ICLASS_PMINUD  -
XED_ICLASS_PMINUW  -
XED_ICLASS_PMOVMSKB  -
XED_ICLASS_PMOVSXBD  -
XED_ICLASS_PMOVSXBQ  -
XED_ICLASS_PMOVSXBW  -
XED_ICLASS_PMOVSXDQ  -
XED_ICLASS_PMOVSXWD  -
XED_ICLASS_PMOVSXWQ  -
XED_ICLASS_PMOVZXBD  -
XED_ICLASS_PMOVZXBQ  -
XED_ICLASS_PMOVZXBW  -
XED_ICLASS_PMOVZXDQ  -
XED_ICLASS_PMOVZXWD  -
XED_ICLASS_PMOVZXWQ  -
XED_ICLASS_PMULDQ  -
XED_ICLASS_PMULHRSW  -
XED_ICLASS_PMULHRW  -
XED_ICLASS_PMULHUW  -
XED_ICLASS_PMULHW  -
XED_ICLASS_PMULLD  -
XED_ICLASS_PMULLW  -
XED_ICLASS_PMULUDQ  -
XED_ICLASS_POP  -
XED_ICLASS_POPA  -
XED_ICLASS_POPAD  -
XED_ICLASS_POPCNT  -
XED_ICLASS_POPF  -
XED_ICLASS_POPFD  -
XED_ICLASS_POPFQ  -
XED_ICLASS_POR  -
XED_ICLASS_PREFETCHNTA  -
XED_ICLASS_PREFETCHT0  -
XED_ICLASS_PREFETCHT1  -
XED_ICLASS_PREFETCHT2  -
XED_ICLASS_PREFETCH_EXCLUSIVE  -
XED_ICLASS_PREFETCH_MODIFIED  -
XED_ICLASS_PREFETCH_RESERVED  -
XED_ICLASS_PSADBW  -
XED_ICLASS_PSHUFB  -
XED_ICLASS_PSHUFD  -
XED_ICLASS_PSHUFHW  -
XED_ICLASS_PSHUFLW  -
XED_ICLASS_PSHUFW  -
XED_ICLASS_PSIGNB  -
XED_ICLASS_PSIGND  -
XED_ICLASS_PSIGNW  -
XED_ICLASS_PSLLD  -
XED_ICLASS_PSLLDQ  -
XED_ICLASS_PSLLQ  -
XED_ICLASS_PSLLW  -
XED_ICLASS_PSRAD  -
XED_ICLASS_PSRAW  -
XED_ICLASS_PSRLD  -
XED_ICLASS_PSRLDQ  -
XED_ICLASS_PSRLQ  -
XED_ICLASS_PSRLW  -
XED_ICLASS_PSUBB  -
XED_ICLASS_PSUBD  -
XED_ICLASS_PSUBQ  -
XED_ICLASS_PSUBSB  -
XED_ICLASS_PSUBSW  -
XED_ICLASS_PSUBUSB  -
XED_ICLASS_PSUBUSW  -
XED_ICLASS_PSUBW  -
XED_ICLASS_PSWAPD  -
XED_ICLASS_PTEST  -
XED_ICLASS_PUNPCKHBW  -
XED_ICLASS_PUNPCKHDQ  -
XED_ICLASS_PUNPCKHQDQ  -
XED_ICLASS_PUNPCKHWD  -
XED_ICLASS_PUNPCKLBW  -
XED_ICLASS_PUNPCKLDQ  -
XED_ICLASS_PUNPCKLQDQ  -
XED_ICLASS_PUNPCKLWD  -
XED_ICLASS_PUSH  -
XED_ICLASS_PUSHA  -
XED_ICLASS_PUSHAD  -
XED_ICLASS_PUSHF  -
XED_ICLASS_PUSHFD  -
XED_ICLASS_PUSHFQ  -
XED_ICLASS_PXOR  -
XED_ICLASS_RCL  -
XED_ICLASS_RCPPS  -
XED_ICLASS_RCPSS  -
XED_ICLASS_RCR  -
XED_ICLASS_RDMSR  -
XED_ICLASS_RDPMC  -
XED_ICLASS_RDTSC  -
XED_ICLASS_RDTSCP  -
XED_ICLASS_RET_FAR  -
XED_ICLASS_RET_NEAR  -
XED_ICLASS_ROL  -
XED_ICLASS_ROR  -
XED_ICLASS_ROUNDPD  -
XED_ICLASS_ROUNDPS  -
XED_ICLASS_ROUNDSD  -
XED_ICLASS_ROUNDSS  -
XED_ICLASS_RSM  -
XED_ICLASS_RSQRTPS  -
XED_ICLASS_RSQRTSS  -
XED_ICLASS_SAHF  -
XED_ICLASS_SALC  -
XED_ICLASS_SAR  -
XED_ICLASS_SBB  -
XED_ICLASS_SCASB  -
XED_ICLASS_SCASD  -
XED_ICLASS_SCASQ  -
XED_ICLASS_SCASW  -
XED_ICLASS_SETB  -
XED_ICLASS_SETBE  -
XED_ICLASS_SETL  -
XED_ICLASS_SETLE  -
XED_ICLASS_SETNB  -
XED_ICLASS_SETNBE  -
XED_ICLASS_SETNL  -
XED_ICLASS_SETNLE  -
XED_ICLASS_SETNO  -
XED_ICLASS_SETNP  -
XED_ICLASS_SETNS  -
XED_ICLASS_SETNZ  -
XED_ICLASS_SETO  -
XED_ICLASS_SETP  -
XED_ICLASS_SETS  -
XED_ICLASS_SETZ  -
XED_ICLASS_SFENCE  -
XED_ICLASS_SGDT  -
XED_ICLASS_SHL  -
XED_ICLASS_SHLD  -
XED_ICLASS_SHR  -
XED_ICLASS_SHRD  -
XED_ICLASS_SHUFPD  -
XED_ICLASS_SHUFPS  -
XED_ICLASS_SIDT  -
XED_ICLASS_SKINIT  -
XED_ICLASS_SLDT  -
XED_ICLASS_SMSW  -
XED_ICLASS_SQRTPD  -
XED_ICLASS_SQRTPS  -
XED_ICLASS_SQRTSD  -
XED_ICLASS_SQRTSS  -
XED_ICLASS_STC  -
XED_ICLASS_STD  -
XED_ICLASS_STGI  -
XED_ICLASS_STI  -
XED_ICLASS_STMXCSR  -
XED_ICLASS_STOSB  -
XED_ICLASS_STOSD  -
XED_ICLASS_STOSQ  -
XED_ICLASS_STOSW  -
XED_ICLASS_STR  -
XED_ICLASS_SUB  -
XED_ICLASS_SUBPD  -
XED_ICLASS_SUBPS  -
XED_ICLASS_SUBSD  -
XED_ICLASS_SUBSS  -
XED_ICLASS_SWAPGS  -
XED_ICLASS_SYSCALL  -
XED_ICLASS_SYSENTER  -
XED_ICLASS_SYSEXIT  -
XED_ICLASS_SYSRET  -
XED_ICLASS_TEST  -
XED_ICLASS_UCOMISD  -
XED_ICLASS_UCOMISS  -
XED_ICLASS_UD2  -
XED_ICLASS_UNPCKHPD  -
XED_ICLASS_UNPCKHPS  -
XED_ICLASS_UNPCKLPD  -
XED_ICLASS_UNPCKLPS  -
XED_ICLASS_VERR  -
XED_ICLASS_VERW  -
XED_ICLASS_VMCALL  -
XED_ICLASS_VMCLEAR  -
XED_ICLASS_VMLAUNCH  -
XED_ICLASS_VMLOAD  -
XED_ICLASS_VMMCALL  -
XED_ICLASS_VMPTRLD  -
XED_ICLASS_VMPTRST  -
XED_ICLASS_VMREAD  -
XED_ICLASS_VMRESUME  -
XED_ICLASS_VMRUN  -
XED_ICLASS_VMSAVE  -
XED_ICLASS_VMWRITE  -
XED_ICLASS_VMXOFF  -
XED_ICLASS_VMXON  -
XED_ICLASS_WBINVD  -
XED_ICLASS_WRMSR  -
XED_ICLASS_XADD  -
XED_ICLASS_XCHG  -
XED_ICLASS_XGETBV  -
XED_ICLASS_XLAT  -
XED_ICLASS_XOR  -
XED_ICLASS_XORPD  -
XED_ICLASS_XORPS  -
XED_ICLASS_XRSTOR  -
XED_ICLASS_XSAVE  -
XED_ICLASS_XSETBV  -
XED_ICLASS_LAST  -
-
- -

-Definition at line 42 of file xed-iclass-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_iclass_enum_t str2xed_iclass_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_iclass_enum_t2str const xed_iclass_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-iform-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-iform-enum_8h-source.html deleted file mode 100644 index 5e03c42..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-iform-enum_8h-source.html +++ /dev/null @@ -1,1565 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-iform-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_IFORM_ENUM_H_)
-00040 # define _XED_IFORM_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 #include "xed-iclass-enum.h"
-00043 typedef enum {
-00044   XED_IFORM_INVALID=0, 
-00045   XED_IFORM_AAA=(XED_ICLASS_AAA<<8)+0, 
-00046   XED_IFORM_AAD_IMM=(XED_ICLASS_AAD<<8)+0, 
-00047   XED_IFORM_AAM_IMM=(XED_ICLASS_AAM<<8)+0, 
-00048   XED_IFORM_AAS=(XED_ICLASS_AAS<<8)+0, 
-00049   XED_IFORM_ADC_MEMv_GPRv=(XED_ICLASS_ADC<<8)+0, 
-00050   XED_IFORM_ADC_GPRv_GPRv=(XED_ICLASS_ADC<<8)+1, 
-00051   XED_IFORM_ADC_GPR8_MEMb=(XED_ICLASS_ADC<<8)+2, 
-00052   XED_IFORM_ADC_AL_IMM=(XED_ICLASS_ADC<<8)+3, 
-00053   XED_IFORM_ADC_GPR8_IMM=(XED_ICLASS_ADC<<8)+4, 
-00054   XED_IFORM_ADC_GPRv_MEMv=(XED_ICLASS_ADC<<8)+5, 
-00055   XED_IFORM_ADC_OrAX_IMM=(XED_ICLASS_ADC<<8)+6, 
-00056   XED_IFORM_ADC_MEMv_IMM=(XED_ICLASS_ADC<<8)+7, 
-00057   XED_IFORM_ADC_GPRv_IMM=(XED_ICLASS_ADC<<8)+8, 
-00058   XED_IFORM_ADC_MEMb_GPR8=(XED_ICLASS_ADC<<8)+9, 
-00059   XED_IFORM_ADC_MEMb_IMM=(XED_ICLASS_ADC<<8)+10, 
-00060   XED_IFORM_ADC_GPR8_GPR8=(XED_ICLASS_ADC<<8)+11, 
-00061   XED_IFORM_ADD_GPR8_MEMb=(XED_ICLASS_ADD<<8)+0, 
-00062   XED_IFORM_ADD_OrAX_IMM=(XED_ICLASS_ADD<<8)+1, 
-00063   XED_IFORM_ADD_AL_IMM=(XED_ICLASS_ADD<<8)+2, 
-00064   XED_IFORM_ADD_GPRv_GPRv=(XED_ICLASS_ADD<<8)+3, 
-00065   XED_IFORM_ADD_MEMv_GPRv=(XED_ICLASS_ADD<<8)+4, 
-00066   XED_IFORM_ADD_GPR8_GPR8=(XED_ICLASS_ADD<<8)+5, 
-00067   XED_IFORM_ADD_GPRv_MEMv=(XED_ICLASS_ADD<<8)+6, 
-00068   XED_IFORM_ADD_GPR8_IMM=(XED_ICLASS_ADD<<8)+7, 
-00069   XED_IFORM_ADD_MEMb_IMM=(XED_ICLASS_ADD<<8)+8, 
-00070   XED_IFORM_ADD_GPRv_IMM=(XED_ICLASS_ADD<<8)+9, 
-00071   XED_IFORM_ADD_MEMb_GPR8=(XED_ICLASS_ADD<<8)+10, 
-00072   XED_IFORM_ADD_MEMv_IMM=(XED_ICLASS_ADD<<8)+11, 
-00073   XED_IFORM_ADDPD_XMMpd_XMMpd=(XED_ICLASS_ADDPD<<8)+0, 
-00074   XED_IFORM_ADDPD_XMMpd_MEMpd=(XED_ICLASS_ADDPD<<8)+1, 
-00075   XED_IFORM_ADDPS_XMMps_MEMps=(XED_ICLASS_ADDPS<<8)+0, 
-00076   XED_IFORM_ADDPS_XMMps_XMMps=(XED_ICLASS_ADDPS<<8)+1, 
-00077   XED_IFORM_ADDSD_XMMsd_MEMsd=(XED_ICLASS_ADDSD<<8)+0, 
-00078   XED_IFORM_ADDSD_XMMsd_XMMsd=(XED_ICLASS_ADDSD<<8)+1, 
-00079   XED_IFORM_ADDSS_XMMss_XMMss=(XED_ICLASS_ADDSS<<8)+0, 
-00080   XED_IFORM_ADDSS_XMMss_MEMss=(XED_ICLASS_ADDSS<<8)+1, 
-00081   XED_IFORM_ADDSUBPD_XMMpd_MEMpd=(XED_ICLASS_ADDSUBPD<<8)+0, 
-00082   XED_IFORM_ADDSUBPD_XMMpd_XMMpd=(XED_ICLASS_ADDSUBPD<<8)+1, 
-00083   XED_IFORM_ADDSUBPS_XMMps_XMMps=(XED_ICLASS_ADDSUBPS<<8)+0, 
-00084   XED_IFORM_ADDSUBPS_XMMps_MEMps=(XED_ICLASS_ADDSUBPS<<8)+1, 
-00085   XED_IFORM_AND_OrAX_IMM=(XED_ICLASS_AND<<8)+0, 
-00086   XED_IFORM_AND_GPR8_GPR8=(XED_ICLASS_AND<<8)+1, 
-00087   XED_IFORM_AND_GPR8_IMM=(XED_ICLASS_AND<<8)+2, 
-00088   XED_IFORM_AND_MEMv_IMM=(XED_ICLASS_AND<<8)+3, 
-00089   XED_IFORM_AND_MEMb_GPR8=(XED_ICLASS_AND<<8)+4, 
-00090   XED_IFORM_AND_GPRv_MEMv=(XED_ICLASS_AND<<8)+5, 
-00091   XED_IFORM_AND_GPRv_IMM=(XED_ICLASS_AND<<8)+6, 
-00092   XED_IFORM_AND_GPR8_MEMb=(XED_ICLASS_AND<<8)+7, 
-00093   XED_IFORM_AND_AL_IMM=(XED_ICLASS_AND<<8)+8, 
-00094   XED_IFORM_AND_MEMv_GPRv=(XED_ICLASS_AND<<8)+9, 
-00095   XED_IFORM_AND_MEMb_IMM=(XED_ICLASS_AND<<8)+10, 
-00096   XED_IFORM_AND_GPRv_GPRv=(XED_ICLASS_AND<<8)+11, 
-00097   XED_IFORM_ANDNPD_XMMpd_MEMpd=(XED_ICLASS_ANDNPD<<8)+0, 
-00098   XED_IFORM_ANDNPD_XMMpd_XMMpd=(XED_ICLASS_ANDNPD<<8)+1, 
-00099   XED_IFORM_ANDNPS_XMMps_XMMps=(XED_ICLASS_ANDNPS<<8)+0, 
-00100   XED_IFORM_ANDNPS_XMMps_MEMps=(XED_ICLASS_ANDNPS<<8)+1, 
-00101   XED_IFORM_ANDPD_XMMpd_XMMpd=(XED_ICLASS_ANDPD<<8)+0, 
-00102   XED_IFORM_ANDPD_XMMpd_MEMpd=(XED_ICLASS_ANDPD<<8)+1, 
-00103   XED_IFORM_ANDPS_XMMps_MEMps=(XED_ICLASS_ANDPS<<8)+0, 
-00104   XED_IFORM_ANDPS_XMMps_XMMps=(XED_ICLASS_ANDPS<<8)+1, 
-00105   XED_IFORM_ARPL_GPR16_GPR16=(XED_ICLASS_ARPL<<8)+0, 
-00106   XED_IFORM_ARPL_MEMw_GPR16=(XED_ICLASS_ARPL<<8)+1, 
-00107   XED_IFORM_BLENDPD_XMMdq_XMMdq_IMM=(XED_ICLASS_BLENDPD<<8)+0, 
-00108   XED_IFORM_BLENDPD_XMMdq_MEMdq_IMM=(XED_ICLASS_BLENDPD<<8)+1, 
-00109   XED_IFORM_BLENDPS_XMMdq_XMMdq_IMM=(XED_ICLASS_BLENDPS<<8)+0, 
-00110   XED_IFORM_BLENDPS_XMMdq_MEMdq_IMM=(XED_ICLASS_BLENDPS<<8)+1, 
-00111   XED_IFORM_BLENDVPD_XMMdq_XMMdq_XMM0dq=(XED_ICLASS_BLENDVPD<<8)+0, 
-00112   XED_IFORM_BLENDVPD_XMMdq_MEMdq_XMM0dq=(XED_ICLASS_BLENDVPD<<8)+1, 
-00113   XED_IFORM_BLENDVPS_XMMdq_XMMdq_XMM0dq=(XED_ICLASS_BLENDVPS<<8)+0, 
-00114   XED_IFORM_BLENDVPS_XMMdq_MEMdq_XMM0dq=(XED_ICLASS_BLENDVPS<<8)+1, 
-00115   XED_IFORM_BOUND_GPRv_MEMa=(XED_ICLASS_BOUND<<8)+0, 
-00116   XED_IFORM_BSF_GPRv_MEMv=(XED_ICLASS_BSF<<8)+0, 
-00117   XED_IFORM_BSF_GPRv_GPRv=(XED_ICLASS_BSF<<8)+1, 
-00118   XED_IFORM_BSR_GPRv_GPRv=(XED_ICLASS_BSR<<8)+0, 
-00119   XED_IFORM_BSR_GPRv_MEMv=(XED_ICLASS_BSR<<8)+1, 
-00120   XED_IFORM_BSWAP_GPRv=(XED_ICLASS_BSWAP<<8)+0, 
-00121   XED_IFORM_BT_GPRv_IMM=(XED_ICLASS_BT<<8)+0, 
-00122   XED_IFORM_BT_MEMv_IMM=(XED_ICLASS_BT<<8)+1, 
-00123   XED_IFORM_BT_MEMv_GPRv=(XED_ICLASS_BT<<8)+2, 
-00124   XED_IFORM_BT_GPRv_GPRv=(XED_ICLASS_BT<<8)+3, 
-00125   XED_IFORM_BTC_GPRv_GPRv=(XED_ICLASS_BTC<<8)+0, 
-00126   XED_IFORM_BTC_MEMv_IMM=(XED_ICLASS_BTC<<8)+1, 
-00127   XED_IFORM_BTC_MEMv_GPRv=(XED_ICLASS_BTC<<8)+2, 
-00128   XED_IFORM_BTC_GPRv_IMM=(XED_ICLASS_BTC<<8)+3, 
-00129   XED_IFORM_BTR_GPRv_IMM=(XED_ICLASS_BTR<<8)+0, 
-00130   XED_IFORM_BTR_GPRv_GPRv=(XED_ICLASS_BTR<<8)+1, 
-00131   XED_IFORM_BTR_MEMv_IMM=(XED_ICLASS_BTR<<8)+2, 
-00132   XED_IFORM_BTR_MEMv_GPRv=(XED_ICLASS_BTR<<8)+3, 
-00133   XED_IFORM_BTS_GPRv_GPRv=(XED_ICLASS_BTS<<8)+0, 
-00134   XED_IFORM_BTS_MEMv_IMM=(XED_ICLASS_BTS<<8)+1, 
-00135   XED_IFORM_BTS_MEMv_GPRv=(XED_ICLASS_BTS<<8)+2, 
-00136   XED_IFORM_BTS_GPRv_IMM=(XED_ICLASS_BTS<<8)+3, 
-00137   XED_IFORM_CALL_FAR_MEMp=(XED_ICLASS_CALL_FAR<<8)+0, 
-00138   XED_IFORM_CALL_FAR_PTR_IMM=(XED_ICLASS_CALL_FAR<<8)+1, 
-00139   XED_IFORM_CALL_NEAR_MEMv=(XED_ICLASS_CALL_NEAR<<8)+0, 
-00140   XED_IFORM_CALL_NEAR_RELBR=(XED_ICLASS_CALL_NEAR<<8)+1, 
-00141   XED_IFORM_CALL_NEAR_GPRv=(XED_ICLASS_CALL_NEAR<<8)+2, 
-00142   XED_IFORM_CBW=(XED_ICLASS_CBW<<8)+0, 
-00143   XED_IFORM_CDQ=(XED_ICLASS_CDQ<<8)+0, 
-00144   XED_IFORM_CDQE=(XED_ICLASS_CDQE<<8)+0, 
-00145   XED_IFORM_CLC=(XED_ICLASS_CLC<<8)+0, 
-00146   XED_IFORM_CLD=(XED_ICLASS_CLD<<8)+0, 
-00147   XED_IFORM_CLFLUSH_MEMb=(XED_ICLASS_CLFLUSH<<8)+0, 
-00148   XED_IFORM_CLGI=(XED_ICLASS_CLGI<<8)+0, 
-00149   XED_IFORM_CLI=(XED_ICLASS_CLI<<8)+0, 
-00150   XED_IFORM_CLTS=(XED_ICLASS_CLTS<<8)+0, 
-00151   XED_IFORM_CMC=(XED_ICLASS_CMC<<8)+0, 
-00152   XED_IFORM_CMOVB_GPRv_GPRv=(XED_ICLASS_CMOVB<<8)+0, 
-00153   XED_IFORM_CMOVB_GPRv_MEMv=(XED_ICLASS_CMOVB<<8)+1, 
-00154   XED_IFORM_CMOVBE_GPRv_GPRv=(XED_ICLASS_CMOVBE<<8)+0, 
-00155   XED_IFORM_CMOVBE_GPRv_MEMv=(XED_ICLASS_CMOVBE<<8)+1, 
-00156   XED_IFORM_CMOVL_GPRv_MEMv=(XED_ICLASS_CMOVL<<8)+0, 
-00157   XED_IFORM_CMOVL_GPRv_GPRv=(XED_ICLASS_CMOVL<<8)+1, 
-00158   XED_IFORM_CMOVLE_GPRv_MEMv=(XED_ICLASS_CMOVLE<<8)+0, 
-00159   XED_IFORM_CMOVLE_GPRv_GPRv=(XED_ICLASS_CMOVLE<<8)+1, 
-00160   XED_IFORM_CMOVNB_GPRv_MEMv=(XED_ICLASS_CMOVNB<<8)+0, 
-00161   XED_IFORM_CMOVNB_GPRv_GPRv=(XED_ICLASS_CMOVNB<<8)+1, 
-00162   XED_IFORM_CMOVNBE_GPRv_GPRv=(XED_ICLASS_CMOVNBE<<8)+0, 
-00163   XED_IFORM_CMOVNBE_GPRv_MEMv=(XED_ICLASS_CMOVNBE<<8)+1, 
-00164   XED_IFORM_CMOVNL_GPRv_MEMv=(XED_ICLASS_CMOVNL<<8)+0, 
-00165   XED_IFORM_CMOVNL_GPRv_GPRv=(XED_ICLASS_CMOVNL<<8)+1, 
-00166   XED_IFORM_CMOVNLE_GPRv_GPRv=(XED_ICLASS_CMOVNLE<<8)+0, 
-00167   XED_IFORM_CMOVNLE_GPRv_MEMv=(XED_ICLASS_CMOVNLE<<8)+1, 
-00168   XED_IFORM_CMOVNO_GPRv_MEMv=(XED_ICLASS_CMOVNO<<8)+0, 
-00169   XED_IFORM_CMOVNO_GPRv_GPRv=(XED_ICLASS_CMOVNO<<8)+1, 
-00170   XED_IFORM_CMOVNP_GPRv_GPRv=(XED_ICLASS_CMOVNP<<8)+0, 
-00171   XED_IFORM_CMOVNP_GPRv_MEMv=(XED_ICLASS_CMOVNP<<8)+1, 
-00172   XED_IFORM_CMOVNS_GPRv_GPRv=(XED_ICLASS_CMOVNS<<8)+0, 
-00173   XED_IFORM_CMOVNS_GPRv_MEMv=(XED_ICLASS_CMOVNS<<8)+1, 
-00174   XED_IFORM_CMOVNZ_GPRv_MEMv=(XED_ICLASS_CMOVNZ<<8)+0, 
-00175   XED_IFORM_CMOVNZ_GPRv_GPRv=(XED_ICLASS_CMOVNZ<<8)+1, 
-00176   XED_IFORM_CMOVO_GPRv_MEMv=(XED_ICLASS_CMOVO<<8)+0, 
-00177   XED_IFORM_CMOVO_GPRv_GPRv=(XED_ICLASS_CMOVO<<8)+1, 
-00178   XED_IFORM_CMOVP_GPRv_GPRv=(XED_ICLASS_CMOVP<<8)+0, 
-00179   XED_IFORM_CMOVP_GPRv_MEMv=(XED_ICLASS_CMOVP<<8)+1, 
-00180   XED_IFORM_CMOVS_GPRv_GPRv=(XED_ICLASS_CMOVS<<8)+0, 
-00181   XED_IFORM_CMOVS_GPRv_MEMv=(XED_ICLASS_CMOVS<<8)+1, 
-00182   XED_IFORM_CMOVZ_GPRv_GPRv=(XED_ICLASS_CMOVZ<<8)+0, 
-00183   XED_IFORM_CMOVZ_GPRv_MEMv=(XED_ICLASS_CMOVZ<<8)+1, 
-00184   XED_IFORM_CMP_OrAX_IMM=(XED_ICLASS_CMP<<8)+0, 
-00185   XED_IFORM_CMP_MEMv_GPRv=(XED_ICLASS_CMP<<8)+1, 
-00186   XED_IFORM_CMP_AL_IMM=(XED_ICLASS_CMP<<8)+2, 
-00187   XED_IFORM_CMP_GPRv_GPRv=(XED_ICLASS_CMP<<8)+3, 
-00188   XED_IFORM_CMP_MEMb_IMM=(XED_ICLASS_CMP<<8)+4, 
-00189   XED_IFORM_CMP_GPR8_GPR8=(XED_ICLASS_CMP<<8)+5, 
-00190   XED_IFORM_CMP_MEMb_GPR8=(XED_ICLASS_CMP<<8)+6, 
-00191   XED_IFORM_CMP_GPR8_IMM=(XED_ICLASS_CMP<<8)+7, 
-00192   XED_IFORM_CMP_GPRv_IMM=(XED_ICLASS_CMP<<8)+8, 
-00193   XED_IFORM_CMP_GPRv_MEMv=(XED_ICLASS_CMP<<8)+9, 
-00194   XED_IFORM_CMP_GPR8_MEMb=(XED_ICLASS_CMP<<8)+10, 
-00195   XED_IFORM_CMP_MEMv_IMM=(XED_ICLASS_CMP<<8)+11, 
-00196   XED_IFORM_CMPPD_XMMpd_MEMpd_IMM=(XED_ICLASS_CMPPD<<8)+0, 
-00197   XED_IFORM_CMPPD_XMMpd_XMMpd_IMM=(XED_ICLASS_CMPPD<<8)+1, 
-00198   XED_IFORM_CMPPS_XMMps_XMMps_IMM=(XED_ICLASS_CMPPS<<8)+0, 
-00199   XED_IFORM_CMPPS_XMMps_MEMps_IMM=(XED_ICLASS_CMPPS<<8)+1, 
-00200   XED_IFORM_CMPSB=(XED_ICLASS_CMPSB<<8)+0, 
-00201   XED_IFORM_CMPSD=(XED_ICLASS_CMPSD<<8)+0, 
-00202   XED_IFORM_CMPSD_XMM_XMMsd_MEMsd_IMM=(XED_ICLASS_CMPSD_XMM<<8)+0, 
-00203   XED_IFORM_CMPSD_XMM_XMMsd_XMMsd_IMM=(XED_ICLASS_CMPSD_XMM<<8)+1, 
-00204   XED_IFORM_CMPSQ=(XED_ICLASS_CMPSQ<<8)+0, 
-00205   XED_IFORM_CMPSS_XMMss_XMMss_IMM=(XED_ICLASS_CMPSS<<8)+0, 
-00206   XED_IFORM_CMPSS_XMMss_MEMss_IMM=(XED_ICLASS_CMPSS<<8)+1, 
-00207   XED_IFORM_CMPSW=(XED_ICLASS_CMPSW<<8)+0, 
-00208   XED_IFORM_CMPXCHG_GPR8_GPR8=(XED_ICLASS_CMPXCHG<<8)+0, 
-00209   XED_IFORM_CMPXCHG_MEMv_GPRv=(XED_ICLASS_CMPXCHG<<8)+1, 
-00210   XED_IFORM_CMPXCHG_MEMb_GPR8=(XED_ICLASS_CMPXCHG<<8)+2, 
-00211   XED_IFORM_CMPXCHG_GPRv_GPRv=(XED_ICLASS_CMPXCHG<<8)+3, 
-00212   XED_IFORM_CMPXCHG16B_MEMdq=(XED_ICLASS_CMPXCHG16B<<8)+0, 
-00213   XED_IFORM_CMPXCHG8B_MEMq=(XED_ICLASS_CMPXCHG8B<<8)+0, 
-00214   XED_IFORM_COMISD_XMMsd_MEMsd=(XED_ICLASS_COMISD<<8)+0, 
-00215   XED_IFORM_COMISD_XMMsd_XMMsd=(XED_ICLASS_COMISD<<8)+1, 
-00216   XED_IFORM_COMISS_XMMss_XMMss=(XED_ICLASS_COMISS<<8)+0, 
-00217   XED_IFORM_COMISS_XMMss_MEMss=(XED_ICLASS_COMISS<<8)+1, 
-00218   XED_IFORM_CPUID=(XED_ICLASS_CPUID<<8)+0, 
-00219   XED_IFORM_CQO=(XED_ICLASS_CQO<<8)+0, 
-00220   XED_IFORM_CRC32_GPR32d_GPRv=(XED_ICLASS_CRC32<<8)+0, 
-00221   XED_IFORM_CRC32_GPR32d_MEMb=(XED_ICLASS_CRC32<<8)+1, 
-00222   XED_IFORM_CRC32_GPR32d_GPR8b=(XED_ICLASS_CRC32<<8)+2, 
-00223   XED_IFORM_CRC32_GPR64q_MEMv=(XED_ICLASS_CRC32<<8)+3, 
-00224   XED_IFORM_CRC32_GPR32d_MEMv=(XED_ICLASS_CRC32<<8)+4, 
-00225   XED_IFORM_CRC32_GPR64q_MEMb=(XED_ICLASS_CRC32<<8)+5, 
-00226   XED_IFORM_CRC32_GPR64q_GPRv=(XED_ICLASS_CRC32<<8)+6, 
-00227   XED_IFORM_CRC32_GPR64q_GPR8b=(XED_ICLASS_CRC32<<8)+7, 
-00228   XED_IFORM_CVTDQ2PD_XMMpd_MEMq=(XED_ICLASS_CVTDQ2PD<<8)+0, 
-00229   XED_IFORM_CVTDQ2PD_XMMpd_XMMq=(XED_ICLASS_CVTDQ2PD<<8)+1, 
-00230   XED_IFORM_CVTDQ2PS_XMMps_MEMdq=(XED_ICLASS_CVTDQ2PS<<8)+0, 
-00231   XED_IFORM_CVTDQ2PS_XMMps_XMMdq=(XED_ICLASS_CVTDQ2PS<<8)+1, 
-00232   XED_IFORM_CVTPD2DQ_XMMdq_MEMpd=(XED_ICLASS_CVTPD2DQ<<8)+0, 
-00233   XED_IFORM_CVTPD2DQ_XMMdq_XMMpd=(XED_ICLASS_CVTPD2DQ<<8)+1, 
-00234   XED_IFORM_CVTPD2PI_MMXq_XMMpd=(XED_ICLASS_CVTPD2PI<<8)+0, 
-00235   XED_IFORM_CVTPD2PI_MMXq_MEMpd=(XED_ICLASS_CVTPD2PI<<8)+1, 
-00236   XED_IFORM_CVTPD2PS_XMMps_MEMpd=(XED_ICLASS_CVTPD2PS<<8)+0, 
-00237   XED_IFORM_CVTPD2PS_XMMps_XMMpd=(XED_ICLASS_CVTPD2PS<<8)+1, 
-00238   XED_IFORM_CVTPI2PD_XMMpd_MMXq=(XED_ICLASS_CVTPI2PD<<8)+0, 
-00239   XED_IFORM_CVTPI2PD_XMMpd_MEMq=(XED_ICLASS_CVTPI2PD<<8)+1, 
-00240   XED_IFORM_CVTPI2PS_XMMq_MMXq=(XED_ICLASS_CVTPI2PS<<8)+0, 
-00241   XED_IFORM_CVTPI2PS_XMMq_MEMq=(XED_ICLASS_CVTPI2PS<<8)+1, 
-00242   XED_IFORM_CVTPS2DQ_XMMdq_MEMps=(XED_ICLASS_CVTPS2DQ<<8)+0, 
-00243   XED_IFORM_CVTPS2DQ_XMMdq_XMMps=(XED_ICLASS_CVTPS2DQ<<8)+1, 
-00244   XED_IFORM_CVTPS2PD_XMMpd_MEMq=(XED_ICLASS_CVTPS2PD<<8)+0, 
-00245   XED_IFORM_CVTPS2PD_XMMpd_XMMq=(XED_ICLASS_CVTPS2PD<<8)+1, 
-00246   XED_IFORM_CVTPS2PI_MMXq_MEMq=(XED_ICLASS_CVTPS2PI<<8)+0, 
-00247   XED_IFORM_CVTPS2PI_MMXq_XMMq=(XED_ICLASS_CVTPS2PI<<8)+1, 
-00248   XED_IFORM_CVTSD2SI_GPR32_MEMsd=(XED_ICLASS_CVTSD2SI<<8)+0, 
-00249   XED_IFORM_CVTSD2SI_GPR32_XMMsd=(XED_ICLASS_CVTSD2SI<<8)+1, 
-00250   XED_IFORM_CVTSD2SI_GPR64_XMMsd=(XED_ICLASS_CVTSD2SI<<8)+2, 
-00251   XED_IFORM_CVTSD2SI_GPR64_MEMsd=(XED_ICLASS_CVTSD2SI<<8)+3, 
-00252   XED_IFORM_CVTSD2SS_XMMss_MEMsd=(XED_ICLASS_CVTSD2SS<<8)+0, 
-00253   XED_IFORM_CVTSD2SS_XMMss_XMMsd=(XED_ICLASS_CVTSD2SS<<8)+1, 
-00254   XED_IFORM_CVTSI2SD_XMMsd_GPR64=(XED_ICLASS_CVTSI2SD<<8)+0, 
-00255   XED_IFORM_CVTSI2SD_XMMsd_GPR32=(XED_ICLASS_CVTSI2SD<<8)+1, 
-00256   XED_IFORM_CVTSI2SD_XMMsd_MEMd=(XED_ICLASS_CVTSI2SD<<8)+2, 
-00257   XED_IFORM_CVTSI2SD_XMMsd_MEMq=(XED_ICLASS_CVTSI2SD<<8)+3, 
-00258   XED_IFORM_CVTSI2SS_XMMss_GPR64=(XED_ICLASS_CVTSI2SS<<8)+0, 
-00259   XED_IFORM_CVTSI2SS_XMMss_GPR32=(XED_ICLASS_CVTSI2SS<<8)+1, 
-00260   XED_IFORM_CVTSI2SS_XMMss_MEMd=(XED_ICLASS_CVTSI2SS<<8)+2, 
-00261   XED_IFORM_CVTSI2SS_XMMss_MEMq=(XED_ICLASS_CVTSI2SS<<8)+3, 
-00262   XED_IFORM_CVTSS2SD_XMMsd_MEMss=(XED_ICLASS_CVTSS2SD<<8)+0, 
-00263   XED_IFORM_CVTSS2SD_XMMsd_XMMss=(XED_ICLASS_CVTSS2SD<<8)+1, 
-00264   XED_IFORM_CVTSS2SI_GPR64_XMMss=(XED_ICLASS_CVTSS2SI<<8)+0, 
-00265   XED_IFORM_CVTSS2SI_GPR32_MEMss=(XED_ICLASS_CVTSS2SI<<8)+1, 
-00266   XED_IFORM_CVTSS2SI_GPR32_XMMss=(XED_ICLASS_CVTSS2SI<<8)+2, 
-00267   XED_IFORM_CVTSS2SI_GPR64_MEMss=(XED_ICLASS_CVTSS2SI<<8)+3, 
-00268   XED_IFORM_CVTTPD2DQ_XMMdq_XMMpd=(XED_ICLASS_CVTTPD2DQ<<8)+0, 
-00269   XED_IFORM_CVTTPD2DQ_XMMdq_MEMpd=(XED_ICLASS_CVTTPD2DQ<<8)+1, 
-00270   XED_IFORM_CVTTPD2PI_MMXq_MEMpd=(XED_ICLASS_CVTTPD2PI<<8)+0, 
-00271   XED_IFORM_CVTTPD2PI_MMXq_XMMpd=(XED_ICLASS_CVTTPD2PI<<8)+1, 
-00272   XED_IFORM_CVTTPS2DQ_XMMdq_XMMps=(XED_ICLASS_CVTTPS2DQ<<8)+0, 
-00273   XED_IFORM_CVTTPS2DQ_XMMdq_MEMps=(XED_ICLASS_CVTTPS2DQ<<8)+1, 
-00274   XED_IFORM_CVTTPS2PI_MMXq_MEMq=(XED_ICLASS_CVTTPS2PI<<8)+0, 
-00275   XED_IFORM_CVTTPS2PI_MMXq_XMMq=(XED_ICLASS_CVTTPS2PI<<8)+1, 
-00276   XED_IFORM_CVTTSD2SI_GPR64_MEMsd=(XED_ICLASS_CVTTSD2SI<<8)+0, 
-00277   XED_IFORM_CVTTSD2SI_GPR32_XMMsd=(XED_ICLASS_CVTTSD2SI<<8)+1, 
-00278   XED_IFORM_CVTTSD2SI_GPR32_MEMsd=(XED_ICLASS_CVTTSD2SI<<8)+2, 
-00279   XED_IFORM_CVTTSD2SI_GPR64_XMMsd=(XED_ICLASS_CVTTSD2SI<<8)+3, 
-00280   XED_IFORM_CVTTSS2SI_GPR64_MEMss=(XED_ICLASS_CVTTSS2SI<<8)+0, 
-00281   XED_IFORM_CVTTSS2SI_GPR64_XMMss=(XED_ICLASS_CVTTSS2SI<<8)+1, 
-00282   XED_IFORM_CVTTSS2SI_GPR32_XMMss=(XED_ICLASS_CVTTSS2SI<<8)+2, 
-00283   XED_IFORM_CVTTSS2SI_GPR32_MEMss=(XED_ICLASS_CVTTSS2SI<<8)+3, 
-00284   XED_IFORM_CWD=(XED_ICLASS_CWD<<8)+0, 
-00285   XED_IFORM_CWDE=(XED_ICLASS_CWDE<<8)+0, 
-00286   XED_IFORM_DAA=(XED_ICLASS_DAA<<8)+0, 
-00287   XED_IFORM_DAS=(XED_ICLASS_DAS<<8)+0, 
-00288   XED_IFORM_DEC_GPR8=(XED_ICLASS_DEC<<8)+0, 
-00289   XED_IFORM_DEC_MEMv=(XED_ICLASS_DEC<<8)+1, 
-00290   XED_IFORM_DEC_MEMb=(XED_ICLASS_DEC<<8)+2, 
-00291   XED_IFORM_DEC_GPRv=(XED_ICLASS_DEC<<8)+3, 
-00292   XED_IFORM_DIV_MEMv=(XED_ICLASS_DIV<<8)+0, 
-00293   XED_IFORM_DIV_GPR8=(XED_ICLASS_DIV<<8)+1, 
-00294   XED_IFORM_DIV_GPRv=(XED_ICLASS_DIV<<8)+2, 
-00295   XED_IFORM_DIV_MEMb=(XED_ICLASS_DIV<<8)+3, 
-00296   XED_IFORM_DIVPD_XMMpd_XMMpd=(XED_ICLASS_DIVPD<<8)+0, 
-00297   XED_IFORM_DIVPD_XMMpd_MEMpd=(XED_ICLASS_DIVPD<<8)+1, 
-00298   XED_IFORM_DIVPS_XMMps_MEMps=(XED_ICLASS_DIVPS<<8)+0, 
-00299   XED_IFORM_DIVPS_XMMps_XMMps=(XED_ICLASS_DIVPS<<8)+1, 
-00300   XED_IFORM_DIVSD_XMMsd_MEMsd=(XED_ICLASS_DIVSD<<8)+0, 
-00301   XED_IFORM_DIVSD_XMMsd_XMMsd=(XED_ICLASS_DIVSD<<8)+1, 
-00302   XED_IFORM_DIVSS_XMMss_XMMss=(XED_ICLASS_DIVSS<<8)+0, 
-00303   XED_IFORM_DIVSS_XMMss_MEMss=(XED_ICLASS_DIVSS<<8)+1, 
-00304   XED_IFORM_DPPD_XMMdq_XMMdq_IMM=(XED_ICLASS_DPPD<<8)+0, 
-00305   XED_IFORM_DPPD_XMMdq_MEMdq_IMM=(XED_ICLASS_DPPD<<8)+1, 
-00306   XED_IFORM_DPPS_XMMdq_XMMdq_IMM=(XED_ICLASS_DPPS<<8)+0, 
-00307   XED_IFORM_DPPS_XMMdq_MEMdq_IMM=(XED_ICLASS_DPPS<<8)+1, 
-00308   XED_IFORM_EMMS=(XED_ICLASS_EMMS<<8)+0, 
-00309   XED_IFORM_ENTER_IMM_IMM=(XED_ICLASS_ENTER<<8)+0, 
-00310   XED_IFORM_EXTRACTPS_GPR32w_XMMdq_IMM=(XED_ICLASS_EXTRACTPS<<8)+0, 
-00311   XED_IFORM_EXTRACTPS_MEMw_XMMps_IMM=(XED_ICLASS_EXTRACTPS<<8)+1, 
-00312   XED_IFORM_EXTRQ_XMMq_IMM_IMM=(XED_ICLASS_EXTRQ<<8)+0, 
-00313   XED_IFORM_EXTRQ_XMMq_XMMdq=(XED_ICLASS_EXTRQ<<8)+1, 
-00314   XED_IFORM_F2XM1_ST0=(XED_ICLASS_F2XM1<<8)+0, 
-00315   XED_IFORM_FABS_ST0=(XED_ICLASS_FABS<<8)+0, 
-00316   XED_IFORM_FADD_ST0_MEMmem32real=(XED_ICLASS_FADD<<8)+0, 
-00317   XED_IFORM_FADD_ST0_MEMm64real=(XED_ICLASS_FADD<<8)+1, 
-00318   XED_IFORM_FADD_X87_ST0=(XED_ICLASS_FADD<<8)+2, 
-00319   XED_IFORM_FADD_ST0_X87=(XED_ICLASS_FADD<<8)+3, 
-00320   XED_IFORM_FADDP_X87_ST0=(XED_ICLASS_FADDP<<8)+0, 
-00321   XED_IFORM_FBLD_ST0_MEMmem80dec=(XED_ICLASS_FBLD<<8)+0, 
-00322   XED_IFORM_FBSTP_MEMmem80dec_ST0=(XED_ICLASS_FBSTP<<8)+0, 
-00323   XED_IFORM_FCHS_ST0=(XED_ICLASS_FCHS<<8)+0, 
-00324   XED_IFORM_FCMOVB_ST0_X87=(XED_ICLASS_FCMOVB<<8)+0, 
-00325   XED_IFORM_FCMOVBE_ST0_X87=(XED_ICLASS_FCMOVBE<<8)+0, 
-00326   XED_IFORM_FCMOVE_ST0_X87=(XED_ICLASS_FCMOVE<<8)+0, 
-00327   XED_IFORM_FCMOVNB_ST0_X87=(XED_ICLASS_FCMOVNB<<8)+0, 
-00328   XED_IFORM_FCMOVNBE_ST0_X87=(XED_ICLASS_FCMOVNBE<<8)+0, 
-00329   XED_IFORM_FCMOVNE_ST0_X87=(XED_ICLASS_FCMOVNE<<8)+0, 
-00330   XED_IFORM_FCMOVNU_ST0_X87=(XED_ICLASS_FCMOVNU<<8)+0, 
-00331   XED_IFORM_FCMOVU_ST0_X87=(XED_ICLASS_FCMOVU<<8)+0, 
-00332   XED_IFORM_FCOM_ST0_X87=(XED_ICLASS_FCOM<<8)+0, 
-00333   XED_IFORM_FCOM_ST0_MEMmem32real=(XED_ICLASS_FCOM<<8)+1, 
-00334   XED_IFORM_FCOM_ST0_MEMm64real=(XED_ICLASS_FCOM<<8)+2, 
-00335   XED_IFORM_FCOMI_ST0_X87=(XED_ICLASS_FCOMI<<8)+0, 
-00336   XED_IFORM_FCOMIP_ST0_X87=(XED_ICLASS_FCOMIP<<8)+0, 
-00337   XED_IFORM_FCOMP_ST0_X87=(XED_ICLASS_FCOMP<<8)+0, 
-00338   XED_IFORM_FCOMP_ST0_MEMmem32real=(XED_ICLASS_FCOMP<<8)+1, 
-00339   XED_IFORM_FCOMP_ST0_MEMm64real=(XED_ICLASS_FCOMP<<8)+2, 
-00340   XED_IFORM_FCOMPP_ST0_ST1=(XED_ICLASS_FCOMPP<<8)+0, 
-00341   XED_IFORM_FCOS_ST0=(XED_ICLASS_FCOS<<8)+0, 
-00342   XED_IFORM_FDECSTP=(XED_ICLASS_FDECSTP<<8)+0, 
-00343   XED_IFORM_FDIV_X87_ST0=(XED_ICLASS_FDIV<<8)+0, 
-00344   XED_IFORM_FDIV_ST0_MEMmem32real=(XED_ICLASS_FDIV<<8)+1, 
-00345   XED_IFORM_FDIV_ST0_MEMm64real=(XED_ICLASS_FDIV<<8)+2, 
-00346   XED_IFORM_FDIV_ST0_X87=(XED_ICLASS_FDIV<<8)+3, 
-00347   XED_IFORM_FDIVP_X87_ST0=(XED_ICLASS_FDIVP<<8)+0, 
-00348   XED_IFORM_FDIVR_ST0_MEMm64real=(XED_ICLASS_FDIVR<<8)+0, 
-00349   XED_IFORM_FDIVR_X87_ST0=(XED_ICLASS_FDIVR<<8)+1, 
-00350   XED_IFORM_FDIVR_ST0_X87=(XED_ICLASS_FDIVR<<8)+2, 
-00351   XED_IFORM_FDIVR_ST0_MEMmem32real=(XED_ICLASS_FDIVR<<8)+3, 
-00352   XED_IFORM_FDIVRP_X87_ST0=(XED_ICLASS_FDIVRP<<8)+0, 
-00353   XED_IFORM_FEMMS=(XED_ICLASS_FEMMS<<8)+0, 
-00354   XED_IFORM_FFREE_X87=(XED_ICLASS_FFREE<<8)+0, 
-00355   XED_IFORM_FFREEP_X87=(XED_ICLASS_FFREEP<<8)+0, 
-00356   XED_IFORM_FIADD_ST0_MEMmem32int=(XED_ICLASS_FIADD<<8)+0, 
-00357   XED_IFORM_FIADD_ST0_MEMmem16int=(XED_ICLASS_FIADD<<8)+1, 
-00358   XED_IFORM_FICOM_ST0_MEMmem32int=(XED_ICLASS_FICOM<<8)+0, 
-00359   XED_IFORM_FICOM_ST0_MEMmem16int=(XED_ICLASS_FICOM<<8)+1, 
-00360   XED_IFORM_FICOMP_ST0_MEMmem16int=(XED_ICLASS_FICOMP<<8)+0, 
-00361   XED_IFORM_FICOMP_ST0_MEMmem32int=(XED_ICLASS_FICOMP<<8)+1, 
-00362   XED_IFORM_FIDIV_ST0_MEMmem16int=(XED_ICLASS_FIDIV<<8)+0, 
-00363   XED_IFORM_FIDIV_ST0_MEMmem32int=(XED_ICLASS_FIDIV<<8)+1, 
-00364   XED_IFORM_FIDIVR_ST0_MEMmem32int=(XED_ICLASS_FIDIVR<<8)+0, 
-00365   XED_IFORM_FIDIVR_ST0_MEMmem16int=(XED_ICLASS_FIDIVR<<8)+1, 
-00366   XED_IFORM_FILD_ST0_MEMmem32int=(XED_ICLASS_FILD<<8)+0, 
-00367   XED_IFORM_FILD_ST0_MEMmem16int=(XED_ICLASS_FILD<<8)+1, 
-00368   XED_IFORM_FILD_ST0_MEMm64int=(XED_ICLASS_FILD<<8)+2, 
-00369   XED_IFORM_FIMUL_ST0_MEMmem16int=(XED_ICLASS_FIMUL<<8)+0, 
-00370   XED_IFORM_FIMUL_ST0_MEMmem32int=(XED_ICLASS_FIMUL<<8)+1, 
-00371   XED_IFORM_FINCSTP=(XED_ICLASS_FINCSTP<<8)+0, 
-00372   XED_IFORM_FIST_MEMmem32int_ST0=(XED_ICLASS_FIST<<8)+0, 
-00373   XED_IFORM_FIST_MEMmem16int_ST0=(XED_ICLASS_FIST<<8)+1, 
-00374   XED_IFORM_FISTP_MEMmem32int_ST0=(XED_ICLASS_FISTP<<8)+0, 
-00375   XED_IFORM_FISTP_MEMmem16int_ST0=(XED_ICLASS_FISTP<<8)+1, 
-00376   XED_IFORM_FISTP_MEMm64int_ST0=(XED_ICLASS_FISTP<<8)+2, 
-00377   XED_IFORM_FISTTP_MEMmem16int_ST0=(XED_ICLASS_FISTTP<<8)+0, 
-00378   XED_IFORM_FISTTP_MEMmem32int_ST0=(XED_ICLASS_FISTTP<<8)+1, 
-00379   XED_IFORM_FISTTP_MEMm64int_ST0=(XED_ICLASS_FISTTP<<8)+2, 
-00380   XED_IFORM_FISUB_ST0_MEMmem32int=(XED_ICLASS_FISUB<<8)+0, 
-00381   XED_IFORM_FISUB_ST0_MEMmem16int=(XED_ICLASS_FISUB<<8)+1, 
-00382   XED_IFORM_FISUBR_ST0_MEMmem32int=(XED_ICLASS_FISUBR<<8)+0, 
-00383   XED_IFORM_FISUBR_ST0_MEMmem16int=(XED_ICLASS_FISUBR<<8)+1, 
-00384   XED_IFORM_FLD_ST0_X87=(XED_ICLASS_FLD<<8)+0, 
-00385   XED_IFORM_FLD_ST0_MEMm64real=(XED_ICLASS_FLD<<8)+1, 
-00386   XED_IFORM_FLD_ST0_MEMmem32real=(XED_ICLASS_FLD<<8)+2, 
-00387   XED_IFORM_FLD_ST0_MEMmem80real=(XED_ICLASS_FLD<<8)+3, 
-00388   XED_IFORM_FLD1_ST0=(XED_ICLASS_FLD1<<8)+0, 
-00389   XED_IFORM_FLDCW_MEMmem16=(XED_ICLASS_FLDCW<<8)+0, 
-00390   XED_IFORM_FLDENV_MEMmem14=(XED_ICLASS_FLDENV<<8)+0, 
-00391   XED_IFORM_FLDENV_MEMmem28=(XED_ICLASS_FLDENV<<8)+1, 
-00392   XED_IFORM_FLDL2E_ST0=(XED_ICLASS_FLDL2E<<8)+0, 
-00393   XED_IFORM_FLDL2T_ST0=(XED_ICLASS_FLDL2T<<8)+0, 
-00394   XED_IFORM_FLDLG2_ST0=(XED_ICLASS_FLDLG2<<8)+0, 
-00395   XED_IFORM_FLDLN2_ST0=(XED_ICLASS_FLDLN2<<8)+0, 
-00396   XED_IFORM_FLDPI_ST0=(XED_ICLASS_FLDPI<<8)+0, 
-00397   XED_IFORM_FLDZ_ST0=(XED_ICLASS_FLDZ<<8)+0, 
-00398   XED_IFORM_FMUL_ST0_MEMm64real=(XED_ICLASS_FMUL<<8)+0, 
-00399   XED_IFORM_FMUL_ST0_MEMmem32real=(XED_ICLASS_FMUL<<8)+1, 
-00400   XED_IFORM_FMUL_X87_ST0=(XED_ICLASS_FMUL<<8)+2, 
-00401   XED_IFORM_FMUL_ST0_X87=(XED_ICLASS_FMUL<<8)+3, 
-00402   XED_IFORM_FMULP_X87_ST0=(XED_ICLASS_FMULP<<8)+0, 
-00403   XED_IFORM_FNCLEX=(XED_ICLASS_FNCLEX<<8)+0, 
-00404   XED_IFORM_FNINIT=(XED_ICLASS_FNINIT<<8)+0, 
-00405   XED_IFORM_FNOP=(XED_ICLASS_FNOP<<8)+0, 
-00406   XED_IFORM_FNSAVE_MEMmem98=(XED_ICLASS_FNSAVE<<8)+0, 
-00407   XED_IFORM_FNSAVE_MEMmem108=(XED_ICLASS_FNSAVE<<8)+1, 
-00408   XED_IFORM_FNSTCW_MEMmem16=(XED_ICLASS_FNSTCW<<8)+0, 
-00409   XED_IFORM_FNSTENV_MEMmem28=(XED_ICLASS_FNSTENV<<8)+0, 
-00410   XED_IFORM_FNSTENV_MEMmem14=(XED_ICLASS_FNSTENV<<8)+1, 
-00411   XED_IFORM_FNSTSW_MEMmem16=(XED_ICLASS_FNSTSW<<8)+0, 
-00412   XED_IFORM_FNSTSW_AX=(XED_ICLASS_FNSTSW<<8)+1, 
-00413   XED_IFORM_FPATAN_ST0_ST1=(XED_ICLASS_FPATAN<<8)+0, 
-00414   XED_IFORM_FPREM_ST0_ST1=(XED_ICLASS_FPREM<<8)+0, 
-00415   XED_IFORM_FPREM1_ST0_ST1=(XED_ICLASS_FPREM1<<8)+0, 
-00416   XED_IFORM_FPTAN_ST0_ST1=(XED_ICLASS_FPTAN<<8)+0, 
-00417   XED_IFORM_FRNDINT_ST0=(XED_ICLASS_FRNDINT<<8)+0, 
-00418   XED_IFORM_FRSTOR_MEMmem108=(XED_ICLASS_FRSTOR<<8)+0, 
-00419   XED_IFORM_FRSTOR_MEMmem98=(XED_ICLASS_FRSTOR<<8)+1, 
-00420   XED_IFORM_FSCALE_ST0_ST1=(XED_ICLASS_FSCALE<<8)+0, 
-00421   XED_IFORM_FSETPM287_NOP=(XED_ICLASS_FSETPM287_NOP<<8)+0, 
-00422   XED_IFORM_FSIN_ST0=(XED_ICLASS_FSIN<<8)+0, 
-00423   XED_IFORM_FSINCOS_ST0_ST1=(XED_ICLASS_FSINCOS<<8)+0, 
-00424   XED_IFORM_FSQRT_ST0=(XED_ICLASS_FSQRT<<8)+0, 
-00425   XED_IFORM_FST_X87_ST0=(XED_ICLASS_FST<<8)+0, 
-00426   XED_IFORM_FST_MEMmem32real_ST0=(XED_ICLASS_FST<<8)+1, 
-00427   XED_IFORM_FST_MEMm64real_ST0=(XED_ICLASS_FST<<8)+2, 
-00428   XED_IFORM_FSTP_MEMmem32real_ST0=(XED_ICLASS_FSTP<<8)+0, 
-00429   XED_IFORM_FSTP_X87_ST0=(XED_ICLASS_FSTP<<8)+1, 
-00430   XED_IFORM_FSTP_MEMmem80real_ST0=(XED_ICLASS_FSTP<<8)+2, 
-00431   XED_IFORM_FSTP_MEMm64real_ST0=(XED_ICLASS_FSTP<<8)+3, 
-00432   XED_IFORM_FSUB_ST0_X87=(XED_ICLASS_FSUB<<8)+0, 
-00433   XED_IFORM_FSUB_X87_ST0=(XED_ICLASS_FSUB<<8)+1, 
-00434   XED_IFORM_FSUB_ST0_MEMm64real=(XED_ICLASS_FSUB<<8)+2, 
-00435   XED_IFORM_FSUB_ST0_MEMmem32real=(XED_ICLASS_FSUB<<8)+3, 
-00436   XED_IFORM_FSUBP_X87_ST0=(XED_ICLASS_FSUBP<<8)+0, 
-00437   XED_IFORM_FSUBR_ST0_MEMmem32real=(XED_ICLASS_FSUBR<<8)+0, 
-00438   XED_IFORM_FSUBR_X87_ST0=(XED_ICLASS_FSUBR<<8)+1, 
-00439   XED_IFORM_FSUBR_ST0_X87=(XED_ICLASS_FSUBR<<8)+2, 
-00440   XED_IFORM_FSUBR_ST0_MEMm64real=(XED_ICLASS_FSUBR<<8)+3, 
-00441   XED_IFORM_FSUBRP_X87_ST0=(XED_ICLASS_FSUBRP<<8)+0, 
-00442   XED_IFORM_FTST_ST0=(XED_ICLASS_FTST<<8)+0, 
-00443   XED_IFORM_FUCOM_ST0_X87=(XED_ICLASS_FUCOM<<8)+0, 
-00444   XED_IFORM_FUCOMI_ST0_X87=(XED_ICLASS_FUCOMI<<8)+0, 
-00445   XED_IFORM_FUCOMIP_ST0_X87=(XED_ICLASS_FUCOMIP<<8)+0, 
-00446   XED_IFORM_FUCOMP_ST0_X87=(XED_ICLASS_FUCOMP<<8)+0, 
-00447   XED_IFORM_FUCOMPP_ST0_ST1=(XED_ICLASS_FUCOMPP<<8)+0, 
-00448   XED_IFORM_FWAIT=(XED_ICLASS_FWAIT<<8)+0, 
-00449   XED_IFORM_FXAM_ST0=(XED_ICLASS_FXAM<<8)+0, 
-00450   XED_IFORM_FXCH_ST0_X87=(XED_ICLASS_FXCH<<8)+0, 
-00451   XED_IFORM_FXRSTOR_MEMmfpxenv=(XED_ICLASS_FXRSTOR<<8)+0, 
-00452   XED_IFORM_FXSAVE_MEMmfpxenv=(XED_ICLASS_FXSAVE<<8)+0, 
-00453   XED_IFORM_FXTRACT_ST0_ST1=(XED_ICLASS_FXTRACT<<8)+0, 
-00454   XED_IFORM_FYL2X_ST0_ST1=(XED_ICLASS_FYL2X<<8)+0, 
-00455   XED_IFORM_FYL2XP1_ST0_ST1=(XED_ICLASS_FYL2XP1<<8)+0, 
-00456   XED_IFORM_HADDPD_XMMpd_MEMpd=(XED_ICLASS_HADDPD<<8)+0, 
-00457   XED_IFORM_HADDPD_XMMpd_XMMpd=(XED_ICLASS_HADDPD<<8)+1, 
-00458   XED_IFORM_HADDPS_XMMps_XMMps=(XED_ICLASS_HADDPS<<8)+0, 
-00459   XED_IFORM_HADDPS_XMMps_MEMps=(XED_ICLASS_HADDPS<<8)+1, 
-00460   XED_IFORM_HLT=(XED_ICLASS_HLT<<8)+0, 
-00461   XED_IFORM_HSUBPD_XMMpd_XMMpd=(XED_ICLASS_HSUBPD<<8)+0, 
-00462   XED_IFORM_HSUBPD_XMMpd_MEMpd=(XED_ICLASS_HSUBPD<<8)+1, 
-00463   XED_IFORM_HSUBPS_XMMps_MEMps=(XED_ICLASS_HSUBPS<<8)+0, 
-00464   XED_IFORM_HSUBPS_XMMps_XMMps=(XED_ICLASS_HSUBPS<<8)+1, 
-00465   XED_IFORM_IDIV_MEMb=(XED_ICLASS_IDIV<<8)+0, 
-00466   XED_IFORM_IDIV_GPR8=(XED_ICLASS_IDIV<<8)+1, 
-00467   XED_IFORM_IDIV_GPRv=(XED_ICLASS_IDIV<<8)+2, 
-00468   XED_IFORM_IDIV_MEMv=(XED_ICLASS_IDIV<<8)+3, 
-00469   XED_IFORM_IMUL_MEMv=(XED_ICLASS_IMUL<<8)+0, 
-00470   XED_IFORM_IMUL_GPRv_GPRv=(XED_ICLASS_IMUL<<8)+1, 
-00471   XED_IFORM_IMUL_GPRv_GPRv_IMM=(XED_ICLASS_IMUL<<8)+2, 
-00472   XED_IFORM_IMUL_GPR8=(XED_ICLASS_IMUL<<8)+3, 
-00473   XED_IFORM_IMUL_MEMb=(XED_ICLASS_IMUL<<8)+4, 
-00474   XED_IFORM_IMUL_GPRv_MEMv_IMM=(XED_ICLASS_IMUL<<8)+5, 
-00475   XED_IFORM_IMUL_GPRv_MEMv=(XED_ICLASS_IMUL<<8)+6, 
-00476   XED_IFORM_IMUL_GPRv=(XED_ICLASS_IMUL<<8)+7, 
-00477   XED_IFORM_IN_OeAX_DX=(XED_ICLASS_IN<<8)+0, 
-00478   XED_IFORM_IN_OeAX_IMM=(XED_ICLASS_IN<<8)+1, 
-00479   XED_IFORM_IN_AL_IMM=(XED_ICLASS_IN<<8)+2, 
-00480   XED_IFORM_IN_AL_DX=(XED_ICLASS_IN<<8)+3, 
-00481   XED_IFORM_INC_MEMb=(XED_ICLASS_INC<<8)+0, 
-00482   XED_IFORM_INC_MEMv=(XED_ICLASS_INC<<8)+1, 
-00483   XED_IFORM_INC_GPRv=(XED_ICLASS_INC<<8)+2, 
-00484   XED_IFORM_INC_GPR8=(XED_ICLASS_INC<<8)+3, 
-00485   XED_IFORM_INSB=(XED_ICLASS_INSB<<8)+0, 
-00486   XED_IFORM_INSD=(XED_ICLASS_INSD<<8)+0, 
-00487   XED_IFORM_INSERTPS_XMMps_XMMps_IMM=(XED_ICLASS_INSERTPS<<8)+0, 
-00488   XED_IFORM_INSERTPS_XMMps_MEMd_IMM=(XED_ICLASS_INSERTPS<<8)+1, 
-00489   XED_IFORM_INSERTQ_XMMq_XMMdq=(XED_ICLASS_INSERTQ<<8)+0, 
-00490   XED_IFORM_INSERTQ_XMMq_XMMq_IMM_IMM=(XED_ICLASS_INSERTQ<<8)+1, 
-00491   XED_IFORM_INSW=(XED_ICLASS_INSW<<8)+0, 
-00492   XED_IFORM_INT_IMM=(XED_ICLASS_INT<<8)+0, 
-00493   XED_IFORM_INT1=(XED_ICLASS_INT1<<8)+0, 
-00494   XED_IFORM_INT3=(XED_ICLASS_INT3<<8)+0, 
-00495   XED_IFORM_INTO=(XED_ICLASS_INTO<<8)+0, 
-00496   XED_IFORM_INVD=(XED_ICLASS_INVD<<8)+0, 
-00497   XED_IFORM_INVLPG_MEMb=(XED_ICLASS_INVLPG<<8)+0, 
-00498   XED_IFORM_INVLPGA_OrAX_ECX=(XED_ICLASS_INVLPGA<<8)+0, 
-00499   XED_IFORM_IRET=(XED_ICLASS_IRET<<8)+0, 
-00500   XED_IFORM_IRETD=(XED_ICLASS_IRETD<<8)+0, 
-00501   XED_IFORM_IRETQ=(XED_ICLASS_IRETQ<<8)+0, 
-00502   XED_IFORM_JB_RELBR=(XED_ICLASS_JB<<8)+0, 
-00503   XED_IFORM_JBE_RELBR=(XED_ICLASS_JBE<<8)+0, 
-00504   XED_IFORM_JL_RELBR=(XED_ICLASS_JL<<8)+0, 
-00505   XED_IFORM_JLE_RELBR=(XED_ICLASS_JLE<<8)+0, 
-00506   XED_IFORM_JMP_RELBR=(XED_ICLASS_JMP<<8)+0, 
-00507   XED_IFORM_JMP_MEMv=(XED_ICLASS_JMP<<8)+1, 
-00508   XED_IFORM_JMP_GPRv=(XED_ICLASS_JMP<<8)+2, 
-00509   XED_IFORM_JMP_FAR_PTR_IMM=(XED_ICLASS_JMP_FAR<<8)+0, 
-00510   XED_IFORM_JMP_FAR_MEMp=(XED_ICLASS_JMP_FAR<<8)+1, 
-00511   XED_IFORM_JNB_RELBR=(XED_ICLASS_JNB<<8)+0, 
-00512   XED_IFORM_JNBE_RELBR=(XED_ICLASS_JNBE<<8)+0, 
-00513   XED_IFORM_JNL_RELBR=(XED_ICLASS_JNL<<8)+0, 
-00514   XED_IFORM_JNLE_RELBR=(XED_ICLASS_JNLE<<8)+0, 
-00515   XED_IFORM_JNO_RELBR=(XED_ICLASS_JNO<<8)+0, 
-00516   XED_IFORM_JNP_RELBR=(XED_ICLASS_JNP<<8)+0, 
-00517   XED_IFORM_JNS_RELBR=(XED_ICLASS_JNS<<8)+0, 
-00518   XED_IFORM_JNZ_RELBR=(XED_ICLASS_JNZ<<8)+0, 
-00519   XED_IFORM_JO_RELBR=(XED_ICLASS_JO<<8)+0, 
-00520   XED_IFORM_JP_RELBR=(XED_ICLASS_JP<<8)+0, 
-00521   XED_IFORM_JRCXZ_RELBR=(XED_ICLASS_JRCXZ<<8)+0, 
-00522   XED_IFORM_JS_RELBR=(XED_ICLASS_JS<<8)+0, 
-00523   XED_IFORM_JZ_RELBR=(XED_ICLASS_JZ<<8)+0, 
-00524   XED_IFORM_LAHF=(XED_ICLASS_LAHF<<8)+0, 
-00525   XED_IFORM_LAR_GPRv_GPR16=(XED_ICLASS_LAR<<8)+0, 
-00526   XED_IFORM_LAR_GPRv_MEMw=(XED_ICLASS_LAR<<8)+1, 
-00527   XED_IFORM_LDDQU_XMMpd_MEMdq=(XED_ICLASS_LDDQU<<8)+0, 
-00528   XED_IFORM_LDMXCSR_MEMd=(XED_ICLASS_LDMXCSR<<8)+0, 
-00529   XED_IFORM_LDS_GPRz_MEMp=(XED_ICLASS_LDS<<8)+0, 
-00530   XED_IFORM_LEA_GPRv_AGEN=(XED_ICLASS_LEA<<8)+0, 
-00531   XED_IFORM_LEAVE=(XED_ICLASS_LEAVE<<8)+0, 
-00532   XED_IFORM_LES_GPRz_MEMp=(XED_ICLASS_LES<<8)+0, 
-00533   XED_IFORM_LFENCE=(XED_ICLASS_LFENCE<<8)+0, 
-00534   XED_IFORM_LFS_GPRv_MEMp2=(XED_ICLASS_LFS<<8)+0, 
-00535   XED_IFORM_LGDT_MEMs=(XED_ICLASS_LGDT<<8)+0, 
-00536   XED_IFORM_LGS_GPRv_MEMp2=(XED_ICLASS_LGS<<8)+0, 
-00537   XED_IFORM_LIDT_MEMs=(XED_ICLASS_LIDT<<8)+0, 
-00538   XED_IFORM_LLDT_MEMw=(XED_ICLASS_LLDT<<8)+0, 
-00539   XED_IFORM_LLDT_GPR16=(XED_ICLASS_LLDT<<8)+1, 
-00540   XED_IFORM_LMSW_GPR16=(XED_ICLASS_LMSW<<8)+0, 
-00541   XED_IFORM_LMSW_MEMw=(XED_ICLASS_LMSW<<8)+1, 
-00542   XED_IFORM_LODSB=(XED_ICLASS_LODSB<<8)+0, 
-00543   XED_IFORM_LODSD=(XED_ICLASS_LODSD<<8)+0, 
-00544   XED_IFORM_LODSQ=(XED_ICLASS_LODSQ<<8)+0, 
-00545   XED_IFORM_LODSW=(XED_ICLASS_LODSW<<8)+0, 
-00546   XED_IFORM_LOOP_RELBR=(XED_ICLASS_LOOP<<8)+0, 
-00547   XED_IFORM_LOOPE_RELBR=(XED_ICLASS_LOOPE<<8)+0, 
-00548   XED_IFORM_LOOPNE_RELBR=(XED_ICLASS_LOOPNE<<8)+0, 
-00549   XED_IFORM_LSL_GPRv_GPR16=(XED_ICLASS_LSL<<8)+0, 
-00550   XED_IFORM_LSL_GPRv_MEMw=(XED_ICLASS_LSL<<8)+1, 
-00551   XED_IFORM_LSS_GPRv_MEMp2=(XED_ICLASS_LSS<<8)+0, 
-00552   XED_IFORM_LTR_GPR16=(XED_ICLASS_LTR<<8)+0, 
-00553   XED_IFORM_LTR_MEMw=(XED_ICLASS_LTR<<8)+1, 
-00554   XED_IFORM_LZCNT_GPRv_GPRv=(XED_ICLASS_LZCNT<<8)+0, 
-00555   XED_IFORM_LZCNT_GPRv_MEMv=(XED_ICLASS_LZCNT<<8)+1, 
-00556   XED_IFORM_MASKMOVDQU_XMMdq_XMMdq=(XED_ICLASS_MASKMOVDQU<<8)+0, 
-00557   XED_IFORM_MASKMOVQ_MMXq_MMXq=(XED_ICLASS_MASKMOVQ<<8)+0, 
-00558   XED_IFORM_MAXPD_XMMpd_MEMpd=(XED_ICLASS_MAXPD<<8)+0, 
-00559   XED_IFORM_MAXPD_XMMpd_XMMpd=(XED_ICLASS_MAXPD<<8)+1, 
-00560   XED_IFORM_MAXPS_XMMps_XMMps=(XED_ICLASS_MAXPS<<8)+0, 
-00561   XED_IFORM_MAXPS_XMMps_MEMps=(XED_ICLASS_MAXPS<<8)+1, 
-00562   XED_IFORM_MAXSD_XMMsd_XMMsd=(XED_ICLASS_MAXSD<<8)+0, 
-00563   XED_IFORM_MAXSD_XMMsd_MEMsd=(XED_ICLASS_MAXSD<<8)+1, 
-00564   XED_IFORM_MAXSS_XMMss_MEMss=(XED_ICLASS_MAXSS<<8)+0, 
-00565   XED_IFORM_MAXSS_XMMss_XMMss=(XED_ICLASS_MAXSS<<8)+1, 
-00566   XED_IFORM_MFENCE=(XED_ICLASS_MFENCE<<8)+0, 
-00567   XED_IFORM_MINPD_XMMpd_MEMpd=(XED_ICLASS_MINPD<<8)+0, 
-00568   XED_IFORM_MINPD_XMMpd_XMMpd=(XED_ICLASS_MINPD<<8)+1, 
-00569   XED_IFORM_MINPS_XMMps_XMMps=(XED_ICLASS_MINPS<<8)+0, 
-00570   XED_IFORM_MINPS_XMMps_MEMps=(XED_ICLASS_MINPS<<8)+1, 
-00571   XED_IFORM_MINSD_XMMsd_XMMsd=(XED_ICLASS_MINSD<<8)+0, 
-00572   XED_IFORM_MINSD_XMMsd_MEMsd=(XED_ICLASS_MINSD<<8)+1, 
-00573   XED_IFORM_MINSS_XMMss_MEMss=(XED_ICLASS_MINSS<<8)+0, 
-00574   XED_IFORM_MINSS_XMMss_XMMss=(XED_ICLASS_MINSS<<8)+1, 
-00575   XED_IFORM_MONITOR_EAX_ECX_EDX=(XED_ICLASS_MONITOR<<8)+0, 
-00576   XED_IFORM_MOV_GPRv_GPRv=(XED_ICLASS_MOV<<8)+0, 
-00577   XED_IFORM_MOV_GPR8_GPR8=(XED_ICLASS_MOV<<8)+1, 
-00578   XED_IFORM_MOV_GPR8_IMM=(XED_ICLASS_MOV<<8)+2, 
-00579   XED_IFORM_MOV_GPR8_MEMb=(XED_ICLASS_MOV<<8)+3, 
-00580   XED_IFORM_MOV_MEMv_GPRv=(XED_ICLASS_MOV<<8)+4, 
-00581   XED_IFORM_MOV_MEMb_GPR8=(XED_ICLASS_MOV<<8)+5, 
-00582   XED_IFORM_MOV_MEMv_OrAX=(XED_ICLASS_MOV<<8)+6, 
-00583   XED_IFORM_MOV_AL_MEMb=(XED_ICLASS_MOV<<8)+7, 
-00584   XED_IFORM_MOV_MEMb_AL=(XED_ICLASS_MOV<<8)+8, 
-00585   XED_IFORM_MOV_OrAX_MEMv=(XED_ICLASS_MOV<<8)+9, 
-00586   XED_IFORM_MOV_MEMw_SEG=(XED_ICLASS_MOV<<8)+10, 
-00587   XED_IFORM_MOV_GPRv_MEMv=(XED_ICLASS_MOV<<8)+11, 
-00588   XED_IFORM_MOV_SEG_MEMw=(XED_ICLASS_MOV<<8)+12, 
-00589   XED_IFORM_MOV_MEMv_IMM=(XED_ICLASS_MOV<<8)+13, 
-00590   XED_IFORM_MOV_SEG_GPR16=(XED_ICLASS_MOV<<8)+14, 
-00591   XED_IFORM_MOV_GPRv_IMM=(XED_ICLASS_MOV<<8)+15, 
-00592   XED_IFORM_MOV_MEMb_IMM=(XED_ICLASS_MOV<<8)+16, 
-00593   XED_IFORM_MOV_GPRv_SEG=(XED_ICLASS_MOV<<8)+17, 
-00594   XED_IFORM_MOVAPD_XMMpd_MEMpd=(XED_ICLASS_MOVAPD<<8)+0, 
-00595   XED_IFORM_MOVAPD_XMMpd_XMMpd=(XED_ICLASS_MOVAPD<<8)+1, 
-00596   XED_IFORM_MOVAPD_MEMpd_XMMpd=(XED_ICLASS_MOVAPD<<8)+2, 
-00597   XED_IFORM_MOVAPS_XMMps_XMMps=(XED_ICLASS_MOVAPS<<8)+0, 
-00598   XED_IFORM_MOVAPS_XMMps_MEMps=(XED_ICLASS_MOVAPS<<8)+1, 
-00599   XED_IFORM_MOVAPS_MEMps_XMMps=(XED_ICLASS_MOVAPS<<8)+2, 
-00600   XED_IFORM_MOVD_MEMd_XMMd=(XED_ICLASS_MOVD<<8)+0, 
-00601   XED_IFORM_MOVD_GPR32_MMXd=(XED_ICLASS_MOVD<<8)+1, 
-00602   XED_IFORM_MOVD_MMXq_MEMd=(XED_ICLASS_MOVD<<8)+2, 
-00603   XED_IFORM_MOVD_XMMdq_MEMd=(XED_ICLASS_MOVD<<8)+3, 
-00604   XED_IFORM_MOVD_XMMdq_GPR32=(XED_ICLASS_MOVD<<8)+4, 
-00605   XED_IFORM_MOVD_GPR32_XMMd=(XED_ICLASS_MOVD<<8)+5, 
-00606   XED_IFORM_MOVD_MMXq_GPR32=(XED_ICLASS_MOVD<<8)+6, 
-00607   XED_IFORM_MOVD_MEMd_MMXd=(XED_ICLASS_MOVD<<8)+7, 
-00608   XED_IFORM_MOVDDUP_XMMq_XMMq=(XED_ICLASS_MOVDDUP<<8)+0, 
-00609   XED_IFORM_MOVDDUP_XMMq_MEMq=(XED_ICLASS_MOVDDUP<<8)+1, 
-00610   XED_IFORM_MOVDQ2Q_MMXq_XMMq=(XED_ICLASS_MOVDQ2Q<<8)+0, 
-00611   XED_IFORM_MOVDQA_XMMdq_XMMdq=(XED_ICLASS_MOVDQA<<8)+0, 
-00612   XED_IFORM_MOVDQA_XMMdq_MEMdq=(XED_ICLASS_MOVDQA<<8)+1, 
-00613   XED_IFORM_MOVDQA_MEMdq_XMMdq=(XED_ICLASS_MOVDQA<<8)+2, 
-00614   XED_IFORM_MOVDQU_MEMdq_XMMdq=(XED_ICLASS_MOVDQU<<8)+0, 
-00615   XED_IFORM_MOVDQU_XMMdq_XMMdq=(XED_ICLASS_MOVDQU<<8)+1, 
-00616   XED_IFORM_MOVDQU_XMMdq_MEMdq=(XED_ICLASS_MOVDQU<<8)+2, 
-00617   XED_IFORM_MOVHLPS_XMMq_XMMq=(XED_ICLASS_MOVHLPS<<8)+0, 
-00618   XED_IFORM_MOVHPD_MEMq_XMMsd=(XED_ICLASS_MOVHPD<<8)+0, 
-00619   XED_IFORM_MOVHPD_XMMsd_MEMq=(XED_ICLASS_MOVHPD<<8)+1, 
-00620   XED_IFORM_MOVHPS_MEMq_XMMps=(XED_ICLASS_MOVHPS<<8)+0, 
-00621   XED_IFORM_MOVHPS_XMMq_MEMq=(XED_ICLASS_MOVHPS<<8)+1, 
-00622   XED_IFORM_MOVLHPS_XMMq_XMMq=(XED_ICLASS_MOVLHPS<<8)+0, 
-00623   XED_IFORM_MOVLPD_XMMsd_MEMq=(XED_ICLASS_MOVLPD<<8)+0, 
-00624   XED_IFORM_MOVLPD_MEMq_XMMsd=(XED_ICLASS_MOVLPD<<8)+1, 
-00625   XED_IFORM_MOVLPS_MEMq_XMMps=(XED_ICLASS_MOVLPS<<8)+0, 
-00626   XED_IFORM_MOVLPS_XMMq_MEMq=(XED_ICLASS_MOVLPS<<8)+1, 
-00627   XED_IFORM_MOVMSKPD_GPR32_XMMpd=(XED_ICLASS_MOVMSKPD<<8)+0, 
-00628   XED_IFORM_MOVMSKPS_GPR32_XMMps=(XED_ICLASS_MOVMSKPS<<8)+0, 
-00629   XED_IFORM_MOVNTDQ_MEMdq_XMMdq=(XED_ICLASS_MOVNTDQ<<8)+0, 
-00630   XED_IFORM_MOVNTDQA_XMMdq_MEMdq=(XED_ICLASS_MOVNTDQA<<8)+0, 
-00631   XED_IFORM_MOVNTI_MEMq_GPR64=(XED_ICLASS_MOVNTI<<8)+0, 
-00632   XED_IFORM_MOVNTI_MEMd_GPR32=(XED_ICLASS_MOVNTI<<8)+1, 
-00633   XED_IFORM_MOVNTPD_MEMdq_XMMpd=(XED_ICLASS_MOVNTPD<<8)+0, 
-00634   XED_IFORM_MOVNTPS_MEMdq_XMMps=(XED_ICLASS_MOVNTPS<<8)+0, 
-00635   XED_IFORM_MOVNTQ_MEMq_MMXq=(XED_ICLASS_MOVNTQ<<8)+0, 
-00636   XED_IFORM_MOVNTSD_MEMq_XMMq=(XED_ICLASS_MOVNTSD<<8)+0, 
-00637   XED_IFORM_MOVNTSS_MEMd_XMMd=(XED_ICLASS_MOVNTSS<<8)+0, 
-00638   XED_IFORM_MOVQ_MMXq_MMXq=(XED_ICLASS_MOVQ<<8)+0, 
-00639   XED_IFORM_MOVQ_XMMdq_GPR64=(XED_ICLASS_MOVQ<<8)+1, 
-00640   XED_IFORM_MOVQ_GPR64_MMXq=(XED_ICLASS_MOVQ<<8)+2, 
-00641   XED_IFORM_MOVQ_MEMq_XMMq=(XED_ICLASS_MOVQ<<8)+3, 
-00642   XED_IFORM_MOVQ_MMXq_GPR64=(XED_ICLASS_MOVQ<<8)+4, 
-00643   XED_IFORM_MOVQ_MMXq_MEMq=(XED_ICLASS_MOVQ<<8)+5, 
-00644   XED_IFORM_MOVQ_XMMdq_MEMq=(XED_ICLASS_MOVQ<<8)+6, 
-00645   XED_IFORM_MOVQ_XMMdq_XMMq=(XED_ICLASS_MOVQ<<8)+7, 
-00646   XED_IFORM_MOVQ_GPR64_XMMq=(XED_ICLASS_MOVQ<<8)+8, 
-00647   XED_IFORM_MOVQ_MEMq_MMXq=(XED_ICLASS_MOVQ<<8)+9, 
-00648   XED_IFORM_MOVQ2DQ_XMMdq_MMXq=(XED_ICLASS_MOVQ2DQ<<8)+0, 
-00649   XED_IFORM_MOVSB=(XED_ICLASS_MOVSB<<8)+0, 
-00650   XED_IFORM_MOVSD=(XED_ICLASS_MOVSD<<8)+0, 
-00651   XED_IFORM_MOVSD_XMM_XMMsd_XMMsd=(XED_ICLASS_MOVSD_XMM<<8)+0, 
-00652   XED_IFORM_MOVSD_XMM_MEMsd_XMMsd=(XED_ICLASS_MOVSD_XMM<<8)+1, 
-00653   XED_IFORM_MOVSD_XMM_XMMdq_MEMsd=(XED_ICLASS_MOVSD_XMM<<8)+2, 
-00654   XED_IFORM_MOVSHDUP_XMMps_XMMps=(XED_ICLASS_MOVSHDUP<<8)+0, 
-00655   XED_IFORM_MOVSHDUP_XMMps_MEMps=(XED_ICLASS_MOVSHDUP<<8)+1, 
-00656   XED_IFORM_MOVSLDUP_XMMps_XMMps=(XED_ICLASS_MOVSLDUP<<8)+0, 
-00657   XED_IFORM_MOVSLDUP_XMMps_MEMps=(XED_ICLASS_MOVSLDUP<<8)+1, 
-00658   XED_IFORM_MOVSQ=(XED_ICLASS_MOVSQ<<8)+0, 
-00659   XED_IFORM_MOVSS_MEMss_XMMss=(XED_ICLASS_MOVSS<<8)+0, 
-00660   XED_IFORM_MOVSS_XMMss_XMMss=(XED_ICLASS_MOVSS<<8)+1, 
-00661   XED_IFORM_MOVSS_XMMdq_MEMss=(XED_ICLASS_MOVSS<<8)+2, 
-00662   XED_IFORM_MOVSW=(XED_ICLASS_MOVSW<<8)+0, 
-00663   XED_IFORM_MOVSX_GPRv_GPR16=(XED_ICLASS_MOVSX<<8)+0, 
-00664   XED_IFORM_MOVSX_GPRv_MEMb=(XED_ICLASS_MOVSX<<8)+1, 
-00665   XED_IFORM_MOVSX_GPRv_GPR8=(XED_ICLASS_MOVSX<<8)+2, 
-00666   XED_IFORM_MOVSX_GPRv_MEMw=(XED_ICLASS_MOVSX<<8)+3, 
-00667   XED_IFORM_MOVSXD_GPRv_MEMd=(XED_ICLASS_MOVSXD<<8)+0, 
-00668   XED_IFORM_MOVSXD_GPRv_GPR32=(XED_ICLASS_MOVSXD<<8)+1, 
-00669   XED_IFORM_MOVUPD_MEMpd_XMMpd=(XED_ICLASS_MOVUPD<<8)+0, 
-00670   XED_IFORM_MOVUPD_XMMpd_MEMpd=(XED_ICLASS_MOVUPD<<8)+1, 
-00671   XED_IFORM_MOVUPD_XMMpd_XMMpd=(XED_ICLASS_MOVUPD<<8)+2, 
-00672   XED_IFORM_MOVUPS_MEMps_XMMps=(XED_ICLASS_MOVUPS<<8)+0, 
-00673   XED_IFORM_MOVUPS_XMMps_XMMps=(XED_ICLASS_MOVUPS<<8)+1, 
-00674   XED_IFORM_MOVUPS_XMMps_MEMps=(XED_ICLASS_MOVUPS<<8)+2, 
-00675   XED_IFORM_MOVZX_GPRv_MEMb=(XED_ICLASS_MOVZX<<8)+0, 
-00676   XED_IFORM_MOVZX_GPRv_GPR16=(XED_ICLASS_MOVZX<<8)+1, 
-00677   XED_IFORM_MOVZX_GPRv_MEMw=(XED_ICLASS_MOVZX<<8)+2, 
-00678   XED_IFORM_MOVZX_GPRv_GPR8=(XED_ICLASS_MOVZX<<8)+3, 
-00679   XED_IFORM_MOV_CR_CR_GPR32=(XED_ICLASS_MOV_CR<<8)+0, 
-00680   XED_IFORM_MOV_CR_GPR64_CR=(XED_ICLASS_MOV_CR<<8)+1, 
-00681   XED_IFORM_MOV_CR_GPR32_CR=(XED_ICLASS_MOV_CR<<8)+2, 
-00682   XED_IFORM_MOV_CR_CR_GPR64=(XED_ICLASS_MOV_CR<<8)+3, 
-00683   XED_IFORM_MOV_DR_GPR64_DR=(XED_ICLASS_MOV_DR<<8)+0, 
-00684   XED_IFORM_MOV_DR_DR_GPR32=(XED_ICLASS_MOV_DR<<8)+1, 
-00685   XED_IFORM_MOV_DR_GPR32_DR=(XED_ICLASS_MOV_DR<<8)+2, 
-00686   XED_IFORM_MOV_DR_DR_GPR64=(XED_ICLASS_MOV_DR<<8)+3, 
-00687   XED_IFORM_MPSADBW_XMMdq_XMMdq_IMM=(XED_ICLASS_MPSADBW<<8)+0, 
-00688   XED_IFORM_MPSADBW_XMMdq_MEMdq_IMM=(XED_ICLASS_MPSADBW<<8)+1, 
-00689   XED_IFORM_MUL_MEMb=(XED_ICLASS_MUL<<8)+0, 
-00690   XED_IFORM_MUL_GPRv=(XED_ICLASS_MUL<<8)+1, 
-00691   XED_IFORM_MUL_GPR8=(XED_ICLASS_MUL<<8)+2, 
-00692   XED_IFORM_MUL_MEMv=(XED_ICLASS_MUL<<8)+3, 
-00693   XED_IFORM_MULPD_XMMpd_MEMpd=(XED_ICLASS_MULPD<<8)+0, 
-00694   XED_IFORM_MULPD_XMMpd_XMMpd=(XED_ICLASS_MULPD<<8)+1, 
-00695   XED_IFORM_MULPS_XMMps_XMMps=(XED_ICLASS_MULPS<<8)+0, 
-00696   XED_IFORM_MULPS_XMMps_MEMps=(XED_ICLASS_MULPS<<8)+1, 
-00697   XED_IFORM_MULSD_XMMsd_XMMsd=(XED_ICLASS_MULSD<<8)+0, 
-00698   XED_IFORM_MULSD_XMMsd_MEMsd=(XED_ICLASS_MULSD<<8)+1, 
-00699   XED_IFORM_MULSS_XMMss_MEMss=(XED_ICLASS_MULSS<<8)+0, 
-00700   XED_IFORM_MULSS_XMMss_XMMss=(XED_ICLASS_MULSS<<8)+1, 
-00701   XED_IFORM_MWAIT_EAX_ECX=(XED_ICLASS_MWAIT<<8)+0, 
-00702   XED_IFORM_NEG_GPR8=(XED_ICLASS_NEG<<8)+0, 
-00703   XED_IFORM_NEG_GPRv=(XED_ICLASS_NEG<<8)+1, 
-00704   XED_IFORM_NEG_MEMb=(XED_ICLASS_NEG<<8)+2, 
-00705   XED_IFORM_NEG_MEMv=(XED_ICLASS_NEG<<8)+3, 
-00706   XED_IFORM_NOP=(XED_ICLASS_NOP<<8)+0, 
-00707   XED_IFORM_NOP_GPRv_GPRv=(XED_ICLASS_NOP<<8)+1, 
-00708   XED_IFORM_NOP_MEMv_GPRv=(XED_ICLASS_NOP<<8)+2, 
-00709   XED_IFORM_NOT_MEMv=(XED_ICLASS_NOT<<8)+0, 
-00710   XED_IFORM_NOT_GPRv=(XED_ICLASS_NOT<<8)+1, 
-00711   XED_IFORM_NOT_GPR8=(XED_ICLASS_NOT<<8)+2, 
-00712   XED_IFORM_NOT_MEMb=(XED_ICLASS_NOT<<8)+3, 
-00713   XED_IFORM_OR_GPRv_MEMv=(XED_ICLASS_OR<<8)+0, 
-00714   XED_IFORM_OR_GPRv_GPRv=(XED_ICLASS_OR<<8)+1, 
-00715   XED_IFORM_OR_MEMv_IMM=(XED_ICLASS_OR<<8)+2, 
-00716   XED_IFORM_OR_GPR8_GPR8=(XED_ICLASS_OR<<8)+3, 
-00717   XED_IFORM_OR_MEMb_IMM=(XED_ICLASS_OR<<8)+4, 
-00718   XED_IFORM_OR_MEMv_GPRv=(XED_ICLASS_OR<<8)+5, 
-00719   XED_IFORM_OR_GPRv_IMM=(XED_ICLASS_OR<<8)+6, 
-00720   XED_IFORM_OR_MEMb_GPR8=(XED_ICLASS_OR<<8)+7, 
-00721   XED_IFORM_OR_GPR8_IMM=(XED_ICLASS_OR<<8)+8, 
-00722   XED_IFORM_OR_AL_IMM=(XED_ICLASS_OR<<8)+9, 
-00723   XED_IFORM_OR_GPR8_MEMb=(XED_ICLASS_OR<<8)+10, 
-00724   XED_IFORM_OR_OrAX_IMM=(XED_ICLASS_OR<<8)+11, 
-00725   XED_IFORM_ORPD_XMMpd_MEMpd=(XED_ICLASS_ORPD<<8)+0, 
-00726   XED_IFORM_ORPD_XMMpd_XMMpd=(XED_ICLASS_ORPD<<8)+1, 
-00727   XED_IFORM_ORPS_XMMps_XMMps=(XED_ICLASS_ORPS<<8)+0, 
-00728   XED_IFORM_ORPS_XMMps_MEMps=(XED_ICLASS_ORPS<<8)+1, 
-00729   XED_IFORM_OUT_IMM_AL=(XED_ICLASS_OUT<<8)+0, 
-00730   XED_IFORM_OUT_DX_AL=(XED_ICLASS_OUT<<8)+1, 
-00731   XED_IFORM_OUT_IMM_OeAX=(XED_ICLASS_OUT<<8)+2, 
-00732   XED_IFORM_OUT_DX_OeAX=(XED_ICLASS_OUT<<8)+3, 
-00733   XED_IFORM_OUTSB=(XED_ICLASS_OUTSB<<8)+0, 
-00734   XED_IFORM_OUTSD=(XED_ICLASS_OUTSD<<8)+0, 
-00735   XED_IFORM_OUTSW=(XED_ICLASS_OUTSW<<8)+0, 
-00736   XED_IFORM_PABSB_MMXq_MEMq=(XED_ICLASS_PABSB<<8)+0, 
-00737   XED_IFORM_PABSB_XMMdq_MEMdq=(XED_ICLASS_PABSB<<8)+1, 
-00738   XED_IFORM_PABSB_MMXq_MMXq=(XED_ICLASS_PABSB<<8)+2, 
-00739   XED_IFORM_PABSB_XMMdq_XMMdq=(XED_ICLASS_PABSB<<8)+3, 
-00740   XED_IFORM_PABSD_MMXq_MEMq=(XED_ICLASS_PABSD<<8)+0, 
-00741   XED_IFORM_PABSD_MMXq_MMXq=(XED_ICLASS_PABSD<<8)+1, 
-00742   XED_IFORM_PABSD_XMMdq_MEMdq=(XED_ICLASS_PABSD<<8)+2, 
-00743   XED_IFORM_PABSD_XMMdq_XMMdq=(XED_ICLASS_PABSD<<8)+3, 
-00744   XED_IFORM_PABSW_XMMdq_MEMdq=(XED_ICLASS_PABSW<<8)+0, 
-00745   XED_IFORM_PABSW_MMXq_MMXq=(XED_ICLASS_PABSW<<8)+1, 
-00746   XED_IFORM_PABSW_XMMdq_XMMdq=(XED_ICLASS_PABSW<<8)+2, 
-00747   XED_IFORM_PABSW_MMXq_MEMq=(XED_ICLASS_PABSW<<8)+3, 
-00748   XED_IFORM_PACKSSDW_XMMdq_MEMdq=(XED_ICLASS_PACKSSDW<<8)+0, 
-00749   XED_IFORM_PACKSSDW_MMXq_MEMq=(XED_ICLASS_PACKSSDW<<8)+1, 
-00750   XED_IFORM_PACKSSDW_MMXq_MMXq=(XED_ICLASS_PACKSSDW<<8)+2, 
-00751   XED_IFORM_PACKSSDW_XMMdq_XMMdq=(XED_ICLASS_PACKSSDW<<8)+3, 
-00752   XED_IFORM_PACKSSWB_MMXq_MMXq=(XED_ICLASS_PACKSSWB<<8)+0, 
-00753   XED_IFORM_PACKSSWB_XMMdq_MEMdq=(XED_ICLASS_PACKSSWB<<8)+1, 
-00754   XED_IFORM_PACKSSWB_XMMdq_XMMdq=(XED_ICLASS_PACKSSWB<<8)+2, 
-00755   XED_IFORM_PACKSSWB_MMXq_MEMq=(XED_ICLASS_PACKSSWB<<8)+3, 
-00756   XED_IFORM_PACKUSDW_XMMdq_XMMdq=(XED_ICLASS_PACKUSDW<<8)+0, 
-00757   XED_IFORM_PACKUSDW_XMMdq_MEMdq=(XED_ICLASS_PACKUSDW<<8)+1, 
-00758   XED_IFORM_PACKUSWB_XMMdq_XMMdq=(XED_ICLASS_PACKUSWB<<8)+0, 
-00759   XED_IFORM_PACKUSWB_XMMdq_MEMdq=(XED_ICLASS_PACKUSWB<<8)+1, 
-00760   XED_IFORM_PACKUSWB_MMXq_MEMq=(XED_ICLASS_PACKUSWB<<8)+2, 
-00761   XED_IFORM_PACKUSWB_MMXq_MMXq=(XED_ICLASS_PACKUSWB<<8)+3, 
-00762   XED_IFORM_PADDB_XMMdq_XMMdq=(XED_ICLASS_PADDB<<8)+0, 
-00763   XED_IFORM_PADDB_XMMdq_MEMdq=(XED_ICLASS_PADDB<<8)+1, 
-00764   XED_IFORM_PADDB_MMXq_MMXq=(XED_ICLASS_PADDB<<8)+2, 
-00765   XED_IFORM_PADDB_MMXq_MEMq=(XED_ICLASS_PADDB<<8)+3, 
-00766   XED_IFORM_PADDD_XMMdq_MEMdq=(XED_ICLASS_PADDD<<8)+0, 
-00767   XED_IFORM_PADDD_MMXq_MMXq=(XED_ICLASS_PADDD<<8)+1, 
-00768   XED_IFORM_PADDD_XMMdq_XMMdq=(XED_ICLASS_PADDD<<8)+2, 
-00769   XED_IFORM_PADDD_MMXq_MEMq=(XED_ICLASS_PADDD<<8)+3, 
-00770   XED_IFORM_PADDQ_MMXq_MEMq=(XED_ICLASS_PADDQ<<8)+0, 
-00771   XED_IFORM_PADDQ_XMMdq_MEMdq=(XED_ICLASS_PADDQ<<8)+1, 
-00772   XED_IFORM_PADDQ_MMXq_MMXq=(XED_ICLASS_PADDQ<<8)+2, 
-00773   XED_IFORM_PADDQ_XMMdq_XMMdq=(XED_ICLASS_PADDQ<<8)+3, 
-00774   XED_IFORM_PADDSB_XMMdq_XMMdq=(XED_ICLASS_PADDSB<<8)+0, 
-00775   XED_IFORM_PADDSB_XMMdq_MEMdq=(XED_ICLASS_PADDSB<<8)+1, 
-00776   XED_IFORM_PADDSB_MMXq_MMXq=(XED_ICLASS_PADDSB<<8)+2, 
-00777   XED_IFORM_PADDSB_MMXq_MEMq=(XED_ICLASS_PADDSB<<8)+3, 
-00778   XED_IFORM_PADDSW_MMXq_MEMq=(XED_ICLASS_PADDSW<<8)+0, 
-00779   XED_IFORM_PADDSW_MMXq_MMXq=(XED_ICLASS_PADDSW<<8)+1, 
-00780   XED_IFORM_PADDSW_XMMdq_MEMdq=(XED_ICLASS_PADDSW<<8)+2, 
-00781   XED_IFORM_PADDSW_XMMdq_XMMdq=(XED_ICLASS_PADDSW<<8)+3, 
-00782   XED_IFORM_PADDUSB_XMMdq_XMMdq=(XED_ICLASS_PADDUSB<<8)+0, 
-00783   XED_IFORM_PADDUSB_MMXq_MEMq=(XED_ICLASS_PADDUSB<<8)+1, 
-00784   XED_IFORM_PADDUSB_MMXq_MMXq=(XED_ICLASS_PADDUSB<<8)+2, 
-00785   XED_IFORM_PADDUSB_XMMdq_MEMdq=(XED_ICLASS_PADDUSB<<8)+3, 
-00786   XED_IFORM_PADDUSW_XMMdq_MEMdq=(XED_ICLASS_PADDUSW<<8)+0, 
-00787   XED_IFORM_PADDUSW_MMXq_MMXq=(XED_ICLASS_PADDUSW<<8)+1, 
-00788   XED_IFORM_PADDUSW_MMXq_MEMq=(XED_ICLASS_PADDUSW<<8)+2, 
-00789   XED_IFORM_PADDUSW_XMMdq_XMMdq=(XED_ICLASS_PADDUSW<<8)+3, 
-00790   XED_IFORM_PADDW_MMXq_MEMq=(XED_ICLASS_PADDW<<8)+0, 
-00791   XED_IFORM_PADDW_MMXq_MMXq=(XED_ICLASS_PADDW<<8)+1, 
-00792   XED_IFORM_PADDW_XMMdq_MEMdq=(XED_ICLASS_PADDW<<8)+2, 
-00793   XED_IFORM_PADDW_XMMdq_XMMdq=(XED_ICLASS_PADDW<<8)+3, 
-00794   XED_IFORM_PALIGNR_XMMdq_XMMdq_IMM=(XED_ICLASS_PALIGNR<<8)+0, 
-00795   XED_IFORM_PALIGNR_MMXq_MEMq_IMM=(XED_ICLASS_PALIGNR<<8)+1, 
-00796   XED_IFORM_PALIGNR_MMXq_MMXq_IMM=(XED_ICLASS_PALIGNR<<8)+2, 
-00797   XED_IFORM_PALIGNR_XMMdq_MEMdq_IMM=(XED_ICLASS_PALIGNR<<8)+3, 
-00798   XED_IFORM_PAND_MMXq_MMXq=(XED_ICLASS_PAND<<8)+0, 
-00799   XED_IFORM_PAND_MMXq_MEMq=(XED_ICLASS_PAND<<8)+1, 
-00800   XED_IFORM_PAND_XMMdq_XMMdq=(XED_ICLASS_PAND<<8)+2, 
-00801   XED_IFORM_PAND_XMMdq_MEMdq=(XED_ICLASS_PAND<<8)+3, 
-00802   XED_IFORM_PANDN_XMMdq_MEMdq=(XED_ICLASS_PANDN<<8)+0, 
-00803   XED_IFORM_PANDN_MMXq_MMXq=(XED_ICLASS_PANDN<<8)+1, 
-00804   XED_IFORM_PANDN_XMMdq_XMMdq=(XED_ICLASS_PANDN<<8)+2, 
-00805   XED_IFORM_PANDN_MMXq_MEMq=(XED_ICLASS_PANDN<<8)+3, 
-00806   XED_IFORM_PAUSE=(XED_ICLASS_PAUSE<<8)+0, 
-00807   XED_IFORM_PAVGB_XMMdq_MEMdq=(XED_ICLASS_PAVGB<<8)+0, 
-00808   XED_IFORM_PAVGB_MMXq_MEMq=(XED_ICLASS_PAVGB<<8)+1, 
-00809   XED_IFORM_PAVGB_XMMdq_XMMdq=(XED_ICLASS_PAVGB<<8)+2, 
-00810   XED_IFORM_PAVGB_MMXq_MMXq=(XED_ICLASS_PAVGB<<8)+3, 
-00811   XED_IFORM_PAVGUSB_MMXq_MEMq=(XED_ICLASS_PAVGUSB<<8)+0, 
-00812   XED_IFORM_PAVGUSB_MMXq_MMXq=(XED_ICLASS_PAVGUSB<<8)+1, 
-00813   XED_IFORM_PAVGW_XMMdq_MEMdq=(XED_ICLASS_PAVGW<<8)+0, 
-00814   XED_IFORM_PAVGW_MMXq_MMXq=(XED_ICLASS_PAVGW<<8)+1, 
-00815   XED_IFORM_PAVGW_XMMdq_XMMdq=(XED_ICLASS_PAVGW<<8)+2, 
-00816   XED_IFORM_PAVGW_MMXq_MEMq=(XED_ICLASS_PAVGW<<8)+3, 
-00817   XED_IFORM_PBLENDVB_XMMdq_XMMdq_XMM0dq=(XED_ICLASS_PBLENDVB<<8)+0, 
-00818   XED_IFORM_PBLENDVB_XMMdq_MEMdq_XMM0dq=(XED_ICLASS_PBLENDVB<<8)+1, 
-00819   XED_IFORM_PBLENDW_XMMdq_MEMdq_IMM=(XED_ICLASS_PBLENDW<<8)+0, 
-00820   XED_IFORM_PBLENDW_XMMdq_XMMdq_IMM=(XED_ICLASS_PBLENDW<<8)+1, 
-00821   XED_IFORM_PCMPEQB_XMMdq_MEMdq=(XED_ICLASS_PCMPEQB<<8)+0, 
-00822   XED_IFORM_PCMPEQB_MMXq_MMXq=(XED_ICLASS_PCMPEQB<<8)+1, 
-00823   XED_IFORM_PCMPEQB_MMXq_MEMq=(XED_ICLASS_PCMPEQB<<8)+2, 
-00824   XED_IFORM_PCMPEQB_XMMdq_XMMdq=(XED_ICLASS_PCMPEQB<<8)+3, 
-00825   XED_IFORM_PCMPEQD_XMMdq_MEMdq=(XED_ICLASS_PCMPEQD<<8)+0, 
-00826   XED_IFORM_PCMPEQD_XMMdq_XMMdq=(XED_ICLASS_PCMPEQD<<8)+1, 
-00827   XED_IFORM_PCMPEQD_MMXq_MMXq=(XED_ICLASS_PCMPEQD<<8)+2, 
-00828   XED_IFORM_PCMPEQD_MMXq_MEMq=(XED_ICLASS_PCMPEQD<<8)+3, 
-00829   XED_IFORM_PCMPEQQ_XMMdq_XMMdq=(XED_ICLASS_PCMPEQQ<<8)+0, 
-00830   XED_IFORM_PCMPEQQ_XMMdq_MEMdq=(XED_ICLASS_PCMPEQQ<<8)+1, 
-00831   XED_IFORM_PCMPEQW_XMMdq_XMMdq=(XED_ICLASS_PCMPEQW<<8)+0, 
-00832   XED_IFORM_PCMPEQW_MMXq_MEMq=(XED_ICLASS_PCMPEQW<<8)+1, 
-00833   XED_IFORM_PCMPEQW_MMXq_MMXq=(XED_ICLASS_PCMPEQW<<8)+2, 
-00834   XED_IFORM_PCMPEQW_XMMdq_MEMdq=(XED_ICLASS_PCMPEQW<<8)+3, 
-00835   XED_IFORM_PCMPESTRI_XMMdq_XMMdq_IMM=(XED_ICLASS_PCMPESTRI<<8)+0, 
-00836   XED_IFORM_PCMPESTRI_XMMdq_MEMdq_IMM=(XED_ICLASS_PCMPESTRI<<8)+1, 
-00837   XED_IFORM_PCMPESTRM_XMMdq_MEMdq_IMM=(XED_ICLASS_PCMPESTRM<<8)+0, 
-00838   XED_IFORM_PCMPESTRM_XMMdq_XMMdq_IMM=(XED_ICLASS_PCMPESTRM<<8)+1, 
-00839   XED_IFORM_PCMPGTB_MMXq_MMXq=(XED_ICLASS_PCMPGTB<<8)+0, 
-00840   XED_IFORM_PCMPGTB_XMMdq_MEMdq=(XED_ICLASS_PCMPGTB<<8)+1, 
-00841   XED_IFORM_PCMPGTB_XMMdq_XMMdq=(XED_ICLASS_PCMPGTB<<8)+2, 
-00842   XED_IFORM_PCMPGTB_MMXq_MEMq=(XED_ICLASS_PCMPGTB<<8)+3, 
-00843   XED_IFORM_PCMPGTD_XMMdq_XMMdq=(XED_ICLASS_PCMPGTD<<8)+0, 
-00844   XED_IFORM_PCMPGTD_XMMdq_MEMdq=(XED_ICLASS_PCMPGTD<<8)+1, 
-00845   XED_IFORM_PCMPGTD_MMXq_MEMq=(XED_ICLASS_PCMPGTD<<8)+2, 
-00846   XED_IFORM_PCMPGTD_MMXq_MMXq=(XED_ICLASS_PCMPGTD<<8)+3, 
-00847   XED_IFORM_PCMPGTQ_XMMdq_MEMdq=(XED_ICLASS_PCMPGTQ<<8)+0, 
-00848   XED_IFORM_PCMPGTQ_XMMdq_XMMdq=(XED_ICLASS_PCMPGTQ<<8)+1, 
-00849   XED_IFORM_PCMPGTW_MMXq_MMXq=(XED_ICLASS_PCMPGTW<<8)+0, 
-00850   XED_IFORM_PCMPGTW_MMXq_MEMq=(XED_ICLASS_PCMPGTW<<8)+1, 
-00851   XED_IFORM_PCMPGTW_XMMdq_XMMdq=(XED_ICLASS_PCMPGTW<<8)+2, 
-00852   XED_IFORM_PCMPGTW_XMMdq_MEMdq=(XED_ICLASS_PCMPGTW<<8)+3, 
-00853   XED_IFORM_PCMPISTRI_XMMdq_MEMdq_IMM=(XED_ICLASS_PCMPISTRI<<8)+0, 
-00854   XED_IFORM_PCMPISTRI_XMMdq_XMMdq_IMM=(XED_ICLASS_PCMPISTRI<<8)+1, 
-00855   XED_IFORM_PCMPISTRM_XMMdq_XMMdq_IMM=(XED_ICLASS_PCMPISTRM<<8)+0, 
-00856   XED_IFORM_PCMPISTRM_XMMdq_MEMdq_IMM=(XED_ICLASS_PCMPISTRM<<8)+1, 
-00857   XED_IFORM_PEXTRB_MEMb_XMMdq_IMM=(XED_ICLASS_PEXTRB<<8)+0, 
-00858   XED_IFORM_PEXTRB_GPR32d_XMMdq_IMM=(XED_ICLASS_PEXTRB<<8)+1, 
-00859   XED_IFORM_PEXTRD_MEMd_XMMdq_IMM=(XED_ICLASS_PEXTRD<<8)+0, 
-00860   XED_IFORM_PEXTRD_GPR32d_XMMdq_IMM=(XED_ICLASS_PEXTRD<<8)+1, 
-00861   XED_IFORM_PEXTRQ_MEMq_XMMdq_IMM=(XED_ICLASS_PEXTRQ<<8)+0, 
-00862   XED_IFORM_PEXTRQ_GPR64q_XMMdq_IMM=(XED_ICLASS_PEXTRQ<<8)+1, 
-00863   XED_IFORM_PEXTRW_GPRy_XMMdq_IMM=(XED_ICLASS_PEXTRW<<8)+0, 
-00864   XED_IFORM_PEXTRW_MEMw_XMMdq_IMM=(XED_ICLASS_PEXTRW<<8)+1, 
-00865   XED_IFORM_PEXTRW_GPRy_MMXq_IMM=(XED_ICLASS_PEXTRW<<8)+2, 
-00866   XED_IFORM_PEXTRW_GPR32d_XMMdq_IMM=(XED_ICLASS_PEXTRW<<8)+3, 
-00867   XED_IFORM_PF2ID_MMXq_MMXq=(XED_ICLASS_PF2ID<<8)+0, 
-00868   XED_IFORM_PF2ID_MMXq_MEMq=(XED_ICLASS_PF2ID<<8)+1, 
-00869   XED_IFORM_PF2IW_MMXq_MEMq=(XED_ICLASS_PF2IW<<8)+0, 
-00870   XED_IFORM_PF2IW_MMXq_MMXq=(XED_ICLASS_PF2IW<<8)+1, 
-00871   XED_IFORM_PFACC_MMXq_MEMq=(XED_ICLASS_PFACC<<8)+0, 
-00872   XED_IFORM_PFACC_MMXq_MMXq=(XED_ICLASS_PFACC<<8)+1, 
-00873   XED_IFORM_PFADD_MMXq_MMXq=(XED_ICLASS_PFADD<<8)+0, 
-00874   XED_IFORM_PFADD_MMXq_MEMq=(XED_ICLASS_PFADD<<8)+1, 
-00875   XED_IFORM_PFCMPEQ_MMXq_MMXq=(XED_ICLASS_PFCMPEQ<<8)+0, 
-00876   XED_IFORM_PFCMPEQ_MMXq_MEMq=(XED_ICLASS_PFCMPEQ<<8)+1, 
-00877   XED_IFORM_PFCMPGE_MMXq_MEMq=(XED_ICLASS_PFCMPGE<<8)+0, 
-00878   XED_IFORM_PFCMPGE_MMXq_MMXq=(XED_ICLASS_PFCMPGE<<8)+1, 
-00879   XED_IFORM_PFCMPGT_MMXq_MEMq=(XED_ICLASS_PFCMPGT<<8)+0, 
-00880   XED_IFORM_PFCMPGT_MMXq_MMXq=(XED_ICLASS_PFCMPGT<<8)+1, 
-00881   XED_IFORM_PFCPIT1_MMXq_MMXq=(XED_ICLASS_PFCPIT1<<8)+0, 
-00882   XED_IFORM_PFCPIT1_MMXq_MEMq=(XED_ICLASS_PFCPIT1<<8)+1, 
-00883   XED_IFORM_PFMAX_MMXq_MEMq=(XED_ICLASS_PFMAX<<8)+0, 
-00884   XED_IFORM_PFMAX_MMXq_MMXq=(XED_ICLASS_PFMAX<<8)+1, 
-00885   XED_IFORM_PFMIN_MMXq_MEMq=(XED_ICLASS_PFMIN<<8)+0, 
-00886   XED_IFORM_PFMIN_MMXq_MMXq=(XED_ICLASS_PFMIN<<8)+1, 
-00887   XED_IFORM_PFMUL_MMXq_MEMq=(XED_ICLASS_PFMUL<<8)+0, 
-00888   XED_IFORM_PFMUL_MMXq_MMXq=(XED_ICLASS_PFMUL<<8)+1, 
-00889   XED_IFORM_PFNACC_MMXq_MEMq=(XED_ICLASS_PFNACC<<8)+0, 
-00890   XED_IFORM_PFNACC_MMXq_MMXq=(XED_ICLASS_PFNACC<<8)+1, 
-00891   XED_IFORM_PFPNACC_MMXq_MEMq=(XED_ICLASS_PFPNACC<<8)+0, 
-00892   XED_IFORM_PFPNACC_MMXq_MMXq=(XED_ICLASS_PFPNACC<<8)+1, 
-00893   XED_IFORM_PFRCP_MMXq_MMXq=(XED_ICLASS_PFRCP<<8)+0, 
-00894   XED_IFORM_PFRCP_MMXq_MEMq=(XED_ICLASS_PFRCP<<8)+1, 
-00895   XED_IFORM_PFRCPIT2_MMXq_MEMq=(XED_ICLASS_PFRCPIT2<<8)+0, 
-00896   XED_IFORM_PFRCPIT2_MMXq_MMXq=(XED_ICLASS_PFRCPIT2<<8)+1, 
-00897   XED_IFORM_PFRSQIT1_MMXq_MEMq=(XED_ICLASS_PFRSQIT1<<8)+0, 
-00898   XED_IFORM_PFRSQIT1_MMXq_MMXq=(XED_ICLASS_PFRSQIT1<<8)+1, 
-00899   XED_IFORM_PFSQRT_MMXq_MMXq=(XED_ICLASS_PFSQRT<<8)+0, 
-00900   XED_IFORM_PFSQRT_MMXq_MEMq=(XED_ICLASS_PFSQRT<<8)+1, 
-00901   XED_IFORM_PFSUB_MMXq_MEMq=(XED_ICLASS_PFSUB<<8)+0, 
-00902   XED_IFORM_PFSUB_MMXq_MMXq=(XED_ICLASS_PFSUB<<8)+1, 
-00903   XED_IFORM_PFSUBR_MMXq_MMXq=(XED_ICLASS_PFSUBR<<8)+0, 
-00904   XED_IFORM_PFSUBR_MMXq_MEMq=(XED_ICLASS_PFSUBR<<8)+1, 
-00905   XED_IFORM_PHADDD_MMXq_MEMq=(XED_ICLASS_PHADDD<<8)+0, 
-00906   XED_IFORM_PHADDD_MMXq_MMXq=(XED_ICLASS_PHADDD<<8)+1, 
-00907   XED_IFORM_PHADDD_XMMdq_MEMdq=(XED_ICLASS_PHADDD<<8)+2, 
-00908   XED_IFORM_PHADDD_XMMdq_XMMdq=(XED_ICLASS_PHADDD<<8)+3, 
-00909   XED_IFORM_PHADDSW_MMXq_MEMq=(XED_ICLASS_PHADDSW<<8)+0, 
-00910   XED_IFORM_PHADDSW_MMXq_MMXq=(XED_ICLASS_PHADDSW<<8)+1, 
-00911   XED_IFORM_PHADDSW_XMMdq_XMMdq=(XED_ICLASS_PHADDSW<<8)+2, 
-00912   XED_IFORM_PHADDSW_XMMdq_MEMdq=(XED_ICLASS_PHADDSW<<8)+3, 
-00913   XED_IFORM_PHADDW_XMMdq_MEMdq=(XED_ICLASS_PHADDW<<8)+0, 
-00914   XED_IFORM_PHADDW_MMXq_MMXq=(XED_ICLASS_PHADDW<<8)+1, 
-00915   XED_IFORM_PHADDW_XMMdq_XMMdq=(XED_ICLASS_PHADDW<<8)+2, 
-00916   XED_IFORM_PHADDW_MMXq_MEMq=(XED_ICLASS_PHADDW<<8)+3, 
-00917   XED_IFORM_PHMINPOSUW_XMMdq_XMMdq=(XED_ICLASS_PHMINPOSUW<<8)+0, 
-00918   XED_IFORM_PHMINPOSUW_XMMdq_MEMdq=(XED_ICLASS_PHMINPOSUW<<8)+1, 
-00919   XED_IFORM_PHSUBD_MMXq_MEMq=(XED_ICLASS_PHSUBD<<8)+0, 
-00920   XED_IFORM_PHSUBD_XMMdq_XMMdq=(XED_ICLASS_PHSUBD<<8)+1, 
-00921   XED_IFORM_PHSUBD_XMMdq_MEMdq=(XED_ICLASS_PHSUBD<<8)+2, 
-00922   XED_IFORM_PHSUBD_MMXq_MMXq=(XED_ICLASS_PHSUBD<<8)+3, 
-00923   XED_IFORM_PHSUBSW_XMMdq_MEMdq=(XED_ICLASS_PHSUBSW<<8)+0, 
-00924   XED_IFORM_PHSUBSW_MMXq_MMXq=(XED_ICLASS_PHSUBSW<<8)+1, 
-00925   XED_IFORM_PHSUBSW_MMXq_MEMq=(XED_ICLASS_PHSUBSW<<8)+2, 
-00926   XED_IFORM_PHSUBSW_XMMdq_XMMdq=(XED_ICLASS_PHSUBSW<<8)+3, 
-00927   XED_IFORM_PHSUBW_MMXq_MMXq=(XED_ICLASS_PHSUBW<<8)+0, 
-00928   XED_IFORM_PHSUBW_XMMdq_MEMdq=(XED_ICLASS_PHSUBW<<8)+1, 
-00929   XED_IFORM_PHSUBW_MMXq_MEMq=(XED_ICLASS_PHSUBW<<8)+2, 
-00930   XED_IFORM_PHSUBW_XMMdq_XMMdq=(XED_ICLASS_PHSUBW<<8)+3, 
-00931   XED_IFORM_PI2FD_MMXq_MMXq=(XED_ICLASS_PI2FD<<8)+0, 
-00932   XED_IFORM_PI2FD_MMXq_MEMq=(XED_ICLASS_PI2FD<<8)+1, 
-00933   XED_IFORM_PI2FW_MMXq_MEMq=(XED_ICLASS_PI2FW<<8)+0, 
-00934   XED_IFORM_PI2FW_MMXq_MMXq=(XED_ICLASS_PI2FW<<8)+1, 
-00935   XED_IFORM_PINSRB_XMMdq_MEMb_IMM=(XED_ICLASS_PINSRB<<8)+0, 
-00936   XED_IFORM_PINSRB_XMMdq_GPR32d_IMM=(XED_ICLASS_PINSRB<<8)+1, 
-00937   XED_IFORM_PINSRD_XMMdq_GPR32d_IMM=(XED_ICLASS_PINSRD<<8)+0, 
-00938   XED_IFORM_PINSRD_XMMdq_MEMd_IMM=(XED_ICLASS_PINSRD<<8)+1, 
-00939   XED_IFORM_PINSRQ_XMMdq_GPR64q_IMM=(XED_ICLASS_PINSRQ<<8)+0, 
-00940   XED_IFORM_PINSRQ_XMMdq_MEMq_IMM=(XED_ICLASS_PINSRQ<<8)+1, 
-00941   XED_IFORM_PINSRW_MMXq_MEMw_IMM=(XED_ICLASS_PINSRW<<8)+0, 
-00942   XED_IFORM_PINSRW_XMMdq_GPRy_IMM=(XED_ICLASS_PINSRW<<8)+1, 
-00943   XED_IFORM_PINSRW_MMXq_GPRy_IMM=(XED_ICLASS_PINSRW<<8)+2, 
-00944   XED_IFORM_PINSRW_XMMdq_MEMw_IMM=(XED_ICLASS_PINSRW<<8)+3, 
-00945   XED_IFORM_PMADDUBSW_XMMdq_XMMdq=(XED_ICLASS_PMADDUBSW<<8)+0, 
-00946   XED_IFORM_PMADDUBSW_XMMdq_MEMdq=(XED_ICLASS_PMADDUBSW<<8)+1, 
-00947   XED_IFORM_PMADDUBSW_MMXq_MMXq=(XED_ICLASS_PMADDUBSW<<8)+2, 
-00948   XED_IFORM_PMADDUBSW_MMXq_MEMq=(XED_ICLASS_PMADDUBSW<<8)+3, 
-00949   XED_IFORM_PMADDWD_XMMdq_XMMdq=(XED_ICLASS_PMADDWD<<8)+0, 
-00950   XED_IFORM_PMADDWD_XMMdq_MEMdq=(XED_ICLASS_PMADDWD<<8)+1, 
-00951   XED_IFORM_PMADDWD_MMXq_MEMq=(XED_ICLASS_PMADDWD<<8)+2, 
-00952   XED_IFORM_PMADDWD_MMXq_MMXq=(XED_ICLASS_PMADDWD<<8)+3, 
-00953   XED_IFORM_PMAXSB_XMMdq_MEMdq=(XED_ICLASS_PMAXSB<<8)+0, 
-00954   XED_IFORM_PMAXSB_XMMdq_XMMdq=(XED_ICLASS_PMAXSB<<8)+1, 
-00955   XED_IFORM_PMAXSD_XMMdq_MEMdq=(XED_ICLASS_PMAXSD<<8)+0, 
-00956   XED_IFORM_PMAXSD_XMMdq_XMMdq=(XED_ICLASS_PMAXSD<<8)+1, 
-00957   XED_IFORM_PMAXSW_MMXq_MMXq=(XED_ICLASS_PMAXSW<<8)+0, 
-00958   XED_IFORM_PMAXSW_XMMdq_XMMdq=(XED_ICLASS_PMAXSW<<8)+1, 
-00959   XED_IFORM_PMAXSW_MMXq_MEMq=(XED_ICLASS_PMAXSW<<8)+2, 
-00960   XED_IFORM_PMAXSW_XMMdq_MEMdq=(XED_ICLASS_PMAXSW<<8)+3, 
-00961   XED_IFORM_PMAXUB_XMMdq_MEMdq=(XED_ICLASS_PMAXUB<<8)+0, 
-00962   XED_IFORM_PMAXUB_XMMdq_XMMdq=(XED_ICLASS_PMAXUB<<8)+1, 
-00963   XED_IFORM_PMAXUB_MMXq_MEMq=(XED_ICLASS_PMAXUB<<8)+2, 
-00964   XED_IFORM_PMAXUB_MMXq_MMXq=(XED_ICLASS_PMAXUB<<8)+3, 
-00965   XED_IFORM_PMAXUD_XMMdq_MEMdq=(XED_ICLASS_PMAXUD<<8)+0, 
-00966   XED_IFORM_PMAXUD_XMMdq_XMMdq=(XED_ICLASS_PMAXUD<<8)+1, 
-00967   XED_IFORM_PMAXUW_XMMdq_XMMdq=(XED_ICLASS_PMAXUW<<8)+0, 
-00968   XED_IFORM_PMAXUW_XMMdq_MEMdq=(XED_ICLASS_PMAXUW<<8)+1, 
-00969   XED_IFORM_PMINSB_XMMdq_MEMdq=(XED_ICLASS_PMINSB<<8)+0, 
-00970   XED_IFORM_PMINSB_XMMdq_XMMdq=(XED_ICLASS_PMINSB<<8)+1, 
-00971   XED_IFORM_PMINSD_XMMdq_MEMdq=(XED_ICLASS_PMINSD<<8)+0, 
-00972   XED_IFORM_PMINSD_XMMdq_XMMdq=(XED_ICLASS_PMINSD<<8)+1, 
-00973   XED_IFORM_PMINSW_XMMdq_XMMdq=(XED_ICLASS_PMINSW<<8)+0, 
-00974   XED_IFORM_PMINSW_XMMdq_MEMdq=(XED_ICLASS_PMINSW<<8)+1, 
-00975   XED_IFORM_PMINSW_MMXq_MMXq=(XED_ICLASS_PMINSW<<8)+2, 
-00976   XED_IFORM_PMINSW_MMXq_MEMq=(XED_ICLASS_PMINSW<<8)+3, 
-00977   XED_IFORM_PMINUB_MMXq_MEMq=(XED_ICLASS_PMINUB<<8)+0, 
-00978   XED_IFORM_PMINUB_XMMdq_XMMdq=(XED_ICLASS_PMINUB<<8)+1, 
-00979   XED_IFORM_PMINUB_XMMdq_MEMdq=(XED_ICLASS_PMINUB<<8)+2, 
-00980   XED_IFORM_PMINUB_MMXq_MMXq=(XED_ICLASS_PMINUB<<8)+3, 
-00981   XED_IFORM_PMINUD_XMMdq_MEMdq=(XED_ICLASS_PMINUD<<8)+0, 
-00982   XED_IFORM_PMINUD_XMMdq_XMMdq=(XED_ICLASS_PMINUD<<8)+1, 
-00983   XED_IFORM_PMINUW_XMMdq_XMMdq=(XED_ICLASS_PMINUW<<8)+0, 
-00984   XED_IFORM_PMINUW_XMMdq_MEMdq=(XED_ICLASS_PMINUW<<8)+1, 
-00985   XED_IFORM_PMOVMSKB_GPR32_XMMdq=(XED_ICLASS_PMOVMSKB<<8)+0, 
-00986   XED_IFORM_PMOVMSKB_GPR32_MMXq=(XED_ICLASS_PMOVMSKB<<8)+1, 
-00987   XED_IFORM_PMOVSXBD_XMMdq_MEMd=(XED_ICLASS_PMOVSXBD<<8)+0, 
-00988   XED_IFORM_PMOVSXBD_XMMdq_XMMd=(XED_ICLASS_PMOVSXBD<<8)+1, 
-00989   XED_IFORM_PMOVSXBQ_XMMdq_MEMw=(XED_ICLASS_PMOVSXBQ<<8)+0, 
-00990   XED_IFORM_PMOVSXBQ_XMMdq_XMMw=(XED_ICLASS_PMOVSXBQ<<8)+1, 
-00991   XED_IFORM_PMOVSXBW_XMMdq_XMMq=(XED_ICLASS_PMOVSXBW<<8)+0, 
-00992   XED_IFORM_PMOVSXBW_XMMdq_MEMq=(XED_ICLASS_PMOVSXBW<<8)+1, 
-00993   XED_IFORM_PMOVSXDQ_XMMdq_XMMq=(XED_ICLASS_PMOVSXDQ<<8)+0, 
-00994   XED_IFORM_PMOVSXDQ_XMMdq_MEMq=(XED_ICLASS_PMOVSXDQ<<8)+1, 
-00995   XED_IFORM_PMOVSXWD_XMMdq_XMMq=(XED_ICLASS_PMOVSXWD<<8)+0, 
-00996   XED_IFORM_PMOVSXWD_XMMdq_MEMq=(XED_ICLASS_PMOVSXWD<<8)+1, 
-00997   XED_IFORM_PMOVSXWQ_XMMdq_MEMd=(XED_ICLASS_PMOVSXWQ<<8)+0, 
-00998   XED_IFORM_PMOVSXWQ_XMMdq_XMMd=(XED_ICLASS_PMOVSXWQ<<8)+1, 
-00999   XED_IFORM_PMOVZXBD_XMMdq_XMMd=(XED_ICLASS_PMOVZXBD<<8)+0, 
-01000   XED_IFORM_PMOVZXBD_XMMdq_MEMd=(XED_ICLASS_PMOVZXBD<<8)+1, 
-01001   XED_IFORM_PMOVZXBQ_XMMdq_XMMw=(XED_ICLASS_PMOVZXBQ<<8)+0, 
-01002   XED_IFORM_PMOVZXBQ_XMMdq_MEMw=(XED_ICLASS_PMOVZXBQ<<8)+1, 
-01003   XED_IFORM_PMOVZXBW_XMMdq_MEMq=(XED_ICLASS_PMOVZXBW<<8)+0, 
-01004   XED_IFORM_PMOVZXBW_XMMdq_XMMq=(XED_ICLASS_PMOVZXBW<<8)+1, 
-01005   XED_IFORM_PMOVZXDQ_XMMdq_MEMq=(XED_ICLASS_PMOVZXDQ<<8)+0, 
-01006   XED_IFORM_PMOVZXDQ_XMMdq_XMMq=(XED_ICLASS_PMOVZXDQ<<8)+1, 
-01007   XED_IFORM_PMOVZXWD_XMMdq_MEMq=(XED_ICLASS_PMOVZXWD<<8)+0, 
-01008   XED_IFORM_PMOVZXWD_XMMdq_XMMq=(XED_ICLASS_PMOVZXWD<<8)+1, 
-01009   XED_IFORM_PMOVZXWQ_XMMdq_XMMd=(XED_ICLASS_PMOVZXWQ<<8)+0, 
-01010   XED_IFORM_PMOVZXWQ_XMMdq_MEMd=(XED_ICLASS_PMOVZXWQ<<8)+1, 
-01011   XED_IFORM_PMULDQ_XMMdq_MEMdq=(XED_ICLASS_PMULDQ<<8)+0, 
-01012   XED_IFORM_PMULDQ_XMMdq_XMMdq=(XED_ICLASS_PMULDQ<<8)+1, 
-01013   XED_IFORM_PMULHRSW_XMMdq_MEMdq=(XED_ICLASS_PMULHRSW<<8)+0, 
-01014   XED_IFORM_PMULHRSW_XMMdq_XMMdq=(XED_ICLASS_PMULHRSW<<8)+1, 
-01015   XED_IFORM_PMULHRSW_MMXq_MEMq=(XED_ICLASS_PMULHRSW<<8)+2, 
-01016   XED_IFORM_PMULHRSW_MMXq_MMXq=(XED_ICLASS_PMULHRSW<<8)+3, 
-01017   XED_IFORM_PMULHRW_MMXq_MEMq=(XED_ICLASS_PMULHRW<<8)+0, 
-01018   XED_IFORM_PMULHRW_MMXq_MMXq=(XED_ICLASS_PMULHRW<<8)+1, 
-01019   XED_IFORM_PMULHUW_XMMdq_MEMdq=(XED_ICLASS_PMULHUW<<8)+0, 
-01020   XED_IFORM_PMULHUW_XMMdq_XMMdq=(XED_ICLASS_PMULHUW<<8)+1, 
-01021   XED_IFORM_PMULHUW_MMXq_MMXq=(XED_ICLASS_PMULHUW<<8)+2, 
-01022   XED_IFORM_PMULHUW_MMXq_MEMq=(XED_ICLASS_PMULHUW<<8)+3, 
-01023   XED_IFORM_PMULHW_MMXq_MMXq=(XED_ICLASS_PMULHW<<8)+0, 
-01024   XED_IFORM_PMULHW_XMMdq_MEMdq=(XED_ICLASS_PMULHW<<8)+1, 
-01025   XED_IFORM_PMULHW_MMXq_MEMq=(XED_ICLASS_PMULHW<<8)+2, 
-01026   XED_IFORM_PMULHW_XMMdq_XMMdq=(XED_ICLASS_PMULHW<<8)+3, 
-01027   XED_IFORM_PMULLD_XMMdq_XMMdq=(XED_ICLASS_PMULLD<<8)+0, 
-01028   XED_IFORM_PMULLD_XMMdq_MEMdq=(XED_ICLASS_PMULLD<<8)+1, 
-01029   XED_IFORM_PMULLW_MMXq_MEMq=(XED_ICLASS_PMULLW<<8)+0, 
-01030   XED_IFORM_PMULLW_XMMdq_XMMdq=(XED_ICLASS_PMULLW<<8)+1, 
-01031   XED_IFORM_PMULLW_MMXq_MMXq=(XED_ICLASS_PMULLW<<8)+2, 
-01032   XED_IFORM_PMULLW_XMMdq_MEMdq=(XED_ICLASS_PMULLW<<8)+3, 
-01033   XED_IFORM_PMULUDQ_MMXq_MEMq=(XED_ICLASS_PMULUDQ<<8)+0, 
-01034   XED_IFORM_PMULUDQ_XMMdq_MEMdq=(XED_ICLASS_PMULUDQ<<8)+1, 
-01035   XED_IFORM_PMULUDQ_XMMdq_XMMdq=(XED_ICLASS_PMULUDQ<<8)+2, 
-01036   XED_IFORM_PMULUDQ_MMXq_MMXq=(XED_ICLASS_PMULUDQ<<8)+3, 
-01037   XED_IFORM_POP_SS=(XED_ICLASS_POP<<8)+0, 
-01038   XED_IFORM_POP_DS=(XED_ICLASS_POP<<8)+1, 
-01039   XED_IFORM_POP_MEMv=(XED_ICLASS_POP<<8)+2, 
-01040   XED_IFORM_POP_GPRv=(XED_ICLASS_POP<<8)+3, 
-01041   XED_IFORM_POP_ES=(XED_ICLASS_POP<<8)+4, 
-01042   XED_IFORM_POP_GS=(XED_ICLASS_POP<<8)+5, 
-01043   XED_IFORM_POP_FS=(XED_ICLASS_POP<<8)+6, 
-01044   XED_IFORM_POPA=(XED_ICLASS_POPA<<8)+0, 
-01045   XED_IFORM_POPAD=(XED_ICLASS_POPAD<<8)+0, 
-01046   XED_IFORM_POPCNT_GPRv_GPRv=(XED_ICLASS_POPCNT<<8)+0, 
-01047   XED_IFORM_POPCNT_GPRv_MEMv=(XED_ICLASS_POPCNT<<8)+1, 
-01048   XED_IFORM_POPF=(XED_ICLASS_POPF<<8)+0, 
-01049   XED_IFORM_POPFD=(XED_ICLASS_POPFD<<8)+0, 
-01050   XED_IFORM_POPFQ=(XED_ICLASS_POPFQ<<8)+0, 
-01051   XED_IFORM_POR_XMMdq_XMMdq=(XED_ICLASS_POR<<8)+0, 
-01052   XED_IFORM_POR_XMMdq_MEMdq=(XED_ICLASS_POR<<8)+1, 
-01053   XED_IFORM_POR_MMXq_MEMq=(XED_ICLASS_POR<<8)+2, 
-01054   XED_IFORM_POR_MMXq_MMXq=(XED_ICLASS_POR<<8)+3, 
-01055   XED_IFORM_PREFETCHNTA_MEMmprefetch=(XED_ICLASS_PREFETCHNTA<<8)+0, 
-01056   XED_IFORM_PREFETCHT0_MEMmprefetch=(XED_ICLASS_PREFETCHT0<<8)+0, 
-01057   XED_IFORM_PREFETCHT1_MEMmprefetch=(XED_ICLASS_PREFETCHT1<<8)+0, 
-01058   XED_IFORM_PREFETCHT2_MEMmprefetch=(XED_ICLASS_PREFETCHT2<<8)+0, 
-01059   XED_IFORM_PREFETCH_EXCLUSIVE_MEMmprefetch=(XED_ICLASS_PREFETCH_EXCLUSIVE<<8)+0, 
-01060   XED_IFORM_PREFETCH_MODIFIED_MEMmprefetch=(XED_ICLASS_PREFETCH_MODIFIED<<8)+0, 
-01061   XED_IFORM_PREFETCH_RESERVED_MEMmprefetch=(XED_ICLASS_PREFETCH_RESERVED<<8)+0, 
-01062   XED_IFORM_PSADBW_MMXq_MMXq=(XED_ICLASS_PSADBW<<8)+0, 
-01063   XED_IFORM_PSADBW_XMMdq_MEMdq=(XED_ICLASS_PSADBW<<8)+1, 
-01064   XED_IFORM_PSADBW_MMXq_MEMq=(XED_ICLASS_PSADBW<<8)+2, 
-01065   XED_IFORM_PSADBW_XMMdq_XMMdq=(XED_ICLASS_PSADBW<<8)+3, 
-01066   XED_IFORM_PSHUFB_MMXq_MEMq=(XED_ICLASS_PSHUFB<<8)+0, 
-01067   XED_IFORM_PSHUFB_XMMdq_XMMdq=(XED_ICLASS_PSHUFB<<8)+1, 
-01068   XED_IFORM_PSHUFB_XMMdq_MEMdq=(XED_ICLASS_PSHUFB<<8)+2, 
-01069   XED_IFORM_PSHUFB_MMXq_MMXq=(XED_ICLASS_PSHUFB<<8)+3, 
-01070   XED_IFORM_PSHUFD_XMMdq_XMMdq_IMM=(XED_ICLASS_PSHUFD<<8)+0, 
-01071   XED_IFORM_PSHUFD_XMMdq_MEMdq_IMM=(XED_ICLASS_PSHUFD<<8)+1, 
-01072   XED_IFORM_PSHUFHW_XMMdq_MEMdq_IMM=(XED_ICLASS_PSHUFHW<<8)+0, 
-01073   XED_IFORM_PSHUFHW_XMMdq_XMMdq_IMM=(XED_ICLASS_PSHUFHW<<8)+1, 
-01074   XED_IFORM_PSHUFLW_XMMdq_XMMdq_IMM=(XED_ICLASS_PSHUFLW<<8)+0, 
-01075   XED_IFORM_PSHUFLW_XMMdq_MEMdq_IMM=(XED_ICLASS_PSHUFLW<<8)+1, 
-01076   XED_IFORM_PSHUFW_MMXq_MMXq_IMM=(XED_ICLASS_PSHUFW<<8)+0, 
-01077   XED_IFORM_PSHUFW_MMXq_MEMq_IMM=(XED_ICLASS_PSHUFW<<8)+1, 
-01078   XED_IFORM_PSIGNB_XMMdq_MEMdq=(XED_ICLASS_PSIGNB<<8)+0, 
-01079   XED_IFORM_PSIGNB_XMMdq_XMMdq=(XED_ICLASS_PSIGNB<<8)+1, 
-01080   XED_IFORM_PSIGNB_MMXq_MEMq=(XED_ICLASS_PSIGNB<<8)+2, 
-01081   XED_IFORM_PSIGNB_MMXq_MMXq=(XED_ICLASS_PSIGNB<<8)+3, 
-01082   XED_IFORM_PSIGND_MMXq_MMXq=(XED_ICLASS_PSIGND<<8)+0, 
-01083   XED_IFORM_PSIGND_XMMdq_MEMdq=(XED_ICLASS_PSIGND<<8)+1, 
-01084   XED_IFORM_PSIGND_MMXq_MEMq=(XED_ICLASS_PSIGND<<8)+2, 
-01085   XED_IFORM_PSIGND_XMMdq_XMMdq=(XED_ICLASS_PSIGND<<8)+3, 
-01086   XED_IFORM_PSIGNW_MMXq_MEMq=(XED_ICLASS_PSIGNW<<8)+0, 
-01087   XED_IFORM_PSIGNW_XMMdq_XMMdq=(XED_ICLASS_PSIGNW<<8)+1, 
-01088   XED_IFORM_PSIGNW_XMMdq_MEMdq=(XED_ICLASS_PSIGNW<<8)+2, 
-01089   XED_IFORM_PSIGNW_MMXq_MMXq=(XED_ICLASS_PSIGNW<<8)+3, 
-01090   XED_IFORM_PSLLD_XMMdq_XMMdq=(XED_ICLASS_PSLLD<<8)+0, 
-01091   XED_IFORM_PSLLD_XMMdq_MEMdq=(XED_ICLASS_PSLLD<<8)+1, 
-01092   XED_IFORM_PSLLD_XMMdq_IMM=(XED_ICLASS_PSLLD<<8)+2, 
-01093   XED_IFORM_PSLLD_MMXq_MEMq=(XED_ICLASS_PSLLD<<8)+3, 
-01094   XED_IFORM_PSLLD_MMXq_MMXq=(XED_ICLASS_PSLLD<<8)+4, 
-01095   XED_IFORM_PSLLD_MMXq_IMM=(XED_ICLASS_PSLLD<<8)+5, 
-01096   XED_IFORM_PSLLDQ_XMMdq_IMM=(XED_ICLASS_PSLLDQ<<8)+0, 
-01097   XED_IFORM_PSLLQ_XMMdq_MEMdq=(XED_ICLASS_PSLLQ<<8)+0, 
-01098   XED_IFORM_PSLLQ_XMMdq_IMM=(XED_ICLASS_PSLLQ<<8)+1, 
-01099   XED_IFORM_PSLLQ_XMMdq_XMMdq=(XED_ICLASS_PSLLQ<<8)+2, 
-01100   XED_IFORM_PSLLQ_MMXq_MEMq=(XED_ICLASS_PSLLQ<<8)+3, 
-01101   XED_IFORM_PSLLQ_MMXq_IMM=(XED_ICLASS_PSLLQ<<8)+4, 
-01102   XED_IFORM_PSLLQ_MMXq_MMXq=(XED_ICLASS_PSLLQ<<8)+5, 
-01103   XED_IFORM_PSLLW_MMXq_MMXq=(XED_ICLASS_PSLLW<<8)+0, 
-01104   XED_IFORM_PSLLW_MMXq_IMM=(XED_ICLASS_PSLLW<<8)+1, 
-01105   XED_IFORM_PSLLW_MMXq_MEMq=(XED_ICLASS_PSLLW<<8)+2, 
-01106   XED_IFORM_PSLLW_XMMdq_XMMdq=(XED_ICLASS_PSLLW<<8)+3, 
-01107   XED_IFORM_PSLLW_XMMdq_IMM=(XED_ICLASS_PSLLW<<8)+4, 
-01108   XED_IFORM_PSLLW_XMMdq_MEMdq=(XED_ICLASS_PSLLW<<8)+5, 
-01109   XED_IFORM_PSRAD_XMMdq_MEMdq=(XED_ICLASS_PSRAD<<8)+0, 
-01110   XED_IFORM_PSRAD_MMXq_MEMq=(XED_ICLASS_PSRAD<<8)+1, 
-01111   XED_IFORM_PSRAD_MMXq_IMM=(XED_ICLASS_PSRAD<<8)+2, 
-01112   XED_IFORM_PSRAD_XMMdq_IMM=(XED_ICLASS_PSRAD<<8)+3, 
-01113   XED_IFORM_PSRAD_XMMdq_XMMdq=(XED_ICLASS_PSRAD<<8)+4, 
-01114   XED_IFORM_PSRAD_MMXq_MMXq=(XED_ICLASS_PSRAD<<8)+5, 
-01115   XED_IFORM_PSRAW_XMMdq_IMM=(XED_ICLASS_PSRAW<<8)+0, 
-01116   XED_IFORM_PSRAW_MMXq_MEMq=(XED_ICLASS_PSRAW<<8)+1, 
-01117   XED_IFORM_PSRAW_MMXq_MMXq=(XED_ICLASS_PSRAW<<8)+2, 
-01118   XED_IFORM_PSRAW_XMMdq_MEMdq=(XED_ICLASS_PSRAW<<8)+3, 
-01119   XED_IFORM_PSRAW_MMXq_IMM=(XED_ICLASS_PSRAW<<8)+4, 
-01120   XED_IFORM_PSRAW_XMMdq_XMMdq=(XED_ICLASS_PSRAW<<8)+5, 
-01121   XED_IFORM_PSRLD_MMXq_MEMq=(XED_ICLASS_PSRLD<<8)+0, 
-01122   XED_IFORM_PSRLD_MMXq_IMM=(XED_ICLASS_PSRLD<<8)+1, 
-01123   XED_IFORM_PSRLD_MMXq_MMXq=(XED_ICLASS_PSRLD<<8)+2, 
-01124   XED_IFORM_PSRLD_XMMdq_XMMdq=(XED_ICLASS_PSRLD<<8)+3, 
-01125   XED_IFORM_PSRLD_XMMdq_IMM=(XED_ICLASS_PSRLD<<8)+4, 
-01126   XED_IFORM_PSRLD_XMMdq_MEMdq=(XED_ICLASS_PSRLD<<8)+5, 
-01127   XED_IFORM_PSRLDQ_XMMdq_IMM=(XED_ICLASS_PSRLDQ<<8)+0, 
-01128   XED_IFORM_PSRLQ_MMXq_MMXq=(XED_ICLASS_PSRLQ<<8)+0, 
-01129   XED_IFORM_PSRLQ_XMMdq_IMM=(XED_ICLASS_PSRLQ<<8)+1, 
-01130   XED_IFORM_PSRLQ_XMMdq_MEMdq=(XED_ICLASS_PSRLQ<<8)+2, 
-01131   XED_IFORM_PSRLQ_MMXq_IMM=(XED_ICLASS_PSRLQ<<8)+3, 
-01132   XED_IFORM_PSRLQ_MMXq_MEMq=(XED_ICLASS_PSRLQ<<8)+4, 
-01133   XED_IFORM_PSRLQ_XMMdq_XMMdq=(XED_ICLASS_PSRLQ<<8)+5, 
-01134   XED_IFORM_PSRLW_XMMdq_XMMdq=(XED_ICLASS_PSRLW<<8)+0, 
-01135   XED_IFORM_PSRLW_MMXq_MEMq=(XED_ICLASS_PSRLW<<8)+1, 
-01136   XED_IFORM_PSRLW_MMXq_MMXq=(XED_ICLASS_PSRLW<<8)+2, 
-01137   XED_IFORM_PSRLW_XMMdq_MEMdq=(XED_ICLASS_PSRLW<<8)+3, 
-01138   XED_IFORM_PSRLW_MMXq_IMM=(XED_ICLASS_PSRLW<<8)+4, 
-01139   XED_IFORM_PSRLW_XMMdq_IMM=(XED_ICLASS_PSRLW<<8)+5, 
-01140   XED_IFORM_PSUBB_XMMdq_MEMdq=(XED_ICLASS_PSUBB<<8)+0, 
-01141   XED_IFORM_PSUBB_XMMdq_XMMdq=(XED_ICLASS_PSUBB<<8)+1, 
-01142   XED_IFORM_PSUBB_MMXq_MEMq=(XED_ICLASS_PSUBB<<8)+2, 
-01143   XED_IFORM_PSUBB_MMXq_MMXq=(XED_ICLASS_PSUBB<<8)+3, 
-01144   XED_IFORM_PSUBD_MMXq_MMXq=(XED_ICLASS_PSUBD<<8)+0, 
-01145   XED_IFORM_PSUBD_XMMdq_MEMdq=(XED_ICLASS_PSUBD<<8)+1, 
-01146   XED_IFORM_PSUBD_MMXq_MEMq=(XED_ICLASS_PSUBD<<8)+2, 
-01147   XED_IFORM_PSUBD_XMMdq_XMMdq=(XED_ICLASS_PSUBD<<8)+3, 
-01148   XED_IFORM_PSUBQ_MMXq_MMXq=(XED_ICLASS_PSUBQ<<8)+0, 
-01149   XED_IFORM_PSUBQ_XMMdq_XMMdq=(XED_ICLASS_PSUBQ<<8)+1, 
-01150   XED_IFORM_PSUBQ_MMXq_MEMq=(XED_ICLASS_PSUBQ<<8)+2, 
-01151   XED_IFORM_PSUBQ_XMMdq_MEMdq=(XED_ICLASS_PSUBQ<<8)+3, 
-01152   XED_IFORM_PSUBSB_XMMdq_MEMdq=(XED_ICLASS_PSUBSB<<8)+0, 
-01153   XED_IFORM_PSUBSB_MMXq_MEMq=(XED_ICLASS_PSUBSB<<8)+1, 
-01154   XED_IFORM_PSUBSB_XMMdq_XMMdq=(XED_ICLASS_PSUBSB<<8)+2, 
-01155   XED_IFORM_PSUBSB_MMXq_MMXq=(XED_ICLASS_PSUBSB<<8)+3, 
-01156   XED_IFORM_PSUBSW_XMMdq_MEMdq=(XED_ICLASS_PSUBSW<<8)+0, 
-01157   XED_IFORM_PSUBSW_MMXq_MMXq=(XED_ICLASS_PSUBSW<<8)+1, 
-01158   XED_IFORM_PSUBSW_XMMdq_XMMdq=(XED_ICLASS_PSUBSW<<8)+2, 
-01159   XED_IFORM_PSUBSW_MMXq_MEMq=(XED_ICLASS_PSUBSW<<8)+3, 
-01160   XED_IFORM_PSUBUSB_MMXq_MMXq=(XED_ICLASS_PSUBUSB<<8)+0, 
-01161   XED_IFORM_PSUBUSB_MMXq_MEMq=(XED_ICLASS_PSUBUSB<<8)+1, 
-01162   XED_IFORM_PSUBUSB_XMMdq_XMMdq=(XED_ICLASS_PSUBUSB<<8)+2, 
-01163   XED_IFORM_PSUBUSB_XMMdq_MEMdq=(XED_ICLASS_PSUBUSB<<8)+3, 
-01164   XED_IFORM_PSUBUSW_MMXq_MMXq=(XED_ICLASS_PSUBUSW<<8)+0, 
-01165   XED_IFORM_PSUBUSW_XMMdq_MEMdq=(XED_ICLASS_PSUBUSW<<8)+1, 
-01166   XED_IFORM_PSUBUSW_XMMdq_XMMdq=(XED_ICLASS_PSUBUSW<<8)+2, 
-01167   XED_IFORM_PSUBUSW_MMXq_MEMq=(XED_ICLASS_PSUBUSW<<8)+3, 
-01168   XED_IFORM_PSUBW_MMXq_MEMq=(XED_ICLASS_PSUBW<<8)+0, 
-01169   XED_IFORM_PSUBW_XMMdq_XMMdq=(XED_ICLASS_PSUBW<<8)+1, 
-01170   XED_IFORM_PSUBW_XMMdq_MEMdq=(XED_ICLASS_PSUBW<<8)+2, 
-01171   XED_IFORM_PSUBW_MMXq_MMXq=(XED_ICLASS_PSUBW<<8)+3, 
-01172   XED_IFORM_PSWAPD_MMXq_MEMq=(XED_ICLASS_PSWAPD<<8)+0, 
-01173   XED_IFORM_PSWAPD_MMXq_MMXq=(XED_ICLASS_PSWAPD<<8)+1, 
-01174   XED_IFORM_PTEST_XMMdq_MEMdq=(XED_ICLASS_PTEST<<8)+0, 
-01175   XED_IFORM_PTEST_XMMdq_XMMdq=(XED_ICLASS_PTEST<<8)+1, 
-01176   XED_IFORM_PUNPCKHBW_XMMdq_XMMq=(XED_ICLASS_PUNPCKHBW<<8)+0, 
-01177   XED_IFORM_PUNPCKHBW_MMXq_MMXd=(XED_ICLASS_PUNPCKHBW<<8)+1, 
-01178   XED_IFORM_PUNPCKHBW_XMMdq_MEMdq=(XED_ICLASS_PUNPCKHBW<<8)+2, 
-01179   XED_IFORM_PUNPCKHBW_MMXq_MEMq=(XED_ICLASS_PUNPCKHBW<<8)+3, 
-01180   XED_IFORM_PUNPCKHDQ_XMMdq_XMMq=(XED_ICLASS_PUNPCKHDQ<<8)+0, 
-01181   XED_IFORM_PUNPCKHDQ_MMXq_MMXd=(XED_ICLASS_PUNPCKHDQ<<8)+1, 
-01182   XED_IFORM_PUNPCKHDQ_XMMdq_MEMdq=(XED_ICLASS_PUNPCKHDQ<<8)+2, 
-01183   XED_IFORM_PUNPCKHDQ_MMXq_MEMq=(XED_ICLASS_PUNPCKHDQ<<8)+3, 
-01184   XED_IFORM_PUNPCKHQDQ_XMMdq_XMMq=(XED_ICLASS_PUNPCKHQDQ<<8)+0, 
-01185   XED_IFORM_PUNPCKHQDQ_XMMdq_MEMdq=(XED_ICLASS_PUNPCKHQDQ<<8)+1, 
-01186   XED_IFORM_PUNPCKHWD_XMMdq_XMMq=(XED_ICLASS_PUNPCKHWD<<8)+0, 
-01187   XED_IFORM_PUNPCKHWD_MMXq_MMXd=(XED_ICLASS_PUNPCKHWD<<8)+1, 
-01188   XED_IFORM_PUNPCKHWD_XMMdq_MEMdq=(XED_ICLASS_PUNPCKHWD<<8)+2, 
-01189   XED_IFORM_PUNPCKHWD_MMXq_MEMq=(XED_ICLASS_PUNPCKHWD<<8)+3, 
-01190   XED_IFORM_PUNPCKLBW_MMXq_MMXd=(XED_ICLASS_PUNPCKLBW<<8)+0, 
-01191   XED_IFORM_PUNPCKLBW_XMMdq_MEMq=(XED_ICLASS_PUNPCKLBW<<8)+1, 
-01192   XED_IFORM_PUNPCKLBW_XMMdq_XMMq=(XED_ICLASS_PUNPCKLBW<<8)+2, 
-01193   XED_IFORM_PUNPCKLBW_MMXq_MEMd=(XED_ICLASS_PUNPCKLBW<<8)+3, 
-01194   XED_IFORM_PUNPCKLDQ_MMXq_MMXd=(XED_ICLASS_PUNPCKLDQ<<8)+0, 
-01195   XED_IFORM_PUNPCKLDQ_XMMdq_MEMq=(XED_ICLASS_PUNPCKLDQ<<8)+1, 
-01196   XED_IFORM_PUNPCKLDQ_XMMdq_XMMq=(XED_ICLASS_PUNPCKLDQ<<8)+2, 
-01197   XED_IFORM_PUNPCKLDQ_MMXq_MEMd=(XED_ICLASS_PUNPCKLDQ<<8)+3, 
-01198   XED_IFORM_PUNPCKLQDQ_XMMdq_XMMq=(XED_ICLASS_PUNPCKLQDQ<<8)+0, 
-01199   XED_IFORM_PUNPCKLQDQ_XMMdq_MEMq=(XED_ICLASS_PUNPCKLQDQ<<8)+1, 
-01200   XED_IFORM_PUNPCKLWD_MMXq_MMXd=(XED_ICLASS_PUNPCKLWD<<8)+0, 
-01201   XED_IFORM_PUNPCKLWD_XMMdq_MEMq=(XED_ICLASS_PUNPCKLWD<<8)+1, 
-01202   XED_IFORM_PUNPCKLWD_XMMdq_XMMq=(XED_ICLASS_PUNPCKLWD<<8)+2, 
-01203   XED_IFORM_PUNPCKLWD_MMXq_MEMd=(XED_ICLASS_PUNPCKLWD<<8)+3, 
-01204   XED_IFORM_PUSH_FS=(XED_ICLASS_PUSH<<8)+0, 
-01205   XED_IFORM_PUSH_SS=(XED_ICLASS_PUSH<<8)+1, 
-01206   XED_IFORM_PUSH_GPRv=(XED_ICLASS_PUSH<<8)+2, 
-01207   XED_IFORM_PUSH_GS=(XED_ICLASS_PUSH<<8)+3, 
-01208   XED_IFORM_PUSH_CS=(XED_ICLASS_PUSH<<8)+4, 
-01209   XED_IFORM_PUSH_MEMv=(XED_ICLASS_PUSH<<8)+5, 
-01210   XED_IFORM_PUSH_ES=(XED_ICLASS_PUSH<<8)+6, 
-01211   XED_IFORM_PUSH_IMM=(XED_ICLASS_PUSH<<8)+7, 
-01212   XED_IFORM_PUSH_DS=(XED_ICLASS_PUSH<<8)+8, 
-01213   XED_IFORM_PUSHA=(XED_ICLASS_PUSHA<<8)+0, 
-01214   XED_IFORM_PUSHAD=(XED_ICLASS_PUSHAD<<8)+0, 
-01215   XED_IFORM_PUSHF=(XED_ICLASS_PUSHF<<8)+0, 
-01216   XED_IFORM_PUSHFD=(XED_ICLASS_PUSHFD<<8)+0, 
-01217   XED_IFORM_PUSHFQ=(XED_ICLASS_PUSHFQ<<8)+0, 
-01218   XED_IFORM_PXOR_XMMdq_MEMdq=(XED_ICLASS_PXOR<<8)+0, 
-01219   XED_IFORM_PXOR_MMXq_MMXq=(XED_ICLASS_PXOR<<8)+1, 
-01220   XED_IFORM_PXOR_MMXq_MEMq=(XED_ICLASS_PXOR<<8)+2, 
-01221   XED_IFORM_PXOR_XMMdq_XMMdq=(XED_ICLASS_PXOR<<8)+3, 
-01222   XED_IFORM_RCL_MEMv_CL=(XED_ICLASS_RCL<<8)+0, 
-01223   XED_IFORM_RCL_MEMb_CL=(XED_ICLASS_RCL<<8)+1, 
-01224   XED_IFORM_RCL_GPRv_CL=(XED_ICLASS_RCL<<8)+2, 
-01225   XED_IFORM_RCL_MEMb_IMM=(XED_ICLASS_RCL<<8)+3, 
-01226   XED_IFORM_RCL_MEMv_ONE=(XED_ICLASS_RCL<<8)+4, 
-01227   XED_IFORM_RCL_GPR8_ONE=(XED_ICLASS_RCL<<8)+5, 
-01228   XED_IFORM_RCL_GPR8_IMM=(XED_ICLASS_RCL<<8)+6, 
-01229   XED_IFORM_RCL_MEMv_IMM=(XED_ICLASS_RCL<<8)+7, 
-01230   XED_IFORM_RCL_MEMb_ONE=(XED_ICLASS_RCL<<8)+8, 
-01231   XED_IFORM_RCL_GPRv_ONE=(XED_ICLASS_RCL<<8)+9, 
-01232   XED_IFORM_RCL_GPRv_IMM=(XED_ICLASS_RCL<<8)+10, 
-01233   XED_IFORM_RCL_GPR8_CL=(XED_ICLASS_RCL<<8)+11, 
-01234   XED_IFORM_RCPPS_XMMps_MEMps=(XED_ICLASS_RCPPS<<8)+0, 
-01235   XED_IFORM_RCPPS_XMMps_XMMps=(XED_ICLASS_RCPPS<<8)+1, 
-01236   XED_IFORM_RCPSS_XMMss_XMMss=(XED_ICLASS_RCPSS<<8)+0, 
-01237   XED_IFORM_RCPSS_XMMss_MEMss=(XED_ICLASS_RCPSS<<8)+1, 
-01238   XED_IFORM_RCR_GPR8_CL=(XED_ICLASS_RCR<<8)+0, 
-01239   XED_IFORM_RCR_MEMv_ONE=(XED_ICLASS_RCR<<8)+1, 
-01240   XED_IFORM_RCR_GPR8_IMM=(XED_ICLASS_RCR<<8)+2, 
-01241   XED_IFORM_RCR_MEMb_ONE=(XED_ICLASS_RCR<<8)+3, 
-01242   XED_IFORM_RCR_GPRv_ONE=(XED_ICLASS_RCR<<8)+4, 
-01243   XED_IFORM_RCR_MEMb_IMM=(XED_ICLASS_RCR<<8)+5, 
-01244   XED_IFORM_RCR_GPR8_ONE=(XED_ICLASS_RCR<<8)+6, 
-01245   XED_IFORM_RCR_MEMv_IMM=(XED_ICLASS_RCR<<8)+7, 
-01246   XED_IFORM_RCR_GPRv_IMM=(XED_ICLASS_RCR<<8)+8, 
-01247   XED_IFORM_RCR_MEMv_CL=(XED_ICLASS_RCR<<8)+9, 
-01248   XED_IFORM_RCR_GPRv_CL=(XED_ICLASS_RCR<<8)+10, 
-01249   XED_IFORM_RCR_MEMb_CL=(XED_ICLASS_RCR<<8)+11, 
-01250   XED_IFORM_RDMSR=(XED_ICLASS_RDMSR<<8)+0, 
-01251   XED_IFORM_RDPMC=(XED_ICLASS_RDPMC<<8)+0, 
-01252   XED_IFORM_RDTSC=(XED_ICLASS_RDTSC<<8)+0, 
-01253   XED_IFORM_RDTSCP=(XED_ICLASS_RDTSCP<<8)+0, 
-01254   XED_IFORM_RET_FAR_IMM=(XED_ICLASS_RET_FAR<<8)+0, 
-01255   XED_IFORM_RET_FAR=(XED_ICLASS_RET_FAR<<8)+1, 
-01256   XED_IFORM_RET_NEAR_IMM=(XED_ICLASS_RET_NEAR<<8)+0, 
-01257   XED_IFORM_RET_NEAR=(XED_ICLASS_RET_NEAR<<8)+1, 
-01258   XED_IFORM_ROL_GPRv_IMM=(XED_ICLASS_ROL<<8)+0, 
-01259   XED_IFORM_ROL_GPR8_ONE=(XED_ICLASS_ROL<<8)+1, 
-01260   XED_IFORM_ROL_MEMv_CL=(XED_ICLASS_ROL<<8)+2, 
-01261   XED_IFORM_ROL_MEMb_IMM=(XED_ICLASS_ROL<<8)+3, 
-01262   XED_IFORM_ROL_MEMv_ONE=(XED_ICLASS_ROL<<8)+4, 
-01263   XED_IFORM_ROL_MEMb_CL=(XED_ICLASS_ROL<<8)+5, 
-01264   XED_IFORM_ROL_GPRv_CL=(XED_ICLASS_ROL<<8)+6, 
-01265   XED_IFORM_ROL_GPR8_CL=(XED_ICLASS_ROL<<8)+7, 
-01266   XED_IFORM_ROL_GPRv_ONE=(XED_ICLASS_ROL<<8)+8, 
-01267   XED_IFORM_ROL_MEMv_IMM=(XED_ICLASS_ROL<<8)+9, 
-01268   XED_IFORM_ROL_MEMb_ONE=(XED_ICLASS_ROL<<8)+10, 
-01269   XED_IFORM_ROL_GPR8_IMM=(XED_ICLASS_ROL<<8)+11, 
-01270   XED_IFORM_ROR_MEMb_ONE=(XED_ICLASS_ROR<<8)+0, 
-01271   XED_IFORM_ROR_MEMv_ONE=(XED_ICLASS_ROR<<8)+1, 
-01272   XED_IFORM_ROR_GPR8_CL=(XED_ICLASS_ROR<<8)+2, 
-01273   XED_IFORM_ROR_MEMv_IMM=(XED_ICLASS_ROR<<8)+3, 
-01274   XED_IFORM_ROR_GPRv_ONE=(XED_ICLASS_ROR<<8)+4, 
-01275   XED_IFORM_ROR_MEMb_IMM=(XED_ICLASS_ROR<<8)+5, 
-01276   XED_IFORM_ROR_GPRv_IMM=(XED_ICLASS_ROR<<8)+6, 
-01277   XED_IFORM_ROR_MEMb_CL=(XED_ICLASS_ROR<<8)+7, 
-01278   XED_IFORM_ROR_GPR8_ONE=(XED_ICLASS_ROR<<8)+8, 
-01279   XED_IFORM_ROR_MEMv_CL=(XED_ICLASS_ROR<<8)+9, 
-01280   XED_IFORM_ROR_GPR8_IMM=(XED_ICLASS_ROR<<8)+10, 
-01281   XED_IFORM_ROR_GPRv_CL=(XED_ICLASS_ROR<<8)+11, 
-01282   XED_IFORM_ROUNDPD_XMMpd_XMMpd_IMM=(XED_ICLASS_ROUNDPD<<8)+0, 
-01283   XED_IFORM_ROUNDPD_XMMpd_MEMpd_IMM=(XED_ICLASS_ROUNDPD<<8)+1, 
-01284   XED_IFORM_ROUNDPS_XMMps_MEMps_IMM=(XED_ICLASS_ROUNDPS<<8)+0, 
-01285   XED_IFORM_ROUNDPS_XMMps_XMMps_IMM=(XED_ICLASS_ROUNDPS<<8)+1, 
-01286   XED_IFORM_ROUNDSD_XMMq_MEMq_IMM=(XED_ICLASS_ROUNDSD<<8)+0, 
-01287   XED_IFORM_ROUNDSD_XMMq_XMMq_IMM=(XED_ICLASS_ROUNDSD<<8)+1, 
-01288   XED_IFORM_ROUNDSS_XMMd_MEMd_IMM=(XED_ICLASS_ROUNDSS<<8)+0, 
-01289   XED_IFORM_ROUNDSS_XMMd_XMMd_IMM=(XED_ICLASS_ROUNDSS<<8)+1, 
-01290   XED_IFORM_RSM=(XED_ICLASS_RSM<<8)+0, 
-01291   XED_IFORM_RSQRTPS_XMMps_XMMps=(XED_ICLASS_RSQRTPS<<8)+0, 
-01292   XED_IFORM_RSQRTPS_XMMps_MEMps=(XED_ICLASS_RSQRTPS<<8)+1, 
-01293   XED_IFORM_RSQRTSS_XMMss_MEMss=(XED_ICLASS_RSQRTSS<<8)+0, 
-01294   XED_IFORM_RSQRTSS_XMMss_XMMss=(XED_ICLASS_RSQRTSS<<8)+1, 
-01295   XED_IFORM_SAHF=(XED_ICLASS_SAHF<<8)+0, 
-01296   XED_IFORM_SALC=(XED_ICLASS_SALC<<8)+0, 
-01297   XED_IFORM_SAR_MEMv_CL=(XED_ICLASS_SAR<<8)+0, 
-01298   XED_IFORM_SAR_GPRv_IMM=(XED_ICLASS_SAR<<8)+1, 
-01299   XED_IFORM_SAR_GPR8_ONE=(XED_ICLASS_SAR<<8)+2, 
-01300   XED_IFORM_SAR_GPR8_IMM=(XED_ICLASS_SAR<<8)+3, 
-01301   XED_IFORM_SAR_MEMv_ONE=(XED_ICLASS_SAR<<8)+4, 
-01302   XED_IFORM_SAR_MEMb_CL=(XED_ICLASS_SAR<<8)+5, 
-01303   XED_IFORM_SAR_MEMb_IMM=(XED_ICLASS_SAR<<8)+6, 
-01304   XED_IFORM_SAR_MEMv_IMM=(XED_ICLASS_SAR<<8)+7, 
-01305   XED_IFORM_SAR_GPR8_CL=(XED_ICLASS_SAR<<8)+8, 
-01306   XED_IFORM_SAR_GPRv_CL=(XED_ICLASS_SAR<<8)+9, 
-01307   XED_IFORM_SAR_GPRv_ONE=(XED_ICLASS_SAR<<8)+10, 
-01308   XED_IFORM_SAR_MEMb_ONE=(XED_ICLASS_SAR<<8)+11, 
-01309   XED_IFORM_SBB_AL_IMM=(XED_ICLASS_SBB<<8)+0, 
-01310   XED_IFORM_SBB_MEMv_GPRv=(XED_ICLASS_SBB<<8)+1, 
-01311   XED_IFORM_SBB_MEMb_IMM=(XED_ICLASS_SBB<<8)+2, 
-01312   XED_IFORM_SBB_GPRv_GPRv=(XED_ICLASS_SBB<<8)+3, 
-01313   XED_IFORM_SBB_OrAX_IMM=(XED_ICLASS_SBB<<8)+4, 
-01314   XED_IFORM_SBB_GPR8_GPR8=(XED_ICLASS_SBB<<8)+5, 
-01315   XED_IFORM_SBB_GPR8_IMM=(XED_ICLASS_SBB<<8)+6, 
-01316   XED_IFORM_SBB_MEMv_IMM=(XED_ICLASS_SBB<<8)+7, 
-01317   XED_IFORM_SBB_MEMb_GPR8=(XED_ICLASS_SBB<<8)+8, 
-01318   XED_IFORM_SBB_GPRv_MEMv=(XED_ICLASS_SBB<<8)+9, 
-01319   XED_IFORM_SBB_GPRv_IMM=(XED_ICLASS_SBB<<8)+10, 
-01320   XED_IFORM_SBB_GPR8_MEMb=(XED_ICLASS_SBB<<8)+11, 
-01321   XED_IFORM_SCASB=(XED_ICLASS_SCASB<<8)+0, 
-01322   XED_IFORM_SCASD=(XED_ICLASS_SCASD<<8)+0, 
-01323   XED_IFORM_SCASQ=(XED_ICLASS_SCASQ<<8)+0, 
-01324   XED_IFORM_SCASW=(XED_ICLASS_SCASW<<8)+0, 
-01325   XED_IFORM_SETB_GPR8=(XED_ICLASS_SETB<<8)+0, 
-01326   XED_IFORM_SETB_MEMb=(XED_ICLASS_SETB<<8)+1, 
-01327   XED_IFORM_SETBE_GPR8=(XED_ICLASS_SETBE<<8)+0, 
-01328   XED_IFORM_SETBE_MEMb=(XED_ICLASS_SETBE<<8)+1, 
-01329   XED_IFORM_SETL_MEMb=(XED_ICLASS_SETL<<8)+0, 
-01330   XED_IFORM_SETL_GPR8=(XED_ICLASS_SETL<<8)+1, 
-01331   XED_IFORM_SETLE_GPR8=(XED_ICLASS_SETLE<<8)+0, 
-01332   XED_IFORM_SETLE_MEMb=(XED_ICLASS_SETLE<<8)+1, 
-01333   XED_IFORM_SETNB_GPR8=(XED_ICLASS_SETNB<<8)+0, 
-01334   XED_IFORM_SETNB_MEMb=(XED_ICLASS_SETNB<<8)+1, 
-01335   XED_IFORM_SETNBE_MEMb=(XED_ICLASS_SETNBE<<8)+0, 
-01336   XED_IFORM_SETNBE_GPR8=(XED_ICLASS_SETNBE<<8)+1, 
-01337   XED_IFORM_SETNL_GPR8=(XED_ICLASS_SETNL<<8)+0, 
-01338   XED_IFORM_SETNL_MEMb=(XED_ICLASS_SETNL<<8)+1, 
-01339   XED_IFORM_SETNLE_MEMb=(XED_ICLASS_SETNLE<<8)+0, 
-01340   XED_IFORM_SETNLE_GPR8=(XED_ICLASS_SETNLE<<8)+1, 
-01341   XED_IFORM_SETNO_MEMb=(XED_ICLASS_SETNO<<8)+0, 
-01342   XED_IFORM_SETNO_GPR8=(XED_ICLASS_SETNO<<8)+1, 
-01343   XED_IFORM_SETNP_MEMb=(XED_ICLASS_SETNP<<8)+0, 
-01344   XED_IFORM_SETNP_GPR8=(XED_ICLASS_SETNP<<8)+1, 
-01345   XED_IFORM_SETNS_GPR8=(XED_ICLASS_SETNS<<8)+0, 
-01346   XED_IFORM_SETNS_MEMb=(XED_ICLASS_SETNS<<8)+1, 
-01347   XED_IFORM_SETNZ_GPR8=(XED_ICLASS_SETNZ<<8)+0, 
-01348   XED_IFORM_SETNZ_MEMb=(XED_ICLASS_SETNZ<<8)+1, 
-01349   XED_IFORM_SETO_MEMb=(XED_ICLASS_SETO<<8)+0, 
-01350   XED_IFORM_SETO_GPR8=(XED_ICLASS_SETO<<8)+1, 
-01351   XED_IFORM_SETP_GPR8=(XED_ICLASS_SETP<<8)+0, 
-01352   XED_IFORM_SETP_MEMb=(XED_ICLASS_SETP<<8)+1, 
-01353   XED_IFORM_SETS_GPR8=(XED_ICLASS_SETS<<8)+0, 
-01354   XED_IFORM_SETS_MEMb=(XED_ICLASS_SETS<<8)+1, 
-01355   XED_IFORM_SETZ_GPR8=(XED_ICLASS_SETZ<<8)+0, 
-01356   XED_IFORM_SETZ_MEMb=(XED_ICLASS_SETZ<<8)+1, 
-01357   XED_IFORM_SFENCE=(XED_ICLASS_SFENCE<<8)+0, 
-01358   XED_IFORM_SGDT_MEMs=(XED_ICLASS_SGDT<<8)+0, 
-01359   XED_IFORM_SHL_MEMv_ONE=(XED_ICLASS_SHL<<8)+0, 
-01360   XED_IFORM_SHL_GPRv_CL=(XED_ICLASS_SHL<<8)+1, 
-01361   XED_IFORM_SHL_MEMb_CL=(XED_ICLASS_SHL<<8)+2, 
-01362   XED_IFORM_SHL_MEMv_IMM=(XED_ICLASS_SHL<<8)+3, 
-01363   XED_IFORM_SHL_GPRv_IMM=(XED_ICLASS_SHL<<8)+4, 
-01364   XED_IFORM_SHL_GPR8_ONE=(XED_ICLASS_SHL<<8)+5, 
-01365   XED_IFORM_SHL_GPRv_ONE=(XED_ICLASS_SHL<<8)+6, 
-01366   XED_IFORM_SHL_MEMb_IMM=(XED_ICLASS_SHL<<8)+7, 
-01367   XED_IFORM_SHL_MEMb_ONE=(XED_ICLASS_SHL<<8)+8, 
-01368   XED_IFORM_SHL_MEMv_CL=(XED_ICLASS_SHL<<8)+9, 
-01369   XED_IFORM_SHL_GPR8_IMM=(XED_ICLASS_SHL<<8)+10, 
-01370   XED_IFORM_SHL_GPR8_CL=(XED_ICLASS_SHL<<8)+11, 
-01371   XED_IFORM_SHLD_GPRv_GPRv_CL=(XED_ICLASS_SHLD<<8)+0, 
-01372   XED_IFORM_SHLD_GPRv_GPRv_IMM=(XED_ICLASS_SHLD<<8)+1, 
-01373   XED_IFORM_SHLD_MEMv_GPRv_IMM=(XED_ICLASS_SHLD<<8)+2, 
-01374   XED_IFORM_SHLD_MEMv_GPRv_CL=(XED_ICLASS_SHLD<<8)+3, 
-01375   XED_IFORM_SHR_MEMb_CL=(XED_ICLASS_SHR<<8)+0, 
-01376   XED_IFORM_SHR_GPR8_CL=(XED_ICLASS_SHR<<8)+1, 
-01377   XED_IFORM_SHR_GPR8_IMM=(XED_ICLASS_SHR<<8)+2, 
-01378   XED_IFORM_SHR_GPRv_CL=(XED_ICLASS_SHR<<8)+3, 
-01379   XED_IFORM_SHR_MEMb_IMM=(XED_ICLASS_SHR<<8)+4, 
-01380   XED_IFORM_SHR_GPRv_IMM=(XED_ICLASS_SHR<<8)+5, 
-01381   XED_IFORM_SHR_MEMv_ONE=(XED_ICLASS_SHR<<8)+6, 
-01382   XED_IFORM_SHR_MEMb_ONE=(XED_ICLASS_SHR<<8)+7, 
-01383   XED_IFORM_SHR_GPR8_ONE=(XED_ICLASS_SHR<<8)+8, 
-01384   XED_IFORM_SHR_GPRv_ONE=(XED_ICLASS_SHR<<8)+9, 
-01385   XED_IFORM_SHR_MEMv_CL=(XED_ICLASS_SHR<<8)+10, 
-01386   XED_IFORM_SHR_MEMv_IMM=(XED_ICLASS_SHR<<8)+11, 
-01387   XED_IFORM_SHRD_MEMv_GPRv_CL=(XED_ICLASS_SHRD<<8)+0, 
-01388   XED_IFORM_SHRD_MEMv_GPRv_IMM=(XED_ICLASS_SHRD<<8)+1, 
-01389   XED_IFORM_SHRD_GPRv_GPRv_CL=(XED_ICLASS_SHRD<<8)+2, 
-01390   XED_IFORM_SHRD_GPRv_GPRv_IMM=(XED_ICLASS_SHRD<<8)+3, 
-01391   XED_IFORM_SHUFPD_XMMpd_MEMpd_IMM=(XED_ICLASS_SHUFPD<<8)+0, 
-01392   XED_IFORM_SHUFPD_XMMpd_XMMpd_IMM=(XED_ICLASS_SHUFPD<<8)+1, 
-01393   XED_IFORM_SHUFPS_XMMps_XMMps_IMM=(XED_ICLASS_SHUFPS<<8)+0, 
-01394   XED_IFORM_SHUFPS_XMMps_MEMps_IMM=(XED_ICLASS_SHUFPS<<8)+1, 
-01395   XED_IFORM_SIDT_MEMs=(XED_ICLASS_SIDT<<8)+0, 
-01396   XED_IFORM_SKINIT_EAX=(XED_ICLASS_SKINIT<<8)+0, 
-01397   XED_IFORM_SLDT_GPRv=(XED_ICLASS_SLDT<<8)+0, 
-01398   XED_IFORM_SLDT_MEMw=(XED_ICLASS_SLDT<<8)+1, 
-01399   XED_IFORM_SMSW_GPRv=(XED_ICLASS_SMSW<<8)+0, 
-01400   XED_IFORM_SMSW_MEMw=(XED_ICLASS_SMSW<<8)+1, 
-01401   XED_IFORM_SQRTPD_XMMpd_XMMpd=(XED_ICLASS_SQRTPD<<8)+0, 
-01402   XED_IFORM_SQRTPD_XMMpd_MEMpd=(XED_ICLASS_SQRTPD<<8)+1, 
-01403   XED_IFORM_SQRTPS_XMMps_MEMps=(XED_ICLASS_SQRTPS<<8)+0, 
-01404   XED_IFORM_SQRTPS_XMMps_XMMps=(XED_ICLASS_SQRTPS<<8)+1, 
-01405   XED_IFORM_SQRTSD_XMMsd_MEMsd=(XED_ICLASS_SQRTSD<<8)+0, 
-01406   XED_IFORM_SQRTSD_XMMsd_XMMsd=(XED_ICLASS_SQRTSD<<8)+1, 
-01407   XED_IFORM_SQRTSS_XMMss_XMMss=(XED_ICLASS_SQRTSS<<8)+0, 
-01408   XED_IFORM_SQRTSS_XMMss_MEMss=(XED_ICLASS_SQRTSS<<8)+1, 
-01409   XED_IFORM_STC=(XED_ICLASS_STC<<8)+0, 
-01410   XED_IFORM_STD=(XED_ICLASS_STD<<8)+0, 
-01411   XED_IFORM_STGI=(XED_ICLASS_STGI<<8)+0, 
-01412   XED_IFORM_STI=(XED_ICLASS_STI<<8)+0, 
-01413   XED_IFORM_STMXCSR_MEMd=(XED_ICLASS_STMXCSR<<8)+0, 
-01414   XED_IFORM_STOSB=(XED_ICLASS_STOSB<<8)+0, 
-01415   XED_IFORM_STOSD=(XED_ICLASS_STOSD<<8)+0, 
-01416   XED_IFORM_STOSQ=(XED_ICLASS_STOSQ<<8)+0, 
-01417   XED_IFORM_STOSW=(XED_ICLASS_STOSW<<8)+0, 
-01418   XED_IFORM_STR_GPRv=(XED_ICLASS_STR<<8)+0, 
-01419   XED_IFORM_STR_MEMw=(XED_ICLASS_STR<<8)+1, 
-01420   XED_IFORM_SUB_MEMv_IMM=(XED_ICLASS_SUB<<8)+0, 
-01421   XED_IFORM_SUB_GPRv_IMM=(XED_ICLASS_SUB<<8)+1, 
-01422   XED_IFORM_SUB_MEMb_GPR8=(XED_ICLASS_SUB<<8)+2, 
-01423   XED_IFORM_SUB_MEMb_IMM=(XED_ICLASS_SUB<<8)+3, 
-01424   XED_IFORM_SUB_OrAX_IMM=(XED_ICLASS_SUB<<8)+4, 
-01425   XED_IFORM_SUB_GPR8_GPR8=(XED_ICLASS_SUB<<8)+5, 
-01426   XED_IFORM_SUB_MEMv_GPRv=(XED_ICLASS_SUB<<8)+6, 
-01427   XED_IFORM_SUB_GPRv_GPRv=(XED_ICLASS_SUB<<8)+7, 
-01428   XED_IFORM_SUB_GPR8_MEMb=(XED_ICLASS_SUB<<8)+8, 
-01429   XED_IFORM_SUB_AL_IMM=(XED_ICLASS_SUB<<8)+9, 
-01430   XED_IFORM_SUB_GPR8_IMM=(XED_ICLASS_SUB<<8)+10, 
-01431   XED_IFORM_SUB_GPRv_MEMv=(XED_ICLASS_SUB<<8)+11, 
-01432   XED_IFORM_SUBPD_XMMpd_MEMpd=(XED_ICLASS_SUBPD<<8)+0, 
-01433   XED_IFORM_SUBPD_XMMpd_XMMpd=(XED_ICLASS_SUBPD<<8)+1, 
-01434   XED_IFORM_SUBPS_XMMps_XMMps=(XED_ICLASS_SUBPS<<8)+0, 
-01435   XED_IFORM_SUBPS_XMMps_MEMps=(XED_ICLASS_SUBPS<<8)+1, 
-01436   XED_IFORM_SUBSD_XMMsd_XMMsd=(XED_ICLASS_SUBSD<<8)+0, 
-01437   XED_IFORM_SUBSD_XMMsd_MEMsd=(XED_ICLASS_SUBSD<<8)+1, 
-01438   XED_IFORM_SUBSS_XMMss_MEMss=(XED_ICLASS_SUBSS<<8)+0, 
-01439   XED_IFORM_SUBSS_XMMss_XMMss=(XED_ICLASS_SUBSS<<8)+1, 
-01440   XED_IFORM_SWAPGS=(XED_ICLASS_SWAPGS<<8)+0, 
-01441   XED_IFORM_SYSCALL=(XED_ICLASS_SYSCALL<<8)+0, 
-01442   XED_IFORM_SYSENTER=(XED_ICLASS_SYSENTER<<8)+0, 
-01443   XED_IFORM_SYSEXIT=(XED_ICLASS_SYSEXIT<<8)+0, 
-01444   XED_IFORM_SYSRET=(XED_ICLASS_SYSRET<<8)+0, 
-01445   XED_IFORM_TEST_OrAX_IMM=(XED_ICLASS_TEST<<8)+0, 
-01446   XED_IFORM_TEST_MEMv_GPRv=(XED_ICLASS_TEST<<8)+1, 
-01447   XED_IFORM_TEST_AL_IMM=(XED_ICLASS_TEST<<8)+2, 
-01448   XED_IFORM_TEST_GPRv_GPRv=(XED_ICLASS_TEST<<8)+3, 
-01449   XED_IFORM_TEST_MEMb_IMM=(XED_ICLASS_TEST<<8)+4, 
-01450   XED_IFORM_TEST_GPR8_GPR8=(XED_ICLASS_TEST<<8)+5, 
-01451   XED_IFORM_TEST_MEMb_GPR8=(XED_ICLASS_TEST<<8)+6, 
-01452   XED_IFORM_TEST_GPR8_IMM=(XED_ICLASS_TEST<<8)+7, 
-01453   XED_IFORM_TEST_GPRv_IMM=(XED_ICLASS_TEST<<8)+8, 
-01454   XED_IFORM_TEST_MEMv_IMM=(XED_ICLASS_TEST<<8)+9, 
-01455   XED_IFORM_UCOMISD_XMMsd_MEMsd=(XED_ICLASS_UCOMISD<<8)+0, 
-01456   XED_IFORM_UCOMISD_XMMsd_XMMsd=(XED_ICLASS_UCOMISD<<8)+1, 
-01457   XED_IFORM_UCOMISS_XMMss_XMMss=(XED_ICLASS_UCOMISS<<8)+0, 
-01458   XED_IFORM_UCOMISS_XMMss_MEMss=(XED_ICLASS_UCOMISS<<8)+1, 
-01459   XED_IFORM_UD2=(XED_ICLASS_UD2<<8)+0, 
-01460   XED_IFORM_UNPCKHPD_XMMpd_MEMdq=(XED_ICLASS_UNPCKHPD<<8)+0, 
-01461   XED_IFORM_UNPCKHPD_XMMpd_XMMq=(XED_ICLASS_UNPCKHPD<<8)+1, 
-01462   XED_IFORM_UNPCKHPS_XMMps_XMMdq=(XED_ICLASS_UNPCKHPS<<8)+0, 
-01463   XED_IFORM_UNPCKHPS_XMMps_MEMdq=(XED_ICLASS_UNPCKHPS<<8)+1, 
-01464   XED_IFORM_UNPCKLPD_XMMpd_MEMq=(XED_ICLASS_UNPCKLPD<<8)+0, 
-01465   XED_IFORM_UNPCKLPD_XMMpd_XMMq=(XED_ICLASS_UNPCKLPD<<8)+1, 
-01466   XED_IFORM_UNPCKLPS_XMMps_XMMq=(XED_ICLASS_UNPCKLPS<<8)+0, 
-01467   XED_IFORM_UNPCKLPS_XMMps_MEMq=(XED_ICLASS_UNPCKLPS<<8)+1, 
-01468   XED_IFORM_VERR_GPR16=(XED_ICLASS_VERR<<8)+0, 
-01469   XED_IFORM_VERR_MEMw=(XED_ICLASS_VERR<<8)+1, 
-01470   XED_IFORM_VERW_GPR16=(XED_ICLASS_VERW<<8)+0, 
-01471   XED_IFORM_VERW_MEMw=(XED_ICLASS_VERW<<8)+1, 
-01472   XED_IFORM_VMCALL=(XED_ICLASS_VMCALL<<8)+0, 
-01473   XED_IFORM_VMCLEAR_MEMq=(XED_ICLASS_VMCLEAR<<8)+0, 
-01474   XED_IFORM_VMLAUNCH=(XED_ICLASS_VMLAUNCH<<8)+0, 
-01475   XED_IFORM_VMLOAD_OrAX=(XED_ICLASS_VMLOAD<<8)+0, 
-01476   XED_IFORM_VMMCALL=(XED_ICLASS_VMMCALL<<8)+0, 
-01477   XED_IFORM_VMPTRLD_MEMq=(XED_ICLASS_VMPTRLD<<8)+0, 
-01478   XED_IFORM_VMPTRST_MEMq=(XED_ICLASS_VMPTRST<<8)+0, 
-01479   XED_IFORM_VMREAD_MEMq_GPR64=(XED_ICLASS_VMREAD<<8)+0, 
-01480   XED_IFORM_VMREAD_GPR32_GPR32=(XED_ICLASS_VMREAD<<8)+1, 
-01481   XED_IFORM_VMREAD_MEMd_GPR32=(XED_ICLASS_VMREAD<<8)+2, 
-01482   XED_IFORM_VMREAD_GPR64_GPR64=(XED_ICLASS_VMREAD<<8)+3, 
-01483   XED_IFORM_VMRESUME=(XED_ICLASS_VMRESUME<<8)+0, 
-01484   XED_IFORM_VMRUN_OrAX=(XED_ICLASS_VMRUN<<8)+0, 
-01485   XED_IFORM_VMSAVE=(XED_ICLASS_VMSAVE<<8)+0, 
-01486   XED_IFORM_VMWRITE_GPR64_MEMq=(XED_ICLASS_VMWRITE<<8)+0, 
-01487   XED_IFORM_VMWRITE_GPR32_GPR32=(XED_ICLASS_VMWRITE<<8)+1, 
-01488   XED_IFORM_VMWRITE_GPR32_MEMd=(XED_ICLASS_VMWRITE<<8)+2, 
-01489   XED_IFORM_VMWRITE_GPR64_GPR64=(XED_ICLASS_VMWRITE<<8)+3, 
-01490   XED_IFORM_VMXOFF=(XED_ICLASS_VMXOFF<<8)+0, 
-01491   XED_IFORM_VMXON_MEMq=(XED_ICLASS_VMXON<<8)+0, 
-01492   XED_IFORM_WBINVD=(XED_ICLASS_WBINVD<<8)+0, 
-01493   XED_IFORM_WRMSR=(XED_ICLASS_WRMSR<<8)+0, 
-01494   XED_IFORM_XADD_GPRv_GPRv=(XED_ICLASS_XADD<<8)+0, 
-01495   XED_IFORM_XADD_GPR8_GPR8=(XED_ICLASS_XADD<<8)+1, 
-01496   XED_IFORM_XADD_MEMv_GPRv=(XED_ICLASS_XADD<<8)+2, 
-01497   XED_IFORM_XADD_MEMb_GPR8=(XED_ICLASS_XADD<<8)+3, 
-01498   XED_IFORM_XCHG_GPR8_GPR8=(XED_ICLASS_XCHG<<8)+0, 
-01499   XED_IFORM_XCHG_MEMv_GPRv=(XED_ICLASS_XCHG<<8)+1, 
-01500   XED_IFORM_XCHG_GPRv_GPRv=(XED_ICLASS_XCHG<<8)+2, 
-01501   XED_IFORM_XCHG_MEMb_GPR8=(XED_ICLASS_XCHG<<8)+3, 
-01502   XED_IFORM_XCHG_GPRv_OrAX=(XED_ICLASS_XCHG<<8)+4, 
-01503   XED_IFORM_XGETBV=(XED_ICLASS_XGETBV<<8)+0, 
-01504   XED_IFORM_XLAT_FINAL_DSEG=(XED_ICLASS_XLAT<<8)+0, 
-01505   XED_IFORM_XLAT=(XED_ICLASS_XLAT<<8)+1, 
-01506   XED_IFORM_XOR_GPRv_IMM=(XED_ICLASS_XOR<<8)+0, 
-01507   XED_IFORM_XOR_MEMv_GPRv=(XED_ICLASS_XOR<<8)+1, 
-01508   XED_IFORM_XOR_MEMb_IMM=(XED_ICLASS_XOR<<8)+2, 
-01509   XED_IFORM_XOR_GPR8_MEMb=(XED_ICLASS_XOR<<8)+3, 
-01510   XED_IFORM_XOR_MEMb_GPR8=(XED_ICLASS_XOR<<8)+4, 
-01511   XED_IFORM_XOR_GPRv_MEMv=(XED_ICLASS_XOR<<8)+5, 
-01512   XED_IFORM_XOR_AL_IMM=(XED_ICLASS_XOR<<8)+6, 
-01513   XED_IFORM_XOR_GPRv_GPRv=(XED_ICLASS_XOR<<8)+7, 
-01514   XED_IFORM_XOR_MEMv_IMM=(XED_ICLASS_XOR<<8)+8, 
-01515   XED_IFORM_XOR_OrAX_IMM=(XED_ICLASS_XOR<<8)+9, 
-01516   XED_IFORM_XOR_GPR8_GPR8=(XED_ICLASS_XOR<<8)+10, 
-01517   XED_IFORM_XOR_GPR8_IMM=(XED_ICLASS_XOR<<8)+11, 
-01518   XED_IFORM_XORPD_XMMpd_XMMpd=(XED_ICLASS_XORPD<<8)+0, 
-01519   XED_IFORM_XORPD_XMMpd_MEMpd=(XED_ICLASS_XORPD<<8)+1, 
-01520   XED_IFORM_XORPS_XMMps_MEMps=(XED_ICLASS_XORPS<<8)+0, 
-01521   XED_IFORM_XORPS_XMMps_XMMps=(XED_ICLASS_XORPS<<8)+1, 
-01522   XED_IFORM_XRSTOR_MEMmxsave=(XED_ICLASS_XRSTOR<<8)+0, 
-01523   XED_IFORM_XSAVE_MEMmxsave=(XED_ICLASS_XSAVE<<8)+0, 
-01524   XED_IFORM_XSETBV=(XED_ICLASS_XSETBV<<8)+0, 
-01525   XED_IFORM_LAST
-01526 } xed_iform_enum_t;
-01527 
-01528 XED_DLL_EXPORT xed_iform_enum_t
-01529 str2xed_iform_enum_t(const char* s);
-01530 XED_DLL_EXPORT const char*
-01531 xed_iform_enum_t2str(const xed_iform_enum_t p);
-01532 
-01533 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-iform-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-iform-enum_8h.html deleted file mode 100644 index 84e341c..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-iform-enum_8h.html +++ /dev/null @@ -1,6100 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-iform-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-iform-enum.h. -

-#include "xed-common-hdrs.h"
-#include "xed-iclass-enum.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_IFORM_ENUM_H_

Enumerations

enum  xed_iform_enum_t {
-  XED_IFORM_INVALID = 0, -
-  XED_IFORM_AAA = (XED_ICLASS_AAA<<8)+0, -
-  XED_IFORM_AAD_IMM = (XED_ICLASS_AAD<<8)+0, -
-  XED_IFORM_AAM_IMM = (XED_ICLASS_AAM<<8)+0, -
-  XED_IFORM_AAS = (XED_ICLASS_AAS<<8)+0, -
-  XED_IFORM_ADC_MEMv_GPRv = (XED_ICLASS_ADC<<8)+0, -
-  XED_IFORM_ADC_GPRv_GPRv = (XED_ICLASS_ADC<<8)+1, -
-  XED_IFORM_ADC_GPR8_MEMb = (XED_ICLASS_ADC<<8)+2, -
-  XED_IFORM_ADC_AL_IMM = (XED_ICLASS_ADC<<8)+3, -
-  XED_IFORM_ADC_GPR8_IMM = (XED_ICLASS_ADC<<8)+4, -
-  XED_IFORM_ADC_GPRv_MEMv = (XED_ICLASS_ADC<<8)+5, -
-  XED_IFORM_ADC_OrAX_IMM = (XED_ICLASS_ADC<<8)+6, -
-  XED_IFORM_ADC_MEMv_IMM = (XED_ICLASS_ADC<<8)+7, -
-  XED_IFORM_ADC_GPRv_IMM = (XED_ICLASS_ADC<<8)+8, -
-  XED_IFORM_ADC_MEMb_GPR8 = (XED_ICLASS_ADC<<8)+9, -
-  XED_IFORM_ADC_MEMb_IMM = (XED_ICLASS_ADC<<8)+10, -
-  XED_IFORM_ADC_GPR8_GPR8 = (XED_ICLASS_ADC<<8)+11, -
-  XED_IFORM_ADD_GPR8_MEMb = (XED_ICLASS_ADD<<8)+0, -
-  XED_IFORM_ADD_OrAX_IMM = (XED_ICLASS_ADD<<8)+1, -
-  XED_IFORM_ADD_AL_IMM = (XED_ICLASS_ADD<<8)+2, -
-  XED_IFORM_ADD_GPRv_GPRv = (XED_ICLASS_ADD<<8)+3, -
-  XED_IFORM_ADD_MEMv_GPRv = (XED_ICLASS_ADD<<8)+4, -
-  XED_IFORM_ADD_GPR8_GPR8 = (XED_ICLASS_ADD<<8)+5, -
-  XED_IFORM_ADD_GPRv_MEMv = (XED_ICLASS_ADD<<8)+6, -
-  XED_IFORM_ADD_GPR8_IMM = (XED_ICLASS_ADD<<8)+7, -
-  XED_IFORM_ADD_MEMb_IMM = (XED_ICLASS_ADD<<8)+8, -
-  XED_IFORM_ADD_GPRv_IMM = (XED_ICLASS_ADD<<8)+9, -
-  XED_IFORM_ADD_MEMb_GPR8 = (XED_ICLASS_ADD<<8)+10, -
-  XED_IFORM_ADD_MEMv_IMM = (XED_ICLASS_ADD<<8)+11, -
-  XED_IFORM_ADDPD_XMMpd_XMMpd = (XED_ICLASS_ADDPD<<8)+0, -
-  XED_IFORM_ADDPD_XMMpd_MEMpd = (XED_ICLASS_ADDPD<<8)+1, -
-  XED_IFORM_ADDPS_XMMps_MEMps = (XED_ICLASS_ADDPS<<8)+0, -
-  XED_IFORM_ADDPS_XMMps_XMMps = (XED_ICLASS_ADDPS<<8)+1, -
-  XED_IFORM_ADDSD_XMMsd_MEMsd = (XED_ICLASS_ADDSD<<8)+0, -
-  XED_IFORM_ADDSD_XMMsd_XMMsd = (XED_ICLASS_ADDSD<<8)+1, -
-  XED_IFORM_ADDSS_XMMss_XMMss = (XED_ICLASS_ADDSS<<8)+0, -
-  XED_IFORM_ADDSS_XMMss_MEMss = (XED_ICLASS_ADDSS<<8)+1, -
-  XED_IFORM_ADDSUBPD_XMMpd_MEMpd = (XED_ICLASS_ADDSUBPD<<8)+0, -
-  XED_IFORM_ADDSUBPD_XMMpd_XMMpd = (XED_ICLASS_ADDSUBPD<<8)+1, -
-  XED_IFORM_ADDSUBPS_XMMps_XMMps = (XED_ICLASS_ADDSUBPS<<8)+0, -
-  XED_IFORM_ADDSUBPS_XMMps_MEMps = (XED_ICLASS_ADDSUBPS<<8)+1, -
-  XED_IFORM_AND_OrAX_IMM = (XED_ICLASS_AND<<8)+0, -
-  XED_IFORM_AND_GPR8_GPR8 = (XED_ICLASS_AND<<8)+1, -
-  XED_IFORM_AND_GPR8_IMM = (XED_ICLASS_AND<<8)+2, -
-  XED_IFORM_AND_MEMv_IMM = (XED_ICLASS_AND<<8)+3, -
-  XED_IFORM_AND_MEMb_GPR8 = (XED_ICLASS_AND<<8)+4, -
-  XED_IFORM_AND_GPRv_MEMv = (XED_ICLASS_AND<<8)+5, -
-  XED_IFORM_AND_GPRv_IMM = (XED_ICLASS_AND<<8)+6, -
-  XED_IFORM_AND_GPR8_MEMb = (XED_ICLASS_AND<<8)+7, -
-  XED_IFORM_AND_AL_IMM = (XED_ICLASS_AND<<8)+8, -
-  XED_IFORM_AND_MEMv_GPRv = (XED_ICLASS_AND<<8)+9, -
-  XED_IFORM_AND_MEMb_IMM = (XED_ICLASS_AND<<8)+10, -
-  XED_IFORM_AND_GPRv_GPRv = (XED_ICLASS_AND<<8)+11, -
-  XED_IFORM_ANDNPD_XMMpd_MEMpd = (XED_ICLASS_ANDNPD<<8)+0, -
-  XED_IFORM_ANDNPD_XMMpd_XMMpd = (XED_ICLASS_ANDNPD<<8)+1, -
-  XED_IFORM_ANDNPS_XMMps_XMMps = (XED_ICLASS_ANDNPS<<8)+0, -
-  XED_IFORM_ANDNPS_XMMps_MEMps = (XED_ICLASS_ANDNPS<<8)+1, -
-  XED_IFORM_ANDPD_XMMpd_XMMpd = (XED_ICLASS_ANDPD<<8)+0, -
-  XED_IFORM_ANDPD_XMMpd_MEMpd = (XED_ICLASS_ANDPD<<8)+1, -
-  XED_IFORM_ANDPS_XMMps_MEMps = (XED_ICLASS_ANDPS<<8)+0, -
-  XED_IFORM_ANDPS_XMMps_XMMps = (XED_ICLASS_ANDPS<<8)+1, -
-  XED_IFORM_ARPL_GPR16_GPR16 = (XED_ICLASS_ARPL<<8)+0, -
-  XED_IFORM_ARPL_MEMw_GPR16 = (XED_ICLASS_ARPL<<8)+1, -
-  XED_IFORM_BLENDPD_XMMdq_XMMdq_IMM = (XED_ICLASS_BLENDPD<<8)+0, -
-  XED_IFORM_BLENDPD_XMMdq_MEMdq_IMM = (XED_ICLASS_BLENDPD<<8)+1, -
-  XED_IFORM_BLENDPS_XMMdq_XMMdq_IMM = (XED_ICLASS_BLENDPS<<8)+0, -
-  XED_IFORM_BLENDPS_XMMdq_MEMdq_IMM = (XED_ICLASS_BLENDPS<<8)+1, -
-  XED_IFORM_BLENDVPD_XMMdq_XMMdq_XMM0dq = (XED_ICLASS_BLENDVPD<<8)+0, -
-  XED_IFORM_BLENDVPD_XMMdq_MEMdq_XMM0dq = (XED_ICLASS_BLENDVPD<<8)+1, -
-  XED_IFORM_BLENDVPS_XMMdq_XMMdq_XMM0dq = (XED_ICLASS_BLENDVPS<<8)+0, -
-  XED_IFORM_BLENDVPS_XMMdq_MEMdq_XMM0dq = (XED_ICLASS_BLENDVPS<<8)+1, -
-  XED_IFORM_BOUND_GPRv_MEMa = (XED_ICLASS_BOUND<<8)+0, -
-  XED_IFORM_BSF_GPRv_MEMv = (XED_ICLASS_BSF<<8)+0, -
-  XED_IFORM_BSF_GPRv_GPRv = (XED_ICLASS_BSF<<8)+1, -
-  XED_IFORM_BSR_GPRv_GPRv = (XED_ICLASS_BSR<<8)+0, -
-  XED_IFORM_BSR_GPRv_MEMv = (XED_ICLASS_BSR<<8)+1, -
-  XED_IFORM_BSWAP_GPRv = (XED_ICLASS_BSWAP<<8)+0, -
-  XED_IFORM_BT_GPRv_IMM = (XED_ICLASS_BT<<8)+0, -
-  XED_IFORM_BT_MEMv_IMM = (XED_ICLASS_BT<<8)+1, -
-  XED_IFORM_BT_MEMv_GPRv = (XED_ICLASS_BT<<8)+2, -
-  XED_IFORM_BT_GPRv_GPRv = (XED_ICLASS_BT<<8)+3, -
-  XED_IFORM_BTC_GPRv_GPRv = (XED_ICLASS_BTC<<8)+0, -
-  XED_IFORM_BTC_MEMv_IMM = (XED_ICLASS_BTC<<8)+1, -
-  XED_IFORM_BTC_MEMv_GPRv = (XED_ICLASS_BTC<<8)+2, -
-  XED_IFORM_BTC_GPRv_IMM = (XED_ICLASS_BTC<<8)+3, -
-  XED_IFORM_BTR_GPRv_IMM = (XED_ICLASS_BTR<<8)+0, -
-  XED_IFORM_BTR_GPRv_GPRv = (XED_ICLASS_BTR<<8)+1, -
-  XED_IFORM_BTR_MEMv_IMM = (XED_ICLASS_BTR<<8)+2, -
-  XED_IFORM_BTR_MEMv_GPRv = (XED_ICLASS_BTR<<8)+3, -
-  XED_IFORM_BTS_GPRv_GPRv = (XED_ICLASS_BTS<<8)+0, -
-  XED_IFORM_BTS_MEMv_IMM = (XED_ICLASS_BTS<<8)+1, -
-  XED_IFORM_BTS_MEMv_GPRv = (XED_ICLASS_BTS<<8)+2, -
-  XED_IFORM_BTS_GPRv_IMM = (XED_ICLASS_BTS<<8)+3, -
-  XED_IFORM_CALL_FAR_MEMp = (XED_ICLASS_CALL_FAR<<8)+0, -
-  XED_IFORM_CALL_FAR_PTR_IMM = (XED_ICLASS_CALL_FAR<<8)+1, -
-  XED_IFORM_CALL_NEAR_MEMv = (XED_ICLASS_CALL_NEAR<<8)+0, -
-  XED_IFORM_CALL_NEAR_RELBR = (XED_ICLASS_CALL_NEAR<<8)+1, -
-  XED_IFORM_CALL_NEAR_GPRv = (XED_ICLASS_CALL_NEAR<<8)+2, -
-  XED_IFORM_CBW = (XED_ICLASS_CBW<<8)+0, -
-  XED_IFORM_CDQ = (XED_ICLASS_CDQ<<8)+0, -
-  XED_IFORM_CDQE = (XED_ICLASS_CDQE<<8)+0, -
-  XED_IFORM_CLC = (XED_ICLASS_CLC<<8)+0, -
-  XED_IFORM_CLD = (XED_ICLASS_CLD<<8)+0, -
-  XED_IFORM_CLFLUSH_MEMb = (XED_ICLASS_CLFLUSH<<8)+0, -
-  XED_IFORM_CLGI = (XED_ICLASS_CLGI<<8)+0, -
-  XED_IFORM_CLI = (XED_ICLASS_CLI<<8)+0, -
-  XED_IFORM_CLTS = (XED_ICLASS_CLTS<<8)+0, -
-  XED_IFORM_CMC = (XED_ICLASS_CMC<<8)+0, -
-  XED_IFORM_CMOVB_GPRv_GPRv = (XED_ICLASS_CMOVB<<8)+0, -
-  XED_IFORM_CMOVB_GPRv_MEMv = (XED_ICLASS_CMOVB<<8)+1, -
-  XED_IFORM_CMOVBE_GPRv_GPRv = (XED_ICLASS_CMOVBE<<8)+0, -
-  XED_IFORM_CMOVBE_GPRv_MEMv = (XED_ICLASS_CMOVBE<<8)+1, -
-  XED_IFORM_CMOVL_GPRv_MEMv = (XED_ICLASS_CMOVL<<8)+0, -
-  XED_IFORM_CMOVL_GPRv_GPRv = (XED_ICLASS_CMOVL<<8)+1, -
-  XED_IFORM_CMOVLE_GPRv_MEMv = (XED_ICLASS_CMOVLE<<8)+0, -
-  XED_IFORM_CMOVLE_GPRv_GPRv = (XED_ICLASS_CMOVLE<<8)+1, -
-  XED_IFORM_CMOVNB_GPRv_MEMv = (XED_ICLASS_CMOVNB<<8)+0, -
-  XED_IFORM_CMOVNB_GPRv_GPRv = (XED_ICLASS_CMOVNB<<8)+1, -
-  XED_IFORM_CMOVNBE_GPRv_GPRv = (XED_ICLASS_CMOVNBE<<8)+0, -
-  XED_IFORM_CMOVNBE_GPRv_MEMv = (XED_ICLASS_CMOVNBE<<8)+1, -
-  XED_IFORM_CMOVNL_GPRv_MEMv = (XED_ICLASS_CMOVNL<<8)+0, -
-  XED_IFORM_CMOVNL_GPRv_GPRv = (XED_ICLASS_CMOVNL<<8)+1, -
-  XED_IFORM_CMOVNLE_GPRv_GPRv = (XED_ICLASS_CMOVNLE<<8)+0, -
-  XED_IFORM_CMOVNLE_GPRv_MEMv = (XED_ICLASS_CMOVNLE<<8)+1, -
-  XED_IFORM_CMOVNO_GPRv_MEMv = (XED_ICLASS_CMOVNO<<8)+0, -
-  XED_IFORM_CMOVNO_GPRv_GPRv = (XED_ICLASS_CMOVNO<<8)+1, -
-  XED_IFORM_CMOVNP_GPRv_GPRv = (XED_ICLASS_CMOVNP<<8)+0, -
-  XED_IFORM_CMOVNP_GPRv_MEMv = (XED_ICLASS_CMOVNP<<8)+1, -
-  XED_IFORM_CMOVNS_GPRv_GPRv = (XED_ICLASS_CMOVNS<<8)+0, -
-  XED_IFORM_CMOVNS_GPRv_MEMv = (XED_ICLASS_CMOVNS<<8)+1, -
-  XED_IFORM_CMOVNZ_GPRv_MEMv = (XED_ICLASS_CMOVNZ<<8)+0, -
-  XED_IFORM_CMOVNZ_GPRv_GPRv = (XED_ICLASS_CMOVNZ<<8)+1, -
-  XED_IFORM_CMOVO_GPRv_MEMv = (XED_ICLASS_CMOVO<<8)+0, -
-  XED_IFORM_CMOVO_GPRv_GPRv = (XED_ICLASS_CMOVO<<8)+1, -
-  XED_IFORM_CMOVP_GPRv_GPRv = (XED_ICLASS_CMOVP<<8)+0, -
-  XED_IFORM_CMOVP_GPRv_MEMv = (XED_ICLASS_CMOVP<<8)+1, -
-  XED_IFORM_CMOVS_GPRv_GPRv = (XED_ICLASS_CMOVS<<8)+0, -
-  XED_IFORM_CMOVS_GPRv_MEMv = (XED_ICLASS_CMOVS<<8)+1, -
-  XED_IFORM_CMOVZ_GPRv_GPRv = (XED_ICLASS_CMOVZ<<8)+0, -
-  XED_IFORM_CMOVZ_GPRv_MEMv = (XED_ICLASS_CMOVZ<<8)+1, -
-  XED_IFORM_CMP_OrAX_IMM = (XED_ICLASS_CMP<<8)+0, -
-  XED_IFORM_CMP_MEMv_GPRv = (XED_ICLASS_CMP<<8)+1, -
-  XED_IFORM_CMP_AL_IMM = (XED_ICLASS_CMP<<8)+2, -
-  XED_IFORM_CMP_GPRv_GPRv = (XED_ICLASS_CMP<<8)+3, -
-  XED_IFORM_CMP_MEMb_IMM = (XED_ICLASS_CMP<<8)+4, -
-  XED_IFORM_CMP_GPR8_GPR8 = (XED_ICLASS_CMP<<8)+5, -
-  XED_IFORM_CMP_MEMb_GPR8 = (XED_ICLASS_CMP<<8)+6, -
-  XED_IFORM_CMP_GPR8_IMM = (XED_ICLASS_CMP<<8)+7, -
-  XED_IFORM_CMP_GPRv_IMM = (XED_ICLASS_CMP<<8)+8, -
-  XED_IFORM_CMP_GPRv_MEMv = (XED_ICLASS_CMP<<8)+9, -
-  XED_IFORM_CMP_GPR8_MEMb = (XED_ICLASS_CMP<<8)+10, -
-  XED_IFORM_CMP_MEMv_IMM = (XED_ICLASS_CMP<<8)+11, -
-  XED_IFORM_CMPPD_XMMpd_MEMpd_IMM = (XED_ICLASS_CMPPD<<8)+0, -
-  XED_IFORM_CMPPD_XMMpd_XMMpd_IMM = (XED_ICLASS_CMPPD<<8)+1, -
-  XED_IFORM_CMPPS_XMMps_XMMps_IMM = (XED_ICLASS_CMPPS<<8)+0, -
-  XED_IFORM_CMPPS_XMMps_MEMps_IMM = (XED_ICLASS_CMPPS<<8)+1, -
-  XED_IFORM_CMPSB = (XED_ICLASS_CMPSB<<8)+0, -
-  XED_IFORM_CMPSD = (XED_ICLASS_CMPSD<<8)+0, -
-  XED_IFORM_CMPSD_XMM_XMMsd_MEMsd_IMM = (XED_ICLASS_CMPSD_XMM<<8)+0, -
-  XED_IFORM_CMPSD_XMM_XMMsd_XMMsd_IMM = (XED_ICLASS_CMPSD_XMM<<8)+1, -
-  XED_IFORM_CMPSQ = (XED_ICLASS_CMPSQ<<8)+0, -
-  XED_IFORM_CMPSS_XMMss_XMMss_IMM = (XED_ICLASS_CMPSS<<8)+0, -
-  XED_IFORM_CMPSS_XMMss_MEMss_IMM = (XED_ICLASS_CMPSS<<8)+1, -
-  XED_IFORM_CMPSW = (XED_ICLASS_CMPSW<<8)+0, -
-  XED_IFORM_CMPXCHG_GPR8_GPR8 = (XED_ICLASS_CMPXCHG<<8)+0, -
-  XED_IFORM_CMPXCHG_MEMv_GPRv = (XED_ICLASS_CMPXCHG<<8)+1, -
-  XED_IFORM_CMPXCHG_MEMb_GPR8 = (XED_ICLASS_CMPXCHG<<8)+2, -
-  XED_IFORM_CMPXCHG_GPRv_GPRv = (XED_ICLASS_CMPXCHG<<8)+3, -
-  XED_IFORM_CMPXCHG16B_MEMdq = (XED_ICLASS_CMPXCHG16B<<8)+0, -
-  XED_IFORM_CMPXCHG8B_MEMq = (XED_ICLASS_CMPXCHG8B<<8)+0, -
-  XED_IFORM_COMISD_XMMsd_MEMsd = (XED_ICLASS_COMISD<<8)+0, -
-  XED_IFORM_COMISD_XMMsd_XMMsd = (XED_ICLASS_COMISD<<8)+1, -
-  XED_IFORM_COMISS_XMMss_XMMss = (XED_ICLASS_COMISS<<8)+0, -
-  XED_IFORM_COMISS_XMMss_MEMss = (XED_ICLASS_COMISS<<8)+1, -
-  XED_IFORM_CPUID = (XED_ICLASS_CPUID<<8)+0, -
-  XED_IFORM_CQO = (XED_ICLASS_CQO<<8)+0, -
-  XED_IFORM_CRC32_GPR32d_GPRv = (XED_ICLASS_CRC32<<8)+0, -
-  XED_IFORM_CRC32_GPR32d_MEMb = (XED_ICLASS_CRC32<<8)+1, -
-  XED_IFORM_CRC32_GPR32d_GPR8b = (XED_ICLASS_CRC32<<8)+2, -
-  XED_IFORM_CRC32_GPR64q_MEMv = (XED_ICLASS_CRC32<<8)+3, -
-  XED_IFORM_CRC32_GPR32d_MEMv = (XED_ICLASS_CRC32<<8)+4, -
-  XED_IFORM_CRC32_GPR64q_MEMb = (XED_ICLASS_CRC32<<8)+5, -
-  XED_IFORM_CRC32_GPR64q_GPRv = (XED_ICLASS_CRC32<<8)+6, -
-  XED_IFORM_CRC32_GPR64q_GPR8b = (XED_ICLASS_CRC32<<8)+7, -
-  XED_IFORM_CVTDQ2PD_XMMpd_MEMq = (XED_ICLASS_CVTDQ2PD<<8)+0, -
-  XED_IFORM_CVTDQ2PD_XMMpd_XMMq = (XED_ICLASS_CVTDQ2PD<<8)+1, -
-  XED_IFORM_CVTDQ2PS_XMMps_MEMdq = (XED_ICLASS_CVTDQ2PS<<8)+0, -
-  XED_IFORM_CVTDQ2PS_XMMps_XMMdq = (XED_ICLASS_CVTDQ2PS<<8)+1, -
-  XED_IFORM_CVTPD2DQ_XMMdq_MEMpd = (XED_ICLASS_CVTPD2DQ<<8)+0, -
-  XED_IFORM_CVTPD2DQ_XMMdq_XMMpd = (XED_ICLASS_CVTPD2DQ<<8)+1, -
-  XED_IFORM_CVTPD2PI_MMXq_XMMpd = (XED_ICLASS_CVTPD2PI<<8)+0, -
-  XED_IFORM_CVTPD2PI_MMXq_MEMpd = (XED_ICLASS_CVTPD2PI<<8)+1, -
-  XED_IFORM_CVTPD2PS_XMMps_MEMpd = (XED_ICLASS_CVTPD2PS<<8)+0, -
-  XED_IFORM_CVTPD2PS_XMMps_XMMpd = (XED_ICLASS_CVTPD2PS<<8)+1, -
-  XED_IFORM_CVTPI2PD_XMMpd_MMXq = (XED_ICLASS_CVTPI2PD<<8)+0, -
-  XED_IFORM_CVTPI2PD_XMMpd_MEMq = (XED_ICLASS_CVTPI2PD<<8)+1, -
-  XED_IFORM_CVTPI2PS_XMMq_MMXq = (XED_ICLASS_CVTPI2PS<<8)+0, -
-  XED_IFORM_CVTPI2PS_XMMq_MEMq = (XED_ICLASS_CVTPI2PS<<8)+1, -
-  XED_IFORM_CVTPS2DQ_XMMdq_MEMps = (XED_ICLASS_CVTPS2DQ<<8)+0, -
-  XED_IFORM_CVTPS2DQ_XMMdq_XMMps = (XED_ICLASS_CVTPS2DQ<<8)+1, -
-  XED_IFORM_CVTPS2PD_XMMpd_MEMq = (XED_ICLASS_CVTPS2PD<<8)+0, -
-  XED_IFORM_CVTPS2PD_XMMpd_XMMq = (XED_ICLASS_CVTPS2PD<<8)+1, -
-  XED_IFORM_CVTPS2PI_MMXq_MEMq = (XED_ICLASS_CVTPS2PI<<8)+0, -
-  XED_IFORM_CVTPS2PI_MMXq_XMMq = (XED_ICLASS_CVTPS2PI<<8)+1, -
-  XED_IFORM_CVTSD2SI_GPR32_MEMsd = (XED_ICLASS_CVTSD2SI<<8)+0, -
-  XED_IFORM_CVTSD2SI_GPR32_XMMsd = (XED_ICLASS_CVTSD2SI<<8)+1, -
-  XED_IFORM_CVTSD2SI_GPR64_XMMsd = (XED_ICLASS_CVTSD2SI<<8)+2, -
-  XED_IFORM_CVTSD2SI_GPR64_MEMsd = (XED_ICLASS_CVTSD2SI<<8)+3, -
-  XED_IFORM_CVTSD2SS_XMMss_MEMsd = (XED_ICLASS_CVTSD2SS<<8)+0, -
-  XED_IFORM_CVTSD2SS_XMMss_XMMsd = (XED_ICLASS_CVTSD2SS<<8)+1, -
-  XED_IFORM_CVTSI2SD_XMMsd_GPR64 = (XED_ICLASS_CVTSI2SD<<8)+0, -
-  XED_IFORM_CVTSI2SD_XMMsd_GPR32 = (XED_ICLASS_CVTSI2SD<<8)+1, -
-  XED_IFORM_CVTSI2SD_XMMsd_MEMd = (XED_ICLASS_CVTSI2SD<<8)+2, -
-  XED_IFORM_CVTSI2SD_XMMsd_MEMq = (XED_ICLASS_CVTSI2SD<<8)+3, -
-  XED_IFORM_CVTSI2SS_XMMss_GPR64 = (XED_ICLASS_CVTSI2SS<<8)+0, -
-  XED_IFORM_CVTSI2SS_XMMss_GPR32 = (XED_ICLASS_CVTSI2SS<<8)+1, -
-  XED_IFORM_CVTSI2SS_XMMss_MEMd = (XED_ICLASS_CVTSI2SS<<8)+2, -
-  XED_IFORM_CVTSI2SS_XMMss_MEMq = (XED_ICLASS_CVTSI2SS<<8)+3, -
-  XED_IFORM_CVTSS2SD_XMMsd_MEMss = (XED_ICLASS_CVTSS2SD<<8)+0, -
-  XED_IFORM_CVTSS2SD_XMMsd_XMMss = (XED_ICLASS_CVTSS2SD<<8)+1, -
-  XED_IFORM_CVTSS2SI_GPR64_XMMss = (XED_ICLASS_CVTSS2SI<<8)+0, -
-  XED_IFORM_CVTSS2SI_GPR32_MEMss = (XED_ICLASS_CVTSS2SI<<8)+1, -
-  XED_IFORM_CVTSS2SI_GPR32_XMMss = (XED_ICLASS_CVTSS2SI<<8)+2, -
-  XED_IFORM_CVTSS2SI_GPR64_MEMss = (XED_ICLASS_CVTSS2SI<<8)+3, -
-  XED_IFORM_CVTTPD2DQ_XMMdq_XMMpd = (XED_ICLASS_CVTTPD2DQ<<8)+0, -
-  XED_IFORM_CVTTPD2DQ_XMMdq_MEMpd = (XED_ICLASS_CVTTPD2DQ<<8)+1, -
-  XED_IFORM_CVTTPD2PI_MMXq_MEMpd = (XED_ICLASS_CVTTPD2PI<<8)+0, -
-  XED_IFORM_CVTTPD2PI_MMXq_XMMpd = (XED_ICLASS_CVTTPD2PI<<8)+1, -
-  XED_IFORM_CVTTPS2DQ_XMMdq_XMMps = (XED_ICLASS_CVTTPS2DQ<<8)+0, -
-  XED_IFORM_CVTTPS2DQ_XMMdq_MEMps = (XED_ICLASS_CVTTPS2DQ<<8)+1, -
-  XED_IFORM_CVTTPS2PI_MMXq_MEMq = (XED_ICLASS_CVTTPS2PI<<8)+0, -
-  XED_IFORM_CVTTPS2PI_MMXq_XMMq = (XED_ICLASS_CVTTPS2PI<<8)+1, -
-  XED_IFORM_CVTTSD2SI_GPR64_MEMsd = (XED_ICLASS_CVTTSD2SI<<8)+0, -
-  XED_IFORM_CVTTSD2SI_GPR32_XMMsd = (XED_ICLASS_CVTTSD2SI<<8)+1, -
-  XED_IFORM_CVTTSD2SI_GPR32_MEMsd = (XED_ICLASS_CVTTSD2SI<<8)+2, -
-  XED_IFORM_CVTTSD2SI_GPR64_XMMsd = (XED_ICLASS_CVTTSD2SI<<8)+3, -
-  XED_IFORM_CVTTSS2SI_GPR64_MEMss = (XED_ICLASS_CVTTSS2SI<<8)+0, -
-  XED_IFORM_CVTTSS2SI_GPR64_XMMss = (XED_ICLASS_CVTTSS2SI<<8)+1, -
-  XED_IFORM_CVTTSS2SI_GPR32_XMMss = (XED_ICLASS_CVTTSS2SI<<8)+2, -
-  XED_IFORM_CVTTSS2SI_GPR32_MEMss = (XED_ICLASS_CVTTSS2SI<<8)+3, -
-  XED_IFORM_CWD = (XED_ICLASS_CWD<<8)+0, -
-  XED_IFORM_CWDE = (XED_ICLASS_CWDE<<8)+0, -
-  XED_IFORM_DAA = (XED_ICLASS_DAA<<8)+0, -
-  XED_IFORM_DAS = (XED_ICLASS_DAS<<8)+0, -
-  XED_IFORM_DEC_GPR8 = (XED_ICLASS_DEC<<8)+0, -
-  XED_IFORM_DEC_MEMv = (XED_ICLASS_DEC<<8)+1, -
-  XED_IFORM_DEC_MEMb = (XED_ICLASS_DEC<<8)+2, -
-  XED_IFORM_DEC_GPRv = (XED_ICLASS_DEC<<8)+3, -
-  XED_IFORM_DIV_MEMv = (XED_ICLASS_DIV<<8)+0, -
-  XED_IFORM_DIV_GPR8 = (XED_ICLASS_DIV<<8)+1, -
-  XED_IFORM_DIV_GPRv = (XED_ICLASS_DIV<<8)+2, -
-  XED_IFORM_DIV_MEMb = (XED_ICLASS_DIV<<8)+3, -
-  XED_IFORM_DIVPD_XMMpd_XMMpd = (XED_ICLASS_DIVPD<<8)+0, -
-  XED_IFORM_DIVPD_XMMpd_MEMpd = (XED_ICLASS_DIVPD<<8)+1, -
-  XED_IFORM_DIVPS_XMMps_MEMps = (XED_ICLASS_DIVPS<<8)+0, -
-  XED_IFORM_DIVPS_XMMps_XMMps = (XED_ICLASS_DIVPS<<8)+1, -
-  XED_IFORM_DIVSD_XMMsd_MEMsd = (XED_ICLASS_DIVSD<<8)+0, -
-  XED_IFORM_DIVSD_XMMsd_XMMsd = (XED_ICLASS_DIVSD<<8)+1, -
-  XED_IFORM_DIVSS_XMMss_XMMss = (XED_ICLASS_DIVSS<<8)+0, -
-  XED_IFORM_DIVSS_XMMss_MEMss = (XED_ICLASS_DIVSS<<8)+1, -
-  XED_IFORM_DPPD_XMMdq_XMMdq_IMM = (XED_ICLASS_DPPD<<8)+0, -
-  XED_IFORM_DPPD_XMMdq_MEMdq_IMM = (XED_ICLASS_DPPD<<8)+1, -
-  XED_IFORM_DPPS_XMMdq_XMMdq_IMM = (XED_ICLASS_DPPS<<8)+0, -
-  XED_IFORM_DPPS_XMMdq_MEMdq_IMM = (XED_ICLASS_DPPS<<8)+1, -
-  XED_IFORM_EMMS = (XED_ICLASS_EMMS<<8)+0, -
-  XED_IFORM_ENTER_IMM_IMM = (XED_ICLASS_ENTER<<8)+0, -
-  XED_IFORM_EXTRACTPS_GPR32w_XMMdq_IMM = (XED_ICLASS_EXTRACTPS<<8)+0, -
-  XED_IFORM_EXTRACTPS_MEMw_XMMps_IMM = (XED_ICLASS_EXTRACTPS<<8)+1, -
-  XED_IFORM_EXTRQ_XMMq_IMM_IMM = (XED_ICLASS_EXTRQ<<8)+0, -
-  XED_IFORM_EXTRQ_XMMq_XMMdq = (XED_ICLASS_EXTRQ<<8)+1, -
-  XED_IFORM_F2XM1_ST0 = (XED_ICLASS_F2XM1<<8)+0, -
-  XED_IFORM_FABS_ST0 = (XED_ICLASS_FABS<<8)+0, -
-  XED_IFORM_FADD_ST0_MEMmem32real = (XED_ICLASS_FADD<<8)+0, -
-  XED_IFORM_FADD_ST0_MEMm64real = (XED_ICLASS_FADD<<8)+1, -
-  XED_IFORM_FADD_X87_ST0 = (XED_ICLASS_FADD<<8)+2, -
-  XED_IFORM_FADD_ST0_X87 = (XED_ICLASS_FADD<<8)+3, -
-  XED_IFORM_FADDP_X87_ST0 = (XED_ICLASS_FADDP<<8)+0, -
-  XED_IFORM_FBLD_ST0_MEMmem80dec = (XED_ICLASS_FBLD<<8)+0, -
-  XED_IFORM_FBSTP_MEMmem80dec_ST0 = (XED_ICLASS_FBSTP<<8)+0, -
-  XED_IFORM_FCHS_ST0 = (XED_ICLASS_FCHS<<8)+0, -
-  XED_IFORM_FCMOVB_ST0_X87 = (XED_ICLASS_FCMOVB<<8)+0, -
-  XED_IFORM_FCMOVBE_ST0_X87 = (XED_ICLASS_FCMOVBE<<8)+0, -
-  XED_IFORM_FCMOVE_ST0_X87 = (XED_ICLASS_FCMOVE<<8)+0, -
-  XED_IFORM_FCMOVNB_ST0_X87 = (XED_ICLASS_FCMOVNB<<8)+0, -
-  XED_IFORM_FCMOVNBE_ST0_X87 = (XED_ICLASS_FCMOVNBE<<8)+0, -
-  XED_IFORM_FCMOVNE_ST0_X87 = (XED_ICLASS_FCMOVNE<<8)+0, -
-  XED_IFORM_FCMOVNU_ST0_X87 = (XED_ICLASS_FCMOVNU<<8)+0, -
-  XED_IFORM_FCMOVU_ST0_X87 = (XED_ICLASS_FCMOVU<<8)+0, -
-  XED_IFORM_FCOM_ST0_X87 = (XED_ICLASS_FCOM<<8)+0, -
-  XED_IFORM_FCOM_ST0_MEMmem32real = (XED_ICLASS_FCOM<<8)+1, -
-  XED_IFORM_FCOM_ST0_MEMm64real = (XED_ICLASS_FCOM<<8)+2, -
-  XED_IFORM_FCOMI_ST0_X87 = (XED_ICLASS_FCOMI<<8)+0, -
-  XED_IFORM_FCOMIP_ST0_X87 = (XED_ICLASS_FCOMIP<<8)+0, -
-  XED_IFORM_FCOMP_ST0_X87 = (XED_ICLASS_FCOMP<<8)+0, -
-  XED_IFORM_FCOMP_ST0_MEMmem32real = (XED_ICLASS_FCOMP<<8)+1, -
-  XED_IFORM_FCOMP_ST0_MEMm64real = (XED_ICLASS_FCOMP<<8)+2, -
-  XED_IFORM_FCOMPP_ST0_ST1 = (XED_ICLASS_FCOMPP<<8)+0, -
-  XED_IFORM_FCOS_ST0 = (XED_ICLASS_FCOS<<8)+0, -
-  XED_IFORM_FDECSTP = (XED_ICLASS_FDECSTP<<8)+0, -
-  XED_IFORM_FDIV_X87_ST0 = (XED_ICLASS_FDIV<<8)+0, -
-  XED_IFORM_FDIV_ST0_MEMmem32real = (XED_ICLASS_FDIV<<8)+1, -
-  XED_IFORM_FDIV_ST0_MEMm64real = (XED_ICLASS_FDIV<<8)+2, -
-  XED_IFORM_FDIV_ST0_X87 = (XED_ICLASS_FDIV<<8)+3, -
-  XED_IFORM_FDIVP_X87_ST0 = (XED_ICLASS_FDIVP<<8)+0, -
-  XED_IFORM_FDIVR_ST0_MEMm64real = (XED_ICLASS_FDIVR<<8)+0, -
-  XED_IFORM_FDIVR_X87_ST0 = (XED_ICLASS_FDIVR<<8)+1, -
-  XED_IFORM_FDIVR_ST0_X87 = (XED_ICLASS_FDIVR<<8)+2, -
-  XED_IFORM_FDIVR_ST0_MEMmem32real = (XED_ICLASS_FDIVR<<8)+3, -
-  XED_IFORM_FDIVRP_X87_ST0 = (XED_ICLASS_FDIVRP<<8)+0, -
-  XED_IFORM_FEMMS = (XED_ICLASS_FEMMS<<8)+0, -
-  XED_IFORM_FFREE_X87 = (XED_ICLASS_FFREE<<8)+0, -
-  XED_IFORM_FFREEP_X87 = (XED_ICLASS_FFREEP<<8)+0, -
-  XED_IFORM_FIADD_ST0_MEMmem32int = (XED_ICLASS_FIADD<<8)+0, -
-  XED_IFORM_FIADD_ST0_MEMmem16int = (XED_ICLASS_FIADD<<8)+1, -
-  XED_IFORM_FICOM_ST0_MEMmem32int = (XED_ICLASS_FICOM<<8)+0, -
-  XED_IFORM_FICOM_ST0_MEMmem16int = (XED_ICLASS_FICOM<<8)+1, -
-  XED_IFORM_FICOMP_ST0_MEMmem16int = (XED_ICLASS_FICOMP<<8)+0, -
-  XED_IFORM_FICOMP_ST0_MEMmem32int = (XED_ICLASS_FICOMP<<8)+1, -
-  XED_IFORM_FIDIV_ST0_MEMmem16int = (XED_ICLASS_FIDIV<<8)+0, -
-  XED_IFORM_FIDIV_ST0_MEMmem32int = (XED_ICLASS_FIDIV<<8)+1, -
-  XED_IFORM_FIDIVR_ST0_MEMmem32int = (XED_ICLASS_FIDIVR<<8)+0, -
-  XED_IFORM_FIDIVR_ST0_MEMmem16int = (XED_ICLASS_FIDIVR<<8)+1, -
-  XED_IFORM_FILD_ST0_MEMmem32int = (XED_ICLASS_FILD<<8)+0, -
-  XED_IFORM_FILD_ST0_MEMmem16int = (XED_ICLASS_FILD<<8)+1, -
-  XED_IFORM_FILD_ST0_MEMm64int = (XED_ICLASS_FILD<<8)+2, -
-  XED_IFORM_FIMUL_ST0_MEMmem16int = (XED_ICLASS_FIMUL<<8)+0, -
-  XED_IFORM_FIMUL_ST0_MEMmem32int = (XED_ICLASS_FIMUL<<8)+1, -
-  XED_IFORM_FINCSTP = (XED_ICLASS_FINCSTP<<8)+0, -
-  XED_IFORM_FIST_MEMmem32int_ST0 = (XED_ICLASS_FIST<<8)+0, -
-  XED_IFORM_FIST_MEMmem16int_ST0 = (XED_ICLASS_FIST<<8)+1, -
-  XED_IFORM_FISTP_MEMmem32int_ST0 = (XED_ICLASS_FISTP<<8)+0, -
-  XED_IFORM_FISTP_MEMmem16int_ST0 = (XED_ICLASS_FISTP<<8)+1, -
-  XED_IFORM_FISTP_MEMm64int_ST0 = (XED_ICLASS_FISTP<<8)+2, -
-  XED_IFORM_FISTTP_MEMmem16int_ST0 = (XED_ICLASS_FISTTP<<8)+0, -
-  XED_IFORM_FISTTP_MEMmem32int_ST0 = (XED_ICLASS_FISTTP<<8)+1, -
-  XED_IFORM_FISTTP_MEMm64int_ST0 = (XED_ICLASS_FISTTP<<8)+2, -
-  XED_IFORM_FISUB_ST0_MEMmem32int = (XED_ICLASS_FISUB<<8)+0, -
-  XED_IFORM_FISUB_ST0_MEMmem16int = (XED_ICLASS_FISUB<<8)+1, -
-  XED_IFORM_FISUBR_ST0_MEMmem32int = (XED_ICLASS_FISUBR<<8)+0, -
-  XED_IFORM_FISUBR_ST0_MEMmem16int = (XED_ICLASS_FISUBR<<8)+1, -
-  XED_IFORM_FLD_ST0_X87 = (XED_ICLASS_FLD<<8)+0, -
-  XED_IFORM_FLD_ST0_MEMm64real = (XED_ICLASS_FLD<<8)+1, -
-  XED_IFORM_FLD_ST0_MEMmem32real = (XED_ICLASS_FLD<<8)+2, -
-  XED_IFORM_FLD_ST0_MEMmem80real = (XED_ICLASS_FLD<<8)+3, -
-  XED_IFORM_FLD1_ST0 = (XED_ICLASS_FLD1<<8)+0, -
-  XED_IFORM_FLDCW_MEMmem16 = (XED_ICLASS_FLDCW<<8)+0, -
-  XED_IFORM_FLDENV_MEMmem14 = (XED_ICLASS_FLDENV<<8)+0, -
-  XED_IFORM_FLDENV_MEMmem28 = (XED_ICLASS_FLDENV<<8)+1, -
-  XED_IFORM_FLDL2E_ST0 = (XED_ICLASS_FLDL2E<<8)+0, -
-  XED_IFORM_FLDL2T_ST0 = (XED_ICLASS_FLDL2T<<8)+0, -
-  XED_IFORM_FLDLG2_ST0 = (XED_ICLASS_FLDLG2<<8)+0, -
-  XED_IFORM_FLDLN2_ST0 = (XED_ICLASS_FLDLN2<<8)+0, -
-  XED_IFORM_FLDPI_ST0 = (XED_ICLASS_FLDPI<<8)+0, -
-  XED_IFORM_FLDZ_ST0 = (XED_ICLASS_FLDZ<<8)+0, -
-  XED_IFORM_FMUL_ST0_MEMm64real = (XED_ICLASS_FMUL<<8)+0, -
-  XED_IFORM_FMUL_ST0_MEMmem32real = (XED_ICLASS_FMUL<<8)+1, -
-  XED_IFORM_FMUL_X87_ST0 = (XED_ICLASS_FMUL<<8)+2, -
-  XED_IFORM_FMUL_ST0_X87 = (XED_ICLASS_FMUL<<8)+3, -
-  XED_IFORM_FMULP_X87_ST0 = (XED_ICLASS_FMULP<<8)+0, -
-  XED_IFORM_FNCLEX = (XED_ICLASS_FNCLEX<<8)+0, -
-  XED_IFORM_FNINIT = (XED_ICLASS_FNINIT<<8)+0, -
-  XED_IFORM_FNOP = (XED_ICLASS_FNOP<<8)+0, -
-  XED_IFORM_FNSAVE_MEMmem98 = (XED_ICLASS_FNSAVE<<8)+0, -
-  XED_IFORM_FNSAVE_MEMmem108 = (XED_ICLASS_FNSAVE<<8)+1, -
-  XED_IFORM_FNSTCW_MEMmem16 = (XED_ICLASS_FNSTCW<<8)+0, -
-  XED_IFORM_FNSTENV_MEMmem28 = (XED_ICLASS_FNSTENV<<8)+0, -
-  XED_IFORM_FNSTENV_MEMmem14 = (XED_ICLASS_FNSTENV<<8)+1, -
-  XED_IFORM_FNSTSW_MEMmem16 = (XED_ICLASS_FNSTSW<<8)+0, -
-  XED_IFORM_FNSTSW_AX = (XED_ICLASS_FNSTSW<<8)+1, -
-  XED_IFORM_FPATAN_ST0_ST1 = (XED_ICLASS_FPATAN<<8)+0, -
-  XED_IFORM_FPREM_ST0_ST1 = (XED_ICLASS_FPREM<<8)+0, -
-  XED_IFORM_FPREM1_ST0_ST1 = (XED_ICLASS_FPREM1<<8)+0, -
-  XED_IFORM_FPTAN_ST0_ST1 = (XED_ICLASS_FPTAN<<8)+0, -
-  XED_IFORM_FRNDINT_ST0 = (XED_ICLASS_FRNDINT<<8)+0, -
-  XED_IFORM_FRSTOR_MEMmem108 = (XED_ICLASS_FRSTOR<<8)+0, -
-  XED_IFORM_FRSTOR_MEMmem98 = (XED_ICLASS_FRSTOR<<8)+1, -
-  XED_IFORM_FSCALE_ST0_ST1 = (XED_ICLASS_FSCALE<<8)+0, -
-  XED_IFORM_FSETPM287_NOP = (XED_ICLASS_FSETPM287_NOP<<8)+0, -
-  XED_IFORM_FSIN_ST0 = (XED_ICLASS_FSIN<<8)+0, -
-  XED_IFORM_FSINCOS_ST0_ST1 = (XED_ICLASS_FSINCOS<<8)+0, -
-  XED_IFORM_FSQRT_ST0 = (XED_ICLASS_FSQRT<<8)+0, -
-  XED_IFORM_FST_X87_ST0 = (XED_ICLASS_FST<<8)+0, -
-  XED_IFORM_FST_MEMmem32real_ST0 = (XED_ICLASS_FST<<8)+1, -
-  XED_IFORM_FST_MEMm64real_ST0 = (XED_ICLASS_FST<<8)+2, -
-  XED_IFORM_FSTP_MEMmem32real_ST0 = (XED_ICLASS_FSTP<<8)+0, -
-  XED_IFORM_FSTP_X87_ST0 = (XED_ICLASS_FSTP<<8)+1, -
-  XED_IFORM_FSTP_MEMmem80real_ST0 = (XED_ICLASS_FSTP<<8)+2, -
-  XED_IFORM_FSTP_MEMm64real_ST0 = (XED_ICLASS_FSTP<<8)+3, -
-  XED_IFORM_FSUB_ST0_X87 = (XED_ICLASS_FSUB<<8)+0, -
-  XED_IFORM_FSUB_X87_ST0 = (XED_ICLASS_FSUB<<8)+1, -
-  XED_IFORM_FSUB_ST0_MEMm64real = (XED_ICLASS_FSUB<<8)+2, -
-  XED_IFORM_FSUB_ST0_MEMmem32real = (XED_ICLASS_FSUB<<8)+3, -
-  XED_IFORM_FSUBP_X87_ST0 = (XED_ICLASS_FSUBP<<8)+0, -
-  XED_IFORM_FSUBR_ST0_MEMmem32real = (XED_ICLASS_FSUBR<<8)+0, -
-  XED_IFORM_FSUBR_X87_ST0 = (XED_ICLASS_FSUBR<<8)+1, -
-  XED_IFORM_FSUBR_ST0_X87 = (XED_ICLASS_FSUBR<<8)+2, -
-  XED_IFORM_FSUBR_ST0_MEMm64real = (XED_ICLASS_FSUBR<<8)+3, -
-  XED_IFORM_FSUBRP_X87_ST0 = (XED_ICLASS_FSUBRP<<8)+0, -
-  XED_IFORM_FTST_ST0 = (XED_ICLASS_FTST<<8)+0, -
-  XED_IFORM_FUCOM_ST0_X87 = (XED_ICLASS_FUCOM<<8)+0, -
-  XED_IFORM_FUCOMI_ST0_X87 = (XED_ICLASS_FUCOMI<<8)+0, -
-  XED_IFORM_FUCOMIP_ST0_X87 = (XED_ICLASS_FUCOMIP<<8)+0, -
-  XED_IFORM_FUCOMP_ST0_X87 = (XED_ICLASS_FUCOMP<<8)+0, -
-  XED_IFORM_FUCOMPP_ST0_ST1 = (XED_ICLASS_FUCOMPP<<8)+0, -
-  XED_IFORM_FWAIT = (XED_ICLASS_FWAIT<<8)+0, -
-  XED_IFORM_FXAM_ST0 = (XED_ICLASS_FXAM<<8)+0, -
-  XED_IFORM_FXCH_ST0_X87 = (XED_ICLASS_FXCH<<8)+0, -
-  XED_IFORM_FXRSTOR_MEMmfpxenv = (XED_ICLASS_FXRSTOR<<8)+0, -
-  XED_IFORM_FXSAVE_MEMmfpxenv = (XED_ICLASS_FXSAVE<<8)+0, -
-  XED_IFORM_FXTRACT_ST0_ST1 = (XED_ICLASS_FXTRACT<<8)+0, -
-  XED_IFORM_FYL2X_ST0_ST1 = (XED_ICLASS_FYL2X<<8)+0, -
-  XED_IFORM_FYL2XP1_ST0_ST1 = (XED_ICLASS_FYL2XP1<<8)+0, -
-  XED_IFORM_HADDPD_XMMpd_MEMpd = (XED_ICLASS_HADDPD<<8)+0, -
-  XED_IFORM_HADDPD_XMMpd_XMMpd = (XED_ICLASS_HADDPD<<8)+1, -
-  XED_IFORM_HADDPS_XMMps_XMMps = (XED_ICLASS_HADDPS<<8)+0, -
-  XED_IFORM_HADDPS_XMMps_MEMps = (XED_ICLASS_HADDPS<<8)+1, -
-  XED_IFORM_HLT = (XED_ICLASS_HLT<<8)+0, -
-  XED_IFORM_HSUBPD_XMMpd_XMMpd = (XED_ICLASS_HSUBPD<<8)+0, -
-  XED_IFORM_HSUBPD_XMMpd_MEMpd = (XED_ICLASS_HSUBPD<<8)+1, -
-  XED_IFORM_HSUBPS_XMMps_MEMps = (XED_ICLASS_HSUBPS<<8)+0, -
-  XED_IFORM_HSUBPS_XMMps_XMMps = (XED_ICLASS_HSUBPS<<8)+1, -
-  XED_IFORM_IDIV_MEMb = (XED_ICLASS_IDIV<<8)+0, -
-  XED_IFORM_IDIV_GPR8 = (XED_ICLASS_IDIV<<8)+1, -
-  XED_IFORM_IDIV_GPRv = (XED_ICLASS_IDIV<<8)+2, -
-  XED_IFORM_IDIV_MEMv = (XED_ICLASS_IDIV<<8)+3, -
-  XED_IFORM_IMUL_MEMv = (XED_ICLASS_IMUL<<8)+0, -
-  XED_IFORM_IMUL_GPRv_GPRv = (XED_ICLASS_IMUL<<8)+1, -
-  XED_IFORM_IMUL_GPRv_GPRv_IMM = (XED_ICLASS_IMUL<<8)+2, -
-  XED_IFORM_IMUL_GPR8 = (XED_ICLASS_IMUL<<8)+3, -
-  XED_IFORM_IMUL_MEMb = (XED_ICLASS_IMUL<<8)+4, -
-  XED_IFORM_IMUL_GPRv_MEMv_IMM = (XED_ICLASS_IMUL<<8)+5, -
-  XED_IFORM_IMUL_GPRv_MEMv = (XED_ICLASS_IMUL<<8)+6, -
-  XED_IFORM_IMUL_GPRv = (XED_ICLASS_IMUL<<8)+7, -
-  XED_IFORM_IN_OeAX_DX = (XED_ICLASS_IN<<8)+0, -
-  XED_IFORM_IN_OeAX_IMM = (XED_ICLASS_IN<<8)+1, -
-  XED_IFORM_IN_AL_IMM = (XED_ICLASS_IN<<8)+2, -
-  XED_IFORM_IN_AL_DX = (XED_ICLASS_IN<<8)+3, -
-  XED_IFORM_INC_MEMb = (XED_ICLASS_INC<<8)+0, -
-  XED_IFORM_INC_MEMv = (XED_ICLASS_INC<<8)+1, -
-  XED_IFORM_INC_GPRv = (XED_ICLASS_INC<<8)+2, -
-  XED_IFORM_INC_GPR8 = (XED_ICLASS_INC<<8)+3, -
-  XED_IFORM_INSB = (XED_ICLASS_INSB<<8)+0, -
-  XED_IFORM_INSD = (XED_ICLASS_INSD<<8)+0, -
-  XED_IFORM_INSERTPS_XMMps_XMMps_IMM = (XED_ICLASS_INSERTPS<<8)+0, -
-  XED_IFORM_INSERTPS_XMMps_MEMd_IMM = (XED_ICLASS_INSERTPS<<8)+1, -
-  XED_IFORM_INSERTQ_XMMq_XMMdq = (XED_ICLASS_INSERTQ<<8)+0, -
-  XED_IFORM_INSERTQ_XMMq_XMMq_IMM_IMM = (XED_ICLASS_INSERTQ<<8)+1, -
-  XED_IFORM_INSW = (XED_ICLASS_INSW<<8)+0, -
-  XED_IFORM_INT_IMM = (XED_ICLASS_INT<<8)+0, -
-  XED_IFORM_INT1 = (XED_ICLASS_INT1<<8)+0, -
-  XED_IFORM_INT3 = (XED_ICLASS_INT3<<8)+0, -
-  XED_IFORM_INTO = (XED_ICLASS_INTO<<8)+0, -
-  XED_IFORM_INVD = (XED_ICLASS_INVD<<8)+0, -
-  XED_IFORM_INVLPG_MEMb = (XED_ICLASS_INVLPG<<8)+0, -
-  XED_IFORM_INVLPGA_OrAX_ECX = (XED_ICLASS_INVLPGA<<8)+0, -
-  XED_IFORM_IRET = (XED_ICLASS_IRET<<8)+0, -
-  XED_IFORM_IRETD = (XED_ICLASS_IRETD<<8)+0, -
-  XED_IFORM_IRETQ = (XED_ICLASS_IRETQ<<8)+0, -
-  XED_IFORM_JB_RELBR = (XED_ICLASS_JB<<8)+0, -
-  XED_IFORM_JBE_RELBR = (XED_ICLASS_JBE<<8)+0, -
-  XED_IFORM_JL_RELBR = (XED_ICLASS_JL<<8)+0, -
-  XED_IFORM_JLE_RELBR = (XED_ICLASS_JLE<<8)+0, -
-  XED_IFORM_JMP_RELBR = (XED_ICLASS_JMP<<8)+0, -
-  XED_IFORM_JMP_MEMv = (XED_ICLASS_JMP<<8)+1, -
-  XED_IFORM_JMP_GPRv = (XED_ICLASS_JMP<<8)+2, -
-  XED_IFORM_JMP_FAR_PTR_IMM = (XED_ICLASS_JMP_FAR<<8)+0, -
-  XED_IFORM_JMP_FAR_MEMp = (XED_ICLASS_JMP_FAR<<8)+1, -
-  XED_IFORM_JNB_RELBR = (XED_ICLASS_JNB<<8)+0, -
-  XED_IFORM_JNBE_RELBR = (XED_ICLASS_JNBE<<8)+0, -
-  XED_IFORM_JNL_RELBR = (XED_ICLASS_JNL<<8)+0, -
-  XED_IFORM_JNLE_RELBR = (XED_ICLASS_JNLE<<8)+0, -
-  XED_IFORM_JNO_RELBR = (XED_ICLASS_JNO<<8)+0, -
-  XED_IFORM_JNP_RELBR = (XED_ICLASS_JNP<<8)+0, -
-  XED_IFORM_JNS_RELBR = (XED_ICLASS_JNS<<8)+0, -
-  XED_IFORM_JNZ_RELBR = (XED_ICLASS_JNZ<<8)+0, -
-  XED_IFORM_JO_RELBR = (XED_ICLASS_JO<<8)+0, -
-  XED_IFORM_JP_RELBR = (XED_ICLASS_JP<<8)+0, -
-  XED_IFORM_JRCXZ_RELBR = (XED_ICLASS_JRCXZ<<8)+0, -
-  XED_IFORM_JS_RELBR = (XED_ICLASS_JS<<8)+0, -
-  XED_IFORM_JZ_RELBR = (XED_ICLASS_JZ<<8)+0, -
-  XED_IFORM_LAHF = (XED_ICLASS_LAHF<<8)+0, -
-  XED_IFORM_LAR_GPRv_GPR16 = (XED_ICLASS_LAR<<8)+0, -
-  XED_IFORM_LAR_GPRv_MEMw = (XED_ICLASS_LAR<<8)+1, -
-  XED_IFORM_LDDQU_XMMpd_MEMdq = (XED_ICLASS_LDDQU<<8)+0, -
-  XED_IFORM_LDMXCSR_MEMd = (XED_ICLASS_LDMXCSR<<8)+0, -
-  XED_IFORM_LDS_GPRz_MEMp = (XED_ICLASS_LDS<<8)+0, -
-  XED_IFORM_LEA_GPRv_AGEN = (XED_ICLASS_LEA<<8)+0, -
-  XED_IFORM_LEAVE = (XED_ICLASS_LEAVE<<8)+0, -
-  XED_IFORM_LES_GPRz_MEMp = (XED_ICLASS_LES<<8)+0, -
-  XED_IFORM_LFENCE = (XED_ICLASS_LFENCE<<8)+0, -
-  XED_IFORM_LFS_GPRv_MEMp2 = (XED_ICLASS_LFS<<8)+0, -
-  XED_IFORM_LGDT_MEMs = (XED_ICLASS_LGDT<<8)+0, -
-  XED_IFORM_LGS_GPRv_MEMp2 = (XED_ICLASS_LGS<<8)+0, -
-  XED_IFORM_LIDT_MEMs = (XED_ICLASS_LIDT<<8)+0, -
-  XED_IFORM_LLDT_MEMw = (XED_ICLASS_LLDT<<8)+0, -
-  XED_IFORM_LLDT_GPR16 = (XED_ICLASS_LLDT<<8)+1, -
-  XED_IFORM_LMSW_GPR16 = (XED_ICLASS_LMSW<<8)+0, -
-  XED_IFORM_LMSW_MEMw = (XED_ICLASS_LMSW<<8)+1, -
-  XED_IFORM_LODSB = (XED_ICLASS_LODSB<<8)+0, -
-  XED_IFORM_LODSD = (XED_ICLASS_LODSD<<8)+0, -
-  XED_IFORM_LODSQ = (XED_ICLASS_LODSQ<<8)+0, -
-  XED_IFORM_LODSW = (XED_ICLASS_LODSW<<8)+0, -
-  XED_IFORM_LOOP_RELBR = (XED_ICLASS_LOOP<<8)+0, -
-  XED_IFORM_LOOPE_RELBR = (XED_ICLASS_LOOPE<<8)+0, -
-  XED_IFORM_LOOPNE_RELBR = (XED_ICLASS_LOOPNE<<8)+0, -
-  XED_IFORM_LSL_GPRv_GPR16 = (XED_ICLASS_LSL<<8)+0, -
-  XED_IFORM_LSL_GPRv_MEMw = (XED_ICLASS_LSL<<8)+1, -
-  XED_IFORM_LSS_GPRv_MEMp2 = (XED_ICLASS_LSS<<8)+0, -
-  XED_IFORM_LTR_GPR16 = (XED_ICLASS_LTR<<8)+0, -
-  XED_IFORM_LTR_MEMw = (XED_ICLASS_LTR<<8)+1, -
-  XED_IFORM_LZCNT_GPRv_GPRv = (XED_ICLASS_LZCNT<<8)+0, -
-  XED_IFORM_LZCNT_GPRv_MEMv = (XED_ICLASS_LZCNT<<8)+1, -
-  XED_IFORM_MASKMOVDQU_XMMdq_XMMdq = (XED_ICLASS_MASKMOVDQU<<8)+0, -
-  XED_IFORM_MASKMOVQ_MMXq_MMXq = (XED_ICLASS_MASKMOVQ<<8)+0, -
-  XED_IFORM_MAXPD_XMMpd_MEMpd = (XED_ICLASS_MAXPD<<8)+0, -
-  XED_IFORM_MAXPD_XMMpd_XMMpd = (XED_ICLASS_MAXPD<<8)+1, -
-  XED_IFORM_MAXPS_XMMps_XMMps = (XED_ICLASS_MAXPS<<8)+0, -
-  XED_IFORM_MAXPS_XMMps_MEMps = (XED_ICLASS_MAXPS<<8)+1, -
-  XED_IFORM_MAXSD_XMMsd_XMMsd = (XED_ICLASS_MAXSD<<8)+0, -
-  XED_IFORM_MAXSD_XMMsd_MEMsd = (XED_ICLASS_MAXSD<<8)+1, -
-  XED_IFORM_MAXSS_XMMss_MEMss = (XED_ICLASS_MAXSS<<8)+0, -
-  XED_IFORM_MAXSS_XMMss_XMMss = (XED_ICLASS_MAXSS<<8)+1, -
-  XED_IFORM_MFENCE = (XED_ICLASS_MFENCE<<8)+0, -
-  XED_IFORM_MINPD_XMMpd_MEMpd = (XED_ICLASS_MINPD<<8)+0, -
-  XED_IFORM_MINPD_XMMpd_XMMpd = (XED_ICLASS_MINPD<<8)+1, -
-  XED_IFORM_MINPS_XMMps_XMMps = (XED_ICLASS_MINPS<<8)+0, -
-  XED_IFORM_MINPS_XMMps_MEMps = (XED_ICLASS_MINPS<<8)+1, -
-  XED_IFORM_MINSD_XMMsd_XMMsd = (XED_ICLASS_MINSD<<8)+0, -
-  XED_IFORM_MINSD_XMMsd_MEMsd = (XED_ICLASS_MINSD<<8)+1, -
-  XED_IFORM_MINSS_XMMss_MEMss = (XED_ICLASS_MINSS<<8)+0, -
-  XED_IFORM_MINSS_XMMss_XMMss = (XED_ICLASS_MINSS<<8)+1, -
-  XED_IFORM_MONITOR_EAX_ECX_EDX = (XED_ICLASS_MONITOR<<8)+0, -
-  XED_IFORM_MOV_GPRv_GPRv = (XED_ICLASS_MOV<<8)+0, -
-  XED_IFORM_MOV_GPR8_GPR8 = (XED_ICLASS_MOV<<8)+1, -
-  XED_IFORM_MOV_GPR8_IMM = (XED_ICLASS_MOV<<8)+2, -
-  XED_IFORM_MOV_GPR8_MEMb = (XED_ICLASS_MOV<<8)+3, -
-  XED_IFORM_MOV_MEMv_GPRv = (XED_ICLASS_MOV<<8)+4, -
-  XED_IFORM_MOV_MEMb_GPR8 = (XED_ICLASS_MOV<<8)+5, -
-  XED_IFORM_MOV_MEMv_OrAX = (XED_ICLASS_MOV<<8)+6, -
-  XED_IFORM_MOV_AL_MEMb = (XED_ICLASS_MOV<<8)+7, -
-  XED_IFORM_MOV_MEMb_AL = (XED_ICLASS_MOV<<8)+8, -
-  XED_IFORM_MOV_OrAX_MEMv = (XED_ICLASS_MOV<<8)+9, -
-  XED_IFORM_MOV_MEMw_SEG = (XED_ICLASS_MOV<<8)+10, -
-  XED_IFORM_MOV_GPRv_MEMv = (XED_ICLASS_MOV<<8)+11, -
-  XED_IFORM_MOV_SEG_MEMw = (XED_ICLASS_MOV<<8)+12, -
-  XED_IFORM_MOV_MEMv_IMM = (XED_ICLASS_MOV<<8)+13, -
-  XED_IFORM_MOV_SEG_GPR16 = (XED_ICLASS_MOV<<8)+14, -
-  XED_IFORM_MOV_GPRv_IMM = (XED_ICLASS_MOV<<8)+15, -
-  XED_IFORM_MOV_MEMb_IMM = (XED_ICLASS_MOV<<8)+16, -
-  XED_IFORM_MOV_GPRv_SEG = (XED_ICLASS_MOV<<8)+17, -
-  XED_IFORM_MOVAPD_XMMpd_MEMpd = (XED_ICLASS_MOVAPD<<8)+0, -
-  XED_IFORM_MOVAPD_XMMpd_XMMpd = (XED_ICLASS_MOVAPD<<8)+1, -
-  XED_IFORM_MOVAPD_MEMpd_XMMpd = (XED_ICLASS_MOVAPD<<8)+2, -
-  XED_IFORM_MOVAPS_XMMps_XMMps = (XED_ICLASS_MOVAPS<<8)+0, -
-  XED_IFORM_MOVAPS_XMMps_MEMps = (XED_ICLASS_MOVAPS<<8)+1, -
-  XED_IFORM_MOVAPS_MEMps_XMMps = (XED_ICLASS_MOVAPS<<8)+2, -
-  XED_IFORM_MOVD_MEMd_XMMd = (XED_ICLASS_MOVD<<8)+0, -
-  XED_IFORM_MOVD_GPR32_MMXd = (XED_ICLASS_MOVD<<8)+1, -
-  XED_IFORM_MOVD_MMXq_MEMd = (XED_ICLASS_MOVD<<8)+2, -
-  XED_IFORM_MOVD_XMMdq_MEMd = (XED_ICLASS_MOVD<<8)+3, -
-  XED_IFORM_MOVD_XMMdq_GPR32 = (XED_ICLASS_MOVD<<8)+4, -
-  XED_IFORM_MOVD_GPR32_XMMd = (XED_ICLASS_MOVD<<8)+5, -
-  XED_IFORM_MOVD_MMXq_GPR32 = (XED_ICLASS_MOVD<<8)+6, -
-  XED_IFORM_MOVD_MEMd_MMXd = (XED_ICLASS_MOVD<<8)+7, -
-  XED_IFORM_MOVDDUP_XMMq_XMMq = (XED_ICLASS_MOVDDUP<<8)+0, -
-  XED_IFORM_MOVDDUP_XMMq_MEMq = (XED_ICLASS_MOVDDUP<<8)+1, -
-  XED_IFORM_MOVDQ2Q_MMXq_XMMq = (XED_ICLASS_MOVDQ2Q<<8)+0, -
-  XED_IFORM_MOVDQA_XMMdq_XMMdq = (XED_ICLASS_MOVDQA<<8)+0, -
-  XED_IFORM_MOVDQA_XMMdq_MEMdq = (XED_ICLASS_MOVDQA<<8)+1, -
-  XED_IFORM_MOVDQA_MEMdq_XMMdq = (XED_ICLASS_MOVDQA<<8)+2, -
-  XED_IFORM_MOVDQU_MEMdq_XMMdq = (XED_ICLASS_MOVDQU<<8)+0, -
-  XED_IFORM_MOVDQU_XMMdq_XMMdq = (XED_ICLASS_MOVDQU<<8)+1, -
-  XED_IFORM_MOVDQU_XMMdq_MEMdq = (XED_ICLASS_MOVDQU<<8)+2, -
-  XED_IFORM_MOVHLPS_XMMq_XMMq = (XED_ICLASS_MOVHLPS<<8)+0, -
-  XED_IFORM_MOVHPD_MEMq_XMMsd = (XED_ICLASS_MOVHPD<<8)+0, -
-  XED_IFORM_MOVHPD_XMMsd_MEMq = (XED_ICLASS_MOVHPD<<8)+1, -
-  XED_IFORM_MOVHPS_MEMq_XMMps = (XED_ICLASS_MOVHPS<<8)+0, -
-  XED_IFORM_MOVHPS_XMMq_MEMq = (XED_ICLASS_MOVHPS<<8)+1, -
-  XED_IFORM_MOVLHPS_XMMq_XMMq = (XED_ICLASS_MOVLHPS<<8)+0, -
-  XED_IFORM_MOVLPD_XMMsd_MEMq = (XED_ICLASS_MOVLPD<<8)+0, -
-  XED_IFORM_MOVLPD_MEMq_XMMsd = (XED_ICLASS_MOVLPD<<8)+1, -
-  XED_IFORM_MOVLPS_MEMq_XMMps = (XED_ICLASS_MOVLPS<<8)+0, -
-  XED_IFORM_MOVLPS_XMMq_MEMq = (XED_ICLASS_MOVLPS<<8)+1, -
-  XED_IFORM_MOVMSKPD_GPR32_XMMpd = (XED_ICLASS_MOVMSKPD<<8)+0, -
-  XED_IFORM_MOVMSKPS_GPR32_XMMps = (XED_ICLASS_MOVMSKPS<<8)+0, -
-  XED_IFORM_MOVNTDQ_MEMdq_XMMdq = (XED_ICLASS_MOVNTDQ<<8)+0, -
-  XED_IFORM_MOVNTDQA_XMMdq_MEMdq = (XED_ICLASS_MOVNTDQA<<8)+0, -
-  XED_IFORM_MOVNTI_MEMq_GPR64 = (XED_ICLASS_MOVNTI<<8)+0, -
-  XED_IFORM_MOVNTI_MEMd_GPR32 = (XED_ICLASS_MOVNTI<<8)+1, -
-  XED_IFORM_MOVNTPD_MEMdq_XMMpd = (XED_ICLASS_MOVNTPD<<8)+0, -
-  XED_IFORM_MOVNTPS_MEMdq_XMMps = (XED_ICLASS_MOVNTPS<<8)+0, -
-  XED_IFORM_MOVNTQ_MEMq_MMXq = (XED_ICLASS_MOVNTQ<<8)+0, -
-  XED_IFORM_MOVNTSD_MEMq_XMMq = (XED_ICLASS_MOVNTSD<<8)+0, -
-  XED_IFORM_MOVNTSS_MEMd_XMMd = (XED_ICLASS_MOVNTSS<<8)+0, -
-  XED_IFORM_MOVQ_MMXq_MMXq = (XED_ICLASS_MOVQ<<8)+0, -
-  XED_IFORM_MOVQ_XMMdq_GPR64 = (XED_ICLASS_MOVQ<<8)+1, -
-  XED_IFORM_MOVQ_GPR64_MMXq = (XED_ICLASS_MOVQ<<8)+2, -
-  XED_IFORM_MOVQ_MEMq_XMMq = (XED_ICLASS_MOVQ<<8)+3, -
-  XED_IFORM_MOVQ_MMXq_GPR64 = (XED_ICLASS_MOVQ<<8)+4, -
-  XED_IFORM_MOVQ_MMXq_MEMq = (XED_ICLASS_MOVQ<<8)+5, -
-  XED_IFORM_MOVQ_XMMdq_MEMq = (XED_ICLASS_MOVQ<<8)+6, -
-  XED_IFORM_MOVQ_XMMdq_XMMq = (XED_ICLASS_MOVQ<<8)+7, -
-  XED_IFORM_MOVQ_GPR64_XMMq = (XED_ICLASS_MOVQ<<8)+8, -
-  XED_IFORM_MOVQ_MEMq_MMXq = (XED_ICLASS_MOVQ<<8)+9, -
-  XED_IFORM_MOVQ2DQ_XMMdq_MMXq = (XED_ICLASS_MOVQ2DQ<<8)+0, -
-  XED_IFORM_MOVSB = (XED_ICLASS_MOVSB<<8)+0, -
-  XED_IFORM_MOVSD = (XED_ICLASS_MOVSD<<8)+0, -
-  XED_IFORM_MOVSD_XMM_XMMsd_XMMsd = (XED_ICLASS_MOVSD_XMM<<8)+0, -
-  XED_IFORM_MOVSD_XMM_MEMsd_XMMsd = (XED_ICLASS_MOVSD_XMM<<8)+1, -
-  XED_IFORM_MOVSD_XMM_XMMdq_MEMsd = (XED_ICLASS_MOVSD_XMM<<8)+2, -
-  XED_IFORM_MOVSHDUP_XMMps_XMMps = (XED_ICLASS_MOVSHDUP<<8)+0, -
-  XED_IFORM_MOVSHDUP_XMMps_MEMps = (XED_ICLASS_MOVSHDUP<<8)+1, -
-  XED_IFORM_MOVSLDUP_XMMps_XMMps = (XED_ICLASS_MOVSLDUP<<8)+0, -
-  XED_IFORM_MOVSLDUP_XMMps_MEMps = (XED_ICLASS_MOVSLDUP<<8)+1, -
-  XED_IFORM_MOVSQ = (XED_ICLASS_MOVSQ<<8)+0, -
-  XED_IFORM_MOVSS_MEMss_XMMss = (XED_ICLASS_MOVSS<<8)+0, -
-  XED_IFORM_MOVSS_XMMss_XMMss = (XED_ICLASS_MOVSS<<8)+1, -
-  XED_IFORM_MOVSS_XMMdq_MEMss = (XED_ICLASS_MOVSS<<8)+2, -
-  XED_IFORM_MOVSW = (XED_ICLASS_MOVSW<<8)+0, -
-  XED_IFORM_MOVSX_GPRv_GPR16 = (XED_ICLASS_MOVSX<<8)+0, -
-  XED_IFORM_MOVSX_GPRv_MEMb = (XED_ICLASS_MOVSX<<8)+1, -
-  XED_IFORM_MOVSX_GPRv_GPR8 = (XED_ICLASS_MOVSX<<8)+2, -
-  XED_IFORM_MOVSX_GPRv_MEMw = (XED_ICLASS_MOVSX<<8)+3, -
-  XED_IFORM_MOVSXD_GPRv_MEMd = (XED_ICLASS_MOVSXD<<8)+0, -
-  XED_IFORM_MOVSXD_GPRv_GPR32 = (XED_ICLASS_MOVSXD<<8)+1, -
-  XED_IFORM_MOVUPD_MEMpd_XMMpd = (XED_ICLASS_MOVUPD<<8)+0, -
-  XED_IFORM_MOVUPD_XMMpd_MEMpd = (XED_ICLASS_MOVUPD<<8)+1, -
-  XED_IFORM_MOVUPD_XMMpd_XMMpd = (XED_ICLASS_MOVUPD<<8)+2, -
-  XED_IFORM_MOVUPS_MEMps_XMMps = (XED_ICLASS_MOVUPS<<8)+0, -
-  XED_IFORM_MOVUPS_XMMps_XMMps = (XED_ICLASS_MOVUPS<<8)+1, -
-  XED_IFORM_MOVUPS_XMMps_MEMps = (XED_ICLASS_MOVUPS<<8)+2, -
-  XED_IFORM_MOVZX_GPRv_MEMb = (XED_ICLASS_MOVZX<<8)+0, -
-  XED_IFORM_MOVZX_GPRv_GPR16 = (XED_ICLASS_MOVZX<<8)+1, -
-  XED_IFORM_MOVZX_GPRv_MEMw = (XED_ICLASS_MOVZX<<8)+2, -
-  XED_IFORM_MOVZX_GPRv_GPR8 = (XED_ICLASS_MOVZX<<8)+3, -
-  XED_IFORM_MOV_CR_CR_GPR32 = (XED_ICLASS_MOV_CR<<8)+0, -
-  XED_IFORM_MOV_CR_GPR64_CR = (XED_ICLASS_MOV_CR<<8)+1, -
-  XED_IFORM_MOV_CR_GPR32_CR = (XED_ICLASS_MOV_CR<<8)+2, -
-  XED_IFORM_MOV_CR_CR_GPR64 = (XED_ICLASS_MOV_CR<<8)+3, -
-  XED_IFORM_MOV_DR_GPR64_DR = (XED_ICLASS_MOV_DR<<8)+0, -
-  XED_IFORM_MOV_DR_DR_GPR32 = (XED_ICLASS_MOV_DR<<8)+1, -
-  XED_IFORM_MOV_DR_GPR32_DR = (XED_ICLASS_MOV_DR<<8)+2, -
-  XED_IFORM_MOV_DR_DR_GPR64 = (XED_ICLASS_MOV_DR<<8)+3, -
-  XED_IFORM_MPSADBW_XMMdq_XMMdq_IMM = (XED_ICLASS_MPSADBW<<8)+0, -
-  XED_IFORM_MPSADBW_XMMdq_MEMdq_IMM = (XED_ICLASS_MPSADBW<<8)+1, -
-  XED_IFORM_MUL_MEMb = (XED_ICLASS_MUL<<8)+0, -
-  XED_IFORM_MUL_GPRv = (XED_ICLASS_MUL<<8)+1, -
-  XED_IFORM_MUL_GPR8 = (XED_ICLASS_MUL<<8)+2, -
-  XED_IFORM_MUL_MEMv = (XED_ICLASS_MUL<<8)+3, -
-  XED_IFORM_MULPD_XMMpd_MEMpd = (XED_ICLASS_MULPD<<8)+0, -
-  XED_IFORM_MULPD_XMMpd_XMMpd = (XED_ICLASS_MULPD<<8)+1, -
-  XED_IFORM_MULPS_XMMps_XMMps = (XED_ICLASS_MULPS<<8)+0, -
-  XED_IFORM_MULPS_XMMps_MEMps = (XED_ICLASS_MULPS<<8)+1, -
-  XED_IFORM_MULSD_XMMsd_XMMsd = (XED_ICLASS_MULSD<<8)+0, -
-  XED_IFORM_MULSD_XMMsd_MEMsd = (XED_ICLASS_MULSD<<8)+1, -
-  XED_IFORM_MULSS_XMMss_MEMss = (XED_ICLASS_MULSS<<8)+0, -
-  XED_IFORM_MULSS_XMMss_XMMss = (XED_ICLASS_MULSS<<8)+1, -
-  XED_IFORM_MWAIT_EAX_ECX = (XED_ICLASS_MWAIT<<8)+0, -
-  XED_IFORM_NEG_GPR8 = (XED_ICLASS_NEG<<8)+0, -
-  XED_IFORM_NEG_GPRv = (XED_ICLASS_NEG<<8)+1, -
-  XED_IFORM_NEG_MEMb = (XED_ICLASS_NEG<<8)+2, -
-  XED_IFORM_NEG_MEMv = (XED_ICLASS_NEG<<8)+3, -
-  XED_IFORM_NOP = (XED_ICLASS_NOP<<8)+0, -
-  XED_IFORM_NOP_GPRv_GPRv = (XED_ICLASS_NOP<<8)+1, -
-  XED_IFORM_NOP_MEMv_GPRv = (XED_ICLASS_NOP<<8)+2, -
-  XED_IFORM_NOT_MEMv = (XED_ICLASS_NOT<<8)+0, -
-  XED_IFORM_NOT_GPRv = (XED_ICLASS_NOT<<8)+1, -
-  XED_IFORM_NOT_GPR8 = (XED_ICLASS_NOT<<8)+2, -
-  XED_IFORM_NOT_MEMb = (XED_ICLASS_NOT<<8)+3, -
-  XED_IFORM_OR_GPRv_MEMv = (XED_ICLASS_OR<<8)+0, -
-  XED_IFORM_OR_GPRv_GPRv = (XED_ICLASS_OR<<8)+1, -
-  XED_IFORM_OR_MEMv_IMM = (XED_ICLASS_OR<<8)+2, -
-  XED_IFORM_OR_GPR8_GPR8 = (XED_ICLASS_OR<<8)+3, -
-  XED_IFORM_OR_MEMb_IMM = (XED_ICLASS_OR<<8)+4, -
-  XED_IFORM_OR_MEMv_GPRv = (XED_ICLASS_OR<<8)+5, -
-  XED_IFORM_OR_GPRv_IMM = (XED_ICLASS_OR<<8)+6, -
-  XED_IFORM_OR_MEMb_GPR8 = (XED_ICLASS_OR<<8)+7, -
-  XED_IFORM_OR_GPR8_IMM = (XED_ICLASS_OR<<8)+8, -
-  XED_IFORM_OR_AL_IMM = (XED_ICLASS_OR<<8)+9, -
-  XED_IFORM_OR_GPR8_MEMb = (XED_ICLASS_OR<<8)+10, -
-  XED_IFORM_OR_OrAX_IMM = (XED_ICLASS_OR<<8)+11, -
-  XED_IFORM_ORPD_XMMpd_MEMpd = (XED_ICLASS_ORPD<<8)+0, -
-  XED_IFORM_ORPD_XMMpd_XMMpd = (XED_ICLASS_ORPD<<8)+1, -
-  XED_IFORM_ORPS_XMMps_XMMps = (XED_ICLASS_ORPS<<8)+0, -
-  XED_IFORM_ORPS_XMMps_MEMps = (XED_ICLASS_ORPS<<8)+1, -
-  XED_IFORM_OUT_IMM_AL = (XED_ICLASS_OUT<<8)+0, -
-  XED_IFORM_OUT_DX_AL = (XED_ICLASS_OUT<<8)+1, -
-  XED_IFORM_OUT_IMM_OeAX = (XED_ICLASS_OUT<<8)+2, -
-  XED_IFORM_OUT_DX_OeAX = (XED_ICLASS_OUT<<8)+3, -
-  XED_IFORM_OUTSB = (XED_ICLASS_OUTSB<<8)+0, -
-  XED_IFORM_OUTSD = (XED_ICLASS_OUTSD<<8)+0, -
-  XED_IFORM_OUTSW = (XED_ICLASS_OUTSW<<8)+0, -
-  XED_IFORM_PABSB_MMXq_MEMq = (XED_ICLASS_PABSB<<8)+0, -
-  XED_IFORM_PABSB_XMMdq_MEMdq = (XED_ICLASS_PABSB<<8)+1, -
-  XED_IFORM_PABSB_MMXq_MMXq = (XED_ICLASS_PABSB<<8)+2, -
-  XED_IFORM_PABSB_XMMdq_XMMdq = (XED_ICLASS_PABSB<<8)+3, -
-  XED_IFORM_PABSD_MMXq_MEMq = (XED_ICLASS_PABSD<<8)+0, -
-  XED_IFORM_PABSD_MMXq_MMXq = (XED_ICLASS_PABSD<<8)+1, -
-  XED_IFORM_PABSD_XMMdq_MEMdq = (XED_ICLASS_PABSD<<8)+2, -
-  XED_IFORM_PABSD_XMMdq_XMMdq = (XED_ICLASS_PABSD<<8)+3, -
-  XED_IFORM_PABSW_XMMdq_MEMdq = (XED_ICLASS_PABSW<<8)+0, -
-  XED_IFORM_PABSW_MMXq_MMXq = (XED_ICLASS_PABSW<<8)+1, -
-  XED_IFORM_PABSW_XMMdq_XMMdq = (XED_ICLASS_PABSW<<8)+2, -
-  XED_IFORM_PABSW_MMXq_MEMq = (XED_ICLASS_PABSW<<8)+3, -
-  XED_IFORM_PACKSSDW_XMMdq_MEMdq = (XED_ICLASS_PACKSSDW<<8)+0, -
-  XED_IFORM_PACKSSDW_MMXq_MEMq = (XED_ICLASS_PACKSSDW<<8)+1, -
-  XED_IFORM_PACKSSDW_MMXq_MMXq = (XED_ICLASS_PACKSSDW<<8)+2, -
-  XED_IFORM_PACKSSDW_XMMdq_XMMdq = (XED_ICLASS_PACKSSDW<<8)+3, -
-  XED_IFORM_PACKSSWB_MMXq_MMXq = (XED_ICLASS_PACKSSWB<<8)+0, -
-  XED_IFORM_PACKSSWB_XMMdq_MEMdq = (XED_ICLASS_PACKSSWB<<8)+1, -
-  XED_IFORM_PACKSSWB_XMMdq_XMMdq = (XED_ICLASS_PACKSSWB<<8)+2, -
-  XED_IFORM_PACKSSWB_MMXq_MEMq = (XED_ICLASS_PACKSSWB<<8)+3, -
-  XED_IFORM_PACKUSDW_XMMdq_XMMdq = (XED_ICLASS_PACKUSDW<<8)+0, -
-  XED_IFORM_PACKUSDW_XMMdq_MEMdq = (XED_ICLASS_PACKUSDW<<8)+1, -
-  XED_IFORM_PACKUSWB_XMMdq_XMMdq = (XED_ICLASS_PACKUSWB<<8)+0, -
-  XED_IFORM_PACKUSWB_XMMdq_MEMdq = (XED_ICLASS_PACKUSWB<<8)+1, -
-  XED_IFORM_PACKUSWB_MMXq_MEMq = (XED_ICLASS_PACKUSWB<<8)+2, -
-  XED_IFORM_PACKUSWB_MMXq_MMXq = (XED_ICLASS_PACKUSWB<<8)+3, -
-  XED_IFORM_PADDB_XMMdq_XMMdq = (XED_ICLASS_PADDB<<8)+0, -
-  XED_IFORM_PADDB_XMMdq_MEMdq = (XED_ICLASS_PADDB<<8)+1, -
-  XED_IFORM_PADDB_MMXq_MMXq = (XED_ICLASS_PADDB<<8)+2, -
-  XED_IFORM_PADDB_MMXq_MEMq = (XED_ICLASS_PADDB<<8)+3, -
-  XED_IFORM_PADDD_XMMdq_MEMdq = (XED_ICLASS_PADDD<<8)+0, -
-  XED_IFORM_PADDD_MMXq_MMXq = (XED_ICLASS_PADDD<<8)+1, -
-  XED_IFORM_PADDD_XMMdq_XMMdq = (XED_ICLASS_PADDD<<8)+2, -
-  XED_IFORM_PADDD_MMXq_MEMq = (XED_ICLASS_PADDD<<8)+3, -
-  XED_IFORM_PADDQ_MMXq_MEMq = (XED_ICLASS_PADDQ<<8)+0, -
-  XED_IFORM_PADDQ_XMMdq_MEMdq = (XED_ICLASS_PADDQ<<8)+1, -
-  XED_IFORM_PADDQ_MMXq_MMXq = (XED_ICLASS_PADDQ<<8)+2, -
-  XED_IFORM_PADDQ_XMMdq_XMMdq = (XED_ICLASS_PADDQ<<8)+3, -
-  XED_IFORM_PADDSB_XMMdq_XMMdq = (XED_ICLASS_PADDSB<<8)+0, -
-  XED_IFORM_PADDSB_XMMdq_MEMdq = (XED_ICLASS_PADDSB<<8)+1, -
-  XED_IFORM_PADDSB_MMXq_MMXq = (XED_ICLASS_PADDSB<<8)+2, -
-  XED_IFORM_PADDSB_MMXq_MEMq = (XED_ICLASS_PADDSB<<8)+3, -
-  XED_IFORM_PADDSW_MMXq_MEMq = (XED_ICLASS_PADDSW<<8)+0, -
-  XED_IFORM_PADDSW_MMXq_MMXq = (XED_ICLASS_PADDSW<<8)+1, -
-  XED_IFORM_PADDSW_XMMdq_MEMdq = (XED_ICLASS_PADDSW<<8)+2, -
-  XED_IFORM_PADDSW_XMMdq_XMMdq = (XED_ICLASS_PADDSW<<8)+3, -
-  XED_IFORM_PADDUSB_XMMdq_XMMdq = (XED_ICLASS_PADDUSB<<8)+0, -
-  XED_IFORM_PADDUSB_MMXq_MEMq = (XED_ICLASS_PADDUSB<<8)+1, -
-  XED_IFORM_PADDUSB_MMXq_MMXq = (XED_ICLASS_PADDUSB<<8)+2, -
-  XED_IFORM_PADDUSB_XMMdq_MEMdq = (XED_ICLASS_PADDUSB<<8)+3, -
-  XED_IFORM_PADDUSW_XMMdq_MEMdq = (XED_ICLASS_PADDUSW<<8)+0, -
-  XED_IFORM_PADDUSW_MMXq_MMXq = (XED_ICLASS_PADDUSW<<8)+1, -
-  XED_IFORM_PADDUSW_MMXq_MEMq = (XED_ICLASS_PADDUSW<<8)+2, -
-  XED_IFORM_PADDUSW_XMMdq_XMMdq = (XED_ICLASS_PADDUSW<<8)+3, -
-  XED_IFORM_PADDW_MMXq_MEMq = (XED_ICLASS_PADDW<<8)+0, -
-  XED_IFORM_PADDW_MMXq_MMXq = (XED_ICLASS_PADDW<<8)+1, -
-  XED_IFORM_PADDW_XMMdq_MEMdq = (XED_ICLASS_PADDW<<8)+2, -
-  XED_IFORM_PADDW_XMMdq_XMMdq = (XED_ICLASS_PADDW<<8)+3, -
-  XED_IFORM_PALIGNR_XMMdq_XMMdq_IMM = (XED_ICLASS_PALIGNR<<8)+0, -
-  XED_IFORM_PALIGNR_MMXq_MEMq_IMM = (XED_ICLASS_PALIGNR<<8)+1, -
-  XED_IFORM_PALIGNR_MMXq_MMXq_IMM = (XED_ICLASS_PALIGNR<<8)+2, -
-  XED_IFORM_PALIGNR_XMMdq_MEMdq_IMM = (XED_ICLASS_PALIGNR<<8)+3, -
-  XED_IFORM_PAND_MMXq_MMXq = (XED_ICLASS_PAND<<8)+0, -
-  XED_IFORM_PAND_MMXq_MEMq = (XED_ICLASS_PAND<<8)+1, -
-  XED_IFORM_PAND_XMMdq_XMMdq = (XED_ICLASS_PAND<<8)+2, -
-  XED_IFORM_PAND_XMMdq_MEMdq = (XED_ICLASS_PAND<<8)+3, -
-  XED_IFORM_PANDN_XMMdq_MEMdq = (XED_ICLASS_PANDN<<8)+0, -
-  XED_IFORM_PANDN_MMXq_MMXq = (XED_ICLASS_PANDN<<8)+1, -
-  XED_IFORM_PANDN_XMMdq_XMMdq = (XED_ICLASS_PANDN<<8)+2, -
-  XED_IFORM_PANDN_MMXq_MEMq = (XED_ICLASS_PANDN<<8)+3, -
-  XED_IFORM_PAUSE = (XED_ICLASS_PAUSE<<8)+0, -
-  XED_IFORM_PAVGB_XMMdq_MEMdq = (XED_ICLASS_PAVGB<<8)+0, -
-  XED_IFORM_PAVGB_MMXq_MEMq = (XED_ICLASS_PAVGB<<8)+1, -
-  XED_IFORM_PAVGB_XMMdq_XMMdq = (XED_ICLASS_PAVGB<<8)+2, -
-  XED_IFORM_PAVGB_MMXq_MMXq = (XED_ICLASS_PAVGB<<8)+3, -
-  XED_IFORM_PAVGUSB_MMXq_MEMq = (XED_ICLASS_PAVGUSB<<8)+0, -
-  XED_IFORM_PAVGUSB_MMXq_MMXq = (XED_ICLASS_PAVGUSB<<8)+1, -
-  XED_IFORM_PAVGW_XMMdq_MEMdq = (XED_ICLASS_PAVGW<<8)+0, -
-  XED_IFORM_PAVGW_MMXq_MMXq = (XED_ICLASS_PAVGW<<8)+1, -
-  XED_IFORM_PAVGW_XMMdq_XMMdq = (XED_ICLASS_PAVGW<<8)+2, -
-  XED_IFORM_PAVGW_MMXq_MEMq = (XED_ICLASS_PAVGW<<8)+3, -
-  XED_IFORM_PBLENDVB_XMMdq_XMMdq_XMM0dq = (XED_ICLASS_PBLENDVB<<8)+0, -
-  XED_IFORM_PBLENDVB_XMMdq_MEMdq_XMM0dq = (XED_ICLASS_PBLENDVB<<8)+1, -
-  XED_IFORM_PBLENDW_XMMdq_MEMdq_IMM = (XED_ICLASS_PBLENDW<<8)+0, -
-  XED_IFORM_PBLENDW_XMMdq_XMMdq_IMM = (XED_ICLASS_PBLENDW<<8)+1, -
-  XED_IFORM_PCMPEQB_XMMdq_MEMdq = (XED_ICLASS_PCMPEQB<<8)+0, -
-  XED_IFORM_PCMPEQB_MMXq_MMXq = (XED_ICLASS_PCMPEQB<<8)+1, -
-  XED_IFORM_PCMPEQB_MMXq_MEMq = (XED_ICLASS_PCMPEQB<<8)+2, -
-  XED_IFORM_PCMPEQB_XMMdq_XMMdq = (XED_ICLASS_PCMPEQB<<8)+3, -
-  XED_IFORM_PCMPEQD_XMMdq_MEMdq = (XED_ICLASS_PCMPEQD<<8)+0, -
-  XED_IFORM_PCMPEQD_XMMdq_XMMdq = (XED_ICLASS_PCMPEQD<<8)+1, -
-  XED_IFORM_PCMPEQD_MMXq_MMXq = (XED_ICLASS_PCMPEQD<<8)+2, -
-  XED_IFORM_PCMPEQD_MMXq_MEMq = (XED_ICLASS_PCMPEQD<<8)+3, -
-  XED_IFORM_PCMPEQQ_XMMdq_XMMdq = (XED_ICLASS_PCMPEQQ<<8)+0, -
-  XED_IFORM_PCMPEQQ_XMMdq_MEMdq = (XED_ICLASS_PCMPEQQ<<8)+1, -
-  XED_IFORM_PCMPEQW_XMMdq_XMMdq = (XED_ICLASS_PCMPEQW<<8)+0, -
-  XED_IFORM_PCMPEQW_MMXq_MEMq = (XED_ICLASS_PCMPEQW<<8)+1, -
-  XED_IFORM_PCMPEQW_MMXq_MMXq = (XED_ICLASS_PCMPEQW<<8)+2, -
-  XED_IFORM_PCMPEQW_XMMdq_MEMdq = (XED_ICLASS_PCMPEQW<<8)+3, -
-  XED_IFORM_PCMPESTRI_XMMdq_XMMdq_IMM = (XED_ICLASS_PCMPESTRI<<8)+0, -
-  XED_IFORM_PCMPESTRI_XMMdq_MEMdq_IMM = (XED_ICLASS_PCMPESTRI<<8)+1, -
-  XED_IFORM_PCMPESTRM_XMMdq_MEMdq_IMM = (XED_ICLASS_PCMPESTRM<<8)+0, -
-  XED_IFORM_PCMPESTRM_XMMdq_XMMdq_IMM = (XED_ICLASS_PCMPESTRM<<8)+1, -
-  XED_IFORM_PCMPGTB_MMXq_MMXq = (XED_ICLASS_PCMPGTB<<8)+0, -
-  XED_IFORM_PCMPGTB_XMMdq_MEMdq = (XED_ICLASS_PCMPGTB<<8)+1, -
-  XED_IFORM_PCMPGTB_XMMdq_XMMdq = (XED_ICLASS_PCMPGTB<<8)+2, -
-  XED_IFORM_PCMPGTB_MMXq_MEMq = (XED_ICLASS_PCMPGTB<<8)+3, -
-  XED_IFORM_PCMPGTD_XMMdq_XMMdq = (XED_ICLASS_PCMPGTD<<8)+0, -
-  XED_IFORM_PCMPGTD_XMMdq_MEMdq = (XED_ICLASS_PCMPGTD<<8)+1, -
-  XED_IFORM_PCMPGTD_MMXq_MEMq = (XED_ICLASS_PCMPGTD<<8)+2, -
-  XED_IFORM_PCMPGTD_MMXq_MMXq = (XED_ICLASS_PCMPGTD<<8)+3, -
-  XED_IFORM_PCMPGTQ_XMMdq_MEMdq = (XED_ICLASS_PCMPGTQ<<8)+0, -
-  XED_IFORM_PCMPGTQ_XMMdq_XMMdq = (XED_ICLASS_PCMPGTQ<<8)+1, -
-  XED_IFORM_PCMPGTW_MMXq_MMXq = (XED_ICLASS_PCMPGTW<<8)+0, -
-  XED_IFORM_PCMPGTW_MMXq_MEMq = (XED_ICLASS_PCMPGTW<<8)+1, -
-  XED_IFORM_PCMPGTW_XMMdq_XMMdq = (XED_ICLASS_PCMPGTW<<8)+2, -
-  XED_IFORM_PCMPGTW_XMMdq_MEMdq = (XED_ICLASS_PCMPGTW<<8)+3, -
-  XED_IFORM_PCMPISTRI_XMMdq_MEMdq_IMM = (XED_ICLASS_PCMPISTRI<<8)+0, -
-  XED_IFORM_PCMPISTRI_XMMdq_XMMdq_IMM = (XED_ICLASS_PCMPISTRI<<8)+1, -
-  XED_IFORM_PCMPISTRM_XMMdq_XMMdq_IMM = (XED_ICLASS_PCMPISTRM<<8)+0, -
-  XED_IFORM_PCMPISTRM_XMMdq_MEMdq_IMM = (XED_ICLASS_PCMPISTRM<<8)+1, -
-  XED_IFORM_PEXTRB_MEMb_XMMdq_IMM = (XED_ICLASS_PEXTRB<<8)+0, -
-  XED_IFORM_PEXTRB_GPR32d_XMMdq_IMM = (XED_ICLASS_PEXTRB<<8)+1, -
-  XED_IFORM_PEXTRD_MEMd_XMMdq_IMM = (XED_ICLASS_PEXTRD<<8)+0, -
-  XED_IFORM_PEXTRD_GPR32d_XMMdq_IMM = (XED_ICLASS_PEXTRD<<8)+1, -
-  XED_IFORM_PEXTRQ_MEMq_XMMdq_IMM = (XED_ICLASS_PEXTRQ<<8)+0, -
-  XED_IFORM_PEXTRQ_GPR64q_XMMdq_IMM = (XED_ICLASS_PEXTRQ<<8)+1, -
-  XED_IFORM_PEXTRW_GPRy_XMMdq_IMM = (XED_ICLASS_PEXTRW<<8)+0, -
-  XED_IFORM_PEXTRW_MEMw_XMMdq_IMM = (XED_ICLASS_PEXTRW<<8)+1, -
-  XED_IFORM_PEXTRW_GPRy_MMXq_IMM = (XED_ICLASS_PEXTRW<<8)+2, -
-  XED_IFORM_PEXTRW_GPR32d_XMMdq_IMM = (XED_ICLASS_PEXTRW<<8)+3, -
-  XED_IFORM_PF2ID_MMXq_MMXq = (XED_ICLASS_PF2ID<<8)+0, -
-  XED_IFORM_PF2ID_MMXq_MEMq = (XED_ICLASS_PF2ID<<8)+1, -
-  XED_IFORM_PF2IW_MMXq_MEMq = (XED_ICLASS_PF2IW<<8)+0, -
-  XED_IFORM_PF2IW_MMXq_MMXq = (XED_ICLASS_PF2IW<<8)+1, -
-  XED_IFORM_PFACC_MMXq_MEMq = (XED_ICLASS_PFACC<<8)+0, -
-  XED_IFORM_PFACC_MMXq_MMXq = (XED_ICLASS_PFACC<<8)+1, -
-  XED_IFORM_PFADD_MMXq_MMXq = (XED_ICLASS_PFADD<<8)+0, -
-  XED_IFORM_PFADD_MMXq_MEMq = (XED_ICLASS_PFADD<<8)+1, -
-  XED_IFORM_PFCMPEQ_MMXq_MMXq = (XED_ICLASS_PFCMPEQ<<8)+0, -
-  XED_IFORM_PFCMPEQ_MMXq_MEMq = (XED_ICLASS_PFCMPEQ<<8)+1, -
-  XED_IFORM_PFCMPGE_MMXq_MEMq = (XED_ICLASS_PFCMPGE<<8)+0, -
-  XED_IFORM_PFCMPGE_MMXq_MMXq = (XED_ICLASS_PFCMPGE<<8)+1, -
-  XED_IFORM_PFCMPGT_MMXq_MEMq = (XED_ICLASS_PFCMPGT<<8)+0, -
-  XED_IFORM_PFCMPGT_MMXq_MMXq = (XED_ICLASS_PFCMPGT<<8)+1, -
-  XED_IFORM_PFCPIT1_MMXq_MMXq = (XED_ICLASS_PFCPIT1<<8)+0, -
-  XED_IFORM_PFCPIT1_MMXq_MEMq = (XED_ICLASS_PFCPIT1<<8)+1, -
-  XED_IFORM_PFMAX_MMXq_MEMq = (XED_ICLASS_PFMAX<<8)+0, -
-  XED_IFORM_PFMAX_MMXq_MMXq = (XED_ICLASS_PFMAX<<8)+1, -
-  XED_IFORM_PFMIN_MMXq_MEMq = (XED_ICLASS_PFMIN<<8)+0, -
-  XED_IFORM_PFMIN_MMXq_MMXq = (XED_ICLASS_PFMIN<<8)+1, -
-  XED_IFORM_PFMUL_MMXq_MEMq = (XED_ICLASS_PFMUL<<8)+0, -
-  XED_IFORM_PFMUL_MMXq_MMXq = (XED_ICLASS_PFMUL<<8)+1, -
-  XED_IFORM_PFNACC_MMXq_MEMq = (XED_ICLASS_PFNACC<<8)+0, -
-  XED_IFORM_PFNACC_MMXq_MMXq = (XED_ICLASS_PFNACC<<8)+1, -
-  XED_IFORM_PFPNACC_MMXq_MEMq = (XED_ICLASS_PFPNACC<<8)+0, -
-  XED_IFORM_PFPNACC_MMXq_MMXq = (XED_ICLASS_PFPNACC<<8)+1, -
-  XED_IFORM_PFRCP_MMXq_MMXq = (XED_ICLASS_PFRCP<<8)+0, -
-  XED_IFORM_PFRCP_MMXq_MEMq = (XED_ICLASS_PFRCP<<8)+1, -
-  XED_IFORM_PFRCPIT2_MMXq_MEMq = (XED_ICLASS_PFRCPIT2<<8)+0, -
-  XED_IFORM_PFRCPIT2_MMXq_MMXq = (XED_ICLASS_PFRCPIT2<<8)+1, -
-  XED_IFORM_PFRSQIT1_MMXq_MEMq = (XED_ICLASS_PFRSQIT1<<8)+0, -
-  XED_IFORM_PFRSQIT1_MMXq_MMXq = (XED_ICLASS_PFRSQIT1<<8)+1, -
-  XED_IFORM_PFSQRT_MMXq_MMXq = (XED_ICLASS_PFSQRT<<8)+0, -
-  XED_IFORM_PFSQRT_MMXq_MEMq = (XED_ICLASS_PFSQRT<<8)+1, -
-  XED_IFORM_PFSUB_MMXq_MEMq = (XED_ICLASS_PFSUB<<8)+0, -
-  XED_IFORM_PFSUB_MMXq_MMXq = (XED_ICLASS_PFSUB<<8)+1, -
-  XED_IFORM_PFSUBR_MMXq_MMXq = (XED_ICLASS_PFSUBR<<8)+0, -
-  XED_IFORM_PFSUBR_MMXq_MEMq = (XED_ICLASS_PFSUBR<<8)+1, -
-  XED_IFORM_PHADDD_MMXq_MEMq = (XED_ICLASS_PHADDD<<8)+0, -
-  XED_IFORM_PHADDD_MMXq_MMXq = (XED_ICLASS_PHADDD<<8)+1, -
-  XED_IFORM_PHADDD_XMMdq_MEMdq = (XED_ICLASS_PHADDD<<8)+2, -
-  XED_IFORM_PHADDD_XMMdq_XMMdq = (XED_ICLASS_PHADDD<<8)+3, -
-  XED_IFORM_PHADDSW_MMXq_MEMq = (XED_ICLASS_PHADDSW<<8)+0, -
-  XED_IFORM_PHADDSW_MMXq_MMXq = (XED_ICLASS_PHADDSW<<8)+1, -
-  XED_IFORM_PHADDSW_XMMdq_XMMdq = (XED_ICLASS_PHADDSW<<8)+2, -
-  XED_IFORM_PHADDSW_XMMdq_MEMdq = (XED_ICLASS_PHADDSW<<8)+3, -
-  XED_IFORM_PHADDW_XMMdq_MEMdq = (XED_ICLASS_PHADDW<<8)+0, -
-  XED_IFORM_PHADDW_MMXq_MMXq = (XED_ICLASS_PHADDW<<8)+1, -
-  XED_IFORM_PHADDW_XMMdq_XMMdq = (XED_ICLASS_PHADDW<<8)+2, -
-  XED_IFORM_PHADDW_MMXq_MEMq = (XED_ICLASS_PHADDW<<8)+3, -
-  XED_IFORM_PHMINPOSUW_XMMdq_XMMdq = (XED_ICLASS_PHMINPOSUW<<8)+0, -
-  XED_IFORM_PHMINPOSUW_XMMdq_MEMdq = (XED_ICLASS_PHMINPOSUW<<8)+1, -
-  XED_IFORM_PHSUBD_MMXq_MEMq = (XED_ICLASS_PHSUBD<<8)+0, -
-  XED_IFORM_PHSUBD_XMMdq_XMMdq = (XED_ICLASS_PHSUBD<<8)+1, -
-  XED_IFORM_PHSUBD_XMMdq_MEMdq = (XED_ICLASS_PHSUBD<<8)+2, -
-  XED_IFORM_PHSUBD_MMXq_MMXq = (XED_ICLASS_PHSUBD<<8)+3, -
-  XED_IFORM_PHSUBSW_XMMdq_MEMdq = (XED_ICLASS_PHSUBSW<<8)+0, -
-  XED_IFORM_PHSUBSW_MMXq_MMXq = (XED_ICLASS_PHSUBSW<<8)+1, -
-  XED_IFORM_PHSUBSW_MMXq_MEMq = (XED_ICLASS_PHSUBSW<<8)+2, -
-  XED_IFORM_PHSUBSW_XMMdq_XMMdq = (XED_ICLASS_PHSUBSW<<8)+3, -
-  XED_IFORM_PHSUBW_MMXq_MMXq = (XED_ICLASS_PHSUBW<<8)+0, -
-  XED_IFORM_PHSUBW_XMMdq_MEMdq = (XED_ICLASS_PHSUBW<<8)+1, -
-  XED_IFORM_PHSUBW_MMXq_MEMq = (XED_ICLASS_PHSUBW<<8)+2, -
-  XED_IFORM_PHSUBW_XMMdq_XMMdq = (XED_ICLASS_PHSUBW<<8)+3, -
-  XED_IFORM_PI2FD_MMXq_MMXq = (XED_ICLASS_PI2FD<<8)+0, -
-  XED_IFORM_PI2FD_MMXq_MEMq = (XED_ICLASS_PI2FD<<8)+1, -
-  XED_IFORM_PI2FW_MMXq_MEMq = (XED_ICLASS_PI2FW<<8)+0, -
-  XED_IFORM_PI2FW_MMXq_MMXq = (XED_ICLASS_PI2FW<<8)+1, -
-  XED_IFORM_PINSRB_XMMdq_MEMb_IMM = (XED_ICLASS_PINSRB<<8)+0, -
-  XED_IFORM_PINSRB_XMMdq_GPR32d_IMM = (XED_ICLASS_PINSRB<<8)+1, -
-  XED_IFORM_PINSRD_XMMdq_GPR32d_IMM = (XED_ICLASS_PINSRD<<8)+0, -
-  XED_IFORM_PINSRD_XMMdq_MEMd_IMM = (XED_ICLASS_PINSRD<<8)+1, -
-  XED_IFORM_PINSRQ_XMMdq_GPR64q_IMM = (XED_ICLASS_PINSRQ<<8)+0, -
-  XED_IFORM_PINSRQ_XMMdq_MEMq_IMM = (XED_ICLASS_PINSRQ<<8)+1, -
-  XED_IFORM_PINSRW_MMXq_MEMw_IMM = (XED_ICLASS_PINSRW<<8)+0, -
-  XED_IFORM_PINSRW_XMMdq_GPRy_IMM = (XED_ICLASS_PINSRW<<8)+1, -
-  XED_IFORM_PINSRW_MMXq_GPRy_IMM = (XED_ICLASS_PINSRW<<8)+2, -
-  XED_IFORM_PINSRW_XMMdq_MEMw_IMM = (XED_ICLASS_PINSRW<<8)+3, -
-  XED_IFORM_PMADDUBSW_XMMdq_XMMdq = (XED_ICLASS_PMADDUBSW<<8)+0, -
-  XED_IFORM_PMADDUBSW_XMMdq_MEMdq = (XED_ICLASS_PMADDUBSW<<8)+1, -
-  XED_IFORM_PMADDUBSW_MMXq_MMXq = (XED_ICLASS_PMADDUBSW<<8)+2, -
-  XED_IFORM_PMADDUBSW_MMXq_MEMq = (XED_ICLASS_PMADDUBSW<<8)+3, -
-  XED_IFORM_PMADDWD_XMMdq_XMMdq = (XED_ICLASS_PMADDWD<<8)+0, -
-  XED_IFORM_PMADDWD_XMMdq_MEMdq = (XED_ICLASS_PMADDWD<<8)+1, -
-  XED_IFORM_PMADDWD_MMXq_MEMq = (XED_ICLASS_PMADDWD<<8)+2, -
-  XED_IFORM_PMADDWD_MMXq_MMXq = (XED_ICLASS_PMADDWD<<8)+3, -
-  XED_IFORM_PMAXSB_XMMdq_MEMdq = (XED_ICLASS_PMAXSB<<8)+0, -
-  XED_IFORM_PMAXSB_XMMdq_XMMdq = (XED_ICLASS_PMAXSB<<8)+1, -
-  XED_IFORM_PMAXSD_XMMdq_MEMdq = (XED_ICLASS_PMAXSD<<8)+0, -
-  XED_IFORM_PMAXSD_XMMdq_XMMdq = (XED_ICLASS_PMAXSD<<8)+1, -
-  XED_IFORM_PMAXSW_MMXq_MMXq = (XED_ICLASS_PMAXSW<<8)+0, -
-  XED_IFORM_PMAXSW_XMMdq_XMMdq = (XED_ICLASS_PMAXSW<<8)+1, -
-  XED_IFORM_PMAXSW_MMXq_MEMq = (XED_ICLASS_PMAXSW<<8)+2, -
-  XED_IFORM_PMAXSW_XMMdq_MEMdq = (XED_ICLASS_PMAXSW<<8)+3, -
-  XED_IFORM_PMAXUB_XMMdq_MEMdq = (XED_ICLASS_PMAXUB<<8)+0, -
-  XED_IFORM_PMAXUB_XMMdq_XMMdq = (XED_ICLASS_PMAXUB<<8)+1, -
-  XED_IFORM_PMAXUB_MMXq_MEMq = (XED_ICLASS_PMAXUB<<8)+2, -
-  XED_IFORM_PMAXUB_MMXq_MMXq = (XED_ICLASS_PMAXUB<<8)+3, -
-  XED_IFORM_PMAXUD_XMMdq_MEMdq = (XED_ICLASS_PMAXUD<<8)+0, -
-  XED_IFORM_PMAXUD_XMMdq_XMMdq = (XED_ICLASS_PMAXUD<<8)+1, -
-  XED_IFORM_PMAXUW_XMMdq_XMMdq = (XED_ICLASS_PMAXUW<<8)+0, -
-  XED_IFORM_PMAXUW_XMMdq_MEMdq = (XED_ICLASS_PMAXUW<<8)+1, -
-  XED_IFORM_PMINSB_XMMdq_MEMdq = (XED_ICLASS_PMINSB<<8)+0, -
-  XED_IFORM_PMINSB_XMMdq_XMMdq = (XED_ICLASS_PMINSB<<8)+1, -
-  XED_IFORM_PMINSD_XMMdq_MEMdq = (XED_ICLASS_PMINSD<<8)+0, -
-  XED_IFORM_PMINSD_XMMdq_XMMdq = (XED_ICLASS_PMINSD<<8)+1, -
-  XED_IFORM_PMINSW_XMMdq_XMMdq = (XED_ICLASS_PMINSW<<8)+0, -
-  XED_IFORM_PMINSW_XMMdq_MEMdq = (XED_ICLASS_PMINSW<<8)+1, -
-  XED_IFORM_PMINSW_MMXq_MMXq = (XED_ICLASS_PMINSW<<8)+2, -
-  XED_IFORM_PMINSW_MMXq_MEMq = (XED_ICLASS_PMINSW<<8)+3, -
-  XED_IFORM_PMINUB_MMXq_MEMq = (XED_ICLASS_PMINUB<<8)+0, -
-  XED_IFORM_PMINUB_XMMdq_XMMdq = (XED_ICLASS_PMINUB<<8)+1, -
-  XED_IFORM_PMINUB_XMMdq_MEMdq = (XED_ICLASS_PMINUB<<8)+2, -
-  XED_IFORM_PMINUB_MMXq_MMXq = (XED_ICLASS_PMINUB<<8)+3, -
-  XED_IFORM_PMINUD_XMMdq_MEMdq = (XED_ICLASS_PMINUD<<8)+0, -
-  XED_IFORM_PMINUD_XMMdq_XMMdq = (XED_ICLASS_PMINUD<<8)+1, -
-  XED_IFORM_PMINUW_XMMdq_XMMdq = (XED_ICLASS_PMINUW<<8)+0, -
-  XED_IFORM_PMINUW_XMMdq_MEMdq = (XED_ICLASS_PMINUW<<8)+1, -
-  XED_IFORM_PMOVMSKB_GPR32_XMMdq = (XED_ICLASS_PMOVMSKB<<8)+0, -
-  XED_IFORM_PMOVMSKB_GPR32_MMXq = (XED_ICLASS_PMOVMSKB<<8)+1, -
-  XED_IFORM_PMOVSXBD_XMMdq_MEMd = (XED_ICLASS_PMOVSXBD<<8)+0, -
-  XED_IFORM_PMOVSXBD_XMMdq_XMMd = (XED_ICLASS_PMOVSXBD<<8)+1, -
-  XED_IFORM_PMOVSXBQ_XMMdq_MEMw = (XED_ICLASS_PMOVSXBQ<<8)+0, -
-  XED_IFORM_PMOVSXBQ_XMMdq_XMMw = (XED_ICLASS_PMOVSXBQ<<8)+1, -
-  XED_IFORM_PMOVSXBW_XMMdq_XMMq = (XED_ICLASS_PMOVSXBW<<8)+0, -
-  XED_IFORM_PMOVSXBW_XMMdq_MEMq = (XED_ICLASS_PMOVSXBW<<8)+1, -
-  XED_IFORM_PMOVSXDQ_XMMdq_XMMq = (XED_ICLASS_PMOVSXDQ<<8)+0, -
-  XED_IFORM_PMOVSXDQ_XMMdq_MEMq = (XED_ICLASS_PMOVSXDQ<<8)+1, -
-  XED_IFORM_PMOVSXWD_XMMdq_XMMq = (XED_ICLASS_PMOVSXWD<<8)+0, -
-  XED_IFORM_PMOVSXWD_XMMdq_MEMq = (XED_ICLASS_PMOVSXWD<<8)+1, -
-  XED_IFORM_PMOVSXWQ_XMMdq_MEMd = (XED_ICLASS_PMOVSXWQ<<8)+0, -
-  XED_IFORM_PMOVSXWQ_XMMdq_XMMd = (XED_ICLASS_PMOVSXWQ<<8)+1, -
-  XED_IFORM_PMOVZXBD_XMMdq_XMMd = (XED_ICLASS_PMOVZXBD<<8)+0, -
-  XED_IFORM_PMOVZXBD_XMMdq_MEMd = (XED_ICLASS_PMOVZXBD<<8)+1, -
-  XED_IFORM_PMOVZXBQ_XMMdq_XMMw = (XED_ICLASS_PMOVZXBQ<<8)+0, -
-  XED_IFORM_PMOVZXBQ_XMMdq_MEMw = (XED_ICLASS_PMOVZXBQ<<8)+1, -
-  XED_IFORM_PMOVZXBW_XMMdq_MEMq = (XED_ICLASS_PMOVZXBW<<8)+0, -
-  XED_IFORM_PMOVZXBW_XMMdq_XMMq = (XED_ICLASS_PMOVZXBW<<8)+1, -
-  XED_IFORM_PMOVZXDQ_XMMdq_MEMq = (XED_ICLASS_PMOVZXDQ<<8)+0, -
-  XED_IFORM_PMOVZXDQ_XMMdq_XMMq = (XED_ICLASS_PMOVZXDQ<<8)+1, -
-  XED_IFORM_PMOVZXWD_XMMdq_MEMq = (XED_ICLASS_PMOVZXWD<<8)+0, -
-  XED_IFORM_PMOVZXWD_XMMdq_XMMq = (XED_ICLASS_PMOVZXWD<<8)+1, -
-  XED_IFORM_PMOVZXWQ_XMMdq_XMMd = (XED_ICLASS_PMOVZXWQ<<8)+0, -
-  XED_IFORM_PMOVZXWQ_XMMdq_MEMd = (XED_ICLASS_PMOVZXWQ<<8)+1, -
-  XED_IFORM_PMULDQ_XMMdq_MEMdq = (XED_ICLASS_PMULDQ<<8)+0, -
-  XED_IFORM_PMULDQ_XMMdq_XMMdq = (XED_ICLASS_PMULDQ<<8)+1, -
-  XED_IFORM_PMULHRSW_XMMdq_MEMdq = (XED_ICLASS_PMULHRSW<<8)+0, -
-  XED_IFORM_PMULHRSW_XMMdq_XMMdq = (XED_ICLASS_PMULHRSW<<8)+1, -
-  XED_IFORM_PMULHRSW_MMXq_MEMq = (XED_ICLASS_PMULHRSW<<8)+2, -
-  XED_IFORM_PMULHRSW_MMXq_MMXq = (XED_ICLASS_PMULHRSW<<8)+3, -
-  XED_IFORM_PMULHRW_MMXq_MEMq = (XED_ICLASS_PMULHRW<<8)+0, -
-  XED_IFORM_PMULHRW_MMXq_MMXq = (XED_ICLASS_PMULHRW<<8)+1, -
-  XED_IFORM_PMULHUW_XMMdq_MEMdq = (XED_ICLASS_PMULHUW<<8)+0, -
-  XED_IFORM_PMULHUW_XMMdq_XMMdq = (XED_ICLASS_PMULHUW<<8)+1, -
-  XED_IFORM_PMULHUW_MMXq_MMXq = (XED_ICLASS_PMULHUW<<8)+2, -
-  XED_IFORM_PMULHUW_MMXq_MEMq = (XED_ICLASS_PMULHUW<<8)+3, -
-  XED_IFORM_PMULHW_MMXq_MMXq = (XED_ICLASS_PMULHW<<8)+0, -
-  XED_IFORM_PMULHW_XMMdq_MEMdq = (XED_ICLASS_PMULHW<<8)+1, -
-  XED_IFORM_PMULHW_MMXq_MEMq = (XED_ICLASS_PMULHW<<8)+2, -
-  XED_IFORM_PMULHW_XMMdq_XMMdq = (XED_ICLASS_PMULHW<<8)+3, -
-  XED_IFORM_PMULLD_XMMdq_XMMdq = (XED_ICLASS_PMULLD<<8)+0, -
-  XED_IFORM_PMULLD_XMMdq_MEMdq = (XED_ICLASS_PMULLD<<8)+1, -
-  XED_IFORM_PMULLW_MMXq_MEMq = (XED_ICLASS_PMULLW<<8)+0, -
-  XED_IFORM_PMULLW_XMMdq_XMMdq = (XED_ICLASS_PMULLW<<8)+1, -
-  XED_IFORM_PMULLW_MMXq_MMXq = (XED_ICLASS_PMULLW<<8)+2, -
-  XED_IFORM_PMULLW_XMMdq_MEMdq = (XED_ICLASS_PMULLW<<8)+3, -
-  XED_IFORM_PMULUDQ_MMXq_MEMq = (XED_ICLASS_PMULUDQ<<8)+0, -
-  XED_IFORM_PMULUDQ_XMMdq_MEMdq = (XED_ICLASS_PMULUDQ<<8)+1, -
-  XED_IFORM_PMULUDQ_XMMdq_XMMdq = (XED_ICLASS_PMULUDQ<<8)+2, -
-  XED_IFORM_PMULUDQ_MMXq_MMXq = (XED_ICLASS_PMULUDQ<<8)+3, -
-  XED_IFORM_POP_SS = (XED_ICLASS_POP<<8)+0, -
-  XED_IFORM_POP_DS = (XED_ICLASS_POP<<8)+1, -
-  XED_IFORM_POP_MEMv = (XED_ICLASS_POP<<8)+2, -
-  XED_IFORM_POP_GPRv = (XED_ICLASS_POP<<8)+3, -
-  XED_IFORM_POP_ES = (XED_ICLASS_POP<<8)+4, -
-  XED_IFORM_POP_GS = (XED_ICLASS_POP<<8)+5, -
-  XED_IFORM_POP_FS = (XED_ICLASS_POP<<8)+6, -
-  XED_IFORM_POPA = (XED_ICLASS_POPA<<8)+0, -
-  XED_IFORM_POPAD = (XED_ICLASS_POPAD<<8)+0, -
-  XED_IFORM_POPCNT_GPRv_GPRv = (XED_ICLASS_POPCNT<<8)+0, -
-  XED_IFORM_POPCNT_GPRv_MEMv = (XED_ICLASS_POPCNT<<8)+1, -
-  XED_IFORM_POPF = (XED_ICLASS_POPF<<8)+0, -
-  XED_IFORM_POPFD = (XED_ICLASS_POPFD<<8)+0, -
-  XED_IFORM_POPFQ = (XED_ICLASS_POPFQ<<8)+0, -
-  XED_IFORM_POR_XMMdq_XMMdq = (XED_ICLASS_POR<<8)+0, -
-  XED_IFORM_POR_XMMdq_MEMdq = (XED_ICLASS_POR<<8)+1, -
-  XED_IFORM_POR_MMXq_MEMq = (XED_ICLASS_POR<<8)+2, -
-  XED_IFORM_POR_MMXq_MMXq = (XED_ICLASS_POR<<8)+3, -
-  XED_IFORM_PREFETCHNTA_MEMmprefetch = (XED_ICLASS_PREFETCHNTA<<8)+0, -
-  XED_IFORM_PREFETCHT0_MEMmprefetch = (XED_ICLASS_PREFETCHT0<<8)+0, -
-  XED_IFORM_PREFETCHT1_MEMmprefetch = (XED_ICLASS_PREFETCHT1<<8)+0, -
-  XED_IFORM_PREFETCHT2_MEMmprefetch = (XED_ICLASS_PREFETCHT2<<8)+0, -
-  XED_IFORM_PREFETCH_EXCLUSIVE_MEMmprefetch = (XED_ICLASS_PREFETCH_EXCLUSIVE<<8)+0, -
-  XED_IFORM_PREFETCH_MODIFIED_MEMmprefetch = (XED_ICLASS_PREFETCH_MODIFIED<<8)+0, -
-  XED_IFORM_PREFETCH_RESERVED_MEMmprefetch = (XED_ICLASS_PREFETCH_RESERVED<<8)+0, -
-  XED_IFORM_PSADBW_MMXq_MMXq = (XED_ICLASS_PSADBW<<8)+0, -
-  XED_IFORM_PSADBW_XMMdq_MEMdq = (XED_ICLASS_PSADBW<<8)+1, -
-  XED_IFORM_PSADBW_MMXq_MEMq = (XED_ICLASS_PSADBW<<8)+2, -
-  XED_IFORM_PSADBW_XMMdq_XMMdq = (XED_ICLASS_PSADBW<<8)+3, -
-  XED_IFORM_PSHUFB_MMXq_MEMq = (XED_ICLASS_PSHUFB<<8)+0, -
-  XED_IFORM_PSHUFB_XMMdq_XMMdq = (XED_ICLASS_PSHUFB<<8)+1, -
-  XED_IFORM_PSHUFB_XMMdq_MEMdq = (XED_ICLASS_PSHUFB<<8)+2, -
-  XED_IFORM_PSHUFB_MMXq_MMXq = (XED_ICLASS_PSHUFB<<8)+3, -
-  XED_IFORM_PSHUFD_XMMdq_XMMdq_IMM = (XED_ICLASS_PSHUFD<<8)+0, -
-  XED_IFORM_PSHUFD_XMMdq_MEMdq_IMM = (XED_ICLASS_PSHUFD<<8)+1, -
-  XED_IFORM_PSHUFHW_XMMdq_MEMdq_IMM = (XED_ICLASS_PSHUFHW<<8)+0, -
-  XED_IFORM_PSHUFHW_XMMdq_XMMdq_IMM = (XED_ICLASS_PSHUFHW<<8)+1, -
-  XED_IFORM_PSHUFLW_XMMdq_XMMdq_IMM = (XED_ICLASS_PSHUFLW<<8)+0, -
-  XED_IFORM_PSHUFLW_XMMdq_MEMdq_IMM = (XED_ICLASS_PSHUFLW<<8)+1, -
-  XED_IFORM_PSHUFW_MMXq_MMXq_IMM = (XED_ICLASS_PSHUFW<<8)+0, -
-  XED_IFORM_PSHUFW_MMXq_MEMq_IMM = (XED_ICLASS_PSHUFW<<8)+1, -
-  XED_IFORM_PSIGNB_XMMdq_MEMdq = (XED_ICLASS_PSIGNB<<8)+0, -
-  XED_IFORM_PSIGNB_XMMdq_XMMdq = (XED_ICLASS_PSIGNB<<8)+1, -
-  XED_IFORM_PSIGNB_MMXq_MEMq = (XED_ICLASS_PSIGNB<<8)+2, -
-  XED_IFORM_PSIGNB_MMXq_MMXq = (XED_ICLASS_PSIGNB<<8)+3, -
-  XED_IFORM_PSIGND_MMXq_MMXq = (XED_ICLASS_PSIGND<<8)+0, -
-  XED_IFORM_PSIGND_XMMdq_MEMdq = (XED_ICLASS_PSIGND<<8)+1, -
-  XED_IFORM_PSIGND_MMXq_MEMq = (XED_ICLASS_PSIGND<<8)+2, -
-  XED_IFORM_PSIGND_XMMdq_XMMdq = (XED_ICLASS_PSIGND<<8)+3, -
-  XED_IFORM_PSIGNW_MMXq_MEMq = (XED_ICLASS_PSIGNW<<8)+0, -
-  XED_IFORM_PSIGNW_XMMdq_XMMdq = (XED_ICLASS_PSIGNW<<8)+1, -
-  XED_IFORM_PSIGNW_XMMdq_MEMdq = (XED_ICLASS_PSIGNW<<8)+2, -
-  XED_IFORM_PSIGNW_MMXq_MMXq = (XED_ICLASS_PSIGNW<<8)+3, -
-  XED_IFORM_PSLLD_XMMdq_XMMdq = (XED_ICLASS_PSLLD<<8)+0, -
-  XED_IFORM_PSLLD_XMMdq_MEMdq = (XED_ICLASS_PSLLD<<8)+1, -
-  XED_IFORM_PSLLD_XMMdq_IMM = (XED_ICLASS_PSLLD<<8)+2, -
-  XED_IFORM_PSLLD_MMXq_MEMq = (XED_ICLASS_PSLLD<<8)+3, -
-  XED_IFORM_PSLLD_MMXq_MMXq = (XED_ICLASS_PSLLD<<8)+4, -
-  XED_IFORM_PSLLD_MMXq_IMM = (XED_ICLASS_PSLLD<<8)+5, -
-  XED_IFORM_PSLLDQ_XMMdq_IMM = (XED_ICLASS_PSLLDQ<<8)+0, -
-  XED_IFORM_PSLLQ_XMMdq_MEMdq = (XED_ICLASS_PSLLQ<<8)+0, -
-  XED_IFORM_PSLLQ_XMMdq_IMM = (XED_ICLASS_PSLLQ<<8)+1, -
-  XED_IFORM_PSLLQ_XMMdq_XMMdq = (XED_ICLASS_PSLLQ<<8)+2, -
-  XED_IFORM_PSLLQ_MMXq_MEMq = (XED_ICLASS_PSLLQ<<8)+3, -
-  XED_IFORM_PSLLQ_MMXq_IMM = (XED_ICLASS_PSLLQ<<8)+4, -
-  XED_IFORM_PSLLQ_MMXq_MMXq = (XED_ICLASS_PSLLQ<<8)+5, -
-  XED_IFORM_PSLLW_MMXq_MMXq = (XED_ICLASS_PSLLW<<8)+0, -
-  XED_IFORM_PSLLW_MMXq_IMM = (XED_ICLASS_PSLLW<<8)+1, -
-  XED_IFORM_PSLLW_MMXq_MEMq = (XED_ICLASS_PSLLW<<8)+2, -
-  XED_IFORM_PSLLW_XMMdq_XMMdq = (XED_ICLASS_PSLLW<<8)+3, -
-  XED_IFORM_PSLLW_XMMdq_IMM = (XED_ICLASS_PSLLW<<8)+4, -
-  XED_IFORM_PSLLW_XMMdq_MEMdq = (XED_ICLASS_PSLLW<<8)+5, -
-  XED_IFORM_PSRAD_XMMdq_MEMdq = (XED_ICLASS_PSRAD<<8)+0, -
-  XED_IFORM_PSRAD_MMXq_MEMq = (XED_ICLASS_PSRAD<<8)+1, -
-  XED_IFORM_PSRAD_MMXq_IMM = (XED_ICLASS_PSRAD<<8)+2, -
-  XED_IFORM_PSRAD_XMMdq_IMM = (XED_ICLASS_PSRAD<<8)+3, -
-  XED_IFORM_PSRAD_XMMdq_XMMdq = (XED_ICLASS_PSRAD<<8)+4, -
-  XED_IFORM_PSRAD_MMXq_MMXq = (XED_ICLASS_PSRAD<<8)+5, -
-  XED_IFORM_PSRAW_XMMdq_IMM = (XED_ICLASS_PSRAW<<8)+0, -
-  XED_IFORM_PSRAW_MMXq_MEMq = (XED_ICLASS_PSRAW<<8)+1, -
-  XED_IFORM_PSRAW_MMXq_MMXq = (XED_ICLASS_PSRAW<<8)+2, -
-  XED_IFORM_PSRAW_XMMdq_MEMdq = (XED_ICLASS_PSRAW<<8)+3, -
-  XED_IFORM_PSRAW_MMXq_IMM = (XED_ICLASS_PSRAW<<8)+4, -
-  XED_IFORM_PSRAW_XMMdq_XMMdq = (XED_ICLASS_PSRAW<<8)+5, -
-  XED_IFORM_PSRLD_MMXq_MEMq = (XED_ICLASS_PSRLD<<8)+0, -
-  XED_IFORM_PSRLD_MMXq_IMM = (XED_ICLASS_PSRLD<<8)+1, -
-  XED_IFORM_PSRLD_MMXq_MMXq = (XED_ICLASS_PSRLD<<8)+2, -
-  XED_IFORM_PSRLD_XMMdq_XMMdq = (XED_ICLASS_PSRLD<<8)+3, -
-  XED_IFORM_PSRLD_XMMdq_IMM = (XED_ICLASS_PSRLD<<8)+4, -
-  XED_IFORM_PSRLD_XMMdq_MEMdq = (XED_ICLASS_PSRLD<<8)+5, -
-  XED_IFORM_PSRLDQ_XMMdq_IMM = (XED_ICLASS_PSRLDQ<<8)+0, -
-  XED_IFORM_PSRLQ_MMXq_MMXq = (XED_ICLASS_PSRLQ<<8)+0, -
-  XED_IFORM_PSRLQ_XMMdq_IMM = (XED_ICLASS_PSRLQ<<8)+1, -
-  XED_IFORM_PSRLQ_XMMdq_MEMdq = (XED_ICLASS_PSRLQ<<8)+2, -
-  XED_IFORM_PSRLQ_MMXq_IMM = (XED_ICLASS_PSRLQ<<8)+3, -
-  XED_IFORM_PSRLQ_MMXq_MEMq = (XED_ICLASS_PSRLQ<<8)+4, -
-  XED_IFORM_PSRLQ_XMMdq_XMMdq = (XED_ICLASS_PSRLQ<<8)+5, -
-  XED_IFORM_PSRLW_XMMdq_XMMdq = (XED_ICLASS_PSRLW<<8)+0, -
-  XED_IFORM_PSRLW_MMXq_MEMq = (XED_ICLASS_PSRLW<<8)+1, -
-  XED_IFORM_PSRLW_MMXq_MMXq = (XED_ICLASS_PSRLW<<8)+2, -
-  XED_IFORM_PSRLW_XMMdq_MEMdq = (XED_ICLASS_PSRLW<<8)+3, -
-  XED_IFORM_PSRLW_MMXq_IMM = (XED_ICLASS_PSRLW<<8)+4, -
-  XED_IFORM_PSRLW_XMMdq_IMM = (XED_ICLASS_PSRLW<<8)+5, -
-  XED_IFORM_PSUBB_XMMdq_MEMdq = (XED_ICLASS_PSUBB<<8)+0, -
-  XED_IFORM_PSUBB_XMMdq_XMMdq = (XED_ICLASS_PSUBB<<8)+1, -
-  XED_IFORM_PSUBB_MMXq_MEMq = (XED_ICLASS_PSUBB<<8)+2, -
-  XED_IFORM_PSUBB_MMXq_MMXq = (XED_ICLASS_PSUBB<<8)+3, -
-  XED_IFORM_PSUBD_MMXq_MMXq = (XED_ICLASS_PSUBD<<8)+0, -
-  XED_IFORM_PSUBD_XMMdq_MEMdq = (XED_ICLASS_PSUBD<<8)+1, -
-  XED_IFORM_PSUBD_MMXq_MEMq = (XED_ICLASS_PSUBD<<8)+2, -
-  XED_IFORM_PSUBD_XMMdq_XMMdq = (XED_ICLASS_PSUBD<<8)+3, -
-  XED_IFORM_PSUBQ_MMXq_MMXq = (XED_ICLASS_PSUBQ<<8)+0, -
-  XED_IFORM_PSUBQ_XMMdq_XMMdq = (XED_ICLASS_PSUBQ<<8)+1, -
-  XED_IFORM_PSUBQ_MMXq_MEMq = (XED_ICLASS_PSUBQ<<8)+2, -
-  XED_IFORM_PSUBQ_XMMdq_MEMdq = (XED_ICLASS_PSUBQ<<8)+3, -
-  XED_IFORM_PSUBSB_XMMdq_MEMdq = (XED_ICLASS_PSUBSB<<8)+0, -
-  XED_IFORM_PSUBSB_MMXq_MEMq = (XED_ICLASS_PSUBSB<<8)+1, -
-  XED_IFORM_PSUBSB_XMMdq_XMMdq = (XED_ICLASS_PSUBSB<<8)+2, -
-  XED_IFORM_PSUBSB_MMXq_MMXq = (XED_ICLASS_PSUBSB<<8)+3, -
-  XED_IFORM_PSUBSW_XMMdq_MEMdq = (XED_ICLASS_PSUBSW<<8)+0, -
-  XED_IFORM_PSUBSW_MMXq_MMXq = (XED_ICLASS_PSUBSW<<8)+1, -
-  XED_IFORM_PSUBSW_XMMdq_XMMdq = (XED_ICLASS_PSUBSW<<8)+2, -
-  XED_IFORM_PSUBSW_MMXq_MEMq = (XED_ICLASS_PSUBSW<<8)+3, -
-  XED_IFORM_PSUBUSB_MMXq_MMXq = (XED_ICLASS_PSUBUSB<<8)+0, -
-  XED_IFORM_PSUBUSB_MMXq_MEMq = (XED_ICLASS_PSUBUSB<<8)+1, -
-  XED_IFORM_PSUBUSB_XMMdq_XMMdq = (XED_ICLASS_PSUBUSB<<8)+2, -
-  XED_IFORM_PSUBUSB_XMMdq_MEMdq = (XED_ICLASS_PSUBUSB<<8)+3, -
-  XED_IFORM_PSUBUSW_MMXq_MMXq = (XED_ICLASS_PSUBUSW<<8)+0, -
-  XED_IFORM_PSUBUSW_XMMdq_MEMdq = (XED_ICLASS_PSUBUSW<<8)+1, -
-  XED_IFORM_PSUBUSW_XMMdq_XMMdq = (XED_ICLASS_PSUBUSW<<8)+2, -
-  XED_IFORM_PSUBUSW_MMXq_MEMq = (XED_ICLASS_PSUBUSW<<8)+3, -
-  XED_IFORM_PSUBW_MMXq_MEMq = (XED_ICLASS_PSUBW<<8)+0, -
-  XED_IFORM_PSUBW_XMMdq_XMMdq = (XED_ICLASS_PSUBW<<8)+1, -
-  XED_IFORM_PSUBW_XMMdq_MEMdq = (XED_ICLASS_PSUBW<<8)+2, -
-  XED_IFORM_PSUBW_MMXq_MMXq = (XED_ICLASS_PSUBW<<8)+3, -
-  XED_IFORM_PSWAPD_MMXq_MEMq = (XED_ICLASS_PSWAPD<<8)+0, -
-  XED_IFORM_PSWAPD_MMXq_MMXq = (XED_ICLASS_PSWAPD<<8)+1, -
-  XED_IFORM_PTEST_XMMdq_MEMdq = (XED_ICLASS_PTEST<<8)+0, -
-  XED_IFORM_PTEST_XMMdq_XMMdq = (XED_ICLASS_PTEST<<8)+1, -
-  XED_IFORM_PUNPCKHBW_XMMdq_XMMq = (XED_ICLASS_PUNPCKHBW<<8)+0, -
-  XED_IFORM_PUNPCKHBW_MMXq_MMXd = (XED_ICLASS_PUNPCKHBW<<8)+1, -
-  XED_IFORM_PUNPCKHBW_XMMdq_MEMdq = (XED_ICLASS_PUNPCKHBW<<8)+2, -
-  XED_IFORM_PUNPCKHBW_MMXq_MEMq = (XED_ICLASS_PUNPCKHBW<<8)+3, -
-  XED_IFORM_PUNPCKHDQ_XMMdq_XMMq = (XED_ICLASS_PUNPCKHDQ<<8)+0, -
-  XED_IFORM_PUNPCKHDQ_MMXq_MMXd = (XED_ICLASS_PUNPCKHDQ<<8)+1, -
-  XED_IFORM_PUNPCKHDQ_XMMdq_MEMdq = (XED_ICLASS_PUNPCKHDQ<<8)+2, -
-  XED_IFORM_PUNPCKHDQ_MMXq_MEMq = (XED_ICLASS_PUNPCKHDQ<<8)+3, -
-  XED_IFORM_PUNPCKHQDQ_XMMdq_XMMq = (XED_ICLASS_PUNPCKHQDQ<<8)+0, -
-  XED_IFORM_PUNPCKHQDQ_XMMdq_MEMdq = (XED_ICLASS_PUNPCKHQDQ<<8)+1, -
-  XED_IFORM_PUNPCKHWD_XMMdq_XMMq = (XED_ICLASS_PUNPCKHWD<<8)+0, -
-  XED_IFORM_PUNPCKHWD_MMXq_MMXd = (XED_ICLASS_PUNPCKHWD<<8)+1, -
-  XED_IFORM_PUNPCKHWD_XMMdq_MEMdq = (XED_ICLASS_PUNPCKHWD<<8)+2, -
-  XED_IFORM_PUNPCKHWD_MMXq_MEMq = (XED_ICLASS_PUNPCKHWD<<8)+3, -
-  XED_IFORM_PUNPCKLBW_MMXq_MMXd = (XED_ICLASS_PUNPCKLBW<<8)+0, -
-  XED_IFORM_PUNPCKLBW_XMMdq_MEMq = (XED_ICLASS_PUNPCKLBW<<8)+1, -
-  XED_IFORM_PUNPCKLBW_XMMdq_XMMq = (XED_ICLASS_PUNPCKLBW<<8)+2, -
-  XED_IFORM_PUNPCKLBW_MMXq_MEMd = (XED_ICLASS_PUNPCKLBW<<8)+3, -
-  XED_IFORM_PUNPCKLDQ_MMXq_MMXd = (XED_ICLASS_PUNPCKLDQ<<8)+0, -
-  XED_IFORM_PUNPCKLDQ_XMMdq_MEMq = (XED_ICLASS_PUNPCKLDQ<<8)+1, -
-  XED_IFORM_PUNPCKLDQ_XMMdq_XMMq = (XED_ICLASS_PUNPCKLDQ<<8)+2, -
-  XED_IFORM_PUNPCKLDQ_MMXq_MEMd = (XED_ICLASS_PUNPCKLDQ<<8)+3, -
-  XED_IFORM_PUNPCKLQDQ_XMMdq_XMMq = (XED_ICLASS_PUNPCKLQDQ<<8)+0, -
-  XED_IFORM_PUNPCKLQDQ_XMMdq_MEMq = (XED_ICLASS_PUNPCKLQDQ<<8)+1, -
-  XED_IFORM_PUNPCKLWD_MMXq_MMXd = (XED_ICLASS_PUNPCKLWD<<8)+0, -
-  XED_IFORM_PUNPCKLWD_XMMdq_MEMq = (XED_ICLASS_PUNPCKLWD<<8)+1, -
-  XED_IFORM_PUNPCKLWD_XMMdq_XMMq = (XED_ICLASS_PUNPCKLWD<<8)+2, -
-  XED_IFORM_PUNPCKLWD_MMXq_MEMd = (XED_ICLASS_PUNPCKLWD<<8)+3, -
-  XED_IFORM_PUSH_FS = (XED_ICLASS_PUSH<<8)+0, -
-  XED_IFORM_PUSH_SS = (XED_ICLASS_PUSH<<8)+1, -
-  XED_IFORM_PUSH_GPRv = (XED_ICLASS_PUSH<<8)+2, -
-  XED_IFORM_PUSH_GS = (XED_ICLASS_PUSH<<8)+3, -
-  XED_IFORM_PUSH_CS = (XED_ICLASS_PUSH<<8)+4, -
-  XED_IFORM_PUSH_MEMv = (XED_ICLASS_PUSH<<8)+5, -
-  XED_IFORM_PUSH_ES = (XED_ICLASS_PUSH<<8)+6, -
-  XED_IFORM_PUSH_IMM = (XED_ICLASS_PUSH<<8)+7, -
-  XED_IFORM_PUSH_DS = (XED_ICLASS_PUSH<<8)+8, -
-  XED_IFORM_PUSHA = (XED_ICLASS_PUSHA<<8)+0, -
-  XED_IFORM_PUSHAD = (XED_ICLASS_PUSHAD<<8)+0, -
-  XED_IFORM_PUSHF = (XED_ICLASS_PUSHF<<8)+0, -
-  XED_IFORM_PUSHFD = (XED_ICLASS_PUSHFD<<8)+0, -
-  XED_IFORM_PUSHFQ = (XED_ICLASS_PUSHFQ<<8)+0, -
-  XED_IFORM_PXOR_XMMdq_MEMdq = (XED_ICLASS_PXOR<<8)+0, -
-  XED_IFORM_PXOR_MMXq_MMXq = (XED_ICLASS_PXOR<<8)+1, -
-  XED_IFORM_PXOR_MMXq_MEMq = (XED_ICLASS_PXOR<<8)+2, -
-  XED_IFORM_PXOR_XMMdq_XMMdq = (XED_ICLASS_PXOR<<8)+3, -
-  XED_IFORM_RCL_MEMv_CL = (XED_ICLASS_RCL<<8)+0, -
-  XED_IFORM_RCL_MEMb_CL = (XED_ICLASS_RCL<<8)+1, -
-  XED_IFORM_RCL_GPRv_CL = (XED_ICLASS_RCL<<8)+2, -
-  XED_IFORM_RCL_MEMb_IMM = (XED_ICLASS_RCL<<8)+3, -
-  XED_IFORM_RCL_MEMv_ONE = (XED_ICLASS_RCL<<8)+4, -
-  XED_IFORM_RCL_GPR8_ONE = (XED_ICLASS_RCL<<8)+5, -
-  XED_IFORM_RCL_GPR8_IMM = (XED_ICLASS_RCL<<8)+6, -
-  XED_IFORM_RCL_MEMv_IMM = (XED_ICLASS_RCL<<8)+7, -
-  XED_IFORM_RCL_MEMb_ONE = (XED_ICLASS_RCL<<8)+8, -
-  XED_IFORM_RCL_GPRv_ONE = (XED_ICLASS_RCL<<8)+9, -
-  XED_IFORM_RCL_GPRv_IMM = (XED_ICLASS_RCL<<8)+10, -
-  XED_IFORM_RCL_GPR8_CL = (XED_ICLASS_RCL<<8)+11, -
-  XED_IFORM_RCPPS_XMMps_MEMps = (XED_ICLASS_RCPPS<<8)+0, -
-  XED_IFORM_RCPPS_XMMps_XMMps = (XED_ICLASS_RCPPS<<8)+1, -
-  XED_IFORM_RCPSS_XMMss_XMMss = (XED_ICLASS_RCPSS<<8)+0, -
-  XED_IFORM_RCPSS_XMMss_MEMss = (XED_ICLASS_RCPSS<<8)+1, -
-  XED_IFORM_RCR_GPR8_CL = (XED_ICLASS_RCR<<8)+0, -
-  XED_IFORM_RCR_MEMv_ONE = (XED_ICLASS_RCR<<8)+1, -
-  XED_IFORM_RCR_GPR8_IMM = (XED_ICLASS_RCR<<8)+2, -
-  XED_IFORM_RCR_MEMb_ONE = (XED_ICLASS_RCR<<8)+3, -
-  XED_IFORM_RCR_GPRv_ONE = (XED_ICLASS_RCR<<8)+4, -
-  XED_IFORM_RCR_MEMb_IMM = (XED_ICLASS_RCR<<8)+5, -
-  XED_IFORM_RCR_GPR8_ONE = (XED_ICLASS_RCR<<8)+6, -
-  XED_IFORM_RCR_MEMv_IMM = (XED_ICLASS_RCR<<8)+7, -
-  XED_IFORM_RCR_GPRv_IMM = (XED_ICLASS_RCR<<8)+8, -
-  XED_IFORM_RCR_MEMv_CL = (XED_ICLASS_RCR<<8)+9, -
-  XED_IFORM_RCR_GPRv_CL = (XED_ICLASS_RCR<<8)+10, -
-  XED_IFORM_RCR_MEMb_CL = (XED_ICLASS_RCR<<8)+11, -
-  XED_IFORM_RDMSR = (XED_ICLASS_RDMSR<<8)+0, -
-  XED_IFORM_RDPMC = (XED_ICLASS_RDPMC<<8)+0, -
-  XED_IFORM_RDTSC = (XED_ICLASS_RDTSC<<8)+0, -
-  XED_IFORM_RDTSCP = (XED_ICLASS_RDTSCP<<8)+0, -
-  XED_IFORM_RET_FAR_IMM = (XED_ICLASS_RET_FAR<<8)+0, -
-  XED_IFORM_RET_FAR = (XED_ICLASS_RET_FAR<<8)+1, -
-  XED_IFORM_RET_NEAR_IMM = (XED_ICLASS_RET_NEAR<<8)+0, -
-  XED_IFORM_RET_NEAR = (XED_ICLASS_RET_NEAR<<8)+1, -
-  XED_IFORM_ROL_GPRv_IMM = (XED_ICLASS_ROL<<8)+0, -
-  XED_IFORM_ROL_GPR8_ONE = (XED_ICLASS_ROL<<8)+1, -
-  XED_IFORM_ROL_MEMv_CL = (XED_ICLASS_ROL<<8)+2, -
-  XED_IFORM_ROL_MEMb_IMM = (XED_ICLASS_ROL<<8)+3, -
-  XED_IFORM_ROL_MEMv_ONE = (XED_ICLASS_ROL<<8)+4, -
-  XED_IFORM_ROL_MEMb_CL = (XED_ICLASS_ROL<<8)+5, -
-  XED_IFORM_ROL_GPRv_CL = (XED_ICLASS_ROL<<8)+6, -
-  XED_IFORM_ROL_GPR8_CL = (XED_ICLASS_ROL<<8)+7, -
-  XED_IFORM_ROL_GPRv_ONE = (XED_ICLASS_ROL<<8)+8, -
-  XED_IFORM_ROL_MEMv_IMM = (XED_ICLASS_ROL<<8)+9, -
-  XED_IFORM_ROL_MEMb_ONE = (XED_ICLASS_ROL<<8)+10, -
-  XED_IFORM_ROL_GPR8_IMM = (XED_ICLASS_ROL<<8)+11, -
-  XED_IFORM_ROR_MEMb_ONE = (XED_ICLASS_ROR<<8)+0, -
-  XED_IFORM_ROR_MEMv_ONE = (XED_ICLASS_ROR<<8)+1, -
-  XED_IFORM_ROR_GPR8_CL = (XED_ICLASS_ROR<<8)+2, -
-  XED_IFORM_ROR_MEMv_IMM = (XED_ICLASS_ROR<<8)+3, -
-  XED_IFORM_ROR_GPRv_ONE = (XED_ICLASS_ROR<<8)+4, -
-  XED_IFORM_ROR_MEMb_IMM = (XED_ICLASS_ROR<<8)+5, -
-  XED_IFORM_ROR_GPRv_IMM = (XED_ICLASS_ROR<<8)+6, -
-  XED_IFORM_ROR_MEMb_CL = (XED_ICLASS_ROR<<8)+7, -
-  XED_IFORM_ROR_GPR8_ONE = (XED_ICLASS_ROR<<8)+8, -
-  XED_IFORM_ROR_MEMv_CL = (XED_ICLASS_ROR<<8)+9, -
-  XED_IFORM_ROR_GPR8_IMM = (XED_ICLASS_ROR<<8)+10, -
-  XED_IFORM_ROR_GPRv_CL = (XED_ICLASS_ROR<<8)+11, -
-  XED_IFORM_ROUNDPD_XMMpd_XMMpd_IMM = (XED_ICLASS_ROUNDPD<<8)+0, -
-  XED_IFORM_ROUNDPD_XMMpd_MEMpd_IMM = (XED_ICLASS_ROUNDPD<<8)+1, -
-  XED_IFORM_ROUNDPS_XMMps_MEMps_IMM = (XED_ICLASS_ROUNDPS<<8)+0, -
-  XED_IFORM_ROUNDPS_XMMps_XMMps_IMM = (XED_ICLASS_ROUNDPS<<8)+1, -
-  XED_IFORM_ROUNDSD_XMMq_MEMq_IMM = (XED_ICLASS_ROUNDSD<<8)+0, -
-  XED_IFORM_ROUNDSD_XMMq_XMMq_IMM = (XED_ICLASS_ROUNDSD<<8)+1, -
-  XED_IFORM_ROUNDSS_XMMd_MEMd_IMM = (XED_ICLASS_ROUNDSS<<8)+0, -
-  XED_IFORM_ROUNDSS_XMMd_XMMd_IMM = (XED_ICLASS_ROUNDSS<<8)+1, -
-  XED_IFORM_RSM = (XED_ICLASS_RSM<<8)+0, -
-  XED_IFORM_RSQRTPS_XMMps_XMMps = (XED_ICLASS_RSQRTPS<<8)+0, -
-  XED_IFORM_RSQRTPS_XMMps_MEMps = (XED_ICLASS_RSQRTPS<<8)+1, -
-  XED_IFORM_RSQRTSS_XMMss_MEMss = (XED_ICLASS_RSQRTSS<<8)+0, -
-  XED_IFORM_RSQRTSS_XMMss_XMMss = (XED_ICLASS_RSQRTSS<<8)+1, -
-  XED_IFORM_SAHF = (XED_ICLASS_SAHF<<8)+0, -
-  XED_IFORM_SALC = (XED_ICLASS_SALC<<8)+0, -
-  XED_IFORM_SAR_MEMv_CL = (XED_ICLASS_SAR<<8)+0, -
-  XED_IFORM_SAR_GPRv_IMM = (XED_ICLASS_SAR<<8)+1, -
-  XED_IFORM_SAR_GPR8_ONE = (XED_ICLASS_SAR<<8)+2, -
-  XED_IFORM_SAR_GPR8_IMM = (XED_ICLASS_SAR<<8)+3, -
-  XED_IFORM_SAR_MEMv_ONE = (XED_ICLASS_SAR<<8)+4, -
-  XED_IFORM_SAR_MEMb_CL = (XED_ICLASS_SAR<<8)+5, -
-  XED_IFORM_SAR_MEMb_IMM = (XED_ICLASS_SAR<<8)+6, -
-  XED_IFORM_SAR_MEMv_IMM = (XED_ICLASS_SAR<<8)+7, -
-  XED_IFORM_SAR_GPR8_CL = (XED_ICLASS_SAR<<8)+8, -
-  XED_IFORM_SAR_GPRv_CL = (XED_ICLASS_SAR<<8)+9, -
-  XED_IFORM_SAR_GPRv_ONE = (XED_ICLASS_SAR<<8)+10, -
-  XED_IFORM_SAR_MEMb_ONE = (XED_ICLASS_SAR<<8)+11, -
-  XED_IFORM_SBB_AL_IMM = (XED_ICLASS_SBB<<8)+0, -
-  XED_IFORM_SBB_MEMv_GPRv = (XED_ICLASS_SBB<<8)+1, -
-  XED_IFORM_SBB_MEMb_IMM = (XED_ICLASS_SBB<<8)+2, -
-  XED_IFORM_SBB_GPRv_GPRv = (XED_ICLASS_SBB<<8)+3, -
-  XED_IFORM_SBB_OrAX_IMM = (XED_ICLASS_SBB<<8)+4, -
-  XED_IFORM_SBB_GPR8_GPR8 = (XED_ICLASS_SBB<<8)+5, -
-  XED_IFORM_SBB_GPR8_IMM = (XED_ICLASS_SBB<<8)+6, -
-  XED_IFORM_SBB_MEMv_IMM = (XED_ICLASS_SBB<<8)+7, -
-  XED_IFORM_SBB_MEMb_GPR8 = (XED_ICLASS_SBB<<8)+8, -
-  XED_IFORM_SBB_GPRv_MEMv = (XED_ICLASS_SBB<<8)+9, -
-  XED_IFORM_SBB_GPRv_IMM = (XED_ICLASS_SBB<<8)+10, -
-  XED_IFORM_SBB_GPR8_MEMb = (XED_ICLASS_SBB<<8)+11, -
-  XED_IFORM_SCASB = (XED_ICLASS_SCASB<<8)+0, -
-  XED_IFORM_SCASD = (XED_ICLASS_SCASD<<8)+0, -
-  XED_IFORM_SCASQ = (XED_ICLASS_SCASQ<<8)+0, -
-  XED_IFORM_SCASW = (XED_ICLASS_SCASW<<8)+0, -
-  XED_IFORM_SETB_GPR8 = (XED_ICLASS_SETB<<8)+0, -
-  XED_IFORM_SETB_MEMb = (XED_ICLASS_SETB<<8)+1, -
-  XED_IFORM_SETBE_GPR8 = (XED_ICLASS_SETBE<<8)+0, -
-  XED_IFORM_SETBE_MEMb = (XED_ICLASS_SETBE<<8)+1, -
-  XED_IFORM_SETL_MEMb = (XED_ICLASS_SETL<<8)+0, -
-  XED_IFORM_SETL_GPR8 = (XED_ICLASS_SETL<<8)+1, -
-  XED_IFORM_SETLE_GPR8 = (XED_ICLASS_SETLE<<8)+0, -
-  XED_IFORM_SETLE_MEMb = (XED_ICLASS_SETLE<<8)+1, -
-  XED_IFORM_SETNB_GPR8 = (XED_ICLASS_SETNB<<8)+0, -
-  XED_IFORM_SETNB_MEMb = (XED_ICLASS_SETNB<<8)+1, -
-  XED_IFORM_SETNBE_MEMb = (XED_ICLASS_SETNBE<<8)+0, -
-  XED_IFORM_SETNBE_GPR8 = (XED_ICLASS_SETNBE<<8)+1, -
-  XED_IFORM_SETNL_GPR8 = (XED_ICLASS_SETNL<<8)+0, -
-  XED_IFORM_SETNL_MEMb = (XED_ICLASS_SETNL<<8)+1, -
-  XED_IFORM_SETNLE_MEMb = (XED_ICLASS_SETNLE<<8)+0, -
-  XED_IFORM_SETNLE_GPR8 = (XED_ICLASS_SETNLE<<8)+1, -
-  XED_IFORM_SETNO_MEMb = (XED_ICLASS_SETNO<<8)+0, -
-  XED_IFORM_SETNO_GPR8 = (XED_ICLASS_SETNO<<8)+1, -
-  XED_IFORM_SETNP_MEMb = (XED_ICLASS_SETNP<<8)+0, -
-  XED_IFORM_SETNP_GPR8 = (XED_ICLASS_SETNP<<8)+1, -
-  XED_IFORM_SETNS_GPR8 = (XED_ICLASS_SETNS<<8)+0, -
-  XED_IFORM_SETNS_MEMb = (XED_ICLASS_SETNS<<8)+1, -
-  XED_IFORM_SETNZ_GPR8 = (XED_ICLASS_SETNZ<<8)+0, -
-  XED_IFORM_SETNZ_MEMb = (XED_ICLASS_SETNZ<<8)+1, -
-  XED_IFORM_SETO_MEMb = (XED_ICLASS_SETO<<8)+0, -
-  XED_IFORM_SETO_GPR8 = (XED_ICLASS_SETO<<8)+1, -
-  XED_IFORM_SETP_GPR8 = (XED_ICLASS_SETP<<8)+0, -
-  XED_IFORM_SETP_MEMb = (XED_ICLASS_SETP<<8)+1, -
-  XED_IFORM_SETS_GPR8 = (XED_ICLASS_SETS<<8)+0, -
-  XED_IFORM_SETS_MEMb = (XED_ICLASS_SETS<<8)+1, -
-  XED_IFORM_SETZ_GPR8 = (XED_ICLASS_SETZ<<8)+0, -
-  XED_IFORM_SETZ_MEMb = (XED_ICLASS_SETZ<<8)+1, -
-  XED_IFORM_SFENCE = (XED_ICLASS_SFENCE<<8)+0, -
-  XED_IFORM_SGDT_MEMs = (XED_ICLASS_SGDT<<8)+0, -
-  XED_IFORM_SHL_MEMv_ONE = (XED_ICLASS_SHL<<8)+0, -
-  XED_IFORM_SHL_GPRv_CL = (XED_ICLASS_SHL<<8)+1, -
-  XED_IFORM_SHL_MEMb_CL = (XED_ICLASS_SHL<<8)+2, -
-  XED_IFORM_SHL_MEMv_IMM = (XED_ICLASS_SHL<<8)+3, -
-  XED_IFORM_SHL_GPRv_IMM = (XED_ICLASS_SHL<<8)+4, -
-  XED_IFORM_SHL_GPR8_ONE = (XED_ICLASS_SHL<<8)+5, -
-  XED_IFORM_SHL_GPRv_ONE = (XED_ICLASS_SHL<<8)+6, -
-  XED_IFORM_SHL_MEMb_IMM = (XED_ICLASS_SHL<<8)+7, -
-  XED_IFORM_SHL_MEMb_ONE = (XED_ICLASS_SHL<<8)+8, -
-  XED_IFORM_SHL_MEMv_CL = (XED_ICLASS_SHL<<8)+9, -
-  XED_IFORM_SHL_GPR8_IMM = (XED_ICLASS_SHL<<8)+10, -
-  XED_IFORM_SHL_GPR8_CL = (XED_ICLASS_SHL<<8)+11, -
-  XED_IFORM_SHLD_GPRv_GPRv_CL = (XED_ICLASS_SHLD<<8)+0, -
-  XED_IFORM_SHLD_GPRv_GPRv_IMM = (XED_ICLASS_SHLD<<8)+1, -
-  XED_IFORM_SHLD_MEMv_GPRv_IMM = (XED_ICLASS_SHLD<<8)+2, -
-  XED_IFORM_SHLD_MEMv_GPRv_CL = (XED_ICLASS_SHLD<<8)+3, -
-  XED_IFORM_SHR_MEMb_CL = (XED_ICLASS_SHR<<8)+0, -
-  XED_IFORM_SHR_GPR8_CL = (XED_ICLASS_SHR<<8)+1, -
-  XED_IFORM_SHR_GPR8_IMM = (XED_ICLASS_SHR<<8)+2, -
-  XED_IFORM_SHR_GPRv_CL = (XED_ICLASS_SHR<<8)+3, -
-  XED_IFORM_SHR_MEMb_IMM = (XED_ICLASS_SHR<<8)+4, -
-  XED_IFORM_SHR_GPRv_IMM = (XED_ICLASS_SHR<<8)+5, -
-  XED_IFORM_SHR_MEMv_ONE = (XED_ICLASS_SHR<<8)+6, -
-  XED_IFORM_SHR_MEMb_ONE = (XED_ICLASS_SHR<<8)+7, -
-  XED_IFORM_SHR_GPR8_ONE = (XED_ICLASS_SHR<<8)+8, -
-  XED_IFORM_SHR_GPRv_ONE = (XED_ICLASS_SHR<<8)+9, -
-  XED_IFORM_SHR_MEMv_CL = (XED_ICLASS_SHR<<8)+10, -
-  XED_IFORM_SHR_MEMv_IMM = (XED_ICLASS_SHR<<8)+11, -
-  XED_IFORM_SHRD_MEMv_GPRv_CL = (XED_ICLASS_SHRD<<8)+0, -
-  XED_IFORM_SHRD_MEMv_GPRv_IMM = (XED_ICLASS_SHRD<<8)+1, -
-  XED_IFORM_SHRD_GPRv_GPRv_CL = (XED_ICLASS_SHRD<<8)+2, -
-  XED_IFORM_SHRD_GPRv_GPRv_IMM = (XED_ICLASS_SHRD<<8)+3, -
-  XED_IFORM_SHUFPD_XMMpd_MEMpd_IMM = (XED_ICLASS_SHUFPD<<8)+0, -
-  XED_IFORM_SHUFPD_XMMpd_XMMpd_IMM = (XED_ICLASS_SHUFPD<<8)+1, -
-  XED_IFORM_SHUFPS_XMMps_XMMps_IMM = (XED_ICLASS_SHUFPS<<8)+0, -
-  XED_IFORM_SHUFPS_XMMps_MEMps_IMM = (XED_ICLASS_SHUFPS<<8)+1, -
-  XED_IFORM_SIDT_MEMs = (XED_ICLASS_SIDT<<8)+0, -
-  XED_IFORM_SKINIT_EAX = (XED_ICLASS_SKINIT<<8)+0, -
-  XED_IFORM_SLDT_GPRv = (XED_ICLASS_SLDT<<8)+0, -
-  XED_IFORM_SLDT_MEMw = (XED_ICLASS_SLDT<<8)+1, -
-  XED_IFORM_SMSW_GPRv = (XED_ICLASS_SMSW<<8)+0, -
-  XED_IFORM_SMSW_MEMw = (XED_ICLASS_SMSW<<8)+1, -
-  XED_IFORM_SQRTPD_XMMpd_XMMpd = (XED_ICLASS_SQRTPD<<8)+0, -
-  XED_IFORM_SQRTPD_XMMpd_MEMpd = (XED_ICLASS_SQRTPD<<8)+1, -
-  XED_IFORM_SQRTPS_XMMps_MEMps = (XED_ICLASS_SQRTPS<<8)+0, -
-  XED_IFORM_SQRTPS_XMMps_XMMps = (XED_ICLASS_SQRTPS<<8)+1, -
-  XED_IFORM_SQRTSD_XMMsd_MEMsd = (XED_ICLASS_SQRTSD<<8)+0, -
-  XED_IFORM_SQRTSD_XMMsd_XMMsd = (XED_ICLASS_SQRTSD<<8)+1, -
-  XED_IFORM_SQRTSS_XMMss_XMMss = (XED_ICLASS_SQRTSS<<8)+0, -
-  XED_IFORM_SQRTSS_XMMss_MEMss = (XED_ICLASS_SQRTSS<<8)+1, -
-  XED_IFORM_STC = (XED_ICLASS_STC<<8)+0, -
-  XED_IFORM_STD = (XED_ICLASS_STD<<8)+0, -
-  XED_IFORM_STGI = (XED_ICLASS_STGI<<8)+0, -
-  XED_IFORM_STI = (XED_ICLASS_STI<<8)+0, -
-  XED_IFORM_STMXCSR_MEMd = (XED_ICLASS_STMXCSR<<8)+0, -
-  XED_IFORM_STOSB = (XED_ICLASS_STOSB<<8)+0, -
-  XED_IFORM_STOSD = (XED_ICLASS_STOSD<<8)+0, -
-  XED_IFORM_STOSQ = (XED_ICLASS_STOSQ<<8)+0, -
-  XED_IFORM_STOSW = (XED_ICLASS_STOSW<<8)+0, -
-  XED_IFORM_STR_GPRv = (XED_ICLASS_STR<<8)+0, -
-  XED_IFORM_STR_MEMw = (XED_ICLASS_STR<<8)+1, -
-  XED_IFORM_SUB_MEMv_IMM = (XED_ICLASS_SUB<<8)+0, -
-  XED_IFORM_SUB_GPRv_IMM = (XED_ICLASS_SUB<<8)+1, -
-  XED_IFORM_SUB_MEMb_GPR8 = (XED_ICLASS_SUB<<8)+2, -
-  XED_IFORM_SUB_MEMb_IMM = (XED_ICLASS_SUB<<8)+3, -
-  XED_IFORM_SUB_OrAX_IMM = (XED_ICLASS_SUB<<8)+4, -
-  XED_IFORM_SUB_GPR8_GPR8 = (XED_ICLASS_SUB<<8)+5, -
-  XED_IFORM_SUB_MEMv_GPRv = (XED_ICLASS_SUB<<8)+6, -
-  XED_IFORM_SUB_GPRv_GPRv = (XED_ICLASS_SUB<<8)+7, -
-  XED_IFORM_SUB_GPR8_MEMb = (XED_ICLASS_SUB<<8)+8, -
-  XED_IFORM_SUB_AL_IMM = (XED_ICLASS_SUB<<8)+9, -
-  XED_IFORM_SUB_GPR8_IMM = (XED_ICLASS_SUB<<8)+10, -
-  XED_IFORM_SUB_GPRv_MEMv = (XED_ICLASS_SUB<<8)+11, -
-  XED_IFORM_SUBPD_XMMpd_MEMpd = (XED_ICLASS_SUBPD<<8)+0, -
-  XED_IFORM_SUBPD_XMMpd_XMMpd = (XED_ICLASS_SUBPD<<8)+1, -
-  XED_IFORM_SUBPS_XMMps_XMMps = (XED_ICLASS_SUBPS<<8)+0, -
-  XED_IFORM_SUBPS_XMMps_MEMps = (XED_ICLASS_SUBPS<<8)+1, -
-  XED_IFORM_SUBSD_XMMsd_XMMsd = (XED_ICLASS_SUBSD<<8)+0, -
-  XED_IFORM_SUBSD_XMMsd_MEMsd = (XED_ICLASS_SUBSD<<8)+1, -
-  XED_IFORM_SUBSS_XMMss_MEMss = (XED_ICLASS_SUBSS<<8)+0, -
-  XED_IFORM_SUBSS_XMMss_XMMss = (XED_ICLASS_SUBSS<<8)+1, -
-  XED_IFORM_SWAPGS = (XED_ICLASS_SWAPGS<<8)+0, -
-  XED_IFORM_SYSCALL = (XED_ICLASS_SYSCALL<<8)+0, -
-  XED_IFORM_SYSENTER = (XED_ICLASS_SYSENTER<<8)+0, -
-  XED_IFORM_SYSEXIT = (XED_ICLASS_SYSEXIT<<8)+0, -
-  XED_IFORM_SYSRET = (XED_ICLASS_SYSRET<<8)+0, -
-  XED_IFORM_TEST_OrAX_IMM = (XED_ICLASS_TEST<<8)+0, -
-  XED_IFORM_TEST_MEMv_GPRv = (XED_ICLASS_TEST<<8)+1, -
-  XED_IFORM_TEST_AL_IMM = (XED_ICLASS_TEST<<8)+2, -
-  XED_IFORM_TEST_GPRv_GPRv = (XED_ICLASS_TEST<<8)+3, -
-  XED_IFORM_TEST_MEMb_IMM = (XED_ICLASS_TEST<<8)+4, -
-  XED_IFORM_TEST_GPR8_GPR8 = (XED_ICLASS_TEST<<8)+5, -
-  XED_IFORM_TEST_MEMb_GPR8 = (XED_ICLASS_TEST<<8)+6, -
-  XED_IFORM_TEST_GPR8_IMM = (XED_ICLASS_TEST<<8)+7, -
-  XED_IFORM_TEST_GPRv_IMM = (XED_ICLASS_TEST<<8)+8, -
-  XED_IFORM_TEST_MEMv_IMM = (XED_ICLASS_TEST<<8)+9, -
-  XED_IFORM_UCOMISD_XMMsd_MEMsd = (XED_ICLASS_UCOMISD<<8)+0, -
-  XED_IFORM_UCOMISD_XMMsd_XMMsd = (XED_ICLASS_UCOMISD<<8)+1, -
-  XED_IFORM_UCOMISS_XMMss_XMMss = (XED_ICLASS_UCOMISS<<8)+0, -
-  XED_IFORM_UCOMISS_XMMss_MEMss = (XED_ICLASS_UCOMISS<<8)+1, -
-  XED_IFORM_UD2 = (XED_ICLASS_UD2<<8)+0, -
-  XED_IFORM_UNPCKHPD_XMMpd_MEMdq = (XED_ICLASS_UNPCKHPD<<8)+0, -
-  XED_IFORM_UNPCKHPD_XMMpd_XMMq = (XED_ICLASS_UNPCKHPD<<8)+1, -
-  XED_IFORM_UNPCKHPS_XMMps_XMMdq = (XED_ICLASS_UNPCKHPS<<8)+0, -
-  XED_IFORM_UNPCKHPS_XMMps_MEMdq = (XED_ICLASS_UNPCKHPS<<8)+1, -
-  XED_IFORM_UNPCKLPD_XMMpd_MEMq = (XED_ICLASS_UNPCKLPD<<8)+0, -
-  XED_IFORM_UNPCKLPD_XMMpd_XMMq = (XED_ICLASS_UNPCKLPD<<8)+1, -
-  XED_IFORM_UNPCKLPS_XMMps_XMMq = (XED_ICLASS_UNPCKLPS<<8)+0, -
-  XED_IFORM_UNPCKLPS_XMMps_MEMq = (XED_ICLASS_UNPCKLPS<<8)+1, -
-  XED_IFORM_VERR_GPR16 = (XED_ICLASS_VERR<<8)+0, -
-  XED_IFORM_VERR_MEMw = (XED_ICLASS_VERR<<8)+1, -
-  XED_IFORM_VERW_GPR16 = (XED_ICLASS_VERW<<8)+0, -
-  XED_IFORM_VERW_MEMw = (XED_ICLASS_VERW<<8)+1, -
-  XED_IFORM_VMCALL = (XED_ICLASS_VMCALL<<8)+0, -
-  XED_IFORM_VMCLEAR_MEMq = (XED_ICLASS_VMCLEAR<<8)+0, -
-  XED_IFORM_VMLAUNCH = (XED_ICLASS_VMLAUNCH<<8)+0, -
-  XED_IFORM_VMLOAD_OrAX = (XED_ICLASS_VMLOAD<<8)+0, -
-  XED_IFORM_VMMCALL = (XED_ICLASS_VMMCALL<<8)+0, -
-  XED_IFORM_VMPTRLD_MEMq = (XED_ICLASS_VMPTRLD<<8)+0, -
-  XED_IFORM_VMPTRST_MEMq = (XED_ICLASS_VMPTRST<<8)+0, -
-  XED_IFORM_VMREAD_MEMq_GPR64 = (XED_ICLASS_VMREAD<<8)+0, -
-  XED_IFORM_VMREAD_GPR32_GPR32 = (XED_ICLASS_VMREAD<<8)+1, -
-  XED_IFORM_VMREAD_MEMd_GPR32 = (XED_ICLASS_VMREAD<<8)+2, -
-  XED_IFORM_VMREAD_GPR64_GPR64 = (XED_ICLASS_VMREAD<<8)+3, -
-  XED_IFORM_VMRESUME = (XED_ICLASS_VMRESUME<<8)+0, -
-  XED_IFORM_VMRUN_OrAX = (XED_ICLASS_VMRUN<<8)+0, -
-  XED_IFORM_VMSAVE = (XED_ICLASS_VMSAVE<<8)+0, -
-  XED_IFORM_VMWRITE_GPR64_MEMq = (XED_ICLASS_VMWRITE<<8)+0, -
-  XED_IFORM_VMWRITE_GPR32_GPR32 = (XED_ICLASS_VMWRITE<<8)+1, -
-  XED_IFORM_VMWRITE_GPR32_MEMd = (XED_ICLASS_VMWRITE<<8)+2, -
-  XED_IFORM_VMWRITE_GPR64_GPR64 = (XED_ICLASS_VMWRITE<<8)+3, -
-  XED_IFORM_VMXOFF = (XED_ICLASS_VMXOFF<<8)+0, -
-  XED_IFORM_VMXON_MEMq = (XED_ICLASS_VMXON<<8)+0, -
-  XED_IFORM_WBINVD = (XED_ICLASS_WBINVD<<8)+0, -
-  XED_IFORM_WRMSR = (XED_ICLASS_WRMSR<<8)+0, -
-  XED_IFORM_XADD_GPRv_GPRv = (XED_ICLASS_XADD<<8)+0, -
-  XED_IFORM_XADD_GPR8_GPR8 = (XED_ICLASS_XADD<<8)+1, -
-  XED_IFORM_XADD_MEMv_GPRv = (XED_ICLASS_XADD<<8)+2, -
-  XED_IFORM_XADD_MEMb_GPR8 = (XED_ICLASS_XADD<<8)+3, -
-  XED_IFORM_XCHG_GPR8_GPR8 = (XED_ICLASS_XCHG<<8)+0, -
-  XED_IFORM_XCHG_MEMv_GPRv = (XED_ICLASS_XCHG<<8)+1, -
-  XED_IFORM_XCHG_GPRv_GPRv = (XED_ICLASS_XCHG<<8)+2, -
-  XED_IFORM_XCHG_MEMb_GPR8 = (XED_ICLASS_XCHG<<8)+3, -
-  XED_IFORM_XCHG_GPRv_OrAX = (XED_ICLASS_XCHG<<8)+4, -
-  XED_IFORM_XGETBV = (XED_ICLASS_XGETBV<<8)+0, -
-  XED_IFORM_XLAT_FINAL_DSEG = (XED_ICLASS_XLAT<<8)+0, -
-  XED_IFORM_XLAT = (XED_ICLASS_XLAT<<8)+1, -
-  XED_IFORM_XOR_GPRv_IMM = (XED_ICLASS_XOR<<8)+0, -
-  XED_IFORM_XOR_MEMv_GPRv = (XED_ICLASS_XOR<<8)+1, -
-  XED_IFORM_XOR_MEMb_IMM = (XED_ICLASS_XOR<<8)+2, -
-  XED_IFORM_XOR_GPR8_MEMb = (XED_ICLASS_XOR<<8)+3, -
-  XED_IFORM_XOR_MEMb_GPR8 = (XED_ICLASS_XOR<<8)+4, -
-  XED_IFORM_XOR_GPRv_MEMv = (XED_ICLASS_XOR<<8)+5, -
-  XED_IFORM_XOR_AL_IMM = (XED_ICLASS_XOR<<8)+6, -
-  XED_IFORM_XOR_GPRv_GPRv = (XED_ICLASS_XOR<<8)+7, -
-  XED_IFORM_XOR_MEMv_IMM = (XED_ICLASS_XOR<<8)+8, -
-  XED_IFORM_XOR_OrAX_IMM = (XED_ICLASS_XOR<<8)+9, -
-  XED_IFORM_XOR_GPR8_GPR8 = (XED_ICLASS_XOR<<8)+10, -
-  XED_IFORM_XOR_GPR8_IMM = (XED_ICLASS_XOR<<8)+11, -
-  XED_IFORM_XORPD_XMMpd_XMMpd = (XED_ICLASS_XORPD<<8)+0, -
-  XED_IFORM_XORPD_XMMpd_MEMpd = (XED_ICLASS_XORPD<<8)+1, -
-  XED_IFORM_XORPS_XMMps_MEMps = (XED_ICLASS_XORPS<<8)+0, -
-  XED_IFORM_XORPS_XMMps_XMMps = (XED_ICLASS_XORPS<<8)+1, -
-  XED_IFORM_XRSTOR_MEMmxsave = (XED_ICLASS_XRSTOR<<8)+0, -
-  XED_IFORM_XSAVE_MEMmxsave = (XED_ICLASS_XSAVE<<8)+0, -
-  XED_IFORM_XSETBV = (XED_ICLASS_XSETBV<<8)+0, -
-  XED_IFORM_LAST -
- }

Functions

XED_DLL_EXPORT xed_iform_enum_t str2xed_iform_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_iform_enum_t2str (const xed_iform_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_IFORM_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-iform-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_iform_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_IFORM_INVALID  -
XED_IFORM_AAA  -
XED_IFORM_AAD_IMM  -
XED_IFORM_AAM_IMM  -
XED_IFORM_AAS  -
XED_IFORM_ADC_MEMv_GPRv  -
XED_IFORM_ADC_GPRv_GPRv  -
XED_IFORM_ADC_GPR8_MEMb  -
XED_IFORM_ADC_AL_IMM  -
XED_IFORM_ADC_GPR8_IMM  -
XED_IFORM_ADC_GPRv_MEMv  -
XED_IFORM_ADC_OrAX_IMM  -
XED_IFORM_ADC_MEMv_IMM  -
XED_IFORM_ADC_GPRv_IMM  -
XED_IFORM_ADC_MEMb_GPR8  -
XED_IFORM_ADC_MEMb_IMM  -
XED_IFORM_ADC_GPR8_GPR8  -
XED_IFORM_ADD_GPR8_MEMb  -
XED_IFORM_ADD_OrAX_IMM  -
XED_IFORM_ADD_AL_IMM  -
XED_IFORM_ADD_GPRv_GPRv  -
XED_IFORM_ADD_MEMv_GPRv  -
XED_IFORM_ADD_GPR8_GPR8  -
XED_IFORM_ADD_GPRv_MEMv  -
XED_IFORM_ADD_GPR8_IMM  -
XED_IFORM_ADD_MEMb_IMM  -
XED_IFORM_ADD_GPRv_IMM  -
XED_IFORM_ADD_MEMb_GPR8  -
XED_IFORM_ADD_MEMv_IMM  -
XED_IFORM_ADDPD_XMMpd_XMMpd  -
XED_IFORM_ADDPD_XMMpd_MEMpd  -
XED_IFORM_ADDPS_XMMps_MEMps  -
XED_IFORM_ADDPS_XMMps_XMMps  -
XED_IFORM_ADDSD_XMMsd_MEMsd  -
XED_IFORM_ADDSD_XMMsd_XMMsd  -
XED_IFORM_ADDSS_XMMss_XMMss  -
XED_IFORM_ADDSS_XMMss_MEMss  -
XED_IFORM_ADDSUBPD_XMMpd_MEMpd  -
XED_IFORM_ADDSUBPD_XMMpd_XMMpd  -
XED_IFORM_ADDSUBPS_XMMps_XMMps  -
XED_IFORM_ADDSUBPS_XMMps_MEMps  -
XED_IFORM_AND_OrAX_IMM  -
XED_IFORM_AND_GPR8_GPR8  -
XED_IFORM_AND_GPR8_IMM  -
XED_IFORM_AND_MEMv_IMM  -
XED_IFORM_AND_MEMb_GPR8  -
XED_IFORM_AND_GPRv_MEMv  -
XED_IFORM_AND_GPRv_IMM  -
XED_IFORM_AND_GPR8_MEMb  -
XED_IFORM_AND_AL_IMM  -
XED_IFORM_AND_MEMv_GPRv  -
XED_IFORM_AND_MEMb_IMM  -
XED_IFORM_AND_GPRv_GPRv  -
XED_IFORM_ANDNPD_XMMpd_MEMpd  -
XED_IFORM_ANDNPD_XMMpd_XMMpd  -
XED_IFORM_ANDNPS_XMMps_XMMps  -
XED_IFORM_ANDNPS_XMMps_MEMps  -
XED_IFORM_ANDPD_XMMpd_XMMpd  -
XED_IFORM_ANDPD_XMMpd_MEMpd  -
XED_IFORM_ANDPS_XMMps_MEMps  -
XED_IFORM_ANDPS_XMMps_XMMps  -
XED_IFORM_ARPL_GPR16_GPR16  -
XED_IFORM_ARPL_MEMw_GPR16  -
XED_IFORM_BLENDPD_XMMdq_XMMdq_IMM  -
XED_IFORM_BLENDPD_XMMdq_MEMdq_IMM  -
XED_IFORM_BLENDPS_XMMdq_XMMdq_IMM  -
XED_IFORM_BLENDPS_XMMdq_MEMdq_IMM  -
XED_IFORM_BLENDVPD_XMMdq_XMMdq_XMM0dq  -
XED_IFORM_BLENDVPD_XMMdq_MEMdq_XMM0dq  -
XED_IFORM_BLENDVPS_XMMdq_XMMdq_XMM0dq  -
XED_IFORM_BLENDVPS_XMMdq_MEMdq_XMM0dq  -
XED_IFORM_BOUND_GPRv_MEMa  -
XED_IFORM_BSF_GPRv_MEMv  -
XED_IFORM_BSF_GPRv_GPRv  -
XED_IFORM_BSR_GPRv_GPRv  -
XED_IFORM_BSR_GPRv_MEMv  -
XED_IFORM_BSWAP_GPRv  -
XED_IFORM_BT_GPRv_IMM  -
XED_IFORM_BT_MEMv_IMM  -
XED_IFORM_BT_MEMv_GPRv  -
XED_IFORM_BT_GPRv_GPRv  -
XED_IFORM_BTC_GPRv_GPRv  -
XED_IFORM_BTC_MEMv_IMM  -
XED_IFORM_BTC_MEMv_GPRv  -
XED_IFORM_BTC_GPRv_IMM  -
XED_IFORM_BTR_GPRv_IMM  -
XED_IFORM_BTR_GPRv_GPRv  -
XED_IFORM_BTR_MEMv_IMM  -
XED_IFORM_BTR_MEMv_GPRv  -
XED_IFORM_BTS_GPRv_GPRv  -
XED_IFORM_BTS_MEMv_IMM  -
XED_IFORM_BTS_MEMv_GPRv  -
XED_IFORM_BTS_GPRv_IMM  -
XED_IFORM_CALL_FAR_MEMp  -
XED_IFORM_CALL_FAR_PTR_IMM  -
XED_IFORM_CALL_NEAR_MEMv  -
XED_IFORM_CALL_NEAR_RELBR  -
XED_IFORM_CALL_NEAR_GPRv  -
XED_IFORM_CBW  -
XED_IFORM_CDQ  -
XED_IFORM_CDQE  -
XED_IFORM_CLC  -
XED_IFORM_CLD  -
XED_IFORM_CLFLUSH_MEMb  -
XED_IFORM_CLGI  -
XED_IFORM_CLI  -
XED_IFORM_CLTS  -
XED_IFORM_CMC  -
XED_IFORM_CMOVB_GPRv_GPRv  -
XED_IFORM_CMOVB_GPRv_MEMv  -
XED_IFORM_CMOVBE_GPRv_GPRv  -
XED_IFORM_CMOVBE_GPRv_MEMv  -
XED_IFORM_CMOVL_GPRv_MEMv  -
XED_IFORM_CMOVL_GPRv_GPRv  -
XED_IFORM_CMOVLE_GPRv_MEMv  -
XED_IFORM_CMOVLE_GPRv_GPRv  -
XED_IFORM_CMOVNB_GPRv_MEMv  -
XED_IFORM_CMOVNB_GPRv_GPRv  -
XED_IFORM_CMOVNBE_GPRv_GPRv  -
XED_IFORM_CMOVNBE_GPRv_MEMv  -
XED_IFORM_CMOVNL_GPRv_MEMv  -
XED_IFORM_CMOVNL_GPRv_GPRv  -
XED_IFORM_CMOVNLE_GPRv_GPRv  -
XED_IFORM_CMOVNLE_GPRv_MEMv  -
XED_IFORM_CMOVNO_GPRv_MEMv  -
XED_IFORM_CMOVNO_GPRv_GPRv  -
XED_IFORM_CMOVNP_GPRv_GPRv  -
XED_IFORM_CMOVNP_GPRv_MEMv  -
XED_IFORM_CMOVNS_GPRv_GPRv  -
XED_IFORM_CMOVNS_GPRv_MEMv  -
XED_IFORM_CMOVNZ_GPRv_MEMv  -
XED_IFORM_CMOVNZ_GPRv_GPRv  -
XED_IFORM_CMOVO_GPRv_MEMv  -
XED_IFORM_CMOVO_GPRv_GPRv  -
XED_IFORM_CMOVP_GPRv_GPRv  -
XED_IFORM_CMOVP_GPRv_MEMv  -
XED_IFORM_CMOVS_GPRv_GPRv  -
XED_IFORM_CMOVS_GPRv_MEMv  -
XED_IFORM_CMOVZ_GPRv_GPRv  -
XED_IFORM_CMOVZ_GPRv_MEMv  -
XED_IFORM_CMP_OrAX_IMM  -
XED_IFORM_CMP_MEMv_GPRv  -
XED_IFORM_CMP_AL_IMM  -
XED_IFORM_CMP_GPRv_GPRv  -
XED_IFORM_CMP_MEMb_IMM  -
XED_IFORM_CMP_GPR8_GPR8  -
XED_IFORM_CMP_MEMb_GPR8  -
XED_IFORM_CMP_GPR8_IMM  -
XED_IFORM_CMP_GPRv_IMM  -
XED_IFORM_CMP_GPRv_MEMv  -
XED_IFORM_CMP_GPR8_MEMb  -
XED_IFORM_CMP_MEMv_IMM  -
XED_IFORM_CMPPD_XMMpd_MEMpd_IMM  -
XED_IFORM_CMPPD_XMMpd_XMMpd_IMM  -
XED_IFORM_CMPPS_XMMps_XMMps_IMM  -
XED_IFORM_CMPPS_XMMps_MEMps_IMM  -
XED_IFORM_CMPSB  -
XED_IFORM_CMPSD  -
XED_IFORM_CMPSD_XMM_XMMsd_MEMsd_IMM  -
XED_IFORM_CMPSD_XMM_XMMsd_XMMsd_IMM  -
XED_IFORM_CMPSQ  -
XED_IFORM_CMPSS_XMMss_XMMss_IMM  -
XED_IFORM_CMPSS_XMMss_MEMss_IMM  -
XED_IFORM_CMPSW  -
XED_IFORM_CMPXCHG_GPR8_GPR8  -
XED_IFORM_CMPXCHG_MEMv_GPRv  -
XED_IFORM_CMPXCHG_MEMb_GPR8  -
XED_IFORM_CMPXCHG_GPRv_GPRv  -
XED_IFORM_CMPXCHG16B_MEMdq  -
XED_IFORM_CMPXCHG8B_MEMq  -
XED_IFORM_COMISD_XMMsd_MEMsd  -
XED_IFORM_COMISD_XMMsd_XMMsd  -
XED_IFORM_COMISS_XMMss_XMMss  -
XED_IFORM_COMISS_XMMss_MEMss  -
XED_IFORM_CPUID  -
XED_IFORM_CQO  -
XED_IFORM_CRC32_GPR32d_GPRv  -
XED_IFORM_CRC32_GPR32d_MEMb  -
XED_IFORM_CRC32_GPR32d_GPR8b  -
XED_IFORM_CRC32_GPR64q_MEMv  -
XED_IFORM_CRC32_GPR32d_MEMv  -
XED_IFORM_CRC32_GPR64q_MEMb  -
XED_IFORM_CRC32_GPR64q_GPRv  -
XED_IFORM_CRC32_GPR64q_GPR8b  -
XED_IFORM_CVTDQ2PD_XMMpd_MEMq  -
XED_IFORM_CVTDQ2PD_XMMpd_XMMq  -
XED_IFORM_CVTDQ2PS_XMMps_MEMdq  -
XED_IFORM_CVTDQ2PS_XMMps_XMMdq  -
XED_IFORM_CVTPD2DQ_XMMdq_MEMpd  -
XED_IFORM_CVTPD2DQ_XMMdq_XMMpd  -
XED_IFORM_CVTPD2PI_MMXq_XMMpd  -
XED_IFORM_CVTPD2PI_MMXq_MEMpd  -
XED_IFORM_CVTPD2PS_XMMps_MEMpd  -
XED_IFORM_CVTPD2PS_XMMps_XMMpd  -
XED_IFORM_CVTPI2PD_XMMpd_MMXq  -
XED_IFORM_CVTPI2PD_XMMpd_MEMq  -
XED_IFORM_CVTPI2PS_XMMq_MMXq  -
XED_IFORM_CVTPI2PS_XMMq_MEMq  -
XED_IFORM_CVTPS2DQ_XMMdq_MEMps  -
XED_IFORM_CVTPS2DQ_XMMdq_XMMps  -
XED_IFORM_CVTPS2PD_XMMpd_MEMq  -
XED_IFORM_CVTPS2PD_XMMpd_XMMq  -
XED_IFORM_CVTPS2PI_MMXq_MEMq  -
XED_IFORM_CVTPS2PI_MMXq_XMMq  -
XED_IFORM_CVTSD2SI_GPR32_MEMsd  -
XED_IFORM_CVTSD2SI_GPR32_XMMsd  -
XED_IFORM_CVTSD2SI_GPR64_XMMsd  -
XED_IFORM_CVTSD2SI_GPR64_MEMsd  -
XED_IFORM_CVTSD2SS_XMMss_MEMsd  -
XED_IFORM_CVTSD2SS_XMMss_XMMsd  -
XED_IFORM_CVTSI2SD_XMMsd_GPR64  -
XED_IFORM_CVTSI2SD_XMMsd_GPR32  -
XED_IFORM_CVTSI2SD_XMMsd_MEMd  -
XED_IFORM_CVTSI2SD_XMMsd_MEMq  -
XED_IFORM_CVTSI2SS_XMMss_GPR64  -
XED_IFORM_CVTSI2SS_XMMss_GPR32  -
XED_IFORM_CVTSI2SS_XMMss_MEMd  -
XED_IFORM_CVTSI2SS_XMMss_MEMq  -
XED_IFORM_CVTSS2SD_XMMsd_MEMss  -
XED_IFORM_CVTSS2SD_XMMsd_XMMss  -
XED_IFORM_CVTSS2SI_GPR64_XMMss  -
XED_IFORM_CVTSS2SI_GPR32_MEMss  -
XED_IFORM_CVTSS2SI_GPR32_XMMss  -
XED_IFORM_CVTSS2SI_GPR64_MEMss  -
XED_IFORM_CVTTPD2DQ_XMMdq_XMMpd  -
XED_IFORM_CVTTPD2DQ_XMMdq_MEMpd  -
XED_IFORM_CVTTPD2PI_MMXq_MEMpd  -
XED_IFORM_CVTTPD2PI_MMXq_XMMpd  -
XED_IFORM_CVTTPS2DQ_XMMdq_XMMps  -
XED_IFORM_CVTTPS2DQ_XMMdq_MEMps  -
XED_IFORM_CVTTPS2PI_MMXq_MEMq  -
XED_IFORM_CVTTPS2PI_MMXq_XMMq  -
XED_IFORM_CVTTSD2SI_GPR64_MEMsd  -
XED_IFORM_CVTTSD2SI_GPR32_XMMsd  -
XED_IFORM_CVTTSD2SI_GPR32_MEMsd  -
XED_IFORM_CVTTSD2SI_GPR64_XMMsd  -
XED_IFORM_CVTTSS2SI_GPR64_MEMss  -
XED_IFORM_CVTTSS2SI_GPR64_XMMss  -
XED_IFORM_CVTTSS2SI_GPR32_XMMss  -
XED_IFORM_CVTTSS2SI_GPR32_MEMss  -
XED_IFORM_CWD  -
XED_IFORM_CWDE  -
XED_IFORM_DAA  -
XED_IFORM_DAS  -
XED_IFORM_DEC_GPR8  -
XED_IFORM_DEC_MEMv  -
XED_IFORM_DEC_MEMb  -
XED_IFORM_DEC_GPRv  -
XED_IFORM_DIV_MEMv  -
XED_IFORM_DIV_GPR8  -
XED_IFORM_DIV_GPRv  -
XED_IFORM_DIV_MEMb  -
XED_IFORM_DIVPD_XMMpd_XMMpd  -
XED_IFORM_DIVPD_XMMpd_MEMpd  -
XED_IFORM_DIVPS_XMMps_MEMps  -
XED_IFORM_DIVPS_XMMps_XMMps  -
XED_IFORM_DIVSD_XMMsd_MEMsd  -
XED_IFORM_DIVSD_XMMsd_XMMsd  -
XED_IFORM_DIVSS_XMMss_XMMss  -
XED_IFORM_DIVSS_XMMss_MEMss  -
XED_IFORM_DPPD_XMMdq_XMMdq_IMM  -
XED_IFORM_DPPD_XMMdq_MEMdq_IMM  -
XED_IFORM_DPPS_XMMdq_XMMdq_IMM  -
XED_IFORM_DPPS_XMMdq_MEMdq_IMM  -
XED_IFORM_EMMS  -
XED_IFORM_ENTER_IMM_IMM  -
XED_IFORM_EXTRACTPS_GPR32w_XMMdq_IMM  -
XED_IFORM_EXTRACTPS_MEMw_XMMps_IMM  -
XED_IFORM_EXTRQ_XMMq_IMM_IMM  -
XED_IFORM_EXTRQ_XMMq_XMMdq  -
XED_IFORM_F2XM1_ST0  -
XED_IFORM_FABS_ST0  -
XED_IFORM_FADD_ST0_MEMmem32real  -
XED_IFORM_FADD_ST0_MEMm64real  -
XED_IFORM_FADD_X87_ST0  -
XED_IFORM_FADD_ST0_X87  -
XED_IFORM_FADDP_X87_ST0  -
XED_IFORM_FBLD_ST0_MEMmem80dec  -
XED_IFORM_FBSTP_MEMmem80dec_ST0  -
XED_IFORM_FCHS_ST0  -
XED_IFORM_FCMOVB_ST0_X87  -
XED_IFORM_FCMOVBE_ST0_X87  -
XED_IFORM_FCMOVE_ST0_X87  -
XED_IFORM_FCMOVNB_ST0_X87  -
XED_IFORM_FCMOVNBE_ST0_X87  -
XED_IFORM_FCMOVNE_ST0_X87  -
XED_IFORM_FCMOVNU_ST0_X87  -
XED_IFORM_FCMOVU_ST0_X87  -
XED_IFORM_FCOM_ST0_X87  -
XED_IFORM_FCOM_ST0_MEMmem32real  -
XED_IFORM_FCOM_ST0_MEMm64real  -
XED_IFORM_FCOMI_ST0_X87  -
XED_IFORM_FCOMIP_ST0_X87  -
XED_IFORM_FCOMP_ST0_X87  -
XED_IFORM_FCOMP_ST0_MEMmem32real  -
XED_IFORM_FCOMP_ST0_MEMm64real  -
XED_IFORM_FCOMPP_ST0_ST1  -
XED_IFORM_FCOS_ST0  -
XED_IFORM_FDECSTP  -
XED_IFORM_FDIV_X87_ST0  -
XED_IFORM_FDIV_ST0_MEMmem32real  -
XED_IFORM_FDIV_ST0_MEMm64real  -
XED_IFORM_FDIV_ST0_X87  -
XED_IFORM_FDIVP_X87_ST0  -
XED_IFORM_FDIVR_ST0_MEMm64real  -
XED_IFORM_FDIVR_X87_ST0  -
XED_IFORM_FDIVR_ST0_X87  -
XED_IFORM_FDIVR_ST0_MEMmem32real  -
XED_IFORM_FDIVRP_X87_ST0  -
XED_IFORM_FEMMS  -
XED_IFORM_FFREE_X87  -
XED_IFORM_FFREEP_X87  -
XED_IFORM_FIADD_ST0_MEMmem32int  -
XED_IFORM_FIADD_ST0_MEMmem16int  -
XED_IFORM_FICOM_ST0_MEMmem32int  -
XED_IFORM_FICOM_ST0_MEMmem16int  -
XED_IFORM_FICOMP_ST0_MEMmem16int  -
XED_IFORM_FICOMP_ST0_MEMmem32int  -
XED_IFORM_FIDIV_ST0_MEMmem16int  -
XED_IFORM_FIDIV_ST0_MEMmem32int  -
XED_IFORM_FIDIVR_ST0_MEMmem32int  -
XED_IFORM_FIDIVR_ST0_MEMmem16int  -
XED_IFORM_FILD_ST0_MEMmem32int  -
XED_IFORM_FILD_ST0_MEMmem16int  -
XED_IFORM_FILD_ST0_MEMm64int  -
XED_IFORM_FIMUL_ST0_MEMmem16int  -
XED_IFORM_FIMUL_ST0_MEMmem32int  -
XED_IFORM_FINCSTP  -
XED_IFORM_FIST_MEMmem32int_ST0  -
XED_IFORM_FIST_MEMmem16int_ST0  -
XED_IFORM_FISTP_MEMmem32int_ST0  -
XED_IFORM_FISTP_MEMmem16int_ST0  -
XED_IFORM_FISTP_MEMm64int_ST0  -
XED_IFORM_FISTTP_MEMmem16int_ST0  -
XED_IFORM_FISTTP_MEMmem32int_ST0  -
XED_IFORM_FISTTP_MEMm64int_ST0  -
XED_IFORM_FISUB_ST0_MEMmem32int  -
XED_IFORM_FISUB_ST0_MEMmem16int  -
XED_IFORM_FISUBR_ST0_MEMmem32int  -
XED_IFORM_FISUBR_ST0_MEMmem16int  -
XED_IFORM_FLD_ST0_X87  -
XED_IFORM_FLD_ST0_MEMm64real  -
XED_IFORM_FLD_ST0_MEMmem32real  -
XED_IFORM_FLD_ST0_MEMmem80real  -
XED_IFORM_FLD1_ST0  -
XED_IFORM_FLDCW_MEMmem16  -
XED_IFORM_FLDENV_MEMmem14  -
XED_IFORM_FLDENV_MEMmem28  -
XED_IFORM_FLDL2E_ST0  -
XED_IFORM_FLDL2T_ST0  -
XED_IFORM_FLDLG2_ST0  -
XED_IFORM_FLDLN2_ST0  -
XED_IFORM_FLDPI_ST0  -
XED_IFORM_FLDZ_ST0  -
XED_IFORM_FMUL_ST0_MEMm64real  -
XED_IFORM_FMUL_ST0_MEMmem32real  -
XED_IFORM_FMUL_X87_ST0  -
XED_IFORM_FMUL_ST0_X87  -
XED_IFORM_FMULP_X87_ST0  -
XED_IFORM_FNCLEX  -
XED_IFORM_FNINIT  -
XED_IFORM_FNOP  -
XED_IFORM_FNSAVE_MEMmem98  -
XED_IFORM_FNSAVE_MEMmem108  -
XED_IFORM_FNSTCW_MEMmem16  -
XED_IFORM_FNSTENV_MEMmem28  -
XED_IFORM_FNSTENV_MEMmem14  -
XED_IFORM_FNSTSW_MEMmem16  -
XED_IFORM_FNSTSW_AX  -
XED_IFORM_FPATAN_ST0_ST1  -
XED_IFORM_FPREM_ST0_ST1  -
XED_IFORM_FPREM1_ST0_ST1  -
XED_IFORM_FPTAN_ST0_ST1  -
XED_IFORM_FRNDINT_ST0  -
XED_IFORM_FRSTOR_MEMmem108  -
XED_IFORM_FRSTOR_MEMmem98  -
XED_IFORM_FSCALE_ST0_ST1  -
XED_IFORM_FSETPM287_NOP  -
XED_IFORM_FSIN_ST0  -
XED_IFORM_FSINCOS_ST0_ST1  -
XED_IFORM_FSQRT_ST0  -
XED_IFORM_FST_X87_ST0  -
XED_IFORM_FST_MEMmem32real_ST0  -
XED_IFORM_FST_MEMm64real_ST0  -
XED_IFORM_FSTP_MEMmem32real_ST0  -
XED_IFORM_FSTP_X87_ST0  -
XED_IFORM_FSTP_MEMmem80real_ST0  -
XED_IFORM_FSTP_MEMm64real_ST0  -
XED_IFORM_FSUB_ST0_X87  -
XED_IFORM_FSUB_X87_ST0  -
XED_IFORM_FSUB_ST0_MEMm64real  -
XED_IFORM_FSUB_ST0_MEMmem32real  -
XED_IFORM_FSUBP_X87_ST0  -
XED_IFORM_FSUBR_ST0_MEMmem32real  -
XED_IFORM_FSUBR_X87_ST0  -
XED_IFORM_FSUBR_ST0_X87  -
XED_IFORM_FSUBR_ST0_MEMm64real  -
XED_IFORM_FSUBRP_X87_ST0  -
XED_IFORM_FTST_ST0  -
XED_IFORM_FUCOM_ST0_X87  -
XED_IFORM_FUCOMI_ST0_X87  -
XED_IFORM_FUCOMIP_ST0_X87  -
XED_IFORM_FUCOMP_ST0_X87  -
XED_IFORM_FUCOMPP_ST0_ST1  -
XED_IFORM_FWAIT  -
XED_IFORM_FXAM_ST0  -
XED_IFORM_FXCH_ST0_X87  -
XED_IFORM_FXRSTOR_MEMmfpxenv  -
XED_IFORM_FXSAVE_MEMmfpxenv  -
XED_IFORM_FXTRACT_ST0_ST1  -
XED_IFORM_FYL2X_ST0_ST1  -
XED_IFORM_FYL2XP1_ST0_ST1  -
XED_IFORM_HADDPD_XMMpd_MEMpd  -
XED_IFORM_HADDPD_XMMpd_XMMpd  -
XED_IFORM_HADDPS_XMMps_XMMps  -
XED_IFORM_HADDPS_XMMps_MEMps  -
XED_IFORM_HLT  -
XED_IFORM_HSUBPD_XMMpd_XMMpd  -
XED_IFORM_HSUBPD_XMMpd_MEMpd  -
XED_IFORM_HSUBPS_XMMps_MEMps  -
XED_IFORM_HSUBPS_XMMps_XMMps  -
XED_IFORM_IDIV_MEMb  -
XED_IFORM_IDIV_GPR8  -
XED_IFORM_IDIV_GPRv  -
XED_IFORM_IDIV_MEMv  -
XED_IFORM_IMUL_MEMv  -
XED_IFORM_IMUL_GPRv_GPRv  -
XED_IFORM_IMUL_GPRv_GPRv_IMM  -
XED_IFORM_IMUL_GPR8  -
XED_IFORM_IMUL_MEMb  -
XED_IFORM_IMUL_GPRv_MEMv_IMM  -
XED_IFORM_IMUL_GPRv_MEMv  -
XED_IFORM_IMUL_GPRv  -
XED_IFORM_IN_OeAX_DX  -
XED_IFORM_IN_OeAX_IMM  -
XED_IFORM_IN_AL_IMM  -
XED_IFORM_IN_AL_DX  -
XED_IFORM_INC_MEMb  -
XED_IFORM_INC_MEMv  -
XED_IFORM_INC_GPRv  -
XED_IFORM_INC_GPR8  -
XED_IFORM_INSB  -
XED_IFORM_INSD  -
XED_IFORM_INSERTPS_XMMps_XMMps_IMM  -
XED_IFORM_INSERTPS_XMMps_MEMd_IMM  -
XED_IFORM_INSERTQ_XMMq_XMMdq  -
XED_IFORM_INSERTQ_XMMq_XMMq_IMM_IMM  -
XED_IFORM_INSW  -
XED_IFORM_INT_IMM  -
XED_IFORM_INT1  -
XED_IFORM_INT3  -
XED_IFORM_INTO  -
XED_IFORM_INVD  -
XED_IFORM_INVLPG_MEMb  -
XED_IFORM_INVLPGA_OrAX_ECX  -
XED_IFORM_IRET  -
XED_IFORM_IRETD  -
XED_IFORM_IRETQ  -
XED_IFORM_JB_RELBR  -
XED_IFORM_JBE_RELBR  -
XED_IFORM_JL_RELBR  -
XED_IFORM_JLE_RELBR  -
XED_IFORM_JMP_RELBR  -
XED_IFORM_JMP_MEMv  -
XED_IFORM_JMP_GPRv  -
XED_IFORM_JMP_FAR_PTR_IMM  -
XED_IFORM_JMP_FAR_MEMp  -
XED_IFORM_JNB_RELBR  -
XED_IFORM_JNBE_RELBR  -
XED_IFORM_JNL_RELBR  -
XED_IFORM_JNLE_RELBR  -
XED_IFORM_JNO_RELBR  -
XED_IFORM_JNP_RELBR  -
XED_IFORM_JNS_RELBR  -
XED_IFORM_JNZ_RELBR  -
XED_IFORM_JO_RELBR  -
XED_IFORM_JP_RELBR  -
XED_IFORM_JRCXZ_RELBR  -
XED_IFORM_JS_RELBR  -
XED_IFORM_JZ_RELBR  -
XED_IFORM_LAHF  -
XED_IFORM_LAR_GPRv_GPR16  -
XED_IFORM_LAR_GPRv_MEMw  -
XED_IFORM_LDDQU_XMMpd_MEMdq  -
XED_IFORM_LDMXCSR_MEMd  -
XED_IFORM_LDS_GPRz_MEMp  -
XED_IFORM_LEA_GPRv_AGEN  -
XED_IFORM_LEAVE  -
XED_IFORM_LES_GPRz_MEMp  -
XED_IFORM_LFENCE  -
XED_IFORM_LFS_GPRv_MEMp2  -
XED_IFORM_LGDT_MEMs  -
XED_IFORM_LGS_GPRv_MEMp2  -
XED_IFORM_LIDT_MEMs  -
XED_IFORM_LLDT_MEMw  -
XED_IFORM_LLDT_GPR16  -
XED_IFORM_LMSW_GPR16  -
XED_IFORM_LMSW_MEMw  -
XED_IFORM_LODSB  -
XED_IFORM_LODSD  -
XED_IFORM_LODSQ  -
XED_IFORM_LODSW  -
XED_IFORM_LOOP_RELBR  -
XED_IFORM_LOOPE_RELBR  -
XED_IFORM_LOOPNE_RELBR  -
XED_IFORM_LSL_GPRv_GPR16  -
XED_IFORM_LSL_GPRv_MEMw  -
XED_IFORM_LSS_GPRv_MEMp2  -
XED_IFORM_LTR_GPR16  -
XED_IFORM_LTR_MEMw  -
XED_IFORM_LZCNT_GPRv_GPRv  -
XED_IFORM_LZCNT_GPRv_MEMv  -
XED_IFORM_MASKMOVDQU_XMMdq_XMMdq  -
XED_IFORM_MASKMOVQ_MMXq_MMXq  -
XED_IFORM_MAXPD_XMMpd_MEMpd  -
XED_IFORM_MAXPD_XMMpd_XMMpd  -
XED_IFORM_MAXPS_XMMps_XMMps  -
XED_IFORM_MAXPS_XMMps_MEMps  -
XED_IFORM_MAXSD_XMMsd_XMMsd  -
XED_IFORM_MAXSD_XMMsd_MEMsd  -
XED_IFORM_MAXSS_XMMss_MEMss  -
XED_IFORM_MAXSS_XMMss_XMMss  -
XED_IFORM_MFENCE  -
XED_IFORM_MINPD_XMMpd_MEMpd  -
XED_IFORM_MINPD_XMMpd_XMMpd  -
XED_IFORM_MINPS_XMMps_XMMps  -
XED_IFORM_MINPS_XMMps_MEMps  -
XED_IFORM_MINSD_XMMsd_XMMsd  -
XED_IFORM_MINSD_XMMsd_MEMsd  -
XED_IFORM_MINSS_XMMss_MEMss  -
XED_IFORM_MINSS_XMMss_XMMss  -
XED_IFORM_MONITOR_EAX_ECX_EDX  -
XED_IFORM_MOV_GPRv_GPRv  -
XED_IFORM_MOV_GPR8_GPR8  -
XED_IFORM_MOV_GPR8_IMM  -
XED_IFORM_MOV_GPR8_MEMb  -
XED_IFORM_MOV_MEMv_GPRv  -
XED_IFORM_MOV_MEMb_GPR8  -
XED_IFORM_MOV_MEMv_OrAX  -
XED_IFORM_MOV_AL_MEMb  -
XED_IFORM_MOV_MEMb_AL  -
XED_IFORM_MOV_OrAX_MEMv  -
XED_IFORM_MOV_MEMw_SEG  -
XED_IFORM_MOV_GPRv_MEMv  -
XED_IFORM_MOV_SEG_MEMw  -
XED_IFORM_MOV_MEMv_IMM  -
XED_IFORM_MOV_SEG_GPR16  -
XED_IFORM_MOV_GPRv_IMM  -
XED_IFORM_MOV_MEMb_IMM  -
XED_IFORM_MOV_GPRv_SEG  -
XED_IFORM_MOVAPD_XMMpd_MEMpd  -
XED_IFORM_MOVAPD_XMMpd_XMMpd  -
XED_IFORM_MOVAPD_MEMpd_XMMpd  -
XED_IFORM_MOVAPS_XMMps_XMMps  -
XED_IFORM_MOVAPS_XMMps_MEMps  -
XED_IFORM_MOVAPS_MEMps_XMMps  -
XED_IFORM_MOVD_MEMd_XMMd  -
XED_IFORM_MOVD_GPR32_MMXd  -
XED_IFORM_MOVD_MMXq_MEMd  -
XED_IFORM_MOVD_XMMdq_MEMd  -
XED_IFORM_MOVD_XMMdq_GPR32  -
XED_IFORM_MOVD_GPR32_XMMd  -
XED_IFORM_MOVD_MMXq_GPR32  -
XED_IFORM_MOVD_MEMd_MMXd  -
XED_IFORM_MOVDDUP_XMMq_XMMq  -
XED_IFORM_MOVDDUP_XMMq_MEMq  -
XED_IFORM_MOVDQ2Q_MMXq_XMMq  -
XED_IFORM_MOVDQA_XMMdq_XMMdq  -
XED_IFORM_MOVDQA_XMMdq_MEMdq  -
XED_IFORM_MOVDQA_MEMdq_XMMdq  -
XED_IFORM_MOVDQU_MEMdq_XMMdq  -
XED_IFORM_MOVDQU_XMMdq_XMMdq  -
XED_IFORM_MOVDQU_XMMdq_MEMdq  -
XED_IFORM_MOVHLPS_XMMq_XMMq  -
XED_IFORM_MOVHPD_MEMq_XMMsd  -
XED_IFORM_MOVHPD_XMMsd_MEMq  -
XED_IFORM_MOVHPS_MEMq_XMMps  -
XED_IFORM_MOVHPS_XMMq_MEMq  -
XED_IFORM_MOVLHPS_XMMq_XMMq  -
XED_IFORM_MOVLPD_XMMsd_MEMq  -
XED_IFORM_MOVLPD_MEMq_XMMsd  -
XED_IFORM_MOVLPS_MEMq_XMMps  -
XED_IFORM_MOVLPS_XMMq_MEMq  -
XED_IFORM_MOVMSKPD_GPR32_XMMpd  -
XED_IFORM_MOVMSKPS_GPR32_XMMps  -
XED_IFORM_MOVNTDQ_MEMdq_XMMdq  -
XED_IFORM_MOVNTDQA_XMMdq_MEMdq  -
XED_IFORM_MOVNTI_MEMq_GPR64  -
XED_IFORM_MOVNTI_MEMd_GPR32  -
XED_IFORM_MOVNTPD_MEMdq_XMMpd  -
XED_IFORM_MOVNTPS_MEMdq_XMMps  -
XED_IFORM_MOVNTQ_MEMq_MMXq  -
XED_IFORM_MOVNTSD_MEMq_XMMq  -
XED_IFORM_MOVNTSS_MEMd_XMMd  -
XED_IFORM_MOVQ_MMXq_MMXq  -
XED_IFORM_MOVQ_XMMdq_GPR64  -
XED_IFORM_MOVQ_GPR64_MMXq  -
XED_IFORM_MOVQ_MEMq_XMMq  -
XED_IFORM_MOVQ_MMXq_GPR64  -
XED_IFORM_MOVQ_MMXq_MEMq  -
XED_IFORM_MOVQ_XMMdq_MEMq  -
XED_IFORM_MOVQ_XMMdq_XMMq  -
XED_IFORM_MOVQ_GPR64_XMMq  -
XED_IFORM_MOVQ_MEMq_MMXq  -
XED_IFORM_MOVQ2DQ_XMMdq_MMXq  -
XED_IFORM_MOVSB  -
XED_IFORM_MOVSD  -
XED_IFORM_MOVSD_XMM_XMMsd_XMMsd  -
XED_IFORM_MOVSD_XMM_MEMsd_XMMsd  -
XED_IFORM_MOVSD_XMM_XMMdq_MEMsd  -
XED_IFORM_MOVSHDUP_XMMps_XMMps  -
XED_IFORM_MOVSHDUP_XMMps_MEMps  -
XED_IFORM_MOVSLDUP_XMMps_XMMps  -
XED_IFORM_MOVSLDUP_XMMps_MEMps  -
XED_IFORM_MOVSQ  -
XED_IFORM_MOVSS_MEMss_XMMss  -
XED_IFORM_MOVSS_XMMss_XMMss  -
XED_IFORM_MOVSS_XMMdq_MEMss  -
XED_IFORM_MOVSW  -
XED_IFORM_MOVSX_GPRv_GPR16  -
XED_IFORM_MOVSX_GPRv_MEMb  -
XED_IFORM_MOVSX_GPRv_GPR8  -
XED_IFORM_MOVSX_GPRv_MEMw  -
XED_IFORM_MOVSXD_GPRv_MEMd  -
XED_IFORM_MOVSXD_GPRv_GPR32  -
XED_IFORM_MOVUPD_MEMpd_XMMpd  -
XED_IFORM_MOVUPD_XMMpd_MEMpd  -
XED_IFORM_MOVUPD_XMMpd_XMMpd  -
XED_IFORM_MOVUPS_MEMps_XMMps  -
XED_IFORM_MOVUPS_XMMps_XMMps  -
XED_IFORM_MOVUPS_XMMps_MEMps  -
XED_IFORM_MOVZX_GPRv_MEMb  -
XED_IFORM_MOVZX_GPRv_GPR16  -
XED_IFORM_MOVZX_GPRv_MEMw  -
XED_IFORM_MOVZX_GPRv_GPR8  -
XED_IFORM_MOV_CR_CR_GPR32  -
XED_IFORM_MOV_CR_GPR64_CR  -
XED_IFORM_MOV_CR_GPR32_CR  -
XED_IFORM_MOV_CR_CR_GPR64  -
XED_IFORM_MOV_DR_GPR64_DR  -
XED_IFORM_MOV_DR_DR_GPR32  -
XED_IFORM_MOV_DR_GPR32_DR  -
XED_IFORM_MOV_DR_DR_GPR64  -
XED_IFORM_MPSADBW_XMMdq_XMMdq_IMM  -
XED_IFORM_MPSADBW_XMMdq_MEMdq_IMM  -
XED_IFORM_MUL_MEMb  -
XED_IFORM_MUL_GPRv  -
XED_IFORM_MUL_GPR8  -
XED_IFORM_MUL_MEMv  -
XED_IFORM_MULPD_XMMpd_MEMpd  -
XED_IFORM_MULPD_XMMpd_XMMpd  -
XED_IFORM_MULPS_XMMps_XMMps  -
XED_IFORM_MULPS_XMMps_MEMps  -
XED_IFORM_MULSD_XMMsd_XMMsd  -
XED_IFORM_MULSD_XMMsd_MEMsd  -
XED_IFORM_MULSS_XMMss_MEMss  -
XED_IFORM_MULSS_XMMss_XMMss  -
XED_IFORM_MWAIT_EAX_ECX  -
XED_IFORM_NEG_GPR8  -
XED_IFORM_NEG_GPRv  -
XED_IFORM_NEG_MEMb  -
XED_IFORM_NEG_MEMv  -
XED_IFORM_NOP  -
XED_IFORM_NOP_GPRv_GPRv  -
XED_IFORM_NOP_MEMv_GPRv  -
XED_IFORM_NOT_MEMv  -
XED_IFORM_NOT_GPRv  -
XED_IFORM_NOT_GPR8  -
XED_IFORM_NOT_MEMb  -
XED_IFORM_OR_GPRv_MEMv  -
XED_IFORM_OR_GPRv_GPRv  -
XED_IFORM_OR_MEMv_IMM  -
XED_IFORM_OR_GPR8_GPR8  -
XED_IFORM_OR_MEMb_IMM  -
XED_IFORM_OR_MEMv_GPRv  -
XED_IFORM_OR_GPRv_IMM  -
XED_IFORM_OR_MEMb_GPR8  -
XED_IFORM_OR_GPR8_IMM  -
XED_IFORM_OR_AL_IMM  -
XED_IFORM_OR_GPR8_MEMb  -
XED_IFORM_OR_OrAX_IMM  -
XED_IFORM_ORPD_XMMpd_MEMpd  -
XED_IFORM_ORPD_XMMpd_XMMpd  -
XED_IFORM_ORPS_XMMps_XMMps  -
XED_IFORM_ORPS_XMMps_MEMps  -
XED_IFORM_OUT_IMM_AL  -
XED_IFORM_OUT_DX_AL  -
XED_IFORM_OUT_IMM_OeAX  -
XED_IFORM_OUT_DX_OeAX  -
XED_IFORM_OUTSB  -
XED_IFORM_OUTSD  -
XED_IFORM_OUTSW  -
XED_IFORM_PABSB_MMXq_MEMq  -
XED_IFORM_PABSB_XMMdq_MEMdq  -
XED_IFORM_PABSB_MMXq_MMXq  -
XED_IFORM_PABSB_XMMdq_XMMdq  -
XED_IFORM_PABSD_MMXq_MEMq  -
XED_IFORM_PABSD_MMXq_MMXq  -
XED_IFORM_PABSD_XMMdq_MEMdq  -
XED_IFORM_PABSD_XMMdq_XMMdq  -
XED_IFORM_PABSW_XMMdq_MEMdq  -
XED_IFORM_PABSW_MMXq_MMXq  -
XED_IFORM_PABSW_XMMdq_XMMdq  -
XED_IFORM_PABSW_MMXq_MEMq  -
XED_IFORM_PACKSSDW_XMMdq_MEMdq  -
XED_IFORM_PACKSSDW_MMXq_MEMq  -
XED_IFORM_PACKSSDW_MMXq_MMXq  -
XED_IFORM_PACKSSDW_XMMdq_XMMdq  -
XED_IFORM_PACKSSWB_MMXq_MMXq  -
XED_IFORM_PACKSSWB_XMMdq_MEMdq  -
XED_IFORM_PACKSSWB_XMMdq_XMMdq  -
XED_IFORM_PACKSSWB_MMXq_MEMq  -
XED_IFORM_PACKUSDW_XMMdq_XMMdq  -
XED_IFORM_PACKUSDW_XMMdq_MEMdq  -
XED_IFORM_PACKUSWB_XMMdq_XMMdq  -
XED_IFORM_PACKUSWB_XMMdq_MEMdq  -
XED_IFORM_PACKUSWB_MMXq_MEMq  -
XED_IFORM_PACKUSWB_MMXq_MMXq  -
XED_IFORM_PADDB_XMMdq_XMMdq  -
XED_IFORM_PADDB_XMMdq_MEMdq  -
XED_IFORM_PADDB_MMXq_MMXq  -
XED_IFORM_PADDB_MMXq_MEMq  -
XED_IFORM_PADDD_XMMdq_MEMdq  -
XED_IFORM_PADDD_MMXq_MMXq  -
XED_IFORM_PADDD_XMMdq_XMMdq  -
XED_IFORM_PADDD_MMXq_MEMq  -
XED_IFORM_PADDQ_MMXq_MEMq  -
XED_IFORM_PADDQ_XMMdq_MEMdq  -
XED_IFORM_PADDQ_MMXq_MMXq  -
XED_IFORM_PADDQ_XMMdq_XMMdq  -
XED_IFORM_PADDSB_XMMdq_XMMdq  -
XED_IFORM_PADDSB_XMMdq_MEMdq  -
XED_IFORM_PADDSB_MMXq_MMXq  -
XED_IFORM_PADDSB_MMXq_MEMq  -
XED_IFORM_PADDSW_MMXq_MEMq  -
XED_IFORM_PADDSW_MMXq_MMXq  -
XED_IFORM_PADDSW_XMMdq_MEMdq  -
XED_IFORM_PADDSW_XMMdq_XMMdq  -
XED_IFORM_PADDUSB_XMMdq_XMMdq  -
XED_IFORM_PADDUSB_MMXq_MEMq  -
XED_IFORM_PADDUSB_MMXq_MMXq  -
XED_IFORM_PADDUSB_XMMdq_MEMdq  -
XED_IFORM_PADDUSW_XMMdq_MEMdq  -
XED_IFORM_PADDUSW_MMXq_MMXq  -
XED_IFORM_PADDUSW_MMXq_MEMq  -
XED_IFORM_PADDUSW_XMMdq_XMMdq  -
XED_IFORM_PADDW_MMXq_MEMq  -
XED_IFORM_PADDW_MMXq_MMXq  -
XED_IFORM_PADDW_XMMdq_MEMdq  -
XED_IFORM_PADDW_XMMdq_XMMdq  -
XED_IFORM_PALIGNR_XMMdq_XMMdq_IMM  -
XED_IFORM_PALIGNR_MMXq_MEMq_IMM  -
XED_IFORM_PALIGNR_MMXq_MMXq_IMM  -
XED_IFORM_PALIGNR_XMMdq_MEMdq_IMM  -
XED_IFORM_PAND_MMXq_MMXq  -
XED_IFORM_PAND_MMXq_MEMq  -
XED_IFORM_PAND_XMMdq_XMMdq  -
XED_IFORM_PAND_XMMdq_MEMdq  -
XED_IFORM_PANDN_XMMdq_MEMdq  -
XED_IFORM_PANDN_MMXq_MMXq  -
XED_IFORM_PANDN_XMMdq_XMMdq  -
XED_IFORM_PANDN_MMXq_MEMq  -
XED_IFORM_PAUSE  -
XED_IFORM_PAVGB_XMMdq_MEMdq  -
XED_IFORM_PAVGB_MMXq_MEMq  -
XED_IFORM_PAVGB_XMMdq_XMMdq  -
XED_IFORM_PAVGB_MMXq_MMXq  -
XED_IFORM_PAVGUSB_MMXq_MEMq  -
XED_IFORM_PAVGUSB_MMXq_MMXq  -
XED_IFORM_PAVGW_XMMdq_MEMdq  -
XED_IFORM_PAVGW_MMXq_MMXq  -
XED_IFORM_PAVGW_XMMdq_XMMdq  -
XED_IFORM_PAVGW_MMXq_MEMq  -
XED_IFORM_PBLENDVB_XMMdq_XMMdq_XMM0dq  -
XED_IFORM_PBLENDVB_XMMdq_MEMdq_XMM0dq  -
XED_IFORM_PBLENDW_XMMdq_MEMdq_IMM  -
XED_IFORM_PBLENDW_XMMdq_XMMdq_IMM  -
XED_IFORM_PCMPEQB_XMMdq_MEMdq  -
XED_IFORM_PCMPEQB_MMXq_MMXq  -
XED_IFORM_PCMPEQB_MMXq_MEMq  -
XED_IFORM_PCMPEQB_XMMdq_XMMdq  -
XED_IFORM_PCMPEQD_XMMdq_MEMdq  -
XED_IFORM_PCMPEQD_XMMdq_XMMdq  -
XED_IFORM_PCMPEQD_MMXq_MMXq  -
XED_IFORM_PCMPEQD_MMXq_MEMq  -
XED_IFORM_PCMPEQQ_XMMdq_XMMdq  -
XED_IFORM_PCMPEQQ_XMMdq_MEMdq  -
XED_IFORM_PCMPEQW_XMMdq_XMMdq  -
XED_IFORM_PCMPEQW_MMXq_MEMq  -
XED_IFORM_PCMPEQW_MMXq_MMXq  -
XED_IFORM_PCMPEQW_XMMdq_MEMdq  -
XED_IFORM_PCMPESTRI_XMMdq_XMMdq_IMM  -
XED_IFORM_PCMPESTRI_XMMdq_MEMdq_IMM  -
XED_IFORM_PCMPESTRM_XMMdq_MEMdq_IMM  -
XED_IFORM_PCMPESTRM_XMMdq_XMMdq_IMM  -
XED_IFORM_PCMPGTB_MMXq_MMXq  -
XED_IFORM_PCMPGTB_XMMdq_MEMdq  -
XED_IFORM_PCMPGTB_XMMdq_XMMdq  -
XED_IFORM_PCMPGTB_MMXq_MEMq  -
XED_IFORM_PCMPGTD_XMMdq_XMMdq  -
XED_IFORM_PCMPGTD_XMMdq_MEMdq  -
XED_IFORM_PCMPGTD_MMXq_MEMq  -
XED_IFORM_PCMPGTD_MMXq_MMXq  -
XED_IFORM_PCMPGTQ_XMMdq_MEMdq  -
XED_IFORM_PCMPGTQ_XMMdq_XMMdq  -
XED_IFORM_PCMPGTW_MMXq_MMXq  -
XED_IFORM_PCMPGTW_MMXq_MEMq  -
XED_IFORM_PCMPGTW_XMMdq_XMMdq  -
XED_IFORM_PCMPGTW_XMMdq_MEMdq  -
XED_IFORM_PCMPISTRI_XMMdq_MEMdq_IMM  -
XED_IFORM_PCMPISTRI_XMMdq_XMMdq_IMM  -
XED_IFORM_PCMPISTRM_XMMdq_XMMdq_IMM  -
XED_IFORM_PCMPISTRM_XMMdq_MEMdq_IMM  -
XED_IFORM_PEXTRB_MEMb_XMMdq_IMM  -
XED_IFORM_PEXTRB_GPR32d_XMMdq_IMM  -
XED_IFORM_PEXTRD_MEMd_XMMdq_IMM  -
XED_IFORM_PEXTRD_GPR32d_XMMdq_IMM  -
XED_IFORM_PEXTRQ_MEMq_XMMdq_IMM  -
XED_IFORM_PEXTRQ_GPR64q_XMMdq_IMM  -
XED_IFORM_PEXTRW_GPRy_XMMdq_IMM  -
XED_IFORM_PEXTRW_MEMw_XMMdq_IMM  -
XED_IFORM_PEXTRW_GPRy_MMXq_IMM  -
XED_IFORM_PEXTRW_GPR32d_XMMdq_IMM  -
XED_IFORM_PF2ID_MMXq_MMXq  -
XED_IFORM_PF2ID_MMXq_MEMq  -
XED_IFORM_PF2IW_MMXq_MEMq  -
XED_IFORM_PF2IW_MMXq_MMXq  -
XED_IFORM_PFACC_MMXq_MEMq  -
XED_IFORM_PFACC_MMXq_MMXq  -
XED_IFORM_PFADD_MMXq_MMXq  -
XED_IFORM_PFADD_MMXq_MEMq  -
XED_IFORM_PFCMPEQ_MMXq_MMXq  -
XED_IFORM_PFCMPEQ_MMXq_MEMq  -
XED_IFORM_PFCMPGE_MMXq_MEMq  -
XED_IFORM_PFCMPGE_MMXq_MMXq  -
XED_IFORM_PFCMPGT_MMXq_MEMq  -
XED_IFORM_PFCMPGT_MMXq_MMXq  -
XED_IFORM_PFCPIT1_MMXq_MMXq  -
XED_IFORM_PFCPIT1_MMXq_MEMq  -
XED_IFORM_PFMAX_MMXq_MEMq  -
XED_IFORM_PFMAX_MMXq_MMXq  -
XED_IFORM_PFMIN_MMXq_MEMq  -
XED_IFORM_PFMIN_MMXq_MMXq  -
XED_IFORM_PFMUL_MMXq_MEMq  -
XED_IFORM_PFMUL_MMXq_MMXq  -
XED_IFORM_PFNACC_MMXq_MEMq  -
XED_IFORM_PFNACC_MMXq_MMXq  -
XED_IFORM_PFPNACC_MMXq_MEMq  -
XED_IFORM_PFPNACC_MMXq_MMXq  -
XED_IFORM_PFRCP_MMXq_MMXq  -
XED_IFORM_PFRCP_MMXq_MEMq  -
XED_IFORM_PFRCPIT2_MMXq_MEMq  -
XED_IFORM_PFRCPIT2_MMXq_MMXq  -
XED_IFORM_PFRSQIT1_MMXq_MEMq  -
XED_IFORM_PFRSQIT1_MMXq_MMXq  -
XED_IFORM_PFSQRT_MMXq_MMXq  -
XED_IFORM_PFSQRT_MMXq_MEMq  -
XED_IFORM_PFSUB_MMXq_MEMq  -
XED_IFORM_PFSUB_MMXq_MMXq  -
XED_IFORM_PFSUBR_MMXq_MMXq  -
XED_IFORM_PFSUBR_MMXq_MEMq  -
XED_IFORM_PHADDD_MMXq_MEMq  -
XED_IFORM_PHADDD_MMXq_MMXq  -
XED_IFORM_PHADDD_XMMdq_MEMdq  -
XED_IFORM_PHADDD_XMMdq_XMMdq  -
XED_IFORM_PHADDSW_MMXq_MEMq  -
XED_IFORM_PHADDSW_MMXq_MMXq  -
XED_IFORM_PHADDSW_XMMdq_XMMdq  -
XED_IFORM_PHADDSW_XMMdq_MEMdq  -
XED_IFORM_PHADDW_XMMdq_MEMdq  -
XED_IFORM_PHADDW_MMXq_MMXq  -
XED_IFORM_PHADDW_XMMdq_XMMdq  -
XED_IFORM_PHADDW_MMXq_MEMq  -
XED_IFORM_PHMINPOSUW_XMMdq_XMMdq  -
XED_IFORM_PHMINPOSUW_XMMdq_MEMdq  -
XED_IFORM_PHSUBD_MMXq_MEMq  -
XED_IFORM_PHSUBD_XMMdq_XMMdq  -
XED_IFORM_PHSUBD_XMMdq_MEMdq  -
XED_IFORM_PHSUBD_MMXq_MMXq  -
XED_IFORM_PHSUBSW_XMMdq_MEMdq  -
XED_IFORM_PHSUBSW_MMXq_MMXq  -
XED_IFORM_PHSUBSW_MMXq_MEMq  -
XED_IFORM_PHSUBSW_XMMdq_XMMdq  -
XED_IFORM_PHSUBW_MMXq_MMXq  -
XED_IFORM_PHSUBW_XMMdq_MEMdq  -
XED_IFORM_PHSUBW_MMXq_MEMq  -
XED_IFORM_PHSUBW_XMMdq_XMMdq  -
XED_IFORM_PI2FD_MMXq_MMXq  -
XED_IFORM_PI2FD_MMXq_MEMq  -
XED_IFORM_PI2FW_MMXq_MEMq  -
XED_IFORM_PI2FW_MMXq_MMXq  -
XED_IFORM_PINSRB_XMMdq_MEMb_IMM  -
XED_IFORM_PINSRB_XMMdq_GPR32d_IMM  -
XED_IFORM_PINSRD_XMMdq_GPR32d_IMM  -
XED_IFORM_PINSRD_XMMdq_MEMd_IMM  -
XED_IFORM_PINSRQ_XMMdq_GPR64q_IMM  -
XED_IFORM_PINSRQ_XMMdq_MEMq_IMM  -
XED_IFORM_PINSRW_MMXq_MEMw_IMM  -
XED_IFORM_PINSRW_XMMdq_GPRy_IMM  -
XED_IFORM_PINSRW_MMXq_GPRy_IMM  -
XED_IFORM_PINSRW_XMMdq_MEMw_IMM  -
XED_IFORM_PMADDUBSW_XMMdq_XMMdq  -
XED_IFORM_PMADDUBSW_XMMdq_MEMdq  -
XED_IFORM_PMADDUBSW_MMXq_MMXq  -
XED_IFORM_PMADDUBSW_MMXq_MEMq  -
XED_IFORM_PMADDWD_XMMdq_XMMdq  -
XED_IFORM_PMADDWD_XMMdq_MEMdq  -
XED_IFORM_PMADDWD_MMXq_MEMq  -
XED_IFORM_PMADDWD_MMXq_MMXq  -
XED_IFORM_PMAXSB_XMMdq_MEMdq  -
XED_IFORM_PMAXSB_XMMdq_XMMdq  -
XED_IFORM_PMAXSD_XMMdq_MEMdq  -
XED_IFORM_PMAXSD_XMMdq_XMMdq  -
XED_IFORM_PMAXSW_MMXq_MMXq  -
XED_IFORM_PMAXSW_XMMdq_XMMdq  -
XED_IFORM_PMAXSW_MMXq_MEMq  -
XED_IFORM_PMAXSW_XMMdq_MEMdq  -
XED_IFORM_PMAXUB_XMMdq_MEMdq  -
XED_IFORM_PMAXUB_XMMdq_XMMdq  -
XED_IFORM_PMAXUB_MMXq_MEMq  -
XED_IFORM_PMAXUB_MMXq_MMXq  -
XED_IFORM_PMAXUD_XMMdq_MEMdq  -
XED_IFORM_PMAXUD_XMMdq_XMMdq  -
XED_IFORM_PMAXUW_XMMdq_XMMdq  -
XED_IFORM_PMAXUW_XMMdq_MEMdq  -
XED_IFORM_PMINSB_XMMdq_MEMdq  -
XED_IFORM_PMINSB_XMMdq_XMMdq  -
XED_IFORM_PMINSD_XMMdq_MEMdq  -
XED_IFORM_PMINSD_XMMdq_XMMdq  -
XED_IFORM_PMINSW_XMMdq_XMMdq  -
XED_IFORM_PMINSW_XMMdq_MEMdq  -
XED_IFORM_PMINSW_MMXq_MMXq  -
XED_IFORM_PMINSW_MMXq_MEMq  -
XED_IFORM_PMINUB_MMXq_MEMq  -
XED_IFORM_PMINUB_XMMdq_XMMdq  -
XED_IFORM_PMINUB_XMMdq_MEMdq  -
XED_IFORM_PMINUB_MMXq_MMXq  -
XED_IFORM_PMINUD_XMMdq_MEMdq  -
XED_IFORM_PMINUD_XMMdq_XMMdq  -
XED_IFORM_PMINUW_XMMdq_XMMdq  -
XED_IFORM_PMINUW_XMMdq_MEMdq  -
XED_IFORM_PMOVMSKB_GPR32_XMMdq  -
XED_IFORM_PMOVMSKB_GPR32_MMXq  -
XED_IFORM_PMOVSXBD_XMMdq_MEMd  -
XED_IFORM_PMOVSXBD_XMMdq_XMMd  -
XED_IFORM_PMOVSXBQ_XMMdq_MEMw  -
XED_IFORM_PMOVSXBQ_XMMdq_XMMw  -
XED_IFORM_PMOVSXBW_XMMdq_XMMq  -
XED_IFORM_PMOVSXBW_XMMdq_MEMq  -
XED_IFORM_PMOVSXDQ_XMMdq_XMMq  -
XED_IFORM_PMOVSXDQ_XMMdq_MEMq  -
XED_IFORM_PMOVSXWD_XMMdq_XMMq  -
XED_IFORM_PMOVSXWD_XMMdq_MEMq  -
XED_IFORM_PMOVSXWQ_XMMdq_MEMd  -
XED_IFORM_PMOVSXWQ_XMMdq_XMMd  -
XED_IFORM_PMOVZXBD_XMMdq_XMMd  -
XED_IFORM_PMOVZXBD_XMMdq_MEMd  -
XED_IFORM_PMOVZXBQ_XMMdq_XMMw  -
XED_IFORM_PMOVZXBQ_XMMdq_MEMw  -
XED_IFORM_PMOVZXBW_XMMdq_MEMq  -
XED_IFORM_PMOVZXBW_XMMdq_XMMq  -
XED_IFORM_PMOVZXDQ_XMMdq_MEMq  -
XED_IFORM_PMOVZXDQ_XMMdq_XMMq  -
XED_IFORM_PMOVZXWD_XMMdq_MEMq  -
XED_IFORM_PMOVZXWD_XMMdq_XMMq  -
XED_IFORM_PMOVZXWQ_XMMdq_XMMd  -
XED_IFORM_PMOVZXWQ_XMMdq_MEMd  -
XED_IFORM_PMULDQ_XMMdq_MEMdq  -
XED_IFORM_PMULDQ_XMMdq_XMMdq  -
XED_IFORM_PMULHRSW_XMMdq_MEMdq  -
XED_IFORM_PMULHRSW_XMMdq_XMMdq  -
XED_IFORM_PMULHRSW_MMXq_MEMq  -
XED_IFORM_PMULHRSW_MMXq_MMXq  -
XED_IFORM_PMULHRW_MMXq_MEMq  -
XED_IFORM_PMULHRW_MMXq_MMXq  -
XED_IFORM_PMULHUW_XMMdq_MEMdq  -
XED_IFORM_PMULHUW_XMMdq_XMMdq  -
XED_IFORM_PMULHUW_MMXq_MMXq  -
XED_IFORM_PMULHUW_MMXq_MEMq  -
XED_IFORM_PMULHW_MMXq_MMXq  -
XED_IFORM_PMULHW_XMMdq_MEMdq  -
XED_IFORM_PMULHW_MMXq_MEMq  -
XED_IFORM_PMULHW_XMMdq_XMMdq  -
XED_IFORM_PMULLD_XMMdq_XMMdq  -
XED_IFORM_PMULLD_XMMdq_MEMdq  -
XED_IFORM_PMULLW_MMXq_MEMq  -
XED_IFORM_PMULLW_XMMdq_XMMdq  -
XED_IFORM_PMULLW_MMXq_MMXq  -
XED_IFORM_PMULLW_XMMdq_MEMdq  -
XED_IFORM_PMULUDQ_MMXq_MEMq  -
XED_IFORM_PMULUDQ_XMMdq_MEMdq  -
XED_IFORM_PMULUDQ_XMMdq_XMMdq  -
XED_IFORM_PMULUDQ_MMXq_MMXq  -
XED_IFORM_POP_SS  -
XED_IFORM_POP_DS  -
XED_IFORM_POP_MEMv  -
XED_IFORM_POP_GPRv  -
XED_IFORM_POP_ES  -
XED_IFORM_POP_GS  -
XED_IFORM_POP_FS  -
XED_IFORM_POPA  -
XED_IFORM_POPAD  -
XED_IFORM_POPCNT_GPRv_GPRv  -
XED_IFORM_POPCNT_GPRv_MEMv  -
XED_IFORM_POPF  -
XED_IFORM_POPFD  -
XED_IFORM_POPFQ  -
XED_IFORM_POR_XMMdq_XMMdq  -
XED_IFORM_POR_XMMdq_MEMdq  -
XED_IFORM_POR_MMXq_MEMq  -
XED_IFORM_POR_MMXq_MMXq  -
XED_IFORM_PREFETCHNTA_MEMmprefetch  -
XED_IFORM_PREFETCHT0_MEMmprefetch  -
XED_IFORM_PREFETCHT1_MEMmprefetch  -
XED_IFORM_PREFETCHT2_MEMmprefetch  -
XED_IFORM_PREFETCH_EXCLUSIVE_MEMmprefetch  -
XED_IFORM_PREFETCH_MODIFIED_MEMmprefetch  -
XED_IFORM_PREFETCH_RESERVED_MEMmprefetch  -
XED_IFORM_PSADBW_MMXq_MMXq  -
XED_IFORM_PSADBW_XMMdq_MEMdq  -
XED_IFORM_PSADBW_MMXq_MEMq  -
XED_IFORM_PSADBW_XMMdq_XMMdq  -
XED_IFORM_PSHUFB_MMXq_MEMq  -
XED_IFORM_PSHUFB_XMMdq_XMMdq  -
XED_IFORM_PSHUFB_XMMdq_MEMdq  -
XED_IFORM_PSHUFB_MMXq_MMXq  -
XED_IFORM_PSHUFD_XMMdq_XMMdq_IMM  -
XED_IFORM_PSHUFD_XMMdq_MEMdq_IMM  -
XED_IFORM_PSHUFHW_XMMdq_MEMdq_IMM  -
XED_IFORM_PSHUFHW_XMMdq_XMMdq_IMM  -
XED_IFORM_PSHUFLW_XMMdq_XMMdq_IMM  -
XED_IFORM_PSHUFLW_XMMdq_MEMdq_IMM  -
XED_IFORM_PSHUFW_MMXq_MMXq_IMM  -
XED_IFORM_PSHUFW_MMXq_MEMq_IMM  -
XED_IFORM_PSIGNB_XMMdq_MEMdq  -
XED_IFORM_PSIGNB_XMMdq_XMMdq  -
XED_IFORM_PSIGNB_MMXq_MEMq  -
XED_IFORM_PSIGNB_MMXq_MMXq  -
XED_IFORM_PSIGND_MMXq_MMXq  -
XED_IFORM_PSIGND_XMMdq_MEMdq  -
XED_IFORM_PSIGND_MMXq_MEMq  -
XED_IFORM_PSIGND_XMMdq_XMMdq  -
XED_IFORM_PSIGNW_MMXq_MEMq  -
XED_IFORM_PSIGNW_XMMdq_XMMdq  -
XED_IFORM_PSIGNW_XMMdq_MEMdq  -
XED_IFORM_PSIGNW_MMXq_MMXq  -
XED_IFORM_PSLLD_XMMdq_XMMdq  -
XED_IFORM_PSLLD_XMMdq_MEMdq  -
XED_IFORM_PSLLD_XMMdq_IMM  -
XED_IFORM_PSLLD_MMXq_MEMq  -
XED_IFORM_PSLLD_MMXq_MMXq  -
XED_IFORM_PSLLD_MMXq_IMM  -
XED_IFORM_PSLLDQ_XMMdq_IMM  -
XED_IFORM_PSLLQ_XMMdq_MEMdq  -
XED_IFORM_PSLLQ_XMMdq_IMM  -
XED_IFORM_PSLLQ_XMMdq_XMMdq  -
XED_IFORM_PSLLQ_MMXq_MEMq  -
XED_IFORM_PSLLQ_MMXq_IMM  -
XED_IFORM_PSLLQ_MMXq_MMXq  -
XED_IFORM_PSLLW_MMXq_MMXq  -
XED_IFORM_PSLLW_MMXq_IMM  -
XED_IFORM_PSLLW_MMXq_MEMq  -
XED_IFORM_PSLLW_XMMdq_XMMdq  -
XED_IFORM_PSLLW_XMMdq_IMM  -
XED_IFORM_PSLLW_XMMdq_MEMdq  -
XED_IFORM_PSRAD_XMMdq_MEMdq  -
XED_IFORM_PSRAD_MMXq_MEMq  -
XED_IFORM_PSRAD_MMXq_IMM  -
XED_IFORM_PSRAD_XMMdq_IMM  -
XED_IFORM_PSRAD_XMMdq_XMMdq  -
XED_IFORM_PSRAD_MMXq_MMXq  -
XED_IFORM_PSRAW_XMMdq_IMM  -
XED_IFORM_PSRAW_MMXq_MEMq  -
XED_IFORM_PSRAW_MMXq_MMXq  -
XED_IFORM_PSRAW_XMMdq_MEMdq  -
XED_IFORM_PSRAW_MMXq_IMM  -
XED_IFORM_PSRAW_XMMdq_XMMdq  -
XED_IFORM_PSRLD_MMXq_MEMq  -
XED_IFORM_PSRLD_MMXq_IMM  -
XED_IFORM_PSRLD_MMXq_MMXq  -
XED_IFORM_PSRLD_XMMdq_XMMdq  -
XED_IFORM_PSRLD_XMMdq_IMM  -
XED_IFORM_PSRLD_XMMdq_MEMdq  -
XED_IFORM_PSRLDQ_XMMdq_IMM  -
XED_IFORM_PSRLQ_MMXq_MMXq  -
XED_IFORM_PSRLQ_XMMdq_IMM  -
XED_IFORM_PSRLQ_XMMdq_MEMdq  -
XED_IFORM_PSRLQ_MMXq_IMM  -
XED_IFORM_PSRLQ_MMXq_MEMq  -
XED_IFORM_PSRLQ_XMMdq_XMMdq  -
XED_IFORM_PSRLW_XMMdq_XMMdq  -
XED_IFORM_PSRLW_MMXq_MEMq  -
XED_IFORM_PSRLW_MMXq_MMXq  -
XED_IFORM_PSRLW_XMMdq_MEMdq  -
XED_IFORM_PSRLW_MMXq_IMM  -
XED_IFORM_PSRLW_XMMdq_IMM  -
XED_IFORM_PSUBB_XMMdq_MEMdq  -
XED_IFORM_PSUBB_XMMdq_XMMdq  -
XED_IFORM_PSUBB_MMXq_MEMq  -
XED_IFORM_PSUBB_MMXq_MMXq  -
XED_IFORM_PSUBD_MMXq_MMXq  -
XED_IFORM_PSUBD_XMMdq_MEMdq  -
XED_IFORM_PSUBD_MMXq_MEMq  -
XED_IFORM_PSUBD_XMMdq_XMMdq  -
XED_IFORM_PSUBQ_MMXq_MMXq  -
XED_IFORM_PSUBQ_XMMdq_XMMdq  -
XED_IFORM_PSUBQ_MMXq_MEMq  -
XED_IFORM_PSUBQ_XMMdq_MEMdq  -
XED_IFORM_PSUBSB_XMMdq_MEMdq  -
XED_IFORM_PSUBSB_MMXq_MEMq  -
XED_IFORM_PSUBSB_XMMdq_XMMdq  -
XED_IFORM_PSUBSB_MMXq_MMXq  -
XED_IFORM_PSUBSW_XMMdq_MEMdq  -
XED_IFORM_PSUBSW_MMXq_MMXq  -
XED_IFORM_PSUBSW_XMMdq_XMMdq  -
XED_IFORM_PSUBSW_MMXq_MEMq  -
XED_IFORM_PSUBUSB_MMXq_MMXq  -
XED_IFORM_PSUBUSB_MMXq_MEMq  -
XED_IFORM_PSUBUSB_XMMdq_XMMdq  -
XED_IFORM_PSUBUSB_XMMdq_MEMdq  -
XED_IFORM_PSUBUSW_MMXq_MMXq  -
XED_IFORM_PSUBUSW_XMMdq_MEMdq  -
XED_IFORM_PSUBUSW_XMMdq_XMMdq  -
XED_IFORM_PSUBUSW_MMXq_MEMq  -
XED_IFORM_PSUBW_MMXq_MEMq  -
XED_IFORM_PSUBW_XMMdq_XMMdq  -
XED_IFORM_PSUBW_XMMdq_MEMdq  -
XED_IFORM_PSUBW_MMXq_MMXq  -
XED_IFORM_PSWAPD_MMXq_MEMq  -
XED_IFORM_PSWAPD_MMXq_MMXq  -
XED_IFORM_PTEST_XMMdq_MEMdq  -
XED_IFORM_PTEST_XMMdq_XMMdq  -
XED_IFORM_PUNPCKHBW_XMMdq_XMMq  -
XED_IFORM_PUNPCKHBW_MMXq_MMXd  -
XED_IFORM_PUNPCKHBW_XMMdq_MEMdq  -
XED_IFORM_PUNPCKHBW_MMXq_MEMq  -
XED_IFORM_PUNPCKHDQ_XMMdq_XMMq  -
XED_IFORM_PUNPCKHDQ_MMXq_MMXd  -
XED_IFORM_PUNPCKHDQ_XMMdq_MEMdq  -
XED_IFORM_PUNPCKHDQ_MMXq_MEMq  -
XED_IFORM_PUNPCKHQDQ_XMMdq_XMMq  -
XED_IFORM_PUNPCKHQDQ_XMMdq_MEMdq  -
XED_IFORM_PUNPCKHWD_XMMdq_XMMq  -
XED_IFORM_PUNPCKHWD_MMXq_MMXd  -
XED_IFORM_PUNPCKHWD_XMMdq_MEMdq  -
XED_IFORM_PUNPCKHWD_MMXq_MEMq  -
XED_IFORM_PUNPCKLBW_MMXq_MMXd  -
XED_IFORM_PUNPCKLBW_XMMdq_MEMq  -
XED_IFORM_PUNPCKLBW_XMMdq_XMMq  -
XED_IFORM_PUNPCKLBW_MMXq_MEMd  -
XED_IFORM_PUNPCKLDQ_MMXq_MMXd  -
XED_IFORM_PUNPCKLDQ_XMMdq_MEMq  -
XED_IFORM_PUNPCKLDQ_XMMdq_XMMq  -
XED_IFORM_PUNPCKLDQ_MMXq_MEMd  -
XED_IFORM_PUNPCKLQDQ_XMMdq_XMMq  -
XED_IFORM_PUNPCKLQDQ_XMMdq_MEMq  -
XED_IFORM_PUNPCKLWD_MMXq_MMXd  -
XED_IFORM_PUNPCKLWD_XMMdq_MEMq  -
XED_IFORM_PUNPCKLWD_XMMdq_XMMq  -
XED_IFORM_PUNPCKLWD_MMXq_MEMd  -
XED_IFORM_PUSH_FS  -
XED_IFORM_PUSH_SS  -
XED_IFORM_PUSH_GPRv  -
XED_IFORM_PUSH_GS  -
XED_IFORM_PUSH_CS  -
XED_IFORM_PUSH_MEMv  -
XED_IFORM_PUSH_ES  -
XED_IFORM_PUSH_IMM  -
XED_IFORM_PUSH_DS  -
XED_IFORM_PUSHA  -
XED_IFORM_PUSHAD  -
XED_IFORM_PUSHF  -
XED_IFORM_PUSHFD  -
XED_IFORM_PUSHFQ  -
XED_IFORM_PXOR_XMMdq_MEMdq  -
XED_IFORM_PXOR_MMXq_MMXq  -
XED_IFORM_PXOR_MMXq_MEMq  -
XED_IFORM_PXOR_XMMdq_XMMdq  -
XED_IFORM_RCL_MEMv_CL  -
XED_IFORM_RCL_MEMb_CL  -
XED_IFORM_RCL_GPRv_CL  -
XED_IFORM_RCL_MEMb_IMM  -
XED_IFORM_RCL_MEMv_ONE  -
XED_IFORM_RCL_GPR8_ONE  -
XED_IFORM_RCL_GPR8_IMM  -
XED_IFORM_RCL_MEMv_IMM  -
XED_IFORM_RCL_MEMb_ONE  -
XED_IFORM_RCL_GPRv_ONE  -
XED_IFORM_RCL_GPRv_IMM  -
XED_IFORM_RCL_GPR8_CL  -
XED_IFORM_RCPPS_XMMps_MEMps  -
XED_IFORM_RCPPS_XMMps_XMMps  -
XED_IFORM_RCPSS_XMMss_XMMss  -
XED_IFORM_RCPSS_XMMss_MEMss  -
XED_IFORM_RCR_GPR8_CL  -
XED_IFORM_RCR_MEMv_ONE  -
XED_IFORM_RCR_GPR8_IMM  -
XED_IFORM_RCR_MEMb_ONE  -
XED_IFORM_RCR_GPRv_ONE  -
XED_IFORM_RCR_MEMb_IMM  -
XED_IFORM_RCR_GPR8_ONE  -
XED_IFORM_RCR_MEMv_IMM  -
XED_IFORM_RCR_GPRv_IMM  -
XED_IFORM_RCR_MEMv_CL  -
XED_IFORM_RCR_GPRv_CL  -
XED_IFORM_RCR_MEMb_CL  -
XED_IFORM_RDMSR  -
XED_IFORM_RDPMC  -
XED_IFORM_RDTSC  -
XED_IFORM_RDTSCP  -
XED_IFORM_RET_FAR_IMM  -
XED_IFORM_RET_FAR  -
XED_IFORM_RET_NEAR_IMM  -
XED_IFORM_RET_NEAR  -
XED_IFORM_ROL_GPRv_IMM  -
XED_IFORM_ROL_GPR8_ONE  -
XED_IFORM_ROL_MEMv_CL  -
XED_IFORM_ROL_MEMb_IMM  -
XED_IFORM_ROL_MEMv_ONE  -
XED_IFORM_ROL_MEMb_CL  -
XED_IFORM_ROL_GPRv_CL  -
XED_IFORM_ROL_GPR8_CL  -
XED_IFORM_ROL_GPRv_ONE  -
XED_IFORM_ROL_MEMv_IMM  -
XED_IFORM_ROL_MEMb_ONE  -
XED_IFORM_ROL_GPR8_IMM  -
XED_IFORM_ROR_MEMb_ONE  -
XED_IFORM_ROR_MEMv_ONE  -
XED_IFORM_ROR_GPR8_CL  -
XED_IFORM_ROR_MEMv_IMM  -
XED_IFORM_ROR_GPRv_ONE  -
XED_IFORM_ROR_MEMb_IMM  -
XED_IFORM_ROR_GPRv_IMM  -
XED_IFORM_ROR_MEMb_CL  -
XED_IFORM_ROR_GPR8_ONE  -
XED_IFORM_ROR_MEMv_CL  -
XED_IFORM_ROR_GPR8_IMM  -
XED_IFORM_ROR_GPRv_CL  -
XED_IFORM_ROUNDPD_XMMpd_XMMpd_IMM  -
XED_IFORM_ROUNDPD_XMMpd_MEMpd_IMM  -
XED_IFORM_ROUNDPS_XMMps_MEMps_IMM  -
XED_IFORM_ROUNDPS_XMMps_XMMps_IMM  -
XED_IFORM_ROUNDSD_XMMq_MEMq_IMM  -
XED_IFORM_ROUNDSD_XMMq_XMMq_IMM  -
XED_IFORM_ROUNDSS_XMMd_MEMd_IMM  -
XED_IFORM_ROUNDSS_XMMd_XMMd_IMM  -
XED_IFORM_RSM  -
XED_IFORM_RSQRTPS_XMMps_XMMps  -
XED_IFORM_RSQRTPS_XMMps_MEMps  -
XED_IFORM_RSQRTSS_XMMss_MEMss  -
XED_IFORM_RSQRTSS_XMMss_XMMss  -
XED_IFORM_SAHF  -
XED_IFORM_SALC  -
XED_IFORM_SAR_MEMv_CL  -
XED_IFORM_SAR_GPRv_IMM  -
XED_IFORM_SAR_GPR8_ONE  -
XED_IFORM_SAR_GPR8_IMM  -
XED_IFORM_SAR_MEMv_ONE  -
XED_IFORM_SAR_MEMb_CL  -
XED_IFORM_SAR_MEMb_IMM  -
XED_IFORM_SAR_MEMv_IMM  -
XED_IFORM_SAR_GPR8_CL  -
XED_IFORM_SAR_GPRv_CL  -
XED_IFORM_SAR_GPRv_ONE  -
XED_IFORM_SAR_MEMb_ONE  -
XED_IFORM_SBB_AL_IMM  -
XED_IFORM_SBB_MEMv_GPRv  -
XED_IFORM_SBB_MEMb_IMM  -
XED_IFORM_SBB_GPRv_GPRv  -
XED_IFORM_SBB_OrAX_IMM  -
XED_IFORM_SBB_GPR8_GPR8  -
XED_IFORM_SBB_GPR8_IMM  -
XED_IFORM_SBB_MEMv_IMM  -
XED_IFORM_SBB_MEMb_GPR8  -
XED_IFORM_SBB_GPRv_MEMv  -
XED_IFORM_SBB_GPRv_IMM  -
XED_IFORM_SBB_GPR8_MEMb  -
XED_IFORM_SCASB  -
XED_IFORM_SCASD  -
XED_IFORM_SCASQ  -
XED_IFORM_SCASW  -
XED_IFORM_SETB_GPR8  -
XED_IFORM_SETB_MEMb  -
XED_IFORM_SETBE_GPR8  -
XED_IFORM_SETBE_MEMb  -
XED_IFORM_SETL_MEMb  -
XED_IFORM_SETL_GPR8  -
XED_IFORM_SETLE_GPR8  -
XED_IFORM_SETLE_MEMb  -
XED_IFORM_SETNB_GPR8  -
XED_IFORM_SETNB_MEMb  -
XED_IFORM_SETNBE_MEMb  -
XED_IFORM_SETNBE_GPR8  -
XED_IFORM_SETNL_GPR8  -
XED_IFORM_SETNL_MEMb  -
XED_IFORM_SETNLE_MEMb  -
XED_IFORM_SETNLE_GPR8  -
XED_IFORM_SETNO_MEMb  -
XED_IFORM_SETNO_GPR8  -
XED_IFORM_SETNP_MEMb  -
XED_IFORM_SETNP_GPR8  -
XED_IFORM_SETNS_GPR8  -
XED_IFORM_SETNS_MEMb  -
XED_IFORM_SETNZ_GPR8  -
XED_IFORM_SETNZ_MEMb  -
XED_IFORM_SETO_MEMb  -
XED_IFORM_SETO_GPR8  -
XED_IFORM_SETP_GPR8  -
XED_IFORM_SETP_MEMb  -
XED_IFORM_SETS_GPR8  -
XED_IFORM_SETS_MEMb  -
XED_IFORM_SETZ_GPR8  -
XED_IFORM_SETZ_MEMb  -
XED_IFORM_SFENCE  -
XED_IFORM_SGDT_MEMs  -
XED_IFORM_SHL_MEMv_ONE  -
XED_IFORM_SHL_GPRv_CL  -
XED_IFORM_SHL_MEMb_CL  -
XED_IFORM_SHL_MEMv_IMM  -
XED_IFORM_SHL_GPRv_IMM  -
XED_IFORM_SHL_GPR8_ONE  -
XED_IFORM_SHL_GPRv_ONE  -
XED_IFORM_SHL_MEMb_IMM  -
XED_IFORM_SHL_MEMb_ONE  -
XED_IFORM_SHL_MEMv_CL  -
XED_IFORM_SHL_GPR8_IMM  -
XED_IFORM_SHL_GPR8_CL  -
XED_IFORM_SHLD_GPRv_GPRv_CL  -
XED_IFORM_SHLD_GPRv_GPRv_IMM  -
XED_IFORM_SHLD_MEMv_GPRv_IMM  -
XED_IFORM_SHLD_MEMv_GPRv_CL  -
XED_IFORM_SHR_MEMb_CL  -
XED_IFORM_SHR_GPR8_CL  -
XED_IFORM_SHR_GPR8_IMM  -
XED_IFORM_SHR_GPRv_CL  -
XED_IFORM_SHR_MEMb_IMM  -
XED_IFORM_SHR_GPRv_IMM  -
XED_IFORM_SHR_MEMv_ONE  -
XED_IFORM_SHR_MEMb_ONE  -
XED_IFORM_SHR_GPR8_ONE  -
XED_IFORM_SHR_GPRv_ONE  -
XED_IFORM_SHR_MEMv_CL  -
XED_IFORM_SHR_MEMv_IMM  -
XED_IFORM_SHRD_MEMv_GPRv_CL  -
XED_IFORM_SHRD_MEMv_GPRv_IMM  -
XED_IFORM_SHRD_GPRv_GPRv_CL  -
XED_IFORM_SHRD_GPRv_GPRv_IMM  -
XED_IFORM_SHUFPD_XMMpd_MEMpd_IMM  -
XED_IFORM_SHUFPD_XMMpd_XMMpd_IMM  -
XED_IFORM_SHUFPS_XMMps_XMMps_IMM  -
XED_IFORM_SHUFPS_XMMps_MEMps_IMM  -
XED_IFORM_SIDT_MEMs  -
XED_IFORM_SKINIT_EAX  -
XED_IFORM_SLDT_GPRv  -
XED_IFORM_SLDT_MEMw  -
XED_IFORM_SMSW_GPRv  -
XED_IFORM_SMSW_MEMw  -
XED_IFORM_SQRTPD_XMMpd_XMMpd  -
XED_IFORM_SQRTPD_XMMpd_MEMpd  -
XED_IFORM_SQRTPS_XMMps_MEMps  -
XED_IFORM_SQRTPS_XMMps_XMMps  -
XED_IFORM_SQRTSD_XMMsd_MEMsd  -
XED_IFORM_SQRTSD_XMMsd_XMMsd  -
XED_IFORM_SQRTSS_XMMss_XMMss  -
XED_IFORM_SQRTSS_XMMss_MEMss  -
XED_IFORM_STC  -
XED_IFORM_STD  -
XED_IFORM_STGI  -
XED_IFORM_STI  -
XED_IFORM_STMXCSR_MEMd  -
XED_IFORM_STOSB  -
XED_IFORM_STOSD  -
XED_IFORM_STOSQ  -
XED_IFORM_STOSW  -
XED_IFORM_STR_GPRv  -
XED_IFORM_STR_MEMw  -
XED_IFORM_SUB_MEMv_IMM  -
XED_IFORM_SUB_GPRv_IMM  -
XED_IFORM_SUB_MEMb_GPR8  -
XED_IFORM_SUB_MEMb_IMM  -
XED_IFORM_SUB_OrAX_IMM  -
XED_IFORM_SUB_GPR8_GPR8  -
XED_IFORM_SUB_MEMv_GPRv  -
XED_IFORM_SUB_GPRv_GPRv  -
XED_IFORM_SUB_GPR8_MEMb  -
XED_IFORM_SUB_AL_IMM  -
XED_IFORM_SUB_GPR8_IMM  -
XED_IFORM_SUB_GPRv_MEMv  -
XED_IFORM_SUBPD_XMMpd_MEMpd  -
XED_IFORM_SUBPD_XMMpd_XMMpd  -
XED_IFORM_SUBPS_XMMps_XMMps  -
XED_IFORM_SUBPS_XMMps_MEMps  -
XED_IFORM_SUBSD_XMMsd_XMMsd  -
XED_IFORM_SUBSD_XMMsd_MEMsd  -
XED_IFORM_SUBSS_XMMss_MEMss  -
XED_IFORM_SUBSS_XMMss_XMMss  -
XED_IFORM_SWAPGS  -
XED_IFORM_SYSCALL  -
XED_IFORM_SYSENTER  -
XED_IFORM_SYSEXIT  -
XED_IFORM_SYSRET  -
XED_IFORM_TEST_OrAX_IMM  -
XED_IFORM_TEST_MEMv_GPRv  -
XED_IFORM_TEST_AL_IMM  -
XED_IFORM_TEST_GPRv_GPRv  -
XED_IFORM_TEST_MEMb_IMM  -
XED_IFORM_TEST_GPR8_GPR8  -
XED_IFORM_TEST_MEMb_GPR8  -
XED_IFORM_TEST_GPR8_IMM  -
XED_IFORM_TEST_GPRv_IMM  -
XED_IFORM_TEST_MEMv_IMM  -
XED_IFORM_UCOMISD_XMMsd_MEMsd  -
XED_IFORM_UCOMISD_XMMsd_XMMsd  -
XED_IFORM_UCOMISS_XMMss_XMMss  -
XED_IFORM_UCOMISS_XMMss_MEMss  -
XED_IFORM_UD2  -
XED_IFORM_UNPCKHPD_XMMpd_MEMdq  -
XED_IFORM_UNPCKHPD_XMMpd_XMMq  -
XED_IFORM_UNPCKHPS_XMMps_XMMdq  -
XED_IFORM_UNPCKHPS_XMMps_MEMdq  -
XED_IFORM_UNPCKLPD_XMMpd_MEMq  -
XED_IFORM_UNPCKLPD_XMMpd_XMMq  -
XED_IFORM_UNPCKLPS_XMMps_XMMq  -
XED_IFORM_UNPCKLPS_XMMps_MEMq  -
XED_IFORM_VERR_GPR16  -
XED_IFORM_VERR_MEMw  -
XED_IFORM_VERW_GPR16  -
XED_IFORM_VERW_MEMw  -
XED_IFORM_VMCALL  -
XED_IFORM_VMCLEAR_MEMq  -
XED_IFORM_VMLAUNCH  -
XED_IFORM_VMLOAD_OrAX  -
XED_IFORM_VMMCALL  -
XED_IFORM_VMPTRLD_MEMq  -
XED_IFORM_VMPTRST_MEMq  -
XED_IFORM_VMREAD_MEMq_GPR64  -
XED_IFORM_VMREAD_GPR32_GPR32  -
XED_IFORM_VMREAD_MEMd_GPR32  -
XED_IFORM_VMREAD_GPR64_GPR64  -
XED_IFORM_VMRESUME  -
XED_IFORM_VMRUN_OrAX  -
XED_IFORM_VMSAVE  -
XED_IFORM_VMWRITE_GPR64_MEMq  -
XED_IFORM_VMWRITE_GPR32_GPR32  -
XED_IFORM_VMWRITE_GPR32_MEMd  -
XED_IFORM_VMWRITE_GPR64_GPR64  -
XED_IFORM_VMXOFF  -
XED_IFORM_VMXON_MEMq  -
XED_IFORM_WBINVD  -
XED_IFORM_WRMSR  -
XED_IFORM_XADD_GPRv_GPRv  -
XED_IFORM_XADD_GPR8_GPR8  -
XED_IFORM_XADD_MEMv_GPRv  -
XED_IFORM_XADD_MEMb_GPR8  -
XED_IFORM_XCHG_GPR8_GPR8  -
XED_IFORM_XCHG_MEMv_GPRv  -
XED_IFORM_XCHG_GPRv_GPRv  -
XED_IFORM_XCHG_MEMb_GPR8  -
XED_IFORM_XCHG_GPRv_OrAX  -
XED_IFORM_XGETBV  -
XED_IFORM_XLAT_FINAL_DSEG  -
XED_IFORM_XLAT  -
XED_IFORM_XOR_GPRv_IMM  -
XED_IFORM_XOR_MEMv_GPRv  -
XED_IFORM_XOR_MEMb_IMM  -
XED_IFORM_XOR_GPR8_MEMb  -
XED_IFORM_XOR_MEMb_GPR8  -
XED_IFORM_XOR_GPRv_MEMv  -
XED_IFORM_XOR_AL_IMM  -
XED_IFORM_XOR_GPRv_GPRv  -
XED_IFORM_XOR_MEMv_IMM  -
XED_IFORM_XOR_OrAX_IMM  -
XED_IFORM_XOR_GPR8_GPR8  -
XED_IFORM_XOR_GPR8_IMM  -
XED_IFORM_XORPD_XMMpd_XMMpd  -
XED_IFORM_XORPD_XMMpd_MEMpd  -
XED_IFORM_XORPS_XMMps_MEMps  -
XED_IFORM_XORPS_XMMps_XMMps  -
XED_IFORM_XRSTOR_MEMmxsave  -
XED_IFORM_XSAVE_MEMmxsave  -
XED_IFORM_XSETBV  -
XED_IFORM_LAST  -
-
- -

-Definition at line 43 of file xed-iform-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_iform_enum_t str2xed_iform_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_iform_enum_t2str const xed_iform_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-immdis_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-immdis_8h-source.html deleted file mode 100644 index 8d505d5..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-immdis_8h-source.html +++ /dev/null @@ -1,203 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-immdis.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 
-00037 
-00038 #ifndef _XED_IMMDIS_H_
-00039 # define _XED_IMMDIS_H_
-00040 
-00041 #include "xed-types.h"
-00042 #include "xed-common-defs.h"
-00043 #include "xed-util.h"
-00044 
-00045 
-00047 // DEFINES
-00049 
-00051 // TYPES
-00054 // PROTOTYPES
-00056 
-00058 // GLOBALS
-00060 
-00061 #define XED_MAX_IMMDIS_BYTES 8
-00062 
-00063 // A union for speed of zeroing
-00064 union xed_immdis_values_t
-00065 {
-00066     xed_uint8_t x[XED_MAX_IMMDIS_BYTES];// STORED LITTLE ENDIAN. BYTE 0 is LSB
-00067     xed_uint64_t q;
-00068 };
-00069 
-00071 typedef struct XED_DLL_EXPORT xed_immdis_s {
-00072     union xed_immdis_values_t value;
-00073     unsigned int currently_used_space :4; // current number of assigned bytes
-00074     unsigned int max_allocated_space :4; // max allocation, 4 or 8
-00075     xed_bool_t present : 1;
-00076     xed_bool_t immediate_is_unsigned : 1;
-00077 } xed_immdis_t;
-00078 
-00079 XED_DLL_EXPORT void xed_immdis__check(xed_immdis_t* q, int p) ;
-00080 
-00081 
-00082 XED_DLL_EXPORT void xed_immdis_init(xed_immdis_t* p, int max_bytes);
-00083 
-00085 
-00086 
-00087 XED_DLL_EXPORT unsigned int xed_immdis_get_bytes(const xed_immdis_t* p) ;
-00088 
-00090 
-00092 
-00093 XED_DLL_EXPORT xed_int64_t 
-00094 xed_immdis_get_signed64(const xed_immdis_t* p);
-00095 
-00096 XED_DLL_EXPORT xed_uint64_t 
-00097 xed_immdis_get_unsigned64(const xed_immdis_t* p);
-00098 
-00099 XED_DLL_EXPORT xed_bool_t
-00100 xed_immdis_is_zero(const xed_immdis_t* p) ;
-00101 
-00102 XED_DLL_EXPORT xed_bool_t
-00103 xed_immdis_is_one(const xed_immdis_t* p) ;
-00104 
-00106 XED_DLL_EXPORT xed_uint8_t   xed_immdis_get_byte(const xed_immdis_t* p, unsigned int i) ;
-00108 
-00110 
-00111 XED_DLL_EXPORT void    xed_immdis_set_present(xed_immdis_t* p) ;
-00112 
-00114 XED_DLL_EXPORT xed_bool_t    xed_immdis_is_present(const xed_immdis_t* p) ;
-00116 
-00117 
-00119 
-00120 XED_DLL_EXPORT void     xed_immdis_set_max_len(xed_immdis_t* p, unsigned int mx) ;
-00121 XED_DLL_EXPORT void
-00122 xed_immdis_zero(xed_immdis_t* p);
-00123 
-00124 XED_DLL_EXPORT unsigned int    xed_immdis_get_max_length(const xed_immdis_t* p) ;
-00125 
-00127 
-00129 
-00130 
-00131 XED_DLL_EXPORT xed_bool_t
-00132 xed_immdis_is_unsigned(const xed_immdis_t* p) ;
-00134 XED_DLL_EXPORT xed_bool_t
-00135 xed_immdis_is_signed(const xed_immdis_t* p) ;
-00136     
-00138 XED_DLL_EXPORT void 
-00139 xed_immdis_set_signed(xed_immdis_t* p) ;
-00141 XED_DLL_EXPORT void 
-00142 xed_immdis_set_unsigned( xed_immdis_t* p) ;
-00144 
-00145 
-00147 
-00148 XED_DLL_EXPORT void
-00149 xed_immdis_add_byte(xed_immdis_t* p, xed_uint8_t b);
-00150 
-00151 
-00152 XED_DLL_EXPORT void
-00153 xed_immdis_add_byte_array(xed_immdis_t* p, int nb, xed_uint8_t* ba);
-00154 
-00164 XED_DLL_EXPORT void
-00165 xed_immdis_add_shortest_width_signed(xed_immdis_t* p, xed_int64_t x, xed_uint8_t legal_widths);
-00166 
-00168 XED_DLL_EXPORT void
-00169 xed_immdis_add_shortest_width_unsigned(xed_immdis_t* p, xed_uint64_t x, xed_uint8_t legal_widths );
-00170 
-00171 
-00173 XED_DLL_EXPORT void
-00174 xed_immdis_add8(xed_immdis_t* p, xed_int8_t d);
-00175 
-00177 XED_DLL_EXPORT void
-00178 xed_immdis_add16(xed_immdis_t* p, xed_int16_t d);
-00179 
-00181 XED_DLL_EXPORT void
-00182 xed_immdis_add32(xed_immdis_t* p, xed_int32_t d);
-00183 
-00185 XED_DLL_EXPORT void
-00186 xed_immdis_add64(xed_immdis_t* p, xed_int64_t d);
-00187 
-00189 
-00190 
-00192 
-00193 
-00195 XED_DLL_EXPORT int xed_immdis_print(const xed_immdis_t* p, char* buf, int buflen);
-00196 
-00199 XED_DLL_EXPORT int
-00200 xed_immdis_print_signed_or_unsigned(const xed_immdis_t* p, char* buf, int buflen);
-00201 
-00203 XED_DLL_EXPORT int
-00204 xed_immdis_print_value_signed(const xed_immdis_t* p, char* buf, int buflen);
-00205 
-00207 XED_DLL_EXPORT int
-00208 xed_immdis_print_value_unsigned(const xed_immdis_t* p, char* buf, int buflen);
-00209 
-00210 int xed_immdis__print_ptr(const xed_immdis_t* p, char* buf, int buflen);
-00211 #endif
-00212 
-00214 
-00215 
-00217 //Local Variables:
-00218 //pref: "../../xed-immdis.c"
-00219 //End:
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-immdis_8h.html b/misc/decoder_test/XED2/doc/html/xed-immdis_8h.html deleted file mode 100644 index 31795e5..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-immdis_8h.html +++ /dev/null @@ -1,1274 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-immdis.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-immdis.h. -

-#include "xed-types.h"
-#include "xed-common-defs.h"
-#include "xed-util.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Data Structures

struct  xed_immdis_s
 Stores immediates and displacements for the encoder & decoder. More...
union  xed_immdis_values_t

printing / debugging

int xed_immdis__print_ptr (const xed_immdis_t *p, char *buf, int buflen)
XED_DLL_EXPORT int xed_immdis_print (const xed_immdis_t *p, char *buf, int buflen)
 just print the raw bytes in hex with a leading 0x
XED_DLL_EXPORT int xed_immdis_print_signed_or_unsigned (const xed_immdis_t *p, char *buf, int buflen)
 Print the value as a signed or unsigned number depending on the value of the immediate_is_unsigned variable.
XED_DLL_EXPORT int xed_immdis_print_value_signed (const xed_immdis_t *p, char *buf, int buflen)
 print the signed value, appropriate width, with a leading 0x
XED_DLL_EXPORT int xed_immdis_print_value_unsigned (const xed_immdis_t *p, char *buf, int buflen)
 print the unsigned value, appropriate width, with a leading 0x

Adding / setting values

XED_DLL_EXPORT void xed_immdis_add16 (xed_immdis_t *p, xed_int16_t d)
 add a 16 bit value to the byte array
XED_DLL_EXPORT void xed_immdis_add32 (xed_immdis_t *p, xed_int32_t d)
 add a 32 bit value to the byte array
XED_DLL_EXPORT void xed_immdis_add64 (xed_immdis_t *p, xed_int64_t d)
 add a 64 bit value to the byte array.
XED_DLL_EXPORT void xed_immdis_add8 (xed_immdis_t *p, xed_int8_t d)
 add an 8 bit value to the byte array
XED_DLL_EXPORT void xed_immdis_add_byte (xed_immdis_t *p, xed_uint8_t b)
XED_DLL_EXPORT void xed_immdis_add_byte_array (xed_immdis_t *p, int nb, xed_uint8_t *ba)
XED_DLL_EXPORT void xed_immdis_add_shortest_width_signed (xed_immdis_t *p, xed_int64_t x, xed_uint8_t legal_widths)
 Add 1, 2, 4 or 8 bytes depending on the value x and the mask of legal_widths.
XED_DLL_EXPORT void xed_immdis_add_shortest_width_unsigned (xed_immdis_t *p, xed_uint64_t x, xed_uint8_t legal_widths)
 See add_shortest_width_signed().

Accessors for the value of the immediate or displacement

XED_DLL_EXPORT xed_uint8_t xed_immdis_get_byte (const xed_immdis_t *p, unsigned int i)
 Access the i'th byte of the immediate.
XED_DLL_EXPORT xed_int64_t xed_immdis_get_signed64 (const xed_immdis_t *p)
XED_DLL_EXPORT xed_uint64_t xed_immdis_get_unsigned64 (const xed_immdis_t *p)
XED_DLL_EXPORT xed_bool_t xed_immdis_is_one (const xed_immdis_t *p)
XED_DLL_EXPORT xed_bool_t xed_immdis_is_zero (const xed_immdis_t *p)

Sizes and lengths

XED_DLL_EXPORT unsigned int xed_immdis_get_bytes (const xed_immdis_t *p)
 return the number of bytes added

Initialization and setup

XED_DLL_EXPORT unsigned int xed_immdis_get_max_length (const xed_immdis_t *p)
XED_DLL_EXPORT void xed_immdis_set_max_len (xed_immdis_t *p, unsigned int mx)
XED_DLL_EXPORT void xed_immdis_zero (xed_immdis_t *p)

Presence / absence of an immediate or displacement

XED_DLL_EXPORT xed_bool_t xed_immdis_is_present (const xed_immdis_t *p)
 True if the object has had a value or individual bytes added to it.
XED_DLL_EXPORT void xed_immdis_set_present (xed_immdis_t *p)

Signed vs Unsigned

XED_DLL_EXPORT xed_bool_t xed_immdis_is_signed (const xed_immdis_t *p)
 Return true if signed.
XED_DLL_EXPORT xed_bool_t xed_immdis_is_unsigned (const xed_immdis_t *p)
 Return true if signed.
XED_DLL_EXPORT void xed_immdis_set_signed (xed_immdis_t *p)
 Set the immediate to be signed; For decoder use only.
XED_DLL_EXPORT void xed_immdis_set_unsigned (xed_immdis_t *p)
 Set the immediate to be unsigned; For decoder use only.

Defines

#define XED_MAX_IMMDIS_BYTES   8

Typedefs

typedef XED_DLL_EXPORT xed_immdis_s xed_immdis_t
 Stores immediates and displacements for the encoder & decoder.

Functions

XED_DLL_EXPORT void xed_immdis__check (xed_immdis_t *q, int p)
XED_DLL_EXPORT void xed_immdis_init (xed_immdis_t *p, int max_bytes)
-


Define Documentation

-

- - - - -
- - - - -
#define XED_MAX_IMMDIS_BYTES   8
-
- - - - - -
-   - - -

- -

-Definition at line 61 of file xed-immdis.h.

-


Typedef Documentation

-

- - - - -
- - - - -
typedef struct XED_DLL_EXPORT xed_immdis_s xed_immdis_t
-
- - - - - -
-   - - -

-Stores immediates and displacements for the encoder & decoder. -

-

-


Function Documentation

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_immdis__check xed_immdis_t q,
int  p
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int xed_immdis__print_ptr const xed_immdis_t p,
char *  buf,
int  buflen
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_immdis_add16 xed_immdis_t p,
xed_int16_t  d
-
- - - - - -
-   - - -

-add a 16 bit value to the byte array -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_immdis_add32 xed_immdis_t p,
xed_int32_t  d
-
- - - - - -
-   - - -

-add a 32 bit value to the byte array -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_immdis_add64 xed_immdis_t p,
xed_int64_t  d
-
- - - - - -
-   - - -

-add a 64 bit value to the byte array. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_immdis_add8 xed_immdis_t p,
xed_int8_t  d
-
- - - - - -
-   - - -

-add an 8 bit value to the byte array -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_immdis_add_byte xed_immdis_t p,
xed_uint8_t  b
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_immdis_add_byte_array xed_immdis_t p,
int  nb,
xed_uint8_t *  ba
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_immdis_add_shortest_width_signed xed_immdis_t p,
xed_int64_t  x,
xed_uint8_t  legal_widths
-
- - - - - -
-   - - -

-Add 1, 2, 4 or 8 bytes depending on the value x and the mask of legal_widths. -

-The default value of legal_widths = 0x5 only stops adding bytes only on 1 or 4 byte quantities - depending on which bytes of x are zero -- as is used for most memory addressing. You can set legal_widths to 0x7 for branches (1, 2 or 4 byte branch displacements). Or if you have an 8B displacement, you can set legal_widths to 0x8. NOTE: add_shortest_width will add up to XED_MAX_IMMDIS_BYTES if the x value requires it. NOTE: 16b memory addressing can have 16b immediates.

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_immdis_add_shortest_width_unsigned xed_immdis_t p,
xed_uint64_t  x,
xed_uint8_t  legal_widths
-
- - - - - -
-   - - -

-See add_shortest_width_signed(). -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_uint8_t xed_immdis_get_byte const xed_immdis_t p,
unsigned int  i
-
- - - - - -
-   - - -

-Access the i'th byte of the immediate. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT unsigned int xed_immdis_get_bytes const xed_immdis_t p  ) 
-
- - - - - -
-   - - -

-return the number of bytes added -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT unsigned int xed_immdis_get_max_length const xed_immdis_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_int64_t xed_immdis_get_signed64 const xed_immdis_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint64_t xed_immdis_get_unsigned64 const xed_immdis_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_immdis_init xed_immdis_t p,
int  max_bytes
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_immdis_is_one const xed_immdis_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_immdis_is_present const xed_immdis_t p  ) 
-
- - - - - -
-   - - -

-True if the object has had a value or individual bytes added to it. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_immdis_is_signed const xed_immdis_t p  ) 
-
- - - - - -
-   - - -

-Return true if signed. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_immdis_is_unsigned const xed_immdis_t p  ) 
-
- - - - - -
-   - - -

-Return true if signed. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_bool_t xed_immdis_is_zero const xed_immdis_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT int xed_immdis_print const xed_immdis_t p,
char *  buf,
int  buflen
-
- - - - - -
-   - - -

-just print the raw bytes in hex with a leading 0x -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT int xed_immdis_print_signed_or_unsigned const xed_immdis_t p,
char *  buf,
int  buflen
-
- - - - - -
-   - - -

-Print the value as a signed or unsigned number depending on the value of the immediate_is_unsigned variable. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT int xed_immdis_print_value_signed const xed_immdis_t p,
char *  buf,
int  buflen
-
- - - - - -
-   - - -

-print the signed value, appropriate width, with a leading 0x -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT int xed_immdis_print_value_unsigned const xed_immdis_t p,
char *  buf,
int  buflen
-
- - - - - -
-   - - -

-print the unsigned value, appropriate width, with a leading 0x -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_immdis_set_max_len xed_immdis_t p,
unsigned int  mx
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_immdis_set_present xed_immdis_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_immdis_set_signed xed_immdis_t p  ) 
-
- - - - - -
-   - - -

-Set the immediate to be signed; For decoder use only. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_immdis_set_unsigned xed_immdis_t p  ) 
-
- - - - - -
-   - - -

-Set the immediate to be unsigned; For decoder use only. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_immdis_zero xed_immdis_t p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-immed_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-immed_8h-source.html deleted file mode 100644 index 9b315ae..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-immed_8h-source.html +++ /dev/null @@ -1,98 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-immed.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 #ifndef _XED_IMMED_H_
-00037 # define _XED_IMMED_H_
-00038 
-00039 #include "xed-types.h"
-00040 #include "xed-common-defs.h"
-00041 #include "xed-util.h"
-00042 
-00043 XED_DLL_EXPORT xed_int64_t xed_immed_from_bytes(xed_int8_t* bytes, xed_uint_t n);
-00044     /*
-00045       Convert an array of bytes representing a Little Endian byte ordering
-00046       of a number (11 22 33 44 55.. 88), in to a a 64b SIGNED number. That gets
-00047       stored in memory in little endian format of course. 
-00048 
-00049       Input 11 22 33 44 55 66 77 88, 8
-00050       Ouptut 0x8877665544332211  (stored in memory as (lsb) 11 22 33 44 55 66 77 88 (msb))
-00051 
-00052       Input f0, 1
-00053       Output 0xffff_ffff_ffff_fff0  (stored in memory as f0 ff ff ff   ff ff ff ff)
-00054 
-00055       Input f0 00, 2
-00056       Output 0x0000_0000_0000_00F0 (stored in memory a f0 00 00 00  00 00 00 00)
-00057 
-00058       Input 03, 1
-00059       Output 0x0000_0000_0000_0030 (stored in memory a 30 00 00 00  00 00 00 00)
-00060     */
-00061 
-00062 
-00063 #endif
-00064 //Local Variables:
-00065 //pref: "../../xed-immed.c"
-00066 //End:
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-immed_8h.html b/misc/decoder_test/XED2/doc/html/xed-immed_8h.html deleted file mode 100644 index 01c180b..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-immed_8h.html +++ /dev/null @@ -1,89 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-immed.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-immed.h. -

-#include "xed-types.h"
-#include "xed-common-defs.h"
-#include "xed-util.h"
- -

-Go to the source code of this file. - - - - -

Functions

XED_DLL_EXPORT xed_int64_t xed_immed_from_bytes (xed_int8_t *bytes, xed_uint_t n)
-


Function Documentation

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_int64_t xed_immed_from_bytes xed_int8_t *  bytes,
xed_uint_t  n
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-init_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-init_8h-source.html deleted file mode 100644 index 79d799a..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-init_8h-source.html +++ /dev/null @@ -1,81 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-init.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 
-00037 
-00038 
-00039 #if !defined(_XED_INIT_H_)
-00040 # define _XED_INIT_H_
-00041 
-00042 
-00046 void XED_DLL_EXPORT  xed_tables_init();
-00050 void XED_DLL_EXPORT  xed_decode_init();
-00054 void XED_DLL_EXPORT  xed_encode_init();
-00055 
-00056 
-00058 
-00059 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-init_8h.html b/misc/decoder_test/XED2/doc/html/xed-init_8h.html deleted file mode 100644 index 3ae944b..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-init_8h.html +++ /dev/null @@ -1,84 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-init.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-init.h. -

- -

-Go to the source code of this file. - - - - - - - - - - - - - - -

Defines

#define _XED_INIT_H_

Functions

void XED_DLL_EXPORT xed_decode_init ()
 This is the call to initialize the XED decode tables.
void XED_DLL_EXPORT xed_encode_init ()
 This is the call to initialize the XED encode tables.
void XED_DLL_EXPORT xed_tables_init ()
 This is the call to initialize the XED encode and decode tables.
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_INIT_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-init.h.

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-inst-printer_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-inst-printer_8h-source.html deleted file mode 100644 index 8f6e6c3..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-inst-printer_8h-source.html +++ /dev/null @@ -1,152 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-inst-printer.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 
-00037 #ifndef _XED_INST_PRINTER_H_
-00038 # define _XED_INST_PRINTER_H_
-00039 #include "xed-types.h"
-00040 #include "xed-decoded-inst.h"
-00041 #include "xed-syntax-enum.h"
-00042 
-00044 
-00045 
-00046 
-00047 
-00048 
-00049 
-00050 
-00051 
-00052 
-00053 
-00054 XED_DLL_EXPORT xed_bool_t
-00055 xed_format_att(xed_decoded_inst_t* xedd,
-00056                char* out_buffer,
-00057                xed_uint32_t buffer_len,
-00058                xed_uint64_t runtime_instruction_address);
-00059 
-00069 XED_DLL_EXPORT xed_bool_t
-00070 xed_format_intel(xed_decoded_inst_t* xedd,
-00071                  char* out_buffer,
-00072                  xed_uint32_t buffer_len,
-00073                  xed_uint64_t runtime_instruction_address);
-00074 
-00085 XED_DLL_EXPORT xed_bool_t
-00086 xed_format_xed(xed_decoded_inst_t* xedd,
-00087                char* out_buffer,
-00088                xed_uint32_t buffer_len,
-00089                xed_uint64_t runtime_instruction_address);
-00090 
-00091 
-00102 XED_DLL_EXPORT xed_bool_t
-00103 xed_format(xed_syntax_enum_t syntax,
-00104            xed_decoded_inst_t* xedd,
-00105            char* out_buffer,
-00106            int  buffer_len,
-00107            xed_uint64_t runtime_instruction_address);
-00108 
-00109 
-00111 
-00112 
-00113 
-00115 
-00116 
-00117 
-00118 
-00119 
-00120 
-00121 
-00122 
-00123 
-00124 
-00125 
-00126 XED_DLL_EXPORT xed_bool_t
-00127 xed_format_att_context(xed_decoded_inst_t* xedd,
-00128                        char* out_buffer,
-00129                        xed_uint32_t buffer_len,
-00130                        xed_uint64_t runtime_instruction_address,
-00131                        void* context);
-00132 
-00143 XED_DLL_EXPORT xed_bool_t
-00144 xed_format_intel_context(xed_decoded_inst_t* xedd,
-00145                          char* out_buffer,
-00146                          xed_uint32_t buffer_len,
-00147                          xed_uint64_t runtime_instruction_address,
-00148                          void* context);
-00149 
-00150 
-00162 XED_DLL_EXPORT xed_bool_t
-00163 xed_format_context(xed_syntax_enum_t syntax,
-00164                    xed_decoded_inst_t* xedd,
-00165                    char* out_buffer,
-00166                    int  buffer_len,
-00167                    xed_uint64_t runtime_instruction_address,
-00168                    void* context);
-00170 #endif
-00171 
-00172 //Local Variables:
-00173 //pref: "../../xed-inst-printer.c"
-00174 //End:
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-inst-printer_8h.html b/misc/decoder_test/XED2/doc/html/xed-inst-printer_8h.html deleted file mode 100644 index e4e9470..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-inst-printer_8h.html +++ /dev/null @@ -1,71 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-inst-printer.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-inst-printer.h. -

-#include "xed-types.h"
-#include "xed-decoded-inst.h"
-#include "xed-syntax-enum.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - - - - - - - - - - - - - -

Legacy printers without context parameter

XED_DLL_EXPORT xed_bool_t xed_format (xed_syntax_enum_t syntax, xed_decoded_inst_t *xedd, char *out_buffer, int buffer_len, xed_uint64_t runtime_instruction_address)
 Disassemble the decoded instruction using the specified syntax.
XED_DLL_EXPORT xed_bool_t xed_format_att (xed_decoded_inst_t *xedd, char *out_buffer, xed_uint32_t buffer_len, xed_uint64_t runtime_instruction_address)
 Disassemble the decoded instruction using the ATT SYSV syntax.
XED_DLL_EXPORT xed_bool_t xed_format_intel (xed_decoded_inst_t *xedd, char *out_buffer, xed_uint32_t buffer_len, xed_uint64_t runtime_instruction_address)
 Disassemble the decoded instruction using the Intel syntax.
XED_DLL_EXPORT xed_bool_t xed_format_xed (xed_decoded_inst_t *xedd, char *out_buffer, xed_uint32_t buffer_len, xed_uint64_t runtime_instruction_address)
 Disassemble the decoded instruction using the XED syntax providing all operand resources (implicit, explicit, suppressed).

Printers with context parameter

XED_DLL_EXPORT xed_bool_t xed_format_att_context (xed_decoded_inst_t *xedd, char *out_buffer, xed_uint32_t buffer_len, xed_uint64_t runtime_instruction_address, void *context)
 Disassemble the decoded instruction using the ATT SYSV syntax.
XED_DLL_EXPORT xed_bool_t xed_format_context (xed_syntax_enum_t syntax, xed_decoded_inst_t *xedd, char *out_buffer, int buffer_len, xed_uint64_t runtime_instruction_address, void *context)
 Disassemble the decoded instruction using the specified syntax.
XED_DLL_EXPORT xed_bool_t xed_format_intel_context (xed_decoded_inst_t *xedd, char *out_buffer, xed_uint32_t buffer_len, xed_uint64_t runtime_instruction_address, void *context)
 Disassemble the decoded instruction using the Intel syntax.
-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-inst_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-inst_8h-source.html deleted file mode 100644 index e1b2883..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-inst_8h-source.html +++ /dev/null @@ -1,281 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-inst.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 #if !defined(_XED_INST_H_)
-00037 # define _XED_INST_H_
-00038 
-00039 #include "xed-util.h"
-00040 #include "xed-portability.h"
-00041 #include "xed-category-enum.h"
-00042 #include "xed-extension-enum.h"
-00043 #include "xed-iclass-enum.h"
-00044 #include "xed-operand-enum.h"
-00045 #include "xed-operand-visibility-enum.h"
-00046 #include "xed-operand-action-enum.h"
-00047 #include "xed-operand-type-enum.h"
-00048 #include "xed-nonterminal-enum.h" // a generated file
-00049 #include "xed-operand-width-enum.h" // a generated file
-00050 #include "xed-reg-enum.h" // a generated file
-00051 #include "xed-attribute-enum.h" // a generated file
-00052 #include "xed-iform-enum.h" // a generated file
-00053 #include "xed-operand-bitvec.h" // a generated file
-00054 
-00055 
-00056 struct xed_decoded_inst_s; //fwd-decl
-00057 
-00058 typedef void (*xed_operand_extractor_fn_t)(struct xed_decoded_inst_s* xds);
-00059 //typedef xed_bool_t (*xed_instruction_fixed_bit_confirmer_fn_t)(struct xed_decoded_inst_s* xds);
-00060 
-00061 
-00064 typedef struct XED_DLL_EXPORT xed_operand_s
-00065 {
-00066     xed_operand_enum_t _name;
-00067     
-00068     xed_operand_visibility_enum_t _operand_visibility;
-00069 
-00070     xed_operand_action_enum_t _rw;
-00071     xed_operand_width_enum_t _oc2;
-00072 
-00073     xed_operand_type_enum_t _type;
-00074     union {
-00075         xed_uint32_t               _imm; 
-00076         xed_nonterminal_enum_t _nt; // for nt_lookup_fn's
-00077         xed_reg_enum_t         _reg;
-00078     } _u;
-00079 }  xed_operand_t;    
-00080 
-00082 
-00083 
-00084 static XED_INLINE xed_operand_enum_t xed_operand_name(const xed_operand_t* p)  { 
-00085     return p->_name; 
-00086 }
-00087 
-00088 
-00090 static XED_INLINE xed_operand_visibility_enum_t  xed_operand_operand_visibility( const xed_operand_t* p) { 
-00091     return p->_operand_visibility; 
-00092 }
-00093 
-00094 
-00098 static XED_INLINE xed_operand_type_enum_t xed_operand_type(const xed_operand_t* p)  {
-00099     return p->_type; 
-00100 }
-00101 
-00102 
-00104 static XED_INLINE xed_operand_width_enum_t xed_operand_width(const xed_operand_t* p)  { 
-00105     return p->_oc2; 
-00106 }
-00107 
-00109 static XED_INLINE 
-00110 xed_nonterminal_enum_t xed_operand_nonterminal_name(const xed_operand_t* p)  { 
-00111     return p->_u._nt; 
-00112 }
-00113 
-00123 static XED_INLINE xed_reg_enum_t xed_operand_reg(const xed_operand_t* p) {
-00124     return p->_u._reg;
-00125 }
-00126 
-00127 
-00128 
-00139 static XED_INLINE xed_uint_t xed_operand_template_is_register(const xed_operand_t* p) {
-00140     return p->_type == XED_OPERAND_TYPE_NT_LOOKUP_FN || p->_type == XED_OPERAND_TYPE_REG;
-00141 }
-00142 
-00146 static XED_INLINE xed_uint32_t xed_operand_imm(const xed_operand_t* p) {
-00147     return p->_u._imm;
-00148 }
-00149 
-00155 XED_DLL_EXPORT void    xed_operand_print(const xed_operand_t* p, char* buf, int buflen);
-00157 
-00158 
-00159 
-00160 
-00161 
-00162 
-00163 
-00164 
-00165 
-00166 static XED_INLINE xed_uint_t xed_operand_is_register(xed_operand_enum_t name) {
-00167     return name >= XED_OPERAND_REG0 && name <= XED_OPERAND_REG15;
-00168 }
-00174 static XED_INLINE xed_uint_t xed_operand_is_memory_addressing_register(xed_operand_enum_t name) {
-00175     return  ( name == XED_OPERAND_BASE0 || 
-00176               name == XED_OPERAND_INDEX ||
-00177               name == XED_OPERAND_SEG0  ||
-00178               name == XED_OPERAND_BASE1 || 
-00179               name == XED_OPERAND_SEG1 );
-00180 }
-00181 
-00183 
-00185 
-00186 
-00187 
-00188 
-00189 static XED_INLINE xed_operand_action_enum_t xed_operand_rw(const xed_operand_t* p)  { 
-00190     return p->_rw; 
-00191 }
-00192 
-00195 XED_DLL_EXPORT xed_uint_t xed_operand_read(const xed_operand_t* p);
-00198 XED_DLL_EXPORT xed_uint_t xed_operand_read_only(const xed_operand_t* p);
-00201 XED_DLL_EXPORT xed_uint_t xed_operand_written(const xed_operand_t* p);
-00204 XED_DLL_EXPORT xed_uint_t xed_operand_written_only(const xed_operand_t* p);
-00207 XED_DLL_EXPORT xed_uint_t xed_operand_read_and_written(const xed_operand_t* p);
-00210 XED_DLL_EXPORT xed_uint_t xed_operand_conditional_read(const xed_operand_t* p);
-00213 XED_DLL_EXPORT xed_uint_t xed_operand_conditional_write(const xed_operand_t* p);
-00215 
-00216 
-00217 #include "xed-gen-table-defs.h"
-00218 XED_DLL_GLOBAL extern const  xed_operand_t xed_operand[XED_MAX_OPERAND_TABLE_NODES];
-00219 
-00222 typedef struct XED_DLL_EXPORT xed_inst_s {
-00223     xed_iclass_enum_t _iclass;
-00224     xed_category_enum_t _category;
-00225     xed_extension_enum_t _extension;
-00226     xed_operand_bitvec_t _operand_bitvec;
-00227     // The instruction form for this iclass.  The iform is a zero-based dense sequence for each iclass.
-00228     xed_uint8_t _iform;
-00229     xed_iform_enum_t _iform_enum;
-00230 
-00231     //xed_instruction_fixed_bit_confirmer_fn_t _confirmer;
-00232     
-00233     // number of operands in the operands array
-00234     xed_uint8_t _noperands; 
-00235 
-00236     // index into the xed_operand[] array of xed_operand_t structures
-00237     xed_uint32_t _operand_base; 
-00238     // bit vector of values from the xed_attribute_enum_t
-00239     xed_uint32_t _attributes;
-00240 
-00241     // rflags info -- index in to the 2 tables of flags information. 
-00242     // If _flag_complex is true, then the data are in the
-00243     // xed_flags_complex_table[]. Otherwise, the data are in the
-00244     // xed_flags_simple_table[].
-00245     xed_uint16_t _flag_info_index; 
-00246     xed_bool_t  _flag_complex;
-00247 
-00248     xed_uint8_t _cpl;  // the nominal CPL for the instruction.
-00249 }  xed_inst_t;
-00250 
-00252 
-00253 
-00254 
-00255 XED_DLL_EXPORT unsigned int xed_inst_cpl(const xed_inst_t* p) ;
-00256 
-00257 
-00258 //These next few are not doxygen commented because I want people to use the higher
-00259 //level interface in xed-decoded-inst.h.
-00260 static XED_INLINE xed_iclass_enum_t xed_inst_iclass(const xed_inst_t* p) {
-00261     return p->_iclass;
-00262 }
-00263 
-00264 static XED_INLINE xed_category_enum_t xed_inst_category(const xed_inst_t* p) {
-00265     return p->_category;
-00266 }
-00267 
-00268 static XED_INLINE xed_extension_enum_t xed_inst_extension(const xed_inst_t* p) {
-00269     return p->_extension;
-00270 }
-00271 
-00272 static XED_INLINE xed_uint_t xed_inst_iform(const xed_inst_t* p) {
-00273     return p->_iform;
-00274 }
-00275 static XED_INLINE xed_iform_enum_t xed_inst_iform_enum(const xed_inst_t* p) {
-00276     return p->_iform_enum;
-00277 }
-00278 
-00279 
-00282 static XED_INLINE unsigned int xed_inst_noperands(const xed_inst_t* p) {
-00283     return p->_noperands;
-00284 }
-00285 
-00288 static XED_INLINE const xed_operand_t* xed_inst_operand(const xed_inst_t* p, unsigned int i)    {
-00289     xed_assert(i <  p->_noperands);
-00290     return &(xed_operand[p->_operand_base + i]);
-00291 }
-00292 
-00293 
-00294 
-00295 XED_DLL_EXPORT xed_uint32_t xed_inst_flag_info_index(const xed_inst_t* p);
-00296 
-00298 
-00300 
-00301 
-00302 
-00303 static XED_INLINE xed_uint32_t xed_inst_get_attribute(const xed_inst_t* p, xed_attribute_enum_t attr) {
-00304     if (p->_attributes & attr) 
-00305         return 1;
-00306     return 0;
-00307 }
-00308 
-00311 static XED_INLINE xed_uint32_t xed_inst_get_attributes(const xed_inst_t* p) {
-00312     return p->_attributes;
-00313 }
-00316 XED_DLL_EXPORT unsigned int xed_attribute_max();
-00317 
-00321 XED_DLL_EXPORT xed_attribute_enum_t xed_attribute(unsigned int i);
-00322 
-00324 
-00325 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-inst_8h.html b/misc/decoder_test/XED2/doc/html/xed-inst_8h.html deleted file mode 100644 index 528ad05..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-inst_8h.html +++ /dev/null @@ -1,427 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-inst.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-inst.h. -

-#include "xed-util.h"
-#include "xed-portability.h"
-#include "xed-category-enum.h"
-#include "xed-extension-enum.h"
-#include "xed-iclass-enum.h"
-#include "xed-operand-enum.h"
-#include "xed-operand-visibility-enum.h"
-#include "xed-operand-action-enum.h"
-#include "xed-operand-type-enum.h"
-#include "xed-nonterminal-enum.h"
-#include "xed-operand-width-enum.h"
-#include "xed-reg-enum.h"
-#include "xed-attribute-enum.h"
-#include "xed-iform-enum.h"
-#include "xed-operand-bitvec.h"
-#include "xed-gen-table-defs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Data Structures

struct  xed_inst_s
 constant information about a decoded instruction form, including the pointer to the constant operand properties xed_operand_t for this instruction form. More...
struct  xed_operand_s
 Constant information about an individual generic operand, like an operand template, describing the operand properties. More...

xed_inst_t Attribute access

XED_DLL_EXPORT xed_attribute_enum_t xed_attribute (unsigned int i)
 Return the i'th global attribute in a linear sequence, independent of any instruction.
XED_DLL_EXPORT unsigned int xed_attribute_max ()
 Return the maximum number of defined attributes, independent of any instruction.
static XED_INLINE xed_uint32_t xed_inst_get_attribute (const xed_inst_t *p, xed_attribute_enum_t attr)
 Scan for the attribute attr and return 1 if it is found, 0 otherwise.
static XED_INLINE xed_uint32_t xed_inst_get_attributes (const xed_inst_t *p)
 Return the attributes bit vector.

xed_inst_t Template Instruction Information

static XED_INLINE xed_category_enum_t xed_inst_category (const xed_inst_t *p)
XED_DLL_EXPORT unsigned int xed_inst_cpl (const xed_inst_t *p)
 Return the current privilege level (CPL).
static XED_INLINE xed_extension_enum_t xed_inst_extension (const xed_inst_t *p)
XED_DLL_EXPORT xed_uint32_t xed_inst_flag_info_index (const xed_inst_t *p)
static XED_INLINE xed_iclass_enum_t xed_inst_iclass (const xed_inst_t *p)
static XED_INLINE xed_uint_t xed_inst_iform (const xed_inst_t *p)
static XED_INLINE xed_iform_enum_t xed_inst_iform_enum (const xed_inst_t *p)
static XED_INLINE unsigned int xed_inst_noperands (const xed_inst_t *p)
 Number of instruction operands.
static XED_INLINE const xed_operand_txed_inst_operand (const xed_inst_t *p, unsigned int i)
 Obtain a pointer to an individual operand.

xed_inst_t Template Operand Read/Written

XED_DLL_EXPORT xed_uint_t xed_operand_conditional_read (const xed_operand_t *p)
 If the operand has a conditional read (may also write).
XED_DLL_EXPORT xed_uint_t xed_operand_conditional_write (const xed_operand_t *p)
 If the operand has a conditional write (may also read).
XED_DLL_EXPORT xed_uint_t xed_operand_read (const xed_operand_t *p)
 If the operand is read, including conditional reads.
XED_DLL_EXPORT xed_uint_t xed_operand_read_and_written (const xed_operand_t *p)
 If the operand is read-and-written, conditional reads and conditional writes.
XED_DLL_EXPORT xed_uint_t xed_operand_read_only (const xed_operand_t *p)
 If the operand is read-only, including conditional reads.
static XED_INLINE xed_operand_action_enum_t xed_operand_rw (const xed_operand_t *p)
 Returns the raw R/W action.
XED_DLL_EXPORT xed_uint_t xed_operand_written (const xed_operand_t *p)
 If the operand is written, including conditional writes.
XED_DLL_EXPORT xed_uint_t xed_operand_written_only (const xed_operand_t *p)
 If the operand is written-only, including conditional writes.

xed_inst_t Template Operands Access

static XED_INLINE xed_uint32_t xed_operand_imm (const xed_operand_t *p)
static XED_INLINE xed_operand_enum_t xed_operand_name (const xed_operand_t *p)
static XED_INLINE xed_nonterminal_enum_t xed_operand_nonterminal_name (const xed_operand_t *p)
static XED_INLINE xed_operand_visibility_enum_t xed_operand_operand_visibility (const xed_operand_t *p)
XED_DLL_EXPORT void xed_operand_print (const xed_operand_t *p, char *buf, int buflen)
 Print the operand p into the buffer buf, of length buflen.
static XED_INLINE xed_reg_enum_t xed_operand_reg (const xed_operand_t *p)
 Careful with this one -- use xed_decoded_inst_get_reg()! This one is probably not what you think it is.
static XED_INLINE xed_uint_t xed_operand_template_is_register (const xed_operand_t *p)
 Careful with this one; See xed_operand_is_register().
static XED_INLINE xed_operand_type_enum_t xed_operand_type (const xed_operand_t *p)
static XED_INLINE xed_operand_width_enum_t xed_operand_width (const xed_operand_t *p)

xed_inst_t Template Operand Enum Name Classification

static XED_INLINE xed_uint_t xed_operand_is_memory_addressing_register (xed_operand_enum_t name)
 Tests the enum for inclusion in XED_OPERAND_{BASE0,BASE1,INDEX,SEG0,SEG1}.
static XED_INLINE xed_uint_t xed_operand_is_register (xed_operand_enum_t name)
 Tests the enum for inclusion in XED_OPERAND_REG0 through XED_OPERAND_REG15.

Defines

#define _XED_INST_H_

Typedefs

typedef XED_DLL_EXPORT xed_inst_s xed_inst_t
 constant information about a decoded instruction form, including the pointer to the constant operand properties xed_operand_t for this instruction form.
typedef void(* xed_operand_extractor_fn_t )(struct xed_decoded_inst_s *xds)
typedef XED_DLL_EXPORT xed_operand_s xed_operand_t
 Constant information about an individual generic operand, like an operand template, describing the operand properties.

Variables

XED_DLL_GLOBAL const xed_operand_t xed_operand [XED_MAX_OPERAND_TABLE_NODES]
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_INST_H_
-
- - - - - -
-   - - -

- -

-Definition at line 37 of file xed-inst.h.

-


Typedef Documentation

-

- - - - -
- - - - -
typedef void(* xed_operand_extractor_fn_t)(struct xed_decoded_inst_s *xds)
-
- - - - - -
-   - - -

- -

-Definition at line 58 of file xed-inst.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_category_enum_t xed_inst_category const xed_inst_t p  )  [static]
-
- - - - - -
-   - - -

- -

-Definition at line 264 of file xed-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_extension_enum_t xed_inst_extension const xed_inst_t p  )  [static]
-
- - - - - -
-   - - -

- -

-Definition at line 268 of file xed-inst.h.

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint32_t xed_inst_flag_info_index const xed_inst_t p  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_iclass_enum_t xed_inst_iclass const xed_inst_t p  )  [static]
-
- - - - - -
-   - - -

- -

-Definition at line 260 of file xed-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_uint_t xed_inst_iform const xed_inst_t p  )  [static]
-
- - - - - -
-   - - -

- -

-Definition at line 272 of file xed-inst.h.

-

- - - - -
- - - - - - - - - -
static XED_INLINE xed_iform_enum_t xed_inst_iform_enum const xed_inst_t p  )  [static]
-
- - - - - -
-   - - -

- -

-Definition at line 275 of file xed-inst.h.

-


Variable Documentation

-

- - - - -
- - - - -
XED_DLL_GLOBAL const xed_operand_t xed_operand[XED_MAX_OPERAND_TABLE_NODES]
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-interface_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-interface_8h-source.html deleted file mode 100644 index dfbe053..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-interface_8h-source.html +++ /dev/null @@ -1,104 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-interface.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 
-00037 
-00038 
-00039 #if !defined(_XED_INTERFACE_H_)
-00040 # define _XED_INTERFACE_H_
-00041 
-00043 #include "xed-common-hdrs.h"
-00044 #include "xed-types.h"
-00045 //#include "xed-error-enum.h"
-00046 #include "xed-operand-enum.h"
-00047 
-00048 #include "xed-init.h"
-00049 #include "xed-decode.h"
-00050 
-00051 #include "xed-state.h" // dstate, legacy
-00052 #include "xed-syntax-enum.h"
-00053 #include "xed-reg-class-enum.h" // generated
-00054 #include "xed-reg-class.h"
-00055 #include "xed-inst-printer.h"
-00056 
-00057 #include "xed-encode.h"
-00058 #include "xed-util.h"
-00059 //#include "xed-decode-cache.h"
-00060 #include "xed-inst-printer.h"
-00061 #include "xed-operand-action.h"
-00062 
-00063 #include "xed-version.h"
-00064 #include "xed-decoded-inst.h"
-00065 #include "xed-inst.h"
-00066 #include "xed-iclass-enum.h" // generated
-00067 #include "xed-category-enum.h" // generated
-00068 #include "xed-extension-enum.h" // generated
-00069 #include "xed-attribute-enum.h" // generated
-00070 
-00071 #include "xed-disas.h"  // callbacks for disassembly
-00073 
-00074 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-interface_8h.html b/misc/decoder_test/XED2/doc/html/xed-interface_8h.html deleted file mode 100644 index 7326c36..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-interface_8h.html +++ /dev/null @@ -1,95 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-interface.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-interface.h. -

-#include "xed-common-hdrs.h"
-#include "xed-types.h"
-#include "xed-operand-enum.h"
-#include "xed-init.h"
-#include "xed-decode.h"
-#include "xed-state.h"
-#include "xed-syntax-enum.h"
-#include "xed-reg-class-enum.h"
-#include "xed-reg-class.h"
-#include "xed-inst-printer.h"
-#include "xed-encode.h"
-#include "xed-util.h"
-#include "xed-operand-action.h"
-#include "xed-version.h"
-#include "xed-decoded-inst.h"
-#include "xed-inst.h"
-#include "xed-iclass-enum.h"
-#include "xed-category-enum.h"
-#include "xed-extension-enum.h"
-#include "xed-attribute-enum.h"
-#include "xed-disas.h"
- -

-Go to the source code of this file. - - - - -

Defines

#define _XED_INTERFACE_H_
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_INTERFACE_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-interface.h.

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-machine-mode-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-machine-mode-enum_8h-source.html deleted file mode 100644 index eb5949d..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-machine-mode-enum_8h-source.html +++ /dev/null @@ -1,89 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-machine-mode-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_MACHINE_MODE_ENUM_H_)
-00040 # define _XED_MACHINE_MODE_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_MACHINE_MODE_INVALID,
-00044   XED_MACHINE_MODE_LONG_64, 
-00045   XED_MACHINE_MODE_LONG_COMPAT_32, 
-00046   XED_MACHINE_MODE_LONG_COMPAT_16, 
-00047   XED_MACHINE_MODE_LEGACY_32, 
-00048   XED_MACHINE_MODE_LEGACY_16, 
-00049   XED_MACHINE_MODE_LAST
-00050 } xed_machine_mode_enum_t;
-00051 
-00052 XED_DLL_EXPORT xed_machine_mode_enum_t
-00053 str2xed_machine_mode_enum_t(const char* s);
-00054 XED_DLL_EXPORT const char*
-00055 xed_machine_mode_enum_t2str(const xed_machine_mode_enum_t p);
-00056 
-00057 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-machine-mode-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-machine-mode-enum_8h.html deleted file mode 100644 index 0d413b3..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-machine-mode-enum_8h.html +++ /dev/null @@ -1,199 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-machine-mode-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-machine-mode-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_MACHINE_MODE_ENUM_H_

Enumerations

enum  xed_machine_mode_enum_t {
-  XED_MACHINE_MODE_INVALID, -
-  XED_MACHINE_MODE_LONG_64, -
-  XED_MACHINE_MODE_LONG_COMPAT_32, -
-  XED_MACHINE_MODE_LONG_COMPAT_16, -
-  XED_MACHINE_MODE_LEGACY_32, -
-  XED_MACHINE_MODE_LEGACY_16, -
-  XED_MACHINE_MODE_LAST -
- }

Functions

XED_DLL_EXPORT xed_machine_mode_enum_t str2xed_machine_mode_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_machine_mode_enum_t2str (const xed_machine_mode_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_MACHINE_MODE_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-machine-mode-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_machine_mode_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - - - -
XED_MACHINE_MODE_INVALID  -
XED_MACHINE_MODE_LONG_64  -64b operating mode
XED_MACHINE_MODE_LONG_COMPAT_32  -32b operating mode
XED_MACHINE_MODE_LONG_COMPAT_16  -16b operating mode
XED_MACHINE_MODE_LEGACY_32  -32b operating mode
XED_MACHINE_MODE_LEGACY_16  -16b operating mode
XED_MACHINE_MODE_LAST  -
-
- -

-Definition at line 42 of file xed-machine-mode-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_machine_mode_enum_t str2xed_machine_mode_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_machine_mode_enum_t2str const xed_machine_mode_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-nonterminal-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-nonterminal-enum_8h-source.html deleted file mode 100644 index 0022612..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-nonterminal-enum_8h-source.html +++ /dev/null @@ -1,197 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-nonterminal-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_NONTERMINAL_ENUM_H_)
-00040 # define _XED_NONTERMINAL_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_NONTERMINAL_INVALID,
-00044   XED_NONTERMINAL_AR10,
-00045   XED_NONTERMINAL_AR11,
-00046   XED_NONTERMINAL_AR12,
-00047   XED_NONTERMINAL_AR13,
-00048   XED_NONTERMINAL_AR14,
-00049   XED_NONTERMINAL_AR15,
-00050   XED_NONTERMINAL_AR8,
-00051   XED_NONTERMINAL_AR9,
-00052   XED_NONTERMINAL_ARAX,
-00053   XED_NONTERMINAL_ARBP,
-00054   XED_NONTERMINAL_ARBX,
-00055   XED_NONTERMINAL_ARCX,
-00056   XED_NONTERMINAL_ARDI,
-00057   XED_NONTERMINAL_ARDX,
-00058   XED_NONTERMINAL_ARSI,
-00059   XED_NONTERMINAL_ARSP,
-00060   XED_NONTERMINAL_ASZ_NONTERM,
-00061   XED_NONTERMINAL_BRANCH_HINT,
-00062   XED_NONTERMINAL_BRDISP8,
-00063   XED_NONTERMINAL_BRDISPZ,
-00064   XED_NONTERMINAL_CR_B,
-00065   XED_NONTERMINAL_CR_R,
-00066   XED_NONTERMINAL_DF64,
-00067   XED_NONTERMINAL_DR_B,
-00068   XED_NONTERMINAL_DR_R,
-00069   XED_NONTERMINAL_FINAL_DSEG,
-00070   XED_NONTERMINAL_FINAL_DSEG1,
-00071   XED_NONTERMINAL_FINAL_DSEG1_MODE64,
-00072   XED_NONTERMINAL_FINAL_DSEG1_NOT64,
-00073   XED_NONTERMINAL_FINAL_DSEG_MODE64,
-00074   XED_NONTERMINAL_FINAL_DSEG_NOT64,
-00075   XED_NONTERMINAL_FINAL_ESEG,
-00076   XED_NONTERMINAL_FINAL_SSEG,
-00077   XED_NONTERMINAL_FINAL_SSEG1,
-00078   XED_NONTERMINAL_FINAL_SSEG_MODE64,
-00079   XED_NONTERMINAL_FINAL_SSEG_NOT64,
-00080   XED_NONTERMINAL_GPR16_B,
-00081   XED_NONTERMINAL_GPR16_R,
-00082   XED_NONTERMINAL_GPR32_B,
-00083   XED_NONTERMINAL_GPR32_R,
-00084   XED_NONTERMINAL_GPR32_X,
-00085   XED_NONTERMINAL_GPR64_B,
-00086   XED_NONTERMINAL_GPR64_R,
-00087   XED_NONTERMINAL_GPR64_X,
-00088   XED_NONTERMINAL_GPR8_B,
-00089   XED_NONTERMINAL_GPR8_R,
-00090   XED_NONTERMINAL_GPRV_B,
-00091   XED_NONTERMINAL_GPRV_R,
-00092   XED_NONTERMINAL_GPRY_B,
-00093   XED_NONTERMINAL_GPRY_R,
-00094   XED_NONTERMINAL_GPRZ_B,
-00095   XED_NONTERMINAL_GPRZ_R,
-00096   XED_NONTERMINAL_GPR_ERROR_B,
-00097   XED_NONTERMINAL_GPR_ERROR_R,
-00098   XED_NONTERMINAL_INSTRUCTIONS,
-00099   XED_NONTERMINAL_ISA,
-00100   XED_NONTERMINAL_LOCK_VALIDATE,
-00101   XED_NONTERMINAL_MEMDISP16,
-00102   XED_NONTERMINAL_MEMDISP32,
-00103   XED_NONTERMINAL_MEMDISP8,
-00104   XED_NONTERMINAL_MEMDISPV,
-00105   XED_NONTERMINAL_MMX_B,
-00106   XED_NONTERMINAL_MMX_R,
-00107   XED_NONTERMINAL_MODRM,
-00108   XED_NONTERMINAL_MODRM16,
-00109   XED_NONTERMINAL_MODRM32,
-00110   XED_NONTERMINAL_MODRM64ALT32,
-00111   XED_NONTERMINAL_OEAX,
-00112   XED_NONTERMINAL_OEBP,
-00113   XED_NONTERMINAL_OEBX,
-00114   XED_NONTERMINAL_OECX,
-00115   XED_NONTERMINAL_OEDI,
-00116   XED_NONTERMINAL_OEDX,
-00117   XED_NONTERMINAL_OESI,
-00118   XED_NONTERMINAL_OESP,
-00119   XED_NONTERMINAL_OR10,
-00120   XED_NONTERMINAL_OR11,
-00121   XED_NONTERMINAL_OR12,
-00122   XED_NONTERMINAL_OR13,
-00123   XED_NONTERMINAL_OR14,
-00124   XED_NONTERMINAL_OR15,
-00125   XED_NONTERMINAL_OR8,
-00126   XED_NONTERMINAL_OR9,
-00127   XED_NONTERMINAL_ORAX,
-00128   XED_NONTERMINAL_ORBP,
-00129   XED_NONTERMINAL_ORBX,
-00130   XED_NONTERMINAL_ORCX,
-00131   XED_NONTERMINAL_ORDI,
-00132   XED_NONTERMINAL_ORDX,
-00133   XED_NONTERMINAL_ORSI,
-00134   XED_NONTERMINAL_ORSP,
-00135   XED_NONTERMINAL_OSZ_NONTERM,
-00136   XED_NONTERMINAL_PREFIXES,
-00137   XED_NONTERMINAL_REFINING66,
-00138   XED_NONTERMINAL_REMOVE_SEGMENT,
-00139   XED_NONTERMINAL_REP_VALIDATE,
-00140   XED_NONTERMINAL_RFLAGS,
-00141   XED_NONTERMINAL_RIP,
-00142   XED_NONTERMINAL_SEG,
-00143   XED_NONTERMINAL_SIB,
-00144   XED_NONTERMINAL_SIB_BASE0,
-00145   XED_NONTERMINAL_SIMM8,
-00146   XED_NONTERMINAL_SIMMZ,
-00147   XED_NONTERMINAL_TMP_B,
-00148   XED_NONTERMINAL_TMP_R,
-00149   XED_NONTERMINAL_UIMM16,
-00150   XED_NONTERMINAL_UIMM32,
-00151   XED_NONTERMINAL_UIMM8,
-00152   XED_NONTERMINAL_UIMM8_1,
-00153   XED_NONTERMINAL_UIMMV,
-00154   XED_NONTERMINAL_X87,
-00155   XED_NONTERMINAL_XMM_B,
-00156   XED_NONTERMINAL_XMM_R,
-00157   XED_NONTERMINAL_LAST
-00158 } xed_nonterminal_enum_t;
-00159 
-00160 XED_DLL_EXPORT xed_nonterminal_enum_t
-00161 str2xed_nonterminal_enum_t(const char* s);
-00162 XED_DLL_EXPORT const char*
-00163 xed_nonterminal_enum_t2str(const xed_nonterminal_enum_t p);
-00164 
-00165 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-nonterminal-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-nonterminal-enum_8h.html deleted file mode 100644 index ca81c19..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-nonterminal-enum_8h.html +++ /dev/null @@ -1,631 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-nonterminal-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-nonterminal-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_NONTERMINAL_ENUM_H_

Enumerations

enum  xed_nonterminal_enum_t {
-  XED_NONTERMINAL_INVALID, -
-  XED_NONTERMINAL_AR10, -
-  XED_NONTERMINAL_AR11, -
-  XED_NONTERMINAL_AR12, -
-  XED_NONTERMINAL_AR13, -
-  XED_NONTERMINAL_AR14, -
-  XED_NONTERMINAL_AR15, -
-  XED_NONTERMINAL_AR8, -
-  XED_NONTERMINAL_AR9, -
-  XED_NONTERMINAL_ARAX, -
-  XED_NONTERMINAL_ARBP, -
-  XED_NONTERMINAL_ARBX, -
-  XED_NONTERMINAL_ARCX, -
-  XED_NONTERMINAL_ARDI, -
-  XED_NONTERMINAL_ARDX, -
-  XED_NONTERMINAL_ARSI, -
-  XED_NONTERMINAL_ARSP, -
-  XED_NONTERMINAL_ASZ_NONTERM, -
-  XED_NONTERMINAL_BRANCH_HINT, -
-  XED_NONTERMINAL_BRDISP8, -
-  XED_NONTERMINAL_BRDISPZ, -
-  XED_NONTERMINAL_CR_B, -
-  XED_NONTERMINAL_CR_R, -
-  XED_NONTERMINAL_DF64, -
-  XED_NONTERMINAL_DR_B, -
-  XED_NONTERMINAL_DR_R, -
-  XED_NONTERMINAL_FINAL_DSEG, -
-  XED_NONTERMINAL_FINAL_DSEG1, -
-  XED_NONTERMINAL_FINAL_DSEG1_MODE64, -
-  XED_NONTERMINAL_FINAL_DSEG1_NOT64, -
-  XED_NONTERMINAL_FINAL_DSEG_MODE64, -
-  XED_NONTERMINAL_FINAL_DSEG_NOT64, -
-  XED_NONTERMINAL_FINAL_ESEG, -
-  XED_NONTERMINAL_FINAL_SSEG, -
-  XED_NONTERMINAL_FINAL_SSEG1, -
-  XED_NONTERMINAL_FINAL_SSEG_MODE64, -
-  XED_NONTERMINAL_FINAL_SSEG_NOT64, -
-  XED_NONTERMINAL_GPR16_B, -
-  XED_NONTERMINAL_GPR16_R, -
-  XED_NONTERMINAL_GPR32_B, -
-  XED_NONTERMINAL_GPR32_R, -
-  XED_NONTERMINAL_GPR32_X, -
-  XED_NONTERMINAL_GPR64_B, -
-  XED_NONTERMINAL_GPR64_R, -
-  XED_NONTERMINAL_GPR64_X, -
-  XED_NONTERMINAL_GPR8_B, -
-  XED_NONTERMINAL_GPR8_R, -
-  XED_NONTERMINAL_GPRV_B, -
-  XED_NONTERMINAL_GPRV_R, -
-  XED_NONTERMINAL_GPRY_B, -
-  XED_NONTERMINAL_GPRY_R, -
-  XED_NONTERMINAL_GPRZ_B, -
-  XED_NONTERMINAL_GPRZ_R, -
-  XED_NONTERMINAL_GPR_ERROR_B, -
-  XED_NONTERMINAL_GPR_ERROR_R, -
-  XED_NONTERMINAL_INSTRUCTIONS, -
-  XED_NONTERMINAL_ISA, -
-  XED_NONTERMINAL_LOCK_VALIDATE, -
-  XED_NONTERMINAL_MEMDISP16, -
-  XED_NONTERMINAL_MEMDISP32, -
-  XED_NONTERMINAL_MEMDISP8, -
-  XED_NONTERMINAL_MEMDISPV, -
-  XED_NONTERMINAL_MMX_B, -
-  XED_NONTERMINAL_MMX_R, -
-  XED_NONTERMINAL_MODRM, -
-  XED_NONTERMINAL_MODRM16, -
-  XED_NONTERMINAL_MODRM32, -
-  XED_NONTERMINAL_MODRM64ALT32, -
-  XED_NONTERMINAL_OEAX, -
-  XED_NONTERMINAL_OEBP, -
-  XED_NONTERMINAL_OEBX, -
-  XED_NONTERMINAL_OECX, -
-  XED_NONTERMINAL_OEDI, -
-  XED_NONTERMINAL_OEDX, -
-  XED_NONTERMINAL_OESI, -
-  XED_NONTERMINAL_OESP, -
-  XED_NONTERMINAL_OR10, -
-  XED_NONTERMINAL_OR11, -
-  XED_NONTERMINAL_OR12, -
-  XED_NONTERMINAL_OR13, -
-  XED_NONTERMINAL_OR14, -
-  XED_NONTERMINAL_OR15, -
-  XED_NONTERMINAL_OR8, -
-  XED_NONTERMINAL_OR9, -
-  XED_NONTERMINAL_ORAX, -
-  XED_NONTERMINAL_ORBP, -
-  XED_NONTERMINAL_ORBX, -
-  XED_NONTERMINAL_ORCX, -
-  XED_NONTERMINAL_ORDI, -
-  XED_NONTERMINAL_ORDX, -
-  XED_NONTERMINAL_ORSI, -
-  XED_NONTERMINAL_ORSP, -
-  XED_NONTERMINAL_OSZ_NONTERM, -
-  XED_NONTERMINAL_PREFIXES, -
-  XED_NONTERMINAL_REFINING66, -
-  XED_NONTERMINAL_REMOVE_SEGMENT, -
-  XED_NONTERMINAL_REP_VALIDATE, -
-  XED_NONTERMINAL_RFLAGS, -
-  XED_NONTERMINAL_RIP, -
-  XED_NONTERMINAL_SEG, -
-  XED_NONTERMINAL_SIB, -
-  XED_NONTERMINAL_SIB_BASE0, -
-  XED_NONTERMINAL_SIMM8, -
-  XED_NONTERMINAL_SIMMZ, -
-  XED_NONTERMINAL_TMP_B, -
-  XED_NONTERMINAL_TMP_R, -
-  XED_NONTERMINAL_UIMM16, -
-  XED_NONTERMINAL_UIMM32, -
-  XED_NONTERMINAL_UIMM8, -
-  XED_NONTERMINAL_UIMM8_1, -
-  XED_NONTERMINAL_UIMMV, -
-  XED_NONTERMINAL_X87, -
-  XED_NONTERMINAL_XMM_B, -
-  XED_NONTERMINAL_XMM_R, -
-  XED_NONTERMINAL_LAST -
- }

Functions

XED_DLL_EXPORT xed_nonterminal_enum_t str2xed_nonterminal_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_nonterminal_enum_t2str (const xed_nonterminal_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_NONTERMINAL_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-nonterminal-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_nonterminal_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_NONTERMINAL_INVALID  -
XED_NONTERMINAL_AR10  -
XED_NONTERMINAL_AR11  -
XED_NONTERMINAL_AR12  -
XED_NONTERMINAL_AR13  -
XED_NONTERMINAL_AR14  -
XED_NONTERMINAL_AR15  -
XED_NONTERMINAL_AR8  -
XED_NONTERMINAL_AR9  -
XED_NONTERMINAL_ARAX  -
XED_NONTERMINAL_ARBP  -
XED_NONTERMINAL_ARBX  -
XED_NONTERMINAL_ARCX  -
XED_NONTERMINAL_ARDI  -
XED_NONTERMINAL_ARDX  -
XED_NONTERMINAL_ARSI  -
XED_NONTERMINAL_ARSP  -
XED_NONTERMINAL_ASZ_NONTERM  -
XED_NONTERMINAL_BRANCH_HINT  -
XED_NONTERMINAL_BRDISP8  -
XED_NONTERMINAL_BRDISPZ  -
XED_NONTERMINAL_CR_B  -
XED_NONTERMINAL_CR_R  -
XED_NONTERMINAL_DF64  -
XED_NONTERMINAL_DR_B  -
XED_NONTERMINAL_DR_R  -
XED_NONTERMINAL_FINAL_DSEG  -
XED_NONTERMINAL_FINAL_DSEG1  -
XED_NONTERMINAL_FINAL_DSEG1_MODE64  -
XED_NONTERMINAL_FINAL_DSEG1_NOT64  -
XED_NONTERMINAL_FINAL_DSEG_MODE64  -
XED_NONTERMINAL_FINAL_DSEG_NOT64  -
XED_NONTERMINAL_FINAL_ESEG  -
XED_NONTERMINAL_FINAL_SSEG  -
XED_NONTERMINAL_FINAL_SSEG1  -
XED_NONTERMINAL_FINAL_SSEG_MODE64  -
XED_NONTERMINAL_FINAL_SSEG_NOT64  -
XED_NONTERMINAL_GPR16_B  -
XED_NONTERMINAL_GPR16_R  -
XED_NONTERMINAL_GPR32_B  -
XED_NONTERMINAL_GPR32_R  -
XED_NONTERMINAL_GPR32_X  -
XED_NONTERMINAL_GPR64_B  -
XED_NONTERMINAL_GPR64_R  -
XED_NONTERMINAL_GPR64_X  -
XED_NONTERMINAL_GPR8_B  -
XED_NONTERMINAL_GPR8_R  -
XED_NONTERMINAL_GPRV_B  -
XED_NONTERMINAL_GPRV_R  -
XED_NONTERMINAL_GPRY_B  -
XED_NONTERMINAL_GPRY_R  -
XED_NONTERMINAL_GPRZ_B  -
XED_NONTERMINAL_GPRZ_R  -
XED_NONTERMINAL_GPR_ERROR_B  -
XED_NONTERMINAL_GPR_ERROR_R  -
XED_NONTERMINAL_INSTRUCTIONS  -
XED_NONTERMINAL_ISA  -
XED_NONTERMINAL_LOCK_VALIDATE  -
XED_NONTERMINAL_MEMDISP16  -
XED_NONTERMINAL_MEMDISP32  -
XED_NONTERMINAL_MEMDISP8  -
XED_NONTERMINAL_MEMDISPV  -
XED_NONTERMINAL_MMX_B  -
XED_NONTERMINAL_MMX_R  -
XED_NONTERMINAL_MODRM  -
XED_NONTERMINAL_MODRM16  -
XED_NONTERMINAL_MODRM32  -
XED_NONTERMINAL_MODRM64ALT32  -
XED_NONTERMINAL_OEAX  -
XED_NONTERMINAL_OEBP  -
XED_NONTERMINAL_OEBX  -
XED_NONTERMINAL_OECX  -
XED_NONTERMINAL_OEDI  -
XED_NONTERMINAL_OEDX  -
XED_NONTERMINAL_OESI  -
XED_NONTERMINAL_OESP  -
XED_NONTERMINAL_OR10  -
XED_NONTERMINAL_OR11  -
XED_NONTERMINAL_OR12  -
XED_NONTERMINAL_OR13  -
XED_NONTERMINAL_OR14  -
XED_NONTERMINAL_OR15  -
XED_NONTERMINAL_OR8  -
XED_NONTERMINAL_OR9  -
XED_NONTERMINAL_ORAX  -
XED_NONTERMINAL_ORBP  -
XED_NONTERMINAL_ORBX  -
XED_NONTERMINAL_ORCX  -
XED_NONTERMINAL_ORDI  -
XED_NONTERMINAL_ORDX  -
XED_NONTERMINAL_ORSI  -
XED_NONTERMINAL_ORSP  -
XED_NONTERMINAL_OSZ_NONTERM  -
XED_NONTERMINAL_PREFIXES  -
XED_NONTERMINAL_REFINING66  -
XED_NONTERMINAL_REMOVE_SEGMENT  -
XED_NONTERMINAL_REP_VALIDATE  -
XED_NONTERMINAL_RFLAGS  -
XED_NONTERMINAL_RIP  -
XED_NONTERMINAL_SEG  -
XED_NONTERMINAL_SIB  -
XED_NONTERMINAL_SIB_BASE0  -
XED_NONTERMINAL_SIMM8  -
XED_NONTERMINAL_SIMMZ  -
XED_NONTERMINAL_TMP_B  -
XED_NONTERMINAL_TMP_R  -
XED_NONTERMINAL_UIMM16  -
XED_NONTERMINAL_UIMM32  -
XED_NONTERMINAL_UIMM8  -
XED_NONTERMINAL_UIMM8_1  -
XED_NONTERMINAL_UIMMV  -
XED_NONTERMINAL_X87  -
XED_NONTERMINAL_XMM_B  -
XED_NONTERMINAL_XMM_R  -
XED_NONTERMINAL_LAST  -
-
- -

-Definition at line 42 of file xed-nonterminal-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_nonterminal_enum_t str2xed_nonterminal_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_nonterminal_enum_t2str const xed_nonterminal_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-action-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-operand-action-enum_8h-source.html deleted file mode 100644 index 8e1e18e..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-action-enum_8h-source.html +++ /dev/null @@ -1,91 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-action-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_OPERAND_ACTION_ENUM_H_)
-00040 # define _XED_OPERAND_ACTION_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_OPERAND_ACTION_INVALID,
-00044   XED_OPERAND_ACTION_RW, 
-00045   XED_OPERAND_ACTION_R, 
-00046   XED_OPERAND_ACTION_W, 
-00047   XED_OPERAND_ACTION_RCW, 
-00048   XED_OPERAND_ACTION_CW, 
-00049   XED_OPERAND_ACTION_CRW, 
-00050   XED_OPERAND_ACTION_CR, 
-00051   XED_OPERAND_ACTION_LAST
-00052 } xed_operand_action_enum_t;
-00053 
-00054 XED_DLL_EXPORT xed_operand_action_enum_t
-00055 str2xed_operand_action_enum_t(const char* s);
-00056 XED_DLL_EXPORT const char*
-00057 xed_operand_action_enum_t2str(const xed_operand_action_enum_t p);
-00058 
-00059 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-action-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-operand-action-enum_8h.html deleted file mode 100644 index 2975039..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-action-enum_8h.html +++ /dev/null @@ -1,207 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-action-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-operand-action-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_OPERAND_ACTION_ENUM_H_

Enumerations

enum  xed_operand_action_enum_t {
-  XED_OPERAND_ACTION_INVALID, -
-  XED_OPERAND_ACTION_RW, -
-  XED_OPERAND_ACTION_R, -
-  XED_OPERAND_ACTION_W, -
-  XED_OPERAND_ACTION_RCW, -
-  XED_OPERAND_ACTION_CW, -
-  XED_OPERAND_ACTION_CRW, -
-  XED_OPERAND_ACTION_CR, -
-  XED_OPERAND_ACTION_LAST -
- }

Functions

XED_DLL_EXPORT xed_operand_action_enum_t str2xed_operand_action_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_operand_action_enum_t2str (const xed_operand_action_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_OPERAND_ACTION_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-operand-action-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_operand_action_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - - - - - -
XED_OPERAND_ACTION_INVALID  -
XED_OPERAND_ACTION_RW  -Read and written (must write).
XED_OPERAND_ACTION_R  -Read-only.
XED_OPERAND_ACTION_W  -Write-only (must write).
XED_OPERAND_ACTION_RCW  -Read and conditionlly written (may write).
XED_OPERAND_ACTION_CW  -Conditionlly written (may write).
XED_OPERAND_ACTION_CRW  -Conditionlly read, always written (must write).
XED_OPERAND_ACTION_CR  -Conditional read.
XED_OPERAND_ACTION_LAST  -
-
- -

-Definition at line 42 of file xed-operand-action-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_operand_action_enum_t str2xed_operand_action_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_operand_action_enum_t2str const xed_operand_action_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-action_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-operand-action_8h-source.html deleted file mode 100644 index 6571eff..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-action_8h-source.html +++ /dev/null @@ -1,86 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-action.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 #if !defined(_XED_OPERAND_ACTION_H_)
-00037 # define _XED_OPERAND_ACTION_H_
-00038 
-00039 #include "xed-types.h"
-00040 #include "xed-operand-action-enum.h"
-00041 
-00042 XED_DLL_EXPORT xed_uint_t xed_operand_action_read(const xed_operand_action_enum_t rw);
-00043 XED_DLL_EXPORT xed_uint_t xed_operand_action_read_only(const xed_operand_action_enum_t rw);
-00044 XED_DLL_EXPORT xed_uint_t xed_operand_action_written(const xed_operand_action_enum_t rw);
-00045 XED_DLL_EXPORT xed_uint_t xed_operand_action_written_only(const xed_operand_action_enum_t rw);
-00046 XED_DLL_EXPORT xed_uint_t xed_operand_action_read_and_written(const xed_operand_action_enum_t rw);
-00047 XED_DLL_EXPORT xed_uint_t xed_operand_action_conditional_read(const xed_operand_action_enum_t rw);
-00048 XED_DLL_EXPORT xed_uint_t xed_operand_action_conditional_write(const xed_operand_action_enum_t rw);
-00049 
-00050 #endif
-00051 
-00052 //Local Variables:
-00053 //pref: "../../xed-operand-action.c"
-00054 //End:
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-action_8h.html b/misc/decoder_test/XED2/doc/html/xed-operand-action_8h.html deleted file mode 100644 index 5d283f0..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-action_8h.html +++ /dev/null @@ -1,288 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-action.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-operand-action.h. -

-#include "xed-types.h"
-#include "xed-operand-action-enum.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - - - - - - - - -

Defines

#define _XED_OPERAND_ACTION_H_

Functions

XED_DLL_EXPORT xed_uint_t xed_operand_action_conditional_read (const xed_operand_action_enum_t rw)
XED_DLL_EXPORT xed_uint_t xed_operand_action_conditional_write (const xed_operand_action_enum_t rw)
XED_DLL_EXPORT xed_uint_t xed_operand_action_read (const xed_operand_action_enum_t rw)
XED_DLL_EXPORT xed_uint_t xed_operand_action_read_and_written (const xed_operand_action_enum_t rw)
XED_DLL_EXPORT xed_uint_t xed_operand_action_read_only (const xed_operand_action_enum_t rw)
XED_DLL_EXPORT xed_uint_t xed_operand_action_written (const xed_operand_action_enum_t rw)
XED_DLL_EXPORT xed_uint_t xed_operand_action_written_only (const xed_operand_action_enum_t rw)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_OPERAND_ACTION_H_
-
- - - - - -
-   - - -

- -

-Definition at line 37 of file xed-operand-action.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_operand_action_conditional_read const xed_operand_action_enum_t  rw  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_operand_action_conditional_write const xed_operand_action_enum_t  rw  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_operand_action_read const xed_operand_action_enum_t  rw  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_operand_action_read_and_written const xed_operand_action_enum_t  rw  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_operand_action_read_only const xed_operand_action_enum_t  rw  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_operand_action_written const xed_operand_action_enum_t  rw  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_operand_action_written_only const xed_operand_action_enum_t  rw  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-bitvec_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-operand-bitvec_8h-source.html deleted file mode 100644 index e265e1c..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-bitvec_8h-source.html +++ /dev/null @@ -1,161 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-bitvec.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_OPERAND_BITVEC_H_)
-00040 # define _XED_OPERAND_BITVEC_H_
-00041 #include "xed-types.h"
-00042 typedef union {
-00043    xed_uint32_t i[4];
-00044    struct {
-00045      xed_uint32_t  x_AGEN : 1; /* 00:00 */
-00046      xed_uint32_t  x_AMODE : 1; /* 00:01 */
-00047      xed_uint32_t  x_ASZ : 1; /* 00:02 */
-00048      xed_uint32_t  x_BASE0 : 1; /* 00:03 */
-00049      xed_uint32_t  x_BASE1 : 1; /* 00:04 */
-00050      xed_uint32_t  x_BRDISP_WIDTH : 1; /* 00:05 */
-00051      xed_uint32_t  x_BRDISP0 : 1; /* 00:06 */
-00052      xed_uint32_t  x_BRDISP1 : 1; /* 00:07 */
-00053      xed_uint32_t  x_DEFAULT_SEG : 1; /* 00:08 */
-00054      xed_uint32_t  x_DF64 : 1; /* 00:09 */
-00055      xed_uint32_t  x_DISP_WIDTH : 1; /* 00:10 */
-00056      xed_uint32_t  x_DISP0 : 1; /* 00:11 */
-00057      xed_uint32_t  x_DISP1 : 1; /* 00:12 */
-00058      xed_uint32_t  x_DISP2 : 1; /* 00:13 */
-00059      xed_uint32_t  x_DISP3 : 1; /* 00:14 */
-00060      xed_uint32_t  x_EASZ : 1; /* 00:15 */
-00061      xed_uint32_t  x_ENCODER_PREFERRED : 1; /* 00:16 */
-00062      xed_uint32_t  x_EOSZ : 1; /* 00:17 */
-00063      xed_uint32_t  x_ERROR : 1; /* 00:18 */
-00064      xed_uint32_t  x_HINT_TAKEN : 1; /* 00:19 */
-00065      xed_uint32_t  x_HINT_NOT_TAKEN : 1; /* 00:20 */
-00066      xed_uint32_t  x_ICLASS : 1; /* 00:21 */
-00067      xed_uint32_t  x_IMM_WIDTH : 1; /* 00:22 */
-00068      xed_uint32_t  x_IMM0 : 1; /* 00:23 */
-00069      xed_uint32_t  x_IMM0SIGNED : 1; /* 00:24 */
-00070      xed_uint32_t  x_IMM1 : 1; /* 00:25 */
-00071      xed_uint32_t  x_INDEX : 1; /* 00:26 */
-00072      xed_uint32_t  x_LOCK : 1; /* 00:27 */
-00073      xed_uint32_t  x_LOCKABLE : 1; /* 00:28 */
-00074      xed_uint32_t  x_MEM_WIDTH : 1; /* 00:29 */
-00075      xed_uint32_t  x_MEM0 : 1; /* 00:30 */
-00076      xed_uint32_t  x_MEM1 : 1; /* 00:31 */
-00077      xed_uint32_t  x_MOD : 1; /* 01:00 */
-00078      xed_uint32_t  x_MODE : 1; /* 01:01 */
-00079      xed_uint32_t  x_MODRM : 1; /* 01:02 */
-00080      xed_uint32_t  x_NOREX : 1; /* 01:03 */
-00081      xed_uint32_t  x_OSZ : 1; /* 01:04 */
-00082      xed_uint32_t  x_OUTREG : 1; /* 01:05 */
-00083      xed_uint32_t  x_PTR : 1; /* 01:06 */
-00084      xed_uint32_t  x_REFINING : 1; /* 01:07 */
-00085      xed_uint32_t  x_REG : 1; /* 01:08 */
-00086      xed_uint32_t  x_REG0 : 1; /* 01:09 */
-00087      xed_uint32_t  x_REG1 : 1; /* 01:10 */
-00088      xed_uint32_t  x_REG2 : 1; /* 01:11 */
-00089      xed_uint32_t  x_REG3 : 1; /* 01:12 */
-00090      xed_uint32_t  x_REG4 : 1; /* 01:13 */
-00091      xed_uint32_t  x_REG5 : 1; /* 01:14 */
-00092      xed_uint32_t  x_REG6 : 1; /* 01:15 */
-00093      xed_uint32_t  x_REG7 : 1; /* 01:16 */
-00094      xed_uint32_t  x_REG8 : 1; /* 01:17 */
-00095      xed_uint32_t  x_REG9 : 1; /* 01:18 */
-00096      xed_uint32_t  x_REG10 : 1; /* 01:19 */
-00097      xed_uint32_t  x_REG11 : 1; /* 01:20 */
-00098      xed_uint32_t  x_REG12 : 1; /* 01:21 */
-00099      xed_uint32_t  x_REG13 : 1; /* 01:22 */
-00100      xed_uint32_t  x_REG14 : 1; /* 01:23 */
-00101      xed_uint32_t  x_REG15 : 1; /* 01:24 */
-00102      xed_uint32_t  x_RELBR : 1; /* 01:25 */
-00103      xed_uint32_t  x_REP : 1; /* 01:26 */
-00104      xed_uint32_t  x_REP_ABLE : 1; /* 01:27 */
-00105      xed_uint32_t  x_REX : 1; /* 01:28 */
-00106      xed_uint32_t  x_REXB : 1; /* 01:29 */
-00107      xed_uint32_t  x_REXR : 1; /* 01:30 */
-00108      xed_uint32_t  x_REXW : 1; /* 01:31 */
-00109      xed_uint32_t  x_REXX : 1; /* 02:00 */
-00110      xed_uint32_t  x_RM : 1; /* 02:01 */
-00111      xed_uint32_t  x_SCALE : 1; /* 02:02 */
-00112      xed_uint32_t  x_SEG_OVD : 1; /* 02:03 */
-00113      xed_uint32_t  x_SEG0 : 1; /* 02:04 */
-00114      xed_uint32_t  x_SEG1 : 1; /* 02:05 */
-00115      xed_uint32_t  x_SIB : 1; /* 02:06 */
-00116      xed_uint32_t  x_SIBBASE : 1; /* 02:07 */
-00117      xed_uint32_t  x_SIBINDEX : 1; /* 02:08 */
-00118      xed_uint32_t  x_SIBSCALE : 1; /* 02:09 */
-00119      xed_uint32_t  x_SMODE : 1; /* 02:10 */
-00120      xed_uint32_t  x_UIMM00 : 1; /* 02:11 */
-00121      xed_uint32_t  x_UIMM1 : 1; /* 02:12 */
-00122      xed_uint32_t  x_UIMM01 : 1; /* 02:13 */
-00123      xed_uint32_t  x_UIMM02 : 1; /* 02:14 */
-00124      xed_uint32_t  x_UIMM03 : 1; /* 02:15 */
-00125      xed_uint32_t  x_USING_DEFAULT_SEGMENT0 : 1; /* 02:16 */
-00126      xed_uint32_t  x_USING_DEFAULT_SEGMENT1 : 1; /* 02:17 */
-00127    } s;
-00128 } xed_operand_bitvec_t;
-00129 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-bitvec_8h.html b/misc/decoder_test/XED2/doc/html/xed-operand-bitvec_8h.html deleted file mode 100644 index c18394b..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-bitvec_8h.html +++ /dev/null @@ -1,78 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-bitvec.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-operand-bitvec.h. -

-#include "xed-types.h"
- -

-Go to the source code of this file. - - - - - - - -

Data Structures

union  xed_operand_bitvec_t

Defines

#define _XED_OPERAND_BITVEC_H_
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_OPERAND_BITVEC_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-operand-bitvec.h.

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-ctype-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-operand-ctype-enum_8h-source.html deleted file mode 100644 index 9e7e34f..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-ctype-enum_8h-source.html +++ /dev/null @@ -1,91 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-ctype-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_OPERAND_CTYPE_ENUM_H_)
-00040 # define _XED_OPERAND_CTYPE_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_OPERAND_CTYPE_INVALID,
-00044   XED_OPERAND_CTYPE_XED_BITS_T,
-00045   XED_OPERAND_CTYPE_XED_ERROR_ENUM_T,
-00046   XED_OPERAND_CTYPE_XED_ICLASS_ENUM_T,
-00047   XED_OPERAND_CTYPE_XED_INT16_T,
-00048   XED_OPERAND_CTYPE_XED_REG_ENUM_T,
-00049   XED_OPERAND_CTYPE_XED_UINT16_T,
-00050   XED_OPERAND_CTYPE_XED_UINT8_T,
-00051   XED_OPERAND_CTYPE_LAST
-00052 } xed_operand_ctype_enum_t;
-00053 
-00054 XED_DLL_EXPORT xed_operand_ctype_enum_t
-00055 str2xed_operand_ctype_enum_t(const char* s);
-00056 XED_DLL_EXPORT const char*
-00057 xed_operand_ctype_enum_t2str(const xed_operand_ctype_enum_t p);
-00058 
-00059 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-ctype-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-operand-ctype-enum_8h.html deleted file mode 100644 index b721b9b..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-ctype-enum_8h.html +++ /dev/null @@ -1,207 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-ctype-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-operand-ctype-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_OPERAND_CTYPE_ENUM_H_

Enumerations

enum  xed_operand_ctype_enum_t {
-  XED_OPERAND_CTYPE_INVALID, -
-  XED_OPERAND_CTYPE_XED_BITS_T, -
-  XED_OPERAND_CTYPE_XED_ERROR_ENUM_T, -
-  XED_OPERAND_CTYPE_XED_ICLASS_ENUM_T, -
-  XED_OPERAND_CTYPE_XED_INT16_T, -
-  XED_OPERAND_CTYPE_XED_REG_ENUM_T, -
-  XED_OPERAND_CTYPE_XED_UINT16_T, -
-  XED_OPERAND_CTYPE_XED_UINT8_T, -
-  XED_OPERAND_CTYPE_LAST -
- }

Functions

XED_DLL_EXPORT xed_operand_ctype_enum_t str2xed_operand_ctype_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_operand_ctype_enum_t2str (const xed_operand_ctype_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_OPERAND_CTYPE_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-operand-ctype-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_operand_ctype_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - - - - - -
XED_OPERAND_CTYPE_INVALID  -
XED_OPERAND_CTYPE_XED_BITS_T  -
XED_OPERAND_CTYPE_XED_ERROR_ENUM_T  -
XED_OPERAND_CTYPE_XED_ICLASS_ENUM_T  -
XED_OPERAND_CTYPE_XED_INT16_T  -
XED_OPERAND_CTYPE_XED_REG_ENUM_T  -
XED_OPERAND_CTYPE_XED_UINT16_T  -
XED_OPERAND_CTYPE_XED_UINT8_T  -
XED_OPERAND_CTYPE_LAST  -
-
- -

-Definition at line 42 of file xed-operand-ctype-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_operand_ctype_enum_t str2xed_operand_ctype_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_operand_ctype_enum_t2str const xed_operand_ctype_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-ctype-map_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-operand-ctype-map_8h-source.html deleted file mode 100644 index 1ec5c36..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-ctype-map_8h-source.html +++ /dev/null @@ -1,76 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-ctype-map.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_OPERAND_CTYPE_MAP_H_)
-00040 # define _XED_OPERAND_CTYPE_MAP_H_
-00041 #include "xed-internal-header.h"
-00042 xed_operand_ctype_enum_t xed_operand_get_ctype(xed_operand_enum_t opname);
-00043 unsigned int xed_operand_get_width(xed_operand_enum_t opname);
-00044 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-ctype-map_8h.html b/misc/decoder_test/XED2/doc/html/xed-operand-ctype-map_8h.html deleted file mode 100644 index 7a0b8c0..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-ctype-map_8h.html +++ /dev/null @@ -1,137 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-ctype-map.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-operand-ctype-map.h. -

-#include "xed-internal-header.h"
- -

-Go to the source code of this file. - - - - - - - - - -

Defines

#define _XED_OPERAND_CTYPE_MAP_H_

Functions

xed_operand_ctype_enum_t xed_operand_get_ctype (xed_operand_enum_t opname)
unsigned int xed_operand_get_width (xed_operand_enum_t opname)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_OPERAND_CTYPE_MAP_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-operand-ctype-map.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
xed_operand_ctype_enum_t xed_operand_get_ctype xed_operand_enum_t  opname  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
unsigned int xed_operand_get_width xed_operand_enum_t  opname  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-operand-enum_8h-source.html deleted file mode 100644 index 0b1c94f..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-enum_8h-source.html +++ /dev/null @@ -1,166 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_OPERAND_ENUM_H_)
-00040 # define _XED_OPERAND_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_OPERAND_INVALID,
-00044   XED_OPERAND_AGEN,
-00045   XED_OPERAND_AMODE,
-00046   XED_OPERAND_ASZ,
-00047   XED_OPERAND_BASE0,
-00048   XED_OPERAND_BASE1,
-00049   XED_OPERAND_BRDISP_WIDTH,
-00050   XED_OPERAND_BRDISP0,
-00051   XED_OPERAND_BRDISP1,
-00052   XED_OPERAND_DEFAULT_SEG,
-00053   XED_OPERAND_DF64,
-00054   XED_OPERAND_DISP_WIDTH,
-00055   XED_OPERAND_DISP0,
-00056   XED_OPERAND_DISP1,
-00057   XED_OPERAND_DISP2,
-00058   XED_OPERAND_DISP3,
-00059   XED_OPERAND_EASZ,
-00060   XED_OPERAND_ENCODER_PREFERRED,
-00061   XED_OPERAND_EOSZ,
-00062   XED_OPERAND_ERROR,
-00063   XED_OPERAND_HINT_TAKEN,
-00064   XED_OPERAND_HINT_NOT_TAKEN,
-00065   XED_OPERAND_ICLASS,
-00066   XED_OPERAND_IMM_WIDTH,
-00067   XED_OPERAND_IMM0,
-00068   XED_OPERAND_IMM0SIGNED,
-00069   XED_OPERAND_IMM1,
-00070   XED_OPERAND_INDEX,
-00071   XED_OPERAND_LOCK,
-00072   XED_OPERAND_LOCKABLE,
-00073   XED_OPERAND_MEM_WIDTH,
-00074   XED_OPERAND_MEM0,
-00075   XED_OPERAND_MEM1,
-00076   XED_OPERAND_MOD,
-00077   XED_OPERAND_MODE,
-00078   XED_OPERAND_MODRM,
-00079   XED_OPERAND_NOREX,
-00080   XED_OPERAND_OSZ,
-00081   XED_OPERAND_OUTREG,
-00082   XED_OPERAND_PTR,
-00083   XED_OPERAND_REFINING,
-00084   XED_OPERAND_REG,
-00085   XED_OPERAND_REG0,
-00086   XED_OPERAND_REG1,
-00087   XED_OPERAND_REG2,
-00088   XED_OPERAND_REG3,
-00089   XED_OPERAND_REG4,
-00090   XED_OPERAND_REG5,
-00091   XED_OPERAND_REG6,
-00092   XED_OPERAND_REG7,
-00093   XED_OPERAND_REG8,
-00094   XED_OPERAND_REG9,
-00095   XED_OPERAND_REG10,
-00096   XED_OPERAND_REG11,
-00097   XED_OPERAND_REG12,
-00098   XED_OPERAND_REG13,
-00099   XED_OPERAND_REG14,
-00100   XED_OPERAND_REG15,
-00101   XED_OPERAND_RELBR,
-00102   XED_OPERAND_REP,
-00103   XED_OPERAND_REP_ABLE,
-00104   XED_OPERAND_REX,
-00105   XED_OPERAND_REXB,
-00106   XED_OPERAND_REXR,
-00107   XED_OPERAND_REXW,
-00108   XED_OPERAND_REXX,
-00109   XED_OPERAND_RM,
-00110   XED_OPERAND_SCALE,
-00111   XED_OPERAND_SEG_OVD,
-00112   XED_OPERAND_SEG0,
-00113   XED_OPERAND_SEG1,
-00114   XED_OPERAND_SIB,
-00115   XED_OPERAND_SIBBASE,
-00116   XED_OPERAND_SIBINDEX,
-00117   XED_OPERAND_SIBSCALE,
-00118   XED_OPERAND_SMODE,
-00119   XED_OPERAND_UIMM00,
-00120   XED_OPERAND_UIMM1,
-00121   XED_OPERAND_UIMM01,
-00122   XED_OPERAND_UIMM02,
-00123   XED_OPERAND_UIMM03,
-00124   XED_OPERAND_USING_DEFAULT_SEGMENT0,
-00125   XED_OPERAND_USING_DEFAULT_SEGMENT1,
-00126   XED_OPERAND_LAST
-00127 } xed_operand_enum_t;
-00128 
-00129 XED_DLL_EXPORT xed_operand_enum_t
-00130 str2xed_operand_enum_t(const char* s);
-00131 XED_DLL_EXPORT const char*
-00132 xed_operand_enum_t2str(const xed_operand_enum_t p);
-00133 
-00134 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-operand-enum_8h.html deleted file mode 100644 index 830ef03..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-enum_8h.html +++ /dev/null @@ -1,507 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-operand-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_OPERAND_ENUM_H_

Enumerations

enum  xed_operand_enum_t {
-  XED_OPERAND_INVALID, -
-  XED_OPERAND_AGEN, -
-  XED_OPERAND_AMODE, -
-  XED_OPERAND_ASZ, -
-  XED_OPERAND_BASE0, -
-  XED_OPERAND_BASE1, -
-  XED_OPERAND_BRDISP_WIDTH, -
-  XED_OPERAND_BRDISP0, -
-  XED_OPERAND_BRDISP1, -
-  XED_OPERAND_DEFAULT_SEG, -
-  XED_OPERAND_DF64, -
-  XED_OPERAND_DISP_WIDTH, -
-  XED_OPERAND_DISP0, -
-  XED_OPERAND_DISP1, -
-  XED_OPERAND_DISP2, -
-  XED_OPERAND_DISP3, -
-  XED_OPERAND_EASZ, -
-  XED_OPERAND_ENCODER_PREFERRED, -
-  XED_OPERAND_EOSZ, -
-  XED_OPERAND_ERROR, -
-  XED_OPERAND_HINT_TAKEN, -
-  XED_OPERAND_HINT_NOT_TAKEN, -
-  XED_OPERAND_ICLASS, -
-  XED_OPERAND_IMM_WIDTH, -
-  XED_OPERAND_IMM0, -
-  XED_OPERAND_IMM0SIGNED, -
-  XED_OPERAND_IMM1, -
-  XED_OPERAND_INDEX, -
-  XED_OPERAND_LOCK, -
-  XED_OPERAND_LOCKABLE, -
-  XED_OPERAND_MEM_WIDTH, -
-  XED_OPERAND_MEM0, -
-  XED_OPERAND_MEM1, -
-  XED_OPERAND_MOD, -
-  XED_OPERAND_MODE, -
-  XED_OPERAND_MODRM, -
-  XED_OPERAND_NOREX, -
-  XED_OPERAND_OSZ, -
-  XED_OPERAND_OUTREG, -
-  XED_OPERAND_PTR, -
-  XED_OPERAND_REFINING, -
-  XED_OPERAND_REG, -
-  XED_OPERAND_REG0, -
-  XED_OPERAND_REG1, -
-  XED_OPERAND_REG2, -
-  XED_OPERAND_REG3, -
-  XED_OPERAND_REG4, -
-  XED_OPERAND_REG5, -
-  XED_OPERAND_REG6, -
-  XED_OPERAND_REG7, -
-  XED_OPERAND_REG8, -
-  XED_OPERAND_REG9, -
-  XED_OPERAND_REG10, -
-  XED_OPERAND_REG11, -
-  XED_OPERAND_REG12, -
-  XED_OPERAND_REG13, -
-  XED_OPERAND_REG14, -
-  XED_OPERAND_REG15, -
-  XED_OPERAND_RELBR, -
-  XED_OPERAND_REP, -
-  XED_OPERAND_REP_ABLE, -
-  XED_OPERAND_REX, -
-  XED_OPERAND_REXB, -
-  XED_OPERAND_REXR, -
-  XED_OPERAND_REXW, -
-  XED_OPERAND_REXX, -
-  XED_OPERAND_RM, -
-  XED_OPERAND_SCALE, -
-  XED_OPERAND_SEG_OVD, -
-  XED_OPERAND_SEG0, -
-  XED_OPERAND_SEG1, -
-  XED_OPERAND_SIB, -
-  XED_OPERAND_SIBBASE, -
-  XED_OPERAND_SIBINDEX, -
-  XED_OPERAND_SIBSCALE, -
-  XED_OPERAND_SMODE, -
-  XED_OPERAND_UIMM00, -
-  XED_OPERAND_UIMM1, -
-  XED_OPERAND_UIMM01, -
-  XED_OPERAND_UIMM02, -
-  XED_OPERAND_UIMM03, -
-  XED_OPERAND_USING_DEFAULT_SEGMENT0, -
-  XED_OPERAND_USING_DEFAULT_SEGMENT1, -
-  XED_OPERAND_LAST -
- }

Functions

XED_DLL_EXPORT xed_operand_enum_t str2xed_operand_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_operand_enum_t2str (const xed_operand_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_OPERAND_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-operand-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_operand_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_OPERAND_INVALID  -
XED_OPERAND_AGEN  -
XED_OPERAND_AMODE  -
XED_OPERAND_ASZ  -
XED_OPERAND_BASE0  -
XED_OPERAND_BASE1  -
XED_OPERAND_BRDISP_WIDTH  -
XED_OPERAND_BRDISP0  -
XED_OPERAND_BRDISP1  -
XED_OPERAND_DEFAULT_SEG  -
XED_OPERAND_DF64  -
XED_OPERAND_DISP_WIDTH  -
XED_OPERAND_DISP0  -
XED_OPERAND_DISP1  -
XED_OPERAND_DISP2  -
XED_OPERAND_DISP3  -
XED_OPERAND_EASZ  -
XED_OPERAND_ENCODER_PREFERRED  -
XED_OPERAND_EOSZ  -
XED_OPERAND_ERROR  -
XED_OPERAND_HINT_TAKEN  -
XED_OPERAND_HINT_NOT_TAKEN  -
XED_OPERAND_ICLASS  -
XED_OPERAND_IMM_WIDTH  -
XED_OPERAND_IMM0  -
XED_OPERAND_IMM0SIGNED  -
XED_OPERAND_IMM1  -
XED_OPERAND_INDEX  -
XED_OPERAND_LOCK  -
XED_OPERAND_LOCKABLE  -
XED_OPERAND_MEM_WIDTH  -
XED_OPERAND_MEM0  -
XED_OPERAND_MEM1  -
XED_OPERAND_MOD  -
XED_OPERAND_MODE  -
XED_OPERAND_MODRM  -
XED_OPERAND_NOREX  -
XED_OPERAND_OSZ  -
XED_OPERAND_OUTREG  -
XED_OPERAND_PTR  -
XED_OPERAND_REFINING  -
XED_OPERAND_REG  -
XED_OPERAND_REG0  -
XED_OPERAND_REG1  -
XED_OPERAND_REG2  -
XED_OPERAND_REG3  -
XED_OPERAND_REG4  -
XED_OPERAND_REG5  -
XED_OPERAND_REG6  -
XED_OPERAND_REG7  -
XED_OPERAND_REG8  -
XED_OPERAND_REG9  -
XED_OPERAND_REG10  -
XED_OPERAND_REG11  -
XED_OPERAND_REG12  -
XED_OPERAND_REG13  -
XED_OPERAND_REG14  -
XED_OPERAND_REG15  -
XED_OPERAND_RELBR  -
XED_OPERAND_REP  -
XED_OPERAND_REP_ABLE  -
XED_OPERAND_REX  -
XED_OPERAND_REXB  -
XED_OPERAND_REXR  -
XED_OPERAND_REXW  -
XED_OPERAND_REXX  -
XED_OPERAND_RM  -
XED_OPERAND_SCALE  -
XED_OPERAND_SEG_OVD  -
XED_OPERAND_SEG0  -
XED_OPERAND_SEG1  -
XED_OPERAND_SIB  -
XED_OPERAND_SIBBASE  -
XED_OPERAND_SIBINDEX  -
XED_OPERAND_SIBSCALE  -
XED_OPERAND_SMODE  -
XED_OPERAND_UIMM00  -
XED_OPERAND_UIMM1  -
XED_OPERAND_UIMM01  -
XED_OPERAND_UIMM02  -
XED_OPERAND_UIMM03  -
XED_OPERAND_USING_DEFAULT_SEGMENT0  -
XED_OPERAND_USING_DEFAULT_SEGMENT1  -
XED_OPERAND_LAST  -
-
- -

-Definition at line 42 of file xed-operand-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_operand_enum_t str2xed_operand_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_operand_enum_t2str const xed_operand_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-storage_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-operand-storage_8h-source.html deleted file mode 100644 index 1a87c9a..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-storage_8h-source.html +++ /dev/null @@ -1,82 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-storage.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 
-00037 
-00038 #ifndef _XED_OPERAND_STORAGE_H_
-00039 # define _XED_OPERAND_STORAGE_H_
-00040 
-00041 #include "xed-common-hdrs.h"
-00042 #include "xed-types.h"
-00043 #include "xed-portability.h"
-00044 
-00045 typedef  xed_uint16_t xed_operand_values_t;
-00046   
-00048 #endif
-00049 //Local Variables:
-00050 //pref: "../../xed-operand-storage.c"
-00051 //End:
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-storage_8h.html b/misc/decoder_test/XED2/doc/html/xed-operand-storage_8h.html deleted file mode 100644 index db40102..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-storage_8h.html +++ /dev/null @@ -1,77 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-storage.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-operand-storage.h. -

-#include "xed-common-hdrs.h"
-#include "xed-types.h"
-#include "xed-portability.h"
- -

-Go to the source code of this file. - - - - -

Typedefs

typedef xed_uint16_t xed_operand_values_t
-


Typedef Documentation

-

- - - - -
- - - - -
typedef xed_uint16_t xed_operand_values_t
-
- - - - - -
-   - - -

- -

-Definition at line 45 of file xed-operand-storage.h.

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-type-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-operand-type-enum_8h-source.html deleted file mode 100644 index 7801442..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-type-enum_8h-source.html +++ /dev/null @@ -1,89 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-type-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_OPERAND_TYPE_ENUM_H_)
-00040 # define _XED_OPERAND_TYPE_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_OPERAND_TYPE_INVALID,
-00044   XED_OPERAND_TYPE_ERROR,
-00045   XED_OPERAND_TYPE_IMM,
-00046   XED_OPERAND_TYPE_IMM_CONST,
-00047   XED_OPERAND_TYPE_NT_LOOKUP_FN,
-00048   XED_OPERAND_TYPE_REG,
-00049   XED_OPERAND_TYPE_LAST
-00050 } xed_operand_type_enum_t;
-00051 
-00052 XED_DLL_EXPORT xed_operand_type_enum_t
-00053 str2xed_operand_type_enum_t(const char* s);
-00054 XED_DLL_EXPORT const char*
-00055 xed_operand_type_enum_t2str(const xed_operand_type_enum_t p);
-00056 
-00057 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-type-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-operand-type-enum_8h.html deleted file mode 100644 index 894c011..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-type-enum_8h.html +++ /dev/null @@ -1,199 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-type-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-operand-type-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_OPERAND_TYPE_ENUM_H_

Enumerations

enum  xed_operand_type_enum_t {
-  XED_OPERAND_TYPE_INVALID, -
-  XED_OPERAND_TYPE_ERROR, -
-  XED_OPERAND_TYPE_IMM, -
-  XED_OPERAND_TYPE_IMM_CONST, -
-  XED_OPERAND_TYPE_NT_LOOKUP_FN, -
-  XED_OPERAND_TYPE_REG, -
-  XED_OPERAND_TYPE_LAST -
- }

Functions

XED_DLL_EXPORT xed_operand_type_enum_t str2xed_operand_type_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_operand_type_enum_t2str (const xed_operand_type_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_OPERAND_TYPE_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-operand-type-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_operand_type_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - - - -
XED_OPERAND_TYPE_INVALID  -
XED_OPERAND_TYPE_ERROR  -
XED_OPERAND_TYPE_IMM  -
XED_OPERAND_TYPE_IMM_CONST  -
XED_OPERAND_TYPE_NT_LOOKUP_FN  -
XED_OPERAND_TYPE_REG  -
XED_OPERAND_TYPE_LAST  -
-
- -

-Definition at line 42 of file xed-operand-type-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_operand_type_enum_t str2xed_operand_type_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_operand_type_enum_t2str const xed_operand_type_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-values-interface_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-operand-values-interface_8h-source.html deleted file mode 100644 index bd1a425..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-values-interface_8h-source.html +++ /dev/null @@ -1,335 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-values-interface.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 #if !defined(_XED_OPERAND_VALUES_INTERFACE_H_)
-00037 # define _XED_OPERAND_VALUES_INTERFACE_H_
-00038 
-00039 #include "xed-common-hdrs.h"
-00040 #include "xed-common-defs.h"
-00041 #include "xed-portability.h"
-00042 #include "xed-util.h"
-00043 #include "xed-types.h"
-00044 #include "xed-state.h" // a generated file
-00045 #include "xed-operand-enum.h" // a generated file
-00046 #include "xed-operand-storage.h" 
-00047 #include "xed-reg-enum.h"  // generated
-00048 #include "xed-iclass-enum.h"  // generated
-00050 
-00051 
-00052 
-00053 XED_DLL_EXPORT void xed_operand_values_init(xed_operand_values_t* p);
-00054 
-00057 XED_DLL_EXPORT void xed_operand_values_init_set_mode(xed_operand_values_t* p,
-00058                                                      const xed_state_t* dstate);
-00062 XED_DLL_EXPORT void xed_operand_values_init_keep_mode( xed_operand_values_t* dst,
-00063                                                        const xed_operand_values_t* src );
-00065 
-00066 // Returns the raw operand fields. Do not use this. 
-00067 XED_DLL_EXPORT xed_uint32_t 
-00068 xed_operand_values_get_operand_decider(const xed_operand_values_t* p,
-00069                                        xed_operand_enum_t operand_decider_index) ;
-00070 
-00071     
-00074 
-00075 
-00076 
-00077 XED_DLL_EXPORT void xed_operand_values_dump(const xed_operand_values_t* ov, char* buf,  int buflen);
-00080 XED_DLL_EXPORT void xed_operand_values_print_short(const xed_operand_values_t* ov, char* buf,  int buflen);
-00082     
-00084 
-00085 
-00086 
-00087 
-00088 
-00089 XED_DLL_EXPORT xed_bool_t
-00090 xed_operand_values_has_real_rep(const xed_operand_values_t* p);
-00093 XED_DLL_EXPORT xed_bool_t
-00094 xed_operand_values_has_rep_prefix(const xed_operand_values_t* p);
-00097 XED_DLL_EXPORT xed_bool_t
-00098 xed_operand_values_has_repne_prefix(const xed_operand_values_t* p);
-00100 
-00105 XED_DLL_EXPORT xed_bool_t
-00106 xed_operand_values_get_atomic(const xed_operand_values_t* p);
-00107 
-00110 XED_DLL_EXPORT xed_bool_t
-00111 xed_operand_values_has_lock_prefix(const xed_operand_values_t* p);
-00112 
-00118 XED_DLL_EXPORT xed_bool_t
-00119 xed_operand_values_using_default_segment(const xed_operand_values_t* p, unsigned int i);
-00120 
-00121 
-00122 
-00127 XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_effective_operand_width(const xed_operand_values_t* p);
-00130 XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_effective_address_width(const xed_operand_values_t* p);
-00131 
-00132 
-00135 XED_DLL_EXPORT xed_bool_t
-00136 xed_operand_values_has_memory_displacement(const xed_operand_values_t* p);
-00139 XED_DLL_EXPORT xed_bool_t
-00140 xed_operand_values_has_branch_displacement(const xed_operand_values_t* p);
-00143 XED_DLL_EXPORT xed_bool_t
-00144 xed_operand_values_has_displacement(const xed_operand_values_t* p);
-00145 
-00146 
-00149 XED_DLL_EXPORT xed_bool_t
-00150 xed_operand_values_get_displacement_for_memop(const xed_operand_values_t* p);
-00151 
-00154 XED_DLL_EXPORT xed_bool_t
-00155 xed_operand_values_has_immediate(const xed_operand_values_t* p);  
-00156 
-00157 
-00162 XED_DLL_EXPORT xed_bool_t
-00163 xed_operand_values_has_disp(const xed_operand_values_t* p);  
-00164 
-00166 XED_DLL_EXPORT xed_bool_t 
-00167 xed_operand_values_has_address_size_prefix(const xed_operand_values_t* p);
-00169 XED_DLL_EXPORT xed_bool_t 
-00170 xed_operand_values_has_operand_size_prefix(const xed_operand_values_t* p);
-00171 
-00172 #if 0
-00173 XED_DLL_EXPORT xed_bool_t 
-00174 xed_operand_values_has_refining_66_prefix(const xed_operand_values_t* p);
-00175 XED_DLL_EXPORT xed_bool_t 
-00176 xed_operand_values_has_refining_f2_prefix(const xed_operand_values_t* p);
-00177 XED_DLL_EXPORT xed_bool_t 
-00178 xed_operand_values_has_refining_f3_prefix(const xed_operand_values_t* p);
-00179 #endif
-00180 
-00182 XED_DLL_EXPORT xed_bool_t 
-00183 xed_operand_values_has_segment_prefix(const xed_operand_values_t* p);
-00184 
-00187 XED_DLL_EXPORT xed_reg_enum_t
-00188 xed_operand_values_segment_prefix(const xed_operand_values_t* p);
-00189 
-00191 XED_DLL_EXPORT xed_bool_t
-00192 xed_operand_values_is_prefetch(const xed_operand_values_t* p);
-00193 
-00195 XED_DLL_EXPORT xed_bool_t xed_operand_values_get_long_mode(const xed_operand_values_t* p);
-00196 
-00198 
-00199 
-00200 XED_DLL_EXPORT xed_bool_t
-00201 xed_operand_values_accesses_memory(const xed_operand_values_t* p);
-00202 
-00204 XED_DLL_EXPORT unsigned int 
-00205 xed_operand_values_number_of_memory_operands(const xed_operand_values_t* p);
-00206 
-00208 XED_DLL_EXPORT unsigned int
-00209 xed_operand_values_get_memory_operand_length(const xed_operand_values_t* p,
-00210                                              unsigned int memop_idx);
-00211 
-00213 XED_DLL_EXPORT xed_reg_enum_t
-00214 xed_operand_values_get_base_reg(const xed_operand_values_t* p,unsigned int memop_idx);
-00215 
-00217 XED_DLL_EXPORT xed_reg_enum_t
-00218 xed_operand_values_get_index_reg(const xed_operand_values_t* p,unsigned int memop_idx);
-00219 
-00221 XED_DLL_EXPORT xed_reg_enum_t
-00222 xed_operand_values_get_seg_reg(const xed_operand_values_t* p,unsigned int memop_idx);
-00223 
-00225 XED_DLL_EXPORT unsigned int
-00226 xed_operand_values_get_scale(const xed_operand_values_t* p);
-00227 
-00231 XED_DLL_EXPORT xed_bool_t 
-00232 xed_operand_values_memop_without_modrm(const xed_operand_values_t* p);
-00235 XED_DLL_EXPORT xed_bool_t
-00236 xed_operand_values_has_modrm_byte(const xed_operand_values_t* p);
-00237 
-00240 XED_DLL_EXPORT xed_bool_t
-00241 xed_operand_values_has_sib_byte(const xed_operand_values_t* p);
-00243 
-00245 XED_DLL_EXPORT xed_bool_t
-00246 xed_operand_values_branch_not_taken_hint(const xed_operand_values_t* p);
-00248 XED_DLL_EXPORT xed_bool_t
-00249 xed_operand_values_branch_taken_hint(const xed_operand_values_t* p);
-00250 
-00252 XED_DLL_EXPORT xed_bool_t
-00253 xed_operand_values_is_nop(const xed_operand_values_t* p);
-00254 
-00255 
-00257 
-00258 
-00259 XED_DLL_EXPORT xed_int64_t
-00260 xed_operand_values_get_immediate_int64(const xed_operand_values_t* p);
-00261 
-00263 XED_DLL_EXPORT xed_uint64_t
-00264 xed_operand_values_get_immediate_uint64(const xed_operand_values_t* p);
-00265 
-00268 XED_DLL_EXPORT xed_uint_t xed_operand_values_get_immediate_is_signed(const xed_operand_values_t* p);
-00269 
-00270     
-00272 XED_DLL_EXPORT xed_uint8_t 
-00273 xed_operand_values_get_immediate_byte(const xed_operand_values_t* p,unsigned int i);
-00274 
-00276 XED_DLL_EXPORT xed_uint8_t 
-00277 xed_operand_values_get_second_immediate(const xed_operand_values_t* p);
-00279 
-00281 
-00282 
-00283 
-00284 XED_DLL_EXPORT xed_uint32_t
-00285 xed_operand_values_get_memory_displacement_length(const xed_operand_values_t* p);
-00288 XED_DLL_EXPORT xed_uint32_t
-00289 xed_operand_values_get_memory_displacement_length_bits(const xed_operand_values_t* p);
-00290 
-00292 XED_DLL_EXPORT xed_int64_t
-00293 xed_operand_values_get_memory_displacement_int64(const xed_operand_values_t* p);
-00294 
-00296 XED_DLL_EXPORT xed_uint8_t 
-00297 xed_operand_values_get_memory_displacement_byte(const xed_operand_values_t* p,unsigned int i);
-00299 
-00301 
-00302 
-00303 
-00304 XED_DLL_EXPORT xed_uint32_t
-00305 xed_operand_values_get_branch_displacement_length(const xed_operand_values_t* p);
-00308 XED_DLL_EXPORT xed_uint32_t
-00309 xed_operand_values_get_branch_displacement_length_bits(const xed_operand_values_t* p);
-00310 
-00312 XED_DLL_EXPORT xed_int32_t
-00313 xed_operand_values_get_branch_displacement_int32(const xed_operand_values_t* p);
-00314 
-00316 XED_DLL_EXPORT xed_uint8_t 
-00317 xed_operand_values_get_branch_displacement_byte(const xed_operand_values_t* p,unsigned int i);
-00319 
-00320 
-00322 XED_DLL_EXPORT xed_iclass_enum_t
-00323 xed_operand_values_get_iclass(const xed_operand_values_t* p);
-00324     
-00326 // ENCODE API
-00329 
-00330 
-00331 XED_DLL_EXPORT void xed_operand_values_zero_immediate(xed_operand_values_t* p);
-00333 XED_DLL_EXPORT void xed_operand_values_zero_branch_displacement(xed_operand_values_t* p);
-00335 XED_DLL_EXPORT void xed_operand_values_zero_memory_displacement(xed_operand_values_t* p);
-00336 
-00338 XED_DLL_EXPORT void xed_operand_values_set_lock(xed_operand_values_t* p);
-00340 XED_DLL_EXPORT void xed_operand_values_zero_segment_override(xed_operand_values_t* p);
-00341 
-00342 
-00344 XED_DLL_EXPORT void
-00345 xed_operand_values_set_iclass(xed_operand_values_t* p,xed_iclass_enum_t iclass);
-00346 
-00348 XED_DLL_EXPORT void
-00349 xed_operand_values_set_effective_operand_width(xed_operand_values_t* p,unsigned int width);
-00350 
-00352 XED_DLL_EXPORT void
-00353 xed_operand_values_set_memory_operand_length(xed_operand_values_t* p,unsigned int memop_length);
-00354 
-00355    
-00358 XED_DLL_EXPORT void
-00359 xed_operand_values_set_memory_displacement(xed_operand_values_t* p,xed_int64_t x, unsigned int len);
-00362 XED_DLL_EXPORT void
-00363 xed_operand_values_set_memory_displacement_bits(xed_operand_values_t* p,xed_int64_t x, unsigned int len_bits);
-00364 
-00367 XED_DLL_EXPORT void xed_operand_values_set_relbr(xed_operand_values_t* p);
-00368 
-00371 XED_DLL_EXPORT void
-00372 xed_operand_values_set_branch_displacement(xed_operand_values_t* p,xed_int32_t x, unsigned int len);
-00375 XED_DLL_EXPORT void
-00376 xed_operand_values_set_branch_displacement_bits(xed_operand_values_t* p,xed_int32_t x, unsigned int len_bits);
-00377 
-00380 XED_DLL_EXPORT void
-00381 xed_operand_values_set_immediate_signed(xed_operand_values_t* p,xed_int32_t x, unsigned int bytes); 
-00384 XED_DLL_EXPORT void
-00385 xed_operand_values_set_immediate_signed_bits(xed_operand_values_t* p,xed_int32_t x, unsigned int bits); 
-00386 
-00387 
-00390 XED_DLL_EXPORT void
-00391 xed_operand_values_set_immediate_unsigned(xed_operand_values_t* p,xed_uint64_t x, unsigned int bytes);
-00394 XED_DLL_EXPORT void
-00395 xed_operand_values_set_immediate_unsigned_bits(xed_operand_values_t* p,xed_uint64_t x, unsigned int bits);
-00396 
-00397 
-00398 
-00400 XED_DLL_EXPORT void xed_operand_values_set_base_reg(xed_operand_values_t* p,
-00401                                                     unsigned int memop_idx,
-00402                                                     xed_reg_enum_t new_base);
-00403 
-00405 XED_DLL_EXPORT void xed_operand_values_set_seg_reg(xed_operand_values_t* p,
-00406                                                    unsigned int memop_idx,
-00407                                                    xed_reg_enum_t new_seg);
-00408 
-00410 XED_DLL_EXPORT void xed_operand_values_set_index_reg(xed_operand_values_t* p,
-00411                                                      unsigned int memop_idx,
-00412                                                      xed_reg_enum_t new_index);
-00413 
-00415 XED_DLL_EXPORT void xed_operand_values_set_scale(xed_operand_values_t* p, 
-00416                                                  xed_uint_t memop_idx,
-00417                                                  xed_uint_t new_scale);
-00418 
-00419 
-00423 XED_DLL_EXPORT void
-00424 xed_operand_values_set_operand_reg(xed_operand_values_t* p,
-00425                                    xed_operand_enum_t operand_name,
-00426                                    xed_reg_enum_t reg_name);
-00427 
-00429 #endif
-00430 
-00431 //Local Variables:
-00432 //pref: "../../xed-operand-values-interface.c"
-00433 //End:
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-values-interface_8h.html b/misc/decoder_test/XED2/doc/html/xed-operand-values-interface_8h.html deleted file mode 100644 index d62ac3e..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-values-interface_8h.html +++ /dev/null @@ -1,319 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-values-interface.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-operand-values-interface.h. -

-#include "xed-common-hdrs.h"
-#include "xed-common-defs.h"
-#include "xed-portability.h"
-#include "xed-util.h"
-#include "xed-types.h"
-#include "xed-state.h"
-#include "xed-operand-enum.h"
-#include "xed-operand-storage.h"
-#include "xed-reg-enum.h"
-#include "xed-iclass-enum.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Memory Addressing

XED_DLL_EXPORT xed_bool_t xed_operand_values_accesses_memory (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_reg_enum_t xed_operand_values_get_base_reg (const xed_operand_values_t *p, unsigned int memop_idx)
XED_DLL_EXPORT xed_reg_enum_t xed_operand_values_get_index_reg (const xed_operand_values_t *p, unsigned int memop_idx)
XED_DLL_EXPORT unsigned int xed_operand_values_get_memory_operand_length (const xed_operand_values_t *p, unsigned int memop_idx)
XED_DLL_EXPORT unsigned int xed_operand_values_get_scale (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_reg_enum_t xed_operand_values_get_seg_reg (const xed_operand_values_t *p, unsigned int memop_idx)
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_modrm_byte (const xed_operand_values_t *p)
 Returns true if the instruction has a MODRM byte.
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_sib_byte (const xed_operand_values_t *p)
 Returns true if the instruction has a SIB byte.
XED_DLL_EXPORT xed_bool_t xed_operand_values_memop_without_modrm (const xed_operand_values_t *p)
 Returns true if the instruction access memory but without using a MODRM byte limiting its addressing modes.
XED_DLL_EXPORT unsigned int xed_operand_values_number_of_memory_operands (const xed_operand_values_t *p)

String output

XED_DLL_EXPORT void xed_operand_values_dump (const xed_operand_values_t *ov, char *buf, int buflen)
 Dump all the information about the operands to buf.
XED_DLL_EXPORT void xed_operand_values_print_short (const xed_operand_values_t *ov, char *buf, int buflen)
 More tersely dump all the information about the operands to buf.

Branch Displacements

XED_DLL_EXPORT xed_uint8_t xed_operand_values_get_branch_displacement_byte (const xed_operand_values_t *p, unsigned int i)
XED_DLL_EXPORT xed_int32_t xed_operand_values_get_branch_displacement_int32 (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_branch_displacement_length (const xed_operand_values_t *p)
 Return the branch displacement width in bytes.
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_branch_displacement_length_bits (const xed_operand_values_t *p)
 Return the branch displacement width in bits.

Immediates

XED_DLL_EXPORT xed_uint8_t xed_operand_values_get_immediate_byte (const xed_operand_values_t *p, unsigned int i)
XED_DLL_EXPORT xed_int64_t xed_operand_values_get_immediate_int64 (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_uint_t xed_operand_values_get_immediate_is_signed (const xed_operand_values_t *p)
 Return true if the first immediate (IMM0) is signed.
XED_DLL_EXPORT xed_uint64_t xed_operand_values_get_immediate_uint64 (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_uint8_t xed_operand_values_get_second_immediate (const xed_operand_values_t *p)

Memory Displacements

XED_DLL_EXPORT xed_uint8_t xed_operand_values_get_memory_displacement_byte (const xed_operand_values_t *p, unsigned int i)
XED_DLL_EXPORT xed_int64_t xed_operand_values_get_memory_displacement_int64 (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_memory_displacement_length (const xed_operand_values_t *p)
 Return the memory displacement width in BYTES.
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_memory_displacement_length_bits (const xed_operand_values_t *p)
 Return the memory displacement width in BITS.

REP/REPNE Prefixes

XED_DLL_EXPORT xed_bool_t xed_operand_values_has_real_rep (const xed_operand_values_t *p)
 True if the instruction has a real REP prefix.
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_rep_prefix (const xed_operand_values_t *p)
 True if the instruction as a real F3 REP prefix.
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_repne_prefix (const xed_operand_values_t *p)
 True if the instruction as a real F2 REP prefix.

Initialization

XED_DLL_EXPORT void xed_operand_values_init (xed_operand_values_t *p)
 Initializes operand structure.
XED_DLL_EXPORT void xed_operand_values_init_keep_mode (xed_operand_values_t *dst, const xed_operand_values_t *src)
 Initializes dst operand structure but preserves the existing MODE/SMODE/AMODE values from the src operand structure.
XED_DLL_EXPORT void xed_operand_values_init_set_mode (xed_operand_values_t *p, const xed_state_t *dstate)
 Initializes operand structure and sets state values.

Encoding

XED_DLL_EXPORT void xed_operand_values_set_base_reg (xed_operand_values_t *p, unsigned int memop_idx, xed_reg_enum_t new_base)
XED_DLL_EXPORT void xed_operand_values_set_branch_displacement (xed_operand_values_t *p, xed_int32_t x, unsigned int len)
 Set the branch displacement using a BYTES length.
XED_DLL_EXPORT void xed_operand_values_set_branch_displacement_bits (xed_operand_values_t *p, xed_int32_t x, unsigned int len_bits)
 Set the branch displacement using a BITS length.
XED_DLL_EXPORT void xed_operand_values_set_effective_operand_width (xed_operand_values_t *p, unsigned int width)
XED_DLL_EXPORT void xed_operand_values_set_iclass (xed_operand_values_t *p, xed_iclass_enum_t iclass)
XED_DLL_EXPORT void xed_operand_values_set_immediate_signed (xed_operand_values_t *p, xed_int32_t x, unsigned int bytes)
 Set the signed immediate using a BYTES length.
XED_DLL_EXPORT void xed_operand_values_set_immediate_signed_bits (xed_operand_values_t *p, xed_int32_t x, unsigned int bits)
 Set the signed immediate using a BITS length.
XED_DLL_EXPORT void xed_operand_values_set_immediate_unsigned (xed_operand_values_t *p, xed_uint64_t x, unsigned int bytes)
 Set the unsigned immediate using a BYTE length.
XED_DLL_EXPORT void xed_operand_values_set_immediate_unsigned_bits (xed_operand_values_t *p, xed_uint64_t x, unsigned int bits)
 Set the unsigned immediate using a BIT length.
XED_DLL_EXPORT void xed_operand_values_set_index_reg (xed_operand_values_t *p, unsigned int memop_idx, xed_reg_enum_t new_index)
XED_DLL_EXPORT void xed_operand_values_set_lock (xed_operand_values_t *p)
XED_DLL_EXPORT void xed_operand_values_set_memory_displacement (xed_operand_values_t *p, xed_int64_t x, unsigned int len)
 Set the memory displacement using a BYTES length.
XED_DLL_EXPORT void xed_operand_values_set_memory_displacement_bits (xed_operand_values_t *p, xed_int64_t x, unsigned int len_bits)
 Set the memory displacement using a BITS length.
XED_DLL_EXPORT void xed_operand_values_set_memory_operand_length (xed_operand_values_t *p, unsigned int memop_length)
XED_DLL_EXPORT void xed_operand_values_set_operand_reg (xed_operand_values_t *p, xed_operand_enum_t operand_name, xed_reg_enum_t reg_name)
 Set the operand storage field entry named 'operand_name' to the register value specified by 'reg_name'.
XED_DLL_EXPORT void xed_operand_values_set_relbr (xed_operand_values_t *p)
 Indicate that we have a relative branch.
XED_DLL_EXPORT void xed_operand_values_set_scale (xed_operand_values_t *p, xed_uint_t memop_idx, xed_uint_t new_scale)
XED_DLL_EXPORT void xed_operand_values_set_seg_reg (xed_operand_values_t *p, unsigned int memop_idx, xed_reg_enum_t new_seg)
XED_DLL_EXPORT void xed_operand_values_zero_branch_displacement (xed_operand_values_t *p)
XED_DLL_EXPORT void xed_operand_values_zero_immediate (xed_operand_values_t *p)
XED_DLL_EXPORT void xed_operand_values_zero_memory_displacement (xed_operand_values_t *p)
XED_DLL_EXPORT void xed_operand_values_zero_segment_override (xed_operand_values_t *p)

Defines

#define _XED_OPERAND_VALUES_INTERFACE_H_

Functions

XED_DLL_EXPORT xed_bool_t xed_operand_values_branch_not_taken_hint (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_bool_t xed_operand_values_branch_taken_hint (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_bool_t xed_operand_values_get_atomic (const xed_operand_values_t *p)
 Returns true if the memory operation has atomic read-modify-write semantics.
XED_DLL_EXPORT xed_bool_t xed_operand_values_get_displacement_for_memop (const xed_operand_values_t *p)
 Deprecated.
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_effective_address_width (const xed_operand_values_t *p)
 Returns The effective address width in bits: 16/32/64.
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_effective_operand_width (const xed_operand_values_t *p)
 Returns The effective operand width in bits: 16/32/64.
XED_DLL_EXPORT xed_iclass_enum_t xed_operand_values_get_iclass (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_bool_t xed_operand_values_get_long_mode (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_operand_decider (const xed_operand_values_t *p, xed_operand_enum_t operand_decider_index)
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_address_size_prefix (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_branch_displacement (const xed_operand_values_t *p)
 True if there is a branch displacement.
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_disp (const xed_operand_values_t *p)
 ALIAS for has_displacement().
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_displacement (const xed_operand_values_t *p)
 True if there is a memory or branch displacement.
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_immediate (const xed_operand_values_t *p)
 Return true if there is an immediate operand.
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_lock_prefix (const xed_operand_values_t *p)
 Returns true if the memory operatoin has a valid lock prefix.
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_memory_displacement (const xed_operand_values_t *p)
 True if there is a memory displacement.
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_operand_size_prefix (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_bool_t xed_operand_values_has_segment_prefix (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_bool_t xed_operand_values_is_nop (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_bool_t xed_operand_values_is_prefetch (const xed_operand_values_t *p)
XED_DLL_EXPORT xed_reg_enum_t xed_operand_values_segment_prefix (const xed_operand_values_t *p)
 Return the segment prefix, if any, as a xed_reg_enum_t value.
XED_DLL_EXPORT xed_bool_t xed_operand_values_using_default_segment (const xed_operand_values_t *p, unsigned int i)
 Indicates if the default segment is being used.
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_OPERAND_VALUES_INTERFACE_H_
-
- - - - - -
-   - - -

- -

-Definition at line 37 of file xed-operand-values-interface.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_operand_decider const xed_operand_values_t p,
xed_operand_enum_t  operand_decider_index
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-visibility-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-operand-visibility-enum_8h-source.html deleted file mode 100644 index eea6c01..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-visibility-enum_8h-source.html +++ /dev/null @@ -1,87 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-visibility-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_OPERAND_VISIBILITY_ENUM_H_)
-00040 # define _XED_OPERAND_VISIBILITY_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_OPVIS_INVALID,
-00044   XED_OPVIS_EXPLICIT, 
-00045   XED_OPVIS_IMPLICIT, 
-00046   XED_OPVIS_SUPPRESSED, 
-00047   XED_OPVIS_LAST
-00048 } xed_operand_visibility_enum_t;
-00049 
-00050 XED_DLL_EXPORT xed_operand_visibility_enum_t
-00051 str2xed_operand_visibility_enum_t(const char* s);
-00052 XED_DLL_EXPORT const char*
-00053 xed_operand_visibility_enum_t2str(const xed_operand_visibility_enum_t p);
-00054 
-00055 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-visibility-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-operand-visibility-enum_8h.html deleted file mode 100644 index 966ee47..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-visibility-enum_8h.html +++ /dev/null @@ -1,191 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-visibility-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-operand-visibility-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_OPERAND_VISIBILITY_ENUM_H_

Enumerations

enum  xed_operand_visibility_enum_t {
-  XED_OPVIS_INVALID, -
-  XED_OPVIS_EXPLICIT, -
-  XED_OPVIS_IMPLICIT, -
-  XED_OPVIS_SUPPRESSED, -
-  XED_OPVIS_LAST -
- }

Functions

XED_DLL_EXPORT xed_operand_visibility_enum_t str2xed_operand_visibility_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_operand_visibility_enum_t2str (const xed_operand_visibility_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_OPERAND_VISIBILITY_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-operand-visibility-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_operand_visibility_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - -
XED_OPVIS_INVALID  -
XED_OPVIS_EXPLICIT  -Shows up in operand encoding.
XED_OPVIS_IMPLICIT  -Part of the opcode, but listed as an operand.
XED_OPVIS_SUPPRESSED  -Part of the opcode, but not typically listed as an operand.
XED_OPVIS_LAST  -
-
- -

-Definition at line 42 of file xed-operand-visibility-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_operand_visibility_enum_t str2xed_operand_visibility_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_operand_visibility_enum_t2str const xed_operand_visibility_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-width-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-operand-width-enum_8h-source.html deleted file mode 100644 index 915df65..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-width-enum_8h-source.html +++ /dev/null @@ -1,121 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-width-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_OPERAND_WIDTH_ENUM_H_)
-00040 # define _XED_OPERAND_WIDTH_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_OPERAND_WIDTH_INVALID,
-00044   XED_OPERAND_WIDTH_1,
-00045   XED_OPERAND_WIDTH_A,
-00046   XED_OPERAND_WIDTH_B,
-00047   XED_OPERAND_WIDTH_D,
-00048   XED_OPERAND_WIDTH_DQ,
-00049   XED_OPERAND_WIDTH_M64INT,
-00050   XED_OPERAND_WIDTH_M64REAL,
-00051   XED_OPERAND_WIDTH_MEM108,
-00052   XED_OPERAND_WIDTH_MEM14,
-00053   XED_OPERAND_WIDTH_MEM16,
-00054   XED_OPERAND_WIDTH_MEM16INT,
-00055   XED_OPERAND_WIDTH_MEM28,
-00056   XED_OPERAND_WIDTH_MEM32INT,
-00057   XED_OPERAND_WIDTH_MEM32REAL,
-00058   XED_OPERAND_WIDTH_MEM80DEC,
-00059   XED_OPERAND_WIDTH_MEM80REAL,
-00060   XED_OPERAND_WIDTH_MEM98,
-00061   XED_OPERAND_WIDTH_MFPXENV,
-00062   XED_OPERAND_WIDTH_MXSAVE,
-00063   XED_OPERAND_WIDTH_MPREFETCH,
-00064   XED_OPERAND_WIDTH_P,
-00065   XED_OPERAND_WIDTH_P2,
-00066   XED_OPERAND_WIDTH_PD,
-00067   XED_OPERAND_WIDTH_PS,
-00068   XED_OPERAND_WIDTH_PI,
-00069   XED_OPERAND_WIDTH_Q,
-00070   XED_OPERAND_WIDTH_S,
-00071   XED_OPERAND_WIDTH_SD,
-00072   XED_OPERAND_WIDTH_SI,
-00073   XED_OPERAND_WIDTH_SS,
-00074   XED_OPERAND_WIDTH_V,
-00075   XED_OPERAND_WIDTH_W,
-00076   XED_OPERAND_WIDTH_Z,
-00077   XED_OPERAND_WIDTH_Z8,
-00078   XED_OPERAND_WIDTH_SPW,
-00079   XED_OPERAND_WIDTH_V3,
-00080   XED_OPERAND_WIDTH_SPW2,
-00081   XED_OPERAND_WIDTH_LAST
-00082 } xed_operand_width_enum_t;
-00083 
-00084 XED_DLL_EXPORT xed_operand_width_enum_t
-00085 str2xed_operand_width_enum_t(const char* s);
-00086 XED_DLL_EXPORT const char*
-00087 xed_operand_width_enum_t2str(const xed_operand_width_enum_t p);
-00088 
-00089 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-operand-width-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-operand-width-enum_8h.html deleted file mode 100644 index 75311aa..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-operand-width-enum_8h.html +++ /dev/null @@ -1,327 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-operand-width-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-operand-width-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_OPERAND_WIDTH_ENUM_H_

Enumerations

enum  xed_operand_width_enum_t {
-  XED_OPERAND_WIDTH_INVALID, -
-  XED_OPERAND_WIDTH_1, -
-  XED_OPERAND_WIDTH_A, -
-  XED_OPERAND_WIDTH_B, -
-  XED_OPERAND_WIDTH_D, -
-  XED_OPERAND_WIDTH_DQ, -
-  XED_OPERAND_WIDTH_M64INT, -
-  XED_OPERAND_WIDTH_M64REAL, -
-  XED_OPERAND_WIDTH_MEM108, -
-  XED_OPERAND_WIDTH_MEM14, -
-  XED_OPERAND_WIDTH_MEM16, -
-  XED_OPERAND_WIDTH_MEM16INT, -
-  XED_OPERAND_WIDTH_MEM28, -
-  XED_OPERAND_WIDTH_MEM32INT, -
-  XED_OPERAND_WIDTH_MEM32REAL, -
-  XED_OPERAND_WIDTH_MEM80DEC, -
-  XED_OPERAND_WIDTH_MEM80REAL, -
-  XED_OPERAND_WIDTH_MEM98, -
-  XED_OPERAND_WIDTH_MFPXENV, -
-  XED_OPERAND_WIDTH_MXSAVE, -
-  XED_OPERAND_WIDTH_MPREFETCH, -
-  XED_OPERAND_WIDTH_P, -
-  XED_OPERAND_WIDTH_P2, -
-  XED_OPERAND_WIDTH_PD, -
-  XED_OPERAND_WIDTH_PS, -
-  XED_OPERAND_WIDTH_PI, -
-  XED_OPERAND_WIDTH_Q, -
-  XED_OPERAND_WIDTH_S, -
-  XED_OPERAND_WIDTH_SD, -
-  XED_OPERAND_WIDTH_SI, -
-  XED_OPERAND_WIDTH_SS, -
-  XED_OPERAND_WIDTH_V, -
-  XED_OPERAND_WIDTH_W, -
-  XED_OPERAND_WIDTH_Z, -
-  XED_OPERAND_WIDTH_Z8, -
-  XED_OPERAND_WIDTH_SPW, -
-  XED_OPERAND_WIDTH_V3, -
-  XED_OPERAND_WIDTH_SPW2, -
-  XED_OPERAND_WIDTH_LAST -
- }

Functions

XED_DLL_EXPORT xed_operand_width_enum_t str2xed_operand_width_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_operand_width_enum_t2str (const xed_operand_width_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_OPERAND_WIDTH_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-operand-width-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_operand_width_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_OPERAND_WIDTH_INVALID  -
XED_OPERAND_WIDTH_1  -
XED_OPERAND_WIDTH_A  -
XED_OPERAND_WIDTH_B  -
XED_OPERAND_WIDTH_D  -
XED_OPERAND_WIDTH_DQ  -
XED_OPERAND_WIDTH_M64INT  -
XED_OPERAND_WIDTH_M64REAL  -
XED_OPERAND_WIDTH_MEM108  -
XED_OPERAND_WIDTH_MEM14  -
XED_OPERAND_WIDTH_MEM16  -
XED_OPERAND_WIDTH_MEM16INT  -
XED_OPERAND_WIDTH_MEM28  -
XED_OPERAND_WIDTH_MEM32INT  -
XED_OPERAND_WIDTH_MEM32REAL  -
XED_OPERAND_WIDTH_MEM80DEC  -
XED_OPERAND_WIDTH_MEM80REAL  -
XED_OPERAND_WIDTH_MEM98  -
XED_OPERAND_WIDTH_MFPXENV  -
XED_OPERAND_WIDTH_MXSAVE  -
XED_OPERAND_WIDTH_MPREFETCH  -
XED_OPERAND_WIDTH_P  -
XED_OPERAND_WIDTH_P2  -
XED_OPERAND_WIDTH_PD  -
XED_OPERAND_WIDTH_PS  -
XED_OPERAND_WIDTH_PI  -
XED_OPERAND_WIDTH_Q  -
XED_OPERAND_WIDTH_S  -
XED_OPERAND_WIDTH_SD  -
XED_OPERAND_WIDTH_SI  -
XED_OPERAND_WIDTH_SS  -
XED_OPERAND_WIDTH_V  -
XED_OPERAND_WIDTH_W  -
XED_OPERAND_WIDTH_Z  -
XED_OPERAND_WIDTH_Z8  -
XED_OPERAND_WIDTH_SPW  -
XED_OPERAND_WIDTH_V3  -
XED_OPERAND_WIDTH_SPW2  -
XED_OPERAND_WIDTH_LAST  -
-
- -

-Definition at line 42 of file xed-operand-width-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_operand_width_enum_t str2xed_operand_width_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_operand_width_enum_t2str const xed_operand_width_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-portability_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-portability_8h-source.html deleted file mode 100644 index a470cea..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-portability_8h-source.html +++ /dev/null @@ -1,166 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-portability.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 #ifndef _XED_PORTABILITY_H_
-00037 # define _XED_PORTABILITY_H_
-00038 # include "xed-types.h"
-00039 
-00040 #define STATIC_CAST(x,y) ((x) (y))
-00041 #define REINTERPRET_CAST(x,y) ((x) (y))
-00042 
-00043 XED_DLL_EXPORT xed_uint_t xed_strlen(const char* s);
-00044 XED_DLL_EXPORT void xed_strcat(char* dst, const char* src);
-00045 XED_DLL_EXPORT void xed_strcpy(char* dst, const char* src);
-00047 XED_DLL_EXPORT int xed_strncpy(char* dst, const char* src,  int len);
-00049 XED_DLL_EXPORT int xed_strncat(char* dst, const char* src,  int len);
-00050 
-00051 
-00052 /* recognize VC98 */
-00053 #if !defined(__INTEL_COMPILER)
-00054 # if defined(_WIN32) && defined(_MSC_VER)
-00055 #   if _MSC_VER == 1200
-00056 #     define XED_MSVC6 1
-00057 #   endif
-00058 # endif
-00059 # if defined(_WIN32) && defined(_MSC_VER)
-00060 #   if _MSC_VER == 1310
-00061 #     define XED_MSVC7 1
-00062 #   endif
-00063 # endif
-00064 # if defined(_WIN32) && defined(_MSC_VER)
-00065 #   if _MSC_VER == 1400
-00066 #     define XED_MSVC8 1
-00067 #   endif
-00068 # endif
-00069 #endif
-00070 
-00071 /* I've had compatibilty problems here so I'm using a trivial indirection */
-00072 #if defined(__GNUC__)
-00073 #  if defined(__CYGWIN__)
-00074       /* cygwin's gcc 3.4.4 on windows  complains */
-00075 #    define XED_FMT_X "%lx"
-00076 #    define XED_FMT_08X "%08lx"
-00077 #    define XED_FMT_D "%ld"
-00078 #    define XED_FMT_U "%lu"
-00079 #    define XED_FMT_9U "%9lu"
-00080 #  else
-00081 #    define XED_FMT_X "%x"
-00082 #    define XED_FMT_08X "%08x"
-00083 #    define XED_FMT_D "%d"
-00084 #    define XED_FMT_U "%u"
-00085 #    define XED_FMT_9U "%9u"
-00086 #  endif
-00087 #else
-00088 #  define XED_FMT_X "%x"
-00089 #  define XED_FMT_08X "%08x"
-00090 #  define XED_FMT_D "%d"
-00091 #  define XED_FMT_U "%u"
-00092 #  define XED_FMT_9U "%9u"
-00093 #endif
-00094 
-00095 #if defined(__GNUC__) && defined(__LP64__) && !defined(__APPLE__)
-00096 # define XED_FMT_LX "%lx"
-00097 # define XED_FMT_LU "%lu"
-00098 # define XED_FMT_LD "%ld"
-00099 # define XED_FMT_LX16 "%016lx"
-00100 #else
-00101 # define XED_FMT_LX "%llx"
-00102 # define XED_FMT_LU "%llu"
-00103 # define XED_FMT_LD "%lld"
-00104 # define XED_FMT_LX16 "%016llx"
-00105 #endif
-00106 
-00107 #if defined(_M_IA64)
-00108 # define XED_IPF
-00109 # define XED_FMT_SIZET "%ld"
-00110 #else
-00111 # define XED_FMT_SIZET "%d"
-00112 #endif
-00113 
-00114 #if defined(__GNUC__) 
-00115 # define XED_INLINE inline
-00116 # define XED_NORETURN __attribute__ ((noreturn))
-00117 # if __GNUC__ == 2
-00118 #   define XED_NOINLINE 
-00119 # else
-00120 #   define XED_NOINLINE __attribute__ ((noinline))
-00121 # endif
-00122 #else
-00123 # define XED_INLINE __inline
-00124 # if defined(XED_MSVC6)
-00125 #   define XED_NOINLINE 
-00126 # else
-00127 #   define XED_NOINLINE __declspec(noinline)
-00128 # endif
-00129 # define XED_NORETURN __declspec(noreturn)
-00130 #endif
-00131 
-00132 #endif  // _XED_PORTABILITY_H_
-00133 
-00135 //Local Variables:
-00136 //pref: "../../xed-portability.c"
-00137 //End:
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-portability_8h.html b/misc/decoder_test/XED2/doc/html/xed-portability_8h.html deleted file mode 100644 index c164448..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-portability_8h.html +++ /dev/null @@ -1,675 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-portability.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-portability.h. -

-#include "xed-types.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Defines

#define REINTERPRET_CAST(x, y)   ((x) (y))
#define STATIC_CAST(x, y)   ((x) (y))
#define XED_FMT_08X   "%08x"
#define XED_FMT_9U   "%9u"
#define XED_FMT_D   "%d"
#define XED_FMT_LD   "%lld"
#define XED_FMT_LU   "%llu"
#define XED_FMT_LX   "%llx"
#define XED_FMT_LX16   "%016llx"
#define XED_FMT_SIZET   "%d"
#define XED_FMT_U   "%u"
#define XED_FMT_X   "%x"
#define XED_INLINE   __inline
#define XED_NOINLINE   __declspec(noinline)
#define XED_NORETURN   __declspec(noreturn)

Functions

XED_DLL_EXPORT void xed_strcat (char *dst, const char *src)
XED_DLL_EXPORT void xed_strcpy (char *dst, const char *src)
XED_DLL_EXPORT xed_uint_t xed_strlen (const char *s)
XED_DLL_EXPORT int xed_strncat (char *dst, const char *src, int len)
 returns the number of bytes remaining for the next use of xed_strncpy() or xed_strncat() .
XED_DLL_EXPORT int xed_strncpy (char *dst, const char *src, int len)
 returns the number of bytes remaining for the next use of xed_strncpy() or xed_strncat() .
-


Define Documentation

-

- - - - -
- - - - - - - - - - - - -
#define REINTERPRET_CAST x,
 )    ((x) (y))
-
- - - - - -
-   - - -

- -

-Definition at line 41 of file xed-portability.h.

-

- - - - -
- - - - - - - - - - - - -
#define STATIC_CAST x,
 )    ((x) (y))
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-portability.h.

-

- - - - -
- - - - -
#define XED_FMT_08X   "%08x"
-
- - - - - -
-   - - -

- -

-Definition at line 89 of file xed-portability.h.

-

- - - - -
- - - - -
#define XED_FMT_9U   "%9u"
-
- - - - - -
-   - - -

- -

-Definition at line 92 of file xed-portability.h.

-

- - - - -
- - - - -
#define XED_FMT_D   "%d"
-
- - - - - -
-   - - -

- -

-Definition at line 90 of file xed-portability.h.

-

- - - - -
- - - - -
#define XED_FMT_LD   "%lld"
-
- - - - - -
-   - - -

- -

-Definition at line 103 of file xed-portability.h.

-

- - - - -
- - - - -
#define XED_FMT_LU   "%llu"
-
- - - - - -
-   - - -

- -

-Definition at line 102 of file xed-portability.h.

-

- - - - -
- - - - -
#define XED_FMT_LX   "%llx"
-
- - - - - -
-   - - -

- -

-Definition at line 101 of file xed-portability.h.

-

- - - - -
- - - - -
#define XED_FMT_LX16   "%016llx"
-
- - - - - -
-   - - -

- -

-Definition at line 104 of file xed-portability.h.

-

- - - - -
- - - - -
#define XED_FMT_SIZET   "%d"
-
- - - - - -
-   - - -

- -

-Definition at line 111 of file xed-portability.h.

-

- - - - -
- - - - -
#define XED_FMT_U   "%u"
-
- - - - - -
-   - - -

- -

-Definition at line 91 of file xed-portability.h.

-

- - - - -
- - - - -
#define XED_FMT_X   "%x"
-
- - - - - -
-   - - -

- -

-Definition at line 88 of file xed-portability.h.

-

- - - - -
- - - - -
#define XED_INLINE   __inline
-
- - - - - -
-   - - -

- -

-Definition at line 123 of file xed-portability.h.

-

- - - - -
- - - - -
#define XED_NOINLINE   __declspec(noinline)
-
- - - - - -
-   - - -

- -

-Definition at line 127 of file xed-portability.h.

-

- - - - -
- - - - -
#define XED_NORETURN   __declspec(noreturn)
-
- - - - - -
-   - - -

- -

-Definition at line 129 of file xed-portability.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_strcat char *  dst,
const char *  src
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT void xed_strcpy char *  dst,
const char *  src
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_strlen const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT int xed_strncat char *  dst,
const char *  src,
int  len
-
- - - - - -
-   - - -

-returns the number of bytes remaining for the next use of xed_strncpy() or xed_strncat() . -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT int xed_strncpy char *  dst,
const char *  src,
int  len
-
- - - - - -
-   - - -

-returns the number of bytes remaining for the next use of xed_strncpy() or xed_strncat() . -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-reg-class-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-reg-class-enum_8h-source.html deleted file mode 100644 index 08e8fd8..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-reg-class-enum_8h-source.html +++ /dev/null @@ -1,99 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-reg-class-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_REG_CLASS_ENUM_H_)
-00040 # define _XED_REG_CLASS_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_REG_CLASS_INVALID,
-00044   XED_REG_CLASS_CR,
-00045   XED_REG_CLASS_DR,
-00046   XED_REG_CLASS_FLAGS,
-00047   XED_REG_CLASS_GPR,
-00048   XED_REG_CLASS_GPR16,
-00049   XED_REG_CLASS_GPR32,
-00050   XED_REG_CLASS_GPR64,
-00051   XED_REG_CLASS_GPR8,
-00052   XED_REG_CLASS_IP,
-00053   XED_REG_CLASS_MMX,
-00054   XED_REG_CLASS_PSEUDO,
-00055   XED_REG_CLASS_SR,
-00056   XED_REG_CLASS_TMP,
-00057   XED_REG_CLASS_X87,
-00058   XED_REG_CLASS_XMM,
-00059   XED_REG_CLASS_LAST
-00060 } xed_reg_class_enum_t;
-00061 
-00062 XED_DLL_EXPORT xed_reg_class_enum_t
-00063 str2xed_reg_class_enum_t(const char* s);
-00064 XED_DLL_EXPORT const char*
-00065 xed_reg_class_enum_t2str(const xed_reg_class_enum_t p);
-00066 
-00067 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-reg-class-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-reg-class-enum_8h.html deleted file mode 100644 index ae3a84e..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-reg-class-enum_8h.html +++ /dev/null @@ -1,239 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-reg-class-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-reg-class-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_REG_CLASS_ENUM_H_

Enumerations

enum  xed_reg_class_enum_t {
-  XED_REG_CLASS_INVALID, -
-  XED_REG_CLASS_CR, -
-  XED_REG_CLASS_DR, -
-  XED_REG_CLASS_FLAGS, -
-  XED_REG_CLASS_GPR, -
-  XED_REG_CLASS_GPR16, -
-  XED_REG_CLASS_GPR32, -
-  XED_REG_CLASS_GPR64, -
-  XED_REG_CLASS_GPR8, -
-  XED_REG_CLASS_IP, -
-  XED_REG_CLASS_MMX, -
-  XED_REG_CLASS_PSEUDO, -
-  XED_REG_CLASS_SR, -
-  XED_REG_CLASS_TMP, -
-  XED_REG_CLASS_X87, -
-  XED_REG_CLASS_XMM, -
-  XED_REG_CLASS_LAST -
- }

Functions

XED_DLL_EXPORT xed_reg_class_enum_t str2xed_reg_class_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_reg_class_enum_t2str (const xed_reg_class_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_REG_CLASS_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-reg-class-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_reg_class_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - - - - - - - - - - - - - -
XED_REG_CLASS_INVALID  -
XED_REG_CLASS_CR  -
XED_REG_CLASS_DR  -
XED_REG_CLASS_FLAGS  -
XED_REG_CLASS_GPR  -
XED_REG_CLASS_GPR16  -
XED_REG_CLASS_GPR32  -
XED_REG_CLASS_GPR64  -
XED_REG_CLASS_GPR8  -
XED_REG_CLASS_IP  -
XED_REG_CLASS_MMX  -
XED_REG_CLASS_PSEUDO  -
XED_REG_CLASS_SR  -
XED_REG_CLASS_TMP  -
XED_REG_CLASS_X87  -
XED_REG_CLASS_XMM  -
XED_REG_CLASS_LAST  -
-
- -

-Definition at line 42 of file xed-reg-class-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_reg_class_enum_t str2xed_reg_class_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_reg_class_enum_t2str const xed_reg_class_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-reg-class_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-reg-class_8h-source.html deleted file mode 100644 index 087e0bd..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-reg-class_8h-source.html +++ /dev/null @@ -1,83 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-reg-class.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 #ifndef _XED_REG_CLASS_H_
-00037 # define  _XED_REG_CLASS_H_
-00038 
-00039 #include "xed-types.h"
-00040 #include "xed-reg-enum.h" // a generated file
-00041 #include "xed-reg-class-enum.h" // a generated file
-00042 
-00045 XED_DLL_EXPORT xed_reg_class_enum_t xed_reg_class(xed_reg_enum_t r);
-00046 
-00050 XED_DLL_EXPORT xed_reg_class_enum_t xed_gpr_reg_class(xed_reg_enum_t r);
-00051 
-00054 XED_DLL_EXPORT xed_reg_enum_t  xed_get_largest_enclosing_register(xed_reg_enum_t r);
-00055 
-00056 
-00058 
-00059 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-reg-class_8h.html b/misc/decoder_test/XED2/doc/html/xed-reg-class_8h.html deleted file mode 100644 index 3477df4..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-reg-class_8h.html +++ /dev/null @@ -1,58 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-reg-class.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-reg-class.h. -

-#include "xed-types.h"
-#include "xed-reg-enum.h"
-#include "xed-reg-class-enum.h"
- -

-Go to the source code of this file. - - - - - - - - - - - -

Functions

XED_DLL_EXPORT xed_reg_enum_t xed_get_largest_enclosing_register (xed_reg_enum_t r)
 Returns the largest enclosing register for any kind of register; This is mostly useful for GPRs.
XED_DLL_EXPORT xed_reg_class_enum_t xed_gpr_reg_class (xed_reg_enum_t r)
 Returns the specific width GPR reg class (like XED_REG_CLASS_GPR32 or XED_REG_CLASS_GPR64) for a given GPR register.
XED_DLL_EXPORT xed_reg_class_enum_t xed_reg_class (xed_reg_enum_t r)
 Returns the register class of the given input register.
-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-reg-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-reg-enum_8h-source.html deleted file mode 100644 index 8d5b005..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-reg-enum_8h-source.html +++ /dev/null @@ -1,263 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-reg-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_REG_ENUM_H_)
-00040 # define _XED_REG_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_REG_INVALID,
-00044   XED_REG_ERROR,
-00045   XED_REG_RAX,
-00046   XED_REG_EAX,
-00047   XED_REG_AX,
-00048   XED_REG_AH,
-00049   XED_REG_AL,
-00050   XED_REG_RCX,
-00051   XED_REG_ECX,
-00052   XED_REG_CX,
-00053   XED_REG_CH,
-00054   XED_REG_CL,
-00055   XED_REG_RDX,
-00056   XED_REG_EDX,
-00057   XED_REG_DX,
-00058   XED_REG_DH,
-00059   XED_REG_DL,
-00060   XED_REG_RBX,
-00061   XED_REG_EBX,
-00062   XED_REG_BX,
-00063   XED_REG_BH,
-00064   XED_REG_BL,
-00065   XED_REG_RSP,
-00066   XED_REG_ESP,
-00067   XED_REG_SP,
-00068   XED_REG_SPL,
-00069   XED_REG_RBP,
-00070   XED_REG_EBP,
-00071   XED_REG_BP,
-00072   XED_REG_BPL,
-00073   XED_REG_RSI,
-00074   XED_REG_ESI,
-00075   XED_REG_SI,
-00076   XED_REG_SIL,
-00077   XED_REG_RDI,
-00078   XED_REG_EDI,
-00079   XED_REG_DI,
-00080   XED_REG_DIL,
-00081   XED_REG_R8,
-00082   XED_REG_R8D,
-00083   XED_REG_R8W,
-00084   XED_REG_R8B,
-00085   XED_REG_R9,
-00086   XED_REG_R9D,
-00087   XED_REG_R9W,
-00088   XED_REG_R9B,
-00089   XED_REG_R10,
-00090   XED_REG_R10D,
-00091   XED_REG_R10W,
-00092   XED_REG_R10B,
-00093   XED_REG_R11,
-00094   XED_REG_R11D,
-00095   XED_REG_R11W,
-00096   XED_REG_R11B,
-00097   XED_REG_R12,
-00098   XED_REG_R12D,
-00099   XED_REG_R12W,
-00100   XED_REG_R12B,
-00101   XED_REG_R13,
-00102   XED_REG_R13D,
-00103   XED_REG_R13W,
-00104   XED_REG_R13B,
-00105   XED_REG_R14,
-00106   XED_REG_R14D,
-00107   XED_REG_R14W,
-00108   XED_REG_R14B,
-00109   XED_REG_R15,
-00110   XED_REG_R15D,
-00111   XED_REG_R15W,
-00112   XED_REG_R15B,
-00113   XED_REG_RIP,
-00114   XED_REG_EIP,
-00115   XED_REG_IP,
-00116   XED_REG_FLAGS,
-00117   XED_REG_EFLAGS,
-00118   XED_REG_RFLAGS,
-00119   XED_REG_CS,
-00120   XED_REG_DS,
-00121   XED_REG_ES,
-00122   XED_REG_SS,
-00123   XED_REG_FS,
-00124   XED_REG_GS,
-00125   XED_REG_XMM0,
-00126   XED_REG_XMM1,
-00127   XED_REG_XMM2,
-00128   XED_REG_XMM3,
-00129   XED_REG_XMM4,
-00130   XED_REG_XMM5,
-00131   XED_REG_XMM6,
-00132   XED_REG_XMM7,
-00133   XED_REG_XMM8,
-00134   XED_REG_XMM9,
-00135   XED_REG_XMM10,
-00136   XED_REG_XMM11,
-00137   XED_REG_XMM12,
-00138   XED_REG_XMM13,
-00139   XED_REG_XMM14,
-00140   XED_REG_XMM15,
-00141   XED_REG_MMX0,
-00142   XED_REG_MMX1,
-00143   XED_REG_MMX2,
-00144   XED_REG_MMX3,
-00145   XED_REG_MMX4,
-00146   XED_REG_MMX5,
-00147   XED_REG_MMX6,
-00148   XED_REG_MMX7,
-00149   XED_REG_ST0,
-00150   XED_REG_ST1,
-00151   XED_REG_ST2,
-00152   XED_REG_ST3,
-00153   XED_REG_ST4,
-00154   XED_REG_ST5,
-00155   XED_REG_ST6,
-00156   XED_REG_ST7,
-00157   XED_REG_CR0,
-00158   XED_REG_CR1,
-00159   XED_REG_CR2,
-00160   XED_REG_CR3,
-00161   XED_REG_CR4,
-00162   XED_REG_CR5,
-00163   XED_REG_CR6,
-00164   XED_REG_CR7,
-00165   XED_REG_CR8,
-00166   XED_REG_CR9,
-00167   XED_REG_CR10,
-00168   XED_REG_CR11,
-00169   XED_REG_CR12,
-00170   XED_REG_CR13,
-00171   XED_REG_CR14,
-00172   XED_REG_CR15,
-00173   XED_REG_DR0,
-00174   XED_REG_DR1,
-00175   XED_REG_DR2,
-00176   XED_REG_DR3,
-00177   XED_REG_DR4,
-00178   XED_REG_DR5,
-00179   XED_REG_DR6,
-00180   XED_REG_DR7,
-00181   XED_REG_DR8,
-00182   XED_REG_DR9,
-00183   XED_REG_DR10,
-00184   XED_REG_DR11,
-00185   XED_REG_DR12,
-00186   XED_REG_DR13,
-00187   XED_REG_DR14,
-00188   XED_REG_DR15,
-00189   XED_REG_ONE,
-00190   XED_REG_STACKPUSH,
-00191   XED_REG_STACKPOP,
-00192   XED_REG_GDTR,
-00193   XED_REG_LDTR,
-00194   XED_REG_IDTR,
-00195   XED_REG_TR,
-00196   XED_REG_TSC,
-00197   XED_REG_TSCAUX,
-00198   XED_REG_MSRS,
-00199   XED_REG_X87CONTROL,
-00200   XED_REG_X87STATUS,
-00201   XED_REG_X87TOP,
-00202   XED_REG_X87TAG,
-00203   XED_REG_X87PUSH,
-00204   XED_REG_X87POP,
-00205   XED_REG_X87POP2,
-00206   XED_REG_MXCSR,
-00207   XED_REG_TMP0,
-00208   XED_REG_TMP1,
-00209   XED_REG_TMP2,
-00210   XED_REG_TMP3,
-00211   XED_REG_TMP4,
-00212   XED_REG_TMP5,
-00213   XED_REG_TMP6,
-00214   XED_REG_TMP7,
-00215   XED_REG_TMP8,
-00216   XED_REG_TMP9,
-00217   XED_REG_TMP10,
-00218   XED_REG_TMP11,
-00219   XED_REG_TMP12,
-00220   XED_REG_TMP13,
-00221   XED_REG_TMP14,
-00222   XED_REG_TMP15,
-00223   XED_REG_LAST
-00224 } xed_reg_enum_t;
-00225 
-00226 XED_DLL_EXPORT xed_reg_enum_t
-00227 str2xed_reg_enum_t(const char* s);
-00228 XED_DLL_EXPORT const char*
-00229 xed_reg_enum_t2str(const xed_reg_enum_t p);
-00230 
-00231 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-reg-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-reg-enum_8h.html deleted file mode 100644 index f016df7..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-reg-enum_8h.html +++ /dev/null @@ -1,895 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-reg-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-reg-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_REG_ENUM_H_

Enumerations

enum  xed_reg_enum_t {
-  XED_REG_INVALID, -
-  XED_REG_ERROR, -
-  XED_REG_RAX, -
-  XED_REG_EAX, -
-  XED_REG_AX, -
-  XED_REG_AH, -
-  XED_REG_AL, -
-  XED_REG_RCX, -
-  XED_REG_ECX, -
-  XED_REG_CX, -
-  XED_REG_CH, -
-  XED_REG_CL, -
-  XED_REG_RDX, -
-  XED_REG_EDX, -
-  XED_REG_DX, -
-  XED_REG_DH, -
-  XED_REG_DL, -
-  XED_REG_RBX, -
-  XED_REG_EBX, -
-  XED_REG_BX, -
-  XED_REG_BH, -
-  XED_REG_BL, -
-  XED_REG_RSP, -
-  XED_REG_ESP, -
-  XED_REG_SP, -
-  XED_REG_SPL, -
-  XED_REG_RBP, -
-  XED_REG_EBP, -
-  XED_REG_BP, -
-  XED_REG_BPL, -
-  XED_REG_RSI, -
-  XED_REG_ESI, -
-  XED_REG_SI, -
-  XED_REG_SIL, -
-  XED_REG_RDI, -
-  XED_REG_EDI, -
-  XED_REG_DI, -
-  XED_REG_DIL, -
-  XED_REG_R8, -
-  XED_REG_R8D, -
-  XED_REG_R8W, -
-  XED_REG_R8B, -
-  XED_REG_R9, -
-  XED_REG_R9D, -
-  XED_REG_R9W, -
-  XED_REG_R9B, -
-  XED_REG_R10, -
-  XED_REG_R10D, -
-  XED_REG_R10W, -
-  XED_REG_R10B, -
-  XED_REG_R11, -
-  XED_REG_R11D, -
-  XED_REG_R11W, -
-  XED_REG_R11B, -
-  XED_REG_R12, -
-  XED_REG_R12D, -
-  XED_REG_R12W, -
-  XED_REG_R12B, -
-  XED_REG_R13, -
-  XED_REG_R13D, -
-  XED_REG_R13W, -
-  XED_REG_R13B, -
-  XED_REG_R14, -
-  XED_REG_R14D, -
-  XED_REG_R14W, -
-  XED_REG_R14B, -
-  XED_REG_R15, -
-  XED_REG_R15D, -
-  XED_REG_R15W, -
-  XED_REG_R15B, -
-  XED_REG_RIP, -
-  XED_REG_EIP, -
-  XED_REG_IP, -
-  XED_REG_FLAGS, -
-  XED_REG_EFLAGS, -
-  XED_REG_RFLAGS, -
-  XED_REG_CS, -
-  XED_REG_DS, -
-  XED_REG_ES, -
-  XED_REG_SS, -
-  XED_REG_FS, -
-  XED_REG_GS, -
-  XED_REG_XMM0, -
-  XED_REG_XMM1, -
-  XED_REG_XMM2, -
-  XED_REG_XMM3, -
-  XED_REG_XMM4, -
-  XED_REG_XMM5, -
-  XED_REG_XMM6, -
-  XED_REG_XMM7, -
-  XED_REG_XMM8, -
-  XED_REG_XMM9, -
-  XED_REG_XMM10, -
-  XED_REG_XMM11, -
-  XED_REG_XMM12, -
-  XED_REG_XMM13, -
-  XED_REG_XMM14, -
-  XED_REG_XMM15, -
-  XED_REG_MMX0, -
-  XED_REG_MMX1, -
-  XED_REG_MMX2, -
-  XED_REG_MMX3, -
-  XED_REG_MMX4, -
-  XED_REG_MMX5, -
-  XED_REG_MMX6, -
-  XED_REG_MMX7, -
-  XED_REG_ST0, -
-  XED_REG_ST1, -
-  XED_REG_ST2, -
-  XED_REG_ST3, -
-  XED_REG_ST4, -
-  XED_REG_ST5, -
-  XED_REG_ST6, -
-  XED_REG_ST7, -
-  XED_REG_CR0, -
-  XED_REG_CR1, -
-  XED_REG_CR2, -
-  XED_REG_CR3, -
-  XED_REG_CR4, -
-  XED_REG_CR5, -
-  XED_REG_CR6, -
-  XED_REG_CR7, -
-  XED_REG_CR8, -
-  XED_REG_CR9, -
-  XED_REG_CR10, -
-  XED_REG_CR11, -
-  XED_REG_CR12, -
-  XED_REG_CR13, -
-  XED_REG_CR14, -
-  XED_REG_CR15, -
-  XED_REG_DR0, -
-  XED_REG_DR1, -
-  XED_REG_DR2, -
-  XED_REG_DR3, -
-  XED_REG_DR4, -
-  XED_REG_DR5, -
-  XED_REG_DR6, -
-  XED_REG_DR7, -
-  XED_REG_DR8, -
-  XED_REG_DR9, -
-  XED_REG_DR10, -
-  XED_REG_DR11, -
-  XED_REG_DR12, -
-  XED_REG_DR13, -
-  XED_REG_DR14, -
-  XED_REG_DR15, -
-  XED_REG_ONE, -
-  XED_REG_STACKPUSH, -
-  XED_REG_STACKPOP, -
-  XED_REG_GDTR, -
-  XED_REG_LDTR, -
-  XED_REG_IDTR, -
-  XED_REG_TR, -
-  XED_REG_TSC, -
-  XED_REG_TSCAUX, -
-  XED_REG_MSRS, -
-  XED_REG_X87CONTROL, -
-  XED_REG_X87STATUS, -
-  XED_REG_X87TOP, -
-  XED_REG_X87TAG, -
-  XED_REG_X87PUSH, -
-  XED_REG_X87POP, -
-  XED_REG_X87POP2, -
-  XED_REG_MXCSR, -
-  XED_REG_TMP0, -
-  XED_REG_TMP1, -
-  XED_REG_TMP2, -
-  XED_REG_TMP3, -
-  XED_REG_TMP4, -
-  XED_REG_TMP5, -
-  XED_REG_TMP6, -
-  XED_REG_TMP7, -
-  XED_REG_TMP8, -
-  XED_REG_TMP9, -
-  XED_REG_TMP10, -
-  XED_REG_TMP11, -
-  XED_REG_TMP12, -
-  XED_REG_TMP13, -
-  XED_REG_TMP14, -
-  XED_REG_TMP15, -
-  XED_REG_LAST -
- }

Functions

XED_DLL_EXPORT xed_reg_enum_t str2xed_reg_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_reg_enum_t2str (const xed_reg_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_REG_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-reg-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_reg_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XED_REG_INVALID  -
XED_REG_ERROR  -
XED_REG_RAX  -
XED_REG_EAX  -
XED_REG_AX  -
XED_REG_AH  -
XED_REG_AL  -
XED_REG_RCX  -
XED_REG_ECX  -
XED_REG_CX  -
XED_REG_CH  -
XED_REG_CL  -
XED_REG_RDX  -
XED_REG_EDX  -
XED_REG_DX  -
XED_REG_DH  -
XED_REG_DL  -
XED_REG_RBX  -
XED_REG_EBX  -
XED_REG_BX  -
XED_REG_BH  -
XED_REG_BL  -
XED_REG_RSP  -
XED_REG_ESP  -
XED_REG_SP  -
XED_REG_SPL  -
XED_REG_RBP  -
XED_REG_EBP  -
XED_REG_BP  -
XED_REG_BPL  -
XED_REG_RSI  -
XED_REG_ESI  -
XED_REG_SI  -
XED_REG_SIL  -
XED_REG_RDI  -
XED_REG_EDI  -
XED_REG_DI  -
XED_REG_DIL  -
XED_REG_R8  -
XED_REG_R8D  -
XED_REG_R8W  -
XED_REG_R8B  -
XED_REG_R9  -
XED_REG_R9D  -
XED_REG_R9W  -
XED_REG_R9B  -
XED_REG_R10  -
XED_REG_R10D  -
XED_REG_R10W  -
XED_REG_R10B  -
XED_REG_R11  -
XED_REG_R11D  -
XED_REG_R11W  -
XED_REG_R11B  -
XED_REG_R12  -
XED_REG_R12D  -
XED_REG_R12W  -
XED_REG_R12B  -
XED_REG_R13  -
XED_REG_R13D  -
XED_REG_R13W  -
XED_REG_R13B  -
XED_REG_R14  -
XED_REG_R14D  -
XED_REG_R14W  -
XED_REG_R14B  -
XED_REG_R15  -
XED_REG_R15D  -
XED_REG_R15W  -
XED_REG_R15B  -
XED_REG_RIP  -
XED_REG_EIP  -
XED_REG_IP  -
XED_REG_FLAGS  -
XED_REG_EFLAGS  -
XED_REG_RFLAGS  -
XED_REG_CS  -
XED_REG_DS  -
XED_REG_ES  -
XED_REG_SS  -
XED_REG_FS  -
XED_REG_GS  -
XED_REG_XMM0  -
XED_REG_XMM1  -
XED_REG_XMM2  -
XED_REG_XMM3  -
XED_REG_XMM4  -
XED_REG_XMM5  -
XED_REG_XMM6  -
XED_REG_XMM7  -
XED_REG_XMM8  -
XED_REG_XMM9  -
XED_REG_XMM10  -
XED_REG_XMM11  -
XED_REG_XMM12  -
XED_REG_XMM13  -
XED_REG_XMM14  -
XED_REG_XMM15  -
XED_REG_MMX0  -
XED_REG_MMX1  -
XED_REG_MMX2  -
XED_REG_MMX3  -
XED_REG_MMX4  -
XED_REG_MMX5  -
XED_REG_MMX6  -
XED_REG_MMX7  -
XED_REG_ST0  -
XED_REG_ST1  -
XED_REG_ST2  -
XED_REG_ST3  -
XED_REG_ST4  -
XED_REG_ST5  -
XED_REG_ST6  -
XED_REG_ST7  -
XED_REG_CR0  -
XED_REG_CR1  -
XED_REG_CR2  -
XED_REG_CR3  -
XED_REG_CR4  -
XED_REG_CR5  -
XED_REG_CR6  -
XED_REG_CR7  -
XED_REG_CR8  -
XED_REG_CR9  -
XED_REG_CR10  -
XED_REG_CR11  -
XED_REG_CR12  -
XED_REG_CR13  -
XED_REG_CR14  -
XED_REG_CR15  -
XED_REG_DR0  -
XED_REG_DR1  -
XED_REG_DR2  -
XED_REG_DR3  -
XED_REG_DR4  -
XED_REG_DR5  -
XED_REG_DR6  -
XED_REG_DR7  -
XED_REG_DR8  -
XED_REG_DR9  -
XED_REG_DR10  -
XED_REG_DR11  -
XED_REG_DR12  -
XED_REG_DR13  -
XED_REG_DR14  -
XED_REG_DR15  -
XED_REG_ONE  -
XED_REG_STACKPUSH  -
XED_REG_STACKPOP  -
XED_REG_GDTR  -
XED_REG_LDTR  -
XED_REG_IDTR  -
XED_REG_TR  -
XED_REG_TSC  -
XED_REG_TSCAUX  -
XED_REG_MSRS  -
XED_REG_X87CONTROL  -
XED_REG_X87STATUS  -
XED_REG_X87TOP  -
XED_REG_X87TAG  -
XED_REG_X87PUSH  -
XED_REG_X87POP  -
XED_REG_X87POP2  -
XED_REG_MXCSR  -
XED_REG_TMP0  -
XED_REG_TMP1  -
XED_REG_TMP2  -
XED_REG_TMP3  -
XED_REG_TMP4  -
XED_REG_TMP5  -
XED_REG_TMP6  -
XED_REG_TMP7  -
XED_REG_TMP8  -
XED_REG_TMP9  -
XED_REG_TMP10  -
XED_REG_TMP11  -
XED_REG_TMP12  -
XED_REG_TMP13  -
XED_REG_TMP14  -
XED_REG_TMP15  -
XED_REG_LAST  -
-
- -

-Definition at line 42 of file xed-reg-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_reg_enum_t str2xed_reg_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_reg_enum_t2str const xed_reg_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-reg-role-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-reg-role-enum_8h-source.html deleted file mode 100644 index d4cfa60..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-reg-role-enum_8h-source.html +++ /dev/null @@ -1,90 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-reg-role-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_REG_ROLE_ENUM_H_)
-00040 # define _XED_REG_ROLE_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_REG_ROLE_INVALID,
-00044   XED_REG_ROLE_NORMAL, 
-00045   XED_REG_ROLE_SEGREG0, 
-00046   XED_REG_ROLE_SEGREG1, 
-00047   XED_REG_ROLE_BASE0, 
-00048   XED_REG_ROLE_BASE1, 
-00049   XED_REG_ROLE_INDEX, 
-00050   XED_REG_ROLE_LAST
-00051 } xed_reg_role_enum_t;
-00052 
-00053 XED_DLL_EXPORT xed_reg_role_enum_t
-00054 str2xed_reg_role_enum_t(const char* s);
-00055 XED_DLL_EXPORT const char*
-00056 xed_reg_role_enum_t2str(const xed_reg_role_enum_t p);
-00057 
-00058 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-reg-role-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-reg-role-enum_8h.html deleted file mode 100644 index ed6bb29..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-reg-role-enum_8h.html +++ /dev/null @@ -1,203 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-reg-role-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-reg-role-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_REG_ROLE_ENUM_H_

Enumerations

enum  xed_reg_role_enum_t {
-  XED_REG_ROLE_INVALID, -
-  XED_REG_ROLE_NORMAL, -
-  XED_REG_ROLE_SEGREG0, -
-  XED_REG_ROLE_SEGREG1, -
-  XED_REG_ROLE_BASE0, -
-  XED_REG_ROLE_BASE1, -
-  XED_REG_ROLE_INDEX, -
-  XED_REG_ROLE_LAST -
- }

Functions

XED_DLL_EXPORT xed_reg_role_enum_t str2xed_reg_role_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_reg_role_enum_t2str (const xed_reg_role_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_REG_ROLE_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-reg-role-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_reg_role_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - - - - -
XED_REG_ROLE_INVALID  -
XED_REG_ROLE_NORMAL  -Register is a normal register.
XED_REG_ROLE_SEGREG0  -The segment register associated with the first memop.
XED_REG_ROLE_SEGREG1  -The segment register associated with the second memop.
XED_REG_ROLE_BASE0  -The base register associated with the first memop.
XED_REG_ROLE_BASE1  -The base register associated with the second memop.
XED_REG_ROLE_INDEX  -The index register associated with the first memop.
XED_REG_ROLE_LAST  -
-
- -

-Definition at line 42 of file xed-reg-role-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_reg_role_enum_t str2xed_reg_role_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_reg_role_enum_t2str const xed_reg_role_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-state_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-state_8h-source.html deleted file mode 100644 index 9729ce4..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-state_8h-source.html +++ /dev/null @@ -1,174 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-state.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 
-00037 
-00038 #ifndef _XED_STATE_H_
-00039 # define _XED_STATE_H_
-00040 #include "xed-types.h"
-00041 #include "xed-portability.h"
-00042 #include "xed-address-width-enum.h" // generated
-00043 #include "xed-machine-mode-enum.h" // generated
-00044 
-00045 
-00053 typedef struct XED_DLL_EXPORT xed_state_s {
-00055   xed_machine_mode_enum_t mmode; 
-00056   
-00058   xed_address_width_enum_t addr_width;
-00059   
-00061   xed_address_width_enum_t stack_addr_width; 
-00062 } xed_state_t;
-00063 
-00065 
-00066 
-00067 
-00068 
-00069 
-00070 
-00071 
-00072 
-00073 
-00074 
-00075 
-00076 
-00077 static XED_INLINE void xed_state_init(xed_state_t* p,
-00078                                       xed_machine_mode_enum_t arg_mmode,
-00079                                       xed_address_width_enum_t arg_addr_width,
-00080                                       xed_address_width_enum_t arg_stack_addr_width) {
-00081     p->mmode=arg_mmode;
-00082     p->addr_width=arg_addr_width;
-00083     p->stack_addr_width=arg_stack_addr_width;
-00084 }
-00085 
-00088 static XED_INLINE void xed_state_zero(xed_state_t* p) {
-00089     p->mmode= XED_MACHINE_MODE_INVALID;
-00090     p->addr_width=XED_ADDRESS_WIDTH_INVALID;
-00091     p->stack_addr_width=XED_ADDRESS_WIDTH_INVALID;
-00092 }
-00093 
-00095 
-00097 
-00098 
-00099 
-00100 static XED_INLINE xed_machine_mode_enum_t   xed_state_get_machine_mode(const xed_state_t* p) {
-00101     return p->mmode; 
-00102 }
-00103 
-00104 
-00107 static XED_INLINE xed_bool_t xed_state_long64_mode(const xed_state_t* p) { 
-00108     return xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LONG_64;
-00109 }
-00110 
-00112 static XED_INLINE xed_bool_t xed_state_mode_width_16(const xed_state_t* p) {
-00113     return (xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LEGACY_16) ||
-00114         (xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LONG_COMPAT_16);
-00115 }
-00116 
-00118 static XED_INLINE xed_bool_t xed_state_mode_width_32(const xed_state_t* p) {
-00119     return (xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LEGACY_32) ||
-00120         (xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LONG_COMPAT_32);
-00121 }
-00122   
-00123 
-00126 static XED_INLINE void  xed_state_set_machine_mode( xed_state_t* p,
-00127                         xed_machine_mode_enum_t arg_mode)  {
-00128     p->mmode = arg_mode;
-00129 }
-00131 
-00133 
-00134 
-00135 
-00136 static XED_INLINE void xed_state_set_address_width(xed_state_t* p,
-00137                                                    xed_address_width_enum_t arg_addr_width) {
-00138     p->addr_width = arg_addr_width;
-00139 }
-00140 
-00143 static XED_INLINE xed_address_width_enum_t  xed_state_get_address_width(const xed_state_t* p) {
-00144     return p->addr_width;
-00145 }
-00146 
-00148 
-00150 
-00151 
-00152 
-00153 static XED_INLINE void  xed_state_set_stack_address_width(xed_state_t* p,
-00154                               xed_address_width_enum_t arg_addr_width) {
-00155     p->stack_addr_width = arg_addr_width;
-00156 }
-00157 
-00158 
-00161 static XED_INLINE xed_address_width_enum_t  xed_state_get_stack_address_width(const xed_state_t* p) {
-00162     return p->stack_addr_width;
-00163 }
-00165 
-00167 XED_DLL_EXPORT int xed_state_print(const xed_state_t* p, char* buf, int buflen);
-00168 
-00169 #endif
-00170 
-00172 //Local Variables:
-00173 //pref: "../../xed-state.c"
-00174 //End:
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-state_8h.html b/misc/decoder_test/XED2/doc/html/xed-state_8h.html deleted file mode 100644 index 31b7375..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-state_8h.html +++ /dev/null @@ -1,95 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-state.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-state.h. -

-#include "xed-types.h"
-#include "xed-portability.h"
-#include "xed-address-width-enum.h"
-#include "xed-machine-mode-enum.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Data Structures

struct  xed_state_s
 Encapsulates machine modes for decoder/encoder requests. More...

Address width

static XED_INLINE xed_address_width_enum_t xed_state_get_address_width (const xed_state_t *p)
 return the address width
static XED_INLINE void xed_state_set_address_width (xed_state_t *p, xed_address_width_enum_t arg_addr_width)
 Set the address width.

Machine mode

static XED_INLINE xed_machine_mode_enum_t xed_state_get_machine_mode (const xed_state_t *p)
 return the machine mode
static XED_INLINE xed_bool_t xed_state_long64_mode (const xed_state_t *p)
 true iff the machine is in LONG_64 mode
static XED_INLINE xed_bool_t xed_state_mode_width_16 (const xed_state_t *p)
static XED_INLINE xed_bool_t xed_state_mode_width_32 (const xed_state_t *p)
static XED_INLINE void xed_state_set_machine_mode (xed_state_t *p, xed_machine_mode_enum_t arg_mode)
 Set the machine mode.

Stack address width

static XED_INLINE xed_address_width_enum_t xed_state_get_stack_address_width (const xed_state_t *p)
 Return the STACK address width.
static XED_INLINE void xed_state_set_stack_address_width (xed_state_t *p, xed_address_width_enum_t arg_addr_width)
 set the STACK address width

Initialization

static XED_INLINE void xed_state_init (xed_state_t *p, xed_machine_mode_enum_t arg_mmode, xed_address_width_enum_t arg_addr_width, xed_address_width_enum_t arg_stack_addr_width)
 Constructor.
static XED_INLINE void xed_state_zero (xed_state_t *p)
 clear the xed_state_t

Typedefs

typedef XED_DLL_EXPORT xed_state_s xed_state_t
 Encapsulates machine modes for decoder/encoder requests.

Functions

XED_DLL_EXPORT int xed_state_print (const xed_state_t *p, char *buf, int buflen)
-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-syntax-enum_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-syntax-enum_8h-source.html deleted file mode 100644 index a5eb4f8..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-syntax-enum_8h-source.html +++ /dev/null @@ -1,87 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-syntax-enum.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 // This file was automatically generated.
-00037 // Do not edit this file.
-00038 
-00039 #if !defined(_XED_SYNTAX_ENUM_H_)
-00040 # define _XED_SYNTAX_ENUM_H_
-00041 #include "xed-common-hdrs.h"
-00042 typedef enum {
-00043   XED_SYNTAX_INVALID,
-00044   XED_SYNTAX_XED, 
-00045   XED_SYNTAX_ATT, 
-00046   XED_SYNTAX_INTEL, 
-00047   XED_SYNTAX_LAST
-00048 } xed_syntax_enum_t;
-00049 
-00050 XED_DLL_EXPORT xed_syntax_enum_t
-00051 str2xed_syntax_enum_t(const char* s);
-00052 XED_DLL_EXPORT const char*
-00053 xed_syntax_enum_t2str(const xed_syntax_enum_t p);
-00054 
-00055 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-syntax-enum_8h.html b/misc/decoder_test/XED2/doc/html/xed-syntax-enum_8h.html deleted file mode 100644 index 96b0d44..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-syntax-enum_8h.html +++ /dev/null @@ -1,191 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-syntax-enum.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-syntax-enum.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - - - - - -

Defines

#define _XED_SYNTAX_ENUM_H_

Enumerations

enum  xed_syntax_enum_t {
-  XED_SYNTAX_INVALID, -
-  XED_SYNTAX_XED, -
-  XED_SYNTAX_ATT, -
-  XED_SYNTAX_INTEL, -
-  XED_SYNTAX_LAST -
- }

Functions

XED_DLL_EXPORT xed_syntax_enum_t str2xed_syntax_enum_t (const char *s)
XED_DLL_EXPORT const char * xed_syntax_enum_t2str (const xed_syntax_enum_t p)
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_SYNTAX_ENUM_H_
-
- - - - - -
-   - - -

- -

-Definition at line 40 of file xed-syntax-enum.h.

-


Enumeration Type Documentation

-

- - - - -
- - - - -
enum xed_syntax_enum_t
-
- - - - - -
-   - - -

-

Enumerator:
- - - - - - -
XED_SYNTAX_INVALID  -
XED_SYNTAX_XED  -XED disassembly syntax.
XED_SYNTAX_ATT  -ATT SYSV disassembly syntax.
XED_SYNTAX_INTEL  -Intel disassembly syntax.
XED_SYNTAX_LAST  -
-
- -

-Definition at line 42 of file xed-syntax-enum.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_syntax_enum_t str2xed_syntax_enum_t const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT const char* xed_syntax_enum_t2str const xed_syntax_enum_t  p  ) 
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-types_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-types_8h-source.html deleted file mode 100644 index 149a048..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-types_8h-source.html +++ /dev/null @@ -1,103 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-types.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 
-00037 #ifndef _XED_TYPES_H_
-00038 # define _XED_TYPES_H_
-00039 
-00041 
-00042 #include "xed-common-hdrs.h"
-00043 
-00044 #if defined(__GNUC__) || defined(__ICC)
-00045 #  include <stdint.h>
-00046 #  define xed_uint8_t   uint8_t 
-00047 #  define xed_uint16_t  uint16_t
-00048 #  define xed_uint32_t  uint32_t
-00049 #  define xed_uint64_t  uint64_t
-00050 #  define xed_int8_t     int8_t 
-00051 #  define xed_int16_t    int16_t
-00052 #  define xed_int32_t    int32_t
-00053 #  define xed_int64_t    int64_t
-00054 #elif defined(_WIN32)
-00055 #  define xed_uint8_t  unsigned __int8
-00056 #  define xed_uint16_t unsigned __int16
-00057 #  define xed_uint32_t unsigned __int32
-00058 #  define xed_uint64_t unsigned __int64
-00059 #  define xed_int8_t   __int8
-00060 #  define xed_int16_t  __int16
-00061 #  define xed_int32_t  __int32
-00062 #  define xed_int64_t  __int64
-00063 #else
-00064 #  error "XED types unsupported platform? Need windows, gcc, or icc."
-00065 #endif
-00066 
-00067 typedef unsigned int  xed_uint_t;
-00068 typedef unsigned int  xed_bits_t;
-00069 typedef unsigned int  xed_bool_t;
-00070 
-00071 
-00073 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-types_8h.html b/misc/decoder_test/XED2/doc/html/xed-types_8h.html deleted file mode 100644 index 2f59234..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-types_8h.html +++ /dev/null @@ -1,129 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-types.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-types.h. -

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - -

Typedefs

typedef unsigned int xed_bits_t
typedef unsigned int xed_bool_t
typedef unsigned int xed_uint_t
-


Typedef Documentation

-

- - - - -
- - - - -
typedef unsigned int xed_bits_t
-
- - - - - -
-   - - -

- -

-Definition at line 68 of file xed-types.h.

-

- - - - -
- - - - -
typedef unsigned int xed_bool_t
-
- - - - - -
-   - - -

- -

-Definition at line 69 of file xed-types.h.

-

- - - - -
- - - - -
typedef unsigned int xed_uint_t
-
- - - - - -
-   - - -

- -

-Definition at line 67 of file xed-types.h.

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-util_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-util_8h-source.html deleted file mode 100644 index 2359152..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-util_8h-source.html +++ /dev/null @@ -1,257 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-util.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00035 
-00036 
-00037 
-00038 #ifndef _XED_UTIL_H_
-00039 # define _XED_UTIL_H_
-00040 
-00041 #include "xed-common-hdrs.h"
-00042 #include "xed-types.h"
-00043 #include "xed-portability.h"
-00044 
-00045   
-00047 // DEFINES
-00049 extern int xed_verbose;
-00050 #if defined(XED_MESSAGES)
-00051 # include <stdio.h> // only with XED_MESSAGES defined
-00052 extern  FILE* xed_log_file;
-00053 #endif
-00054 #define XED_EMIT_MESSAGES  (XED_MESSAGES==1 && xed_verbose >= 1)
-00055 #define XED_INFO_VERBOSE   (XED_MESSAGES==1 && xed_verbose >= 2)
-00056 #define XED_INFO2_VERBOSE  (XED_MESSAGES==1 && xed_verbose >= 3)
-00057 #define XED_VERBOSE        (XED_MESSAGES==1 && xed_verbose >= 4)
-00058 #define XED_MORE_VERBOSE   (XED_MESSAGES==1 && xed_verbose >= 5)
-00059 #define XED_VERY_VERBOSE   (XED_MESSAGES==1 && xed_verbose >= 6)
-00060 
-00061 #if defined(__GNUC__)
-00062 # define XED_FUNCNAME __func__
-00063 #else
-00064 # define XED_FUNCNAME ""
-00065 #endif
-00066 
-00067 #if XED_MESSAGES==1
-00068 #define XED2IMSG(x)                                             \
-00069     do {                                                        \
-00070         if (XED_EMIT_MESSAGES) {                                \
-00071             if (XED_VERY_VERBOSE) {                             \
-00072                 fprintf(xed_log_file,"%s:%d:%s: ",              \
-00073                         __FILE__, __LINE__, XED_FUNCNAME);      \
-00074             }                                                   \
-00075             fprintf x;                                          \
-00076             fflush(xed_log_file);                               \
-00077         }                                                       \
-00078     } while(0)
-00079 
-00080 #define XED2TMSG(x)                                             \
-00081     do {                                                        \
-00082         if (XED_VERBOSE) {                                      \
-00083             if (XED_VERY_VERBOSE) {                             \
-00084                 fprintf(xed_log_file,"%s:%d:%s: ",              \
-00085                         __FILE__, __LINE__, XED_FUNCNAME);      \
-00086             }                                                   \
-00087             fprintf x;                                          \
-00088             fflush(xed_log_file);                               \
-00089         }                                                       \
-00090     } while(0)
-00091 
-00092 #define XED2VMSG(x)                                             \
-00093     do {                                                        \
-00094         if (XED_VERY_VERBOSE) {                                 \
-00095             fprintf(xed_log_file,"%s:%d:%s: ",                  \
-00096                     __FILE__, __LINE__, XED_FUNCNAME);          \
-00097             fprintf x;                                          \
-00098             fflush(xed_log_file);                               \
-00099         }                                                       \
-00100     } while(0)
-00101 
-00102 #define XED2DIE(x)                                              \
-00103     do {                                                        \
-00104         if (XED_EMIT_MESSAGES) {                                \
-00105             fprintf(xed_log_file,"%s:%d:%s: ",                  \
-00106                              __FILE__, __LINE__, XED_FUNCNAME); \
-00107             fprintf x;                                          \
-00108             fflush(xed_log_file);                               \
-00109         }                                                       \
-00110         xed_assert(0);                                          \
-00111     } while(0)
-00112 
-00113 
-00114 
-00115 #else
-00116 # define XED2IMSG(x) 
-00117 # define XED2TMSG(x)
-00118 # define XED2VMSG(x)
-00119 # define XED2DIE(x) do { xed_assert(0); } while(0)
-00120 #endif
-00121 
-00122 #if defined(XED_ASSERTS)
-00123 #  define xed_assert(x)  do { if (( x )== 0) xed_internal_assert( #x, __FILE__, __LINE__); } while(0) 
-00124 #else
-00125 #  define xed_assert(x)  do {  } while(0) 
-00126 #endif
-00127 XED_NORETURN XED_NOINLINE XED_DLL_EXPORT void xed_internal_assert(const char* s, const char* file, int line);
-00128 
-00148 XED_DLL_EXPORT void xed_register_abort_function(void (*fn)(const char* msg,
-00149                                                            const char* file, int line, void* other),
-00150                                                 void* other);
-00151 
-00152 
-00154 // PROTOTYPES
-00156 char* xed_downcase_buf(char* s);
-00157 
-00158 int xed_itoa(char* buf, xed_uint64_t f, int buflen);
-00159 int xed_itoa_hex_zeros(char* buf, xed_uint64_t f, xed_uint_t xed_bits_to_print, xed_bool_t leading_zeros, int buflen);
-00160 int xed_itoa_hex(char* buf, xed_uint64_t f, xed_uint_t xed_bits_to_print, int buflen);
-00161 int xed_itoa_signed(char* buf, xed_int64_t f, int buflen);
-00162 
-00163 char xed_to_ascii_hex_nibble(xed_uint_t x);
-00164 
-00165 int xed_sprintf_uint8_hex(char* buf, xed_uint8_t x, int buflen);
-00166 int xed_sprintf_uint16_hex(char* buf, xed_uint16_t x, int buflen);
-00167 int xed_sprintf_uint32_hex(char* buf, xed_uint32_t x, int buflen);
-00168 int xed_sprintf_uint64_hex(char* buf, xed_uint64_t x, int buflen);
-00169 int xed_sprintf_uint8(char* buf, xed_uint8_t x, int buflen);
-00170 int xed_sprintf_uint16(char* buf, xed_uint16_t x, int buflen);
-00171 int xed_sprintf_uint32(char* buf, xed_uint32_t x, int buflen);
-00172 int xed_sprintf_uint64(char* buf, xed_uint64_t x, int buflen);
-00173 int xed_sprintf_int8(char* buf, xed_int8_t x, int buflen);
-00174 int xed_sprintf_int16(char* buf, xed_int16_t x, int buflen);
-00175 int xed_sprintf_int32(char* buf, xed_int32_t x, int buflen);
-00176 int xed_sprintf_int64(char* buf, xed_int64_t x, int buflen);
-00177 
-00178 
-00180 XED_DLL_EXPORT void xed_set_log_file(FILE* o);
-00181 
-00182 
-00184 XED_DLL_EXPORT void xed_set_verbosity(int v);
-00185 
-00186 void xed_derror(const char* s);
-00187 void xed_dwarn(const char* s);
-00188 
-00189 XED_DLL_EXPORT xed_int64_t xed_sign_extend32_64(xed_int32_t x);
-00190 XED_DLL_EXPORT xed_int64_t xed_sign_extend16_64(xed_int16_t x);
-00191 XED_DLL_EXPORT xed_int64_t xed_sign_extend8_64(xed_int8_t x);
-00192 
-00193 XED_DLL_EXPORT xed_int32_t xed_sign_extend16_32(xed_int16_t x);
-00194 XED_DLL_EXPORT xed_int32_t xed_sign_extend8_32(xed_int8_t x);
-00195 
-00196 XED_DLL_EXPORT xed_int16_t xed_sign_extend8_16(xed_int8_t x);
-00197 
-00199 XED_DLL_EXPORT xed_int32_t xed_sign_extend_arbitrary_to_32(xed_uint32_t x, unsigned int bits);
-00200 
-00202 XED_DLL_EXPORT xed_int64_t xed_sign_extend_arbitrary_to_64(xed_uint64_t x, unsigned int bits);
-00203 
-00204 
-00205 XED_DLL_EXPORT xed_uint64_t xed_zero_extend32_64(xed_uint32_t x);
-00206 XED_DLL_EXPORT xed_uint64_t xed_zero_extend16_64(xed_uint16_t x);
-00207 XED_DLL_EXPORT xed_uint64_t xed_zero_extend8_64(xed_uint8_t x);
-00208 
-00209 XED_DLL_EXPORT xed_uint32_t xed_zero_extend16_32(xed_uint16_t x);
-00210 XED_DLL_EXPORT xed_uint32_t xed_zero_extend8_32(xed_uint8_t x);
-00211 
-00212 XED_DLL_EXPORT xed_uint16_t xed_zero_extend8_16(xed_uint8_t x);
-00213 
-00214 XED_DLL_EXPORT xed_int32_t 
-00215 xed_little_endian_to_int32(xed_uint64_t x, unsigned int len);
-00216 
-00217 XED_DLL_EXPORT xed_int64_t 
-00218 xed_little_endian_to_int64(xed_uint64_t x, unsigned int len);
-00219 XED_DLL_EXPORT xed_uint64_t 
-00220 xed_little_endian_to_uint64(xed_uint64_t x, unsigned int len);
-00221 
-00222 XED_DLL_EXPORT xed_int64_t 
-00223 xed_little_endian_hilo_to_int64(xed_uint32_t hi_le, xed_uint32_t lo_le, unsigned int len);
-00224 XED_DLL_EXPORT xed_uint64_t 
-00225 xed_little_endian_hilo_to_uint64(xed_uint32_t hi_le, xed_uint32_t lo_le, unsigned int len);
-00226 
-00227 XED_DLL_EXPORT xed_uint8_t
-00228 xed_get_byte(xed_uint64_t x, unsigned int i, unsigned int len);
-00229 
-00230 static XED_INLINE xed_uint64_t xed_make_uint64(xed_uint32_t hi, xed_uint32_t lo) {
-00231     xed_uint64_t x,y;
-00232     x=hi;
-00233     y= (x<<32) | lo;
-00234     return y;
-00235 }
-00236 static XED_INLINE xed_int64_t xed_make_int64(xed_uint32_t hi, xed_uint32_t lo) {
-00237     xed_uint64_t x,y;
-00238     x=hi;
-00239     y= (x<<32) | lo;
-00240     return STATIC_CAST(xed_int64_t,y);
-00241 }
-00242 
-00249 XED_DLL_EXPORT xed_uint_t xed_shortest_width_unsigned(xed_uint64_t x, xed_uint8_t legal_widths);
-00250 
-00256 XED_DLL_EXPORT xed_uint_t xed_shortest_width_signed(xed_int64_t x, xed_uint8_t legal_widths);
-00257 
-00259 // GLOBALS
-00261 
-00263 #endif
-00264 //Local Variables:
-00265 //pref: "../../xed-util.c"
-00266 //End:
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-util_8h.html b/misc/decoder_test/XED2/doc/html/xed-util_8h.html deleted file mode 100644 index 4a2ab5d..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-util_8h.html +++ /dev/null @@ -1,2289 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-util.h File Reference


Detailed Description

-
Author:
Mark Charney <mark.charney@intel.com>
- -

-Definition in file xed-util.h. -

-#include "xed-common-hdrs.h"
-#include "xed-types.h"
-#include "xed-portability.h"
-#include <stdio.h>
- -

-Go to the source code of this file. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Defines

#define XED2DIE(x)   do { xed_assert(0); } while(0)
#define XED2IMSG(x)
#define XED2TMSG(x)
#define XED2VMSG(x)
#define xed_assert(x)   do { } while(0)
#define XED_EMIT_MESSAGES   (XED_MESSAGES==1 && xed_verbose >= 1)
#define XED_FUNCNAME   ""
#define XED_INFO2_VERBOSE   (XED_MESSAGES==1 && xed_verbose >= 3)
#define XED_INFO_VERBOSE   (XED_MESSAGES==1 && xed_verbose >= 2)
#define XED_MORE_VERBOSE   (XED_MESSAGES==1 && xed_verbose >= 5)
#define XED_VERBOSE   (XED_MESSAGES==1 && xed_verbose >= 4)
#define XED_VERY_VERBOSE   (XED_MESSAGES==1 && xed_verbose >= 6)

Functions

void xed_derror (const char *s)
char * xed_downcase_buf (char *s)
void xed_dwarn (const char *s)
XED_DLL_EXPORT xed_uint8_t xed_get_byte (xed_uint64_t x, unsigned int i, unsigned int len)
XED_NORETURN XED_NOINLINE
-XED_DLL_EXPORT void 
xed_internal_assert (const char *s, const char *file, int line)
int xed_itoa (char *buf, xed_uint64_t f, int buflen)
int xed_itoa_hex (char *buf, xed_uint64_t f, xed_uint_t xed_bits_to_print, int buflen)
int xed_itoa_hex_zeros (char *buf, xed_uint64_t f, xed_uint_t xed_bits_to_print, xed_bool_t leading_zeros, int buflen)
int xed_itoa_signed (char *buf, xed_int64_t f, int buflen)
XED_DLL_EXPORT xed_int64_t xed_little_endian_hilo_to_int64 (xed_uint32_t hi_le, xed_uint32_t lo_le, unsigned int len)
XED_DLL_EXPORT xed_uint64_t xed_little_endian_hilo_to_uint64 (xed_uint32_t hi_le, xed_uint32_t lo_le, unsigned int len)
XED_DLL_EXPORT xed_int32_t xed_little_endian_to_int32 (xed_uint64_t x, unsigned int len)
XED_DLL_EXPORT xed_int64_t xed_little_endian_to_int64 (xed_uint64_t x, unsigned int len)
XED_DLL_EXPORT xed_uint64_t xed_little_endian_to_uint64 (xed_uint64_t x, unsigned int len)
static XED_INLINE xed_int64_t xed_make_int64 (xed_uint32_t hi, xed_uint32_t lo)
static XED_INLINE xed_uint64_t xed_make_uint64 (xed_uint32_t hi, xed_uint32_t lo)
XED_DLL_EXPORT void xed_register_abort_function (void(*fn)(const char *msg, const char *file, int line, void *other), void *other)
 This is for registering a function to be called during XED's assert processing.
XED_DLL_EXPORT void xed_set_log_file (FILE *o)
 Set the FILE* for XED's log msgs.
XED_DLL_EXPORT void xed_set_verbosity (int v)
 Set the verbosity level for XED.
XED_DLL_EXPORT xed_uint_t xed_shortest_width_signed (xed_int64_t x, xed_uint8_t legal_widths)
 returns the number of bytes required to store the SIGNED number x given a mask of legal lengths.
XED_DLL_EXPORT xed_uint_t xed_shortest_width_unsigned (xed_uint64_t x, xed_uint8_t legal_widths)
 returns the number of bytes required to store the UNSIGNED number x given a mask of legal lengths.
XED_DLL_EXPORT xed_int32_t xed_sign_extend16_32 (xed_int16_t x)
XED_DLL_EXPORT xed_int64_t xed_sign_extend16_64 (xed_int16_t x)
XED_DLL_EXPORT xed_int64_t xed_sign_extend32_64 (xed_int32_t x)
XED_DLL_EXPORT xed_int16_t xed_sign_extend8_16 (xed_int8_t x)
XED_DLL_EXPORT xed_int32_t xed_sign_extend8_32 (xed_int8_t x)
XED_DLL_EXPORT xed_int64_t xed_sign_extend8_64 (xed_int8_t x)
XED_DLL_EXPORT xed_int32_t xed_sign_extend_arbitrary_to_32 (xed_uint32_t x, unsigned int bits)
 arbitrary sign extension from a qty of "bits" length to 32b
XED_DLL_EXPORT xed_int64_t xed_sign_extend_arbitrary_to_64 (xed_uint64_t x, unsigned int bits)
 arbitrary sign extension from a qty of "bits" length to 64b
int xed_sprintf_int16 (char *buf, xed_int16_t x, int buflen)
int xed_sprintf_int32 (char *buf, xed_int32_t x, int buflen)
int xed_sprintf_int64 (char *buf, xed_int64_t x, int buflen)
int xed_sprintf_int8 (char *buf, xed_int8_t x, int buflen)
int xed_sprintf_uint16 (char *buf, xed_uint16_t x, int buflen)
int xed_sprintf_uint16_hex (char *buf, xed_uint16_t x, int buflen)
int xed_sprintf_uint32 (char *buf, xed_uint32_t x, int buflen)
int xed_sprintf_uint32_hex (char *buf, xed_uint32_t x, int buflen)
int xed_sprintf_uint64 (char *buf, xed_uint64_t x, int buflen)
int xed_sprintf_uint64_hex (char *buf, xed_uint64_t x, int buflen)
int xed_sprintf_uint8 (char *buf, xed_uint8_t x, int buflen)
int xed_sprintf_uint8_hex (char *buf, xed_uint8_t x, int buflen)
char xed_to_ascii_hex_nibble (xed_uint_t x)
XED_DLL_EXPORT xed_uint32_t xed_zero_extend16_32 (xed_uint16_t x)
XED_DLL_EXPORT xed_uint64_t xed_zero_extend16_64 (xed_uint16_t x)
XED_DLL_EXPORT xed_uint64_t xed_zero_extend32_64 (xed_uint32_t x)
XED_DLL_EXPORT xed_uint16_t xed_zero_extend8_16 (xed_uint8_t x)
XED_DLL_EXPORT xed_uint32_t xed_zero_extend8_32 (xed_uint8_t x)
XED_DLL_EXPORT xed_uint64_t xed_zero_extend8_64 (xed_uint8_t x)

Variables

FILE * xed_log_file
int xed_verbose
-


Define Documentation

-

- - - - -
- - - - - - - - - -
#define XED2DIE  )    do { xed_assert(0); } while(0)
-
- - - - - -
-   - - -

- -

-Definition at line 119 of file xed-util.h.

-

- - - - -
- - - - - - - - - -
#define XED2IMSG  ) 
-
- - - - - -
-   - - -

- -

-Definition at line 116 of file xed-util.h.

-

- - - - -
- - - - - - - - - -
#define XED2TMSG  ) 
-
- - - - - -
-   - - -

- -

-Definition at line 117 of file xed-util.h.

-

- - - - -
- - - - - - - - - -
#define XED2VMSG  ) 
-
- - - - - -
-   - - -

- -

-Definition at line 118 of file xed-util.h.

-

- - - - -
- - - - - - - - - -
#define xed_assert  )    do { } while(0)
-
- - - - - -
-   - - -

- -

-Definition at line 125 of file xed-util.h.

-

- - - - -
- - - - -
#define XED_EMIT_MESSAGES   (XED_MESSAGES==1 && xed_verbose >= 1)
-
- - - - - -
-   - - -

- -

-Definition at line 54 of file xed-util.h.

-

- - - - -
- - - - -
#define XED_FUNCNAME   ""
-
- - - - - -
-   - - -

- -

-Definition at line 64 of file xed-util.h.

-

- - - - -
- - - - -
#define XED_INFO2_VERBOSE   (XED_MESSAGES==1 && xed_verbose >= 3)
-
- - - - - -
-   - - -

- -

-Definition at line 56 of file xed-util.h.

-

- - - - -
- - - - -
#define XED_INFO_VERBOSE   (XED_MESSAGES==1 && xed_verbose >= 2)
-
- - - - - -
-   - - -

- -

-Definition at line 55 of file xed-util.h.

-

- - - - -
- - - - -
#define XED_MORE_VERBOSE   (XED_MESSAGES==1 && xed_verbose >= 5)
-
- - - - - -
-   - - -

- -

-Definition at line 58 of file xed-util.h.

-

- - - - -
- - - - -
#define XED_VERBOSE   (XED_MESSAGES==1 && xed_verbose >= 4)
-
- - - - - -
-   - - -

- -

-Definition at line 57 of file xed-util.h.

-

- - - - -
- - - - -
#define XED_VERY_VERBOSE   (XED_MESSAGES==1 && xed_verbose >= 6)
-
- - - - - -
-   - - -

- -

-Definition at line 59 of file xed-util.h.

-


Function Documentation

-

- - - - -
- - - - - - - - - -
void xed_derror const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
char* xed_downcase_buf char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
void xed_dwarn const char *  s  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_uint8_t xed_get_byte xed_uint64_t  x,
unsigned int  i,
unsigned int  len
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_NORETURN XED_NOINLINE XED_DLL_EXPORT void xed_internal_assert const char *  s,
const char *  file,
int  line
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int xed_itoa char *  buf,
xed_uint64_t  f,
int  buflen
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
int xed_itoa_hex char *  buf,
xed_uint64_t  f,
xed_uint_t  xed_bits_to_print,
int  buflen
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
int xed_itoa_hex_zeros char *  buf,
xed_uint64_t  f,
xed_uint_t  xed_bits_to_print,
xed_bool_t  leading_zeros,
int  buflen
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int xed_itoa_signed char *  buf,
xed_int64_t  f,
int  buflen
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_int64_t xed_little_endian_hilo_to_int64 xed_uint32_t  hi_le,
xed_uint32_t  lo_le,
unsigned int  len
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_uint64_t xed_little_endian_hilo_to_uint64 xed_uint32_t  hi_le,
xed_uint32_t  lo_le,
unsigned int  len
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_int32_t xed_little_endian_to_int32 xed_uint64_t  x,
unsigned int  len
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_int64_t xed_little_endian_to_int64 xed_uint64_t  x,
unsigned int  len
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_uint64_t xed_little_endian_to_uint64 xed_uint64_t  x,
unsigned int  len
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
static XED_INLINE xed_int64_t xed_make_int64 xed_uint32_t  hi,
xed_uint32_t  lo
[static]
-
- - - - - -
-   - - -

- -

-Definition at line 236 of file xed-util.h.

-

- - - - -
- - - - - - - - - - - - - - - - - - -
static XED_INLINE xed_uint64_t xed_make_uint64 xed_uint32_t  hi,
xed_uint32_t  lo
[static]
-
- - - - - -
-   - - -

- -

-Definition at line 230 of file xed-util.h.

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_set_log_file FILE *  o  ) 
-
- - - - - -
-   - - -

-Set the FILE* for XED's log msgs. -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT void xed_set_verbosity int  v  ) 
-
- - - - - -
-   - - -

-Set the verbosity level for XED. -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_shortest_width_signed xed_int64_t  x,
xed_uint8_t  legal_widths
-
- - - - - -
-   - - -

-returns the number of bytes required to store the SIGNED number x given a mask of legal lengths. -

-For the legal_widths argument, bit 0 implies 1 byte is a legal return width, bit 1 implies that 2 bytes is a legal return width, bit 2 implies that 4 bytes is a legal return width. This returns 8 (indicating 8B) if none of the provided legal widths applies.

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_uint_t xed_shortest_width_unsigned xed_uint64_t  x,
xed_uint8_t  legal_widths
-
- - - - - -
-   - - -

-returns the number of bytes required to store the UNSIGNED number x given a mask of legal lengths. -

-For the legal_widths argument, bit 0 implies 1 byte is a legal return width, bit 1 implies that 2 bytes is a legal return width, bit 2 implies that 4 bytes is a legal return width. This returns 8 (indicating 8B) if none of the provided legal widths applies.

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_int32_t xed_sign_extend16_32 xed_int16_t  x  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_int64_t xed_sign_extend16_64 xed_int16_t  x  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_int64_t xed_sign_extend32_64 xed_int32_t  x  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_int16_t xed_sign_extend8_16 xed_int8_t  x  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_int32_t xed_sign_extend8_32 xed_int8_t  x  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_int64_t xed_sign_extend8_64 xed_int8_t  x  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_int32_t xed_sign_extend_arbitrary_to_32 xed_uint32_t  x,
unsigned int  bits
-
- - - - - -
-   - - -

-arbitrary sign extension from a qty of "bits" length to 32b -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - -
XED_DLL_EXPORT xed_int64_t xed_sign_extend_arbitrary_to_64 xed_uint64_t  x,
unsigned int  bits
-
- - - - - -
-   - - -

-arbitrary sign extension from a qty of "bits" length to 64b -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int xed_sprintf_int16 char *  buf,
xed_int16_t  x,
int  buflen
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int xed_sprintf_int32 char *  buf,
xed_int32_t  x,
int  buflen
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int xed_sprintf_int64 char *  buf,
xed_int64_t  x,
int  buflen
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int xed_sprintf_int8 char *  buf,
xed_int8_t  x,
int  buflen
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int xed_sprintf_uint16 char *  buf,
xed_uint16_t  x,
int  buflen
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int xed_sprintf_uint16_hex char *  buf,
xed_uint16_t  x,
int  buflen
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int xed_sprintf_uint32 char *  buf,
xed_uint32_t  x,
int  buflen
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int xed_sprintf_uint32_hex char *  buf,
xed_uint32_t  x,
int  buflen
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int xed_sprintf_uint64 char *  buf,
xed_uint64_t  x,
int  buflen
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int xed_sprintf_uint64_hex char *  buf,
xed_uint64_t  x,
int  buflen
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int xed_sprintf_uint8 char *  buf,
xed_uint8_t  x,
int  buflen
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int xed_sprintf_uint8_hex char *  buf,
xed_uint8_t  x,
int  buflen
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
char xed_to_ascii_hex_nibble xed_uint_t  x  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint32_t xed_zero_extend16_32 xed_uint16_t  x  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint64_t xed_zero_extend16_64 xed_uint16_t  x  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint64_t xed_zero_extend32_64 xed_uint32_t  x  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint16_t xed_zero_extend8_16 xed_uint8_t  x  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint32_t xed_zero_extend8_32 xed_uint8_t  x  ) 
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - - - - - - -
XED_DLL_EXPORT xed_uint64_t xed_zero_extend8_64 xed_uint8_t  x  ) 
-
- - - - - -
-   - - -

-

-


Variable Documentation

-

- - - - -
- - - - -
FILE* xed_log_file
-
- - - - - -
-   - - -

-

-

- - - - -
- - - - -
int xed_verbose
-
- - - - - -
-   - - -

-

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-version_8h-source.html b/misc/decoder_test/XED2/doc/html/xed-version_8h-source.html deleted file mode 100644 index 0c962f1..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-version_8h-source.html +++ /dev/null @@ -1,73 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-version.h

Go to the documentation of this file.
00001 /*BEGIN_LEGAL 
-00002 Copyright (c) 2007, Intel Corp.
-00003 All rights reserved.
-00004 
-00005 Redistribution and use in source and binary forms, with or without
-00006 modification, are permitted provided that the following conditions are
-00007 met:
-00008 
-00009     * Redistributions of source code must retain the above copyright
-00010       notice, this list of conditions and the following disclaimer.
-00011 
-00012     * Redistributions in binary form must reproduce the above
-00013       copyright notice, this list of conditions and the following
-00014       disclaimer in the documentation and/or other materials provided
-00015       with the distribution.
-00016 
-00017     * Neither the name of Intel Corporation nor the names of its
-00018       contributors may be used to endorse or promote products derived
-00019       from this software without specific prior written permission.
-00020 
-00021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-00022 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-00023 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-00024 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-00025 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-00026 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-00027 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-00028 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-00029 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-00030 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-00031 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-00032 END_LEGAL */
-00033 
-00034 #if !defined(_XED_VERSION_H_)
-00035 # define _XED_VERSION_H_
-00036 #include "xed-common-hdrs.h"
-00037 
-00040 XED_DLL_EXPORT char* xed_get_version();
-00041 #endif
-

Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/doc/html/xed-version_8h.html b/misc/decoder_test/XED2/doc/html/xed-version_8h.html deleted file mode 100644 index 2077aeb..0000000 --- a/misc/decoder_test/XED2/doc/html/xed-version_8h.html +++ /dev/null @@ -1,75 +0,0 @@ - - -XED2: XED2 User Guide - Thu May 15 03:15:09 2008 - - - - -
-
- -

xed-version.h File Reference

-

-#include "xed-common-hdrs.h"
- -

-Go to the source code of this file. - - - - - - - - -

Defines

#define _XED_VERSION_H_

Functions

XED_DLL_EXPORT char * xed_get_version ()
 Returns a string representing XED svn commit revision and time stamp.
-


Define Documentation

-

- - - - -
- - - - -
#define _XED_VERSION_H_
-
- - - - - -
-   - - -

- -

-Definition at line 35 of file xed-version.h.

-


Generated on Thu May 15 03:15:09 2008 for XED2 by  - -doxygen 1.4.6
- - diff --git a/misc/decoder_test/XED2/examples/makefile b/misc/decoder_test/XED2/examples/makefile deleted file mode 100644 index 8b8cc20..0000000 --- a/misc/decoder_test/XED2/examples/makefile +++ /dev/null @@ -1,151 +0,0 @@ -#BEGIN_LEGAL -#Copyright (c) 2007, Intel Corp. -#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 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 COPYRIGHT -#OWNER OR 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 -# Makefile for examples - -#################################################################### -# External tools -COMPILER=gnu -#COMPILER=ms -ifeq ($(COMPILER),gnu) - CC = gcc - CXX = g++ - CXX_LINKER = $(CXX) - CC_LINKER = $(CC) - RM=rm - OBJEXT=o - EXEEXT= - CXXSRCEXT=cpp - CCSRCEXT=c - LIBEXT=a - LINKOUT=-o - OUTOPT=-o - COPT=-c - IOPT=-I - CXXFLAGS = -MMD - CCFLAGS = -MMD - LDFLAGS = - #The windows library does not work with cygwin, but in general on cygwin, - # enable these: - #CXXFLAGS += -mno-cygwin - #CCFLAGS += -mno-cygwin - #LDFLAGS += -mno-cygwin -else - CC = cl - CXX = cl - # you want MSVS's link, not cygwin's link. - # make sure you move cygwin's /bin/link command out of the way! - CXX_LINKER = link - CC_LINKER = link - RM=rm - OBJEXT=obj - EXEEXT=.exe - CXXSRCEXT=cpp - CCSRCEXT=c - LIBEXT=lib - LINKOUT=/OUT: - OUTOPT=/Fo - COPT=/c - IOPT=/I - CXXFLAGS = /nologo /EHsc - CCFLAGS = /nologo - LDFLAGS = /nologo -endif -################################################################### -CXXFLAGS += $(IOPT)../include -CCFLAGS += $(IOPT)../include -LIBXED = ../lib/libxed.${LIBEXT} -EXTRA_LDLIBS_TARGET = -################################################################### -.PHONY: demos cmdline clean-examples test-xed - -XED = xed -XED_DEMOS = xed-min xed-tester xed-ex1 xed-ex2 xed-ex3 xed-ex4 - -XED_DEMOS_SUFFIXED= $(XED_DEMOS:%=%$(EXEEXT)) -XED_SUFFIXED= $(XED:%=%$(EXEEXT)) - -XED_TEST_APPS = ${XED_SUFFIXED} ${XED_DEMOS_SUFFIXED} -all: ${XED_TEST_APPS} -demos: ${XED_DEMOS_SUFFIXED} -cmdline: ${XED_SUFFIXED} - -###################################################################### - -%.${OBJEXT}: %.${CXXSRCEXT} - ${CXX} ${COPT} ${CXXFLAGS} $< ${OUTOPT}$@ -%.${OBJEXT}: %.${CCSRCEXT} - ${CC} ${COPT} ${CCFLAGS} $< ${OUTOPT}$@ - -######################################################################## -XED_CXX_COMMON_OBJ = xed-examples-ostreams.${OBJEXT} xed-enc-lang.${OBJEXT} -XED_CC_COMMON_OBJ = xed-examples-util.${OBJEXT} - -xed-min${EXEEXT}: xed-min.${OBJEXT} ${LIBXED} - ${CXX_LINKER} ${LDFLAGS} ${LINKOUT}$@ $^ ${EXTRA_LDLIBS_TARGET} - -xed-tester${EXEEXT}: xed-tester.${OBJEXT} ${LIBXED} - ${CXX_LINKER} ${LDFLAGS} ${LINKOUT}$@ $^ ${EXTRA_LDLIBS_TARGET} - -xed-ex1${EXEEXT}: xed-ex1.${OBJEXT} ${XED_CC_COMMON_OBJ} ${XED_CXX_COMMON_OBJ} ${LIBXED} - ${CXX_LINKER} ${LDFLAGS} ${LINKOUT}$@ $^ ${EXTRA_LDLIBS_TARGET} - -xed-ex2${EXEEXT}: xed-ex2.${OBJEXT} ${LIBXED} - ${CXX_LINKER} ${LDFLAGS} ${LINKOUT}$@ $^ ${EXTRA_LDLIBS_TARGET} - -xed-ex3${EXEEXT}: xed-ex3.${OBJEXT} ${XED_CC_COMMON_OBJ} ${XED_CXX_COMMON_OBJ} ${LIBXED} - ${CXX_LINKER} ${LDFLAGS} ${LINKOUT}$@ $^ ${EXTRA_LDLIBS_TARGET} - -xed-ex4${EXEEXT}: xed-ex4.${OBJEXT} ${XED_CC_COMMON_OBJ} ${LIBXED} - ${CC_LINKER} ${LDFLAGS} ${LINKOUT}$@ $^ ${EXTRA_LDLIBS_TARGET} - -################################################################# - -XED_OBJ = xed.${OBJEXT} -XED_OBJ += xed-disas-macho.${OBJEXT} -XED_OBJ += xed-disas-pecoff.${OBJEXT} -XED_OBJ += xed-disas-raw.${OBJEXT} -XED_OBJ += xed-disas-elf.${OBJEXT} -XED_OBJ += ${XED_CC_COMMON_OBJ} -XED_OBJ += ${XED_CXX_COMMON_OBJ} - -xed${EXEEXT}: ${XED_OBJ} ${LIBXED} - ${CXX_LINKER} ${LDFLAGS} ${LINKOUT}$@ $^ ${EXTRA_LDLIBS_TARGET} - -################################################################# - -clean: - -${RM} *.o *.obj *.d *.exe > /dev/null 2>&1 - -${RM} ${XED_TEST_APPS} > /dev/null 2>&1 - -################################################################# --include *.d diff --git a/misc/decoder_test/XED2/examples/xed-disas-elf.H b/misc/decoder_test/XED2/examples/xed-disas-elf.H deleted file mode 100644 index 954a9db..0000000 --- a/misc/decoder_test/XED2/examples/xed-disas-elf.H +++ /dev/null @@ -1,58 +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-disas-elf.H -/// @author Mark Charney - -#if !defined(_XED_DISAS_ELF_H_) -# define _XED_DISAS_ELF_H_ -#if defined(__linux) || defined(__linux__) -# define XED_ELF_READER -#endif -# if defined(XED_ELF_READER) - -extern "C" { -#include "xed-interface.h" -#include "xed-examples-util.h" -} - -void -xed_disas_elf(const char* input_file_name, - const xed_state_t* dstate, - int ninst, - xed_bool_t sixty_four_bit, - xed_bool_t decode_only, - const char* target_section); - -# endif -#endif -//Local Variables: -//pref: "../../examples/xed-disas-elf.cpp" -//End: diff --git a/misc/decoder_test/XED2/examples/xed-disas-elf.cpp b/misc/decoder_test/XED2/examples/xed-disas-elf.cpp deleted file mode 100644 index dbc3a04..0000000 --- a/misc/decoder_test/XED2/examples/xed-disas-elf.cpp +++ /dev/null @@ -1,553 +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 disas-elf.cpp -/// @author Mark Charney - -#include "xed-disas-elf.H" - -#if defined(XED_ELF_READER) - -//////////////////////////////////////////////////////////////////////////// -#include - -extern "C" { -#include "xed-interface.h" -#include "xed-portability.h" -#include "xed-examples-util.h" -} - -#include -#include -#include -#include -#include -using namespace std; -//////////////////////////////////////////////////////////////////////////// - - -char* -lookup32(Elf32_Word stoffset, - void* start, - Elf32_Off offset) -{ - char* p = (char*)start + offset; - char* q = p + stoffset; - // int i; - //cout << "p = " << (unsigned int) p << endl; - //cout << "q = " << (unsigned int) q << endl; - //for(i=0;i<20;i++) - //{ - // cout << q[i]; - //} - //cout << endl; - return q; -} - -char* -lookup64(Elf64_Word stoffset, - void* start, - Elf64_Off offset) -{ - char* p = (char*)start + offset; - char* q = p + stoffset; - //int i; - //cout << "p = " << (unsigned int) p << endl; - //cout << "q = " << (unsigned int) q << endl; - //for( i=0;i<20;i++) - //{ - // cout << q[i]; - //} - //cout << endl; - return q; -} - -#include -void make_symbol_vector(map* sym_map, - vector* sym_vec) -{ - map::iterator i = sym_map->begin(); - for( ; i != sym_map->end() ;i ++) { - sym_vec->push_back(i->first); - } - sort(sym_vec->begin(), sym_vec->end()); -} - - -#include -uint64_t find_symbol_address(vector* sym_vec, xed_uint64_t tgt) -{ - vector::iterator i = lower_bound(sym_vec->begin(), sym_vec->end(), tgt); - if (i == sym_vec->end()) - return 0; - if (*i > tgt) { - // take previous value - if (i != sym_vec->begin()) - return *(i-1); - } - if (*i == tgt) { - return *i; - } - return 0; - -} - -static vector* global_sym_vec=0; -uint64_t find_symbol_address_global(xed_uint64_t tgt) -{ - return find_symbol_address(global_sym_vec, tgt); -} - -static map* global_sym_map; -char* get_symbol(xed_uint64_t a) { - map::iterator i = global_sym_map->find(a); - if (i != global_sym_map->end()) { - return i->second; - } - return 0; -} - - -int xed_disassembly_callback_function( - uint64_t address, - char* symbol_buffer, - uint32_t buffer_length, - uint64_t* offset, - void* caller_data) -{ - (void)caller_data; /* not used */ - uint64_t symbol_address = find_symbol_address_global(address); - if (symbol_address) { - char* symbol = get_symbol(symbol_address); - if (symbol) { - if (xed_strlen(symbol) < buffer_length) - xed_strncpy(symbol_buffer, symbol, buffer_length); - else { - xed_strncpy(symbol_buffer, symbol, buffer_length-1); - symbol_buffer[buffer_length-1]=0; - } - *offset = address - symbol_address; - return 1; - } - } - return 0; -} - -void xed_disas_elf_init() { - xed_register_disassembly_callback(xed_disassembly_callback_function); -} - - - -void -disas_test32(const xed_state_t* dstate, - void* start, - Elf32_Off offset, - Elf32_Word size, - int ninst, - Elf32_Addr runtime_vaddr, - bool decode_only, - map& sym_map, - vector& sym_vec) -{ - unsigned char* s = (unsigned char*)start; - unsigned char* a = (unsigned char*)start + offset; - unsigned char* q = a + size; // end of region - - // pass in a function to retreive valid symbol names - global_sym_map = & sym_map; - global_sym_vec = & sym_vec; - xed_disas_test(dstate, s,a,q, ninst, runtime_vaddr, decode_only,get_symbol); -} - -void -disas_test64(const xed_state_t* dstate, - void* start, - Elf64_Off offset, - Elf64_Word size, - int ninst, - Elf64_Addr runtime_vaddr, - bool decode_only, - map& sym_map, - vector& sym_vec) -{ - unsigned char* s = (unsigned char*)start; - unsigned char* a = (unsigned char*)start + offset; - unsigned char* q = a + size; // end of region - - // pass in a function to retreive valid symbol names - global_sym_map = & sym_map; - global_sym_vec = & sym_vec; - xed_disas_test(dstate, s,a,q, ninst, runtime_vaddr, decode_only,get_symbol); -} - - -void -process_elf32(void* start, - unsigned int length, - const char* tgt_section, - const xed_state_t* dstate, - int ninst, - xed_bool_t decode_only, - map& sym_map, - vector& sym_vec) -{ - Elf32_Ehdr* elf_hdr = (Elf32_Ehdr*) start; - if (elf_hdr->e_machine != EM_386) { - cerr << "Not an IA32 binary. Consider using the -64 switch" << endl; - exit(1); - } - - Elf32_Off shoff = elf_hdr->e_shoff; // section hdr table offset - Elf32_Shdr* shp = (Elf32_Shdr*) ((char*)start + shoff); - int sect_strings = elf_hdr->e_shstrndx; - //cout << "String section " << sect_strings << endl; - int nsect = elf_hdr->e_shnum; - int i; - for(i=0;i(shp[i].sh_addr)); - printf("offset " XED_FMT_LX " ",static_cast(shp[i].sh_offset)); - printf("size " XED_FMT_LU " ", static_cast(shp[i].sh_size)); - printf("type " XED_FMT_LU "\n", static_cast(shp[i].sh_type)); - - disas_test32(dstate, - start, shp[i].sh_offset, shp[i].sh_size, - ninst, - shp[i].sh_addr, - decode_only, - sym_map, - sym_vec); - } - - } - - (void) length;// pacify compiler -} - -void -process_elf64(void* start, - unsigned int length, - const char* tgt_section, - const xed_state_t* dstate, - int ninst, - xed_bool_t decode_only, - map& sym_map, - vector& sym_vec) -{ - Elf64_Ehdr* elf_hdr = (Elf64_Ehdr*) start; - if (elf_hdr->e_machine != EM_X86_64) { - cerr << "Not an x86-64 binary. Consider not using the -64 switch." << endl; - exit(1); - } - - Elf64_Off shoff = elf_hdr->e_shoff; // section hdr table offset - Elf64_Shdr* shp = (Elf64_Shdr*) ((char*)start + shoff); - Elf64_Half sect_strings = elf_hdr->e_shstrndx; - //cout << "String section " << sect_strings << endl; - Elf64_Half nsect = elf_hdr->e_shnum; - if (CLIENT_VERBOSE1) - printf("# sections %d\n" , nsect); - unsigned int i; - xed_bool_t text = false; - for( i=0;i(shp[i].sh_addr)); - printf("offset " XED_FMT_LX " ",static_cast(shp[i].sh_offset)); - printf("size " XED_FMT_LU "\n", static_cast(shp[i].sh_size)); - disas_test64(dstate, - start, shp[i].sh_offset, shp[i].sh_size, - ninst, - shp[i].sh_addr, decode_only, sym_map, sym_vec); - - } - } - (void) length;// pacify compiler -} - - -void read_symbols64(void* start, - Elf64_Off offset, - Elf64_Word size, - Elf64_Off string_table_offset, - map& sym_map) { - char* a = static_cast(start); - Elf64_Sym* p = reinterpret_cast(a + offset); - Elf64_Sym* q = reinterpret_cast(a + offset + size); - int i = 0; - while(pst_name, start, string_table_offset); -/* - cout << "SYM " << setw(3) << i << " " - << hex << setw(16) - << p->st_value << dec - << " " << name << endl; -*/ - if (xed_strlen(name) > 0) - sym_map[static_cast(p->st_value)] = name; - p++; - i++; - } -} - -/*-----------------------------------------------------------------*/ - -int check_binary_32b(void* start) { - Elf32_Ehdr* elf_hdr = (Elf32_Ehdr*) start; - if (elf_hdr->e_machine == EM_386) - return 1; - return 0; -} - -int check_binary_64b(void* start) { - Elf64_Ehdr* elf_hdr = (Elf64_Ehdr*) start; - if (elf_hdr->e_machine == EM_X86_64) - return 1; - return 0; -} -/*-----------------------------------------------------------------*/ - - -void symbols_elf64(void* start, map& sym_map) { - Elf64_Ehdr* elf_hdr = (Elf64_Ehdr*) start; - if (elf_hdr->e_machine != EM_X86_64) { - cerr << "Not an x86-64 binary. Consider not using the -64 switch." << endl; - exit(1); - } - - Elf64_Off shoff = elf_hdr->e_shoff; // section hdr table offset - Elf64_Shdr* shp = (Elf64_Shdr*) ((char*)start + shoff); - Elf64_Half nsect = elf_hdr->e_shnum; - if (CLIENT_VERBOSE1) - printf("# sections %d\n" , nsect); - unsigned int i; - Elf64_Half sect_strings = elf_hdr->e_shstrndx; - Elf64_Off string_table_offset=0; - Elf64_Off dynamic_string_table_offset=0; - for( i=0;i& sym_map) { - char* a = static_cast(start); - Elf32_Sym* p = reinterpret_cast(a + offset); - Elf32_Sym* q = reinterpret_cast(a + offset + size); - int i = 0; - while(pst_name, start, string_table_offset); -/* - cout << "SYM " << setw(3) << i << " " - << hex << setw(16) - << p->st_value << dec - << " " << name << endl; -*/ - if (xed_strlen(name) > 0) - sym_map[static_cast(p->st_value)] = name; - p++; - i++; - } -} - - -void symbols_elf32(void* start, map& sym_map) { - Elf32_Ehdr* elf_hdr = (Elf32_Ehdr*) start; - if (elf_hdr->e_machine != EM_386) { - cerr << "Not an IA32 binary. Consider using the -64 switch" << endl; - exit(1); - } - - Elf32_Off shoff = elf_hdr->e_shoff; // section hdr table offset - Elf32_Shdr* shp = (Elf32_Shdr*) ((char*)start + shoff); - Elf32_Half nsect = elf_hdr->e_shnum; - if (CLIENT_VERBOSE1) - printf("# sections %d\n" , nsect); - unsigned int i; - Elf32_Off string_table_offset=0; - Elf32_Off dynamic_string_table_offset=0; - int sect_strings = elf_hdr->e_shstrndx; - - for( i=0;i sym_map; - vector sym_vec; - - if (check_binary_64b(region)) { - xed_state_t local_dstate = *dstate; - if (sixty_four_bit == 0) { - /* modify the default dstate values because we were not expecting a - * 64b binary */ - local_dstate.mmode = XED_MACHINE_MODE_LONG_64; - local_dstate.addr_width = XED_ADDRESS_WIDTH_64b; - } - - symbols_elf64(region, sym_map); - make_symbol_vector(&sym_map, &sym_vec); - process_elf64(region, len, target_section, &local_dstate, ninst, decode_only, sym_map,sym_vec); - } - else if (check_binary_32b(region)) { - symbols_elf32(region, sym_map); - make_symbol_vector(&sym_map, &sym_vec); - process_elf32(region, len, target_section, dstate, ninst, decode_only,sym_map, sym_vec); - } - else { - cerr << "Not a recognized 32b or 64b ELF binary." << endl; - exit(1); - } - xed_print_decode_stats(); - -} - - - -#endif -//////////////////////////////////////////////////////////////////////////// diff --git a/misc/decoder_test/XED2/examples/xed-disas-macho.H b/misc/decoder_test/XED2/examples/xed-disas-macho.H deleted file mode 100644 index ecd3b4d..0000000 --- a/misc/decoder_test/XED2/examples/xed-disas-macho.H +++ /dev/null @@ -1,52 +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-disas-macho.H -/// @author Mark Charney -#if !defined(_XED_DISAS_MACHO_H_) -# define _XED_DISAS_MACHO_H_ - -#if defined(__APPLE__) -# define XED_MAC_OSX_FILE_READER -#endif - -# if defined(XED_MAC_OSX_FILE_READER) -extern "C" { -# include "xed-interface.h" -} - -void -xed_disas_macho(const char* input_file_name, - const xed_state_t* dstate, - int ninst, - xed_bool_t sixty_four_bit, - xed_bool_t decode_only); -# endif -#endif diff --git a/misc/decoder_test/XED2/examples/xed-disas-macho.cpp b/misc/decoder_test/XED2/examples/xed-disas-macho.cpp deleted file mode 100644 index 0910d21..0000000 --- a/misc/decoder_test/XED2/examples/xed-disas-macho.cpp +++ /dev/null @@ -1,254 +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-disas-macho.cpp -/// @author Mark Charney - -#include "xed-disas-macho.H" - -#if defined(XED_MAC_OSX_FILE_READER) - -// mac specific headers -#include -#include -#include -#include - -extern "C" { -#include "xed-interface.h" -#include "xed-examples-util.h" -} -#include -#include -using namespace std; - -//////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////// -xed_uint32_t -swap_endian(xed_uint32_t x) -{ - xed_uint32_t r = 0; - xed_uint32_t t = x; - xed_uint_t i; - for(i=0;i<4;i++) - { - xed_uint8_t b = t; - r =(r << 8) | b; - t = t >> 8; - } - return r; -} - -xed_bool_t -read_fat_header(xed_uint8_t*¤t_position, xed_uint32_t& offset, xed_uint32_t& size) -{ - struct fat_header* fh = - REINTERPRET_CAST(struct fat_header*,current_position); - - // we are little endian looking at big endian data - if (fh->magic == FAT_CIGAM) - { - xed_uint32_t narch = swap_endian(fh->nfat_arch); - unsigned int i; - for( i=0 ;i< narch; i++) - { - struct fat_arch* fa = - REINTERPRET_CAST(struct fat_arch*,current_position + - sizeof(struct fat_header) + - i*sizeof(struct fat_arch) ); - const cpu_type_t cpu_type = swap_endian(fa->cputype); - - if (cpu_type == CPU_TYPE_I386) - { - offset = swap_endian(fa->offset); - size = swap_endian(fa->size); - return true; - } - } - } - return false; -} - - -static xed_bool_t -executable(xed_uint32_t flags) -{ - return ( (flags & S_ATTR_PURE_INSTRUCTIONS) !=0 || - (flags & S_ATTR_SOME_INSTRUCTIONS) !=0 ); -} - -void -process_segment32( xed_decode_file_info_t& decode_info, - xed_uint8_t* start, - xed_uint8_t* segment_position, - unsigned int bytes) -{ - struct segment_command* sc = REINTERPRET_CAST(struct segment_command*,segment_position); - xed_uint8_t* start_of_section_data = segment_position + sizeof(struct segment_command); - unsigned int i; - cout << sc->nsects << " sections" << endl; - // look through the array of section headers for this segment. - for( i=0; i< sc->nsects;i++) - { - struct section* sp = - REINTERPRET_CAST(struct section*,start_of_section_data + i *sizeof(struct section)); - if (executable(sp->flags)) - { - // this section is executable. Go get it and process it. - xed_uint8_t* section_text = start + sp->offset; - xed_uint32_t runtime_vaddr = sp->addr; - - cout << "\tProcessing executable section " - << i - << " addr in mem: " - << hex; -#if defined(__LP64__) - cout << REINTERPRET_CAST(xed_uint64_t,section_text); -#else - cout << REINTERPRET_CAST(xed_uint32_t,section_text); -#endif - cout << dec - << " len= " << sp->size - << " at offset " << sp->offset - << " runtime addr " << hex << runtime_vaddr << dec - << endl; - - - xed_disas_test(&decode_info.dstate, - start, - section_text, - section_text + sp->size, - decode_info.ninst, - runtime_vaddr, - decode_info.decode_only,0); - } - - } -} - -//////////////////////////////////////////////////////////////////////////// - -void -process_macho64(xed_uint8_t* start, - unsigned int length, - xed_decode_file_info_t& decode_info) -{ - xedex_derror("process_macho64 not done yet"); -} - - - -void -process_macho32(xed_uint8_t* start, - unsigned int length, - xed_decode_file_info_t& decode_info) -{ - xed_uint8_t* current_position = start; - //current_position is updated when each section is read - - // the fat header reader bumps current_position to the value for the - // correct architecture. - xed_uint32_t offset=0; // offset to of load commands for this architecture - xed_uint32_t size; - xed_uint_t i; - xed_bool_t okay = read_fat_header(current_position, offset, size); - if (!okay) - { - xedex_dwarn("Could not find x86 section of fat binary -- checking for mach header"); - } - if (CLIENT_VERBOSE2) - printf("Offset of load sections = %x\n", offset); - - // skip to the correct architecture - current_position += offset; - - struct mach_header* mh = REINTERPRET_CAST(struct mach_header*,current_position); - if (mh->magic != MH_MAGIC) - { - xedex_derror("Could not find mach header"); - } - - current_position += sizeof(struct mach_header); - - if (CLIENT_VERBOSE2) - printf("Number of load command sections = %d\n", mh->ncmds); - // load commands point to segments which contain sections. - //xed_uint8_t* segment_position = current_position + mh->sizeofcmds; - for( i=0;i< mh->ncmds; i++) - { - struct load_command* lc = - REINTERPRET_CAST(struct load_command*,current_position); - //current_position += sizeof(struct load_command); - - if (CLIENT_VERBOSE2) - printf("load command %d\n",i ); - if (lc->cmd == LC_SEGMENT) - { - if (CLIENT_VERBOSE2) - printf("\tload command %d is a LC_SEGMENT\n", i); - // we add the FAT offset to the start pointer to get to the relative start point. - process_segment32( decode_info, start + offset, current_position, lc->cmdsize ); - } - current_position += lc->cmdsize; - //segment_position = segment_position + lc->cmdsize; - } -} - -void -xed_disas_macho(const char* input_file_name, - const xed_state_t* dstate, - int ninst, - xed_bool_t sixty_four_bit, - xed_bool_t decode_only) -{ - xed_uint8_t* region = 0; - void* vregion = 0; - unsigned int len = 0; - xed_map_region(input_file_name, &vregion, &len); - region = REINTERPRET_CAST(xed_uint8_t*,vregion); - - xed_decode_file_info_t decode_info; - xed_decode_file_info_init(&decode_info,dstate, ninst, decode_only); - - if (sixty_four_bit) - { - process_macho64(region, len, decode_info); - } - else - { - process_macho32(region, len, decode_info); - } - xed_print_decode_stats(); -} - - - -#endif diff --git a/misc/decoder_test/XED2/examples/xed-disas-pecoff.H b/misc/decoder_test/XED2/examples/xed-disas-pecoff.H deleted file mode 100644 index 1871b1b..0000000 --- a/misc/decoder_test/XED2/examples/xed-disas-pecoff.H +++ /dev/null @@ -1,58 +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-disas-pecoff.H -/// @author Mark Charney - -#if defined(_WIN32) -# define XED_PECOFF_FILE_READER -#endif - -#if !defined(_XED_DISAS_PECOFF_H_) -# define _XED_DISAS_PECOFF_H_ -# if defined(XED_PECOFF_FILE_READER) - -extern "C" { -# include "xed-interface.h" -} - -void -xed_disas_pecoff(const char* input_file_name, - const xed_state_t* dstate, - int ninst, - xed_bool_t sixty_four_bit, - xed_bool_t decode_only, - const char* target_section); -# endif -#endif - -//Local Variables: -//pref: "../../examples/xed-disas-pecoff.cpp" -//End: diff --git a/misc/decoder_test/XED2/examples/xed-disas-pecoff.cpp b/misc/decoder_test/XED2/examples/xed-disas-pecoff.cpp deleted file mode 100644 index e40a323..0000000 --- a/misc/decoder_test/XED2/examples/xed-disas-pecoff.cpp +++ /dev/null @@ -1,477 +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-disas-pecoff.cpp -/// @author Mark Charney - -//// ONLY COMPILES IF -mno-cygwin is thrown on to GCC compilations - -#include "xed-disas-pecoff.H" - -#if defined(XED_PECOFF_FILE_READER) -#include -#include -#include - - -// windows specific headers -#include -#include - -// xed headers -- THESE MUST BE AFTER THE WINDOWS HEADERS - - -extern "C" { -#include "xed-interface.h" -#include "xed-examples-util.h" -#include "xed-portability.h" // This really must be after the windows.h include -} - -#include "xed-disas-pecoff.h" -#include "xed-examples-ostreams.h" -using namespace std; - -// Pronto -static std::string -windows_error(const char* syscall, - const char* filename) -{ - std::ostringstream os; - os << "Mapped file:: " << syscall - << " for file " << filename << " failed: "; - switch (GetLastError()) - { - case 2: - os << "File not found"; - break; - case 3: - os << "Path not found"; - break; - case 5: - os << "Access denied"; - break; - case 15: - os << "Invalid drive"; - break; - default: - os << "error code " << STATIC_CAST(xed_uint32_t,GetLastError()); - break; - } - - return os.str(); -} - -class pecoff_reader_t -{ - /// NT handle for the open file. - void* file_handle_; - - /// NT handle for the memory mapping. - void* map_handle_; - - void* base_; - xed_bool_t okay_; - xed_bool_t sixty_four_bit_; - - const IMAGE_SECTION_HEADER* hdr; - const IMAGE_SECTION_HEADER* orig_hdr; - unsigned int nsections; - xed_uint64_t image_base; - - -public: - xed_uint32_t section_index; - - pecoff_reader_t() - { - init(); - } - ~pecoff_reader_t() - { - close(); - } - - void* base() const { return base_; } - xed_bool_t okay() const { return okay_; } - xed_bool_t sixty_four_bit() const { return sixty_four_bit_; } - - void - init() - { - file_handle_ = INVALID_HANDLE_VALUE; - map_handle_ = INVALID_HANDLE_VALUE; - okay_ = false; - sixty_four_bit_ = false; - - hdr=0; - orig_hdr=0; - nsections=0; - image_base=0; - section_index=0; - } - - void - close() - { - if (base_) - { - UnmapViewOfFile(base_); - } - if (map_handle_ != INVALID_HANDLE_VALUE) - { - CloseHandle(map_handle_); - } - if (file_handle_ != INVALID_HANDLE_VALUE) - { - CloseHandle(file_handle_); - } - - init(); - } - - - xed_bool_t - map_region(const char* input_file_name, - void*& vregion, - xed_uint32_t& len) - { - std::string error_msg; - okay_ = false; - - file_handle_ = CreateFile(input_file_name, - GENERIC_READ, - FILE_SHARE_READ, - NULL, - OPEN_EXISTING, - FILE_FLAG_NO_BUFFERING + FILE_ATTRIBUTE_READONLY, - NULL); - if (file_handle_ == INVALID_HANDLE_VALUE) { - error_msg = windows_error("CreateFile", input_file_name); - xedex_derror(error_msg.c_str()); - } - - map_handle_ = CreateFileMapping(file_handle_, - NULL, - PAGE_READONLY, - 0, - 0, - NULL); - - if (map_handle_ == INVALID_HANDLE_VALUE) { - error_msg = windows_error("CreateFileMapping", input_file_name); - xedex_derror(error_msg.c_str()); - } - - base_ = MapViewOfFile(map_handle_, - FILE_MAP_READ, 0, 0, 0); - if (base_ != NULL) { - okay_ = true; - vregion = base_; - len = 0; //FIXME - return true; - } - error_msg = windows_error("MapViewOfFile", input_file_name); - CloseHandle(map_handle_); - map_handle_ = INVALID_HANDLE_VALUE; - - CloseHandle(file_handle_); - file_handle_ = INVALID_HANDLE_VALUE; - return false; - } - - - xed_bool_t read_header() { - if (! parse_nt_file_header(&nsections, &image_base, &hdr)) { - xedex_derror("Could not read nt file header"); - return false; - } - - orig_hdr=hdr; - return true; - } - void print_section_headers() { - const IMAGE_SECTION_HEADER* jhdr = orig_hdr; - for (unsigned int j = 0; j < nsections; j++, jhdr++) { - cout << "# SECNAME " << j << " " - << reinterpret_cast(jhdr->Name) - << endl; - } - } - - xed_bool_t - module_section_info( - const char* secname, - xed_uint8_t*& section_start, - xed_uint32_t& section_size, - xed_uint64_t& virtual_addr) - { - unsigned int i,ii; - - if (secname == 0) - secname = ".text"; - - // Extract the name into a 0-padded 8 byte string. - char my_name[IMAGE_SIZEOF_SHORT_NAME]; - memset(my_name,0,IMAGE_SIZEOF_SHORT_NAME); - for( i=0;i(strlen(secname)); - if (match_len > IMAGE_SIZEOF_SHORT_NAME) - match_len = IMAGE_SIZEOF_SHORT_NAME; - - for ( ii = section_index; ii < nsections; ii++, hdr++) { - if (strncmp(reinterpret_cast(hdr->Name), my_name, - match_len) == 0) { - // Found it. Extract the info and return. - virtual_addr = hdr->VirtualAddress + image_base; - section_size = (hdr->Misc.VirtualSize > 0 ? - hdr->Misc.VirtualSize - : hdr->SizeOfRawData); - section_start = (xed_uint8_t*)ptr_add(base_, hdr->PointerToRawData); - section_index = ii+1; - hdr++; - return true; - } - } - - return false; - } - -private: - static inline const void* - ptr_add(const void* ptr, unsigned int n) { - return static_cast(ptr)+n; - } - - xed_bool_t - is_valid_module() { - // Point to the DOS header and check it. - const IMAGE_DOS_HEADER* dh = static_cast(base_); - if (dh->e_magic != IMAGE_DOS_SIGNATURE) - return false; - - // Point to the PE signature word and check it. - const DWORD* sig = static_cast(ptr_add(base_, dh->e_lfanew)); - - // This must be a valid PE file with a valid DOS header. - if (*sig != IMAGE_NT_SIGNATURE) - return false; - - return true; - } - - - xed_bool_t - parse_nt_file_header(unsigned int* pnsections, - xed_uint64_t* pimage_base, - const IMAGE_SECTION_HEADER** phdr) - { - // Oh joy - the format of a .obj file on Windows is *different* - // from the format of a .exe file. Deal with that. - const IMAGE_FILE_HEADER* ifh; - - // Check the header to see if this is a valid .exe file - if (is_valid_module()) - { - // Point to the DOS header. - const IMAGE_DOS_HEADER* dh = static_cast(base_); - - // Point to the COFF File Header (just after the signature) - ifh = static_cast(ptr_add(base_, dh->e_lfanew + 4)); - } - else - { - // Maybe this is a .obj file, which starts with the image file header - ifh = static_cast(base_); - } - -#if !defined(IMAGE_FILE_MACHINE_AMD64) -# define IMAGE_FILE_MACHINE_AMD64 0x8664 -#endif - - if (ifh->Machine == IMAGE_FILE_MACHINE_I386) { - cout << "# IA32 format" << endl; - sixty_four_bit_ = false; - } - else if (ifh->Machine == IMAGE_FILE_MACHINE_AMD64) { - cout << "# Intel64 format" << endl; - sixty_four_bit_ = true; - } - else { - // We only support Windows formats on IA32 and Intel64 - return false; - } - - *pimage_base = 0; - - // Very important to use the 32b header here because the - // unqualified IMAGE_OPTIONAL_HEADER gets the wrong version on - // win64! - const IMAGE_OPTIONAL_HEADER32* opthdr32 - = static_cast(ptr_add(ifh, sizeof(*ifh))); - - // Cygwin's w32api winnt.h header doesn't distinguish 32 and 64b. -#if !defined(IMAGE_NT_OPTIONAL_HDR32_MAGIC) -# define IMAGE_NT_OPTIONAL_HDR32_MAGIC IMAGE_NT_OPTIONAL_HDR_MAGIC -#endif - // And it lacks the definition for 64b headers -#if !defined(IMAGE_NT_OPTIONAL_HDR64_MAGIC) -# define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b -#endif - - if (ifh->SizeOfOptionalHeader > 0) - { - if (opthdr32->Magic == IMAGE_NT_OPTIONAL_HDR32_MAGIC) - { - *pimage_base = opthdr32->ImageBase; - //cerr << hex << "IMAGE BASE 32b: " << *pimage_base << dec << endl; - } - else if (opthdr32->Magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC) - { -#if defined(_MSC_VER) -# if _MSC_VER >= 1400 - const IMAGE_OPTIONAL_HEADER64* opthdr64 = - static_cast(ptr_add(ifh, sizeof(*ifh))); - *pimage_base = opthdr64->ImageBase; - //cerr << hex << "IMAGE BASE 64b: " << *pimage_base << dec << endl; -# else - xedex_derror("No support for 64b optional headers because older MS compilers do not have the type yet"); -# endif -#else - xedex_derror("No support for 64b optional headers because cygwin does nt have the type yet"); - return false; -#endif - } - else - { - // Optional header is not a form we recognize, so punt. - return false; - } - } - - // Point to the first of the Section Headers - *phdr = static_cast(ptr_add(opthdr32, - ifh->SizeOfOptionalHeader)); - *pnsections = ifh->NumberOfSections; - return true; - } - - - -}; - -//////////////////////////////////////////////////////////////////////////// - - - -void -process_pecoff(xed_uint8_t* start, - unsigned int length, - xed_decode_file_info_t& decode_info, - pecoff_reader_t& reader, - const char* target_section) -{ - xed_uint8_t* section_start = 0; - xed_uint32_t section_size = 0; - xed_uint64_t runtime_vaddr = 0; - - xed_bool_t okay = true; - xed_bool_t found = false; - while(okay) { - okay = reader.module_section_info(target_section, - section_start, - section_size, - runtime_vaddr); - if (okay) { - printf ("# SECTION %d\n", reader.section_index-1); - found = true; - xed_disas_test(&decode_info.dstate, - REINTERPRET_CAST(unsigned char*,start), - REINTERPRET_CAST(unsigned char*,section_start), - REINTERPRET_CAST(unsigned char*,section_start + section_size), - decode_info.ninst, - runtime_vaddr, - decode_info.decode_only,0); - } - } - if (!found) - xedex_derror("text section not found"); - (void) length; -} - -void -xed_disas_pecoff(const char* input_file_name, - const xed_state_t* dstate, - int ninst, - xed_bool_t sixty_four_bit, - xed_bool_t decode_only, - const char* target_section) -{ - xed_uint8_t* region = 0; - void* vregion = 0; - xed_uint32_t len = 0; - pecoff_reader_t image_reader; - xed_bool_t okay = image_reader.map_region(input_file_name, vregion, len); - if (!okay) - xedex_derror("image read failed"); - if (CLIENT_VERBOSE1) - printf("Mapped image\n"); - image_reader.read_header(); - region = REINTERPRET_CAST(xed_uint8_t*,vregion); - - xed_state_t local_dstate = *dstate; - if (image_reader.sixty_four_bit() && sixty_four_bit == 0) { - /* modify the default dstate values because we were not expecting a - * 64b binary */ - local_dstate.mmode = XED_MACHINE_MODE_LONG_64; - local_dstate.addr_width = XED_ADDRESS_WIDTH_64b; - } - - xed_decode_file_info_t decode_info; - xed_decode_file_info_init(&decode_info, &local_dstate, ninst, decode_only); - process_pecoff(region, len, decode_info, image_reader, target_section); - xed_print_decode_stats(); -} - - - -#endif -//Local Variables: -//pref: "xed-disas-pecoff.H" -//End: diff --git a/misc/decoder_test/XED2/examples/xed-disas-raw.H b/misc/decoder_test/XED2/examples/xed-disas-raw.H deleted file mode 100644 index 94827e9..0000000 --- a/misc/decoder_test/XED2/examples/xed-disas-raw.H +++ /dev/null @@ -1,54 +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-disas-elf.H -/// @author Mark Charney - -#if !defined(_XED_DISAS_RAW_H_) -# define _XED_DISAS_RAW_H_ - - -extern "C" { -#include "xed-interface.h" -#include "xed-examples-util.h" -} - -void -xed_disas_raw(const char* input_file_name, - const xed_state_t* dstate, - int ninst, - xed_bool_t sixty_four_bit, - xed_bool_t decode_only); - - -#endif -//Local Variables: -//pref: "../../examples/xed-disas-raw.cpp" -//End: diff --git a/misc/decoder_test/XED2/examples/xed-disas-raw.cpp b/misc/decoder_test/XED2/examples/xed-disas-raw.cpp deleted file mode 100644 index 3467eec..0000000 --- a/misc/decoder_test/XED2/examples/xed-disas-raw.cpp +++ /dev/null @@ -1,64 +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 disas-raw.cpp -/// @author Mark Charney - - -//////////////////////////////////////////////////////////////////////////// - -extern "C" { -#include "xed-interface.h" -#include "xed-portability.h" -#include "xed-examples-util.h" -} - -//////////////////////////////////////////////////////////////////////////// - - - -void -xed_disas_raw(const char* input_file_name, - const xed_state_t* dstate, - int ninst, - xed_bool_t sixty_four_bit, - xed_bool_t decode_only) -{ - printf("In raw...\n"); - void* region = 0; - unsigned int len = 0; - xed_uint32_t runtime_vaddr = 0; - xed_map_region(input_file_name, ®ion, &len); - xed_disas_test(dstate, (unsigned char*)region, (unsigned char*)region, (unsigned char*)region+len, ninst, runtime_vaddr, decode_only,0); - xed_print_decode_stats(); - (void) sixty_four_bit; -} - -//////////////////////////////////////////////////////////////////////////// diff --git a/misc/decoder_test/XED2/examples/xed-enc-lang.H b/misc/decoder_test/XED2/examples/xed-enc-lang.H deleted file mode 100644 index 317f2ad..0000000 --- a/misc/decoder_test/XED2/examples/xed-enc-lang.H +++ /dev/null @@ -1,54 +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-enc-lang.H -/// @author Mark Charney - - - -extern "C" { -#include "xed-interface.h" -} - -#include - - -class ascii_encode_request_t -{ - public: - ascii_encode_request_t() {} - - xed_state_t dstate; - std::string command; -}; - - -xed_encoder_request_t -parse_encode_request(ascii_encode_request_t& areq); diff --git a/misc/decoder_test/XED2/examples/xed-enc-lang.cpp b/misc/decoder_test/XED2/examples/xed-enc-lang.cpp deleted file mode 100644 index 1f37c3c..0000000 --- a/misc/decoder_test/XED2/examples/xed-enc-lang.cpp +++ /dev/null @@ -1,596 +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-enc-lang.cpp -/// @author Mark Charney - -// This is an example of how to use the encoder from scratch in the context -// of parsing a string from the command line. - - -#include -#include -#include -#include -#include -extern "C" { -#include "xed-interface.h" -#include "xed-portability.h" -#include "xed-examples-util.h" -} -#include "xed-enc-lang.H" - - - - -using namespace std; -static char xed_enc_lang_toupper(char c) { - if (c >= 'a' && c <= 'z') - return c-'a'+'A'; - return c; -} - -static string upcase(string s) { - string t = ""; - xed_uint_t len = static_cast(s.size()); - xed_uint_t i; - for(i=0 ; i < len ; i++ ) - t = t + xed_enc_lang_toupper(s[i]); - return t; -} - -unsigned int -xed_split_args(const string& sep, - const string& input, - vector& output_array) -{ - // returns the number of args - // rip off the separator characters and split the src string based on separators. - - // find the string between last_pos and pos. pos is after last_pos - string::size_type last_pos = input.find_first_not_of(sep, 0); - string::size_type pos = input.find_first_of(sep, last_pos); - if (CLIENT_VERBOSE3) - printf("input %s\tlast_pos " XED_FMT_U " pos " XED_FMT_U "\n", - input.c_str() , STATIC_CAST(xed_uint_t,last_pos), STATIC_CAST(xed_uint_t,pos)); - int i=0; - while( pos != string::npos && last_pos != string::npos ) - { - string a = input.substr(last_pos, pos-last_pos); - output_array.push_back(a); - if (CLIENT_VERBOSE3) - printf("\t\tlast_pos " XED_FMT_U " pos " XED_FMT_U " i %d\n", - STATIC_CAST(xed_uint_t,last_pos), - STATIC_CAST(xed_uint_t,pos), - i); - last_pos = input.find_first_not_of(sep, pos); - pos = input.find_first_of(sep, last_pos); - i++; - } - if (last_pos != string::npos && pos == string::npos) - { - if (CLIENT_VERBOSE3) - printf("\t\tGetting last substring at " XED_FMT_U "\n", STATIC_CAST(xed_uint_t,last_pos)); - string a = input.substr(last_pos); // get the rest of the string - output_array.push_back(a); - i++; - } - if (CLIENT_VERBOSE3) - printf("\t returning %d\n",i); - return i; -} - -vector -tokenize(const string& s, - const string& delimiter) { - vector v; - (void) xed_split_args(delimiter, s, v); - return v; -} - - -void slash_split(const string& src, - string& first, // output - string& second) //output -{ - string::size_type p = src.find("/"); - if (p == string::npos) { - first = src; - second = ""; - } - else { - first = src.substr(0,p); - second = src.substr(p+1); - } -} - -class immed_parser_t { - public: - xed_bool_t valid; - string immed; - unsigned int width_bits; - xed_uint64_t immed_val; - string tok0; - - immed_parser_t(const string& s, - const string& arg_tok0) //CONS - : valid(false), - tok0(arg_tok0) - { - vector vs = tokenize(s,"(),"); - if (vs.size() == 2) { - if (vs[0] == tok0) { - string immed_str = vs[1]; - immed_val = convert_ascii_hex_to_int(immed_str.c_str()); - width_bits = static_cast(immed_str.size()*4); // nibbles to bits - valid = true; - } - } - } - - void - print(ostream& o) const { - o << tok0 - << "(" ; - if (valid) - o << hex << immed_val << dec; - else - o << "???"; - o << ")"; - } - -}; - -ostream& operator<<(ostream& o, const immed_parser_t& x) -{ - x.print(o); - return o; -} - - -class seg_parser_t -{ - public: - xed_bool_t valid; - xed_reg_enum_t segment_reg; - string segment; - - seg_parser_t(const string& s) // CONS - : valid(false), - segment_reg(XED_REG_INVALID) - { - vector vs = tokenize(s,"(),"); - xed_uint_t ntokens = static_cast(vs.size()); - cerr << "ntokens " << ntokens << ": " ; - for(unsigned int i=0;i vs = tokenize(s,"(),"); - xed_uint_t ntokens = static_cast(vs.size()); - if (ntokens >= 2 && ntokens <= 5) { - if (vs[0] == "AGEN") { - agen = true; - } - else if (vs[0].substr(0,3) == "MEM") { - mem = true; - if (vs[0].size() > 3) { - string len = vs[0].substr(3); - mem_len = strtol(len.c_str(),0,0); - //printf("mem_len = " XED_FMT_U "\n", mem_len); - } - } - else { - return; - } - - segment = "INVALID"; - string seg_and_base = upcase(vs[1]); - vector sb = tokenize(seg_and_base,":"); - int seg_and_base_tokens = STATIC_CAST(int,sb.size()); - if (seg_and_base_tokens == 1) { - segment = "INVALID"; - base = sb[0]; - } - else if (seg_and_base_tokens == 2) { - if (agen) { - xedex_derror("AGENs cannot have segment overrides"); - } - segment = sb[0]; - base = sb[1]; - } - else { - printf("seg_and_base_tokens = %d\n",seg_and_base_tokens); - xedex_derror("Bad segment-and-base specifier."); - } - - if (base == "-" || base == "NA") { - base = "INVALID"; - } - if (ntokens > 2) { - index = upcase(vs[2]); - if (index == "-" || index == "NA") { - index = "INVALID"; - } - } - - if (ntokens > 3) { - scale = vs[3]; - if (scale == "-" || scale == "NA") { - scale = "1"; - } - } - if (scale == "1" || scale == "2" || scale == "4" || scale == "8") { - valid=true; - scale_val = STATIC_CAST(xed_uint8_t,strtol(scale.c_str(), 0, 10)); - segment_reg = str2xed_reg_enum_t(segment.c_str()); - base_reg = str2xed_reg_enum_t(base.c_str()); - index_reg = str2xed_reg_enum_t(index.c_str()); - - // look for a displacement - if (ntokens == 5 && vs[4] != "-") { - disp = vs[4]; - disp_valid = true; - unsigned int nibbles = STATIC_CAST(int,disp.size()); - if (nibbles & 1) { - // ensure an even number of nibbles - string zero("0"); - disp = zero + disp; - nibbles++; - } - disp_val = convert_ascii_hex_to_int(disp.c_str()); - disp_width_bits = nibbles*4; // nibbles to bits - } - } - - } - - } -}; - -ostream& operator<<(ostream& o, const mem_bis_parser_t& x) { - x.print(o); - return o; -} - -xed_encoder_request_t parse_encode_request(ascii_encode_request_t& areq) { - unsigned int i; - xed_encoder_request_t req; - xed_encoder_request_zero_set_mode(&req,&(areq.dstate)); // calls xed_encoder_request_zero() - - /* This is the important function here. This encodes an instruction from scratch. - - You must set: - the machine mode (machine width, addressing widths) - the effective operand width - the iclass - for some instructions you need to specify prefixes (like REP or LOCK). - the operands: - operand kind (XED_OPERAND_{AGEN,MEM0,MEM1,IMM0,IMM1,RELBR,PTR,REG0...REG15} - operand order - xed_encoder_request_set_operand_order(&req,operand_index, XED_OPERAND_*); - where the operand_index is a sequential index starting at zero. - - operand details - FOR MEMOPS: base,segment,index,scale,displacement for memops, - FOR REGISTERS: register name - FOR IMMEDIATES: immediate values - - */ - - - switch(xed_state_get_machine_mode(&(areq.dstate))) { - // set the default width. - case XED_MACHINE_MODE_LONG_64: - xed_encoder_request_set_effective_operand_width(&req, 32); - xed_encoder_request_set_effective_address_size(&req, 64); - break; - - case XED_MACHINE_MODE_LEGACY_32: - case XED_MACHINE_MODE_LONG_COMPAT_32: - xed_encoder_request_set_effective_operand_width(&req, 32); - xed_encoder_request_set_effective_address_size(&req, 32); - break; - - case XED_MACHINE_MODE_LEGACY_16: - case XED_MACHINE_MODE_LONG_COMPAT_16: - xed_encoder_request_set_effective_operand_width(&req, 16); - xed_encoder_request_set_effective_address_size(&req, 16); - break; - - default: - assert(0); - } - - //FIXME: allow changing the effective address size from the above defaults. - - vector tokens = tokenize(areq.command," "); - // first token has the operand and our temporary hack for the immediate - - string first, second; - unsigned int token_index = 0; - - while(token_index < tokens.size()) { - slash_split(tokens[token_index], first, second); - if (CLIENT_VERBOSE3) - printf( "[%s][%s][%s]\n", tokens[0].c_str(), first.c_str(), second.c_str()); - - if (token_index == 0 && first == "REP") { - xed_encoder_request_set_rep(&req); - token_index++; - continue; - } - else if (token_index == 0 && first == "REPNE") { - xed_encoder_request_set_repne(&req); - token_index++; - continue; - } - - token_index++; - break; - } - - // we can attempt to override the mode - if (second == "8") - xed_encoder_request_set_effective_operand_width(&req, 8); - else if (second == "16") - xed_encoder_request_set_effective_operand_width(&req, 16); - else if (second == "32") - xed_encoder_request_set_effective_operand_width(&req, 32); - else if (second == "64") - xed_encoder_request_set_effective_operand_width(&req, 64); - - first = upcase(first); - xed_iclass_enum_t iclass = str2xed_iclass_enum_t(first.c_str()); - if (iclass == XED_ICLASS_INVALID) { - ostringstream os; - os << "Bad instruction name: " << first; - xedex_derror(os.str().c_str()); - } - xed_encoder_request_set_iclass(&req, iclass ); - - xed_uint_t memop = 0; - xed_uint_t regnum = 0; - // put the operands in the request. Loop through tokens - // (skip the opcode iclass, handled above) - xed_uint_t operand_index = 0; - for( i=token_index; i < tokens.size(); i++, operand_index++ ) { - string str_res_reg, second_x; - slash_split(tokens[i], str_res_reg, second_x); - str_res_reg = upcase(str_res_reg); - // prune the AGEN or MEM(base,index,scale[,displacement]) text from str_res_reg - // FIXME: add MEM(immed) for the OC1_A and OC1_O types???? - mem_bis_parser_t mem_bis(str_res_reg); - if (mem_bis.valid) { - if (mem_bis.mem) { - if (memop == 0) { - // Tell XED that we have a memory operand - xed_encoder_request_set_mem0(&req); - // Tell XED that the mem0 operand is the next operand: - xed_encoder_request_set_operand_order(&req,operand_index, XED_OPERAND_MEM0); - } - else { - xed_encoder_request_set_mem1(&req); - // Tell XED that the mem1 operand is the next operand: - xed_encoder_request_set_operand_order(&req,operand_index, XED_OPERAND_MEM1); - } - memop++; - } - else if (mem_bis.agen) { - // Tell XED we have an AGEN - xed_encoder_request_set_agen(&req); - // The AGEN is the next operand - xed_encoder_request_set_operand_order(&req,operand_index, XED_OPERAND_AGEN); - } - else - assert(mem_bis.agen || mem_bis.mem); - - xed_reg_class_enum_t rc = xed_gpr_reg_class(mem_bis.base_reg); - xed_reg_class_enum_t rci = xed_gpr_reg_class(mem_bis.index_reg); - if (mem_bis.base_reg != XED_REG_INVALID && mem_bis.index_reg != XED_REG_INVALID) - if (rc != rci) { - ostringstream os; - os << "The base and index regs do not agree on the address size" << endl; - xedex_derror(os.str().c_str()); // dies - } - - if (rc == XED_REG_CLASS_GPR32 || rci == XED_REG_CLASS_GPR32) - xed_encoder_request_set_effective_address_size(&req, 32); - - // fill in the memory fields - xed_encoder_request_set_base0(&req, mem_bis.base_reg); - xed_encoder_request_set_index(&req, mem_bis.index_reg); - xed_encoder_request_set_scale(&req, mem_bis.scale_val); - xed_encoder_request_set_seg0(&req, mem_bis.segment_reg); - - if (mem_bis.mem_len) - xed_encoder_request_set_memory_operand_length(&req, mem_bis.mem_len ); // BYTES - if (mem_bis.disp_valid) - xed_encoder_request_set_memory_displacement(&req, - mem_bis.disp_val, - mem_bis.disp_width_bits/8); - continue; - } - - seg_parser_t seg_parser(str_res_reg); - if (seg_parser.valid) { - printf("Setting segment to %s\n", xed_reg_enum_t2str(seg_parser.segment_reg)); - xed_encoder_request_set_seg0(&req, seg_parser.segment_reg); - xed_encoder_request_set_operand_order(&req, operand_index, XED_OPERAND_SEG0); - continue; - } - - immed_parser_t imm(str_res_reg, "IMM"); - if (imm.valid) { - if (CLIENT_VERBOSE3) - printf("Setting immediate value to " XED_FMT_LX "\n", imm.immed_val); - xed_encoder_request_set_uimm0_bits(&req, - imm.immed_val, - imm.width_bits); - xed_encoder_request_set_operand_order(&req,operand_index, XED_OPERAND_IMM0); - continue; - } - immed_parser_t simm(str_res_reg, "SIMM"); - if (simm.valid) { - if (CLIENT_VERBOSE3) - printf("Setting immediate value to " XED_FMT_LX "\n", simm.immed_val); - xed_encoder_request_set_simm(&req, - STATIC_CAST(xed_int32_t,simm.immed_val), - simm.width_bits/8); //FIXME - xed_encoder_request_set_operand_order(&req,operand_index, XED_OPERAND_IMM0); - continue; - } - immed_parser_t imm2(str_res_reg, "IMM2"); - if (imm2.valid) { - if (imm2.width_bits != 8) - xedex_derror("2nd immediate must be just 1 byte long"); - xed_encoder_request_set_uimm1(&req, imm2.immed_val); - xed_encoder_request_set_operand_order(&req,operand_index, XED_OPERAND_IMM1); - continue; - } - - immed_parser_t disp(str_res_reg, "BRDISP"); - if (disp.valid) { - if (CLIENT_VERBOSE3) - printf("Setting displacement value to " XED_FMT_LX "\n", disp.immed_val); - xed_encoder_request_set_branch_displacement(&req, - STATIC_CAST(xed_uint32_t,disp.immed_val), - disp.width_bits/8); //FIXME - xed_encoder_request_set_operand_order(&req,operand_index, XED_OPERAND_RELBR); - xed_encoder_request_set_relbr(&req); - continue; - } - - immed_parser_t ptr_disp(str_res_reg, "PTR"); - if (ptr_disp.valid) { - if (CLIENT_VERBOSE3) - printf("Setting pointer displacement value to " XED_FMT_LX "\n", ptr_disp.immed_val); - xed_encoder_request_set_branch_displacement(&req, - STATIC_CAST(xed_uint32_t,ptr_disp.immed_val), - ptr_disp.width_bits/8); //FIXME - xed_encoder_request_set_operand_order(&req,operand_index, XED_OPERAND_PTR); - xed_encoder_request_set_ptr(&req); - continue; - } - - xed_reg_enum_t reg = str2xed_reg_enum_t(str_res_reg.c_str()); - if (reg == XED_REG_INVALID) { - ostringstream os; - os << "Bad register name: " << str_res_reg << " on operand " << i; - xedex_derror(os.str().c_str()); // dies - } - // The registers operands aer numbered starting from the first one - // as XED_OPERAND_REG0. We incremenet regnum (below) every time we add a - // register operands. - xed_operand_enum_t r = STATIC_CAST(xed_operand_enum_t,XED_OPERAND_REG0 + regnum); - // store the register identifer in the operand storage field - xed_encoder_request_set_reg(&req, r, reg); - // store the operand storage field name in the encode-order array - xed_encoder_request_set_operand_order(&req, operand_index, r); - regnum++; - } // for loop - - return req; -} diff --git a/misc/decoder_test/XED2/examples/xed-ex1.cpp b/misc/decoder_test/XED2/examples/xed-ex1.cpp deleted file mode 100644 index b9e22f1..0000000 --- a/misc/decoder_test/XED2/examples/xed-ex1.cpp +++ /dev/null @@ -1,318 +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-ex1.cpp -/// @author Mark Charney - -extern "C" { -#include "xed-interface.h" -} -#include "xed-examples-ostreams.H" -#include -#include -#include -#include -using namespace std; - -int main(int argc, char** argv); - -void print_attributes(xed_decoded_inst_t* xedd) { - const xed_inst_t* xi = xed_decoded_inst_inst(xedd); - unsigned int i, nattributes = xed_attribute_max(); - xed_uint32_t all_attributes = xed_inst_get_attributes(xi); - if (all_attributes == 0) - return; - cout << "ATTRIBUTES: "; - for(i=0;i> 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 << "Attempting to decode: " << hex << setfill('0') ; - for(i=0;i(itext[i]) << " "; - cout << endl << setfill(' ') << dec; - - xed_error_enum_t xed_error = xed_decode(&xedd, - REINTERPRET_CAST(const xed_uint8_t*,itext), - bytes); - switch(xed_error) { - case XED_ERROR_NONE: - break; - case XED_ERROR_BUFFER_TOO_SHORT: - cout << "Not enough bytes provided" << endl; - exit(1); - case XED_ERROR_GENERAL_ERROR: - cout << "Could not decode given input." << endl; - exit(1); - default: - cout << "Unhandled error code " << xed_error_enum_t2str(xed_error) << endl; - exit(1); - } - - - cout << "iclass " - << xed_iclass_enum_t2str(xed_decoded_inst_get_iclass(&xedd)) << "\t"; - cout << "category " - << xed_category_enum_t2str(xed_decoded_inst_get_category(&xedd)) << "\t"; - cout << "ISA-extension " - << xed_extension_enum_t2str(xed_decoded_inst_get_extension(&xedd)) << endl; - cout << "instruction-length " - << xed_decoded_inst_get_length(&xedd) << endl; - cout << "effective-operand-width " - << xed_operand_values_get_effective_operand_width(xed_decoded_inst_operands_const(&xedd)) << endl; - cout << "effective-address-width " - << xed_operand_values_get_effective_address_width(xed_decoded_inst_operands_const(&xedd)) << endl; - cout << "iform-enum-name " - << xed_iform_enum_t2str(xed_decoded_inst_get_iform_enum(&xedd)) << endl; - cout << "iform-enum-name-dispatch (zero based) " - << xed_decoded_inst_get_iform_enum_dispatch(&xedd) << endl; - cout << "iclass-max-iform-dispatch " - << xed_iform_max_per_iclass(xed_decoded_inst_get_iclass(&xedd)) << endl; - - // operands - print_operands(&xedd); - - // memops - print_memops(&xedd); - - // flags - print_flags(&xedd); - - // attributes - print_attributes(&xedd); - return 0; -} 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; -} diff --git a/misc/decoder_test/XED2/examples/xed-ex3.cpp b/misc/decoder_test/XED2/examples/xed-ex3.cpp deleted file mode 100644 index d2ed1c9..0000000 --- a/misc/decoder_test/XED2/examples/xed-ex3.cpp +++ /dev/null @@ -1,156 +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-ex3.cpp -/// @author Mark Charney - -/// Encoder example - - -extern "C" { -#include "xed-interface.h" -#include "xed-examples-util.h" -} -#include "xed-enc-lang.H" -#include -#include -#include -#include -using namespace std; - -int main(int argc, char** argv); - - -void -usage(char* progname) -{ - cerr << "Usage: " << progname << " [-16|-32|-64] [-a16|-a32] [-s16|-s32] encode-string" << endl; - exit(1); -} - -ascii_encode_request_t -parse_args(unsigned int argc, char** argv) -{ - if (argc == 1) - usage(argv[0]); - - ascii_encode_request_t r; - r.dstate.mmode = XED_MACHINE_MODE_LEGACY_32; - r.dstate.addr_width = XED_ADDRESS_WIDTH_32b; - r.dstate.stack_addr_width = XED_ADDRESS_WIDTH_32b; - string c = ""; - unsigned int i = 1; - - for( ; i< argc; i++) - if (strcmp(argv[i],"-16")==0) - r.dstate.mmode = XED_MACHINE_MODE_LEGACY_16; - else if (strcmp(argv[i],"-32")==0) - r.dstate.mmode = XED_MACHINE_MODE_LEGACY_32; - else if (strcmp("-64", argv[i]) == 0) { - r.dstate.mmode = XED_MACHINE_MODE_LONG_64; - r.dstate.addr_width = XED_ADDRESS_WIDTH_64b; - } - else if (strcmp("-32", argv[i]) == 0) - r.dstate.mmode = XED_MACHINE_MODE_LEGACY_32; - else if (strcmp("-16", argv[i]) == 0) - r.dstate.mmode = XED_MACHINE_MODE_LEGACY_16; - else if (strcmp(argv[i],"-a32")==0) - r.dstate.addr_width = XED_ADDRESS_WIDTH_32b; - else if (strcmp(argv[i],"-a16")==0) - r.dstate.addr_width = XED_ADDRESS_WIDTH_16b; - else if (strcmp(argv[i],"-s32")==0) - r.dstate.stack_addr_width = XED_ADDRESS_WIDTH_32b; - else if (strcmp(argv[i],"-s16")==0) - r.dstate.stack_addr_width = XED_ADDRESS_WIDTH_16b; - else - break; - - if (i == argc) - usage(argv[0]); - - for( ;i - -// decoder example. This is the "C" version of xed-ex2.cpp (which is C++). - -#include "xed-interface.h" -#include "xed-examples-util.h" -#include -#include -#include //strcmp -#include - -int main(int argc, char** argv); - -int -main(int argc, char** argv) -{ - xed_error_enum_t xed_error; - - xed_bool_t long_mode = 0; - xed_state_t dstate; - unsigned int first_argv; - unsigned 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_bool_t ok; - xed_syntax_enum_t syntax; - - xed_tables_init(); - xed_state_zero(&dstate); - xed_set_verbosity( 99 ); - - if (argc > 2 && strcmp(argv[1], "-64") == 0) - long_mode = 1; - - 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++) { - xed_uint8_t x = (xed_uint8_t)(xed_atoi_hex(argv[i])); - assert(bytes < XED_MAX_INSTRUCTION_BYTES); - itext[bytes++] = x; - } - if (bytes == 0) { - fprintf(stderr, "Must supply some hex bytes\n"); - exit(1); - } - - printf("PARSING BYTES: "); - for( u=0;u - -#ifndef _XED_EXAMPLES_OSTREAMS_H_ -# define _XED_EXAMPLES_OSTREAMS_H_ - -#include "xed-types.h" -#include "xed-portability.h" -#if defined(__GNUC__) -# if __GNUC__==2 -# include -# else -# include -# endif -#else -# include -#endif - -# if defined(XED_MSVC6) -std::ostream& operator<<(std::ostream& o, xed_uint64_t x) ; -std::ostream& operator<<(std::ostream& o, xed_int64_t x) ; -std::ostream& operator<<(std::ostream& o, xed_int32_t x) ; -std::ostream& operator<<(std::ostream& o, xed_uint32_t x) ; -# endif -#endif -//Local Variables: -//pref: "xed-examples-ostreams.c" -//End: diff --git a/misc/decoder_test/XED2/examples/xed-examples-ostreams.cpp b/misc/decoder_test/XED2/examples/xed-examples-ostreams.cpp deleted file mode 100644 index b06e408..0000000 --- a/misc/decoder_test/XED2/examples/xed-examples-ostreams.cpp +++ /dev/null @@ -1,53 +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 */ -#include "xed-examples-ostreams.H" -#if defined(XED_MSVC6) -std::ostream& operator<<(std::ostream& o, xed_uint64_t x) -{ - o << (unsigned long) x; // No __uint64 IO with MSVS6 (VC98) - return o; -} -std::ostream& operator<<(std::ostream& o, xed_int64_t x) -{ - o << (long) x; // No __int64 IO with MSVS6 (VC98) - return o; -} -std::ostream& operator<<(std::ostream& o, xed_int32_t x) -{ - o << (long) x; // no __int32 IO with MSVS6 (VC98) - return o; -} -std::ostream& operator<<(std::ostream& o, xed_uint32_t x) -{ - o << (unsigned long) x; // no unsigned __int32 IO with MSVS6 (VC98) - return o; -} -#endif diff --git a/misc/decoder_test/XED2/examples/xed-examples-util.c b/misc/decoder_test/XED2/examples/xed-examples-util.c deleted file mode 100644 index a5a4be4..0000000 --- a/misc/decoder_test/XED2/examples/xed-examples-util.c +++ /dev/null @@ -1,960 +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-examples-util.cpp -/// @author Mark Charney - -#include "xed-interface.h" -#include "xed-examples-util.h" -#include //strlen, memcmp, memset -#if defined(__APPLE__) || defined(__linux__) || defined(__linux) -# include -# include -# include -# include -# include -#endif -#include -#include -#include "xed-portability.h" -#include "xed-util.h" - - -void xed_decode_file_info_init(xed_decode_file_info_t* p, - const xed_state_t* arg_dstate, - int arg_ninst, - int arg_decode_only) { - p->dstate = *arg_dstate; - p->ninst = arg_ninst; - p->decode_only = arg_decode_only; -} - -typedef struct { - xed_uint64_t total_time ; - xed_uint64_t total_insts ; - xed_uint64_t total_ilen ; - xed_uint64_t total_olen ; - xed_uint64_t total_shorter ; - xed_uint64_t total_longer ; - xed_uint64_t bad_times ; - xed_uint64_t reset_counter; -} xed_decode_stats_t; - -void xed_decode_stats_reset(xed_decode_stats_t* p, xed_uint64_t t1, xed_uint64_t t2) { - if (t2 > t1) - p->total_time += (t2-t1); - else - p->bad_times++; - p->total_insts++; - p->reset_counter++; - if (p->reset_counter == 50) { - if (CLIENT_VERBOSE1) - printf("\n\nRESETTING STATS\n\n"); - // to ignore startup transients paging everything in. - p->total_insts=0; - p->total_time=0; - } -} - -void xed_decode_stats_zero(xed_decode_stats_t* p) { - p->total_time = 0; - p->total_insts = 0; - p->total_ilen = 0; - p->total_olen = 0; - p->total_shorter = 0; - p->total_longer = 0; - p->bad_times = 0; - p->reset_counter = 0; -} - -static xed_decode_stats_t xed_stats; -int xed_syntax = 0; -int intel_syntax = 1; -int att_syntax = 0; -int client_verbose=0; - -//////////////////////////////////////////////////////////////////////////// - -static char xed_toupper(char c) { - if (c >= 'a' && c <= 'z') - return c-'a'+'A'; - return c; -} - -char* xed_upcase_buf(char* s) { - xed_uint_t len = STATIC_CAST(xed_uint_t,strlen(s)); - xed_uint_t i; - for(i=0 ; i < len ; i++ ) - s[i] = STATIC_CAST(char,xed_toupper(s[i])); - return s; -} - -static xed_uint8_t convert_nibble(xed_uint8_t x) { - // convert ascii nibble to hex - xed_uint8_t rv = 0; - if (x >= '0' && x <= '9') - rv = x - '0'; - else if (x >= 'A' && x <= 'F') - rv = x - 'A' + 10; - else if (x >= 'a' && x <= 'f') - rv = x - 'a' + 10; - else { - printf("Error converting hex digit. Nibble value 0x%x\n", x); - exit(1); - } - return rv; -} - - -xed_int64_t xed_atoi_hex(char* buf) { - xed_int64_t o=0; - xed_uint_t i; - xed_uint_t len = STATIC_CAST(xed_uint_t,strlen(buf)); - for(i=0; i>4); - buf[2*i+1] = nibble_to_ascii_hex(array[i]&0xF); - } - buf[2*i]=0; -} - -void xed_print_hex_lines(char* buf, const xed_uint8_t* array, const int length) { - int n = length; - int i=0,j=0; - char* b = buf; - for( i=0 ; i< n; i++) { - *b++ = nibble_to_ascii_hex(array[i]>>4); - *b++ = nibble_to_ascii_hex(array[i]&0xF); - j++; - if (j == 16) { - j = 0; - *b++ = '\n'; - } - } - *b++ = '\n'; - *b = '0'; -} - - - - -void xedex_derror(const char* s) { - printf("[XED CLIENT ERROR] %s\n",s); - exit(1); -} - -void xedex_dwarn(const char* s) { - printf("[XED CLIENT WARNING] %s\n",s); -} - - -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// - - - - -void xed_print_decode_stats() -{ - double cpi; - xed_int64_t growth; - printf("#Total decode cycles: " XED_FMT_LU "\n", xed_stats.total_time); - printf("#Total instructions decoded: " XED_FMT_LU "\n", xed_stats.total_insts); -#if defined(_MSC_VER) -# if _MSC_VER==1200 -# define XCAST(x) STATIC_CAST(xed_int64_t,x) -# else -# define XCAST(x) (x) -# endif -#else -# define XCAST(x) (x) -#endif - cpi = 1.0 * XCAST(xed_stats.total_time) / XCAST(xed_stats.total_insts); - printf("#Total cycles/instructions decoded: %f\n" , cpi); - - printf("#Bad times: " XED_FMT_LU "\n", xed_stats.bad_times); - printf("#Total input length bytes: " XED_FMT_LU "\n", xed_stats.total_ilen ); - printf("#Total output length bytes: " XED_FMT_LU "\n", xed_stats.total_olen ); - printf("#Growth bytes: " XED_FMT_LU "\n", xed_stats.total_longer ); - printf("#Shrinkage bytes: " XED_FMT_LU "\n", xed_stats.total_shorter ); - growth = xed_stats.total_olen - xed_stats.total_ilen; - printf("#Growth/Shrinkage bytes: " XED_FMT_LD "\n", growth ); - if (xed_stats.total_ilen) { - double pct_growth = 100.0 * growth / (double) XCAST(xed_stats.total_ilen); - printf("#Code size growth percent: %f\n", pct_growth); - } -} - - -void -xed_map_region(const char* path, - void** start, - unsigned int* length) -{ -#if defined(_WIN32) - FILE* f; - size_t t,ilen; - xed_uint8_t* p; -#if defined(XED_MSVC8) - errno_t err; - fprintf(stderr,"#Opening %s\n", path); - err = fopen_s(&f,path,"rb"); -#else - int err=0; - fprintf(stderr,"#Opening %s\n", path); - f = fopen(path,"rb"); - err = (f==0); -#endif - if (err != 0) { - fprintf(stderr,"ERROR: Could not open %s\n", path); - exit(1); - } - err = fseek(f, 0, SEEK_END); - if (err != 0) { - fprintf(stderr,"ERROR: Could not fseek %s\n", path); - exit(1); - } - ilen = ftell(f); - fprintf(stderr,"#Trying to read " XED_FMT_SIZET "\n", ilen); - p = (xed_uint8_t*)malloc(ilen); - t=0; - err = fseek(f,0, SEEK_SET); - if (err != 0) { - fprintf(stderr,"ERROR: Could not fseek to start of file %s\n", path); - exit(1); - } - - while(t < ilen) { - size_t n; - if (feof(f)) { - fprintf(stderr, "#Read EOF. Stopping.\n"); - break; - } - n = fread(p+t, 1, ilen-t,f); - t = t+n; - fprintf(stderr,"#Read " XED_FMT_SIZET " of %d bytes\n", t, ilen); - if (ferror(f)) { - fprintf(stderr, "Error in file read. Stopping.\n"); - break; - } - } - fclose(f); - *start = p; - *length = (unsigned int)ilen; - -#else - int ilen,fd; - fd = open(path, O_RDONLY); - if (fd == -1) { - printf("Could not open file: %s\n" , path); - exit(1); - } - ilen = lseek(fd, 0, SEEK_END); // find the size. - if (ilen == -1) - xedex_derror("lseek failed"); - else - *length = (unsigned int) ilen; - - lseek(fd, 0, SEEK_SET); // go to the beginning - *start = mmap(0, - *length, - PROT_READ|PROT_WRITE, - MAP_PRIVATE, - fd, - 0); - if (*start == (void*) -1) - xedex_derror("could not map region"); -#endif - if (CLIENT_VERBOSE1) - printf("Mapped " XED_FMT_U " bytes!\n", *length); -} - - -//////////////////////////////////////////////////////////////////////////// - -static int all_zeros(xed_uint8_t* p, unsigned int len) { - unsigned int i; - for( i=0;i 1024 ) - // tlen = 1024; - //xed_print_hex_line(p,tlen); - - m = ninst; // number of things to decode - z = a; - len = 15; //FIXME - - // for skipping long strings of zeros - skipping = 0; - last_all_zeros = 0; - for( i=0; i= q) { - printf("# end of text section.\n"); - break; - } - if (CLIENT_VERBOSE3) { - printf("\n==============================================\n"); - printf("Decoding instruction " XED_FMT_U "\n", i); - printf("==============================================\n"); - } - - // if we get two full things of 0's in a row, start skipping. - if (all_zeros((xed_uint8_t*) z, 15)) - { - if (skipping) { - z = z + 15; - continue; - } - else if (last_all_zeros) { - printf("...\n"); - z = z + 15; - skipping = 1; - continue; - } - else - last_all_zeros = 1; - } - else - { - skipping = 0; - last_all_zeros = 0; - } - - runtime_instruction_address = ((xed_uint64_t)(z-a)) + runtime_vaddr; - - if (CLIENT_VERBOSE3) { - char tbuf[200]; - printf("Runtime Address " XED_FMT_LX ,runtime_instruction_address); - xed_print_hex_line(tbuf, (xed_uint8_t*) z, 15); - printf(" [%s]\n", tbuf); - } - okay = 0; - xed_decoded_inst_zero_set_mode(&xedd, dstate); - length = 0; - if ( decode_only ) - { - xed_uint64_t t1 = get_time(); - xed_uint64_t t2; - - xed_error_enum_t xed_error = xed_decode(&xedd, - REINTERPRET_CAST(const xed_uint8_t*,z), - len); - t2 = get_time(); - okay = (xed_error == XED_ERROR_NONE); - xed_decode_stats_reset(&xed_stats, t1, t2); - - length = xed_decoded_inst_get_length(&xedd); - if (okay && length == 0) { - printf("Zero length on decoded instruction!\n"); - xed_decode_error( z-a, z, xed_error); - xedex_derror("Dieing"); - } - xed_stats.total_ilen += length; - - if (okay) { - if (CLIENT_VERBOSE1) { - char tbuf[1024*3]; - xed_decoded_inst_dump(&xedd,tbuf, 1024*3); - printf("%s\n",tbuf); - } - if (CLIENT_VERBOSE) { - char buffer[200]; - unsigned int dec_len; - unsigned int sp; - if (symfn) { - char* name = (*symfn)(runtime_instruction_address); - if (name) - printf("\nSYM %s:\n", name); - } - printf("XDIS " XED_FMT_LX ": ", runtime_instruction_address); - printf("%-8s ", xed_category_enum_t2str(xed_decoded_inst_get_category(&xedd))); - printf("%-4s ", xed_extension_enum_t2str(xed_decoded_inst_get_extension(&xedd))); - dec_len = xed_decoded_inst_get_length(&xedd); - xed_print_hex_line(buffer, (xed_uint8_t*) z, dec_len); - printf("%s",buffer); - // pad out the instruction bytes - for ( sp=dec_len; sp < 12; sp++) { - printf(" "); - } - printf(" "); - memset(buffer,0,200); - disassemble(buffer,200, &xedd, runtime_instruction_address); - printf( "%s\n",buffer); - } - } - else { - errors++; - xed_decode_error( z-a, z, xed_error); - // just give a length of 1B to see if we can restart decode... - length = 1; - } - } - else - { - xed_uint64_t t1 = get_time(); - xed_uint64_t t2; - unsigned int olen = 0; - olen = disas_decode_encode_binary(dstate, - REINTERPRET_CAST(const xed_uint8_t*,z), - len, - &xedd); - t2=get_time(); - okay = (olen != 0); - xed_decode_stats_reset(&xed_stats, t1, t2); - if (!okay) { - errors++; - printf("-- Could not decode/encode at offset: %d\n" ,(int)(z-a)); - // just give a length of 1B to see if we can restart decode... - length = 1; - //exit(1); - } - else { - length = xed_decoded_inst_get_length(&xedd); - xed_stats.total_ilen += length; - xed_stats.total_olen += olen; - if (length > olen) - xed_stats.total_shorter += (length - olen); - else - xed_stats.total_longer += (olen - length); - } - - } - - z = z + length; - } - - printf( "# Errors: " XED_FMT_LU "\n", errors); - (void) s; -} - -#if defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 810 && !defined(_M_IA64) -# include -# if __INTEL_COMPILER < 1000 -# pragma intrinsic(__rdtsc) -# endif -#endif -#if defined(_MSC_VER) && _MSC_VER >= 1400 && !defined(_M_IA64) /* MSVS8 and later */ -# include -# pragma intrinsic(__rdtsc) -#endif - -xed_uint64_t get_time() -{ - xed_uint64_t ticks; - xed_uint32_t lo,hi; -#if defined(__GNUC__) -# if defined(__i386__) || defined(i386) || defined(i686) || defined(__x86_64__) - //asm volatile("rdtsc" : "=A" (ticks) ); - //asm volatile("rdtsc" : "=A" (ticks) :: "edx"); - asm volatile("rdtsc" : "=a" (lo), "=d" (hi)); - ticks = hi; - ticks <<=32; - ticks |=lo; -# define FOUND_RDTSC -# endif -#endif -#if defined(__INTEL_COMPILER) && __INTEL_COMPILER>=810 && !defined(_M_IA64) - ticks = __rdtsc(); -# define FOUND_RDTSC -#endif -#if !defined(FOUND_RDTSC) && defined(_MSC_VER) && _MSC_VER >= 1400 && !defined(_M_IA64) /* MSVS7, 8 */ - ticks = __rdtsc(); -# define FOUND_RDTSC -#endif -#if !defined(FOUND_RDTSC) - ticks = 0; -#endif - return ticks; - (void)hi; (void)lo; -} - - -xed_uint8_t -convert_ascii_nibble(char c) -{ - if (c >= '0' && c <= '9') { - return c-'0'; - } - else if (c >= 'a' && c <= 'f') { - return c-'a' + 10; - } - else if (c >= 'A' && c <= 'F') { - return c-'A' + 10; - } - else { - char buffer[200]; - char* x; - xed_strcpy(buffer,"Invalid character in hex string: "); - x= buffer+strlen(buffer); - *x++ = c; - *x++ = 0; - xedex_derror(buffer); - return 0; - } -} - - - -xed_uint64_t convert_ascii_hex_to_int(const char* s) { - xed_uint64_t retval = 0; - const char* p = s; - while (*p) { - retval = (retval << 4) + convert_ascii_nibble(*p); - p++; - } - return retval; -} - - -xed_uint8_t convert_ascii_nibbles(char c1, char c2) { - xed_uint8_t a = convert_ascii_nibble(c1) * 16 + convert_ascii_nibble(c2); - return a; -} - -unsigned int -xed_convert_ascii_to_hex(const char* src, xed_uint8_t* dst, unsigned int max_bytes) -{ - unsigned int j; - unsigned int p = 0; - unsigned int i = 0; - - const unsigned int len = STATIC_CAST(unsigned int,strlen(src)); - if ((len & 1) != 0) - xedex_derror("test string was not an even number of nibbles"); - - if (len > (max_bytes * 2) ) - xedex_derror("test string was too long"); - - for( j=0;j= '0' && c <= '9') - { - unsigned int digit = c - '0'; - v = v*10 + digit; - } - else - { - break; - } - } - return v*sign; -} - -static xed_int64_t -convert_base16(const char* buf) -{ - xed_int64_t v = 0; - int len = STATIC_CAST(int,strlen(buf)); - int start =0 ; - int i; - if (len > 2 && buf[0] == '0' && (buf[1] == 'x' || buf[1] == 'X')) - { - start = 2; - } - for(i=start;i= '0' && c <= '9') - { - unsigned int digit = c - '0'; - v = v*16 + digit; - } - else if (c >= 'A' && c <= 'F') - { - unsigned int digit = c - 'A' + 10; - v = v*16 + digit; - } - else if (c >= 'a' && c <= 'f') - { - unsigned int digit = c - 'a' + 10; - v = v*16 + digit; - } - else - { - break; - } - } - return v; -} - -static xed_int64_t -xed_internal_strtoll(const char* buf, int base) -{ - switch(base) - { - case 0: - if (strlen(buf) > 2 && buf[0] == '0' && - (buf[1] == 'x' || buf[1] == 'X')) - { - return convert_base16(buf); - } - return convert_base10(buf); - case 10: - return convert_base10(buf); - case 16: - return convert_base16(buf); - default: - xed_assert(0); - } - return 0; -} - -#endif - -xed_int64_t xed_strtoll(const char* buf, int base) -{ -#if defined(_WIN32) && !defined(__GNUC__) - // 64b version missing on some MS compilers - return xed_internal_strtoll(buf,base); -#else - return strtoll(buf,0,base); -#endif -} - - - -//////////////////////////////////////////////////////////////////////////// -//Local Variables: -//pref: "xed-examples-util.H" -//End: diff --git a/misc/decoder_test/XED2/examples/xed-examples-util.h b/misc/decoder_test/XED2/examples/xed-examples-util.h deleted file mode 100644 index 4dfc89a..0000000 --- a/misc/decoder_test/XED2/examples/xed-examples-util.h +++ /dev/null @@ -1,137 +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-examples-util.H -/// @author Mark Charney - - -#ifndef _XED_EXAMPLES_UTIL_H_ -# define _XED_EXAMPLES_UTIL_H_ - -#include -#include "xed-interface.h" - -extern int intel_syntax; -extern int att_syntax; -extern int xed_syntax; -extern int client_verbose; - -#define CLIENT_VERBOSE (client_verbose > 2) -#define CLIENT_VERBOSE1 (client_verbose > 3) -#define CLIENT_VERBOSE2 (client_verbose > 4) -#define CLIENT_VERBOSE3 (client_verbose > 5) - -char* xed_upcase_buf(char* s); - -/// Accepts K / M / G (or B) qualifiers ot multiply -xed_int64_t xed_atoi_general(char* buf, int mul); -xed_int64_t xed_atoi_hex(char* buf); - -/// Converts "112233" in to 0x112233 -xed_uint64_t convert_ascii_hex_to_int(const char* s); - - -unsigned int xed_convert_ascii_to_hex(const char* src, - xed_uint8_t* dst, - unsigned int max_bytes); - - -void xed_print_hex_lines(char* buf , const xed_uint8_t* array, const int length); // breaks lines at 16 bytes. -void xed_print_hex_line(char* buf, const xed_uint8_t* array, const int length); // no endl - -void xedex_derror(const char* s); -void xedex_dwarn(const char* s); - -////////////////////////////////////////////////////////////////////// - - -typedef struct { - xed_state_t dstate; - int ninst; - int decode_only; -} xed_decode_file_info_t; - -void xed_decode_file_info_init(xed_decode_file_info_t* p, - const xed_state_t* arg_dstate, - int anrg_ninst, - int arg_decode_only); - -void xed_map_region(const char* path, - void** start, - unsigned int* length); - -void -xed_disas_test(const xed_state_t* dstate, - unsigned char* s, // start of image - unsigned char* a, // start of instructions to decode region - unsigned char* q, // end of region - int ninst, - xed_uint64_t runtime_vaddr, // where this region would live at runtime - int decode_only, - char* (*symfn)(xed_uint64_t)); // a function to convert addresses to symbols - - -// returns 1 on success, 0 on failure -xed_uint_t disas_decode_binary(const xed_state_t* dstate, - const xed_uint8_t* hex_decode_text, - const unsigned int bytes, - xed_decoded_inst_t* xedd); - -// returns encode length on success, 0 on failure -xed_uint_t disas_decode_encode_binary(const xed_state_t* dstate, - const xed_uint8_t* decode_text_binary, - const unsigned int bytes, - xed_decoded_inst_t* xedd); - - -void xed_print_decode_stats(); - -int -fn_disassemble_xed(xed_syntax_enum_t syntax, - char* buf, - int buflen, - xed_decoded_inst_t* xedd, - xed_uint64_t runtime_instruction_address); - -void disassemble(char* buf, - int buflen, - xed_decoded_inst_t* xedd, - xed_uint64_t runtime_instruction_address); - -xed_uint64_t get_time(); - -// 64b version missing on some MS compilers so I wrap it for portability. -// This function is rather limited and only handles base 10 and base 16. -xed_int64_t xed_strtoll(const char* buf, int base); - -#endif // file -//Local Variables: -//pref: "xed-examples-util.c" -//End: diff --git a/misc/decoder_test/XED2/examples/xed-min.cpp b/misc/decoder_test/XED2/examples/xed-min.cpp deleted file mode 100644 index 58e00ee..0000000 --- a/misc/decoder_test/XED2/examples/xed-min.cpp +++ /dev/null @@ -1,77 +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-min.cpp -/// @author Mark Charney -/// @brief a minimal toy example of using the decoder - -extern "C" { -#include "xed-interface.h" -} -#include -#include -using namespace std; - -int main(int argc, char** argv); - -int main(int argc, char** argv) { - // initialize the XED tables -- one time. - xed_tables_init(); - - // The state of the machine -- required for decoding - xed_state_t dstate; - xed_state_zero(&dstate); - xed_state_init(&dstate, - XED_MACHINE_MODE_LEGACY_32, - XED_ADDRESS_WIDTH_32b, - XED_ADDRESS_WIDTH_32b); - - // create the decoded instruction, and fill in the machine mode (dstate) - xed_decoded_inst_t xedd; - xed_decoded_inst_zero_set_mode(&xedd, &dstate); - - // make up a simple 2Byte instruction to decode - unsigned int bytes = 2; - unsigned char itext[15] = { 0, 0}; - - // call decode - xed_error_enum_t xed_error = xed_decode(&xedd, - STATIC_CAST(const xed_uint8_t*,itext), - bytes); - - // check for errors - xed_bool_t okay = (xed_error == XED_ERROR_NONE); - if (okay) { - cout << "OK" << endl; - return 0; - } - return 1; - (void) argc; (void) argv; //pacify compiler -} diff --git a/misc/decoder_test/XED2/examples/xed-size.c b/misc/decoder_test/XED2/examples/xed-size.c deleted file mode 100644 index cddd6f1..0000000 --- a/misc/decoder_test/XED2/examples/xed-size.c +++ /dev/null @@ -1,43 +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 */ - -#include "xed-interface.h" -#include -int main(int argc, char** argv); -int main(int argc, char** argv) { - /* I use this to keep track of the size of my per-instruction data structures */ - xed_decoded_inst_t x; - /*xed_tables_init(); */ - printf("%d\n", (int)sizeof(xed_decoded_inst_t)); - return 0; - (void) argc; (void) argv; //pacify compiler - (void) x; -} diff --git a/misc/decoder_test/XED2/examples/xed-tester.cpp b/misc/decoder_test/XED2/examples/xed-tester.cpp deleted file mode 100644 index d8ae7df..0000000 --- a/misc/decoder_test/XED2/examples/xed-tester.cpp +++ /dev/null @@ -1,84 +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-tester.cpp -/// @author Mark Charney - - -extern "C" { -#include "xed-interface.h" -} -#include -#include -using namespace std; -int main(int argc, char** argv); - -class xed_test_t -{ - public: - unsigned int len; - unsigned char itext[15]; -}; - -xed_test_t tests[] = { - { 2, { 0, 0 } }, - { 2, { 2, 0 } }, - { 2, { 0xF3, 0x90 } }, - { 0 } -}; - -int main(int argc, char** argv) { - unsigned int i,j; - xed_tables_init(); - xed_state_t dstate; - xed_state_zero(&dstate); - xed_state_init(&dstate, - XED_MACHINE_MODE_LEGACY_32, - XED_ADDRESS_WIDTH_32b, - XED_ADDRESS_WIDTH_32b); - for ( i=0; tests[i].len ; i++) { - xed_decoded_inst_t xedd; - xed_decoded_inst_zero_set_mode(&xedd, &dstate); - cout << hex << "Testing: "; - for( j=0; j< tests[i].len; j++) { - cout << setfill('0') << setw(2); - cout << STATIC_CAST(unsigned int,tests[i].itext[j]) << " "; - } - cout << endl; - xed_error_enum_t xed_error = xed_decode(&xedd, - REINTERPRET_CAST(xed_uint8_t*,tests[i].itext), - tests[i].len); - xed_bool_t okay = (xed_error == XED_ERROR_NONE); - if (okay) { - cout << "OK" << endl; - } - } - (void) argc; (void) argv; //pacify compiler -} diff --git a/misc/decoder_test/XED2/examples/xed.cpp b/misc/decoder_test/XED2/examples/xed.cpp deleted file mode 100644 index cd96791..0000000 --- a/misc/decoder_test/XED2/examples/xed.cpp +++ /dev/null @@ -1,560 +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.cpp -/// @author Mark Charney - - -//////////////////////////////////////////////////////////////////////////// -extern "C" { -#include "xed-interface.h" -#include "xed-immdis.h" -#include "xed-portability.h" -#include "xed-examples-util.h" -//void xed_decode_traverse_dump_profile(); -} - -#include "xed-disas-elf.H" -#include "xed-disas-macho.H" -#include "xed-disas-pecoff.H" -#include "xed-disas-raw.H" -#include "xed-enc-lang.H" - -#include -#include -#include -#include - -using namespace std; - - -int main(int argc, char** argv); - -//////////////////////////////////////////////////////////////////////////// - -static xed_uint_t disas_decode(const xed_state_t* dstate, - const char* decode_text, - xed_decoded_inst_t* xedd) { - xed_uint8_t hex_decode_text[XED_MAX_INSTRUCTION_BYTES]; - xed_uint_t bytes = xed_convert_ascii_to_hex(decode_text, hex_decode_text,XED_MAX_INSTRUCTION_BYTES); - return disas_decode_binary(dstate, hex_decode_text, bytes, xedd); -} - - -static unsigned int disas_decode_encode(const xed_state_t* dstate, - const char* decode_text, - xed_decoded_inst_t* xedd) { - xed_uint8_t hex_decode_text[XED_MAX_INSTRUCTION_BYTES]; - xed_uint_t bytes = xed_convert_ascii_to_hex(decode_text, - hex_decode_text, - XED_MAX_INSTRUCTION_BYTES); - return disas_decode_encode_binary(dstate, hex_decode_text, bytes, xedd); -} - -static unsigned int disas_encode(const xed_state_t* dstate, - const char* encode_text) { - unsigned int olen=0; - ascii_encode_request_t areq; - areq.dstate = *dstate; - areq.command = encode_text; - xed_encoder_request_t req = parse_encode_request(areq); - char buf[5000]; - xed_encode_request_print(&req, buf, 5000); - printf("Request: %s", buf); - - - //for(xed_uint_t i=0;i< xed_encoder_request_operand_order_entries(&req);i++) - // printf("REQUEST OPERAND ORDER ARRAY %d %s\n", - // i, xed_operand_enum_t2str( xed_encoder_request_get_operand_order(&req,i) ) ); - xed_uint8_t array[XED_MAX_INSTRUCTION_BYTES]; - unsigned int ilen = XED_MAX_INSTRUCTION_BYTES; - xed_error_enum_t r = xed_encode(&req, array, ilen, &olen); - if (r != XED_ERROR_NONE) { - printf("Could not encode: %s\n", encode_text); - printf("Error code was: %s\n", xed_error_enum_t2str(r)); - xedex_derror("Dieing"); - } - else if (CLIENT_VERBOSE) { - char buf2[100]; - xed_print_hex_line(buf2,array, olen); - printf("Encodable! %s\n", buf2); - } - return olen; -} - -static void no_comments(char* buf) { - size_t len = strlen(buf); - for(size_t i=0;i -static void xed_assemble(const xed_state_t* dstate, - const char* encode_file_name) { - ifstream infile(encode_file_name); - if (!infile) { - printf("Could not open %s\n", encode_file_name); - xedex_derror("Dieing"); - } - char buf[1024]; - while(infile.getline(buf,sizeof(buf))) { - printf("; %s\n",buf); - no_comments(buf); - if (strlen(buf) == 0) - continue; - unsigned int olen=0; - ascii_encode_request_t areq; - areq.dstate = *dstate; - areq.command = buf; - xed_encoder_request_t req = parse_encode_request(areq); - - xed_uint8_t array[XED_MAX_INSTRUCTION_BYTES]; - unsigned int ilen = XED_MAX_INSTRUCTION_BYTES; - xed_error_enum_t r = xed_encode(&req, array, ilen, &olen); - if (r != XED_ERROR_NONE) { - printf("Could not encode: %s\n", buf); - printf("Error code was: %s\n", xed_error_enum_t2str(r)); - xedex_derror("Dieing"); - } - printf(" .byte "); - for(unsigned int i=0;i 0) - printf(", "); - printf("0x%02x",array[i]); - } - printf("\n"); - } -} - -static void usage(char* prog) { - unsigned int i; - static const char* usage_msg[] = { - "One of the following is required:", - "\t-i input_file (decode file)", - "\t-ir raw_input_file (decode a raw unformatted binary file)", - "\t-ide input_file (decode/encode file)", - "\t-d hex-string (decode one instruction, must be last)", - "\t-e instruction (encode, must be last)", - "\t-ie file-to-assemble (assemble the contents of the file)", - "\t-de hex-string (decode-then-encode, must be last)", - " ", - "Optional arguments:", - "\t-v verbosity (0=quiet, 1=errors, 2=useful-info, 3=trace, 5=very verbose)", - "\t-xv xed-engine-verbosity (0...99)", - "\t-s target section for file disassembly (PECOFF and ELF formats only)", - - "\t-n number-of-instructions-to-decode (default 100M, accepts K/M/G qualifiers)", - "\t-I (Intel syntax for disassembly)", - "\t-A (ATT SYSV syntax for disassembly)", - "\t-16 (for LEGACY_16 mode)", - "\t-32 (for LEGACY_32 mode, default)", - "\t-64 (for LONG_64 mode w/64b addressing -- optional on windows/linux)", - "\t-a32 (32b addressing, default, not in LONG_64 mode)", - "\t-a16 (16b addressing, not in LONG_64 mode)", - "\t-s32 (32b stack addressing, default, not in LONG_64 mode)", - "\t-s16 (16b stack addressing, not in LONG_64 mode)", -// " ", -// "\t-nofeedback (turn off feedback for builds that actually use feedback)", - " ", - 0 - }; - - cerr << "Usage: " << prog << " [options]" << endl; - for(i=0; usage_msg[i] ; i++) - cerr << "\t" << usage_msg[i] << endl; -} - -#if 1 -void test_immdis() { - char buf[1000]; - xed_int64_t sv; - xed_immdis_t i; - xed_uint64_t v = 0x11223344; - xed_uint32_t uv =0; - - xed_immdis_init(&i,8); - xed_immdis_add_shortest_width_signed(&i,v,4); - xed_immdis_print(&i,buf,1000); - printf("%s\n",buf); - - xed_immdis_zero(&i); - xed_immdis_add_shortest_width_unsigned(&i,uv,5); - xed_immdis_print(&i,buf,1000); - printf("%s\n",buf); - - xed_immdis_zero(&i); - - sv = 0x90; - xed_immdis_add_shortest_width_signed(&i,sv,5); - xed_immdis_print(&i,buf,1000); - printf("%s\n",buf); - - xed_immdis_zero(&i); - - sv = -128; - xed_immdis_add_shortest_width_signed(&i,sv,5); - xed_immdis_print(&i,buf,1000); - printf("%s\n",buf); - - xed_immdis_zero(&i); - - sv = -127; - xed_immdis_add_shortest_width_signed(&i,sv,5); - xed_immdis_print(&i,buf,1000); - printf("%s\n",buf); - - xed_immdis_zero(&i); - uv = 0x80000000; - xed_immdis_add_shortest_width_unsigned(&i,uv,5); - xed_immdis_print(&i,buf,1000); - printf("%s\n",buf); - -#if !defined(_MSC_VER) // MSVS6 VC98 chokes on the LL. Just punt on MS compilers - xed_immdis_zero(&i); - - sv = 0xffffffff81223344LL; - xed_immdis_add_shortest_width_signed(&i,sv,4); - xed_immdis_print(&i,buf,1000); - printf("%s\n",buf); - v = 0x1122334455667788ULL; - xed_immdis_zero(&i); - xed_immdis_add_shortest_width_signed(&i,sv,4); - xed_immdis_print(&i,buf,1000); - printf("%s\n",buf); - #endif - - v = 0x11223344; - xed_immdis_zero(&i); - xed_immdis_add_shortest_width_signed(&i,v,4); - xed_immdis_print(&i,buf,1000); - printf("%s\n",buf); - - v = 0x112233; - xed_immdis_zero(&i); - xed_immdis_add_shortest_width_signed(&i,v,4); - - xed_immdis_print(&i,buf,1000); - printf("%s\n",buf); - - v = 0x1122; - xed_immdis_zero(&i); - xed_immdis_add_shortest_width_signed(&i,v,4); - - xed_immdis_print(&i,buf,1000); - printf("%s\n",buf); - - v = 0x11; - xed_immdis_zero(&i); - xed_immdis_add_shortest_width_signed(&i,v,4); - - xed_immdis_print(&i,buf,1000); - printf("%s\n",buf); - - - v = 0x1122; - xed_immdis_zero(&i); - xed_immdis_add_shortest_width_signed(&i,v,3); - - xed_immdis_print(&i,buf,1000); - printf("%s\n",buf); - - v = 0xffff; - xed_immdis_zero(&i); - xed_immdis_add_shortest_width_signed(&i,v,2); - - xed_immdis_print(&i,buf,1000); - printf("%s\n",buf); - - v = 0xff00; - xed_immdis_zero(&i); - xed_immdis_add_shortest_width_signed(&i,v,2); - xed_immdis_print(&i,buf,1000); - printf("%s\n",buf); - - - v = 0xff77; - xed_immdis_zero(&i); - xed_immdis_add_shortest_width_signed(&i,v,7); - xed_immdis_print(&i,buf,1000); - printf("%s\n",buf); - - v = 0xff7777; - xed_immdis_zero(&i); - xed_immdis_add_shortest_width_signed(&i,v,5); - xed_immdis_print(&i,buf,1000); - printf("%s\n",buf); - - v = 0xff8000; - xed_immdis_zero(&i); - xed_immdis_add_shortest_width_signed(&i,v,7); - xed_immdis_print(&i,buf,1000); - printf("%s\n",buf); - - exit(1); -} -#endif - - -void remove_spaces(string& s) { - string::size_type i,p=0,len = s.size(); - for(i=0;i= argc) - xedex_derror("Need more arguments. Use \"xed -help\" for usage."); -} - -int main(int argc, char** argv) { - xed_bool_t sixty_four_bit = false; - xed_bool_t decode_only = true; - char* input_file_name = 0; - string decode_text(""); - string encode_text(""); - xed_state_t dstate; - xed_bool_t encode = false; - unsigned int ninst = 100*1000*1000; // FIXME: should use maxint... - xed_bool_t decode_encode = false; - int i,j; - unsigned int loop_decode = 0; - xed_bool_t decode_raw = false; - xed_bool_t assemble = false; - char* target_section = 0; - xed_state_init(&dstate, - XED_MACHINE_MODE_LEGACY_32, - XED_ADDRESS_WIDTH_32b, - XED_ADDRESS_WIDTH_32b); - - - client_verbose = 3; - xed_set_verbosity( client_verbose ); - for( i=1;i(decode_text.size() / 2); // 2 bytes per nibble - do { - retval_okay = disas_decode(&dstate, p, &xedd); - unsigned int len = xed_decoded_inst_get_length(&xedd); - p+=len*2; - remaining -= len; - } - while(retval_okay && remaining > 0); - } - } - else if (decode_raw) { - xed_disas_raw(input_file_name, &dstate, ninst, sixty_four_bit, decode_only); - } - else { - -#if defined(XED_MAC_OSX_FILE_READER) - xed_disas_macho(input_file_name, &dstate, ninst, sixty_four_bit, decode_only); -#elif defined(XED_ELF_READER) - xed_disas_elf(input_file_name, &dstate, ninst, sixty_four_bit, decode_only, - target_section); -#elif defined(XED_PECOFF_FILE_READER) - xed_disas_pecoff(input_file_name, &dstate, ninst, sixty_four_bit, decode_only, - target_section); -#else - xedex_derror("No PECOFF, ELF or MACHO support compiled in"); -#endif - } - //xed_decode_traverse_dump_profile(); - - if (retval_okay==0) - exit(1); - return 0; - (void) obytes; -} - - -//////////////////////////////////////////////////////////////////////////// diff --git a/misc/decoder_test/XED2/include/xed-address-width-enum.h b/misc/decoder_test/XED2/include/xed-address-width-enum.h deleted file mode 100644 index f37166c..0000000 --- a/misc/decoder_test/XED2/include/xed-address-width-enum.h +++ /dev/null @@ -1,53 +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-address-width-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_ADDRESS_WIDTH_ENUM_H_) -# define _XED_ADDRESS_WIDTH_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_ADDRESS_WIDTH_INVALID=0, - XED_ADDRESS_WIDTH_16b=2, ///< 16b addressing - XED_ADDRESS_WIDTH_32b=4, ///< 32b addressing - XED_ADDRESS_WIDTH_64b=8, ///< 64b addressing - XED_ADDRESS_WIDTH_LAST -} xed_address_width_enum_t; - -XED_DLL_EXPORT xed_address_width_enum_t -str2xed_address_width_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_address_width_enum_t2str(const xed_address_width_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-attribute-enum.h b/misc/decoder_test/XED2/include/xed-attribute-enum.h deleted file mode 100644 index 4aca105..0000000 --- a/misc/decoder_test/XED2/include/xed-attribute-enum.h +++ /dev/null @@ -1,67 +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-attribute-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_ATTRIBUTE_ENUM_H_) -# define _XED_ATTRIBUTE_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_ATTRIBUTE_INVALID=0, - XED_ATTRIBUTE_ANY_REP_ABLE=1, - XED_ATTRIBUTE_ATT_OPERAND_ORDER_EXCEPTION=2, - XED_ATTRIBUTE_FAR_XFER=4, - XED_ATTRIBUTE_FIXED_BASE0=8, - XED_ATTRIBUTE_FIXED_BASE1=16, - XED_ATTRIBUTE_REQUIRES_ALIGNMENT=32, - XED_ATTRIBUTE_SIMD_PACKED_ALIGNMENT=64, - XED_ATTRIBUTE_SIMD_SCALAR=128, - XED_ATTRIBUTE_SKIPLOW32=256, - XED_ATTRIBUTE_SKIPLOW64=512, - XED_ATTRIBUTE_UNALIGNED=1024, - XED_ATTRIBUTE_X87_MMX_STATE_CW=2048, - XED_ATTRIBUTE_X87_MMX_STATE_R=4096, - XED_ATTRIBUTE_X87_MMX_STATE_W=8192, - XED_ATTRIBUTE_XMM_STATE_CW=16384, - XED_ATTRIBUTE_XMM_STATE_R=32768, - XED_ATTRIBUTE_XMM_STATE_W=65536, - XED_ATTRIBUTE_LAST -} xed_attribute_enum_t; - -XED_DLL_EXPORT xed_attribute_enum_t -str2xed_attribute_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_attribute_enum_t2str(const xed_attribute_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-category-enum.h b/misc/decoder_test/XED2/include/xed-category-enum.h deleted file mode 100644 index d23b2d6..0000000 --- a/misc/decoder_test/XED2/include/xed-category-enum.h +++ /dev/null @@ -1,86 +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-category-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_CATEGORY_ENUM_H_) -# define _XED_CATEGORY_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_CATEGORY_INVALID, - XED_CATEGORY_3DNOW, - XED_CATEGORY_BASE, - XED_CATEGORY_BINARY, - XED_CATEGORY_BITBYTE, - XED_CATEGORY_CALL, - XED_CATEGORY_CMOV, - XED_CATEGORY_COND_BR, - XED_CATEGORY_DATAXFER, - XED_CATEGORY_DECIMAL, - XED_CATEGORY_FCMOV, - XED_CATEGORY_FLAGOP, - XED_CATEGORY_INTERRUPT, - XED_CATEGORY_IO, - XED_CATEGORY_IOSTRINGOP, - XED_CATEGORY_LOGICAL, - XED_CATEGORY_MISC, - XED_CATEGORY_MMX, - XED_CATEGORY_NOP, - XED_CATEGORY_POP, - XED_CATEGORY_PREFETCH, - XED_CATEGORY_PUSH, - XED_CATEGORY_RET, - XED_CATEGORY_ROTATE, - XED_CATEGORY_SEGOP, - XED_CATEGORY_SEMAPHORE, - XED_CATEGORY_SHIFT, - XED_CATEGORY_SSE, - XED_CATEGORY_STRINGOP, - XED_CATEGORY_SYSCALL, - XED_CATEGORY_SYSRET, - XED_CATEGORY_SYSTEM, - XED_CATEGORY_UNCOND_BR, - XED_CATEGORY_VTX, - XED_CATEGORY_WIDENOP, - XED_CATEGORY_X87_ALU, - XED_CATEGORY_XSAVE, - XED_CATEGORY_LAST -} xed_category_enum_t; - -XED_DLL_EXPORT xed_category_enum_t -str2xed_category_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_category_enum_t2str(const xed_category_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-common-defs.h b/misc/decoder_test/XED2/include/xed-common-defs.h deleted file mode 100644 index ec2b6b6..0000000 --- a/misc/decoder_test/XED2/include/xed-common-defs.h +++ /dev/null @@ -1,78 +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-common-defs.h -/// @author Mark Charney -/// @brief some pervasive defines - - - -#ifndef _XED_COMMON_DEFS_H_ -# define _XED_COMMON_DEFS_H_ - -//////////////////////////////////////////////////////////////////////////// - -#define XED_MAX_OPERANDS 11 -#define XED_MAX_NONTERMINALS_PER_INSTRUCTION 20 // FIXME somewhat arbitrary - -#define XED_MAX_DISPLACEMENT_BYTES 8 // for most things it is 4, but one 64b mov allows 8 -#define XED_MAX_IMMEDIATE_BYTES 8 // for most things it is max 4, but one 64b mov allows 8. - -#define XED_MAX_INSTRUCTION_BYTES 15 - - -#define XED_BYTE_MASK(x) ((x) & 0xFF) -#define XED_BYTE_CAST(x) (STATIC_CAST(xed_uint8_t,x)) - -//////////////////////////////////////////////////////////////////////////// -// used for defining bit-field widths -// Microsoft's compiler treats enumerations as signed and if you pack -// the bit-field with values, when you assign it to a full-width enumeration, -// you get junk-- a big negative number. This compensates for cases that I've -// encountered -#if defined(__GNUC__) -# define XED_BIT_FIELD_PSEUDO_WIDTH4 4 -# define XED_BIT_FIELD_PSEUDO_WIDTH8 8 -#else -# define XED_BIT_FIELD_PSEUDO_WIDTH4 8 -# define XED_BIT_FIELD_PSEUDO_WIDTH8 16 -#endif - - -#endif - - - - - - - - - diff --git a/misc/decoder_test/XED2/include/xed-common-hdrs.h b/misc/decoder_test/XED2/include/xed-common-hdrs.h deleted file mode 100644 index 359db1c..0000000 --- a/misc/decoder_test/XED2/include/xed-common-hdrs.h +++ /dev/null @@ -1,61 +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-common-hdrs.h -/// @author Mark Charney - - - -#ifndef _XED_COMMON_HDRS_H_ -# define _XED_COMMON_HDRS_H_ - -//////////////////////////////////////////////////////////////////////////// -#if !defined(XED_MESSAGES) -# define XED_MESSAGES 0 -#endif - -#if defined(XED_DLL) -// __declspec(dllexport) works with GNU GCC or MS compilers -# define XED_DLL_EXPORT __declspec(dllexport) -# define XED_DLL_IMPORT __declspec(dllimport) -# if defined(XED_BUILD) -# define XED_DLL_GLOBAL XED_DLL_EXPORT -# else -# define XED_DLL_GLOBAL XED_DLL_IMPORT -# endif -#else -# define XED_DLL_EXPORT -# define XED_DLL_IMPORT -# define XED_DLL_GLOBAL -#endif -//////////////////////////////////////////////////////////////////////////// - -#endif - diff --git a/misc/decoder_test/XED2/include/xed-decode.h b/misc/decoder_test/XED2/include/xed-decode.h deleted file mode 100644 index fca7866..0000000 --- a/misc/decoder_test/XED2/include/xed-decode.h +++ /dev/null @@ -1,93 +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-decode.h -/// @author Mark Charney - - -#ifndef _XED_DECODE_H_ -# define _XED_DECODE_H_ - - -#include "xed-decoded-inst.h" -#include "xed-error-enum.h" -//////////////////////////////////////////////////////////////////////////// -// DEFINES -//////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////// -// TYPES -//////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////// -// PROTOTYPES -//////////////////////////////////////////////////////////////////////////// - -/// This is the main interface to the decoder. -/// @param xedd the decoded instruction of type #xed_decoded_inst_t . Mode/state sent in via xedd; See the #xed_state_t -/// @param itext the pointer to the array of instruction text bytes -/// @param bytes the length of the itext input array. 1 to 15 bytes, anything more is ignored. -/// @return #xed_error_enum_t indiciating success (#XED_ERROR_NONE) or failure. Note failure can be due to not -/// enough bytes in the input array. -/// -/// The maximum instruction is 15B and XED will tell you how long the -/// actual instruction is via an API function call -/// xed_decoded_inst_get_length(). However, it is not always safe or -/// advisable for XED to read 15 bytes if the decode location is at the -/// boundary of some sort of protection limit. For example, if one is -/// decoding near the end of a page and the XED user does not want to cause -/// extra page faults, one might send in the number of bytes that would -/// stop at the page boundary. In this case, XED might not be able to -/// decode the instruction and would return an error. The XED user would -/// then have to decide if it was safe to touch the next page and try again -/// to decode with more bytes. Also sometimes the user process does not -/// have read access to the next page and this allows the user to prevent -/// XED from causing process termination by limiting the memory range that -/// XED will access. -/// -/// @ingroup DEC -XED_DLL_EXPORT xed_error_enum_t -xed_decode(xed_decoded_inst_t* xedd, - const xed_uint8_t* itext, - const unsigned int bytes); - - -//////////////////////////////////////////////////////////////////////////// -// GLOBALS -//////////////////////////////////////////////////////////////////////////// - - -#endif -//////////////////////////////////////////////////////////////////////////// -//Local Variables: -//pref: "../../xed-decode.cpp" -//End: diff --git a/misc/decoder_test/XED2/include/xed-decoded-inst.h b/misc/decoder_test/XED2/include/xed-decoded-inst.h deleted file mode 100644 index ac20488..0000000 --- a/misc/decoder_test/XED2/include/xed-decoded-inst.h +++ /dev/null @@ -1,468 +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-decoded-inst.h -/// @author Mark Charney - -#if !defined(_XED_DECODER_STATE_H_) -# define _XED_DECODER_STATE_H_ -#include "xed-common-hdrs.h" -#include "xed-common-defs.h" -#include "xed-portability.h" -#include "xed-util.h" -#include "xed-types.h" -#include "xed-operand-values-interface.h" -#include "xed-inst.h" -#include "xed-flags.h" -#include "xed-encoder-gen-defs.h" //generated - - -// fwd-decl xed_simple_flag_t; -// fwd-decl xed_inst_t; - - -struct xed_encoder_vars_s; -struct xed_decoder_vars_s; - -/// @ingroup DEC -/// The main container for instructions. After decode, it holds an array of -/// operands with derived information from decode and also valid -/// #xed_inst_t pointer which describes the operand templates and the -/// operand order. See @ref DEC for API documentation. -typedef struct XED_DLL_EXPORT xed_decoded_inst_s { - /// The operand storage fields discovered during decoding. This same array is used by encode. - xed_operand_values_t _operands[XED_OPERAND_LAST]; // FIXME: can further squeeze down 16b units - - /// Used for encode operand ordering. Not set by decode. - xed_uint8_t _operand_order[XED_ENCODE_ORDER_MAX_OPERANDS]; - - xed_uint8_t _decoded_length; - // Length of the _operand_order[] array. - xed_uint8_t _n_operand_order; - - /// when we decode an instruction, we set the _inst and get the - /// properites of that instruction here. This also points to the - /// operands template array. - const xed_inst_t* _inst; - - // decoder does not change it, encoder does - union { - xed_uint8_t* _enc; - const xed_uint8_t* _dec; - } _byte_array; - - // These are stack allocated by xed_encode() or xed_decode(). These are - // per-encode or per-decode transitory data. - union { - - /* user_data is available as a user data storage field after - * decoding. It does not live across re-encodes or re-decodes. */ - xed_uint64_t user_data; - struct xed_decoder_vars_s* dv; - struct xed_encoder_vars_s* ev; - } u; - - - -} xed_decoded_inst_t; - - - -/// @name xed_decoded_inst_t Operands array access -//@{ -/// @ingroup DEC -/// Obtain a constant pointer to the operands -static XED_INLINE const xed_operand_values_t* -xed_decoded_inst_operands_const(const xed_decoded_inst_t* p) { - return STATIC_CAST(xed_operand_values_t*,p->_operands); -} -/// @ingroup DEC -/// Obtain a non-constant pointer to the operands -static XED_INLINE xed_operand_values_t* -xed_decoded_inst_operands(xed_decoded_inst_t* p) { - return STATIC_CAST(xed_operand_values_t*,p->_operands); -} -//@} - -/// @name xed_decoded_inst_t Initialization -//@{ -/// @ingroup DEC -/// Zero the decode structure, but set the machine state/mode information -XED_DLL_EXPORT void xed_decoded_inst_zero_set_mode(xed_decoded_inst_t* p, const xed_state_t* dstate); -/// @ingroup DEC -/// Zero the decode structure, but preserve the existing machine state/mode information -XED_DLL_EXPORT void xed_decoded_inst_zero_keep_mode(xed_decoded_inst_t* p); -/// @ingroup DEC -/// Zero the decode structure completely. -XED_DLL_EXPORT void xed_decoded_inst_zero(xed_decoded_inst_t* p); -/// @ingroup DEC -/// Zero the decode structure, but copy the existing machine state/mode information from the supplied operands pointer. -XED_DLL_EXPORT void xed_decoded_inst_zero_keep_mode_from_operands(xed_decoded_inst_t* p, - const xed_operand_values_t* operands); -//@} - -/// @name xed_decoded_inst_t Length -//@{ -/// @ingroup DEC -/// Return the length of the decoded instruction in bytes. -static XED_INLINE xed_uint_t -xed_decoded_inst_get_length(const xed_decoded_inst_t* p) { - return p->_decoded_length; -} - - -//@} - -/// @name modes -//@{ -/// @ingroup DEC -static XED_INLINE xed_uint_t xed_decoded_inst_get_mode(const xed_decoded_inst_t* p) { - return p->_operands[XED_OPERAND_MODE]; -} -/// @ingroup DEC -static XED_INLINE xed_uint_t xed_decoded_inst_get_address_mode(const xed_decoded_inst_t* p) { - return p->_operands[XED_OPERAND_AMODE]; -} -/// @ingroup DEC -static XED_INLINE xed_uint_t xed_decoded_inst_get_stack_address_mode(const xed_decoded_inst_t* p) { - return p->_operands[XED_OPERAND_SMODE]; -} -//@} - - -/////////////////////////////////////////////////////// -/// API -/////////////////////////////////////////////////////// - -/// @name xed_decoded_inst_t High-level accessors -//@{ -/// @ingroup DEC -/// Return true if the instruction is valid -static XED_INLINE xed_bool_t xed_decoded_inst_valid(const xed_decoded_inst_t* p ) { - return STATIC_CAST(xed_bool_t,(p->_inst != 0)); -} -/// @ingroup DEC -/// Return the #xed_inst_t structure for this instruction. This is the route to the basic operands form information. -static XED_INLINE const xed_inst_t* xed_decoded_inst_inst( const xed_decoded_inst_t* p) { - return p->_inst; -} - - -/// @ingroup DEC -/// Return the instruction category enumeration -static XED_INLINE xed_category_enum_t xed_decoded_inst_get_category(const xed_decoded_inst_t* p) { - xed_assert(p->_inst != 0); - return xed_inst_category(p->_inst); -} -/// @ingroup DEC -/// Return the instruction extension enumeration -static XED_INLINE xed_extension_enum_t xed_decoded_inst_get_extension( const xed_decoded_inst_t* p) { - xed_assert(p->_inst != 0); - return xed_inst_extension(p->_inst); -} -/// @ingroup DEC -/// Return the instruction class enumeration. -static XED_INLINE xed_iclass_enum_t xed_decoded_inst_get_iclass( const xed_decoded_inst_t* p){ - xed_assert(p->_inst != 0); - return xed_inst_iclass(p->_inst); -} - -/// @ingroup DEC -/// Returns 1 if the attribute is defined for this instruction. -XED_DLL_EXPORT xed_uint32_t xed_decoded_inst_get_attribute(const xed_decoded_inst_t* p, xed_attribute_enum_t attr); - -/// @ingroup DEC -/// Returns the attribute bitvector -XED_DLL_EXPORT xed_uint32_t xed_decoded_inst_get_attributes(const xed_decoded_inst_t* p); -//@} - -/// @name IFORM handling -//@{ - -/// @ingroup DEC -/// Return the instruction iform enum of type #xed_iform_enum_t . -static XED_INLINE xed_iform_enum_t xed_decoded_inst_get_iform_enum(const xed_decoded_inst_t* p) { - xed_assert(p->_inst != 0); - return xed_inst_iform_enum(p->_inst); -} - - -/// @ingroup DEC -/// Return the instruction zero-based iform number based on masking the -/// corresponding #xed_iform_enum_t. This value is suitable for -/// dispatching. The maximum value for a particular iclass is provided by -/// #xed_iform_max_per_iclass() . -static XED_INLINE unsigned int xed_decoded_inst_get_iform_enum_dispatch(const xed_decoded_inst_t* p) { - xed_assert(p->_inst != 0); - return xed_inst_iform_enum(p->_inst) & 0xFF; -} - -/// @ingroup DEC -/// Return the maximum number of iforms for a particular iclass. This -/// function returns valid data as soon as global data is initialized. (This -/// function does not require a decoded instruction as input). -XED_DLL_EXPORT xed_uint32_t xed_iform_max_per_iclass(xed_iclass_enum_t iclass); - -#define XED_MASK_IFORM(x) ((x) & 0xFF) - -/// @ingroup DEC -/// DEPRECATED Return the instruction iform number. The iform is zero-based number of -/// the different instances of each iclass. -static XED_INLINE xed_uint_t xed_decoded_inst_get_old_iform( const xed_decoded_inst_t* p){ - xed_assert(p->_inst != 0); - return xed_inst_iform(p->_inst); -} - -//@} - - - -/// @name xed_decoded_inst_t Operands: Number and Length -//@{ -/// Return the length in bytes of the operand_index'th operand. -/// @ingroup DEC -XED_DLL_EXPORT unsigned int xed_decoded_inst_operand_length(const xed_decoded_inst_t* p, - unsigned int operand_index); -/// Return the number of operands -/// @ingroup DEC -static XED_INLINE unsigned int xed_decoded_inst_noperands(const xed_decoded_inst_t* p) { - unsigned int noperands = xed_inst_noperands(xed_decoded_inst_inst(p)); - return noperands; -} -//@} - -/// @name xed_decoded_inst_t Printers -//@{ -/// @ingroup DEC -/// Print out all the information about the decoded instruction to the buffer buf whose length is maximally buflen. -XED_DLL_EXPORT void xed_decoded_inst_dump(const xed_decoded_inst_t* p, char* buf, int buflen); - -/// @ingroup DEC -/// Print the instructions with the destination on the left. Use PTR qualifiers for memory access widths. -/// Recommendation: buflen must be more than 16 bytes, preferably at least 100 bytes. -/// @param p a #xed_decoded_inst_t for a decoded instruction -/// @param buf a buffer to write the disassembly in to. -/// @param buflen maximum length of the disassembly buffer -/// @param runtime_address the address of the instruction being disassembled -/// @return Returns 0 if the disassembly fails, 1 otherwise. -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_intel_format(const xed_decoded_inst_t* p, - char* buf, - int buflen, - xed_uint64_t runtime_address); -/// @ingroup DEC -/// Print the instructions with the destination on the left. Use PTR qualifiers for memory access widths. -/// Recommendation: buflen must be more than 16 bytes, preferably at least 100 bytes. -/// @param p a #xed_decoded_inst_t for a decoded instruction -/// @param buf a buffer to write the disassembly in to. -/// @param buflen maximum length of the disassembly buffer -/// @param runtime_address the address of the instruction being disassembled -/// @param context A void* used only for the call back routine for symbolic disassembly if one is registered. -/// @return Returns 0 if the disassembly fails, 1 otherwise. -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_intel_format_context(const xed_decoded_inst_t* p, - char* buf, - int buflen, - xed_uint64_t runtime_address, - void* context); - -/// @ingroup DEC -/// Print the instructions with the destination operand on the right, with -/// several exceptions (bound, invlpga, enter, and other instructions with -/// two immediate operands). Also use instruction name suffixes to -/// indicate operation width. Several instructions names are different as -/// well. -/// Recommendation: buflen must be more than 16 bytes, preferably at least 100 bytes. -/// @param p a #xed_decoded_inst_t for a decoded instruction -/// @param buf a buffer to write the disassembly in to. -/// @param buflen maximum length of the disassembly buffer -/// @param runtime_address the address of the instruction being disassembled -/// @return Returns 0 if the disassembly fails, 1 otherwise. -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_att_format(const xed_decoded_inst_t* p, - char* buf, - int buflen, - xed_uint64_t runtime_address); - -/// @ingroup DEC -/// Print the instructions with the destination operand on the right, with -/// several exceptions (bound, invlpga, enter, and other instructions with -/// two immediate operands). Also use instruction name suffixes to -/// indicate operation width. Several instructions names are different as -/// well. buflen must be at least 100 bytes. -/// @param p a #xed_decoded_inst_t for a decoded instruction -/// @param buf a buffer to write the disassembly in to. -/// @param buflen maximum length of the disassembly buffer -/// @param runtime_address the address of the instruction being disassembled -/// @param context A void* used only for the call back routine for symbolic disassembly if one is registered. -/// @return Returns 0 if the disassembly fails, 1 otherwise. -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_att_format_context(const xed_decoded_inst_t* p, - char* buf, - int buflen, - xed_uint64_t runtime_address, - void* context); - -/// @ingroup DEC -/// @param p a #xed_decoded_inst_t for a decoded instruction -/// @param buf a buffer to write the disassembly in to. -/// @param buflen maximum length of the disassembly buffer -/// @param runtime_address the address of the instruction being disassembled -/// @return Returns 0 if the disassembly fails, 1 otherwise. -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_xed_format(const xed_decoded_inst_t* p, - char* buf, - int buflen, xed_uint64_t runtime_address) ; -//@} - -/// @name xed_decoded_inst_t Operand Field Details -//@{ -/// @ingroup DEC -XED_DLL_EXPORT xed_reg_enum_t xed_decoded_inst_get_seg_reg(const xed_decoded_inst_t* p, unsigned int mem_idx); -/// @ingroup DEC -XED_DLL_EXPORT xed_reg_enum_t xed_decoded_inst_get_base_reg(const xed_decoded_inst_t* p, unsigned int mem_idx); -XED_DLL_EXPORT xed_reg_enum_t xed_decoded_inst_get_index_reg(const xed_decoded_inst_t* p, unsigned int mem_idx); -/// @ingroup DEC -XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_scale(const xed_decoded_inst_t* p, unsigned int mem_idx); -/// @ingroup DEC -XED_DLL_EXPORT xed_int64_t xed_decoded_inst_get_memory_displacement(const xed_decoded_inst_t* p, unsigned int mem_idx); -/// @ingroup DEC -/// Result in BYTES -XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_memory_displacement_width(const xed_decoded_inst_t* p, unsigned int mem_idx); -/// @ingroup DEC -/// Result in BITS -XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_memory_displacement_width_bits(const xed_decoded_inst_t* p, unsigned int mem_idx); -/// @ingroup DEC -XED_DLL_EXPORT xed_int32_t xed_decoded_inst_get_branch_displacement(const xed_decoded_inst_t* p); -/// @ingroup DEC -/// Result in BYTES -XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_branch_displacement_width(const xed_decoded_inst_t* p); -/// @ingroup DEC -/// Result in BITS -XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_branch_displacement_width_bits(const xed_decoded_inst_t* p); -/// @ingroup DEC -XED_DLL_EXPORT xed_uint64_t xed_decoded_inst_get_unsigned_immediate(const xed_decoded_inst_t* p); -/// @ingroup DEC -/// Return true if the first immediate (IMM0) is signed -XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_immediate_is_signed(const xed_decoded_inst_t* p); -/// @ingroup DEC -/// Return the immediate width in BYTES. -XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_immediate_width(const xed_decoded_inst_t* p); -/// @ingroup DEC -/// Return the immediate width in BITS. -XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_immediate_width_bits(const xed_decoded_inst_t* p); -/// @ingroup DEC -XED_DLL_EXPORT xed_int32_t xed_decoded_inst_get_signed_immediate(const xed_decoded_inst_t* p); -/// @ingroup DEC -/// Return the second immediate. -static XED_INLINE xed_uint8_t xed_decoded_inst_get_second_immediate(const xed_decoded_inst_t* p) { - return STATIC_CAST(xed_uint8_t,p->_operands[XED_OPERAND_UIMM1]); -} - -/// @ingroup DEC -/// Return the specified register operand. The specifier is of type #xed_operand_enum_t . -static XED_INLINE xed_reg_enum_t xed_decoded_inst_get_reg(const xed_decoded_inst_t* p, - xed_operand_enum_t reg_operand) { - return STATIC_CAST(xed_reg_enum_t,p->_operands[reg_operand]); -} - - - -/// @ingroup DEC -XED_DLL_EXPORT const xed_simple_flag_t* xed_decoded_inst_get_rflags_info( const xed_decoded_inst_t* p ); -/// @ingroup DEC -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_uses_rflags(const xed_decoded_inst_t* p); -/// @ingroup DEC -XED_DLL_EXPORT xed_uint_t xed_decoded_inst_number_of_memory_operands(const xed_decoded_inst_t* p); -/// @ingroup DEC -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_mem_read(const xed_decoded_inst_t* p, unsigned int mem_idx); -/// @ingroup DEC -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_mem_written(const xed_decoded_inst_t* p, unsigned int mem_idx); -/// @ingroup DEC -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_mem_written_only(const xed_decoded_inst_t* p, unsigned int mem_idx); -/// @ingroup DEC -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_conditionally_writes_registers(const xed_decoded_inst_t* p); -/// @ingroup DEC -XED_DLL_EXPORT unsigned int xed_decoded_inst_get_memory_operand_length(const xed_decoded_inst_t* p, - unsigned int memop_idx); - - -/// @ingroup DEC -/// Returns true if the instruction is a prefetch -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_is_prefetch(const xed_decoded_inst_t* p); -//@} - - -/// @name xed_decoded_inst_t Modification -//@{ -// Modifying decoded instructions before re-encoding -/// @ingroup DEC -XED_DLL_EXPORT void xed_decoded_inst_set_scale(xed_decoded_inst_t* p, xed_uint_t scale); -/// @ingroup DEC -/// Set the memory displacement using a BYTE length -XED_DLL_EXPORT void xed_decoded_inst_set_memory_displacement(xed_decoded_inst_t* p, xed_int64_t disp, xed_uint_t length_bytes); -/// @ingroup DEC -/// Set the branch displacement using a BYTE length -XED_DLL_EXPORT void xed_decoded_inst_set_branch_displacement(xed_decoded_inst_t* p, xed_int32_t disp, xed_uint_t length_bytes); -/// @ingroup DEC -/// Set the signed immediate a BYTE length -XED_DLL_EXPORT void xed_decoded_inst_set_immediate_signed(xed_decoded_inst_t* p, xed_int32_t x, xed_uint_t length_bytes); -/// @ingroup DEC -/// Set the unsigned immediate a BYTE length -XED_DLL_EXPORT void xed_decoded_inst_set_immediate_unsigned(xed_decoded_inst_t* p, xed_uint64_t x, xed_uint_t length_bytes); - - -/// @ingroup DEC -/// Set the memory displacement a BITS length -XED_DLL_EXPORT void xed_decoded_inst_set_memory_displacement_bits(xed_decoded_inst_t* p, xed_int64_t disp, xed_uint_t length_bits); -/// @ingroup DEC -/// Set the branch displacement a BITS length -XED_DLL_EXPORT void xed_decoded_inst_set_branch_displacement_bits(xed_decoded_inst_t* p, xed_int32_t disp, xed_uint_t length_bits); -/// @ingroup DEC -/// Set the signed immediate a BITS length -XED_DLL_EXPORT void xed_decoded_inst_set_immediate_signed_bits(xed_decoded_inst_t* p, xed_int32_t x, xed_uint_t length_bits); -/// @ingroup DEC -/// Set the unsigned immediate a BITS length -XED_DLL_EXPORT void xed_decoded_inst_set_immediate_unsigned_bits(xed_decoded_inst_t* p, xed_uint64_t x, xed_uint_t length_bits); - -//@} - -/// @name xed_decoded_inst_t User Data Field -//@{ -/// @ingroup DEC -/// Return a user data field for arbitrary use by the user after decoding. -static XED_INLINE xed_uint64_t xed_decoded_inst_get_user_data(xed_decoded_inst_t* p) { - return p->u.user_data; -} -/// @ingroup DEC -/// Modify the user data field. -static XED_INLINE void xed_decoded_inst_set_user_data(xed_decoded_inst_t* p, xed_uint64_t new_value) { - p->u.user_data = new_value; -} -//@} -#endif -//Local Variables: -//pref: "../../xed-decoded-inst.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed-disas.h b/misc/decoder_test/XED2/include/xed-disas.h deleted file mode 100644 index 64205c3..0000000 --- a/misc/decoder_test/XED2/include/xed-disas.h +++ /dev/null @@ -1,71 +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-disas.h -/// @author Mark Charney - -#if !defined(_XED_DISAS_H_) -# define _XED_DISAS_H_ - -#include "xed-types.h" - -/// @ingroup PRINT -/// A #xed_disassembly_callback_fn_t takes an address, a pointer to a -/// symbol buffer of buffer_length bytes, and a pointer to an offset. The -/// function fills in the symbol_buffer and sets the offset to the desired -/// offset for that symbol. If the function succeeds, it returns 1. -// The call back should return 0 if the buffer is not long enough to -// include the null termination.If no symbolic information is -// located, the function returns zero. -/// @param address The input address for which we want symbolic name and offset -/// @param symbol_buffer A buffer to hold the symbol name. The callback function should fill this in and terminate -/// with a null byte. -/// @param buffer_length The maximum length of the symbol_buffer including then null -/// @param offset A pointer to a xed_uint64_t to old the offset from the provided symbol. -/// @param context This void* pointer passed to the disassembler's new interface so that the caller can identify -/// the proper context against which to resolve the symbols. -/// The disassembler passes this value to -/// the callback. The legacy formatters -/// that do not have context will pass zero for this parameter. -/// @return 0 on failure, 1 on success. -typedef int XED_DLL_EXPORT (*xed_disassembly_callback_fn_t)( - xed_uint64_t address, - char* symbol_buffer, - xed_uint32_t buffer_length, - xed_uint64_t* offset, - void* context); - -/// @ingroup PRINT -/// Register a disassembly call back function of type -/// #xed_disassembly_callback_fn_t to get called when the disassembler -/// needs to get a symbol and offset for an address. -XED_DLL_EXPORT void xed_register_disassembly_callback(xed_disassembly_callback_fn_t f); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-encode-isa-functions.h b/misc/decoder_test/XED2/include/xed-encode-isa-functions.h deleted file mode 100644 index aa59a6a..0000000 --- a/misc/decoder_test/XED2/include/xed-encode-isa-functions.h +++ /dev/null @@ -1,48 +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-encode-isa-functions.h -/// @author Mark Charney - -#ifndef _XED_ENCODE_ISA_FUNCTIONS_H_ -# define _XED_ENCODE_ISA_FUNCTIONS_H_ - -#include "xed-encode.h" - - -xed_bool_t xed_encode_nonterminal_INSTRUCTIONS_EMIT(xed_encoder_request_t* xes); -xed_bool_t xed_encode_nonterminal_INSTRUCTIONS_BIND(xed_encoder_request_t* xes); - - -#endif - -//Local Variables: -//pref: "../../xed-encode-isa-functions.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed-encode.h b/misc/decoder_test/XED2/include/xed-encode.h deleted file mode 100644 index 32590db..0000000 --- a/misc/decoder_test/XED2/include/xed-encode.h +++ /dev/null @@ -1,298 +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-encode.h -/// @author Mark Charney - - -#ifndef _XED_ENCODE_H_ -# define _XED_ENCODE_H_ -#include "xed-common-hdrs.h" -#include "xed-types.h" -#include "xed-error-enum.h" -#include "xed-operand-values-interface.h" -#include "xed-operand-width-enum.h" -#include "xed-encoder-iforms.h" //generated -#include "xed-encoder-gen-defs.h" //generated - -// we now (mostly) share the decode data structure -#include "xed-decoded-inst.h" - - -// establish a type equivalence for the xed_encoder_request_t and the corresponding xed_decoded_inst_t. - -/// @ingroup ENC -typedef struct xed_decoded_inst_s xed_encoder_request_s; -/// @ingroup ENC -typedef xed_decoded_inst_t xed_encoder_request_t; - - -/// @ingroup ENC -XED_DLL_EXPORT xed_iclass_enum_t -xed_encoder_request_get_iclass( const xed_encoder_request_t* p); - -///////////////////////////////////////////////////////// -// set functions - -/// @ingroup ENC -XED_DLL_EXPORT void -xed_encoder_request_set_iclass( xed_encoder_request_t* p, - xed_iclass_enum_t iclass); - -/// @name Prefixes -//@{ -/// @ingroup ENC -/// For locked (atomic read-modify-write) memops requests. -XED_DLL_EXPORT void xed_encoder_request_set_lock(xed_encoder_request_t* p); -/// @ingroup ENC -/// for REP(F3) and REPNE(F2) prefixe on string ops -XED_DLL_EXPORT void xed_encoder_request_set_repne(xed_encoder_request_t* p); -/// @ingroup ENC -/// for REP(F3) and REPNE(F2) prefixe on string ops -XED_DLL_EXPORT void xed_encoder_request_set_rep(xed_encoder_request_t* p); -//@} - -/// @name Primary Encode Functions -//@{ -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_effective_operand_width( xed_encoder_request_t* p, - xed_uint_t width_bits); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_effective_address_size( xed_encoder_request_t* p, - xed_uint_t width_bits); -/*! @ingroup ENC - * Set the operands array element indexed by operand to the actual register name reg. - * - * @param[in] p xed_encoder_request_t - * @param[in] operand indicates which register operand storage field to use - * @param[in] reg the actual register represented (EAX, etc.) to store. - */ -XED_DLL_EXPORT void xed_encoder_request_set_reg(xed_encoder_request_t* p, - xed_operand_enum_t operand, - xed_reg_enum_t reg); -//@} - -/// @name Operand Order -//@{ -/*! @ingroup ENC - * Specify the name as the n'th operand in the operand order. - * - * The complication of this function is that the register operand names are - * specific to the position of the operand (REG0, REG1, REG2...). One can - * use this function for registers or one can use the - * xed_encoder_request_set_operand_name_reg() which takes integers instead - * of operand names. - * - * @param[in] p #xed_encoder_request_t - * @param[in] operand_index xed_uint_t representing n'th operand position - * @param[in] name #xed_operand_enum_t operand name. - */ -XED_DLL_EXPORT void xed_encoder_request_set_operand_order(xed_encoder_request_t* p, - xed_uint_t operand_index, - xed_operand_enum_t name); - -/*! @ingroup ENC - * Retreive the name of the n'th operand in the operand order. - * - * @param[in] p #xed_encoder_request_t - * @param[in] operand_index xed_uint_t representing n'th operand position - * @return The #xed_operand_enum_t operand name. - */ -XED_DLL_EXPORT xed_operand_enum_t xed_encoder_request_get_operand_order(xed_encoder_request_t* p, - xed_uint_t operand_index); - - -/// @ingroup ENC -/// Retreive the number of entries in the encoder operand order array -/// @return The number of entries in the encoder operand order array -static XED_INLINE -xed_uint_t xed_encoder_request_operand_order_entries(xed_encoder_request_t* p) { - return p->_n_operand_order; -} - -//@} - - -/// @name branches and far pointers -//@{ -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_relbr(xed_encoder_request_t* p); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_branch_displacement(xed_encoder_request_t* p, - xed_int32_t brdisp, - xed_uint_t nbytes); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_ptr(xed_encoder_request_t* p); -//@} - - -/// @name Immediates -//@{ -/// @ingroup ENC -/// Set the uimm0 using a BYTE width. -XED_DLL_EXPORT void xed_encoder_request_set_uimm0(xed_encoder_request_t* p, - xed_uint64_t uimm, - xed_uint_t nbytes); -/// @ingroup ENC -/// Set the uimm0 using a BIT width. -XED_DLL_EXPORT void xed_encoder_request_set_uimm0_bits(xed_encoder_request_t* p, - xed_uint64_t uimm, - xed_uint_t nbits); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_uimm1(xed_encoder_request_t* p, - xed_uint8_t uimm); -/// @ingroup ENC -/// same storage as uimm0 -XED_DLL_EXPORT void xed_encoder_request_set_simm(xed_encoder_request_t* p, - xed_int32_t simm, - xed_uint_t nbytes); -//@} - -/// @name Memory -//@{ -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_memory_displacement(xed_encoder_request_t* p, - xed_int64_t memdisp, - xed_uint_t nbytes); - -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_agen(xed_encoder_request_t* p); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_mem0(xed_encoder_request_t* p); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_mem1(xed_encoder_request_t* p); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_memory_operand_length(xed_encoder_request_t* p, - xed_uint_t nbytes); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_seg0(xed_encoder_request_t* p, - xed_reg_enum_t seg_reg); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_seg1(xed_encoder_request_t* p, - xed_reg_enum_t seg_reg); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_base0(xed_encoder_request_t* p, - xed_reg_enum_t base_reg); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_base1(xed_encoder_request_t* p, - xed_reg_enum_t base_reg) ; -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_index(xed_encoder_request_t* p, - xed_reg_enum_t index_reg); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_scale(xed_encoder_request_t* p, - xed_uint_t scale); -//@} - -////////////////////////////////////////////// -/// @ingroup ENC -XED_DLL_EXPORT const xed_operand_values_t* xed_encoder_request_operands_const(const xed_encoder_request_t* p); -/// @ingroup ENC -XED_DLL_EXPORT xed_operand_values_t* xed_encoder_request_operands(xed_encoder_request_t* p); - -/// @name Initialization -//@{ -/*! @ingroup ENC - * clear the operand order array - * @param[in] p xed_encoder_request_t - */ -XED_DLL_EXPORT void xed_encoder_request_zero_operand_order(xed_encoder_request_t* p); - -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_zero_set_mode(xed_encoder_request_t* p, - const xed_state_t* dstate); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_zero(xed_encoder_request_t* p) ; -//@} - -struct xed_decoded_inst_s; //fwd decl -/// @ingroup ENC -/// Converts an decoder request to a valid encoder request. -XED_DLL_EXPORT void xed_encoder_request_init_from_decode(struct xed_decoded_inst_s* d); - -void -xed_encoder_request_encode_emit(xed_encoder_request_t* q, - const unsigned int bits, - const xed_uint64_t value); - -xed_bool_t -xed_encoder_request__memop_compatible(const xed_encoder_request_t* p, - xed_operand_width_enum_t operand_width); - -/// @name String Printing -//@{ -/// @ingroup ENC -XED_DLL_EXPORT void xed_encode_request_print(const xed_encoder_request_t* p, - char* buf, xed_uint_t buflen); -//@} - -// Type signature for an encode function -typedef xed_uint_t (*xed_encode_function_pointer_t)(xed_encoder_request_t* enc_req); - - -/// @name Encoding -//@{ -/// This is the main interface to the encoder. The array should be -/// at most 15 bytes long. The ilen parameter should indiciate -/// this length. If the array is too short, the encoder may fail to -/// encode the request. Failure is indicated by a return value of -/// type #xed_error_enum_t that is not equal to -/// #XED_ERROR_NONE. Otherwise, #XED_ERROR_NONE is returned and the -/// length of the encoded instruction is returned in olen. -/// -/// @param r encoder request description (#xed_encoder_request_t), includes mode info -/// @param array the encoded instruction bytes are stored here -/// @param ilen the input length of array. -/// @param olen the actual length of array used for encoding -/// @return success/failure as a #xed_error_enum_t -/// @ingroup ENC -XED_DLL_EXPORT xed_error_enum_t -xed_encode(xed_encoder_request_t* r, - xed_uint8_t* array, - const unsigned int ilen, - unsigned int* olen); - -/// This function will attempt to encode a NOP of exactly ilen -/// bytes. If such a NOP is not encodeable, then false will be returned. -/// -/// @param array the encoded instruction bytes are stored here -/// @param ilen the input length array. -/// @return success/failure as a #xed_error_enum_t -/// @ingroup ENC -XED_DLL_EXPORT xed_error_enum_t -xed_encode_nop(xed_uint8_t* array, - const unsigned int ilen); -//@} - -#endif -//////////////////////////////////////////////////////////////////////////// -//Local Variables: -//pref: "../../xed-encode.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed-encoder-gen-defs.h b/misc/decoder_test/XED2/include/xed-encoder-gen-defs.h deleted file mode 100644 index 1354a1b..0000000 --- a/misc/decoder_test/XED2/include/xed-encoder-gen-defs.h +++ /dev/null @@ -1,41 +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-encoder-gen-defs.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_ENCODER_GEN_DEFS_H_) -# define _XED_ENCODER_GEN_DEFS_H_ -#define XED_ENCODE_ORDER_MAX_ENTRIES 23 -#define XED_ENCODE_ORDER_MAX_OPERANDS 4 -#endif diff --git a/misc/decoder_test/XED2/include/xed-encoder-iforms.h b/misc/decoder_test/XED2/include/xed-encoder-iforms.h deleted file mode 100644 index f15e978..0000000 --- a/misc/decoder_test/XED2/include/xed-encoder-iforms.h +++ /dev/null @@ -1,60 +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-encoder-iforms.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_ENCODER_IFORMS_H_) -# define _XED_ENCODER_IFORMS_H_ -#include "xed-types.h" -typedef struct xed_encoder_iforms_s { - xed_uint16_t x_UIMM16; - xed_uint16_t x_UIMM8_1; - xed_uint16_t x_MEMDISP32; - xed_uint16_t x_MEMDISPv; - xed_uint16_t x_MEMDISP8; - xed_uint16_t x_MEMDISP16; - xed_uint16_t x_UIMM8; - xed_uint16_t x_SIB_NT; - xed_uint16_t x_REX_PREFIX_ENC; - xed_uint16_t x_INSTRUCTIONS; - xed_uint16_t x_SIMMz; - xed_uint16_t x_SIMM8; - xed_uint16_t x_UIMMv; - xed_uint16_t x_DISP_NT; - xed_uint16_t x_PREFIX_ENC; - xed_uint16_t x_BRDISP8; - xed_uint16_t x_BRDISPz; - xed_uint16_t x_UIMM32; -} xed_encoder_iforms_t; -#endif diff --git a/misc/decoder_test/XED2/include/xed-error-enum.h b/misc/decoder_test/XED2/include/xed-error-enum.h deleted file mode 100644 index 1b3acec..0000000 --- a/misc/decoder_test/XED2/include/xed-error-enum.h +++ /dev/null @@ -1,55 +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-error-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_ERROR_ENUM_H_) -# define _XED_ERROR_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_ERROR_NONE, ///< There was no error - XED_ERROR_BUFFER_TOO_SHORT, ///< There were not enough bytes in the given buffer - XED_ERROR_GENERAL_ERROR, ///< XED could not decode the given instruction - XED_ERROR_BAD_REGISTER, ///< XED could not decode the given instruction because an invalid register encoding was used. - XED_ERROR_BAD_LOCK_PREFIX, ///< A lock prefix was found where none is allowed. - XED_ERROR_BAD_REP_PREFIX, ///< An F2 or F3 prefix was found where none is allowed. - XED_ERROR_LAST -} xed_error_enum_t; - -XED_DLL_EXPORT xed_error_enum_t -str2xed_error_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_error_enum_t2str(const xed_error_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-extension-enum.h b/misc/decoder_test/XED2/include/xed-extension-enum.h deleted file mode 100644 index 881ebf3..0000000 --- a/misc/decoder_test/XED2/include/xed-extension-enum.h +++ /dev/null @@ -1,65 +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-extension-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_EXTENSION_ENUM_H_) -# define _XED_EXTENSION_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_EXTENSION_INVALID, - XED_EXTENSION_3DNOW, - XED_EXTENSION_AMD, - XED_EXTENSION_BASE, - XED_EXTENSION_LONGMODE, - XED_EXTENSION_MMX, - XED_EXTENSION_SSE, - XED_EXTENSION_SSE2, - XED_EXTENSION_SSE3, - XED_EXTENSION_SSE4, - XED_EXTENSION_SSE4A, - XED_EXTENSION_SSSE3, - XED_EXTENSION_SVM, - XED_EXTENSION_VTX, - XED_EXTENSION_X87, - XED_EXTENSION_XSAVE, - XED_EXTENSION_LAST -} xed_extension_enum_t; - -XED_DLL_EXPORT xed_extension_enum_t -str2xed_extension_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_extension_enum_t2str(const xed_extension_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-flag-action-enum.h b/misc/decoder_test/XED2/include/xed-flag-action-enum.h deleted file mode 100644 index 92f477b..0000000 --- a/misc/decoder_test/XED2/include/xed-flag-action-enum.h +++ /dev/null @@ -1,57 +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-flag-action-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_FLAG_ACTION_ENUM_H_) -# define _XED_FLAG_ACTION_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_FLAG_ACTION_INVALID, - XED_FLAG_ACTION_u, ///< undefined (treated as a write) - XED_FLAG_ACTION_tst, ///< test (read) - XED_FLAG_ACTION_mod, ///< modification (write) - XED_FLAG_ACTION_0, ///< value will be zero (write) - XED_FLAG_ACTION_pop, ///< value comes from the stack (write) - XED_FLAG_ACTION_ah, ///< value comes from AH (write) - XED_FLAG_ACTION_1, ///< value will be 1 (write) - XED_FLAG_ACTION_LAST -} xed_flag_action_enum_t; - -XED_DLL_EXPORT xed_flag_action_enum_t -str2xed_flag_action_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_flag_action_enum_t2str(const xed_flag_action_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-flag-enum.h b/misc/decoder_test/XED2/include/xed-flag-enum.h deleted file mode 100644 index 6c8ba0e..0000000 --- a/misc/decoder_test/XED2/include/xed-flag-enum.h +++ /dev/null @@ -1,71 +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-flag-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_FLAG_ENUM_H_) -# define _XED_FLAG_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_FLAG_INVALID, - XED_FLAG_of, ///<< overflow flag - XED_FLAG_sf, ///< sign flag - XED_FLAG_zf, ///< zero flag - XED_FLAG_af, ///< auxilliary flag - XED_FLAG_pf, ///< parity flag - XED_FLAG_cf, ///< carry flag - XED_FLAG_df, ///< direction flag - XED_FLAG_vif, ///< virtual interrupt flag - XED_FLAG_iopl, ///< I/O privilege level - XED_FLAG_if, ///< interrupt flag - XED_FLAG_ac, ///< alignment check - XED_FLAG_vm, ///< virtual-8086 mode - XED_FLAG_rf, ///< resume flag - XED_FLAG_nt, ///< nested task - XED_FLAG_tf, ///< traf flag - XED_FLAG_id, ///< ID flag - XED_FLAG_vip, ///< virtual interrupt pending - XED_FLAG_fc0, ///< x87 FC0 flag - XED_FLAG_fc1, ///< x87 FC1 flag - XED_FLAG_fc2, ///< x87 FC2 flag - XED_FLAG_fc3, ///< x87 FC3 flag - XED_FLAG_LAST -} xed_flag_enum_t; - -XED_DLL_EXPORT xed_flag_enum_t -str2xed_flag_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_flag_enum_t2str(const xed_flag_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-flags.h b/misc/decoder_test/XED2/include/xed-flags.h deleted file mode 100644 index 5f8e350..0000000 --- a/misc/decoder_test/XED2/include/xed-flags.h +++ /dev/null @@ -1,210 +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-flags.h -/// @author Mark Charney - -#ifndef _XED_FLAGS_H_ -# define _XED_FLAGS_H_ - -#include "xed-types.h" -#include "xed-flag-enum.h" -#include "xed-flag-action-enum.h" - - -//////////////////////////////////////////////////////////////////////////// -/// @ingroup FLAGS -/// a union of flags bits -union XED_DLL_EXPORT xed_flag_set_s { - struct { - xed_uint32_t of:1; - xed_uint32_t sf:1; - xed_uint32_t zf:1; - xed_uint32_t af:1; - xed_uint32_t pf:1; - xed_uint32_t cf:1; - xed_uint32_t df:1; - xed_uint32_t vif:1; - xed_uint32_t iopl:1; - xed_uint32_t _if:1; ///< underscore to avoid token clash - xed_uint32_t ac:1; - xed_uint32_t vm:1; - xed_uint32_t rf:1; - xed_uint32_t nt:1; - xed_uint32_t tf:1; - xed_uint32_t id:1; - xed_uint32_t vip:1; - xed_uint32_t fc0:1; ///< x87 flag FC0 - xed_uint32_t fc1:1; ///< x87 flag FC1 - xed_uint32_t fc2:1; ///< x87 flag FC2 - xed_uint32_t fc3:1; ///< x87 flag FC3 - } s; - xed_uint32_t flat; -}; - -typedef union xed_flag_set_s xed_flag_set_t; -/// @ingroup FLAGS -/// @name Flag-set accessors -//@{ -/// @ingroup FLAGS -/// print the flag set in the supplied buffer -XED_DLL_EXPORT int xed_flag_set_print(const xed_flag_set_t* p, char* buf, int buflen); -/// @ingroup FLAGS -/// returns true if this object has a subset of the flags of the -/// "other" object. -XED_DLL_EXPORT xed_bool_t xed_flag_set_is_subset_of(const xed_flag_set_t* p, - const xed_flag_set_t* other); -//@} - - -//////////////////////////////////////////////////////////////////////////// - -/// @ingroup FLAGS -/// Associated with each flag field there can be one action. -typedef struct XED_DLL_EXPORT xed_flag_enum_s { - xed_flag_enum_t flag; - // there are at most two actions per flag. The 2nd may be invalid. - xed_flag_action_enum_t action; -} xed_flag_action_t; - - - - -/// @ingroup FLAGS -/// @name Lowest-level flag-action accessors -//@{ -/// @ingroup FLAGS -/// get the name of the flag -XED_DLL_EXPORT xed_flag_enum_t -xed_flag_action_get_flag_name(const xed_flag_action_t* p); -/// @ingroup FLAGS -/// return the action -XED_DLL_EXPORT xed_flag_action_enum_t -xed_flag_action_get_action(const xed_flag_action_t* p, unsigned int i); -/// @ingroup FLAGS -/// returns true if the specified action is invalid. Only the 2nd flag might be invalid. -XED_DLL_EXPORT xed_bool_t -xed_flag_action_action_invalid(const xed_flag_action_enum_t a); -/// @ingroup FLAGS -/// print the flag & actions -XED_DLL_EXPORT int xed_flag_action_print(const xed_flag_action_t* p, char* buf, int buflen); -/// @ingroup FLAGS -/// returns true if either action is a read -XED_DLL_EXPORT xed_bool_t -xed_flag_action_read_flag(const xed_flag_action_t* p ); -/// @ingroup FLAGS -/// returns true if either action is a write -XED_DLL_EXPORT xed_bool_t -xed_flag_action_writes_flag(const xed_flag_action_t* p); - -/// @ingroup FLAGS -/// test to see if the specific action is a read -XED_DLL_EXPORT xed_bool_t -xed_flag_action_read_action( xed_flag_action_enum_t a); -/// @ingroup FLAGS -/// test to see if a specific action is a write -XED_DLL_EXPORT xed_bool_t -xed_flag_action_write_action( xed_flag_action_enum_t a); -//@} - -//////////////////////////////////////////////////////////////////////////// - -#define XED_MAX_FLAG_ACTIONS (XED_FLAG_LAST + 3) -/// @ingroup FLAGS -/// A collection of #xed_flag_action_t's and unions of read and written flags -typedef struct XED_DLL_EXPORT xed_simple_flag_s -{ - xed_uint8_t nflags; - - xed_bool_t may_write :1; - xed_bool_t must_write :1; - - /// indexed from 0, not by position in archtectural flags array. - xed_flag_action_t fa[XED_MAX_FLAG_ACTIONS]; - - ///union of read flags - xed_flag_set_t read; - - /// union of written flags; - xed_flag_set_t written; -} xed_simple_flag_t; - -/// @ingroup FLAGS -/// @name Accessing the simple flags (Mid-level access) -//@{ -/// @ingroup FLAGS -/// returns the number of flag-actions -XED_DLL_EXPORT unsigned int -xed_simple_flag_get_nflags(const xed_simple_flag_t* p); - -/// @ingroup FLAGS -/// return union of bits for read flags -XED_DLL_EXPORT const xed_flag_set_t* -xed_simple_flag_get_read_flag_set(const xed_simple_flag_t* p); - -/// @ingroup FLAGS -/// return union of bits for written flags -XED_DLL_EXPORT const xed_flag_set_t* -xed_simple_flag_get_written_flag_set(const xed_simple_flag_t* p); - -/// @ingroup FLAGS -/// Indicates the flags are only conditionally written. Usally MAY-writes -/// of the flags instructions that are dependent on a REP count. -XED_DLL_EXPORT xed_bool_t xed_simple_flag_get_may_write(const xed_simple_flag_t* p); - -/// @ingroup FLAGS -/// the flags always written -XED_DLL_EXPORT xed_bool_t xed_simple_flag_get_must_write(const xed_simple_flag_t* p); - -/// @ingroup FLAGS -/// return the specific flag-action. Very detailed low level information -XED_DLL_EXPORT const xed_flag_action_t* -xed_simple_flag_get_flag_action(const xed_simple_flag_t* p, unsigned int i); - -/// @ingroup FLAGS -/// boolean test to see if flags are read, scans the flags -XED_DLL_EXPORT xed_bool_t -xed_simple_flag_reads_flags(const xed_simple_flag_t* p); - -/// @ingroup FLAGS -/// boolean test to see if flags are written, scans the flags -XED_DLL_EXPORT xed_bool_t xed_simple_flag_writes_flags(const xed_simple_flag_t* p); - -/// @ingroup FLAGS -/// print the flags -XED_DLL_EXPORT int xed_simple_flag_print(const xed_simple_flag_t* p, char* buf, int buflen); -//@} - -//////////////////////////////////////////////////////////////////////////// - - -//////////////////////////////////////////////////////////////////////////// - -#endif diff --git a/misc/decoder_test/XED2/include/xed-gen-table-defs.h b/misc/decoder_test/XED2/include/xed-gen-table-defs.h deleted file mode 100644 index 508be38..0000000 --- a/misc/decoder_test/XED2/include/xed-gen-table-defs.h +++ /dev/null @@ -1,48 +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-gen-table-defs.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_GEN_TABLE_DEFS_H_) -# define _XED_GEN_TABLE_DEFS_H_ -#define XED_MAX_ATTRIBUTE_COUNT 17 -#define XED_MAX_GRAPH_NODES 8975 -#define XED_MAX_GRAPH_NEXT_NODES 10668 -#define XED_MAX_INST_TABLE_NODES 1943 -#define XED_MAX_OPERAND_TABLE_NODES 4909 -#define XED_MAX_REQUIRED_SIMPLE_FLAGS_ENTRIES 780 -#define XED_MAX_REQUIRED_COMPLEX_FLAGS_ENTRIES 53 -#define XED_MAX_IFORMS 1481 -#define XED_MAX_IFORMS_PER_ICLASS 18 -#endif diff --git a/misc/decoder_test/XED2/include/xed-iclass-enum.h b/misc/decoder_test/XED2/include/xed-iclass-enum.h deleted file mode 100644 index 519c812..0000000 --- a/misc/decoder_test/XED2/include/xed-iclass-enum.h +++ /dev/null @@ -1,683 +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-iclass-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_ICLASS_ENUM_H_) -# define _XED_ICLASS_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_ICLASS_INVALID, - XED_ICLASS_AAA, - XED_ICLASS_AAD, - XED_ICLASS_AAM, - XED_ICLASS_AAS, - XED_ICLASS_ADC, - XED_ICLASS_ADD, - XED_ICLASS_ADDPD, - XED_ICLASS_ADDPS, - XED_ICLASS_ADDSD, - XED_ICLASS_ADDSS, - XED_ICLASS_ADDSUBPD, - XED_ICLASS_ADDSUBPS, - XED_ICLASS_AND, - XED_ICLASS_ANDNPD, - XED_ICLASS_ANDNPS, - XED_ICLASS_ANDPD, - XED_ICLASS_ANDPS, - XED_ICLASS_ARPL, - XED_ICLASS_BLENDPD, - XED_ICLASS_BLENDPS, - XED_ICLASS_BLENDVPD, - XED_ICLASS_BLENDVPS, - XED_ICLASS_BOUND, - XED_ICLASS_BSF, - XED_ICLASS_BSR, - XED_ICLASS_BSWAP, - XED_ICLASS_BT, - XED_ICLASS_BTC, - XED_ICLASS_BTR, - XED_ICLASS_BTS, - XED_ICLASS_CALL_FAR, - XED_ICLASS_CALL_NEAR, - XED_ICLASS_CBW, - XED_ICLASS_CDQ, - XED_ICLASS_CDQE, - XED_ICLASS_CLC, - XED_ICLASS_CLD, - XED_ICLASS_CLFLUSH, - XED_ICLASS_CLGI, - XED_ICLASS_CLI, - XED_ICLASS_CLTS, - XED_ICLASS_CMC, - XED_ICLASS_CMOVB, - XED_ICLASS_CMOVBE, - XED_ICLASS_CMOVL, - XED_ICLASS_CMOVLE, - XED_ICLASS_CMOVNB, - XED_ICLASS_CMOVNBE, - XED_ICLASS_CMOVNL, - XED_ICLASS_CMOVNLE, - XED_ICLASS_CMOVNO, - XED_ICLASS_CMOVNP, - XED_ICLASS_CMOVNS, - XED_ICLASS_CMOVNZ, - XED_ICLASS_CMOVO, - XED_ICLASS_CMOVP, - XED_ICLASS_CMOVS, - XED_ICLASS_CMOVZ, - XED_ICLASS_CMP, - XED_ICLASS_CMPPD, - XED_ICLASS_CMPPS, - XED_ICLASS_CMPSB, - XED_ICLASS_CMPSD, - XED_ICLASS_CMPSD_XMM, - XED_ICLASS_CMPSQ, - XED_ICLASS_CMPSS, - XED_ICLASS_CMPSW, - XED_ICLASS_CMPXCHG, - XED_ICLASS_CMPXCHG16B, - XED_ICLASS_CMPXCHG8B, - XED_ICLASS_COMISD, - XED_ICLASS_COMISS, - XED_ICLASS_CPUID, - XED_ICLASS_CQO, - XED_ICLASS_CRC32, - XED_ICLASS_CVTDQ2PD, - XED_ICLASS_CVTDQ2PS, - XED_ICLASS_CVTPD2DQ, - XED_ICLASS_CVTPD2PI, - XED_ICLASS_CVTPD2PS, - XED_ICLASS_CVTPI2PD, - XED_ICLASS_CVTPI2PS, - XED_ICLASS_CVTPS2DQ, - XED_ICLASS_CVTPS2PD, - XED_ICLASS_CVTPS2PI, - XED_ICLASS_CVTSD2SI, - XED_ICLASS_CVTSD2SS, - XED_ICLASS_CVTSI2SD, - XED_ICLASS_CVTSI2SS, - XED_ICLASS_CVTSS2SD, - XED_ICLASS_CVTSS2SI, - XED_ICLASS_CVTTPD2DQ, - XED_ICLASS_CVTTPD2PI, - XED_ICLASS_CVTTPS2DQ, - XED_ICLASS_CVTTPS2PI, - XED_ICLASS_CVTTSD2SI, - XED_ICLASS_CVTTSS2SI, - XED_ICLASS_CWD, - XED_ICLASS_CWDE, - XED_ICLASS_DAA, - XED_ICLASS_DAS, - XED_ICLASS_DEC, - XED_ICLASS_DIV, - XED_ICLASS_DIVPD, - XED_ICLASS_DIVPS, - XED_ICLASS_DIVSD, - XED_ICLASS_DIVSS, - XED_ICLASS_DPPD, - XED_ICLASS_DPPS, - XED_ICLASS_EMMS, - XED_ICLASS_ENTER, - XED_ICLASS_EXTRACTPS, - XED_ICLASS_EXTRQ, - XED_ICLASS_F2XM1, - XED_ICLASS_FABS, - XED_ICLASS_FADD, - XED_ICLASS_FADDP, - XED_ICLASS_FBLD, - XED_ICLASS_FBSTP, - XED_ICLASS_FCHS, - XED_ICLASS_FCMOVB, - XED_ICLASS_FCMOVBE, - XED_ICLASS_FCMOVE, - XED_ICLASS_FCMOVNB, - XED_ICLASS_FCMOVNBE, - XED_ICLASS_FCMOVNE, - XED_ICLASS_FCMOVNU, - XED_ICLASS_FCMOVU, - XED_ICLASS_FCOM, - XED_ICLASS_FCOMI, - XED_ICLASS_FCOMIP, - XED_ICLASS_FCOMP, - XED_ICLASS_FCOMPP, - XED_ICLASS_FCOS, - XED_ICLASS_FDECSTP, - XED_ICLASS_FDIV, - XED_ICLASS_FDIVP, - XED_ICLASS_FDIVR, - XED_ICLASS_FDIVRP, - XED_ICLASS_FEMMS, - XED_ICLASS_FFREE, - XED_ICLASS_FFREEP, - XED_ICLASS_FIADD, - XED_ICLASS_FICOM, - XED_ICLASS_FICOMP, - XED_ICLASS_FIDIV, - XED_ICLASS_FIDIVR, - XED_ICLASS_FILD, - XED_ICLASS_FIMUL, - XED_ICLASS_FINCSTP, - XED_ICLASS_FIST, - XED_ICLASS_FISTP, - XED_ICLASS_FISTTP, - XED_ICLASS_FISUB, - XED_ICLASS_FISUBR, - XED_ICLASS_FLD, - XED_ICLASS_FLD1, - XED_ICLASS_FLDCW, - XED_ICLASS_FLDENV, - XED_ICLASS_FLDL2E, - XED_ICLASS_FLDL2T, - XED_ICLASS_FLDLG2, - XED_ICLASS_FLDLN2, - XED_ICLASS_FLDPI, - XED_ICLASS_FLDZ, - XED_ICLASS_FMUL, - XED_ICLASS_FMULP, - XED_ICLASS_FNCLEX, - XED_ICLASS_FNINIT, - XED_ICLASS_FNOP, - XED_ICLASS_FNSAVE, - XED_ICLASS_FNSTCW, - XED_ICLASS_FNSTENV, - XED_ICLASS_FNSTSW, - XED_ICLASS_FPATAN, - XED_ICLASS_FPREM, - XED_ICLASS_FPREM1, - XED_ICLASS_FPTAN, - XED_ICLASS_FRNDINT, - XED_ICLASS_FRSTOR, - XED_ICLASS_FSCALE, - XED_ICLASS_FSETPM287_NOP, - XED_ICLASS_FSIN, - XED_ICLASS_FSINCOS, - XED_ICLASS_FSQRT, - XED_ICLASS_FST, - XED_ICLASS_FSTP, - XED_ICLASS_FSUB, - XED_ICLASS_FSUBP, - XED_ICLASS_FSUBR, - XED_ICLASS_FSUBRP, - XED_ICLASS_FTST, - XED_ICLASS_FUCOM, - XED_ICLASS_FUCOMI, - XED_ICLASS_FUCOMIP, - XED_ICLASS_FUCOMP, - XED_ICLASS_FUCOMPP, - XED_ICLASS_FWAIT, - XED_ICLASS_FXAM, - XED_ICLASS_FXCH, - XED_ICLASS_FXRSTOR, - XED_ICLASS_FXSAVE, - XED_ICLASS_FXTRACT, - XED_ICLASS_FYL2X, - XED_ICLASS_FYL2XP1, - XED_ICLASS_HADDPD, - XED_ICLASS_HADDPS, - XED_ICLASS_HLT, - XED_ICLASS_HSUBPD, - XED_ICLASS_HSUBPS, - XED_ICLASS_IDIV, - XED_ICLASS_IMUL, - XED_ICLASS_IN, - XED_ICLASS_INC, - XED_ICLASS_INSB, - XED_ICLASS_INSD, - XED_ICLASS_INSERTPS, - XED_ICLASS_INSERTQ, - XED_ICLASS_INSW, - XED_ICLASS_INT, - XED_ICLASS_INT1, - XED_ICLASS_INT3, - XED_ICLASS_INTO, - XED_ICLASS_INVD, - XED_ICLASS_INVLPG, - XED_ICLASS_INVLPGA, - XED_ICLASS_IRET, - XED_ICLASS_IRETD, - XED_ICLASS_IRETQ, - XED_ICLASS_JB, - XED_ICLASS_JBE, - XED_ICLASS_JL, - XED_ICLASS_JLE, - XED_ICLASS_JMP, - XED_ICLASS_JMP_FAR, - XED_ICLASS_JNB, - XED_ICLASS_JNBE, - XED_ICLASS_JNL, - XED_ICLASS_JNLE, - XED_ICLASS_JNO, - XED_ICLASS_JNP, - XED_ICLASS_JNS, - XED_ICLASS_JNZ, - XED_ICLASS_JO, - XED_ICLASS_JP, - XED_ICLASS_JRCXZ, - XED_ICLASS_JS, - XED_ICLASS_JZ, - XED_ICLASS_LAHF, - XED_ICLASS_LAR, - XED_ICLASS_LDDQU, - XED_ICLASS_LDMXCSR, - XED_ICLASS_LDS, - XED_ICLASS_LEA, - XED_ICLASS_LEAVE, - XED_ICLASS_LES, - XED_ICLASS_LFENCE, - XED_ICLASS_LFS, - XED_ICLASS_LGDT, - XED_ICLASS_LGS, - XED_ICLASS_LIDT, - XED_ICLASS_LLDT, - XED_ICLASS_LMSW, - XED_ICLASS_LODSB, - XED_ICLASS_LODSD, - XED_ICLASS_LODSQ, - XED_ICLASS_LODSW, - XED_ICLASS_LOOP, - XED_ICLASS_LOOPE, - XED_ICLASS_LOOPNE, - XED_ICLASS_LSL, - XED_ICLASS_LSS, - XED_ICLASS_LTR, - XED_ICLASS_LZCNT, - XED_ICLASS_MASKMOVDQU, - XED_ICLASS_MASKMOVQ, - XED_ICLASS_MAXPD, - XED_ICLASS_MAXPS, - XED_ICLASS_MAXSD, - XED_ICLASS_MAXSS, - XED_ICLASS_MFENCE, - XED_ICLASS_MINPD, - XED_ICLASS_MINPS, - XED_ICLASS_MINSD, - XED_ICLASS_MINSS, - XED_ICLASS_MONITOR, - XED_ICLASS_MOV, - XED_ICLASS_MOVAPD, - XED_ICLASS_MOVAPS, - XED_ICLASS_MOVD, - XED_ICLASS_MOVDDUP, - XED_ICLASS_MOVDQ2Q, - XED_ICLASS_MOVDQA, - XED_ICLASS_MOVDQU, - XED_ICLASS_MOVHLPS, - XED_ICLASS_MOVHPD, - XED_ICLASS_MOVHPS, - XED_ICLASS_MOVLHPS, - XED_ICLASS_MOVLPD, - XED_ICLASS_MOVLPS, - XED_ICLASS_MOVMSKPD, - XED_ICLASS_MOVMSKPS, - XED_ICLASS_MOVNTDQ, - XED_ICLASS_MOVNTDQA, - XED_ICLASS_MOVNTI, - XED_ICLASS_MOVNTPD, - XED_ICLASS_MOVNTPS, - XED_ICLASS_MOVNTQ, - XED_ICLASS_MOVNTSD, - XED_ICLASS_MOVNTSS, - XED_ICLASS_MOVQ, - XED_ICLASS_MOVQ2DQ, - XED_ICLASS_MOVSB, - XED_ICLASS_MOVSD, - XED_ICLASS_MOVSD_XMM, - XED_ICLASS_MOVSHDUP, - XED_ICLASS_MOVSLDUP, - XED_ICLASS_MOVSQ, - XED_ICLASS_MOVSS, - XED_ICLASS_MOVSW, - XED_ICLASS_MOVSX, - XED_ICLASS_MOVSXD, - XED_ICLASS_MOVUPD, - XED_ICLASS_MOVUPS, - XED_ICLASS_MOVZX, - XED_ICLASS_MOV_CR, - XED_ICLASS_MOV_DR, - XED_ICLASS_MPSADBW, - XED_ICLASS_MUL, - XED_ICLASS_MULPD, - XED_ICLASS_MULPS, - XED_ICLASS_MULSD, - XED_ICLASS_MULSS, - XED_ICLASS_MWAIT, - XED_ICLASS_NEG, - XED_ICLASS_NOP, - XED_ICLASS_NOP2, - XED_ICLASS_NOP3, - XED_ICLASS_NOP4, - XED_ICLASS_NOP5, - XED_ICLASS_NOP6, - XED_ICLASS_NOP7, - XED_ICLASS_NOP8, - XED_ICLASS_NOP9, - XED_ICLASS_NOT, - XED_ICLASS_OR, - XED_ICLASS_ORPD, - XED_ICLASS_ORPS, - XED_ICLASS_OUT, - XED_ICLASS_OUTSB, - XED_ICLASS_OUTSD, - XED_ICLASS_OUTSW, - XED_ICLASS_PABSB, - XED_ICLASS_PABSD, - XED_ICLASS_PABSW, - XED_ICLASS_PACKSSDW, - XED_ICLASS_PACKSSWB, - XED_ICLASS_PACKUSDW, - XED_ICLASS_PACKUSWB, - XED_ICLASS_PADDB, - XED_ICLASS_PADDD, - XED_ICLASS_PADDQ, - XED_ICLASS_PADDSB, - XED_ICLASS_PADDSW, - XED_ICLASS_PADDUSB, - XED_ICLASS_PADDUSW, - XED_ICLASS_PADDW, - XED_ICLASS_PALIGNR, - XED_ICLASS_PAND, - XED_ICLASS_PANDN, - XED_ICLASS_PAUSE, - XED_ICLASS_PAVGB, - XED_ICLASS_PAVGUSB, - XED_ICLASS_PAVGW, - XED_ICLASS_PBLENDVB, - XED_ICLASS_PBLENDW, - XED_ICLASS_PCMPEQB, - XED_ICLASS_PCMPEQD, - XED_ICLASS_PCMPEQQ, - XED_ICLASS_PCMPEQW, - XED_ICLASS_PCMPESTRI, - XED_ICLASS_PCMPESTRM, - XED_ICLASS_PCMPGTB, - XED_ICLASS_PCMPGTD, - XED_ICLASS_PCMPGTQ, - XED_ICLASS_PCMPGTW, - XED_ICLASS_PCMPISTRI, - XED_ICLASS_PCMPISTRM, - XED_ICLASS_PEXTRB, - XED_ICLASS_PEXTRD, - XED_ICLASS_PEXTRQ, - XED_ICLASS_PEXTRW, - XED_ICLASS_PF2ID, - XED_ICLASS_PF2IW, - XED_ICLASS_PFACC, - XED_ICLASS_PFADD, - XED_ICLASS_PFCMPEQ, - XED_ICLASS_PFCMPGE, - XED_ICLASS_PFCMPGT, - XED_ICLASS_PFCPIT1, - XED_ICLASS_PFMAX, - XED_ICLASS_PFMIN, - XED_ICLASS_PFMUL, - XED_ICLASS_PFNACC, - XED_ICLASS_PFPNACC, - XED_ICLASS_PFRCP, - XED_ICLASS_PFRCPIT2, - XED_ICLASS_PFRSQIT1, - XED_ICLASS_PFSQRT, - XED_ICLASS_PFSUB, - XED_ICLASS_PFSUBR, - XED_ICLASS_PHADDD, - XED_ICLASS_PHADDSW, - XED_ICLASS_PHADDW, - XED_ICLASS_PHMINPOSUW, - XED_ICLASS_PHSUBD, - XED_ICLASS_PHSUBSW, - XED_ICLASS_PHSUBW, - XED_ICLASS_PI2FD, - XED_ICLASS_PI2FW, - XED_ICLASS_PINSRB, - XED_ICLASS_PINSRD, - XED_ICLASS_PINSRQ, - XED_ICLASS_PINSRW, - XED_ICLASS_PMADDUBSW, - XED_ICLASS_PMADDWD, - XED_ICLASS_PMAXSB, - XED_ICLASS_PMAXSD, - XED_ICLASS_PMAXSW, - XED_ICLASS_PMAXUB, - XED_ICLASS_PMAXUD, - XED_ICLASS_PMAXUW, - XED_ICLASS_PMINSB, - XED_ICLASS_PMINSD, - XED_ICLASS_PMINSW, - XED_ICLASS_PMINUB, - XED_ICLASS_PMINUD, - XED_ICLASS_PMINUW, - XED_ICLASS_PMOVMSKB, - XED_ICLASS_PMOVSXBD, - XED_ICLASS_PMOVSXBQ, - XED_ICLASS_PMOVSXBW, - XED_ICLASS_PMOVSXDQ, - XED_ICLASS_PMOVSXWD, - XED_ICLASS_PMOVSXWQ, - XED_ICLASS_PMOVZXBD, - XED_ICLASS_PMOVZXBQ, - XED_ICLASS_PMOVZXBW, - XED_ICLASS_PMOVZXDQ, - XED_ICLASS_PMOVZXWD, - XED_ICLASS_PMOVZXWQ, - XED_ICLASS_PMULDQ, - XED_ICLASS_PMULHRSW, - XED_ICLASS_PMULHRW, - XED_ICLASS_PMULHUW, - XED_ICLASS_PMULHW, - XED_ICLASS_PMULLD, - XED_ICLASS_PMULLW, - XED_ICLASS_PMULUDQ, - XED_ICLASS_POP, - XED_ICLASS_POPA, - XED_ICLASS_POPAD, - XED_ICLASS_POPCNT, - XED_ICLASS_POPF, - XED_ICLASS_POPFD, - XED_ICLASS_POPFQ, - XED_ICLASS_POR, - XED_ICLASS_PREFETCHNTA, - XED_ICLASS_PREFETCHT0, - XED_ICLASS_PREFETCHT1, - XED_ICLASS_PREFETCHT2, - XED_ICLASS_PREFETCH_EXCLUSIVE, - XED_ICLASS_PREFETCH_MODIFIED, - XED_ICLASS_PREFETCH_RESERVED, - XED_ICLASS_PSADBW, - XED_ICLASS_PSHUFB, - XED_ICLASS_PSHUFD, - XED_ICLASS_PSHUFHW, - XED_ICLASS_PSHUFLW, - XED_ICLASS_PSHUFW, - XED_ICLASS_PSIGNB, - XED_ICLASS_PSIGND, - XED_ICLASS_PSIGNW, - XED_ICLASS_PSLLD, - XED_ICLASS_PSLLDQ, - XED_ICLASS_PSLLQ, - XED_ICLASS_PSLLW, - XED_ICLASS_PSRAD, - XED_ICLASS_PSRAW, - XED_ICLASS_PSRLD, - XED_ICLASS_PSRLDQ, - XED_ICLASS_PSRLQ, - XED_ICLASS_PSRLW, - XED_ICLASS_PSUBB, - XED_ICLASS_PSUBD, - XED_ICLASS_PSUBQ, - XED_ICLASS_PSUBSB, - XED_ICLASS_PSUBSW, - XED_ICLASS_PSUBUSB, - XED_ICLASS_PSUBUSW, - XED_ICLASS_PSUBW, - XED_ICLASS_PSWAPD, - XED_ICLASS_PTEST, - XED_ICLASS_PUNPCKHBW, - XED_ICLASS_PUNPCKHDQ, - XED_ICLASS_PUNPCKHQDQ, - XED_ICLASS_PUNPCKHWD, - XED_ICLASS_PUNPCKLBW, - XED_ICLASS_PUNPCKLDQ, - XED_ICLASS_PUNPCKLQDQ, - XED_ICLASS_PUNPCKLWD, - XED_ICLASS_PUSH, - XED_ICLASS_PUSHA, - XED_ICLASS_PUSHAD, - XED_ICLASS_PUSHF, - XED_ICLASS_PUSHFD, - XED_ICLASS_PUSHFQ, - XED_ICLASS_PXOR, - XED_ICLASS_RCL, - XED_ICLASS_RCPPS, - XED_ICLASS_RCPSS, - XED_ICLASS_RCR, - XED_ICLASS_RDMSR, - XED_ICLASS_RDPMC, - XED_ICLASS_RDTSC, - XED_ICLASS_RDTSCP, - XED_ICLASS_RET_FAR, - XED_ICLASS_RET_NEAR, - XED_ICLASS_ROL, - XED_ICLASS_ROR, - XED_ICLASS_ROUNDPD, - XED_ICLASS_ROUNDPS, - XED_ICLASS_ROUNDSD, - XED_ICLASS_ROUNDSS, - XED_ICLASS_RSM, - XED_ICLASS_RSQRTPS, - XED_ICLASS_RSQRTSS, - XED_ICLASS_SAHF, - XED_ICLASS_SALC, - XED_ICLASS_SAR, - XED_ICLASS_SBB, - XED_ICLASS_SCASB, - XED_ICLASS_SCASD, - XED_ICLASS_SCASQ, - XED_ICLASS_SCASW, - XED_ICLASS_SETB, - XED_ICLASS_SETBE, - XED_ICLASS_SETL, - XED_ICLASS_SETLE, - XED_ICLASS_SETNB, - XED_ICLASS_SETNBE, - XED_ICLASS_SETNL, - XED_ICLASS_SETNLE, - XED_ICLASS_SETNO, - XED_ICLASS_SETNP, - XED_ICLASS_SETNS, - XED_ICLASS_SETNZ, - XED_ICLASS_SETO, - XED_ICLASS_SETP, - XED_ICLASS_SETS, - XED_ICLASS_SETZ, - XED_ICLASS_SFENCE, - XED_ICLASS_SGDT, - XED_ICLASS_SHL, - XED_ICLASS_SHLD, - XED_ICLASS_SHR, - XED_ICLASS_SHRD, - XED_ICLASS_SHUFPD, - XED_ICLASS_SHUFPS, - XED_ICLASS_SIDT, - XED_ICLASS_SKINIT, - XED_ICLASS_SLDT, - XED_ICLASS_SMSW, - XED_ICLASS_SQRTPD, - XED_ICLASS_SQRTPS, - XED_ICLASS_SQRTSD, - XED_ICLASS_SQRTSS, - XED_ICLASS_STC, - XED_ICLASS_STD, - XED_ICLASS_STGI, - XED_ICLASS_STI, - XED_ICLASS_STMXCSR, - XED_ICLASS_STOSB, - XED_ICLASS_STOSD, - XED_ICLASS_STOSQ, - XED_ICLASS_STOSW, - XED_ICLASS_STR, - XED_ICLASS_SUB, - XED_ICLASS_SUBPD, - XED_ICLASS_SUBPS, - XED_ICLASS_SUBSD, - XED_ICLASS_SUBSS, - XED_ICLASS_SWAPGS, - XED_ICLASS_SYSCALL, - XED_ICLASS_SYSENTER, - XED_ICLASS_SYSEXIT, - XED_ICLASS_SYSRET, - XED_ICLASS_TEST, - XED_ICLASS_UCOMISD, - XED_ICLASS_UCOMISS, - XED_ICLASS_UD2, - XED_ICLASS_UNPCKHPD, - XED_ICLASS_UNPCKHPS, - XED_ICLASS_UNPCKLPD, - XED_ICLASS_UNPCKLPS, - XED_ICLASS_VERR, - XED_ICLASS_VERW, - XED_ICLASS_VMCALL, - XED_ICLASS_VMCLEAR, - XED_ICLASS_VMLAUNCH, - XED_ICLASS_VMLOAD, - XED_ICLASS_VMMCALL, - XED_ICLASS_VMPTRLD, - XED_ICLASS_VMPTRST, - XED_ICLASS_VMREAD, - XED_ICLASS_VMRESUME, - XED_ICLASS_VMRUN, - XED_ICLASS_VMSAVE, - XED_ICLASS_VMWRITE, - XED_ICLASS_VMXOFF, - XED_ICLASS_VMXON, - XED_ICLASS_WBINVD, - XED_ICLASS_WRMSR, - XED_ICLASS_XADD, - XED_ICLASS_XCHG, - XED_ICLASS_XGETBV, - XED_ICLASS_XLAT, - XED_ICLASS_XOR, - XED_ICLASS_XORPD, - XED_ICLASS_XORPS, - XED_ICLASS_XRSTOR, - XED_ICLASS_XSAVE, - XED_ICLASS_XSETBV, - XED_ICLASS_LAST -} xed_iclass_enum_t; - -XED_DLL_EXPORT xed_iclass_enum_t -str2xed_iclass_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_iclass_enum_t2str(const xed_iclass_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-iform-enum.h b/misc/decoder_test/XED2/include/xed-iform-enum.h deleted file mode 100644 index d1fc8d9..0000000 --- a/misc/decoder_test/XED2/include/xed-iform-enum.h +++ /dev/null @@ -1,1531 +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-iform-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_IFORM_ENUM_H_) -# define _XED_IFORM_ENUM_H_ -#include "xed-common-hdrs.h" -#include "xed-iclass-enum.h" -typedef enum { - XED_IFORM_INVALID=0, - XED_IFORM_AAA=(XED_ICLASS_AAA<<8)+0, - XED_IFORM_AAD_IMM=(XED_ICLASS_AAD<<8)+0, - XED_IFORM_AAM_IMM=(XED_ICLASS_AAM<<8)+0, - XED_IFORM_AAS=(XED_ICLASS_AAS<<8)+0, - XED_IFORM_ADC_MEMv_GPRv=(XED_ICLASS_ADC<<8)+0, - XED_IFORM_ADC_GPRv_GPRv=(XED_ICLASS_ADC<<8)+1, - XED_IFORM_ADC_GPR8_MEMb=(XED_ICLASS_ADC<<8)+2, - XED_IFORM_ADC_AL_IMM=(XED_ICLASS_ADC<<8)+3, - XED_IFORM_ADC_GPR8_IMM=(XED_ICLASS_ADC<<8)+4, - XED_IFORM_ADC_GPRv_MEMv=(XED_ICLASS_ADC<<8)+5, - XED_IFORM_ADC_OrAX_IMM=(XED_ICLASS_ADC<<8)+6, - XED_IFORM_ADC_MEMv_IMM=(XED_ICLASS_ADC<<8)+7, - XED_IFORM_ADC_GPRv_IMM=(XED_ICLASS_ADC<<8)+8, - XED_IFORM_ADC_MEMb_GPR8=(XED_ICLASS_ADC<<8)+9, - XED_IFORM_ADC_MEMb_IMM=(XED_ICLASS_ADC<<8)+10, - XED_IFORM_ADC_GPR8_GPR8=(XED_ICLASS_ADC<<8)+11, - XED_IFORM_ADD_GPR8_MEMb=(XED_ICLASS_ADD<<8)+0, - XED_IFORM_ADD_OrAX_IMM=(XED_ICLASS_ADD<<8)+1, - XED_IFORM_ADD_AL_IMM=(XED_ICLASS_ADD<<8)+2, - XED_IFORM_ADD_GPRv_GPRv=(XED_ICLASS_ADD<<8)+3, - XED_IFORM_ADD_MEMv_GPRv=(XED_ICLASS_ADD<<8)+4, - XED_IFORM_ADD_GPR8_GPR8=(XED_ICLASS_ADD<<8)+5, - XED_IFORM_ADD_GPRv_MEMv=(XED_ICLASS_ADD<<8)+6, - XED_IFORM_ADD_GPR8_IMM=(XED_ICLASS_ADD<<8)+7, - XED_IFORM_ADD_MEMb_IMM=(XED_ICLASS_ADD<<8)+8, - XED_IFORM_ADD_GPRv_IMM=(XED_ICLASS_ADD<<8)+9, - XED_IFORM_ADD_MEMb_GPR8=(XED_ICLASS_ADD<<8)+10, - XED_IFORM_ADD_MEMv_IMM=(XED_ICLASS_ADD<<8)+11, - XED_IFORM_ADDPD_XMMpd_XMMpd=(XED_ICLASS_ADDPD<<8)+0, - XED_IFORM_ADDPD_XMMpd_MEMpd=(XED_ICLASS_ADDPD<<8)+1, - XED_IFORM_ADDPS_XMMps_MEMps=(XED_ICLASS_ADDPS<<8)+0, - XED_IFORM_ADDPS_XMMps_XMMps=(XED_ICLASS_ADDPS<<8)+1, - XED_IFORM_ADDSD_XMMsd_MEMsd=(XED_ICLASS_ADDSD<<8)+0, - XED_IFORM_ADDSD_XMMsd_XMMsd=(XED_ICLASS_ADDSD<<8)+1, - XED_IFORM_ADDSS_XMMss_XMMss=(XED_ICLASS_ADDSS<<8)+0, - XED_IFORM_ADDSS_XMMss_MEMss=(XED_ICLASS_ADDSS<<8)+1, - XED_IFORM_ADDSUBPD_XMMpd_MEMpd=(XED_ICLASS_ADDSUBPD<<8)+0, - XED_IFORM_ADDSUBPD_XMMpd_XMMpd=(XED_ICLASS_ADDSUBPD<<8)+1, - XED_IFORM_ADDSUBPS_XMMps_XMMps=(XED_ICLASS_ADDSUBPS<<8)+0, - XED_IFORM_ADDSUBPS_XMMps_MEMps=(XED_ICLASS_ADDSUBPS<<8)+1, - XED_IFORM_AND_OrAX_IMM=(XED_ICLASS_AND<<8)+0, - XED_IFORM_AND_GPR8_GPR8=(XED_ICLASS_AND<<8)+1, - XED_IFORM_AND_GPR8_IMM=(XED_ICLASS_AND<<8)+2, - XED_IFORM_AND_MEMv_IMM=(XED_ICLASS_AND<<8)+3, - XED_IFORM_AND_MEMb_GPR8=(XED_ICLASS_AND<<8)+4, - XED_IFORM_AND_GPRv_MEMv=(XED_ICLASS_AND<<8)+5, - XED_IFORM_AND_GPRv_IMM=(XED_ICLASS_AND<<8)+6, - XED_IFORM_AND_GPR8_MEMb=(XED_ICLASS_AND<<8)+7, - XED_IFORM_AND_AL_IMM=(XED_ICLASS_AND<<8)+8, - XED_IFORM_AND_MEMv_GPRv=(XED_ICLASS_AND<<8)+9, - XED_IFORM_AND_MEMb_IMM=(XED_ICLASS_AND<<8)+10, - XED_IFORM_AND_GPRv_GPRv=(XED_ICLASS_AND<<8)+11, - XED_IFORM_ANDNPD_XMMpd_MEMpd=(XED_ICLASS_ANDNPD<<8)+0, - XED_IFORM_ANDNPD_XMMpd_XMMpd=(XED_ICLASS_ANDNPD<<8)+1, - XED_IFORM_ANDNPS_XMMps_XMMps=(XED_ICLASS_ANDNPS<<8)+0, - XED_IFORM_ANDNPS_XMMps_MEMps=(XED_ICLASS_ANDNPS<<8)+1, - XED_IFORM_ANDPD_XMMpd_XMMpd=(XED_ICLASS_ANDPD<<8)+0, - XED_IFORM_ANDPD_XMMpd_MEMpd=(XED_ICLASS_ANDPD<<8)+1, - XED_IFORM_ANDPS_XMMps_MEMps=(XED_ICLASS_ANDPS<<8)+0, - XED_IFORM_ANDPS_XMMps_XMMps=(XED_ICLASS_ANDPS<<8)+1, - XED_IFORM_ARPL_GPR16_GPR16=(XED_ICLASS_ARPL<<8)+0, - XED_IFORM_ARPL_MEMw_GPR16=(XED_ICLASS_ARPL<<8)+1, - XED_IFORM_BLENDPD_XMMdq_XMMdq_IMM=(XED_ICLASS_BLENDPD<<8)+0, - XED_IFORM_BLENDPD_XMMdq_MEMdq_IMM=(XED_ICLASS_BLENDPD<<8)+1, - XED_IFORM_BLENDPS_XMMdq_XMMdq_IMM=(XED_ICLASS_BLENDPS<<8)+0, - XED_IFORM_BLENDPS_XMMdq_MEMdq_IMM=(XED_ICLASS_BLENDPS<<8)+1, - XED_IFORM_BLENDVPD_XMMdq_XMMdq_XMM0dq=(XED_ICLASS_BLENDVPD<<8)+0, - XED_IFORM_BLENDVPD_XMMdq_MEMdq_XMM0dq=(XED_ICLASS_BLENDVPD<<8)+1, - XED_IFORM_BLENDVPS_XMMdq_XMMdq_XMM0dq=(XED_ICLASS_BLENDVPS<<8)+0, - XED_IFORM_BLENDVPS_XMMdq_MEMdq_XMM0dq=(XED_ICLASS_BLENDVPS<<8)+1, - XED_IFORM_BOUND_GPRv_MEMa=(XED_ICLASS_BOUND<<8)+0, - XED_IFORM_BSF_GPRv_MEMv=(XED_ICLASS_BSF<<8)+0, - XED_IFORM_BSF_GPRv_GPRv=(XED_ICLASS_BSF<<8)+1, - XED_IFORM_BSR_GPRv_GPRv=(XED_ICLASS_BSR<<8)+0, - XED_IFORM_BSR_GPRv_MEMv=(XED_ICLASS_BSR<<8)+1, - XED_IFORM_BSWAP_GPRv=(XED_ICLASS_BSWAP<<8)+0, - XED_IFORM_BT_GPRv_IMM=(XED_ICLASS_BT<<8)+0, - XED_IFORM_BT_MEMv_IMM=(XED_ICLASS_BT<<8)+1, - XED_IFORM_BT_MEMv_GPRv=(XED_ICLASS_BT<<8)+2, - XED_IFORM_BT_GPRv_GPRv=(XED_ICLASS_BT<<8)+3, - XED_IFORM_BTC_GPRv_GPRv=(XED_ICLASS_BTC<<8)+0, - XED_IFORM_BTC_MEMv_IMM=(XED_ICLASS_BTC<<8)+1, - XED_IFORM_BTC_MEMv_GPRv=(XED_ICLASS_BTC<<8)+2, - XED_IFORM_BTC_GPRv_IMM=(XED_ICLASS_BTC<<8)+3, - XED_IFORM_BTR_GPRv_IMM=(XED_ICLASS_BTR<<8)+0, - XED_IFORM_BTR_GPRv_GPRv=(XED_ICLASS_BTR<<8)+1, - XED_IFORM_BTR_MEMv_IMM=(XED_ICLASS_BTR<<8)+2, - XED_IFORM_BTR_MEMv_GPRv=(XED_ICLASS_BTR<<8)+3, - XED_IFORM_BTS_GPRv_GPRv=(XED_ICLASS_BTS<<8)+0, - XED_IFORM_BTS_MEMv_IMM=(XED_ICLASS_BTS<<8)+1, - XED_IFORM_BTS_MEMv_GPRv=(XED_ICLASS_BTS<<8)+2, - XED_IFORM_BTS_GPRv_IMM=(XED_ICLASS_BTS<<8)+3, - XED_IFORM_CALL_FAR_MEMp=(XED_ICLASS_CALL_FAR<<8)+0, - XED_IFORM_CALL_FAR_PTR_IMM=(XED_ICLASS_CALL_FAR<<8)+1, - XED_IFORM_CALL_NEAR_MEMv=(XED_ICLASS_CALL_NEAR<<8)+0, - XED_IFORM_CALL_NEAR_RELBR=(XED_ICLASS_CALL_NEAR<<8)+1, - XED_IFORM_CALL_NEAR_GPRv=(XED_ICLASS_CALL_NEAR<<8)+2, - XED_IFORM_CBW=(XED_ICLASS_CBW<<8)+0, - XED_IFORM_CDQ=(XED_ICLASS_CDQ<<8)+0, - XED_IFORM_CDQE=(XED_ICLASS_CDQE<<8)+0, - XED_IFORM_CLC=(XED_ICLASS_CLC<<8)+0, - XED_IFORM_CLD=(XED_ICLASS_CLD<<8)+0, - XED_IFORM_CLFLUSH_MEMb=(XED_ICLASS_CLFLUSH<<8)+0, - XED_IFORM_CLGI=(XED_ICLASS_CLGI<<8)+0, - XED_IFORM_CLI=(XED_ICLASS_CLI<<8)+0, - XED_IFORM_CLTS=(XED_ICLASS_CLTS<<8)+0, - XED_IFORM_CMC=(XED_ICLASS_CMC<<8)+0, - XED_IFORM_CMOVB_GPRv_GPRv=(XED_ICLASS_CMOVB<<8)+0, - XED_IFORM_CMOVB_GPRv_MEMv=(XED_ICLASS_CMOVB<<8)+1, - XED_IFORM_CMOVBE_GPRv_GPRv=(XED_ICLASS_CMOVBE<<8)+0, - XED_IFORM_CMOVBE_GPRv_MEMv=(XED_ICLASS_CMOVBE<<8)+1, - XED_IFORM_CMOVL_GPRv_MEMv=(XED_ICLASS_CMOVL<<8)+0, - XED_IFORM_CMOVL_GPRv_GPRv=(XED_ICLASS_CMOVL<<8)+1, - XED_IFORM_CMOVLE_GPRv_MEMv=(XED_ICLASS_CMOVLE<<8)+0, - XED_IFORM_CMOVLE_GPRv_GPRv=(XED_ICLASS_CMOVLE<<8)+1, - XED_IFORM_CMOVNB_GPRv_MEMv=(XED_ICLASS_CMOVNB<<8)+0, - XED_IFORM_CMOVNB_GPRv_GPRv=(XED_ICLASS_CMOVNB<<8)+1, - XED_IFORM_CMOVNBE_GPRv_GPRv=(XED_ICLASS_CMOVNBE<<8)+0, - XED_IFORM_CMOVNBE_GPRv_MEMv=(XED_ICLASS_CMOVNBE<<8)+1, - XED_IFORM_CMOVNL_GPRv_MEMv=(XED_ICLASS_CMOVNL<<8)+0, - XED_IFORM_CMOVNL_GPRv_GPRv=(XED_ICLASS_CMOVNL<<8)+1, - XED_IFORM_CMOVNLE_GPRv_GPRv=(XED_ICLASS_CMOVNLE<<8)+0, - XED_IFORM_CMOVNLE_GPRv_MEMv=(XED_ICLASS_CMOVNLE<<8)+1, - XED_IFORM_CMOVNO_GPRv_MEMv=(XED_ICLASS_CMOVNO<<8)+0, - XED_IFORM_CMOVNO_GPRv_GPRv=(XED_ICLASS_CMOVNO<<8)+1, - XED_IFORM_CMOVNP_GPRv_GPRv=(XED_ICLASS_CMOVNP<<8)+0, - XED_IFORM_CMOVNP_GPRv_MEMv=(XED_ICLASS_CMOVNP<<8)+1, - XED_IFORM_CMOVNS_GPRv_GPRv=(XED_ICLASS_CMOVNS<<8)+0, - XED_IFORM_CMOVNS_GPRv_MEMv=(XED_ICLASS_CMOVNS<<8)+1, - XED_IFORM_CMOVNZ_GPRv_MEMv=(XED_ICLASS_CMOVNZ<<8)+0, - XED_IFORM_CMOVNZ_GPRv_GPRv=(XED_ICLASS_CMOVNZ<<8)+1, - XED_IFORM_CMOVO_GPRv_MEMv=(XED_ICLASS_CMOVO<<8)+0, - XED_IFORM_CMOVO_GPRv_GPRv=(XED_ICLASS_CMOVO<<8)+1, - XED_IFORM_CMOVP_GPRv_GPRv=(XED_ICLASS_CMOVP<<8)+0, - XED_IFORM_CMOVP_GPRv_MEMv=(XED_ICLASS_CMOVP<<8)+1, - XED_IFORM_CMOVS_GPRv_GPRv=(XED_ICLASS_CMOVS<<8)+0, - XED_IFORM_CMOVS_GPRv_MEMv=(XED_ICLASS_CMOVS<<8)+1, - XED_IFORM_CMOVZ_GPRv_GPRv=(XED_ICLASS_CMOVZ<<8)+0, - XED_IFORM_CMOVZ_GPRv_MEMv=(XED_ICLASS_CMOVZ<<8)+1, - XED_IFORM_CMP_OrAX_IMM=(XED_ICLASS_CMP<<8)+0, - XED_IFORM_CMP_MEMv_GPRv=(XED_ICLASS_CMP<<8)+1, - XED_IFORM_CMP_AL_IMM=(XED_ICLASS_CMP<<8)+2, - XED_IFORM_CMP_GPRv_GPRv=(XED_ICLASS_CMP<<8)+3, - XED_IFORM_CMP_MEMb_IMM=(XED_ICLASS_CMP<<8)+4, - XED_IFORM_CMP_GPR8_GPR8=(XED_ICLASS_CMP<<8)+5, - XED_IFORM_CMP_MEMb_GPR8=(XED_ICLASS_CMP<<8)+6, - XED_IFORM_CMP_GPR8_IMM=(XED_ICLASS_CMP<<8)+7, - XED_IFORM_CMP_GPRv_IMM=(XED_ICLASS_CMP<<8)+8, - XED_IFORM_CMP_GPRv_MEMv=(XED_ICLASS_CMP<<8)+9, - XED_IFORM_CMP_GPR8_MEMb=(XED_ICLASS_CMP<<8)+10, - XED_IFORM_CMP_MEMv_IMM=(XED_ICLASS_CMP<<8)+11, - XED_IFORM_CMPPD_XMMpd_MEMpd_IMM=(XED_ICLASS_CMPPD<<8)+0, - XED_IFORM_CMPPD_XMMpd_XMMpd_IMM=(XED_ICLASS_CMPPD<<8)+1, - XED_IFORM_CMPPS_XMMps_XMMps_IMM=(XED_ICLASS_CMPPS<<8)+0, - XED_IFORM_CMPPS_XMMps_MEMps_IMM=(XED_ICLASS_CMPPS<<8)+1, - XED_IFORM_CMPSB=(XED_ICLASS_CMPSB<<8)+0, - XED_IFORM_CMPSD=(XED_ICLASS_CMPSD<<8)+0, - XED_IFORM_CMPSD_XMM_XMMsd_MEMsd_IMM=(XED_ICLASS_CMPSD_XMM<<8)+0, - XED_IFORM_CMPSD_XMM_XMMsd_XMMsd_IMM=(XED_ICLASS_CMPSD_XMM<<8)+1, - XED_IFORM_CMPSQ=(XED_ICLASS_CMPSQ<<8)+0, - XED_IFORM_CMPSS_XMMss_XMMss_IMM=(XED_ICLASS_CMPSS<<8)+0, - XED_IFORM_CMPSS_XMMss_MEMss_IMM=(XED_ICLASS_CMPSS<<8)+1, - XED_IFORM_CMPSW=(XED_ICLASS_CMPSW<<8)+0, - XED_IFORM_CMPXCHG_GPR8_GPR8=(XED_ICLASS_CMPXCHG<<8)+0, - XED_IFORM_CMPXCHG_MEMv_GPRv=(XED_ICLASS_CMPXCHG<<8)+1, - XED_IFORM_CMPXCHG_MEMb_GPR8=(XED_ICLASS_CMPXCHG<<8)+2, - XED_IFORM_CMPXCHG_GPRv_GPRv=(XED_ICLASS_CMPXCHG<<8)+3, - XED_IFORM_CMPXCHG16B_MEMdq=(XED_ICLASS_CMPXCHG16B<<8)+0, - XED_IFORM_CMPXCHG8B_MEMq=(XED_ICLASS_CMPXCHG8B<<8)+0, - XED_IFORM_COMISD_XMMsd_MEMsd=(XED_ICLASS_COMISD<<8)+0, - XED_IFORM_COMISD_XMMsd_XMMsd=(XED_ICLASS_COMISD<<8)+1, - XED_IFORM_COMISS_XMMss_XMMss=(XED_ICLASS_COMISS<<8)+0, - XED_IFORM_COMISS_XMMss_MEMss=(XED_ICLASS_COMISS<<8)+1, - XED_IFORM_CPUID=(XED_ICLASS_CPUID<<8)+0, - XED_IFORM_CQO=(XED_ICLASS_CQO<<8)+0, - XED_IFORM_CRC32_GPR32d_GPRv=(XED_ICLASS_CRC32<<8)+0, - XED_IFORM_CRC32_GPR32d_MEMb=(XED_ICLASS_CRC32<<8)+1, - XED_IFORM_CRC32_GPR32d_GPR8b=(XED_ICLASS_CRC32<<8)+2, - XED_IFORM_CRC32_GPR64q_MEMv=(XED_ICLASS_CRC32<<8)+3, - XED_IFORM_CRC32_GPR32d_MEMv=(XED_ICLASS_CRC32<<8)+4, - XED_IFORM_CRC32_GPR64q_MEMb=(XED_ICLASS_CRC32<<8)+5, - XED_IFORM_CRC32_GPR64q_GPRv=(XED_ICLASS_CRC32<<8)+6, - XED_IFORM_CRC32_GPR64q_GPR8b=(XED_ICLASS_CRC32<<8)+7, - XED_IFORM_CVTDQ2PD_XMMpd_MEMq=(XED_ICLASS_CVTDQ2PD<<8)+0, - XED_IFORM_CVTDQ2PD_XMMpd_XMMq=(XED_ICLASS_CVTDQ2PD<<8)+1, - XED_IFORM_CVTDQ2PS_XMMps_MEMdq=(XED_ICLASS_CVTDQ2PS<<8)+0, - XED_IFORM_CVTDQ2PS_XMMps_XMMdq=(XED_ICLASS_CVTDQ2PS<<8)+1, - XED_IFORM_CVTPD2DQ_XMMdq_MEMpd=(XED_ICLASS_CVTPD2DQ<<8)+0, - XED_IFORM_CVTPD2DQ_XMMdq_XMMpd=(XED_ICLASS_CVTPD2DQ<<8)+1, - XED_IFORM_CVTPD2PI_MMXq_XMMpd=(XED_ICLASS_CVTPD2PI<<8)+0, - XED_IFORM_CVTPD2PI_MMXq_MEMpd=(XED_ICLASS_CVTPD2PI<<8)+1, - XED_IFORM_CVTPD2PS_XMMps_MEMpd=(XED_ICLASS_CVTPD2PS<<8)+0, - XED_IFORM_CVTPD2PS_XMMps_XMMpd=(XED_ICLASS_CVTPD2PS<<8)+1, - XED_IFORM_CVTPI2PD_XMMpd_MMXq=(XED_ICLASS_CVTPI2PD<<8)+0, - XED_IFORM_CVTPI2PD_XMMpd_MEMq=(XED_ICLASS_CVTPI2PD<<8)+1, - XED_IFORM_CVTPI2PS_XMMq_MMXq=(XED_ICLASS_CVTPI2PS<<8)+0, - XED_IFORM_CVTPI2PS_XMMq_MEMq=(XED_ICLASS_CVTPI2PS<<8)+1, - XED_IFORM_CVTPS2DQ_XMMdq_MEMps=(XED_ICLASS_CVTPS2DQ<<8)+0, - XED_IFORM_CVTPS2DQ_XMMdq_XMMps=(XED_ICLASS_CVTPS2DQ<<8)+1, - XED_IFORM_CVTPS2PD_XMMpd_MEMq=(XED_ICLASS_CVTPS2PD<<8)+0, - XED_IFORM_CVTPS2PD_XMMpd_XMMq=(XED_ICLASS_CVTPS2PD<<8)+1, - XED_IFORM_CVTPS2PI_MMXq_MEMq=(XED_ICLASS_CVTPS2PI<<8)+0, - XED_IFORM_CVTPS2PI_MMXq_XMMq=(XED_ICLASS_CVTPS2PI<<8)+1, - XED_IFORM_CVTSD2SI_GPR32_MEMsd=(XED_ICLASS_CVTSD2SI<<8)+0, - XED_IFORM_CVTSD2SI_GPR32_XMMsd=(XED_ICLASS_CVTSD2SI<<8)+1, - XED_IFORM_CVTSD2SI_GPR64_XMMsd=(XED_ICLASS_CVTSD2SI<<8)+2, - XED_IFORM_CVTSD2SI_GPR64_MEMsd=(XED_ICLASS_CVTSD2SI<<8)+3, - XED_IFORM_CVTSD2SS_XMMss_MEMsd=(XED_ICLASS_CVTSD2SS<<8)+0, - XED_IFORM_CVTSD2SS_XMMss_XMMsd=(XED_ICLASS_CVTSD2SS<<8)+1, - XED_IFORM_CVTSI2SD_XMMsd_GPR64=(XED_ICLASS_CVTSI2SD<<8)+0, - XED_IFORM_CVTSI2SD_XMMsd_GPR32=(XED_ICLASS_CVTSI2SD<<8)+1, - XED_IFORM_CVTSI2SD_XMMsd_MEMd=(XED_ICLASS_CVTSI2SD<<8)+2, - XED_IFORM_CVTSI2SD_XMMsd_MEMq=(XED_ICLASS_CVTSI2SD<<8)+3, - XED_IFORM_CVTSI2SS_XMMss_GPR64=(XED_ICLASS_CVTSI2SS<<8)+0, - XED_IFORM_CVTSI2SS_XMMss_GPR32=(XED_ICLASS_CVTSI2SS<<8)+1, - XED_IFORM_CVTSI2SS_XMMss_MEMd=(XED_ICLASS_CVTSI2SS<<8)+2, - XED_IFORM_CVTSI2SS_XMMss_MEMq=(XED_ICLASS_CVTSI2SS<<8)+3, - XED_IFORM_CVTSS2SD_XMMsd_MEMss=(XED_ICLASS_CVTSS2SD<<8)+0, - XED_IFORM_CVTSS2SD_XMMsd_XMMss=(XED_ICLASS_CVTSS2SD<<8)+1, - XED_IFORM_CVTSS2SI_GPR64_XMMss=(XED_ICLASS_CVTSS2SI<<8)+0, - XED_IFORM_CVTSS2SI_GPR32_MEMss=(XED_ICLASS_CVTSS2SI<<8)+1, - XED_IFORM_CVTSS2SI_GPR32_XMMss=(XED_ICLASS_CVTSS2SI<<8)+2, - XED_IFORM_CVTSS2SI_GPR64_MEMss=(XED_ICLASS_CVTSS2SI<<8)+3, - XED_IFORM_CVTTPD2DQ_XMMdq_XMMpd=(XED_ICLASS_CVTTPD2DQ<<8)+0, - XED_IFORM_CVTTPD2DQ_XMMdq_MEMpd=(XED_ICLASS_CVTTPD2DQ<<8)+1, - XED_IFORM_CVTTPD2PI_MMXq_MEMpd=(XED_ICLASS_CVTTPD2PI<<8)+0, - XED_IFORM_CVTTPD2PI_MMXq_XMMpd=(XED_ICLASS_CVTTPD2PI<<8)+1, - XED_IFORM_CVTTPS2DQ_XMMdq_XMMps=(XED_ICLASS_CVTTPS2DQ<<8)+0, - XED_IFORM_CVTTPS2DQ_XMMdq_MEMps=(XED_ICLASS_CVTTPS2DQ<<8)+1, - XED_IFORM_CVTTPS2PI_MMXq_MEMq=(XED_ICLASS_CVTTPS2PI<<8)+0, - XED_IFORM_CVTTPS2PI_MMXq_XMMq=(XED_ICLASS_CVTTPS2PI<<8)+1, - XED_IFORM_CVTTSD2SI_GPR64_MEMsd=(XED_ICLASS_CVTTSD2SI<<8)+0, - XED_IFORM_CVTTSD2SI_GPR32_XMMsd=(XED_ICLASS_CVTTSD2SI<<8)+1, - XED_IFORM_CVTTSD2SI_GPR32_MEMsd=(XED_ICLASS_CVTTSD2SI<<8)+2, - XED_IFORM_CVTTSD2SI_GPR64_XMMsd=(XED_ICLASS_CVTTSD2SI<<8)+3, - XED_IFORM_CVTTSS2SI_GPR64_MEMss=(XED_ICLASS_CVTTSS2SI<<8)+0, - XED_IFORM_CVTTSS2SI_GPR64_XMMss=(XED_ICLASS_CVTTSS2SI<<8)+1, - XED_IFORM_CVTTSS2SI_GPR32_XMMss=(XED_ICLASS_CVTTSS2SI<<8)+2, - XED_IFORM_CVTTSS2SI_GPR32_MEMss=(XED_ICLASS_CVTTSS2SI<<8)+3, - XED_IFORM_CWD=(XED_ICLASS_CWD<<8)+0, - XED_IFORM_CWDE=(XED_ICLASS_CWDE<<8)+0, - XED_IFORM_DAA=(XED_ICLASS_DAA<<8)+0, - XED_IFORM_DAS=(XED_ICLASS_DAS<<8)+0, - XED_IFORM_DEC_GPR8=(XED_ICLASS_DEC<<8)+0, - XED_IFORM_DEC_MEMv=(XED_ICLASS_DEC<<8)+1, - XED_IFORM_DEC_MEMb=(XED_ICLASS_DEC<<8)+2, - XED_IFORM_DEC_GPRv=(XED_ICLASS_DEC<<8)+3, - XED_IFORM_DIV_MEMv=(XED_ICLASS_DIV<<8)+0, - XED_IFORM_DIV_GPR8=(XED_ICLASS_DIV<<8)+1, - XED_IFORM_DIV_GPRv=(XED_ICLASS_DIV<<8)+2, - XED_IFORM_DIV_MEMb=(XED_ICLASS_DIV<<8)+3, - XED_IFORM_DIVPD_XMMpd_XMMpd=(XED_ICLASS_DIVPD<<8)+0, - XED_IFORM_DIVPD_XMMpd_MEMpd=(XED_ICLASS_DIVPD<<8)+1, - XED_IFORM_DIVPS_XMMps_MEMps=(XED_ICLASS_DIVPS<<8)+0, - XED_IFORM_DIVPS_XMMps_XMMps=(XED_ICLASS_DIVPS<<8)+1, - XED_IFORM_DIVSD_XMMsd_MEMsd=(XED_ICLASS_DIVSD<<8)+0, - XED_IFORM_DIVSD_XMMsd_XMMsd=(XED_ICLASS_DIVSD<<8)+1, - XED_IFORM_DIVSS_XMMss_XMMss=(XED_ICLASS_DIVSS<<8)+0, - XED_IFORM_DIVSS_XMMss_MEMss=(XED_ICLASS_DIVSS<<8)+1, - XED_IFORM_DPPD_XMMdq_XMMdq_IMM=(XED_ICLASS_DPPD<<8)+0, - XED_IFORM_DPPD_XMMdq_MEMdq_IMM=(XED_ICLASS_DPPD<<8)+1, - XED_IFORM_DPPS_XMMdq_XMMdq_IMM=(XED_ICLASS_DPPS<<8)+0, - XED_IFORM_DPPS_XMMdq_MEMdq_IMM=(XED_ICLASS_DPPS<<8)+1, - XED_IFORM_EMMS=(XED_ICLASS_EMMS<<8)+0, - XED_IFORM_ENTER_IMM_IMM=(XED_ICLASS_ENTER<<8)+0, - XED_IFORM_EXTRACTPS_GPR32w_XMMdq_IMM=(XED_ICLASS_EXTRACTPS<<8)+0, - XED_IFORM_EXTRACTPS_MEMw_XMMps_IMM=(XED_ICLASS_EXTRACTPS<<8)+1, - XED_IFORM_EXTRQ_XMMq_IMM_IMM=(XED_ICLASS_EXTRQ<<8)+0, - XED_IFORM_EXTRQ_XMMq_XMMdq=(XED_ICLASS_EXTRQ<<8)+1, - XED_IFORM_F2XM1_ST0=(XED_ICLASS_F2XM1<<8)+0, - XED_IFORM_FABS_ST0=(XED_ICLASS_FABS<<8)+0, - XED_IFORM_FADD_ST0_MEMmem32real=(XED_ICLASS_FADD<<8)+0, - XED_IFORM_FADD_ST0_MEMm64real=(XED_ICLASS_FADD<<8)+1, - XED_IFORM_FADD_X87_ST0=(XED_ICLASS_FADD<<8)+2, - XED_IFORM_FADD_ST0_X87=(XED_ICLASS_FADD<<8)+3, - XED_IFORM_FADDP_X87_ST0=(XED_ICLASS_FADDP<<8)+0, - XED_IFORM_FBLD_ST0_MEMmem80dec=(XED_ICLASS_FBLD<<8)+0, - XED_IFORM_FBSTP_MEMmem80dec_ST0=(XED_ICLASS_FBSTP<<8)+0, - XED_IFORM_FCHS_ST0=(XED_ICLASS_FCHS<<8)+0, - XED_IFORM_FCMOVB_ST0_X87=(XED_ICLASS_FCMOVB<<8)+0, - XED_IFORM_FCMOVBE_ST0_X87=(XED_ICLASS_FCMOVBE<<8)+0, - XED_IFORM_FCMOVE_ST0_X87=(XED_ICLASS_FCMOVE<<8)+0, - XED_IFORM_FCMOVNB_ST0_X87=(XED_ICLASS_FCMOVNB<<8)+0, - XED_IFORM_FCMOVNBE_ST0_X87=(XED_ICLASS_FCMOVNBE<<8)+0, - XED_IFORM_FCMOVNE_ST0_X87=(XED_ICLASS_FCMOVNE<<8)+0, - XED_IFORM_FCMOVNU_ST0_X87=(XED_ICLASS_FCMOVNU<<8)+0, - XED_IFORM_FCMOVU_ST0_X87=(XED_ICLASS_FCMOVU<<8)+0, - XED_IFORM_FCOM_ST0_X87=(XED_ICLASS_FCOM<<8)+0, - XED_IFORM_FCOM_ST0_MEMmem32real=(XED_ICLASS_FCOM<<8)+1, - XED_IFORM_FCOM_ST0_MEMm64real=(XED_ICLASS_FCOM<<8)+2, - XED_IFORM_FCOMI_ST0_X87=(XED_ICLASS_FCOMI<<8)+0, - XED_IFORM_FCOMIP_ST0_X87=(XED_ICLASS_FCOMIP<<8)+0, - XED_IFORM_FCOMP_ST0_X87=(XED_ICLASS_FCOMP<<8)+0, - XED_IFORM_FCOMP_ST0_MEMmem32real=(XED_ICLASS_FCOMP<<8)+1, - XED_IFORM_FCOMP_ST0_MEMm64real=(XED_ICLASS_FCOMP<<8)+2, - XED_IFORM_FCOMPP_ST0_ST1=(XED_ICLASS_FCOMPP<<8)+0, - XED_IFORM_FCOS_ST0=(XED_ICLASS_FCOS<<8)+0, - XED_IFORM_FDECSTP=(XED_ICLASS_FDECSTP<<8)+0, - XED_IFORM_FDIV_X87_ST0=(XED_ICLASS_FDIV<<8)+0, - XED_IFORM_FDIV_ST0_MEMmem32real=(XED_ICLASS_FDIV<<8)+1, - XED_IFORM_FDIV_ST0_MEMm64real=(XED_ICLASS_FDIV<<8)+2, - XED_IFORM_FDIV_ST0_X87=(XED_ICLASS_FDIV<<8)+3, - XED_IFORM_FDIVP_X87_ST0=(XED_ICLASS_FDIVP<<8)+0, - XED_IFORM_FDIVR_ST0_MEMm64real=(XED_ICLASS_FDIVR<<8)+0, - XED_IFORM_FDIVR_X87_ST0=(XED_ICLASS_FDIVR<<8)+1, - XED_IFORM_FDIVR_ST0_X87=(XED_ICLASS_FDIVR<<8)+2, - XED_IFORM_FDIVR_ST0_MEMmem32real=(XED_ICLASS_FDIVR<<8)+3, - XED_IFORM_FDIVRP_X87_ST0=(XED_ICLASS_FDIVRP<<8)+0, - XED_IFORM_FEMMS=(XED_ICLASS_FEMMS<<8)+0, - XED_IFORM_FFREE_X87=(XED_ICLASS_FFREE<<8)+0, - XED_IFORM_FFREEP_X87=(XED_ICLASS_FFREEP<<8)+0, - XED_IFORM_FIADD_ST0_MEMmem32int=(XED_ICLASS_FIADD<<8)+0, - XED_IFORM_FIADD_ST0_MEMmem16int=(XED_ICLASS_FIADD<<8)+1, - XED_IFORM_FICOM_ST0_MEMmem32int=(XED_ICLASS_FICOM<<8)+0, - XED_IFORM_FICOM_ST0_MEMmem16int=(XED_ICLASS_FICOM<<8)+1, - XED_IFORM_FICOMP_ST0_MEMmem16int=(XED_ICLASS_FICOMP<<8)+0, - XED_IFORM_FICOMP_ST0_MEMmem32int=(XED_ICLASS_FICOMP<<8)+1, - XED_IFORM_FIDIV_ST0_MEMmem16int=(XED_ICLASS_FIDIV<<8)+0, - XED_IFORM_FIDIV_ST0_MEMmem32int=(XED_ICLASS_FIDIV<<8)+1, - XED_IFORM_FIDIVR_ST0_MEMmem32int=(XED_ICLASS_FIDIVR<<8)+0, - XED_IFORM_FIDIVR_ST0_MEMmem16int=(XED_ICLASS_FIDIVR<<8)+1, - XED_IFORM_FILD_ST0_MEMmem32int=(XED_ICLASS_FILD<<8)+0, - XED_IFORM_FILD_ST0_MEMmem16int=(XED_ICLASS_FILD<<8)+1, - XED_IFORM_FILD_ST0_MEMm64int=(XED_ICLASS_FILD<<8)+2, - XED_IFORM_FIMUL_ST0_MEMmem16int=(XED_ICLASS_FIMUL<<8)+0, - XED_IFORM_FIMUL_ST0_MEMmem32int=(XED_ICLASS_FIMUL<<8)+1, - XED_IFORM_FINCSTP=(XED_ICLASS_FINCSTP<<8)+0, - XED_IFORM_FIST_MEMmem32int_ST0=(XED_ICLASS_FIST<<8)+0, - XED_IFORM_FIST_MEMmem16int_ST0=(XED_ICLASS_FIST<<8)+1, - XED_IFORM_FISTP_MEMmem32int_ST0=(XED_ICLASS_FISTP<<8)+0, - XED_IFORM_FISTP_MEMmem16int_ST0=(XED_ICLASS_FISTP<<8)+1, - XED_IFORM_FISTP_MEMm64int_ST0=(XED_ICLASS_FISTP<<8)+2, - XED_IFORM_FISTTP_MEMmem16int_ST0=(XED_ICLASS_FISTTP<<8)+0, - XED_IFORM_FISTTP_MEMmem32int_ST0=(XED_ICLASS_FISTTP<<8)+1, - XED_IFORM_FISTTP_MEMm64int_ST0=(XED_ICLASS_FISTTP<<8)+2, - XED_IFORM_FISUB_ST0_MEMmem32int=(XED_ICLASS_FISUB<<8)+0, - XED_IFORM_FISUB_ST0_MEMmem16int=(XED_ICLASS_FISUB<<8)+1, - XED_IFORM_FISUBR_ST0_MEMmem32int=(XED_ICLASS_FISUBR<<8)+0, - XED_IFORM_FISUBR_ST0_MEMmem16int=(XED_ICLASS_FISUBR<<8)+1, - XED_IFORM_FLD_ST0_X87=(XED_ICLASS_FLD<<8)+0, - XED_IFORM_FLD_ST0_MEMm64real=(XED_ICLASS_FLD<<8)+1, - XED_IFORM_FLD_ST0_MEMmem32real=(XED_ICLASS_FLD<<8)+2, - XED_IFORM_FLD_ST0_MEMmem80real=(XED_ICLASS_FLD<<8)+3, - XED_IFORM_FLD1_ST0=(XED_ICLASS_FLD1<<8)+0, - XED_IFORM_FLDCW_MEMmem16=(XED_ICLASS_FLDCW<<8)+0, - XED_IFORM_FLDENV_MEMmem14=(XED_ICLASS_FLDENV<<8)+0, - XED_IFORM_FLDENV_MEMmem28=(XED_ICLASS_FLDENV<<8)+1, - XED_IFORM_FLDL2E_ST0=(XED_ICLASS_FLDL2E<<8)+0, - XED_IFORM_FLDL2T_ST0=(XED_ICLASS_FLDL2T<<8)+0, - XED_IFORM_FLDLG2_ST0=(XED_ICLASS_FLDLG2<<8)+0, - XED_IFORM_FLDLN2_ST0=(XED_ICLASS_FLDLN2<<8)+0, - XED_IFORM_FLDPI_ST0=(XED_ICLASS_FLDPI<<8)+0, - XED_IFORM_FLDZ_ST0=(XED_ICLASS_FLDZ<<8)+0, - XED_IFORM_FMUL_ST0_MEMm64real=(XED_ICLASS_FMUL<<8)+0, - XED_IFORM_FMUL_ST0_MEMmem32real=(XED_ICLASS_FMUL<<8)+1, - XED_IFORM_FMUL_X87_ST0=(XED_ICLASS_FMUL<<8)+2, - XED_IFORM_FMUL_ST0_X87=(XED_ICLASS_FMUL<<8)+3, - XED_IFORM_FMULP_X87_ST0=(XED_ICLASS_FMULP<<8)+0, - XED_IFORM_FNCLEX=(XED_ICLASS_FNCLEX<<8)+0, - XED_IFORM_FNINIT=(XED_ICLASS_FNINIT<<8)+0, - XED_IFORM_FNOP=(XED_ICLASS_FNOP<<8)+0, - XED_IFORM_FNSAVE_MEMmem98=(XED_ICLASS_FNSAVE<<8)+0, - XED_IFORM_FNSAVE_MEMmem108=(XED_ICLASS_FNSAVE<<8)+1, - XED_IFORM_FNSTCW_MEMmem16=(XED_ICLASS_FNSTCW<<8)+0, - XED_IFORM_FNSTENV_MEMmem28=(XED_ICLASS_FNSTENV<<8)+0, - XED_IFORM_FNSTENV_MEMmem14=(XED_ICLASS_FNSTENV<<8)+1, - XED_IFORM_FNSTSW_MEMmem16=(XED_ICLASS_FNSTSW<<8)+0, - XED_IFORM_FNSTSW_AX=(XED_ICLASS_FNSTSW<<8)+1, - XED_IFORM_FPATAN_ST0_ST1=(XED_ICLASS_FPATAN<<8)+0, - XED_IFORM_FPREM_ST0_ST1=(XED_ICLASS_FPREM<<8)+0, - XED_IFORM_FPREM1_ST0_ST1=(XED_ICLASS_FPREM1<<8)+0, - XED_IFORM_FPTAN_ST0_ST1=(XED_ICLASS_FPTAN<<8)+0, - XED_IFORM_FRNDINT_ST0=(XED_ICLASS_FRNDINT<<8)+0, - XED_IFORM_FRSTOR_MEMmem108=(XED_ICLASS_FRSTOR<<8)+0, - XED_IFORM_FRSTOR_MEMmem98=(XED_ICLASS_FRSTOR<<8)+1, - XED_IFORM_FSCALE_ST0_ST1=(XED_ICLASS_FSCALE<<8)+0, - XED_IFORM_FSETPM287_NOP=(XED_ICLASS_FSETPM287_NOP<<8)+0, - XED_IFORM_FSIN_ST0=(XED_ICLASS_FSIN<<8)+0, - XED_IFORM_FSINCOS_ST0_ST1=(XED_ICLASS_FSINCOS<<8)+0, - XED_IFORM_FSQRT_ST0=(XED_ICLASS_FSQRT<<8)+0, - XED_IFORM_FST_X87_ST0=(XED_ICLASS_FST<<8)+0, - XED_IFORM_FST_MEMmem32real_ST0=(XED_ICLASS_FST<<8)+1, - XED_IFORM_FST_MEMm64real_ST0=(XED_ICLASS_FST<<8)+2, - XED_IFORM_FSTP_MEMmem32real_ST0=(XED_ICLASS_FSTP<<8)+0, - XED_IFORM_FSTP_X87_ST0=(XED_ICLASS_FSTP<<8)+1, - XED_IFORM_FSTP_MEMmem80real_ST0=(XED_ICLASS_FSTP<<8)+2, - XED_IFORM_FSTP_MEMm64real_ST0=(XED_ICLASS_FSTP<<8)+3, - XED_IFORM_FSUB_ST0_X87=(XED_ICLASS_FSUB<<8)+0, - XED_IFORM_FSUB_X87_ST0=(XED_ICLASS_FSUB<<8)+1, - XED_IFORM_FSUB_ST0_MEMm64real=(XED_ICLASS_FSUB<<8)+2, - XED_IFORM_FSUB_ST0_MEMmem32real=(XED_ICLASS_FSUB<<8)+3, - XED_IFORM_FSUBP_X87_ST0=(XED_ICLASS_FSUBP<<8)+0, - XED_IFORM_FSUBR_ST0_MEMmem32real=(XED_ICLASS_FSUBR<<8)+0, - XED_IFORM_FSUBR_X87_ST0=(XED_ICLASS_FSUBR<<8)+1, - XED_IFORM_FSUBR_ST0_X87=(XED_ICLASS_FSUBR<<8)+2, - XED_IFORM_FSUBR_ST0_MEMm64real=(XED_ICLASS_FSUBR<<8)+3, - XED_IFORM_FSUBRP_X87_ST0=(XED_ICLASS_FSUBRP<<8)+0, - XED_IFORM_FTST_ST0=(XED_ICLASS_FTST<<8)+0, - XED_IFORM_FUCOM_ST0_X87=(XED_ICLASS_FUCOM<<8)+0, - XED_IFORM_FUCOMI_ST0_X87=(XED_ICLASS_FUCOMI<<8)+0, - XED_IFORM_FUCOMIP_ST0_X87=(XED_ICLASS_FUCOMIP<<8)+0, - XED_IFORM_FUCOMP_ST0_X87=(XED_ICLASS_FUCOMP<<8)+0, - XED_IFORM_FUCOMPP_ST0_ST1=(XED_ICLASS_FUCOMPP<<8)+0, - XED_IFORM_FWAIT=(XED_ICLASS_FWAIT<<8)+0, - XED_IFORM_FXAM_ST0=(XED_ICLASS_FXAM<<8)+0, - XED_IFORM_FXCH_ST0_X87=(XED_ICLASS_FXCH<<8)+0, - XED_IFORM_FXRSTOR_MEMmfpxenv=(XED_ICLASS_FXRSTOR<<8)+0, - XED_IFORM_FXSAVE_MEMmfpxenv=(XED_ICLASS_FXSAVE<<8)+0, - XED_IFORM_FXTRACT_ST0_ST1=(XED_ICLASS_FXTRACT<<8)+0, - XED_IFORM_FYL2X_ST0_ST1=(XED_ICLASS_FYL2X<<8)+0, - XED_IFORM_FYL2XP1_ST0_ST1=(XED_ICLASS_FYL2XP1<<8)+0, - XED_IFORM_HADDPD_XMMpd_MEMpd=(XED_ICLASS_HADDPD<<8)+0, - XED_IFORM_HADDPD_XMMpd_XMMpd=(XED_ICLASS_HADDPD<<8)+1, - XED_IFORM_HADDPS_XMMps_XMMps=(XED_ICLASS_HADDPS<<8)+0, - XED_IFORM_HADDPS_XMMps_MEMps=(XED_ICLASS_HADDPS<<8)+1, - XED_IFORM_HLT=(XED_ICLASS_HLT<<8)+0, - XED_IFORM_HSUBPD_XMMpd_XMMpd=(XED_ICLASS_HSUBPD<<8)+0, - XED_IFORM_HSUBPD_XMMpd_MEMpd=(XED_ICLASS_HSUBPD<<8)+1, - XED_IFORM_HSUBPS_XMMps_MEMps=(XED_ICLASS_HSUBPS<<8)+0, - XED_IFORM_HSUBPS_XMMps_XMMps=(XED_ICLASS_HSUBPS<<8)+1, - XED_IFORM_IDIV_MEMb=(XED_ICLASS_IDIV<<8)+0, - XED_IFORM_IDIV_GPR8=(XED_ICLASS_IDIV<<8)+1, - XED_IFORM_IDIV_GPRv=(XED_ICLASS_IDIV<<8)+2, - XED_IFORM_IDIV_MEMv=(XED_ICLASS_IDIV<<8)+3, - XED_IFORM_IMUL_MEMv=(XED_ICLASS_IMUL<<8)+0, - XED_IFORM_IMUL_GPRv_GPRv=(XED_ICLASS_IMUL<<8)+1, - XED_IFORM_IMUL_GPRv_GPRv_IMM=(XED_ICLASS_IMUL<<8)+2, - XED_IFORM_IMUL_GPR8=(XED_ICLASS_IMUL<<8)+3, - XED_IFORM_IMUL_MEMb=(XED_ICLASS_IMUL<<8)+4, - XED_IFORM_IMUL_GPRv_MEMv_IMM=(XED_ICLASS_IMUL<<8)+5, - XED_IFORM_IMUL_GPRv_MEMv=(XED_ICLASS_IMUL<<8)+6, - XED_IFORM_IMUL_GPRv=(XED_ICLASS_IMUL<<8)+7, - XED_IFORM_IN_OeAX_DX=(XED_ICLASS_IN<<8)+0, - XED_IFORM_IN_OeAX_IMM=(XED_ICLASS_IN<<8)+1, - XED_IFORM_IN_AL_IMM=(XED_ICLASS_IN<<8)+2, - XED_IFORM_IN_AL_DX=(XED_ICLASS_IN<<8)+3, - XED_IFORM_INC_MEMb=(XED_ICLASS_INC<<8)+0, - XED_IFORM_INC_MEMv=(XED_ICLASS_INC<<8)+1, - XED_IFORM_INC_GPRv=(XED_ICLASS_INC<<8)+2, - XED_IFORM_INC_GPR8=(XED_ICLASS_INC<<8)+3, - XED_IFORM_INSB=(XED_ICLASS_INSB<<8)+0, - XED_IFORM_INSD=(XED_ICLASS_INSD<<8)+0, - XED_IFORM_INSERTPS_XMMps_XMMps_IMM=(XED_ICLASS_INSERTPS<<8)+0, - XED_IFORM_INSERTPS_XMMps_MEMd_IMM=(XED_ICLASS_INSERTPS<<8)+1, - XED_IFORM_INSERTQ_XMMq_XMMdq=(XED_ICLASS_INSERTQ<<8)+0, - XED_IFORM_INSERTQ_XMMq_XMMq_IMM_IMM=(XED_ICLASS_INSERTQ<<8)+1, - XED_IFORM_INSW=(XED_ICLASS_INSW<<8)+0, - XED_IFORM_INT_IMM=(XED_ICLASS_INT<<8)+0, - XED_IFORM_INT1=(XED_ICLASS_INT1<<8)+0, - XED_IFORM_INT3=(XED_ICLASS_INT3<<8)+0, - XED_IFORM_INTO=(XED_ICLASS_INTO<<8)+0, - XED_IFORM_INVD=(XED_ICLASS_INVD<<8)+0, - XED_IFORM_INVLPG_MEMb=(XED_ICLASS_INVLPG<<8)+0, - XED_IFORM_INVLPGA_OrAX_ECX=(XED_ICLASS_INVLPGA<<8)+0, - XED_IFORM_IRET=(XED_ICLASS_IRET<<8)+0, - XED_IFORM_IRETD=(XED_ICLASS_IRETD<<8)+0, - XED_IFORM_IRETQ=(XED_ICLASS_IRETQ<<8)+0, - XED_IFORM_JB_RELBR=(XED_ICLASS_JB<<8)+0, - XED_IFORM_JBE_RELBR=(XED_ICLASS_JBE<<8)+0, - XED_IFORM_JL_RELBR=(XED_ICLASS_JL<<8)+0, - XED_IFORM_JLE_RELBR=(XED_ICLASS_JLE<<8)+0, - XED_IFORM_JMP_RELBR=(XED_ICLASS_JMP<<8)+0, - XED_IFORM_JMP_MEMv=(XED_ICLASS_JMP<<8)+1, - XED_IFORM_JMP_GPRv=(XED_ICLASS_JMP<<8)+2, - XED_IFORM_JMP_FAR_PTR_IMM=(XED_ICLASS_JMP_FAR<<8)+0, - XED_IFORM_JMP_FAR_MEMp=(XED_ICLASS_JMP_FAR<<8)+1, - XED_IFORM_JNB_RELBR=(XED_ICLASS_JNB<<8)+0, - XED_IFORM_JNBE_RELBR=(XED_ICLASS_JNBE<<8)+0, - XED_IFORM_JNL_RELBR=(XED_ICLASS_JNL<<8)+0, - XED_IFORM_JNLE_RELBR=(XED_ICLASS_JNLE<<8)+0, - XED_IFORM_JNO_RELBR=(XED_ICLASS_JNO<<8)+0, - XED_IFORM_JNP_RELBR=(XED_ICLASS_JNP<<8)+0, - XED_IFORM_JNS_RELBR=(XED_ICLASS_JNS<<8)+0, - XED_IFORM_JNZ_RELBR=(XED_ICLASS_JNZ<<8)+0, - XED_IFORM_JO_RELBR=(XED_ICLASS_JO<<8)+0, - XED_IFORM_JP_RELBR=(XED_ICLASS_JP<<8)+0, - XED_IFORM_JRCXZ_RELBR=(XED_ICLASS_JRCXZ<<8)+0, - XED_IFORM_JS_RELBR=(XED_ICLASS_JS<<8)+0, - XED_IFORM_JZ_RELBR=(XED_ICLASS_JZ<<8)+0, - XED_IFORM_LAHF=(XED_ICLASS_LAHF<<8)+0, - XED_IFORM_LAR_GPRv_GPR16=(XED_ICLASS_LAR<<8)+0, - XED_IFORM_LAR_GPRv_MEMw=(XED_ICLASS_LAR<<8)+1, - XED_IFORM_LDDQU_XMMpd_MEMdq=(XED_ICLASS_LDDQU<<8)+0, - XED_IFORM_LDMXCSR_MEMd=(XED_ICLASS_LDMXCSR<<8)+0, - XED_IFORM_LDS_GPRz_MEMp=(XED_ICLASS_LDS<<8)+0, - XED_IFORM_LEA_GPRv_AGEN=(XED_ICLASS_LEA<<8)+0, - XED_IFORM_LEAVE=(XED_ICLASS_LEAVE<<8)+0, - XED_IFORM_LES_GPRz_MEMp=(XED_ICLASS_LES<<8)+0, - XED_IFORM_LFENCE=(XED_ICLASS_LFENCE<<8)+0, - XED_IFORM_LFS_GPRv_MEMp2=(XED_ICLASS_LFS<<8)+0, - XED_IFORM_LGDT_MEMs=(XED_ICLASS_LGDT<<8)+0, - XED_IFORM_LGS_GPRv_MEMp2=(XED_ICLASS_LGS<<8)+0, - XED_IFORM_LIDT_MEMs=(XED_ICLASS_LIDT<<8)+0, - XED_IFORM_LLDT_MEMw=(XED_ICLASS_LLDT<<8)+0, - XED_IFORM_LLDT_GPR16=(XED_ICLASS_LLDT<<8)+1, - XED_IFORM_LMSW_GPR16=(XED_ICLASS_LMSW<<8)+0, - XED_IFORM_LMSW_MEMw=(XED_ICLASS_LMSW<<8)+1, - XED_IFORM_LODSB=(XED_ICLASS_LODSB<<8)+0, - XED_IFORM_LODSD=(XED_ICLASS_LODSD<<8)+0, - XED_IFORM_LODSQ=(XED_ICLASS_LODSQ<<8)+0, - XED_IFORM_LODSW=(XED_ICLASS_LODSW<<8)+0, - XED_IFORM_LOOP_RELBR=(XED_ICLASS_LOOP<<8)+0, - XED_IFORM_LOOPE_RELBR=(XED_ICLASS_LOOPE<<8)+0, - XED_IFORM_LOOPNE_RELBR=(XED_ICLASS_LOOPNE<<8)+0, - XED_IFORM_LSL_GPRv_GPR16=(XED_ICLASS_LSL<<8)+0, - XED_IFORM_LSL_GPRv_MEMw=(XED_ICLASS_LSL<<8)+1, - XED_IFORM_LSS_GPRv_MEMp2=(XED_ICLASS_LSS<<8)+0, - XED_IFORM_LTR_GPR16=(XED_ICLASS_LTR<<8)+0, - XED_IFORM_LTR_MEMw=(XED_ICLASS_LTR<<8)+1, - XED_IFORM_LZCNT_GPRv_GPRv=(XED_ICLASS_LZCNT<<8)+0, - XED_IFORM_LZCNT_GPRv_MEMv=(XED_ICLASS_LZCNT<<8)+1, - XED_IFORM_MASKMOVDQU_XMMdq_XMMdq=(XED_ICLASS_MASKMOVDQU<<8)+0, - XED_IFORM_MASKMOVQ_MMXq_MMXq=(XED_ICLASS_MASKMOVQ<<8)+0, - XED_IFORM_MAXPD_XMMpd_MEMpd=(XED_ICLASS_MAXPD<<8)+0, - XED_IFORM_MAXPD_XMMpd_XMMpd=(XED_ICLASS_MAXPD<<8)+1, - XED_IFORM_MAXPS_XMMps_XMMps=(XED_ICLASS_MAXPS<<8)+0, - XED_IFORM_MAXPS_XMMps_MEMps=(XED_ICLASS_MAXPS<<8)+1, - XED_IFORM_MAXSD_XMMsd_XMMsd=(XED_ICLASS_MAXSD<<8)+0, - XED_IFORM_MAXSD_XMMsd_MEMsd=(XED_ICLASS_MAXSD<<8)+1, - XED_IFORM_MAXSS_XMMss_MEMss=(XED_ICLASS_MAXSS<<8)+0, - XED_IFORM_MAXSS_XMMss_XMMss=(XED_ICLASS_MAXSS<<8)+1, - XED_IFORM_MFENCE=(XED_ICLASS_MFENCE<<8)+0, - XED_IFORM_MINPD_XMMpd_MEMpd=(XED_ICLASS_MINPD<<8)+0, - XED_IFORM_MINPD_XMMpd_XMMpd=(XED_ICLASS_MINPD<<8)+1, - XED_IFORM_MINPS_XMMps_XMMps=(XED_ICLASS_MINPS<<8)+0, - XED_IFORM_MINPS_XMMps_MEMps=(XED_ICLASS_MINPS<<8)+1, - XED_IFORM_MINSD_XMMsd_XMMsd=(XED_ICLASS_MINSD<<8)+0, - XED_IFORM_MINSD_XMMsd_MEMsd=(XED_ICLASS_MINSD<<8)+1, - XED_IFORM_MINSS_XMMss_MEMss=(XED_ICLASS_MINSS<<8)+0, - XED_IFORM_MINSS_XMMss_XMMss=(XED_ICLASS_MINSS<<8)+1, - XED_IFORM_MONITOR_EAX_ECX_EDX=(XED_ICLASS_MONITOR<<8)+0, - XED_IFORM_MOV_GPRv_GPRv=(XED_ICLASS_MOV<<8)+0, - XED_IFORM_MOV_GPR8_GPR8=(XED_ICLASS_MOV<<8)+1, - XED_IFORM_MOV_GPR8_IMM=(XED_ICLASS_MOV<<8)+2, - XED_IFORM_MOV_GPR8_MEMb=(XED_ICLASS_MOV<<8)+3, - XED_IFORM_MOV_MEMv_GPRv=(XED_ICLASS_MOV<<8)+4, - XED_IFORM_MOV_MEMb_GPR8=(XED_ICLASS_MOV<<8)+5, - XED_IFORM_MOV_MEMv_OrAX=(XED_ICLASS_MOV<<8)+6, - XED_IFORM_MOV_AL_MEMb=(XED_ICLASS_MOV<<8)+7, - XED_IFORM_MOV_MEMb_AL=(XED_ICLASS_MOV<<8)+8, - XED_IFORM_MOV_OrAX_MEMv=(XED_ICLASS_MOV<<8)+9, - XED_IFORM_MOV_MEMw_SEG=(XED_ICLASS_MOV<<8)+10, - XED_IFORM_MOV_GPRv_MEMv=(XED_ICLASS_MOV<<8)+11, - XED_IFORM_MOV_SEG_MEMw=(XED_ICLASS_MOV<<8)+12, - XED_IFORM_MOV_MEMv_IMM=(XED_ICLASS_MOV<<8)+13, - XED_IFORM_MOV_SEG_GPR16=(XED_ICLASS_MOV<<8)+14, - XED_IFORM_MOV_GPRv_IMM=(XED_ICLASS_MOV<<8)+15, - XED_IFORM_MOV_MEMb_IMM=(XED_ICLASS_MOV<<8)+16, - XED_IFORM_MOV_GPRv_SEG=(XED_ICLASS_MOV<<8)+17, - XED_IFORM_MOVAPD_XMMpd_MEMpd=(XED_ICLASS_MOVAPD<<8)+0, - XED_IFORM_MOVAPD_XMMpd_XMMpd=(XED_ICLASS_MOVAPD<<8)+1, - XED_IFORM_MOVAPD_MEMpd_XMMpd=(XED_ICLASS_MOVAPD<<8)+2, - XED_IFORM_MOVAPS_XMMps_XMMps=(XED_ICLASS_MOVAPS<<8)+0, - XED_IFORM_MOVAPS_XMMps_MEMps=(XED_ICLASS_MOVAPS<<8)+1, - XED_IFORM_MOVAPS_MEMps_XMMps=(XED_ICLASS_MOVAPS<<8)+2, - XED_IFORM_MOVD_MEMd_XMMd=(XED_ICLASS_MOVD<<8)+0, - XED_IFORM_MOVD_GPR32_MMXd=(XED_ICLASS_MOVD<<8)+1, - XED_IFORM_MOVD_MMXq_MEMd=(XED_ICLASS_MOVD<<8)+2, - XED_IFORM_MOVD_XMMdq_MEMd=(XED_ICLASS_MOVD<<8)+3, - XED_IFORM_MOVD_XMMdq_GPR32=(XED_ICLASS_MOVD<<8)+4, - XED_IFORM_MOVD_GPR32_XMMd=(XED_ICLASS_MOVD<<8)+5, - XED_IFORM_MOVD_MMXq_GPR32=(XED_ICLASS_MOVD<<8)+6, - XED_IFORM_MOVD_MEMd_MMXd=(XED_ICLASS_MOVD<<8)+7, - XED_IFORM_MOVDDUP_XMMq_XMMq=(XED_ICLASS_MOVDDUP<<8)+0, - XED_IFORM_MOVDDUP_XMMq_MEMq=(XED_ICLASS_MOVDDUP<<8)+1, - XED_IFORM_MOVDQ2Q_MMXq_XMMq=(XED_ICLASS_MOVDQ2Q<<8)+0, - XED_IFORM_MOVDQA_XMMdq_XMMdq=(XED_ICLASS_MOVDQA<<8)+0, - XED_IFORM_MOVDQA_XMMdq_MEMdq=(XED_ICLASS_MOVDQA<<8)+1, - XED_IFORM_MOVDQA_MEMdq_XMMdq=(XED_ICLASS_MOVDQA<<8)+2, - XED_IFORM_MOVDQU_MEMdq_XMMdq=(XED_ICLASS_MOVDQU<<8)+0, - XED_IFORM_MOVDQU_XMMdq_XMMdq=(XED_ICLASS_MOVDQU<<8)+1, - XED_IFORM_MOVDQU_XMMdq_MEMdq=(XED_ICLASS_MOVDQU<<8)+2, - XED_IFORM_MOVHLPS_XMMq_XMMq=(XED_ICLASS_MOVHLPS<<8)+0, - XED_IFORM_MOVHPD_MEMq_XMMsd=(XED_ICLASS_MOVHPD<<8)+0, - XED_IFORM_MOVHPD_XMMsd_MEMq=(XED_ICLASS_MOVHPD<<8)+1, - XED_IFORM_MOVHPS_MEMq_XMMps=(XED_ICLASS_MOVHPS<<8)+0, - XED_IFORM_MOVHPS_XMMq_MEMq=(XED_ICLASS_MOVHPS<<8)+1, - XED_IFORM_MOVLHPS_XMMq_XMMq=(XED_ICLASS_MOVLHPS<<8)+0, - XED_IFORM_MOVLPD_XMMsd_MEMq=(XED_ICLASS_MOVLPD<<8)+0, - XED_IFORM_MOVLPD_MEMq_XMMsd=(XED_ICLASS_MOVLPD<<8)+1, - XED_IFORM_MOVLPS_MEMq_XMMps=(XED_ICLASS_MOVLPS<<8)+0, - XED_IFORM_MOVLPS_XMMq_MEMq=(XED_ICLASS_MOVLPS<<8)+1, - XED_IFORM_MOVMSKPD_GPR32_XMMpd=(XED_ICLASS_MOVMSKPD<<8)+0, - XED_IFORM_MOVMSKPS_GPR32_XMMps=(XED_ICLASS_MOVMSKPS<<8)+0, - XED_IFORM_MOVNTDQ_MEMdq_XMMdq=(XED_ICLASS_MOVNTDQ<<8)+0, - XED_IFORM_MOVNTDQA_XMMdq_MEMdq=(XED_ICLASS_MOVNTDQA<<8)+0, - XED_IFORM_MOVNTI_MEMq_GPR64=(XED_ICLASS_MOVNTI<<8)+0, - XED_IFORM_MOVNTI_MEMd_GPR32=(XED_ICLASS_MOVNTI<<8)+1, - XED_IFORM_MOVNTPD_MEMdq_XMMpd=(XED_ICLASS_MOVNTPD<<8)+0, - XED_IFORM_MOVNTPS_MEMdq_XMMps=(XED_ICLASS_MOVNTPS<<8)+0, - XED_IFORM_MOVNTQ_MEMq_MMXq=(XED_ICLASS_MOVNTQ<<8)+0, - XED_IFORM_MOVNTSD_MEMq_XMMq=(XED_ICLASS_MOVNTSD<<8)+0, - XED_IFORM_MOVNTSS_MEMd_XMMd=(XED_ICLASS_MOVNTSS<<8)+0, - XED_IFORM_MOVQ_MMXq_MMXq=(XED_ICLASS_MOVQ<<8)+0, - XED_IFORM_MOVQ_XMMdq_GPR64=(XED_ICLASS_MOVQ<<8)+1, - XED_IFORM_MOVQ_GPR64_MMXq=(XED_ICLASS_MOVQ<<8)+2, - XED_IFORM_MOVQ_MEMq_XMMq=(XED_ICLASS_MOVQ<<8)+3, - XED_IFORM_MOVQ_MMXq_GPR64=(XED_ICLASS_MOVQ<<8)+4, - XED_IFORM_MOVQ_MMXq_MEMq=(XED_ICLASS_MOVQ<<8)+5, - XED_IFORM_MOVQ_XMMdq_MEMq=(XED_ICLASS_MOVQ<<8)+6, - XED_IFORM_MOVQ_XMMdq_XMMq=(XED_ICLASS_MOVQ<<8)+7, - XED_IFORM_MOVQ_GPR64_XMMq=(XED_ICLASS_MOVQ<<8)+8, - XED_IFORM_MOVQ_MEMq_MMXq=(XED_ICLASS_MOVQ<<8)+9, - XED_IFORM_MOVQ2DQ_XMMdq_MMXq=(XED_ICLASS_MOVQ2DQ<<8)+0, - XED_IFORM_MOVSB=(XED_ICLASS_MOVSB<<8)+0, - XED_IFORM_MOVSD=(XED_ICLASS_MOVSD<<8)+0, - XED_IFORM_MOVSD_XMM_XMMsd_XMMsd=(XED_ICLASS_MOVSD_XMM<<8)+0, - XED_IFORM_MOVSD_XMM_MEMsd_XMMsd=(XED_ICLASS_MOVSD_XMM<<8)+1, - XED_IFORM_MOVSD_XMM_XMMdq_MEMsd=(XED_ICLASS_MOVSD_XMM<<8)+2, - XED_IFORM_MOVSHDUP_XMMps_XMMps=(XED_ICLASS_MOVSHDUP<<8)+0, - XED_IFORM_MOVSHDUP_XMMps_MEMps=(XED_ICLASS_MOVSHDUP<<8)+1, - XED_IFORM_MOVSLDUP_XMMps_XMMps=(XED_ICLASS_MOVSLDUP<<8)+0, - XED_IFORM_MOVSLDUP_XMMps_MEMps=(XED_ICLASS_MOVSLDUP<<8)+1, - XED_IFORM_MOVSQ=(XED_ICLASS_MOVSQ<<8)+0, - XED_IFORM_MOVSS_MEMss_XMMss=(XED_ICLASS_MOVSS<<8)+0, - XED_IFORM_MOVSS_XMMss_XMMss=(XED_ICLASS_MOVSS<<8)+1, - XED_IFORM_MOVSS_XMMdq_MEMss=(XED_ICLASS_MOVSS<<8)+2, - XED_IFORM_MOVSW=(XED_ICLASS_MOVSW<<8)+0, - XED_IFORM_MOVSX_GPRv_GPR16=(XED_ICLASS_MOVSX<<8)+0, - XED_IFORM_MOVSX_GPRv_MEMb=(XED_ICLASS_MOVSX<<8)+1, - XED_IFORM_MOVSX_GPRv_GPR8=(XED_ICLASS_MOVSX<<8)+2, - XED_IFORM_MOVSX_GPRv_MEMw=(XED_ICLASS_MOVSX<<8)+3, - XED_IFORM_MOVSXD_GPRv_MEMd=(XED_ICLASS_MOVSXD<<8)+0, - XED_IFORM_MOVSXD_GPRv_GPR32=(XED_ICLASS_MOVSXD<<8)+1, - XED_IFORM_MOVUPD_MEMpd_XMMpd=(XED_ICLASS_MOVUPD<<8)+0, - XED_IFORM_MOVUPD_XMMpd_MEMpd=(XED_ICLASS_MOVUPD<<8)+1, - XED_IFORM_MOVUPD_XMMpd_XMMpd=(XED_ICLASS_MOVUPD<<8)+2, - XED_IFORM_MOVUPS_MEMps_XMMps=(XED_ICLASS_MOVUPS<<8)+0, - XED_IFORM_MOVUPS_XMMps_XMMps=(XED_ICLASS_MOVUPS<<8)+1, - XED_IFORM_MOVUPS_XMMps_MEMps=(XED_ICLASS_MOVUPS<<8)+2, - XED_IFORM_MOVZX_GPRv_MEMb=(XED_ICLASS_MOVZX<<8)+0, - XED_IFORM_MOVZX_GPRv_GPR16=(XED_ICLASS_MOVZX<<8)+1, - XED_IFORM_MOVZX_GPRv_MEMw=(XED_ICLASS_MOVZX<<8)+2, - XED_IFORM_MOVZX_GPRv_GPR8=(XED_ICLASS_MOVZX<<8)+3, - XED_IFORM_MOV_CR_CR_GPR32=(XED_ICLASS_MOV_CR<<8)+0, - XED_IFORM_MOV_CR_GPR64_CR=(XED_ICLASS_MOV_CR<<8)+1, - XED_IFORM_MOV_CR_GPR32_CR=(XED_ICLASS_MOV_CR<<8)+2, - XED_IFORM_MOV_CR_CR_GPR64=(XED_ICLASS_MOV_CR<<8)+3, - XED_IFORM_MOV_DR_GPR64_DR=(XED_ICLASS_MOV_DR<<8)+0, - XED_IFORM_MOV_DR_DR_GPR32=(XED_ICLASS_MOV_DR<<8)+1, - XED_IFORM_MOV_DR_GPR32_DR=(XED_ICLASS_MOV_DR<<8)+2, - XED_IFORM_MOV_DR_DR_GPR64=(XED_ICLASS_MOV_DR<<8)+3, - XED_IFORM_MPSADBW_XMMdq_XMMdq_IMM=(XED_ICLASS_MPSADBW<<8)+0, - XED_IFORM_MPSADBW_XMMdq_MEMdq_IMM=(XED_ICLASS_MPSADBW<<8)+1, - XED_IFORM_MUL_MEMb=(XED_ICLASS_MUL<<8)+0, - XED_IFORM_MUL_GPRv=(XED_ICLASS_MUL<<8)+1, - XED_IFORM_MUL_GPR8=(XED_ICLASS_MUL<<8)+2, - XED_IFORM_MUL_MEMv=(XED_ICLASS_MUL<<8)+3, - XED_IFORM_MULPD_XMMpd_MEMpd=(XED_ICLASS_MULPD<<8)+0, - XED_IFORM_MULPD_XMMpd_XMMpd=(XED_ICLASS_MULPD<<8)+1, - XED_IFORM_MULPS_XMMps_XMMps=(XED_ICLASS_MULPS<<8)+0, - XED_IFORM_MULPS_XMMps_MEMps=(XED_ICLASS_MULPS<<8)+1, - XED_IFORM_MULSD_XMMsd_XMMsd=(XED_ICLASS_MULSD<<8)+0, - XED_IFORM_MULSD_XMMsd_MEMsd=(XED_ICLASS_MULSD<<8)+1, - XED_IFORM_MULSS_XMMss_MEMss=(XED_ICLASS_MULSS<<8)+0, - XED_IFORM_MULSS_XMMss_XMMss=(XED_ICLASS_MULSS<<8)+1, - XED_IFORM_MWAIT_EAX_ECX=(XED_ICLASS_MWAIT<<8)+0, - XED_IFORM_NEG_GPR8=(XED_ICLASS_NEG<<8)+0, - XED_IFORM_NEG_GPRv=(XED_ICLASS_NEG<<8)+1, - XED_IFORM_NEG_MEMb=(XED_ICLASS_NEG<<8)+2, - XED_IFORM_NEG_MEMv=(XED_ICLASS_NEG<<8)+3, - XED_IFORM_NOP=(XED_ICLASS_NOP<<8)+0, - XED_IFORM_NOP_GPRv_GPRv=(XED_ICLASS_NOP<<8)+1, - XED_IFORM_NOP_MEMv_GPRv=(XED_ICLASS_NOP<<8)+2, - XED_IFORM_NOT_MEMv=(XED_ICLASS_NOT<<8)+0, - XED_IFORM_NOT_GPRv=(XED_ICLASS_NOT<<8)+1, - XED_IFORM_NOT_GPR8=(XED_ICLASS_NOT<<8)+2, - XED_IFORM_NOT_MEMb=(XED_ICLASS_NOT<<8)+3, - XED_IFORM_OR_GPRv_MEMv=(XED_ICLASS_OR<<8)+0, - XED_IFORM_OR_GPRv_GPRv=(XED_ICLASS_OR<<8)+1, - XED_IFORM_OR_MEMv_IMM=(XED_ICLASS_OR<<8)+2, - XED_IFORM_OR_GPR8_GPR8=(XED_ICLASS_OR<<8)+3, - XED_IFORM_OR_MEMb_IMM=(XED_ICLASS_OR<<8)+4, - XED_IFORM_OR_MEMv_GPRv=(XED_ICLASS_OR<<8)+5, - XED_IFORM_OR_GPRv_IMM=(XED_ICLASS_OR<<8)+6, - XED_IFORM_OR_MEMb_GPR8=(XED_ICLASS_OR<<8)+7, - XED_IFORM_OR_GPR8_IMM=(XED_ICLASS_OR<<8)+8, - XED_IFORM_OR_AL_IMM=(XED_ICLASS_OR<<8)+9, - XED_IFORM_OR_GPR8_MEMb=(XED_ICLASS_OR<<8)+10, - XED_IFORM_OR_OrAX_IMM=(XED_ICLASS_OR<<8)+11, - XED_IFORM_ORPD_XMMpd_MEMpd=(XED_ICLASS_ORPD<<8)+0, - XED_IFORM_ORPD_XMMpd_XMMpd=(XED_ICLASS_ORPD<<8)+1, - XED_IFORM_ORPS_XMMps_XMMps=(XED_ICLASS_ORPS<<8)+0, - XED_IFORM_ORPS_XMMps_MEMps=(XED_ICLASS_ORPS<<8)+1, - XED_IFORM_OUT_IMM_AL=(XED_ICLASS_OUT<<8)+0, - XED_IFORM_OUT_DX_AL=(XED_ICLASS_OUT<<8)+1, - XED_IFORM_OUT_IMM_OeAX=(XED_ICLASS_OUT<<8)+2, - XED_IFORM_OUT_DX_OeAX=(XED_ICLASS_OUT<<8)+3, - XED_IFORM_OUTSB=(XED_ICLASS_OUTSB<<8)+0, - XED_IFORM_OUTSD=(XED_ICLASS_OUTSD<<8)+0, - XED_IFORM_OUTSW=(XED_ICLASS_OUTSW<<8)+0, - XED_IFORM_PABSB_MMXq_MEMq=(XED_ICLASS_PABSB<<8)+0, - XED_IFORM_PABSB_XMMdq_MEMdq=(XED_ICLASS_PABSB<<8)+1, - XED_IFORM_PABSB_MMXq_MMXq=(XED_ICLASS_PABSB<<8)+2, - XED_IFORM_PABSB_XMMdq_XMMdq=(XED_ICLASS_PABSB<<8)+3, - XED_IFORM_PABSD_MMXq_MEMq=(XED_ICLASS_PABSD<<8)+0, - XED_IFORM_PABSD_MMXq_MMXq=(XED_ICLASS_PABSD<<8)+1, - XED_IFORM_PABSD_XMMdq_MEMdq=(XED_ICLASS_PABSD<<8)+2, - XED_IFORM_PABSD_XMMdq_XMMdq=(XED_ICLASS_PABSD<<8)+3, - XED_IFORM_PABSW_XMMdq_MEMdq=(XED_ICLASS_PABSW<<8)+0, - XED_IFORM_PABSW_MMXq_MMXq=(XED_ICLASS_PABSW<<8)+1, - XED_IFORM_PABSW_XMMdq_XMMdq=(XED_ICLASS_PABSW<<8)+2, - XED_IFORM_PABSW_MMXq_MEMq=(XED_ICLASS_PABSW<<8)+3, - XED_IFORM_PACKSSDW_XMMdq_MEMdq=(XED_ICLASS_PACKSSDW<<8)+0, - XED_IFORM_PACKSSDW_MMXq_MEMq=(XED_ICLASS_PACKSSDW<<8)+1, - XED_IFORM_PACKSSDW_MMXq_MMXq=(XED_ICLASS_PACKSSDW<<8)+2, - XED_IFORM_PACKSSDW_XMMdq_XMMdq=(XED_ICLASS_PACKSSDW<<8)+3, - XED_IFORM_PACKSSWB_MMXq_MMXq=(XED_ICLASS_PACKSSWB<<8)+0, - XED_IFORM_PACKSSWB_XMMdq_MEMdq=(XED_ICLASS_PACKSSWB<<8)+1, - XED_IFORM_PACKSSWB_XMMdq_XMMdq=(XED_ICLASS_PACKSSWB<<8)+2, - XED_IFORM_PACKSSWB_MMXq_MEMq=(XED_ICLASS_PACKSSWB<<8)+3, - XED_IFORM_PACKUSDW_XMMdq_XMMdq=(XED_ICLASS_PACKUSDW<<8)+0, - XED_IFORM_PACKUSDW_XMMdq_MEMdq=(XED_ICLASS_PACKUSDW<<8)+1, - XED_IFORM_PACKUSWB_XMMdq_XMMdq=(XED_ICLASS_PACKUSWB<<8)+0, - XED_IFORM_PACKUSWB_XMMdq_MEMdq=(XED_ICLASS_PACKUSWB<<8)+1, - XED_IFORM_PACKUSWB_MMXq_MEMq=(XED_ICLASS_PACKUSWB<<8)+2, - XED_IFORM_PACKUSWB_MMXq_MMXq=(XED_ICLASS_PACKUSWB<<8)+3, - XED_IFORM_PADDB_XMMdq_XMMdq=(XED_ICLASS_PADDB<<8)+0, - XED_IFORM_PADDB_XMMdq_MEMdq=(XED_ICLASS_PADDB<<8)+1, - XED_IFORM_PADDB_MMXq_MMXq=(XED_ICLASS_PADDB<<8)+2, - XED_IFORM_PADDB_MMXq_MEMq=(XED_ICLASS_PADDB<<8)+3, - XED_IFORM_PADDD_XMMdq_MEMdq=(XED_ICLASS_PADDD<<8)+0, - XED_IFORM_PADDD_MMXq_MMXq=(XED_ICLASS_PADDD<<8)+1, - XED_IFORM_PADDD_XMMdq_XMMdq=(XED_ICLASS_PADDD<<8)+2, - XED_IFORM_PADDD_MMXq_MEMq=(XED_ICLASS_PADDD<<8)+3, - XED_IFORM_PADDQ_MMXq_MEMq=(XED_ICLASS_PADDQ<<8)+0, - XED_IFORM_PADDQ_XMMdq_MEMdq=(XED_ICLASS_PADDQ<<8)+1, - XED_IFORM_PADDQ_MMXq_MMXq=(XED_ICLASS_PADDQ<<8)+2, - XED_IFORM_PADDQ_XMMdq_XMMdq=(XED_ICLASS_PADDQ<<8)+3, - XED_IFORM_PADDSB_XMMdq_XMMdq=(XED_ICLASS_PADDSB<<8)+0, - XED_IFORM_PADDSB_XMMdq_MEMdq=(XED_ICLASS_PADDSB<<8)+1, - XED_IFORM_PADDSB_MMXq_MMXq=(XED_ICLASS_PADDSB<<8)+2, - XED_IFORM_PADDSB_MMXq_MEMq=(XED_ICLASS_PADDSB<<8)+3, - XED_IFORM_PADDSW_MMXq_MEMq=(XED_ICLASS_PADDSW<<8)+0, - XED_IFORM_PADDSW_MMXq_MMXq=(XED_ICLASS_PADDSW<<8)+1, - XED_IFORM_PADDSW_XMMdq_MEMdq=(XED_ICLASS_PADDSW<<8)+2, - XED_IFORM_PADDSW_XMMdq_XMMdq=(XED_ICLASS_PADDSW<<8)+3, - XED_IFORM_PADDUSB_XMMdq_XMMdq=(XED_ICLASS_PADDUSB<<8)+0, - XED_IFORM_PADDUSB_MMXq_MEMq=(XED_ICLASS_PADDUSB<<8)+1, - XED_IFORM_PADDUSB_MMXq_MMXq=(XED_ICLASS_PADDUSB<<8)+2, - XED_IFORM_PADDUSB_XMMdq_MEMdq=(XED_ICLASS_PADDUSB<<8)+3, - XED_IFORM_PADDUSW_XMMdq_MEMdq=(XED_ICLASS_PADDUSW<<8)+0, - XED_IFORM_PADDUSW_MMXq_MMXq=(XED_ICLASS_PADDUSW<<8)+1, - XED_IFORM_PADDUSW_MMXq_MEMq=(XED_ICLASS_PADDUSW<<8)+2, - XED_IFORM_PADDUSW_XMMdq_XMMdq=(XED_ICLASS_PADDUSW<<8)+3, - XED_IFORM_PADDW_MMXq_MEMq=(XED_ICLASS_PADDW<<8)+0, - XED_IFORM_PADDW_MMXq_MMXq=(XED_ICLASS_PADDW<<8)+1, - XED_IFORM_PADDW_XMMdq_MEMdq=(XED_ICLASS_PADDW<<8)+2, - XED_IFORM_PADDW_XMMdq_XMMdq=(XED_ICLASS_PADDW<<8)+3, - XED_IFORM_PALIGNR_XMMdq_XMMdq_IMM=(XED_ICLASS_PALIGNR<<8)+0, - XED_IFORM_PALIGNR_MMXq_MEMq_IMM=(XED_ICLASS_PALIGNR<<8)+1, - XED_IFORM_PALIGNR_MMXq_MMXq_IMM=(XED_ICLASS_PALIGNR<<8)+2, - XED_IFORM_PALIGNR_XMMdq_MEMdq_IMM=(XED_ICLASS_PALIGNR<<8)+3, - XED_IFORM_PAND_MMXq_MMXq=(XED_ICLASS_PAND<<8)+0, - XED_IFORM_PAND_MMXq_MEMq=(XED_ICLASS_PAND<<8)+1, - XED_IFORM_PAND_XMMdq_XMMdq=(XED_ICLASS_PAND<<8)+2, - XED_IFORM_PAND_XMMdq_MEMdq=(XED_ICLASS_PAND<<8)+3, - XED_IFORM_PANDN_XMMdq_MEMdq=(XED_ICLASS_PANDN<<8)+0, - XED_IFORM_PANDN_MMXq_MMXq=(XED_ICLASS_PANDN<<8)+1, - XED_IFORM_PANDN_XMMdq_XMMdq=(XED_ICLASS_PANDN<<8)+2, - XED_IFORM_PANDN_MMXq_MEMq=(XED_ICLASS_PANDN<<8)+3, - XED_IFORM_PAUSE=(XED_ICLASS_PAUSE<<8)+0, - XED_IFORM_PAVGB_XMMdq_MEMdq=(XED_ICLASS_PAVGB<<8)+0, - XED_IFORM_PAVGB_MMXq_MEMq=(XED_ICLASS_PAVGB<<8)+1, - XED_IFORM_PAVGB_XMMdq_XMMdq=(XED_ICLASS_PAVGB<<8)+2, - XED_IFORM_PAVGB_MMXq_MMXq=(XED_ICLASS_PAVGB<<8)+3, - XED_IFORM_PAVGUSB_MMXq_MEMq=(XED_ICLASS_PAVGUSB<<8)+0, - XED_IFORM_PAVGUSB_MMXq_MMXq=(XED_ICLASS_PAVGUSB<<8)+1, - XED_IFORM_PAVGW_XMMdq_MEMdq=(XED_ICLASS_PAVGW<<8)+0, - XED_IFORM_PAVGW_MMXq_MMXq=(XED_ICLASS_PAVGW<<8)+1, - XED_IFORM_PAVGW_XMMdq_XMMdq=(XED_ICLASS_PAVGW<<8)+2, - XED_IFORM_PAVGW_MMXq_MEMq=(XED_ICLASS_PAVGW<<8)+3, - XED_IFORM_PBLENDVB_XMMdq_XMMdq_XMM0dq=(XED_ICLASS_PBLENDVB<<8)+0, - XED_IFORM_PBLENDVB_XMMdq_MEMdq_XMM0dq=(XED_ICLASS_PBLENDVB<<8)+1, - XED_IFORM_PBLENDW_XMMdq_MEMdq_IMM=(XED_ICLASS_PBLENDW<<8)+0, - XED_IFORM_PBLENDW_XMMdq_XMMdq_IMM=(XED_ICLASS_PBLENDW<<8)+1, - XED_IFORM_PCMPEQB_XMMdq_MEMdq=(XED_ICLASS_PCMPEQB<<8)+0, - XED_IFORM_PCMPEQB_MMXq_MMXq=(XED_ICLASS_PCMPEQB<<8)+1, - XED_IFORM_PCMPEQB_MMXq_MEMq=(XED_ICLASS_PCMPEQB<<8)+2, - XED_IFORM_PCMPEQB_XMMdq_XMMdq=(XED_ICLASS_PCMPEQB<<8)+3, - XED_IFORM_PCMPEQD_XMMdq_MEMdq=(XED_ICLASS_PCMPEQD<<8)+0, - XED_IFORM_PCMPEQD_XMMdq_XMMdq=(XED_ICLASS_PCMPEQD<<8)+1, - XED_IFORM_PCMPEQD_MMXq_MMXq=(XED_ICLASS_PCMPEQD<<8)+2, - XED_IFORM_PCMPEQD_MMXq_MEMq=(XED_ICLASS_PCMPEQD<<8)+3, - XED_IFORM_PCMPEQQ_XMMdq_XMMdq=(XED_ICLASS_PCMPEQQ<<8)+0, - XED_IFORM_PCMPEQQ_XMMdq_MEMdq=(XED_ICLASS_PCMPEQQ<<8)+1, - XED_IFORM_PCMPEQW_XMMdq_XMMdq=(XED_ICLASS_PCMPEQW<<8)+0, - XED_IFORM_PCMPEQW_MMXq_MEMq=(XED_ICLASS_PCMPEQW<<8)+1, - XED_IFORM_PCMPEQW_MMXq_MMXq=(XED_ICLASS_PCMPEQW<<8)+2, - XED_IFORM_PCMPEQW_XMMdq_MEMdq=(XED_ICLASS_PCMPEQW<<8)+3, - XED_IFORM_PCMPESTRI_XMMdq_XMMdq_IMM=(XED_ICLASS_PCMPESTRI<<8)+0, - XED_IFORM_PCMPESTRI_XMMdq_MEMdq_IMM=(XED_ICLASS_PCMPESTRI<<8)+1, - XED_IFORM_PCMPESTRM_XMMdq_MEMdq_IMM=(XED_ICLASS_PCMPESTRM<<8)+0, - XED_IFORM_PCMPESTRM_XMMdq_XMMdq_IMM=(XED_ICLASS_PCMPESTRM<<8)+1, - XED_IFORM_PCMPGTB_MMXq_MMXq=(XED_ICLASS_PCMPGTB<<8)+0, - XED_IFORM_PCMPGTB_XMMdq_MEMdq=(XED_ICLASS_PCMPGTB<<8)+1, - XED_IFORM_PCMPGTB_XMMdq_XMMdq=(XED_ICLASS_PCMPGTB<<8)+2, - XED_IFORM_PCMPGTB_MMXq_MEMq=(XED_ICLASS_PCMPGTB<<8)+3, - XED_IFORM_PCMPGTD_XMMdq_XMMdq=(XED_ICLASS_PCMPGTD<<8)+0, - XED_IFORM_PCMPGTD_XMMdq_MEMdq=(XED_ICLASS_PCMPGTD<<8)+1, - XED_IFORM_PCMPGTD_MMXq_MEMq=(XED_ICLASS_PCMPGTD<<8)+2, - XED_IFORM_PCMPGTD_MMXq_MMXq=(XED_ICLASS_PCMPGTD<<8)+3, - XED_IFORM_PCMPGTQ_XMMdq_MEMdq=(XED_ICLASS_PCMPGTQ<<8)+0, - XED_IFORM_PCMPGTQ_XMMdq_XMMdq=(XED_ICLASS_PCMPGTQ<<8)+1, - XED_IFORM_PCMPGTW_MMXq_MMXq=(XED_ICLASS_PCMPGTW<<8)+0, - XED_IFORM_PCMPGTW_MMXq_MEMq=(XED_ICLASS_PCMPGTW<<8)+1, - XED_IFORM_PCMPGTW_XMMdq_XMMdq=(XED_ICLASS_PCMPGTW<<8)+2, - XED_IFORM_PCMPGTW_XMMdq_MEMdq=(XED_ICLASS_PCMPGTW<<8)+3, - XED_IFORM_PCMPISTRI_XMMdq_MEMdq_IMM=(XED_ICLASS_PCMPISTRI<<8)+0, - XED_IFORM_PCMPISTRI_XMMdq_XMMdq_IMM=(XED_ICLASS_PCMPISTRI<<8)+1, - XED_IFORM_PCMPISTRM_XMMdq_XMMdq_IMM=(XED_ICLASS_PCMPISTRM<<8)+0, - XED_IFORM_PCMPISTRM_XMMdq_MEMdq_IMM=(XED_ICLASS_PCMPISTRM<<8)+1, - XED_IFORM_PEXTRB_MEMb_XMMdq_IMM=(XED_ICLASS_PEXTRB<<8)+0, - XED_IFORM_PEXTRB_GPR32d_XMMdq_IMM=(XED_ICLASS_PEXTRB<<8)+1, - XED_IFORM_PEXTRD_MEMd_XMMdq_IMM=(XED_ICLASS_PEXTRD<<8)+0, - XED_IFORM_PEXTRD_GPR32d_XMMdq_IMM=(XED_ICLASS_PEXTRD<<8)+1, - XED_IFORM_PEXTRQ_MEMq_XMMdq_IMM=(XED_ICLASS_PEXTRQ<<8)+0, - XED_IFORM_PEXTRQ_GPR64q_XMMdq_IMM=(XED_ICLASS_PEXTRQ<<8)+1, - XED_IFORM_PEXTRW_GPRy_XMMdq_IMM=(XED_ICLASS_PEXTRW<<8)+0, - XED_IFORM_PEXTRW_MEMw_XMMdq_IMM=(XED_ICLASS_PEXTRW<<8)+1, - XED_IFORM_PEXTRW_GPRy_MMXq_IMM=(XED_ICLASS_PEXTRW<<8)+2, - XED_IFORM_PEXTRW_GPR32d_XMMdq_IMM=(XED_ICLASS_PEXTRW<<8)+3, - XED_IFORM_PF2ID_MMXq_MMXq=(XED_ICLASS_PF2ID<<8)+0, - XED_IFORM_PF2ID_MMXq_MEMq=(XED_ICLASS_PF2ID<<8)+1, - XED_IFORM_PF2IW_MMXq_MEMq=(XED_ICLASS_PF2IW<<8)+0, - XED_IFORM_PF2IW_MMXq_MMXq=(XED_ICLASS_PF2IW<<8)+1, - XED_IFORM_PFACC_MMXq_MEMq=(XED_ICLASS_PFACC<<8)+0, - XED_IFORM_PFACC_MMXq_MMXq=(XED_ICLASS_PFACC<<8)+1, - XED_IFORM_PFADD_MMXq_MMXq=(XED_ICLASS_PFADD<<8)+0, - XED_IFORM_PFADD_MMXq_MEMq=(XED_ICLASS_PFADD<<8)+1, - XED_IFORM_PFCMPEQ_MMXq_MMXq=(XED_ICLASS_PFCMPEQ<<8)+0, - XED_IFORM_PFCMPEQ_MMXq_MEMq=(XED_ICLASS_PFCMPEQ<<8)+1, - XED_IFORM_PFCMPGE_MMXq_MEMq=(XED_ICLASS_PFCMPGE<<8)+0, - XED_IFORM_PFCMPGE_MMXq_MMXq=(XED_ICLASS_PFCMPGE<<8)+1, - XED_IFORM_PFCMPGT_MMXq_MEMq=(XED_ICLASS_PFCMPGT<<8)+0, - XED_IFORM_PFCMPGT_MMXq_MMXq=(XED_ICLASS_PFCMPGT<<8)+1, - XED_IFORM_PFCPIT1_MMXq_MMXq=(XED_ICLASS_PFCPIT1<<8)+0, - XED_IFORM_PFCPIT1_MMXq_MEMq=(XED_ICLASS_PFCPIT1<<8)+1, - XED_IFORM_PFMAX_MMXq_MEMq=(XED_ICLASS_PFMAX<<8)+0, - XED_IFORM_PFMAX_MMXq_MMXq=(XED_ICLASS_PFMAX<<8)+1, - XED_IFORM_PFMIN_MMXq_MEMq=(XED_ICLASS_PFMIN<<8)+0, - XED_IFORM_PFMIN_MMXq_MMXq=(XED_ICLASS_PFMIN<<8)+1, - XED_IFORM_PFMUL_MMXq_MEMq=(XED_ICLASS_PFMUL<<8)+0, - XED_IFORM_PFMUL_MMXq_MMXq=(XED_ICLASS_PFMUL<<8)+1, - XED_IFORM_PFNACC_MMXq_MEMq=(XED_ICLASS_PFNACC<<8)+0, - XED_IFORM_PFNACC_MMXq_MMXq=(XED_ICLASS_PFNACC<<8)+1, - XED_IFORM_PFPNACC_MMXq_MEMq=(XED_ICLASS_PFPNACC<<8)+0, - XED_IFORM_PFPNACC_MMXq_MMXq=(XED_ICLASS_PFPNACC<<8)+1, - XED_IFORM_PFRCP_MMXq_MMXq=(XED_ICLASS_PFRCP<<8)+0, - XED_IFORM_PFRCP_MMXq_MEMq=(XED_ICLASS_PFRCP<<8)+1, - XED_IFORM_PFRCPIT2_MMXq_MEMq=(XED_ICLASS_PFRCPIT2<<8)+0, - XED_IFORM_PFRCPIT2_MMXq_MMXq=(XED_ICLASS_PFRCPIT2<<8)+1, - XED_IFORM_PFRSQIT1_MMXq_MEMq=(XED_ICLASS_PFRSQIT1<<8)+0, - XED_IFORM_PFRSQIT1_MMXq_MMXq=(XED_ICLASS_PFRSQIT1<<8)+1, - XED_IFORM_PFSQRT_MMXq_MMXq=(XED_ICLASS_PFSQRT<<8)+0, - XED_IFORM_PFSQRT_MMXq_MEMq=(XED_ICLASS_PFSQRT<<8)+1, - XED_IFORM_PFSUB_MMXq_MEMq=(XED_ICLASS_PFSUB<<8)+0, - XED_IFORM_PFSUB_MMXq_MMXq=(XED_ICLASS_PFSUB<<8)+1, - XED_IFORM_PFSUBR_MMXq_MMXq=(XED_ICLASS_PFSUBR<<8)+0, - XED_IFORM_PFSUBR_MMXq_MEMq=(XED_ICLASS_PFSUBR<<8)+1, - XED_IFORM_PHADDD_MMXq_MEMq=(XED_ICLASS_PHADDD<<8)+0, - XED_IFORM_PHADDD_MMXq_MMXq=(XED_ICLASS_PHADDD<<8)+1, - XED_IFORM_PHADDD_XMMdq_MEMdq=(XED_ICLASS_PHADDD<<8)+2, - XED_IFORM_PHADDD_XMMdq_XMMdq=(XED_ICLASS_PHADDD<<8)+3, - XED_IFORM_PHADDSW_MMXq_MEMq=(XED_ICLASS_PHADDSW<<8)+0, - XED_IFORM_PHADDSW_MMXq_MMXq=(XED_ICLASS_PHADDSW<<8)+1, - XED_IFORM_PHADDSW_XMMdq_XMMdq=(XED_ICLASS_PHADDSW<<8)+2, - XED_IFORM_PHADDSW_XMMdq_MEMdq=(XED_ICLASS_PHADDSW<<8)+3, - XED_IFORM_PHADDW_XMMdq_MEMdq=(XED_ICLASS_PHADDW<<8)+0, - XED_IFORM_PHADDW_MMXq_MMXq=(XED_ICLASS_PHADDW<<8)+1, - XED_IFORM_PHADDW_XMMdq_XMMdq=(XED_ICLASS_PHADDW<<8)+2, - XED_IFORM_PHADDW_MMXq_MEMq=(XED_ICLASS_PHADDW<<8)+3, - XED_IFORM_PHMINPOSUW_XMMdq_XMMdq=(XED_ICLASS_PHMINPOSUW<<8)+0, - XED_IFORM_PHMINPOSUW_XMMdq_MEMdq=(XED_ICLASS_PHMINPOSUW<<8)+1, - XED_IFORM_PHSUBD_MMXq_MEMq=(XED_ICLASS_PHSUBD<<8)+0, - XED_IFORM_PHSUBD_XMMdq_XMMdq=(XED_ICLASS_PHSUBD<<8)+1, - XED_IFORM_PHSUBD_XMMdq_MEMdq=(XED_ICLASS_PHSUBD<<8)+2, - XED_IFORM_PHSUBD_MMXq_MMXq=(XED_ICLASS_PHSUBD<<8)+3, - XED_IFORM_PHSUBSW_XMMdq_MEMdq=(XED_ICLASS_PHSUBSW<<8)+0, - XED_IFORM_PHSUBSW_MMXq_MMXq=(XED_ICLASS_PHSUBSW<<8)+1, - XED_IFORM_PHSUBSW_MMXq_MEMq=(XED_ICLASS_PHSUBSW<<8)+2, - XED_IFORM_PHSUBSW_XMMdq_XMMdq=(XED_ICLASS_PHSUBSW<<8)+3, - XED_IFORM_PHSUBW_MMXq_MMXq=(XED_ICLASS_PHSUBW<<8)+0, - XED_IFORM_PHSUBW_XMMdq_MEMdq=(XED_ICLASS_PHSUBW<<8)+1, - XED_IFORM_PHSUBW_MMXq_MEMq=(XED_ICLASS_PHSUBW<<8)+2, - XED_IFORM_PHSUBW_XMMdq_XMMdq=(XED_ICLASS_PHSUBW<<8)+3, - XED_IFORM_PI2FD_MMXq_MMXq=(XED_ICLASS_PI2FD<<8)+0, - XED_IFORM_PI2FD_MMXq_MEMq=(XED_ICLASS_PI2FD<<8)+1, - XED_IFORM_PI2FW_MMXq_MEMq=(XED_ICLASS_PI2FW<<8)+0, - XED_IFORM_PI2FW_MMXq_MMXq=(XED_ICLASS_PI2FW<<8)+1, - XED_IFORM_PINSRB_XMMdq_MEMb_IMM=(XED_ICLASS_PINSRB<<8)+0, - XED_IFORM_PINSRB_XMMdq_GPR32d_IMM=(XED_ICLASS_PINSRB<<8)+1, - XED_IFORM_PINSRD_XMMdq_GPR32d_IMM=(XED_ICLASS_PINSRD<<8)+0, - XED_IFORM_PINSRD_XMMdq_MEMd_IMM=(XED_ICLASS_PINSRD<<8)+1, - XED_IFORM_PINSRQ_XMMdq_GPR64q_IMM=(XED_ICLASS_PINSRQ<<8)+0, - XED_IFORM_PINSRQ_XMMdq_MEMq_IMM=(XED_ICLASS_PINSRQ<<8)+1, - XED_IFORM_PINSRW_MMXq_MEMw_IMM=(XED_ICLASS_PINSRW<<8)+0, - XED_IFORM_PINSRW_XMMdq_GPRy_IMM=(XED_ICLASS_PINSRW<<8)+1, - XED_IFORM_PINSRW_MMXq_GPRy_IMM=(XED_ICLASS_PINSRW<<8)+2, - XED_IFORM_PINSRW_XMMdq_MEMw_IMM=(XED_ICLASS_PINSRW<<8)+3, - XED_IFORM_PMADDUBSW_XMMdq_XMMdq=(XED_ICLASS_PMADDUBSW<<8)+0, - XED_IFORM_PMADDUBSW_XMMdq_MEMdq=(XED_ICLASS_PMADDUBSW<<8)+1, - XED_IFORM_PMADDUBSW_MMXq_MMXq=(XED_ICLASS_PMADDUBSW<<8)+2, - XED_IFORM_PMADDUBSW_MMXq_MEMq=(XED_ICLASS_PMADDUBSW<<8)+3, - XED_IFORM_PMADDWD_XMMdq_XMMdq=(XED_ICLASS_PMADDWD<<8)+0, - XED_IFORM_PMADDWD_XMMdq_MEMdq=(XED_ICLASS_PMADDWD<<8)+1, - XED_IFORM_PMADDWD_MMXq_MEMq=(XED_ICLASS_PMADDWD<<8)+2, - XED_IFORM_PMADDWD_MMXq_MMXq=(XED_ICLASS_PMADDWD<<8)+3, - XED_IFORM_PMAXSB_XMMdq_MEMdq=(XED_ICLASS_PMAXSB<<8)+0, - XED_IFORM_PMAXSB_XMMdq_XMMdq=(XED_ICLASS_PMAXSB<<8)+1, - XED_IFORM_PMAXSD_XMMdq_MEMdq=(XED_ICLASS_PMAXSD<<8)+0, - XED_IFORM_PMAXSD_XMMdq_XMMdq=(XED_ICLASS_PMAXSD<<8)+1, - XED_IFORM_PMAXSW_MMXq_MMXq=(XED_ICLASS_PMAXSW<<8)+0, - XED_IFORM_PMAXSW_XMMdq_XMMdq=(XED_ICLASS_PMAXSW<<8)+1, - XED_IFORM_PMAXSW_MMXq_MEMq=(XED_ICLASS_PMAXSW<<8)+2, - XED_IFORM_PMAXSW_XMMdq_MEMdq=(XED_ICLASS_PMAXSW<<8)+3, - XED_IFORM_PMAXUB_XMMdq_MEMdq=(XED_ICLASS_PMAXUB<<8)+0, - XED_IFORM_PMAXUB_XMMdq_XMMdq=(XED_ICLASS_PMAXUB<<8)+1, - XED_IFORM_PMAXUB_MMXq_MEMq=(XED_ICLASS_PMAXUB<<8)+2, - XED_IFORM_PMAXUB_MMXq_MMXq=(XED_ICLASS_PMAXUB<<8)+3, - XED_IFORM_PMAXUD_XMMdq_MEMdq=(XED_ICLASS_PMAXUD<<8)+0, - XED_IFORM_PMAXUD_XMMdq_XMMdq=(XED_ICLASS_PMAXUD<<8)+1, - XED_IFORM_PMAXUW_XMMdq_XMMdq=(XED_ICLASS_PMAXUW<<8)+0, - XED_IFORM_PMAXUW_XMMdq_MEMdq=(XED_ICLASS_PMAXUW<<8)+1, - XED_IFORM_PMINSB_XMMdq_MEMdq=(XED_ICLASS_PMINSB<<8)+0, - XED_IFORM_PMINSB_XMMdq_XMMdq=(XED_ICLASS_PMINSB<<8)+1, - XED_IFORM_PMINSD_XMMdq_MEMdq=(XED_ICLASS_PMINSD<<8)+0, - XED_IFORM_PMINSD_XMMdq_XMMdq=(XED_ICLASS_PMINSD<<8)+1, - XED_IFORM_PMINSW_XMMdq_XMMdq=(XED_ICLASS_PMINSW<<8)+0, - XED_IFORM_PMINSW_XMMdq_MEMdq=(XED_ICLASS_PMINSW<<8)+1, - XED_IFORM_PMINSW_MMXq_MMXq=(XED_ICLASS_PMINSW<<8)+2, - XED_IFORM_PMINSW_MMXq_MEMq=(XED_ICLASS_PMINSW<<8)+3, - XED_IFORM_PMINUB_MMXq_MEMq=(XED_ICLASS_PMINUB<<8)+0, - XED_IFORM_PMINUB_XMMdq_XMMdq=(XED_ICLASS_PMINUB<<8)+1, - XED_IFORM_PMINUB_XMMdq_MEMdq=(XED_ICLASS_PMINUB<<8)+2, - XED_IFORM_PMINUB_MMXq_MMXq=(XED_ICLASS_PMINUB<<8)+3, - XED_IFORM_PMINUD_XMMdq_MEMdq=(XED_ICLASS_PMINUD<<8)+0, - XED_IFORM_PMINUD_XMMdq_XMMdq=(XED_ICLASS_PMINUD<<8)+1, - XED_IFORM_PMINUW_XMMdq_XMMdq=(XED_ICLASS_PMINUW<<8)+0, - XED_IFORM_PMINUW_XMMdq_MEMdq=(XED_ICLASS_PMINUW<<8)+1, - XED_IFORM_PMOVMSKB_GPR32_XMMdq=(XED_ICLASS_PMOVMSKB<<8)+0, - XED_IFORM_PMOVMSKB_GPR32_MMXq=(XED_ICLASS_PMOVMSKB<<8)+1, - XED_IFORM_PMOVSXBD_XMMdq_MEMd=(XED_ICLASS_PMOVSXBD<<8)+0, - XED_IFORM_PMOVSXBD_XMMdq_XMMd=(XED_ICLASS_PMOVSXBD<<8)+1, - XED_IFORM_PMOVSXBQ_XMMdq_MEMw=(XED_ICLASS_PMOVSXBQ<<8)+0, - XED_IFORM_PMOVSXBQ_XMMdq_XMMw=(XED_ICLASS_PMOVSXBQ<<8)+1, - XED_IFORM_PMOVSXBW_XMMdq_XMMq=(XED_ICLASS_PMOVSXBW<<8)+0, - XED_IFORM_PMOVSXBW_XMMdq_MEMq=(XED_ICLASS_PMOVSXBW<<8)+1, - XED_IFORM_PMOVSXDQ_XMMdq_XMMq=(XED_ICLASS_PMOVSXDQ<<8)+0, - XED_IFORM_PMOVSXDQ_XMMdq_MEMq=(XED_ICLASS_PMOVSXDQ<<8)+1, - XED_IFORM_PMOVSXWD_XMMdq_XMMq=(XED_ICLASS_PMOVSXWD<<8)+0, - XED_IFORM_PMOVSXWD_XMMdq_MEMq=(XED_ICLASS_PMOVSXWD<<8)+1, - XED_IFORM_PMOVSXWQ_XMMdq_MEMd=(XED_ICLASS_PMOVSXWQ<<8)+0, - XED_IFORM_PMOVSXWQ_XMMdq_XMMd=(XED_ICLASS_PMOVSXWQ<<8)+1, - XED_IFORM_PMOVZXBD_XMMdq_XMMd=(XED_ICLASS_PMOVZXBD<<8)+0, - XED_IFORM_PMOVZXBD_XMMdq_MEMd=(XED_ICLASS_PMOVZXBD<<8)+1, - XED_IFORM_PMOVZXBQ_XMMdq_XMMw=(XED_ICLASS_PMOVZXBQ<<8)+0, - XED_IFORM_PMOVZXBQ_XMMdq_MEMw=(XED_ICLASS_PMOVZXBQ<<8)+1, - XED_IFORM_PMOVZXBW_XMMdq_MEMq=(XED_ICLASS_PMOVZXBW<<8)+0, - XED_IFORM_PMOVZXBW_XMMdq_XMMq=(XED_ICLASS_PMOVZXBW<<8)+1, - XED_IFORM_PMOVZXDQ_XMMdq_MEMq=(XED_ICLASS_PMOVZXDQ<<8)+0, - XED_IFORM_PMOVZXDQ_XMMdq_XMMq=(XED_ICLASS_PMOVZXDQ<<8)+1, - XED_IFORM_PMOVZXWD_XMMdq_MEMq=(XED_ICLASS_PMOVZXWD<<8)+0, - XED_IFORM_PMOVZXWD_XMMdq_XMMq=(XED_ICLASS_PMOVZXWD<<8)+1, - XED_IFORM_PMOVZXWQ_XMMdq_XMMd=(XED_ICLASS_PMOVZXWQ<<8)+0, - XED_IFORM_PMOVZXWQ_XMMdq_MEMd=(XED_ICLASS_PMOVZXWQ<<8)+1, - XED_IFORM_PMULDQ_XMMdq_MEMdq=(XED_ICLASS_PMULDQ<<8)+0, - XED_IFORM_PMULDQ_XMMdq_XMMdq=(XED_ICLASS_PMULDQ<<8)+1, - XED_IFORM_PMULHRSW_XMMdq_MEMdq=(XED_ICLASS_PMULHRSW<<8)+0, - XED_IFORM_PMULHRSW_XMMdq_XMMdq=(XED_ICLASS_PMULHRSW<<8)+1, - XED_IFORM_PMULHRSW_MMXq_MEMq=(XED_ICLASS_PMULHRSW<<8)+2, - XED_IFORM_PMULHRSW_MMXq_MMXq=(XED_ICLASS_PMULHRSW<<8)+3, - XED_IFORM_PMULHRW_MMXq_MEMq=(XED_ICLASS_PMULHRW<<8)+0, - XED_IFORM_PMULHRW_MMXq_MMXq=(XED_ICLASS_PMULHRW<<8)+1, - XED_IFORM_PMULHUW_XMMdq_MEMdq=(XED_ICLASS_PMULHUW<<8)+0, - XED_IFORM_PMULHUW_XMMdq_XMMdq=(XED_ICLASS_PMULHUW<<8)+1, - XED_IFORM_PMULHUW_MMXq_MMXq=(XED_ICLASS_PMULHUW<<8)+2, - XED_IFORM_PMULHUW_MMXq_MEMq=(XED_ICLASS_PMULHUW<<8)+3, - XED_IFORM_PMULHW_MMXq_MMXq=(XED_ICLASS_PMULHW<<8)+0, - XED_IFORM_PMULHW_XMMdq_MEMdq=(XED_ICLASS_PMULHW<<8)+1, - XED_IFORM_PMULHW_MMXq_MEMq=(XED_ICLASS_PMULHW<<8)+2, - XED_IFORM_PMULHW_XMMdq_XMMdq=(XED_ICLASS_PMULHW<<8)+3, - XED_IFORM_PMULLD_XMMdq_XMMdq=(XED_ICLASS_PMULLD<<8)+0, - XED_IFORM_PMULLD_XMMdq_MEMdq=(XED_ICLASS_PMULLD<<8)+1, - XED_IFORM_PMULLW_MMXq_MEMq=(XED_ICLASS_PMULLW<<8)+0, - XED_IFORM_PMULLW_XMMdq_XMMdq=(XED_ICLASS_PMULLW<<8)+1, - XED_IFORM_PMULLW_MMXq_MMXq=(XED_ICLASS_PMULLW<<8)+2, - XED_IFORM_PMULLW_XMMdq_MEMdq=(XED_ICLASS_PMULLW<<8)+3, - XED_IFORM_PMULUDQ_MMXq_MEMq=(XED_ICLASS_PMULUDQ<<8)+0, - XED_IFORM_PMULUDQ_XMMdq_MEMdq=(XED_ICLASS_PMULUDQ<<8)+1, - XED_IFORM_PMULUDQ_XMMdq_XMMdq=(XED_ICLASS_PMULUDQ<<8)+2, - XED_IFORM_PMULUDQ_MMXq_MMXq=(XED_ICLASS_PMULUDQ<<8)+3, - XED_IFORM_POP_SS=(XED_ICLASS_POP<<8)+0, - XED_IFORM_POP_DS=(XED_ICLASS_POP<<8)+1, - XED_IFORM_POP_MEMv=(XED_ICLASS_POP<<8)+2, - XED_IFORM_POP_GPRv=(XED_ICLASS_POP<<8)+3, - XED_IFORM_POP_ES=(XED_ICLASS_POP<<8)+4, - XED_IFORM_POP_GS=(XED_ICLASS_POP<<8)+5, - XED_IFORM_POP_FS=(XED_ICLASS_POP<<8)+6, - XED_IFORM_POPA=(XED_ICLASS_POPA<<8)+0, - XED_IFORM_POPAD=(XED_ICLASS_POPAD<<8)+0, - XED_IFORM_POPCNT_GPRv_GPRv=(XED_ICLASS_POPCNT<<8)+0, - XED_IFORM_POPCNT_GPRv_MEMv=(XED_ICLASS_POPCNT<<8)+1, - XED_IFORM_POPF=(XED_ICLASS_POPF<<8)+0, - XED_IFORM_POPFD=(XED_ICLASS_POPFD<<8)+0, - XED_IFORM_POPFQ=(XED_ICLASS_POPFQ<<8)+0, - XED_IFORM_POR_XMMdq_XMMdq=(XED_ICLASS_POR<<8)+0, - XED_IFORM_POR_XMMdq_MEMdq=(XED_ICLASS_POR<<8)+1, - XED_IFORM_POR_MMXq_MEMq=(XED_ICLASS_POR<<8)+2, - XED_IFORM_POR_MMXq_MMXq=(XED_ICLASS_POR<<8)+3, - XED_IFORM_PREFETCHNTA_MEMmprefetch=(XED_ICLASS_PREFETCHNTA<<8)+0, - XED_IFORM_PREFETCHT0_MEMmprefetch=(XED_ICLASS_PREFETCHT0<<8)+0, - XED_IFORM_PREFETCHT1_MEMmprefetch=(XED_ICLASS_PREFETCHT1<<8)+0, - XED_IFORM_PREFETCHT2_MEMmprefetch=(XED_ICLASS_PREFETCHT2<<8)+0, - XED_IFORM_PREFETCH_EXCLUSIVE_MEMmprefetch=(XED_ICLASS_PREFETCH_EXCLUSIVE<<8)+0, - XED_IFORM_PREFETCH_MODIFIED_MEMmprefetch=(XED_ICLASS_PREFETCH_MODIFIED<<8)+0, - XED_IFORM_PREFETCH_RESERVED_MEMmprefetch=(XED_ICLASS_PREFETCH_RESERVED<<8)+0, - XED_IFORM_PSADBW_MMXq_MMXq=(XED_ICLASS_PSADBW<<8)+0, - XED_IFORM_PSADBW_XMMdq_MEMdq=(XED_ICLASS_PSADBW<<8)+1, - XED_IFORM_PSADBW_MMXq_MEMq=(XED_ICLASS_PSADBW<<8)+2, - XED_IFORM_PSADBW_XMMdq_XMMdq=(XED_ICLASS_PSADBW<<8)+3, - XED_IFORM_PSHUFB_MMXq_MEMq=(XED_ICLASS_PSHUFB<<8)+0, - XED_IFORM_PSHUFB_XMMdq_XMMdq=(XED_ICLASS_PSHUFB<<8)+1, - XED_IFORM_PSHUFB_XMMdq_MEMdq=(XED_ICLASS_PSHUFB<<8)+2, - XED_IFORM_PSHUFB_MMXq_MMXq=(XED_ICLASS_PSHUFB<<8)+3, - XED_IFORM_PSHUFD_XMMdq_XMMdq_IMM=(XED_ICLASS_PSHUFD<<8)+0, - XED_IFORM_PSHUFD_XMMdq_MEMdq_IMM=(XED_ICLASS_PSHUFD<<8)+1, - XED_IFORM_PSHUFHW_XMMdq_MEMdq_IMM=(XED_ICLASS_PSHUFHW<<8)+0, - XED_IFORM_PSHUFHW_XMMdq_XMMdq_IMM=(XED_ICLASS_PSHUFHW<<8)+1, - XED_IFORM_PSHUFLW_XMMdq_XMMdq_IMM=(XED_ICLASS_PSHUFLW<<8)+0, - XED_IFORM_PSHUFLW_XMMdq_MEMdq_IMM=(XED_ICLASS_PSHUFLW<<8)+1, - XED_IFORM_PSHUFW_MMXq_MMXq_IMM=(XED_ICLASS_PSHUFW<<8)+0, - XED_IFORM_PSHUFW_MMXq_MEMq_IMM=(XED_ICLASS_PSHUFW<<8)+1, - XED_IFORM_PSIGNB_XMMdq_MEMdq=(XED_ICLASS_PSIGNB<<8)+0, - XED_IFORM_PSIGNB_XMMdq_XMMdq=(XED_ICLASS_PSIGNB<<8)+1, - XED_IFORM_PSIGNB_MMXq_MEMq=(XED_ICLASS_PSIGNB<<8)+2, - XED_IFORM_PSIGNB_MMXq_MMXq=(XED_ICLASS_PSIGNB<<8)+3, - XED_IFORM_PSIGND_MMXq_MMXq=(XED_ICLASS_PSIGND<<8)+0, - XED_IFORM_PSIGND_XMMdq_MEMdq=(XED_ICLASS_PSIGND<<8)+1, - XED_IFORM_PSIGND_MMXq_MEMq=(XED_ICLASS_PSIGND<<8)+2, - XED_IFORM_PSIGND_XMMdq_XMMdq=(XED_ICLASS_PSIGND<<8)+3, - XED_IFORM_PSIGNW_MMXq_MEMq=(XED_ICLASS_PSIGNW<<8)+0, - XED_IFORM_PSIGNW_XMMdq_XMMdq=(XED_ICLASS_PSIGNW<<8)+1, - XED_IFORM_PSIGNW_XMMdq_MEMdq=(XED_ICLASS_PSIGNW<<8)+2, - XED_IFORM_PSIGNW_MMXq_MMXq=(XED_ICLASS_PSIGNW<<8)+3, - XED_IFORM_PSLLD_XMMdq_XMMdq=(XED_ICLASS_PSLLD<<8)+0, - XED_IFORM_PSLLD_XMMdq_MEMdq=(XED_ICLASS_PSLLD<<8)+1, - XED_IFORM_PSLLD_XMMdq_IMM=(XED_ICLASS_PSLLD<<8)+2, - XED_IFORM_PSLLD_MMXq_MEMq=(XED_ICLASS_PSLLD<<8)+3, - XED_IFORM_PSLLD_MMXq_MMXq=(XED_ICLASS_PSLLD<<8)+4, - XED_IFORM_PSLLD_MMXq_IMM=(XED_ICLASS_PSLLD<<8)+5, - XED_IFORM_PSLLDQ_XMMdq_IMM=(XED_ICLASS_PSLLDQ<<8)+0, - XED_IFORM_PSLLQ_XMMdq_MEMdq=(XED_ICLASS_PSLLQ<<8)+0, - XED_IFORM_PSLLQ_XMMdq_IMM=(XED_ICLASS_PSLLQ<<8)+1, - XED_IFORM_PSLLQ_XMMdq_XMMdq=(XED_ICLASS_PSLLQ<<8)+2, - XED_IFORM_PSLLQ_MMXq_MEMq=(XED_ICLASS_PSLLQ<<8)+3, - XED_IFORM_PSLLQ_MMXq_IMM=(XED_ICLASS_PSLLQ<<8)+4, - XED_IFORM_PSLLQ_MMXq_MMXq=(XED_ICLASS_PSLLQ<<8)+5, - XED_IFORM_PSLLW_MMXq_MMXq=(XED_ICLASS_PSLLW<<8)+0, - XED_IFORM_PSLLW_MMXq_IMM=(XED_ICLASS_PSLLW<<8)+1, - XED_IFORM_PSLLW_MMXq_MEMq=(XED_ICLASS_PSLLW<<8)+2, - XED_IFORM_PSLLW_XMMdq_XMMdq=(XED_ICLASS_PSLLW<<8)+3, - XED_IFORM_PSLLW_XMMdq_IMM=(XED_ICLASS_PSLLW<<8)+4, - XED_IFORM_PSLLW_XMMdq_MEMdq=(XED_ICLASS_PSLLW<<8)+5, - XED_IFORM_PSRAD_XMMdq_MEMdq=(XED_ICLASS_PSRAD<<8)+0, - XED_IFORM_PSRAD_MMXq_MEMq=(XED_ICLASS_PSRAD<<8)+1, - XED_IFORM_PSRAD_MMXq_IMM=(XED_ICLASS_PSRAD<<8)+2, - XED_IFORM_PSRAD_XMMdq_IMM=(XED_ICLASS_PSRAD<<8)+3, - XED_IFORM_PSRAD_XMMdq_XMMdq=(XED_ICLASS_PSRAD<<8)+4, - XED_IFORM_PSRAD_MMXq_MMXq=(XED_ICLASS_PSRAD<<8)+5, - XED_IFORM_PSRAW_XMMdq_IMM=(XED_ICLASS_PSRAW<<8)+0, - XED_IFORM_PSRAW_MMXq_MEMq=(XED_ICLASS_PSRAW<<8)+1, - XED_IFORM_PSRAW_MMXq_MMXq=(XED_ICLASS_PSRAW<<8)+2, - XED_IFORM_PSRAW_XMMdq_MEMdq=(XED_ICLASS_PSRAW<<8)+3, - XED_IFORM_PSRAW_MMXq_IMM=(XED_ICLASS_PSRAW<<8)+4, - XED_IFORM_PSRAW_XMMdq_XMMdq=(XED_ICLASS_PSRAW<<8)+5, - XED_IFORM_PSRLD_MMXq_MEMq=(XED_ICLASS_PSRLD<<8)+0, - XED_IFORM_PSRLD_MMXq_IMM=(XED_ICLASS_PSRLD<<8)+1, - XED_IFORM_PSRLD_MMXq_MMXq=(XED_ICLASS_PSRLD<<8)+2, - XED_IFORM_PSRLD_XMMdq_XMMdq=(XED_ICLASS_PSRLD<<8)+3, - XED_IFORM_PSRLD_XMMdq_IMM=(XED_ICLASS_PSRLD<<8)+4, - XED_IFORM_PSRLD_XMMdq_MEMdq=(XED_ICLASS_PSRLD<<8)+5, - XED_IFORM_PSRLDQ_XMMdq_IMM=(XED_ICLASS_PSRLDQ<<8)+0, - XED_IFORM_PSRLQ_MMXq_MMXq=(XED_ICLASS_PSRLQ<<8)+0, - XED_IFORM_PSRLQ_XMMdq_IMM=(XED_ICLASS_PSRLQ<<8)+1, - XED_IFORM_PSRLQ_XMMdq_MEMdq=(XED_ICLASS_PSRLQ<<8)+2, - XED_IFORM_PSRLQ_MMXq_IMM=(XED_ICLASS_PSRLQ<<8)+3, - XED_IFORM_PSRLQ_MMXq_MEMq=(XED_ICLASS_PSRLQ<<8)+4, - XED_IFORM_PSRLQ_XMMdq_XMMdq=(XED_ICLASS_PSRLQ<<8)+5, - XED_IFORM_PSRLW_XMMdq_XMMdq=(XED_ICLASS_PSRLW<<8)+0, - XED_IFORM_PSRLW_MMXq_MEMq=(XED_ICLASS_PSRLW<<8)+1, - XED_IFORM_PSRLW_MMXq_MMXq=(XED_ICLASS_PSRLW<<8)+2, - XED_IFORM_PSRLW_XMMdq_MEMdq=(XED_ICLASS_PSRLW<<8)+3, - XED_IFORM_PSRLW_MMXq_IMM=(XED_ICLASS_PSRLW<<8)+4, - XED_IFORM_PSRLW_XMMdq_IMM=(XED_ICLASS_PSRLW<<8)+5, - XED_IFORM_PSUBB_XMMdq_MEMdq=(XED_ICLASS_PSUBB<<8)+0, - XED_IFORM_PSUBB_XMMdq_XMMdq=(XED_ICLASS_PSUBB<<8)+1, - XED_IFORM_PSUBB_MMXq_MEMq=(XED_ICLASS_PSUBB<<8)+2, - XED_IFORM_PSUBB_MMXq_MMXq=(XED_ICLASS_PSUBB<<8)+3, - XED_IFORM_PSUBD_MMXq_MMXq=(XED_ICLASS_PSUBD<<8)+0, - XED_IFORM_PSUBD_XMMdq_MEMdq=(XED_ICLASS_PSUBD<<8)+1, - XED_IFORM_PSUBD_MMXq_MEMq=(XED_ICLASS_PSUBD<<8)+2, - XED_IFORM_PSUBD_XMMdq_XMMdq=(XED_ICLASS_PSUBD<<8)+3, - XED_IFORM_PSUBQ_MMXq_MMXq=(XED_ICLASS_PSUBQ<<8)+0, - XED_IFORM_PSUBQ_XMMdq_XMMdq=(XED_ICLASS_PSUBQ<<8)+1, - XED_IFORM_PSUBQ_MMXq_MEMq=(XED_ICLASS_PSUBQ<<8)+2, - XED_IFORM_PSUBQ_XMMdq_MEMdq=(XED_ICLASS_PSUBQ<<8)+3, - XED_IFORM_PSUBSB_XMMdq_MEMdq=(XED_ICLASS_PSUBSB<<8)+0, - XED_IFORM_PSUBSB_MMXq_MEMq=(XED_ICLASS_PSUBSB<<8)+1, - XED_IFORM_PSUBSB_XMMdq_XMMdq=(XED_ICLASS_PSUBSB<<8)+2, - XED_IFORM_PSUBSB_MMXq_MMXq=(XED_ICLASS_PSUBSB<<8)+3, - XED_IFORM_PSUBSW_XMMdq_MEMdq=(XED_ICLASS_PSUBSW<<8)+0, - XED_IFORM_PSUBSW_MMXq_MMXq=(XED_ICLASS_PSUBSW<<8)+1, - XED_IFORM_PSUBSW_XMMdq_XMMdq=(XED_ICLASS_PSUBSW<<8)+2, - XED_IFORM_PSUBSW_MMXq_MEMq=(XED_ICLASS_PSUBSW<<8)+3, - XED_IFORM_PSUBUSB_MMXq_MMXq=(XED_ICLASS_PSUBUSB<<8)+0, - XED_IFORM_PSUBUSB_MMXq_MEMq=(XED_ICLASS_PSUBUSB<<8)+1, - XED_IFORM_PSUBUSB_XMMdq_XMMdq=(XED_ICLASS_PSUBUSB<<8)+2, - XED_IFORM_PSUBUSB_XMMdq_MEMdq=(XED_ICLASS_PSUBUSB<<8)+3, - XED_IFORM_PSUBUSW_MMXq_MMXq=(XED_ICLASS_PSUBUSW<<8)+0, - XED_IFORM_PSUBUSW_XMMdq_MEMdq=(XED_ICLASS_PSUBUSW<<8)+1, - XED_IFORM_PSUBUSW_XMMdq_XMMdq=(XED_ICLASS_PSUBUSW<<8)+2, - XED_IFORM_PSUBUSW_MMXq_MEMq=(XED_ICLASS_PSUBUSW<<8)+3, - XED_IFORM_PSUBW_MMXq_MEMq=(XED_ICLASS_PSUBW<<8)+0, - XED_IFORM_PSUBW_XMMdq_XMMdq=(XED_ICLASS_PSUBW<<8)+1, - XED_IFORM_PSUBW_XMMdq_MEMdq=(XED_ICLASS_PSUBW<<8)+2, - XED_IFORM_PSUBW_MMXq_MMXq=(XED_ICLASS_PSUBW<<8)+3, - XED_IFORM_PSWAPD_MMXq_MEMq=(XED_ICLASS_PSWAPD<<8)+0, - XED_IFORM_PSWAPD_MMXq_MMXq=(XED_ICLASS_PSWAPD<<8)+1, - XED_IFORM_PTEST_XMMdq_MEMdq=(XED_ICLASS_PTEST<<8)+0, - XED_IFORM_PTEST_XMMdq_XMMdq=(XED_ICLASS_PTEST<<8)+1, - XED_IFORM_PUNPCKHBW_XMMdq_XMMq=(XED_ICLASS_PUNPCKHBW<<8)+0, - XED_IFORM_PUNPCKHBW_MMXq_MMXd=(XED_ICLASS_PUNPCKHBW<<8)+1, - XED_IFORM_PUNPCKHBW_XMMdq_MEMdq=(XED_ICLASS_PUNPCKHBW<<8)+2, - XED_IFORM_PUNPCKHBW_MMXq_MEMq=(XED_ICLASS_PUNPCKHBW<<8)+3, - XED_IFORM_PUNPCKHDQ_XMMdq_XMMq=(XED_ICLASS_PUNPCKHDQ<<8)+0, - XED_IFORM_PUNPCKHDQ_MMXq_MMXd=(XED_ICLASS_PUNPCKHDQ<<8)+1, - XED_IFORM_PUNPCKHDQ_XMMdq_MEMdq=(XED_ICLASS_PUNPCKHDQ<<8)+2, - XED_IFORM_PUNPCKHDQ_MMXq_MEMq=(XED_ICLASS_PUNPCKHDQ<<8)+3, - XED_IFORM_PUNPCKHQDQ_XMMdq_XMMq=(XED_ICLASS_PUNPCKHQDQ<<8)+0, - XED_IFORM_PUNPCKHQDQ_XMMdq_MEMdq=(XED_ICLASS_PUNPCKHQDQ<<8)+1, - XED_IFORM_PUNPCKHWD_XMMdq_XMMq=(XED_ICLASS_PUNPCKHWD<<8)+0, - XED_IFORM_PUNPCKHWD_MMXq_MMXd=(XED_ICLASS_PUNPCKHWD<<8)+1, - XED_IFORM_PUNPCKHWD_XMMdq_MEMdq=(XED_ICLASS_PUNPCKHWD<<8)+2, - XED_IFORM_PUNPCKHWD_MMXq_MEMq=(XED_ICLASS_PUNPCKHWD<<8)+3, - XED_IFORM_PUNPCKLBW_MMXq_MMXd=(XED_ICLASS_PUNPCKLBW<<8)+0, - XED_IFORM_PUNPCKLBW_XMMdq_MEMq=(XED_ICLASS_PUNPCKLBW<<8)+1, - XED_IFORM_PUNPCKLBW_XMMdq_XMMq=(XED_ICLASS_PUNPCKLBW<<8)+2, - XED_IFORM_PUNPCKLBW_MMXq_MEMd=(XED_ICLASS_PUNPCKLBW<<8)+3, - XED_IFORM_PUNPCKLDQ_MMXq_MMXd=(XED_ICLASS_PUNPCKLDQ<<8)+0, - XED_IFORM_PUNPCKLDQ_XMMdq_MEMq=(XED_ICLASS_PUNPCKLDQ<<8)+1, - XED_IFORM_PUNPCKLDQ_XMMdq_XMMq=(XED_ICLASS_PUNPCKLDQ<<8)+2, - XED_IFORM_PUNPCKLDQ_MMXq_MEMd=(XED_ICLASS_PUNPCKLDQ<<8)+3, - XED_IFORM_PUNPCKLQDQ_XMMdq_XMMq=(XED_ICLASS_PUNPCKLQDQ<<8)+0, - XED_IFORM_PUNPCKLQDQ_XMMdq_MEMq=(XED_ICLASS_PUNPCKLQDQ<<8)+1, - XED_IFORM_PUNPCKLWD_MMXq_MMXd=(XED_ICLASS_PUNPCKLWD<<8)+0, - XED_IFORM_PUNPCKLWD_XMMdq_MEMq=(XED_ICLASS_PUNPCKLWD<<8)+1, - XED_IFORM_PUNPCKLWD_XMMdq_XMMq=(XED_ICLASS_PUNPCKLWD<<8)+2, - XED_IFORM_PUNPCKLWD_MMXq_MEMd=(XED_ICLASS_PUNPCKLWD<<8)+3, - XED_IFORM_PUSH_FS=(XED_ICLASS_PUSH<<8)+0, - XED_IFORM_PUSH_SS=(XED_ICLASS_PUSH<<8)+1, - XED_IFORM_PUSH_GPRv=(XED_ICLASS_PUSH<<8)+2, - XED_IFORM_PUSH_GS=(XED_ICLASS_PUSH<<8)+3, - XED_IFORM_PUSH_CS=(XED_ICLASS_PUSH<<8)+4, - XED_IFORM_PUSH_MEMv=(XED_ICLASS_PUSH<<8)+5, - XED_IFORM_PUSH_ES=(XED_ICLASS_PUSH<<8)+6, - XED_IFORM_PUSH_IMM=(XED_ICLASS_PUSH<<8)+7, - XED_IFORM_PUSH_DS=(XED_ICLASS_PUSH<<8)+8, - XED_IFORM_PUSHA=(XED_ICLASS_PUSHA<<8)+0, - XED_IFORM_PUSHAD=(XED_ICLASS_PUSHAD<<8)+0, - XED_IFORM_PUSHF=(XED_ICLASS_PUSHF<<8)+0, - XED_IFORM_PUSHFD=(XED_ICLASS_PUSHFD<<8)+0, - XED_IFORM_PUSHFQ=(XED_ICLASS_PUSHFQ<<8)+0, - XED_IFORM_PXOR_XMMdq_MEMdq=(XED_ICLASS_PXOR<<8)+0, - XED_IFORM_PXOR_MMXq_MMXq=(XED_ICLASS_PXOR<<8)+1, - XED_IFORM_PXOR_MMXq_MEMq=(XED_ICLASS_PXOR<<8)+2, - XED_IFORM_PXOR_XMMdq_XMMdq=(XED_ICLASS_PXOR<<8)+3, - XED_IFORM_RCL_MEMv_CL=(XED_ICLASS_RCL<<8)+0, - XED_IFORM_RCL_MEMb_CL=(XED_ICLASS_RCL<<8)+1, - XED_IFORM_RCL_GPRv_CL=(XED_ICLASS_RCL<<8)+2, - XED_IFORM_RCL_MEMb_IMM=(XED_ICLASS_RCL<<8)+3, - XED_IFORM_RCL_MEMv_ONE=(XED_ICLASS_RCL<<8)+4, - XED_IFORM_RCL_GPR8_ONE=(XED_ICLASS_RCL<<8)+5, - XED_IFORM_RCL_GPR8_IMM=(XED_ICLASS_RCL<<8)+6, - XED_IFORM_RCL_MEMv_IMM=(XED_ICLASS_RCL<<8)+7, - XED_IFORM_RCL_MEMb_ONE=(XED_ICLASS_RCL<<8)+8, - XED_IFORM_RCL_GPRv_ONE=(XED_ICLASS_RCL<<8)+9, - XED_IFORM_RCL_GPRv_IMM=(XED_ICLASS_RCL<<8)+10, - XED_IFORM_RCL_GPR8_CL=(XED_ICLASS_RCL<<8)+11, - XED_IFORM_RCPPS_XMMps_MEMps=(XED_ICLASS_RCPPS<<8)+0, - XED_IFORM_RCPPS_XMMps_XMMps=(XED_ICLASS_RCPPS<<8)+1, - XED_IFORM_RCPSS_XMMss_XMMss=(XED_ICLASS_RCPSS<<8)+0, - XED_IFORM_RCPSS_XMMss_MEMss=(XED_ICLASS_RCPSS<<8)+1, - XED_IFORM_RCR_GPR8_CL=(XED_ICLASS_RCR<<8)+0, - XED_IFORM_RCR_MEMv_ONE=(XED_ICLASS_RCR<<8)+1, - XED_IFORM_RCR_GPR8_IMM=(XED_ICLASS_RCR<<8)+2, - XED_IFORM_RCR_MEMb_ONE=(XED_ICLASS_RCR<<8)+3, - XED_IFORM_RCR_GPRv_ONE=(XED_ICLASS_RCR<<8)+4, - XED_IFORM_RCR_MEMb_IMM=(XED_ICLASS_RCR<<8)+5, - XED_IFORM_RCR_GPR8_ONE=(XED_ICLASS_RCR<<8)+6, - XED_IFORM_RCR_MEMv_IMM=(XED_ICLASS_RCR<<8)+7, - XED_IFORM_RCR_GPRv_IMM=(XED_ICLASS_RCR<<8)+8, - XED_IFORM_RCR_MEMv_CL=(XED_ICLASS_RCR<<8)+9, - XED_IFORM_RCR_GPRv_CL=(XED_ICLASS_RCR<<8)+10, - XED_IFORM_RCR_MEMb_CL=(XED_ICLASS_RCR<<8)+11, - XED_IFORM_RDMSR=(XED_ICLASS_RDMSR<<8)+0, - XED_IFORM_RDPMC=(XED_ICLASS_RDPMC<<8)+0, - XED_IFORM_RDTSC=(XED_ICLASS_RDTSC<<8)+0, - XED_IFORM_RDTSCP=(XED_ICLASS_RDTSCP<<8)+0, - XED_IFORM_RET_FAR_IMM=(XED_ICLASS_RET_FAR<<8)+0, - XED_IFORM_RET_FAR=(XED_ICLASS_RET_FAR<<8)+1, - XED_IFORM_RET_NEAR_IMM=(XED_ICLASS_RET_NEAR<<8)+0, - XED_IFORM_RET_NEAR=(XED_ICLASS_RET_NEAR<<8)+1, - XED_IFORM_ROL_GPRv_IMM=(XED_ICLASS_ROL<<8)+0, - XED_IFORM_ROL_GPR8_ONE=(XED_ICLASS_ROL<<8)+1, - XED_IFORM_ROL_MEMv_CL=(XED_ICLASS_ROL<<8)+2, - XED_IFORM_ROL_MEMb_IMM=(XED_ICLASS_ROL<<8)+3, - XED_IFORM_ROL_MEMv_ONE=(XED_ICLASS_ROL<<8)+4, - XED_IFORM_ROL_MEMb_CL=(XED_ICLASS_ROL<<8)+5, - XED_IFORM_ROL_GPRv_CL=(XED_ICLASS_ROL<<8)+6, - XED_IFORM_ROL_GPR8_CL=(XED_ICLASS_ROL<<8)+7, - XED_IFORM_ROL_GPRv_ONE=(XED_ICLASS_ROL<<8)+8, - XED_IFORM_ROL_MEMv_IMM=(XED_ICLASS_ROL<<8)+9, - XED_IFORM_ROL_MEMb_ONE=(XED_ICLASS_ROL<<8)+10, - XED_IFORM_ROL_GPR8_IMM=(XED_ICLASS_ROL<<8)+11, - XED_IFORM_ROR_MEMb_ONE=(XED_ICLASS_ROR<<8)+0, - XED_IFORM_ROR_MEMv_ONE=(XED_ICLASS_ROR<<8)+1, - XED_IFORM_ROR_GPR8_CL=(XED_ICLASS_ROR<<8)+2, - XED_IFORM_ROR_MEMv_IMM=(XED_ICLASS_ROR<<8)+3, - XED_IFORM_ROR_GPRv_ONE=(XED_ICLASS_ROR<<8)+4, - XED_IFORM_ROR_MEMb_IMM=(XED_ICLASS_ROR<<8)+5, - XED_IFORM_ROR_GPRv_IMM=(XED_ICLASS_ROR<<8)+6, - XED_IFORM_ROR_MEMb_CL=(XED_ICLASS_ROR<<8)+7, - XED_IFORM_ROR_GPR8_ONE=(XED_ICLASS_ROR<<8)+8, - XED_IFORM_ROR_MEMv_CL=(XED_ICLASS_ROR<<8)+9, - XED_IFORM_ROR_GPR8_IMM=(XED_ICLASS_ROR<<8)+10, - XED_IFORM_ROR_GPRv_CL=(XED_ICLASS_ROR<<8)+11, - XED_IFORM_ROUNDPD_XMMpd_XMMpd_IMM=(XED_ICLASS_ROUNDPD<<8)+0, - XED_IFORM_ROUNDPD_XMMpd_MEMpd_IMM=(XED_ICLASS_ROUNDPD<<8)+1, - XED_IFORM_ROUNDPS_XMMps_MEMps_IMM=(XED_ICLASS_ROUNDPS<<8)+0, - XED_IFORM_ROUNDPS_XMMps_XMMps_IMM=(XED_ICLASS_ROUNDPS<<8)+1, - XED_IFORM_ROUNDSD_XMMq_MEMq_IMM=(XED_ICLASS_ROUNDSD<<8)+0, - XED_IFORM_ROUNDSD_XMMq_XMMq_IMM=(XED_ICLASS_ROUNDSD<<8)+1, - XED_IFORM_ROUNDSS_XMMd_MEMd_IMM=(XED_ICLASS_ROUNDSS<<8)+0, - XED_IFORM_ROUNDSS_XMMd_XMMd_IMM=(XED_ICLASS_ROUNDSS<<8)+1, - XED_IFORM_RSM=(XED_ICLASS_RSM<<8)+0, - XED_IFORM_RSQRTPS_XMMps_XMMps=(XED_ICLASS_RSQRTPS<<8)+0, - XED_IFORM_RSQRTPS_XMMps_MEMps=(XED_ICLASS_RSQRTPS<<8)+1, - XED_IFORM_RSQRTSS_XMMss_MEMss=(XED_ICLASS_RSQRTSS<<8)+0, - XED_IFORM_RSQRTSS_XMMss_XMMss=(XED_ICLASS_RSQRTSS<<8)+1, - XED_IFORM_SAHF=(XED_ICLASS_SAHF<<8)+0, - XED_IFORM_SALC=(XED_ICLASS_SALC<<8)+0, - XED_IFORM_SAR_MEMv_CL=(XED_ICLASS_SAR<<8)+0, - XED_IFORM_SAR_GPRv_IMM=(XED_ICLASS_SAR<<8)+1, - XED_IFORM_SAR_GPR8_ONE=(XED_ICLASS_SAR<<8)+2, - XED_IFORM_SAR_GPR8_IMM=(XED_ICLASS_SAR<<8)+3, - XED_IFORM_SAR_MEMv_ONE=(XED_ICLASS_SAR<<8)+4, - XED_IFORM_SAR_MEMb_CL=(XED_ICLASS_SAR<<8)+5, - XED_IFORM_SAR_MEMb_IMM=(XED_ICLASS_SAR<<8)+6, - XED_IFORM_SAR_MEMv_IMM=(XED_ICLASS_SAR<<8)+7, - XED_IFORM_SAR_GPR8_CL=(XED_ICLASS_SAR<<8)+8, - XED_IFORM_SAR_GPRv_CL=(XED_ICLASS_SAR<<8)+9, - XED_IFORM_SAR_GPRv_ONE=(XED_ICLASS_SAR<<8)+10, - XED_IFORM_SAR_MEMb_ONE=(XED_ICLASS_SAR<<8)+11, - XED_IFORM_SBB_AL_IMM=(XED_ICLASS_SBB<<8)+0, - XED_IFORM_SBB_MEMv_GPRv=(XED_ICLASS_SBB<<8)+1, - XED_IFORM_SBB_MEMb_IMM=(XED_ICLASS_SBB<<8)+2, - XED_IFORM_SBB_GPRv_GPRv=(XED_ICLASS_SBB<<8)+3, - XED_IFORM_SBB_OrAX_IMM=(XED_ICLASS_SBB<<8)+4, - XED_IFORM_SBB_GPR8_GPR8=(XED_ICLASS_SBB<<8)+5, - XED_IFORM_SBB_GPR8_IMM=(XED_ICLASS_SBB<<8)+6, - XED_IFORM_SBB_MEMv_IMM=(XED_ICLASS_SBB<<8)+7, - XED_IFORM_SBB_MEMb_GPR8=(XED_ICLASS_SBB<<8)+8, - XED_IFORM_SBB_GPRv_MEMv=(XED_ICLASS_SBB<<8)+9, - XED_IFORM_SBB_GPRv_IMM=(XED_ICLASS_SBB<<8)+10, - XED_IFORM_SBB_GPR8_MEMb=(XED_ICLASS_SBB<<8)+11, - XED_IFORM_SCASB=(XED_ICLASS_SCASB<<8)+0, - XED_IFORM_SCASD=(XED_ICLASS_SCASD<<8)+0, - XED_IFORM_SCASQ=(XED_ICLASS_SCASQ<<8)+0, - XED_IFORM_SCASW=(XED_ICLASS_SCASW<<8)+0, - XED_IFORM_SETB_GPR8=(XED_ICLASS_SETB<<8)+0, - XED_IFORM_SETB_MEMb=(XED_ICLASS_SETB<<8)+1, - XED_IFORM_SETBE_GPR8=(XED_ICLASS_SETBE<<8)+0, - XED_IFORM_SETBE_MEMb=(XED_ICLASS_SETBE<<8)+1, - XED_IFORM_SETL_MEMb=(XED_ICLASS_SETL<<8)+0, - XED_IFORM_SETL_GPR8=(XED_ICLASS_SETL<<8)+1, - XED_IFORM_SETLE_GPR8=(XED_ICLASS_SETLE<<8)+0, - XED_IFORM_SETLE_MEMb=(XED_ICLASS_SETLE<<8)+1, - XED_IFORM_SETNB_GPR8=(XED_ICLASS_SETNB<<8)+0, - XED_IFORM_SETNB_MEMb=(XED_ICLASS_SETNB<<8)+1, - XED_IFORM_SETNBE_MEMb=(XED_ICLASS_SETNBE<<8)+0, - XED_IFORM_SETNBE_GPR8=(XED_ICLASS_SETNBE<<8)+1, - XED_IFORM_SETNL_GPR8=(XED_ICLASS_SETNL<<8)+0, - XED_IFORM_SETNL_MEMb=(XED_ICLASS_SETNL<<8)+1, - XED_IFORM_SETNLE_MEMb=(XED_ICLASS_SETNLE<<8)+0, - XED_IFORM_SETNLE_GPR8=(XED_ICLASS_SETNLE<<8)+1, - XED_IFORM_SETNO_MEMb=(XED_ICLASS_SETNO<<8)+0, - XED_IFORM_SETNO_GPR8=(XED_ICLASS_SETNO<<8)+1, - XED_IFORM_SETNP_MEMb=(XED_ICLASS_SETNP<<8)+0, - XED_IFORM_SETNP_GPR8=(XED_ICLASS_SETNP<<8)+1, - XED_IFORM_SETNS_GPR8=(XED_ICLASS_SETNS<<8)+0, - XED_IFORM_SETNS_MEMb=(XED_ICLASS_SETNS<<8)+1, - XED_IFORM_SETNZ_GPR8=(XED_ICLASS_SETNZ<<8)+0, - XED_IFORM_SETNZ_MEMb=(XED_ICLASS_SETNZ<<8)+1, - XED_IFORM_SETO_MEMb=(XED_ICLASS_SETO<<8)+0, - XED_IFORM_SETO_GPR8=(XED_ICLASS_SETO<<8)+1, - XED_IFORM_SETP_GPR8=(XED_ICLASS_SETP<<8)+0, - XED_IFORM_SETP_MEMb=(XED_ICLASS_SETP<<8)+1, - XED_IFORM_SETS_GPR8=(XED_ICLASS_SETS<<8)+0, - XED_IFORM_SETS_MEMb=(XED_ICLASS_SETS<<8)+1, - XED_IFORM_SETZ_GPR8=(XED_ICLASS_SETZ<<8)+0, - XED_IFORM_SETZ_MEMb=(XED_ICLASS_SETZ<<8)+1, - XED_IFORM_SFENCE=(XED_ICLASS_SFENCE<<8)+0, - XED_IFORM_SGDT_MEMs=(XED_ICLASS_SGDT<<8)+0, - XED_IFORM_SHL_MEMv_ONE=(XED_ICLASS_SHL<<8)+0, - XED_IFORM_SHL_GPRv_CL=(XED_ICLASS_SHL<<8)+1, - XED_IFORM_SHL_MEMb_CL=(XED_ICLASS_SHL<<8)+2, - XED_IFORM_SHL_MEMv_IMM=(XED_ICLASS_SHL<<8)+3, - XED_IFORM_SHL_GPRv_IMM=(XED_ICLASS_SHL<<8)+4, - XED_IFORM_SHL_GPR8_ONE=(XED_ICLASS_SHL<<8)+5, - XED_IFORM_SHL_GPRv_ONE=(XED_ICLASS_SHL<<8)+6, - XED_IFORM_SHL_MEMb_IMM=(XED_ICLASS_SHL<<8)+7, - XED_IFORM_SHL_MEMb_ONE=(XED_ICLASS_SHL<<8)+8, - XED_IFORM_SHL_MEMv_CL=(XED_ICLASS_SHL<<8)+9, - XED_IFORM_SHL_GPR8_IMM=(XED_ICLASS_SHL<<8)+10, - XED_IFORM_SHL_GPR8_CL=(XED_ICLASS_SHL<<8)+11, - XED_IFORM_SHLD_GPRv_GPRv_CL=(XED_ICLASS_SHLD<<8)+0, - XED_IFORM_SHLD_GPRv_GPRv_IMM=(XED_ICLASS_SHLD<<8)+1, - XED_IFORM_SHLD_MEMv_GPRv_IMM=(XED_ICLASS_SHLD<<8)+2, - XED_IFORM_SHLD_MEMv_GPRv_CL=(XED_ICLASS_SHLD<<8)+3, - XED_IFORM_SHR_MEMb_CL=(XED_ICLASS_SHR<<8)+0, - XED_IFORM_SHR_GPR8_CL=(XED_ICLASS_SHR<<8)+1, - XED_IFORM_SHR_GPR8_IMM=(XED_ICLASS_SHR<<8)+2, - XED_IFORM_SHR_GPRv_CL=(XED_ICLASS_SHR<<8)+3, - XED_IFORM_SHR_MEMb_IMM=(XED_ICLASS_SHR<<8)+4, - XED_IFORM_SHR_GPRv_IMM=(XED_ICLASS_SHR<<8)+5, - XED_IFORM_SHR_MEMv_ONE=(XED_ICLASS_SHR<<8)+6, - XED_IFORM_SHR_MEMb_ONE=(XED_ICLASS_SHR<<8)+7, - XED_IFORM_SHR_GPR8_ONE=(XED_ICLASS_SHR<<8)+8, - XED_IFORM_SHR_GPRv_ONE=(XED_ICLASS_SHR<<8)+9, - XED_IFORM_SHR_MEMv_CL=(XED_ICLASS_SHR<<8)+10, - XED_IFORM_SHR_MEMv_IMM=(XED_ICLASS_SHR<<8)+11, - XED_IFORM_SHRD_MEMv_GPRv_CL=(XED_ICLASS_SHRD<<8)+0, - XED_IFORM_SHRD_MEMv_GPRv_IMM=(XED_ICLASS_SHRD<<8)+1, - XED_IFORM_SHRD_GPRv_GPRv_CL=(XED_ICLASS_SHRD<<8)+2, - XED_IFORM_SHRD_GPRv_GPRv_IMM=(XED_ICLASS_SHRD<<8)+3, - XED_IFORM_SHUFPD_XMMpd_MEMpd_IMM=(XED_ICLASS_SHUFPD<<8)+0, - XED_IFORM_SHUFPD_XMMpd_XMMpd_IMM=(XED_ICLASS_SHUFPD<<8)+1, - XED_IFORM_SHUFPS_XMMps_XMMps_IMM=(XED_ICLASS_SHUFPS<<8)+0, - XED_IFORM_SHUFPS_XMMps_MEMps_IMM=(XED_ICLASS_SHUFPS<<8)+1, - XED_IFORM_SIDT_MEMs=(XED_ICLASS_SIDT<<8)+0, - XED_IFORM_SKINIT_EAX=(XED_ICLASS_SKINIT<<8)+0, - XED_IFORM_SLDT_GPRv=(XED_ICLASS_SLDT<<8)+0, - XED_IFORM_SLDT_MEMw=(XED_ICLASS_SLDT<<8)+1, - XED_IFORM_SMSW_GPRv=(XED_ICLASS_SMSW<<8)+0, - XED_IFORM_SMSW_MEMw=(XED_ICLASS_SMSW<<8)+1, - XED_IFORM_SQRTPD_XMMpd_XMMpd=(XED_ICLASS_SQRTPD<<8)+0, - XED_IFORM_SQRTPD_XMMpd_MEMpd=(XED_ICLASS_SQRTPD<<8)+1, - XED_IFORM_SQRTPS_XMMps_MEMps=(XED_ICLASS_SQRTPS<<8)+0, - XED_IFORM_SQRTPS_XMMps_XMMps=(XED_ICLASS_SQRTPS<<8)+1, - XED_IFORM_SQRTSD_XMMsd_MEMsd=(XED_ICLASS_SQRTSD<<8)+0, - XED_IFORM_SQRTSD_XMMsd_XMMsd=(XED_ICLASS_SQRTSD<<8)+1, - XED_IFORM_SQRTSS_XMMss_XMMss=(XED_ICLASS_SQRTSS<<8)+0, - XED_IFORM_SQRTSS_XMMss_MEMss=(XED_ICLASS_SQRTSS<<8)+1, - XED_IFORM_STC=(XED_ICLASS_STC<<8)+0, - XED_IFORM_STD=(XED_ICLASS_STD<<8)+0, - XED_IFORM_STGI=(XED_ICLASS_STGI<<8)+0, - XED_IFORM_STI=(XED_ICLASS_STI<<8)+0, - XED_IFORM_STMXCSR_MEMd=(XED_ICLASS_STMXCSR<<8)+0, - XED_IFORM_STOSB=(XED_ICLASS_STOSB<<8)+0, - XED_IFORM_STOSD=(XED_ICLASS_STOSD<<8)+0, - XED_IFORM_STOSQ=(XED_ICLASS_STOSQ<<8)+0, - XED_IFORM_STOSW=(XED_ICLASS_STOSW<<8)+0, - XED_IFORM_STR_GPRv=(XED_ICLASS_STR<<8)+0, - XED_IFORM_STR_MEMw=(XED_ICLASS_STR<<8)+1, - XED_IFORM_SUB_MEMv_IMM=(XED_ICLASS_SUB<<8)+0, - XED_IFORM_SUB_GPRv_IMM=(XED_ICLASS_SUB<<8)+1, - XED_IFORM_SUB_MEMb_GPR8=(XED_ICLASS_SUB<<8)+2, - XED_IFORM_SUB_MEMb_IMM=(XED_ICLASS_SUB<<8)+3, - XED_IFORM_SUB_OrAX_IMM=(XED_ICLASS_SUB<<8)+4, - XED_IFORM_SUB_GPR8_GPR8=(XED_ICLASS_SUB<<8)+5, - XED_IFORM_SUB_MEMv_GPRv=(XED_ICLASS_SUB<<8)+6, - XED_IFORM_SUB_GPRv_GPRv=(XED_ICLASS_SUB<<8)+7, - XED_IFORM_SUB_GPR8_MEMb=(XED_ICLASS_SUB<<8)+8, - XED_IFORM_SUB_AL_IMM=(XED_ICLASS_SUB<<8)+9, - XED_IFORM_SUB_GPR8_IMM=(XED_ICLASS_SUB<<8)+10, - XED_IFORM_SUB_GPRv_MEMv=(XED_ICLASS_SUB<<8)+11, - XED_IFORM_SUBPD_XMMpd_MEMpd=(XED_ICLASS_SUBPD<<8)+0, - XED_IFORM_SUBPD_XMMpd_XMMpd=(XED_ICLASS_SUBPD<<8)+1, - XED_IFORM_SUBPS_XMMps_XMMps=(XED_ICLASS_SUBPS<<8)+0, - XED_IFORM_SUBPS_XMMps_MEMps=(XED_ICLASS_SUBPS<<8)+1, - XED_IFORM_SUBSD_XMMsd_XMMsd=(XED_ICLASS_SUBSD<<8)+0, - XED_IFORM_SUBSD_XMMsd_MEMsd=(XED_ICLASS_SUBSD<<8)+1, - XED_IFORM_SUBSS_XMMss_MEMss=(XED_ICLASS_SUBSS<<8)+0, - XED_IFORM_SUBSS_XMMss_XMMss=(XED_ICLASS_SUBSS<<8)+1, - XED_IFORM_SWAPGS=(XED_ICLASS_SWAPGS<<8)+0, - XED_IFORM_SYSCALL=(XED_ICLASS_SYSCALL<<8)+0, - XED_IFORM_SYSENTER=(XED_ICLASS_SYSENTER<<8)+0, - XED_IFORM_SYSEXIT=(XED_ICLASS_SYSEXIT<<8)+0, - XED_IFORM_SYSRET=(XED_ICLASS_SYSRET<<8)+0, - XED_IFORM_TEST_OrAX_IMM=(XED_ICLASS_TEST<<8)+0, - XED_IFORM_TEST_MEMv_GPRv=(XED_ICLASS_TEST<<8)+1, - XED_IFORM_TEST_AL_IMM=(XED_ICLASS_TEST<<8)+2, - XED_IFORM_TEST_GPRv_GPRv=(XED_ICLASS_TEST<<8)+3, - XED_IFORM_TEST_MEMb_IMM=(XED_ICLASS_TEST<<8)+4, - XED_IFORM_TEST_GPR8_GPR8=(XED_ICLASS_TEST<<8)+5, - XED_IFORM_TEST_MEMb_GPR8=(XED_ICLASS_TEST<<8)+6, - XED_IFORM_TEST_GPR8_IMM=(XED_ICLASS_TEST<<8)+7, - XED_IFORM_TEST_GPRv_IMM=(XED_ICLASS_TEST<<8)+8, - XED_IFORM_TEST_MEMv_IMM=(XED_ICLASS_TEST<<8)+9, - XED_IFORM_UCOMISD_XMMsd_MEMsd=(XED_ICLASS_UCOMISD<<8)+0, - XED_IFORM_UCOMISD_XMMsd_XMMsd=(XED_ICLASS_UCOMISD<<8)+1, - XED_IFORM_UCOMISS_XMMss_XMMss=(XED_ICLASS_UCOMISS<<8)+0, - XED_IFORM_UCOMISS_XMMss_MEMss=(XED_ICLASS_UCOMISS<<8)+1, - XED_IFORM_UD2=(XED_ICLASS_UD2<<8)+0, - XED_IFORM_UNPCKHPD_XMMpd_MEMdq=(XED_ICLASS_UNPCKHPD<<8)+0, - XED_IFORM_UNPCKHPD_XMMpd_XMMq=(XED_ICLASS_UNPCKHPD<<8)+1, - XED_IFORM_UNPCKHPS_XMMps_XMMdq=(XED_ICLASS_UNPCKHPS<<8)+0, - XED_IFORM_UNPCKHPS_XMMps_MEMdq=(XED_ICLASS_UNPCKHPS<<8)+1, - XED_IFORM_UNPCKLPD_XMMpd_MEMq=(XED_ICLASS_UNPCKLPD<<8)+0, - XED_IFORM_UNPCKLPD_XMMpd_XMMq=(XED_ICLASS_UNPCKLPD<<8)+1, - XED_IFORM_UNPCKLPS_XMMps_XMMq=(XED_ICLASS_UNPCKLPS<<8)+0, - XED_IFORM_UNPCKLPS_XMMps_MEMq=(XED_ICLASS_UNPCKLPS<<8)+1, - XED_IFORM_VERR_GPR16=(XED_ICLASS_VERR<<8)+0, - XED_IFORM_VERR_MEMw=(XED_ICLASS_VERR<<8)+1, - XED_IFORM_VERW_GPR16=(XED_ICLASS_VERW<<8)+0, - XED_IFORM_VERW_MEMw=(XED_ICLASS_VERW<<8)+1, - XED_IFORM_VMCALL=(XED_ICLASS_VMCALL<<8)+0, - XED_IFORM_VMCLEAR_MEMq=(XED_ICLASS_VMCLEAR<<8)+0, - XED_IFORM_VMLAUNCH=(XED_ICLASS_VMLAUNCH<<8)+0, - XED_IFORM_VMLOAD_OrAX=(XED_ICLASS_VMLOAD<<8)+0, - XED_IFORM_VMMCALL=(XED_ICLASS_VMMCALL<<8)+0, - XED_IFORM_VMPTRLD_MEMq=(XED_ICLASS_VMPTRLD<<8)+0, - XED_IFORM_VMPTRST_MEMq=(XED_ICLASS_VMPTRST<<8)+0, - XED_IFORM_VMREAD_MEMq_GPR64=(XED_ICLASS_VMREAD<<8)+0, - XED_IFORM_VMREAD_GPR32_GPR32=(XED_ICLASS_VMREAD<<8)+1, - XED_IFORM_VMREAD_MEMd_GPR32=(XED_ICLASS_VMREAD<<8)+2, - XED_IFORM_VMREAD_GPR64_GPR64=(XED_ICLASS_VMREAD<<8)+3, - XED_IFORM_VMRESUME=(XED_ICLASS_VMRESUME<<8)+0, - XED_IFORM_VMRUN_OrAX=(XED_ICLASS_VMRUN<<8)+0, - XED_IFORM_VMSAVE=(XED_ICLASS_VMSAVE<<8)+0, - XED_IFORM_VMWRITE_GPR64_MEMq=(XED_ICLASS_VMWRITE<<8)+0, - XED_IFORM_VMWRITE_GPR32_GPR32=(XED_ICLASS_VMWRITE<<8)+1, - XED_IFORM_VMWRITE_GPR32_MEMd=(XED_ICLASS_VMWRITE<<8)+2, - XED_IFORM_VMWRITE_GPR64_GPR64=(XED_ICLASS_VMWRITE<<8)+3, - XED_IFORM_VMXOFF=(XED_ICLASS_VMXOFF<<8)+0, - XED_IFORM_VMXON_MEMq=(XED_ICLASS_VMXON<<8)+0, - XED_IFORM_WBINVD=(XED_ICLASS_WBINVD<<8)+0, - XED_IFORM_WRMSR=(XED_ICLASS_WRMSR<<8)+0, - XED_IFORM_XADD_GPRv_GPRv=(XED_ICLASS_XADD<<8)+0, - XED_IFORM_XADD_GPR8_GPR8=(XED_ICLASS_XADD<<8)+1, - XED_IFORM_XADD_MEMv_GPRv=(XED_ICLASS_XADD<<8)+2, - XED_IFORM_XADD_MEMb_GPR8=(XED_ICLASS_XADD<<8)+3, - XED_IFORM_XCHG_GPR8_GPR8=(XED_ICLASS_XCHG<<8)+0, - XED_IFORM_XCHG_MEMv_GPRv=(XED_ICLASS_XCHG<<8)+1, - XED_IFORM_XCHG_GPRv_GPRv=(XED_ICLASS_XCHG<<8)+2, - XED_IFORM_XCHG_MEMb_GPR8=(XED_ICLASS_XCHG<<8)+3, - XED_IFORM_XCHG_GPRv_OrAX=(XED_ICLASS_XCHG<<8)+4, - XED_IFORM_XGETBV=(XED_ICLASS_XGETBV<<8)+0, - XED_IFORM_XLAT_FINAL_DSEG=(XED_ICLASS_XLAT<<8)+0, - XED_IFORM_XLAT=(XED_ICLASS_XLAT<<8)+1, - XED_IFORM_XOR_GPRv_IMM=(XED_ICLASS_XOR<<8)+0, - XED_IFORM_XOR_MEMv_GPRv=(XED_ICLASS_XOR<<8)+1, - XED_IFORM_XOR_MEMb_IMM=(XED_ICLASS_XOR<<8)+2, - XED_IFORM_XOR_GPR8_MEMb=(XED_ICLASS_XOR<<8)+3, - XED_IFORM_XOR_MEMb_GPR8=(XED_ICLASS_XOR<<8)+4, - XED_IFORM_XOR_GPRv_MEMv=(XED_ICLASS_XOR<<8)+5, - XED_IFORM_XOR_AL_IMM=(XED_ICLASS_XOR<<8)+6, - XED_IFORM_XOR_GPRv_GPRv=(XED_ICLASS_XOR<<8)+7, - XED_IFORM_XOR_MEMv_IMM=(XED_ICLASS_XOR<<8)+8, - XED_IFORM_XOR_OrAX_IMM=(XED_ICLASS_XOR<<8)+9, - XED_IFORM_XOR_GPR8_GPR8=(XED_ICLASS_XOR<<8)+10, - XED_IFORM_XOR_GPR8_IMM=(XED_ICLASS_XOR<<8)+11, - XED_IFORM_XORPD_XMMpd_XMMpd=(XED_ICLASS_XORPD<<8)+0, - XED_IFORM_XORPD_XMMpd_MEMpd=(XED_ICLASS_XORPD<<8)+1, - XED_IFORM_XORPS_XMMps_MEMps=(XED_ICLASS_XORPS<<8)+0, - XED_IFORM_XORPS_XMMps_XMMps=(XED_ICLASS_XORPS<<8)+1, - XED_IFORM_XRSTOR_MEMmxsave=(XED_ICLASS_XRSTOR<<8)+0, - XED_IFORM_XSAVE_MEMmxsave=(XED_ICLASS_XSAVE<<8)+0, - XED_IFORM_XSETBV=(XED_ICLASS_XSETBV<<8)+0, - XED_IFORM_LAST -} xed_iform_enum_t; - -XED_DLL_EXPORT xed_iform_enum_t -str2xed_iform_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_iform_enum_t2str(const xed_iform_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-immdis.h b/misc/decoder_test/XED2/include/xed-immdis.h deleted file mode 100644 index 530ba2b..0000000 --- a/misc/decoder_test/XED2/include/xed-immdis.h +++ /dev/null @@ -1,217 +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-immdis.h -/// @author Mark Charney - - - -#ifndef _XED_IMMDIS_H_ -# define _XED_IMMDIS_H_ - -#include "xed-types.h" -#include "xed-common-defs.h" -#include "xed-util.h" - - -//////////////////////////////////////////////////////////////////////////// -// DEFINES -//////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////// -// TYPES -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -// PROTOTYPES -//////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////// -// GLOBALS -//////////////////////////////////////////////////////////////////////////// - -#define XED_MAX_IMMDIS_BYTES 8 - -// A union for speed of zeroing -union xed_immdis_values_t -{ - xed_uint8_t x[XED_MAX_IMMDIS_BYTES];// STORED LITTLE ENDIAN. BYTE 0 is LSB - xed_uint64_t q; -}; - -/// Stores immediates and displacements for the encoder & decoder. -typedef struct XED_DLL_EXPORT xed_immdis_s { - union xed_immdis_values_t value; - unsigned int currently_used_space :4; // current number of assigned bytes - unsigned int max_allocated_space :4; // max allocation, 4 or 8 - xed_bool_t present : 1; - xed_bool_t immediate_is_unsigned : 1; -} xed_immdis_t; - -XED_DLL_EXPORT void xed_immdis__check(xed_immdis_t* q, int p) ; - - -XED_DLL_EXPORT void xed_immdis_init(xed_immdis_t* p, int max_bytes); - -/// @name Sizes and lengths -//@{ -/// return the number of bytes added -XED_DLL_EXPORT unsigned int xed_immdis_get_bytes(const xed_immdis_t* p) ; - -//@} - -/// @name Accessors for the value of the immediate or displacement -//@{ -XED_DLL_EXPORT xed_int64_t -xed_immdis_get_signed64(const xed_immdis_t* p); - -XED_DLL_EXPORT xed_uint64_t -xed_immdis_get_unsigned64(const xed_immdis_t* p); - -XED_DLL_EXPORT xed_bool_t -xed_immdis_is_zero(const xed_immdis_t* p) ; - -XED_DLL_EXPORT xed_bool_t -xed_immdis_is_one(const xed_immdis_t* p) ; - -/// Access the i'th byte of the immediate -XED_DLL_EXPORT xed_uint8_t xed_immdis_get_byte(const xed_immdis_t* p, unsigned int i) ; -//@} - -/// @name Presence / absence of an immediate or displacement -//@{ -XED_DLL_EXPORT void xed_immdis_set_present(xed_immdis_t* p) ; - -/// True if the object has had a value or individual bytes added to it. -XED_DLL_EXPORT xed_bool_t xed_immdis_is_present(const xed_immdis_t* p) ; -//@} - - -/// @name Initialization and setup -//@{ -XED_DLL_EXPORT void xed_immdis_set_max_len(xed_immdis_t* p, unsigned int mx) ; -XED_DLL_EXPORT void -xed_immdis_zero(xed_immdis_t* p); - -XED_DLL_EXPORT unsigned int xed_immdis_get_max_length(const xed_immdis_t* p) ; - -//@} - -/// @name Signed vs Unsigned -//@{ -/// Return true if signed. -XED_DLL_EXPORT xed_bool_t -xed_immdis_is_unsigned(const xed_immdis_t* p) ; -/// Return true if signed. -XED_DLL_EXPORT xed_bool_t -xed_immdis_is_signed(const xed_immdis_t* p) ; - -/// Set the immediate to be signed; For decoder use only. -XED_DLL_EXPORT void -xed_immdis_set_signed(xed_immdis_t* p) ; -/// Set the immediate to be unsigned; For decoder use only. -XED_DLL_EXPORT void -xed_immdis_set_unsigned( xed_immdis_t* p) ; -//@} - - -/// @name Adding / setting values -//@{ -XED_DLL_EXPORT void -xed_immdis_add_byte(xed_immdis_t* p, xed_uint8_t b); - - -XED_DLL_EXPORT void -xed_immdis_add_byte_array(xed_immdis_t* p, int nb, xed_uint8_t* ba); - -/// Add 1, 2, 4 or 8 bytes depending on the value x and the mask of -/// legal_widths. The default value of legal_widths = 0x5 only stops -/// adding bytes only on 1 or 4 byte quantities - depending on which -/// bytes of x are zero -- as is used for most memory addressing. You -/// can set legal_widths to 0x7 for branches (1, 2 or 4 byte branch -/// displacements). Or if you have an 8B displacement, you can set -/// legal_widths to 0x8. NOTE: add_shortest_width will add up to -/// XED_MAX_IMMDIS_BYTES if the x value requires it. NOTE: 16b memory -/// addressing can have 16b immediates. -XED_DLL_EXPORT void -xed_immdis_add_shortest_width_signed(xed_immdis_t* p, xed_int64_t x, xed_uint8_t legal_widths); - -/// See add_shortest_width_signed() -XED_DLL_EXPORT void -xed_immdis_add_shortest_width_unsigned(xed_immdis_t* p, xed_uint64_t x, xed_uint8_t legal_widths ); - - -/// add an 8 bit value to the byte array -XED_DLL_EXPORT void -xed_immdis_add8(xed_immdis_t* p, xed_int8_t d); - -/// add a 16 bit value to the byte array -XED_DLL_EXPORT void -xed_immdis_add16(xed_immdis_t* p, xed_int16_t d); - -/// add a 32 bit value to the byte array -XED_DLL_EXPORT void -xed_immdis_add32(xed_immdis_t* p, xed_int32_t d); - -/// add a 64 bit value to the byte array. -XED_DLL_EXPORT void -xed_immdis_add64(xed_immdis_t* p, xed_int64_t d); - -//@} - - -/// @name printing / debugging -//@{ - -/// just print the raw bytes in hex with a leading 0x -XED_DLL_EXPORT int xed_immdis_print(const xed_immdis_t* p, char* buf, int buflen); - -/// Print the value as a signed or unsigned number depending on the -/// value of the immediate_is_unsigned variable. -XED_DLL_EXPORT int -xed_immdis_print_signed_or_unsigned(const xed_immdis_t* p, char* buf, int buflen); - -/// print the signed value, appropriate width, with a leading 0x -XED_DLL_EXPORT int -xed_immdis_print_value_signed(const xed_immdis_t* p, char* buf, int buflen); - -/// print the unsigned value, appropriate width, with a leading 0x -XED_DLL_EXPORT int -xed_immdis_print_value_unsigned(const xed_immdis_t* p, char* buf, int buflen); - -int xed_immdis__print_ptr(const xed_immdis_t* p, char* buf, int buflen); -#endif - -//@} - - -//////////////////////////////////////////////////////////////////////////// -//Local Variables: -//pref: "../../xed-immdis.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed-immed.h b/misc/decoder_test/XED2/include/xed-immed.h deleted file mode 100644 index c79f697..0000000 --- a/misc/decoder_test/XED2/include/xed-immed.h +++ /dev/null @@ -1,64 +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-immed.h -/// @author Mark Charney - -#ifndef _XED_IMMED_H_ -# define _XED_IMMED_H_ - -#include "xed-types.h" -#include "xed-common-defs.h" -#include "xed-util.h" - -XED_DLL_EXPORT xed_int64_t xed_immed_from_bytes(xed_int8_t* bytes, xed_uint_t n); - /* - Convert an array of bytes representing a Little Endian byte ordering - of a number (11 22 33 44 55.. 88), in to a a 64b SIGNED number. That gets - stored in memory in little endian format of course. - - Input 11 22 33 44 55 66 77 88, 8 - Ouptut 0x8877665544332211 (stored in memory as (lsb) 11 22 33 44 55 66 77 88 (msb)) - - Input f0, 1 - Output 0xffff_ffff_ffff_fff0 (stored in memory as f0 ff ff ff ff ff ff ff) - - Input f0 00, 2 - Output 0x0000_0000_0000_00F0 (stored in memory a f0 00 00 00 00 00 00 00) - - Input 03, 1 - Output 0x0000_0000_0000_0030 (stored in memory a 30 00 00 00 00 00 00 00) - */ - - -#endif -//Local Variables: -//pref: "../../xed-immed.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed-init-pointer-names.h b/misc/decoder_test/XED2/include/xed-init-pointer-names.h deleted file mode 100644 index 892db4b..0000000 --- a/misc/decoder_test/XED2/include/xed-init-pointer-names.h +++ /dev/null @@ -1,41 +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-init-pointer-names.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_INIT_POINTER_NAMES_H_) -# define _XED_INIT_POINTER_NAMES_H_ -#include "xed-internal-header.h" -#define XED_MAX_POINTER_NAMES 17 -#endif diff --git a/misc/decoder_test/XED2/include/xed-init.h b/misc/decoder_test/XED2/include/xed-init.h deleted file mode 100644 index 34c9b7c..0000000 --- a/misc/decoder_test/XED2/include/xed-init.h +++ /dev/null @@ -1,57 +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-init.h -/// @author Mark Charney - - - - -#if !defined(_XED_INIT_H_) -# define _XED_INIT_H_ - - -/// @ingroup INIT -/// This is the call to initialize the XED encode and decode tables. It must be called -/// once before using XED. -void XED_DLL_EXPORT xed_tables_init(); -/// @ingroup INIT -/// This is the call to initialize the XED decode tables. It must be called -/// once before using XED. -void XED_DLL_EXPORT xed_decode_init(); -/// @ingroup INIT -/// This is the call to initialize the XED encode tables. It must be called -/// once before using XED's encoder. -void XED_DLL_EXPORT xed_encode_init(); - - -//////////////////////////////////////////////////////////////////////////// - -#endif diff --git a/misc/decoder_test/XED2/include/xed-inst-printer.h b/misc/decoder_test/XED2/include/xed-inst-printer.h deleted file mode 100644 index b0795a1..0000000 --- a/misc/decoder_test/XED2/include/xed-inst-printer.h +++ /dev/null @@ -1,172 +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-inst-printer.h -/// @author Mark Charney - - -#ifndef _XED_INST_PRINTER_H_ -# define _XED_INST_PRINTER_H_ -#include "xed-types.h" -#include "xed-decoded-inst.h" -#include "xed-syntax-enum.h" - -/// @name Legacy printers without context parameter -//@{ -/// Disassemble the decoded instruction using the ATT SYSV syntax. The -/// output buffer must be at least 16 bytes long. Returns true if -/// disassembly proceeded without errors. -/// @param xedd a #xed_decoded_inst_t for a decoded instruction -/// @param out_buffer a buffer to write the disassembly in to. -/// @param buffer_len maximum length of the disassembly buffer -/// @param runtime_instruction_address the address of the instruction being disassembled -/// @return Returns 0 if the disassembly fails, 1 otherwise. -///@ingroup PRINT -XED_DLL_EXPORT xed_bool_t -xed_format_att(xed_decoded_inst_t* xedd, - char* out_buffer, - xed_uint32_t buffer_len, - xed_uint64_t runtime_instruction_address); - -/// Disassemble the decoded instruction using the Intel syntax. The -/// output buffer must be at least 16 bytes long. Returns true if -/// disassembly proceeded without errors. -/// @param xedd a #xed_decoded_inst_t for a decoded instruction -/// @param out_buffer a buffer to write the disassembly in to. -/// @param buffer_len maximum length of the disassembly buffer -/// @param runtime_instruction_address the address of the instruction being disassembled -/// @return Returns 0 if the disassembly fails, 1 otherwise. -///@ingroup PRINT -XED_DLL_EXPORT xed_bool_t -xed_format_intel(xed_decoded_inst_t* xedd, - char* out_buffer, - xed_uint32_t buffer_len, - xed_uint64_t runtime_instruction_address); - -/// Disassemble the decoded instruction using the XED syntax providing all -/// operand resources (implicit, explicit, suppressed). The output buffer -/// must be at least 25 bytes long. Returns true if disassembly proceeded -/// without errors. -/// @param xedd a #xed_decoded_inst_t for a decoded instruction -/// @param out_buffer a buffer to write the disassembly in to. -/// @param buffer_len maximum length of the disassembly buffer -/// @param runtime_instruction_address the address of the instruction being disassembled -/// @return Returns 0 if the disassembly fails, 1 otherwise. -///@ingroup PRINT -XED_DLL_EXPORT xed_bool_t -xed_format_xed(xed_decoded_inst_t* xedd, - char* out_buffer, - xed_uint32_t buffer_len, - xed_uint64_t runtime_instruction_address); - - -/// Disassemble the decoded instruction using the specified syntax. -/// The output buffer must be at least 25 bytes long. Returns true if -/// disassembly proceeded without errors. -/// @param syntax a #xed_syntax_enum_t the specifies the disassembly format -/// @param xedd a #xed_decoded_inst_t for a decoded instruction -/// @param out_buffer a buffer to write the disassembly in to. -/// @param buffer_len maximum length of the disassembly buffer -/// @param runtime_instruction_address the address of the instruction being disassembled -/// @return Returns 0 if the disassembly fails, 1 otherwise. -///@ingroup PRINT -XED_DLL_EXPORT xed_bool_t -xed_format(xed_syntax_enum_t syntax, - xed_decoded_inst_t* xedd, - char* out_buffer, - int buffer_len, - xed_uint64_t runtime_instruction_address); - - -//@} -////////////////////////////////////////////////////////////////////////// - - -/// @name Printers with context parameter -//@{ -/// Disassemble the decoded instruction using the ATT SYSV syntax. The -/// output buffer must be at least 16 bytes long. Returns true if -/// disassembly proceeded without errors. -/// @param xedd a #xed_decoded_inst_t for a decoded instruction -/// @param out_buffer a buffer to write the disassembly in to. -/// @param buffer_len maximum length of the disassembly buffer -/// @param runtime_instruction_address the address of the instruction being disassembled -/// @param context A void* used only for the call back routine for symbolic disassembly if one is registered. -/// @return Returns 0 if the disassembly fails, 1 otherwise. -///@ingroup PRINT -XED_DLL_EXPORT xed_bool_t -xed_format_att_context(xed_decoded_inst_t* xedd, - char* out_buffer, - xed_uint32_t buffer_len, - xed_uint64_t runtime_instruction_address, - void* context); - -/// Disassemble the decoded instruction using the Intel syntax. The -/// output buffer must be at least 16 bytes long. Returns true if -/// disassembly proceeded without errors. -/// @param xedd a #xed_decoded_inst_t for a decoded instruction -/// @param out_buffer a buffer to write the disassembly in to. -/// @param buffer_len maximum length of the disassembly buffer -/// @param runtime_instruction_address the address of the instruction being disassembled -/// @param context A void* used only for the call back routine for symbolic disassembly if one is registered. -/// @return Returns 0 if the disassembly fails, 1 otherwise. -///@ingroup PRINT -XED_DLL_EXPORT xed_bool_t -xed_format_intel_context(xed_decoded_inst_t* xedd, - char* out_buffer, - xed_uint32_t buffer_len, - xed_uint64_t runtime_instruction_address, - void* context); - - -/// Disassemble the decoded instruction using the specified syntax. -/// The output buffer must be at least 25 bytes long. Returns true if -/// disassembly proceeded without errors. -/// @param syntax a #xed_syntax_enum_t the specifies the disassembly format -/// @param xedd a #xed_decoded_inst_t for a decoded instruction -/// @param out_buffer a buffer to write the disassembly in to. -/// @param buffer_len maximum length of the disassembly buffer -/// @param runtime_instruction_address the address of the instruction being disassembled -/// @param context A void* used only for the call back routine for symbolic disassembly if one is registered. -/// @return Returns 0 if the disassembly fails, 1 otherwise. -///@ingroup PRINT -XED_DLL_EXPORT xed_bool_t -xed_format_context(xed_syntax_enum_t syntax, - xed_decoded_inst_t* xedd, - char* out_buffer, - int buffer_len, - xed_uint64_t runtime_instruction_address, - void* context); -//@} -#endif -//////////////////////////////////////////////////////////////////////////// -//Local Variables: -//pref: "../../xed-inst-printer.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed-inst.h b/misc/decoder_test/XED2/include/xed-inst.h deleted file mode 100644 index cb68b14..0000000 --- a/misc/decoder_test/XED2/include/xed-inst.h +++ /dev/null @@ -1,323 +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-inst.h -/// @author Mark Charney - -#if !defined(_XED_INST_H_) -# define _XED_INST_H_ - -#include "xed-util.h" -#include "xed-portability.h" -#include "xed-category-enum.h" -#include "xed-extension-enum.h" -#include "xed-iclass-enum.h" -#include "xed-operand-enum.h" -#include "xed-operand-visibility-enum.h" -#include "xed-operand-action-enum.h" -#include "xed-operand-type-enum.h" -#include "xed-nonterminal-enum.h" // a generated file -#include "xed-operand-width-enum.h" // a generated file -#include "xed-reg-enum.h" // a generated file -#include "xed-attribute-enum.h" // a generated file -#include "xed-iform-enum.h" // a generated file -#include "xed-operand-bitvec.h" // a generated file - - -struct xed_decoded_inst_s; //fwd-decl - -typedef void (*xed_operand_extractor_fn_t)(struct xed_decoded_inst_s* xds); -//typedef xed_bool_t (*xed_instruction_fixed_bit_confirmer_fn_t)(struct xed_decoded_inst_s* xds); - - -/// @ingroup DEC -/// Constant information about an individual generic operand, like an operand template, describing the operand properties. See @ref DEC for API information. -typedef struct XED_DLL_EXPORT xed_operand_s -{ - xed_operand_enum_t _name; - - xed_operand_visibility_enum_t _operand_visibility; - - xed_operand_action_enum_t _rw; - xed_operand_width_enum_t _oc2; - - xed_operand_type_enum_t _type; - union { - xed_uint32_t _imm; - xed_nonterminal_enum_t _nt; // for nt_lookup_fn's - xed_reg_enum_t _reg; - } _u; -} xed_operand_t; - -/// @name xed_inst_t Template Operands Access -//@{ -/// @ingroup DEC -static XED_INLINE xed_operand_enum_t xed_operand_name(const xed_operand_t* p) { - return p->_name; -} - - -/// @ingroup DEC -static XED_INLINE xed_operand_visibility_enum_t xed_operand_operand_visibility( const xed_operand_t* p) { - return p->_operand_visibility; -} - - -/// @ingroup DEC -/// @return The #xed_operand_type_enum_t of the operand template. -/// This is probably not what you want. -static XED_INLINE xed_operand_type_enum_t xed_operand_type(const xed_operand_t* p) { - return p->_type; -} - - -/// @ingroup DEC -static XED_INLINE xed_operand_width_enum_t xed_operand_width(const xed_operand_t* p) { - return p->_oc2; -} - -/// @ingroup DEC -static XED_INLINE -xed_nonterminal_enum_t xed_operand_nonterminal_name(const xed_operand_t* p) { - return p->_u._nt; -} - -/// @ingroup DEC -/// Careful with this one -- use #xed_decoded_inst_get_reg()! This one is -/// probably not what you think it is. It is only used for hard-coded -/// registers implicit in the instruction encoding. Most likely you want to -/// get the #xed_operand_enum_t and then look up the instruction using -/// #xed_decoded_inst_get_reg(). The hard-coded registers are also available -/// that way. -/// @param p an operand template, #xed_operand_t. -/// @return the hard-wired (implicit or suppressed) registers, type #xed_reg_enum_t -static XED_INLINE xed_reg_enum_t xed_operand_reg(const xed_operand_t* p) { - return p->_u._reg; -} - - - -/// @ingroup DEC -/// Careful with this one; See #xed_operand_is_register(). -/// @param p an operand template, #xed_operand_t. -/// @return 1 if the operand template represents are register-type -/// operand. -/// -/// Related functions: -/// Use #xed_decoded_inst_get_reg() to get the decoded name of /// the -/// register, #xed_reg_enum_t. Use #xed_operand_is_register() to test -/// #xed_operand_enum_t names. -static XED_INLINE xed_uint_t xed_operand_template_is_register(const xed_operand_t* p) { - return p->_type == XED_OPERAND_TYPE_NT_LOOKUP_FN || p->_type == XED_OPERAND_TYPE_REG; -} - -/// @ingroup DEC -/// @param p an operand template, #xed_operand_t. -/// These operands represent branch displacements, memory displacements and various immediates -static XED_INLINE xed_uint32_t xed_operand_imm(const xed_operand_t* p) { - return p->_u._imm; -} - -/// @ingroup DEC -/// Print the operand p into the buffer buf, of length buflen. -/// @param p an operand template, #xed_operand_t. -/// @param buf buffer that gets filled in -/// @param buflen maximum buffer length -XED_DLL_EXPORT void xed_operand_print(const xed_operand_t* p, char* buf, int buflen); -//@} -/// @name xed_inst_t Template Operand Enum Name Classification -//@{ -/// @ingroup DEC -/// Tests the enum for inclusion in XED_OPERAND_REG0 through XED_OPERAND_REG15. -/// @param name the operand name, type #xed_operand_enum_t -/// @return 1 if the operand name is REG0...REG15, 0 otherwise. -/// -///Note there are other registers for memory addressing; See -/// #xed_operand_is_memory_addressing_register . -static XED_INLINE xed_uint_t xed_operand_is_register(xed_operand_enum_t name) { - return name >= XED_OPERAND_REG0 && name <= XED_OPERAND_REG15; -} -/// @ingroup DEC -/// Tests the enum for inclusion in XED_OPERAND_{BASE0,BASE1,INDEX,SEG0,SEG1} -/// @param name the operand name, type #xed_operand_enum_t -/// @return 1 if the operand name is for a memory addressing register operand, 0 -/// otherwise. See also #xed_operand_is_register . -static XED_INLINE xed_uint_t xed_operand_is_memory_addressing_register(xed_operand_enum_t name) { - return ( name == XED_OPERAND_BASE0 || - name == XED_OPERAND_INDEX || - name == XED_OPERAND_SEG0 || - name == XED_OPERAND_BASE1 || - name == XED_OPERAND_SEG1 ); -} - -//@} - -/// @name xed_inst_t Template Operand Read/Written -//@{ -/// @ingroup DEC -/// Returns the raw R/W action. There are many cases for conditional reads -/// and writes. -static XED_INLINE xed_operand_action_enum_t xed_operand_rw(const xed_operand_t* p) { - return p->_rw; -} - -/// @ingroup DEC -/// If the operand is read, including conditional reads -XED_DLL_EXPORT xed_uint_t xed_operand_read(const xed_operand_t* p); -/// @ingroup DEC -/// If the operand is read-only, including conditional reads -XED_DLL_EXPORT xed_uint_t xed_operand_read_only(const xed_operand_t* p); -/// @ingroup DEC -/// If the operand is written, including conditional writes -XED_DLL_EXPORT xed_uint_t xed_operand_written(const xed_operand_t* p); -/// @ingroup DEC -/// If the operand is written-only, including conditional writes -XED_DLL_EXPORT xed_uint_t xed_operand_written_only(const xed_operand_t* p); -/// @ingroup DEC -/// If the operand is read-and-written, conditional reads and conditional writes -XED_DLL_EXPORT xed_uint_t xed_operand_read_and_written(const xed_operand_t* p); -/// @ingroup DEC -/// If the operand has a conditional read (may also write) -XED_DLL_EXPORT xed_uint_t xed_operand_conditional_read(const xed_operand_t* p); -/// @ingroup DEC -/// If the operand has a conditional write (may also read) -XED_DLL_EXPORT xed_uint_t xed_operand_conditional_write(const xed_operand_t* p); -//@} - - -#include "xed-gen-table-defs.h" -XED_DLL_GLOBAL extern const xed_operand_t xed_operand[XED_MAX_OPERAND_TABLE_NODES]; - -/// @ingroup DEC -/// constant information about a decoded instruction form, including the pointer to the constant operand properties #xed_operand_t for this instruction form. -typedef struct XED_DLL_EXPORT xed_inst_s { - xed_iclass_enum_t _iclass; - xed_category_enum_t _category; - xed_extension_enum_t _extension; - xed_operand_bitvec_t _operand_bitvec; - // The instruction form for this iclass. The iform is a zero-based dense sequence for each iclass. - xed_uint8_t _iform; - xed_iform_enum_t _iform_enum; - - //xed_instruction_fixed_bit_confirmer_fn_t _confirmer; - - // number of operands in the operands array - xed_uint8_t _noperands; - - // index into the xed_operand[] array of xed_operand_t structures - xed_uint32_t _operand_base; - // bit vector of values from the xed_attribute_enum_t - xed_uint32_t _attributes; - - // rflags info -- index in to the 2 tables of flags information. - // If _flag_complex is true, then the data are in the - // xed_flags_complex_table[]. Otherwise, the data are in the - // xed_flags_simple_table[]. - xed_uint16_t _flag_info_index; - xed_bool_t _flag_complex; - - xed_uint8_t _cpl; // the nominal CPL for the instruction. -} xed_inst_t; - -/// @name xed_inst_t Template Instruction Information -//@{ -/// @ingroup DEC -/// Return the current privilege level (CPL). -XED_DLL_EXPORT unsigned int xed_inst_cpl(const xed_inst_t* p) ; - - -//These next few are not doxygen commented because I want people to use the higher -//level interface in xed-decoded-inst.h. -static XED_INLINE xed_iclass_enum_t xed_inst_iclass(const xed_inst_t* p) { - return p->_iclass; -} - -static XED_INLINE xed_category_enum_t xed_inst_category(const xed_inst_t* p) { - return p->_category; -} - -static XED_INLINE xed_extension_enum_t xed_inst_extension(const xed_inst_t* p) { - return p->_extension; -} - -static XED_INLINE xed_uint_t xed_inst_iform(const xed_inst_t* p) { - return p->_iform; -} -static XED_INLINE xed_iform_enum_t xed_inst_iform_enum(const xed_inst_t* p) { - return p->_iform_enum; -} - - -///@ingroup DEC -/// Number of instruction operands -static XED_INLINE unsigned int xed_inst_noperands(const xed_inst_t* p) { - return p->_noperands; -} - -///@ingroup DEC -/// Obtain a pointer to an individual operand -static XED_INLINE const xed_operand_t* xed_inst_operand(const xed_inst_t* p, unsigned int i) { - xed_assert(i < p->_noperands); - return &(xed_operand[p->_operand_base + i]); -} - - - -XED_DLL_EXPORT xed_uint32_t xed_inst_flag_info_index(const xed_inst_t* p); - -//@} - -/// @name xed_inst_t Attribute access -//@{ -/// @ingroup DEC -/// Scan for the attribute attr and return 1 if it is found, 0 otherwise. -static XED_INLINE xed_uint32_t xed_inst_get_attribute(const xed_inst_t* p, xed_attribute_enum_t attr) { - if (p->_attributes & attr) - return 1; - return 0; -} - -/// @ingroup DEC -/// Return the attributes bit vector -static XED_INLINE xed_uint32_t xed_inst_get_attributes(const xed_inst_t* p) { - return p->_attributes; -} -/// @ingroup DEC -/// Return the maximum number of defined attributes, independent of any instruction. -XED_DLL_EXPORT unsigned int xed_attribute_max(); - -/// @ingroup DEC -/// Return the i'th global attribute in a linear sequence, independent of -/// any instruction. This is used for scanning and printing all attributes. -XED_DLL_EXPORT xed_attribute_enum_t xed_attribute(unsigned int i); - -//@} - -#endif diff --git a/misc/decoder_test/XED2/include/xed-interface.h b/misc/decoder_test/XED2/include/xed-interface.h deleted file mode 100644 index f288cd2..0000000 --- a/misc/decoder_test/XED2/include/xed-interface.h +++ /dev/null @@ -1,72 +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-interface.h -/// @author Mark Charney - - - - -#if !defined(_XED_INTERFACE_H_) -# define _XED_INTERFACE_H_ - -//////////////////////////////////////////////////////////////////////////// -#include "xed-common-hdrs.h" -#include "xed-types.h" -//#include "xed-error-enum.h" -#include "xed-operand-enum.h" - -#include "xed-init.h" -#include "xed-decode.h" - -#include "xed-state.h" // dstate, legacy -#include "xed-syntax-enum.h" -#include "xed-reg-class-enum.h" // generated -#include "xed-reg-class.h" -#include "xed-inst-printer.h" - -#include "xed-encode.h" -#include "xed-util.h" -//#include "xed-decode-cache.h" -#include "xed-inst-printer.h" -#include "xed-operand-action.h" - -#include "xed-version.h" -#include "xed-decoded-inst.h" -#include "xed-inst.h" -#include "xed-iclass-enum.h" // generated -#include "xed-category-enum.h" // generated -#include "xed-extension-enum.h" // generated -#include "xed-attribute-enum.h" // generated - -#include "xed-disas.h" // callbacks for disassembly -//////////////////////////////////////////////////////////////////////////// - -#endif diff --git a/misc/decoder_test/XED2/include/xed-machine-mode-enum.h b/misc/decoder_test/XED2/include/xed-machine-mode-enum.h deleted file mode 100644 index 623de7e..0000000 --- a/misc/decoder_test/XED2/include/xed-machine-mode-enum.h +++ /dev/null @@ -1,55 +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-machine-mode-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_MACHINE_MODE_ENUM_H_) -# define _XED_MACHINE_MODE_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_MACHINE_MODE_INVALID, - XED_MACHINE_MODE_LONG_64, ///< 64b operating mode - XED_MACHINE_MODE_LONG_COMPAT_32, ///< 32b operating mode - XED_MACHINE_MODE_LONG_COMPAT_16, ///< 16b operating mode - XED_MACHINE_MODE_LEGACY_32, ///< 32b operating mode - XED_MACHINE_MODE_LEGACY_16, ///< 16b operating mode - XED_MACHINE_MODE_LAST -} xed_machine_mode_enum_t; - -XED_DLL_EXPORT xed_machine_mode_enum_t -str2xed_machine_mode_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_machine_mode_enum_t2str(const xed_machine_mode_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-nonterminal-enum.h b/misc/decoder_test/XED2/include/xed-nonterminal-enum.h deleted file mode 100644 index 8296a34..0000000 --- a/misc/decoder_test/XED2/include/xed-nonterminal-enum.h +++ /dev/null @@ -1,163 +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-nonterminal-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_NONTERMINAL_ENUM_H_) -# define _XED_NONTERMINAL_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_NONTERMINAL_INVALID, - XED_NONTERMINAL_AR10, - XED_NONTERMINAL_AR11, - XED_NONTERMINAL_AR12, - XED_NONTERMINAL_AR13, - XED_NONTERMINAL_AR14, - XED_NONTERMINAL_AR15, - XED_NONTERMINAL_AR8, - XED_NONTERMINAL_AR9, - XED_NONTERMINAL_ARAX, - XED_NONTERMINAL_ARBP, - XED_NONTERMINAL_ARBX, - XED_NONTERMINAL_ARCX, - XED_NONTERMINAL_ARDI, - XED_NONTERMINAL_ARDX, - XED_NONTERMINAL_ARSI, - XED_NONTERMINAL_ARSP, - XED_NONTERMINAL_ASZ_NONTERM, - XED_NONTERMINAL_BRANCH_HINT, - XED_NONTERMINAL_BRDISP8, - XED_NONTERMINAL_BRDISPZ, - XED_NONTERMINAL_CR_B, - XED_NONTERMINAL_CR_R, - XED_NONTERMINAL_DF64, - XED_NONTERMINAL_DR_B, - XED_NONTERMINAL_DR_R, - XED_NONTERMINAL_FINAL_DSEG, - XED_NONTERMINAL_FINAL_DSEG1, - XED_NONTERMINAL_FINAL_DSEG1_MODE64, - XED_NONTERMINAL_FINAL_DSEG1_NOT64, - XED_NONTERMINAL_FINAL_DSEG_MODE64, - XED_NONTERMINAL_FINAL_DSEG_NOT64, - XED_NONTERMINAL_FINAL_ESEG, - XED_NONTERMINAL_FINAL_SSEG, - XED_NONTERMINAL_FINAL_SSEG1, - XED_NONTERMINAL_FINAL_SSEG_MODE64, - XED_NONTERMINAL_FINAL_SSEG_NOT64, - XED_NONTERMINAL_GPR16_B, - XED_NONTERMINAL_GPR16_R, - XED_NONTERMINAL_GPR32_B, - XED_NONTERMINAL_GPR32_R, - XED_NONTERMINAL_GPR32_X, - XED_NONTERMINAL_GPR64_B, - XED_NONTERMINAL_GPR64_R, - XED_NONTERMINAL_GPR64_X, - XED_NONTERMINAL_GPR8_B, - XED_NONTERMINAL_GPR8_R, - XED_NONTERMINAL_GPRV_B, - XED_NONTERMINAL_GPRV_R, - XED_NONTERMINAL_GPRY_B, - XED_NONTERMINAL_GPRY_R, - XED_NONTERMINAL_GPRZ_B, - XED_NONTERMINAL_GPRZ_R, - XED_NONTERMINAL_GPR_ERROR_B, - XED_NONTERMINAL_GPR_ERROR_R, - XED_NONTERMINAL_INSTRUCTIONS, - XED_NONTERMINAL_ISA, - XED_NONTERMINAL_LOCK_VALIDATE, - XED_NONTERMINAL_MEMDISP16, - XED_NONTERMINAL_MEMDISP32, - XED_NONTERMINAL_MEMDISP8, - XED_NONTERMINAL_MEMDISPV, - XED_NONTERMINAL_MMX_B, - XED_NONTERMINAL_MMX_R, - XED_NONTERMINAL_MODRM, - XED_NONTERMINAL_MODRM16, - XED_NONTERMINAL_MODRM32, - XED_NONTERMINAL_MODRM64ALT32, - XED_NONTERMINAL_OEAX, - XED_NONTERMINAL_OEBP, - XED_NONTERMINAL_OEBX, - XED_NONTERMINAL_OECX, - XED_NONTERMINAL_OEDI, - XED_NONTERMINAL_OEDX, - XED_NONTERMINAL_OESI, - XED_NONTERMINAL_OESP, - XED_NONTERMINAL_OR10, - XED_NONTERMINAL_OR11, - XED_NONTERMINAL_OR12, - XED_NONTERMINAL_OR13, - XED_NONTERMINAL_OR14, - XED_NONTERMINAL_OR15, - XED_NONTERMINAL_OR8, - XED_NONTERMINAL_OR9, - XED_NONTERMINAL_ORAX, - XED_NONTERMINAL_ORBP, - XED_NONTERMINAL_ORBX, - XED_NONTERMINAL_ORCX, - XED_NONTERMINAL_ORDI, - XED_NONTERMINAL_ORDX, - XED_NONTERMINAL_ORSI, - XED_NONTERMINAL_ORSP, - XED_NONTERMINAL_OSZ_NONTERM, - XED_NONTERMINAL_PREFIXES, - XED_NONTERMINAL_REFINING66, - XED_NONTERMINAL_REMOVE_SEGMENT, - XED_NONTERMINAL_REP_VALIDATE, - XED_NONTERMINAL_RFLAGS, - XED_NONTERMINAL_RIP, - XED_NONTERMINAL_SEG, - XED_NONTERMINAL_SIB, - XED_NONTERMINAL_SIB_BASE0, - XED_NONTERMINAL_SIMM8, - XED_NONTERMINAL_SIMMZ, - XED_NONTERMINAL_TMP_B, - XED_NONTERMINAL_TMP_R, - XED_NONTERMINAL_UIMM16, - XED_NONTERMINAL_UIMM32, - XED_NONTERMINAL_UIMM8, - XED_NONTERMINAL_UIMM8_1, - XED_NONTERMINAL_UIMMV, - XED_NONTERMINAL_X87, - XED_NONTERMINAL_XMM_B, - XED_NONTERMINAL_XMM_R, - XED_NONTERMINAL_LAST -} xed_nonterminal_enum_t; - -XED_DLL_EXPORT xed_nonterminal_enum_t -str2xed_nonterminal_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_nonterminal_enum_t2str(const xed_nonterminal_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-operand-action-enum.h b/misc/decoder_test/XED2/include/xed-operand-action-enum.h deleted file mode 100644 index 679e52e..0000000 --- a/misc/decoder_test/XED2/include/xed-operand-action-enum.h +++ /dev/null @@ -1,57 +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-operand-action-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_OPERAND_ACTION_ENUM_H_) -# define _XED_OPERAND_ACTION_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_OPERAND_ACTION_INVALID, - XED_OPERAND_ACTION_RW, ///< Read and written (must write) - XED_OPERAND_ACTION_R, ///< Read-only - XED_OPERAND_ACTION_W, ///< Write-only (must write) - XED_OPERAND_ACTION_RCW, ///< Read and conditionlly written (may write) - XED_OPERAND_ACTION_CW, ///< Conditionlly written (may write) - XED_OPERAND_ACTION_CRW, ///< Conditionlly read, always written (must write) - XED_OPERAND_ACTION_CR, ///< Conditional read - XED_OPERAND_ACTION_LAST -} xed_operand_action_enum_t; - -XED_DLL_EXPORT xed_operand_action_enum_t -str2xed_operand_action_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_operand_action_enum_t2str(const xed_operand_action_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-operand-action.h b/misc/decoder_test/XED2/include/xed-operand-action.h deleted file mode 100644 index 45de0c5..0000000 --- a/misc/decoder_test/XED2/include/xed-operand-action.h +++ /dev/null @@ -1,52 +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-operand-action.h -/// @author Mark Charney - -#if !defined(_XED_OPERAND_ACTION_H_) -# define _XED_OPERAND_ACTION_H_ - -#include "xed-types.h" -#include "xed-operand-action-enum.h" - -XED_DLL_EXPORT xed_uint_t xed_operand_action_read(const xed_operand_action_enum_t rw); -XED_DLL_EXPORT xed_uint_t xed_operand_action_read_only(const xed_operand_action_enum_t rw); -XED_DLL_EXPORT xed_uint_t xed_operand_action_written(const xed_operand_action_enum_t rw); -XED_DLL_EXPORT xed_uint_t xed_operand_action_written_only(const xed_operand_action_enum_t rw); -XED_DLL_EXPORT xed_uint_t xed_operand_action_read_and_written(const xed_operand_action_enum_t rw); -XED_DLL_EXPORT xed_uint_t xed_operand_action_conditional_read(const xed_operand_action_enum_t rw); -XED_DLL_EXPORT xed_uint_t xed_operand_action_conditional_write(const xed_operand_action_enum_t rw); - -#endif - -//Local Variables: -//pref: "../../xed-operand-action.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed-operand-bitvec.h b/misc/decoder_test/XED2/include/xed-operand-bitvec.h deleted file mode 100644 index b7bb96e..0000000 --- a/misc/decoder_test/XED2/include/xed-operand-bitvec.h +++ /dev/null @@ -1,127 +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-operand-bitvec.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_OPERAND_BITVEC_H_) -# define _XED_OPERAND_BITVEC_H_ -#include "xed-types.h" -typedef union { - xed_uint32_t i[4]; - struct { - xed_uint32_t x_AGEN : 1; /* 00:00 */ - xed_uint32_t x_AMODE : 1; /* 00:01 */ - xed_uint32_t x_ASZ : 1; /* 00:02 */ - xed_uint32_t x_BASE0 : 1; /* 00:03 */ - xed_uint32_t x_BASE1 : 1; /* 00:04 */ - xed_uint32_t x_BRDISP_WIDTH : 1; /* 00:05 */ - xed_uint32_t x_BRDISP0 : 1; /* 00:06 */ - xed_uint32_t x_BRDISP1 : 1; /* 00:07 */ - xed_uint32_t x_DEFAULT_SEG : 1; /* 00:08 */ - xed_uint32_t x_DF64 : 1; /* 00:09 */ - xed_uint32_t x_DISP_WIDTH : 1; /* 00:10 */ - xed_uint32_t x_DISP0 : 1; /* 00:11 */ - xed_uint32_t x_DISP1 : 1; /* 00:12 */ - xed_uint32_t x_DISP2 : 1; /* 00:13 */ - xed_uint32_t x_DISP3 : 1; /* 00:14 */ - xed_uint32_t x_EASZ : 1; /* 00:15 */ - xed_uint32_t x_ENCODER_PREFERRED : 1; /* 00:16 */ - xed_uint32_t x_EOSZ : 1; /* 00:17 */ - xed_uint32_t x_ERROR : 1; /* 00:18 */ - xed_uint32_t x_HINT_TAKEN : 1; /* 00:19 */ - xed_uint32_t x_HINT_NOT_TAKEN : 1; /* 00:20 */ - xed_uint32_t x_ICLASS : 1; /* 00:21 */ - xed_uint32_t x_IMM_WIDTH : 1; /* 00:22 */ - xed_uint32_t x_IMM0 : 1; /* 00:23 */ - xed_uint32_t x_IMM0SIGNED : 1; /* 00:24 */ - xed_uint32_t x_IMM1 : 1; /* 00:25 */ - xed_uint32_t x_INDEX : 1; /* 00:26 */ - xed_uint32_t x_LOCK : 1; /* 00:27 */ - xed_uint32_t x_LOCKABLE : 1; /* 00:28 */ - xed_uint32_t x_MEM_WIDTH : 1; /* 00:29 */ - xed_uint32_t x_MEM0 : 1; /* 00:30 */ - xed_uint32_t x_MEM1 : 1; /* 00:31 */ - xed_uint32_t x_MOD : 1; /* 01:00 */ - xed_uint32_t x_MODE : 1; /* 01:01 */ - xed_uint32_t x_MODRM : 1; /* 01:02 */ - xed_uint32_t x_NOREX : 1; /* 01:03 */ - xed_uint32_t x_OSZ : 1; /* 01:04 */ - xed_uint32_t x_OUTREG : 1; /* 01:05 */ - xed_uint32_t x_PTR : 1; /* 01:06 */ - xed_uint32_t x_REFINING : 1; /* 01:07 */ - xed_uint32_t x_REG : 1; /* 01:08 */ - xed_uint32_t x_REG0 : 1; /* 01:09 */ - xed_uint32_t x_REG1 : 1; /* 01:10 */ - xed_uint32_t x_REG2 : 1; /* 01:11 */ - xed_uint32_t x_REG3 : 1; /* 01:12 */ - xed_uint32_t x_REG4 : 1; /* 01:13 */ - xed_uint32_t x_REG5 : 1; /* 01:14 */ - xed_uint32_t x_REG6 : 1; /* 01:15 */ - xed_uint32_t x_REG7 : 1; /* 01:16 */ - xed_uint32_t x_REG8 : 1; /* 01:17 */ - xed_uint32_t x_REG9 : 1; /* 01:18 */ - xed_uint32_t x_REG10 : 1; /* 01:19 */ - xed_uint32_t x_REG11 : 1; /* 01:20 */ - xed_uint32_t x_REG12 : 1; /* 01:21 */ - xed_uint32_t x_REG13 : 1; /* 01:22 */ - xed_uint32_t x_REG14 : 1; /* 01:23 */ - xed_uint32_t x_REG15 : 1; /* 01:24 */ - xed_uint32_t x_RELBR : 1; /* 01:25 */ - xed_uint32_t x_REP : 1; /* 01:26 */ - xed_uint32_t x_REP_ABLE : 1; /* 01:27 */ - xed_uint32_t x_REX : 1; /* 01:28 */ - xed_uint32_t x_REXB : 1; /* 01:29 */ - xed_uint32_t x_REXR : 1; /* 01:30 */ - xed_uint32_t x_REXW : 1; /* 01:31 */ - xed_uint32_t x_REXX : 1; /* 02:00 */ - xed_uint32_t x_RM : 1; /* 02:01 */ - xed_uint32_t x_SCALE : 1; /* 02:02 */ - xed_uint32_t x_SEG_OVD : 1; /* 02:03 */ - xed_uint32_t x_SEG0 : 1; /* 02:04 */ - xed_uint32_t x_SEG1 : 1; /* 02:05 */ - xed_uint32_t x_SIB : 1; /* 02:06 */ - xed_uint32_t x_SIBBASE : 1; /* 02:07 */ - xed_uint32_t x_SIBINDEX : 1; /* 02:08 */ - xed_uint32_t x_SIBSCALE : 1; /* 02:09 */ - xed_uint32_t x_SMODE : 1; /* 02:10 */ - xed_uint32_t x_UIMM00 : 1; /* 02:11 */ - xed_uint32_t x_UIMM1 : 1; /* 02:12 */ - xed_uint32_t x_UIMM01 : 1; /* 02:13 */ - xed_uint32_t x_UIMM02 : 1; /* 02:14 */ - xed_uint32_t x_UIMM03 : 1; /* 02:15 */ - xed_uint32_t x_USING_DEFAULT_SEGMENT0 : 1; /* 02:16 */ - xed_uint32_t x_USING_DEFAULT_SEGMENT1 : 1; /* 02:17 */ - } s; -} xed_operand_bitvec_t; -#endif diff --git a/misc/decoder_test/XED2/include/xed-operand-ctype-enum.h b/misc/decoder_test/XED2/include/xed-operand-ctype-enum.h deleted file mode 100644 index 3df032f..0000000 --- a/misc/decoder_test/XED2/include/xed-operand-ctype-enum.h +++ /dev/null @@ -1,57 +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-operand-ctype-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_OPERAND_CTYPE_ENUM_H_) -# define _XED_OPERAND_CTYPE_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_OPERAND_CTYPE_INVALID, - XED_OPERAND_CTYPE_XED_BITS_T, - XED_OPERAND_CTYPE_XED_ERROR_ENUM_T, - XED_OPERAND_CTYPE_XED_ICLASS_ENUM_T, - XED_OPERAND_CTYPE_XED_INT16_T, - XED_OPERAND_CTYPE_XED_REG_ENUM_T, - XED_OPERAND_CTYPE_XED_UINT16_T, - XED_OPERAND_CTYPE_XED_UINT8_T, - XED_OPERAND_CTYPE_LAST -} xed_operand_ctype_enum_t; - -XED_DLL_EXPORT xed_operand_ctype_enum_t -str2xed_operand_ctype_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_operand_ctype_enum_t2str(const xed_operand_ctype_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-operand-ctype-map.h b/misc/decoder_test/XED2/include/xed-operand-ctype-map.h deleted file mode 100644 index c497795..0000000 --- a/misc/decoder_test/XED2/include/xed-operand-ctype-map.h +++ /dev/null @@ -1,42 +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-operand-ctype-map.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_OPERAND_CTYPE_MAP_H_) -# define _XED_OPERAND_CTYPE_MAP_H_ -#include "xed-internal-header.h" -xed_operand_ctype_enum_t xed_operand_get_ctype(xed_operand_enum_t opname); -unsigned int xed_operand_get_width(xed_operand_enum_t opname); -#endif diff --git a/misc/decoder_test/XED2/include/xed-operand-enum.h b/misc/decoder_test/XED2/include/xed-operand-enum.h deleted file mode 100644 index a85421e..0000000 --- a/misc/decoder_test/XED2/include/xed-operand-enum.h +++ /dev/null @@ -1,132 +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-operand-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_OPERAND_ENUM_H_) -# define _XED_OPERAND_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_OPERAND_INVALID, - XED_OPERAND_AGEN, - XED_OPERAND_AMODE, - XED_OPERAND_ASZ, - XED_OPERAND_BASE0, - XED_OPERAND_BASE1, - XED_OPERAND_BRDISP_WIDTH, - XED_OPERAND_BRDISP0, - XED_OPERAND_BRDISP1, - XED_OPERAND_DEFAULT_SEG, - XED_OPERAND_DF64, - XED_OPERAND_DISP_WIDTH, - XED_OPERAND_DISP0, - XED_OPERAND_DISP1, - XED_OPERAND_DISP2, - XED_OPERAND_DISP3, - XED_OPERAND_EASZ, - XED_OPERAND_ENCODER_PREFERRED, - XED_OPERAND_EOSZ, - XED_OPERAND_ERROR, - XED_OPERAND_HINT_TAKEN, - XED_OPERAND_HINT_NOT_TAKEN, - XED_OPERAND_ICLASS, - XED_OPERAND_IMM_WIDTH, - XED_OPERAND_IMM0, - XED_OPERAND_IMM0SIGNED, - XED_OPERAND_IMM1, - XED_OPERAND_INDEX, - XED_OPERAND_LOCK, - XED_OPERAND_LOCKABLE, - XED_OPERAND_MEM_WIDTH, - XED_OPERAND_MEM0, - XED_OPERAND_MEM1, - XED_OPERAND_MOD, - XED_OPERAND_MODE, - XED_OPERAND_MODRM, - XED_OPERAND_NOREX, - XED_OPERAND_OSZ, - XED_OPERAND_OUTREG, - XED_OPERAND_PTR, - XED_OPERAND_REFINING, - XED_OPERAND_REG, - XED_OPERAND_REG0, - XED_OPERAND_REG1, - XED_OPERAND_REG2, - XED_OPERAND_REG3, - XED_OPERAND_REG4, - XED_OPERAND_REG5, - XED_OPERAND_REG6, - XED_OPERAND_REG7, - XED_OPERAND_REG8, - XED_OPERAND_REG9, - XED_OPERAND_REG10, - XED_OPERAND_REG11, - XED_OPERAND_REG12, - XED_OPERAND_REG13, - XED_OPERAND_REG14, - XED_OPERAND_REG15, - XED_OPERAND_RELBR, - XED_OPERAND_REP, - XED_OPERAND_REP_ABLE, - XED_OPERAND_REX, - XED_OPERAND_REXB, - XED_OPERAND_REXR, - XED_OPERAND_REXW, - XED_OPERAND_REXX, - XED_OPERAND_RM, - XED_OPERAND_SCALE, - XED_OPERAND_SEG_OVD, - XED_OPERAND_SEG0, - XED_OPERAND_SEG1, - XED_OPERAND_SIB, - XED_OPERAND_SIBBASE, - XED_OPERAND_SIBINDEX, - XED_OPERAND_SIBSCALE, - XED_OPERAND_SMODE, - XED_OPERAND_UIMM00, - XED_OPERAND_UIMM1, - XED_OPERAND_UIMM01, - XED_OPERAND_UIMM02, - XED_OPERAND_UIMM03, - XED_OPERAND_USING_DEFAULT_SEGMENT0, - XED_OPERAND_USING_DEFAULT_SEGMENT1, - XED_OPERAND_LAST -} xed_operand_enum_t; - -XED_DLL_EXPORT xed_operand_enum_t -str2xed_operand_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_operand_enum_t2str(const xed_operand_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-operand-storage.h b/misc/decoder_test/XED2/include/xed-operand-storage.h deleted file mode 100644 index 084698f..0000000 --- a/misc/decoder_test/XED2/include/xed-operand-storage.h +++ /dev/null @@ -1,49 +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-operand-storage.h -/// @author Mark Charney - - - -#ifndef _XED_OPERAND_STORAGE_H_ -# define _XED_OPERAND_STORAGE_H_ - -#include "xed-common-hdrs.h" -#include "xed-types.h" -#include "xed-portability.h" - -typedef xed_uint16_t xed_operand_values_t; - -//////////////////////////////////////////////////////////////////////////// -#endif -//Local Variables: -//pref: "../../xed-operand-storage.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed-operand-type-enum.h b/misc/decoder_test/XED2/include/xed-operand-type-enum.h deleted file mode 100644 index 8d28c9c..0000000 --- a/misc/decoder_test/XED2/include/xed-operand-type-enum.h +++ /dev/null @@ -1,55 +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-operand-type-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_OPERAND_TYPE_ENUM_H_) -# define _XED_OPERAND_TYPE_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_OPERAND_TYPE_INVALID, - XED_OPERAND_TYPE_ERROR, - XED_OPERAND_TYPE_IMM, - XED_OPERAND_TYPE_IMM_CONST, - XED_OPERAND_TYPE_NT_LOOKUP_FN, - XED_OPERAND_TYPE_REG, - XED_OPERAND_TYPE_LAST -} xed_operand_type_enum_t; - -XED_DLL_EXPORT xed_operand_type_enum_t -str2xed_operand_type_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_operand_type_enum_t2str(const xed_operand_type_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-operand-values-interface.h b/misc/decoder_test/XED2/include/xed-operand-values-interface.h deleted file mode 100644 index 5063843..0000000 --- a/misc/decoder_test/XED2/include/xed-operand-values-interface.h +++ /dev/null @@ -1,431 +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-operand-values-interface.h -/// @author Mark Charney - -#if !defined(_XED_OPERAND_VALUES_INTERFACE_H_) -# define _XED_OPERAND_VALUES_INTERFACE_H_ - -#include "xed-common-hdrs.h" -#include "xed-common-defs.h" -#include "xed-portability.h" -#include "xed-util.h" -#include "xed-types.h" -#include "xed-state.h" // a generated file -#include "xed-operand-enum.h" // a generated file -#include "xed-operand-storage.h" -#include "xed-reg-enum.h" // generated -#include "xed-iclass-enum.h" // generated -/// @name Initialization -//@{ -/// @ingroup OPERANDS -/// Initializes operand structure -XED_DLL_EXPORT void xed_operand_values_init(xed_operand_values_t* p); - -/// @ingroup OPERANDS -/// Initializes operand structure and sets state values -XED_DLL_EXPORT void xed_operand_values_init_set_mode(xed_operand_values_t* p, - const xed_state_t* dstate); -/// @ingroup OPERANDS -/// Initializes dst operand structure but preserves the existing -/// MODE/SMODE/AMODE values from the src operand structure. -XED_DLL_EXPORT void xed_operand_values_init_keep_mode( xed_operand_values_t* dst, - const xed_operand_values_t* src ); -//@} - -// Returns the raw operand fields. Do not use this. -XED_DLL_EXPORT xed_uint32_t -xed_operand_values_get_operand_decider(const xed_operand_values_t* p, - xed_operand_enum_t operand_decider_index) ; - - -/////////////////////////////////////////////////////////// -/// @name String output -//@{ -/// @ingroup OPERANDS -/// Dump all the information about the operands to buf. -XED_DLL_EXPORT void xed_operand_values_dump(const xed_operand_values_t* ov, char* buf, int buflen); -/// @ingroup OPERANDS -/// More tersely dump all the information about the operands to buf. -XED_DLL_EXPORT void xed_operand_values_print_short(const xed_operand_values_t* ov, char* buf, int buflen); -//@} - -/// @name REP/REPNE Prefixes -//@{ -/// @ingroup OPERANDS -/// True if the instruction has a real REP prefix. This returns false if -/// there is no F2/F3 prefix or the F2/F3 prefix is used to refine the -/// opcode as in some SSE operations. -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_real_rep(const xed_operand_values_t* p); -/// @ingroup OPERANDS -/// True if the instruction as a real F3 REP prefix. -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_rep_prefix(const xed_operand_values_t* p); -/// @ingroup OPERANDS -/// True if the instruction as a real F2 REP prefix. -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_repne_prefix(const xed_operand_values_t* p); -//@} - -/// @ingroup OPERANDS -/// Returns true if the memory operation has atomic read-modify-write -/// semantics. An XCHG accessing memory is atomic with or without a -/// LOCK prefix. -XED_DLL_EXPORT xed_bool_t -xed_operand_values_get_atomic(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -/// Returns true if the memory operatoin has a valid lock prefix. -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_lock_prefix(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -/// Indicates if the default segment is being used. -/// @param[in] p the pointer to the #xed_operand_values_t structure. -/// @param[in] i 0 or 1, indicating which memory operation. -/// @return true if the memory operation is using the default segment for the associated addressing mode base register. -XED_DLL_EXPORT xed_bool_t -xed_operand_values_using_default_segment(const xed_operand_values_t* p, unsigned int i); - - - -/// @ingroup OPERANDS -/// Returns The effective operand width in bits: 16/32/64. Note this is not -/// the same as the width of the operand! For 8 bit operations, the -/// effective operand width is the machine mode's default width. -XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_effective_operand_width(const xed_operand_values_t* p); -/// @ingroup OPERANDS -/// Returns The effective address width in bits: 16/32/64. -XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_effective_address_width(const xed_operand_values_t* p); - - -/// @ingroup OPERANDS -/// True if there is a memory displacement -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_memory_displacement(const xed_operand_values_t* p); -/// @ingroup OPERANDS -/// True if there is a branch displacement -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_branch_displacement(const xed_operand_values_t* p); -/// @ingroup OPERANDS -/// True if there is a memory or branch displacement -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_displacement(const xed_operand_values_t* p); - - -/// @ingroup OPERANDS -/// Deprecated. Compatibility function for XED0. See has_memory_displacement(). -XED_DLL_EXPORT xed_bool_t -xed_operand_values_get_displacement_for_memop(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -/// Return true if there is an immediate operand -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_immediate(const xed_operand_values_t* p); - - -/// @ingroup OPERANDS -/// ALIAS for has_displacement(). -/// Deprecated. See has_memory_displacement() and -/// has_branch_displacement(). -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_disp(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_address_size_prefix(const xed_operand_values_t* p); -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_operand_size_prefix(const xed_operand_values_t* p); - -#if 0 -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_refining_66_prefix(const xed_operand_values_t* p); -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_refining_f2_prefix(const xed_operand_values_t* p); -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_refining_f3_prefix(const xed_operand_values_t* p); -#endif - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_segment_prefix(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -/// Return the segment prefix, if any, as a #xed_reg_enum_t value. -XED_DLL_EXPORT xed_reg_enum_t -xed_operand_values_segment_prefix(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_bool_t -xed_operand_values_is_prefetch(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_bool_t xed_operand_values_get_long_mode(const xed_operand_values_t* p); - -/// @name Memory Addressing -//@{ -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_bool_t -xed_operand_values_accesses_memory(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT unsigned int -xed_operand_values_number_of_memory_operands(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT unsigned int -xed_operand_values_get_memory_operand_length(const xed_operand_values_t* p, - unsigned int memop_idx); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_reg_enum_t -xed_operand_values_get_base_reg(const xed_operand_values_t* p,unsigned int memop_idx); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_reg_enum_t -xed_operand_values_get_index_reg(const xed_operand_values_t* p,unsigned int memop_idx); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_reg_enum_t -xed_operand_values_get_seg_reg(const xed_operand_values_t* p,unsigned int memop_idx); - -/// @ingroup OPERANDS -XED_DLL_EXPORT unsigned int -xed_operand_values_get_scale(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -/// Returns true if the instruction access memory but without using a MODRM -/// byte limiting its addressing modes. -XED_DLL_EXPORT xed_bool_t -xed_operand_values_memop_without_modrm(const xed_operand_values_t* p); -/// @ingroup OPERANDS -/// Returns true if the instruction has a MODRM byte. -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_modrm_byte(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -/// Returns true if the instruction has a SIB byte. -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_sib_byte(const xed_operand_values_t* p); -//@} - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_bool_t -xed_operand_values_branch_not_taken_hint(const xed_operand_values_t* p); -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_bool_t -xed_operand_values_branch_taken_hint(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_bool_t -xed_operand_values_is_nop(const xed_operand_values_t* p); - - -/// @name Immediates -//@{ -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_int64_t -xed_operand_values_get_immediate_int64(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_uint64_t -xed_operand_values_get_immediate_uint64(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -/// Return true if the first immediate (IMM0) is signed -XED_DLL_EXPORT xed_uint_t xed_operand_values_get_immediate_is_signed(const xed_operand_values_t* p); - - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_uint8_t -xed_operand_values_get_immediate_byte(const xed_operand_values_t* p,unsigned int i); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_uint8_t -xed_operand_values_get_second_immediate(const xed_operand_values_t* p); -//@} - -/// @name Memory Displacements -//@{ -/// @ingroup OPERANDS -/// Return the memory displacement width in BYTES -XED_DLL_EXPORT xed_uint32_t -xed_operand_values_get_memory_displacement_length(const xed_operand_values_t* p); -/// @ingroup OPERANDS -/// Return the memory displacement width in BITS -XED_DLL_EXPORT xed_uint32_t -xed_operand_values_get_memory_displacement_length_bits(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_int64_t -xed_operand_values_get_memory_displacement_int64(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_uint8_t -xed_operand_values_get_memory_displacement_byte(const xed_operand_values_t* p,unsigned int i); -//@} - -/// @name Branch Displacements -//@{ -/// @ingroup OPERANDS -/// Return the branch displacement width in bytes -XED_DLL_EXPORT xed_uint32_t -xed_operand_values_get_branch_displacement_length(const xed_operand_values_t* p); -/// @ingroup OPERANDS -/// Return the branch displacement width in bits -XED_DLL_EXPORT xed_uint32_t -xed_operand_values_get_branch_displacement_length_bits(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_int32_t -xed_operand_values_get_branch_displacement_int32(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_uint8_t -xed_operand_values_get_branch_displacement_byte(const xed_operand_values_t* p,unsigned int i); -//@} - - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_iclass_enum_t -xed_operand_values_get_iclass(const xed_operand_values_t* p); - -//////////////////////////////////////////////////// -// ENCODE API -//////////////////////////////////////////////////// -/// @name Encoding -//@{ -/// @ingroup OPERANDS -XED_DLL_EXPORT void xed_operand_values_zero_immediate(xed_operand_values_t* p); -/// @ingroup OPERANDS -XED_DLL_EXPORT void xed_operand_values_zero_branch_displacement(xed_operand_values_t* p); -/// @ingroup OPERANDS -XED_DLL_EXPORT void xed_operand_values_zero_memory_displacement(xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT void xed_operand_values_set_lock(xed_operand_values_t* p); -/// @ingroup OPERANDS -XED_DLL_EXPORT void xed_operand_values_zero_segment_override(xed_operand_values_t* p); - - -/// @ingroup OPERANDS -XED_DLL_EXPORT void -xed_operand_values_set_iclass(xed_operand_values_t* p,xed_iclass_enum_t iclass); - -/// @ingroup OPERANDS -XED_DLL_EXPORT void -xed_operand_values_set_effective_operand_width(xed_operand_values_t* p,unsigned int width); - -/// @ingroup OPERANDS -XED_DLL_EXPORT void -xed_operand_values_set_memory_operand_length(xed_operand_values_t* p,unsigned int memop_length); - - -/// @ingroup OPERANDS -/// Set the memory displacement using a BYTES length -XED_DLL_EXPORT void -xed_operand_values_set_memory_displacement(xed_operand_values_t* p,xed_int64_t x, unsigned int len); -/// @ingroup OPERANDS -/// Set the memory displacement using a BITS length -XED_DLL_EXPORT void -xed_operand_values_set_memory_displacement_bits(xed_operand_values_t* p,xed_int64_t x, unsigned int len_bits); - -/// @ingroup OPERANDS -/// Indicate that we have a relative branch. -XED_DLL_EXPORT void xed_operand_values_set_relbr(xed_operand_values_t* p); - -/// @ingroup OPERANDS -/// Set the branch displacement using a BYTES length -XED_DLL_EXPORT void -xed_operand_values_set_branch_displacement(xed_operand_values_t* p,xed_int32_t x, unsigned int len); -/// @ingroup OPERANDS -/// Set the branch displacement using a BITS length -XED_DLL_EXPORT void -xed_operand_values_set_branch_displacement_bits(xed_operand_values_t* p,xed_int32_t x, unsigned int len_bits); - -/// @ingroup OPERANDS -/// Set the signed immediate using a BYTES length -XED_DLL_EXPORT void -xed_operand_values_set_immediate_signed(xed_operand_values_t* p,xed_int32_t x, unsigned int bytes); -/// @ingroup OPERANDS -/// Set the signed immediate using a BITS length -XED_DLL_EXPORT void -xed_operand_values_set_immediate_signed_bits(xed_operand_values_t* p,xed_int32_t x, unsigned int bits); - - -/// @ingroup OPERANDS -/// Set the unsigned immediate using a BYTE length. -XED_DLL_EXPORT void -xed_operand_values_set_immediate_unsigned(xed_operand_values_t* p,xed_uint64_t x, unsigned int bytes); -/// @ingroup OPERANDS -/// Set the unsigned immediate using a BIT length. -XED_DLL_EXPORT void -xed_operand_values_set_immediate_unsigned_bits(xed_operand_values_t* p,xed_uint64_t x, unsigned int bits); - - - -/// @ingroup OPERANDS -XED_DLL_EXPORT void xed_operand_values_set_base_reg(xed_operand_values_t* p, - unsigned int memop_idx, - xed_reg_enum_t new_base); - -/// @ingroup OPERANDS -XED_DLL_EXPORT void xed_operand_values_set_seg_reg(xed_operand_values_t* p, - unsigned int memop_idx, - xed_reg_enum_t new_seg); - -/// @ingroup OPERANDS -XED_DLL_EXPORT void xed_operand_values_set_index_reg(xed_operand_values_t* p, - unsigned int memop_idx, - xed_reg_enum_t new_index); - -/// @ingroup OPERANDS -XED_DLL_EXPORT void xed_operand_values_set_scale(xed_operand_values_t* p, - xed_uint_t memop_idx, - xed_uint_t new_scale); - - -/// @ingroup OPERANDS -/// Set the operand storage field entry named 'operand_name' to the -/// register value specified by 'reg_name'. -XED_DLL_EXPORT void -xed_operand_values_set_operand_reg(xed_operand_values_t* p, - xed_operand_enum_t operand_name, - xed_reg_enum_t reg_name); - -//@} -#endif - -//Local Variables: -//pref: "../../xed-operand-values-interface.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed-operand-visibility-enum.h b/misc/decoder_test/XED2/include/xed-operand-visibility-enum.h deleted file mode 100644 index fa7593d..0000000 --- a/misc/decoder_test/XED2/include/xed-operand-visibility-enum.h +++ /dev/null @@ -1,53 +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-operand-visibility-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_OPERAND_VISIBILITY_ENUM_H_) -# define _XED_OPERAND_VISIBILITY_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_OPVIS_INVALID, - XED_OPVIS_EXPLICIT, ///< Shows up in operand encoding - XED_OPVIS_IMPLICIT, ///< Part of the opcode, but listed as an operand - XED_OPVIS_SUPPRESSED, ///< Part of the opcode, but not typically listed as an operand - XED_OPVIS_LAST -} xed_operand_visibility_enum_t; - -XED_DLL_EXPORT xed_operand_visibility_enum_t -str2xed_operand_visibility_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_operand_visibility_enum_t2str(const xed_operand_visibility_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-operand-width-enum.h b/misc/decoder_test/XED2/include/xed-operand-width-enum.h deleted file mode 100644 index 48efb9d..0000000 --- a/misc/decoder_test/XED2/include/xed-operand-width-enum.h +++ /dev/null @@ -1,87 +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-operand-width-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_OPERAND_WIDTH_ENUM_H_) -# define _XED_OPERAND_WIDTH_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_OPERAND_WIDTH_INVALID, - XED_OPERAND_WIDTH_1, - XED_OPERAND_WIDTH_A, - XED_OPERAND_WIDTH_B, - XED_OPERAND_WIDTH_D, - XED_OPERAND_WIDTH_DQ, - XED_OPERAND_WIDTH_M64INT, - XED_OPERAND_WIDTH_M64REAL, - XED_OPERAND_WIDTH_MEM108, - XED_OPERAND_WIDTH_MEM14, - XED_OPERAND_WIDTH_MEM16, - XED_OPERAND_WIDTH_MEM16INT, - XED_OPERAND_WIDTH_MEM28, - XED_OPERAND_WIDTH_MEM32INT, - XED_OPERAND_WIDTH_MEM32REAL, - XED_OPERAND_WIDTH_MEM80DEC, - XED_OPERAND_WIDTH_MEM80REAL, - XED_OPERAND_WIDTH_MEM98, - XED_OPERAND_WIDTH_MFPXENV, - XED_OPERAND_WIDTH_MXSAVE, - XED_OPERAND_WIDTH_MPREFETCH, - XED_OPERAND_WIDTH_P, - XED_OPERAND_WIDTH_P2, - XED_OPERAND_WIDTH_PD, - XED_OPERAND_WIDTH_PS, - XED_OPERAND_WIDTH_PI, - XED_OPERAND_WIDTH_Q, - XED_OPERAND_WIDTH_S, - XED_OPERAND_WIDTH_SD, - XED_OPERAND_WIDTH_SI, - XED_OPERAND_WIDTH_SS, - XED_OPERAND_WIDTH_V, - XED_OPERAND_WIDTH_W, - XED_OPERAND_WIDTH_Z, - XED_OPERAND_WIDTH_Z8, - XED_OPERAND_WIDTH_SPW, - XED_OPERAND_WIDTH_V3, - XED_OPERAND_WIDTH_SPW2, - XED_OPERAND_WIDTH_LAST -} xed_operand_width_enum_t; - -XED_DLL_EXPORT xed_operand_width_enum_t -str2xed_operand_width_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_operand_width_enum_t2str(const xed_operand_width_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-portability.h b/misc/decoder_test/XED2/include/xed-portability.h deleted file mode 100644 index 8b72797..0000000 --- a/misc/decoder_test/XED2/include/xed-portability.h +++ /dev/null @@ -1,135 +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-portability.h -/// @author Mark Charney - -#ifndef _XED_PORTABILITY_H_ -# define _XED_PORTABILITY_H_ -# include "xed-types.h" - -#define STATIC_CAST(x,y) ((x) (y)) -#define REINTERPRET_CAST(x,y) ((x) (y)) - -XED_DLL_EXPORT xed_uint_t xed_strlen(const char* s); -XED_DLL_EXPORT void xed_strcat(char* dst, const char* src); -XED_DLL_EXPORT void xed_strcpy(char* dst, const char* src); -/// returns the number of bytes remaining for the next use of #xed_strncpy() or #xed_strncat() . -XED_DLL_EXPORT int xed_strncpy(char* dst, const char* src, int len); -/// returns the number of bytes remaining for the next use of #xed_strncpy() or #xed_strncat() . -XED_DLL_EXPORT int xed_strncat(char* dst, const char* src, int len); - - -/* recognize VC98 */ -#if !defined(__INTEL_COMPILER) -# if defined(_WIN32) && defined(_MSC_VER) -# if _MSC_VER == 1200 -# define XED_MSVC6 1 -# endif -# endif -# if defined(_WIN32) && defined(_MSC_VER) -# if _MSC_VER == 1310 -# define XED_MSVC7 1 -# endif -# endif -# if defined(_WIN32) && defined(_MSC_VER) -# if _MSC_VER == 1400 -# define XED_MSVC8 1 -# endif -# endif -#endif - -/* I've had compatibilty problems here so I'm using a trivial indirection */ -#if defined(__GNUC__) -# if defined(__CYGWIN__) - /* cygwin's gcc 3.4.4 on windows complains */ -# define XED_FMT_X "%lx" -# define XED_FMT_08X "%08lx" -# define XED_FMT_D "%ld" -# define XED_FMT_U "%lu" -# define XED_FMT_9U "%9lu" -# else -# define XED_FMT_X "%x" -# define XED_FMT_08X "%08x" -# define XED_FMT_D "%d" -# define XED_FMT_U "%u" -# define XED_FMT_9U "%9u" -# endif -#else -# define XED_FMT_X "%x" -# define XED_FMT_08X "%08x" -# define XED_FMT_D "%d" -# define XED_FMT_U "%u" -# define XED_FMT_9U "%9u" -#endif - -#if defined(__GNUC__) && defined(__LP64__) && !defined(__APPLE__) -# define XED_FMT_LX "%lx" -# define XED_FMT_LU "%lu" -# define XED_FMT_LD "%ld" -# define XED_FMT_LX16 "%016lx" -#else -# define XED_FMT_LX "%llx" -# define XED_FMT_LU "%llu" -# define XED_FMT_LD "%lld" -# define XED_FMT_LX16 "%016llx" -#endif - -#if defined(_M_IA64) -# define XED_IPF -# define XED_FMT_SIZET "%ld" -#else -# define XED_FMT_SIZET "%d" -#endif - -#if defined(__GNUC__) -# define XED_INLINE inline -# define XED_NORETURN __attribute__ ((noreturn)) -# if __GNUC__ == 2 -# define XED_NOINLINE -# else -# define XED_NOINLINE __attribute__ ((noinline)) -# endif -#else -# define XED_INLINE __inline -# if defined(XED_MSVC6) -# define XED_NOINLINE -# else -# define XED_NOINLINE __declspec(noinline) -# endif -# define XED_NORETURN __declspec(noreturn) -#endif - -#endif // _XED_PORTABILITY_H_ - -//////////////////////////////////////////////////////////////////////////// -//Local Variables: -//pref: "../../xed-portability.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed-reg-class-enum.h b/misc/decoder_test/XED2/include/xed-reg-class-enum.h deleted file mode 100644 index 03586a7..0000000 --- a/misc/decoder_test/XED2/include/xed-reg-class-enum.h +++ /dev/null @@ -1,65 +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-reg-class-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_REG_CLASS_ENUM_H_) -# define _XED_REG_CLASS_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_REG_CLASS_INVALID, - XED_REG_CLASS_CR, - XED_REG_CLASS_DR, - XED_REG_CLASS_FLAGS, - XED_REG_CLASS_GPR, - XED_REG_CLASS_GPR16, - XED_REG_CLASS_GPR32, - XED_REG_CLASS_GPR64, - XED_REG_CLASS_GPR8, - XED_REG_CLASS_IP, - XED_REG_CLASS_MMX, - XED_REG_CLASS_PSEUDO, - XED_REG_CLASS_SR, - XED_REG_CLASS_TMP, - XED_REG_CLASS_X87, - XED_REG_CLASS_XMM, - XED_REG_CLASS_LAST -} xed_reg_class_enum_t; - -XED_DLL_EXPORT xed_reg_class_enum_t -str2xed_reg_class_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_reg_class_enum_t2str(const xed_reg_class_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-reg-class.h b/misc/decoder_test/XED2/include/xed-reg-class.h deleted file mode 100644 index d55b74c..0000000 --- a/misc/decoder_test/XED2/include/xed-reg-class.h +++ /dev/null @@ -1,57 +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-reg-class.h -/// @author Mark Charney - -#ifndef _XED_REG_CLASS_H_ -# define _XED_REG_CLASS_H_ - -#include "xed-types.h" -#include "xed-reg-enum.h" // a generated file -#include "xed-reg-class-enum.h" // a generated file - -/// Returns the register class of the given input register. -///@ingroup REGINTFC -XED_DLL_EXPORT xed_reg_class_enum_t xed_reg_class(xed_reg_enum_t r); - -/// Returns the specific width GPR reg class (like XED_REG_CLASS_GPR32 or XED_REG_CLASS_GPR64) -/// for a given GPR register. Or XED_REG_INVALID if not a GPR. -///@ingroup REGINTFC -XED_DLL_EXPORT xed_reg_class_enum_t xed_gpr_reg_class(xed_reg_enum_t r); - -/// Returns the largest enclosing register for any kind of register; This is mostly useful for GPRs. -///@ingroup REGINTFC -XED_DLL_EXPORT xed_reg_enum_t xed_get_largest_enclosing_register(xed_reg_enum_t r); - - -//////////////////////////////////////////////////////////////////////////// - -#endif diff --git a/misc/decoder_test/XED2/include/xed-reg-enum.h b/misc/decoder_test/XED2/include/xed-reg-enum.h deleted file mode 100644 index 6fd6cc0..0000000 --- a/misc/decoder_test/XED2/include/xed-reg-enum.h +++ /dev/null @@ -1,229 +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-reg-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_REG_ENUM_H_) -# define _XED_REG_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_REG_INVALID, - XED_REG_ERROR, - XED_REG_RAX, - XED_REG_EAX, - XED_REG_AX, - XED_REG_AH, - XED_REG_AL, - XED_REG_RCX, - XED_REG_ECX, - XED_REG_CX, - XED_REG_CH, - XED_REG_CL, - XED_REG_RDX, - XED_REG_EDX, - XED_REG_DX, - XED_REG_DH, - XED_REG_DL, - XED_REG_RBX, - XED_REG_EBX, - XED_REG_BX, - XED_REG_BH, - XED_REG_BL, - XED_REG_RSP, - XED_REG_ESP, - XED_REG_SP, - XED_REG_SPL, - XED_REG_RBP, - XED_REG_EBP, - XED_REG_BP, - XED_REG_BPL, - XED_REG_RSI, - XED_REG_ESI, - XED_REG_SI, - XED_REG_SIL, - XED_REG_RDI, - XED_REG_EDI, - XED_REG_DI, - XED_REG_DIL, - XED_REG_R8, - XED_REG_R8D, - XED_REG_R8W, - XED_REG_R8B, - XED_REG_R9, - XED_REG_R9D, - XED_REG_R9W, - XED_REG_R9B, - XED_REG_R10, - XED_REG_R10D, - XED_REG_R10W, - XED_REG_R10B, - XED_REG_R11, - XED_REG_R11D, - XED_REG_R11W, - XED_REG_R11B, - XED_REG_R12, - XED_REG_R12D, - XED_REG_R12W, - XED_REG_R12B, - XED_REG_R13, - XED_REG_R13D, - XED_REG_R13W, - XED_REG_R13B, - XED_REG_R14, - XED_REG_R14D, - XED_REG_R14W, - XED_REG_R14B, - XED_REG_R15, - XED_REG_R15D, - XED_REG_R15W, - XED_REG_R15B, - XED_REG_RIP, - XED_REG_EIP, - XED_REG_IP, - XED_REG_FLAGS, - XED_REG_EFLAGS, - XED_REG_RFLAGS, - XED_REG_CS, - XED_REG_DS, - XED_REG_ES, - XED_REG_SS, - XED_REG_FS, - XED_REG_GS, - XED_REG_XMM0, - XED_REG_XMM1, - XED_REG_XMM2, - XED_REG_XMM3, - XED_REG_XMM4, - XED_REG_XMM5, - XED_REG_XMM6, - XED_REG_XMM7, - XED_REG_XMM8, - XED_REG_XMM9, - XED_REG_XMM10, - XED_REG_XMM11, - XED_REG_XMM12, - XED_REG_XMM13, - XED_REG_XMM14, - XED_REG_XMM15, - XED_REG_MMX0, - XED_REG_MMX1, - XED_REG_MMX2, - XED_REG_MMX3, - XED_REG_MMX4, - XED_REG_MMX5, - XED_REG_MMX6, - XED_REG_MMX7, - XED_REG_ST0, - XED_REG_ST1, - XED_REG_ST2, - XED_REG_ST3, - XED_REG_ST4, - XED_REG_ST5, - XED_REG_ST6, - XED_REG_ST7, - XED_REG_CR0, - XED_REG_CR1, - XED_REG_CR2, - XED_REG_CR3, - XED_REG_CR4, - XED_REG_CR5, - XED_REG_CR6, - XED_REG_CR7, - XED_REG_CR8, - XED_REG_CR9, - XED_REG_CR10, - XED_REG_CR11, - XED_REG_CR12, - XED_REG_CR13, - XED_REG_CR14, - XED_REG_CR15, - XED_REG_DR0, - XED_REG_DR1, - XED_REG_DR2, - XED_REG_DR3, - XED_REG_DR4, - XED_REG_DR5, - XED_REG_DR6, - XED_REG_DR7, - XED_REG_DR8, - XED_REG_DR9, - XED_REG_DR10, - XED_REG_DR11, - XED_REG_DR12, - XED_REG_DR13, - XED_REG_DR14, - XED_REG_DR15, - XED_REG_ONE, - XED_REG_STACKPUSH, - XED_REG_STACKPOP, - XED_REG_GDTR, - XED_REG_LDTR, - XED_REG_IDTR, - XED_REG_TR, - XED_REG_TSC, - XED_REG_TSCAUX, - XED_REG_MSRS, - XED_REG_X87CONTROL, - XED_REG_X87STATUS, - XED_REG_X87TOP, - XED_REG_X87TAG, - XED_REG_X87PUSH, - XED_REG_X87POP, - XED_REG_X87POP2, - XED_REG_MXCSR, - XED_REG_TMP0, - XED_REG_TMP1, - XED_REG_TMP2, - XED_REG_TMP3, - XED_REG_TMP4, - XED_REG_TMP5, - XED_REG_TMP6, - XED_REG_TMP7, - XED_REG_TMP8, - XED_REG_TMP9, - XED_REG_TMP10, - XED_REG_TMP11, - XED_REG_TMP12, - XED_REG_TMP13, - XED_REG_TMP14, - XED_REG_TMP15, - XED_REG_LAST -} xed_reg_enum_t; - -XED_DLL_EXPORT xed_reg_enum_t -str2xed_reg_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_reg_enum_t2str(const xed_reg_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-reg-role-enum.h b/misc/decoder_test/XED2/include/xed-reg-role-enum.h deleted file mode 100644 index 41a4249..0000000 --- a/misc/decoder_test/XED2/include/xed-reg-role-enum.h +++ /dev/null @@ -1,56 +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-reg-role-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_REG_ROLE_ENUM_H_) -# define _XED_REG_ROLE_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_REG_ROLE_INVALID, - XED_REG_ROLE_NORMAL, ///< Register is a normal register - XED_REG_ROLE_SEGREG0, ///< The segment register associated with the first memop - XED_REG_ROLE_SEGREG1, ///< The segment register associated with the second memop - XED_REG_ROLE_BASE0, ///< The base register associated with the first memop - XED_REG_ROLE_BASE1, ///< The base register associated with the second memop - XED_REG_ROLE_INDEX, ///< The index register associated with the first memop - XED_REG_ROLE_LAST -} xed_reg_role_enum_t; - -XED_DLL_EXPORT xed_reg_role_enum_t -str2xed_reg_role_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_reg_role_enum_t2str(const xed_reg_role_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-state.h b/misc/decoder_test/XED2/include/xed-state.h deleted file mode 100644 index 83f13a2..0000000 --- a/misc/decoder_test/XED2/include/xed-state.h +++ /dev/null @@ -1,172 +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-state.h -/// @author Mark Charney - - - -#ifndef _XED_STATE_H_ -# define _XED_STATE_H_ -#include "xed-types.h" -#include "xed-portability.h" -#include "xed-address-width-enum.h" // generated -#include "xed-machine-mode-enum.h" // generated - - -/// Encapsulates machine modes for decoder/encoder requests. -/// It specifies the machine operating mode as a -/// #xed_machine_mode_enum_t -/// for decoding and encoding. For all modes other than the 64b long mode -/// (XED_MACHINE_MODE_LONG_64), a default addressing width, and a stack -/// addressing width must be supplied of type #xed_address_width_enum_t . -/// @ingroup INIT -typedef struct XED_DLL_EXPORT xed_state_s { - /// real architected machine modes - xed_machine_mode_enum_t mmode; - - /// the current default addressing width. - xed_address_width_enum_t addr_width; - - /// for 16b/32b modes - xed_address_width_enum_t stack_addr_width; -} xed_state_t; - -/// @name Initialization -//@{ -/// Constructor. -/// The mode, and addresses widths are enumerations that specify the number -/// of bits. In 64b mode (#XED_MACHINE_MODE_LONG_64) the address width and -/// stack address widths are 64b (#XED_ADDRESS_WIDTH_64b). In other machine -/// modes, you must specify valid addressing widths. -/// -/// @param p the pointer to the #xed_state_t type -/// @param arg_mmode the machine mode of type #xed_machine_mode_enum_t -/// @param arg_addr_width the address width of type #xed_address_width_enum_t (only required if not the mode is not #XED_MACHINE_MODE_LONG_64) -/// @param arg_stack_addr_width the stack address width of type #xed_address_width_enum_t (only required if not the mode is not #XED_MACHINE_MODE_LONG_64) -/// @ingroup INIT -static XED_INLINE void xed_state_init(xed_state_t* p, - xed_machine_mode_enum_t arg_mmode, - xed_address_width_enum_t arg_addr_width, - xed_address_width_enum_t arg_stack_addr_width) { - p->mmode=arg_mmode; - p->addr_width=arg_addr_width; - p->stack_addr_width=arg_stack_addr_width; -} - -/// clear the xed_state_t -/// @ingroup INIT -static XED_INLINE void xed_state_zero(xed_state_t* p) { - p->mmode= XED_MACHINE_MODE_INVALID; - p->addr_width=XED_ADDRESS_WIDTH_INVALID; - p->stack_addr_width=XED_ADDRESS_WIDTH_INVALID; -} - -//@} - -/// @name Machine mode -//@{ -/// return the machine mode -/// @ingroup INIT -static XED_INLINE xed_machine_mode_enum_t xed_state_get_machine_mode(const xed_state_t* p) { - return p->mmode; -} - - -/// true iff the machine is in LONG_64 mode -/// @ingroup INIT -static XED_INLINE xed_bool_t xed_state_long64_mode(const xed_state_t* p) { - return xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LONG_64; -} - -/// @ingroup INIT -static XED_INLINE xed_bool_t xed_state_mode_width_16(const xed_state_t* p) { - return (xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LEGACY_16) || - (xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LONG_COMPAT_16); -} - -/// @ingroup INIT -static XED_INLINE xed_bool_t xed_state_mode_width_32(const xed_state_t* p) { - return (xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LEGACY_32) || - (xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LONG_COMPAT_32); -} - - -/// Set the machine mode -/// @ingroup INIT -static XED_INLINE void xed_state_set_machine_mode( xed_state_t* p, - xed_machine_mode_enum_t arg_mode) { - p->mmode = arg_mode; -} -//@} - -/// @name Address width -//@{ -/// Set the address width -/// @ingroup INIT -static XED_INLINE void xed_state_set_address_width(xed_state_t* p, - xed_address_width_enum_t arg_addr_width) { - p->addr_width = arg_addr_width; -} - -/// return the address width -/// @ingroup INIT -static XED_INLINE xed_address_width_enum_t xed_state_get_address_width(const xed_state_t* p) { - return p->addr_width; -} - -//@} - -/// @name Stack address width -//@{ -/// set the STACK address width -/// @ingroup INIT -static XED_INLINE void xed_state_set_stack_address_width(xed_state_t* p, - xed_address_width_enum_t arg_addr_width) { - p->stack_addr_width = arg_addr_width; -} - - -/// Return the STACK address width -/// @ingroup INIT -static XED_INLINE xed_address_width_enum_t xed_state_get_stack_address_width(const xed_state_t* p) { - return p->stack_addr_width; -} -//@} - -/// @ingroup INIT -XED_DLL_EXPORT int xed_state_print(const xed_state_t* p, char* buf, int buflen); - -#endif - -//////////////////////////////////////////////////////////////////////////// -//Local Variables: -//pref: "../../xed-state.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed-syntax-enum.h b/misc/decoder_test/XED2/include/xed-syntax-enum.h deleted file mode 100644 index 9337f78..0000000 --- a/misc/decoder_test/XED2/include/xed-syntax-enum.h +++ /dev/null @@ -1,53 +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-syntax-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_SYNTAX_ENUM_H_) -# define _XED_SYNTAX_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_SYNTAX_INVALID, - XED_SYNTAX_XED, ///< XED disassembly syntax - XED_SYNTAX_ATT, ///< ATT SYSV disassembly syntax - XED_SYNTAX_INTEL, ///< Intel disassembly syntax - XED_SYNTAX_LAST -} xed_syntax_enum_t; - -XED_DLL_EXPORT xed_syntax_enum_t -str2xed_syntax_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_syntax_enum_t2str(const xed_syntax_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed-types.h b/misc/decoder_test/XED2/include/xed-types.h deleted file mode 100644 index 9e66215..0000000 --- a/misc/decoder_test/XED2/include/xed-types.h +++ /dev/null @@ -1,71 +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-types.h -/// @author Mark Charney - - -#ifndef _XED_TYPES_H_ -# define _XED_TYPES_H_ - -//////////////////////////////////////////////////////////////////////////// - -#include "xed-common-hdrs.h" - -#if defined(__GNUC__) || defined(__ICC) -# include -# define xed_uint8_t uint8_t -# define xed_uint16_t uint16_t -# define xed_uint32_t uint32_t -# define xed_uint64_t uint64_t -# define xed_int8_t int8_t -# define xed_int16_t int16_t -# define xed_int32_t int32_t -# define xed_int64_t int64_t -#elif defined(_WIN32) -# define xed_uint8_t unsigned __int8 -# define xed_uint16_t unsigned __int16 -# define xed_uint32_t unsigned __int32 -# define xed_uint64_t unsigned __int64 -# define xed_int8_t __int8 -# define xed_int16_t __int16 -# define xed_int32_t __int32 -# define xed_int64_t __int64 -#else -# error "XED types unsupported platform? Need windows, gcc, or icc." -#endif - -typedef unsigned int xed_uint_t; -typedef unsigned int xed_bits_t; -typedef unsigned int xed_bool_t; - - -//////////////////////////////////////////////////////////////////////////// -#endif diff --git a/misc/decoder_test/XED2/include/xed-util.h b/misc/decoder_test/XED2/include/xed-util.h deleted file mode 100644 index 19ef5f8..0000000 --- a/misc/decoder_test/XED2/include/xed-util.h +++ /dev/null @@ -1,264 +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-util.h -/// @author Mark Charney - - - -#ifndef _XED_UTIL_H_ -# define _XED_UTIL_H_ - -#include "xed-common-hdrs.h" -#include "xed-types.h" -#include "xed-portability.h" - - -//////////////////////////////////////////////////////////////////////////// -// DEFINES -//////////////////////////////////////////////////////////////////////////// -extern int xed_verbose; -#if defined(XED_MESSAGES) -# include // only with XED_MESSAGES defined -extern FILE* xed_log_file; -#endif -#define XED_EMIT_MESSAGES (XED_MESSAGES==1 && xed_verbose >= 1) -#define XED_INFO_VERBOSE (XED_MESSAGES==1 && xed_verbose >= 2) -#define XED_INFO2_VERBOSE (XED_MESSAGES==1 && xed_verbose >= 3) -#define XED_VERBOSE (XED_MESSAGES==1 && xed_verbose >= 4) -#define XED_MORE_VERBOSE (XED_MESSAGES==1 && xed_verbose >= 5) -#define XED_VERY_VERBOSE (XED_MESSAGES==1 && xed_verbose >= 6) - -#if defined(__GNUC__) -# define XED_FUNCNAME __func__ -#else -# define XED_FUNCNAME "" -#endif - -#if XED_MESSAGES==1 -#define XED2IMSG(x) \ - do { \ - if (XED_EMIT_MESSAGES) { \ - if (XED_VERY_VERBOSE) { \ - fprintf(xed_log_file,"%s:%d:%s: ", \ - __FILE__, __LINE__, XED_FUNCNAME); \ - } \ - fprintf x; \ - fflush(xed_log_file); \ - } \ - } while(0) - -#define XED2TMSG(x) \ - do { \ - if (XED_VERBOSE) { \ - if (XED_VERY_VERBOSE) { \ - fprintf(xed_log_file,"%s:%d:%s: ", \ - __FILE__, __LINE__, XED_FUNCNAME); \ - } \ - fprintf x; \ - fflush(xed_log_file); \ - } \ - } while(0) - -#define XED2VMSG(x) \ - do { \ - if (XED_VERY_VERBOSE) { \ - fprintf(xed_log_file,"%s:%d:%s: ", \ - __FILE__, __LINE__, XED_FUNCNAME); \ - fprintf x; \ - fflush(xed_log_file); \ - } \ - } while(0) - -#define XED2DIE(x) \ - do { \ - if (XED_EMIT_MESSAGES) { \ - fprintf(xed_log_file,"%s:%d:%s: ", \ - __FILE__, __LINE__, XED_FUNCNAME); \ - fprintf x; \ - fflush(xed_log_file); \ - } \ - xed_assert(0); \ - } while(0) - - - -#else -# define XED2IMSG(x) -# define XED2TMSG(x) -# define XED2VMSG(x) -# define XED2DIE(x) do { xed_assert(0); } while(0) -#endif - -#if defined(XED_ASSERTS) -# define xed_assert(x) do { if (( x )== 0) xed_internal_assert( #x, __FILE__, __LINE__); } while(0) -#else -# define xed_assert(x) do { } while(0) -#endif -XED_NORETURN XED_NOINLINE XED_DLL_EXPORT void xed_internal_assert(const char* s, const char* file, int line); - -/// @ingroup INIT -/// This is for registering a function to be called during XED's assert -/// processing. If you do not register an abort function, then the system's -/// abort function will be called. If your supplied function returns, then -/// abort() will still be called. -/// -/// @param fn This is a function pointer for a function that should handle the -/// assertion reporting. The function pointer points to a function that -/// takes 4 arguments: -/// (1) msg, the assertion message, -/// (2) file, the file name, -/// (3) line, the line number (as an integer), and -/// (4) other, a void pointer that is supplied as thei -/// 2nd argument to this registration. -/// @param other This is a void* that is passed back to your supplied function fn -/// as its 4th argument. It can be zero if you don't need this -/// feature. You can used this to convey whatever additional context -/// to your assertion handler (like FILE* pointers etc.). -/// -XED_DLL_EXPORT void xed_register_abort_function(void (*fn)(const char* msg, - const char* file, int line, void* other), - void* other); - - -//////////////////////////////////////////////////////////////////////////// -// PROTOTYPES -//////////////////////////////////////////////////////////////////////////// -char* xed_downcase_buf(char* s); - -int xed_itoa(char* buf, xed_uint64_t f, int buflen); -int xed_itoa_hex_zeros(char* buf, xed_uint64_t f, xed_uint_t xed_bits_to_print, xed_bool_t leading_zeros, int buflen); -int xed_itoa_hex(char* buf, xed_uint64_t f, xed_uint_t xed_bits_to_print, int buflen); -int xed_itoa_signed(char* buf, xed_int64_t f, int buflen); - -char xed_to_ascii_hex_nibble(xed_uint_t x); - -int xed_sprintf_uint8_hex(char* buf, xed_uint8_t x, int buflen); -int xed_sprintf_uint16_hex(char* buf, xed_uint16_t x, int buflen); -int xed_sprintf_uint32_hex(char* buf, xed_uint32_t x, int buflen); -int xed_sprintf_uint64_hex(char* buf, xed_uint64_t x, int buflen); -int xed_sprintf_uint8(char* buf, xed_uint8_t x, int buflen); -int xed_sprintf_uint16(char* buf, xed_uint16_t x, int buflen); -int xed_sprintf_uint32(char* buf, xed_uint32_t x, int buflen); -int xed_sprintf_uint64(char* buf, xed_uint64_t x, int buflen); -int xed_sprintf_int8(char* buf, xed_int8_t x, int buflen); -int xed_sprintf_int16(char* buf, xed_int16_t x, int buflen); -int xed_sprintf_int32(char* buf, xed_int32_t x, int buflen); -int xed_sprintf_int64(char* buf, xed_int64_t x, int buflen); - - -/// Set the FILE* for XED's log msgs -XED_DLL_EXPORT void xed_set_log_file(FILE* o); - - -/// Set the verbosity level for XED -XED_DLL_EXPORT void xed_set_verbosity(int v); - -void xed_derror(const char* s); -void xed_dwarn(const char* s); - -XED_DLL_EXPORT xed_int64_t xed_sign_extend32_64(xed_int32_t x); -XED_DLL_EXPORT xed_int64_t xed_sign_extend16_64(xed_int16_t x); -XED_DLL_EXPORT xed_int64_t xed_sign_extend8_64(xed_int8_t x); - -XED_DLL_EXPORT xed_int32_t xed_sign_extend16_32(xed_int16_t x); -XED_DLL_EXPORT xed_int32_t xed_sign_extend8_32(xed_int8_t x); - -XED_DLL_EXPORT xed_int16_t xed_sign_extend8_16(xed_int8_t x); - -///arbitrary sign extension from a qty of "bits" length to 32b -XED_DLL_EXPORT xed_int32_t xed_sign_extend_arbitrary_to_32(xed_uint32_t x, unsigned int bits); - -///arbitrary sign extension from a qty of "bits" length to 64b -XED_DLL_EXPORT xed_int64_t xed_sign_extend_arbitrary_to_64(xed_uint64_t x, unsigned int bits); - - -XED_DLL_EXPORT xed_uint64_t xed_zero_extend32_64(xed_uint32_t x); -XED_DLL_EXPORT xed_uint64_t xed_zero_extend16_64(xed_uint16_t x); -XED_DLL_EXPORT xed_uint64_t xed_zero_extend8_64(xed_uint8_t x); - -XED_DLL_EXPORT xed_uint32_t xed_zero_extend16_32(xed_uint16_t x); -XED_DLL_EXPORT xed_uint32_t xed_zero_extend8_32(xed_uint8_t x); - -XED_DLL_EXPORT xed_uint16_t xed_zero_extend8_16(xed_uint8_t x); - -XED_DLL_EXPORT xed_int32_t -xed_little_endian_to_int32(xed_uint64_t x, unsigned int len); - -XED_DLL_EXPORT xed_int64_t -xed_little_endian_to_int64(xed_uint64_t x, unsigned int len); -XED_DLL_EXPORT xed_uint64_t -xed_little_endian_to_uint64(xed_uint64_t x, unsigned int len); - -XED_DLL_EXPORT xed_int64_t -xed_little_endian_hilo_to_int64(xed_uint32_t hi_le, xed_uint32_t lo_le, unsigned int len); -XED_DLL_EXPORT xed_uint64_t -xed_little_endian_hilo_to_uint64(xed_uint32_t hi_le, xed_uint32_t lo_le, unsigned int len); - -XED_DLL_EXPORT xed_uint8_t -xed_get_byte(xed_uint64_t x, unsigned int i, unsigned int len); - -static XED_INLINE xed_uint64_t xed_make_uint64(xed_uint32_t hi, xed_uint32_t lo) { - xed_uint64_t x,y; - x=hi; - y= (x<<32) | lo; - return y; -} -static XED_INLINE xed_int64_t xed_make_int64(xed_uint32_t hi, xed_uint32_t lo) { - xed_uint64_t x,y; - x=hi; - y= (x<<32) | lo; - return STATIC_CAST(xed_int64_t,y); -} - -/// returns the number of bytes required to store the UNSIGNED number x -/// given a mask of legal lengths. For the legal_widths argument, bit 0 -/// implies 1 byte is a legal return width, bit 1 implies that 2 bytes is a -/// legal return width, bit 2 implies that 4 bytes is a legal return width. -/// This returns 8 (indicating 8B) if none of the provided legal widths -/// applies. -XED_DLL_EXPORT xed_uint_t xed_shortest_width_unsigned(xed_uint64_t x, xed_uint8_t legal_widths); - -/// returns the number of bytes required to store the SIGNED number x -/// given a mask of legal lengths. For the legal_widths argument, bit 0 implies 1 -/// byte is a legal return width, bit 1 implies that 2 bytes is a legal -/// return width, bit 2 implies that 4 bytes is a legal return width. This -/// returns 8 (indicating 8B) if none of the provided legal widths applies. -XED_DLL_EXPORT xed_uint_t xed_shortest_width_signed(xed_int64_t x, xed_uint8_t legal_widths); - -//////////////////////////////////////////////////////////////////////////// -// GLOBALS -//////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////// -#endif -//Local Variables: -//pref: "../../xed-util.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed-version.h b/misc/decoder_test/XED2/include/xed-version.h deleted file mode 100644 index 13393ba..0000000 --- a/misc/decoder_test/XED2/include/xed-version.h +++ /dev/null @@ -1,39 +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 */ - -#if !defined(_XED_VERSION_H_) -# define _XED_VERSION_H_ -#include "xed-common-hdrs.h" - -///@ingroup INIT -/// Returns a string representing XED svn commit revision and time stamp. -XED_DLL_EXPORT char* xed_get_version(); -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-address-width-enum.h b/misc/decoder_test/XED2/include/xed/xed-address-width-enum.h deleted file mode 100644 index f37166c..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-address-width-enum.h +++ /dev/null @@ -1,53 +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-address-width-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_ADDRESS_WIDTH_ENUM_H_) -# define _XED_ADDRESS_WIDTH_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_ADDRESS_WIDTH_INVALID=0, - XED_ADDRESS_WIDTH_16b=2, ///< 16b addressing - XED_ADDRESS_WIDTH_32b=4, ///< 32b addressing - XED_ADDRESS_WIDTH_64b=8, ///< 64b addressing - XED_ADDRESS_WIDTH_LAST -} xed_address_width_enum_t; - -XED_DLL_EXPORT xed_address_width_enum_t -str2xed_address_width_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_address_width_enum_t2str(const xed_address_width_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-attribute-enum.h b/misc/decoder_test/XED2/include/xed/xed-attribute-enum.h deleted file mode 100644 index 4aca105..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-attribute-enum.h +++ /dev/null @@ -1,67 +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-attribute-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_ATTRIBUTE_ENUM_H_) -# define _XED_ATTRIBUTE_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_ATTRIBUTE_INVALID=0, - XED_ATTRIBUTE_ANY_REP_ABLE=1, - XED_ATTRIBUTE_ATT_OPERAND_ORDER_EXCEPTION=2, - XED_ATTRIBUTE_FAR_XFER=4, - XED_ATTRIBUTE_FIXED_BASE0=8, - XED_ATTRIBUTE_FIXED_BASE1=16, - XED_ATTRIBUTE_REQUIRES_ALIGNMENT=32, - XED_ATTRIBUTE_SIMD_PACKED_ALIGNMENT=64, - XED_ATTRIBUTE_SIMD_SCALAR=128, - XED_ATTRIBUTE_SKIPLOW32=256, - XED_ATTRIBUTE_SKIPLOW64=512, - XED_ATTRIBUTE_UNALIGNED=1024, - XED_ATTRIBUTE_X87_MMX_STATE_CW=2048, - XED_ATTRIBUTE_X87_MMX_STATE_R=4096, - XED_ATTRIBUTE_X87_MMX_STATE_W=8192, - XED_ATTRIBUTE_XMM_STATE_CW=16384, - XED_ATTRIBUTE_XMM_STATE_R=32768, - XED_ATTRIBUTE_XMM_STATE_W=65536, - XED_ATTRIBUTE_LAST -} xed_attribute_enum_t; - -XED_DLL_EXPORT xed_attribute_enum_t -str2xed_attribute_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_attribute_enum_t2str(const xed_attribute_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-category-enum.h b/misc/decoder_test/XED2/include/xed/xed-category-enum.h deleted file mode 100644 index d23b2d6..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-category-enum.h +++ /dev/null @@ -1,86 +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-category-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_CATEGORY_ENUM_H_) -# define _XED_CATEGORY_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_CATEGORY_INVALID, - XED_CATEGORY_3DNOW, - XED_CATEGORY_BASE, - XED_CATEGORY_BINARY, - XED_CATEGORY_BITBYTE, - XED_CATEGORY_CALL, - XED_CATEGORY_CMOV, - XED_CATEGORY_COND_BR, - XED_CATEGORY_DATAXFER, - XED_CATEGORY_DECIMAL, - XED_CATEGORY_FCMOV, - XED_CATEGORY_FLAGOP, - XED_CATEGORY_INTERRUPT, - XED_CATEGORY_IO, - XED_CATEGORY_IOSTRINGOP, - XED_CATEGORY_LOGICAL, - XED_CATEGORY_MISC, - XED_CATEGORY_MMX, - XED_CATEGORY_NOP, - XED_CATEGORY_POP, - XED_CATEGORY_PREFETCH, - XED_CATEGORY_PUSH, - XED_CATEGORY_RET, - XED_CATEGORY_ROTATE, - XED_CATEGORY_SEGOP, - XED_CATEGORY_SEMAPHORE, - XED_CATEGORY_SHIFT, - XED_CATEGORY_SSE, - XED_CATEGORY_STRINGOP, - XED_CATEGORY_SYSCALL, - XED_CATEGORY_SYSRET, - XED_CATEGORY_SYSTEM, - XED_CATEGORY_UNCOND_BR, - XED_CATEGORY_VTX, - XED_CATEGORY_WIDENOP, - XED_CATEGORY_X87_ALU, - XED_CATEGORY_XSAVE, - XED_CATEGORY_LAST -} xed_category_enum_t; - -XED_DLL_EXPORT xed_category_enum_t -str2xed_category_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_category_enum_t2str(const xed_category_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-common-defs.h b/misc/decoder_test/XED2/include/xed/xed-common-defs.h deleted file mode 100644 index ec2b6b6..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-common-defs.h +++ /dev/null @@ -1,78 +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-common-defs.h -/// @author Mark Charney -/// @brief some pervasive defines - - - -#ifndef _XED_COMMON_DEFS_H_ -# define _XED_COMMON_DEFS_H_ - -//////////////////////////////////////////////////////////////////////////// - -#define XED_MAX_OPERANDS 11 -#define XED_MAX_NONTERMINALS_PER_INSTRUCTION 20 // FIXME somewhat arbitrary - -#define XED_MAX_DISPLACEMENT_BYTES 8 // for most things it is 4, but one 64b mov allows 8 -#define XED_MAX_IMMEDIATE_BYTES 8 // for most things it is max 4, but one 64b mov allows 8. - -#define XED_MAX_INSTRUCTION_BYTES 15 - - -#define XED_BYTE_MASK(x) ((x) & 0xFF) -#define XED_BYTE_CAST(x) (STATIC_CAST(xed_uint8_t,x)) - -//////////////////////////////////////////////////////////////////////////// -// used for defining bit-field widths -// Microsoft's compiler treats enumerations as signed and if you pack -// the bit-field with values, when you assign it to a full-width enumeration, -// you get junk-- a big negative number. This compensates for cases that I've -// encountered -#if defined(__GNUC__) -# define XED_BIT_FIELD_PSEUDO_WIDTH4 4 -# define XED_BIT_FIELD_PSEUDO_WIDTH8 8 -#else -# define XED_BIT_FIELD_PSEUDO_WIDTH4 8 -# define XED_BIT_FIELD_PSEUDO_WIDTH8 16 -#endif - - -#endif - - - - - - - - - diff --git a/misc/decoder_test/XED2/include/xed/xed-common-hdrs.h b/misc/decoder_test/XED2/include/xed/xed-common-hdrs.h deleted file mode 100644 index 359db1c..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-common-hdrs.h +++ /dev/null @@ -1,61 +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-common-hdrs.h -/// @author Mark Charney - - - -#ifndef _XED_COMMON_HDRS_H_ -# define _XED_COMMON_HDRS_H_ - -//////////////////////////////////////////////////////////////////////////// -#if !defined(XED_MESSAGES) -# define XED_MESSAGES 0 -#endif - -#if defined(XED_DLL) -// __declspec(dllexport) works with GNU GCC or MS compilers -# define XED_DLL_EXPORT __declspec(dllexport) -# define XED_DLL_IMPORT __declspec(dllimport) -# if defined(XED_BUILD) -# define XED_DLL_GLOBAL XED_DLL_EXPORT -# else -# define XED_DLL_GLOBAL XED_DLL_IMPORT -# endif -#else -# define XED_DLL_EXPORT -# define XED_DLL_IMPORT -# define XED_DLL_GLOBAL -#endif -//////////////////////////////////////////////////////////////////////////// - -#endif - diff --git a/misc/decoder_test/XED2/include/xed/xed-decode.h b/misc/decoder_test/XED2/include/xed/xed-decode.h deleted file mode 100644 index fca7866..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-decode.h +++ /dev/null @@ -1,93 +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-decode.h -/// @author Mark Charney - - -#ifndef _XED_DECODE_H_ -# define _XED_DECODE_H_ - - -#include "xed-decoded-inst.h" -#include "xed-error-enum.h" -//////////////////////////////////////////////////////////////////////////// -// DEFINES -//////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////// -// TYPES -//////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////// -// PROTOTYPES -//////////////////////////////////////////////////////////////////////////// - -/// This is the main interface to the decoder. -/// @param xedd the decoded instruction of type #xed_decoded_inst_t . Mode/state sent in via xedd; See the #xed_state_t -/// @param itext the pointer to the array of instruction text bytes -/// @param bytes the length of the itext input array. 1 to 15 bytes, anything more is ignored. -/// @return #xed_error_enum_t indiciating success (#XED_ERROR_NONE) or failure. Note failure can be due to not -/// enough bytes in the input array. -/// -/// The maximum instruction is 15B and XED will tell you how long the -/// actual instruction is via an API function call -/// xed_decoded_inst_get_length(). However, it is not always safe or -/// advisable for XED to read 15 bytes if the decode location is at the -/// boundary of some sort of protection limit. For example, if one is -/// decoding near the end of a page and the XED user does not want to cause -/// extra page faults, one might send in the number of bytes that would -/// stop at the page boundary. In this case, XED might not be able to -/// decode the instruction and would return an error. The XED user would -/// then have to decide if it was safe to touch the next page and try again -/// to decode with more bytes. Also sometimes the user process does not -/// have read access to the next page and this allows the user to prevent -/// XED from causing process termination by limiting the memory range that -/// XED will access. -/// -/// @ingroup DEC -XED_DLL_EXPORT xed_error_enum_t -xed_decode(xed_decoded_inst_t* xedd, - const xed_uint8_t* itext, - const unsigned int bytes); - - -//////////////////////////////////////////////////////////////////////////// -// GLOBALS -//////////////////////////////////////////////////////////////////////////// - - -#endif -//////////////////////////////////////////////////////////////////////////// -//Local Variables: -//pref: "../../xed-decode.cpp" -//End: diff --git a/misc/decoder_test/XED2/include/xed/xed-decoded-inst.h b/misc/decoder_test/XED2/include/xed/xed-decoded-inst.h deleted file mode 100644 index ac20488..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-decoded-inst.h +++ /dev/null @@ -1,468 +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-decoded-inst.h -/// @author Mark Charney - -#if !defined(_XED_DECODER_STATE_H_) -# define _XED_DECODER_STATE_H_ -#include "xed-common-hdrs.h" -#include "xed-common-defs.h" -#include "xed-portability.h" -#include "xed-util.h" -#include "xed-types.h" -#include "xed-operand-values-interface.h" -#include "xed-inst.h" -#include "xed-flags.h" -#include "xed-encoder-gen-defs.h" //generated - - -// fwd-decl xed_simple_flag_t; -// fwd-decl xed_inst_t; - - -struct xed_encoder_vars_s; -struct xed_decoder_vars_s; - -/// @ingroup DEC -/// The main container for instructions. After decode, it holds an array of -/// operands with derived information from decode and also valid -/// #xed_inst_t pointer which describes the operand templates and the -/// operand order. See @ref DEC for API documentation. -typedef struct XED_DLL_EXPORT xed_decoded_inst_s { - /// The operand storage fields discovered during decoding. This same array is used by encode. - xed_operand_values_t _operands[XED_OPERAND_LAST]; // FIXME: can further squeeze down 16b units - - /// Used for encode operand ordering. Not set by decode. - xed_uint8_t _operand_order[XED_ENCODE_ORDER_MAX_OPERANDS]; - - xed_uint8_t _decoded_length; - // Length of the _operand_order[] array. - xed_uint8_t _n_operand_order; - - /// when we decode an instruction, we set the _inst and get the - /// properites of that instruction here. This also points to the - /// operands template array. - const xed_inst_t* _inst; - - // decoder does not change it, encoder does - union { - xed_uint8_t* _enc; - const xed_uint8_t* _dec; - } _byte_array; - - // These are stack allocated by xed_encode() or xed_decode(). These are - // per-encode or per-decode transitory data. - union { - - /* user_data is available as a user data storage field after - * decoding. It does not live across re-encodes or re-decodes. */ - xed_uint64_t user_data; - struct xed_decoder_vars_s* dv; - struct xed_encoder_vars_s* ev; - } u; - - - -} xed_decoded_inst_t; - - - -/// @name xed_decoded_inst_t Operands array access -//@{ -/// @ingroup DEC -/// Obtain a constant pointer to the operands -static XED_INLINE const xed_operand_values_t* -xed_decoded_inst_operands_const(const xed_decoded_inst_t* p) { - return STATIC_CAST(xed_operand_values_t*,p->_operands); -} -/// @ingroup DEC -/// Obtain a non-constant pointer to the operands -static XED_INLINE xed_operand_values_t* -xed_decoded_inst_operands(xed_decoded_inst_t* p) { - return STATIC_CAST(xed_operand_values_t*,p->_operands); -} -//@} - -/// @name xed_decoded_inst_t Initialization -//@{ -/// @ingroup DEC -/// Zero the decode structure, but set the machine state/mode information -XED_DLL_EXPORT void xed_decoded_inst_zero_set_mode(xed_decoded_inst_t* p, const xed_state_t* dstate); -/// @ingroup DEC -/// Zero the decode structure, but preserve the existing machine state/mode information -XED_DLL_EXPORT void xed_decoded_inst_zero_keep_mode(xed_decoded_inst_t* p); -/// @ingroup DEC -/// Zero the decode structure completely. -XED_DLL_EXPORT void xed_decoded_inst_zero(xed_decoded_inst_t* p); -/// @ingroup DEC -/// Zero the decode structure, but copy the existing machine state/mode information from the supplied operands pointer. -XED_DLL_EXPORT void xed_decoded_inst_zero_keep_mode_from_operands(xed_decoded_inst_t* p, - const xed_operand_values_t* operands); -//@} - -/// @name xed_decoded_inst_t Length -//@{ -/// @ingroup DEC -/// Return the length of the decoded instruction in bytes. -static XED_INLINE xed_uint_t -xed_decoded_inst_get_length(const xed_decoded_inst_t* p) { - return p->_decoded_length; -} - - -//@} - -/// @name modes -//@{ -/// @ingroup DEC -static XED_INLINE xed_uint_t xed_decoded_inst_get_mode(const xed_decoded_inst_t* p) { - return p->_operands[XED_OPERAND_MODE]; -} -/// @ingroup DEC -static XED_INLINE xed_uint_t xed_decoded_inst_get_address_mode(const xed_decoded_inst_t* p) { - return p->_operands[XED_OPERAND_AMODE]; -} -/// @ingroup DEC -static XED_INLINE xed_uint_t xed_decoded_inst_get_stack_address_mode(const xed_decoded_inst_t* p) { - return p->_operands[XED_OPERAND_SMODE]; -} -//@} - - -/////////////////////////////////////////////////////// -/// API -/////////////////////////////////////////////////////// - -/// @name xed_decoded_inst_t High-level accessors -//@{ -/// @ingroup DEC -/// Return true if the instruction is valid -static XED_INLINE xed_bool_t xed_decoded_inst_valid(const xed_decoded_inst_t* p ) { - return STATIC_CAST(xed_bool_t,(p->_inst != 0)); -} -/// @ingroup DEC -/// Return the #xed_inst_t structure for this instruction. This is the route to the basic operands form information. -static XED_INLINE const xed_inst_t* xed_decoded_inst_inst( const xed_decoded_inst_t* p) { - return p->_inst; -} - - -/// @ingroup DEC -/// Return the instruction category enumeration -static XED_INLINE xed_category_enum_t xed_decoded_inst_get_category(const xed_decoded_inst_t* p) { - xed_assert(p->_inst != 0); - return xed_inst_category(p->_inst); -} -/// @ingroup DEC -/// Return the instruction extension enumeration -static XED_INLINE xed_extension_enum_t xed_decoded_inst_get_extension( const xed_decoded_inst_t* p) { - xed_assert(p->_inst != 0); - return xed_inst_extension(p->_inst); -} -/// @ingroup DEC -/// Return the instruction class enumeration. -static XED_INLINE xed_iclass_enum_t xed_decoded_inst_get_iclass( const xed_decoded_inst_t* p){ - xed_assert(p->_inst != 0); - return xed_inst_iclass(p->_inst); -} - -/// @ingroup DEC -/// Returns 1 if the attribute is defined for this instruction. -XED_DLL_EXPORT xed_uint32_t xed_decoded_inst_get_attribute(const xed_decoded_inst_t* p, xed_attribute_enum_t attr); - -/// @ingroup DEC -/// Returns the attribute bitvector -XED_DLL_EXPORT xed_uint32_t xed_decoded_inst_get_attributes(const xed_decoded_inst_t* p); -//@} - -/// @name IFORM handling -//@{ - -/// @ingroup DEC -/// Return the instruction iform enum of type #xed_iform_enum_t . -static XED_INLINE xed_iform_enum_t xed_decoded_inst_get_iform_enum(const xed_decoded_inst_t* p) { - xed_assert(p->_inst != 0); - return xed_inst_iform_enum(p->_inst); -} - - -/// @ingroup DEC -/// Return the instruction zero-based iform number based on masking the -/// corresponding #xed_iform_enum_t. This value is suitable for -/// dispatching. The maximum value for a particular iclass is provided by -/// #xed_iform_max_per_iclass() . -static XED_INLINE unsigned int xed_decoded_inst_get_iform_enum_dispatch(const xed_decoded_inst_t* p) { - xed_assert(p->_inst != 0); - return xed_inst_iform_enum(p->_inst) & 0xFF; -} - -/// @ingroup DEC -/// Return the maximum number of iforms for a particular iclass. This -/// function returns valid data as soon as global data is initialized. (This -/// function does not require a decoded instruction as input). -XED_DLL_EXPORT xed_uint32_t xed_iform_max_per_iclass(xed_iclass_enum_t iclass); - -#define XED_MASK_IFORM(x) ((x) & 0xFF) - -/// @ingroup DEC -/// DEPRECATED Return the instruction iform number. The iform is zero-based number of -/// the different instances of each iclass. -static XED_INLINE xed_uint_t xed_decoded_inst_get_old_iform( const xed_decoded_inst_t* p){ - xed_assert(p->_inst != 0); - return xed_inst_iform(p->_inst); -} - -//@} - - - -/// @name xed_decoded_inst_t Operands: Number and Length -//@{ -/// Return the length in bytes of the operand_index'th operand. -/// @ingroup DEC -XED_DLL_EXPORT unsigned int xed_decoded_inst_operand_length(const xed_decoded_inst_t* p, - unsigned int operand_index); -/// Return the number of operands -/// @ingroup DEC -static XED_INLINE unsigned int xed_decoded_inst_noperands(const xed_decoded_inst_t* p) { - unsigned int noperands = xed_inst_noperands(xed_decoded_inst_inst(p)); - return noperands; -} -//@} - -/// @name xed_decoded_inst_t Printers -//@{ -/// @ingroup DEC -/// Print out all the information about the decoded instruction to the buffer buf whose length is maximally buflen. -XED_DLL_EXPORT void xed_decoded_inst_dump(const xed_decoded_inst_t* p, char* buf, int buflen); - -/// @ingroup DEC -/// Print the instructions with the destination on the left. Use PTR qualifiers for memory access widths. -/// Recommendation: buflen must be more than 16 bytes, preferably at least 100 bytes. -/// @param p a #xed_decoded_inst_t for a decoded instruction -/// @param buf a buffer to write the disassembly in to. -/// @param buflen maximum length of the disassembly buffer -/// @param runtime_address the address of the instruction being disassembled -/// @return Returns 0 if the disassembly fails, 1 otherwise. -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_intel_format(const xed_decoded_inst_t* p, - char* buf, - int buflen, - xed_uint64_t runtime_address); -/// @ingroup DEC -/// Print the instructions with the destination on the left. Use PTR qualifiers for memory access widths. -/// Recommendation: buflen must be more than 16 bytes, preferably at least 100 bytes. -/// @param p a #xed_decoded_inst_t for a decoded instruction -/// @param buf a buffer to write the disassembly in to. -/// @param buflen maximum length of the disassembly buffer -/// @param runtime_address the address of the instruction being disassembled -/// @param context A void* used only for the call back routine for symbolic disassembly if one is registered. -/// @return Returns 0 if the disassembly fails, 1 otherwise. -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_intel_format_context(const xed_decoded_inst_t* p, - char* buf, - int buflen, - xed_uint64_t runtime_address, - void* context); - -/// @ingroup DEC -/// Print the instructions with the destination operand on the right, with -/// several exceptions (bound, invlpga, enter, and other instructions with -/// two immediate operands). Also use instruction name suffixes to -/// indicate operation width. Several instructions names are different as -/// well. -/// Recommendation: buflen must be more than 16 bytes, preferably at least 100 bytes. -/// @param p a #xed_decoded_inst_t for a decoded instruction -/// @param buf a buffer to write the disassembly in to. -/// @param buflen maximum length of the disassembly buffer -/// @param runtime_address the address of the instruction being disassembled -/// @return Returns 0 if the disassembly fails, 1 otherwise. -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_att_format(const xed_decoded_inst_t* p, - char* buf, - int buflen, - xed_uint64_t runtime_address); - -/// @ingroup DEC -/// Print the instructions with the destination operand on the right, with -/// several exceptions (bound, invlpga, enter, and other instructions with -/// two immediate operands). Also use instruction name suffixes to -/// indicate operation width. Several instructions names are different as -/// well. buflen must be at least 100 bytes. -/// @param p a #xed_decoded_inst_t for a decoded instruction -/// @param buf a buffer to write the disassembly in to. -/// @param buflen maximum length of the disassembly buffer -/// @param runtime_address the address of the instruction being disassembled -/// @param context A void* used only for the call back routine for symbolic disassembly if one is registered. -/// @return Returns 0 if the disassembly fails, 1 otherwise. -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_att_format_context(const xed_decoded_inst_t* p, - char* buf, - int buflen, - xed_uint64_t runtime_address, - void* context); - -/// @ingroup DEC -/// @param p a #xed_decoded_inst_t for a decoded instruction -/// @param buf a buffer to write the disassembly in to. -/// @param buflen maximum length of the disassembly buffer -/// @param runtime_address the address of the instruction being disassembled -/// @return Returns 0 if the disassembly fails, 1 otherwise. -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_dump_xed_format(const xed_decoded_inst_t* p, - char* buf, - int buflen, xed_uint64_t runtime_address) ; -//@} - -/// @name xed_decoded_inst_t Operand Field Details -//@{ -/// @ingroup DEC -XED_DLL_EXPORT xed_reg_enum_t xed_decoded_inst_get_seg_reg(const xed_decoded_inst_t* p, unsigned int mem_idx); -/// @ingroup DEC -XED_DLL_EXPORT xed_reg_enum_t xed_decoded_inst_get_base_reg(const xed_decoded_inst_t* p, unsigned int mem_idx); -XED_DLL_EXPORT xed_reg_enum_t xed_decoded_inst_get_index_reg(const xed_decoded_inst_t* p, unsigned int mem_idx); -/// @ingroup DEC -XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_scale(const xed_decoded_inst_t* p, unsigned int mem_idx); -/// @ingroup DEC -XED_DLL_EXPORT xed_int64_t xed_decoded_inst_get_memory_displacement(const xed_decoded_inst_t* p, unsigned int mem_idx); -/// @ingroup DEC -/// Result in BYTES -XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_memory_displacement_width(const xed_decoded_inst_t* p, unsigned int mem_idx); -/// @ingroup DEC -/// Result in BITS -XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_memory_displacement_width_bits(const xed_decoded_inst_t* p, unsigned int mem_idx); -/// @ingroup DEC -XED_DLL_EXPORT xed_int32_t xed_decoded_inst_get_branch_displacement(const xed_decoded_inst_t* p); -/// @ingroup DEC -/// Result in BYTES -XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_branch_displacement_width(const xed_decoded_inst_t* p); -/// @ingroup DEC -/// Result in BITS -XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_branch_displacement_width_bits(const xed_decoded_inst_t* p); -/// @ingroup DEC -XED_DLL_EXPORT xed_uint64_t xed_decoded_inst_get_unsigned_immediate(const xed_decoded_inst_t* p); -/// @ingroup DEC -/// Return true if the first immediate (IMM0) is signed -XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_immediate_is_signed(const xed_decoded_inst_t* p); -/// @ingroup DEC -/// Return the immediate width in BYTES. -XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_immediate_width(const xed_decoded_inst_t* p); -/// @ingroup DEC -/// Return the immediate width in BITS. -XED_DLL_EXPORT xed_uint_t xed_decoded_inst_get_immediate_width_bits(const xed_decoded_inst_t* p); -/// @ingroup DEC -XED_DLL_EXPORT xed_int32_t xed_decoded_inst_get_signed_immediate(const xed_decoded_inst_t* p); -/// @ingroup DEC -/// Return the second immediate. -static XED_INLINE xed_uint8_t xed_decoded_inst_get_second_immediate(const xed_decoded_inst_t* p) { - return STATIC_CAST(xed_uint8_t,p->_operands[XED_OPERAND_UIMM1]); -} - -/// @ingroup DEC -/// Return the specified register operand. The specifier is of type #xed_operand_enum_t . -static XED_INLINE xed_reg_enum_t xed_decoded_inst_get_reg(const xed_decoded_inst_t* p, - xed_operand_enum_t reg_operand) { - return STATIC_CAST(xed_reg_enum_t,p->_operands[reg_operand]); -} - - - -/// @ingroup DEC -XED_DLL_EXPORT const xed_simple_flag_t* xed_decoded_inst_get_rflags_info( const xed_decoded_inst_t* p ); -/// @ingroup DEC -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_uses_rflags(const xed_decoded_inst_t* p); -/// @ingroup DEC -XED_DLL_EXPORT xed_uint_t xed_decoded_inst_number_of_memory_operands(const xed_decoded_inst_t* p); -/// @ingroup DEC -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_mem_read(const xed_decoded_inst_t* p, unsigned int mem_idx); -/// @ingroup DEC -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_mem_written(const xed_decoded_inst_t* p, unsigned int mem_idx); -/// @ingroup DEC -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_mem_written_only(const xed_decoded_inst_t* p, unsigned int mem_idx); -/// @ingroup DEC -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_conditionally_writes_registers(const xed_decoded_inst_t* p); -/// @ingroup DEC -XED_DLL_EXPORT unsigned int xed_decoded_inst_get_memory_operand_length(const xed_decoded_inst_t* p, - unsigned int memop_idx); - - -/// @ingroup DEC -/// Returns true if the instruction is a prefetch -XED_DLL_EXPORT xed_bool_t xed_decoded_inst_is_prefetch(const xed_decoded_inst_t* p); -//@} - - -/// @name xed_decoded_inst_t Modification -//@{ -// Modifying decoded instructions before re-encoding -/// @ingroup DEC -XED_DLL_EXPORT void xed_decoded_inst_set_scale(xed_decoded_inst_t* p, xed_uint_t scale); -/// @ingroup DEC -/// Set the memory displacement using a BYTE length -XED_DLL_EXPORT void xed_decoded_inst_set_memory_displacement(xed_decoded_inst_t* p, xed_int64_t disp, xed_uint_t length_bytes); -/// @ingroup DEC -/// Set the branch displacement using a BYTE length -XED_DLL_EXPORT void xed_decoded_inst_set_branch_displacement(xed_decoded_inst_t* p, xed_int32_t disp, xed_uint_t length_bytes); -/// @ingroup DEC -/// Set the signed immediate a BYTE length -XED_DLL_EXPORT void xed_decoded_inst_set_immediate_signed(xed_decoded_inst_t* p, xed_int32_t x, xed_uint_t length_bytes); -/// @ingroup DEC -/// Set the unsigned immediate a BYTE length -XED_DLL_EXPORT void xed_decoded_inst_set_immediate_unsigned(xed_decoded_inst_t* p, xed_uint64_t x, xed_uint_t length_bytes); - - -/// @ingroup DEC -/// Set the memory displacement a BITS length -XED_DLL_EXPORT void xed_decoded_inst_set_memory_displacement_bits(xed_decoded_inst_t* p, xed_int64_t disp, xed_uint_t length_bits); -/// @ingroup DEC -/// Set the branch displacement a BITS length -XED_DLL_EXPORT void xed_decoded_inst_set_branch_displacement_bits(xed_decoded_inst_t* p, xed_int32_t disp, xed_uint_t length_bits); -/// @ingroup DEC -/// Set the signed immediate a BITS length -XED_DLL_EXPORT void xed_decoded_inst_set_immediate_signed_bits(xed_decoded_inst_t* p, xed_int32_t x, xed_uint_t length_bits); -/// @ingroup DEC -/// Set the unsigned immediate a BITS length -XED_DLL_EXPORT void xed_decoded_inst_set_immediate_unsigned_bits(xed_decoded_inst_t* p, xed_uint64_t x, xed_uint_t length_bits); - -//@} - -/// @name xed_decoded_inst_t User Data Field -//@{ -/// @ingroup DEC -/// Return a user data field for arbitrary use by the user after decoding. -static XED_INLINE xed_uint64_t xed_decoded_inst_get_user_data(xed_decoded_inst_t* p) { - return p->u.user_data; -} -/// @ingroup DEC -/// Modify the user data field. -static XED_INLINE void xed_decoded_inst_set_user_data(xed_decoded_inst_t* p, xed_uint64_t new_value) { - p->u.user_data = new_value; -} -//@} -#endif -//Local Variables: -//pref: "../../xed-decoded-inst.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed/xed-disas.h b/misc/decoder_test/XED2/include/xed/xed-disas.h deleted file mode 100644 index 64205c3..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-disas.h +++ /dev/null @@ -1,71 +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-disas.h -/// @author Mark Charney - -#if !defined(_XED_DISAS_H_) -# define _XED_DISAS_H_ - -#include "xed-types.h" - -/// @ingroup PRINT -/// A #xed_disassembly_callback_fn_t takes an address, a pointer to a -/// symbol buffer of buffer_length bytes, and a pointer to an offset. The -/// function fills in the symbol_buffer and sets the offset to the desired -/// offset for that symbol. If the function succeeds, it returns 1. -// The call back should return 0 if the buffer is not long enough to -// include the null termination.If no symbolic information is -// located, the function returns zero. -/// @param address The input address for which we want symbolic name and offset -/// @param symbol_buffer A buffer to hold the symbol name. The callback function should fill this in and terminate -/// with a null byte. -/// @param buffer_length The maximum length of the symbol_buffer including then null -/// @param offset A pointer to a xed_uint64_t to old the offset from the provided symbol. -/// @param context This void* pointer passed to the disassembler's new interface so that the caller can identify -/// the proper context against which to resolve the symbols. -/// The disassembler passes this value to -/// the callback. The legacy formatters -/// that do not have context will pass zero for this parameter. -/// @return 0 on failure, 1 on success. -typedef int XED_DLL_EXPORT (*xed_disassembly_callback_fn_t)( - xed_uint64_t address, - char* symbol_buffer, - xed_uint32_t buffer_length, - xed_uint64_t* offset, - void* context); - -/// @ingroup PRINT -/// Register a disassembly call back function of type -/// #xed_disassembly_callback_fn_t to get called when the disassembler -/// needs to get a symbol and offset for an address. -XED_DLL_EXPORT void xed_register_disassembly_callback(xed_disassembly_callback_fn_t f); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-encode-isa-functions.h b/misc/decoder_test/XED2/include/xed/xed-encode-isa-functions.h deleted file mode 100644 index aa59a6a..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-encode-isa-functions.h +++ /dev/null @@ -1,48 +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-encode-isa-functions.h -/// @author Mark Charney - -#ifndef _XED_ENCODE_ISA_FUNCTIONS_H_ -# define _XED_ENCODE_ISA_FUNCTIONS_H_ - -#include "xed-encode.h" - - -xed_bool_t xed_encode_nonterminal_INSTRUCTIONS_EMIT(xed_encoder_request_t* xes); -xed_bool_t xed_encode_nonterminal_INSTRUCTIONS_BIND(xed_encoder_request_t* xes); - - -#endif - -//Local Variables: -//pref: "../../xed-encode-isa-functions.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed/xed-encode.h b/misc/decoder_test/XED2/include/xed/xed-encode.h deleted file mode 100644 index 32590db..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-encode.h +++ /dev/null @@ -1,298 +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-encode.h -/// @author Mark Charney - - -#ifndef _XED_ENCODE_H_ -# define _XED_ENCODE_H_ -#include "xed-common-hdrs.h" -#include "xed-types.h" -#include "xed-error-enum.h" -#include "xed-operand-values-interface.h" -#include "xed-operand-width-enum.h" -#include "xed-encoder-iforms.h" //generated -#include "xed-encoder-gen-defs.h" //generated - -// we now (mostly) share the decode data structure -#include "xed-decoded-inst.h" - - -// establish a type equivalence for the xed_encoder_request_t and the corresponding xed_decoded_inst_t. - -/// @ingroup ENC -typedef struct xed_decoded_inst_s xed_encoder_request_s; -/// @ingroup ENC -typedef xed_decoded_inst_t xed_encoder_request_t; - - -/// @ingroup ENC -XED_DLL_EXPORT xed_iclass_enum_t -xed_encoder_request_get_iclass( const xed_encoder_request_t* p); - -///////////////////////////////////////////////////////// -// set functions - -/// @ingroup ENC -XED_DLL_EXPORT void -xed_encoder_request_set_iclass( xed_encoder_request_t* p, - xed_iclass_enum_t iclass); - -/// @name Prefixes -//@{ -/// @ingroup ENC -/// For locked (atomic read-modify-write) memops requests. -XED_DLL_EXPORT void xed_encoder_request_set_lock(xed_encoder_request_t* p); -/// @ingroup ENC -/// for REP(F3) and REPNE(F2) prefixe on string ops -XED_DLL_EXPORT void xed_encoder_request_set_repne(xed_encoder_request_t* p); -/// @ingroup ENC -/// for REP(F3) and REPNE(F2) prefixe on string ops -XED_DLL_EXPORT void xed_encoder_request_set_rep(xed_encoder_request_t* p); -//@} - -/// @name Primary Encode Functions -//@{ -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_effective_operand_width( xed_encoder_request_t* p, - xed_uint_t width_bits); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_effective_address_size( xed_encoder_request_t* p, - xed_uint_t width_bits); -/*! @ingroup ENC - * Set the operands array element indexed by operand to the actual register name reg. - * - * @param[in] p xed_encoder_request_t - * @param[in] operand indicates which register operand storage field to use - * @param[in] reg the actual register represented (EAX, etc.) to store. - */ -XED_DLL_EXPORT void xed_encoder_request_set_reg(xed_encoder_request_t* p, - xed_operand_enum_t operand, - xed_reg_enum_t reg); -//@} - -/// @name Operand Order -//@{ -/*! @ingroup ENC - * Specify the name as the n'th operand in the operand order. - * - * The complication of this function is that the register operand names are - * specific to the position of the operand (REG0, REG1, REG2...). One can - * use this function for registers or one can use the - * xed_encoder_request_set_operand_name_reg() which takes integers instead - * of operand names. - * - * @param[in] p #xed_encoder_request_t - * @param[in] operand_index xed_uint_t representing n'th operand position - * @param[in] name #xed_operand_enum_t operand name. - */ -XED_DLL_EXPORT void xed_encoder_request_set_operand_order(xed_encoder_request_t* p, - xed_uint_t operand_index, - xed_operand_enum_t name); - -/*! @ingroup ENC - * Retreive the name of the n'th operand in the operand order. - * - * @param[in] p #xed_encoder_request_t - * @param[in] operand_index xed_uint_t representing n'th operand position - * @return The #xed_operand_enum_t operand name. - */ -XED_DLL_EXPORT xed_operand_enum_t xed_encoder_request_get_operand_order(xed_encoder_request_t* p, - xed_uint_t operand_index); - - -/// @ingroup ENC -/// Retreive the number of entries in the encoder operand order array -/// @return The number of entries in the encoder operand order array -static XED_INLINE -xed_uint_t xed_encoder_request_operand_order_entries(xed_encoder_request_t* p) { - return p->_n_operand_order; -} - -//@} - - -/// @name branches and far pointers -//@{ -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_relbr(xed_encoder_request_t* p); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_branch_displacement(xed_encoder_request_t* p, - xed_int32_t brdisp, - xed_uint_t nbytes); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_ptr(xed_encoder_request_t* p); -//@} - - -/// @name Immediates -//@{ -/// @ingroup ENC -/// Set the uimm0 using a BYTE width. -XED_DLL_EXPORT void xed_encoder_request_set_uimm0(xed_encoder_request_t* p, - xed_uint64_t uimm, - xed_uint_t nbytes); -/// @ingroup ENC -/// Set the uimm0 using a BIT width. -XED_DLL_EXPORT void xed_encoder_request_set_uimm0_bits(xed_encoder_request_t* p, - xed_uint64_t uimm, - xed_uint_t nbits); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_uimm1(xed_encoder_request_t* p, - xed_uint8_t uimm); -/// @ingroup ENC -/// same storage as uimm0 -XED_DLL_EXPORT void xed_encoder_request_set_simm(xed_encoder_request_t* p, - xed_int32_t simm, - xed_uint_t nbytes); -//@} - -/// @name Memory -//@{ -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_memory_displacement(xed_encoder_request_t* p, - xed_int64_t memdisp, - xed_uint_t nbytes); - -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_agen(xed_encoder_request_t* p); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_mem0(xed_encoder_request_t* p); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_mem1(xed_encoder_request_t* p); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_memory_operand_length(xed_encoder_request_t* p, - xed_uint_t nbytes); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_seg0(xed_encoder_request_t* p, - xed_reg_enum_t seg_reg); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_seg1(xed_encoder_request_t* p, - xed_reg_enum_t seg_reg); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_base0(xed_encoder_request_t* p, - xed_reg_enum_t base_reg); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_base1(xed_encoder_request_t* p, - xed_reg_enum_t base_reg) ; -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_index(xed_encoder_request_t* p, - xed_reg_enum_t index_reg); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_set_scale(xed_encoder_request_t* p, - xed_uint_t scale); -//@} - -////////////////////////////////////////////// -/// @ingroup ENC -XED_DLL_EXPORT const xed_operand_values_t* xed_encoder_request_operands_const(const xed_encoder_request_t* p); -/// @ingroup ENC -XED_DLL_EXPORT xed_operand_values_t* xed_encoder_request_operands(xed_encoder_request_t* p); - -/// @name Initialization -//@{ -/*! @ingroup ENC - * clear the operand order array - * @param[in] p xed_encoder_request_t - */ -XED_DLL_EXPORT void xed_encoder_request_zero_operand_order(xed_encoder_request_t* p); - -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_zero_set_mode(xed_encoder_request_t* p, - const xed_state_t* dstate); -/// @ingroup ENC -XED_DLL_EXPORT void xed_encoder_request_zero(xed_encoder_request_t* p) ; -//@} - -struct xed_decoded_inst_s; //fwd decl -/// @ingroup ENC -/// Converts an decoder request to a valid encoder request. -XED_DLL_EXPORT void xed_encoder_request_init_from_decode(struct xed_decoded_inst_s* d); - -void -xed_encoder_request_encode_emit(xed_encoder_request_t* q, - const unsigned int bits, - const xed_uint64_t value); - -xed_bool_t -xed_encoder_request__memop_compatible(const xed_encoder_request_t* p, - xed_operand_width_enum_t operand_width); - -/// @name String Printing -//@{ -/// @ingroup ENC -XED_DLL_EXPORT void xed_encode_request_print(const xed_encoder_request_t* p, - char* buf, xed_uint_t buflen); -//@} - -// Type signature for an encode function -typedef xed_uint_t (*xed_encode_function_pointer_t)(xed_encoder_request_t* enc_req); - - -/// @name Encoding -//@{ -/// This is the main interface to the encoder. The array should be -/// at most 15 bytes long. The ilen parameter should indiciate -/// this length. If the array is too short, the encoder may fail to -/// encode the request. Failure is indicated by a return value of -/// type #xed_error_enum_t that is not equal to -/// #XED_ERROR_NONE. Otherwise, #XED_ERROR_NONE is returned and the -/// length of the encoded instruction is returned in olen. -/// -/// @param r encoder request description (#xed_encoder_request_t), includes mode info -/// @param array the encoded instruction bytes are stored here -/// @param ilen the input length of array. -/// @param olen the actual length of array used for encoding -/// @return success/failure as a #xed_error_enum_t -/// @ingroup ENC -XED_DLL_EXPORT xed_error_enum_t -xed_encode(xed_encoder_request_t* r, - xed_uint8_t* array, - const unsigned int ilen, - unsigned int* olen); - -/// This function will attempt to encode a NOP of exactly ilen -/// bytes. If such a NOP is not encodeable, then false will be returned. -/// -/// @param array the encoded instruction bytes are stored here -/// @param ilen the input length array. -/// @return success/failure as a #xed_error_enum_t -/// @ingroup ENC -XED_DLL_EXPORT xed_error_enum_t -xed_encode_nop(xed_uint8_t* array, - const unsigned int ilen); -//@} - -#endif -//////////////////////////////////////////////////////////////////////////// -//Local Variables: -//pref: "../../xed-encode.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed/xed-encoder-gen-defs.h b/misc/decoder_test/XED2/include/xed/xed-encoder-gen-defs.h deleted file mode 100644 index 1354a1b..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-encoder-gen-defs.h +++ /dev/null @@ -1,41 +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-encoder-gen-defs.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_ENCODER_GEN_DEFS_H_) -# define _XED_ENCODER_GEN_DEFS_H_ -#define XED_ENCODE_ORDER_MAX_ENTRIES 23 -#define XED_ENCODE_ORDER_MAX_OPERANDS 4 -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-encoder-iforms.h b/misc/decoder_test/XED2/include/xed/xed-encoder-iforms.h deleted file mode 100644 index f15e978..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-encoder-iforms.h +++ /dev/null @@ -1,60 +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-encoder-iforms.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_ENCODER_IFORMS_H_) -# define _XED_ENCODER_IFORMS_H_ -#include "xed-types.h" -typedef struct xed_encoder_iforms_s { - xed_uint16_t x_UIMM16; - xed_uint16_t x_UIMM8_1; - xed_uint16_t x_MEMDISP32; - xed_uint16_t x_MEMDISPv; - xed_uint16_t x_MEMDISP8; - xed_uint16_t x_MEMDISP16; - xed_uint16_t x_UIMM8; - xed_uint16_t x_SIB_NT; - xed_uint16_t x_REX_PREFIX_ENC; - xed_uint16_t x_INSTRUCTIONS; - xed_uint16_t x_SIMMz; - xed_uint16_t x_SIMM8; - xed_uint16_t x_UIMMv; - xed_uint16_t x_DISP_NT; - xed_uint16_t x_PREFIX_ENC; - xed_uint16_t x_BRDISP8; - xed_uint16_t x_BRDISPz; - xed_uint16_t x_UIMM32; -} xed_encoder_iforms_t; -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-error-enum.h b/misc/decoder_test/XED2/include/xed/xed-error-enum.h deleted file mode 100644 index 1b3acec..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-error-enum.h +++ /dev/null @@ -1,55 +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-error-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_ERROR_ENUM_H_) -# define _XED_ERROR_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_ERROR_NONE, ///< There was no error - XED_ERROR_BUFFER_TOO_SHORT, ///< There were not enough bytes in the given buffer - XED_ERROR_GENERAL_ERROR, ///< XED could not decode the given instruction - XED_ERROR_BAD_REGISTER, ///< XED could not decode the given instruction because an invalid register encoding was used. - XED_ERROR_BAD_LOCK_PREFIX, ///< A lock prefix was found where none is allowed. - XED_ERROR_BAD_REP_PREFIX, ///< An F2 or F3 prefix was found where none is allowed. - XED_ERROR_LAST -} xed_error_enum_t; - -XED_DLL_EXPORT xed_error_enum_t -str2xed_error_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_error_enum_t2str(const xed_error_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-extension-enum.h b/misc/decoder_test/XED2/include/xed/xed-extension-enum.h deleted file mode 100644 index 881ebf3..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-extension-enum.h +++ /dev/null @@ -1,65 +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-extension-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_EXTENSION_ENUM_H_) -# define _XED_EXTENSION_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_EXTENSION_INVALID, - XED_EXTENSION_3DNOW, - XED_EXTENSION_AMD, - XED_EXTENSION_BASE, - XED_EXTENSION_LONGMODE, - XED_EXTENSION_MMX, - XED_EXTENSION_SSE, - XED_EXTENSION_SSE2, - XED_EXTENSION_SSE3, - XED_EXTENSION_SSE4, - XED_EXTENSION_SSE4A, - XED_EXTENSION_SSSE3, - XED_EXTENSION_SVM, - XED_EXTENSION_VTX, - XED_EXTENSION_X87, - XED_EXTENSION_XSAVE, - XED_EXTENSION_LAST -} xed_extension_enum_t; - -XED_DLL_EXPORT xed_extension_enum_t -str2xed_extension_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_extension_enum_t2str(const xed_extension_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-flag-action-enum.h b/misc/decoder_test/XED2/include/xed/xed-flag-action-enum.h deleted file mode 100644 index 92f477b..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-flag-action-enum.h +++ /dev/null @@ -1,57 +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-flag-action-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_FLAG_ACTION_ENUM_H_) -# define _XED_FLAG_ACTION_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_FLAG_ACTION_INVALID, - XED_FLAG_ACTION_u, ///< undefined (treated as a write) - XED_FLAG_ACTION_tst, ///< test (read) - XED_FLAG_ACTION_mod, ///< modification (write) - XED_FLAG_ACTION_0, ///< value will be zero (write) - XED_FLAG_ACTION_pop, ///< value comes from the stack (write) - XED_FLAG_ACTION_ah, ///< value comes from AH (write) - XED_FLAG_ACTION_1, ///< value will be 1 (write) - XED_FLAG_ACTION_LAST -} xed_flag_action_enum_t; - -XED_DLL_EXPORT xed_flag_action_enum_t -str2xed_flag_action_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_flag_action_enum_t2str(const xed_flag_action_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-flag-enum.h b/misc/decoder_test/XED2/include/xed/xed-flag-enum.h deleted file mode 100644 index 6c8ba0e..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-flag-enum.h +++ /dev/null @@ -1,71 +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-flag-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_FLAG_ENUM_H_) -# define _XED_FLAG_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_FLAG_INVALID, - XED_FLAG_of, ///<< overflow flag - XED_FLAG_sf, ///< sign flag - XED_FLAG_zf, ///< zero flag - XED_FLAG_af, ///< auxilliary flag - XED_FLAG_pf, ///< parity flag - XED_FLAG_cf, ///< carry flag - XED_FLAG_df, ///< direction flag - XED_FLAG_vif, ///< virtual interrupt flag - XED_FLAG_iopl, ///< I/O privilege level - XED_FLAG_if, ///< interrupt flag - XED_FLAG_ac, ///< alignment check - XED_FLAG_vm, ///< virtual-8086 mode - XED_FLAG_rf, ///< resume flag - XED_FLAG_nt, ///< nested task - XED_FLAG_tf, ///< traf flag - XED_FLAG_id, ///< ID flag - XED_FLAG_vip, ///< virtual interrupt pending - XED_FLAG_fc0, ///< x87 FC0 flag - XED_FLAG_fc1, ///< x87 FC1 flag - XED_FLAG_fc2, ///< x87 FC2 flag - XED_FLAG_fc3, ///< x87 FC3 flag - XED_FLAG_LAST -} xed_flag_enum_t; - -XED_DLL_EXPORT xed_flag_enum_t -str2xed_flag_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_flag_enum_t2str(const xed_flag_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-flags.h b/misc/decoder_test/XED2/include/xed/xed-flags.h deleted file mode 100644 index 5f8e350..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-flags.h +++ /dev/null @@ -1,210 +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-flags.h -/// @author Mark Charney - -#ifndef _XED_FLAGS_H_ -# define _XED_FLAGS_H_ - -#include "xed-types.h" -#include "xed-flag-enum.h" -#include "xed-flag-action-enum.h" - - -//////////////////////////////////////////////////////////////////////////// -/// @ingroup FLAGS -/// a union of flags bits -union XED_DLL_EXPORT xed_flag_set_s { - struct { - xed_uint32_t of:1; - xed_uint32_t sf:1; - xed_uint32_t zf:1; - xed_uint32_t af:1; - xed_uint32_t pf:1; - xed_uint32_t cf:1; - xed_uint32_t df:1; - xed_uint32_t vif:1; - xed_uint32_t iopl:1; - xed_uint32_t _if:1; ///< underscore to avoid token clash - xed_uint32_t ac:1; - xed_uint32_t vm:1; - xed_uint32_t rf:1; - xed_uint32_t nt:1; - xed_uint32_t tf:1; - xed_uint32_t id:1; - xed_uint32_t vip:1; - xed_uint32_t fc0:1; ///< x87 flag FC0 - xed_uint32_t fc1:1; ///< x87 flag FC1 - xed_uint32_t fc2:1; ///< x87 flag FC2 - xed_uint32_t fc3:1; ///< x87 flag FC3 - } s; - xed_uint32_t flat; -}; - -typedef union xed_flag_set_s xed_flag_set_t; -/// @ingroup FLAGS -/// @name Flag-set accessors -//@{ -/// @ingroup FLAGS -/// print the flag set in the supplied buffer -XED_DLL_EXPORT int xed_flag_set_print(const xed_flag_set_t* p, char* buf, int buflen); -/// @ingroup FLAGS -/// returns true if this object has a subset of the flags of the -/// "other" object. -XED_DLL_EXPORT xed_bool_t xed_flag_set_is_subset_of(const xed_flag_set_t* p, - const xed_flag_set_t* other); -//@} - - -//////////////////////////////////////////////////////////////////////////// - -/// @ingroup FLAGS -/// Associated with each flag field there can be one action. -typedef struct XED_DLL_EXPORT xed_flag_enum_s { - xed_flag_enum_t flag; - // there are at most two actions per flag. The 2nd may be invalid. - xed_flag_action_enum_t action; -} xed_flag_action_t; - - - - -/// @ingroup FLAGS -/// @name Lowest-level flag-action accessors -//@{ -/// @ingroup FLAGS -/// get the name of the flag -XED_DLL_EXPORT xed_flag_enum_t -xed_flag_action_get_flag_name(const xed_flag_action_t* p); -/// @ingroup FLAGS -/// return the action -XED_DLL_EXPORT xed_flag_action_enum_t -xed_flag_action_get_action(const xed_flag_action_t* p, unsigned int i); -/// @ingroup FLAGS -/// returns true if the specified action is invalid. Only the 2nd flag might be invalid. -XED_DLL_EXPORT xed_bool_t -xed_flag_action_action_invalid(const xed_flag_action_enum_t a); -/// @ingroup FLAGS -/// print the flag & actions -XED_DLL_EXPORT int xed_flag_action_print(const xed_flag_action_t* p, char* buf, int buflen); -/// @ingroup FLAGS -/// returns true if either action is a read -XED_DLL_EXPORT xed_bool_t -xed_flag_action_read_flag(const xed_flag_action_t* p ); -/// @ingroup FLAGS -/// returns true if either action is a write -XED_DLL_EXPORT xed_bool_t -xed_flag_action_writes_flag(const xed_flag_action_t* p); - -/// @ingroup FLAGS -/// test to see if the specific action is a read -XED_DLL_EXPORT xed_bool_t -xed_flag_action_read_action( xed_flag_action_enum_t a); -/// @ingroup FLAGS -/// test to see if a specific action is a write -XED_DLL_EXPORT xed_bool_t -xed_flag_action_write_action( xed_flag_action_enum_t a); -//@} - -//////////////////////////////////////////////////////////////////////////// - -#define XED_MAX_FLAG_ACTIONS (XED_FLAG_LAST + 3) -/// @ingroup FLAGS -/// A collection of #xed_flag_action_t's and unions of read and written flags -typedef struct XED_DLL_EXPORT xed_simple_flag_s -{ - xed_uint8_t nflags; - - xed_bool_t may_write :1; - xed_bool_t must_write :1; - - /// indexed from 0, not by position in archtectural flags array. - xed_flag_action_t fa[XED_MAX_FLAG_ACTIONS]; - - ///union of read flags - xed_flag_set_t read; - - /// union of written flags; - xed_flag_set_t written; -} xed_simple_flag_t; - -/// @ingroup FLAGS -/// @name Accessing the simple flags (Mid-level access) -//@{ -/// @ingroup FLAGS -/// returns the number of flag-actions -XED_DLL_EXPORT unsigned int -xed_simple_flag_get_nflags(const xed_simple_flag_t* p); - -/// @ingroup FLAGS -/// return union of bits for read flags -XED_DLL_EXPORT const xed_flag_set_t* -xed_simple_flag_get_read_flag_set(const xed_simple_flag_t* p); - -/// @ingroup FLAGS -/// return union of bits for written flags -XED_DLL_EXPORT const xed_flag_set_t* -xed_simple_flag_get_written_flag_set(const xed_simple_flag_t* p); - -/// @ingroup FLAGS -/// Indicates the flags are only conditionally written. Usally MAY-writes -/// of the flags instructions that are dependent on a REP count. -XED_DLL_EXPORT xed_bool_t xed_simple_flag_get_may_write(const xed_simple_flag_t* p); - -/// @ingroup FLAGS -/// the flags always written -XED_DLL_EXPORT xed_bool_t xed_simple_flag_get_must_write(const xed_simple_flag_t* p); - -/// @ingroup FLAGS -/// return the specific flag-action. Very detailed low level information -XED_DLL_EXPORT const xed_flag_action_t* -xed_simple_flag_get_flag_action(const xed_simple_flag_t* p, unsigned int i); - -/// @ingroup FLAGS -/// boolean test to see if flags are read, scans the flags -XED_DLL_EXPORT xed_bool_t -xed_simple_flag_reads_flags(const xed_simple_flag_t* p); - -/// @ingroup FLAGS -/// boolean test to see if flags are written, scans the flags -XED_DLL_EXPORT xed_bool_t xed_simple_flag_writes_flags(const xed_simple_flag_t* p); - -/// @ingroup FLAGS -/// print the flags -XED_DLL_EXPORT int xed_simple_flag_print(const xed_simple_flag_t* p, char* buf, int buflen); -//@} - -//////////////////////////////////////////////////////////////////////////// - - -//////////////////////////////////////////////////////////////////////////// - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-gen-table-defs.h b/misc/decoder_test/XED2/include/xed/xed-gen-table-defs.h deleted file mode 100644 index 508be38..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-gen-table-defs.h +++ /dev/null @@ -1,48 +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-gen-table-defs.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_GEN_TABLE_DEFS_H_) -# define _XED_GEN_TABLE_DEFS_H_ -#define XED_MAX_ATTRIBUTE_COUNT 17 -#define XED_MAX_GRAPH_NODES 8975 -#define XED_MAX_GRAPH_NEXT_NODES 10668 -#define XED_MAX_INST_TABLE_NODES 1943 -#define XED_MAX_OPERAND_TABLE_NODES 4909 -#define XED_MAX_REQUIRED_SIMPLE_FLAGS_ENTRIES 780 -#define XED_MAX_REQUIRED_COMPLEX_FLAGS_ENTRIES 53 -#define XED_MAX_IFORMS 1481 -#define XED_MAX_IFORMS_PER_ICLASS 18 -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-iclass-enum.h b/misc/decoder_test/XED2/include/xed/xed-iclass-enum.h deleted file mode 100644 index 519c812..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-iclass-enum.h +++ /dev/null @@ -1,683 +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-iclass-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_ICLASS_ENUM_H_) -# define _XED_ICLASS_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_ICLASS_INVALID, - XED_ICLASS_AAA, - XED_ICLASS_AAD, - XED_ICLASS_AAM, - XED_ICLASS_AAS, - XED_ICLASS_ADC, - XED_ICLASS_ADD, - XED_ICLASS_ADDPD, - XED_ICLASS_ADDPS, - XED_ICLASS_ADDSD, - XED_ICLASS_ADDSS, - XED_ICLASS_ADDSUBPD, - XED_ICLASS_ADDSUBPS, - XED_ICLASS_AND, - XED_ICLASS_ANDNPD, - XED_ICLASS_ANDNPS, - XED_ICLASS_ANDPD, - XED_ICLASS_ANDPS, - XED_ICLASS_ARPL, - XED_ICLASS_BLENDPD, - XED_ICLASS_BLENDPS, - XED_ICLASS_BLENDVPD, - XED_ICLASS_BLENDVPS, - XED_ICLASS_BOUND, - XED_ICLASS_BSF, - XED_ICLASS_BSR, - XED_ICLASS_BSWAP, - XED_ICLASS_BT, - XED_ICLASS_BTC, - XED_ICLASS_BTR, - XED_ICLASS_BTS, - XED_ICLASS_CALL_FAR, - XED_ICLASS_CALL_NEAR, - XED_ICLASS_CBW, - XED_ICLASS_CDQ, - XED_ICLASS_CDQE, - XED_ICLASS_CLC, - XED_ICLASS_CLD, - XED_ICLASS_CLFLUSH, - XED_ICLASS_CLGI, - XED_ICLASS_CLI, - XED_ICLASS_CLTS, - XED_ICLASS_CMC, - XED_ICLASS_CMOVB, - XED_ICLASS_CMOVBE, - XED_ICLASS_CMOVL, - XED_ICLASS_CMOVLE, - XED_ICLASS_CMOVNB, - XED_ICLASS_CMOVNBE, - XED_ICLASS_CMOVNL, - XED_ICLASS_CMOVNLE, - XED_ICLASS_CMOVNO, - XED_ICLASS_CMOVNP, - XED_ICLASS_CMOVNS, - XED_ICLASS_CMOVNZ, - XED_ICLASS_CMOVO, - XED_ICLASS_CMOVP, - XED_ICLASS_CMOVS, - XED_ICLASS_CMOVZ, - XED_ICLASS_CMP, - XED_ICLASS_CMPPD, - XED_ICLASS_CMPPS, - XED_ICLASS_CMPSB, - XED_ICLASS_CMPSD, - XED_ICLASS_CMPSD_XMM, - XED_ICLASS_CMPSQ, - XED_ICLASS_CMPSS, - XED_ICLASS_CMPSW, - XED_ICLASS_CMPXCHG, - XED_ICLASS_CMPXCHG16B, - XED_ICLASS_CMPXCHG8B, - XED_ICLASS_COMISD, - XED_ICLASS_COMISS, - XED_ICLASS_CPUID, - XED_ICLASS_CQO, - XED_ICLASS_CRC32, - XED_ICLASS_CVTDQ2PD, - XED_ICLASS_CVTDQ2PS, - XED_ICLASS_CVTPD2DQ, - XED_ICLASS_CVTPD2PI, - XED_ICLASS_CVTPD2PS, - XED_ICLASS_CVTPI2PD, - XED_ICLASS_CVTPI2PS, - XED_ICLASS_CVTPS2DQ, - XED_ICLASS_CVTPS2PD, - XED_ICLASS_CVTPS2PI, - XED_ICLASS_CVTSD2SI, - XED_ICLASS_CVTSD2SS, - XED_ICLASS_CVTSI2SD, - XED_ICLASS_CVTSI2SS, - XED_ICLASS_CVTSS2SD, - XED_ICLASS_CVTSS2SI, - XED_ICLASS_CVTTPD2DQ, - XED_ICLASS_CVTTPD2PI, - XED_ICLASS_CVTTPS2DQ, - XED_ICLASS_CVTTPS2PI, - XED_ICLASS_CVTTSD2SI, - XED_ICLASS_CVTTSS2SI, - XED_ICLASS_CWD, - XED_ICLASS_CWDE, - XED_ICLASS_DAA, - XED_ICLASS_DAS, - XED_ICLASS_DEC, - XED_ICLASS_DIV, - XED_ICLASS_DIVPD, - XED_ICLASS_DIVPS, - XED_ICLASS_DIVSD, - XED_ICLASS_DIVSS, - XED_ICLASS_DPPD, - XED_ICLASS_DPPS, - XED_ICLASS_EMMS, - XED_ICLASS_ENTER, - XED_ICLASS_EXTRACTPS, - XED_ICLASS_EXTRQ, - XED_ICLASS_F2XM1, - XED_ICLASS_FABS, - XED_ICLASS_FADD, - XED_ICLASS_FADDP, - XED_ICLASS_FBLD, - XED_ICLASS_FBSTP, - XED_ICLASS_FCHS, - XED_ICLASS_FCMOVB, - XED_ICLASS_FCMOVBE, - XED_ICLASS_FCMOVE, - XED_ICLASS_FCMOVNB, - XED_ICLASS_FCMOVNBE, - XED_ICLASS_FCMOVNE, - XED_ICLASS_FCMOVNU, - XED_ICLASS_FCMOVU, - XED_ICLASS_FCOM, - XED_ICLASS_FCOMI, - XED_ICLASS_FCOMIP, - XED_ICLASS_FCOMP, - XED_ICLASS_FCOMPP, - XED_ICLASS_FCOS, - XED_ICLASS_FDECSTP, - XED_ICLASS_FDIV, - XED_ICLASS_FDIVP, - XED_ICLASS_FDIVR, - XED_ICLASS_FDIVRP, - XED_ICLASS_FEMMS, - XED_ICLASS_FFREE, - XED_ICLASS_FFREEP, - XED_ICLASS_FIADD, - XED_ICLASS_FICOM, - XED_ICLASS_FICOMP, - XED_ICLASS_FIDIV, - XED_ICLASS_FIDIVR, - XED_ICLASS_FILD, - XED_ICLASS_FIMUL, - XED_ICLASS_FINCSTP, - XED_ICLASS_FIST, - XED_ICLASS_FISTP, - XED_ICLASS_FISTTP, - XED_ICLASS_FISUB, - XED_ICLASS_FISUBR, - XED_ICLASS_FLD, - XED_ICLASS_FLD1, - XED_ICLASS_FLDCW, - XED_ICLASS_FLDENV, - XED_ICLASS_FLDL2E, - XED_ICLASS_FLDL2T, - XED_ICLASS_FLDLG2, - XED_ICLASS_FLDLN2, - XED_ICLASS_FLDPI, - XED_ICLASS_FLDZ, - XED_ICLASS_FMUL, - XED_ICLASS_FMULP, - XED_ICLASS_FNCLEX, - XED_ICLASS_FNINIT, - XED_ICLASS_FNOP, - XED_ICLASS_FNSAVE, - XED_ICLASS_FNSTCW, - XED_ICLASS_FNSTENV, - XED_ICLASS_FNSTSW, - XED_ICLASS_FPATAN, - XED_ICLASS_FPREM, - XED_ICLASS_FPREM1, - XED_ICLASS_FPTAN, - XED_ICLASS_FRNDINT, - XED_ICLASS_FRSTOR, - XED_ICLASS_FSCALE, - XED_ICLASS_FSETPM287_NOP, - XED_ICLASS_FSIN, - XED_ICLASS_FSINCOS, - XED_ICLASS_FSQRT, - XED_ICLASS_FST, - XED_ICLASS_FSTP, - XED_ICLASS_FSUB, - XED_ICLASS_FSUBP, - XED_ICLASS_FSUBR, - XED_ICLASS_FSUBRP, - XED_ICLASS_FTST, - XED_ICLASS_FUCOM, - XED_ICLASS_FUCOMI, - XED_ICLASS_FUCOMIP, - XED_ICLASS_FUCOMP, - XED_ICLASS_FUCOMPP, - XED_ICLASS_FWAIT, - XED_ICLASS_FXAM, - XED_ICLASS_FXCH, - XED_ICLASS_FXRSTOR, - XED_ICLASS_FXSAVE, - XED_ICLASS_FXTRACT, - XED_ICLASS_FYL2X, - XED_ICLASS_FYL2XP1, - XED_ICLASS_HADDPD, - XED_ICLASS_HADDPS, - XED_ICLASS_HLT, - XED_ICLASS_HSUBPD, - XED_ICLASS_HSUBPS, - XED_ICLASS_IDIV, - XED_ICLASS_IMUL, - XED_ICLASS_IN, - XED_ICLASS_INC, - XED_ICLASS_INSB, - XED_ICLASS_INSD, - XED_ICLASS_INSERTPS, - XED_ICLASS_INSERTQ, - XED_ICLASS_INSW, - XED_ICLASS_INT, - XED_ICLASS_INT1, - XED_ICLASS_INT3, - XED_ICLASS_INTO, - XED_ICLASS_INVD, - XED_ICLASS_INVLPG, - XED_ICLASS_INVLPGA, - XED_ICLASS_IRET, - XED_ICLASS_IRETD, - XED_ICLASS_IRETQ, - XED_ICLASS_JB, - XED_ICLASS_JBE, - XED_ICLASS_JL, - XED_ICLASS_JLE, - XED_ICLASS_JMP, - XED_ICLASS_JMP_FAR, - XED_ICLASS_JNB, - XED_ICLASS_JNBE, - XED_ICLASS_JNL, - XED_ICLASS_JNLE, - XED_ICLASS_JNO, - XED_ICLASS_JNP, - XED_ICLASS_JNS, - XED_ICLASS_JNZ, - XED_ICLASS_JO, - XED_ICLASS_JP, - XED_ICLASS_JRCXZ, - XED_ICLASS_JS, - XED_ICLASS_JZ, - XED_ICLASS_LAHF, - XED_ICLASS_LAR, - XED_ICLASS_LDDQU, - XED_ICLASS_LDMXCSR, - XED_ICLASS_LDS, - XED_ICLASS_LEA, - XED_ICLASS_LEAVE, - XED_ICLASS_LES, - XED_ICLASS_LFENCE, - XED_ICLASS_LFS, - XED_ICLASS_LGDT, - XED_ICLASS_LGS, - XED_ICLASS_LIDT, - XED_ICLASS_LLDT, - XED_ICLASS_LMSW, - XED_ICLASS_LODSB, - XED_ICLASS_LODSD, - XED_ICLASS_LODSQ, - XED_ICLASS_LODSW, - XED_ICLASS_LOOP, - XED_ICLASS_LOOPE, - XED_ICLASS_LOOPNE, - XED_ICLASS_LSL, - XED_ICLASS_LSS, - XED_ICLASS_LTR, - XED_ICLASS_LZCNT, - XED_ICLASS_MASKMOVDQU, - XED_ICLASS_MASKMOVQ, - XED_ICLASS_MAXPD, - XED_ICLASS_MAXPS, - XED_ICLASS_MAXSD, - XED_ICLASS_MAXSS, - XED_ICLASS_MFENCE, - XED_ICLASS_MINPD, - XED_ICLASS_MINPS, - XED_ICLASS_MINSD, - XED_ICLASS_MINSS, - XED_ICLASS_MONITOR, - XED_ICLASS_MOV, - XED_ICLASS_MOVAPD, - XED_ICLASS_MOVAPS, - XED_ICLASS_MOVD, - XED_ICLASS_MOVDDUP, - XED_ICLASS_MOVDQ2Q, - XED_ICLASS_MOVDQA, - XED_ICLASS_MOVDQU, - XED_ICLASS_MOVHLPS, - XED_ICLASS_MOVHPD, - XED_ICLASS_MOVHPS, - XED_ICLASS_MOVLHPS, - XED_ICLASS_MOVLPD, - XED_ICLASS_MOVLPS, - XED_ICLASS_MOVMSKPD, - XED_ICLASS_MOVMSKPS, - XED_ICLASS_MOVNTDQ, - XED_ICLASS_MOVNTDQA, - XED_ICLASS_MOVNTI, - XED_ICLASS_MOVNTPD, - XED_ICLASS_MOVNTPS, - XED_ICLASS_MOVNTQ, - XED_ICLASS_MOVNTSD, - XED_ICLASS_MOVNTSS, - XED_ICLASS_MOVQ, - XED_ICLASS_MOVQ2DQ, - XED_ICLASS_MOVSB, - XED_ICLASS_MOVSD, - XED_ICLASS_MOVSD_XMM, - XED_ICLASS_MOVSHDUP, - XED_ICLASS_MOVSLDUP, - XED_ICLASS_MOVSQ, - XED_ICLASS_MOVSS, - XED_ICLASS_MOVSW, - XED_ICLASS_MOVSX, - XED_ICLASS_MOVSXD, - XED_ICLASS_MOVUPD, - XED_ICLASS_MOVUPS, - XED_ICLASS_MOVZX, - XED_ICLASS_MOV_CR, - XED_ICLASS_MOV_DR, - XED_ICLASS_MPSADBW, - XED_ICLASS_MUL, - XED_ICLASS_MULPD, - XED_ICLASS_MULPS, - XED_ICLASS_MULSD, - XED_ICLASS_MULSS, - XED_ICLASS_MWAIT, - XED_ICLASS_NEG, - XED_ICLASS_NOP, - XED_ICLASS_NOP2, - XED_ICLASS_NOP3, - XED_ICLASS_NOP4, - XED_ICLASS_NOP5, - XED_ICLASS_NOP6, - XED_ICLASS_NOP7, - XED_ICLASS_NOP8, - XED_ICLASS_NOP9, - XED_ICLASS_NOT, - XED_ICLASS_OR, - XED_ICLASS_ORPD, - XED_ICLASS_ORPS, - XED_ICLASS_OUT, - XED_ICLASS_OUTSB, - XED_ICLASS_OUTSD, - XED_ICLASS_OUTSW, - XED_ICLASS_PABSB, - XED_ICLASS_PABSD, - XED_ICLASS_PABSW, - XED_ICLASS_PACKSSDW, - XED_ICLASS_PACKSSWB, - XED_ICLASS_PACKUSDW, - XED_ICLASS_PACKUSWB, - XED_ICLASS_PADDB, - XED_ICLASS_PADDD, - XED_ICLASS_PADDQ, - XED_ICLASS_PADDSB, - XED_ICLASS_PADDSW, - XED_ICLASS_PADDUSB, - XED_ICLASS_PADDUSW, - XED_ICLASS_PADDW, - XED_ICLASS_PALIGNR, - XED_ICLASS_PAND, - XED_ICLASS_PANDN, - XED_ICLASS_PAUSE, - XED_ICLASS_PAVGB, - XED_ICLASS_PAVGUSB, - XED_ICLASS_PAVGW, - XED_ICLASS_PBLENDVB, - XED_ICLASS_PBLENDW, - XED_ICLASS_PCMPEQB, - XED_ICLASS_PCMPEQD, - XED_ICLASS_PCMPEQQ, - XED_ICLASS_PCMPEQW, - XED_ICLASS_PCMPESTRI, - XED_ICLASS_PCMPESTRM, - XED_ICLASS_PCMPGTB, - XED_ICLASS_PCMPGTD, - XED_ICLASS_PCMPGTQ, - XED_ICLASS_PCMPGTW, - XED_ICLASS_PCMPISTRI, - XED_ICLASS_PCMPISTRM, - XED_ICLASS_PEXTRB, - XED_ICLASS_PEXTRD, - XED_ICLASS_PEXTRQ, - XED_ICLASS_PEXTRW, - XED_ICLASS_PF2ID, - XED_ICLASS_PF2IW, - XED_ICLASS_PFACC, - XED_ICLASS_PFADD, - XED_ICLASS_PFCMPEQ, - XED_ICLASS_PFCMPGE, - XED_ICLASS_PFCMPGT, - XED_ICLASS_PFCPIT1, - XED_ICLASS_PFMAX, - XED_ICLASS_PFMIN, - XED_ICLASS_PFMUL, - XED_ICLASS_PFNACC, - XED_ICLASS_PFPNACC, - XED_ICLASS_PFRCP, - XED_ICLASS_PFRCPIT2, - XED_ICLASS_PFRSQIT1, - XED_ICLASS_PFSQRT, - XED_ICLASS_PFSUB, - XED_ICLASS_PFSUBR, - XED_ICLASS_PHADDD, - XED_ICLASS_PHADDSW, - XED_ICLASS_PHADDW, - XED_ICLASS_PHMINPOSUW, - XED_ICLASS_PHSUBD, - XED_ICLASS_PHSUBSW, - XED_ICLASS_PHSUBW, - XED_ICLASS_PI2FD, - XED_ICLASS_PI2FW, - XED_ICLASS_PINSRB, - XED_ICLASS_PINSRD, - XED_ICLASS_PINSRQ, - XED_ICLASS_PINSRW, - XED_ICLASS_PMADDUBSW, - XED_ICLASS_PMADDWD, - XED_ICLASS_PMAXSB, - XED_ICLASS_PMAXSD, - XED_ICLASS_PMAXSW, - XED_ICLASS_PMAXUB, - XED_ICLASS_PMAXUD, - XED_ICLASS_PMAXUW, - XED_ICLASS_PMINSB, - XED_ICLASS_PMINSD, - XED_ICLASS_PMINSW, - XED_ICLASS_PMINUB, - XED_ICLASS_PMINUD, - XED_ICLASS_PMINUW, - XED_ICLASS_PMOVMSKB, - XED_ICLASS_PMOVSXBD, - XED_ICLASS_PMOVSXBQ, - XED_ICLASS_PMOVSXBW, - XED_ICLASS_PMOVSXDQ, - XED_ICLASS_PMOVSXWD, - XED_ICLASS_PMOVSXWQ, - XED_ICLASS_PMOVZXBD, - XED_ICLASS_PMOVZXBQ, - XED_ICLASS_PMOVZXBW, - XED_ICLASS_PMOVZXDQ, - XED_ICLASS_PMOVZXWD, - XED_ICLASS_PMOVZXWQ, - XED_ICLASS_PMULDQ, - XED_ICLASS_PMULHRSW, - XED_ICLASS_PMULHRW, - XED_ICLASS_PMULHUW, - XED_ICLASS_PMULHW, - XED_ICLASS_PMULLD, - XED_ICLASS_PMULLW, - XED_ICLASS_PMULUDQ, - XED_ICLASS_POP, - XED_ICLASS_POPA, - XED_ICLASS_POPAD, - XED_ICLASS_POPCNT, - XED_ICLASS_POPF, - XED_ICLASS_POPFD, - XED_ICLASS_POPFQ, - XED_ICLASS_POR, - XED_ICLASS_PREFETCHNTA, - XED_ICLASS_PREFETCHT0, - XED_ICLASS_PREFETCHT1, - XED_ICLASS_PREFETCHT2, - XED_ICLASS_PREFETCH_EXCLUSIVE, - XED_ICLASS_PREFETCH_MODIFIED, - XED_ICLASS_PREFETCH_RESERVED, - XED_ICLASS_PSADBW, - XED_ICLASS_PSHUFB, - XED_ICLASS_PSHUFD, - XED_ICLASS_PSHUFHW, - XED_ICLASS_PSHUFLW, - XED_ICLASS_PSHUFW, - XED_ICLASS_PSIGNB, - XED_ICLASS_PSIGND, - XED_ICLASS_PSIGNW, - XED_ICLASS_PSLLD, - XED_ICLASS_PSLLDQ, - XED_ICLASS_PSLLQ, - XED_ICLASS_PSLLW, - XED_ICLASS_PSRAD, - XED_ICLASS_PSRAW, - XED_ICLASS_PSRLD, - XED_ICLASS_PSRLDQ, - XED_ICLASS_PSRLQ, - XED_ICLASS_PSRLW, - XED_ICLASS_PSUBB, - XED_ICLASS_PSUBD, - XED_ICLASS_PSUBQ, - XED_ICLASS_PSUBSB, - XED_ICLASS_PSUBSW, - XED_ICLASS_PSUBUSB, - XED_ICLASS_PSUBUSW, - XED_ICLASS_PSUBW, - XED_ICLASS_PSWAPD, - XED_ICLASS_PTEST, - XED_ICLASS_PUNPCKHBW, - XED_ICLASS_PUNPCKHDQ, - XED_ICLASS_PUNPCKHQDQ, - XED_ICLASS_PUNPCKHWD, - XED_ICLASS_PUNPCKLBW, - XED_ICLASS_PUNPCKLDQ, - XED_ICLASS_PUNPCKLQDQ, - XED_ICLASS_PUNPCKLWD, - XED_ICLASS_PUSH, - XED_ICLASS_PUSHA, - XED_ICLASS_PUSHAD, - XED_ICLASS_PUSHF, - XED_ICLASS_PUSHFD, - XED_ICLASS_PUSHFQ, - XED_ICLASS_PXOR, - XED_ICLASS_RCL, - XED_ICLASS_RCPPS, - XED_ICLASS_RCPSS, - XED_ICLASS_RCR, - XED_ICLASS_RDMSR, - XED_ICLASS_RDPMC, - XED_ICLASS_RDTSC, - XED_ICLASS_RDTSCP, - XED_ICLASS_RET_FAR, - XED_ICLASS_RET_NEAR, - XED_ICLASS_ROL, - XED_ICLASS_ROR, - XED_ICLASS_ROUNDPD, - XED_ICLASS_ROUNDPS, - XED_ICLASS_ROUNDSD, - XED_ICLASS_ROUNDSS, - XED_ICLASS_RSM, - XED_ICLASS_RSQRTPS, - XED_ICLASS_RSQRTSS, - XED_ICLASS_SAHF, - XED_ICLASS_SALC, - XED_ICLASS_SAR, - XED_ICLASS_SBB, - XED_ICLASS_SCASB, - XED_ICLASS_SCASD, - XED_ICLASS_SCASQ, - XED_ICLASS_SCASW, - XED_ICLASS_SETB, - XED_ICLASS_SETBE, - XED_ICLASS_SETL, - XED_ICLASS_SETLE, - XED_ICLASS_SETNB, - XED_ICLASS_SETNBE, - XED_ICLASS_SETNL, - XED_ICLASS_SETNLE, - XED_ICLASS_SETNO, - XED_ICLASS_SETNP, - XED_ICLASS_SETNS, - XED_ICLASS_SETNZ, - XED_ICLASS_SETO, - XED_ICLASS_SETP, - XED_ICLASS_SETS, - XED_ICLASS_SETZ, - XED_ICLASS_SFENCE, - XED_ICLASS_SGDT, - XED_ICLASS_SHL, - XED_ICLASS_SHLD, - XED_ICLASS_SHR, - XED_ICLASS_SHRD, - XED_ICLASS_SHUFPD, - XED_ICLASS_SHUFPS, - XED_ICLASS_SIDT, - XED_ICLASS_SKINIT, - XED_ICLASS_SLDT, - XED_ICLASS_SMSW, - XED_ICLASS_SQRTPD, - XED_ICLASS_SQRTPS, - XED_ICLASS_SQRTSD, - XED_ICLASS_SQRTSS, - XED_ICLASS_STC, - XED_ICLASS_STD, - XED_ICLASS_STGI, - XED_ICLASS_STI, - XED_ICLASS_STMXCSR, - XED_ICLASS_STOSB, - XED_ICLASS_STOSD, - XED_ICLASS_STOSQ, - XED_ICLASS_STOSW, - XED_ICLASS_STR, - XED_ICLASS_SUB, - XED_ICLASS_SUBPD, - XED_ICLASS_SUBPS, - XED_ICLASS_SUBSD, - XED_ICLASS_SUBSS, - XED_ICLASS_SWAPGS, - XED_ICLASS_SYSCALL, - XED_ICLASS_SYSENTER, - XED_ICLASS_SYSEXIT, - XED_ICLASS_SYSRET, - XED_ICLASS_TEST, - XED_ICLASS_UCOMISD, - XED_ICLASS_UCOMISS, - XED_ICLASS_UD2, - XED_ICLASS_UNPCKHPD, - XED_ICLASS_UNPCKHPS, - XED_ICLASS_UNPCKLPD, - XED_ICLASS_UNPCKLPS, - XED_ICLASS_VERR, - XED_ICLASS_VERW, - XED_ICLASS_VMCALL, - XED_ICLASS_VMCLEAR, - XED_ICLASS_VMLAUNCH, - XED_ICLASS_VMLOAD, - XED_ICLASS_VMMCALL, - XED_ICLASS_VMPTRLD, - XED_ICLASS_VMPTRST, - XED_ICLASS_VMREAD, - XED_ICLASS_VMRESUME, - XED_ICLASS_VMRUN, - XED_ICLASS_VMSAVE, - XED_ICLASS_VMWRITE, - XED_ICLASS_VMXOFF, - XED_ICLASS_VMXON, - XED_ICLASS_WBINVD, - XED_ICLASS_WRMSR, - XED_ICLASS_XADD, - XED_ICLASS_XCHG, - XED_ICLASS_XGETBV, - XED_ICLASS_XLAT, - XED_ICLASS_XOR, - XED_ICLASS_XORPD, - XED_ICLASS_XORPS, - XED_ICLASS_XRSTOR, - XED_ICLASS_XSAVE, - XED_ICLASS_XSETBV, - XED_ICLASS_LAST -} xed_iclass_enum_t; - -XED_DLL_EXPORT xed_iclass_enum_t -str2xed_iclass_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_iclass_enum_t2str(const xed_iclass_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-iform-enum.h b/misc/decoder_test/XED2/include/xed/xed-iform-enum.h deleted file mode 100644 index d1fc8d9..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-iform-enum.h +++ /dev/null @@ -1,1531 +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-iform-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_IFORM_ENUM_H_) -# define _XED_IFORM_ENUM_H_ -#include "xed-common-hdrs.h" -#include "xed-iclass-enum.h" -typedef enum { - XED_IFORM_INVALID=0, - XED_IFORM_AAA=(XED_ICLASS_AAA<<8)+0, - XED_IFORM_AAD_IMM=(XED_ICLASS_AAD<<8)+0, - XED_IFORM_AAM_IMM=(XED_ICLASS_AAM<<8)+0, - XED_IFORM_AAS=(XED_ICLASS_AAS<<8)+0, - XED_IFORM_ADC_MEMv_GPRv=(XED_ICLASS_ADC<<8)+0, - XED_IFORM_ADC_GPRv_GPRv=(XED_ICLASS_ADC<<8)+1, - XED_IFORM_ADC_GPR8_MEMb=(XED_ICLASS_ADC<<8)+2, - XED_IFORM_ADC_AL_IMM=(XED_ICLASS_ADC<<8)+3, - XED_IFORM_ADC_GPR8_IMM=(XED_ICLASS_ADC<<8)+4, - XED_IFORM_ADC_GPRv_MEMv=(XED_ICLASS_ADC<<8)+5, - XED_IFORM_ADC_OrAX_IMM=(XED_ICLASS_ADC<<8)+6, - XED_IFORM_ADC_MEMv_IMM=(XED_ICLASS_ADC<<8)+7, - XED_IFORM_ADC_GPRv_IMM=(XED_ICLASS_ADC<<8)+8, - XED_IFORM_ADC_MEMb_GPR8=(XED_ICLASS_ADC<<8)+9, - XED_IFORM_ADC_MEMb_IMM=(XED_ICLASS_ADC<<8)+10, - XED_IFORM_ADC_GPR8_GPR8=(XED_ICLASS_ADC<<8)+11, - XED_IFORM_ADD_GPR8_MEMb=(XED_ICLASS_ADD<<8)+0, - XED_IFORM_ADD_OrAX_IMM=(XED_ICLASS_ADD<<8)+1, - XED_IFORM_ADD_AL_IMM=(XED_ICLASS_ADD<<8)+2, - XED_IFORM_ADD_GPRv_GPRv=(XED_ICLASS_ADD<<8)+3, - XED_IFORM_ADD_MEMv_GPRv=(XED_ICLASS_ADD<<8)+4, - XED_IFORM_ADD_GPR8_GPR8=(XED_ICLASS_ADD<<8)+5, - XED_IFORM_ADD_GPRv_MEMv=(XED_ICLASS_ADD<<8)+6, - XED_IFORM_ADD_GPR8_IMM=(XED_ICLASS_ADD<<8)+7, - XED_IFORM_ADD_MEMb_IMM=(XED_ICLASS_ADD<<8)+8, - XED_IFORM_ADD_GPRv_IMM=(XED_ICLASS_ADD<<8)+9, - XED_IFORM_ADD_MEMb_GPR8=(XED_ICLASS_ADD<<8)+10, - XED_IFORM_ADD_MEMv_IMM=(XED_ICLASS_ADD<<8)+11, - XED_IFORM_ADDPD_XMMpd_XMMpd=(XED_ICLASS_ADDPD<<8)+0, - XED_IFORM_ADDPD_XMMpd_MEMpd=(XED_ICLASS_ADDPD<<8)+1, - XED_IFORM_ADDPS_XMMps_MEMps=(XED_ICLASS_ADDPS<<8)+0, - XED_IFORM_ADDPS_XMMps_XMMps=(XED_ICLASS_ADDPS<<8)+1, - XED_IFORM_ADDSD_XMMsd_MEMsd=(XED_ICLASS_ADDSD<<8)+0, - XED_IFORM_ADDSD_XMMsd_XMMsd=(XED_ICLASS_ADDSD<<8)+1, - XED_IFORM_ADDSS_XMMss_XMMss=(XED_ICLASS_ADDSS<<8)+0, - XED_IFORM_ADDSS_XMMss_MEMss=(XED_ICLASS_ADDSS<<8)+1, - XED_IFORM_ADDSUBPD_XMMpd_MEMpd=(XED_ICLASS_ADDSUBPD<<8)+0, - XED_IFORM_ADDSUBPD_XMMpd_XMMpd=(XED_ICLASS_ADDSUBPD<<8)+1, - XED_IFORM_ADDSUBPS_XMMps_XMMps=(XED_ICLASS_ADDSUBPS<<8)+0, - XED_IFORM_ADDSUBPS_XMMps_MEMps=(XED_ICLASS_ADDSUBPS<<8)+1, - XED_IFORM_AND_OrAX_IMM=(XED_ICLASS_AND<<8)+0, - XED_IFORM_AND_GPR8_GPR8=(XED_ICLASS_AND<<8)+1, - XED_IFORM_AND_GPR8_IMM=(XED_ICLASS_AND<<8)+2, - XED_IFORM_AND_MEMv_IMM=(XED_ICLASS_AND<<8)+3, - XED_IFORM_AND_MEMb_GPR8=(XED_ICLASS_AND<<8)+4, - XED_IFORM_AND_GPRv_MEMv=(XED_ICLASS_AND<<8)+5, - XED_IFORM_AND_GPRv_IMM=(XED_ICLASS_AND<<8)+6, - XED_IFORM_AND_GPR8_MEMb=(XED_ICLASS_AND<<8)+7, - XED_IFORM_AND_AL_IMM=(XED_ICLASS_AND<<8)+8, - XED_IFORM_AND_MEMv_GPRv=(XED_ICLASS_AND<<8)+9, - XED_IFORM_AND_MEMb_IMM=(XED_ICLASS_AND<<8)+10, - XED_IFORM_AND_GPRv_GPRv=(XED_ICLASS_AND<<8)+11, - XED_IFORM_ANDNPD_XMMpd_MEMpd=(XED_ICLASS_ANDNPD<<8)+0, - XED_IFORM_ANDNPD_XMMpd_XMMpd=(XED_ICLASS_ANDNPD<<8)+1, - XED_IFORM_ANDNPS_XMMps_XMMps=(XED_ICLASS_ANDNPS<<8)+0, - XED_IFORM_ANDNPS_XMMps_MEMps=(XED_ICLASS_ANDNPS<<8)+1, - XED_IFORM_ANDPD_XMMpd_XMMpd=(XED_ICLASS_ANDPD<<8)+0, - XED_IFORM_ANDPD_XMMpd_MEMpd=(XED_ICLASS_ANDPD<<8)+1, - XED_IFORM_ANDPS_XMMps_MEMps=(XED_ICLASS_ANDPS<<8)+0, - XED_IFORM_ANDPS_XMMps_XMMps=(XED_ICLASS_ANDPS<<8)+1, - XED_IFORM_ARPL_GPR16_GPR16=(XED_ICLASS_ARPL<<8)+0, - XED_IFORM_ARPL_MEMw_GPR16=(XED_ICLASS_ARPL<<8)+1, - XED_IFORM_BLENDPD_XMMdq_XMMdq_IMM=(XED_ICLASS_BLENDPD<<8)+0, - XED_IFORM_BLENDPD_XMMdq_MEMdq_IMM=(XED_ICLASS_BLENDPD<<8)+1, - XED_IFORM_BLENDPS_XMMdq_XMMdq_IMM=(XED_ICLASS_BLENDPS<<8)+0, - XED_IFORM_BLENDPS_XMMdq_MEMdq_IMM=(XED_ICLASS_BLENDPS<<8)+1, - XED_IFORM_BLENDVPD_XMMdq_XMMdq_XMM0dq=(XED_ICLASS_BLENDVPD<<8)+0, - XED_IFORM_BLENDVPD_XMMdq_MEMdq_XMM0dq=(XED_ICLASS_BLENDVPD<<8)+1, - XED_IFORM_BLENDVPS_XMMdq_XMMdq_XMM0dq=(XED_ICLASS_BLENDVPS<<8)+0, - XED_IFORM_BLENDVPS_XMMdq_MEMdq_XMM0dq=(XED_ICLASS_BLENDVPS<<8)+1, - XED_IFORM_BOUND_GPRv_MEMa=(XED_ICLASS_BOUND<<8)+0, - XED_IFORM_BSF_GPRv_MEMv=(XED_ICLASS_BSF<<8)+0, - XED_IFORM_BSF_GPRv_GPRv=(XED_ICLASS_BSF<<8)+1, - XED_IFORM_BSR_GPRv_GPRv=(XED_ICLASS_BSR<<8)+0, - XED_IFORM_BSR_GPRv_MEMv=(XED_ICLASS_BSR<<8)+1, - XED_IFORM_BSWAP_GPRv=(XED_ICLASS_BSWAP<<8)+0, - XED_IFORM_BT_GPRv_IMM=(XED_ICLASS_BT<<8)+0, - XED_IFORM_BT_MEMv_IMM=(XED_ICLASS_BT<<8)+1, - XED_IFORM_BT_MEMv_GPRv=(XED_ICLASS_BT<<8)+2, - XED_IFORM_BT_GPRv_GPRv=(XED_ICLASS_BT<<8)+3, - XED_IFORM_BTC_GPRv_GPRv=(XED_ICLASS_BTC<<8)+0, - XED_IFORM_BTC_MEMv_IMM=(XED_ICLASS_BTC<<8)+1, - XED_IFORM_BTC_MEMv_GPRv=(XED_ICLASS_BTC<<8)+2, - XED_IFORM_BTC_GPRv_IMM=(XED_ICLASS_BTC<<8)+3, - XED_IFORM_BTR_GPRv_IMM=(XED_ICLASS_BTR<<8)+0, - XED_IFORM_BTR_GPRv_GPRv=(XED_ICLASS_BTR<<8)+1, - XED_IFORM_BTR_MEMv_IMM=(XED_ICLASS_BTR<<8)+2, - XED_IFORM_BTR_MEMv_GPRv=(XED_ICLASS_BTR<<8)+3, - XED_IFORM_BTS_GPRv_GPRv=(XED_ICLASS_BTS<<8)+0, - XED_IFORM_BTS_MEMv_IMM=(XED_ICLASS_BTS<<8)+1, - XED_IFORM_BTS_MEMv_GPRv=(XED_ICLASS_BTS<<8)+2, - XED_IFORM_BTS_GPRv_IMM=(XED_ICLASS_BTS<<8)+3, - XED_IFORM_CALL_FAR_MEMp=(XED_ICLASS_CALL_FAR<<8)+0, - XED_IFORM_CALL_FAR_PTR_IMM=(XED_ICLASS_CALL_FAR<<8)+1, - XED_IFORM_CALL_NEAR_MEMv=(XED_ICLASS_CALL_NEAR<<8)+0, - XED_IFORM_CALL_NEAR_RELBR=(XED_ICLASS_CALL_NEAR<<8)+1, - XED_IFORM_CALL_NEAR_GPRv=(XED_ICLASS_CALL_NEAR<<8)+2, - XED_IFORM_CBW=(XED_ICLASS_CBW<<8)+0, - XED_IFORM_CDQ=(XED_ICLASS_CDQ<<8)+0, - XED_IFORM_CDQE=(XED_ICLASS_CDQE<<8)+0, - XED_IFORM_CLC=(XED_ICLASS_CLC<<8)+0, - XED_IFORM_CLD=(XED_ICLASS_CLD<<8)+0, - XED_IFORM_CLFLUSH_MEMb=(XED_ICLASS_CLFLUSH<<8)+0, - XED_IFORM_CLGI=(XED_ICLASS_CLGI<<8)+0, - XED_IFORM_CLI=(XED_ICLASS_CLI<<8)+0, - XED_IFORM_CLTS=(XED_ICLASS_CLTS<<8)+0, - XED_IFORM_CMC=(XED_ICLASS_CMC<<8)+0, - XED_IFORM_CMOVB_GPRv_GPRv=(XED_ICLASS_CMOVB<<8)+0, - XED_IFORM_CMOVB_GPRv_MEMv=(XED_ICLASS_CMOVB<<8)+1, - XED_IFORM_CMOVBE_GPRv_GPRv=(XED_ICLASS_CMOVBE<<8)+0, - XED_IFORM_CMOVBE_GPRv_MEMv=(XED_ICLASS_CMOVBE<<8)+1, - XED_IFORM_CMOVL_GPRv_MEMv=(XED_ICLASS_CMOVL<<8)+0, - XED_IFORM_CMOVL_GPRv_GPRv=(XED_ICLASS_CMOVL<<8)+1, - XED_IFORM_CMOVLE_GPRv_MEMv=(XED_ICLASS_CMOVLE<<8)+0, - XED_IFORM_CMOVLE_GPRv_GPRv=(XED_ICLASS_CMOVLE<<8)+1, - XED_IFORM_CMOVNB_GPRv_MEMv=(XED_ICLASS_CMOVNB<<8)+0, - XED_IFORM_CMOVNB_GPRv_GPRv=(XED_ICLASS_CMOVNB<<8)+1, - XED_IFORM_CMOVNBE_GPRv_GPRv=(XED_ICLASS_CMOVNBE<<8)+0, - XED_IFORM_CMOVNBE_GPRv_MEMv=(XED_ICLASS_CMOVNBE<<8)+1, - XED_IFORM_CMOVNL_GPRv_MEMv=(XED_ICLASS_CMOVNL<<8)+0, - XED_IFORM_CMOVNL_GPRv_GPRv=(XED_ICLASS_CMOVNL<<8)+1, - XED_IFORM_CMOVNLE_GPRv_GPRv=(XED_ICLASS_CMOVNLE<<8)+0, - XED_IFORM_CMOVNLE_GPRv_MEMv=(XED_ICLASS_CMOVNLE<<8)+1, - XED_IFORM_CMOVNO_GPRv_MEMv=(XED_ICLASS_CMOVNO<<8)+0, - XED_IFORM_CMOVNO_GPRv_GPRv=(XED_ICLASS_CMOVNO<<8)+1, - XED_IFORM_CMOVNP_GPRv_GPRv=(XED_ICLASS_CMOVNP<<8)+0, - XED_IFORM_CMOVNP_GPRv_MEMv=(XED_ICLASS_CMOVNP<<8)+1, - XED_IFORM_CMOVNS_GPRv_GPRv=(XED_ICLASS_CMOVNS<<8)+0, - XED_IFORM_CMOVNS_GPRv_MEMv=(XED_ICLASS_CMOVNS<<8)+1, - XED_IFORM_CMOVNZ_GPRv_MEMv=(XED_ICLASS_CMOVNZ<<8)+0, - XED_IFORM_CMOVNZ_GPRv_GPRv=(XED_ICLASS_CMOVNZ<<8)+1, - XED_IFORM_CMOVO_GPRv_MEMv=(XED_ICLASS_CMOVO<<8)+0, - XED_IFORM_CMOVO_GPRv_GPRv=(XED_ICLASS_CMOVO<<8)+1, - XED_IFORM_CMOVP_GPRv_GPRv=(XED_ICLASS_CMOVP<<8)+0, - XED_IFORM_CMOVP_GPRv_MEMv=(XED_ICLASS_CMOVP<<8)+1, - XED_IFORM_CMOVS_GPRv_GPRv=(XED_ICLASS_CMOVS<<8)+0, - XED_IFORM_CMOVS_GPRv_MEMv=(XED_ICLASS_CMOVS<<8)+1, - XED_IFORM_CMOVZ_GPRv_GPRv=(XED_ICLASS_CMOVZ<<8)+0, - XED_IFORM_CMOVZ_GPRv_MEMv=(XED_ICLASS_CMOVZ<<8)+1, - XED_IFORM_CMP_OrAX_IMM=(XED_ICLASS_CMP<<8)+0, - XED_IFORM_CMP_MEMv_GPRv=(XED_ICLASS_CMP<<8)+1, - XED_IFORM_CMP_AL_IMM=(XED_ICLASS_CMP<<8)+2, - XED_IFORM_CMP_GPRv_GPRv=(XED_ICLASS_CMP<<8)+3, - XED_IFORM_CMP_MEMb_IMM=(XED_ICLASS_CMP<<8)+4, - XED_IFORM_CMP_GPR8_GPR8=(XED_ICLASS_CMP<<8)+5, - XED_IFORM_CMP_MEMb_GPR8=(XED_ICLASS_CMP<<8)+6, - XED_IFORM_CMP_GPR8_IMM=(XED_ICLASS_CMP<<8)+7, - XED_IFORM_CMP_GPRv_IMM=(XED_ICLASS_CMP<<8)+8, - XED_IFORM_CMP_GPRv_MEMv=(XED_ICLASS_CMP<<8)+9, - XED_IFORM_CMP_GPR8_MEMb=(XED_ICLASS_CMP<<8)+10, - XED_IFORM_CMP_MEMv_IMM=(XED_ICLASS_CMP<<8)+11, - XED_IFORM_CMPPD_XMMpd_MEMpd_IMM=(XED_ICLASS_CMPPD<<8)+0, - XED_IFORM_CMPPD_XMMpd_XMMpd_IMM=(XED_ICLASS_CMPPD<<8)+1, - XED_IFORM_CMPPS_XMMps_XMMps_IMM=(XED_ICLASS_CMPPS<<8)+0, - XED_IFORM_CMPPS_XMMps_MEMps_IMM=(XED_ICLASS_CMPPS<<8)+1, - XED_IFORM_CMPSB=(XED_ICLASS_CMPSB<<8)+0, - XED_IFORM_CMPSD=(XED_ICLASS_CMPSD<<8)+0, - XED_IFORM_CMPSD_XMM_XMMsd_MEMsd_IMM=(XED_ICLASS_CMPSD_XMM<<8)+0, - XED_IFORM_CMPSD_XMM_XMMsd_XMMsd_IMM=(XED_ICLASS_CMPSD_XMM<<8)+1, - XED_IFORM_CMPSQ=(XED_ICLASS_CMPSQ<<8)+0, - XED_IFORM_CMPSS_XMMss_XMMss_IMM=(XED_ICLASS_CMPSS<<8)+0, - XED_IFORM_CMPSS_XMMss_MEMss_IMM=(XED_ICLASS_CMPSS<<8)+1, - XED_IFORM_CMPSW=(XED_ICLASS_CMPSW<<8)+0, - XED_IFORM_CMPXCHG_GPR8_GPR8=(XED_ICLASS_CMPXCHG<<8)+0, - XED_IFORM_CMPXCHG_MEMv_GPRv=(XED_ICLASS_CMPXCHG<<8)+1, - XED_IFORM_CMPXCHG_MEMb_GPR8=(XED_ICLASS_CMPXCHG<<8)+2, - XED_IFORM_CMPXCHG_GPRv_GPRv=(XED_ICLASS_CMPXCHG<<8)+3, - XED_IFORM_CMPXCHG16B_MEMdq=(XED_ICLASS_CMPXCHG16B<<8)+0, - XED_IFORM_CMPXCHG8B_MEMq=(XED_ICLASS_CMPXCHG8B<<8)+0, - XED_IFORM_COMISD_XMMsd_MEMsd=(XED_ICLASS_COMISD<<8)+0, - XED_IFORM_COMISD_XMMsd_XMMsd=(XED_ICLASS_COMISD<<8)+1, - XED_IFORM_COMISS_XMMss_XMMss=(XED_ICLASS_COMISS<<8)+0, - XED_IFORM_COMISS_XMMss_MEMss=(XED_ICLASS_COMISS<<8)+1, - XED_IFORM_CPUID=(XED_ICLASS_CPUID<<8)+0, - XED_IFORM_CQO=(XED_ICLASS_CQO<<8)+0, - XED_IFORM_CRC32_GPR32d_GPRv=(XED_ICLASS_CRC32<<8)+0, - XED_IFORM_CRC32_GPR32d_MEMb=(XED_ICLASS_CRC32<<8)+1, - XED_IFORM_CRC32_GPR32d_GPR8b=(XED_ICLASS_CRC32<<8)+2, - XED_IFORM_CRC32_GPR64q_MEMv=(XED_ICLASS_CRC32<<8)+3, - XED_IFORM_CRC32_GPR32d_MEMv=(XED_ICLASS_CRC32<<8)+4, - XED_IFORM_CRC32_GPR64q_MEMb=(XED_ICLASS_CRC32<<8)+5, - XED_IFORM_CRC32_GPR64q_GPRv=(XED_ICLASS_CRC32<<8)+6, - XED_IFORM_CRC32_GPR64q_GPR8b=(XED_ICLASS_CRC32<<8)+7, - XED_IFORM_CVTDQ2PD_XMMpd_MEMq=(XED_ICLASS_CVTDQ2PD<<8)+0, - XED_IFORM_CVTDQ2PD_XMMpd_XMMq=(XED_ICLASS_CVTDQ2PD<<8)+1, - XED_IFORM_CVTDQ2PS_XMMps_MEMdq=(XED_ICLASS_CVTDQ2PS<<8)+0, - XED_IFORM_CVTDQ2PS_XMMps_XMMdq=(XED_ICLASS_CVTDQ2PS<<8)+1, - XED_IFORM_CVTPD2DQ_XMMdq_MEMpd=(XED_ICLASS_CVTPD2DQ<<8)+0, - XED_IFORM_CVTPD2DQ_XMMdq_XMMpd=(XED_ICLASS_CVTPD2DQ<<8)+1, - XED_IFORM_CVTPD2PI_MMXq_XMMpd=(XED_ICLASS_CVTPD2PI<<8)+0, - XED_IFORM_CVTPD2PI_MMXq_MEMpd=(XED_ICLASS_CVTPD2PI<<8)+1, - XED_IFORM_CVTPD2PS_XMMps_MEMpd=(XED_ICLASS_CVTPD2PS<<8)+0, - XED_IFORM_CVTPD2PS_XMMps_XMMpd=(XED_ICLASS_CVTPD2PS<<8)+1, - XED_IFORM_CVTPI2PD_XMMpd_MMXq=(XED_ICLASS_CVTPI2PD<<8)+0, - XED_IFORM_CVTPI2PD_XMMpd_MEMq=(XED_ICLASS_CVTPI2PD<<8)+1, - XED_IFORM_CVTPI2PS_XMMq_MMXq=(XED_ICLASS_CVTPI2PS<<8)+0, - XED_IFORM_CVTPI2PS_XMMq_MEMq=(XED_ICLASS_CVTPI2PS<<8)+1, - XED_IFORM_CVTPS2DQ_XMMdq_MEMps=(XED_ICLASS_CVTPS2DQ<<8)+0, - XED_IFORM_CVTPS2DQ_XMMdq_XMMps=(XED_ICLASS_CVTPS2DQ<<8)+1, - XED_IFORM_CVTPS2PD_XMMpd_MEMq=(XED_ICLASS_CVTPS2PD<<8)+0, - XED_IFORM_CVTPS2PD_XMMpd_XMMq=(XED_ICLASS_CVTPS2PD<<8)+1, - XED_IFORM_CVTPS2PI_MMXq_MEMq=(XED_ICLASS_CVTPS2PI<<8)+0, - XED_IFORM_CVTPS2PI_MMXq_XMMq=(XED_ICLASS_CVTPS2PI<<8)+1, - XED_IFORM_CVTSD2SI_GPR32_MEMsd=(XED_ICLASS_CVTSD2SI<<8)+0, - XED_IFORM_CVTSD2SI_GPR32_XMMsd=(XED_ICLASS_CVTSD2SI<<8)+1, - XED_IFORM_CVTSD2SI_GPR64_XMMsd=(XED_ICLASS_CVTSD2SI<<8)+2, - XED_IFORM_CVTSD2SI_GPR64_MEMsd=(XED_ICLASS_CVTSD2SI<<8)+3, - XED_IFORM_CVTSD2SS_XMMss_MEMsd=(XED_ICLASS_CVTSD2SS<<8)+0, - XED_IFORM_CVTSD2SS_XMMss_XMMsd=(XED_ICLASS_CVTSD2SS<<8)+1, - XED_IFORM_CVTSI2SD_XMMsd_GPR64=(XED_ICLASS_CVTSI2SD<<8)+0, - XED_IFORM_CVTSI2SD_XMMsd_GPR32=(XED_ICLASS_CVTSI2SD<<8)+1, - XED_IFORM_CVTSI2SD_XMMsd_MEMd=(XED_ICLASS_CVTSI2SD<<8)+2, - XED_IFORM_CVTSI2SD_XMMsd_MEMq=(XED_ICLASS_CVTSI2SD<<8)+3, - XED_IFORM_CVTSI2SS_XMMss_GPR64=(XED_ICLASS_CVTSI2SS<<8)+0, - XED_IFORM_CVTSI2SS_XMMss_GPR32=(XED_ICLASS_CVTSI2SS<<8)+1, - XED_IFORM_CVTSI2SS_XMMss_MEMd=(XED_ICLASS_CVTSI2SS<<8)+2, - XED_IFORM_CVTSI2SS_XMMss_MEMq=(XED_ICLASS_CVTSI2SS<<8)+3, - XED_IFORM_CVTSS2SD_XMMsd_MEMss=(XED_ICLASS_CVTSS2SD<<8)+0, - XED_IFORM_CVTSS2SD_XMMsd_XMMss=(XED_ICLASS_CVTSS2SD<<8)+1, - XED_IFORM_CVTSS2SI_GPR64_XMMss=(XED_ICLASS_CVTSS2SI<<8)+0, - XED_IFORM_CVTSS2SI_GPR32_MEMss=(XED_ICLASS_CVTSS2SI<<8)+1, - XED_IFORM_CVTSS2SI_GPR32_XMMss=(XED_ICLASS_CVTSS2SI<<8)+2, - XED_IFORM_CVTSS2SI_GPR64_MEMss=(XED_ICLASS_CVTSS2SI<<8)+3, - XED_IFORM_CVTTPD2DQ_XMMdq_XMMpd=(XED_ICLASS_CVTTPD2DQ<<8)+0, - XED_IFORM_CVTTPD2DQ_XMMdq_MEMpd=(XED_ICLASS_CVTTPD2DQ<<8)+1, - XED_IFORM_CVTTPD2PI_MMXq_MEMpd=(XED_ICLASS_CVTTPD2PI<<8)+0, - XED_IFORM_CVTTPD2PI_MMXq_XMMpd=(XED_ICLASS_CVTTPD2PI<<8)+1, - XED_IFORM_CVTTPS2DQ_XMMdq_XMMps=(XED_ICLASS_CVTTPS2DQ<<8)+0, - XED_IFORM_CVTTPS2DQ_XMMdq_MEMps=(XED_ICLASS_CVTTPS2DQ<<8)+1, - XED_IFORM_CVTTPS2PI_MMXq_MEMq=(XED_ICLASS_CVTTPS2PI<<8)+0, - XED_IFORM_CVTTPS2PI_MMXq_XMMq=(XED_ICLASS_CVTTPS2PI<<8)+1, - XED_IFORM_CVTTSD2SI_GPR64_MEMsd=(XED_ICLASS_CVTTSD2SI<<8)+0, - XED_IFORM_CVTTSD2SI_GPR32_XMMsd=(XED_ICLASS_CVTTSD2SI<<8)+1, - XED_IFORM_CVTTSD2SI_GPR32_MEMsd=(XED_ICLASS_CVTTSD2SI<<8)+2, - XED_IFORM_CVTTSD2SI_GPR64_XMMsd=(XED_ICLASS_CVTTSD2SI<<8)+3, - XED_IFORM_CVTTSS2SI_GPR64_MEMss=(XED_ICLASS_CVTTSS2SI<<8)+0, - XED_IFORM_CVTTSS2SI_GPR64_XMMss=(XED_ICLASS_CVTTSS2SI<<8)+1, - XED_IFORM_CVTTSS2SI_GPR32_XMMss=(XED_ICLASS_CVTTSS2SI<<8)+2, - XED_IFORM_CVTTSS2SI_GPR32_MEMss=(XED_ICLASS_CVTTSS2SI<<8)+3, - XED_IFORM_CWD=(XED_ICLASS_CWD<<8)+0, - XED_IFORM_CWDE=(XED_ICLASS_CWDE<<8)+0, - XED_IFORM_DAA=(XED_ICLASS_DAA<<8)+0, - XED_IFORM_DAS=(XED_ICLASS_DAS<<8)+0, - XED_IFORM_DEC_GPR8=(XED_ICLASS_DEC<<8)+0, - XED_IFORM_DEC_MEMv=(XED_ICLASS_DEC<<8)+1, - XED_IFORM_DEC_MEMb=(XED_ICLASS_DEC<<8)+2, - XED_IFORM_DEC_GPRv=(XED_ICLASS_DEC<<8)+3, - XED_IFORM_DIV_MEMv=(XED_ICLASS_DIV<<8)+0, - XED_IFORM_DIV_GPR8=(XED_ICLASS_DIV<<8)+1, - XED_IFORM_DIV_GPRv=(XED_ICLASS_DIV<<8)+2, - XED_IFORM_DIV_MEMb=(XED_ICLASS_DIV<<8)+3, - XED_IFORM_DIVPD_XMMpd_XMMpd=(XED_ICLASS_DIVPD<<8)+0, - XED_IFORM_DIVPD_XMMpd_MEMpd=(XED_ICLASS_DIVPD<<8)+1, - XED_IFORM_DIVPS_XMMps_MEMps=(XED_ICLASS_DIVPS<<8)+0, - XED_IFORM_DIVPS_XMMps_XMMps=(XED_ICLASS_DIVPS<<8)+1, - XED_IFORM_DIVSD_XMMsd_MEMsd=(XED_ICLASS_DIVSD<<8)+0, - XED_IFORM_DIVSD_XMMsd_XMMsd=(XED_ICLASS_DIVSD<<8)+1, - XED_IFORM_DIVSS_XMMss_XMMss=(XED_ICLASS_DIVSS<<8)+0, - XED_IFORM_DIVSS_XMMss_MEMss=(XED_ICLASS_DIVSS<<8)+1, - XED_IFORM_DPPD_XMMdq_XMMdq_IMM=(XED_ICLASS_DPPD<<8)+0, - XED_IFORM_DPPD_XMMdq_MEMdq_IMM=(XED_ICLASS_DPPD<<8)+1, - XED_IFORM_DPPS_XMMdq_XMMdq_IMM=(XED_ICLASS_DPPS<<8)+0, - XED_IFORM_DPPS_XMMdq_MEMdq_IMM=(XED_ICLASS_DPPS<<8)+1, - XED_IFORM_EMMS=(XED_ICLASS_EMMS<<8)+0, - XED_IFORM_ENTER_IMM_IMM=(XED_ICLASS_ENTER<<8)+0, - XED_IFORM_EXTRACTPS_GPR32w_XMMdq_IMM=(XED_ICLASS_EXTRACTPS<<8)+0, - XED_IFORM_EXTRACTPS_MEMw_XMMps_IMM=(XED_ICLASS_EXTRACTPS<<8)+1, - XED_IFORM_EXTRQ_XMMq_IMM_IMM=(XED_ICLASS_EXTRQ<<8)+0, - XED_IFORM_EXTRQ_XMMq_XMMdq=(XED_ICLASS_EXTRQ<<8)+1, - XED_IFORM_F2XM1_ST0=(XED_ICLASS_F2XM1<<8)+0, - XED_IFORM_FABS_ST0=(XED_ICLASS_FABS<<8)+0, - XED_IFORM_FADD_ST0_MEMmem32real=(XED_ICLASS_FADD<<8)+0, - XED_IFORM_FADD_ST0_MEMm64real=(XED_ICLASS_FADD<<8)+1, - XED_IFORM_FADD_X87_ST0=(XED_ICLASS_FADD<<8)+2, - XED_IFORM_FADD_ST0_X87=(XED_ICLASS_FADD<<8)+3, - XED_IFORM_FADDP_X87_ST0=(XED_ICLASS_FADDP<<8)+0, - XED_IFORM_FBLD_ST0_MEMmem80dec=(XED_ICLASS_FBLD<<8)+0, - XED_IFORM_FBSTP_MEMmem80dec_ST0=(XED_ICLASS_FBSTP<<8)+0, - XED_IFORM_FCHS_ST0=(XED_ICLASS_FCHS<<8)+0, - XED_IFORM_FCMOVB_ST0_X87=(XED_ICLASS_FCMOVB<<8)+0, - XED_IFORM_FCMOVBE_ST0_X87=(XED_ICLASS_FCMOVBE<<8)+0, - XED_IFORM_FCMOVE_ST0_X87=(XED_ICLASS_FCMOVE<<8)+0, - XED_IFORM_FCMOVNB_ST0_X87=(XED_ICLASS_FCMOVNB<<8)+0, - XED_IFORM_FCMOVNBE_ST0_X87=(XED_ICLASS_FCMOVNBE<<8)+0, - XED_IFORM_FCMOVNE_ST0_X87=(XED_ICLASS_FCMOVNE<<8)+0, - XED_IFORM_FCMOVNU_ST0_X87=(XED_ICLASS_FCMOVNU<<8)+0, - XED_IFORM_FCMOVU_ST0_X87=(XED_ICLASS_FCMOVU<<8)+0, - XED_IFORM_FCOM_ST0_X87=(XED_ICLASS_FCOM<<8)+0, - XED_IFORM_FCOM_ST0_MEMmem32real=(XED_ICLASS_FCOM<<8)+1, - XED_IFORM_FCOM_ST0_MEMm64real=(XED_ICLASS_FCOM<<8)+2, - XED_IFORM_FCOMI_ST0_X87=(XED_ICLASS_FCOMI<<8)+0, - XED_IFORM_FCOMIP_ST0_X87=(XED_ICLASS_FCOMIP<<8)+0, - XED_IFORM_FCOMP_ST0_X87=(XED_ICLASS_FCOMP<<8)+0, - XED_IFORM_FCOMP_ST0_MEMmem32real=(XED_ICLASS_FCOMP<<8)+1, - XED_IFORM_FCOMP_ST0_MEMm64real=(XED_ICLASS_FCOMP<<8)+2, - XED_IFORM_FCOMPP_ST0_ST1=(XED_ICLASS_FCOMPP<<8)+0, - XED_IFORM_FCOS_ST0=(XED_ICLASS_FCOS<<8)+0, - XED_IFORM_FDECSTP=(XED_ICLASS_FDECSTP<<8)+0, - XED_IFORM_FDIV_X87_ST0=(XED_ICLASS_FDIV<<8)+0, - XED_IFORM_FDIV_ST0_MEMmem32real=(XED_ICLASS_FDIV<<8)+1, - XED_IFORM_FDIV_ST0_MEMm64real=(XED_ICLASS_FDIV<<8)+2, - XED_IFORM_FDIV_ST0_X87=(XED_ICLASS_FDIV<<8)+3, - XED_IFORM_FDIVP_X87_ST0=(XED_ICLASS_FDIVP<<8)+0, - XED_IFORM_FDIVR_ST0_MEMm64real=(XED_ICLASS_FDIVR<<8)+0, - XED_IFORM_FDIVR_X87_ST0=(XED_ICLASS_FDIVR<<8)+1, - XED_IFORM_FDIVR_ST0_X87=(XED_ICLASS_FDIVR<<8)+2, - XED_IFORM_FDIVR_ST0_MEMmem32real=(XED_ICLASS_FDIVR<<8)+3, - XED_IFORM_FDIVRP_X87_ST0=(XED_ICLASS_FDIVRP<<8)+0, - XED_IFORM_FEMMS=(XED_ICLASS_FEMMS<<8)+0, - XED_IFORM_FFREE_X87=(XED_ICLASS_FFREE<<8)+0, - XED_IFORM_FFREEP_X87=(XED_ICLASS_FFREEP<<8)+0, - XED_IFORM_FIADD_ST0_MEMmem32int=(XED_ICLASS_FIADD<<8)+0, - XED_IFORM_FIADD_ST0_MEMmem16int=(XED_ICLASS_FIADD<<8)+1, - XED_IFORM_FICOM_ST0_MEMmem32int=(XED_ICLASS_FICOM<<8)+0, - XED_IFORM_FICOM_ST0_MEMmem16int=(XED_ICLASS_FICOM<<8)+1, - XED_IFORM_FICOMP_ST0_MEMmem16int=(XED_ICLASS_FICOMP<<8)+0, - XED_IFORM_FICOMP_ST0_MEMmem32int=(XED_ICLASS_FICOMP<<8)+1, - XED_IFORM_FIDIV_ST0_MEMmem16int=(XED_ICLASS_FIDIV<<8)+0, - XED_IFORM_FIDIV_ST0_MEMmem32int=(XED_ICLASS_FIDIV<<8)+1, - XED_IFORM_FIDIVR_ST0_MEMmem32int=(XED_ICLASS_FIDIVR<<8)+0, - XED_IFORM_FIDIVR_ST0_MEMmem16int=(XED_ICLASS_FIDIVR<<8)+1, - XED_IFORM_FILD_ST0_MEMmem32int=(XED_ICLASS_FILD<<8)+0, - XED_IFORM_FILD_ST0_MEMmem16int=(XED_ICLASS_FILD<<8)+1, - XED_IFORM_FILD_ST0_MEMm64int=(XED_ICLASS_FILD<<8)+2, - XED_IFORM_FIMUL_ST0_MEMmem16int=(XED_ICLASS_FIMUL<<8)+0, - XED_IFORM_FIMUL_ST0_MEMmem32int=(XED_ICLASS_FIMUL<<8)+1, - XED_IFORM_FINCSTP=(XED_ICLASS_FINCSTP<<8)+0, - XED_IFORM_FIST_MEMmem32int_ST0=(XED_ICLASS_FIST<<8)+0, - XED_IFORM_FIST_MEMmem16int_ST0=(XED_ICLASS_FIST<<8)+1, - XED_IFORM_FISTP_MEMmem32int_ST0=(XED_ICLASS_FISTP<<8)+0, - XED_IFORM_FISTP_MEMmem16int_ST0=(XED_ICLASS_FISTP<<8)+1, - XED_IFORM_FISTP_MEMm64int_ST0=(XED_ICLASS_FISTP<<8)+2, - XED_IFORM_FISTTP_MEMmem16int_ST0=(XED_ICLASS_FISTTP<<8)+0, - XED_IFORM_FISTTP_MEMmem32int_ST0=(XED_ICLASS_FISTTP<<8)+1, - XED_IFORM_FISTTP_MEMm64int_ST0=(XED_ICLASS_FISTTP<<8)+2, - XED_IFORM_FISUB_ST0_MEMmem32int=(XED_ICLASS_FISUB<<8)+0, - XED_IFORM_FISUB_ST0_MEMmem16int=(XED_ICLASS_FISUB<<8)+1, - XED_IFORM_FISUBR_ST0_MEMmem32int=(XED_ICLASS_FISUBR<<8)+0, - XED_IFORM_FISUBR_ST0_MEMmem16int=(XED_ICLASS_FISUBR<<8)+1, - XED_IFORM_FLD_ST0_X87=(XED_ICLASS_FLD<<8)+0, - XED_IFORM_FLD_ST0_MEMm64real=(XED_ICLASS_FLD<<8)+1, - XED_IFORM_FLD_ST0_MEMmem32real=(XED_ICLASS_FLD<<8)+2, - XED_IFORM_FLD_ST0_MEMmem80real=(XED_ICLASS_FLD<<8)+3, - XED_IFORM_FLD1_ST0=(XED_ICLASS_FLD1<<8)+0, - XED_IFORM_FLDCW_MEMmem16=(XED_ICLASS_FLDCW<<8)+0, - XED_IFORM_FLDENV_MEMmem14=(XED_ICLASS_FLDENV<<8)+0, - XED_IFORM_FLDENV_MEMmem28=(XED_ICLASS_FLDENV<<8)+1, - XED_IFORM_FLDL2E_ST0=(XED_ICLASS_FLDL2E<<8)+0, - XED_IFORM_FLDL2T_ST0=(XED_ICLASS_FLDL2T<<8)+0, - XED_IFORM_FLDLG2_ST0=(XED_ICLASS_FLDLG2<<8)+0, - XED_IFORM_FLDLN2_ST0=(XED_ICLASS_FLDLN2<<8)+0, - XED_IFORM_FLDPI_ST0=(XED_ICLASS_FLDPI<<8)+0, - XED_IFORM_FLDZ_ST0=(XED_ICLASS_FLDZ<<8)+0, - XED_IFORM_FMUL_ST0_MEMm64real=(XED_ICLASS_FMUL<<8)+0, - XED_IFORM_FMUL_ST0_MEMmem32real=(XED_ICLASS_FMUL<<8)+1, - XED_IFORM_FMUL_X87_ST0=(XED_ICLASS_FMUL<<8)+2, - XED_IFORM_FMUL_ST0_X87=(XED_ICLASS_FMUL<<8)+3, - XED_IFORM_FMULP_X87_ST0=(XED_ICLASS_FMULP<<8)+0, - XED_IFORM_FNCLEX=(XED_ICLASS_FNCLEX<<8)+0, - XED_IFORM_FNINIT=(XED_ICLASS_FNINIT<<8)+0, - XED_IFORM_FNOP=(XED_ICLASS_FNOP<<8)+0, - XED_IFORM_FNSAVE_MEMmem98=(XED_ICLASS_FNSAVE<<8)+0, - XED_IFORM_FNSAVE_MEMmem108=(XED_ICLASS_FNSAVE<<8)+1, - XED_IFORM_FNSTCW_MEMmem16=(XED_ICLASS_FNSTCW<<8)+0, - XED_IFORM_FNSTENV_MEMmem28=(XED_ICLASS_FNSTENV<<8)+0, - XED_IFORM_FNSTENV_MEMmem14=(XED_ICLASS_FNSTENV<<8)+1, - XED_IFORM_FNSTSW_MEMmem16=(XED_ICLASS_FNSTSW<<8)+0, - XED_IFORM_FNSTSW_AX=(XED_ICLASS_FNSTSW<<8)+1, - XED_IFORM_FPATAN_ST0_ST1=(XED_ICLASS_FPATAN<<8)+0, - XED_IFORM_FPREM_ST0_ST1=(XED_ICLASS_FPREM<<8)+0, - XED_IFORM_FPREM1_ST0_ST1=(XED_ICLASS_FPREM1<<8)+0, - XED_IFORM_FPTAN_ST0_ST1=(XED_ICLASS_FPTAN<<8)+0, - XED_IFORM_FRNDINT_ST0=(XED_ICLASS_FRNDINT<<8)+0, - XED_IFORM_FRSTOR_MEMmem108=(XED_ICLASS_FRSTOR<<8)+0, - XED_IFORM_FRSTOR_MEMmem98=(XED_ICLASS_FRSTOR<<8)+1, - XED_IFORM_FSCALE_ST0_ST1=(XED_ICLASS_FSCALE<<8)+0, - XED_IFORM_FSETPM287_NOP=(XED_ICLASS_FSETPM287_NOP<<8)+0, - XED_IFORM_FSIN_ST0=(XED_ICLASS_FSIN<<8)+0, - XED_IFORM_FSINCOS_ST0_ST1=(XED_ICLASS_FSINCOS<<8)+0, - XED_IFORM_FSQRT_ST0=(XED_ICLASS_FSQRT<<8)+0, - XED_IFORM_FST_X87_ST0=(XED_ICLASS_FST<<8)+0, - XED_IFORM_FST_MEMmem32real_ST0=(XED_ICLASS_FST<<8)+1, - XED_IFORM_FST_MEMm64real_ST0=(XED_ICLASS_FST<<8)+2, - XED_IFORM_FSTP_MEMmem32real_ST0=(XED_ICLASS_FSTP<<8)+0, - XED_IFORM_FSTP_X87_ST0=(XED_ICLASS_FSTP<<8)+1, - XED_IFORM_FSTP_MEMmem80real_ST0=(XED_ICLASS_FSTP<<8)+2, - XED_IFORM_FSTP_MEMm64real_ST0=(XED_ICLASS_FSTP<<8)+3, - XED_IFORM_FSUB_ST0_X87=(XED_ICLASS_FSUB<<8)+0, - XED_IFORM_FSUB_X87_ST0=(XED_ICLASS_FSUB<<8)+1, - XED_IFORM_FSUB_ST0_MEMm64real=(XED_ICLASS_FSUB<<8)+2, - XED_IFORM_FSUB_ST0_MEMmem32real=(XED_ICLASS_FSUB<<8)+3, - XED_IFORM_FSUBP_X87_ST0=(XED_ICLASS_FSUBP<<8)+0, - XED_IFORM_FSUBR_ST0_MEMmem32real=(XED_ICLASS_FSUBR<<8)+0, - XED_IFORM_FSUBR_X87_ST0=(XED_ICLASS_FSUBR<<8)+1, - XED_IFORM_FSUBR_ST0_X87=(XED_ICLASS_FSUBR<<8)+2, - XED_IFORM_FSUBR_ST0_MEMm64real=(XED_ICLASS_FSUBR<<8)+3, - XED_IFORM_FSUBRP_X87_ST0=(XED_ICLASS_FSUBRP<<8)+0, - XED_IFORM_FTST_ST0=(XED_ICLASS_FTST<<8)+0, - XED_IFORM_FUCOM_ST0_X87=(XED_ICLASS_FUCOM<<8)+0, - XED_IFORM_FUCOMI_ST0_X87=(XED_ICLASS_FUCOMI<<8)+0, - XED_IFORM_FUCOMIP_ST0_X87=(XED_ICLASS_FUCOMIP<<8)+0, - XED_IFORM_FUCOMP_ST0_X87=(XED_ICLASS_FUCOMP<<8)+0, - XED_IFORM_FUCOMPP_ST0_ST1=(XED_ICLASS_FUCOMPP<<8)+0, - XED_IFORM_FWAIT=(XED_ICLASS_FWAIT<<8)+0, - XED_IFORM_FXAM_ST0=(XED_ICLASS_FXAM<<8)+0, - XED_IFORM_FXCH_ST0_X87=(XED_ICLASS_FXCH<<8)+0, - XED_IFORM_FXRSTOR_MEMmfpxenv=(XED_ICLASS_FXRSTOR<<8)+0, - XED_IFORM_FXSAVE_MEMmfpxenv=(XED_ICLASS_FXSAVE<<8)+0, - XED_IFORM_FXTRACT_ST0_ST1=(XED_ICLASS_FXTRACT<<8)+0, - XED_IFORM_FYL2X_ST0_ST1=(XED_ICLASS_FYL2X<<8)+0, - XED_IFORM_FYL2XP1_ST0_ST1=(XED_ICLASS_FYL2XP1<<8)+0, - XED_IFORM_HADDPD_XMMpd_MEMpd=(XED_ICLASS_HADDPD<<8)+0, - XED_IFORM_HADDPD_XMMpd_XMMpd=(XED_ICLASS_HADDPD<<8)+1, - XED_IFORM_HADDPS_XMMps_XMMps=(XED_ICLASS_HADDPS<<8)+0, - XED_IFORM_HADDPS_XMMps_MEMps=(XED_ICLASS_HADDPS<<8)+1, - XED_IFORM_HLT=(XED_ICLASS_HLT<<8)+0, - XED_IFORM_HSUBPD_XMMpd_XMMpd=(XED_ICLASS_HSUBPD<<8)+0, - XED_IFORM_HSUBPD_XMMpd_MEMpd=(XED_ICLASS_HSUBPD<<8)+1, - XED_IFORM_HSUBPS_XMMps_MEMps=(XED_ICLASS_HSUBPS<<8)+0, - XED_IFORM_HSUBPS_XMMps_XMMps=(XED_ICLASS_HSUBPS<<8)+1, - XED_IFORM_IDIV_MEMb=(XED_ICLASS_IDIV<<8)+0, - XED_IFORM_IDIV_GPR8=(XED_ICLASS_IDIV<<8)+1, - XED_IFORM_IDIV_GPRv=(XED_ICLASS_IDIV<<8)+2, - XED_IFORM_IDIV_MEMv=(XED_ICLASS_IDIV<<8)+3, - XED_IFORM_IMUL_MEMv=(XED_ICLASS_IMUL<<8)+0, - XED_IFORM_IMUL_GPRv_GPRv=(XED_ICLASS_IMUL<<8)+1, - XED_IFORM_IMUL_GPRv_GPRv_IMM=(XED_ICLASS_IMUL<<8)+2, - XED_IFORM_IMUL_GPR8=(XED_ICLASS_IMUL<<8)+3, - XED_IFORM_IMUL_MEMb=(XED_ICLASS_IMUL<<8)+4, - XED_IFORM_IMUL_GPRv_MEMv_IMM=(XED_ICLASS_IMUL<<8)+5, - XED_IFORM_IMUL_GPRv_MEMv=(XED_ICLASS_IMUL<<8)+6, - XED_IFORM_IMUL_GPRv=(XED_ICLASS_IMUL<<8)+7, - XED_IFORM_IN_OeAX_DX=(XED_ICLASS_IN<<8)+0, - XED_IFORM_IN_OeAX_IMM=(XED_ICLASS_IN<<8)+1, - XED_IFORM_IN_AL_IMM=(XED_ICLASS_IN<<8)+2, - XED_IFORM_IN_AL_DX=(XED_ICLASS_IN<<8)+3, - XED_IFORM_INC_MEMb=(XED_ICLASS_INC<<8)+0, - XED_IFORM_INC_MEMv=(XED_ICLASS_INC<<8)+1, - XED_IFORM_INC_GPRv=(XED_ICLASS_INC<<8)+2, - XED_IFORM_INC_GPR8=(XED_ICLASS_INC<<8)+3, - XED_IFORM_INSB=(XED_ICLASS_INSB<<8)+0, - XED_IFORM_INSD=(XED_ICLASS_INSD<<8)+0, - XED_IFORM_INSERTPS_XMMps_XMMps_IMM=(XED_ICLASS_INSERTPS<<8)+0, - XED_IFORM_INSERTPS_XMMps_MEMd_IMM=(XED_ICLASS_INSERTPS<<8)+1, - XED_IFORM_INSERTQ_XMMq_XMMdq=(XED_ICLASS_INSERTQ<<8)+0, - XED_IFORM_INSERTQ_XMMq_XMMq_IMM_IMM=(XED_ICLASS_INSERTQ<<8)+1, - XED_IFORM_INSW=(XED_ICLASS_INSW<<8)+0, - XED_IFORM_INT_IMM=(XED_ICLASS_INT<<8)+0, - XED_IFORM_INT1=(XED_ICLASS_INT1<<8)+0, - XED_IFORM_INT3=(XED_ICLASS_INT3<<8)+0, - XED_IFORM_INTO=(XED_ICLASS_INTO<<8)+0, - XED_IFORM_INVD=(XED_ICLASS_INVD<<8)+0, - XED_IFORM_INVLPG_MEMb=(XED_ICLASS_INVLPG<<8)+0, - XED_IFORM_INVLPGA_OrAX_ECX=(XED_ICLASS_INVLPGA<<8)+0, - XED_IFORM_IRET=(XED_ICLASS_IRET<<8)+0, - XED_IFORM_IRETD=(XED_ICLASS_IRETD<<8)+0, - XED_IFORM_IRETQ=(XED_ICLASS_IRETQ<<8)+0, - XED_IFORM_JB_RELBR=(XED_ICLASS_JB<<8)+0, - XED_IFORM_JBE_RELBR=(XED_ICLASS_JBE<<8)+0, - XED_IFORM_JL_RELBR=(XED_ICLASS_JL<<8)+0, - XED_IFORM_JLE_RELBR=(XED_ICLASS_JLE<<8)+0, - XED_IFORM_JMP_RELBR=(XED_ICLASS_JMP<<8)+0, - XED_IFORM_JMP_MEMv=(XED_ICLASS_JMP<<8)+1, - XED_IFORM_JMP_GPRv=(XED_ICLASS_JMP<<8)+2, - XED_IFORM_JMP_FAR_PTR_IMM=(XED_ICLASS_JMP_FAR<<8)+0, - XED_IFORM_JMP_FAR_MEMp=(XED_ICLASS_JMP_FAR<<8)+1, - XED_IFORM_JNB_RELBR=(XED_ICLASS_JNB<<8)+0, - XED_IFORM_JNBE_RELBR=(XED_ICLASS_JNBE<<8)+0, - XED_IFORM_JNL_RELBR=(XED_ICLASS_JNL<<8)+0, - XED_IFORM_JNLE_RELBR=(XED_ICLASS_JNLE<<8)+0, - XED_IFORM_JNO_RELBR=(XED_ICLASS_JNO<<8)+0, - XED_IFORM_JNP_RELBR=(XED_ICLASS_JNP<<8)+0, - XED_IFORM_JNS_RELBR=(XED_ICLASS_JNS<<8)+0, - XED_IFORM_JNZ_RELBR=(XED_ICLASS_JNZ<<8)+0, - XED_IFORM_JO_RELBR=(XED_ICLASS_JO<<8)+0, - XED_IFORM_JP_RELBR=(XED_ICLASS_JP<<8)+0, - XED_IFORM_JRCXZ_RELBR=(XED_ICLASS_JRCXZ<<8)+0, - XED_IFORM_JS_RELBR=(XED_ICLASS_JS<<8)+0, - XED_IFORM_JZ_RELBR=(XED_ICLASS_JZ<<8)+0, - XED_IFORM_LAHF=(XED_ICLASS_LAHF<<8)+0, - XED_IFORM_LAR_GPRv_GPR16=(XED_ICLASS_LAR<<8)+0, - XED_IFORM_LAR_GPRv_MEMw=(XED_ICLASS_LAR<<8)+1, - XED_IFORM_LDDQU_XMMpd_MEMdq=(XED_ICLASS_LDDQU<<8)+0, - XED_IFORM_LDMXCSR_MEMd=(XED_ICLASS_LDMXCSR<<8)+0, - XED_IFORM_LDS_GPRz_MEMp=(XED_ICLASS_LDS<<8)+0, - XED_IFORM_LEA_GPRv_AGEN=(XED_ICLASS_LEA<<8)+0, - XED_IFORM_LEAVE=(XED_ICLASS_LEAVE<<8)+0, - XED_IFORM_LES_GPRz_MEMp=(XED_ICLASS_LES<<8)+0, - XED_IFORM_LFENCE=(XED_ICLASS_LFENCE<<8)+0, - XED_IFORM_LFS_GPRv_MEMp2=(XED_ICLASS_LFS<<8)+0, - XED_IFORM_LGDT_MEMs=(XED_ICLASS_LGDT<<8)+0, - XED_IFORM_LGS_GPRv_MEMp2=(XED_ICLASS_LGS<<8)+0, - XED_IFORM_LIDT_MEMs=(XED_ICLASS_LIDT<<8)+0, - XED_IFORM_LLDT_MEMw=(XED_ICLASS_LLDT<<8)+0, - XED_IFORM_LLDT_GPR16=(XED_ICLASS_LLDT<<8)+1, - XED_IFORM_LMSW_GPR16=(XED_ICLASS_LMSW<<8)+0, - XED_IFORM_LMSW_MEMw=(XED_ICLASS_LMSW<<8)+1, - XED_IFORM_LODSB=(XED_ICLASS_LODSB<<8)+0, - XED_IFORM_LODSD=(XED_ICLASS_LODSD<<8)+0, - XED_IFORM_LODSQ=(XED_ICLASS_LODSQ<<8)+0, - XED_IFORM_LODSW=(XED_ICLASS_LODSW<<8)+0, - XED_IFORM_LOOP_RELBR=(XED_ICLASS_LOOP<<8)+0, - XED_IFORM_LOOPE_RELBR=(XED_ICLASS_LOOPE<<8)+0, - XED_IFORM_LOOPNE_RELBR=(XED_ICLASS_LOOPNE<<8)+0, - XED_IFORM_LSL_GPRv_GPR16=(XED_ICLASS_LSL<<8)+0, - XED_IFORM_LSL_GPRv_MEMw=(XED_ICLASS_LSL<<8)+1, - XED_IFORM_LSS_GPRv_MEMp2=(XED_ICLASS_LSS<<8)+0, - XED_IFORM_LTR_GPR16=(XED_ICLASS_LTR<<8)+0, - XED_IFORM_LTR_MEMw=(XED_ICLASS_LTR<<8)+1, - XED_IFORM_LZCNT_GPRv_GPRv=(XED_ICLASS_LZCNT<<8)+0, - XED_IFORM_LZCNT_GPRv_MEMv=(XED_ICLASS_LZCNT<<8)+1, - XED_IFORM_MASKMOVDQU_XMMdq_XMMdq=(XED_ICLASS_MASKMOVDQU<<8)+0, - XED_IFORM_MASKMOVQ_MMXq_MMXq=(XED_ICLASS_MASKMOVQ<<8)+0, - XED_IFORM_MAXPD_XMMpd_MEMpd=(XED_ICLASS_MAXPD<<8)+0, - XED_IFORM_MAXPD_XMMpd_XMMpd=(XED_ICLASS_MAXPD<<8)+1, - XED_IFORM_MAXPS_XMMps_XMMps=(XED_ICLASS_MAXPS<<8)+0, - XED_IFORM_MAXPS_XMMps_MEMps=(XED_ICLASS_MAXPS<<8)+1, - XED_IFORM_MAXSD_XMMsd_XMMsd=(XED_ICLASS_MAXSD<<8)+0, - XED_IFORM_MAXSD_XMMsd_MEMsd=(XED_ICLASS_MAXSD<<8)+1, - XED_IFORM_MAXSS_XMMss_MEMss=(XED_ICLASS_MAXSS<<8)+0, - XED_IFORM_MAXSS_XMMss_XMMss=(XED_ICLASS_MAXSS<<8)+1, - XED_IFORM_MFENCE=(XED_ICLASS_MFENCE<<8)+0, - XED_IFORM_MINPD_XMMpd_MEMpd=(XED_ICLASS_MINPD<<8)+0, - XED_IFORM_MINPD_XMMpd_XMMpd=(XED_ICLASS_MINPD<<8)+1, - XED_IFORM_MINPS_XMMps_XMMps=(XED_ICLASS_MINPS<<8)+0, - XED_IFORM_MINPS_XMMps_MEMps=(XED_ICLASS_MINPS<<8)+1, - XED_IFORM_MINSD_XMMsd_XMMsd=(XED_ICLASS_MINSD<<8)+0, - XED_IFORM_MINSD_XMMsd_MEMsd=(XED_ICLASS_MINSD<<8)+1, - XED_IFORM_MINSS_XMMss_MEMss=(XED_ICLASS_MINSS<<8)+0, - XED_IFORM_MINSS_XMMss_XMMss=(XED_ICLASS_MINSS<<8)+1, - XED_IFORM_MONITOR_EAX_ECX_EDX=(XED_ICLASS_MONITOR<<8)+0, - XED_IFORM_MOV_GPRv_GPRv=(XED_ICLASS_MOV<<8)+0, - XED_IFORM_MOV_GPR8_GPR8=(XED_ICLASS_MOV<<8)+1, - XED_IFORM_MOV_GPR8_IMM=(XED_ICLASS_MOV<<8)+2, - XED_IFORM_MOV_GPR8_MEMb=(XED_ICLASS_MOV<<8)+3, - XED_IFORM_MOV_MEMv_GPRv=(XED_ICLASS_MOV<<8)+4, - XED_IFORM_MOV_MEMb_GPR8=(XED_ICLASS_MOV<<8)+5, - XED_IFORM_MOV_MEMv_OrAX=(XED_ICLASS_MOV<<8)+6, - XED_IFORM_MOV_AL_MEMb=(XED_ICLASS_MOV<<8)+7, - XED_IFORM_MOV_MEMb_AL=(XED_ICLASS_MOV<<8)+8, - XED_IFORM_MOV_OrAX_MEMv=(XED_ICLASS_MOV<<8)+9, - XED_IFORM_MOV_MEMw_SEG=(XED_ICLASS_MOV<<8)+10, - XED_IFORM_MOV_GPRv_MEMv=(XED_ICLASS_MOV<<8)+11, - XED_IFORM_MOV_SEG_MEMw=(XED_ICLASS_MOV<<8)+12, - XED_IFORM_MOV_MEMv_IMM=(XED_ICLASS_MOV<<8)+13, - XED_IFORM_MOV_SEG_GPR16=(XED_ICLASS_MOV<<8)+14, - XED_IFORM_MOV_GPRv_IMM=(XED_ICLASS_MOV<<8)+15, - XED_IFORM_MOV_MEMb_IMM=(XED_ICLASS_MOV<<8)+16, - XED_IFORM_MOV_GPRv_SEG=(XED_ICLASS_MOV<<8)+17, - XED_IFORM_MOVAPD_XMMpd_MEMpd=(XED_ICLASS_MOVAPD<<8)+0, - XED_IFORM_MOVAPD_XMMpd_XMMpd=(XED_ICLASS_MOVAPD<<8)+1, - XED_IFORM_MOVAPD_MEMpd_XMMpd=(XED_ICLASS_MOVAPD<<8)+2, - XED_IFORM_MOVAPS_XMMps_XMMps=(XED_ICLASS_MOVAPS<<8)+0, - XED_IFORM_MOVAPS_XMMps_MEMps=(XED_ICLASS_MOVAPS<<8)+1, - XED_IFORM_MOVAPS_MEMps_XMMps=(XED_ICLASS_MOVAPS<<8)+2, - XED_IFORM_MOVD_MEMd_XMMd=(XED_ICLASS_MOVD<<8)+0, - XED_IFORM_MOVD_GPR32_MMXd=(XED_ICLASS_MOVD<<8)+1, - XED_IFORM_MOVD_MMXq_MEMd=(XED_ICLASS_MOVD<<8)+2, - XED_IFORM_MOVD_XMMdq_MEMd=(XED_ICLASS_MOVD<<8)+3, - XED_IFORM_MOVD_XMMdq_GPR32=(XED_ICLASS_MOVD<<8)+4, - XED_IFORM_MOVD_GPR32_XMMd=(XED_ICLASS_MOVD<<8)+5, - XED_IFORM_MOVD_MMXq_GPR32=(XED_ICLASS_MOVD<<8)+6, - XED_IFORM_MOVD_MEMd_MMXd=(XED_ICLASS_MOVD<<8)+7, - XED_IFORM_MOVDDUP_XMMq_XMMq=(XED_ICLASS_MOVDDUP<<8)+0, - XED_IFORM_MOVDDUP_XMMq_MEMq=(XED_ICLASS_MOVDDUP<<8)+1, - XED_IFORM_MOVDQ2Q_MMXq_XMMq=(XED_ICLASS_MOVDQ2Q<<8)+0, - XED_IFORM_MOVDQA_XMMdq_XMMdq=(XED_ICLASS_MOVDQA<<8)+0, - XED_IFORM_MOVDQA_XMMdq_MEMdq=(XED_ICLASS_MOVDQA<<8)+1, - XED_IFORM_MOVDQA_MEMdq_XMMdq=(XED_ICLASS_MOVDQA<<8)+2, - XED_IFORM_MOVDQU_MEMdq_XMMdq=(XED_ICLASS_MOVDQU<<8)+0, - XED_IFORM_MOVDQU_XMMdq_XMMdq=(XED_ICLASS_MOVDQU<<8)+1, - XED_IFORM_MOVDQU_XMMdq_MEMdq=(XED_ICLASS_MOVDQU<<8)+2, - XED_IFORM_MOVHLPS_XMMq_XMMq=(XED_ICLASS_MOVHLPS<<8)+0, - XED_IFORM_MOVHPD_MEMq_XMMsd=(XED_ICLASS_MOVHPD<<8)+0, - XED_IFORM_MOVHPD_XMMsd_MEMq=(XED_ICLASS_MOVHPD<<8)+1, - XED_IFORM_MOVHPS_MEMq_XMMps=(XED_ICLASS_MOVHPS<<8)+0, - XED_IFORM_MOVHPS_XMMq_MEMq=(XED_ICLASS_MOVHPS<<8)+1, - XED_IFORM_MOVLHPS_XMMq_XMMq=(XED_ICLASS_MOVLHPS<<8)+0, - XED_IFORM_MOVLPD_XMMsd_MEMq=(XED_ICLASS_MOVLPD<<8)+0, - XED_IFORM_MOVLPD_MEMq_XMMsd=(XED_ICLASS_MOVLPD<<8)+1, - XED_IFORM_MOVLPS_MEMq_XMMps=(XED_ICLASS_MOVLPS<<8)+0, - XED_IFORM_MOVLPS_XMMq_MEMq=(XED_ICLASS_MOVLPS<<8)+1, - XED_IFORM_MOVMSKPD_GPR32_XMMpd=(XED_ICLASS_MOVMSKPD<<8)+0, - XED_IFORM_MOVMSKPS_GPR32_XMMps=(XED_ICLASS_MOVMSKPS<<8)+0, - XED_IFORM_MOVNTDQ_MEMdq_XMMdq=(XED_ICLASS_MOVNTDQ<<8)+0, - XED_IFORM_MOVNTDQA_XMMdq_MEMdq=(XED_ICLASS_MOVNTDQA<<8)+0, - XED_IFORM_MOVNTI_MEMq_GPR64=(XED_ICLASS_MOVNTI<<8)+0, - XED_IFORM_MOVNTI_MEMd_GPR32=(XED_ICLASS_MOVNTI<<8)+1, - XED_IFORM_MOVNTPD_MEMdq_XMMpd=(XED_ICLASS_MOVNTPD<<8)+0, - XED_IFORM_MOVNTPS_MEMdq_XMMps=(XED_ICLASS_MOVNTPS<<8)+0, - XED_IFORM_MOVNTQ_MEMq_MMXq=(XED_ICLASS_MOVNTQ<<8)+0, - XED_IFORM_MOVNTSD_MEMq_XMMq=(XED_ICLASS_MOVNTSD<<8)+0, - XED_IFORM_MOVNTSS_MEMd_XMMd=(XED_ICLASS_MOVNTSS<<8)+0, - XED_IFORM_MOVQ_MMXq_MMXq=(XED_ICLASS_MOVQ<<8)+0, - XED_IFORM_MOVQ_XMMdq_GPR64=(XED_ICLASS_MOVQ<<8)+1, - XED_IFORM_MOVQ_GPR64_MMXq=(XED_ICLASS_MOVQ<<8)+2, - XED_IFORM_MOVQ_MEMq_XMMq=(XED_ICLASS_MOVQ<<8)+3, - XED_IFORM_MOVQ_MMXq_GPR64=(XED_ICLASS_MOVQ<<8)+4, - XED_IFORM_MOVQ_MMXq_MEMq=(XED_ICLASS_MOVQ<<8)+5, - XED_IFORM_MOVQ_XMMdq_MEMq=(XED_ICLASS_MOVQ<<8)+6, - XED_IFORM_MOVQ_XMMdq_XMMq=(XED_ICLASS_MOVQ<<8)+7, - XED_IFORM_MOVQ_GPR64_XMMq=(XED_ICLASS_MOVQ<<8)+8, - XED_IFORM_MOVQ_MEMq_MMXq=(XED_ICLASS_MOVQ<<8)+9, - XED_IFORM_MOVQ2DQ_XMMdq_MMXq=(XED_ICLASS_MOVQ2DQ<<8)+0, - XED_IFORM_MOVSB=(XED_ICLASS_MOVSB<<8)+0, - XED_IFORM_MOVSD=(XED_ICLASS_MOVSD<<8)+0, - XED_IFORM_MOVSD_XMM_XMMsd_XMMsd=(XED_ICLASS_MOVSD_XMM<<8)+0, - XED_IFORM_MOVSD_XMM_MEMsd_XMMsd=(XED_ICLASS_MOVSD_XMM<<8)+1, - XED_IFORM_MOVSD_XMM_XMMdq_MEMsd=(XED_ICLASS_MOVSD_XMM<<8)+2, - XED_IFORM_MOVSHDUP_XMMps_XMMps=(XED_ICLASS_MOVSHDUP<<8)+0, - XED_IFORM_MOVSHDUP_XMMps_MEMps=(XED_ICLASS_MOVSHDUP<<8)+1, - XED_IFORM_MOVSLDUP_XMMps_XMMps=(XED_ICLASS_MOVSLDUP<<8)+0, - XED_IFORM_MOVSLDUP_XMMps_MEMps=(XED_ICLASS_MOVSLDUP<<8)+1, - XED_IFORM_MOVSQ=(XED_ICLASS_MOVSQ<<8)+0, - XED_IFORM_MOVSS_MEMss_XMMss=(XED_ICLASS_MOVSS<<8)+0, - XED_IFORM_MOVSS_XMMss_XMMss=(XED_ICLASS_MOVSS<<8)+1, - XED_IFORM_MOVSS_XMMdq_MEMss=(XED_ICLASS_MOVSS<<8)+2, - XED_IFORM_MOVSW=(XED_ICLASS_MOVSW<<8)+0, - XED_IFORM_MOVSX_GPRv_GPR16=(XED_ICLASS_MOVSX<<8)+0, - XED_IFORM_MOVSX_GPRv_MEMb=(XED_ICLASS_MOVSX<<8)+1, - XED_IFORM_MOVSX_GPRv_GPR8=(XED_ICLASS_MOVSX<<8)+2, - XED_IFORM_MOVSX_GPRv_MEMw=(XED_ICLASS_MOVSX<<8)+3, - XED_IFORM_MOVSXD_GPRv_MEMd=(XED_ICLASS_MOVSXD<<8)+0, - XED_IFORM_MOVSXD_GPRv_GPR32=(XED_ICLASS_MOVSXD<<8)+1, - XED_IFORM_MOVUPD_MEMpd_XMMpd=(XED_ICLASS_MOVUPD<<8)+0, - XED_IFORM_MOVUPD_XMMpd_MEMpd=(XED_ICLASS_MOVUPD<<8)+1, - XED_IFORM_MOVUPD_XMMpd_XMMpd=(XED_ICLASS_MOVUPD<<8)+2, - XED_IFORM_MOVUPS_MEMps_XMMps=(XED_ICLASS_MOVUPS<<8)+0, - XED_IFORM_MOVUPS_XMMps_XMMps=(XED_ICLASS_MOVUPS<<8)+1, - XED_IFORM_MOVUPS_XMMps_MEMps=(XED_ICLASS_MOVUPS<<8)+2, - XED_IFORM_MOVZX_GPRv_MEMb=(XED_ICLASS_MOVZX<<8)+0, - XED_IFORM_MOVZX_GPRv_GPR16=(XED_ICLASS_MOVZX<<8)+1, - XED_IFORM_MOVZX_GPRv_MEMw=(XED_ICLASS_MOVZX<<8)+2, - XED_IFORM_MOVZX_GPRv_GPR8=(XED_ICLASS_MOVZX<<8)+3, - XED_IFORM_MOV_CR_CR_GPR32=(XED_ICLASS_MOV_CR<<8)+0, - XED_IFORM_MOV_CR_GPR64_CR=(XED_ICLASS_MOV_CR<<8)+1, - XED_IFORM_MOV_CR_GPR32_CR=(XED_ICLASS_MOV_CR<<8)+2, - XED_IFORM_MOV_CR_CR_GPR64=(XED_ICLASS_MOV_CR<<8)+3, - XED_IFORM_MOV_DR_GPR64_DR=(XED_ICLASS_MOV_DR<<8)+0, - XED_IFORM_MOV_DR_DR_GPR32=(XED_ICLASS_MOV_DR<<8)+1, - XED_IFORM_MOV_DR_GPR32_DR=(XED_ICLASS_MOV_DR<<8)+2, - XED_IFORM_MOV_DR_DR_GPR64=(XED_ICLASS_MOV_DR<<8)+3, - XED_IFORM_MPSADBW_XMMdq_XMMdq_IMM=(XED_ICLASS_MPSADBW<<8)+0, - XED_IFORM_MPSADBW_XMMdq_MEMdq_IMM=(XED_ICLASS_MPSADBW<<8)+1, - XED_IFORM_MUL_MEMb=(XED_ICLASS_MUL<<8)+0, - XED_IFORM_MUL_GPRv=(XED_ICLASS_MUL<<8)+1, - XED_IFORM_MUL_GPR8=(XED_ICLASS_MUL<<8)+2, - XED_IFORM_MUL_MEMv=(XED_ICLASS_MUL<<8)+3, - XED_IFORM_MULPD_XMMpd_MEMpd=(XED_ICLASS_MULPD<<8)+0, - XED_IFORM_MULPD_XMMpd_XMMpd=(XED_ICLASS_MULPD<<8)+1, - XED_IFORM_MULPS_XMMps_XMMps=(XED_ICLASS_MULPS<<8)+0, - XED_IFORM_MULPS_XMMps_MEMps=(XED_ICLASS_MULPS<<8)+1, - XED_IFORM_MULSD_XMMsd_XMMsd=(XED_ICLASS_MULSD<<8)+0, - XED_IFORM_MULSD_XMMsd_MEMsd=(XED_ICLASS_MULSD<<8)+1, - XED_IFORM_MULSS_XMMss_MEMss=(XED_ICLASS_MULSS<<8)+0, - XED_IFORM_MULSS_XMMss_XMMss=(XED_ICLASS_MULSS<<8)+1, - XED_IFORM_MWAIT_EAX_ECX=(XED_ICLASS_MWAIT<<8)+0, - XED_IFORM_NEG_GPR8=(XED_ICLASS_NEG<<8)+0, - XED_IFORM_NEG_GPRv=(XED_ICLASS_NEG<<8)+1, - XED_IFORM_NEG_MEMb=(XED_ICLASS_NEG<<8)+2, - XED_IFORM_NEG_MEMv=(XED_ICLASS_NEG<<8)+3, - XED_IFORM_NOP=(XED_ICLASS_NOP<<8)+0, - XED_IFORM_NOP_GPRv_GPRv=(XED_ICLASS_NOP<<8)+1, - XED_IFORM_NOP_MEMv_GPRv=(XED_ICLASS_NOP<<8)+2, - XED_IFORM_NOT_MEMv=(XED_ICLASS_NOT<<8)+0, - XED_IFORM_NOT_GPRv=(XED_ICLASS_NOT<<8)+1, - XED_IFORM_NOT_GPR8=(XED_ICLASS_NOT<<8)+2, - XED_IFORM_NOT_MEMb=(XED_ICLASS_NOT<<8)+3, - XED_IFORM_OR_GPRv_MEMv=(XED_ICLASS_OR<<8)+0, - XED_IFORM_OR_GPRv_GPRv=(XED_ICLASS_OR<<8)+1, - XED_IFORM_OR_MEMv_IMM=(XED_ICLASS_OR<<8)+2, - XED_IFORM_OR_GPR8_GPR8=(XED_ICLASS_OR<<8)+3, - XED_IFORM_OR_MEMb_IMM=(XED_ICLASS_OR<<8)+4, - XED_IFORM_OR_MEMv_GPRv=(XED_ICLASS_OR<<8)+5, - XED_IFORM_OR_GPRv_IMM=(XED_ICLASS_OR<<8)+6, - XED_IFORM_OR_MEMb_GPR8=(XED_ICLASS_OR<<8)+7, - XED_IFORM_OR_GPR8_IMM=(XED_ICLASS_OR<<8)+8, - XED_IFORM_OR_AL_IMM=(XED_ICLASS_OR<<8)+9, - XED_IFORM_OR_GPR8_MEMb=(XED_ICLASS_OR<<8)+10, - XED_IFORM_OR_OrAX_IMM=(XED_ICLASS_OR<<8)+11, - XED_IFORM_ORPD_XMMpd_MEMpd=(XED_ICLASS_ORPD<<8)+0, - XED_IFORM_ORPD_XMMpd_XMMpd=(XED_ICLASS_ORPD<<8)+1, - XED_IFORM_ORPS_XMMps_XMMps=(XED_ICLASS_ORPS<<8)+0, - XED_IFORM_ORPS_XMMps_MEMps=(XED_ICLASS_ORPS<<8)+1, - XED_IFORM_OUT_IMM_AL=(XED_ICLASS_OUT<<8)+0, - XED_IFORM_OUT_DX_AL=(XED_ICLASS_OUT<<8)+1, - XED_IFORM_OUT_IMM_OeAX=(XED_ICLASS_OUT<<8)+2, - XED_IFORM_OUT_DX_OeAX=(XED_ICLASS_OUT<<8)+3, - XED_IFORM_OUTSB=(XED_ICLASS_OUTSB<<8)+0, - XED_IFORM_OUTSD=(XED_ICLASS_OUTSD<<8)+0, - XED_IFORM_OUTSW=(XED_ICLASS_OUTSW<<8)+0, - XED_IFORM_PABSB_MMXq_MEMq=(XED_ICLASS_PABSB<<8)+0, - XED_IFORM_PABSB_XMMdq_MEMdq=(XED_ICLASS_PABSB<<8)+1, - XED_IFORM_PABSB_MMXq_MMXq=(XED_ICLASS_PABSB<<8)+2, - XED_IFORM_PABSB_XMMdq_XMMdq=(XED_ICLASS_PABSB<<8)+3, - XED_IFORM_PABSD_MMXq_MEMq=(XED_ICLASS_PABSD<<8)+0, - XED_IFORM_PABSD_MMXq_MMXq=(XED_ICLASS_PABSD<<8)+1, - XED_IFORM_PABSD_XMMdq_MEMdq=(XED_ICLASS_PABSD<<8)+2, - XED_IFORM_PABSD_XMMdq_XMMdq=(XED_ICLASS_PABSD<<8)+3, - XED_IFORM_PABSW_XMMdq_MEMdq=(XED_ICLASS_PABSW<<8)+0, - XED_IFORM_PABSW_MMXq_MMXq=(XED_ICLASS_PABSW<<8)+1, - XED_IFORM_PABSW_XMMdq_XMMdq=(XED_ICLASS_PABSW<<8)+2, - XED_IFORM_PABSW_MMXq_MEMq=(XED_ICLASS_PABSW<<8)+3, - XED_IFORM_PACKSSDW_XMMdq_MEMdq=(XED_ICLASS_PACKSSDW<<8)+0, - XED_IFORM_PACKSSDW_MMXq_MEMq=(XED_ICLASS_PACKSSDW<<8)+1, - XED_IFORM_PACKSSDW_MMXq_MMXq=(XED_ICLASS_PACKSSDW<<8)+2, - XED_IFORM_PACKSSDW_XMMdq_XMMdq=(XED_ICLASS_PACKSSDW<<8)+3, - XED_IFORM_PACKSSWB_MMXq_MMXq=(XED_ICLASS_PACKSSWB<<8)+0, - XED_IFORM_PACKSSWB_XMMdq_MEMdq=(XED_ICLASS_PACKSSWB<<8)+1, - XED_IFORM_PACKSSWB_XMMdq_XMMdq=(XED_ICLASS_PACKSSWB<<8)+2, - XED_IFORM_PACKSSWB_MMXq_MEMq=(XED_ICLASS_PACKSSWB<<8)+3, - XED_IFORM_PACKUSDW_XMMdq_XMMdq=(XED_ICLASS_PACKUSDW<<8)+0, - XED_IFORM_PACKUSDW_XMMdq_MEMdq=(XED_ICLASS_PACKUSDW<<8)+1, - XED_IFORM_PACKUSWB_XMMdq_XMMdq=(XED_ICLASS_PACKUSWB<<8)+0, - XED_IFORM_PACKUSWB_XMMdq_MEMdq=(XED_ICLASS_PACKUSWB<<8)+1, - XED_IFORM_PACKUSWB_MMXq_MEMq=(XED_ICLASS_PACKUSWB<<8)+2, - XED_IFORM_PACKUSWB_MMXq_MMXq=(XED_ICLASS_PACKUSWB<<8)+3, - XED_IFORM_PADDB_XMMdq_XMMdq=(XED_ICLASS_PADDB<<8)+0, - XED_IFORM_PADDB_XMMdq_MEMdq=(XED_ICLASS_PADDB<<8)+1, - XED_IFORM_PADDB_MMXq_MMXq=(XED_ICLASS_PADDB<<8)+2, - XED_IFORM_PADDB_MMXq_MEMq=(XED_ICLASS_PADDB<<8)+3, - XED_IFORM_PADDD_XMMdq_MEMdq=(XED_ICLASS_PADDD<<8)+0, - XED_IFORM_PADDD_MMXq_MMXq=(XED_ICLASS_PADDD<<8)+1, - XED_IFORM_PADDD_XMMdq_XMMdq=(XED_ICLASS_PADDD<<8)+2, - XED_IFORM_PADDD_MMXq_MEMq=(XED_ICLASS_PADDD<<8)+3, - XED_IFORM_PADDQ_MMXq_MEMq=(XED_ICLASS_PADDQ<<8)+0, - XED_IFORM_PADDQ_XMMdq_MEMdq=(XED_ICLASS_PADDQ<<8)+1, - XED_IFORM_PADDQ_MMXq_MMXq=(XED_ICLASS_PADDQ<<8)+2, - XED_IFORM_PADDQ_XMMdq_XMMdq=(XED_ICLASS_PADDQ<<8)+3, - XED_IFORM_PADDSB_XMMdq_XMMdq=(XED_ICLASS_PADDSB<<8)+0, - XED_IFORM_PADDSB_XMMdq_MEMdq=(XED_ICLASS_PADDSB<<8)+1, - XED_IFORM_PADDSB_MMXq_MMXq=(XED_ICLASS_PADDSB<<8)+2, - XED_IFORM_PADDSB_MMXq_MEMq=(XED_ICLASS_PADDSB<<8)+3, - XED_IFORM_PADDSW_MMXq_MEMq=(XED_ICLASS_PADDSW<<8)+0, - XED_IFORM_PADDSW_MMXq_MMXq=(XED_ICLASS_PADDSW<<8)+1, - XED_IFORM_PADDSW_XMMdq_MEMdq=(XED_ICLASS_PADDSW<<8)+2, - XED_IFORM_PADDSW_XMMdq_XMMdq=(XED_ICLASS_PADDSW<<8)+3, - XED_IFORM_PADDUSB_XMMdq_XMMdq=(XED_ICLASS_PADDUSB<<8)+0, - XED_IFORM_PADDUSB_MMXq_MEMq=(XED_ICLASS_PADDUSB<<8)+1, - XED_IFORM_PADDUSB_MMXq_MMXq=(XED_ICLASS_PADDUSB<<8)+2, - XED_IFORM_PADDUSB_XMMdq_MEMdq=(XED_ICLASS_PADDUSB<<8)+3, - XED_IFORM_PADDUSW_XMMdq_MEMdq=(XED_ICLASS_PADDUSW<<8)+0, - XED_IFORM_PADDUSW_MMXq_MMXq=(XED_ICLASS_PADDUSW<<8)+1, - XED_IFORM_PADDUSW_MMXq_MEMq=(XED_ICLASS_PADDUSW<<8)+2, - XED_IFORM_PADDUSW_XMMdq_XMMdq=(XED_ICLASS_PADDUSW<<8)+3, - XED_IFORM_PADDW_MMXq_MEMq=(XED_ICLASS_PADDW<<8)+0, - XED_IFORM_PADDW_MMXq_MMXq=(XED_ICLASS_PADDW<<8)+1, - XED_IFORM_PADDW_XMMdq_MEMdq=(XED_ICLASS_PADDW<<8)+2, - XED_IFORM_PADDW_XMMdq_XMMdq=(XED_ICLASS_PADDW<<8)+3, - XED_IFORM_PALIGNR_XMMdq_XMMdq_IMM=(XED_ICLASS_PALIGNR<<8)+0, - XED_IFORM_PALIGNR_MMXq_MEMq_IMM=(XED_ICLASS_PALIGNR<<8)+1, - XED_IFORM_PALIGNR_MMXq_MMXq_IMM=(XED_ICLASS_PALIGNR<<8)+2, - XED_IFORM_PALIGNR_XMMdq_MEMdq_IMM=(XED_ICLASS_PALIGNR<<8)+3, - XED_IFORM_PAND_MMXq_MMXq=(XED_ICLASS_PAND<<8)+0, - XED_IFORM_PAND_MMXq_MEMq=(XED_ICLASS_PAND<<8)+1, - XED_IFORM_PAND_XMMdq_XMMdq=(XED_ICLASS_PAND<<8)+2, - XED_IFORM_PAND_XMMdq_MEMdq=(XED_ICLASS_PAND<<8)+3, - XED_IFORM_PANDN_XMMdq_MEMdq=(XED_ICLASS_PANDN<<8)+0, - XED_IFORM_PANDN_MMXq_MMXq=(XED_ICLASS_PANDN<<8)+1, - XED_IFORM_PANDN_XMMdq_XMMdq=(XED_ICLASS_PANDN<<8)+2, - XED_IFORM_PANDN_MMXq_MEMq=(XED_ICLASS_PANDN<<8)+3, - XED_IFORM_PAUSE=(XED_ICLASS_PAUSE<<8)+0, - XED_IFORM_PAVGB_XMMdq_MEMdq=(XED_ICLASS_PAVGB<<8)+0, - XED_IFORM_PAVGB_MMXq_MEMq=(XED_ICLASS_PAVGB<<8)+1, - XED_IFORM_PAVGB_XMMdq_XMMdq=(XED_ICLASS_PAVGB<<8)+2, - XED_IFORM_PAVGB_MMXq_MMXq=(XED_ICLASS_PAVGB<<8)+3, - XED_IFORM_PAVGUSB_MMXq_MEMq=(XED_ICLASS_PAVGUSB<<8)+0, - XED_IFORM_PAVGUSB_MMXq_MMXq=(XED_ICLASS_PAVGUSB<<8)+1, - XED_IFORM_PAVGW_XMMdq_MEMdq=(XED_ICLASS_PAVGW<<8)+0, - XED_IFORM_PAVGW_MMXq_MMXq=(XED_ICLASS_PAVGW<<8)+1, - XED_IFORM_PAVGW_XMMdq_XMMdq=(XED_ICLASS_PAVGW<<8)+2, - XED_IFORM_PAVGW_MMXq_MEMq=(XED_ICLASS_PAVGW<<8)+3, - XED_IFORM_PBLENDVB_XMMdq_XMMdq_XMM0dq=(XED_ICLASS_PBLENDVB<<8)+0, - XED_IFORM_PBLENDVB_XMMdq_MEMdq_XMM0dq=(XED_ICLASS_PBLENDVB<<8)+1, - XED_IFORM_PBLENDW_XMMdq_MEMdq_IMM=(XED_ICLASS_PBLENDW<<8)+0, - XED_IFORM_PBLENDW_XMMdq_XMMdq_IMM=(XED_ICLASS_PBLENDW<<8)+1, - XED_IFORM_PCMPEQB_XMMdq_MEMdq=(XED_ICLASS_PCMPEQB<<8)+0, - XED_IFORM_PCMPEQB_MMXq_MMXq=(XED_ICLASS_PCMPEQB<<8)+1, - XED_IFORM_PCMPEQB_MMXq_MEMq=(XED_ICLASS_PCMPEQB<<8)+2, - XED_IFORM_PCMPEQB_XMMdq_XMMdq=(XED_ICLASS_PCMPEQB<<8)+3, - XED_IFORM_PCMPEQD_XMMdq_MEMdq=(XED_ICLASS_PCMPEQD<<8)+0, - XED_IFORM_PCMPEQD_XMMdq_XMMdq=(XED_ICLASS_PCMPEQD<<8)+1, - XED_IFORM_PCMPEQD_MMXq_MMXq=(XED_ICLASS_PCMPEQD<<8)+2, - XED_IFORM_PCMPEQD_MMXq_MEMq=(XED_ICLASS_PCMPEQD<<8)+3, - XED_IFORM_PCMPEQQ_XMMdq_XMMdq=(XED_ICLASS_PCMPEQQ<<8)+0, - XED_IFORM_PCMPEQQ_XMMdq_MEMdq=(XED_ICLASS_PCMPEQQ<<8)+1, - XED_IFORM_PCMPEQW_XMMdq_XMMdq=(XED_ICLASS_PCMPEQW<<8)+0, - XED_IFORM_PCMPEQW_MMXq_MEMq=(XED_ICLASS_PCMPEQW<<8)+1, - XED_IFORM_PCMPEQW_MMXq_MMXq=(XED_ICLASS_PCMPEQW<<8)+2, - XED_IFORM_PCMPEQW_XMMdq_MEMdq=(XED_ICLASS_PCMPEQW<<8)+3, - XED_IFORM_PCMPESTRI_XMMdq_XMMdq_IMM=(XED_ICLASS_PCMPESTRI<<8)+0, - XED_IFORM_PCMPESTRI_XMMdq_MEMdq_IMM=(XED_ICLASS_PCMPESTRI<<8)+1, - XED_IFORM_PCMPESTRM_XMMdq_MEMdq_IMM=(XED_ICLASS_PCMPESTRM<<8)+0, - XED_IFORM_PCMPESTRM_XMMdq_XMMdq_IMM=(XED_ICLASS_PCMPESTRM<<8)+1, - XED_IFORM_PCMPGTB_MMXq_MMXq=(XED_ICLASS_PCMPGTB<<8)+0, - XED_IFORM_PCMPGTB_XMMdq_MEMdq=(XED_ICLASS_PCMPGTB<<8)+1, - XED_IFORM_PCMPGTB_XMMdq_XMMdq=(XED_ICLASS_PCMPGTB<<8)+2, - XED_IFORM_PCMPGTB_MMXq_MEMq=(XED_ICLASS_PCMPGTB<<8)+3, - XED_IFORM_PCMPGTD_XMMdq_XMMdq=(XED_ICLASS_PCMPGTD<<8)+0, - XED_IFORM_PCMPGTD_XMMdq_MEMdq=(XED_ICLASS_PCMPGTD<<8)+1, - XED_IFORM_PCMPGTD_MMXq_MEMq=(XED_ICLASS_PCMPGTD<<8)+2, - XED_IFORM_PCMPGTD_MMXq_MMXq=(XED_ICLASS_PCMPGTD<<8)+3, - XED_IFORM_PCMPGTQ_XMMdq_MEMdq=(XED_ICLASS_PCMPGTQ<<8)+0, - XED_IFORM_PCMPGTQ_XMMdq_XMMdq=(XED_ICLASS_PCMPGTQ<<8)+1, - XED_IFORM_PCMPGTW_MMXq_MMXq=(XED_ICLASS_PCMPGTW<<8)+0, - XED_IFORM_PCMPGTW_MMXq_MEMq=(XED_ICLASS_PCMPGTW<<8)+1, - XED_IFORM_PCMPGTW_XMMdq_XMMdq=(XED_ICLASS_PCMPGTW<<8)+2, - XED_IFORM_PCMPGTW_XMMdq_MEMdq=(XED_ICLASS_PCMPGTW<<8)+3, - XED_IFORM_PCMPISTRI_XMMdq_MEMdq_IMM=(XED_ICLASS_PCMPISTRI<<8)+0, - XED_IFORM_PCMPISTRI_XMMdq_XMMdq_IMM=(XED_ICLASS_PCMPISTRI<<8)+1, - XED_IFORM_PCMPISTRM_XMMdq_XMMdq_IMM=(XED_ICLASS_PCMPISTRM<<8)+0, - XED_IFORM_PCMPISTRM_XMMdq_MEMdq_IMM=(XED_ICLASS_PCMPISTRM<<8)+1, - XED_IFORM_PEXTRB_MEMb_XMMdq_IMM=(XED_ICLASS_PEXTRB<<8)+0, - XED_IFORM_PEXTRB_GPR32d_XMMdq_IMM=(XED_ICLASS_PEXTRB<<8)+1, - XED_IFORM_PEXTRD_MEMd_XMMdq_IMM=(XED_ICLASS_PEXTRD<<8)+0, - XED_IFORM_PEXTRD_GPR32d_XMMdq_IMM=(XED_ICLASS_PEXTRD<<8)+1, - XED_IFORM_PEXTRQ_MEMq_XMMdq_IMM=(XED_ICLASS_PEXTRQ<<8)+0, - XED_IFORM_PEXTRQ_GPR64q_XMMdq_IMM=(XED_ICLASS_PEXTRQ<<8)+1, - XED_IFORM_PEXTRW_GPRy_XMMdq_IMM=(XED_ICLASS_PEXTRW<<8)+0, - XED_IFORM_PEXTRW_MEMw_XMMdq_IMM=(XED_ICLASS_PEXTRW<<8)+1, - XED_IFORM_PEXTRW_GPRy_MMXq_IMM=(XED_ICLASS_PEXTRW<<8)+2, - XED_IFORM_PEXTRW_GPR32d_XMMdq_IMM=(XED_ICLASS_PEXTRW<<8)+3, - XED_IFORM_PF2ID_MMXq_MMXq=(XED_ICLASS_PF2ID<<8)+0, - XED_IFORM_PF2ID_MMXq_MEMq=(XED_ICLASS_PF2ID<<8)+1, - XED_IFORM_PF2IW_MMXq_MEMq=(XED_ICLASS_PF2IW<<8)+0, - XED_IFORM_PF2IW_MMXq_MMXq=(XED_ICLASS_PF2IW<<8)+1, - XED_IFORM_PFACC_MMXq_MEMq=(XED_ICLASS_PFACC<<8)+0, - XED_IFORM_PFACC_MMXq_MMXq=(XED_ICLASS_PFACC<<8)+1, - XED_IFORM_PFADD_MMXq_MMXq=(XED_ICLASS_PFADD<<8)+0, - XED_IFORM_PFADD_MMXq_MEMq=(XED_ICLASS_PFADD<<8)+1, - XED_IFORM_PFCMPEQ_MMXq_MMXq=(XED_ICLASS_PFCMPEQ<<8)+0, - XED_IFORM_PFCMPEQ_MMXq_MEMq=(XED_ICLASS_PFCMPEQ<<8)+1, - XED_IFORM_PFCMPGE_MMXq_MEMq=(XED_ICLASS_PFCMPGE<<8)+0, - XED_IFORM_PFCMPGE_MMXq_MMXq=(XED_ICLASS_PFCMPGE<<8)+1, - XED_IFORM_PFCMPGT_MMXq_MEMq=(XED_ICLASS_PFCMPGT<<8)+0, - XED_IFORM_PFCMPGT_MMXq_MMXq=(XED_ICLASS_PFCMPGT<<8)+1, - XED_IFORM_PFCPIT1_MMXq_MMXq=(XED_ICLASS_PFCPIT1<<8)+0, - XED_IFORM_PFCPIT1_MMXq_MEMq=(XED_ICLASS_PFCPIT1<<8)+1, - XED_IFORM_PFMAX_MMXq_MEMq=(XED_ICLASS_PFMAX<<8)+0, - XED_IFORM_PFMAX_MMXq_MMXq=(XED_ICLASS_PFMAX<<8)+1, - XED_IFORM_PFMIN_MMXq_MEMq=(XED_ICLASS_PFMIN<<8)+0, - XED_IFORM_PFMIN_MMXq_MMXq=(XED_ICLASS_PFMIN<<8)+1, - XED_IFORM_PFMUL_MMXq_MEMq=(XED_ICLASS_PFMUL<<8)+0, - XED_IFORM_PFMUL_MMXq_MMXq=(XED_ICLASS_PFMUL<<8)+1, - XED_IFORM_PFNACC_MMXq_MEMq=(XED_ICLASS_PFNACC<<8)+0, - XED_IFORM_PFNACC_MMXq_MMXq=(XED_ICLASS_PFNACC<<8)+1, - XED_IFORM_PFPNACC_MMXq_MEMq=(XED_ICLASS_PFPNACC<<8)+0, - XED_IFORM_PFPNACC_MMXq_MMXq=(XED_ICLASS_PFPNACC<<8)+1, - XED_IFORM_PFRCP_MMXq_MMXq=(XED_ICLASS_PFRCP<<8)+0, - XED_IFORM_PFRCP_MMXq_MEMq=(XED_ICLASS_PFRCP<<8)+1, - XED_IFORM_PFRCPIT2_MMXq_MEMq=(XED_ICLASS_PFRCPIT2<<8)+0, - XED_IFORM_PFRCPIT2_MMXq_MMXq=(XED_ICLASS_PFRCPIT2<<8)+1, - XED_IFORM_PFRSQIT1_MMXq_MEMq=(XED_ICLASS_PFRSQIT1<<8)+0, - XED_IFORM_PFRSQIT1_MMXq_MMXq=(XED_ICLASS_PFRSQIT1<<8)+1, - XED_IFORM_PFSQRT_MMXq_MMXq=(XED_ICLASS_PFSQRT<<8)+0, - XED_IFORM_PFSQRT_MMXq_MEMq=(XED_ICLASS_PFSQRT<<8)+1, - XED_IFORM_PFSUB_MMXq_MEMq=(XED_ICLASS_PFSUB<<8)+0, - XED_IFORM_PFSUB_MMXq_MMXq=(XED_ICLASS_PFSUB<<8)+1, - XED_IFORM_PFSUBR_MMXq_MMXq=(XED_ICLASS_PFSUBR<<8)+0, - XED_IFORM_PFSUBR_MMXq_MEMq=(XED_ICLASS_PFSUBR<<8)+1, - XED_IFORM_PHADDD_MMXq_MEMq=(XED_ICLASS_PHADDD<<8)+0, - XED_IFORM_PHADDD_MMXq_MMXq=(XED_ICLASS_PHADDD<<8)+1, - XED_IFORM_PHADDD_XMMdq_MEMdq=(XED_ICLASS_PHADDD<<8)+2, - XED_IFORM_PHADDD_XMMdq_XMMdq=(XED_ICLASS_PHADDD<<8)+3, - XED_IFORM_PHADDSW_MMXq_MEMq=(XED_ICLASS_PHADDSW<<8)+0, - XED_IFORM_PHADDSW_MMXq_MMXq=(XED_ICLASS_PHADDSW<<8)+1, - XED_IFORM_PHADDSW_XMMdq_XMMdq=(XED_ICLASS_PHADDSW<<8)+2, - XED_IFORM_PHADDSW_XMMdq_MEMdq=(XED_ICLASS_PHADDSW<<8)+3, - XED_IFORM_PHADDW_XMMdq_MEMdq=(XED_ICLASS_PHADDW<<8)+0, - XED_IFORM_PHADDW_MMXq_MMXq=(XED_ICLASS_PHADDW<<8)+1, - XED_IFORM_PHADDW_XMMdq_XMMdq=(XED_ICLASS_PHADDW<<8)+2, - XED_IFORM_PHADDW_MMXq_MEMq=(XED_ICLASS_PHADDW<<8)+3, - XED_IFORM_PHMINPOSUW_XMMdq_XMMdq=(XED_ICLASS_PHMINPOSUW<<8)+0, - XED_IFORM_PHMINPOSUW_XMMdq_MEMdq=(XED_ICLASS_PHMINPOSUW<<8)+1, - XED_IFORM_PHSUBD_MMXq_MEMq=(XED_ICLASS_PHSUBD<<8)+0, - XED_IFORM_PHSUBD_XMMdq_XMMdq=(XED_ICLASS_PHSUBD<<8)+1, - XED_IFORM_PHSUBD_XMMdq_MEMdq=(XED_ICLASS_PHSUBD<<8)+2, - XED_IFORM_PHSUBD_MMXq_MMXq=(XED_ICLASS_PHSUBD<<8)+3, - XED_IFORM_PHSUBSW_XMMdq_MEMdq=(XED_ICLASS_PHSUBSW<<8)+0, - XED_IFORM_PHSUBSW_MMXq_MMXq=(XED_ICLASS_PHSUBSW<<8)+1, - XED_IFORM_PHSUBSW_MMXq_MEMq=(XED_ICLASS_PHSUBSW<<8)+2, - XED_IFORM_PHSUBSW_XMMdq_XMMdq=(XED_ICLASS_PHSUBSW<<8)+3, - XED_IFORM_PHSUBW_MMXq_MMXq=(XED_ICLASS_PHSUBW<<8)+0, - XED_IFORM_PHSUBW_XMMdq_MEMdq=(XED_ICLASS_PHSUBW<<8)+1, - XED_IFORM_PHSUBW_MMXq_MEMq=(XED_ICLASS_PHSUBW<<8)+2, - XED_IFORM_PHSUBW_XMMdq_XMMdq=(XED_ICLASS_PHSUBW<<8)+3, - XED_IFORM_PI2FD_MMXq_MMXq=(XED_ICLASS_PI2FD<<8)+0, - XED_IFORM_PI2FD_MMXq_MEMq=(XED_ICLASS_PI2FD<<8)+1, - XED_IFORM_PI2FW_MMXq_MEMq=(XED_ICLASS_PI2FW<<8)+0, - XED_IFORM_PI2FW_MMXq_MMXq=(XED_ICLASS_PI2FW<<8)+1, - XED_IFORM_PINSRB_XMMdq_MEMb_IMM=(XED_ICLASS_PINSRB<<8)+0, - XED_IFORM_PINSRB_XMMdq_GPR32d_IMM=(XED_ICLASS_PINSRB<<8)+1, - XED_IFORM_PINSRD_XMMdq_GPR32d_IMM=(XED_ICLASS_PINSRD<<8)+0, - XED_IFORM_PINSRD_XMMdq_MEMd_IMM=(XED_ICLASS_PINSRD<<8)+1, - XED_IFORM_PINSRQ_XMMdq_GPR64q_IMM=(XED_ICLASS_PINSRQ<<8)+0, - XED_IFORM_PINSRQ_XMMdq_MEMq_IMM=(XED_ICLASS_PINSRQ<<8)+1, - XED_IFORM_PINSRW_MMXq_MEMw_IMM=(XED_ICLASS_PINSRW<<8)+0, - XED_IFORM_PINSRW_XMMdq_GPRy_IMM=(XED_ICLASS_PINSRW<<8)+1, - XED_IFORM_PINSRW_MMXq_GPRy_IMM=(XED_ICLASS_PINSRW<<8)+2, - XED_IFORM_PINSRW_XMMdq_MEMw_IMM=(XED_ICLASS_PINSRW<<8)+3, - XED_IFORM_PMADDUBSW_XMMdq_XMMdq=(XED_ICLASS_PMADDUBSW<<8)+0, - XED_IFORM_PMADDUBSW_XMMdq_MEMdq=(XED_ICLASS_PMADDUBSW<<8)+1, - XED_IFORM_PMADDUBSW_MMXq_MMXq=(XED_ICLASS_PMADDUBSW<<8)+2, - XED_IFORM_PMADDUBSW_MMXq_MEMq=(XED_ICLASS_PMADDUBSW<<8)+3, - XED_IFORM_PMADDWD_XMMdq_XMMdq=(XED_ICLASS_PMADDWD<<8)+0, - XED_IFORM_PMADDWD_XMMdq_MEMdq=(XED_ICLASS_PMADDWD<<8)+1, - XED_IFORM_PMADDWD_MMXq_MEMq=(XED_ICLASS_PMADDWD<<8)+2, - XED_IFORM_PMADDWD_MMXq_MMXq=(XED_ICLASS_PMADDWD<<8)+3, - XED_IFORM_PMAXSB_XMMdq_MEMdq=(XED_ICLASS_PMAXSB<<8)+0, - XED_IFORM_PMAXSB_XMMdq_XMMdq=(XED_ICLASS_PMAXSB<<8)+1, - XED_IFORM_PMAXSD_XMMdq_MEMdq=(XED_ICLASS_PMAXSD<<8)+0, - XED_IFORM_PMAXSD_XMMdq_XMMdq=(XED_ICLASS_PMAXSD<<8)+1, - XED_IFORM_PMAXSW_MMXq_MMXq=(XED_ICLASS_PMAXSW<<8)+0, - XED_IFORM_PMAXSW_XMMdq_XMMdq=(XED_ICLASS_PMAXSW<<8)+1, - XED_IFORM_PMAXSW_MMXq_MEMq=(XED_ICLASS_PMAXSW<<8)+2, - XED_IFORM_PMAXSW_XMMdq_MEMdq=(XED_ICLASS_PMAXSW<<8)+3, - XED_IFORM_PMAXUB_XMMdq_MEMdq=(XED_ICLASS_PMAXUB<<8)+0, - XED_IFORM_PMAXUB_XMMdq_XMMdq=(XED_ICLASS_PMAXUB<<8)+1, - XED_IFORM_PMAXUB_MMXq_MEMq=(XED_ICLASS_PMAXUB<<8)+2, - XED_IFORM_PMAXUB_MMXq_MMXq=(XED_ICLASS_PMAXUB<<8)+3, - XED_IFORM_PMAXUD_XMMdq_MEMdq=(XED_ICLASS_PMAXUD<<8)+0, - XED_IFORM_PMAXUD_XMMdq_XMMdq=(XED_ICLASS_PMAXUD<<8)+1, - XED_IFORM_PMAXUW_XMMdq_XMMdq=(XED_ICLASS_PMAXUW<<8)+0, - XED_IFORM_PMAXUW_XMMdq_MEMdq=(XED_ICLASS_PMAXUW<<8)+1, - XED_IFORM_PMINSB_XMMdq_MEMdq=(XED_ICLASS_PMINSB<<8)+0, - XED_IFORM_PMINSB_XMMdq_XMMdq=(XED_ICLASS_PMINSB<<8)+1, - XED_IFORM_PMINSD_XMMdq_MEMdq=(XED_ICLASS_PMINSD<<8)+0, - XED_IFORM_PMINSD_XMMdq_XMMdq=(XED_ICLASS_PMINSD<<8)+1, - XED_IFORM_PMINSW_XMMdq_XMMdq=(XED_ICLASS_PMINSW<<8)+0, - XED_IFORM_PMINSW_XMMdq_MEMdq=(XED_ICLASS_PMINSW<<8)+1, - XED_IFORM_PMINSW_MMXq_MMXq=(XED_ICLASS_PMINSW<<8)+2, - XED_IFORM_PMINSW_MMXq_MEMq=(XED_ICLASS_PMINSW<<8)+3, - XED_IFORM_PMINUB_MMXq_MEMq=(XED_ICLASS_PMINUB<<8)+0, - XED_IFORM_PMINUB_XMMdq_XMMdq=(XED_ICLASS_PMINUB<<8)+1, - XED_IFORM_PMINUB_XMMdq_MEMdq=(XED_ICLASS_PMINUB<<8)+2, - XED_IFORM_PMINUB_MMXq_MMXq=(XED_ICLASS_PMINUB<<8)+3, - XED_IFORM_PMINUD_XMMdq_MEMdq=(XED_ICLASS_PMINUD<<8)+0, - XED_IFORM_PMINUD_XMMdq_XMMdq=(XED_ICLASS_PMINUD<<8)+1, - XED_IFORM_PMINUW_XMMdq_XMMdq=(XED_ICLASS_PMINUW<<8)+0, - XED_IFORM_PMINUW_XMMdq_MEMdq=(XED_ICLASS_PMINUW<<8)+1, - XED_IFORM_PMOVMSKB_GPR32_XMMdq=(XED_ICLASS_PMOVMSKB<<8)+0, - XED_IFORM_PMOVMSKB_GPR32_MMXq=(XED_ICLASS_PMOVMSKB<<8)+1, - XED_IFORM_PMOVSXBD_XMMdq_MEMd=(XED_ICLASS_PMOVSXBD<<8)+0, - XED_IFORM_PMOVSXBD_XMMdq_XMMd=(XED_ICLASS_PMOVSXBD<<8)+1, - XED_IFORM_PMOVSXBQ_XMMdq_MEMw=(XED_ICLASS_PMOVSXBQ<<8)+0, - XED_IFORM_PMOVSXBQ_XMMdq_XMMw=(XED_ICLASS_PMOVSXBQ<<8)+1, - XED_IFORM_PMOVSXBW_XMMdq_XMMq=(XED_ICLASS_PMOVSXBW<<8)+0, - XED_IFORM_PMOVSXBW_XMMdq_MEMq=(XED_ICLASS_PMOVSXBW<<8)+1, - XED_IFORM_PMOVSXDQ_XMMdq_XMMq=(XED_ICLASS_PMOVSXDQ<<8)+0, - XED_IFORM_PMOVSXDQ_XMMdq_MEMq=(XED_ICLASS_PMOVSXDQ<<8)+1, - XED_IFORM_PMOVSXWD_XMMdq_XMMq=(XED_ICLASS_PMOVSXWD<<8)+0, - XED_IFORM_PMOVSXWD_XMMdq_MEMq=(XED_ICLASS_PMOVSXWD<<8)+1, - XED_IFORM_PMOVSXWQ_XMMdq_MEMd=(XED_ICLASS_PMOVSXWQ<<8)+0, - XED_IFORM_PMOVSXWQ_XMMdq_XMMd=(XED_ICLASS_PMOVSXWQ<<8)+1, - XED_IFORM_PMOVZXBD_XMMdq_XMMd=(XED_ICLASS_PMOVZXBD<<8)+0, - XED_IFORM_PMOVZXBD_XMMdq_MEMd=(XED_ICLASS_PMOVZXBD<<8)+1, - XED_IFORM_PMOVZXBQ_XMMdq_XMMw=(XED_ICLASS_PMOVZXBQ<<8)+0, - XED_IFORM_PMOVZXBQ_XMMdq_MEMw=(XED_ICLASS_PMOVZXBQ<<8)+1, - XED_IFORM_PMOVZXBW_XMMdq_MEMq=(XED_ICLASS_PMOVZXBW<<8)+0, - XED_IFORM_PMOVZXBW_XMMdq_XMMq=(XED_ICLASS_PMOVZXBW<<8)+1, - XED_IFORM_PMOVZXDQ_XMMdq_MEMq=(XED_ICLASS_PMOVZXDQ<<8)+0, - XED_IFORM_PMOVZXDQ_XMMdq_XMMq=(XED_ICLASS_PMOVZXDQ<<8)+1, - XED_IFORM_PMOVZXWD_XMMdq_MEMq=(XED_ICLASS_PMOVZXWD<<8)+0, - XED_IFORM_PMOVZXWD_XMMdq_XMMq=(XED_ICLASS_PMOVZXWD<<8)+1, - XED_IFORM_PMOVZXWQ_XMMdq_XMMd=(XED_ICLASS_PMOVZXWQ<<8)+0, - XED_IFORM_PMOVZXWQ_XMMdq_MEMd=(XED_ICLASS_PMOVZXWQ<<8)+1, - XED_IFORM_PMULDQ_XMMdq_MEMdq=(XED_ICLASS_PMULDQ<<8)+0, - XED_IFORM_PMULDQ_XMMdq_XMMdq=(XED_ICLASS_PMULDQ<<8)+1, - XED_IFORM_PMULHRSW_XMMdq_MEMdq=(XED_ICLASS_PMULHRSW<<8)+0, - XED_IFORM_PMULHRSW_XMMdq_XMMdq=(XED_ICLASS_PMULHRSW<<8)+1, - XED_IFORM_PMULHRSW_MMXq_MEMq=(XED_ICLASS_PMULHRSW<<8)+2, - XED_IFORM_PMULHRSW_MMXq_MMXq=(XED_ICLASS_PMULHRSW<<8)+3, - XED_IFORM_PMULHRW_MMXq_MEMq=(XED_ICLASS_PMULHRW<<8)+0, - XED_IFORM_PMULHRW_MMXq_MMXq=(XED_ICLASS_PMULHRW<<8)+1, - XED_IFORM_PMULHUW_XMMdq_MEMdq=(XED_ICLASS_PMULHUW<<8)+0, - XED_IFORM_PMULHUW_XMMdq_XMMdq=(XED_ICLASS_PMULHUW<<8)+1, - XED_IFORM_PMULHUW_MMXq_MMXq=(XED_ICLASS_PMULHUW<<8)+2, - XED_IFORM_PMULHUW_MMXq_MEMq=(XED_ICLASS_PMULHUW<<8)+3, - XED_IFORM_PMULHW_MMXq_MMXq=(XED_ICLASS_PMULHW<<8)+0, - XED_IFORM_PMULHW_XMMdq_MEMdq=(XED_ICLASS_PMULHW<<8)+1, - XED_IFORM_PMULHW_MMXq_MEMq=(XED_ICLASS_PMULHW<<8)+2, - XED_IFORM_PMULHW_XMMdq_XMMdq=(XED_ICLASS_PMULHW<<8)+3, - XED_IFORM_PMULLD_XMMdq_XMMdq=(XED_ICLASS_PMULLD<<8)+0, - XED_IFORM_PMULLD_XMMdq_MEMdq=(XED_ICLASS_PMULLD<<8)+1, - XED_IFORM_PMULLW_MMXq_MEMq=(XED_ICLASS_PMULLW<<8)+0, - XED_IFORM_PMULLW_XMMdq_XMMdq=(XED_ICLASS_PMULLW<<8)+1, - XED_IFORM_PMULLW_MMXq_MMXq=(XED_ICLASS_PMULLW<<8)+2, - XED_IFORM_PMULLW_XMMdq_MEMdq=(XED_ICLASS_PMULLW<<8)+3, - XED_IFORM_PMULUDQ_MMXq_MEMq=(XED_ICLASS_PMULUDQ<<8)+0, - XED_IFORM_PMULUDQ_XMMdq_MEMdq=(XED_ICLASS_PMULUDQ<<8)+1, - XED_IFORM_PMULUDQ_XMMdq_XMMdq=(XED_ICLASS_PMULUDQ<<8)+2, - XED_IFORM_PMULUDQ_MMXq_MMXq=(XED_ICLASS_PMULUDQ<<8)+3, - XED_IFORM_POP_SS=(XED_ICLASS_POP<<8)+0, - XED_IFORM_POP_DS=(XED_ICLASS_POP<<8)+1, - XED_IFORM_POP_MEMv=(XED_ICLASS_POP<<8)+2, - XED_IFORM_POP_GPRv=(XED_ICLASS_POP<<8)+3, - XED_IFORM_POP_ES=(XED_ICLASS_POP<<8)+4, - XED_IFORM_POP_GS=(XED_ICLASS_POP<<8)+5, - XED_IFORM_POP_FS=(XED_ICLASS_POP<<8)+6, - XED_IFORM_POPA=(XED_ICLASS_POPA<<8)+0, - XED_IFORM_POPAD=(XED_ICLASS_POPAD<<8)+0, - XED_IFORM_POPCNT_GPRv_GPRv=(XED_ICLASS_POPCNT<<8)+0, - XED_IFORM_POPCNT_GPRv_MEMv=(XED_ICLASS_POPCNT<<8)+1, - XED_IFORM_POPF=(XED_ICLASS_POPF<<8)+0, - XED_IFORM_POPFD=(XED_ICLASS_POPFD<<8)+0, - XED_IFORM_POPFQ=(XED_ICLASS_POPFQ<<8)+0, - XED_IFORM_POR_XMMdq_XMMdq=(XED_ICLASS_POR<<8)+0, - XED_IFORM_POR_XMMdq_MEMdq=(XED_ICLASS_POR<<8)+1, - XED_IFORM_POR_MMXq_MEMq=(XED_ICLASS_POR<<8)+2, - XED_IFORM_POR_MMXq_MMXq=(XED_ICLASS_POR<<8)+3, - XED_IFORM_PREFETCHNTA_MEMmprefetch=(XED_ICLASS_PREFETCHNTA<<8)+0, - XED_IFORM_PREFETCHT0_MEMmprefetch=(XED_ICLASS_PREFETCHT0<<8)+0, - XED_IFORM_PREFETCHT1_MEMmprefetch=(XED_ICLASS_PREFETCHT1<<8)+0, - XED_IFORM_PREFETCHT2_MEMmprefetch=(XED_ICLASS_PREFETCHT2<<8)+0, - XED_IFORM_PREFETCH_EXCLUSIVE_MEMmprefetch=(XED_ICLASS_PREFETCH_EXCLUSIVE<<8)+0, - XED_IFORM_PREFETCH_MODIFIED_MEMmprefetch=(XED_ICLASS_PREFETCH_MODIFIED<<8)+0, - XED_IFORM_PREFETCH_RESERVED_MEMmprefetch=(XED_ICLASS_PREFETCH_RESERVED<<8)+0, - XED_IFORM_PSADBW_MMXq_MMXq=(XED_ICLASS_PSADBW<<8)+0, - XED_IFORM_PSADBW_XMMdq_MEMdq=(XED_ICLASS_PSADBW<<8)+1, - XED_IFORM_PSADBW_MMXq_MEMq=(XED_ICLASS_PSADBW<<8)+2, - XED_IFORM_PSADBW_XMMdq_XMMdq=(XED_ICLASS_PSADBW<<8)+3, - XED_IFORM_PSHUFB_MMXq_MEMq=(XED_ICLASS_PSHUFB<<8)+0, - XED_IFORM_PSHUFB_XMMdq_XMMdq=(XED_ICLASS_PSHUFB<<8)+1, - XED_IFORM_PSHUFB_XMMdq_MEMdq=(XED_ICLASS_PSHUFB<<8)+2, - XED_IFORM_PSHUFB_MMXq_MMXq=(XED_ICLASS_PSHUFB<<8)+3, - XED_IFORM_PSHUFD_XMMdq_XMMdq_IMM=(XED_ICLASS_PSHUFD<<8)+0, - XED_IFORM_PSHUFD_XMMdq_MEMdq_IMM=(XED_ICLASS_PSHUFD<<8)+1, - XED_IFORM_PSHUFHW_XMMdq_MEMdq_IMM=(XED_ICLASS_PSHUFHW<<8)+0, - XED_IFORM_PSHUFHW_XMMdq_XMMdq_IMM=(XED_ICLASS_PSHUFHW<<8)+1, - XED_IFORM_PSHUFLW_XMMdq_XMMdq_IMM=(XED_ICLASS_PSHUFLW<<8)+0, - XED_IFORM_PSHUFLW_XMMdq_MEMdq_IMM=(XED_ICLASS_PSHUFLW<<8)+1, - XED_IFORM_PSHUFW_MMXq_MMXq_IMM=(XED_ICLASS_PSHUFW<<8)+0, - XED_IFORM_PSHUFW_MMXq_MEMq_IMM=(XED_ICLASS_PSHUFW<<8)+1, - XED_IFORM_PSIGNB_XMMdq_MEMdq=(XED_ICLASS_PSIGNB<<8)+0, - XED_IFORM_PSIGNB_XMMdq_XMMdq=(XED_ICLASS_PSIGNB<<8)+1, - XED_IFORM_PSIGNB_MMXq_MEMq=(XED_ICLASS_PSIGNB<<8)+2, - XED_IFORM_PSIGNB_MMXq_MMXq=(XED_ICLASS_PSIGNB<<8)+3, - XED_IFORM_PSIGND_MMXq_MMXq=(XED_ICLASS_PSIGND<<8)+0, - XED_IFORM_PSIGND_XMMdq_MEMdq=(XED_ICLASS_PSIGND<<8)+1, - XED_IFORM_PSIGND_MMXq_MEMq=(XED_ICLASS_PSIGND<<8)+2, - XED_IFORM_PSIGND_XMMdq_XMMdq=(XED_ICLASS_PSIGND<<8)+3, - XED_IFORM_PSIGNW_MMXq_MEMq=(XED_ICLASS_PSIGNW<<8)+0, - XED_IFORM_PSIGNW_XMMdq_XMMdq=(XED_ICLASS_PSIGNW<<8)+1, - XED_IFORM_PSIGNW_XMMdq_MEMdq=(XED_ICLASS_PSIGNW<<8)+2, - XED_IFORM_PSIGNW_MMXq_MMXq=(XED_ICLASS_PSIGNW<<8)+3, - XED_IFORM_PSLLD_XMMdq_XMMdq=(XED_ICLASS_PSLLD<<8)+0, - XED_IFORM_PSLLD_XMMdq_MEMdq=(XED_ICLASS_PSLLD<<8)+1, - XED_IFORM_PSLLD_XMMdq_IMM=(XED_ICLASS_PSLLD<<8)+2, - XED_IFORM_PSLLD_MMXq_MEMq=(XED_ICLASS_PSLLD<<8)+3, - XED_IFORM_PSLLD_MMXq_MMXq=(XED_ICLASS_PSLLD<<8)+4, - XED_IFORM_PSLLD_MMXq_IMM=(XED_ICLASS_PSLLD<<8)+5, - XED_IFORM_PSLLDQ_XMMdq_IMM=(XED_ICLASS_PSLLDQ<<8)+0, - XED_IFORM_PSLLQ_XMMdq_MEMdq=(XED_ICLASS_PSLLQ<<8)+0, - XED_IFORM_PSLLQ_XMMdq_IMM=(XED_ICLASS_PSLLQ<<8)+1, - XED_IFORM_PSLLQ_XMMdq_XMMdq=(XED_ICLASS_PSLLQ<<8)+2, - XED_IFORM_PSLLQ_MMXq_MEMq=(XED_ICLASS_PSLLQ<<8)+3, - XED_IFORM_PSLLQ_MMXq_IMM=(XED_ICLASS_PSLLQ<<8)+4, - XED_IFORM_PSLLQ_MMXq_MMXq=(XED_ICLASS_PSLLQ<<8)+5, - XED_IFORM_PSLLW_MMXq_MMXq=(XED_ICLASS_PSLLW<<8)+0, - XED_IFORM_PSLLW_MMXq_IMM=(XED_ICLASS_PSLLW<<8)+1, - XED_IFORM_PSLLW_MMXq_MEMq=(XED_ICLASS_PSLLW<<8)+2, - XED_IFORM_PSLLW_XMMdq_XMMdq=(XED_ICLASS_PSLLW<<8)+3, - XED_IFORM_PSLLW_XMMdq_IMM=(XED_ICLASS_PSLLW<<8)+4, - XED_IFORM_PSLLW_XMMdq_MEMdq=(XED_ICLASS_PSLLW<<8)+5, - XED_IFORM_PSRAD_XMMdq_MEMdq=(XED_ICLASS_PSRAD<<8)+0, - XED_IFORM_PSRAD_MMXq_MEMq=(XED_ICLASS_PSRAD<<8)+1, - XED_IFORM_PSRAD_MMXq_IMM=(XED_ICLASS_PSRAD<<8)+2, - XED_IFORM_PSRAD_XMMdq_IMM=(XED_ICLASS_PSRAD<<8)+3, - XED_IFORM_PSRAD_XMMdq_XMMdq=(XED_ICLASS_PSRAD<<8)+4, - XED_IFORM_PSRAD_MMXq_MMXq=(XED_ICLASS_PSRAD<<8)+5, - XED_IFORM_PSRAW_XMMdq_IMM=(XED_ICLASS_PSRAW<<8)+0, - XED_IFORM_PSRAW_MMXq_MEMq=(XED_ICLASS_PSRAW<<8)+1, - XED_IFORM_PSRAW_MMXq_MMXq=(XED_ICLASS_PSRAW<<8)+2, - XED_IFORM_PSRAW_XMMdq_MEMdq=(XED_ICLASS_PSRAW<<8)+3, - XED_IFORM_PSRAW_MMXq_IMM=(XED_ICLASS_PSRAW<<8)+4, - XED_IFORM_PSRAW_XMMdq_XMMdq=(XED_ICLASS_PSRAW<<8)+5, - XED_IFORM_PSRLD_MMXq_MEMq=(XED_ICLASS_PSRLD<<8)+0, - XED_IFORM_PSRLD_MMXq_IMM=(XED_ICLASS_PSRLD<<8)+1, - XED_IFORM_PSRLD_MMXq_MMXq=(XED_ICLASS_PSRLD<<8)+2, - XED_IFORM_PSRLD_XMMdq_XMMdq=(XED_ICLASS_PSRLD<<8)+3, - XED_IFORM_PSRLD_XMMdq_IMM=(XED_ICLASS_PSRLD<<8)+4, - XED_IFORM_PSRLD_XMMdq_MEMdq=(XED_ICLASS_PSRLD<<8)+5, - XED_IFORM_PSRLDQ_XMMdq_IMM=(XED_ICLASS_PSRLDQ<<8)+0, - XED_IFORM_PSRLQ_MMXq_MMXq=(XED_ICLASS_PSRLQ<<8)+0, - XED_IFORM_PSRLQ_XMMdq_IMM=(XED_ICLASS_PSRLQ<<8)+1, - XED_IFORM_PSRLQ_XMMdq_MEMdq=(XED_ICLASS_PSRLQ<<8)+2, - XED_IFORM_PSRLQ_MMXq_IMM=(XED_ICLASS_PSRLQ<<8)+3, - XED_IFORM_PSRLQ_MMXq_MEMq=(XED_ICLASS_PSRLQ<<8)+4, - XED_IFORM_PSRLQ_XMMdq_XMMdq=(XED_ICLASS_PSRLQ<<8)+5, - XED_IFORM_PSRLW_XMMdq_XMMdq=(XED_ICLASS_PSRLW<<8)+0, - XED_IFORM_PSRLW_MMXq_MEMq=(XED_ICLASS_PSRLW<<8)+1, - XED_IFORM_PSRLW_MMXq_MMXq=(XED_ICLASS_PSRLW<<8)+2, - XED_IFORM_PSRLW_XMMdq_MEMdq=(XED_ICLASS_PSRLW<<8)+3, - XED_IFORM_PSRLW_MMXq_IMM=(XED_ICLASS_PSRLW<<8)+4, - XED_IFORM_PSRLW_XMMdq_IMM=(XED_ICLASS_PSRLW<<8)+5, - XED_IFORM_PSUBB_XMMdq_MEMdq=(XED_ICLASS_PSUBB<<8)+0, - XED_IFORM_PSUBB_XMMdq_XMMdq=(XED_ICLASS_PSUBB<<8)+1, - XED_IFORM_PSUBB_MMXq_MEMq=(XED_ICLASS_PSUBB<<8)+2, - XED_IFORM_PSUBB_MMXq_MMXq=(XED_ICLASS_PSUBB<<8)+3, - XED_IFORM_PSUBD_MMXq_MMXq=(XED_ICLASS_PSUBD<<8)+0, - XED_IFORM_PSUBD_XMMdq_MEMdq=(XED_ICLASS_PSUBD<<8)+1, - XED_IFORM_PSUBD_MMXq_MEMq=(XED_ICLASS_PSUBD<<8)+2, - XED_IFORM_PSUBD_XMMdq_XMMdq=(XED_ICLASS_PSUBD<<8)+3, - XED_IFORM_PSUBQ_MMXq_MMXq=(XED_ICLASS_PSUBQ<<8)+0, - XED_IFORM_PSUBQ_XMMdq_XMMdq=(XED_ICLASS_PSUBQ<<8)+1, - XED_IFORM_PSUBQ_MMXq_MEMq=(XED_ICLASS_PSUBQ<<8)+2, - XED_IFORM_PSUBQ_XMMdq_MEMdq=(XED_ICLASS_PSUBQ<<8)+3, - XED_IFORM_PSUBSB_XMMdq_MEMdq=(XED_ICLASS_PSUBSB<<8)+0, - XED_IFORM_PSUBSB_MMXq_MEMq=(XED_ICLASS_PSUBSB<<8)+1, - XED_IFORM_PSUBSB_XMMdq_XMMdq=(XED_ICLASS_PSUBSB<<8)+2, - XED_IFORM_PSUBSB_MMXq_MMXq=(XED_ICLASS_PSUBSB<<8)+3, - XED_IFORM_PSUBSW_XMMdq_MEMdq=(XED_ICLASS_PSUBSW<<8)+0, - XED_IFORM_PSUBSW_MMXq_MMXq=(XED_ICLASS_PSUBSW<<8)+1, - XED_IFORM_PSUBSW_XMMdq_XMMdq=(XED_ICLASS_PSUBSW<<8)+2, - XED_IFORM_PSUBSW_MMXq_MEMq=(XED_ICLASS_PSUBSW<<8)+3, - XED_IFORM_PSUBUSB_MMXq_MMXq=(XED_ICLASS_PSUBUSB<<8)+0, - XED_IFORM_PSUBUSB_MMXq_MEMq=(XED_ICLASS_PSUBUSB<<8)+1, - XED_IFORM_PSUBUSB_XMMdq_XMMdq=(XED_ICLASS_PSUBUSB<<8)+2, - XED_IFORM_PSUBUSB_XMMdq_MEMdq=(XED_ICLASS_PSUBUSB<<8)+3, - XED_IFORM_PSUBUSW_MMXq_MMXq=(XED_ICLASS_PSUBUSW<<8)+0, - XED_IFORM_PSUBUSW_XMMdq_MEMdq=(XED_ICLASS_PSUBUSW<<8)+1, - XED_IFORM_PSUBUSW_XMMdq_XMMdq=(XED_ICLASS_PSUBUSW<<8)+2, - XED_IFORM_PSUBUSW_MMXq_MEMq=(XED_ICLASS_PSUBUSW<<8)+3, - XED_IFORM_PSUBW_MMXq_MEMq=(XED_ICLASS_PSUBW<<8)+0, - XED_IFORM_PSUBW_XMMdq_XMMdq=(XED_ICLASS_PSUBW<<8)+1, - XED_IFORM_PSUBW_XMMdq_MEMdq=(XED_ICLASS_PSUBW<<8)+2, - XED_IFORM_PSUBW_MMXq_MMXq=(XED_ICLASS_PSUBW<<8)+3, - XED_IFORM_PSWAPD_MMXq_MEMq=(XED_ICLASS_PSWAPD<<8)+0, - XED_IFORM_PSWAPD_MMXq_MMXq=(XED_ICLASS_PSWAPD<<8)+1, - XED_IFORM_PTEST_XMMdq_MEMdq=(XED_ICLASS_PTEST<<8)+0, - XED_IFORM_PTEST_XMMdq_XMMdq=(XED_ICLASS_PTEST<<8)+1, - XED_IFORM_PUNPCKHBW_XMMdq_XMMq=(XED_ICLASS_PUNPCKHBW<<8)+0, - XED_IFORM_PUNPCKHBW_MMXq_MMXd=(XED_ICLASS_PUNPCKHBW<<8)+1, - XED_IFORM_PUNPCKHBW_XMMdq_MEMdq=(XED_ICLASS_PUNPCKHBW<<8)+2, - XED_IFORM_PUNPCKHBW_MMXq_MEMq=(XED_ICLASS_PUNPCKHBW<<8)+3, - XED_IFORM_PUNPCKHDQ_XMMdq_XMMq=(XED_ICLASS_PUNPCKHDQ<<8)+0, - XED_IFORM_PUNPCKHDQ_MMXq_MMXd=(XED_ICLASS_PUNPCKHDQ<<8)+1, - XED_IFORM_PUNPCKHDQ_XMMdq_MEMdq=(XED_ICLASS_PUNPCKHDQ<<8)+2, - XED_IFORM_PUNPCKHDQ_MMXq_MEMq=(XED_ICLASS_PUNPCKHDQ<<8)+3, - XED_IFORM_PUNPCKHQDQ_XMMdq_XMMq=(XED_ICLASS_PUNPCKHQDQ<<8)+0, - XED_IFORM_PUNPCKHQDQ_XMMdq_MEMdq=(XED_ICLASS_PUNPCKHQDQ<<8)+1, - XED_IFORM_PUNPCKHWD_XMMdq_XMMq=(XED_ICLASS_PUNPCKHWD<<8)+0, - XED_IFORM_PUNPCKHWD_MMXq_MMXd=(XED_ICLASS_PUNPCKHWD<<8)+1, - XED_IFORM_PUNPCKHWD_XMMdq_MEMdq=(XED_ICLASS_PUNPCKHWD<<8)+2, - XED_IFORM_PUNPCKHWD_MMXq_MEMq=(XED_ICLASS_PUNPCKHWD<<8)+3, - XED_IFORM_PUNPCKLBW_MMXq_MMXd=(XED_ICLASS_PUNPCKLBW<<8)+0, - XED_IFORM_PUNPCKLBW_XMMdq_MEMq=(XED_ICLASS_PUNPCKLBW<<8)+1, - XED_IFORM_PUNPCKLBW_XMMdq_XMMq=(XED_ICLASS_PUNPCKLBW<<8)+2, - XED_IFORM_PUNPCKLBW_MMXq_MEMd=(XED_ICLASS_PUNPCKLBW<<8)+3, - XED_IFORM_PUNPCKLDQ_MMXq_MMXd=(XED_ICLASS_PUNPCKLDQ<<8)+0, - XED_IFORM_PUNPCKLDQ_XMMdq_MEMq=(XED_ICLASS_PUNPCKLDQ<<8)+1, - XED_IFORM_PUNPCKLDQ_XMMdq_XMMq=(XED_ICLASS_PUNPCKLDQ<<8)+2, - XED_IFORM_PUNPCKLDQ_MMXq_MEMd=(XED_ICLASS_PUNPCKLDQ<<8)+3, - XED_IFORM_PUNPCKLQDQ_XMMdq_XMMq=(XED_ICLASS_PUNPCKLQDQ<<8)+0, - XED_IFORM_PUNPCKLQDQ_XMMdq_MEMq=(XED_ICLASS_PUNPCKLQDQ<<8)+1, - XED_IFORM_PUNPCKLWD_MMXq_MMXd=(XED_ICLASS_PUNPCKLWD<<8)+0, - XED_IFORM_PUNPCKLWD_XMMdq_MEMq=(XED_ICLASS_PUNPCKLWD<<8)+1, - XED_IFORM_PUNPCKLWD_XMMdq_XMMq=(XED_ICLASS_PUNPCKLWD<<8)+2, - XED_IFORM_PUNPCKLWD_MMXq_MEMd=(XED_ICLASS_PUNPCKLWD<<8)+3, - XED_IFORM_PUSH_FS=(XED_ICLASS_PUSH<<8)+0, - XED_IFORM_PUSH_SS=(XED_ICLASS_PUSH<<8)+1, - XED_IFORM_PUSH_GPRv=(XED_ICLASS_PUSH<<8)+2, - XED_IFORM_PUSH_GS=(XED_ICLASS_PUSH<<8)+3, - XED_IFORM_PUSH_CS=(XED_ICLASS_PUSH<<8)+4, - XED_IFORM_PUSH_MEMv=(XED_ICLASS_PUSH<<8)+5, - XED_IFORM_PUSH_ES=(XED_ICLASS_PUSH<<8)+6, - XED_IFORM_PUSH_IMM=(XED_ICLASS_PUSH<<8)+7, - XED_IFORM_PUSH_DS=(XED_ICLASS_PUSH<<8)+8, - XED_IFORM_PUSHA=(XED_ICLASS_PUSHA<<8)+0, - XED_IFORM_PUSHAD=(XED_ICLASS_PUSHAD<<8)+0, - XED_IFORM_PUSHF=(XED_ICLASS_PUSHF<<8)+0, - XED_IFORM_PUSHFD=(XED_ICLASS_PUSHFD<<8)+0, - XED_IFORM_PUSHFQ=(XED_ICLASS_PUSHFQ<<8)+0, - XED_IFORM_PXOR_XMMdq_MEMdq=(XED_ICLASS_PXOR<<8)+0, - XED_IFORM_PXOR_MMXq_MMXq=(XED_ICLASS_PXOR<<8)+1, - XED_IFORM_PXOR_MMXq_MEMq=(XED_ICLASS_PXOR<<8)+2, - XED_IFORM_PXOR_XMMdq_XMMdq=(XED_ICLASS_PXOR<<8)+3, - XED_IFORM_RCL_MEMv_CL=(XED_ICLASS_RCL<<8)+0, - XED_IFORM_RCL_MEMb_CL=(XED_ICLASS_RCL<<8)+1, - XED_IFORM_RCL_GPRv_CL=(XED_ICLASS_RCL<<8)+2, - XED_IFORM_RCL_MEMb_IMM=(XED_ICLASS_RCL<<8)+3, - XED_IFORM_RCL_MEMv_ONE=(XED_ICLASS_RCL<<8)+4, - XED_IFORM_RCL_GPR8_ONE=(XED_ICLASS_RCL<<8)+5, - XED_IFORM_RCL_GPR8_IMM=(XED_ICLASS_RCL<<8)+6, - XED_IFORM_RCL_MEMv_IMM=(XED_ICLASS_RCL<<8)+7, - XED_IFORM_RCL_MEMb_ONE=(XED_ICLASS_RCL<<8)+8, - XED_IFORM_RCL_GPRv_ONE=(XED_ICLASS_RCL<<8)+9, - XED_IFORM_RCL_GPRv_IMM=(XED_ICLASS_RCL<<8)+10, - XED_IFORM_RCL_GPR8_CL=(XED_ICLASS_RCL<<8)+11, - XED_IFORM_RCPPS_XMMps_MEMps=(XED_ICLASS_RCPPS<<8)+0, - XED_IFORM_RCPPS_XMMps_XMMps=(XED_ICLASS_RCPPS<<8)+1, - XED_IFORM_RCPSS_XMMss_XMMss=(XED_ICLASS_RCPSS<<8)+0, - XED_IFORM_RCPSS_XMMss_MEMss=(XED_ICLASS_RCPSS<<8)+1, - XED_IFORM_RCR_GPR8_CL=(XED_ICLASS_RCR<<8)+0, - XED_IFORM_RCR_MEMv_ONE=(XED_ICLASS_RCR<<8)+1, - XED_IFORM_RCR_GPR8_IMM=(XED_ICLASS_RCR<<8)+2, - XED_IFORM_RCR_MEMb_ONE=(XED_ICLASS_RCR<<8)+3, - XED_IFORM_RCR_GPRv_ONE=(XED_ICLASS_RCR<<8)+4, - XED_IFORM_RCR_MEMb_IMM=(XED_ICLASS_RCR<<8)+5, - XED_IFORM_RCR_GPR8_ONE=(XED_ICLASS_RCR<<8)+6, - XED_IFORM_RCR_MEMv_IMM=(XED_ICLASS_RCR<<8)+7, - XED_IFORM_RCR_GPRv_IMM=(XED_ICLASS_RCR<<8)+8, - XED_IFORM_RCR_MEMv_CL=(XED_ICLASS_RCR<<8)+9, - XED_IFORM_RCR_GPRv_CL=(XED_ICLASS_RCR<<8)+10, - XED_IFORM_RCR_MEMb_CL=(XED_ICLASS_RCR<<8)+11, - XED_IFORM_RDMSR=(XED_ICLASS_RDMSR<<8)+0, - XED_IFORM_RDPMC=(XED_ICLASS_RDPMC<<8)+0, - XED_IFORM_RDTSC=(XED_ICLASS_RDTSC<<8)+0, - XED_IFORM_RDTSCP=(XED_ICLASS_RDTSCP<<8)+0, - XED_IFORM_RET_FAR_IMM=(XED_ICLASS_RET_FAR<<8)+0, - XED_IFORM_RET_FAR=(XED_ICLASS_RET_FAR<<8)+1, - XED_IFORM_RET_NEAR_IMM=(XED_ICLASS_RET_NEAR<<8)+0, - XED_IFORM_RET_NEAR=(XED_ICLASS_RET_NEAR<<8)+1, - XED_IFORM_ROL_GPRv_IMM=(XED_ICLASS_ROL<<8)+0, - XED_IFORM_ROL_GPR8_ONE=(XED_ICLASS_ROL<<8)+1, - XED_IFORM_ROL_MEMv_CL=(XED_ICLASS_ROL<<8)+2, - XED_IFORM_ROL_MEMb_IMM=(XED_ICLASS_ROL<<8)+3, - XED_IFORM_ROL_MEMv_ONE=(XED_ICLASS_ROL<<8)+4, - XED_IFORM_ROL_MEMb_CL=(XED_ICLASS_ROL<<8)+5, - XED_IFORM_ROL_GPRv_CL=(XED_ICLASS_ROL<<8)+6, - XED_IFORM_ROL_GPR8_CL=(XED_ICLASS_ROL<<8)+7, - XED_IFORM_ROL_GPRv_ONE=(XED_ICLASS_ROL<<8)+8, - XED_IFORM_ROL_MEMv_IMM=(XED_ICLASS_ROL<<8)+9, - XED_IFORM_ROL_MEMb_ONE=(XED_ICLASS_ROL<<8)+10, - XED_IFORM_ROL_GPR8_IMM=(XED_ICLASS_ROL<<8)+11, - XED_IFORM_ROR_MEMb_ONE=(XED_ICLASS_ROR<<8)+0, - XED_IFORM_ROR_MEMv_ONE=(XED_ICLASS_ROR<<8)+1, - XED_IFORM_ROR_GPR8_CL=(XED_ICLASS_ROR<<8)+2, - XED_IFORM_ROR_MEMv_IMM=(XED_ICLASS_ROR<<8)+3, - XED_IFORM_ROR_GPRv_ONE=(XED_ICLASS_ROR<<8)+4, - XED_IFORM_ROR_MEMb_IMM=(XED_ICLASS_ROR<<8)+5, - XED_IFORM_ROR_GPRv_IMM=(XED_ICLASS_ROR<<8)+6, - XED_IFORM_ROR_MEMb_CL=(XED_ICLASS_ROR<<8)+7, - XED_IFORM_ROR_GPR8_ONE=(XED_ICLASS_ROR<<8)+8, - XED_IFORM_ROR_MEMv_CL=(XED_ICLASS_ROR<<8)+9, - XED_IFORM_ROR_GPR8_IMM=(XED_ICLASS_ROR<<8)+10, - XED_IFORM_ROR_GPRv_CL=(XED_ICLASS_ROR<<8)+11, - XED_IFORM_ROUNDPD_XMMpd_XMMpd_IMM=(XED_ICLASS_ROUNDPD<<8)+0, - XED_IFORM_ROUNDPD_XMMpd_MEMpd_IMM=(XED_ICLASS_ROUNDPD<<8)+1, - XED_IFORM_ROUNDPS_XMMps_MEMps_IMM=(XED_ICLASS_ROUNDPS<<8)+0, - XED_IFORM_ROUNDPS_XMMps_XMMps_IMM=(XED_ICLASS_ROUNDPS<<8)+1, - XED_IFORM_ROUNDSD_XMMq_MEMq_IMM=(XED_ICLASS_ROUNDSD<<8)+0, - XED_IFORM_ROUNDSD_XMMq_XMMq_IMM=(XED_ICLASS_ROUNDSD<<8)+1, - XED_IFORM_ROUNDSS_XMMd_MEMd_IMM=(XED_ICLASS_ROUNDSS<<8)+0, - XED_IFORM_ROUNDSS_XMMd_XMMd_IMM=(XED_ICLASS_ROUNDSS<<8)+1, - XED_IFORM_RSM=(XED_ICLASS_RSM<<8)+0, - XED_IFORM_RSQRTPS_XMMps_XMMps=(XED_ICLASS_RSQRTPS<<8)+0, - XED_IFORM_RSQRTPS_XMMps_MEMps=(XED_ICLASS_RSQRTPS<<8)+1, - XED_IFORM_RSQRTSS_XMMss_MEMss=(XED_ICLASS_RSQRTSS<<8)+0, - XED_IFORM_RSQRTSS_XMMss_XMMss=(XED_ICLASS_RSQRTSS<<8)+1, - XED_IFORM_SAHF=(XED_ICLASS_SAHF<<8)+0, - XED_IFORM_SALC=(XED_ICLASS_SALC<<8)+0, - XED_IFORM_SAR_MEMv_CL=(XED_ICLASS_SAR<<8)+0, - XED_IFORM_SAR_GPRv_IMM=(XED_ICLASS_SAR<<8)+1, - XED_IFORM_SAR_GPR8_ONE=(XED_ICLASS_SAR<<8)+2, - XED_IFORM_SAR_GPR8_IMM=(XED_ICLASS_SAR<<8)+3, - XED_IFORM_SAR_MEMv_ONE=(XED_ICLASS_SAR<<8)+4, - XED_IFORM_SAR_MEMb_CL=(XED_ICLASS_SAR<<8)+5, - XED_IFORM_SAR_MEMb_IMM=(XED_ICLASS_SAR<<8)+6, - XED_IFORM_SAR_MEMv_IMM=(XED_ICLASS_SAR<<8)+7, - XED_IFORM_SAR_GPR8_CL=(XED_ICLASS_SAR<<8)+8, - XED_IFORM_SAR_GPRv_CL=(XED_ICLASS_SAR<<8)+9, - XED_IFORM_SAR_GPRv_ONE=(XED_ICLASS_SAR<<8)+10, - XED_IFORM_SAR_MEMb_ONE=(XED_ICLASS_SAR<<8)+11, - XED_IFORM_SBB_AL_IMM=(XED_ICLASS_SBB<<8)+0, - XED_IFORM_SBB_MEMv_GPRv=(XED_ICLASS_SBB<<8)+1, - XED_IFORM_SBB_MEMb_IMM=(XED_ICLASS_SBB<<8)+2, - XED_IFORM_SBB_GPRv_GPRv=(XED_ICLASS_SBB<<8)+3, - XED_IFORM_SBB_OrAX_IMM=(XED_ICLASS_SBB<<8)+4, - XED_IFORM_SBB_GPR8_GPR8=(XED_ICLASS_SBB<<8)+5, - XED_IFORM_SBB_GPR8_IMM=(XED_ICLASS_SBB<<8)+6, - XED_IFORM_SBB_MEMv_IMM=(XED_ICLASS_SBB<<8)+7, - XED_IFORM_SBB_MEMb_GPR8=(XED_ICLASS_SBB<<8)+8, - XED_IFORM_SBB_GPRv_MEMv=(XED_ICLASS_SBB<<8)+9, - XED_IFORM_SBB_GPRv_IMM=(XED_ICLASS_SBB<<8)+10, - XED_IFORM_SBB_GPR8_MEMb=(XED_ICLASS_SBB<<8)+11, - XED_IFORM_SCASB=(XED_ICLASS_SCASB<<8)+0, - XED_IFORM_SCASD=(XED_ICLASS_SCASD<<8)+0, - XED_IFORM_SCASQ=(XED_ICLASS_SCASQ<<8)+0, - XED_IFORM_SCASW=(XED_ICLASS_SCASW<<8)+0, - XED_IFORM_SETB_GPR8=(XED_ICLASS_SETB<<8)+0, - XED_IFORM_SETB_MEMb=(XED_ICLASS_SETB<<8)+1, - XED_IFORM_SETBE_GPR8=(XED_ICLASS_SETBE<<8)+0, - XED_IFORM_SETBE_MEMb=(XED_ICLASS_SETBE<<8)+1, - XED_IFORM_SETL_MEMb=(XED_ICLASS_SETL<<8)+0, - XED_IFORM_SETL_GPR8=(XED_ICLASS_SETL<<8)+1, - XED_IFORM_SETLE_GPR8=(XED_ICLASS_SETLE<<8)+0, - XED_IFORM_SETLE_MEMb=(XED_ICLASS_SETLE<<8)+1, - XED_IFORM_SETNB_GPR8=(XED_ICLASS_SETNB<<8)+0, - XED_IFORM_SETNB_MEMb=(XED_ICLASS_SETNB<<8)+1, - XED_IFORM_SETNBE_MEMb=(XED_ICLASS_SETNBE<<8)+0, - XED_IFORM_SETNBE_GPR8=(XED_ICLASS_SETNBE<<8)+1, - XED_IFORM_SETNL_GPR8=(XED_ICLASS_SETNL<<8)+0, - XED_IFORM_SETNL_MEMb=(XED_ICLASS_SETNL<<8)+1, - XED_IFORM_SETNLE_MEMb=(XED_ICLASS_SETNLE<<8)+0, - XED_IFORM_SETNLE_GPR8=(XED_ICLASS_SETNLE<<8)+1, - XED_IFORM_SETNO_MEMb=(XED_ICLASS_SETNO<<8)+0, - XED_IFORM_SETNO_GPR8=(XED_ICLASS_SETNO<<8)+1, - XED_IFORM_SETNP_MEMb=(XED_ICLASS_SETNP<<8)+0, - XED_IFORM_SETNP_GPR8=(XED_ICLASS_SETNP<<8)+1, - XED_IFORM_SETNS_GPR8=(XED_ICLASS_SETNS<<8)+0, - XED_IFORM_SETNS_MEMb=(XED_ICLASS_SETNS<<8)+1, - XED_IFORM_SETNZ_GPR8=(XED_ICLASS_SETNZ<<8)+0, - XED_IFORM_SETNZ_MEMb=(XED_ICLASS_SETNZ<<8)+1, - XED_IFORM_SETO_MEMb=(XED_ICLASS_SETO<<8)+0, - XED_IFORM_SETO_GPR8=(XED_ICLASS_SETO<<8)+1, - XED_IFORM_SETP_GPR8=(XED_ICLASS_SETP<<8)+0, - XED_IFORM_SETP_MEMb=(XED_ICLASS_SETP<<8)+1, - XED_IFORM_SETS_GPR8=(XED_ICLASS_SETS<<8)+0, - XED_IFORM_SETS_MEMb=(XED_ICLASS_SETS<<8)+1, - XED_IFORM_SETZ_GPR8=(XED_ICLASS_SETZ<<8)+0, - XED_IFORM_SETZ_MEMb=(XED_ICLASS_SETZ<<8)+1, - XED_IFORM_SFENCE=(XED_ICLASS_SFENCE<<8)+0, - XED_IFORM_SGDT_MEMs=(XED_ICLASS_SGDT<<8)+0, - XED_IFORM_SHL_MEMv_ONE=(XED_ICLASS_SHL<<8)+0, - XED_IFORM_SHL_GPRv_CL=(XED_ICLASS_SHL<<8)+1, - XED_IFORM_SHL_MEMb_CL=(XED_ICLASS_SHL<<8)+2, - XED_IFORM_SHL_MEMv_IMM=(XED_ICLASS_SHL<<8)+3, - XED_IFORM_SHL_GPRv_IMM=(XED_ICLASS_SHL<<8)+4, - XED_IFORM_SHL_GPR8_ONE=(XED_ICLASS_SHL<<8)+5, - XED_IFORM_SHL_GPRv_ONE=(XED_ICLASS_SHL<<8)+6, - XED_IFORM_SHL_MEMb_IMM=(XED_ICLASS_SHL<<8)+7, - XED_IFORM_SHL_MEMb_ONE=(XED_ICLASS_SHL<<8)+8, - XED_IFORM_SHL_MEMv_CL=(XED_ICLASS_SHL<<8)+9, - XED_IFORM_SHL_GPR8_IMM=(XED_ICLASS_SHL<<8)+10, - XED_IFORM_SHL_GPR8_CL=(XED_ICLASS_SHL<<8)+11, - XED_IFORM_SHLD_GPRv_GPRv_CL=(XED_ICLASS_SHLD<<8)+0, - XED_IFORM_SHLD_GPRv_GPRv_IMM=(XED_ICLASS_SHLD<<8)+1, - XED_IFORM_SHLD_MEMv_GPRv_IMM=(XED_ICLASS_SHLD<<8)+2, - XED_IFORM_SHLD_MEMv_GPRv_CL=(XED_ICLASS_SHLD<<8)+3, - XED_IFORM_SHR_MEMb_CL=(XED_ICLASS_SHR<<8)+0, - XED_IFORM_SHR_GPR8_CL=(XED_ICLASS_SHR<<8)+1, - XED_IFORM_SHR_GPR8_IMM=(XED_ICLASS_SHR<<8)+2, - XED_IFORM_SHR_GPRv_CL=(XED_ICLASS_SHR<<8)+3, - XED_IFORM_SHR_MEMb_IMM=(XED_ICLASS_SHR<<8)+4, - XED_IFORM_SHR_GPRv_IMM=(XED_ICLASS_SHR<<8)+5, - XED_IFORM_SHR_MEMv_ONE=(XED_ICLASS_SHR<<8)+6, - XED_IFORM_SHR_MEMb_ONE=(XED_ICLASS_SHR<<8)+7, - XED_IFORM_SHR_GPR8_ONE=(XED_ICLASS_SHR<<8)+8, - XED_IFORM_SHR_GPRv_ONE=(XED_ICLASS_SHR<<8)+9, - XED_IFORM_SHR_MEMv_CL=(XED_ICLASS_SHR<<8)+10, - XED_IFORM_SHR_MEMv_IMM=(XED_ICLASS_SHR<<8)+11, - XED_IFORM_SHRD_MEMv_GPRv_CL=(XED_ICLASS_SHRD<<8)+0, - XED_IFORM_SHRD_MEMv_GPRv_IMM=(XED_ICLASS_SHRD<<8)+1, - XED_IFORM_SHRD_GPRv_GPRv_CL=(XED_ICLASS_SHRD<<8)+2, - XED_IFORM_SHRD_GPRv_GPRv_IMM=(XED_ICLASS_SHRD<<8)+3, - XED_IFORM_SHUFPD_XMMpd_MEMpd_IMM=(XED_ICLASS_SHUFPD<<8)+0, - XED_IFORM_SHUFPD_XMMpd_XMMpd_IMM=(XED_ICLASS_SHUFPD<<8)+1, - XED_IFORM_SHUFPS_XMMps_XMMps_IMM=(XED_ICLASS_SHUFPS<<8)+0, - XED_IFORM_SHUFPS_XMMps_MEMps_IMM=(XED_ICLASS_SHUFPS<<8)+1, - XED_IFORM_SIDT_MEMs=(XED_ICLASS_SIDT<<8)+0, - XED_IFORM_SKINIT_EAX=(XED_ICLASS_SKINIT<<8)+0, - XED_IFORM_SLDT_GPRv=(XED_ICLASS_SLDT<<8)+0, - XED_IFORM_SLDT_MEMw=(XED_ICLASS_SLDT<<8)+1, - XED_IFORM_SMSW_GPRv=(XED_ICLASS_SMSW<<8)+0, - XED_IFORM_SMSW_MEMw=(XED_ICLASS_SMSW<<8)+1, - XED_IFORM_SQRTPD_XMMpd_XMMpd=(XED_ICLASS_SQRTPD<<8)+0, - XED_IFORM_SQRTPD_XMMpd_MEMpd=(XED_ICLASS_SQRTPD<<8)+1, - XED_IFORM_SQRTPS_XMMps_MEMps=(XED_ICLASS_SQRTPS<<8)+0, - XED_IFORM_SQRTPS_XMMps_XMMps=(XED_ICLASS_SQRTPS<<8)+1, - XED_IFORM_SQRTSD_XMMsd_MEMsd=(XED_ICLASS_SQRTSD<<8)+0, - XED_IFORM_SQRTSD_XMMsd_XMMsd=(XED_ICLASS_SQRTSD<<8)+1, - XED_IFORM_SQRTSS_XMMss_XMMss=(XED_ICLASS_SQRTSS<<8)+0, - XED_IFORM_SQRTSS_XMMss_MEMss=(XED_ICLASS_SQRTSS<<8)+1, - XED_IFORM_STC=(XED_ICLASS_STC<<8)+0, - XED_IFORM_STD=(XED_ICLASS_STD<<8)+0, - XED_IFORM_STGI=(XED_ICLASS_STGI<<8)+0, - XED_IFORM_STI=(XED_ICLASS_STI<<8)+0, - XED_IFORM_STMXCSR_MEMd=(XED_ICLASS_STMXCSR<<8)+0, - XED_IFORM_STOSB=(XED_ICLASS_STOSB<<8)+0, - XED_IFORM_STOSD=(XED_ICLASS_STOSD<<8)+0, - XED_IFORM_STOSQ=(XED_ICLASS_STOSQ<<8)+0, - XED_IFORM_STOSW=(XED_ICLASS_STOSW<<8)+0, - XED_IFORM_STR_GPRv=(XED_ICLASS_STR<<8)+0, - XED_IFORM_STR_MEMw=(XED_ICLASS_STR<<8)+1, - XED_IFORM_SUB_MEMv_IMM=(XED_ICLASS_SUB<<8)+0, - XED_IFORM_SUB_GPRv_IMM=(XED_ICLASS_SUB<<8)+1, - XED_IFORM_SUB_MEMb_GPR8=(XED_ICLASS_SUB<<8)+2, - XED_IFORM_SUB_MEMb_IMM=(XED_ICLASS_SUB<<8)+3, - XED_IFORM_SUB_OrAX_IMM=(XED_ICLASS_SUB<<8)+4, - XED_IFORM_SUB_GPR8_GPR8=(XED_ICLASS_SUB<<8)+5, - XED_IFORM_SUB_MEMv_GPRv=(XED_ICLASS_SUB<<8)+6, - XED_IFORM_SUB_GPRv_GPRv=(XED_ICLASS_SUB<<8)+7, - XED_IFORM_SUB_GPR8_MEMb=(XED_ICLASS_SUB<<8)+8, - XED_IFORM_SUB_AL_IMM=(XED_ICLASS_SUB<<8)+9, - XED_IFORM_SUB_GPR8_IMM=(XED_ICLASS_SUB<<8)+10, - XED_IFORM_SUB_GPRv_MEMv=(XED_ICLASS_SUB<<8)+11, - XED_IFORM_SUBPD_XMMpd_MEMpd=(XED_ICLASS_SUBPD<<8)+0, - XED_IFORM_SUBPD_XMMpd_XMMpd=(XED_ICLASS_SUBPD<<8)+1, - XED_IFORM_SUBPS_XMMps_XMMps=(XED_ICLASS_SUBPS<<8)+0, - XED_IFORM_SUBPS_XMMps_MEMps=(XED_ICLASS_SUBPS<<8)+1, - XED_IFORM_SUBSD_XMMsd_XMMsd=(XED_ICLASS_SUBSD<<8)+0, - XED_IFORM_SUBSD_XMMsd_MEMsd=(XED_ICLASS_SUBSD<<8)+1, - XED_IFORM_SUBSS_XMMss_MEMss=(XED_ICLASS_SUBSS<<8)+0, - XED_IFORM_SUBSS_XMMss_XMMss=(XED_ICLASS_SUBSS<<8)+1, - XED_IFORM_SWAPGS=(XED_ICLASS_SWAPGS<<8)+0, - XED_IFORM_SYSCALL=(XED_ICLASS_SYSCALL<<8)+0, - XED_IFORM_SYSENTER=(XED_ICLASS_SYSENTER<<8)+0, - XED_IFORM_SYSEXIT=(XED_ICLASS_SYSEXIT<<8)+0, - XED_IFORM_SYSRET=(XED_ICLASS_SYSRET<<8)+0, - XED_IFORM_TEST_OrAX_IMM=(XED_ICLASS_TEST<<8)+0, - XED_IFORM_TEST_MEMv_GPRv=(XED_ICLASS_TEST<<8)+1, - XED_IFORM_TEST_AL_IMM=(XED_ICLASS_TEST<<8)+2, - XED_IFORM_TEST_GPRv_GPRv=(XED_ICLASS_TEST<<8)+3, - XED_IFORM_TEST_MEMb_IMM=(XED_ICLASS_TEST<<8)+4, - XED_IFORM_TEST_GPR8_GPR8=(XED_ICLASS_TEST<<8)+5, - XED_IFORM_TEST_MEMb_GPR8=(XED_ICLASS_TEST<<8)+6, - XED_IFORM_TEST_GPR8_IMM=(XED_ICLASS_TEST<<8)+7, - XED_IFORM_TEST_GPRv_IMM=(XED_ICLASS_TEST<<8)+8, - XED_IFORM_TEST_MEMv_IMM=(XED_ICLASS_TEST<<8)+9, - XED_IFORM_UCOMISD_XMMsd_MEMsd=(XED_ICLASS_UCOMISD<<8)+0, - XED_IFORM_UCOMISD_XMMsd_XMMsd=(XED_ICLASS_UCOMISD<<8)+1, - XED_IFORM_UCOMISS_XMMss_XMMss=(XED_ICLASS_UCOMISS<<8)+0, - XED_IFORM_UCOMISS_XMMss_MEMss=(XED_ICLASS_UCOMISS<<8)+1, - XED_IFORM_UD2=(XED_ICLASS_UD2<<8)+0, - XED_IFORM_UNPCKHPD_XMMpd_MEMdq=(XED_ICLASS_UNPCKHPD<<8)+0, - XED_IFORM_UNPCKHPD_XMMpd_XMMq=(XED_ICLASS_UNPCKHPD<<8)+1, - XED_IFORM_UNPCKHPS_XMMps_XMMdq=(XED_ICLASS_UNPCKHPS<<8)+0, - XED_IFORM_UNPCKHPS_XMMps_MEMdq=(XED_ICLASS_UNPCKHPS<<8)+1, - XED_IFORM_UNPCKLPD_XMMpd_MEMq=(XED_ICLASS_UNPCKLPD<<8)+0, - XED_IFORM_UNPCKLPD_XMMpd_XMMq=(XED_ICLASS_UNPCKLPD<<8)+1, - XED_IFORM_UNPCKLPS_XMMps_XMMq=(XED_ICLASS_UNPCKLPS<<8)+0, - XED_IFORM_UNPCKLPS_XMMps_MEMq=(XED_ICLASS_UNPCKLPS<<8)+1, - XED_IFORM_VERR_GPR16=(XED_ICLASS_VERR<<8)+0, - XED_IFORM_VERR_MEMw=(XED_ICLASS_VERR<<8)+1, - XED_IFORM_VERW_GPR16=(XED_ICLASS_VERW<<8)+0, - XED_IFORM_VERW_MEMw=(XED_ICLASS_VERW<<8)+1, - XED_IFORM_VMCALL=(XED_ICLASS_VMCALL<<8)+0, - XED_IFORM_VMCLEAR_MEMq=(XED_ICLASS_VMCLEAR<<8)+0, - XED_IFORM_VMLAUNCH=(XED_ICLASS_VMLAUNCH<<8)+0, - XED_IFORM_VMLOAD_OrAX=(XED_ICLASS_VMLOAD<<8)+0, - XED_IFORM_VMMCALL=(XED_ICLASS_VMMCALL<<8)+0, - XED_IFORM_VMPTRLD_MEMq=(XED_ICLASS_VMPTRLD<<8)+0, - XED_IFORM_VMPTRST_MEMq=(XED_ICLASS_VMPTRST<<8)+0, - XED_IFORM_VMREAD_MEMq_GPR64=(XED_ICLASS_VMREAD<<8)+0, - XED_IFORM_VMREAD_GPR32_GPR32=(XED_ICLASS_VMREAD<<8)+1, - XED_IFORM_VMREAD_MEMd_GPR32=(XED_ICLASS_VMREAD<<8)+2, - XED_IFORM_VMREAD_GPR64_GPR64=(XED_ICLASS_VMREAD<<8)+3, - XED_IFORM_VMRESUME=(XED_ICLASS_VMRESUME<<8)+0, - XED_IFORM_VMRUN_OrAX=(XED_ICLASS_VMRUN<<8)+0, - XED_IFORM_VMSAVE=(XED_ICLASS_VMSAVE<<8)+0, - XED_IFORM_VMWRITE_GPR64_MEMq=(XED_ICLASS_VMWRITE<<8)+0, - XED_IFORM_VMWRITE_GPR32_GPR32=(XED_ICLASS_VMWRITE<<8)+1, - XED_IFORM_VMWRITE_GPR32_MEMd=(XED_ICLASS_VMWRITE<<8)+2, - XED_IFORM_VMWRITE_GPR64_GPR64=(XED_ICLASS_VMWRITE<<8)+3, - XED_IFORM_VMXOFF=(XED_ICLASS_VMXOFF<<8)+0, - XED_IFORM_VMXON_MEMq=(XED_ICLASS_VMXON<<8)+0, - XED_IFORM_WBINVD=(XED_ICLASS_WBINVD<<8)+0, - XED_IFORM_WRMSR=(XED_ICLASS_WRMSR<<8)+0, - XED_IFORM_XADD_GPRv_GPRv=(XED_ICLASS_XADD<<8)+0, - XED_IFORM_XADD_GPR8_GPR8=(XED_ICLASS_XADD<<8)+1, - XED_IFORM_XADD_MEMv_GPRv=(XED_ICLASS_XADD<<8)+2, - XED_IFORM_XADD_MEMb_GPR8=(XED_ICLASS_XADD<<8)+3, - XED_IFORM_XCHG_GPR8_GPR8=(XED_ICLASS_XCHG<<8)+0, - XED_IFORM_XCHG_MEMv_GPRv=(XED_ICLASS_XCHG<<8)+1, - XED_IFORM_XCHG_GPRv_GPRv=(XED_ICLASS_XCHG<<8)+2, - XED_IFORM_XCHG_MEMb_GPR8=(XED_ICLASS_XCHG<<8)+3, - XED_IFORM_XCHG_GPRv_OrAX=(XED_ICLASS_XCHG<<8)+4, - XED_IFORM_XGETBV=(XED_ICLASS_XGETBV<<8)+0, - XED_IFORM_XLAT_FINAL_DSEG=(XED_ICLASS_XLAT<<8)+0, - XED_IFORM_XLAT=(XED_ICLASS_XLAT<<8)+1, - XED_IFORM_XOR_GPRv_IMM=(XED_ICLASS_XOR<<8)+0, - XED_IFORM_XOR_MEMv_GPRv=(XED_ICLASS_XOR<<8)+1, - XED_IFORM_XOR_MEMb_IMM=(XED_ICLASS_XOR<<8)+2, - XED_IFORM_XOR_GPR8_MEMb=(XED_ICLASS_XOR<<8)+3, - XED_IFORM_XOR_MEMb_GPR8=(XED_ICLASS_XOR<<8)+4, - XED_IFORM_XOR_GPRv_MEMv=(XED_ICLASS_XOR<<8)+5, - XED_IFORM_XOR_AL_IMM=(XED_ICLASS_XOR<<8)+6, - XED_IFORM_XOR_GPRv_GPRv=(XED_ICLASS_XOR<<8)+7, - XED_IFORM_XOR_MEMv_IMM=(XED_ICLASS_XOR<<8)+8, - XED_IFORM_XOR_OrAX_IMM=(XED_ICLASS_XOR<<8)+9, - XED_IFORM_XOR_GPR8_GPR8=(XED_ICLASS_XOR<<8)+10, - XED_IFORM_XOR_GPR8_IMM=(XED_ICLASS_XOR<<8)+11, - XED_IFORM_XORPD_XMMpd_XMMpd=(XED_ICLASS_XORPD<<8)+0, - XED_IFORM_XORPD_XMMpd_MEMpd=(XED_ICLASS_XORPD<<8)+1, - XED_IFORM_XORPS_XMMps_MEMps=(XED_ICLASS_XORPS<<8)+0, - XED_IFORM_XORPS_XMMps_XMMps=(XED_ICLASS_XORPS<<8)+1, - XED_IFORM_XRSTOR_MEMmxsave=(XED_ICLASS_XRSTOR<<8)+0, - XED_IFORM_XSAVE_MEMmxsave=(XED_ICLASS_XSAVE<<8)+0, - XED_IFORM_XSETBV=(XED_ICLASS_XSETBV<<8)+0, - XED_IFORM_LAST -} xed_iform_enum_t; - -XED_DLL_EXPORT xed_iform_enum_t -str2xed_iform_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_iform_enum_t2str(const xed_iform_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-immdis.h b/misc/decoder_test/XED2/include/xed/xed-immdis.h deleted file mode 100644 index 530ba2b..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-immdis.h +++ /dev/null @@ -1,217 +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-immdis.h -/// @author Mark Charney - - - -#ifndef _XED_IMMDIS_H_ -# define _XED_IMMDIS_H_ - -#include "xed-types.h" -#include "xed-common-defs.h" -#include "xed-util.h" - - -//////////////////////////////////////////////////////////////////////////// -// DEFINES -//////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////// -// TYPES -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -// PROTOTYPES -//////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////// -// GLOBALS -//////////////////////////////////////////////////////////////////////////// - -#define XED_MAX_IMMDIS_BYTES 8 - -// A union for speed of zeroing -union xed_immdis_values_t -{ - xed_uint8_t x[XED_MAX_IMMDIS_BYTES];// STORED LITTLE ENDIAN. BYTE 0 is LSB - xed_uint64_t q; -}; - -/// Stores immediates and displacements for the encoder & decoder. -typedef struct XED_DLL_EXPORT xed_immdis_s { - union xed_immdis_values_t value; - unsigned int currently_used_space :4; // current number of assigned bytes - unsigned int max_allocated_space :4; // max allocation, 4 or 8 - xed_bool_t present : 1; - xed_bool_t immediate_is_unsigned : 1; -} xed_immdis_t; - -XED_DLL_EXPORT void xed_immdis__check(xed_immdis_t* q, int p) ; - - -XED_DLL_EXPORT void xed_immdis_init(xed_immdis_t* p, int max_bytes); - -/// @name Sizes and lengths -//@{ -/// return the number of bytes added -XED_DLL_EXPORT unsigned int xed_immdis_get_bytes(const xed_immdis_t* p) ; - -//@} - -/// @name Accessors for the value of the immediate or displacement -//@{ -XED_DLL_EXPORT xed_int64_t -xed_immdis_get_signed64(const xed_immdis_t* p); - -XED_DLL_EXPORT xed_uint64_t -xed_immdis_get_unsigned64(const xed_immdis_t* p); - -XED_DLL_EXPORT xed_bool_t -xed_immdis_is_zero(const xed_immdis_t* p) ; - -XED_DLL_EXPORT xed_bool_t -xed_immdis_is_one(const xed_immdis_t* p) ; - -/// Access the i'th byte of the immediate -XED_DLL_EXPORT xed_uint8_t xed_immdis_get_byte(const xed_immdis_t* p, unsigned int i) ; -//@} - -/// @name Presence / absence of an immediate or displacement -//@{ -XED_DLL_EXPORT void xed_immdis_set_present(xed_immdis_t* p) ; - -/// True if the object has had a value or individual bytes added to it. -XED_DLL_EXPORT xed_bool_t xed_immdis_is_present(const xed_immdis_t* p) ; -//@} - - -/// @name Initialization and setup -//@{ -XED_DLL_EXPORT void xed_immdis_set_max_len(xed_immdis_t* p, unsigned int mx) ; -XED_DLL_EXPORT void -xed_immdis_zero(xed_immdis_t* p); - -XED_DLL_EXPORT unsigned int xed_immdis_get_max_length(const xed_immdis_t* p) ; - -//@} - -/// @name Signed vs Unsigned -//@{ -/// Return true if signed. -XED_DLL_EXPORT xed_bool_t -xed_immdis_is_unsigned(const xed_immdis_t* p) ; -/// Return true if signed. -XED_DLL_EXPORT xed_bool_t -xed_immdis_is_signed(const xed_immdis_t* p) ; - -/// Set the immediate to be signed; For decoder use only. -XED_DLL_EXPORT void -xed_immdis_set_signed(xed_immdis_t* p) ; -/// Set the immediate to be unsigned; For decoder use only. -XED_DLL_EXPORT void -xed_immdis_set_unsigned( xed_immdis_t* p) ; -//@} - - -/// @name Adding / setting values -//@{ -XED_DLL_EXPORT void -xed_immdis_add_byte(xed_immdis_t* p, xed_uint8_t b); - - -XED_DLL_EXPORT void -xed_immdis_add_byte_array(xed_immdis_t* p, int nb, xed_uint8_t* ba); - -/// Add 1, 2, 4 or 8 bytes depending on the value x and the mask of -/// legal_widths. The default value of legal_widths = 0x5 only stops -/// adding bytes only on 1 or 4 byte quantities - depending on which -/// bytes of x are zero -- as is used for most memory addressing. You -/// can set legal_widths to 0x7 for branches (1, 2 or 4 byte branch -/// displacements). Or if you have an 8B displacement, you can set -/// legal_widths to 0x8. NOTE: add_shortest_width will add up to -/// XED_MAX_IMMDIS_BYTES if the x value requires it. NOTE: 16b memory -/// addressing can have 16b immediates. -XED_DLL_EXPORT void -xed_immdis_add_shortest_width_signed(xed_immdis_t* p, xed_int64_t x, xed_uint8_t legal_widths); - -/// See add_shortest_width_signed() -XED_DLL_EXPORT void -xed_immdis_add_shortest_width_unsigned(xed_immdis_t* p, xed_uint64_t x, xed_uint8_t legal_widths ); - - -/// add an 8 bit value to the byte array -XED_DLL_EXPORT void -xed_immdis_add8(xed_immdis_t* p, xed_int8_t d); - -/// add a 16 bit value to the byte array -XED_DLL_EXPORT void -xed_immdis_add16(xed_immdis_t* p, xed_int16_t d); - -/// add a 32 bit value to the byte array -XED_DLL_EXPORT void -xed_immdis_add32(xed_immdis_t* p, xed_int32_t d); - -/// add a 64 bit value to the byte array. -XED_DLL_EXPORT void -xed_immdis_add64(xed_immdis_t* p, xed_int64_t d); - -//@} - - -/// @name printing / debugging -//@{ - -/// just print the raw bytes in hex with a leading 0x -XED_DLL_EXPORT int xed_immdis_print(const xed_immdis_t* p, char* buf, int buflen); - -/// Print the value as a signed or unsigned number depending on the -/// value of the immediate_is_unsigned variable. -XED_DLL_EXPORT int -xed_immdis_print_signed_or_unsigned(const xed_immdis_t* p, char* buf, int buflen); - -/// print the signed value, appropriate width, with a leading 0x -XED_DLL_EXPORT int -xed_immdis_print_value_signed(const xed_immdis_t* p, char* buf, int buflen); - -/// print the unsigned value, appropriate width, with a leading 0x -XED_DLL_EXPORT int -xed_immdis_print_value_unsigned(const xed_immdis_t* p, char* buf, int buflen); - -int xed_immdis__print_ptr(const xed_immdis_t* p, char* buf, int buflen); -#endif - -//@} - - -//////////////////////////////////////////////////////////////////////////// -//Local Variables: -//pref: "../../xed-immdis.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed/xed-immed.h b/misc/decoder_test/XED2/include/xed/xed-immed.h deleted file mode 100644 index c79f697..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-immed.h +++ /dev/null @@ -1,64 +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-immed.h -/// @author Mark Charney - -#ifndef _XED_IMMED_H_ -# define _XED_IMMED_H_ - -#include "xed-types.h" -#include "xed-common-defs.h" -#include "xed-util.h" - -XED_DLL_EXPORT xed_int64_t xed_immed_from_bytes(xed_int8_t* bytes, xed_uint_t n); - /* - Convert an array of bytes representing a Little Endian byte ordering - of a number (11 22 33 44 55.. 88), in to a a 64b SIGNED number. That gets - stored in memory in little endian format of course. - - Input 11 22 33 44 55 66 77 88, 8 - Ouptut 0x8877665544332211 (stored in memory as (lsb) 11 22 33 44 55 66 77 88 (msb)) - - Input f0, 1 - Output 0xffff_ffff_ffff_fff0 (stored in memory as f0 ff ff ff ff ff ff ff) - - Input f0 00, 2 - Output 0x0000_0000_0000_00F0 (stored in memory a f0 00 00 00 00 00 00 00) - - Input 03, 1 - Output 0x0000_0000_0000_0030 (stored in memory a 30 00 00 00 00 00 00 00) - */ - - -#endif -//Local Variables: -//pref: "../../xed-immed.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed/xed-init-pointer-names.h b/misc/decoder_test/XED2/include/xed/xed-init-pointer-names.h deleted file mode 100644 index 892db4b..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-init-pointer-names.h +++ /dev/null @@ -1,41 +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-init-pointer-names.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_INIT_POINTER_NAMES_H_) -# define _XED_INIT_POINTER_NAMES_H_ -#include "xed-internal-header.h" -#define XED_MAX_POINTER_NAMES 17 -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-init.h b/misc/decoder_test/XED2/include/xed/xed-init.h deleted file mode 100644 index 34c9b7c..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-init.h +++ /dev/null @@ -1,57 +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-init.h -/// @author Mark Charney - - - - -#if !defined(_XED_INIT_H_) -# define _XED_INIT_H_ - - -/// @ingroup INIT -/// This is the call to initialize the XED encode and decode tables. It must be called -/// once before using XED. -void XED_DLL_EXPORT xed_tables_init(); -/// @ingroup INIT -/// This is the call to initialize the XED decode tables. It must be called -/// once before using XED. -void XED_DLL_EXPORT xed_decode_init(); -/// @ingroup INIT -/// This is the call to initialize the XED encode tables. It must be called -/// once before using XED's encoder. -void XED_DLL_EXPORT xed_encode_init(); - - -//////////////////////////////////////////////////////////////////////////// - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-inst-printer.h b/misc/decoder_test/XED2/include/xed/xed-inst-printer.h deleted file mode 100644 index b0795a1..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-inst-printer.h +++ /dev/null @@ -1,172 +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-inst-printer.h -/// @author Mark Charney - - -#ifndef _XED_INST_PRINTER_H_ -# define _XED_INST_PRINTER_H_ -#include "xed-types.h" -#include "xed-decoded-inst.h" -#include "xed-syntax-enum.h" - -/// @name Legacy printers without context parameter -//@{ -/// Disassemble the decoded instruction using the ATT SYSV syntax. The -/// output buffer must be at least 16 bytes long. Returns true if -/// disassembly proceeded without errors. -/// @param xedd a #xed_decoded_inst_t for a decoded instruction -/// @param out_buffer a buffer to write the disassembly in to. -/// @param buffer_len maximum length of the disassembly buffer -/// @param runtime_instruction_address the address of the instruction being disassembled -/// @return Returns 0 if the disassembly fails, 1 otherwise. -///@ingroup PRINT -XED_DLL_EXPORT xed_bool_t -xed_format_att(xed_decoded_inst_t* xedd, - char* out_buffer, - xed_uint32_t buffer_len, - xed_uint64_t runtime_instruction_address); - -/// Disassemble the decoded instruction using the Intel syntax. The -/// output buffer must be at least 16 bytes long. Returns true if -/// disassembly proceeded without errors. -/// @param xedd a #xed_decoded_inst_t for a decoded instruction -/// @param out_buffer a buffer to write the disassembly in to. -/// @param buffer_len maximum length of the disassembly buffer -/// @param runtime_instruction_address the address of the instruction being disassembled -/// @return Returns 0 if the disassembly fails, 1 otherwise. -///@ingroup PRINT -XED_DLL_EXPORT xed_bool_t -xed_format_intel(xed_decoded_inst_t* xedd, - char* out_buffer, - xed_uint32_t buffer_len, - xed_uint64_t runtime_instruction_address); - -/// Disassemble the decoded instruction using the XED syntax providing all -/// operand resources (implicit, explicit, suppressed). The output buffer -/// must be at least 25 bytes long. Returns true if disassembly proceeded -/// without errors. -/// @param xedd a #xed_decoded_inst_t for a decoded instruction -/// @param out_buffer a buffer to write the disassembly in to. -/// @param buffer_len maximum length of the disassembly buffer -/// @param runtime_instruction_address the address of the instruction being disassembled -/// @return Returns 0 if the disassembly fails, 1 otherwise. -///@ingroup PRINT -XED_DLL_EXPORT xed_bool_t -xed_format_xed(xed_decoded_inst_t* xedd, - char* out_buffer, - xed_uint32_t buffer_len, - xed_uint64_t runtime_instruction_address); - - -/// Disassemble the decoded instruction using the specified syntax. -/// The output buffer must be at least 25 bytes long. Returns true if -/// disassembly proceeded without errors. -/// @param syntax a #xed_syntax_enum_t the specifies the disassembly format -/// @param xedd a #xed_decoded_inst_t for a decoded instruction -/// @param out_buffer a buffer to write the disassembly in to. -/// @param buffer_len maximum length of the disassembly buffer -/// @param runtime_instruction_address the address of the instruction being disassembled -/// @return Returns 0 if the disassembly fails, 1 otherwise. -///@ingroup PRINT -XED_DLL_EXPORT xed_bool_t -xed_format(xed_syntax_enum_t syntax, - xed_decoded_inst_t* xedd, - char* out_buffer, - int buffer_len, - xed_uint64_t runtime_instruction_address); - - -//@} -////////////////////////////////////////////////////////////////////////// - - -/// @name Printers with context parameter -//@{ -/// Disassemble the decoded instruction using the ATT SYSV syntax. The -/// output buffer must be at least 16 bytes long. Returns true if -/// disassembly proceeded without errors. -/// @param xedd a #xed_decoded_inst_t for a decoded instruction -/// @param out_buffer a buffer to write the disassembly in to. -/// @param buffer_len maximum length of the disassembly buffer -/// @param runtime_instruction_address the address of the instruction being disassembled -/// @param context A void* used only for the call back routine for symbolic disassembly if one is registered. -/// @return Returns 0 if the disassembly fails, 1 otherwise. -///@ingroup PRINT -XED_DLL_EXPORT xed_bool_t -xed_format_att_context(xed_decoded_inst_t* xedd, - char* out_buffer, - xed_uint32_t buffer_len, - xed_uint64_t runtime_instruction_address, - void* context); - -/// Disassemble the decoded instruction using the Intel syntax. The -/// output buffer must be at least 16 bytes long. Returns true if -/// disassembly proceeded without errors. -/// @param xedd a #xed_decoded_inst_t for a decoded instruction -/// @param out_buffer a buffer to write the disassembly in to. -/// @param buffer_len maximum length of the disassembly buffer -/// @param runtime_instruction_address the address of the instruction being disassembled -/// @param context A void* used only for the call back routine for symbolic disassembly if one is registered. -/// @return Returns 0 if the disassembly fails, 1 otherwise. -///@ingroup PRINT -XED_DLL_EXPORT xed_bool_t -xed_format_intel_context(xed_decoded_inst_t* xedd, - char* out_buffer, - xed_uint32_t buffer_len, - xed_uint64_t runtime_instruction_address, - void* context); - - -/// Disassemble the decoded instruction using the specified syntax. -/// The output buffer must be at least 25 bytes long. Returns true if -/// disassembly proceeded without errors. -/// @param syntax a #xed_syntax_enum_t the specifies the disassembly format -/// @param xedd a #xed_decoded_inst_t for a decoded instruction -/// @param out_buffer a buffer to write the disassembly in to. -/// @param buffer_len maximum length of the disassembly buffer -/// @param runtime_instruction_address the address of the instruction being disassembled -/// @param context A void* used only for the call back routine for symbolic disassembly if one is registered. -/// @return Returns 0 if the disassembly fails, 1 otherwise. -///@ingroup PRINT -XED_DLL_EXPORT xed_bool_t -xed_format_context(xed_syntax_enum_t syntax, - xed_decoded_inst_t* xedd, - char* out_buffer, - int buffer_len, - xed_uint64_t runtime_instruction_address, - void* context); -//@} -#endif -//////////////////////////////////////////////////////////////////////////// -//Local Variables: -//pref: "../../xed-inst-printer.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed/xed-inst.h b/misc/decoder_test/XED2/include/xed/xed-inst.h deleted file mode 100644 index cb68b14..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-inst.h +++ /dev/null @@ -1,323 +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-inst.h -/// @author Mark Charney - -#if !defined(_XED_INST_H_) -# define _XED_INST_H_ - -#include "xed-util.h" -#include "xed-portability.h" -#include "xed-category-enum.h" -#include "xed-extension-enum.h" -#include "xed-iclass-enum.h" -#include "xed-operand-enum.h" -#include "xed-operand-visibility-enum.h" -#include "xed-operand-action-enum.h" -#include "xed-operand-type-enum.h" -#include "xed-nonterminal-enum.h" // a generated file -#include "xed-operand-width-enum.h" // a generated file -#include "xed-reg-enum.h" // a generated file -#include "xed-attribute-enum.h" // a generated file -#include "xed-iform-enum.h" // a generated file -#include "xed-operand-bitvec.h" // a generated file - - -struct xed_decoded_inst_s; //fwd-decl - -typedef void (*xed_operand_extractor_fn_t)(struct xed_decoded_inst_s* xds); -//typedef xed_bool_t (*xed_instruction_fixed_bit_confirmer_fn_t)(struct xed_decoded_inst_s* xds); - - -/// @ingroup DEC -/// Constant information about an individual generic operand, like an operand template, describing the operand properties. See @ref DEC for API information. -typedef struct XED_DLL_EXPORT xed_operand_s -{ - xed_operand_enum_t _name; - - xed_operand_visibility_enum_t _operand_visibility; - - xed_operand_action_enum_t _rw; - xed_operand_width_enum_t _oc2; - - xed_operand_type_enum_t _type; - union { - xed_uint32_t _imm; - xed_nonterminal_enum_t _nt; // for nt_lookup_fn's - xed_reg_enum_t _reg; - } _u; -} xed_operand_t; - -/// @name xed_inst_t Template Operands Access -//@{ -/// @ingroup DEC -static XED_INLINE xed_operand_enum_t xed_operand_name(const xed_operand_t* p) { - return p->_name; -} - - -/// @ingroup DEC -static XED_INLINE xed_operand_visibility_enum_t xed_operand_operand_visibility( const xed_operand_t* p) { - return p->_operand_visibility; -} - - -/// @ingroup DEC -/// @return The #xed_operand_type_enum_t of the operand template. -/// This is probably not what you want. -static XED_INLINE xed_operand_type_enum_t xed_operand_type(const xed_operand_t* p) { - return p->_type; -} - - -/// @ingroup DEC -static XED_INLINE xed_operand_width_enum_t xed_operand_width(const xed_operand_t* p) { - return p->_oc2; -} - -/// @ingroup DEC -static XED_INLINE -xed_nonterminal_enum_t xed_operand_nonterminal_name(const xed_operand_t* p) { - return p->_u._nt; -} - -/// @ingroup DEC -/// Careful with this one -- use #xed_decoded_inst_get_reg()! This one is -/// probably not what you think it is. It is only used for hard-coded -/// registers implicit in the instruction encoding. Most likely you want to -/// get the #xed_operand_enum_t and then look up the instruction using -/// #xed_decoded_inst_get_reg(). The hard-coded registers are also available -/// that way. -/// @param p an operand template, #xed_operand_t. -/// @return the hard-wired (implicit or suppressed) registers, type #xed_reg_enum_t -static XED_INLINE xed_reg_enum_t xed_operand_reg(const xed_operand_t* p) { - return p->_u._reg; -} - - - -/// @ingroup DEC -/// Careful with this one; See #xed_operand_is_register(). -/// @param p an operand template, #xed_operand_t. -/// @return 1 if the operand template represents are register-type -/// operand. -/// -/// Related functions: -/// Use #xed_decoded_inst_get_reg() to get the decoded name of /// the -/// register, #xed_reg_enum_t. Use #xed_operand_is_register() to test -/// #xed_operand_enum_t names. -static XED_INLINE xed_uint_t xed_operand_template_is_register(const xed_operand_t* p) { - return p->_type == XED_OPERAND_TYPE_NT_LOOKUP_FN || p->_type == XED_OPERAND_TYPE_REG; -} - -/// @ingroup DEC -/// @param p an operand template, #xed_operand_t. -/// These operands represent branch displacements, memory displacements and various immediates -static XED_INLINE xed_uint32_t xed_operand_imm(const xed_operand_t* p) { - return p->_u._imm; -} - -/// @ingroup DEC -/// Print the operand p into the buffer buf, of length buflen. -/// @param p an operand template, #xed_operand_t. -/// @param buf buffer that gets filled in -/// @param buflen maximum buffer length -XED_DLL_EXPORT void xed_operand_print(const xed_operand_t* p, char* buf, int buflen); -//@} -/// @name xed_inst_t Template Operand Enum Name Classification -//@{ -/// @ingroup DEC -/// Tests the enum for inclusion in XED_OPERAND_REG0 through XED_OPERAND_REG15. -/// @param name the operand name, type #xed_operand_enum_t -/// @return 1 if the operand name is REG0...REG15, 0 otherwise. -/// -///Note there are other registers for memory addressing; See -/// #xed_operand_is_memory_addressing_register . -static XED_INLINE xed_uint_t xed_operand_is_register(xed_operand_enum_t name) { - return name >= XED_OPERAND_REG0 && name <= XED_OPERAND_REG15; -} -/// @ingroup DEC -/// Tests the enum for inclusion in XED_OPERAND_{BASE0,BASE1,INDEX,SEG0,SEG1} -/// @param name the operand name, type #xed_operand_enum_t -/// @return 1 if the operand name is for a memory addressing register operand, 0 -/// otherwise. See also #xed_operand_is_register . -static XED_INLINE xed_uint_t xed_operand_is_memory_addressing_register(xed_operand_enum_t name) { - return ( name == XED_OPERAND_BASE0 || - name == XED_OPERAND_INDEX || - name == XED_OPERAND_SEG0 || - name == XED_OPERAND_BASE1 || - name == XED_OPERAND_SEG1 ); -} - -//@} - -/// @name xed_inst_t Template Operand Read/Written -//@{ -/// @ingroup DEC -/// Returns the raw R/W action. There are many cases for conditional reads -/// and writes. -static XED_INLINE xed_operand_action_enum_t xed_operand_rw(const xed_operand_t* p) { - return p->_rw; -} - -/// @ingroup DEC -/// If the operand is read, including conditional reads -XED_DLL_EXPORT xed_uint_t xed_operand_read(const xed_operand_t* p); -/// @ingroup DEC -/// If the operand is read-only, including conditional reads -XED_DLL_EXPORT xed_uint_t xed_operand_read_only(const xed_operand_t* p); -/// @ingroup DEC -/// If the operand is written, including conditional writes -XED_DLL_EXPORT xed_uint_t xed_operand_written(const xed_operand_t* p); -/// @ingroup DEC -/// If the operand is written-only, including conditional writes -XED_DLL_EXPORT xed_uint_t xed_operand_written_only(const xed_operand_t* p); -/// @ingroup DEC -/// If the operand is read-and-written, conditional reads and conditional writes -XED_DLL_EXPORT xed_uint_t xed_operand_read_and_written(const xed_operand_t* p); -/// @ingroup DEC -/// If the operand has a conditional read (may also write) -XED_DLL_EXPORT xed_uint_t xed_operand_conditional_read(const xed_operand_t* p); -/// @ingroup DEC -/// If the operand has a conditional write (may also read) -XED_DLL_EXPORT xed_uint_t xed_operand_conditional_write(const xed_operand_t* p); -//@} - - -#include "xed-gen-table-defs.h" -XED_DLL_GLOBAL extern const xed_operand_t xed_operand[XED_MAX_OPERAND_TABLE_NODES]; - -/// @ingroup DEC -/// constant information about a decoded instruction form, including the pointer to the constant operand properties #xed_operand_t for this instruction form. -typedef struct XED_DLL_EXPORT xed_inst_s { - xed_iclass_enum_t _iclass; - xed_category_enum_t _category; - xed_extension_enum_t _extension; - xed_operand_bitvec_t _operand_bitvec; - // The instruction form for this iclass. The iform is a zero-based dense sequence for each iclass. - xed_uint8_t _iform; - xed_iform_enum_t _iform_enum; - - //xed_instruction_fixed_bit_confirmer_fn_t _confirmer; - - // number of operands in the operands array - xed_uint8_t _noperands; - - // index into the xed_operand[] array of xed_operand_t structures - xed_uint32_t _operand_base; - // bit vector of values from the xed_attribute_enum_t - xed_uint32_t _attributes; - - // rflags info -- index in to the 2 tables of flags information. - // If _flag_complex is true, then the data are in the - // xed_flags_complex_table[]. Otherwise, the data are in the - // xed_flags_simple_table[]. - xed_uint16_t _flag_info_index; - xed_bool_t _flag_complex; - - xed_uint8_t _cpl; // the nominal CPL for the instruction. -} xed_inst_t; - -/// @name xed_inst_t Template Instruction Information -//@{ -/// @ingroup DEC -/// Return the current privilege level (CPL). -XED_DLL_EXPORT unsigned int xed_inst_cpl(const xed_inst_t* p) ; - - -//These next few are not doxygen commented because I want people to use the higher -//level interface in xed-decoded-inst.h. -static XED_INLINE xed_iclass_enum_t xed_inst_iclass(const xed_inst_t* p) { - return p->_iclass; -} - -static XED_INLINE xed_category_enum_t xed_inst_category(const xed_inst_t* p) { - return p->_category; -} - -static XED_INLINE xed_extension_enum_t xed_inst_extension(const xed_inst_t* p) { - return p->_extension; -} - -static XED_INLINE xed_uint_t xed_inst_iform(const xed_inst_t* p) { - return p->_iform; -} -static XED_INLINE xed_iform_enum_t xed_inst_iform_enum(const xed_inst_t* p) { - return p->_iform_enum; -} - - -///@ingroup DEC -/// Number of instruction operands -static XED_INLINE unsigned int xed_inst_noperands(const xed_inst_t* p) { - return p->_noperands; -} - -///@ingroup DEC -/// Obtain a pointer to an individual operand -static XED_INLINE const xed_operand_t* xed_inst_operand(const xed_inst_t* p, unsigned int i) { - xed_assert(i < p->_noperands); - return &(xed_operand[p->_operand_base + i]); -} - - - -XED_DLL_EXPORT xed_uint32_t xed_inst_flag_info_index(const xed_inst_t* p); - -//@} - -/// @name xed_inst_t Attribute access -//@{ -/// @ingroup DEC -/// Scan for the attribute attr and return 1 if it is found, 0 otherwise. -static XED_INLINE xed_uint32_t xed_inst_get_attribute(const xed_inst_t* p, xed_attribute_enum_t attr) { - if (p->_attributes & attr) - return 1; - return 0; -} - -/// @ingroup DEC -/// Return the attributes bit vector -static XED_INLINE xed_uint32_t xed_inst_get_attributes(const xed_inst_t* p) { - return p->_attributes; -} -/// @ingroup DEC -/// Return the maximum number of defined attributes, independent of any instruction. -XED_DLL_EXPORT unsigned int xed_attribute_max(); - -/// @ingroup DEC -/// Return the i'th global attribute in a linear sequence, independent of -/// any instruction. This is used for scanning and printing all attributes. -XED_DLL_EXPORT xed_attribute_enum_t xed_attribute(unsigned int i); - -//@} - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-interface.h b/misc/decoder_test/XED2/include/xed/xed-interface.h deleted file mode 100644 index f288cd2..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-interface.h +++ /dev/null @@ -1,72 +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-interface.h -/// @author Mark Charney - - - - -#if !defined(_XED_INTERFACE_H_) -# define _XED_INTERFACE_H_ - -//////////////////////////////////////////////////////////////////////////// -#include "xed-common-hdrs.h" -#include "xed-types.h" -//#include "xed-error-enum.h" -#include "xed-operand-enum.h" - -#include "xed-init.h" -#include "xed-decode.h" - -#include "xed-state.h" // dstate, legacy -#include "xed-syntax-enum.h" -#include "xed-reg-class-enum.h" // generated -#include "xed-reg-class.h" -#include "xed-inst-printer.h" - -#include "xed-encode.h" -#include "xed-util.h" -//#include "xed-decode-cache.h" -#include "xed-inst-printer.h" -#include "xed-operand-action.h" - -#include "xed-version.h" -#include "xed-decoded-inst.h" -#include "xed-inst.h" -#include "xed-iclass-enum.h" // generated -#include "xed-category-enum.h" // generated -#include "xed-extension-enum.h" // generated -#include "xed-attribute-enum.h" // generated - -#include "xed-disas.h" // callbacks for disassembly -//////////////////////////////////////////////////////////////////////////// - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-machine-mode-enum.h b/misc/decoder_test/XED2/include/xed/xed-machine-mode-enum.h deleted file mode 100644 index 623de7e..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-machine-mode-enum.h +++ /dev/null @@ -1,55 +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-machine-mode-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_MACHINE_MODE_ENUM_H_) -# define _XED_MACHINE_MODE_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_MACHINE_MODE_INVALID, - XED_MACHINE_MODE_LONG_64, ///< 64b operating mode - XED_MACHINE_MODE_LONG_COMPAT_32, ///< 32b operating mode - XED_MACHINE_MODE_LONG_COMPAT_16, ///< 16b operating mode - XED_MACHINE_MODE_LEGACY_32, ///< 32b operating mode - XED_MACHINE_MODE_LEGACY_16, ///< 16b operating mode - XED_MACHINE_MODE_LAST -} xed_machine_mode_enum_t; - -XED_DLL_EXPORT xed_machine_mode_enum_t -str2xed_machine_mode_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_machine_mode_enum_t2str(const xed_machine_mode_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-nonterminal-enum.h b/misc/decoder_test/XED2/include/xed/xed-nonterminal-enum.h deleted file mode 100644 index 8296a34..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-nonterminal-enum.h +++ /dev/null @@ -1,163 +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-nonterminal-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_NONTERMINAL_ENUM_H_) -# define _XED_NONTERMINAL_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_NONTERMINAL_INVALID, - XED_NONTERMINAL_AR10, - XED_NONTERMINAL_AR11, - XED_NONTERMINAL_AR12, - XED_NONTERMINAL_AR13, - XED_NONTERMINAL_AR14, - XED_NONTERMINAL_AR15, - XED_NONTERMINAL_AR8, - XED_NONTERMINAL_AR9, - XED_NONTERMINAL_ARAX, - XED_NONTERMINAL_ARBP, - XED_NONTERMINAL_ARBX, - XED_NONTERMINAL_ARCX, - XED_NONTERMINAL_ARDI, - XED_NONTERMINAL_ARDX, - XED_NONTERMINAL_ARSI, - XED_NONTERMINAL_ARSP, - XED_NONTERMINAL_ASZ_NONTERM, - XED_NONTERMINAL_BRANCH_HINT, - XED_NONTERMINAL_BRDISP8, - XED_NONTERMINAL_BRDISPZ, - XED_NONTERMINAL_CR_B, - XED_NONTERMINAL_CR_R, - XED_NONTERMINAL_DF64, - XED_NONTERMINAL_DR_B, - XED_NONTERMINAL_DR_R, - XED_NONTERMINAL_FINAL_DSEG, - XED_NONTERMINAL_FINAL_DSEG1, - XED_NONTERMINAL_FINAL_DSEG1_MODE64, - XED_NONTERMINAL_FINAL_DSEG1_NOT64, - XED_NONTERMINAL_FINAL_DSEG_MODE64, - XED_NONTERMINAL_FINAL_DSEG_NOT64, - XED_NONTERMINAL_FINAL_ESEG, - XED_NONTERMINAL_FINAL_SSEG, - XED_NONTERMINAL_FINAL_SSEG1, - XED_NONTERMINAL_FINAL_SSEG_MODE64, - XED_NONTERMINAL_FINAL_SSEG_NOT64, - XED_NONTERMINAL_GPR16_B, - XED_NONTERMINAL_GPR16_R, - XED_NONTERMINAL_GPR32_B, - XED_NONTERMINAL_GPR32_R, - XED_NONTERMINAL_GPR32_X, - XED_NONTERMINAL_GPR64_B, - XED_NONTERMINAL_GPR64_R, - XED_NONTERMINAL_GPR64_X, - XED_NONTERMINAL_GPR8_B, - XED_NONTERMINAL_GPR8_R, - XED_NONTERMINAL_GPRV_B, - XED_NONTERMINAL_GPRV_R, - XED_NONTERMINAL_GPRY_B, - XED_NONTERMINAL_GPRY_R, - XED_NONTERMINAL_GPRZ_B, - XED_NONTERMINAL_GPRZ_R, - XED_NONTERMINAL_GPR_ERROR_B, - XED_NONTERMINAL_GPR_ERROR_R, - XED_NONTERMINAL_INSTRUCTIONS, - XED_NONTERMINAL_ISA, - XED_NONTERMINAL_LOCK_VALIDATE, - XED_NONTERMINAL_MEMDISP16, - XED_NONTERMINAL_MEMDISP32, - XED_NONTERMINAL_MEMDISP8, - XED_NONTERMINAL_MEMDISPV, - XED_NONTERMINAL_MMX_B, - XED_NONTERMINAL_MMX_R, - XED_NONTERMINAL_MODRM, - XED_NONTERMINAL_MODRM16, - XED_NONTERMINAL_MODRM32, - XED_NONTERMINAL_MODRM64ALT32, - XED_NONTERMINAL_OEAX, - XED_NONTERMINAL_OEBP, - XED_NONTERMINAL_OEBX, - XED_NONTERMINAL_OECX, - XED_NONTERMINAL_OEDI, - XED_NONTERMINAL_OEDX, - XED_NONTERMINAL_OESI, - XED_NONTERMINAL_OESP, - XED_NONTERMINAL_OR10, - XED_NONTERMINAL_OR11, - XED_NONTERMINAL_OR12, - XED_NONTERMINAL_OR13, - XED_NONTERMINAL_OR14, - XED_NONTERMINAL_OR15, - XED_NONTERMINAL_OR8, - XED_NONTERMINAL_OR9, - XED_NONTERMINAL_ORAX, - XED_NONTERMINAL_ORBP, - XED_NONTERMINAL_ORBX, - XED_NONTERMINAL_ORCX, - XED_NONTERMINAL_ORDI, - XED_NONTERMINAL_ORDX, - XED_NONTERMINAL_ORSI, - XED_NONTERMINAL_ORSP, - XED_NONTERMINAL_OSZ_NONTERM, - XED_NONTERMINAL_PREFIXES, - XED_NONTERMINAL_REFINING66, - XED_NONTERMINAL_REMOVE_SEGMENT, - XED_NONTERMINAL_REP_VALIDATE, - XED_NONTERMINAL_RFLAGS, - XED_NONTERMINAL_RIP, - XED_NONTERMINAL_SEG, - XED_NONTERMINAL_SIB, - XED_NONTERMINAL_SIB_BASE0, - XED_NONTERMINAL_SIMM8, - XED_NONTERMINAL_SIMMZ, - XED_NONTERMINAL_TMP_B, - XED_NONTERMINAL_TMP_R, - XED_NONTERMINAL_UIMM16, - XED_NONTERMINAL_UIMM32, - XED_NONTERMINAL_UIMM8, - XED_NONTERMINAL_UIMM8_1, - XED_NONTERMINAL_UIMMV, - XED_NONTERMINAL_X87, - XED_NONTERMINAL_XMM_B, - XED_NONTERMINAL_XMM_R, - XED_NONTERMINAL_LAST -} xed_nonterminal_enum_t; - -XED_DLL_EXPORT xed_nonterminal_enum_t -str2xed_nonterminal_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_nonterminal_enum_t2str(const xed_nonterminal_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-operand-action-enum.h b/misc/decoder_test/XED2/include/xed/xed-operand-action-enum.h deleted file mode 100644 index 679e52e..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-operand-action-enum.h +++ /dev/null @@ -1,57 +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-operand-action-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_OPERAND_ACTION_ENUM_H_) -# define _XED_OPERAND_ACTION_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_OPERAND_ACTION_INVALID, - XED_OPERAND_ACTION_RW, ///< Read and written (must write) - XED_OPERAND_ACTION_R, ///< Read-only - XED_OPERAND_ACTION_W, ///< Write-only (must write) - XED_OPERAND_ACTION_RCW, ///< Read and conditionlly written (may write) - XED_OPERAND_ACTION_CW, ///< Conditionlly written (may write) - XED_OPERAND_ACTION_CRW, ///< Conditionlly read, always written (must write) - XED_OPERAND_ACTION_CR, ///< Conditional read - XED_OPERAND_ACTION_LAST -} xed_operand_action_enum_t; - -XED_DLL_EXPORT xed_operand_action_enum_t -str2xed_operand_action_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_operand_action_enum_t2str(const xed_operand_action_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-operand-action.h b/misc/decoder_test/XED2/include/xed/xed-operand-action.h deleted file mode 100644 index 45de0c5..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-operand-action.h +++ /dev/null @@ -1,52 +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-operand-action.h -/// @author Mark Charney - -#if !defined(_XED_OPERAND_ACTION_H_) -# define _XED_OPERAND_ACTION_H_ - -#include "xed-types.h" -#include "xed-operand-action-enum.h" - -XED_DLL_EXPORT xed_uint_t xed_operand_action_read(const xed_operand_action_enum_t rw); -XED_DLL_EXPORT xed_uint_t xed_operand_action_read_only(const xed_operand_action_enum_t rw); -XED_DLL_EXPORT xed_uint_t xed_operand_action_written(const xed_operand_action_enum_t rw); -XED_DLL_EXPORT xed_uint_t xed_operand_action_written_only(const xed_operand_action_enum_t rw); -XED_DLL_EXPORT xed_uint_t xed_operand_action_read_and_written(const xed_operand_action_enum_t rw); -XED_DLL_EXPORT xed_uint_t xed_operand_action_conditional_read(const xed_operand_action_enum_t rw); -XED_DLL_EXPORT xed_uint_t xed_operand_action_conditional_write(const xed_operand_action_enum_t rw); - -#endif - -//Local Variables: -//pref: "../../xed-operand-action.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed/xed-operand-bitvec.h b/misc/decoder_test/XED2/include/xed/xed-operand-bitvec.h deleted file mode 100644 index b7bb96e..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-operand-bitvec.h +++ /dev/null @@ -1,127 +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-operand-bitvec.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_OPERAND_BITVEC_H_) -# define _XED_OPERAND_BITVEC_H_ -#include "xed-types.h" -typedef union { - xed_uint32_t i[4]; - struct { - xed_uint32_t x_AGEN : 1; /* 00:00 */ - xed_uint32_t x_AMODE : 1; /* 00:01 */ - xed_uint32_t x_ASZ : 1; /* 00:02 */ - xed_uint32_t x_BASE0 : 1; /* 00:03 */ - xed_uint32_t x_BASE1 : 1; /* 00:04 */ - xed_uint32_t x_BRDISP_WIDTH : 1; /* 00:05 */ - xed_uint32_t x_BRDISP0 : 1; /* 00:06 */ - xed_uint32_t x_BRDISP1 : 1; /* 00:07 */ - xed_uint32_t x_DEFAULT_SEG : 1; /* 00:08 */ - xed_uint32_t x_DF64 : 1; /* 00:09 */ - xed_uint32_t x_DISP_WIDTH : 1; /* 00:10 */ - xed_uint32_t x_DISP0 : 1; /* 00:11 */ - xed_uint32_t x_DISP1 : 1; /* 00:12 */ - xed_uint32_t x_DISP2 : 1; /* 00:13 */ - xed_uint32_t x_DISP3 : 1; /* 00:14 */ - xed_uint32_t x_EASZ : 1; /* 00:15 */ - xed_uint32_t x_ENCODER_PREFERRED : 1; /* 00:16 */ - xed_uint32_t x_EOSZ : 1; /* 00:17 */ - xed_uint32_t x_ERROR : 1; /* 00:18 */ - xed_uint32_t x_HINT_TAKEN : 1; /* 00:19 */ - xed_uint32_t x_HINT_NOT_TAKEN : 1; /* 00:20 */ - xed_uint32_t x_ICLASS : 1; /* 00:21 */ - xed_uint32_t x_IMM_WIDTH : 1; /* 00:22 */ - xed_uint32_t x_IMM0 : 1; /* 00:23 */ - xed_uint32_t x_IMM0SIGNED : 1; /* 00:24 */ - xed_uint32_t x_IMM1 : 1; /* 00:25 */ - xed_uint32_t x_INDEX : 1; /* 00:26 */ - xed_uint32_t x_LOCK : 1; /* 00:27 */ - xed_uint32_t x_LOCKABLE : 1; /* 00:28 */ - xed_uint32_t x_MEM_WIDTH : 1; /* 00:29 */ - xed_uint32_t x_MEM0 : 1; /* 00:30 */ - xed_uint32_t x_MEM1 : 1; /* 00:31 */ - xed_uint32_t x_MOD : 1; /* 01:00 */ - xed_uint32_t x_MODE : 1; /* 01:01 */ - xed_uint32_t x_MODRM : 1; /* 01:02 */ - xed_uint32_t x_NOREX : 1; /* 01:03 */ - xed_uint32_t x_OSZ : 1; /* 01:04 */ - xed_uint32_t x_OUTREG : 1; /* 01:05 */ - xed_uint32_t x_PTR : 1; /* 01:06 */ - xed_uint32_t x_REFINING : 1; /* 01:07 */ - xed_uint32_t x_REG : 1; /* 01:08 */ - xed_uint32_t x_REG0 : 1; /* 01:09 */ - xed_uint32_t x_REG1 : 1; /* 01:10 */ - xed_uint32_t x_REG2 : 1; /* 01:11 */ - xed_uint32_t x_REG3 : 1; /* 01:12 */ - xed_uint32_t x_REG4 : 1; /* 01:13 */ - xed_uint32_t x_REG5 : 1; /* 01:14 */ - xed_uint32_t x_REG6 : 1; /* 01:15 */ - xed_uint32_t x_REG7 : 1; /* 01:16 */ - xed_uint32_t x_REG8 : 1; /* 01:17 */ - xed_uint32_t x_REG9 : 1; /* 01:18 */ - xed_uint32_t x_REG10 : 1; /* 01:19 */ - xed_uint32_t x_REG11 : 1; /* 01:20 */ - xed_uint32_t x_REG12 : 1; /* 01:21 */ - xed_uint32_t x_REG13 : 1; /* 01:22 */ - xed_uint32_t x_REG14 : 1; /* 01:23 */ - xed_uint32_t x_REG15 : 1; /* 01:24 */ - xed_uint32_t x_RELBR : 1; /* 01:25 */ - xed_uint32_t x_REP : 1; /* 01:26 */ - xed_uint32_t x_REP_ABLE : 1; /* 01:27 */ - xed_uint32_t x_REX : 1; /* 01:28 */ - xed_uint32_t x_REXB : 1; /* 01:29 */ - xed_uint32_t x_REXR : 1; /* 01:30 */ - xed_uint32_t x_REXW : 1; /* 01:31 */ - xed_uint32_t x_REXX : 1; /* 02:00 */ - xed_uint32_t x_RM : 1; /* 02:01 */ - xed_uint32_t x_SCALE : 1; /* 02:02 */ - xed_uint32_t x_SEG_OVD : 1; /* 02:03 */ - xed_uint32_t x_SEG0 : 1; /* 02:04 */ - xed_uint32_t x_SEG1 : 1; /* 02:05 */ - xed_uint32_t x_SIB : 1; /* 02:06 */ - xed_uint32_t x_SIBBASE : 1; /* 02:07 */ - xed_uint32_t x_SIBINDEX : 1; /* 02:08 */ - xed_uint32_t x_SIBSCALE : 1; /* 02:09 */ - xed_uint32_t x_SMODE : 1; /* 02:10 */ - xed_uint32_t x_UIMM00 : 1; /* 02:11 */ - xed_uint32_t x_UIMM1 : 1; /* 02:12 */ - xed_uint32_t x_UIMM01 : 1; /* 02:13 */ - xed_uint32_t x_UIMM02 : 1; /* 02:14 */ - xed_uint32_t x_UIMM03 : 1; /* 02:15 */ - xed_uint32_t x_USING_DEFAULT_SEGMENT0 : 1; /* 02:16 */ - xed_uint32_t x_USING_DEFAULT_SEGMENT1 : 1; /* 02:17 */ - } s; -} xed_operand_bitvec_t; -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-operand-ctype-enum.h b/misc/decoder_test/XED2/include/xed/xed-operand-ctype-enum.h deleted file mode 100644 index 3df032f..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-operand-ctype-enum.h +++ /dev/null @@ -1,57 +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-operand-ctype-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_OPERAND_CTYPE_ENUM_H_) -# define _XED_OPERAND_CTYPE_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_OPERAND_CTYPE_INVALID, - XED_OPERAND_CTYPE_XED_BITS_T, - XED_OPERAND_CTYPE_XED_ERROR_ENUM_T, - XED_OPERAND_CTYPE_XED_ICLASS_ENUM_T, - XED_OPERAND_CTYPE_XED_INT16_T, - XED_OPERAND_CTYPE_XED_REG_ENUM_T, - XED_OPERAND_CTYPE_XED_UINT16_T, - XED_OPERAND_CTYPE_XED_UINT8_T, - XED_OPERAND_CTYPE_LAST -} xed_operand_ctype_enum_t; - -XED_DLL_EXPORT xed_operand_ctype_enum_t -str2xed_operand_ctype_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_operand_ctype_enum_t2str(const xed_operand_ctype_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-operand-ctype-map.h b/misc/decoder_test/XED2/include/xed/xed-operand-ctype-map.h deleted file mode 100644 index c497795..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-operand-ctype-map.h +++ /dev/null @@ -1,42 +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-operand-ctype-map.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_OPERAND_CTYPE_MAP_H_) -# define _XED_OPERAND_CTYPE_MAP_H_ -#include "xed-internal-header.h" -xed_operand_ctype_enum_t xed_operand_get_ctype(xed_operand_enum_t opname); -unsigned int xed_operand_get_width(xed_operand_enum_t opname); -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-operand-enum.h b/misc/decoder_test/XED2/include/xed/xed-operand-enum.h deleted file mode 100644 index a85421e..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-operand-enum.h +++ /dev/null @@ -1,132 +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-operand-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_OPERAND_ENUM_H_) -# define _XED_OPERAND_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_OPERAND_INVALID, - XED_OPERAND_AGEN, - XED_OPERAND_AMODE, - XED_OPERAND_ASZ, - XED_OPERAND_BASE0, - XED_OPERAND_BASE1, - XED_OPERAND_BRDISP_WIDTH, - XED_OPERAND_BRDISP0, - XED_OPERAND_BRDISP1, - XED_OPERAND_DEFAULT_SEG, - XED_OPERAND_DF64, - XED_OPERAND_DISP_WIDTH, - XED_OPERAND_DISP0, - XED_OPERAND_DISP1, - XED_OPERAND_DISP2, - XED_OPERAND_DISP3, - XED_OPERAND_EASZ, - XED_OPERAND_ENCODER_PREFERRED, - XED_OPERAND_EOSZ, - XED_OPERAND_ERROR, - XED_OPERAND_HINT_TAKEN, - XED_OPERAND_HINT_NOT_TAKEN, - XED_OPERAND_ICLASS, - XED_OPERAND_IMM_WIDTH, - XED_OPERAND_IMM0, - XED_OPERAND_IMM0SIGNED, - XED_OPERAND_IMM1, - XED_OPERAND_INDEX, - XED_OPERAND_LOCK, - XED_OPERAND_LOCKABLE, - XED_OPERAND_MEM_WIDTH, - XED_OPERAND_MEM0, - XED_OPERAND_MEM1, - XED_OPERAND_MOD, - XED_OPERAND_MODE, - XED_OPERAND_MODRM, - XED_OPERAND_NOREX, - XED_OPERAND_OSZ, - XED_OPERAND_OUTREG, - XED_OPERAND_PTR, - XED_OPERAND_REFINING, - XED_OPERAND_REG, - XED_OPERAND_REG0, - XED_OPERAND_REG1, - XED_OPERAND_REG2, - XED_OPERAND_REG3, - XED_OPERAND_REG4, - XED_OPERAND_REG5, - XED_OPERAND_REG6, - XED_OPERAND_REG7, - XED_OPERAND_REG8, - XED_OPERAND_REG9, - XED_OPERAND_REG10, - XED_OPERAND_REG11, - XED_OPERAND_REG12, - XED_OPERAND_REG13, - XED_OPERAND_REG14, - XED_OPERAND_REG15, - XED_OPERAND_RELBR, - XED_OPERAND_REP, - XED_OPERAND_REP_ABLE, - XED_OPERAND_REX, - XED_OPERAND_REXB, - XED_OPERAND_REXR, - XED_OPERAND_REXW, - XED_OPERAND_REXX, - XED_OPERAND_RM, - XED_OPERAND_SCALE, - XED_OPERAND_SEG_OVD, - XED_OPERAND_SEG0, - XED_OPERAND_SEG1, - XED_OPERAND_SIB, - XED_OPERAND_SIBBASE, - XED_OPERAND_SIBINDEX, - XED_OPERAND_SIBSCALE, - XED_OPERAND_SMODE, - XED_OPERAND_UIMM00, - XED_OPERAND_UIMM1, - XED_OPERAND_UIMM01, - XED_OPERAND_UIMM02, - XED_OPERAND_UIMM03, - XED_OPERAND_USING_DEFAULT_SEGMENT0, - XED_OPERAND_USING_DEFAULT_SEGMENT1, - XED_OPERAND_LAST -} xed_operand_enum_t; - -XED_DLL_EXPORT xed_operand_enum_t -str2xed_operand_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_operand_enum_t2str(const xed_operand_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-operand-storage.h b/misc/decoder_test/XED2/include/xed/xed-operand-storage.h deleted file mode 100644 index 084698f..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-operand-storage.h +++ /dev/null @@ -1,49 +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-operand-storage.h -/// @author Mark Charney - - - -#ifndef _XED_OPERAND_STORAGE_H_ -# define _XED_OPERAND_STORAGE_H_ - -#include "xed-common-hdrs.h" -#include "xed-types.h" -#include "xed-portability.h" - -typedef xed_uint16_t xed_operand_values_t; - -//////////////////////////////////////////////////////////////////////////// -#endif -//Local Variables: -//pref: "../../xed-operand-storage.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed/xed-operand-type-enum.h b/misc/decoder_test/XED2/include/xed/xed-operand-type-enum.h deleted file mode 100644 index 8d28c9c..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-operand-type-enum.h +++ /dev/null @@ -1,55 +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-operand-type-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_OPERAND_TYPE_ENUM_H_) -# define _XED_OPERAND_TYPE_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_OPERAND_TYPE_INVALID, - XED_OPERAND_TYPE_ERROR, - XED_OPERAND_TYPE_IMM, - XED_OPERAND_TYPE_IMM_CONST, - XED_OPERAND_TYPE_NT_LOOKUP_FN, - XED_OPERAND_TYPE_REG, - XED_OPERAND_TYPE_LAST -} xed_operand_type_enum_t; - -XED_DLL_EXPORT xed_operand_type_enum_t -str2xed_operand_type_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_operand_type_enum_t2str(const xed_operand_type_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-operand-values-interface.h b/misc/decoder_test/XED2/include/xed/xed-operand-values-interface.h deleted file mode 100644 index 5063843..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-operand-values-interface.h +++ /dev/null @@ -1,431 +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-operand-values-interface.h -/// @author Mark Charney - -#if !defined(_XED_OPERAND_VALUES_INTERFACE_H_) -# define _XED_OPERAND_VALUES_INTERFACE_H_ - -#include "xed-common-hdrs.h" -#include "xed-common-defs.h" -#include "xed-portability.h" -#include "xed-util.h" -#include "xed-types.h" -#include "xed-state.h" // a generated file -#include "xed-operand-enum.h" // a generated file -#include "xed-operand-storage.h" -#include "xed-reg-enum.h" // generated -#include "xed-iclass-enum.h" // generated -/// @name Initialization -//@{ -/// @ingroup OPERANDS -/// Initializes operand structure -XED_DLL_EXPORT void xed_operand_values_init(xed_operand_values_t* p); - -/// @ingroup OPERANDS -/// Initializes operand structure and sets state values -XED_DLL_EXPORT void xed_operand_values_init_set_mode(xed_operand_values_t* p, - const xed_state_t* dstate); -/// @ingroup OPERANDS -/// Initializes dst operand structure but preserves the existing -/// MODE/SMODE/AMODE values from the src operand structure. -XED_DLL_EXPORT void xed_operand_values_init_keep_mode( xed_operand_values_t* dst, - const xed_operand_values_t* src ); -//@} - -// Returns the raw operand fields. Do not use this. -XED_DLL_EXPORT xed_uint32_t -xed_operand_values_get_operand_decider(const xed_operand_values_t* p, - xed_operand_enum_t operand_decider_index) ; - - -/////////////////////////////////////////////////////////// -/// @name String output -//@{ -/// @ingroup OPERANDS -/// Dump all the information about the operands to buf. -XED_DLL_EXPORT void xed_operand_values_dump(const xed_operand_values_t* ov, char* buf, int buflen); -/// @ingroup OPERANDS -/// More tersely dump all the information about the operands to buf. -XED_DLL_EXPORT void xed_operand_values_print_short(const xed_operand_values_t* ov, char* buf, int buflen); -//@} - -/// @name REP/REPNE Prefixes -//@{ -/// @ingroup OPERANDS -/// True if the instruction has a real REP prefix. This returns false if -/// there is no F2/F3 prefix or the F2/F3 prefix is used to refine the -/// opcode as in some SSE operations. -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_real_rep(const xed_operand_values_t* p); -/// @ingroup OPERANDS -/// True if the instruction as a real F3 REP prefix. -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_rep_prefix(const xed_operand_values_t* p); -/// @ingroup OPERANDS -/// True if the instruction as a real F2 REP prefix. -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_repne_prefix(const xed_operand_values_t* p); -//@} - -/// @ingroup OPERANDS -/// Returns true if the memory operation has atomic read-modify-write -/// semantics. An XCHG accessing memory is atomic with or without a -/// LOCK prefix. -XED_DLL_EXPORT xed_bool_t -xed_operand_values_get_atomic(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -/// Returns true if the memory operatoin has a valid lock prefix. -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_lock_prefix(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -/// Indicates if the default segment is being used. -/// @param[in] p the pointer to the #xed_operand_values_t structure. -/// @param[in] i 0 or 1, indicating which memory operation. -/// @return true if the memory operation is using the default segment for the associated addressing mode base register. -XED_DLL_EXPORT xed_bool_t -xed_operand_values_using_default_segment(const xed_operand_values_t* p, unsigned int i); - - - -/// @ingroup OPERANDS -/// Returns The effective operand width in bits: 16/32/64. Note this is not -/// the same as the width of the operand! For 8 bit operations, the -/// effective operand width is the machine mode's default width. -XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_effective_operand_width(const xed_operand_values_t* p); -/// @ingroup OPERANDS -/// Returns The effective address width in bits: 16/32/64. -XED_DLL_EXPORT xed_uint32_t xed_operand_values_get_effective_address_width(const xed_operand_values_t* p); - - -/// @ingroup OPERANDS -/// True if there is a memory displacement -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_memory_displacement(const xed_operand_values_t* p); -/// @ingroup OPERANDS -/// True if there is a branch displacement -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_branch_displacement(const xed_operand_values_t* p); -/// @ingroup OPERANDS -/// True if there is a memory or branch displacement -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_displacement(const xed_operand_values_t* p); - - -/// @ingroup OPERANDS -/// Deprecated. Compatibility function for XED0. See has_memory_displacement(). -XED_DLL_EXPORT xed_bool_t -xed_operand_values_get_displacement_for_memop(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -/// Return true if there is an immediate operand -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_immediate(const xed_operand_values_t* p); - - -/// @ingroup OPERANDS -/// ALIAS for has_displacement(). -/// Deprecated. See has_memory_displacement() and -/// has_branch_displacement(). -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_disp(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_address_size_prefix(const xed_operand_values_t* p); -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_operand_size_prefix(const xed_operand_values_t* p); - -#if 0 -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_refining_66_prefix(const xed_operand_values_t* p); -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_refining_f2_prefix(const xed_operand_values_t* p); -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_refining_f3_prefix(const xed_operand_values_t* p); -#endif - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_segment_prefix(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -/// Return the segment prefix, if any, as a #xed_reg_enum_t value. -XED_DLL_EXPORT xed_reg_enum_t -xed_operand_values_segment_prefix(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_bool_t -xed_operand_values_is_prefetch(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_bool_t xed_operand_values_get_long_mode(const xed_operand_values_t* p); - -/// @name Memory Addressing -//@{ -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_bool_t -xed_operand_values_accesses_memory(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT unsigned int -xed_operand_values_number_of_memory_operands(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT unsigned int -xed_operand_values_get_memory_operand_length(const xed_operand_values_t* p, - unsigned int memop_idx); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_reg_enum_t -xed_operand_values_get_base_reg(const xed_operand_values_t* p,unsigned int memop_idx); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_reg_enum_t -xed_operand_values_get_index_reg(const xed_operand_values_t* p,unsigned int memop_idx); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_reg_enum_t -xed_operand_values_get_seg_reg(const xed_operand_values_t* p,unsigned int memop_idx); - -/// @ingroup OPERANDS -XED_DLL_EXPORT unsigned int -xed_operand_values_get_scale(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -/// Returns true if the instruction access memory but without using a MODRM -/// byte limiting its addressing modes. -XED_DLL_EXPORT xed_bool_t -xed_operand_values_memop_without_modrm(const xed_operand_values_t* p); -/// @ingroup OPERANDS -/// Returns true if the instruction has a MODRM byte. -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_modrm_byte(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -/// Returns true if the instruction has a SIB byte. -XED_DLL_EXPORT xed_bool_t -xed_operand_values_has_sib_byte(const xed_operand_values_t* p); -//@} - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_bool_t -xed_operand_values_branch_not_taken_hint(const xed_operand_values_t* p); -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_bool_t -xed_operand_values_branch_taken_hint(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_bool_t -xed_operand_values_is_nop(const xed_operand_values_t* p); - - -/// @name Immediates -//@{ -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_int64_t -xed_operand_values_get_immediate_int64(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_uint64_t -xed_operand_values_get_immediate_uint64(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -/// Return true if the first immediate (IMM0) is signed -XED_DLL_EXPORT xed_uint_t xed_operand_values_get_immediate_is_signed(const xed_operand_values_t* p); - - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_uint8_t -xed_operand_values_get_immediate_byte(const xed_operand_values_t* p,unsigned int i); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_uint8_t -xed_operand_values_get_second_immediate(const xed_operand_values_t* p); -//@} - -/// @name Memory Displacements -//@{ -/// @ingroup OPERANDS -/// Return the memory displacement width in BYTES -XED_DLL_EXPORT xed_uint32_t -xed_operand_values_get_memory_displacement_length(const xed_operand_values_t* p); -/// @ingroup OPERANDS -/// Return the memory displacement width in BITS -XED_DLL_EXPORT xed_uint32_t -xed_operand_values_get_memory_displacement_length_bits(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_int64_t -xed_operand_values_get_memory_displacement_int64(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_uint8_t -xed_operand_values_get_memory_displacement_byte(const xed_operand_values_t* p,unsigned int i); -//@} - -/// @name Branch Displacements -//@{ -/// @ingroup OPERANDS -/// Return the branch displacement width in bytes -XED_DLL_EXPORT xed_uint32_t -xed_operand_values_get_branch_displacement_length(const xed_operand_values_t* p); -/// @ingroup OPERANDS -/// Return the branch displacement width in bits -XED_DLL_EXPORT xed_uint32_t -xed_operand_values_get_branch_displacement_length_bits(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_int32_t -xed_operand_values_get_branch_displacement_int32(const xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_uint8_t -xed_operand_values_get_branch_displacement_byte(const xed_operand_values_t* p,unsigned int i); -//@} - - -/// @ingroup OPERANDS -XED_DLL_EXPORT xed_iclass_enum_t -xed_operand_values_get_iclass(const xed_operand_values_t* p); - -//////////////////////////////////////////////////// -// ENCODE API -//////////////////////////////////////////////////// -/// @name Encoding -//@{ -/// @ingroup OPERANDS -XED_DLL_EXPORT void xed_operand_values_zero_immediate(xed_operand_values_t* p); -/// @ingroup OPERANDS -XED_DLL_EXPORT void xed_operand_values_zero_branch_displacement(xed_operand_values_t* p); -/// @ingroup OPERANDS -XED_DLL_EXPORT void xed_operand_values_zero_memory_displacement(xed_operand_values_t* p); - -/// @ingroup OPERANDS -XED_DLL_EXPORT void xed_operand_values_set_lock(xed_operand_values_t* p); -/// @ingroup OPERANDS -XED_DLL_EXPORT void xed_operand_values_zero_segment_override(xed_operand_values_t* p); - - -/// @ingroup OPERANDS -XED_DLL_EXPORT void -xed_operand_values_set_iclass(xed_operand_values_t* p,xed_iclass_enum_t iclass); - -/// @ingroup OPERANDS -XED_DLL_EXPORT void -xed_operand_values_set_effective_operand_width(xed_operand_values_t* p,unsigned int width); - -/// @ingroup OPERANDS -XED_DLL_EXPORT void -xed_operand_values_set_memory_operand_length(xed_operand_values_t* p,unsigned int memop_length); - - -/// @ingroup OPERANDS -/// Set the memory displacement using a BYTES length -XED_DLL_EXPORT void -xed_operand_values_set_memory_displacement(xed_operand_values_t* p,xed_int64_t x, unsigned int len); -/// @ingroup OPERANDS -/// Set the memory displacement using a BITS length -XED_DLL_EXPORT void -xed_operand_values_set_memory_displacement_bits(xed_operand_values_t* p,xed_int64_t x, unsigned int len_bits); - -/// @ingroup OPERANDS -/// Indicate that we have a relative branch. -XED_DLL_EXPORT void xed_operand_values_set_relbr(xed_operand_values_t* p); - -/// @ingroup OPERANDS -/// Set the branch displacement using a BYTES length -XED_DLL_EXPORT void -xed_operand_values_set_branch_displacement(xed_operand_values_t* p,xed_int32_t x, unsigned int len); -/// @ingroup OPERANDS -/// Set the branch displacement using a BITS length -XED_DLL_EXPORT void -xed_operand_values_set_branch_displacement_bits(xed_operand_values_t* p,xed_int32_t x, unsigned int len_bits); - -/// @ingroup OPERANDS -/// Set the signed immediate using a BYTES length -XED_DLL_EXPORT void -xed_operand_values_set_immediate_signed(xed_operand_values_t* p,xed_int32_t x, unsigned int bytes); -/// @ingroup OPERANDS -/// Set the signed immediate using a BITS length -XED_DLL_EXPORT void -xed_operand_values_set_immediate_signed_bits(xed_operand_values_t* p,xed_int32_t x, unsigned int bits); - - -/// @ingroup OPERANDS -/// Set the unsigned immediate using a BYTE length. -XED_DLL_EXPORT void -xed_operand_values_set_immediate_unsigned(xed_operand_values_t* p,xed_uint64_t x, unsigned int bytes); -/// @ingroup OPERANDS -/// Set the unsigned immediate using a BIT length. -XED_DLL_EXPORT void -xed_operand_values_set_immediate_unsigned_bits(xed_operand_values_t* p,xed_uint64_t x, unsigned int bits); - - - -/// @ingroup OPERANDS -XED_DLL_EXPORT void xed_operand_values_set_base_reg(xed_operand_values_t* p, - unsigned int memop_idx, - xed_reg_enum_t new_base); - -/// @ingroup OPERANDS -XED_DLL_EXPORT void xed_operand_values_set_seg_reg(xed_operand_values_t* p, - unsigned int memop_idx, - xed_reg_enum_t new_seg); - -/// @ingroup OPERANDS -XED_DLL_EXPORT void xed_operand_values_set_index_reg(xed_operand_values_t* p, - unsigned int memop_idx, - xed_reg_enum_t new_index); - -/// @ingroup OPERANDS -XED_DLL_EXPORT void xed_operand_values_set_scale(xed_operand_values_t* p, - xed_uint_t memop_idx, - xed_uint_t new_scale); - - -/// @ingroup OPERANDS -/// Set the operand storage field entry named 'operand_name' to the -/// register value specified by 'reg_name'. -XED_DLL_EXPORT void -xed_operand_values_set_operand_reg(xed_operand_values_t* p, - xed_operand_enum_t operand_name, - xed_reg_enum_t reg_name); - -//@} -#endif - -//Local Variables: -//pref: "../../xed-operand-values-interface.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed/xed-operand-visibility-enum.h b/misc/decoder_test/XED2/include/xed/xed-operand-visibility-enum.h deleted file mode 100644 index fa7593d..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-operand-visibility-enum.h +++ /dev/null @@ -1,53 +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-operand-visibility-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_OPERAND_VISIBILITY_ENUM_H_) -# define _XED_OPERAND_VISIBILITY_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_OPVIS_INVALID, - XED_OPVIS_EXPLICIT, ///< Shows up in operand encoding - XED_OPVIS_IMPLICIT, ///< Part of the opcode, but listed as an operand - XED_OPVIS_SUPPRESSED, ///< Part of the opcode, but not typically listed as an operand - XED_OPVIS_LAST -} xed_operand_visibility_enum_t; - -XED_DLL_EXPORT xed_operand_visibility_enum_t -str2xed_operand_visibility_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_operand_visibility_enum_t2str(const xed_operand_visibility_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-operand-width-enum.h b/misc/decoder_test/XED2/include/xed/xed-operand-width-enum.h deleted file mode 100644 index 48efb9d..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-operand-width-enum.h +++ /dev/null @@ -1,87 +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-operand-width-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_OPERAND_WIDTH_ENUM_H_) -# define _XED_OPERAND_WIDTH_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_OPERAND_WIDTH_INVALID, - XED_OPERAND_WIDTH_1, - XED_OPERAND_WIDTH_A, - XED_OPERAND_WIDTH_B, - XED_OPERAND_WIDTH_D, - XED_OPERAND_WIDTH_DQ, - XED_OPERAND_WIDTH_M64INT, - XED_OPERAND_WIDTH_M64REAL, - XED_OPERAND_WIDTH_MEM108, - XED_OPERAND_WIDTH_MEM14, - XED_OPERAND_WIDTH_MEM16, - XED_OPERAND_WIDTH_MEM16INT, - XED_OPERAND_WIDTH_MEM28, - XED_OPERAND_WIDTH_MEM32INT, - XED_OPERAND_WIDTH_MEM32REAL, - XED_OPERAND_WIDTH_MEM80DEC, - XED_OPERAND_WIDTH_MEM80REAL, - XED_OPERAND_WIDTH_MEM98, - XED_OPERAND_WIDTH_MFPXENV, - XED_OPERAND_WIDTH_MXSAVE, - XED_OPERAND_WIDTH_MPREFETCH, - XED_OPERAND_WIDTH_P, - XED_OPERAND_WIDTH_P2, - XED_OPERAND_WIDTH_PD, - XED_OPERAND_WIDTH_PS, - XED_OPERAND_WIDTH_PI, - XED_OPERAND_WIDTH_Q, - XED_OPERAND_WIDTH_S, - XED_OPERAND_WIDTH_SD, - XED_OPERAND_WIDTH_SI, - XED_OPERAND_WIDTH_SS, - XED_OPERAND_WIDTH_V, - XED_OPERAND_WIDTH_W, - XED_OPERAND_WIDTH_Z, - XED_OPERAND_WIDTH_Z8, - XED_OPERAND_WIDTH_SPW, - XED_OPERAND_WIDTH_V3, - XED_OPERAND_WIDTH_SPW2, - XED_OPERAND_WIDTH_LAST -} xed_operand_width_enum_t; - -XED_DLL_EXPORT xed_operand_width_enum_t -str2xed_operand_width_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_operand_width_enum_t2str(const xed_operand_width_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-portability.h b/misc/decoder_test/XED2/include/xed/xed-portability.h deleted file mode 100644 index 8b72797..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-portability.h +++ /dev/null @@ -1,135 +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-portability.h -/// @author Mark Charney - -#ifndef _XED_PORTABILITY_H_ -# define _XED_PORTABILITY_H_ -# include "xed-types.h" - -#define STATIC_CAST(x,y) ((x) (y)) -#define REINTERPRET_CAST(x,y) ((x) (y)) - -XED_DLL_EXPORT xed_uint_t xed_strlen(const char* s); -XED_DLL_EXPORT void xed_strcat(char* dst, const char* src); -XED_DLL_EXPORT void xed_strcpy(char* dst, const char* src); -/// returns the number of bytes remaining for the next use of #xed_strncpy() or #xed_strncat() . -XED_DLL_EXPORT int xed_strncpy(char* dst, const char* src, int len); -/// returns the number of bytes remaining for the next use of #xed_strncpy() or #xed_strncat() . -XED_DLL_EXPORT int xed_strncat(char* dst, const char* src, int len); - - -/* recognize VC98 */ -#if !defined(__INTEL_COMPILER) -# if defined(_WIN32) && defined(_MSC_VER) -# if _MSC_VER == 1200 -# define XED_MSVC6 1 -# endif -# endif -# if defined(_WIN32) && defined(_MSC_VER) -# if _MSC_VER == 1310 -# define XED_MSVC7 1 -# endif -# endif -# if defined(_WIN32) && defined(_MSC_VER) -# if _MSC_VER == 1400 -# define XED_MSVC8 1 -# endif -# endif -#endif - -/* I've had compatibilty problems here so I'm using a trivial indirection */ -#if defined(__GNUC__) -# if defined(__CYGWIN__) - /* cygwin's gcc 3.4.4 on windows complains */ -# define XED_FMT_X "%lx" -# define XED_FMT_08X "%08lx" -# define XED_FMT_D "%ld" -# define XED_FMT_U "%lu" -# define XED_FMT_9U "%9lu" -# else -# define XED_FMT_X "%x" -# define XED_FMT_08X "%08x" -# define XED_FMT_D "%d" -# define XED_FMT_U "%u" -# define XED_FMT_9U "%9u" -# endif -#else -# define XED_FMT_X "%x" -# define XED_FMT_08X "%08x" -# define XED_FMT_D "%d" -# define XED_FMT_U "%u" -# define XED_FMT_9U "%9u" -#endif - -#if defined(__GNUC__) && defined(__LP64__) && !defined(__APPLE__) -# define XED_FMT_LX "%lx" -# define XED_FMT_LU "%lu" -# define XED_FMT_LD "%ld" -# define XED_FMT_LX16 "%016lx" -#else -# define XED_FMT_LX "%llx" -# define XED_FMT_LU "%llu" -# define XED_FMT_LD "%lld" -# define XED_FMT_LX16 "%016llx" -#endif - -#if defined(_M_IA64) -# define XED_IPF -# define XED_FMT_SIZET "%ld" -#else -# define XED_FMT_SIZET "%d" -#endif - -#if defined(__GNUC__) -# define XED_INLINE inline -# define XED_NORETURN __attribute__ ((noreturn)) -# if __GNUC__ == 2 -# define XED_NOINLINE -# else -# define XED_NOINLINE __attribute__ ((noinline)) -# endif -#else -# define XED_INLINE __inline -# if defined(XED_MSVC6) -# define XED_NOINLINE -# else -# define XED_NOINLINE __declspec(noinline) -# endif -# define XED_NORETURN __declspec(noreturn) -#endif - -#endif // _XED_PORTABILITY_H_ - -//////////////////////////////////////////////////////////////////////////// -//Local Variables: -//pref: "../../xed-portability.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed/xed-reg-class-enum.h b/misc/decoder_test/XED2/include/xed/xed-reg-class-enum.h deleted file mode 100644 index 03586a7..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-reg-class-enum.h +++ /dev/null @@ -1,65 +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-reg-class-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_REG_CLASS_ENUM_H_) -# define _XED_REG_CLASS_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_REG_CLASS_INVALID, - XED_REG_CLASS_CR, - XED_REG_CLASS_DR, - XED_REG_CLASS_FLAGS, - XED_REG_CLASS_GPR, - XED_REG_CLASS_GPR16, - XED_REG_CLASS_GPR32, - XED_REG_CLASS_GPR64, - XED_REG_CLASS_GPR8, - XED_REG_CLASS_IP, - XED_REG_CLASS_MMX, - XED_REG_CLASS_PSEUDO, - XED_REG_CLASS_SR, - XED_REG_CLASS_TMP, - XED_REG_CLASS_X87, - XED_REG_CLASS_XMM, - XED_REG_CLASS_LAST -} xed_reg_class_enum_t; - -XED_DLL_EXPORT xed_reg_class_enum_t -str2xed_reg_class_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_reg_class_enum_t2str(const xed_reg_class_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-reg-class.h b/misc/decoder_test/XED2/include/xed/xed-reg-class.h deleted file mode 100644 index d55b74c..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-reg-class.h +++ /dev/null @@ -1,57 +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-reg-class.h -/// @author Mark Charney - -#ifndef _XED_REG_CLASS_H_ -# define _XED_REG_CLASS_H_ - -#include "xed-types.h" -#include "xed-reg-enum.h" // a generated file -#include "xed-reg-class-enum.h" // a generated file - -/// Returns the register class of the given input register. -///@ingroup REGINTFC -XED_DLL_EXPORT xed_reg_class_enum_t xed_reg_class(xed_reg_enum_t r); - -/// Returns the specific width GPR reg class (like XED_REG_CLASS_GPR32 or XED_REG_CLASS_GPR64) -/// for a given GPR register. Or XED_REG_INVALID if not a GPR. -///@ingroup REGINTFC -XED_DLL_EXPORT xed_reg_class_enum_t xed_gpr_reg_class(xed_reg_enum_t r); - -/// Returns the largest enclosing register for any kind of register; This is mostly useful for GPRs. -///@ingroup REGINTFC -XED_DLL_EXPORT xed_reg_enum_t xed_get_largest_enclosing_register(xed_reg_enum_t r); - - -//////////////////////////////////////////////////////////////////////////// - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-reg-enum.h b/misc/decoder_test/XED2/include/xed/xed-reg-enum.h deleted file mode 100644 index 6fd6cc0..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-reg-enum.h +++ /dev/null @@ -1,229 +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-reg-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_REG_ENUM_H_) -# define _XED_REG_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_REG_INVALID, - XED_REG_ERROR, - XED_REG_RAX, - XED_REG_EAX, - XED_REG_AX, - XED_REG_AH, - XED_REG_AL, - XED_REG_RCX, - XED_REG_ECX, - XED_REG_CX, - XED_REG_CH, - XED_REG_CL, - XED_REG_RDX, - XED_REG_EDX, - XED_REG_DX, - XED_REG_DH, - XED_REG_DL, - XED_REG_RBX, - XED_REG_EBX, - XED_REG_BX, - XED_REG_BH, - XED_REG_BL, - XED_REG_RSP, - XED_REG_ESP, - XED_REG_SP, - XED_REG_SPL, - XED_REG_RBP, - XED_REG_EBP, - XED_REG_BP, - XED_REG_BPL, - XED_REG_RSI, - XED_REG_ESI, - XED_REG_SI, - XED_REG_SIL, - XED_REG_RDI, - XED_REG_EDI, - XED_REG_DI, - XED_REG_DIL, - XED_REG_R8, - XED_REG_R8D, - XED_REG_R8W, - XED_REG_R8B, - XED_REG_R9, - XED_REG_R9D, - XED_REG_R9W, - XED_REG_R9B, - XED_REG_R10, - XED_REG_R10D, - XED_REG_R10W, - XED_REG_R10B, - XED_REG_R11, - XED_REG_R11D, - XED_REG_R11W, - XED_REG_R11B, - XED_REG_R12, - XED_REG_R12D, - XED_REG_R12W, - XED_REG_R12B, - XED_REG_R13, - XED_REG_R13D, - XED_REG_R13W, - XED_REG_R13B, - XED_REG_R14, - XED_REG_R14D, - XED_REG_R14W, - XED_REG_R14B, - XED_REG_R15, - XED_REG_R15D, - XED_REG_R15W, - XED_REG_R15B, - XED_REG_RIP, - XED_REG_EIP, - XED_REG_IP, - XED_REG_FLAGS, - XED_REG_EFLAGS, - XED_REG_RFLAGS, - XED_REG_CS, - XED_REG_DS, - XED_REG_ES, - XED_REG_SS, - XED_REG_FS, - XED_REG_GS, - XED_REG_XMM0, - XED_REG_XMM1, - XED_REG_XMM2, - XED_REG_XMM3, - XED_REG_XMM4, - XED_REG_XMM5, - XED_REG_XMM6, - XED_REG_XMM7, - XED_REG_XMM8, - XED_REG_XMM9, - XED_REG_XMM10, - XED_REG_XMM11, - XED_REG_XMM12, - XED_REG_XMM13, - XED_REG_XMM14, - XED_REG_XMM15, - XED_REG_MMX0, - XED_REG_MMX1, - XED_REG_MMX2, - XED_REG_MMX3, - XED_REG_MMX4, - XED_REG_MMX5, - XED_REG_MMX6, - XED_REG_MMX7, - XED_REG_ST0, - XED_REG_ST1, - XED_REG_ST2, - XED_REG_ST3, - XED_REG_ST4, - XED_REG_ST5, - XED_REG_ST6, - XED_REG_ST7, - XED_REG_CR0, - XED_REG_CR1, - XED_REG_CR2, - XED_REG_CR3, - XED_REG_CR4, - XED_REG_CR5, - XED_REG_CR6, - XED_REG_CR7, - XED_REG_CR8, - XED_REG_CR9, - XED_REG_CR10, - XED_REG_CR11, - XED_REG_CR12, - XED_REG_CR13, - XED_REG_CR14, - XED_REG_CR15, - XED_REG_DR0, - XED_REG_DR1, - XED_REG_DR2, - XED_REG_DR3, - XED_REG_DR4, - XED_REG_DR5, - XED_REG_DR6, - XED_REG_DR7, - XED_REG_DR8, - XED_REG_DR9, - XED_REG_DR10, - XED_REG_DR11, - XED_REG_DR12, - XED_REG_DR13, - XED_REG_DR14, - XED_REG_DR15, - XED_REG_ONE, - XED_REG_STACKPUSH, - XED_REG_STACKPOP, - XED_REG_GDTR, - XED_REG_LDTR, - XED_REG_IDTR, - XED_REG_TR, - XED_REG_TSC, - XED_REG_TSCAUX, - XED_REG_MSRS, - XED_REG_X87CONTROL, - XED_REG_X87STATUS, - XED_REG_X87TOP, - XED_REG_X87TAG, - XED_REG_X87PUSH, - XED_REG_X87POP, - XED_REG_X87POP2, - XED_REG_MXCSR, - XED_REG_TMP0, - XED_REG_TMP1, - XED_REG_TMP2, - XED_REG_TMP3, - XED_REG_TMP4, - XED_REG_TMP5, - XED_REG_TMP6, - XED_REG_TMP7, - XED_REG_TMP8, - XED_REG_TMP9, - XED_REG_TMP10, - XED_REG_TMP11, - XED_REG_TMP12, - XED_REG_TMP13, - XED_REG_TMP14, - XED_REG_TMP15, - XED_REG_LAST -} xed_reg_enum_t; - -XED_DLL_EXPORT xed_reg_enum_t -str2xed_reg_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_reg_enum_t2str(const xed_reg_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-reg-role-enum.h b/misc/decoder_test/XED2/include/xed/xed-reg-role-enum.h deleted file mode 100644 index 41a4249..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-reg-role-enum.h +++ /dev/null @@ -1,56 +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-reg-role-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_REG_ROLE_ENUM_H_) -# define _XED_REG_ROLE_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_REG_ROLE_INVALID, - XED_REG_ROLE_NORMAL, ///< Register is a normal register - XED_REG_ROLE_SEGREG0, ///< The segment register associated with the first memop - XED_REG_ROLE_SEGREG1, ///< The segment register associated with the second memop - XED_REG_ROLE_BASE0, ///< The base register associated with the first memop - XED_REG_ROLE_BASE1, ///< The base register associated with the second memop - XED_REG_ROLE_INDEX, ///< The index register associated with the first memop - XED_REG_ROLE_LAST -} xed_reg_role_enum_t; - -XED_DLL_EXPORT xed_reg_role_enum_t -str2xed_reg_role_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_reg_role_enum_t2str(const xed_reg_role_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-state.h b/misc/decoder_test/XED2/include/xed/xed-state.h deleted file mode 100644 index 83f13a2..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-state.h +++ /dev/null @@ -1,172 +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-state.h -/// @author Mark Charney - - - -#ifndef _XED_STATE_H_ -# define _XED_STATE_H_ -#include "xed-types.h" -#include "xed-portability.h" -#include "xed-address-width-enum.h" // generated -#include "xed-machine-mode-enum.h" // generated - - -/// Encapsulates machine modes for decoder/encoder requests. -/// It specifies the machine operating mode as a -/// #xed_machine_mode_enum_t -/// for decoding and encoding. For all modes other than the 64b long mode -/// (XED_MACHINE_MODE_LONG_64), a default addressing width, and a stack -/// addressing width must be supplied of type #xed_address_width_enum_t . -/// @ingroup INIT -typedef struct XED_DLL_EXPORT xed_state_s { - /// real architected machine modes - xed_machine_mode_enum_t mmode; - - /// the current default addressing width. - xed_address_width_enum_t addr_width; - - /// for 16b/32b modes - xed_address_width_enum_t stack_addr_width; -} xed_state_t; - -/// @name Initialization -//@{ -/// Constructor. -/// The mode, and addresses widths are enumerations that specify the number -/// of bits. In 64b mode (#XED_MACHINE_MODE_LONG_64) the address width and -/// stack address widths are 64b (#XED_ADDRESS_WIDTH_64b). In other machine -/// modes, you must specify valid addressing widths. -/// -/// @param p the pointer to the #xed_state_t type -/// @param arg_mmode the machine mode of type #xed_machine_mode_enum_t -/// @param arg_addr_width the address width of type #xed_address_width_enum_t (only required if not the mode is not #XED_MACHINE_MODE_LONG_64) -/// @param arg_stack_addr_width the stack address width of type #xed_address_width_enum_t (only required if not the mode is not #XED_MACHINE_MODE_LONG_64) -/// @ingroup INIT -static XED_INLINE void xed_state_init(xed_state_t* p, - xed_machine_mode_enum_t arg_mmode, - xed_address_width_enum_t arg_addr_width, - xed_address_width_enum_t arg_stack_addr_width) { - p->mmode=arg_mmode; - p->addr_width=arg_addr_width; - p->stack_addr_width=arg_stack_addr_width; -} - -/// clear the xed_state_t -/// @ingroup INIT -static XED_INLINE void xed_state_zero(xed_state_t* p) { - p->mmode= XED_MACHINE_MODE_INVALID; - p->addr_width=XED_ADDRESS_WIDTH_INVALID; - p->stack_addr_width=XED_ADDRESS_WIDTH_INVALID; -} - -//@} - -/// @name Machine mode -//@{ -/// return the machine mode -/// @ingroup INIT -static XED_INLINE xed_machine_mode_enum_t xed_state_get_machine_mode(const xed_state_t* p) { - return p->mmode; -} - - -/// true iff the machine is in LONG_64 mode -/// @ingroup INIT -static XED_INLINE xed_bool_t xed_state_long64_mode(const xed_state_t* p) { - return xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LONG_64; -} - -/// @ingroup INIT -static XED_INLINE xed_bool_t xed_state_mode_width_16(const xed_state_t* p) { - return (xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LEGACY_16) || - (xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LONG_COMPAT_16); -} - -/// @ingroup INIT -static XED_INLINE xed_bool_t xed_state_mode_width_32(const xed_state_t* p) { - return (xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LEGACY_32) || - (xed_state_get_machine_mode(p) == XED_MACHINE_MODE_LONG_COMPAT_32); -} - - -/// Set the machine mode -/// @ingroup INIT -static XED_INLINE void xed_state_set_machine_mode( xed_state_t* p, - xed_machine_mode_enum_t arg_mode) { - p->mmode = arg_mode; -} -//@} - -/// @name Address width -//@{ -/// Set the address width -/// @ingroup INIT -static XED_INLINE void xed_state_set_address_width(xed_state_t* p, - xed_address_width_enum_t arg_addr_width) { - p->addr_width = arg_addr_width; -} - -/// return the address width -/// @ingroup INIT -static XED_INLINE xed_address_width_enum_t xed_state_get_address_width(const xed_state_t* p) { - return p->addr_width; -} - -//@} - -/// @name Stack address width -//@{ -/// set the STACK address width -/// @ingroup INIT -static XED_INLINE void xed_state_set_stack_address_width(xed_state_t* p, - xed_address_width_enum_t arg_addr_width) { - p->stack_addr_width = arg_addr_width; -} - - -/// Return the STACK address width -/// @ingroup INIT -static XED_INLINE xed_address_width_enum_t xed_state_get_stack_address_width(const xed_state_t* p) { - return p->stack_addr_width; -} -//@} - -/// @ingroup INIT -XED_DLL_EXPORT int xed_state_print(const xed_state_t* p, char* buf, int buflen); - -#endif - -//////////////////////////////////////////////////////////////////////////// -//Local Variables: -//pref: "../../xed-state.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed/xed-syntax-enum.h b/misc/decoder_test/XED2/include/xed/xed-syntax-enum.h deleted file mode 100644 index 9337f78..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-syntax-enum.h +++ /dev/null @@ -1,53 +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-syntax-enum.h -/// @author Mark Charney - -// This file was automatically generated. -// Do not edit this file. - -#if !defined(_XED_SYNTAX_ENUM_H_) -# define _XED_SYNTAX_ENUM_H_ -#include "xed-common-hdrs.h" -typedef enum { - XED_SYNTAX_INVALID, - XED_SYNTAX_XED, ///< XED disassembly syntax - XED_SYNTAX_ATT, ///< ATT SYSV disassembly syntax - XED_SYNTAX_INTEL, ///< Intel disassembly syntax - XED_SYNTAX_LAST -} xed_syntax_enum_t; - -XED_DLL_EXPORT xed_syntax_enum_t -str2xed_syntax_enum_t(const char* s); -XED_DLL_EXPORT const char* -xed_syntax_enum_t2str(const xed_syntax_enum_t p); - -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-types.h b/misc/decoder_test/XED2/include/xed/xed-types.h deleted file mode 100644 index 9e66215..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-types.h +++ /dev/null @@ -1,71 +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-types.h -/// @author Mark Charney - - -#ifndef _XED_TYPES_H_ -# define _XED_TYPES_H_ - -//////////////////////////////////////////////////////////////////////////// - -#include "xed-common-hdrs.h" - -#if defined(__GNUC__) || defined(__ICC) -# include -# define xed_uint8_t uint8_t -# define xed_uint16_t uint16_t -# define xed_uint32_t uint32_t -# define xed_uint64_t uint64_t -# define xed_int8_t int8_t -# define xed_int16_t int16_t -# define xed_int32_t int32_t -# define xed_int64_t int64_t -#elif defined(_WIN32) -# define xed_uint8_t unsigned __int8 -# define xed_uint16_t unsigned __int16 -# define xed_uint32_t unsigned __int32 -# define xed_uint64_t unsigned __int64 -# define xed_int8_t __int8 -# define xed_int16_t __int16 -# define xed_int32_t __int32 -# define xed_int64_t __int64 -#else -# error "XED types unsupported platform? Need windows, gcc, or icc." -#endif - -typedef unsigned int xed_uint_t; -typedef unsigned int xed_bits_t; -typedef unsigned int xed_bool_t; - - -//////////////////////////////////////////////////////////////////////////// -#endif diff --git a/misc/decoder_test/XED2/include/xed/xed-util.h b/misc/decoder_test/XED2/include/xed/xed-util.h deleted file mode 100644 index 19ef5f8..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-util.h +++ /dev/null @@ -1,264 +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-util.h -/// @author Mark Charney - - - -#ifndef _XED_UTIL_H_ -# define _XED_UTIL_H_ - -#include "xed-common-hdrs.h" -#include "xed-types.h" -#include "xed-portability.h" - - -//////////////////////////////////////////////////////////////////////////// -// DEFINES -//////////////////////////////////////////////////////////////////////////// -extern int xed_verbose; -#if defined(XED_MESSAGES) -# include // only with XED_MESSAGES defined -extern FILE* xed_log_file; -#endif -#define XED_EMIT_MESSAGES (XED_MESSAGES==1 && xed_verbose >= 1) -#define XED_INFO_VERBOSE (XED_MESSAGES==1 && xed_verbose >= 2) -#define XED_INFO2_VERBOSE (XED_MESSAGES==1 && xed_verbose >= 3) -#define XED_VERBOSE (XED_MESSAGES==1 && xed_verbose >= 4) -#define XED_MORE_VERBOSE (XED_MESSAGES==1 && xed_verbose >= 5) -#define XED_VERY_VERBOSE (XED_MESSAGES==1 && xed_verbose >= 6) - -#if defined(__GNUC__) -# define XED_FUNCNAME __func__ -#else -# define XED_FUNCNAME "" -#endif - -#if XED_MESSAGES==1 -#define XED2IMSG(x) \ - do { \ - if (XED_EMIT_MESSAGES) { \ - if (XED_VERY_VERBOSE) { \ - fprintf(xed_log_file,"%s:%d:%s: ", \ - __FILE__, __LINE__, XED_FUNCNAME); \ - } \ - fprintf x; \ - fflush(xed_log_file); \ - } \ - } while(0) - -#define XED2TMSG(x) \ - do { \ - if (XED_VERBOSE) { \ - if (XED_VERY_VERBOSE) { \ - fprintf(xed_log_file,"%s:%d:%s: ", \ - __FILE__, __LINE__, XED_FUNCNAME); \ - } \ - fprintf x; \ - fflush(xed_log_file); \ - } \ - } while(0) - -#define XED2VMSG(x) \ - do { \ - if (XED_VERY_VERBOSE) { \ - fprintf(xed_log_file,"%s:%d:%s: ", \ - __FILE__, __LINE__, XED_FUNCNAME); \ - fprintf x; \ - fflush(xed_log_file); \ - } \ - } while(0) - -#define XED2DIE(x) \ - do { \ - if (XED_EMIT_MESSAGES) { \ - fprintf(xed_log_file,"%s:%d:%s: ", \ - __FILE__, __LINE__, XED_FUNCNAME); \ - fprintf x; \ - fflush(xed_log_file); \ - } \ - xed_assert(0); \ - } while(0) - - - -#else -# define XED2IMSG(x) -# define XED2TMSG(x) -# define XED2VMSG(x) -# define XED2DIE(x) do { xed_assert(0); } while(0) -#endif - -#if defined(XED_ASSERTS) -# define xed_assert(x) do { if (( x )== 0) xed_internal_assert( #x, __FILE__, __LINE__); } while(0) -#else -# define xed_assert(x) do { } while(0) -#endif -XED_NORETURN XED_NOINLINE XED_DLL_EXPORT void xed_internal_assert(const char* s, const char* file, int line); - -/// @ingroup INIT -/// This is for registering a function to be called during XED's assert -/// processing. If you do not register an abort function, then the system's -/// abort function will be called. If your supplied function returns, then -/// abort() will still be called. -/// -/// @param fn This is a function pointer for a function that should handle the -/// assertion reporting. The function pointer points to a function that -/// takes 4 arguments: -/// (1) msg, the assertion message, -/// (2) file, the file name, -/// (3) line, the line number (as an integer), and -/// (4) other, a void pointer that is supplied as thei -/// 2nd argument to this registration. -/// @param other This is a void* that is passed back to your supplied function fn -/// as its 4th argument. It can be zero if you don't need this -/// feature. You can used this to convey whatever additional context -/// to your assertion handler (like FILE* pointers etc.). -/// -XED_DLL_EXPORT void xed_register_abort_function(void (*fn)(const char* msg, - const char* file, int line, void* other), - void* other); - - -//////////////////////////////////////////////////////////////////////////// -// PROTOTYPES -//////////////////////////////////////////////////////////////////////////// -char* xed_downcase_buf(char* s); - -int xed_itoa(char* buf, xed_uint64_t f, int buflen); -int xed_itoa_hex_zeros(char* buf, xed_uint64_t f, xed_uint_t xed_bits_to_print, xed_bool_t leading_zeros, int buflen); -int xed_itoa_hex(char* buf, xed_uint64_t f, xed_uint_t xed_bits_to_print, int buflen); -int xed_itoa_signed(char* buf, xed_int64_t f, int buflen); - -char xed_to_ascii_hex_nibble(xed_uint_t x); - -int xed_sprintf_uint8_hex(char* buf, xed_uint8_t x, int buflen); -int xed_sprintf_uint16_hex(char* buf, xed_uint16_t x, int buflen); -int xed_sprintf_uint32_hex(char* buf, xed_uint32_t x, int buflen); -int xed_sprintf_uint64_hex(char* buf, xed_uint64_t x, int buflen); -int xed_sprintf_uint8(char* buf, xed_uint8_t x, int buflen); -int xed_sprintf_uint16(char* buf, xed_uint16_t x, int buflen); -int xed_sprintf_uint32(char* buf, xed_uint32_t x, int buflen); -int xed_sprintf_uint64(char* buf, xed_uint64_t x, int buflen); -int xed_sprintf_int8(char* buf, xed_int8_t x, int buflen); -int xed_sprintf_int16(char* buf, xed_int16_t x, int buflen); -int xed_sprintf_int32(char* buf, xed_int32_t x, int buflen); -int xed_sprintf_int64(char* buf, xed_int64_t x, int buflen); - - -/// Set the FILE* for XED's log msgs -XED_DLL_EXPORT void xed_set_log_file(FILE* o); - - -/// Set the verbosity level for XED -XED_DLL_EXPORT void xed_set_verbosity(int v); - -void xed_derror(const char* s); -void xed_dwarn(const char* s); - -XED_DLL_EXPORT xed_int64_t xed_sign_extend32_64(xed_int32_t x); -XED_DLL_EXPORT xed_int64_t xed_sign_extend16_64(xed_int16_t x); -XED_DLL_EXPORT xed_int64_t xed_sign_extend8_64(xed_int8_t x); - -XED_DLL_EXPORT xed_int32_t xed_sign_extend16_32(xed_int16_t x); -XED_DLL_EXPORT xed_int32_t xed_sign_extend8_32(xed_int8_t x); - -XED_DLL_EXPORT xed_int16_t xed_sign_extend8_16(xed_int8_t x); - -///arbitrary sign extension from a qty of "bits" length to 32b -XED_DLL_EXPORT xed_int32_t xed_sign_extend_arbitrary_to_32(xed_uint32_t x, unsigned int bits); - -///arbitrary sign extension from a qty of "bits" length to 64b -XED_DLL_EXPORT xed_int64_t xed_sign_extend_arbitrary_to_64(xed_uint64_t x, unsigned int bits); - - -XED_DLL_EXPORT xed_uint64_t xed_zero_extend32_64(xed_uint32_t x); -XED_DLL_EXPORT xed_uint64_t xed_zero_extend16_64(xed_uint16_t x); -XED_DLL_EXPORT xed_uint64_t xed_zero_extend8_64(xed_uint8_t x); - -XED_DLL_EXPORT xed_uint32_t xed_zero_extend16_32(xed_uint16_t x); -XED_DLL_EXPORT xed_uint32_t xed_zero_extend8_32(xed_uint8_t x); - -XED_DLL_EXPORT xed_uint16_t xed_zero_extend8_16(xed_uint8_t x); - -XED_DLL_EXPORT xed_int32_t -xed_little_endian_to_int32(xed_uint64_t x, unsigned int len); - -XED_DLL_EXPORT xed_int64_t -xed_little_endian_to_int64(xed_uint64_t x, unsigned int len); -XED_DLL_EXPORT xed_uint64_t -xed_little_endian_to_uint64(xed_uint64_t x, unsigned int len); - -XED_DLL_EXPORT xed_int64_t -xed_little_endian_hilo_to_int64(xed_uint32_t hi_le, xed_uint32_t lo_le, unsigned int len); -XED_DLL_EXPORT xed_uint64_t -xed_little_endian_hilo_to_uint64(xed_uint32_t hi_le, xed_uint32_t lo_le, unsigned int len); - -XED_DLL_EXPORT xed_uint8_t -xed_get_byte(xed_uint64_t x, unsigned int i, unsigned int len); - -static XED_INLINE xed_uint64_t xed_make_uint64(xed_uint32_t hi, xed_uint32_t lo) { - xed_uint64_t x,y; - x=hi; - y= (x<<32) | lo; - return y; -} -static XED_INLINE xed_int64_t xed_make_int64(xed_uint32_t hi, xed_uint32_t lo) { - xed_uint64_t x,y; - x=hi; - y= (x<<32) | lo; - return STATIC_CAST(xed_int64_t,y); -} - -/// returns the number of bytes required to store the UNSIGNED number x -/// given a mask of legal lengths. For the legal_widths argument, bit 0 -/// implies 1 byte is a legal return width, bit 1 implies that 2 bytes is a -/// legal return width, bit 2 implies that 4 bytes is a legal return width. -/// This returns 8 (indicating 8B) if none of the provided legal widths -/// applies. -XED_DLL_EXPORT xed_uint_t xed_shortest_width_unsigned(xed_uint64_t x, xed_uint8_t legal_widths); - -/// returns the number of bytes required to store the SIGNED number x -/// given a mask of legal lengths. For the legal_widths argument, bit 0 implies 1 -/// byte is a legal return width, bit 1 implies that 2 bytes is a legal -/// return width, bit 2 implies that 4 bytes is a legal return width. This -/// returns 8 (indicating 8B) if none of the provided legal widths applies. -XED_DLL_EXPORT xed_uint_t xed_shortest_width_signed(xed_int64_t x, xed_uint8_t legal_widths); - -//////////////////////////////////////////////////////////////////////////// -// GLOBALS -//////////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////////// -#endif -//Local Variables: -//pref: "../../xed-util.c" -//End: diff --git a/misc/decoder_test/XED2/include/xed/xed-version.h b/misc/decoder_test/XED2/include/xed/xed-version.h deleted file mode 100644 index 13393ba..0000000 --- a/misc/decoder_test/XED2/include/xed/xed-version.h +++ /dev/null @@ -1,39 +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 */ - -#if !defined(_XED_VERSION_H_) -# define _XED_VERSION_H_ -#include "xed-common-hdrs.h" - -///@ingroup INIT -/// Returns a string representing XED svn commit revision and time stamp. -XED_DLL_EXPORT char* xed_get_version(); -#endif diff --git a/misc/decoder_test/XED2/lib/libxed.a b/misc/decoder_test/XED2/lib/libxed.a deleted file mode 100644 index cd22a48..0000000 Binary files a/misc/decoder_test/XED2/lib/libxed.a and /dev/null differ diff --git a/misc/decoder_test/ktypes.h b/misc/decoder_test/ktypes.h deleted file mode 100644 index 7c72a3b..0000000 --- a/misc/decoder_test/ktypes.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Kernel data types - * Copyright (c) 2001,2003 David H. Hovemeyer - * $Revision: 1.1 $ - * - * This is free software. You are permitted to use, - * redistribute, and modify it as specified in the file "COPYING". - */ - -#ifndef GEEKOS_KTYPES_H -#define GEEKOS_KTYPES_H - -/* - * GeekOS uses the C99 bool type, with true and false - * constant values. - */ -#include - -/* - * Shorthand for commonly used integer types. - */ -typedef unsigned long ulong_t; -typedef unsigned int uint_t; -typedef unsigned short ushort_t; -typedef unsigned char uchar_t; -typedef unsigned long long ullong_t; - -/* - * MIN() and MAX() macros. - * By using gcc extensions, they are type-correct and - * evaulate their arguments only once. - */ -#define MIN(a,b) ({typeof (a) _a = (a); typeof (b) _b = (b); (_a < _b) ? _a : _b; }) -#define MAX(a,b) ({typeof (a) _a = (a); typeof (b) _b = (b); (_a < _b) ? _a : _b; }) - -/* - * Some ASCII character access and manipulation macros. - */ -#define ISDIGIT(c) ((c) >= '0' && (c) <= '9') -#define TOLOWER(c) (((c) >= 'A' && (c) <= 'Z') ? ((c) + ('a' - 'A')) : (c)) -#define TOUPPER(c) (((c) >= 'a' && (c) <= 'z') ? ((c) - ('a' - 'A')) : (c)) - -#endif /* GEEKOS_KTYPES_H */ diff --git a/misc/decoder_test/pin-2.4-19012-gcc.3.4.6-ia32-linux.tar.gz b/misc/decoder_test/pin-2.4-19012-gcc.3.4.6-ia32-linux.tar.gz deleted file mode 100644 index b61113c..0000000 Binary files a/misc/decoder_test/pin-2.4-19012-gcc.3.4.6-ia32-linux.tar.gz and /dev/null differ diff --git a/misc/decoder_test/test.asm b/misc/decoder_test/test.asm deleted file mode 100644 index 34245ee..0000000 --- a/misc/decoder_test/test.asm +++ /dev/null @@ -1,29 +0,0 @@ -[BITS 32] -[ORG 0x0] -lea eax, [ebx] -mov eax, [ebx] -mov ax, [ebx] -mov ax, [ebx +8*edi] -mov [ebx], eax -mov [ebx +4*edi], eax -es mov [ebx], eax -movsw -rep movsw - -mov eax, ebx -popa -pusha -push eax - -mov eax, 100 -mov [ebx + 2*esi], word 0x4 - -add ebx, 200 - -add eax, ebx -out 0x64, al - -lmsw ax -smsw ax -mov cr0, eax -clts \ No newline at end of file diff --git a/misc/decoder_test/test.c b/misc/decoder_test/test.c deleted file mode 100644 index f92238a..0000000 --- a/misc/decoder_test/test.c +++ /dev/null @@ -1,194 +0,0 @@ -#include -#include -#include -#include -#include - - -#include "test.h" -#include "vmm_xed.h" -#include "vmm_decoder.h" -#include "vm_guest.h" - - -/* Disgusting mask hack... - I can't think right now, so we'll do it this way... -*/ -static const ullong_t mask_1 = 0x00000000000000ffLL; -static const ullong_t mask_2 = 0x000000000000ffffLL; -static const ullong_t mask_4 = 0x00000000ffffffffLL; -static const ullong_t mask_8 = 0xffffffffffffffffLL; - - -#define MASK(val, length) ({ \ - ullong_t mask = 0x0LL; \ - switch (length) { \ - case 1: \ - mask = mask_1; \ - case 2: \ - mask = mask_2; \ - case 4: \ - mask = mask_4; \ - case 8: \ - mask = mask_8; \ - } \ - val & mask;}) \ - -static void init_guest_info(struct guest_info * info) { - memset(info, 0, sizeof(struct guest_info)); - info->cpu_mode = PROTECTED; - - info->vm_regs.rax = 0x01010101; - info->vm_regs.rbx = 0x02020202; - info->vm_regs.rcx = 0x03030303; - info->vm_regs.rdx = 0x04040404; - - info->vm_regs.rdi = 0x05050505; - info->vm_regs.rsi = 0x06060606; - info->vm_regs.rsp = 0x07070707; - info->vm_regs.rbp = 0x08080808; - - info->vm_regs.rdi = 0x05050505; - info->vm_regs.rsi = 0x06060606; - info->vm_regs.rsp = 0x07070707; - info->vm_regs.rbp = 0x08080808; - - - info->segments.ds.base = 0xf0f0f0f0; - info->segments.es.base = 0xe0e0e0e0; - - - - -} -static const char * mem = "MEMORY"; -static const char * reg = "REGISTER"; -static const char * imm = "IMMEDIATE"; -static const char * invalid = "INVALID"; - -static const char * get_op_type_str(operand_type_t type) { - if (type == MEM_OPERAND) { - return mem; - } else if (type == REG_OPERAND) { - return reg; - } else if (type == IMM_OPERAND) { - return imm; - } else { - return invalid; - } -} - -static int print_op(struct x86_operand *op) { - printf("\ttype=%s\n", get_op_type_str(op->type)); - - switch (op->type) { - case REG_OPERAND: - printf("\tsize=%d\n", op->size); - printf("\taddr=0x%x (val=%x)\n", op->operand, MASK(*(uint_t*)(op->operand), op->size)); - return 0; - case MEM_OPERAND: - printf("\tsize=%d\n", op->size); - printf("\taddr=0x%x\n", op->operand); - return 0; - - case IMM_OPERAND: - printf("\tsize=%d\n", op->size); - printf("\tval=0x%x\n", op->operand); - return 0; - - default: - return -1; - } -} - -int main(int argc, char ** argv) { - char * filename; - int fd; - struct stat file_state; - int ret; - char * file_buf; - int buf_offset = 0; - int file_size = 0; - char * instr_ptr = 0; - - struct guest_info * info = (struct guest_info *)malloc(sizeof(struct guest_info ));; - - init_decoder(); - init_guest_info(info); - - if (argc == 1) { - printf("Error: Must give a binary file\n"); - exit(-1); - } - - filename = argv[1]; - - ret = stat(filename, &file_state); - - if (ret == -1) { - printf("Could not stat file\n"); - return -1; - } - file_size = file_state.st_size; - - file_buf = malloc(file_size); - - fd = open(filename, NULL); - - if (fd == -1) { - printf("Could not open file\n"); - return -1; - } else { - int total_read = 0; - int num_read = 0; - - while (total_read < file_size) { - num_read = read(fd, file_buf + total_read, file_size - total_read); - - if (num_read == 0) { - printf("end of file\n"); - break; - } - if (num_read == -1) { - printf("Read error\n"); - exit(-1); - } - - total_read += num_read; - } - - } - - - instr_ptr = file_buf; - - - PrintV3CtrlRegs(info); - PrintV3GPRs(info); - PrintV3Segments(info); - - - while (buf_offset < file_size) { - struct x86_instr instr; - - if (v3_decode(info, (addr_t)instr_ptr + buf_offset, &instr) == -1) { - printf("Unhandled instruction\n"); - buf_offset += instr.instr_length; - continue; - } - printf("instr_length = %d, noperands=%d\n", instr.instr_length, instr.num_operands); - - printf("Source:\n"); - print_op(&(instr.src_operand)); - - printf("Dest:\n"); - print_op(&(instr.dst_operand)); - - - printf("\n\n"); - - buf_offset += instr.instr_length; - } - - return 0; -} diff --git a/misc/decoder_test/test.h b/misc/decoder_test/test.h deleted file mode 100644 index 56303f5..0000000 --- a/misc/decoder_test/test.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef __TEST_H__ -#define __TEST_H__ -#include -#include -#include "ktypes.h" - -#define PrintDebug printf -#define PrintError printf - -#define V3_ASSERT(x) \ - do { \ - if (!(x)) { \ - PrintDebug("Failed assertion in %s: %s at %s, line %d, RA=%lx\n", \ - __func__, #x, __FILE__, __LINE__, \ - (ulong_t) __builtin_return_address(0)); \ - while(1); \ - } \ - } while(0) \ - - - -#endif - diff --git a/misc/decoder_test/vm_guest.c b/misc/decoder_test/vm_guest.c deleted file mode 100644 index 787492f..0000000 --- a/misc/decoder_test/vm_guest.c +++ /dev/null @@ -1,54 +0,0 @@ -#include "vm_guest.h" - - - - -void PrintV3Segments(struct guest_info * info) { - struct v3_segments * segs = &(info->segments); - int i = 0; - struct v3_segment * seg_ptr; - - seg_ptr=(struct v3_segment *)segs; - - char *seg_names[] = {"CS", "DS" , "ES", "FS", "GS", "SS" , "LDTR", "GDTR", "IDTR", "TR", NULL}; - PrintDebug("Segments\n"); - - for (i = 0; seg_names[i] != NULL; i++) { - - PrintDebug("\t%s: Sel=%x, base=%x, limit=%x (at 0x%x)\n", seg_names[i], seg_ptr[i].selector, (uint_t)seg_ptr[i].base, seg_ptr[i].limit, &seg_ptr[i]); - - } - -} - - -void PrintV3CtrlRegs(struct guest_info * info) { - struct v3_ctrl_regs * regs = &(info->ctrl_regs); - int i = 0; - v3_reg_t * reg_ptr; - char * reg_names[] = {"CR0", "CR2", "CR3", "CR4", "CR8", "FLAGS", NULL}; - - reg_ptr= (v3_reg_t *)regs; - - PrintDebug("32 bit Ctrl Regs:\n"); - - for (i = 0; reg_names[i] != NULL; i++) { - PrintDebug("\t%s=0x%x (at=0x%x)\n", reg_names[i], (uint_t)reg_ptr[i], ®_ptr[i]); - } -} - - -void PrintV3GPRs(struct guest_info * info) { - struct v3_gprs * regs = &(info->vm_regs); - int i = 0; - v3_reg_t * reg_ptr; - char * reg_names[] = { "RDI", "RSI", "RBP", "RSP", "RBX", "RDX", "RCX", "RAX", NULL}; - - reg_ptr= (v3_reg_t *)regs; - - PrintDebug("32 bit GPRs:\n"); - - for (i = 0; reg_names[i] != NULL; i++) { - PrintDebug("\t%s=0x%x (at 0x%x)\n", reg_names[i], (uint_t)reg_ptr[i], ®_ptr[i]); - } -} diff --git a/misc/decoder_test/vm_guest.h b/misc/decoder_test/vm_guest.h deleted file mode 100644 index 9dae3ab..0000000 --- a/misc/decoder_test/vm_guest.h +++ /dev/null @@ -1,97 +0,0 @@ -#ifndef __VM_GUEST_H -#define __VM_GUEST_H - -#ifdef __V3VEE__ - -#include "test.h" - -typedef ullong_t v3_reg_t; -typedef ulong_t addr_t; - - - -struct v3_gprs { - v3_reg_t rdi; - v3_reg_t rsi; - v3_reg_t rbp; - v3_reg_t rsp; - v3_reg_t rbx; - v3_reg_t rdx; - v3_reg_t rcx; - v3_reg_t rax; -}; - - -struct v3_ctrl_regs { - v3_reg_t cr0; - v3_reg_t cr2; - v3_reg_t cr3; - v3_reg_t cr4; - v3_reg_t cr8; - v3_reg_t rflags; - v3_reg_t efer; -}; - - -struct v3_segment { - ushort_t selector; - uint_t limit; - ullong_t base; - uint_t type : 4; - uint_t system : 1; - uint_t dpl : 2; - uint_t present : 1; - uint_t avail : 1; - uint_t long_mode : 1; - uint_t db : 1; - uint_t granularity : 1; -}; - - -struct v3_segments { - struct v3_segment cs; - struct v3_segment ds; - struct v3_segment es; - struct v3_segment fs; - struct v3_segment gs; - struct v3_segment ss; - struct v3_segment ldtr; - struct v3_segment gdtr; - struct v3_segment idtr; - struct v3_segment tr; -}; - - - - - - - - -typedef enum {SHADOW_PAGING, NESTED_PAGING} vmm_paging_mode_t; -typedef enum {REAL, /*UNREAL,*/ PROTECTED, PROTECTED_PAE, LONG, LONG_32_COMPAT, LONG_16_COMPAT} vm_cpu_mode_t; -typedef enum {PHYSICAL_MEM, VIRTUAL_MEM} vm_mem_mode_t; - -struct guest_info { - addr_t rip; - - vm_cpu_mode_t cpu_mode; - struct v3_gprs vm_regs; - struct v3_ctrl_regs ctrl_regs; - struct v3_segments segments; - - - -}; - - - -void PrintV3Segments(struct guest_info * info); -void PrintV3CtrlRegs(struct guest_info * info); -void PrintV3GPRs(struct guest_info * info); - -#endif - - - -#endif diff --git a/misc/decoder_test/vmm_decoder.h b/misc/decoder_test/vmm_decoder.h deleted file mode 100644 index 0c7dcf4..0000000 --- a/misc/decoder_test/vmm_decoder.h +++ /dev/null @@ -1,304 +0,0 @@ -#ifndef __VMM_EMULATE_H -#define __VMM_EMULATE_H - -#ifdef __V3VEE__ - -#include "test.h" -#include "vm_guest.h" - - -typedef enum {INVALID_OPERAND, REG_OPERAND, MEM_OPERAND, IMM_OPERAND} operand_type_t; - -struct x86_operand { - addr_t operand; - uint_t size; - operand_type_t type; -}; - -struct x86_prefixes { - uint_t lock : 1; // 0xF0 - uint_t repne : 1; // 0xF2 - uint_t repnz : 1; // 0xF2 - uint_t rep : 1; // 0xF3 - uint_t repe : 1; // 0xF3 - uint_t repz : 1; // 0xF3 - uint_t cs_override : 1; // 0x2E - uint_t ss_override : 1; // 0x36 - uint_t ds_override : 1; // 0x3E - uint_t es_override : 1; // 0x26 - uint_t fs_override : 1; // 0x64 - uint_t gs_override : 1; // 0x65 - uint_t br_not_taken : 1; // 0x2E - uint_t br_takend : 1; // 0x3E - uint_t op_size : 1; // 0x66 - uint_t addr_size : 1; // 0x67 -}; - - -struct x86_instr { - struct x86_prefixes prefixes; - uint_t instr_length; - addr_t opcode; // a pointer to the V3_OPCODE_[*] arrays defined below - uint_t num_operands; - struct x86_operand src_operand; - struct x86_operand dst_operand; - struct x86_operand third_operand; - void * decoder_data; -}; - - - /************************/ - /* EXTERNAL DECODER API */ -/************************/ -/* - This is an External API definition that must be implemented by a decoder -*/ - - -/* - * Initializes a decoder - */ -int init_decoder(); - -/* - * Decodes an instruction - * All addresses in arguments are in the host address space - * instr_ptr is the host address of the instruction - * IMPORTANT: make sure the instr_ptr is in contiguous host memory - * ie. Copy it to a buffer before the call - */ -int v3_decode(struct guest_info * info, addr_t instr_ptr, struct x86_instr * instr); - -/* - * Encodes an instruction - * All addresses in arguments are in the host address space - * The instruction is encoded from the struct, and copied into a 15 byte host buffer - * referenced by instr_buf - * any unused bytes at the end of instr_buf will be filled with nops - * IMPORTANT: instr_buf must be allocated and 15 bytes long - */ -int v3_encode(struct guest_info * info, struct x86_instr * instr, char * instr_buf); - - - - - - - - - -/* - * JRL: Some of this was taken from the Xen sources... - */ - -#define PACKED __attribute__((packed)) - -#define MODRM_MOD(x) ((x >> 6) & 0x3) -#define MODRM_REG(x) ((x >> 3) & 0x7) -#define MODRM_RM(x) (x & 0x7) - -struct modrm_byte { - uint_t rm : 3 PACKED; - uint_t reg : 3 PACKED; - uint_t mod : 2 PACKED; -}; - - -#define SIB_BASE(x) ((x >> 6) & 0x3) -#define SIB_INDEX(x) ((x >> 3) & 0x7) -#define SIB_SCALE(x) (x & 0x7) - -struct sib_byte { - uint_t base : 3 PACKED; - uint_t index : 3 PACKED; - uint_t scale : 2 PACKED; -}; - - - -#define MAKE_INSTR(nm, ...) static const uchar_t V3_OPCODE_##nm[] = { __VA_ARGS__ } - -/* - * Here's how it works: - * First byte: Length. - * Following bytes: Opcode bytes. - * Special case: Last byte, if zero, doesn't need to match. - */ -MAKE_INSTR(INVD, 2, 0x0f, 0x08); -MAKE_INSTR(CPUID, 2, 0x0f, 0xa2); -MAKE_INSTR(RDMSR, 2, 0x0f, 0x32); -MAKE_INSTR(WRMSR, 2, 0x0f, 0x30); -MAKE_INSTR(RDTSC, 2, 0x0f, 0x31); -MAKE_INSTR(RDTSCP, 3, 0x0f, 0x01, 0xf9); -MAKE_INSTR(CLI, 1, 0xfa); -MAKE_INSTR(STI, 1, 0xfb); -MAKE_INSTR(RDPMC, 2, 0x0f, 0x33); -MAKE_INSTR(CLGI, 3, 0x0f, 0x01, 0xdd); -MAKE_INSTR(STGI, 3, 0x0f, 0x01, 0xdc); -MAKE_INSTR(VMRUN, 3, 0x0f, 0x01, 0xd8); -MAKE_INSTR(VMLOAD, 3, 0x0f, 0x01, 0xda); -MAKE_INSTR(VMSAVE, 3, 0x0f, 0x01, 0xdb); -MAKE_INSTR(VMCALL, 3, 0x0f, 0x01, 0xd9); -MAKE_INSTR(PAUSE, 2, 0xf3, 0x90); -MAKE_INSTR(SKINIT, 3, 0x0f, 0x01, 0xde); -MAKE_INSTR(MOV2CR, 3, 0x0f, 0x22, 0x00); -MAKE_INSTR(MOVCR2, 3, 0x0f, 0x20, 0x00); -MAKE_INSTR(MOV2DR, 3, 0x0f, 0x23, 0x00); -MAKE_INSTR(MOVDR2, 3, 0x0f, 0x21, 0x00); -MAKE_INSTR(PUSHF, 1, 0x9c); -MAKE_INSTR(POPF, 1, 0x9d); -MAKE_INSTR(RSM, 2, 0x0f, 0xaa); -MAKE_INSTR(INVLPG, 3, 0x0f, 0x01, 0x00); -MAKE_INSTR(INVLPGA,3, 0x0f, 0x01, 0xdf); -MAKE_INSTR(HLT, 1, 0xf4); -MAKE_INSTR(CLTS, 2, 0x0f, 0x06); -MAKE_INSTR(LMSW, 3, 0x0f, 0x01, 0x00); -MAKE_INSTR(SMSW, 3, 0x0f, 0x01, 0x00); - - -#define PREFIX_LOCK 0xF0 -#define PREFIX_REPNE 0xF2 -#define PREFIX_REPNZ 0xF2 -#define PREFIX_REP 0xF3 -#define PREFIX_REPE 0xF3 -#define PREFIX_REPZ 0xF3 -#define PREFIX_CS_OVERRIDE 0x2E -#define PREFIX_SS_OVERRIDE 0x36 -#define PREFIX_DS_OVERRIDE 0x3E -#define PREFIX_ES_OVERRIDE 0x26 -#define PREFIX_FS_OVERRIDE 0x64 -#define PREFIX_GS_OVERRIDE 0x65 -#define PREFIX_BR_NOT_TAKEN 0x2E -#define PREFIX_BR_TAKEN 0x3E -#define PREFIX_OP_SIZE 0x66 -#define PREFIX_ADDR_SIZE 0x67 - -int opcode_cmp(const uchar_t * op1, const uchar_t * op2); - - -static inline int is_prefix_byte(char byte) { - switch (byte) { - case 0xF0: // lock - case 0xF2: // REPNE/REPNZ - case 0xF3: // REP or REPE/REPZ - case 0x2E: // CS override or Branch hint not taken (with Jcc instrs) - case 0x36: // SS override - case 0x3E: // DS override or Branch hint taken (with Jcc instrs) - case 0x26: // ES override - case 0x64: // FS override - case 0x65: // GS override - //case 0x2E: // branch not taken hint - // case 0x3E: // branch taken hint - case 0x66: // operand size override - case 0x67: // address size override - return 1; - break; - default: - return 0; - break; - } -} - - -static inline v3_reg_t get_gpr_mask(struct guest_info * info) { - switch (info->cpu_mode) { - case REAL: - return 0xffff; - break; - case PROTECTED: - return 0xffffffff; - default: - V3_ASSERT(0); - return 0; - } -} - - -static inline addr_t get_addr_linear(struct guest_info * info, addr_t addr, struct v3_segment * seg) { - switch (info->cpu_mode) { - case REAL: - // It appears that the segment values are computed and cached in the vmcb structure - // We Need to check this for Intel - /* return addr + (seg->selector << 4); - break;*/ - - case PROTECTED: - return addr + seg->base; - break; - default: - V3_ASSERT(0); - return 0; - } -} - - -typedef enum {INVALID_ADDR_TYPE, REG, DISP0, DISP8, DISP16, DISP32} modrm_mode_t; -typedef enum {INVALID_REG_SIZE, REG64, REG32, REG16, REG8} reg_size_t; - - - - - - -struct v3_gprs; - -static inline addr_t decode_register(struct v3_gprs * gprs, char reg_code, reg_size_t reg_size) { - addr_t reg_addr; - - switch (reg_code) { - case 0: - reg_addr = (addr_t)&(gprs->rax); - break; - case 1: - reg_addr = (addr_t)&(gprs->rcx); - break; - case 2: - reg_addr = (addr_t)&(gprs->rdx); - break; - case 3: - reg_addr = (addr_t)&(gprs->rbx); - break; - case 4: - if (reg_size == REG8) { - reg_addr = (addr_t)&(gprs->rax) + 1; - } else { - reg_addr = (addr_t)&(gprs->rsp); - } - break; - case 5: - if (reg_size == REG8) { - reg_addr = (addr_t)&(gprs->rcx) + 1; - } else { - reg_addr = (addr_t)&(gprs->rbp); - } - break; - case 6: - if (reg_size == REG8) { - reg_addr = (addr_t)&(gprs->rdx) + 1; - } else { - reg_addr = (addr_t)&(gprs->rsi); - } - break; - case 7: - if (reg_size == REG8) { - reg_addr = (addr_t)&(gprs->rbx) + 1; - } else { - reg_addr = (addr_t)&(gprs->rdi); - } - break; - default: - reg_addr = 0; - break; - } - - return reg_addr; -} - - - - - -#endif // !__V3VEE__ - - -#endif diff --git a/misc/decoder_test/vmm_xed.c b/misc/decoder_test/vmm_xed.c deleted file mode 100644 index bb5729b..0000000 --- a/misc/decoder_test/vmm_xed.c +++ /dev/null @@ -1,975 +0,0 @@ -#ifdef __DECODER_TEST__ -#include "vmm_decoder.h" -#include "vmm_xed.h" -#include -#include "vm_guest.h" -#include "test.h" -#else -#include -#include -#include -#include -#include - - -#endif - -static xed_state_t decoder_state; - -#define GPR_REGISTER 0 -#define SEGMENT_REGISTER 1 -#define CTRL_REGISTER 2 -#define DEBUG_REGISTER 3 - - - -/* Disgusting mask hack... - I can't think right now, so we'll do it this way... -*/ -static const ullong_t mask_1 = 0x00000000000000ffLL; -static const ullong_t mask_2 = 0x000000000000ffffLL; -static const ullong_t mask_4 = 0x00000000ffffffffLL; -static const ullong_t mask_8 = 0xffffffffffffffffLL; - - -#define MASK(val, length) ({ \ - ullong_t mask = 0x0LL; \ - switch (length) { \ - case 1: \ - mask = mask_1; \ - case 2: \ - mask = mask_2; \ - case 4: \ - mask = mask_4; \ - case 8: \ - mask = mask_8; \ - } \ - val & mask;}) \ - -struct memory_operand { - uint_t segment_size; - addr_t segment; - uint_t base_size; - addr_t base; - uint_t index_size; - addr_t index; - addr_t scale; - uint_t displacement_size; - ullong_t displacement; -}; - - - -// This returns a pointer to a V3_OPCODE_[*] array defined in vmm_decoder.h -static int get_opcode(xed_iform_enum_t iform, addr_t * opcode); - -static int xed_reg_to_v3_reg(struct guest_info * info, xed_reg_enum_t xed_reg, addr_t * v3_reg, uint_t * reg_len); -static int get_memory_operand(struct guest_info * info, xed_decoded_inst_t * xed_instr, uint_t index, struct x86_operand * operand); - -static int set_decoder_mode(struct guest_info * info, xed_state_t * state) { - switch (info->cpu_mode) { - case REAL: - if (state->mmode != XED_MACHINE_MODE_LEGACY_16) { - xed_state_init(state, - XED_MACHINE_MODE_LEGACY_16, - XED_ADDRESS_WIDTH_16b, - XED_ADDRESS_WIDTH_16b); - } - break; - case PROTECTED: - case PROTECTED_PAE: - if (state->mmode != XED_MACHINE_MODE_LEGACY_32) { - xed_state_init(state, - XED_MACHINE_MODE_LEGACY_32, - XED_ADDRESS_WIDTH_32b, - XED_ADDRESS_WIDTH_32b); - } - break; - case LONG: - if (state->mmode != XED_MACHINE_MODE_LONG_64) { - state->mmode = XED_MACHINE_MODE_LONG_64; - } - break; - default: - return -1; - } - return 0; -} - -int is_flags_reg(xed_reg_enum_t xed_reg) { - switch (xed_reg) { - case XED_REG_FLAGS: - case XED_REG_EFLAGS: - case XED_REG_RFLAGS: - return 1; - default: - return 0; - } -} - - - -int init_decoder() { - xed_tables_init(); - xed_state_zero(&decoder_state); - return 0; -} - - - -int v3_basic_mem_decode(struct guest_info * info, addr_t instr_ptr, struct basic_instr_info * instr_info) { - xed_decoded_inst_t xed_instr; - xed_error_enum_t xed_error; - - - if (set_decoder_mode(info, &decoder_state) == -1) { - PrintError("Could not set decoder mode\n"); - return -1; - } - - - xed_decoded_inst_zero_set_mode(&xed_instr, &decoder_state); - - xed_error = xed_decode(&xed_instr, - REINTERPRET_CAST(const xed_uint8_t *, instr_ptr), - XED_MAX_INSTRUCTION_BYTES); - - if (xed_error != XED_ERROR_NONE) { - PrintError("Xed error: %s\n", xed_error_enum_t2str(xed_error)); - return -1; - } - - instr_info->instr_length = xed_decoded_inst_get_length(&xed_instr); - - - if (xed_decoded_inst_number_of_memory_operands(&xed_instr) == 0) { - PrintError("Tried to decode memory operation with no memory operands\n"); - return -1; - } - - instr_info->op_size = xed_decoded_inst_get_memory_operand_length(&xed_instr, 0); - - - xed_category_enum_t cat = xed_decoded_inst_get_category(&xed_instr); - if (cat == XED_CATEGORY_STRINGOP) { - instr_info->str_op = 1; - } else { - instr_info->str_op = 0; - } - - xed_operand_values_t * operands = xed_decoded_inst_operands(&xed_instr); - if (xed_operand_values_has_real_rep(operands)) { - instr_info->has_rep = 1; - } else { - instr_info->has_rep = 0; - } - - return 0; -} - - - -int v3_decode(struct guest_info * info, addr_t instr_ptr, struct x86_instr * instr) { - xed_decoded_inst_t xed_instr; - xed_error_enum_t xed_error; - - - - if (set_decoder_mode(info, &decoder_state) == -1) { - PrintError("Could not set decoder mode\n"); - return -1; - } - - - - xed_decoded_inst_zero_set_mode(&xed_instr, &decoder_state); - - xed_error = xed_decode(&xed_instr, - REINTERPRET_CAST(const xed_uint8_t *, instr_ptr), - XED_MAX_INSTRUCTION_BYTES); - - - if (xed_error != XED_ERROR_NONE) { - PrintError("Xed error: %s\n", xed_error_enum_t2str(xed_error)); - return -1; - } - - const xed_inst_t * xi = xed_decoded_inst_inst(&xed_instr); - - instr->instr_length = xed_decoded_inst_get_length(&xed_instr); - instr->num_operands = xed_decoded_inst_noperands(&xed_instr); - - xed_iform_enum_t iform = xed_decoded_inst_get_iform_enum(&xed_instr); - - - PrintDebug("iform=%s\n", xed_iform_enum_t2str(iform)); - - - if (instr->num_operands > 3) { - PrintDebug("Special Case Not Handled\n"); - return -1; - // special case - } else if (instr->num_operands == 3) { - const xed_operand_t * op = xed_inst_operand(xi, 2); - xed_operand_enum_t op_enum = xed_operand_name(op); - - if ((!xed_operand_is_register(op_enum)) || - (!is_flags_reg(xed_decoded_inst_get_reg(&xed_instr, op_enum)))) { - // special case - PrintDebug("Special Case not handled\n"); - return -1; - } - } - - - - - - if (get_opcode(iform, &(instr->opcode)) == -1) { - PrintDebug("Could not get opcode. (iform=%s)\n", xed_iform_enum_t2str(iform)); - return -1; - } - - - - - //PrintDebug("Number of operands: %d\n", instr->num_operands); - //PrintDebug("INSTR length: %d\n", instr->instr_length); - - // set first operand - if (instr->num_operands >= 1) { - const xed_operand_t * op = xed_inst_operand(xi, 0); - xed_operand_enum_t op_enum = xed_operand_name(op); - - struct x86_operand * v3_op = NULL; - - if (xed_operand_written(op)) { - v3_op = &(instr->dst_operand); - } else { - v3_op = &(instr->src_operand); - } - - - if (xed_operand_is_register(op_enum)) { - xed_reg_enum_t xed_reg = xed_decoded_inst_get_reg(&xed_instr, op_enum); - int v3_reg_type = xed_reg_to_v3_reg(info, - xed_reg, - &(v3_op->operand), - &(v3_op->size)); - - if (v3_reg_type == -1) { - PrintError("First operand is an Unhandled Operand: %s\n", xed_reg_enum_t2str(xed_reg)); - v3_op->type = INVALID_OPERAND; - return -1; - } else if (v3_reg_type == SEGMENT_REGISTER) { - struct v3_segment * seg_reg = (struct v3_segment *)(v3_op->operand); - v3_op->operand = (addr_t)&(seg_reg->selector); - } - - v3_op->type = REG_OPERAND; - } else { - - switch (op_enum) { - - case XED_OPERAND_MEM0: - { - /* - struct x86_operand * operand = &(instr->dst_operand); - - if (xed_decoded_inst_mem_read(&xed_instr, 0)) { - operand = &(instr->src_operand); - } else if (xed_decoded_inst_mem_written(&xed_instr, 0)) { - operand = &(instr->dst_operand); - } - */ - - if (get_memory_operand(info, &xed_instr, 0, v3_op) == -1) { - PrintError("Could not get first memory operand\n"); - return -1; - } - } - break; - - case XED_OPERAND_MEM1: - case XED_OPERAND_IMM1: - // illegal - PrintError("Illegal Operand Order\n"); - return -1; - - - case XED_OPERAND_IMM0: - case XED_OPERAND_AGEN: - case XED_OPERAND_PTR: - case XED_OPERAND_RELBR: - default: - PrintError("Unhandled Operand Type\n"); - return -1; - - - } - } - } - - // set second operand - if (instr->num_operands >= 2) { - const xed_operand_t * op = xed_inst_operand(xi, 1); - // xed_operand_type_enum_t op_type = xed_operand_type(op); - xed_operand_enum_t op_enum = xed_operand_name(op); - - struct x86_operand * v3_op; - - if (xed_operand_written(op)) { - v3_op = &(instr->dst_operand); - } else { - v3_op = &(instr->src_operand); - } - - - if (xed_operand_is_register(op_enum)) { - xed_reg_enum_t xed_reg = xed_decoded_inst_get_reg(&xed_instr, op_enum); - int v3_reg_type = xed_reg_to_v3_reg(info, - xed_reg, - &(v3_op->operand), - &(v3_op->size)); - if (v3_reg_type == -1) { - PrintError("Second operand is an Unhandled Operand: %s\n", xed_reg_enum_t2str(xed_reg)); - v3_op->type = INVALID_OPERAND; - return -1; - } else if (v3_reg_type == SEGMENT_REGISTER) { - struct v3_segment * seg_reg = (struct v3_segment *)(v3_op->operand); - v3_op->operand = (addr_t)&(seg_reg->selector); - } - - v3_op->type = REG_OPERAND; - - - } else { - - switch (op_enum) { - - case XED_OPERAND_MEM0: - { - - /* - if (xed_decoded_inst_mem_read(&xed_instr, 0)) { - v3_op = &(instr->src_operand); - } else if (xed_decoded_inst_mem_written(&xed_instr, 0)) { - v3_op = &(instr->dst_operand); - } - */ - - if (get_memory_operand(info, &xed_instr, 0, v3_op) == -1) { - PrintError("Could not get first memory operand\n"); - return -1; - } - } - break; - - case XED_OPERAND_IMM0: - { - instr->src_operand.size = xed_decoded_inst_get_immediate_width(&xed_instr); - - if (instr->src_operand.size > 4) { - PrintError("Unhandled 64 bit immediates\n"); - return -1; - } - instr->src_operand.operand = xed_decoded_inst_get_unsigned_immediate(&xed_instr); - - instr->src_operand.type = IMM_OPERAND; - - } - break; - - case XED_OPERAND_MEM1: - case XED_OPERAND_IMM1: - // illegal - PrintError("Illegal Operand Order\n"); - return -1; - - case XED_OPERAND_AGEN: - case XED_OPERAND_PTR: - case XED_OPERAND_RELBR: - default: - PrintError("Unhandled Operand Type\n"); - return -1; - } - } - - } - - // set third operand - if (instr->num_operands >= 3) { - const xed_operand_t * op = xed_inst_operand(xi, 2); - // xed_operand_type_enum_t op_type = xed_operand_type(op); - xed_operand_enum_t op_enum = xed_operand_name(op); - - if (xed_operand_is_register(op_enum)) { - xed_reg_enum_t xed_reg = xed_decoded_inst_get_reg(&xed_instr, op_enum); - int v3_reg_type = xed_reg_to_v3_reg(info, - xed_reg, - &(instr->third_operand.operand), - &(instr->third_operand.size)); - - if (v3_reg_type == -1) { - PrintError("Third operand is an Unhandled Operand: %s\n", xed_reg_enum_t2str(xed_reg)); - instr->third_operand.type = INVALID_OPERAND; - return -1; - } else if (v3_reg_type == SEGMENT_REGISTER) { - struct v3_segment * seg_reg = (struct v3_segment *)(instr->third_operand.operand); - instr->third_operand.operand = (addr_t)&(seg_reg->selector); - } - - - instr->third_operand.type = REG_OPERAND; - - - } else { - // PrintError("Unhandled third operand type %s\n", xed_operand_type_enum_t2str(op_type)); - return -1; - } - - - } - - - - return 0; -} - - -int v3_encode(struct guest_info * info, struct x86_instr * instr, char * instr_buf) { - - return -1; -} - - - - - -static int get_memory_operand(struct guest_info * info, xed_decoded_inst_t * xed_instr, uint_t op_index, struct x86_operand * operand) { - struct memory_operand mem_op; - - addr_t seg; - addr_t base; - addr_t scale; - addr_t index; - ullong_t displacement; - // struct v3_segment * seg_reg; - - - - - memset((void*)&mem_op, '\0', sizeof(struct memory_operand)); - - xed_reg_enum_t xed_seg = xed_decoded_inst_get_seg_reg(xed_instr, op_index); - if (xed_seg != XED_REG_INVALID) { - struct v3_segment *tmp_segment; - if (xed_reg_to_v3_reg(info, xed_seg, (addr_t *)&tmp_segment, &(mem_op.segment_size)) == -1) { - PrintError("Unhandled Segment Register\n"); - return -1; - } - mem_op.segment = tmp_segment->base; - } - - xed_reg_enum_t xed_base = xed_decoded_inst_get_base_reg(xed_instr, op_index); - if (xed_base != XED_REG_INVALID) { - addr_t base_reg; - if (xed_reg_to_v3_reg(info, xed_base, &base_reg, &(mem_op.base_size)) == -1) { - PrintError("Unhandled Base register\n"); - return -1; - } - mem_op.base = *(addr_t *)base_reg; - } - - - - xed_reg_enum_t xed_idx = xed_decoded_inst_get_index_reg(xed_instr, op_index); - if ((op_index == 0) && (xed_idx != XED_REG_INVALID)) { - addr_t index_reg; - - if (xed_reg_to_v3_reg(info, xed_idx, &index_reg, &(mem_op.index_size)) == -1) { - PrintError("Unhandled Index Register\n"); - return -1; - } - - mem_op.index= *(addr_t *)index_reg; - - xed_uint_t xed_scale = xed_decoded_inst_get_scale(xed_instr, op_index); - if (xed_scale != 0) { - mem_op.scale = xed_scale; - } - } - - - xed_uint_t disp_bits = xed_decoded_inst_get_memory_displacement_width(xed_instr, op_index); - if (disp_bits) { - xed_int64_t xed_disp = xed_decoded_inst_get_memory_displacement(xed_instr, op_index); - - mem_op.displacement_size = disp_bits / 8; - mem_op.displacement = xed_disp; - - } - - operand->type = MEM_OPERAND; - operand->size = xed_decoded_inst_get_memory_operand_length(xed_instr, op_index); - - - - PrintDebug("Struct: Seg=%x, base=%x, index=%x, scale=%x, displacement=%x\n", - mem_op.segment, mem_op.base, mem_op.index, mem_op.scale, mem_op.displacement); - - - seg = mem_op.segment; - base = MASK(mem_op.base, mem_op.base_size); - index = MASK(mem_op.index, mem_op.index_size); - scale = mem_op.scale; - displacement = MASK(mem_op.displacement, mem_op.displacement_size); - - PrintDebug("Seg=%x, base=%x, index=%x, scale=%x, displacement=%x\n", seg, base, index, scale, displacement); - - operand->operand = seg + base + (scale * index) + displacement; - return 0; -} - - -static int xed_reg_to_v3_reg(struct guest_info * info, xed_reg_enum_t xed_reg, addr_t * v3_reg, uint_t * reg_len) { - - switch (xed_reg) { - case XED_REG_INVALID: - *v3_reg = 0; - *reg_len = 0; - return -1; - - /* - * GPRs - */ - case XED_REG_RAX: - *v3_reg = (addr_t)&(info->vm_regs.rax); - *reg_len = 8; - return GPR_REGISTER; - case XED_REG_EAX: - *v3_reg = (addr_t)&(info->vm_regs.rax); - *reg_len = 4; - return GPR_REGISTER; - case XED_REG_AX: - *v3_reg = (addr_t)&(info->vm_regs.rax); - *reg_len = 2; - return GPR_REGISTER; - case XED_REG_AH: - *v3_reg = (addr_t)(&(info->vm_regs.rax)) + 1; - *reg_len = 1; - return GPR_REGISTER; - case XED_REG_AL: - *v3_reg = (addr_t)&(info->vm_regs.rax); - *reg_len = 1; - return GPR_REGISTER; - - case XED_REG_RCX: - *v3_reg = (addr_t)&(info->vm_regs.rcx); - *reg_len = 8; - return GPR_REGISTER; - case XED_REG_ECX: - *v3_reg = (addr_t)&(info->vm_regs.rcx); - *reg_len = 4; - return GPR_REGISTER; - case XED_REG_CX: - *v3_reg = (addr_t)&(info->vm_regs.rcx); - *reg_len = 2; - return GPR_REGISTER; - case XED_REG_CH: - *v3_reg = (addr_t)(&(info->vm_regs.rcx)) + 1; - *reg_len = 1; - return GPR_REGISTER; - case XED_REG_CL: - *v3_reg = (addr_t)&(info->vm_regs.rcx); - *reg_len = 1; - return GPR_REGISTER; - - case XED_REG_RDX: - *v3_reg = (addr_t)&(info->vm_regs.rdx); - *reg_len = 8; - return GPR_REGISTER; - case XED_REG_EDX: - *v3_reg = (addr_t)&(info->vm_regs.rdx); - *reg_len = 4; - return GPR_REGISTER; - case XED_REG_DX: - *v3_reg = (addr_t)&(info->vm_regs.rdx); - *reg_len = 2; - return GPR_REGISTER; - case XED_REG_DH: - *v3_reg = (addr_t)(&(info->vm_regs.rdx)) + 1; - *reg_len = 1; - return GPR_REGISTER; - case XED_REG_DL: - *v3_reg = (addr_t)&(info->vm_regs.rdx); - *reg_len = 1; - return GPR_REGISTER; - - case XED_REG_RBX: - *v3_reg = (addr_t)&(info->vm_regs.rbx); - *reg_len = 8; - return GPR_REGISTER; - case XED_REG_EBX: - *v3_reg = (addr_t)&(info->vm_regs.rbx); - *reg_len = 4; - return GPR_REGISTER; - case XED_REG_BX: - *v3_reg = (addr_t)&(info->vm_regs.rbx); - *reg_len = 2; - return GPR_REGISTER; - case XED_REG_BH: - *v3_reg = (addr_t)(&(info->vm_regs.rbx)) + 1; - *reg_len = 1; - return GPR_REGISTER; - case XED_REG_BL: - *v3_reg = (addr_t)&(info->vm_regs.rbx); - *reg_len = 1; - return GPR_REGISTER; - - - case XED_REG_RSP: - *v3_reg = (addr_t)&(info->vm_regs.rsp); - *reg_len = 8; - return GPR_REGISTER; - case XED_REG_ESP: - *v3_reg = (addr_t)&(info->vm_regs.rsp); - *reg_len = 4; - return GPR_REGISTER; - case XED_REG_SP: - *v3_reg = (addr_t)&(info->vm_regs.rsp); - *reg_len = 2; - return GPR_REGISTER; - case XED_REG_SPL: - *v3_reg = (addr_t)&(info->vm_regs.rsp); - *reg_len = 1; - return GPR_REGISTER; - - case XED_REG_RBP: - *v3_reg = (addr_t)&(info->vm_regs.rbp); - *reg_len = 8; - return GPR_REGISTER; - case XED_REG_EBP: - *v3_reg = (addr_t)&(info->vm_regs.rbp); - *reg_len = 4; - return GPR_REGISTER; - case XED_REG_BP: - *v3_reg = (addr_t)&(info->vm_regs.rbp); - *reg_len = 2; - return GPR_REGISTER; - case XED_REG_BPL: - *v3_reg = (addr_t)&(info->vm_regs.rbp); - *reg_len = 1; - return GPR_REGISTER; - - - - case XED_REG_RSI: - *v3_reg = (addr_t)&(info->vm_regs.rsi); - *reg_len = 8; - return GPR_REGISTER; - case XED_REG_ESI: - *v3_reg = (addr_t)&(info->vm_regs.rsi); - *reg_len = 4; - return GPR_REGISTER; - case XED_REG_SI: - *v3_reg = (addr_t)&(info->vm_regs.rsi); - *reg_len = 2; - return GPR_REGISTER; - case XED_REG_SIL: - *v3_reg = (addr_t)&(info->vm_regs.rsi); - *reg_len = 1; - return GPR_REGISTER; - - - case XED_REG_RDI: - *v3_reg = (addr_t)&(info->vm_regs.rdi); - *reg_len = 8; - return GPR_REGISTER; - case XED_REG_EDI: - *v3_reg = (addr_t)&(info->vm_regs.rdi); - *reg_len = 4; - return GPR_REGISTER; - case XED_REG_DI: - *v3_reg = (addr_t)&(info->vm_regs.rdi); - *reg_len = 2; - return GPR_REGISTER; - case XED_REG_DIL: - *v3_reg = (addr_t)&(info->vm_regs.rdi); - *reg_len = 1; - return GPR_REGISTER; - - - /* - * CTRL REGS - */ - case XED_REG_RIP: - *v3_reg = (addr_t)&(info->rip); - *reg_len = 8; - return CTRL_REGISTER; - case XED_REG_EIP: - *v3_reg = (addr_t)&(info->rip); - *reg_len = 4; - return CTRL_REGISTER; - case XED_REG_IP: - *v3_reg = (addr_t)&(info->rip); - *reg_len = 2; - return CTRL_REGISTER; - - case XED_REG_FLAGS: - *v3_reg = (addr_t)&(info->ctrl_regs.rflags); - *reg_len = 2; - return CTRL_REGISTER; - case XED_REG_EFLAGS: - *v3_reg = (addr_t)&(info->ctrl_regs.rflags); - *reg_len = 4; - return CTRL_REGISTER; - case XED_REG_RFLAGS: - *v3_reg = (addr_t)&(info->ctrl_regs.rflags); - *reg_len = 8; - return CTRL_REGISTER; - - case XED_REG_CR0: - *v3_reg = (addr_t)&(info->ctrl_regs.cr0); - *reg_len = 4; - return CTRL_REGISTER; - case XED_REG_CR2: - *v3_reg = (addr_t)&(info->ctrl_regs.cr2); - *reg_len = 4; - return CTRL_REGISTER; - case XED_REG_CR3: - *v3_reg = (addr_t)&(info->ctrl_regs.cr3); - *reg_len = 4; - return CTRL_REGISTER; - case XED_REG_CR4: - *v3_reg = (addr_t)&(info->ctrl_regs.cr4); - *reg_len = 4; - return CTRL_REGISTER; - case XED_REG_CR8: - *v3_reg = (addr_t)&(info->ctrl_regs.cr8); - *reg_len = 4; - return CTRL_REGISTER; - - case XED_REG_CR1: - case XED_REG_CR5: - case XED_REG_CR6: - case XED_REG_CR7: - case XED_REG_CR9: - case XED_REG_CR10: - case XED_REG_CR11: - case XED_REG_CR12: - case XED_REG_CR13: - case XED_REG_CR14: - case XED_REG_CR15: - return -1; - - - - - /* - * SEGMENT REGS - */ - case XED_REG_CS: - *v3_reg = (addr_t)&(info->segments.cs); - return SEGMENT_REGISTER; - case XED_REG_DS: - *v3_reg = (addr_t)&(info->segments.ds); - return SEGMENT_REGISTER; - case XED_REG_ES: - *v3_reg = (addr_t)&(info->segments.es); - return SEGMENT_REGISTER; - case XED_REG_SS: - *v3_reg = (addr_t)&(info->segments.ss); - return SEGMENT_REGISTER; - case XED_REG_FS: - *v3_reg = (addr_t)&(info->segments.fs); - return SEGMENT_REGISTER; - case XED_REG_GS: - *v3_reg = (addr_t)&(info->segments.gs); - return SEGMENT_REGISTER; - - - case XED_REG_GDTR: - case XED_REG_LDTR: - case XED_REG_IDTR: - case XED_REG_TR: - PrintError("Segment selector operand... Don't know how to handle this...\n"); - return -1; - - /* - * DEBUG REGS - */ - case XED_REG_DR0: - case XED_REG_DR1: - case XED_REG_DR2: - case XED_REG_DR3: - case XED_REG_DR4: - case XED_REG_DR5: - case XED_REG_DR6: - case XED_REG_DR7: - case XED_REG_DR8: - case XED_REG_DR9: - case XED_REG_DR10: - case XED_REG_DR11: - case XED_REG_DR12: - case XED_REG_DR13: - case XED_REG_DR14: - case XED_REG_DR15: - return -1; - - - - - case XED_REG_R8: - case XED_REG_R8D: - case XED_REG_R8W: - case XED_REG_R8B: - - case XED_REG_R9: - case XED_REG_R9D: - case XED_REG_R9W: - case XED_REG_R9B: - - case XED_REG_R10: - case XED_REG_R10D: - case XED_REG_R10W: - case XED_REG_R10B: - - case XED_REG_R11: - case XED_REG_R11D: - case XED_REG_R11W: - case XED_REG_R11B: - - case XED_REG_R12: - case XED_REG_R12D: - case XED_REG_R12W: - case XED_REG_R12B: - - case XED_REG_R13: - case XED_REG_R13D: - case XED_REG_R13W: - case XED_REG_R13B: - - case XED_REG_R14: - case XED_REG_R14D: - case XED_REG_R14W: - case XED_REG_R14B: - - case XED_REG_R15: - case XED_REG_R15D: - case XED_REG_R15W: - case XED_REG_R15B: - - case XED_REG_XMM0: - case XED_REG_XMM1: - case XED_REG_XMM2: - case XED_REG_XMM3: - case XED_REG_XMM4: - case XED_REG_XMM5: - case XED_REG_XMM6: - case XED_REG_XMM7: - case XED_REG_XMM8: - case XED_REG_XMM9: - case XED_REG_XMM10: - case XED_REG_XMM11: - case XED_REG_XMM12: - case XED_REG_XMM13: - case XED_REG_XMM14: - case XED_REG_XMM15: - - case XED_REG_MMX0: - case XED_REG_MMX1: - case XED_REG_MMX2: - case XED_REG_MMX3: - case XED_REG_MMX4: - case XED_REG_MMX5: - case XED_REG_MMX6: - case XED_REG_MMX7: - - case XED_REG_ST0: - case XED_REG_ST1: - case XED_REG_ST2: - case XED_REG_ST3: - case XED_REG_ST4: - case XED_REG_ST5: - case XED_REG_ST6: - case XED_REG_ST7: - - case XED_REG_ONE: - case XED_REG_STACKPUSH: - case XED_REG_STACKPOP: - - case XED_REG_TSC: - case XED_REG_TSCAUX: - case XED_REG_MSRS: - - case XED_REG_X87CONTROL: - case XED_REG_X87STATUS: - case XED_REG_X87TOP: - case XED_REG_X87TAG: - case XED_REG_X87PUSH: - case XED_REG_X87POP: - case XED_REG_X87POP2: - - case XED_REG_MXCSR: - - case XED_REG_TMP0: - case XED_REG_TMP1: - case XED_REG_TMP2: - case XED_REG_TMP3: - case XED_REG_TMP4: - case XED_REG_TMP5: - case XED_REG_TMP6: - case XED_REG_TMP7: - case XED_REG_TMP8: - case XED_REG_TMP9: - case XED_REG_TMP10: - case XED_REG_TMP11: - case XED_REG_TMP12: - case XED_REG_TMP13: - case XED_REG_TMP14: - case XED_REG_TMP15: - - case XED_REG_LAST: - - case XED_REG_ERROR: - // error?? - return -1; - - } - - - return 0; -} - - - -static int get_opcode(xed_iform_enum_t iform, addr_t * opcode) { - - switch (iform) { - case XED_IFORM_MOV_CR_GPR64_CR: - case XED_IFORM_MOV_CR_GPR32_CR: - *opcode = (addr_t)&V3_OPCODE_MOVCR2; - break; - - case XED_IFORM_MOV_CR_CR_GPR64: - case XED_IFORM_MOV_CR_CR_GPR32: - *opcode = (addr_t)&V3_OPCODE_MOV2CR; - break; - - - case XED_IFORM_LMSW_GPR16: - *opcode = (addr_t)&V3_OPCODE_LMSW; - break; - - case XED_IFORM_CLTS: - *opcode = (addr_t)&V3_OPCODE_CLTS; - break; - - default: - *opcode = 0; - return -1; - } - - return 0; -} diff --git a/misc/decoder_test/vmm_xed.h b/misc/decoder_test/vmm_xed.h deleted file mode 100644 index ff460c5..0000000 --- a/misc/decoder_test/vmm_xed.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __VMM_XED_H__ -#define __VMM_XED_H__ - -#ifdef __V3VEE__ - - - -#endif // ! __V3VEE__ - -#endif diff --git a/misc/decoder_test/xed-ex1 b/misc/decoder_test/xed-ex1 deleted file mode 100755 index 0b1f97b..0000000 Binary files a/misc/decoder_test/xed-ex1 and /dev/null differ diff --git a/misc/init.el b/misc/init.el deleted file mode 100644 index e98b37b..0000000 --- a/misc/init.el +++ /dev/null @@ -1,68 +0,0 @@ -;; .emacs - -;;; uncomment this line to disable loading of "default.el" at startup -;; (setq inhibit-default-init t) - -(defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version)) - -;; turn on font-lock mode -(when (fboundp 'global-font-lock-mode) - (global-font-lock-mode t)) - -;; enable visual feedback on selections -;(setq transient-mark-mode t) - -;; default to better frame titles -;;(setq frame-title-format -;; (concat "%b - emacs@" system-name)) -;; stop at the end of the file, not just add lines -(setq next-line-add-newlines nil) - - -(cond ((not running-xemacs) - (global-font-lock-mode t) -)) - - -(when window-system - ;; enable wheelmouse support by default - (mwheel-install)) - -(global-set-key "%" 'match-paren) - - (defun match-paren (arg) - "Go to the matching parenthesis if on parenthesis otherwise insert %." - (interactive "p") - (cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1)) - ((looking-at "\\s\)") (forward-char 1) (backward-list 1)) - (t (self-insert-command (or arg 1))))) - - -(c-set-offset 'case-label 4) -(setq c-basic-offset 4) - -(custom-set-variables - '(paren-mode (quote sexp) nil (paren)) - '(column-number-mode t) - '(line-number-mode t) - '(font-lock-mode t nil (font-lock)) -) -(custom-set-faces) - - - -(set-face-background 'default "Black") -(set-face-foreground 'default "green") -;;(set-face-foreground 'highlight "LightSeaGreen") -;;(set-face-background 'highlight "blue") - -(set-face-foreground 'font-lock-function-name-face "White") -(set-face-foreground 'font-lock-keyword-face "Red") -(set-face-background 'font-lock-keyword-face "black") -(set-face-foreground 'font-lock-string-face "LightGoldenRod") -(set-face-foreground 'font-lock-comment-face "Grey") - - -(set-face-background 'modeline "CadetBlue") -(set-face-foreground 'modeline "black"); - diff --git a/misc/ramdisk.c b/misc/ramdisk.c deleted file mode 100644 index 04602f7..0000000 --- a/misc/ramdisk.c +++ /dev/null @@ -1,2571 +0,0 @@ -/* - * - * Copyright (C) 2002 MandrakeSoft S.A. - * - * MandrakeSoft S.A. - * 43, rue d'Aboukir - * 75002 Paris - France - * http://www.linux-mandrake.com/ - * http://www.mandrakesoft.com/ - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Major modifications made for the V3VEE project - * - * The V3VEE Project is a joint project between Northwestern University - * and the University of New Mexico. You can find out more at - * http://www.v3vee.org - * - * Copyright (c) 2008, Zheng Cui - * Copyright (c) 2008, Jack Lange - * Copyright (c) 2008, The V3VEE Project - * All rights reserved for original changes - * - */ - - -#include -#include -#include -#include -#include - -#ifndef TRACE_RAMDISK -#undef PrintTrace -#define PrintTrace(fmt, args...) -#endif - - -#ifndef DEBUG_RAMDISK -#undef PrintDebug -#define PrintDebug(fmt, args...) -#endif - - - - - -/* - * Data type definitions - * - */ -#define INDEX_PULSE_CYCLE 10 - - - - -#define INTR_REASON_BIT_ERR 0x01 -#define UNABLE_FIND_TAT_CHANNEL_ERR 0x02 -#define DRQ_ERR 0x03 -#define READ_BUF_GT_512 0x04 - - - -#define PRI_DATA_PORT 0x1f0 -#define PRI_FEATURES_PORT 0x1f1 -#define PRI_SECT_CNT_PORT 0x1f2 -#define PRI_SECT_ADDR1_PORT 0x1f3 -#define PRI_SECT_ADDR2_PORT 0x1f4 -#define PRI_SECT_ADDR3_PORT 0x1f5 -#define PRI_DRV_SEL_PORT 0x1f6 -#define PRI_CMD_PORT 0x1f7 -#define PRI_CTRL_PORT 0x3f6 -#define PRI_ADDR_REG_PORT 0x3f7 - -#define SEC_DATA_PORT 0x170 -#define SEC_FEATURES_PORT 0x171 -#define SEC_SECT_CNT_PORT 0x172 -#define SEC_SECT_ADDR1_PORT 0x173 -#define SEC_SECT_ADDR2_PORT 0x174 -#define SEC_SECT_ADDR3_PORT 0x175 -#define SEC_DRV_SEL_PORT 0x176 -#define SEC_CMD_PORT 0x177 -#define SEC_CTRL_PORT 0x376 -#define SEC_ADDR_REG_PORT 0x377 - - -#define PACKET_SIZE 12 - - - -static const char cdrom_str[] = "CD-ROM"; -static const char harddisk_str[] = "HARDDISK"; -static const char none_str[] = "NONE"; - - -static inline const char * device_type_to_str(device_type_t type) { - switch (type) { - case IDE_DISK: - return harddisk_str; - case IDE_CDROM: - return cdrom_str; - case IDE_NONE: - return none_str; - default: - return NULL; - } -} - - -static inline void write_features(struct channel_t * channel, uchar_t value) { - channel->drives[0].controller.features = value; - channel->drives[1].controller.features = value; -} - - -static inline void write_sector_count(struct channel_t * channel, uchar_t value) { - channel->drives[0].controller.sector_count = value; - channel->drives[1].controller.sector_count = value; -} - -static inline void write_sector_number(struct channel_t * channel, uchar_t value) { - channel->drives[0].controller.sector_no = value; - channel->drives[1].controller.sector_no = value; -} - - -static inline void write_cylinder_low(struct channel_t * channel, uchar_t value) { - channel->drives[0].controller.cylinder_no &= 0xff00; - channel->drives[0].controller.cylinder_no |= value; - channel->drives[1].controller.cylinder_no &= 0xff00; - channel->drives[1].controller.cylinder_no |= value; -} - -static inline void write_cylinder_high(struct channel_t * channel, uchar_t value) { - ushort_t val2 = value; - val2 = val2 << 8; - channel->drives[0].controller.cylinder_no &= 0x00ff; - channel->drives[0].controller.cylinder_no |= (val2 & 0xff00); - - channel->drives[1].controller.cylinder_no &= 0x00ff; - channel->drives[1].controller.cylinder_no |= (val2 & 0xff00); -} - -static inline void write_head_no(struct channel_t * channel, uchar_t value) { - channel->drives[0].controller.head_no = value; - channel->drives[1].controller.head_no = value; -} - -static inline void write_lba_mode(struct channel_t * channel, uchar_t value) { - channel->drives[0].controller.lba_mode = value; - channel->drives[1].controller.lba_mode = value; -} - - -static inline uint_t get_channel_no(struct ramdisk_t * ramdisk, struct channel_t * channel) { - return (((uchar_t *)channel - (uchar_t *)(ramdisk->channels)) / sizeof(struct channel_t)); -} - -static inline uint_t get_drive_no(struct channel_t * channel, struct drive_t * drive) { - return (((uchar_t *)drive - (uchar_t*)(channel->drives)) / sizeof(struct drive_t)); -} - -static inline struct drive_t * get_selected_drive(struct channel_t * channel) { - return &(channel->drives[channel->drive_select]); -} - - -static inline int is_primary_port(struct ramdisk_t * ramdisk, ushort_t port) { - switch(port) - { - case PRI_DATA_PORT: - case PRI_FEATURES_PORT: - case PRI_SECT_CNT_PORT: - case PRI_SECT_ADDR1_PORT: - case PRI_SECT_ADDR2_PORT: - case PRI_SECT_ADDR3_PORT: - case PRI_DRV_SEL_PORT: - case PRI_CMD_PORT: - case PRI_CTRL_PORT: - return 1; - default: - return 0; - } -} - - - -static inline int is_secondary_port(struct ramdisk_t * ramdisk, ushort_t port) { - switch(port) - { - case SEC_DATA_PORT: - case SEC_FEATURES_PORT: - case SEC_SECT_CNT_PORT: - case SEC_SECT_ADDR1_PORT: - case SEC_SECT_ADDR2_PORT: - case SEC_SECT_ADDR3_PORT: - case SEC_DRV_SEL_PORT: - case SEC_CMD_PORT: - case SEC_CTRL_PORT: - return 1; - default: - return 0; - } -} - -static inline int num_drives_on_channel(struct channel_t * channel) { - if ((channel->drives[0].device_type == IDE_NONE) && - (channel->drives[1].device_type == IDE_NONE)) { - return 0; - } else if ((channel->drives[0].device_type != IDE_NONE) && - (channel->drives[1].device_type != IDE_NONE)) { - return 2; - } else { - return 1; - } -} - - - -static inline uchar_t extract_bits(uchar_t * buf, uint_t buf_offset, uint_t bit_offset, uint_t num_bits) { - uchar_t val = buf[buf_offset]; - val = val >> bit_offset; - val &= ((1 << num_bits) -1); - return val; -} - - -static inline uchar_t get_packet_field(struct channel_t * channel, uint_t packet_offset, uint_t bit_offset, uint_t num_bits) { - struct drive_t * drive = get_selected_drive(channel); - return extract_bits(drive->controller.buffer, packet_offset, bit_offset, num_bits); -} - - -static inline uchar_t get_packet_byte(struct channel_t * channel, uint_t offset) { - struct drive_t * drive = get_selected_drive(channel); - return drive->controller.buffer[offset]; -} - -static inline uint16_t get_packet_word(struct channel_t * channel, uint_t offset) { - struct drive_t * drive = get_selected_drive(channel); - uint16_t val = drive->controller.buffer[offset]; - val = val << 8; - val |= drive->controller.buffer[offset + 1]; - return val; -} - - -static inline uint16_t rd_read_16bit(const uint8_t* buf) { - return (buf[0] << 8) | buf[1]; -} - - - -static inline uint32_t rd_read_32bit(const uint8_t* buf) { - return (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; -} - -//////////////////////////////////////////////////////////////////////////// - - -/* - * ATAPI routines - */ - - -static void rd_init_mode_sense_single(struct vm_device * dev, struct channel_t * channel, const void * src, int size); - -static void rd_command_aborted(struct vm_device * dev, struct channel_t * channel, unsigned value); - - - - -static int handle_atapi_packet_command(struct vm_device * dev, - struct channel_t * channel, - ushort_t val); - -static int rd_init_send_atapi_command(struct vm_device * dev, - struct channel_t * channel, - Bit8u command, int req_length, - int alloc_length, bool lazy); - -static void rd_ready_to_send_atapi(struct vm_device * dev, - struct channel_t * channel); - -static void rd_atapi_cmd_error(struct vm_device * dev, - struct channel_t * channel, - sense_t sense_key, asc_t asc); - -static void rd_atapi_cmd_nop(struct vm_device * dev, struct channel_t * channel); -static void rd_identify_ATAPI_drive(struct vm_device * dev, struct channel_t * channel); - - - -/* - * Interrupt handling - */ -static void rd_raise_interrupt(struct vm_device * dev, struct channel_t * channel); -static void rd_lower_irq(struct vm_device *dev, struct channel_t * channel); - - - -/* - * Helper routines - */ - - - -#ifdef DEBUG_RAMDISK -static void rd_print_state(struct ramdisk_t *ramdisk); -#endif - - -//////////////////////////////////////////////////////////////////// - - - - - -int v3_ramdisk_register_cdrom(struct vm_device * dev, uint_t busID, uint_t driveID, struct cdrom_ops* cd, void * private_data) { - struct ramdisk_t * ramdisk = (struct ramdisk_t *)(dev->private_data); - struct channel_t * channel = &(ramdisk->channels[busID]); - struct drive_t * drive = &(channel->drives[driveID]); - struct controller_t * controller = &(drive->controller); - - - - if (drive->device_type != IDE_NONE) { - PrintError("Device already registered at this location\n"); - return -1; - } - - - channel->irq = 15; - - // Make model string - strncpy((char*)(drive->model_no), "V3VEE Ramdisk", 40); - - while (strlen((char *)(drive->model_no)) < 40) { - strcat ((char*)(drive->model_no), " "); - } - - PrintDebug("CDROM on target %d/%d\n", busID, driveID); - - drive->device_type = IDE_CDROM; - drive->cdrom.locked = 0; - drive->sense.sense_key = SENSE_NONE; - drive->sense.asc = 0; - drive->sense.ascq = 0; - - drive->private_data = private_data; - - controller->sector_count = 0; - - drive->cdrom.cd = cd; - - PrintDebug("\t\tCD on ata%d-%d: '%s'\n", - busID, - driveID, ""); - - if(drive->cdrom.cd->insert_cdrom(drive->private_data)) { - PrintDebug("\t\tMedia present in CD-ROM drive\n"); - drive->cdrom.ready = 1; - drive->cdrom.capacity = drive->cdrom.cd->capacity(drive->private_data); - PrintDebug("\t\tCDROM capacity is %d\n", drive->cdrom.capacity); - } else { - PrintDebug("\t\tCould not locate CD-ROM, continuing with media not present\n"); - drive->cdrom.ready = 0; - } - - return 0; -} - - -static Bit32u rd_init_hardware(struct ramdisk_t *ramdisk) { - uint_t channel_num; - uint_t device; - struct channel_t *channels = (struct channel_t *)(&(ramdisk->channels)); - - PrintDebug("[rd_init_harddrive]\n"); - - for (channel_num = 0; channel_num < MAX_ATA_CHANNEL; channel_num++) { - memset((char *)(channels + channel_num), 0, sizeof(struct channel_t)); - } - - for (channel_num = 0; channel_num < MAX_ATA_CHANNEL; channel_num++){ - struct channel_t * channel = &(channels[channel_num]); - - channel->ioaddr1 = 0x0; - channel->ioaddr2 = 0x0; - channel->irq = 0; - - for (device = 0; device < 2; device++){ - struct drive_t * drive = &(channel->drives[device]); - struct controller_t * controller = &(drive->controller); - - controller->status.busy = 0; - controller->status.drive_ready = 1; - controller->status.write_fault = 0; - controller->status.seek_complete = 1; - controller->status.drq = 0; - controller->status.corrected_data = 0; - controller->status.index_pulse = 0; - controller->status.index_pulse_count = 0; - controller->status.err = 0; - - controller->error_register = 0x01; // diagnostic code: no error - controller->head_no = 0; - controller->sector_count = 1; - controller->sector_no = 1; - controller->cylinder_no = 0; - controller->current_command = 0x00; - controller->buffer_index = 0; - - controller->control.reset = 0; - controller->control.disable_irq = 0; - controller->reset_in_progress = 0; - - controller->sectors_per_block = 0x80; - controller->lba_mode = 0; - - - controller->features = 0; - - // If not present - drive->device_type = IDE_NONE; - - // Make model string - strncpy((char*)(drive->model_no), "", 40); - while(strlen((char *)(drive->model_no)) < 40) { - strcat ((char*)(drive->model_no), " "); - } - - } - } - -#ifdef DEBUG_RAMDISK - rd_print_state(ramdisk); -#endif - return 0; -} - - -/* - static void rd_reset_harddrive(struct ramdisk_t *ramdisk, unsigned type) { - return; - } - -*/ -static void rd_close_harddrive(struct ramdisk_t *ramdisk) { - return; -} - - -//////////////////////////////////////////////////////////////////// - - - -static int read_data_port(ushort_t port, void * dst, uint_t length, struct vm_device * dev) { - struct ramdisk_t * ramdisk = (struct ramdisk_t *)(dev->private_data); - struct channel_t * channel = NULL; - struct drive_t * drive = NULL; - struct controller_t * controller = NULL; - - - - if (is_primary_port(ramdisk, port)) { - channel = &(ramdisk->channels[0]); - } else if (is_secondary_port(ramdisk, port)) { - channel = &(ramdisk->channels[1]); - } else { - PrintError("Invalid Port: %d\n", port); - return -1; - } - - drive = get_selected_drive(channel); - controller = &(drive->controller); - - - PrintTrace("[read_data_handler] IO Read at 0x%x, on drive %d/%d current cmd=0x%x\n", - port, - get_channel_no(ramdisk, channel), - get_drive_no(channel, drive), - controller->current_command); - - switch (controller->current_command) { - case 0xec: // IDENTIFY DEVICE - case 0xa1: - { - controller->status.busy = 0; - controller->status.drive_ready = 1; - controller->status.write_fault = 0; - controller->status.seek_complete = 1; - controller->status.corrected_data = 0; - controller->status.err = 0; - - /* - value32 = controller->buffer[index]; - index++; - - if (io_len >= 2) { - value32 |= (controller->buffer[index] << 8); - index++; - } - - if (io_len == 4) { - value32 |= (controller->buffer[index] << 16); - value32 |= (controller->buffer[index+1] << 24); - index += 2; - } - - controller->buffer_index = index; - */ - /* JRL */ - memcpy(dst, controller->buffer + controller->buffer_index, length); - controller->buffer_index += length; - - if (controller->buffer_index >= 512) { - controller->status.drq = 0; - } - - return length; - } - case 0xa0: //send packet cmd - { - uint_t index = controller->buffer_index; - - - PrintTrace("\t\tatapi.command(%02x), index(%d), cdrom.remaining_blocks(%d)\n", - drive->atapi.command, - index, - drive->cdrom.remaining_blocks); - - // Load block if necessary - if (index >= 2048) { - - if (index > 2048) { - PrintError("\t\tindex > 2048 : 0x%x\n", index); - return -1; - } - - switch (drive->atapi.command) { - case 0x28: // read (10) - case 0xa8: // read (12) - { - - if (!(drive->cdrom.ready)) { - PrintError("\t\tRead with CDROM not ready\n"); - return -1; - } - - drive->cdrom.cd->read_block(drive->private_data, controller->buffer, - drive->cdrom.next_lba); - drive->cdrom.next_lba++; - drive->cdrom.remaining_blocks--; - - - if (!(drive->cdrom.remaining_blocks)) { - PrintDebug("\t\tLast READ block loaded {CDROM}\n"); - } else { - PrintDebug("\t\tREAD block loaded (%d remaining) {CDROM}\n", - drive->cdrom.remaining_blocks); - } - - // one block transfered, start at beginning - index = 0; - break; - } - default: // no need to load a new block - break; - } - } - - - /* - increment = 0; - value32 = controller->buffer[index + increment]; - increment++; - - if (io_len >= 2) { - value32 |= (controller->buffer[index + increment] << 8); - increment++; - } - - if (io_len == 4) { - value32 |= (controller->buffer[index + increment] << 16); - value32 |= (controller->buffer[index + increment + 1] << 24); - increment += 2; - } - - controller->buffer_index = index + increment; - controller->drq_index += increment; - - */ - /* JRL: CHECK THAT there is enough data in the buffer to copy.... */ - { - memcpy(dst, controller->buffer + index, length); - - controller->buffer_index = index + length; - controller->drq_index += length; - } - - /* *** */ - - if (controller->drq_index >= (unsigned)drive->atapi.drq_bytes) { - controller->status.drq = 0; - controller->drq_index = 0; - - drive->atapi.total_bytes_remaining -= drive->atapi.drq_bytes; - - if (drive->atapi.total_bytes_remaining > 0) { - // one or more blocks remaining (works only for single block commands) - - PrintDebug("\t\tPACKET drq bytes read\n"); - controller->interrupt_reason.i_o = 1; - controller->status.busy = 0; - controller->status.drq = 1; - controller->interrupt_reason.c_d = 0; - - // set new byte count if last block - if (drive->atapi.total_bytes_remaining < controller->byte_count) { - controller->byte_count = drive->atapi.total_bytes_remaining; - } - drive->atapi.drq_bytes = controller->byte_count; - - rd_raise_interrupt(dev, channel); - } else { - // all bytes read - PrintDebug("\t\tPACKET all bytes read\n"); - - controller->interrupt_reason.i_o = 1; - controller->interrupt_reason.c_d = 1; - controller->status.drive_ready = 1; - controller->interrupt_reason.rel = 0; - controller->status.busy = 0; - controller->status.drq = 0; - controller->status.err = 0; - - rd_raise_interrupt(dev, channel); - } - } - return length; - break; - } - - default: - PrintError("\t\tunsupported command: %02x\n", controller->current_command); - break; - } - - return -1; -} - - - - -static int write_data_port(ushort_t port, void * src, uint_t length, struct vm_device * dev) { - struct ramdisk_t * ramdisk = (struct ramdisk_t *)(dev->private_data); - struct channel_t * channel = NULL; - struct drive_t * drive = NULL; - struct controller_t * controller = NULL; - - if (is_primary_port(ramdisk, port)) { - channel = &(ramdisk->channels[0]); - } else if (is_secondary_port(ramdisk, port)) { - channel = &(ramdisk->channels[1]); - } else { - PrintError("Invalid Port: %d\n", port); - return -1; - } - - drive = get_selected_drive(channel); - controller = &(drive->controller); - - - PrintDebug("[write_data_handler] IO write at 0x%x, current_cmd = 0x%02x\n", - port, controller->current_command); - - - - //PrintDebug("[write_data_handler]\n"); - switch (controller->current_command) { - case 0x30: // WRITE SECTORS - PrintError("\t\tneed to implement 0x30(write sector) to port 0x%x\n", port); - return -1; - - case 0xa0: // PACKET - - if (handle_atapi_packet_command(dev, channel, *(ushort_t *)src) == -1) { - PrintError("Error sending atapi packet command in PACKET write to data port\n"); - return -1; - } - - return length; - - default: - PrintError("\t\tIO write(0x%x): current command is %02xh\n", - port, controller->current_command); - - return -1; - } - - - return -1; -} - - - - - - - -static int read_status_port(ushort_t port, void * dst, uint_t length, struct vm_device * dev) { - struct ramdisk_t * ramdisk = (struct ramdisk_t *)(dev->private_data); - struct channel_t * channel = NULL; - struct drive_t * drive = NULL; - struct controller_t * controller = NULL; - - - - - if (is_primary_port(ramdisk, port)) { - channel = &(ramdisk->channels[0]); - } else if (is_secondary_port(ramdisk, port)) { - channel = &(ramdisk->channels[1]); - } else { - PrintError("Invalid Port: %d\n", port); - return -1; - } - - drive = get_selected_drive(channel); - controller = &(drive->controller); - - - PrintDebug("[read_status_handler] IO read at 0x%x, on drive %d/%d\n", - port, get_channel_no(ramdisk, channel), - channel->drive_select); - - - if (num_drives_on_channel(channel) == 0) { - PrintDebug("Setting value to zero because 0 devices on channel\n"); - // (mch) Just return zero for these registers - memset(dst, 0, length); - - } else { - uchar_t val = ( - (controller->status.busy << 7) | - (controller->status.drive_ready << 6) | - (controller->status.write_fault << 5) | - (controller->status.seek_complete << 4) | - (controller->status.drq << 3) | - (controller->status.corrected_data << 2) | - (controller->status.index_pulse << 1) | - (controller->status.err) ); - - - memcpy(dst, &val, length); - - controller->status.index_pulse_count++; - controller->status.index_pulse = 0; - - if (controller->status.index_pulse_count >= INDEX_PULSE_CYCLE) { - controller->status.index_pulse = 1; - controller->status.index_pulse_count = 0; - } - } - - if ((port == SEC_CMD_PORT) || (port == PRI_CMD_PORT)) { - rd_lower_irq(dev, channel); - } - - PrintDebug("\t\tRead STATUS = 0x%x\n", *(uchar_t *)dst); - - return length; - -} - - -static int write_cmd_port(ushort_t port, void * src, uint_t length, struct vm_device * dev) { - struct ramdisk_t * ramdisk = (struct ramdisk_t *)(dev->private_data); - struct channel_t * channel = NULL; - struct drive_t * drive = NULL; - struct controller_t * controller = NULL; - uchar_t value = *(uchar_t *)src; - - if (length != 1) { - PrintError("Invalid Command port write length: %d (port=%d)\n", length, port); - return -1; - } - - if (is_primary_port(ramdisk, port)) { - channel = &(ramdisk->channels[0]); - } else if (is_secondary_port(ramdisk, port)) { - channel = &(ramdisk->channels[1]); - } else { - PrintError("Invalid Port: %d\n", port); - return -1; - } - - drive = get_selected_drive(channel); - controller = &(drive->controller); - - - PrintDebug("[write_command_handler] IO write at 0x%x, on drive %d/%d (val = 0x%x)\n", - port, get_channel_no(ramdisk, channel), - get_drive_no(channel, drive), - value); - - switch (value) { -#if 0 - case 0xec: // IDENTIFY DEVICE - { - - if (drive->device_type == IDE_NONE) { - PrintError("\t\tError: disk ata%d-%d not present, aborting\n", - get_channel_no(ramdisk, channel), - get_drive_no(channel, drive)); - rd_command_aborted(dev, channel, value); - break; - } else if (drive->device_type == IDE_CDROM) { - PrintDebug("Identifying CDROM...Going to abort????\n"); - controller->head_no = 0; - controller->sector_count = 1; - controller->sector_no = 1; - controller->cylinder_no = 0xeb14; - rd_command_aborted(dev, channel, 0xec); - } else { - PrintError("\t\tError: Want to identify HDD!!\n"); - /* - SELECTED_CONTROLLER(channel).current_command = value; - SELECTED_CONTROLLER(channel).error_register = 0; - - // See ATA/ATAPI-4, 8.12 - SELECTED_CONTROLLER(channel).status.busy = 0; - SELECTED_CONTROLLER(channel).status.drive_ready = 1; - SELECTED_CONTROLLER(channel).status.write_fault = 0; - SELECTED_CONTROLLER(channel).status.drq = 1; - SELECTED_CONTROLLER(channel).status.err = 0; - - SELECTED_CONTROLLER(channel).status.seek_complete = 1; - SELECTED_CONTROLLER(channel).status.corrected_data = 0; - - SELECTED_CONTROLLER(channel).buffer_index = 0; - raise_interrupt(channel); - identify_drive(channel); - */ - } - - break; - } -#endif - // ATAPI commands - case 0xa1: // IDENTIFY PACKET DEVICE - { - if (drive->device_type == IDE_CDROM) { - controller->current_command = value; - controller->error_register = 0; - - controller->status.busy = 0; - controller->status.drive_ready = 1; - controller->status.write_fault = 0; - controller->status.drq = 1; - controller->status.err = 0; - - controller->status.seek_complete = 1; - controller->status.corrected_data = 0; - - controller->buffer_index = 0; - rd_raise_interrupt(dev, channel); - rd_identify_ATAPI_drive(dev, channel); - } else { - PrintError("Identifying non cdrom device not supported - ata %d/%d\n", - get_channel_no(ramdisk, channel), - get_drive_no(channel, drive)); - rd_command_aborted(dev, channel, 0xa1); - } - break; - } - case 0xa0: // SEND PACKET (atapi) - { - if (drive->device_type == IDE_CDROM) { - // PACKET - - if (controller->features & (1 << 0)) { - PrintError("\t\tPACKET-DMA not supported"); - return -1; - } - - if (controller->features & (1 << 1)) { - PrintError("\t\tPACKET-overlapped not supported"); - return -1; - } - - // We're already ready! - controller->sector_count = 1; - controller->status.busy = 0; - controller->status.write_fault = 0; - - // serv bit?? - controller->status.drq = 1; - controller->status.err = 0; - - // NOTE: no interrupt here - controller->current_command = value; - controller->buffer_index = 0; - } else { - PrintError("Sending packet to non cdrom device not supported\n"); - rd_command_aborted (dev, channel, 0xa0); - } - break; - } - default: - PrintError("\t\tneed translate command %2x - ata %d\%d\n", value, - get_channel_no(ramdisk, channel), - get_drive_no(channel, drive)); - //return -1; - /* JRL THIS NEEDS TO CHANGE */ - return length; - - } - return length; -} - - -static int write_ctrl_port(ushort_t port, void * src, uint_t length, struct vm_device * dev) { - struct ramdisk_t * ramdisk = (struct ramdisk_t *)(dev->private_data); - struct channel_t * channel = NULL; - struct drive_t * master_drive = NULL; - struct drive_t * slave_drive = NULL; - struct controller_t * controller = NULL; - uchar_t value = *(uchar_t *)src; - rd_bool prev_control_reset; - - if (length != 1) { - PrintError("Invalid Status port read length: %d (port=%d)\n", length, port); - return -1; - } - - if (is_primary_port(ramdisk, port)) { - channel = &(ramdisk->channels[0]); - } else if (is_secondary_port(ramdisk, port)) { - channel = &(ramdisk->channels[1]); - } else { - PrintError("Invalid Port: %d\n", port); - return -1; - } - - master_drive = &(channel->drives[0]); - slave_drive = &(channel->drives[1]); - - controller = &(get_selected_drive(channel)->controller); - - - PrintDebug("[write_control_handler] IO write at 0x%x, on drive %d/%d (val = 0x%x)\n", - port, get_channel_no(ramdisk, channel), - channel->drive_select, - value); - - // (mch) Even if device 1 was selected, a write to this register - // goes to device 0 (if device 1 is absent) - - prev_control_reset = controller->control.reset; - - - if (value & 0x04) { - PrintDebug("RESET Signaled\n"); - } - - master_drive->controller.control.reset = value & 0x04; - slave_drive->controller.control.reset = value & 0x04; - - // CGS: was: SELECTED_CONTROLLER(channel).control.disable_irq = value & 0x02; - master_drive->controller.control.disable_irq = value & 0x02; - slave_drive->controller.control.disable_irq = value & 0x02; - - PrintDebug("\t\tadpater control reg: reset controller = %d\n", - (unsigned) (controller->control.reset) ? 1 : 0); - PrintDebug("\t\tadpater control reg: disable_irq(X) = %d\n", - (unsigned) (controller->control.disable_irq) ? 1 : 0); - - if ((!prev_control_reset) && (controller->control.reset)) { - uint_t id = 0; - - // transition from 0 to 1 causes all drives to reset - PrintDebug("\t\thard drive: RESET\n"); - - // (mch) Set BSY, drive not ready - for (id = 0; id < 2; id++) { - struct controller_t * ctrl = NULL; - - if (id == 0) { - ctrl = &(master_drive->controller); - } else if (id == 1) { - ctrl = &(slave_drive->controller); - } - - ctrl->status.busy = 1; - ctrl->status.drive_ready = 0; - ctrl->reset_in_progress = 1; - - ctrl->status.write_fault = 0; - ctrl->status.seek_complete = 1; - ctrl->status.drq = 0; - ctrl->status.corrected_data = 0; - ctrl->status.err = 0; - - ctrl->error_register = 0x01; // diagnostic code: no error - - ctrl->current_command = 0x00; - ctrl->buffer_index = 0; - - ctrl->sectors_per_block = 0x80; - ctrl->lba_mode = 0; - - ctrl->control.disable_irq = 0; - } - - rd_lower_irq(dev, channel); - - } else if ((controller->reset_in_progress) && - (!controller->control.reset)) { - uint_t id; - // Clear BSY and DRDY - PrintDebug("\t\tReset complete {%s}\n", device_type_to_str(get_selected_drive(channel)->device_type)); - - for (id = 0; id < 2; id++) { - struct controller_t * ctrl = NULL; - struct drive_t * drv = NULL; - - if (id == 0) { - ctrl = &(master_drive->controller); - drv = master_drive; - } else if (id == 1) { - ctrl = &(slave_drive->controller); - drv = slave_drive; - } - - ctrl->status.busy = 0; - ctrl->status.drive_ready = 1; - ctrl->reset_in_progress = 0; - - // Device signature - if (drv->device_type == IDE_DISK) { - PrintDebug("\t\tdrive %d/%d is harddrive\n", get_channel_no(ramdisk, channel), id); - ctrl->head_no = 0; - ctrl->sector_count = 1; - ctrl->sector_no = 1; - ctrl->cylinder_no = 0; - } else { - ctrl->head_no = 0; - ctrl->sector_count = 1; - ctrl->sector_no = 1; - ctrl->cylinder_no = 0xeb14; - } - } - } - - PrintDebug("\t\ts[0].controller.control.disable_irq = %02x\n", - master_drive->controller.control.disable_irq); - PrintDebug("\t\ts[1].controller.control.disable_irq = %02x\n", - slave_drive->controller.control.disable_irq); - return length; -} - - -static int read_general_port(ushort_t port, void * dst, uint_t length, struct vm_device * dev) { - struct ramdisk_t * ramdisk = (struct ramdisk_t *)(dev->private_data); - struct channel_t * channel = NULL; - struct drive_t * drive = NULL; - struct controller_t * controller = NULL; - - - if (length != 1) { - PrintError("Invalid Status port read length: %d (port=%d)\n", length, port); - return -1; - } - - if (is_primary_port(ramdisk, port)) { - channel = &(ramdisk->channels[0]); - } else if (is_secondary_port(ramdisk, port)) { - channel = &(ramdisk->channels[1]); - } else { - PrintError("Invalid Port: %d\n", port); - return -1; - } - - drive = get_selected_drive(channel); - controller = &(drive->controller); - - - PrintDebug("[read_general_handler] IO read addr at %x, on drive %d/%d, curcmd = %02x\n", - port, get_channel_no(ramdisk, channel), - channel->drive_select, - controller->current_command); - - - switch (port) { - case PRI_FEATURES_PORT: - case SEC_FEATURES_PORT: // hard disk error register 0x1f1 - { - uchar_t val = (drive->device_type == IDE_NONE) ? 0 : controller->error_register; - - controller->status.err = 0; - - PrintDebug("\t\tRead FEATURES = 0x%x\n", val); - - *(uchar_t *)dst = val; - return length; - - break; - } - - case PRI_SECT_CNT_PORT: - case SEC_SECT_CNT_PORT: // hard disk sector count / interrupt reason 0x1f2 - { - uchar_t val = (drive->device_type == IDE_NONE) ? 0 : controller->sector_count; - PrintDebug("\t\tRead SECTOR COUNT = 0x%x\n", val); - *(uchar_t *)dst = val; - return length; - - break; - } - case PRI_SECT_ADDR1_PORT: - case SEC_SECT_ADDR1_PORT: // sector number 0x1f3 - { - uchar_t val = (drive->device_type == IDE_NONE) ? 0 : controller->sector_no; - - PrintDebug("\t\tRead SECTOR ADDR1 = 0x%x\n", val); - - *(uchar_t *)dst = val; - return length; - - break; - } - - case PRI_SECT_ADDR2_PORT: - case SEC_SECT_ADDR2_PORT: // cylinder low 0x1f4 - { - // -- WARNING : On real hardware the controller registers are shared between drives. - // So we must respond even if the select device is not present. Some OS uses this fact - // to detect the disks.... minix2 for example - uchar_t val = (num_drives_on_channel(channel) == 0) ? 0 : (controller->cylinder_no & 0x00ff); - - PrintDebug("\t\tRead SECTOR ADDR2 = 0x%x\n", val); - - *(uchar_t *)dst = val; - return length; - - break; - } - - case PRI_SECT_ADDR3_PORT: - case SEC_SECT_ADDR3_PORT: // cylinder high 0x1f5 - { - // -- WARNING : On real hardware the controller registers are shared between drives. - // So we must respond even if the select device is not present. Some OS uses this fact - // to detect the disks.... minix2 for example - uchar_t val = (num_drives_on_channel(channel) == 0) ? 0 : (controller->cylinder_no >> 8); - - PrintDebug("\t\tRead SECTOR ADDR3 = 0x%x\n", val); - - *(uchar_t *)dst = val; - return length; - - break; - } - case PRI_DRV_SEL_PORT: - case SEC_DRV_SEL_PORT: // hard disk drive and head register 0x1f6 - { - // b7 Extended data field for ECC - // b6/b5: Used to be sector size. 00=256,01=512,10=1024,11=128 - // Since 512 was always used, bit 6 was taken to mean LBA mode: - // b6 1=LBA mode, 0=CHS mode - // b5 1 - // b4: DRV - // b3..0 HD3..HD0 - uchar_t val = ((1 << 7) | - ((controller->lba_mode > 0) << 6) | - (1 << 5) | // 01b = 512 sector size - (channel->drive_select << 4) | - (controller->head_no << 0)); - - PrintDebug("\t\tRead DRIVE SELECT = 0x%x\n", val); - *(uchar_t *)dst = val; - return length; - - break; - } - case PRI_ADDR_REG_PORT: - case SEC_ADDR_REG_PORT: // Hard Disk Address Register 0x3f7 - { - // Obsolete and unsupported register. Not driven by hard - // disk controller. Report all 1's. If floppy controller - // is handling this address, it will call this function - // set/clear D7 (the only bit it handles), then return - // the combined value - *(uchar_t *)dst = 0xff; - return length; - } - - default: - PrintError("Invalid Port: %d\n", port); - return -1; - } -} - - - - -static int write_general_port(ushort_t port, void * src, uint_t length, struct vm_device * dev) { - struct ramdisk_t * ramdisk = (struct ramdisk_t *)(dev->private_data); - struct channel_t * channel = NULL; - struct drive_t * drive = NULL; - struct controller_t * controller = NULL; - uchar_t value = *(uchar_t *)src; - - if (length != 1) { - PrintError("Invalid Status port read length: %d (port=%d)\n", length, port); - return -1; - } - - if (is_primary_port(ramdisk, port)) { - channel = &(ramdisk->channels[0]); - } else if (is_secondary_port(ramdisk, port)) { - channel = &(ramdisk->channels[1]); - } else { - PrintError("Invalid Port: %d\n", port); - return -1; - } - - drive = get_selected_drive(channel); - controller = &(drive->controller); - - - PrintDebug("[write_general_handler] IO write to port %x (val=0x%02x), channel = %d\n", - port, value, get_channel_no(ramdisk, channel)); - - switch (port) { - - case PRI_FEATURES_PORT: - case SEC_FEATURES_PORT: // hard disk write precompensation 0x1f1 - { - write_features(channel, value); - break; - } - case PRI_SECT_CNT_PORT: - case SEC_SECT_CNT_PORT: // hard disk sector count 0x1f2 - { - write_sector_count(channel, value); - break; - } - case PRI_SECT_ADDR1_PORT: - case SEC_SECT_ADDR1_PORT: // hard disk sector number 0x1f3 - { - write_sector_number(channel, value); - break; - } - case PRI_SECT_ADDR2_PORT: - case SEC_SECT_ADDR2_PORT: // hard disk cylinder low 0x1f4 - { - write_cylinder_low(channel, value); - break; - } - case PRI_SECT_ADDR3_PORT: - case SEC_SECT_ADDR3_PORT: // hard disk cylinder high 0x1f5 - { - write_cylinder_high(channel, value); - break; - } - case PRI_DRV_SEL_PORT: - case SEC_DRV_SEL_PORT: // hard disk drive and head register 0x1f6 - { - // b7 Extended data field for ECC - // b6/b5: Used to be sector size. 00=256,01=512,10=1024,11=128 - // Since 512 was always used, bit 6 was taken to mean LBA mode: - // b6 1=LBA mode, 0=CHS mode - // b5 1 - // b4: DRV - // b3..0 HD3..HD0 - - // 1x1xxxxx - - PrintDebug("\tDrive Select value=%x\n", value); - - if ((value & 0xa0) != 0xa0) { - PrintDebug("\t\tIO write 0x%x (%02x): not 1x1xxxxxb\n", port, (unsigned) value); - } - - write_head_no(channel, value & 0xf); - if ((controller->lba_mode == 0) && (((value >> 6) & 1) == 1)) { - PrintDebug("\t\tenabling LBA mode\n"); - } - - write_lba_mode(channel, (value >> 6) & 1); - - - - if (drive->cdrom.cd) { - PrintDebug("\t\tSetting LBA on CDROM: %d\n", (value >> 6) & 1); - drive->cdrom.cd->set_LBA(drive->private_data, (value >> 6) & 1); - } - - - channel->drive_select = (value >> 4) & 0x01; - drive = get_selected_drive(channel); - - if (drive->device_type == IDE_NONE) { - PrintError("\t\tError: device set to %d which does not exist! channel = 0x%x\n", - channel->drive_select, get_channel_no(ramdisk, channel)); - - controller->error_register = 0x04; // aborted - controller->status.err = 1; - } - - break; - } - default: - PrintError("\t\thard drive: io write to unhandled port 0x%x (value = %c)\n", port, value); - //return -1; - } - - return length; -} - - - - - -static void rd_raise_interrupt(struct vm_device * dev, struct channel_t * channel) { - // struct ramdisk_t * ramdisk = (struct ramdisk_t *)(dev->private_data); - struct drive_t * drive = get_selected_drive(channel); - struct controller_t * controller = &(drive->controller); - - PrintDebug("[raise_interrupt] disable_irq = 0x%02x\n", controller->control.disable_irq); - - if (!(controller->control.disable_irq)) { - - PrintDebug("\t\tRaising interrupt %d {%s}\n\n", channel->irq, device_type_to_str(drive->device_type)); - - v3_raise_irq(dev->vm, channel->irq); - } else { - PrintDebug("\t\tRaising irq but irq is disabled\n"); - } - - return; -} - -static void rd_lower_irq(struct vm_device *dev, struct channel_t * channel) { - PrintDebug("[lower_irq] irq = %d\n", channel->irq); - v3_lower_irq(dev->vm, channel->irq); -} - - - - - - - -////////////////////////////////////////////////////////////////////////// - -/* - * ATAPI subroutines - */ - - - -int handle_atapi_packet_command(struct vm_device * dev, struct channel_t * channel, ushort_t value) { - struct ramdisk_t * ramdisk = (struct ramdisk_t *)(dev->private_data); - struct drive_t * drive = get_selected_drive(channel); - struct controller_t * controller = &(drive->controller); - - if (controller->buffer_index >= PACKET_SIZE) { - PrintError("ATAPI packet exceeded maximum length: buffer_index (%d) >= PACKET_SIZE\n", - controller->buffer_index); - return -1; - } - - controller->buffer[controller->buffer_index] = value; - controller->buffer[controller->buffer_index + 1] = (value >> 8); - controller->buffer_index += 2; - - - /* if packet completely writtten */ - if (controller->buffer_index >= PACKET_SIZE) { - // complete command received - Bit8u atapi_command = controller->buffer[0]; - - PrintDebug("\t\tcdrom: ATAPI command 0x%x started\n", atapi_command); - - switch (atapi_command) { - case 0x00: // test unit ready - { - PrintDebug("Testing unit ready\n"); - if (drive->cdrom.ready) { - rd_atapi_cmd_nop(dev, channel); - } else { - PrintError("CDROM not ready in test unit ready\n"); - rd_atapi_cmd_error(dev, channel, SENSE_NOT_READY, ASC_MEDIUM_NOT_PRESENT); - } - - rd_raise_interrupt(dev, channel); - - break; - } - case 0x03: // request sense - { - int alloc_length = controller->buffer[4]; - - if (rd_init_send_atapi_command(dev, channel, atapi_command, 18, alloc_length, false) == -1) { - PrintError("Error sending atapi command in Request Sense\n"); - return -1; - } - - // sense data - controller->buffer[0] = 0x70 | (1 << 7); - controller->buffer[1] = 0; - controller->buffer[2] = drive->sense.sense_key; - controller->buffer[3] = drive->sense.information.arr[0]; - controller->buffer[4] = drive->sense.information.arr[1]; - controller->buffer[5] = drive->sense.information.arr[2]; - controller->buffer[6] = drive->sense.information.arr[3]; - controller->buffer[7] = 17 - 7; - controller->buffer[8] = drive->sense.specific_inf.arr[0]; - controller->buffer[9] = drive->sense.specific_inf.arr[1]; - controller->buffer[10] = drive->sense.specific_inf.arr[2]; - controller->buffer[11] = drive->sense.specific_inf.arr[3]; - controller->buffer[12] = drive->sense.asc; - controller->buffer[13] = drive->sense.ascq; - controller->buffer[14] = drive->sense.fruc; - controller->buffer[15] = drive->sense.key_spec.arr[0]; - controller->buffer[16] = drive->sense.key_spec.arr[1]; - controller->buffer[17] = drive->sense.key_spec.arr[2]; - - rd_ready_to_send_atapi(dev, channel); - break; - } - case 0x1b: // start stop unit - { - //bx_bool Immed = (controller->buffer[1] >> 0) & 1; - rd_bool LoEj = (controller->buffer[4] >> 1) & 1; - rd_bool Start = (controller->buffer[4] >> 0) & 1; - - // stop the disc - if ((!LoEj) && (!Start)) { - PrintError("FIXME: Stop disc not implemented\n"); - - rd_atapi_cmd_nop(dev, channel); - rd_raise_interrupt(dev, channel); - - } else if (!LoEj && Start) { // start (spin up) the disc - - drive->cdrom.cd->start_cdrom(drive->private_data); - - PrintError("FIXME: ATAPI start disc not reading TOC\n"); - rd_atapi_cmd_nop(dev, channel); - rd_raise_interrupt(dev, channel); - - } else if (LoEj && !Start) { // Eject the disc - rd_atapi_cmd_nop(dev, channel); - PrintDebug("Ejecting Disk\n"); - if (drive->cdrom.ready) { - - drive->cdrom.cd->eject_cdrom(drive->private_data); - - drive->cdrom.ready = 0; - //bx_options.atadevice[channel][SLAVE_SELECTED(channel)].Ostatus->set(EJECTED); - //bx_gui->update_drive_status_buttons(); - } - rd_raise_interrupt(dev, channel); - - } else { // Load the disc - // My guess is that this command only closes the tray, that's a no-op for us - rd_atapi_cmd_nop(dev, channel); - rd_raise_interrupt(dev, channel); - } - break; - } - case 0xbd: // mechanism status - { - uint16_t alloc_length = rd_read_16bit(controller->buffer + 8); - - if (alloc_length == 0) { - PrintError("Zero allocation length to MECHANISM STATUS not impl.\n"); - return -1; - } - - if (rd_init_send_atapi_command(dev, channel, atapi_command, 8, alloc_length, false) == -1) { - PrintError("Error sending atapi command in mechanism status\n"); - return -1; - } - - controller->buffer[0] = 0; // reserved for non changers - controller->buffer[1] = 0; // reserved for non changers - - controller->buffer[2] = 0; // Current LBA (TODO!) - controller->buffer[3] = 0; // Current LBA (TODO!) - controller->buffer[4] = 0; // Current LBA (TODO!) - - controller->buffer[5] = 1; // one slot - - controller->buffer[6] = 0; // slot table length - controller->buffer[7] = 0; // slot table length - - rd_ready_to_send_atapi(dev, channel); - break; - } - case 0x5a: // mode sense - { - uint16_t alloc_length = rd_read_16bit(controller->buffer + 7); - - Bit8u PC = controller->buffer[2] >> 6; - Bit8u PageCode = controller->buffer[2] & 0x3f; - - switch (PC) { - case 0x0: // current values - { - switch (PageCode) { - case 0x01: // error recovery - { - - if (rd_init_send_atapi_command(dev, channel, atapi_command, sizeof(struct error_recovery_t) + 8, alloc_length, false) == -1) { - PrintError("Error sending atapi command in mode sense error recovery\n"); - return -1; - } - - rd_init_mode_sense_single(dev, channel, &(drive->cdrom.current.error_recovery), - sizeof(struct error_recovery_t)); - rd_ready_to_send_atapi(dev, channel); - break; - } - case 0x2a: // CD-ROM capabilities & mech. status - { - - if (rd_init_send_atapi_command(dev, channel, atapi_command, 28, alloc_length, false) == -1) { - PrintError("Error sending atapi command in CDROM caps/mech mode-sense\n"); - return -1; - } - - rd_init_mode_sense_single(dev, channel, &(controller->buffer[8]), 28); - - controller->buffer[8] = 0x2a; - controller->buffer[9] = 0x12; - controller->buffer[10] = 0x00; - controller->buffer[11] = 0x00; - // Multisession, Mode 2 Form 2, Mode 2 Form 1 - controller->buffer[12] = 0x70; - controller->buffer[13] = (3 << 5); - controller->buffer[14] = (unsigned char) (1 | - (drive->cdrom.locked ? (1 << 1) : 0) | - (1 << 3) | - (1 << 5)); - controller->buffer[15] = 0x00; - controller->buffer[16] = (706 >> 8) & 0xff; - controller->buffer[17] = 706 & 0xff; - controller->buffer[18] = 0; - controller->buffer[19] = 2; - controller->buffer[20] = (512 >> 8) & 0xff; - controller->buffer[21] = 512 & 0xff; - controller->buffer[22] = (706 >> 8) & 0xff; - controller->buffer[23] = 706 & 0xff; - controller->buffer[24] = 0; - controller->buffer[25] = 0; - controller->buffer[26] = 0; - controller->buffer[27] = 0; - rd_ready_to_send_atapi(dev, channel); - break; - } - case 0x0d: // CD-ROM - case 0x0e: // CD-ROM audio control - case 0x3f: // all - { - PrintError("Ramdisk: cdrom: MODE SENSE (curr), code=%x not implemented yet\n", - PageCode); - rd_atapi_cmd_error(dev, channel, SENSE_ILLEGAL_REQUEST, - ASC_INV_FIELD_IN_CMD_PACKET); - rd_raise_interrupt(dev, channel); - break; - } - default: - { - // not implemeted by this device - PrintError("\t\tcdrom: MODE SENSE PC=%x, PageCode=%x, not implemented by device\n", - PC, PageCode); - rd_atapi_cmd_error(dev, channel, SENSE_ILLEGAL_REQUEST, - ASC_INV_FIELD_IN_CMD_PACKET); - rd_raise_interrupt(dev, channel); - break; - } - } - break; - } - case 0x1: // changeable values - { - switch (PageCode) { - case 0x01: // error recovery - case 0x0d: // CD-ROM - case 0x0e: // CD-ROM audio control - case 0x2a: // CD-ROM capabilities & mech. status - case 0x3f: // all - { - PrintError("cdrom: MODE SENSE (chg), code=%x not implemented yet\n", - PageCode); - rd_atapi_cmd_error(dev, channel, SENSE_ILLEGAL_REQUEST, - ASC_INV_FIELD_IN_CMD_PACKET); - rd_raise_interrupt(dev, channel); - break; - } - default: - { - // not implemeted by this device - PrintError("Changeable values of mode sense not supported by cdrom\n"); - PrintDebug("\t\tcdrom: MODE SENSE PC=%x, PageCode=%x, not implemented by device\n", - PC, PageCode); - rd_atapi_cmd_error(dev, channel, SENSE_ILLEGAL_REQUEST, - ASC_INV_FIELD_IN_CMD_PACKET); - rd_raise_interrupt(dev, channel); - break; - } - } - break; - } - case 0x2: // default values - { - switch (PageCode) { - case 0x01: // error recovery - case 0x0d: // CD-ROM - case 0x0e: // CD-ROM audio control - case 0x2a: // CD-ROM capabilities & mech. status - case 0x3f: // all - PrintError("Default values of mode sense not supported by cdrom\n"); - PrintDebug("cdrom: MODE SENSE (dflt), code=%x\n", - PageCode); - return -1; - - default: - { - PrintError("Default values of mode sense not implemented in cdrom\n"); - // not implemeted by this device - PrintDebug("cdrom: MODE SENSE PC=%x, PageCode=%x, not implemented by device\n", - PC, PageCode); - rd_atapi_cmd_error(dev, channel, SENSE_ILLEGAL_REQUEST, - ASC_INV_FIELD_IN_CMD_PACKET); - rd_raise_interrupt(dev, channel); - break; - } - } - break; - } - case 0x3: // saved values not implemented - { - PrintError("\t\tSaved values not implemented in mode sense\n"); - rd_atapi_cmd_error(dev, channel, SENSE_ILLEGAL_REQUEST, ASC_SAVING_PARAMETERS_NOT_SUPPORTED); - rd_raise_interrupt(dev, channel); - break; - } - default: - { - PrintError("Unsupported Mode sense value\n"); - return -1; - break; - } - } - break; - } - case 0x12: // inquiry - { - uint8_t alloc_length = controller->buffer[4]; - - if (rd_init_send_atapi_command(dev, channel, atapi_command, 36, alloc_length, false) == -1) { - PrintError("Error sending atapi command in inquiry\n"); - return -1; - } - - controller->buffer[0] = 0x05; // CD-ROM - controller->buffer[1] = 0x80; // Removable - controller->buffer[2] = 0x00; // ISO, ECMA, ANSI version - controller->buffer[3] = 0x21; // ATAPI-2, as specified - controller->buffer[4] = 31; // additional length (total 36) - controller->buffer[5] = 0x00; // reserved - controller->buffer[6] = 0x00; // reserved - controller->buffer[7] = 0x00; // reserved - - // Vendor ID - const char* vendor_id = "VTAB "; - int i; - for (i = 0; i < 8; i++) { - controller->buffer[8+i] = vendor_id[i]; - } - - // Product ID - const char* product_id = "Turbo CD-ROM "; - for (i = 0; i < 16; i++) { - controller->buffer[16+i] = product_id[i]; - } - - // Product Revision level - const char* rev_level = "1.0 "; - for (i = 0; i < 4; i++) { - controller->buffer[32 + i] = rev_level[i]; - } - - rd_ready_to_send_atapi(dev, channel); - break; - } - case 0x25: // read cd-rom capacity - { - // no allocation length??? - if (rd_init_send_atapi_command(dev, channel, atapi_command, 8, 8, false) == -1) { - PrintError("Error sending atapi command in read cdrom capacity\n"); - return -1; - } - - if (drive->cdrom.ready) { - uint32_t capacity = drive->cdrom.capacity; - - PrintDebug("\t\tCapacity is %d sectors (%d bytes)\n", capacity, capacity * 2048); - - controller->buffer[0] = (capacity >> 24) & 0xff; - controller->buffer[1] = (capacity >> 16) & 0xff; - controller->buffer[2] = (capacity >> 8) & 0xff; - controller->buffer[3] = (capacity >> 0) & 0xff; - controller->buffer[4] = (2048 >> 24) & 0xff; - controller->buffer[5] = (2048 >> 16) & 0xff; - controller->buffer[6] = (2048 >> 8) & 0xff; - controller->buffer[7] = (2048 >> 0) & 0xff; - - rd_ready_to_send_atapi(dev, channel); - } else { - PrintError("CDROM not ready in read cdrom capacity\n"); - rd_atapi_cmd_error(dev, channel, SENSE_NOT_READY, ASC_MEDIUM_NOT_PRESENT); - rd_raise_interrupt(dev, channel); - } - break; - } - - - case 0xbe: // read cd - { - if (drive->cdrom.ready) { - PrintError("Read CD with CD present not implemented\n"); - rd_atapi_cmd_error(dev, channel, SENSE_ILLEGAL_REQUEST, ASC_INV_FIELD_IN_CMD_PACKET); - rd_raise_interrupt(dev, channel); - } else { - PrintError("Drive not ready in read cd with CD present\n"); - rd_atapi_cmd_error(dev, channel, SENSE_NOT_READY, ASC_MEDIUM_NOT_PRESENT); - rd_raise_interrupt(dev, channel); - } - break; - } - case 0x43: // read toc - { - if (drive->cdrom.ready) { - int toc_length = 0; - bool msf = (controller->buffer[1] >> 1) & 1; - uint8_t starting_track = controller->buffer[6]; - - uint16_t alloc_length = rd_read_16bit(controller->buffer + 7); - - uint8_t format = (controller->buffer[9] >> 6); - int i; - - PrintDebug("Reading CDROM TOC: Format=%d (byte count=%d) (toc length:%d)\n", - format, controller->byte_count, toc_length); - - switch (format) { - case 0: - if (!(drive->cdrom.cd->read_toc(drive->private_data, controller->buffer, - &toc_length, msf, starting_track))) { - PrintError("CDROM: Reading Table of Contents Failed\n"); - rd_atapi_cmd_error(dev, channel, SENSE_ILLEGAL_REQUEST, - ASC_INV_FIELD_IN_CMD_PACKET); - rd_raise_interrupt(dev, channel); - break; - } - - - if (rd_init_send_atapi_command(dev, channel, atapi_command, toc_length, alloc_length, false) == -1) { - PrintError("Failed to init send atapi command in read toc (fmt=%d)\n", format); - return -1; - } - - rd_ready_to_send_atapi(dev, channel); - - break; - - case 1: - // multi session stuff. we ignore this and emulate a single session only - - if (rd_init_send_atapi_command(dev, channel, atapi_command, 12, alloc_length, false) == -1) { - PrintError("Failed to init send atapi command in read toc (fmt=%d)\n", format); - return -1; - } - - controller->buffer[0] = 0; - controller->buffer[1] = 0x0a; - controller->buffer[2] = 1; - controller->buffer[3] = 1; - - for (i = 0; i < 8; i++) { - controller->buffer[4 + i] = 0; - } - - rd_ready_to_send_atapi(dev, channel); - break; - - case 2: - default: - PrintError("(READ TOC) Format %d not supported\n", format); - return -1; - } - } else { - PrintError("CDROM not ready in read toc\n"); - rd_atapi_cmd_error(dev, channel, SENSE_NOT_READY, ASC_MEDIUM_NOT_PRESENT); - rd_raise_interrupt(dev, channel); - } - break; - } - case 0x28: // read (10) - case 0xa8: // read (12) - { - - uint32_t transfer_length; - if (atapi_command == 0x28) { - transfer_length = rd_read_16bit(controller->buffer + 7); - } else { - transfer_length = rd_read_32bit(controller->buffer + 6); - } - - uint32_t lba = rd_read_32bit(controller->buffer + 2); - - if (!(drive->cdrom.ready)) { - PrintError("CDROM Error: Not Ready (ATA%d/%d)\n", - get_channel_no(ramdisk, channel), get_drive_no(channel, drive)); - rd_atapi_cmd_error(dev, channel, SENSE_NOT_READY, ASC_MEDIUM_NOT_PRESENT); - rd_raise_interrupt(dev, channel); - break; - } - - if (transfer_length == 0) { - PrintError("READ(%d) with transfer length 0, ok\n", - (atapi_command == 0x28) ? 10 : 12); - rd_atapi_cmd_nop(dev, channel); - rd_raise_interrupt(dev, channel); - break; - } - - if (lba + transfer_length > drive->cdrom.capacity) { - PrintError("CDROM Error: Capacity exceeded [capacity=%d] (ATA%d/%d)\n", - drive->cdrom.capacity, - get_channel_no(ramdisk, channel), get_drive_no(channel, drive)); - rd_atapi_cmd_error(dev, channel, SENSE_ILLEGAL_REQUEST, ASC_LOGICAL_BLOCK_OOR); - rd_raise_interrupt(dev, channel); - break; - } - - PrintDebug("\t\tcdrom: READ (%d) LBA=%d LEN=%d\n", - (atapi_command == 0x28) ? 10 : 12, - lba, transfer_length); - - // handle command - if (rd_init_send_atapi_command(dev, channel, atapi_command, transfer_length * 2048, - transfer_length * 2048, true) == -1) { - PrintError("CDROM Error: Atapi command send error\n"); - return -1; - } - - drive->cdrom.remaining_blocks = transfer_length; - drive->cdrom.next_lba = lba; - rd_ready_to_send_atapi(dev, channel); - break; - } - case 0x2b: // seek - { - uint32_t lba = rd_read_32bit(controller->buffer + 2); - - if (!(drive->cdrom.ready)) { - PrintError("CDROM not ready in seek\n"); - rd_atapi_cmd_error(dev, channel, SENSE_NOT_READY, ASC_MEDIUM_NOT_PRESENT); - rd_raise_interrupt(dev, channel); - break; - } - - if (lba > drive->cdrom.capacity) { - PrintError("LBA is greater than CDROM capacity in seek\n"); - rd_atapi_cmd_error(dev, channel, SENSE_ILLEGAL_REQUEST, ASC_LOGICAL_BLOCK_OOR); - rd_raise_interrupt(dev, channel); - break; - } - - PrintError("\t\tcdrom: SEEK (ignored)\n"); - - rd_atapi_cmd_nop(dev, channel); - rd_raise_interrupt(dev, channel); - - break; - } - case 0x1e: // prevent/allow medium removal - { - - if (drive->cdrom.ready) { - drive->cdrom.locked = controller->buffer[4] & 1; - rd_atapi_cmd_nop(dev, channel); - } else { - PrintError("CD not ready in prevent/allow medium removal\n"); - rd_atapi_cmd_error(dev, channel, SENSE_NOT_READY, ASC_MEDIUM_NOT_PRESENT); - } - - rd_raise_interrupt(dev, channel); - - break; - } - case 0x42: // read sub-channel - { - //bool msf = get_packet_field(channel, 1, 1, 1); - bool sub_q = get_packet_field(channel, 2, 6, 1); - //uint8_t data_format = get_packet_byte(channel, 3); - //uint8_t track_number = get_packet_byte(channel, 6); - uint16_t alloc_length = get_packet_word(channel, 7); - - - /* - UNUSED(msf); - UNUSED(data_format); - UNUSED(track_number); - */ - if (!(drive->cdrom.ready)) { - PrintError("CDROM not ready in read sub-channel\n"); - rd_atapi_cmd_error(dev, channel, SENSE_NOT_READY, ASC_MEDIUM_NOT_PRESENT); - rd_raise_interrupt(dev, channel); - } else { - controller->buffer[0] = 0; - controller->buffer[1] = 0; // audio not supported - controller->buffer[2] = 0; - controller->buffer[3] = 0; - - int ret_len = 4; // header size - - if (sub_q) { // !sub_q == header only - PrintError("Read sub-channel with SubQ not implemented\n"); - rd_atapi_cmd_error(dev, channel, SENSE_ILLEGAL_REQUEST, - ASC_INV_FIELD_IN_CMD_PACKET); - rd_raise_interrupt(dev, channel); - } - - if (rd_init_send_atapi_command(dev, channel, atapi_command, ret_len, alloc_length, false) == -1) { - PrintError("Error sending atapi command in read sub-channel\n"); - return -1; - } - rd_ready_to_send_atapi(dev, channel); - } - break; - } - case 0x51: // read disc info - { - // no-op to keep the Linux CD-ROM driver happy - PrintError("Error: Read disk info no-op to keep the Linux CD-ROM driver happy\n"); - rd_atapi_cmd_error(dev, channel, SENSE_ILLEGAL_REQUEST, ASC_INV_FIELD_IN_CMD_PACKET); - rd_raise_interrupt(dev, channel); - break; - } - case 0x55: // mode select - case 0xa6: // load/unload cd - case 0x4b: // pause/resume - case 0x45: // play audio - case 0x47: // play audio msf - case 0xbc: // play cd - case 0xb9: // read cd msf - case 0x44: // read header - case 0xba: // scan - case 0xbb: // set cd speed - case 0x4e: // stop play/scan - case 0x46: // ??? - case 0x4a: // ??? - PrintError("ATAPI command 0x%x not implemented yet\n", - atapi_command); - rd_atapi_cmd_error(dev, channel, SENSE_ILLEGAL_REQUEST, ASC_INV_FIELD_IN_CMD_PACKET); - rd_raise_interrupt(dev, channel); - break; - default: - PrintError("Unknown ATAPI command 0x%x (%d)\n", - atapi_command, atapi_command); - // We'd better signal the error if the user chose to continue - rd_atapi_cmd_error(dev, channel, SENSE_ILLEGAL_REQUEST, ASC_INV_FIELD_IN_CMD_PACKET); - rd_raise_interrupt(dev, channel); - break; - } - } - - - return 0; -} - - - - -int rd_init_send_atapi_command(struct vm_device * dev, struct channel_t * channel, Bit8u command, int req_length, int alloc_length, bool lazy) -{ - struct drive_t * drive = &(channel->drives[channel->drive_select]); - struct controller_t * controller = &(drive->controller); - - // controller->byte_count is a union of controller->cylinder_no; - // lazy is used to force a data read in the buffer at the next read. - - PrintDebug("[rd_init_send_atapi_cmd]\n"); - - if (controller->byte_count == 0xffff) { - controller->byte_count = 0xfffe; - } - - if ((controller->byte_count & 1) && - !(alloc_length <= controller->byte_count)) { - - PrintDebug("\t\tOdd byte count (0x%04x) to ATAPI command 0x%02x, using 0x%x\n", - controller->byte_count, - command, - controller->byte_count - 1); - - controller->byte_count -= 1; - } - - if (controller->byte_count == 0) { - PrintError("\t\tATAPI command with zero byte count\n"); - return -1; - } - - if (alloc_length < 0) { - PrintError("\t\tAllocation length < 0\n"); - return -1; - } - - if (alloc_length == 0) { - alloc_length = controller->byte_count; - } - - controller->interrupt_reason.i_o = 1; - controller->interrupt_reason.c_d = 0; - controller->status.busy = 0; - controller->status.drq = 1; - controller->status.err = 0; - - // no bytes transfered yet - if (lazy) { - controller->buffer_index = 2048; - } else { - controller->buffer_index = 0; - } - - controller->drq_index = 0; - - if (controller->byte_count > req_length) { - controller->byte_count = req_length; - } - - if (controller->byte_count > alloc_length) { - controller->byte_count = alloc_length; - } - - drive->atapi.command = command; - drive->atapi.drq_bytes = controller->byte_count; - drive->atapi.total_bytes_remaining = (req_length < alloc_length) ? req_length : alloc_length; - - // if (lazy) { - // // bias drq_bytes and total_bytes_remaining - // SELECTED_DRIVE(channel).atapi.drq_bytes += 2048; - // SELECTED_DRIVE(channel).atapi.total_bytes_remaining += 2048; - // } - - return 0; -} - - - -void rd_ready_to_send_atapi(struct vm_device * dev, struct channel_t * channel) { - PrintDebug("[rd_ready_to_send_atapi]\n"); - - rd_raise_interrupt(dev, channel); -} - - - - - -void rd_atapi_cmd_error(struct vm_device * dev, struct channel_t * channel, sense_t sense_key, asc_t asc) -{ - struct drive_t * drive = &(channel->drives[channel->drive_select]); - struct controller_t * controller = &(drive->controller); - - - struct ramdisk_t *ramdisk = (struct ramdisk_t *)(dev->private_data); - PrintError("[rd_atapi_cmd_error]\n"); - PrintError("Error: atapi_cmd_error channel=%02x key=%02x asc=%02x\n", - get_channel_no(ramdisk, channel), sense_key, asc); - - - controller->error_register = sense_key << 4; - controller->interrupt_reason.i_o = 1; - controller->interrupt_reason.c_d = 1; - controller->interrupt_reason.rel = 0; - controller->status.busy = 0; - controller->status.drive_ready = 1; - controller->status.write_fault = 0; - controller->status.drq = 0; - controller->status.err = 1; - - drive->sense.sense_key = sense_key; - drive->sense.asc = asc; - drive->sense.ascq = 0; -} - - - -void rd_atapi_cmd_nop(struct vm_device * dev, struct channel_t * channel) -{ - struct drive_t * drive = &(channel->drives[channel->drive_select]); - struct controller_t * controller = &(drive->controller); - - PrintDebug("[rd_atapi_cmd_nop]\n"); - controller->interrupt_reason.i_o = 1; - controller->interrupt_reason.c_d = 1; - controller->interrupt_reason.rel = 0; - controller->status.busy = 0; - controller->status.drive_ready = 1; - controller->status.drq = 0; - controller->status.err = 0; -} - - - - -void rd_identify_ATAPI_drive(struct vm_device * dev, struct channel_t * channel) -{ - struct drive_t * drive = &(channel->drives[channel->drive_select]); - struct controller_t * controller = &(drive->controller); - - - uint_t i; - const char* serial_number = " VT00001\0\0\0\0\0\0\0\0\0\0\0\0"; - const char* firmware = "ALPHA1 "; - - drive->id_drive[0] = (2 << 14) | (5 << 8) | (1 << 7) | (2 << 5) | (0 << 0); // Removable CDROM, 50us response, 12 byte packets - - for (i = 1; i <= 9; i++) { - drive->id_drive[i] = 0; - } - - for (i = 0; i < 10; i++) { - drive->id_drive[10 + i] = ((serial_number[i * 2] << 8) | - (serial_number[(i * 2) + 1])); - } - - for (i = 20; i <= 22; i++) { - drive->id_drive[i] = 0; - } - - for (i = 0; i < strlen(firmware) / 2; i++) { - drive->id_drive[23 + i] = ((firmware[i * 2] << 8) | - (firmware[(i * 2) + 1])); - } - V3_ASSERT((23 + i) == 27); - - for (i = 0; i < strlen((char *)(drive->model_no)) / 2; i++) { - drive->id_drive[27 + i] = ((drive->model_no[i * 2] << 8) | - (drive->model_no[(i * 2) + 1])); - } - - V3_ASSERT((27 + i) == 47); - - drive->id_drive[47] = 0; - drive->id_drive[48] = 1; // 32 bits access - - drive->id_drive[49] = (1 << 9); // LBA supported - - drive->id_drive[50] = 0; - drive->id_drive[51] = 0; - drive->id_drive[52] = 0; - - drive->id_drive[53] = 3; // words 64-70, 54-58 valid - - for (i = 54; i <= 62; i++) { - drive->id_drive[i] = 0; - } - - // copied from CFA540A - drive->id_drive[63] = 0x0103; // variable (DMA stuff) - drive->id_drive[64] = 0x0001; // PIO - drive->id_drive[65] = 0x00b4; - drive->id_drive[66] = 0x00b4; - drive->id_drive[67] = 0x012c; - drive->id_drive[68] = 0x00b4; - - drive->id_drive[69] = 0; - drive->id_drive[70] = 0; - drive->id_drive[71] = 30; // faked - drive->id_drive[72] = 30; // faked - drive->id_drive[73] = 0; - drive->id_drive[74] = 0; - - drive->id_drive[75] = 0; - - for (i = 76; i <= 79; i++) { - drive->id_drive[i] = 0; - } - - drive->id_drive[80] = 0x1e; // supports up to ATA/ATAPI-4 - drive->id_drive[81] = 0; - drive->id_drive[82] = 0; - drive->id_drive[83] = 0; - drive->id_drive[84] = 0; - drive->id_drive[85] = 0; - drive->id_drive[86] = 0; - drive->id_drive[87] = 0; - drive->id_drive[88] = 0; - - for (i = 89; i <= 126; i++) { - drive->id_drive[i] = 0; - } - - drive->id_drive[127] = 0; - drive->id_drive[128] = 0; - - for (i = 129; i <= 159; i++) { - drive->id_drive[i] = 0; - } - - for (i = 160; i <= 255; i++) { - drive->id_drive[i] = 0; - } - - - return; -} - - - - - - - -static -void rd_init_mode_sense_single(struct vm_device * dev, - struct channel_t * channel, const void* src, int size) -{ - struct drive_t * drive = &(channel->drives[channel->drive_select]); - struct controller_t * controller = &(drive->controller); - - PrintDebug("[rd_init_mode_sense_single]\n"); - - // Header - controller->buffer[0] = (size + 6) >> 8; - controller->buffer[1] = (size + 6) & 0xff; - controller->buffer[2] = 0x70; // no media present - controller->buffer[3] = 0; // reserved - controller->buffer[4] = 0; // reserved - controller->buffer[5] = 0; // reserved - controller->buffer[6] = 0; // reserved - controller->buffer[7] = 0; // reserved - - // Data - memcpy(controller->buffer + 8, src, size); -} - - - -static void rd_command_aborted(struct vm_device * dev, - struct channel_t * channel, unsigned value) { - struct drive_t * drive = &(channel->drives[channel->drive_select]); - struct controller_t * controller = &(drive->controller); - - PrintError("[rd_command_aborted]\n"); - PrintError("\t\taborting on command 0x%02x {%s}\n", value, device_type_to_str(drive->device_type)); - - controller->current_command = 0; - controller->status.busy = 0; - controller->status.drive_ready = 1; - controller->status.err = 1; - controller->error_register = 0x04; // command ABORTED - controller->status.drq = 0; - controller->status.seek_complete = 0; - controller->status.corrected_data = 0; - controller->buffer_index = 0; - - rd_raise_interrupt(dev, channel); -} - - -/* -static void init_pci(struct ramdisk_t * ramdisk) { -struct v3_pci_bar bars[6]; - struct pci_device * pci_dev; - int i; - - for (i = 0; i < 6; i++) { - bars[i].type = PCI_BAR_NONE; - bars[i].mem_hook = 0; - bars[i].num_pages = 0; - bars[i].bar_update = NULL; - } - - bars[4].type = PCI_BAR_MEM32; - bars[4].mem_hook = 0; - bars[4].num_pages = 1; - bars[4].bar_update = NULL; - - pci_dev = v3_pci_register_device(ramdisk->pci, PCI_STD_DEVICE, 0, "IDE", -1, bars, NULL, NULL, NULL, NULL); - - - pci_dev->config_header.vendor_id = 0x8086; - pci_dev->config_header.device_id = 0x2421; - - -} - */ -static int ramdisk_init_device(struct vm_device *dev) { - struct ramdisk_t *ramdisk= (struct ramdisk_t *)dev->private_data; - - PrintDebug("Initializing Ramdisk\n"); - - - rd_init_hardware(ramdisk); - - - v3_dev_hook_io(dev, PRI_CTRL_PORT, - &read_status_port, &write_ctrl_port); - - v3_dev_hook_io(dev, PRI_DATA_PORT, - &read_data_port, &write_data_port); - v3_dev_hook_io(dev, PRI_FEATURES_PORT, - &read_general_port, &write_general_port); - v3_dev_hook_io(dev, PRI_SECT_CNT_PORT, - &read_general_port, &write_general_port); - v3_dev_hook_io(dev, PRI_SECT_ADDR1_PORT, - &read_general_port, &write_general_port); - v3_dev_hook_io(dev, PRI_SECT_ADDR2_PORT, - &read_general_port, &write_general_port); - v3_dev_hook_io(dev, PRI_SECT_ADDR3_PORT, - &read_general_port, &write_general_port); - v3_dev_hook_io(dev, PRI_DRV_SEL_PORT, - &read_general_port, &write_general_port); - v3_dev_hook_io(dev, PRI_CMD_PORT, - &read_status_port, &write_cmd_port); - - - v3_dev_hook_io(dev, SEC_CTRL_PORT, - &read_status_port, &write_ctrl_port); - - v3_dev_hook_io(dev, SEC_DATA_PORT, - &read_data_port, &write_data_port); - v3_dev_hook_io(dev, SEC_FEATURES_PORT, - &read_general_port, &write_general_port); - v3_dev_hook_io(dev, SEC_SECT_CNT_PORT, - &read_general_port, &write_general_port); - v3_dev_hook_io(dev, SEC_SECT_ADDR1_PORT, - &read_general_port, &write_general_port); - v3_dev_hook_io(dev, SEC_SECT_ADDR2_PORT, - &read_general_port, &write_general_port); - v3_dev_hook_io(dev, SEC_SECT_ADDR3_PORT, - &read_general_port, &write_general_port); - v3_dev_hook_io(dev, SEC_DRV_SEL_PORT, - &read_general_port, &write_general_port); - v3_dev_hook_io(dev, SEC_CMD_PORT, - &read_status_port, &write_cmd_port); - - - - v3_dev_hook_io(dev, SEC_ADDR_REG_PORT, - &read_general_port, &write_general_port); - - v3_dev_hook_io(dev, PRI_ADDR_REG_PORT, - &read_general_port, &write_general_port); - - - - - - return 0; - -} - - -static int ramdisk_deinit_device(struct vm_device *dev) { - struct ramdisk_t *ramdisk = (struct ramdisk_t *)(dev->private_data); - rd_close_harddrive(ramdisk); - return 0; -} - -static struct vm_device_ops dev_ops = { - .init = ramdisk_init_device, - .deinit = ramdisk_deinit_device, - .reset = NULL, - .start = NULL, - .stop = NULL, -}; - - - - -struct vm_device * v3_create_ramdisk(struct vm_device * pci) -{ - - struct ramdisk_t *ramdisk; - ramdisk = (struct ramdisk_t *)V3_Malloc(sizeof(struct ramdisk_t)); - V3_ASSERT(ramdisk != NULL); - - // ramdisk->pci = pci; - - PrintDebug("[create_ramdisk]\n"); - - struct vm_device * device = v3_create_device("RAMDISK", &dev_ops, ramdisk); - - - - return device; -} - - - - -#ifdef DEBUG_RAMDISK - -static void rd_print_state(struct ramdisk_t * ramdisk) { - uchar_t channel; - uchar_t device; - struct channel_t * channels = (struct channel_t *)(&(ramdisk->channels)); - - /* - for (channel = 0; channel < MAX_ATA_CHANNEL; channel++) { - memset((char *)(channels + channel), 0, sizeof(struct channel_t)); - } - */ - - - - for (channel = 0; channel < MAX_ATA_CHANNEL; channel++){ - - for (device = 0; device < 2; device++){ - - // Initialize controller state, even if device is not present - PrintDebug("channels[%d].drives[%d].controller.status.busy = %d\n", - channel, device, - channels[channel].drives[device].controller.status.busy); - PrintDebug("channels[%d].drives[%d].controller.status.drive_ready = %d\n", - channel, device, - channels[channel].drives[device].controller.status.drive_ready); - PrintDebug("channels[%d].drives[%d].controller.status.write_fault = %d\n", - channel, device, - channels[channel].drives[device].controller.status.write_fault); - PrintDebug("channels[%d].drives[%d].controller.status.seek_complete = %d\n", - channel, device, - channels[channel].drives[device].controller.status.seek_complete); - PrintDebug("channels[%d].drives[%d].controller.status.drq = %d\n", - channel, device, - channels[channel].drives[device].controller.status.drq); - PrintDebug("channels[%d].drives[%d].controller.status.corrected_data = %d\n", - channel, device, - channels[channel].drives[device].controller.status.corrected_data); - PrintDebug("channels[%d].drives[%d].controller.status.index_pulse = %d\n", - channel, device, - channels[channel].drives[device].controller.status.index_pulse); - PrintDebug("channels[%d].drives[%d].controller.status.index_pulse_count = %d\n", - channel, device, - channels[channel].drives[device].controller.status.index_pulse_count); - PrintDebug("channels[%d].drives[%d].controller.status.err = %d\n", - channel, device, - channels[channel].drives[device].controller.status.err); - - - PrintDebug("channels[%d].drives[%d].controller.error_register = %d\n", - channel, device, - channels[channel].drives[device].controller.error_register); - PrintDebug("channels[%d].drives[%d].controller.head_no = %d\n", - channel, device, - channels[channel].drives[device].controller.head_no); - PrintDebug("channels[%d].drives[%d].controller.sector_count = %d\n", - channel, device, - channels[channel].drives[device].controller.sector_count); - PrintDebug("channels[%d].drives[%d].controller.sector_no = %d\n", - channel, device, - channels[channel].drives[device].controller.sector_no); - PrintDebug("channels[%d].drives[%d].controller.cylinder_no = %d\n", - channel, device, - channels[channel].drives[device].controller.cylinder_no); - PrintDebug("channels[%d].drives[%d].controller.current_command = %02x\n", - channel, device, - channels[channel].drives[device].controller.current_command); - PrintDebug("channels[%d].drives[%d].controller.buffer_index = %d\n", - channel, device, - channels[channel].drives[device].controller.buffer_index); - - - PrintDebug("channels[%d].drives[%d].controller.control.reset = %d\n", - channel, device, - channels[channel].drives[device].controller.control.reset); - PrintDebug("channels[%d].drives[%d].controller.control.disable_irq = %d\n", - channel, device, - channels[channel].drives[device].controller.control.disable_irq); - - - PrintDebug("channels[%d].drives[%d].controller.reset_in_progress = %d\n", - channel, device, - channels[channel].drives[device].controller.reset_in_progress); - PrintDebug("channels[%d].drives[%d].controller.sectors_per_block = %02x\n", - channel, device, - channels[channel].drives[device].controller.sectors_per_block); - PrintDebug("channels[%d].drives[%d].controller.lba_mode = %d\n", - channel, device, - channels[channel].drives[device].controller.lba_mode); - PrintDebug("channels[%d].drives[%d].controller.features = %d\n", - channel, device, - channels[channel].drives[device].controller.features); - - - PrintDebug("channels[%d].drives[%d].model_no = %s\n", - channel, device, - channels[channel].drives[device].model_no); - PrintDebug("channels[%d].drives[%d].device_type = %d\n", - channel, device, - channels[channel].drives[device].device_type); - PrintDebug("channels[%d].drives[%d].cdrom.locked = %d\n", - channel, device, - channels[channel].drives[device].cdrom.locked); - PrintDebug("channels[%d].drives[%d].sense.sense_key = %d\n", - channel, device, - channels[channel].drives[device].sense.sense_key); - PrintDebug("channels[%d].drives[%d].sense.asc = %d\n", - channel, device, - channels[channel].drives[device].sense.asc); - PrintDebug("channels[%d].drives[%d].sense.ascq = %d\n", - channel, device, - channels[channel].drives[device].sense.ascq); - - - - PrintDebug("channels[%d].drives[%d].controller.interrupt_reason.c_d = %02x\n", - channel, device, - channels[channel].drives[device].controller.interrupt_reason.c_d); - - PrintDebug("channels[%d].drives[%d].controller.interrupt_reason.i_o = %02x\n", - channel, device, - channels[channel].drives[device].controller.interrupt_reason.i_o); - - PrintDebug("channels[%d].drives[%d].controller.interrupt_reason.rel = %02x\n", - channel, device, - channels[channel].drives[device].controller.interrupt_reason.rel); - - PrintDebug("channels[%d].drives[%d].controller.interrupt_reason.tag = %02x\n", - channel, device, - channels[channel].drives[device].controller.interrupt_reason.tag); - - PrintDebug("channels[%d].drives[%d].cdrom.ready = %d\n", - channel, device, - channels[channel].drives[device].cdrom.ready); - - } //for device - } //for channel - - return; -} - - -#endif diff --git a/misc/ramdisk.h b/misc/ramdisk.h deleted file mode 100644 index 017512d..0000000 --- a/misc/ramdisk.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * This file is part of the Palacios Virtual Machine Monitor developed - * by the V3VEE Project with funding from the United States National - * Science Foundation and the Department of Energy. - * - * The V3VEE Project is a joint project between Northwestern University - * and the University of New Mexico. You can find out more at - * http://www.v3vee.org - * - * Copyright (c) 2008, Zheng Cui - * Copyright (c) 2008, The V3VEE Project - * All rights reserved. - * - * Author: Zheng Cui - * - * This is free software. You are permitted to use, - * redistribute, and modify it as specified in the file "V3VEE_LICENSE". - */ - -#ifndef __DEVICES_RAMDISK_H__ -#define __DEVICES_RAMDISK_H__ - -#ifdef __V3VEE__ - - - -#include -#include - -struct cdrom_ops; - - -int v3_ramdisk_register_cdrom(struct vm_device * ide_dev, uint_t busID, uint_t driveID, struct cdrom_ops * cd, void * private_data); - -struct vm_device * v3_create_ramdisk(); - - -#endif // ! __V3VEE__ - -#endif