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

📄 dpi.h

📁 RISC processor ARM-7 emulator
💻 H
字号:
/*************************************************************************
    Copyright (C) 2002,2003,2004,2005 Wei Qin
    See file COPYING for more information.

    This program is free software; you can redistribute it and/or modify    
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, 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 of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
*************************************************************************/

#ifndef __DPI_H__
#define __DPI_H__

#ifdef _MODULARIZE_
typedef emulator::arm_emulator armulator;
#endif

void impl_mov_1(IMPL_FORMALS); 		/*0x3A*/
void impl_mov_1s(IMPL_FORMALS);		/*0x3B*/
void impl_mov_2(IMPL_FORMALS); 		/*0x3A*/
void impl_mov_2s(IMPL_FORMALS);		/*0x3B*/
void impl_mov_3(IMPL_FORMALS); 		/*0x3A*/
void impl_mov_3s(IMPL_FORMALS);		/*0x3B*/

void impl_mvn_1(IMPL_FORMALS);		/*0x3E*/
void impl_mvn_1s(IMPL_FORMALS);		/*0x3F*/
void impl_mvn_2(IMPL_FORMALS);		/*0x3E*/
void impl_mvn_2s(IMPL_FORMALS);		/*0x3F*/
void impl_mvn_3(IMPL_FORMALS);		/*0x3E*/
void impl_mvn_3s(IMPL_FORMALS);		/*0x3F*/

void impl_add_1(IMPL_FORMALS);		/*0x28*/
void impl_add_1s(IMPL_FORMALS);		/*0x29*/
void impl_add_2(IMPL_FORMALS);		/*0x28*/
void impl_add_2s(IMPL_FORMALS);		/*0x29*/
void impl_add_3(IMPL_FORMALS);		/*0x28*/
void impl_add_3s(IMPL_FORMALS);		/*0x29*/

void impl_adc_1(IMPL_FORMALS);		/*0x2A*/
void impl_adc_1s(IMPL_FORMALS);		/*0x2B*/
void impl_adc_2(IMPL_FORMALS);		/*0x2A*/
void impl_adc_2s(IMPL_FORMALS);		/*0x2B*/
void impl_adc_3(IMPL_FORMALS);		/*0x2A*/
void impl_adc_3s(IMPL_FORMALS);		/*0x2B*/

void impl_sub_1(IMPL_FORMALS);		/*0x24*/
void impl_sub_1s(IMPL_FORMALS);		/*0x25*/
void impl_sub_2(IMPL_FORMALS);		/*0x24*/
void impl_sub_2s(IMPL_FORMALS);		/*0x25*/
void impl_sub_3(IMPL_FORMALS);		/*0x24*/
void impl_sub_3s(IMPL_FORMALS);		/*0x25*/

void impl_sbc_1(IMPL_FORMALS);		/*0x2C*/
void impl_sbc_1s(IMPL_FORMALS);		/*0x2D*/
void impl_sbc_2(IMPL_FORMALS);		/*0x2C*/
void impl_sbc_2s(IMPL_FORMALS);		/*0x2D*/
void impl_sbc_3(IMPL_FORMALS);		/*0x2C*/
void impl_sbc_3s(IMPL_FORMALS);		/*0x2D*/

void impl_rsb_1(IMPL_FORMALS);		/*0x26*/
void impl_rsb_1s(IMPL_FORMALS);		/*0x27*/
void impl_rsb_2(IMPL_FORMALS);		/*0x26*/
void impl_rsb_2s(IMPL_FORMALS);		/*0x27*/
void impl_rsb_3(IMPL_FORMALS);		/*0x26*/
void impl_rsb_3s(IMPL_FORMALS);		/*0x27*/

void impl_rsc_1(IMPL_FORMALS);		/*0x2E*/
void impl_rsc_1s(IMPL_FORMALS);		/*0x2F*/
void impl_rsc_2(IMPL_FORMALS);		/*0x2E*/
void impl_rsc_2s(IMPL_FORMALS);		/*0x2F*/
void impl_rsc_3(IMPL_FORMALS);		/*0x2E*/
void impl_rsc_3s(IMPL_FORMALS);		/*0x2F*/

void impl_and_1(IMPL_FORMALS);		/*0x20*/
void impl_and_1s(IMPL_FORMALS);		/*0x21*/
void impl_and_2(IMPL_FORMALS);		/*0x20*/
void impl_and_2s(IMPL_FORMALS);		/*0x21*/
void impl_and_3(IMPL_FORMALS);		/*0x20*/
void impl_and_3s(IMPL_FORMALS);		/*0x21*/

