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

📄 arm2x86_shift.h

📁 SkyEye是一个可以运行嵌入式操作系统的硬件仿真工具
💻 H
字号:
/* This program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2, or (at your option)any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public License alongwith this program; if not, write to the Free Software Foundation, Inc.,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  *//* * author teawater <c7code-uc@yahoo.com.cn> <teawater@gmail.com> */#ifndef _ARM2X86_SHIFT_H_#define _ARM2X86_SHIFT_H_extern int op_shift_T1_im_maxlen;extern op_table_t op_shift_T1_im[4];	//only shiftextern int op_shift_T1_im_sc_maxlen;extern op_table_t op_shift_T1_im_sc[4];	//only set CFlagextern int op_shift_T1_0_maxlen;extern op_table_t op_shift_T1_0[4];	//only shiftextern int op_shift_T2_0_sc_maxlen;extern op_table_t op_shift_T2_0_sc[4];	//only set CFlagextern int op_shift_T1_T0_maxlen;extern op_table_t op_shift_T1_T0[4];	//only shiftextern int op_shift_T1_T0_sc_maxlen;extern op_table_t op_shift_T1_T0_sc[4];	//shift & set CFlagextern int op_shift_T2_im_maxlen;extern op_table_t op_shift_T2_im[4];	//only shiftextern int arm2x86_shift_init ();static __inline__ voidgen_op_shift_T1_im (ARMul_State * state, uint8_t ** tbpp, int *plen,		    ARMword op, uint8_t im){	if (im == 0)		return;	GEN_OP (*tbpp, *plen, op_shift_T1_im[op]);//teawater remove tb_translate_find 2005.10.21----------------------------------	//if (*tbpp) {		memcpy (*tbpp, &im, sizeof (im));		*tbpp += sizeof (im);	//}//AJ2D--------------------------------------------------------------------------	*plen += sizeof (im);}static __inline__ voidgen_op_shift_T1_im_sc (ARMul_State * state, uint8_t ** tbpp, int *plen,		       ARMword op, uint8_t im){	if (im == 0)		return;//teawater remove tb_translate_find 2005.10.21----------------------------------	//if (*tbpp) {		memcpy(*tbpp, op_shift_T1_im_sc[op].op, op_shift_T1_im_sc[op].len);		if (!op) {			(*tbpp)[4] = 32 - im;		}		else {			(*tbpp)[4] = im - 1;		}		*tbpp += op_shift_T1_im_sc[op].len;	//}//AJ2D--------------------------------------------------------------------------	*plen += op_shift_T1_im_sc[op].len;	//set cpsr cf	GEN_OP (*tbpp, *plen, op_set_cf);}static __inline__ voidgen_op_shift_T1_T0 (ARMul_State * state, uint8_t ** tbpp, int *plen,		    ARMword op){	GEN_OP (*tbpp, *plen, op_shift_T1_T0[op]);}static __inline__ voidgen_op_shift_T1_T0_sc (ARMul_State * state, uint8_t ** tbpp, int *plen,		       ARMword op){	GEN_OP (*tbpp, *plen, op_shift_T1_T0_sc[op]);	//set cpsr cf	GEN_OP (*tbpp, *plen, op_set_cf);}static __inline__ voidgen_op_shift_T2_im (ARMul_State * state, uint8_t ** tbpp, int *plen,		    ARMword op, uint8_t im){	if (im == 0)		return;	GEN_OP (*tbpp, *plen, op_shift_T2_im[op]);//teawater remove tb_translate_find 2005.10.21----------------------------------	//if (*tbpp) {		memcpy(*tbpp, &im, sizeof(im));		*tbpp += sizeof(im);	//}//AJ2D--------------------------------------------------------------------------	*plen += sizeof (im);}#endif //_ARM2X86_SHIFT_H_

⌨️ 快捷键说明

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