⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bfin.h

📁 skyeye 仿真软件
💻 H
📖 第 1 页 / 共 3 页
字号:
#define LDSTiiFP_opcode		0xb800#define LDSTiiFP_reg_bits	0#define LDSTiiFP_reg_mask	0xf#define LDSTiiFP_offset_bits	4#define LDSTiiFP_offset_mask	0x1f#define LDSTiiFP_W_bits		9#define LDSTiiFP_W_mask		0x1#define LDSTiiFP_code_bits	10#define LDSTiiFP_code_mask	0x3f#define init_LDSTiiFP				\{						\  LDSTiiFP_opcode,				\  LDSTiiFP_reg_bits,	LDSTiiFP_reg_mask,	\  LDSTiiFP_offset_bits, LDSTiiFP_offset_mask,	\  LDSTiiFP_W_bits,	LDSTiiFP_W_mask,	\  LDSTiiFP_code_bits,	LDSTiiFP_code_mask	\};/*  dspLDST+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+| 1 | 0 | 0 | 1 | 1 | 1 |.W.|.aop...|.m.....|.i.....|.reg.......|+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+*/typedef struct{	unsigned short opcode;	int bits_reg;	int mask_reg;	int bits_i;	int mask_i;	int bits_m;	int mask_m;	int bits_aop;	int mask_aop;	int bits_W;	int mask_W;	int bits_code;	int mask_code;} DspLDST;#define DspLDST_opcode		0x9c00#define DspLDST_reg_bits	0#define DspLDST_reg_mask	0x7#define DspLDST_i_bits		3#define DspLDST_i_mask		0x3#define DspLDST_m_bits		5#define DspLDST_m_mask		0x3#define DspLDST_aop_bits	7#define DspLDST_aop_mask	0x3#define DspLDST_W_bits		9#define DspLDST_W_mask		0x1#define DspLDST_code_bits	10#define DspLDST_code_mask	0x3f#define init_DspLDST				\{						\  DspLDST_opcode,				\  DspLDST_reg_bits,	DspLDST_reg_mask,	\  DspLDST_i_bits,	DspLDST_i_mask,		\  DspLDST_m_bits,	DspLDST_m_mask,		\  DspLDST_aop_bits,	DspLDST_aop_mask,	\  DspLDST_W_bits,	DspLDST_W_mask,		\  DspLDST_code_bits,	DspLDST_code_mask	\};/*  LDSTpmod+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+| 1 | 0 | 0 | 0 |.W.|.aop...|.reg.......|.idx.......|.ptr.......|+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+*/typedef struct{	unsigned short opcode;	int bits_ptr;	int mask_ptr;	int bits_idx;	int mask_idx;	int bits_reg;	int mask_reg;	int bits_aop;	int mask_aop;	int bits_W;	int mask_W;	int bits_code;	int mask_code;} LDSTpmod;#define LDSTpmod_opcode		0x8000#define LDSTpmod_ptr_bits	0#define LDSTpmod_ptr_mask	0x7#define LDSTpmod_idx_bits	3#define LDSTpmod_idx_mask	0x7#define LDSTpmod_reg_bits	6#define LDSTpmod_reg_mask	0x7#define LDSTpmod_aop_bits	9#define LDSTpmod_aop_mask	0x3#define LDSTpmod_W_bits		11#define LDSTpmod_W_mask		0x1#define LDSTpmod_code_bits	12#define LDSTpmod_code_mask	0xf#define init_LDSTpmod				\{						\  LDSTpmod_opcode,				\  LDSTpmod_ptr_bits, 	LDSTpmod_ptr_mask,	\  LDSTpmod_idx_bits,	LDSTpmod_idx_mask,	\  LDSTpmod_reg_bits,	LDSTpmod_reg_mask,	\  LDSTpmod_aop_bits,	LDSTpmod_aop_mask,	\  LDSTpmod_W_bits,	LDSTpmod_W_mask,	\  LDSTpmod_code_bits,	LDSTpmod_code_mask	\};/////////////////////////////////////////////////////////////////////////////*  LOGI2op+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+| 0 | 1 | 0 | 0 | 1 |.opc.......|.src...............|.dst.......|+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+*/typedef struct{	unsigned short opcode;	int bits_dst;	int mask_dst;	int bits_src;	int mask_src;	int bits_opc;	int mask_opc;	int bits_code;	int mask_code;} LOGI2op;#define LOGI2op_opcode		0x4800#define LOGI2op_dst_bits	0#define LOGI2op_dst_mask	0x7#define LOGI2op_src_bits	3#define LOGI2op_src_mask	0x1f#define LOGI2op_opc_bits	8#define LOGI2op_opc_mask	0x7#define LOGI2op_code_bits	11#define LOGI2op_code_mask	0x1f#define init_LOGI2op				\{						\  LOGI2op_opcode,				\  LOGI2op_dst_bits, 	LOGI2op_dst_mask,	\  LOGI2op_src_bits,	LOGI2op_src_mask,	\  LOGI2op_opc_bits,	LOGI2op_opc_mask,	\  LOGI2op_code_bits,	LOGI2op_code_mask	\};/*  ALU2op+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+| 0 | 1 | 0 | 0 | 0 | 0 |.opc...........|.src.......|.dst.......|+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+*/typedef struct{	unsigned short opcode;	int bits_dst;	int mask_dst;	int bits_src;	int mask_src;	int bits_opc;	int mask_opc;	int bits_code;	int mask_code;} ALU2op;#define ALU2op_opcode 		0x4000#define ALU2op_dst_bits		0#define ALU2op_dst_mask		0x7#define ALU2op_src_bits		3#define ALU2op_src_mask		0x7#define ALU2op_opc_bits		6#define ALU2op_opc_mask		0xf#define ALU2op_code_bits	10#define ALU2op_code_mask	0x3f#define init_ALU2op				\{						\  ALU2op_opcode,				\  ALU2op_dst_bits,	ALU2op_dst_mask,	\  ALU2op_src_bits,	ALU2op_src_mask,	\  ALU2op_opc_bits,	ALU2op_opc_mask,	\  ALU2op_code_bits,	ALU2op_code_mask	\};/*  BRCC+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+| 0 | 0 | 0 | 1 |.T.|.B.|.offset................................|+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+*/typedef struct{	unsigned short opcode;	int bits_offset;	int mask_offset;	int bits_B;	int mask_B;	int bits_T;	int mask_T;	int bits_code;	int mask_code;} BRCC;#define BRCC_opcode		0x1000#define BRCC_offset_bits	0#define BRCC_offset_mask	0x3ff#define BRCC_B_bits		10#define BRCC_B_mask		0x1#define BRCC_T_bits		11#define BRCC_T_mask		0x1#define BRCC_code_bits		12#define BRCC_code_mask		0xf#define init_BRCC				\{						\  BRCC_opcode,					\  BRCC_offset_bits,	BRCC_offset_mask,	\  BRCC_B_bits,		BRCC_B_mask,		\  BRCC_T_bits,		BRCC_T_mask,		\  BRCC_code_bits,	BRCC_code_mask		\};/*  UJUMP+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+| 0 | 0 | 1 | 0 |.offset........................................|+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+*/typedef struct{	unsigned short opcode;	int bits_offset;	int mask_offset;	int bits_code;	int mask_code;} UJump;#define UJump_opcode		0x2000#define UJump_offset_bits	0#define UJump_offset_mask	0xfff#define UJump_code_bits		12#define UJump_code_mask		0xf#define init_UJump				\{						\  UJump_opcode,					\  UJump_offset_bits,	UJump_offset_mask,	\  UJump_code_bits,	UJump_code_mask		\};/*  ProgCtrl+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |.prgfunc.......|.poprnd........|+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+*/typedef struct{	unsigned short opcode;	int bits_poprnd;	int mask_poprnd;	int bits_prgfunc;	int mask_prgfunc;	int bits_code;	int mask_code;} ProgCtrl;#define ProgCtrl_opcode		0x0000#define ProgCtrl_poprnd_bits	0#define ProgCtrl_poprnd_mask	0xf#define ProgCtrl_prgfunc_bits	4#define ProgCtrl_prgfunc_mask	0xf#define ProgCtrl_code_bits	8#define ProgCtrl_code_mask	0xff#define init_ProgCtrl					\{							\  ProgCtrl_opcode,					\  ProgCtrl_poprnd_bits,		ProgCtrl_poprnd_mask,	\  ProgCtrl_prgfunc_bits,	ProgCtrl_prgfunc_mask,	\  ProgCtrl_code_bits,		ProgCtrl_code_mask	\};/*  CALLa+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+| 1 | 1 | 1 | 0 | 0 | 0 | 1 |.S.|.msw...........................||.lsw...........................................................|+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+*/typedef struct{	unsigned int opcode;	int bits_addr;	int mask_addr;	int bits_S;	int mask_S;	int bits_code;	int mask_code;} CALLa;#define CALLa_opcode	0xe2000000#define CALLa_addr_bits	0#define CALLa_addr_mask	0xffffff#define CALLa_S_bits	24#define CALLa_S_mask	0x1#define CALLa_code_bits	25#define CALLa_code_mask	0x7f#define init_CALLa				\{						\  CALLa_opcode,					\  CALLa_addr_bits,	CALLa_addr_mask,	\  CALLa_S_bits,		CALLa_S_mask,		\  CALLa_code_bits,	CALLa_code_mask		\};/*  pseudoDEBUG+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+| 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |.fn....|.grp.......|.reg.......|+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+*/typedef struct{	unsigned short opcode;	int bits_reg;	int mask_reg;	int bits_grp;	int mask_grp;	int bits_fn;	int mask_fn;	int bits_code;	int mask_code;} PseudoDbg;#define PseudoDbg_opcode	0xf800#define PseudoDbg_reg_bits	0#define PseudoDbg_reg_mask	0x7#define PseudoDbg_grp_bits	3#define PseudoDbg_grp_mask	0x7#define PseudoDbg_fn_bits	6#define PseudoDbg_fn_mask	0x3#define PseudoDbg_code_bits	8#define PseudoDbg_code_mask	0xff#define init_PseudoDbg				\{						\  PseudoDbg_opcode,				\  PseudoDbg_reg_bits,	PseudoDbg_reg_mask,	\  PseudoDbg_grp_bits,	PseudoDbg_grp_mask,	\  PseudoDbg_fn_bits,	PseudoDbg_fn_mask,	\  PseudoDbg_code_bits,	PseudoDbg_code_mask	\};/*  PseudoDbg_assert+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+| 1 | 1 | 1 | 1 | 0 | - | - | - | - | - |.dbgop.....|.regtest...||.expected......................................................|+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+*/typedef struct{	unsigned int opcode;	int bits_expected;	int mask_expected;	int bits_regtest;	int mask_regtest;	int bits_dbgop;	int mask_dbgop;	int bits_dontcare;	int mask_dontcare;	int bits_code;	int mask_code;} PseudoDbg_Assert;#define PseudoDbg_Assert_opcode		0xf0000000#define PseudoDbg_Assert_expected_bits	0#define PseudoDbg_Assert_expected_mask	0xffff#define PseudoDbg_Assert_regtest_bits	16#define PseudoDbg_Assert_regtest_mask	0x7#define PseudoDbg_Assert_dbgop_bits	19#define PseudoDbg_Assert_dbgop_mask	0x7#define PseudoDbg_Assert_dontcare_bits	22#define PseudoDbg_Assert_dontcare_mask	0x1f#define PseudoDbg_Assert_code_bits	27#define PseudoDbg_Assert_code_mask	0x1f#define init_PseudoDbg_Assert						\{									\  PseudoDbg_Assert_opcode,						\  PseudoDbg_Assert_expected_bits, 	PseudoDbg_Assert_expected_mask,	\  PseudoDbg_Assert_regtest_bits, 	PseudoDbg_Assert_regtest_mask,	\  PseudoDbg_Assert_dbgop_bits, 		PseudoDbg_Assert_dbgop_mask,	\  PseudoDbg_Assert_dontcare_bits, 	PseudoDbg_Assert_dontcare_mask,	\  PseudoDbg_Assert_code_bits,	 	PseudoDbg_Assert_code_mask	\};/*  CaCTRL+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |.a.|.op....|.reg.......|+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+*/typedef struct{	unsigned short opcode;	int bits_reg;	int mask_reg;	int bits_op;	int mask_op;	int bits_a;	int mask_a;	int bits_code;	int mask_code;} CaCTRL;#define CaCTRL_opcode		0x0240#define CaCTRL_reg_bits		0#define CaCTRL_reg_mask		0x7#define CaCTRL_op_bits		3#define CaCTRL_op_mask		0x3#define CaCTRL_a_bits		5#define CaCTRL_a_mask		0x1#define CaCTRL_code_bits	6#define CaCTRL_code_mask	0x3fff#define init_CaCTRL				\{						\  CaCTRL_opcode,				\  CaCTRL_reg_bits,	CaCTRL_reg_mask,	\  CaCTRL_op_bits,	CaCTRL_op_mask,		\  CaCTRL_a_bits,	CaCTRL_a_mask,		\  CaCTRL_code_bits,	CaCTRL_code_mask	\};/*  PushPopMultiple+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+| 0 | 0 | 0 | 0 | 0 | 1 | 0 |.d.|.p.|.W.|.dr........|.pr........|+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+*/typedef struct{	unsigned short opcode;	int bits_pr;	int mask_pr;	int bits_dr;	int mask_dr;	int bits_W;	int mask_W;	int bits_p;	int mask_p;	int bits_d;	int mask_d;	int bits_code;	int mask_code;} PushPopMultiple;#define PushPopMultiple_opcode		0x0400#define PushPopMultiple_pr_bits		0#define PushPopMultiple_pr_mask		0x7#define PushPopMultiple_dr_bits		3#define PushPopMultiple_dr_mask		0x7#define PushPopMultiple_W_bits		6#define PushPopMultiple_W_mask		0x1#define PushPopMultiple_p_bits		7#define PushPopMultiple_p_mask		0x1#define PushPopMultiple_d_bits		8#define PushPopMultiple_d_mask		0x1#define PushPopMultiple_code_bits	8#define PushPopMultiple_code_mask	0x1#define init_PushPopMultiple					\{								\  PushPopMultiple_opcode,					\  PushPopMultiple_pr_bits,	PushPopMultiple_pr_mask,	\  PushPopMultiple_dr_bits,	PushPopMultiple_dr_mask,	\  PushPopMultiple_W_bits,	PushPopMultiple_W_mask,		\  PushPopMultiple_p_bits,	PushPopMultiple_p_mask,		\  PushPopMultiple_d_bits,	PushPopMultiple_d_mask,		\  PushPopMultiple_code_bits,	PushPopMultiple_code_mask	\};/*  PushPopReg+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |.W.|.grp.......|.reg.......|+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+*/typedef struct{	unsigned short opcode;	int bits_reg;	int mask_reg;	int bits_grp;	int mask_grp;	int bits_W;	int mask_W;	int bits_code;	int mask_code;} PushPopReg;#define PushPopReg_opcode	0x0100#define PushPopReg_reg_bits	0#define PushPopReg_reg_mask	0x7#define PushPopReg_grp_bits	3#define PushPopReg_grp_mask	0x7#define PushPopReg_W_bits	6#define PushPopReg_W_mask	0x1#define PushPopReg_code_bits	7#define PushPopReg_code_mask	0x1ff#define init_PushPopReg				\{						\  PushPopReg_opcode,				\  PushPopReg_reg_bits,	PushPopReg_reg_mask,	\  PushPopReg_grp_bits,	PushPopReg_grp_mask,	\  PushPopReg_W_bits,	PushPopReg_W_mask,	\  PushPopReg_code_bits,	PushPopReg_code_mask,	\};/*  linkage+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+| 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |.R.||.framesize.....................................................|+---+---+---+---|---+---+---+---|---+---+---+---|---+---+---+---+*/typedef struct{	unsigned int opcode;	int bits_framesize;	int mask_framesize;	int bits_R;	int mask_R;	int bits_code;	int mask_code;} Linkage;#define Linkage_opcode		0xe8000000#define Linkage_framesize_bits	0#define Linkage_framesize_mask	0xffff#define Linkage_R_bits		16#define Linkage_R_mask		0x1#define Linkage_code_bits	17#define Linkage_code_mask	0x7fff

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -