Working towards gui integration with exetoc_qt
This commit is contained in:
68
3rd_party/libdisasm/INTEL_BUGS
vendored
Normal file
68
3rd_party/libdisasm/INTEL_BUGS
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
PMOVMSKB
|
||||
Gd, Pq1H
|
||||
PMOVMSKB
|
||||
(66)
|
||||
Gd, Vdq1H
|
||||
|
||||
should be
|
||||
|
||||
PMOVMSKB
|
||||
Gd, Qq1H
|
||||
PMOVMSKB
|
||||
(66)
|
||||
Gd, Wdq1H
|
||||
|
||||
The instruction represented by this opcode expression does not support any
|
||||
operand to be a memory location.
|
||||
|
||||
MASKMOVQ
|
||||
Pq, Pq1H
|
||||
MASKMOVDQU
|
||||
(66)
|
||||
Vdq, Vdq1H
|
||||
|
||||
should be
|
||||
|
||||
MASKMOVQ
|
||||
Pq, Pq1H
|
||||
MASKMOVDQU
|
||||
(66)
|
||||
Vdq, Wdq1H
|
||||
|
||||
MOVMSKPS
|
||||
Gd, Vps1H
|
||||
MOVMSKPD
|
||||
(66)
|
||||
Gd, Vpd1H
|
||||
|
||||
should be
|
||||
|
||||
MOVMSKPS
|
||||
Gd, Wps1H
|
||||
MOVMSKPD
|
||||
(66)
|
||||
Gd, Wpd1H
|
||||
|
||||
The opcode table entries for LFS, LGS, and LSS
|
||||
|
||||
L[FGS]S
|
||||
Mp
|
||||
|
||||
should be
|
||||
|
||||
L[FGS]S
|
||||
Gv,Mp
|
||||
|
||||
MOVHLPS
|
||||
Vps, Vps
|
||||
|
||||
MOVLHPS
|
||||
Vps, Vps
|
||||
|
||||
should be
|
||||
|
||||
MOVHLPS
|
||||
Vps, Wps
|
||||
|
||||
MOVLHPS
|
||||
Vps, Wps
|
||||
137
3rd_party/libdisasm/LICENSE
vendored
Normal file
137
3rd_party/libdisasm/LICENSE
vendored
Normal file
@@ -0,0 +1,137 @@
|
||||
|
||||
|
||||
|
||||
|
||||
The "Clarified Artistic License"
|
||||
|
||||
Preamble
|
||||
|
||||
The intent of this document is to state the conditions under which a
|
||||
Package may be copied, such that the Copyright Holder maintains some
|
||||
semblance of artistic control over the development of the package,
|
||||
while giving the users of the package the right to use and distribute
|
||||
the Package in a more-or-less customary fashion, plus the right to make
|
||||
reasonable modifications.
|
||||
|
||||
Definitions:
|
||||
|
||||
"Package" refers to the collection of files distributed by the
|
||||
Copyright Holder, and derivatives of that collection of files
|
||||
created through textual modification.
|
||||
|
||||
"Standard Version" refers to such a Package if it has not been
|
||||
modified, or has been modified in accordance with the wishes
|
||||
of the Copyright Holder as specified below.
|
||||
|
||||
"Copyright Holder" is whoever is named in the copyright or
|
||||
copyrights for the package.
|
||||
|
||||
"You" is you, if you're thinking about copying or distributing
|
||||
this Package.
|
||||
|
||||
"Distribution fee" is a fee you charge for providing a copy of this
|
||||
Package to another party.
|
||||
|
||||
"Freely Available" means that no fee is charged for the right to use
|
||||
the item, though there may be fees involved in handling the item.
|
||||
|
||||
1. You may make and give away verbatim copies of the source form of the
|
||||
Standard Version of this Package without restriction, provided that you
|
||||
duplicate all of the original copyright notices and associated disclaimers.
|
||||
|
||||
2. You may apply bug fixes, portability fixes and other modifications
|
||||
derived from the Public Domain, or those made Freely Available, or from
|
||||
the Copyright Holder. A Package modified in such a way shall still be
|
||||
considered the Standard Version.
|
||||
|
||||
3. You may otherwise modify your copy of this Package in any way, provided
|
||||
that you insert a prominent notice in each changed file stating how and
|
||||
when you changed that file, and provided that you do at least ONE of the
|
||||
following:
|
||||
|
||||
a) place your modifications in the Public Domain or otherwise make them
|
||||
Freely Available, such as by posting said modifications to Usenet or
|
||||
an equivalent medium, or placing the modifications on a major archive
|
||||
site allowing unrestricted access to them, or by allowing the Copyright
|
||||
Holder to include your modifications in the Standard Version of the
|
||||
Package.
|
||||
|
||||
b) use the modified Package only within your corporation or organization.
|
||||
|
||||
c) rename any non-standard executables so the names do not conflict
|
||||
with standard executables, which must also be provided, and provide
|
||||
a separate manual page for each non-standard executable that clearly
|
||||
documents how it differs from the Standard Version.
|
||||
|
||||
d) make other distribution arrangements with the Copyright Holder.
|
||||
|
||||
e) permit and encourge anyone who receives a copy of the modified Package
|
||||
permission to make your modifications Freely Available in some specific
|
||||
way.
|
||||
|
||||
4. You may distribute the programs of this Package in object code or
|
||||
executable form, provided that you do at least ONE of the following:
|
||||
|
||||
a) distribute a Standard Version of the executables and library files,
|
||||
together with instructions (in the manual page or equivalent) on where
|
||||
to get the Standard Version.
|
||||
|
||||
b) accompany the distribution with the machine-readable source of
|
||||
the Package with your modifications.
|
||||
|
||||
c) give non-standard executables non-standard names, and clearly
|
||||
document the differences in manual pages (or equivalent), together
|
||||
with instructions on where to get the Standard Version.
|
||||
|
||||
d) make other distribution arrangements with the Copyright Holder.
|
||||
|
||||
e) offer the machine-readable source of the Package, with your
|
||||
modifications, by mail order.
|
||||
|
||||
5. You may charge a distribution fee for any distribution of this Package.
|
||||
If you offer support for this Package, you may charge any fee you choose
|
||||
for that support. You may not charge a license fee for the right to use
|
||||
this Package itself. You may distribute this Package in aggregate with
|
||||
other (possibly commercial and possibly nonfree) programs as part of a
|
||||
larger (possibly commercial and possibly nonfree) software distribution,
|
||||
and charge license fees for other parts of that software distribution,
|
||||
provided that you do not advertise this Package as a product of your own.
|
||||
If the Package includes an interpreter, You may embed this Package's
|
||||
interpreter within an executable of yours (by linking); this shall be
|
||||
construed as a mere form of aggregation, provided that the complete
|
||||
Standard Version of the interpreter is so embedded.
|
||||
|
||||
6. The scripts and library files supplied as input to or produced as
|
||||
output from the programs of this Package do not automatically fall
|
||||
under the copyright of this Package, but belong to whoever generated
|
||||
them, and may be sold commercially, and may be aggregated with this
|
||||
Package. If such scripts or library files are aggregated with this
|
||||
Package via the so-called "undump" or "unexec" methods of producing a
|
||||
binary executable image, then distribution of such an image shall
|
||||
neither be construed as a distribution of this Package nor shall it
|
||||
fall under the restrictions of Paragraphs 3 and 4, provided that you do
|
||||
not represent such an executable image as a Standard Version of this
|
||||
Package.
|
||||
|
||||
7. C subroutines (or comparably compiled subroutines in other
|
||||
languages) supplied by you and linked into this Package in order to
|
||||
emulate subroutines and variables of the language defined by this
|
||||
Package shall not be considered part of this Package, but are the
|
||||
equivalent of input as in Paragraph 6, provided these subroutines do
|
||||
not change the language in any way that would cause it to fail the
|
||||
regression tests for the language.
|
||||
|
||||
8. Aggregation of the Standard Version of the Package with a commercial
|
||||
distribution is always permitted provided that the use of this Package is
|
||||
embedded; that is, when no overt attempt is made to make this Package's
|
||||
interfaces visible to the end user of the commercial distribution.
|
||||
Such use shall not be construed as a distribution of this Package.
|
||||
|
||||
9. The name of the Copyright Holder may not be used to endorse or promote
|
||||
products derived from this software without specific prior written permission.
|
||||
|
||||
10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
The End
|
||||
12
3rd_party/libdisasm/NAMESPACE.TXT
vendored
Normal file
12
3rd_party/libdisasm/NAMESPACE.TXT
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
The rewritten libdisasm code uses the following namespaces:
|
||||
|
||||
|
||||
Prefix Namespace
|
||||
----------------------------------------------------
|
||||
x86_ Global 'libdisasm' namespace
|
||||
ia32_ Internal IA32 ISA namespace
|
||||
ia64_ Internal IA64 ISA namespace
|
||||
ix64_ Internal X86-64 ISA namespace
|
||||
|
||||
Note that the 64-bit ISAs are not yet supported/written.
|
||||
2
3rd_party/libdisasm/README
vendored
Normal file
2
3rd_party/libdisasm/README
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
This is a cut-up version of libdisasm originally from the bastard project http://bastard.sourceforge.net/
|
||||
|
||||
43
3rd_party/libdisasm/TODO
vendored
Normal file
43
3rd_party/libdisasm/TODO
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
x86_format.c
|
||||
------------
|
||||
intel: jmpf -> jmp, callf -> call
|
||||
att: jmpf -> ljmp, callf -> lcall
|
||||
|
||||
opcode table
|
||||
------------
|
||||
finish typing instructions
|
||||
fix flag clear/set/toggle types
|
||||
|
||||
ix64 stuff
|
||||
----------
|
||||
document output file formats in web page
|
||||
features doc: register aliases, implicit operands, stack mods,
|
||||
ring0 flags, eflags, cpu model/isa
|
||||
|
||||
ia32_handle_* implementation
|
||||
|
||||
fix operand 0F C2
|
||||
CMPPS
|
||||
|
||||
* sysenter, sysexit as CALL types -- preceded by MSR writes
|
||||
* SYSENTER/SYSEXIT stack : overwrites SS, ESP
|
||||
* stos, cmps, scas, movs, ins, outs, lods -> OP_PTR
|
||||
* OP_SIZE in implicit operands
|
||||
* use OP_SIZE to choose reg sizes!
|
||||
|
||||
DONE?? :
|
||||
implicit operands: provide action ?
|
||||
e.g. add/inc for stach, write, etc
|
||||
replace table numbers in opcodes.dat with
|
||||
#defines for table names
|
||||
|
||||
replace 0 with INSN_INVALID [or maybe FF for imnvalid and 00 for Not Applicable */
|
||||
no wait that is only for prefix tables -- n/p
|
||||
|
||||
if ( prefx) only use if insn != invalid
|
||||
|
||||
these should cover all the wacky disasm exceptions
|
||||
|
||||
for the rep one we can chet, match only a 0x90
|
||||
|
||||
todo: privilege | ring
|
||||
36
3rd_party/libdisasm/ia32_fixup.cpp
vendored
Normal file
36
3rd_party/libdisasm/ia32_fixup.cpp
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
#include <stdio.h>
|
||||
|
||||
static const char * mem_fixup[256] = {
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 00 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 08 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 10 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 18 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 20 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 28 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 30 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 38 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 40 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 48 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 50 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 58 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 60 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 68 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 70 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 78 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 80 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 88 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 90 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 98 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* A0 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* A8 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B0 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B8 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C0 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C8 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D0 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D8 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E0 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E8 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F0 */
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL /* F8 */
|
||||
};
|
||||
3206
3rd_party/libdisasm/ia32_opcode.dat
vendored
Normal file
3206
3rd_party/libdisasm/ia32_opcode.dat
vendored
Normal file
File diff suppressed because it is too large
Load Diff
49
3rd_party/libdisasm/libdisasm.def
vendored
Normal file
49
3rd_party/libdisasm/libdisasm.def
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
;libdisasm.def : Declares the module parameters
|
||||
|
||||
LIBRARY "libdisasm.dll"
|
||||
DESCRIPTION "libdisasm exported functions"
|
||||
EXPORTS
|
||||
x86_addr_size @1
|
||||
x86_cleanup @2
|
||||
x86_disasm @3
|
||||
x86_disasm_forward @4
|
||||
x86_disasm_range @5
|
||||
x86_endian @6
|
||||
x86_format_header @7
|
||||
x86_format_insn @8
|
||||
x86_format_mnemonic @9
|
||||
x86_format_operand @10
|
||||
x86_fp_reg @11
|
||||
x86_get_branch_target @12
|
||||
x86_get_imm @13
|
||||
x86_get_options @14
|
||||
x86_get_raw_imm @15
|
||||
x86_get_rel_offset @16
|
||||
x86_imm_signsized @17
|
||||
x86_imm_sized @18
|
||||
x86_init @19
|
||||
x86_insn_is_tagged @20
|
||||
x86_insn_is_valid @21
|
||||
x86_invariant_disasm @22
|
||||
x86_ip_reg @23
|
||||
x86_max_insn_size @24
|
||||
x86_op_size @25
|
||||
x86_operand_1st @26
|
||||
x86_operand_2nd @27
|
||||
x86_operand_3rd @28
|
||||
x86_operand_count @29
|
||||
x86_operand_foreach @30
|
||||
x86_operand_new @31
|
||||
x86_operand_size @32
|
||||
x86_oplist_free @33
|
||||
x86_reg_from_id @34
|
||||
x86_report_error @35
|
||||
x86_set_insn_addr @36
|
||||
x86_set_insn_block @37
|
||||
x86_set_insn_function @38
|
||||
x86_set_insn_offset @39
|
||||
x86_set_options @40
|
||||
x86_set_reporter @41
|
||||
x86_size_disasm @42
|
||||
x86_sp_reg @43
|
||||
x86_tag_insn @44
|
||||
Reference in New Issue
Block a user