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

📄 arm7tdmi-olut.cpp

📁 一个任天堂掌上游戏机NDS的源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
/*************************************************************************** DSemu - The Next Generation                                             ** Portable ARM7TDMI core: Opcode lookup table [arm7tdmi-olut.cpp]         ** Copyright Imran Nazar, 2005; released under the BSD public licence.     ***************************************************************************/#include "arm7tdmi.h"//---Conditional execution lookup table------------------------------------// Addressed on bits 31-28 of the opcode// Each of these instructions returns 0 or 1 dependent on the flags.const ARM7TDMI::intfptr ARM7TDMI::condLUT[16]={    condEQ, condNE, condCS, condCC,    condMI, condPL, condVS, condVC,    condHI, condLS, condGE, condLT,    condGT, condLE, condAL, condNV};//---The 4096-entry opcode table-------------------------------------------// Addressed on bits [27-20][7-4] of the opcode// No coprocessor support exists in ARM7TDMI, hence the opcodes are UNI.// Opcodes undefined in ARMv4 but replaced in ARMv5 are marked.const ARM7TDMI::opfptr ARM7TDMI::OLUT[4096]={    /*0x00*/    opANDlli      ,    opANDllr      ,    opANDlri      ,    opANDlrr      ,    opANDari      ,    opANDarr      ,    opANDrri      ,    opANDrrr      ,    opANDlli      ,    opMUL         ,    opANDlri      ,    opSTRHptrm    ,    opANDari      ,    opUND,     // Defined in ARM5    opANDrri      ,    opUND,     // Defined in ARM5    /*0x01*/    opANDSlli     ,    opANDSllr     ,    opANDSlri     ,    opANDSlrr     ,    opANDSari     ,    opANDSarr     ,    opANDSrri     ,    opANDSrrr     ,    opANDSlli     ,    opMULS        ,    opANDSlri     ,    opLDRHptrm    ,    opANDSari     ,    opLDRSBptrm   ,    opANDSrri     ,    opLDRSHptrm   ,    /*0x02*/    opEORlli      ,    opEORllr      ,    opEORlri      ,    opEORlrr      ,    opEORari      ,    opEORarr      ,    opEORrri      ,    opEORrrr      ,    opEORlli      ,    opMLA         ,    opEORlri      ,    opSTRHptrm    ,    opEORari      ,    opUND,     // Defined in ARM5    opEORrri      ,    opUND,     // Defined in ARM5    /*0x03*/    opEORSlli     ,    opEORSllr     ,    opEORSlri     ,    opEORSlrr     ,    opEORSari     ,    opEORSarr     ,    opEORSrri     ,    opEORSrrr     ,    opEORSlli     ,    opMLAS        ,    opEORSlri     ,    opLDRHptrm    ,    opEORSari     ,    opLDRSBptrm   ,    opEORSrri     ,    opLDRSHptrm   ,    /*0x04*/    opSUBlli      ,    opSUBllr      ,    opSUBlri      ,    opSUBlrr      ,    opSUBari      ,    opSUBarr      ,    opSUBrri      ,    opSUBrrr      ,    opSUBlli      ,    opUNP         ,  // Unallocated    opSUBlri      ,    opSTRHptim    ,    opSUBari      ,    opUND,     // Defined in ARM5    opSUBrri      ,    opUND,     // Defined in ARM5    /*0x05*/    opSUBSlli     ,    opSUBSllr     ,    opSUBSlri     ,    opSUBSlrr     ,    opSUBSari     ,    opSUBSarr     ,    opSUBSrri     ,    opSUBSrrr     ,    opSUBSlli     ,    opUNL         ,  // Unallocated [reindexed]    opSUBSlri     ,    opLDRHptim    ,    opSUBSari     ,    opLDRSBptim   ,    opSUBSrri     ,    opLDRSHptim   ,    /*0x06*/    opRSBlli      ,    opRSBllr      ,    opRSBlri      ,    opRSBlrr      ,    opRSBari      ,    opRSBarr      ,    opRSBrri      ,    opRSBrrr      ,    opRSBlli      ,    opUNP         ,  // Unallocated    opRSBlri      ,    opSTRHptim    ,    opRSBari      ,    opUND,     // Defined in ARM5    opRSBrri      ,    opUND,     // Defined in ARM5    /*0x07*/    opRSBSlli     ,    opRSBSllr     ,    opRSBSlri     ,    opRSBSlrr     ,    opRSBSari     ,    opRSBSarr     ,    opRSBSrri     ,    opRSBSrrr     ,    opRSBSlli     ,    opUNP         ,  // Unallocated    opRSBSlri     ,    opLDRHptim    ,    opRSBSari     ,    opLDRSBptim   ,    opRSBSrri     ,    opLDRSHptim   ,    /*0x08*/    opADDlli      ,    opADDllr      ,    opADDlri      ,    opADDlrr      ,    opADDari      ,    opADDarr      ,    opADDrri      ,    opADDrrr      ,    opADDlli      ,    opUMULL       ,    opADDlri      ,    opSTRHptrp    ,    opADDari      ,    opUND,     // Defined in ARM5    opADDrri      ,    opUND,     // Defined in ARM5    /*0x09*/    opADDSlli     ,    opADDSllr     ,    opADDSlri     ,    opADDSlrr     ,    opADDSari     ,    opADDSarr     ,    opADDSrri     ,    opADDSrrr     ,    opADDSlli     ,    opUMULLS      ,    opADDSlri     ,    opLDRHptrp    ,    opADDSari     ,    opLDRSBptrp   ,    opADDSrri     ,    opLDRSHptrp   ,    /*0x0A*/    opADClli      ,    opADCllr      ,    opADClri      ,    opADClrr      ,    opADCari      ,    opADCarr      ,    opADCrri      ,    opADCrrr      ,    opADClli      ,    opUMLAL       ,    opADClri      ,    opSTRHptrp    ,    opADCari      ,    opUND,     // Defined in ARM5    opADCrri      ,    opUND,     // Defined in ARM5    /*0x0B*/    opADCSlli     ,    opADCSllr     ,    opADCSlri     ,    opADCSlrr     ,    opADCSari     ,    opADCSarr     ,    opADCSrri     ,    opADCSrrr     ,    opADCSlli     ,    opUMLALS      ,    opADCSlri     ,    opLDRHptrp    ,    opADCSari     ,    opLDRSBptrp   ,    opADCSrri     ,    opLDRSHptrp   ,    /*0x0C*/    opSBClli      ,    opSBCllr      ,    opSBClri      ,    opSBClrr      ,    opSBCari      ,    opSBCarr      ,    opSBCrri      ,    opSBCrrr      ,    opSBClli      ,    opSMULL       ,    opSBClri      ,    opSTRHptip    ,    opSBCari      ,    opUND,     // Defined in ARM5    opSBCrri      ,    opUND,     // Defined in ARM5    /*0x0D*/    opSBCSlli     ,    opSBCSllr     ,    opSBCSlri     ,    opSBCSlrr     ,    opSBCSari     ,    opSBCSarr     ,    opSBCSrri     ,    opSBCSrrr     ,    opSBCSlli     ,    opSMULLS      ,    opSBCSlri     ,    opLDRHptip    ,    opSBCSari     ,    opLDRSBptip   ,    opSBCSrri     ,    opLDRSHptip   ,    /*0x0E*/    opRSClli      ,    opRSCllr      ,    opRSClri      ,    opRSClrr      ,    opRSCari      ,    opRSCarr      ,    opRSCrri      ,    opRSCrrr      ,    opRSClli      ,    opSMLAL       ,    opRSClri      ,    opSTRHptip    ,    opRSCari      ,    opUND,     // Defined in ARM5    opRSCrri      ,    opUND,     // Defined in ARM5    /*0x0F*/    opRSCSlli     ,    opRSCSllr     ,    opRSCSlri     ,    opRSCSlrr     ,    opRSCSari     ,    opRSCSarr     ,    opRSCSrri     ,    opRSCSrrr     ,    opRSCSlli     ,    opSMLALS      ,    opRSCSlri     ,    opLDRHptip    ,    opRSCSari     ,    opLDRSBptip   ,    opRSCSrri     ,    opLDRSHptip   ,    /*0x10*/    opMRSrc       ,    opUNP         ,  // Unallocated    opUNP         ,  // Unallocated    opUNP         ,  // Unallocated    opUNP         ,  // Unallocated    opUND         ,  // Defined in ARM5    opUNP         ,  // Unallocated    opUNP         ,  // Unallocated    opUND         ,  // Defined in ARM5    opSWP         ,    opUND         ,  // Defined in ARM5    opSTRHofrm    ,    opUND         ,  // Defined in ARM5    opUND         ,  // Defined in ARM5    opUND         ,  // Defined in ARM5    opUND         ,  // Defined in ARM5    /*0x11*/    opTSTSlli     ,    opTSTSllr     ,    opTSTSlri     ,    opTSTSlrr     ,    opTSTSari     ,    opTSTSarr     ,    opTSTSrri     ,    opTSTSrrr     ,    opTSTSlli     ,    opUNP         ,  // Unallocated    opTSTSlri     ,    opLDRHofrm    ,    opTSTSari     ,    opLDRSBofrm   ,    opTSTSrri     ,    opLDRSHofrm   ,    /*0x12*/    opMSRrc       ,    opBX          ,    opUNP         ,  // Unallocated    opUND         ,  // Defined in ARM5T    opUNP         ,  // Unallocated    opUNP         ,  // Defined in ARM5E!    opUNP         ,  // Unallocated    opUND        ,   // Defined in ARM5    opUNP         ,  // Defined in ARM5E!    opUNP         ,  // Unallocated    opUNP         ,  // Defined in ARM5E!    opSTRHprrm    ,    opUNP         ,  // Defined in ARM5E!    opUND,     // Defined in ARM5    opUNP         ,  // Defined in ARM5E!    opUND,     // Defined in ARM5    /*0x13*/    opTEQSlli     ,    opTEQSllr     ,    opTEQSlri     ,    opTEQSlrr     ,    opTEQSari     ,    opTEQSarr     ,    opTEQSrri     ,    opTEQSrrr     ,    opTEQSlli     ,    opUNP         ,  // Unallocated    opTEQSlri     ,    opLDRHprrm    ,    opTEQSari     ,    opLDRSBprrm   ,    opTEQSrri     ,    opLDRSHprrm   ,    /*0x14*/    opMRSrs       ,    opUNP         ,  // Unallocated    opUNP         ,  // Unallocated    opUNP         ,  // Unallocated    opUNP         ,  // Unallocated    opUNP         ,  // Defined in ARM5E!    opUNP         ,  // Unallocated    opUNP         ,  // Unallocated    opUNP         ,  // Defined in ARM5E!    opSWPB        ,    opUNP         ,  // Defined in ARM5E!    opSTRHofim    ,    opUNP         ,  // Defined in ARM5E!    opUND,     // Defined in ARM5    opUNP         ,  // Defined in ARM5E!    opUND,     // Defined in ARM5    /*0x15*/    opCMPSlli     ,    opCMPSllr     ,    opCMPSlri     ,    opCMPSlrr     ,    opCMPSari     ,    opCMPSarr     ,    opCMPSrri     ,    opCMPSrrr     ,    opCMPSlli     ,    opUNP         ,  // Unallocated    opCMPSlri     ,    opLDRHofim    ,    opCMPSari     ,    opLDRSBofim   ,    opCMPSrri     ,    opLDRSHofim   ,    /*0x16*/    opMSRrs       ,    opUND         ,  // Defined in ARM5    opUNP         ,  // Unallocated    opUNP         ,  // Unallocated    opUNP         ,  // Unallocated    opUNP         ,  // Defined in ARM5E!    opUNP         ,  // Unallocated    opUNP         ,  // Unallocated    opUND,     // Defined in ARM5    opUNP         ,  // Unallocated    opUND,     // Defined in ARM5    opSTRHprim    ,    opUND,     // Defined in ARM5    opUND,     // Defined in ARM5    opUND,     // Defined in ARM5    opUND,     // Defined in ARM5    /*0x17*/    opCMNSlli     ,    opCMNSllr     ,    opCMNSlri     ,    opCMNSlrr     ,    opCMNSari     ,    opCMNSarr     ,    opCMNSrri     ,    opCMNSrrr     ,    opCMNSlli     ,    opUNP         ,  // Unallocated    opCMNSlri     ,    opLDRHprim    ,    opCMNSari     ,    opLDRSBprim   ,    opCMNSrri     ,    opLDRSHprim   ,    /*0x18*/    opORRlli      ,    opORRllr      ,    opORRlri      ,    opORRlrr      ,    opORRari      ,    opORRarr      ,    opORRrri      ,    opORRrrr      ,    opORRlli      ,    opUNP         ,  // Unallocated    opORRlri      ,    opSTRHofrp    ,    opORRari      ,    opUND,     // Defined in ARM5    opORRrri      ,    opUND,     // Defined in ARM5    /*0x19*/    opORRSlli     ,    opORRSllr     ,    opORRSlri     ,    opORRSlrr     ,    opORRSari     ,    opORRSarr     ,    opORRSrri     ,    opORRSrrr     ,    opORRSlli     ,    opUNP         ,  // Unallocated    opORRSlri     ,    opLDRHofrp    ,    opORRSari     ,    opLDRSBofrp   ,    opORRSrri     ,    opLDRSHofrp   ,    /*0x1A*/    opMOVlli      ,    opMOVllr      ,    opMOVlri      ,    opMOVlrr      ,    opMOVari      ,    opMOVarr      ,    opMOVrri      ,    opMOVrrr      ,    opMOVlli      ,    opUNP         ,  // Unallocated    opMOVlri      ,    opSTRHprrp    ,    opMOVari      ,    opUND,     // Defined in ARM5    opMOVrri      ,    opUND,     // Defined in ARM5    /*0x1B*/    opMOVSlli     ,    opMOVSllr     ,    opMOVSlri     ,    opMOVSlrr     ,    opMOVSari     ,    opMOVSarr     ,    opMOVSrri     ,    opMOVSrrr     ,    opMOVSlli     ,    opUNP         ,  // Unallocated    opMOVSlri     ,    opLDRHprrp    ,    opMOVSari     ,    opLDRSBprrp   ,    opMOVSrri     ,    opLDRSHprrp   ,    /*0x1C*/    opBIClli      ,    opBICllr      ,    opBIClri      ,    opBIClrr      ,    opBICari      ,    opBICarr      ,    opBICrri      ,    opBICrrr      ,    opBIClli      ,    opUNP         ,  // Unallocated    opBIClri      ,    opSTRHofip    ,    opBICari      ,    opUND,     // Defined in ARM5    opBICrri      ,    opUND,     // Defined in ARM5    /*0x1D*/    opBICSlli     ,    opBICSllr     ,    opBICSlri     ,    opBICSlrr     ,    opBICSari     ,    opBICSarr     ,    opBICSrri     ,    opBICSrrr     ,    opBICSlli     ,    opUNP         ,  // Unallocated    opBICSlri     ,    opLDRHofip    ,    opBICSari     ,    opLDRSBofip   ,    opBICSrri     ,    opLDRSHofip   ,    /*0x1E*/    opMVNlli      ,    opMVNllr      ,    opMVNlri      ,    opMVNlrr      ,    opMVNari      ,    opMVNarr      ,    opMVNrri      ,    opMVNrrr      ,    opMVNlli      ,    opUNP         ,  // Unallocated    opMVNlri      ,    opSTRHprip    ,    opMVNari      ,    opUND,     // Defined in ARM5    opMVNrri      ,    opUND,     // Defined in ARM5    /*0x1F*/    opMVNSlli     ,    opMVNSllr     ,    opMVNSlri     ,    opMVNSlrr     ,    opMVNSari     ,    opMVNSarr     ,    opMVNSrri     ,    opMVNSrrr     ,    opMVNSlli     ,    opUNP         ,  // Unallocated    opMVNSlri     ,    opLDRHprip    ,    opMVNSari     ,    opLDRSBprip   ,    opMVNSrri     ,    opLDRSHprip   ,    /*0x20*/    opANDimm      ,    opANDimm      ,    opANDimm      ,    opANDimm      ,    opANDimm      ,    opANDimm      ,    opANDimm      ,    opANDimm      ,    opANDimm      ,    opANDimm      ,    opANDimm      ,    opANDimm      ,    opANDimm      ,    opANDimm      ,    opANDimm      ,    opANDimm      ,    /*0x21*/    opANDSimm     ,    opANDSimm     ,    opANDSimm     ,    opANDSimm     ,    opANDSimm     ,    opANDSimm     ,    opANDSimm     ,    opANDSimm     ,    opANDSimm     ,    opANDSimm     ,    opANDSimm     ,    opANDSimm     ,    opANDSimm     ,    opANDSimm     ,    opANDSimm     ,    opANDSimm     ,    /*0x22*/    opEORimm      ,    opEORimm      ,    opEORimm      ,    opEORimm      ,    opEORimm      ,    opEORimm      ,    opEORimm      ,    opEORimm      ,    opEORimm      ,    opEORimm      ,    opEORimm      ,    opEORimm      ,    opEORimm      ,    opEORimm      ,    opEORimm      ,    opEORimm      ,    /*0x23*/    opEORSimm     ,    opEORSimm     ,    opEORSimm     ,    opEORSimm     ,    opEORSimm     ,    opEORSimm     ,    opEORSimm     ,    opEORSimm     ,    opEORSimm     ,    opEORSimm     ,    opEORSimm     ,    opEORSimm     ,    opEORSimm     ,    opEORSimm     ,    opEORSimm     ,    opEORSimm     ,    /*0x24*/    opSUBimm      ,    opSUBimm      ,    opSUBimm      ,    opSUBimm      ,    opSUBimm      ,    opSUBimm      ,    opSUBimm      ,    opSUBimm      ,    opSUBimm      ,

⌨️ 快捷键说明

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