summaryrefslogtreecommitdiff
path: root/src/arch/instruction.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/instruction.c')
-rw-r--r--src/arch/instruction.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/arch/instruction.c b/src/arch/instruction.c
index e0cea9f..37b2147 100644
--- a/src/arch/instruction.c
+++ b/src/arch/instruction.c
@@ -202,6 +202,25 @@ void g_arch_instruction_attach_extra_operand(GArchInstruction *instr, GArchOpera
/******************************************************************************
* *
+* Paramètres : instr = instance à consulter. *
+* *
+* Description : Indique la quantité d'opérandes présents dans l'instruction. *
+* *
+* Retour : Nombre d'opérandes attachés. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+size_t g_arch_instruction_count_operands(const GArchInstruction *instr)
+{
+ return instr->operands_count;
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : instr = instance à mettre à jour. *
* index = indice de l'opérande concernée. *
* *
@@ -227,6 +246,34 @@ const GArchOperand *g_arch_instruction_get_operand(GArchInstruction *instr, size
/******************************************************************************
* *
+* Paramètres : instr = instance à mettre à jour. *
+* new = nouvelle opérande à attacher. *
+* old = ancienne opérande à détacher. *
+* *
+* Description : Replace un opérande d'une instruction par un autre. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void g_arch_instruction_replace_operand(GArchInstruction *instr, GArchOperand *new, const GArchOperand *old)
+{
+ size_t i; /* Boucle de parcours */
+
+ for (i = 0; i < instr->operands_count; i++)
+ if (instr->operands[i] == old)
+ break;
+
+ if (i < instr->operands_count)
+ instr->operands[i] = new;
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : instr = instance à mettre à jour. *
* opererand = instruction à venir dissocier. *
* *