00001 /* 00002 * HT Editor 00003 * analy_il.cc 00004 * 00005 * Copyright (C) 1999-2002 Sebastian Biallas (sb@web-productions.de) 00006 * 00007 * This program is free software; you can redistribute it and/or modify 00008 * it under the terms of the GNU General Public License version 2 as 00009 * published by the Free Software Foundation. 00010 * 00011 * This program is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 * GNU General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU General Public License 00017 * along with this program; if not, write to the Free Software 00018 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00019 */ 00020 00021 #include <string.h> 00022 00023 #include "analy_il.h" 00024 #include "analy_register.h" 00025 #include "ildis.h" 00026 #include "htiobox.h" 00027 #include "snprintf.h" 00028 00029 /* 00030 * 00031 */ 00032 void AnalyILDisassembler::init(Analyser *A, char* (*string_func)(dword string_ofs, void *context), char* (*token_func)(dword token, void *context), void *context) 00033 { 00034 disasm = new ILDisassembler(string_func, token_func, context); 00035 AnalyDisassembler::init(A); 00036 } 00037 00038 /* 00039 * 00040 */ 00041 void AnalyILDisassembler::done() 00042 { 00043 AnalyDisassembler::done(); 00044 } 00045 00046 OBJECT_ID AnalyILDisassembler::object_id() const 00047 { 00048 return ATOM_ANALY_IL; 00049 } 00050 00051 /* 00052 * 00053 */ 00054 Address *AnalyILDisassembler::branchAddr(OPCODE *opcode, branch_enum_t branchtype, bool examine) 00055 { 00056 return new InvalidAddress(); 00057 } 00058 00059 Address *AnalyILDisassembler::createAddress(dword offset) 00060 { 00061 return new AddressFlat32(offset); 00062 } 00063 00064 /* 00065 * 00066 */ 00067 void AnalyILDisassembler::examineOpcode(OPCODE *opcode) 00068 { 00069 } 00070 00071 /* 00072 * 00073 */ 00074 branch_enum_t AnalyILDisassembler::isBranch(OPCODE *opcode) 00075 { 00076 return br_nobranch; 00077 }