void impl_eor_1(IMPL_FORMALS);		/*0x22*/
void impl_eor_1s(IMPL_FORMALS);		/*0x23*/
void impl_eor_2(IMPL_FORMALS);		/*0x22*/
void impl_eor_2s(IMPL_FORMALS);		/*0x23*/
void impl_eor_3(IMPL_FORMALS);		/*0x22*/
void impl_eor_3s(IMPL_FORMALS);		/*0x23*/

void impl_orr_1(IMPL_FORMALS);		/*0x38*/
void impl_orr_1s(IMPL_FORMALS);		/*0x39*/
void impl_orr_2(IMPL_FORMALS);		/*0x38*/
void impl_orr_2s(IMPL_FORMALS);		/*0x39*/
void impl_orr_3(IMPL_FORMALS);		/*0x38*/
void impl_orr_3s(IMPL_FORMALS);		/*0x39*/

void impl_bic_1(IMPL_FORMALS);		/*0x3C*/
void impl_bic_1s(IMPL_FORMALS);		/*0x3D*/
void impl_bic_2(IMPL_FORMALS);		/*0x3C*/
void impl_bic_2s(IMPL_FORMALS);		/*0x3D*/
void impl_bic_3(IMPL_FORMALS);		/*0x3C*/
void impl_bic_3s(IMPL_FORMALS);		/*0x3D*/

void impl_cmp_1s(IMPL_FORMALS);		/*0x35*/
void impl_cmp_2s(IMPL_FORMALS);		/*0x35*/
void impl_cmp_3s(IMPL_FORMALS);		/*0x35*/

void impl_cmn_1s(IMPL_FORMALS);		/*0x37*/
void impl_cmn_2s(IMPL_FORMALS);		/*0x37*/
void impl_cmn_3s(IMPL_FORMALS);		/*0x37*/

void impl_tst_1s(IMPL_FORMALS);		/*0x31*/
void impl_tst_2s(IMPL_FORMALS);		/*0x31*/
void impl_tst_3s(IMPL_FORMALS);		/*0x31*/

void impl_teq_1s(IMPL_FORMALS);		/*0x33*/
void impl_teq_2s(IMPL_FORMALS);		/*0x33*/
void impl_teq_3s(IMPL_FORMALS);		/*0x33*/

char *disasm_unop_1(arm_inst_t, arm_addr_t, char *);	
char *disasm_unop_2(arm_inst_t, arm_addr_t, char *);
char *disasm_unop_3(arm_inst_t, arm_addr_t, char *);

char *disasm_binop_1(arm_inst_t, arm_addr_t, char *);	
char *disasm_binop_2(arm_inst_t, arm_addr_t, char *);
char *disasm_binop_3(arm_inst_t, arm_addr_t, char *);

char *disasm_tst_1(arm_inst_t, arm_addr_t, char *);	
char *disasm_tst_2(arm_inst_t, arm_addr_t, char *);
char *disasm_tst_3(arm_inst_t, arm_addr_t, char *);

#define disasm_mov_1  disasm_unop_1		/*0x3A*/
#define disasm_mov_1s disasm_unop_1		/*0x3B*/
#define disasm_mov_2  disasm_unop_2 	/*0x3A*/
#define disasm_mov_2s disasm_unop_2		/*0x3B*/
#define disasm_mov_3  disasm_unop_3 	/*0x3A*/
#define disasm_mov_3s disasm_unop_3		/*0x3B*/

#define disasm_mvn_1  disasm_unop_1		/*0x3E*/
#define disasm_mvn_1s disasm_unop_1		/*0x3F*/
#define disasm_mvn_2  disasm_unop_2		/*0x3E*/
#define disasm_mvn_2s disasm_unop_2		/*0x3F*/
#define disasm_mvn_3  disasm_unop_3		/*0x3E*/
#define disasm_mvn_3s disasm_unop_3		/*0x3F*/

#define disasm_add_1  disasm_binop_1		/*0x28*/
#define disasm_add_1s disasm_binop_1		/*0x29*/
#define disasm_add_2  disasm_binop_2		/*0x28*/
#define disasm_add_2s disasm_binop_2		/*0x29*/
#define disasm_add_3  disasm_binop_3		/*0x28*/
#define disasm_add_3s disasm_binop_3		/*0x29*/

#define disasm_adc_1  disasm_binop_1		/*0x2A*/
#define disasm_adc_1s disasm_binop_1		/*0x2B*/
#define disasm_adc_2  disasm_binop_2		/*0x2A*/
#define disasm_adc_2s disasm_binop_2		/*0x2B*/
#define disasm_adc_3  disasm_binop_3		/*0x2A*/
#define disasm_adc_3s disasm_binop_3		/*0x2B*/

#define disasm_sub_1  disasm_binop_1		/*0x24*/
#define disasm_sub_1s disasm_binop_1		/*0x25*/
#define disasm_sub_2  disasm_binop_2		/*0x24*/
#define disasm_sub_2s disasm_binop_2		/*0x25*/
#define disasm_sub_3  disasm_binop_3		/*0x24*/
#define disasm_sub_3s disasm_binop_3		/*0x25*/

