diff options
author | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-04-01 13:05:24 +0200 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-04-01 13:05:24 +0200 |
commit | ff2f287f82630ab3887d7d5c1e64e5b888ea0beb (patch) | |
tree | 4e96cb32aa2320a327024942d247c6b56ef8c199 /toolkit/crashreporter/google-breakpad/src/third_party/libdisasm/x86_insn.c | |
parent | bfc97728065cbbc7f6bbc281b654a2d1e079b48d (diff) | |
download | UXP-ff2f287f82630ab3887d7d5c1e64e5b888ea0beb.tar UXP-ff2f287f82630ab3887d7d5c1e64e5b888ea0beb.tar.gz UXP-ff2f287f82630ab3887d7d5c1e64e5b888ea0beb.tar.lz UXP-ff2f287f82630ab3887d7d5c1e64e5b888ea0beb.tar.xz UXP-ff2f287f82630ab3887d7d5c1e64e5b888ea0beb.zip |
Remove crashreporter toolkit files.
Resolves #20
Diffstat (limited to 'toolkit/crashreporter/google-breakpad/src/third_party/libdisasm/x86_insn.c')
-rw-r--r-- | toolkit/crashreporter/google-breakpad/src/third_party/libdisasm/x86_insn.c | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/toolkit/crashreporter/google-breakpad/src/third_party/libdisasm/x86_insn.c b/toolkit/crashreporter/google-breakpad/src/third_party/libdisasm/x86_insn.c deleted file mode 100644 index 5649b89fb..000000000 --- a/toolkit/crashreporter/google-breakpad/src/third_party/libdisasm/x86_insn.c +++ /dev/null @@ -1,182 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -#include "libdis.h" - -#ifdef _MSC_VER - #define snprintf _snprintf - #define inline __inline -#endif - -int x86_insn_is_valid( x86_insn_t *insn ) { - if ( insn && insn->type != insn_invalid && insn->size > 0 ) { - return 1; - } - - return 0; -} - -uint32_t x86_get_address( x86_insn_t *insn ) { - x86_oplist_t *op_lst; - if (! insn || ! insn->operands ) { - return 0; - } - - for (op_lst = insn->operands; op_lst; op_lst = op_lst->next ) { - if ( op_lst->op.type == op_offset ) { - return op_lst->op.data.offset; - } else if ( op_lst->op.type == op_absolute ) { - if ( op_lst->op.datatype == op_descr16 ) { - return (uint32_t) - op_lst->op.data.absolute.offset.off16; - } - return op_lst->op.data.absolute.offset.off32; - } - } - - return 0; -} - -int32_t x86_get_rel_offset( x86_insn_t *insn ) { - x86_oplist_t *op_lst; - if (! insn || ! insn->operands ) { - return 0; - } - - for (op_lst = insn->operands; op_lst; op_lst = op_lst->next ) { - if ( op_lst->op.type == op_relative_near ) { - return (int32_t) op_lst->op.data.relative_near; - } else if ( op_lst->op.type == op_relative_far ) { - return op_lst->op.data.relative_far; - } - } - - return 0; -} - -x86_op_t * x86_get_branch_target( x86_insn_t *insn ) { - x86_oplist_t *op_lst; - if (! insn || ! insn->operands ) { - return NULL; - } - - for (op_lst = insn->operands; op_lst; op_lst = op_lst->next ) { - if ( op_lst->op.access & op_execute ) { - return &(op_lst->op); - } - } - - return NULL; -} -x86_op_t * x86_get_imm( x86_insn_t *insn ) { - x86_oplist_t *op_lst; - if (! insn || ! insn->operands ) { - return NULL; - } - - for (op_lst = insn->operands; op_lst; op_lst = op_lst->next ) { - if ( op_lst->op.type == op_immediate ) { - return &(op_lst->op); - } - } - - return NULL; -} - -#define IS_PROPER_IMM( x ) \ - x->op.type == op_immediate && ! (x->op.flags & op_hardcode) - - -/* if there is an immediate value in the instruction, return a pointer to - * it */ -unsigned char * x86_get_raw_imm( x86_insn_t *insn ) { - int size, offset; - x86_op_t *op = NULL; - - if (! insn || ! insn->operands ) { - return(NULL); - } - - /* a bit inelegant, but oh well... */ - if ( IS_PROPER_IMM( insn->operands ) ) { - op = &insn->operands->op; - } else if ( insn->operands->next ) { - if ( IS_PROPER_IMM( insn->operands->next ) ) { - op = &insn->operands->next->op; - } else if ( insn->operands->next->next && - IS_PROPER_IMM( insn->operands->next->next ) ) { - op = &insn->operands->next->next->op; - } - } - - if (! op ) { - return( NULL ); - } - - /* immediate data is at the end of the insn */ - size = x86_operand_size( op ); - offset = insn->size - size; - return( &insn->bytes[offset] ); -} - - -unsigned int x86_operand_size( x86_op_t *op ) { - switch (op->datatype ) { - case op_byte: return 1; - case op_word: return 2; - case op_dword: return 4; - case op_qword: return 8; - case op_dqword: return 16; - case op_sreal: return 4; - case op_dreal: return 8; - case op_extreal: return 10; - case op_bcd: return 10; - case op_ssimd: return 16; - case op_dsimd: return 16; - case op_sssimd: return 4; - case op_sdsimd: return 8; - case op_descr32: return 6; - case op_descr16: return 4; - case op_pdescr32: return 6; - case op_pdescr16: return 6; - case op_bounds16: return 4; - case op_bounds32: return 8; - case op_fpuenv16: return 14; - case op_fpuenv32: return 28; - case op_fpustate16: return 94; - case op_fpustate32: return 108; - case op_fpregset: return 512; - case op_fpreg: return 10; - case op_none: return 0; - } - return(4); /* default size */ -} - -void x86_set_insn_addr( x86_insn_t *insn, uint32_t addr ) { - if ( insn ) insn->addr = addr; -} - -void x86_set_insn_offset( x86_insn_t *insn, unsigned int offset ){ - if ( insn ) insn->offset = offset; -} - -void x86_set_insn_function( x86_insn_t *insn, void * func ){ - if ( insn ) insn->function = func; -} - -void x86_set_insn_block( x86_insn_t *insn, void * block ){ - if ( insn ) insn->block = block; -} - -void x86_tag_insn( x86_insn_t *insn ){ - if ( insn ) insn->tag = 1; -} - -void x86_untag_insn( x86_insn_t *insn ){ - if ( insn ) insn->tag = 0; -} - -int x86_insn_is_tagged( x86_insn_t *insn ){ - return insn->tag; -} - |