From: jamesbowman Date: Mon, 28 Sep 2015 18:22:06 +0000 (-0700) Subject: FT32: define macros for instruction recognition. X-Git-Tag: users/ARM/embedded-binutils-2_26-branch-2016q1~575 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=71f4ed30fe331d062703e803f29a67b558e8e22d;p=external%2Fbinutils.git FT32: define macros for instruction recognition. Other places (e.g. the gdb stack unwinder) can use these instead of hard-coded patterns. [include/Changelog] 2015-09-26 James Bowman * opcode/ft32.h: Add instruction macros FT32_*() --- diff --git a/include/ChangeLog b/include/ChangeLog index 8b9f921..99a8bd9 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2015-09-26 James Bowman + + * opcode/ft32.h: Add instruction macros FT32_*() + 2015-09-20 Rich Felker * bfdlink.h (struct bfd_link_info): Add "nointerp" field. diff --git a/include/opcode/ft32.h b/include/opcode/ft32.h index 9617890..6db46d9 100644 --- a/include/opcode/ft32.h +++ b/include/opcode/ft32.h @@ -96,5 +96,11 @@ typedef struct ft32_opc_info_t #define FT32_FLD_AL_BIT 0 #define FT32_FLD_AL_SIZ 4 +#define FT32_IS_CALL(inst) (((inst) & 0xfffc0000) == 0x00340000) +#define FT32_IS_PUSH(inst) (((inst) & 0xfff00000) == 0x84000000) +#define FT32_PUSH_REG(inst) (((inst) >> 15) & 0x1f) +#define FT32_IS_LINK(inst) (((inst) & 0xffff0000) == 0x95d00000) +#define FT32_LINK_SIZE(inst) ((inst) & 0xffff) + #define FT32_FLD_R_D_POST (1 << 17) #define FT32_FLD_R_1_POST (1 << 18)