#define disasm_sbc_1  disasm_binop_1		/*0x2C*/
#define disasm_sbc_1s disasm_binop_1		/*0x2D*/
#define disasm_sbc_2  disasm_binop_2		/*0x2C*/
#define disasm_sbc_2s disasm_binop_2		/*0x2D*/
#define disasm_sbc_3  disasm_binop_3		/*0x2C*/
#define disasm_sbc_3s disasm_binop_3		/*0x2D*/

#define disasm_rsb_1  disasm_binop_1		/*0x26*/
#define disasm_rsb_1s disasm_binop_1		/*0x27*/
#define disasm_rsb_2  disasm_binop_2		/*0x26*/
#define disasm_rsb_2s disasm_binop_2		/*0x27*/
#define disasm_rsb_3  disasm_binop_3		/*0x26*/
#define disasm_rsb_3s disasm_binop_3		/*0x27*/

#define disasm_rsc_1  disasm_binop_1		/*0x2E*/
#define disasm_rsc_1s disasm_binop_1		/*0x2F*/
#define disasm_rsc_2  disasm_binop_2		/*0x2E*/
#define disasm_rsc_2s disasm_binop_2		/*0x2F*/
#define disasm_rsc_3  disasm_binop_3		/*0x2E*/
#define disasm_rsc_3s disasm_binop_3		/*0x2F*/

#define disasm_and_1  disasm_binop_1		/*0x20*/
#define disasm_and_1s disasm_binop_1		/*0x21*/
#define disasm_and_2  disasm_binop_2		/*0x20*/
#define disasm_and_2s disasm_binop_2		/*0x21*/
#define disasm_and_3  disasm_binop_3		/*0x20*/
#define disasm_and_3s disasm_binop_3		/*0x21*/

#define disasm_eor_1  disasm_binop_1		/*0x22*/
#define disasm_eor_1s disasm_binop_1		/*0x23*/
#define disasm_eor_2  disasm_binop_2		/*0x22*/
#define disasm_eor_2s disasm_binop_2		/*0x23*/
#define disasm_eor_3  disasm_binop_3		/*0x22*/
#define disasm_eor_3s disasm_binop_3		/*0x23*/

#define disasm_orr_1  disasm_binop_1		/*0x38*/
#define disasm_orr_1s disasm_binop_1		/*0x39*/
#define disasm_orr_2  disasm_binop_2		/*0x38*/
#define disasm_orr_2s disasm_binop_2		/*0x39*/
#define disasm_orr_3  disasm_binop_3		/*0x38*/
#define disasm_orr_3s disasm_binop_3		/*0x39*/

#define disasm_bic_1  disasm_binop_1		/*0x3C*/
#define disasm_bic_1s disasm_binop_1		/*0x3D*/
#define disasm_bic_2  disasm_binop_2		/*0x3C*/
#define disasm_bic_2s disasm_binop_2		/*0x3D*/
#define disasm_bic_3  disasm_binop_3		/*0x3C*/
#define disasm_bic_3s disasm_binop_3		/*0x3D*/

#define disasm_cmp_1s disasm_tst_1		/*0x35*/
#define disasm_cmp_2s disasm_tst_2		/*0x35*/
#define disasm_cmp_3s disasm_tst_3		/*0x35*/

#define disasm_cmn_1s disasm_tst_1		/*0x37*/
#define disasm_cmn_2s disasm_tst_2		/*0x37*/
#define disasm_cmn_3s disasm_tst_3		/*0x37*/

#define disasm_tst_1s disasm_tst_1		/*0x31*/
#define disasm_tst_2s disasm_tst_2		/*0x31*/
#define disasm_tst_3s disasm_tst_3		/*0x31*/

#define disasm_teq_1s disasm_tst_1		/*0x33*/
#define disasm_teq_2s disasm_tst_2		/*0x33*/
#define disasm_teq_3s disasm_tst_3		/*0x33*/

#define incr_mov_1  INST_MOV		/*0x3A*/
#define incr_mov_1s INST_MOV		/*0x3B*/
#define incr_mov_2  INST_MOV 	/*0x3A*/
#define incr_mov_2s INST_MOV		/*0x3B*/
#define incr_mov_3  INST_MOV 	/*0x3A*/
#define incr_mov_3s INST_MOV		/*0x3B*/

#define incr_mvn_1  INST_MVN		/*0x3E*/
#define incr_mvn_1s INST_MVN		/*0x3F*/
#define incr_mvn_2  INST_MVN		/*0x3E*/
#define incr_mvn_2s INST_MVN		/*0x3F*/
#define incr_mvn_3  INST_MVN		/*0x3E*/
#define incr_mvn_3s INST_MVN		/*0x3F*/

