diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2016-04-21 20:14:04 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2016-04-21 20:14:04 (GMT) |
commit | d062f5ffbac1250938206f4d2e15c44d8a9357f6 (patch) | |
tree | b7bf90248866925515b3c2029eb7e9bbc12e6e05 /src/arch/arm/v7/thumb_16.c | |
parent | c517a9defa6fae19007a398e0594074d08d18fd0 (diff) |
Got prepared for more ARMv7 opcodes.
Diffstat (limited to 'src/arch/arm/v7/thumb_16.c')
-rw-r--r-- | src/arch/arm/v7/thumb_16.c | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/src/arch/arm/v7/thumb_16.c b/src/arch/arm/v7/thumb_16.c index c722f30..4697b3e 100644 --- a/src/arch/arm/v7/thumb_16.c +++ b/src/arch/arm/v7/thumb_16.c @@ -33,25 +33,25 @@ -/* Désassemble une instruction ARMv7 en mode Thumb 16 bits. */ +/* Désassemble une instruction ARMv7 liées au chapitre A6.2.1 */ static GArchInstruction *process_armv7_thumb_16_shift_immediate_add_subtract_move_and_compare(uint16_t); -/* Désassemble une instruction ARMv7 en mode Thumb 16 bits. */ +/* Désassemble une instruction ARMv7 liées au chapitre A6.2.2. */ static GArchInstruction *process_armv7_thumb_16_data_processing(uint16_t); -/* Désassemble une instruction ARMv7 en mode Thumb 16 bits. */ +/* Désassemble une instruction ARMv7 liées au chapitre A6.2.3. */ static GArchInstruction *process_armv7_thumb_16_special_data_instructions_and_branch_and_exchange(uint16_t); -/* Désassemble une instruction ARMv7 en mode Thumb 16 bits. */ +/* Désassemble une instruction ARMv7 liées au chapitre A6.2.4. */ static GArchInstruction *process_armv7_thumb_16_load_store_single_data_item(uint16_t); -/* Désassemble une instruction ARMv7 en mode Thumb 16 bits. */ +/* Désassemble une instruction ARMv7 liées au chapitre A6.2.5. */ static GArchInstruction *process_armv7_thumb_16_miscellaneous_16_bit_instructions(uint16_t); -/* Désassemble une instruction ARMv7 en mode Thumb 16 bits. */ +/* Désassemble une instruction ARMv7 liées au chapitre A6.2.5.b. */ static GArchInstruction *process_armv7_thumb_16_miscellaneous_16_bit_instructions_if_then_and_hints(uint16_t); -/* Désassemble une instruction ARMv7 en mode Thumb 16 bits. */ +/* Désassemble une instruction ARMv7 liées au chapitre A6.2.6. */ static GArchInstruction *process_armv7_thumb_16_conditional_branch_and_supervisor_call(uint16_t); @@ -60,7 +60,7 @@ static GArchInstruction *process_armv7_thumb_16_conditional_branch_and_superviso * * * Paramètres : raw = donnée brute de 16 bits à désassembler. * * * -* Description : Désassemble une instruction ARMv7 en mode Thumb 16 bits. * +* Description : Désassemble une instruction ARMv7 liées au chapitre A6.2. * * * * Retour : Instruction mise en place ou NULL en cas d'échec. * * * @@ -133,7 +133,7 @@ GArchInstruction *process_armv7_thumb_16_instruction_set_encoding(uint16_t raw) * * * Paramètres : raw = donnée brute de 16 bits à désassembler. * * * -* Description : Désassemble une instruction ARMv7 en mode Thumb 16 bits. * +* Description : Désassemble une instruction ARMv7 liées au chapitre A6.2.1. * * * * Retour : Instruction mise en place ou NULL en cas d'échec. * * * @@ -199,7 +199,7 @@ static GArchInstruction *process_armv7_thumb_16_shift_immediate_add_subtract_mov * * * Paramètres : raw = donnée brute de 16 bits à désassembler. * * * -* Description : Désassemble une instruction ARMv7 en mode Thumb 16 bits. * +* Description : Désassemble une instruction ARMv7 liées au chapitre A6.2.2. * * * * Retour : Instruction mise en place ou NULL en cas d'échec. * * * @@ -300,7 +300,7 @@ static GArchInstruction *process_armv7_thumb_16_data_processing(uint16_t raw) * * * Paramètres : raw = donnée brute de 16 bits à désassembler. * * * -* Description : Désassemble une instruction ARMv7 en mode Thumb 16 bits. * +* Description : Désassemble une instruction ARMv7 liées au chapitre A6.2.3. * * * * Retour : Instruction mise en place ou NULL en cas d'échec. * * * @@ -360,7 +360,7 @@ static GArchInstruction *process_armv7_thumb_16_special_data_instructions_and_br * * * Paramètres : raw = donnée brute de 16 bits à désassembler. * * * -* Description : Désassemble une instruction ARMv7 en mode Thumb 16 bits. * +* Description : Désassemble une instruction ARMv7 liées au chapitre A6.2.4. * * * * Retour : Instruction mise en place ou NULL en cas d'échec. * * * @@ -471,7 +471,7 @@ static GArchInstruction *process_armv7_thumb_16_load_store_single_data_item(uint * * * Paramètres : raw = donnée brute de 16 bits à désassembler. * * * -* Description : Désassemble une instruction ARMv7 en mode Thumb 16 bits. * +* Description : Désassemble une instruction ARMv7 liées au chapitre A6.2.5. * * * * Retour : Instruction mise en place ou NULL en cas d'échec. * * * @@ -561,7 +561,7 @@ static GArchInstruction *process_armv7_thumb_16_miscellaneous_16_bit_instruction * * * Paramètres : raw = donnée brute de 16 bits à désassembler. * * * -* Description : Désassemble une instruction ARMv7 en mode Thumb 16 bits. * +* Description : Désassemble une instruction ARMv7 liées au chapitre A6.2.5.b.* * * * Retour : Instruction mise en place ou NULL en cas d'échec. * * * @@ -588,7 +588,10 @@ static GArchInstruction *process_armv7_thumb_16_miscellaneous_16_bit_instruction opa = (raw >> 4) & b1111; opb = (raw >> 0) & b1111; - if (opb == b0000) + if (opb != b0000) + result = armv7_read_thumb_16_instr_it(raw); + + else switch (opa) { case b0000: @@ -613,9 +616,6 @@ static GArchInstruction *process_armv7_thumb_16_miscellaneous_16_bit_instruction } - else - result = armv7_read_thumb_16_instr_it(raw); - return result; } @@ -625,7 +625,7 @@ static GArchInstruction *process_armv7_thumb_16_miscellaneous_16_bit_instruction * * * Paramètres : raw = donnée brute de 16 bits à désassembler. * * * -* Description : Désassemble une instruction ARMv7 en mode Thumb 16 bits. * +* Description : Désassemble une instruction ARMv7 liées au chapitre A6.2.6. * * * * Retour : Instruction mise en place ou NULL en cas d'échec. * * * |