diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2014-12-09 23:07:29 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2014-12-09 23:07:29 (GMT) |
commit | 224a2ef04e37cd180a58ede3469fddc59e39bc13 (patch) | |
tree | 9b61b706f525304e919e9fa8b1fcb78392746acd /src/arch/arm/v7/helpers.h | |
parent | 096f123b87437cf25cd008a6dea710286fbefcf0 (diff) |
Supported new ARMv7 instructions.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@438 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/arch/arm/v7/helpers.h')
-rw-r--r-- | src/arch/arm/v7/helpers.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/arch/arm/v7/helpers.h b/src/arch/arm/v7/helpers.h index fee5aea..919611e 100644 --- a/src/arch/arm/v7/helpers.h +++ b/src/arch/arm/v7/helpers.h @@ -31,6 +31,7 @@ #include "pseudo.h" #include "operands/maccess.h" #include "operands/offset.h" +#include "operands/reglist.h" #include "operands/shift.h" #include "../../operand.h" @@ -188,8 +189,30 @@ return shift_t; +/** + * Glue purement interne pour les listes de registres. + */ + +#define RegistersList(mask) \ + ({ \ + GArchOperand *__result; \ + __result = g_armv7_reglist_operand_new(); \ + if (!g_armv7_reglist_load_registers(G_ARMV7_REGLIST_OPERAND(__result), mask)) \ + { \ + g_object_unref(G_OBJECT(__result)); \ + __result = NULL; \ + } \ + __result; \ + }) +#define ListFromRegister(reg) \ + ({ \ + GArchOperand *__result; \ + __result = g_armv7_reglist_operand_new(); \ + g_armv7_reglist_add_register(G_ARMV7_REGLIST_OPERAND(__result), reg); \ + __result; \ + }) |