#define incr_add_1  INST_ADD		/*0x28*/
#define incr_add_1s INST_ADD		/*0x29*/
#define incr_add_2  INST_ADD		/*0x28*/
#define incr_add_2s INST_ADD		/*0x29*/
#define incr_add_3  INST_ADD		/*0x28*/
#define incr_add_3s INST_ADD		/*0x29*/

#define incr_adc_1  INST_ADC		/*0x2A*/
#define incr_adc_1s INST_ADC		/*0x2B*/
#define incr_adc_2  INST_ADC		/*0x2A*/
#define incr_adc_2s INST_ADC		/*0x2B*/
#define incr_adc_3  INST_ADC		/*0x2A*/
#define incr_adc_3s INST_ADC		/*0x2B*/

#define incr_sub_1  INST_SUB		/*0x24*/
#define incr_sub_1s INST_SUB		/*0x25*/
#define incr_sub_2  INST_SUB		/*0x24*/
#define incr_sub_2s INST_SUB		/*0x25*/
#define incr_sub_3  INST_SUB		/*0x24*/
#define incr_sub_3s INST_SUB		/*0x25*/

#define incr_sbc_1  INST_SBC		/*0x2C*/
#define incr_sbc_1s INST_SBC		/*0x2D*/
#define incr_sbc_2  INST_SBC		/*0x2C*/
#define incr_sbc_2s INST_SBC		/*0x2D*/
#define incr_sbc_3  INST_SBC		/*0x2C*/
#define incr_sbc_3s INST_SBC		/*0x2D*/

#define incr_rsb_1  INST_RSB		/*0x26*/
#define incr_rsb_1s INST_RSB		/*0x27*/
#define incr_rsb_2  INST_RSB		/*0x26*/
#define incr_rsb_2s INST_RSB		/*0x27*/
#define incr_rsb_3  INST_RSB		/*0x26*/
#define incr_rsb_3s INST_RSB		/*0x27*/

#define incr_rsc_1  INST_RSC		/*0x2E*/
#define incr_rsc_1s INST_RSC		/*0x2F*/
#define incr_rsc_2  INST_RSC		/*0x2E*/
#define incr_rsc_2s INST_RSC		/*0x2F*/
#define incr_rsc_3  INST_RSC		/*0x2E*/
#define incr_rsc_3s INST_RSC		/*0x2F*/

#define incr_and_1  INST_AND		/*0x20*/
#define incr_and_1s INST_AND		/*0x21*/
#define incr_and_2  INST_AND		/*0x20*/
#define incr_and_2s INST_AND		/*0x21*/
#define incr_and_3  INST_AND		/*0x20*/
#define incr_and_3s INST_AND		/*0x21*/

#define incr_eor_1  INST_EOR		/*0x22*/
#define incr_eor_1s INST_EOR		/*0x23*/
#define incr_eor_2  INST_EOR		/*0x22*/
#define incr_eor_2s INST_EOR		/*0x23*/
#define incr_eor_3  INST_EOR		/*0x22*/
#define incr_eor_3s INST_EOR		/*0x23*/

#define incr_orr_1  INST_ORR		/*0x38*/
#define incr_orr_1s INST_ORR		/*0x39*/
#define incr_orr_2  INST_ORR		/*0x38*/
#define incr_orr_2s INST_ORR		/*0x39*/
#define incr_orr_3  INST_ORR		/*0x38*/
#define incr_orr_3s INST_ORR		/*0x39*/

#define incr_bic_1  INST_BIC		/*0x3C*/
#define incr_bic_1s INST_BIC		/*0x3D*/
#define incr_bic_2  INST_BIC		/*0x3C*/
#define incr_bic_2s INST_BIC		/*0x3D*/
#define incr_bic_3  INST_BIC		/*0x3C*/
#define incr_bic_3s INST_BIC		/*0x3D*/

#define incr_cmp_1s INST_CMP		/*0x35*/
#define incr_cmp_2s INST_CMP		/*0x35*/
#define incr_cmp_3s INST_CMP		/*0x35*/

#define incr_cmn_1s INST_CMN		/*0x37*/
#define incr_cmn_2s INST_CMN		/*0x37*/
#define incr_cmn_3s INST_CMN		/*0x37*/

#define incr_tst_1s INST_TST		/*0x31*/
#define incr_tst_2s INST_TST		/*0x31*/
#define incr_tst_3s INST_TST		/*0x31*/

#define incr_teq_1s INST_TEQ		/*0x33*/
#define incr_teq_2s INST_TEQ		/*0x33*/
#define incr_teq_3s INST_TEQ		/*0x33*/

#endif

⌨️ 快捷键说明

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