diff options
| author | Cyrille Bagard <nocbos@gmail.com> | 2010-06-27 23:27:38 (GMT) | 
|---|---|---|
| committer | Cyrille Bagard <nocbos@gmail.com> | 2010-06-27 23:27:38 (GMT) | 
| commit | f38beea1951f9c323af3d05a3c4d2cf35f407245 (patch) | |
| tree | 763a3ffc38b22135a7dccdbc521c8b21c5f37df7 /src/arch/processor.c | |
| parent | a3b128d4f448fa1eee12074a9bf0256b06e222e8 (diff) | |
Defined the minimal instruction size for a given architecture.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@171 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/arch/processor.c')
| -rw-r--r-- | src/arch/processor.c | 25 | 
1 files changed, 25 insertions, 0 deletions
diff --git a/src/arch/processor.c b/src/arch/processor.c index 9bea205..2b1f060 100644 --- a/src/arch/processor.c +++ b/src/arch/processor.c @@ -42,6 +42,7 @@  #include "artificial.h" +#include "arm/processor.h"  #include "dalvik/processor.h"  #include "jvm/processor.h"  #include "mips/processor.h" @@ -152,6 +153,25 @@ MemoryDataSize g_arch_processor_get_memory_size(const GArchProcessor *proc)  /******************************************************************************  *                                                                             * +*  Paramètres  : proc = processeur d'architecture à consulter.                * +*                                                                             * +*  Description : Fournit la taille min. des instructions d'une architecture.  * +*                                                                             * +*  Retour      : Taille d'encodage des instructions                           * +*                                                                             * +*  Remarques   : -                                                            * +*                                                                             * +******************************************************************************/ + +MemoryDataSize g_arch_processor_get_instruction_size(const GArchProcessor *proc) +{ +    return proc->inssize; + +} + + +/****************************************************************************** +*                                                                             *  *  Paramètres  : proc   = architecture visée par la procédure.                *  *                data   = flux de données à analyser.                         *  *                pos    = position courante dans ce flux. [OUT]               * @@ -210,6 +230,7 @@ GArchInstruction *g_arch_processor_decode_instruction(const GArchProcessor *proc  bool init_all_processors(void)  { +    _processors_list[APT_ARM] = g_arm_processor_new();      _processors_list[APT_DALVIK] = g_dalvik_processor_new();      _processors_list[APT_JVM] = g_jvm_processor_new();      _processors_list[APT_MIPS] = g_mips_processor_new(); @@ -257,6 +278,10 @@ GArchProcessor *get_arch_processor_from_format(const GExeFormat *format)      switch (g_exe_format_get_target_machine(format))      { +        case FTM_ARM: +            result = get_arch_processor_for_type(APT_ARM); +            break; +          case FTM_DALVIK:              result = get_arch_processor_for_type(APT_DALVIK);              break;  | 
