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

📄 arm9es-olut.cpp

📁 一个任天堂掌上游戏机NDS的源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
/*************************************************************************** DSemu - The Next Generation                                             ** Portable ARM9ES core: Opcode lookup table [arm9es-olut.cpp]             ** Copyright Imran Nazar, 2005; released under the BSD public licence.     ***************************************************************************/#include "arm9es.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 ARM9ES::intfptr ARM9ES::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 opcodeconst ARM9ES::opfptr ARM9ES::OLUT[4096]={    /*0x00*/    opANDlli      ,    opANDllr      ,    opANDlri      ,    opANDlrr      ,    opANDari      ,    opANDarr      ,    opANDrri      ,    opANDrrr      ,    opANDlli      ,    opMUL         ,    opANDlri      ,    opSTRHptrm    ,    opANDari      ,    opLDRDptrm    ,    opANDrri      ,    opSTRDptrm    ,    /*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      ,    opLDRDptrm    ,    opEORrri      ,    opSTRDptrm    ,    /*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      ,    opLDRDptim    ,    opSUBrri      ,    opSTRDptim    ,    /*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      ,    opLDRDptim    ,    opRSBrri      ,    opSTRDptim    ,    /*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      ,    opLDRDptrp    ,    opADDrri      ,    opSTRDptrp    ,    /*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      ,    opLDRDptrp    ,    opADCrri      ,    opSTRDptrp    ,    /*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      ,    opLDRDptip    ,    opSBCrri      ,    opSTRDptip    ,    /*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      ,    opLDRDptip    ,    opRSCrri      ,    opSTRDptip    ,    /*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    opQADD        ,    opUNP         ,  // Unallocated    opUNP         ,  // Unallocated    opSMLABB      ,    opSWP         ,    opSMLATB      ,    opSTRHofrm    ,    opSMLABT      ,    opLDRDofrm    ,    opSMLATT      ,    opSTRDofrm    ,        /*0x11*/    opTSTSlli     ,    opTSTSllr     ,    opTSTSlri     ,    opTSTSlrr     ,    opTSTSari     ,    opTSTSarr     ,    opTSTSrri     ,    opTSTSrrr     ,    opTSTSlli     ,    opUNP         ,  // Unallocated    opTSTSlri     ,    opLDRHofrm    ,    opTSTSari     ,    opLDRSBofrm   ,    opTSTSrri     ,    opLDRSHofrm   ,    /*0x12*/    opMSRrc       ,    opBX          ,    opUNP         ,  // Unallocated    opBLXr        ,    opUNP         ,  // Unallocated    opQSUB        ,    opUNP         ,  // Unallocated    opBKPT        ,    opSMLAWB      ,    opUNP         ,  // Unallocated    opSMULWB      ,    opSTRHprrm    ,    opSMLAWT      ,    opLDRDprrm    ,    opSMULWT      ,    opSTRDprrm    ,    /*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    opQDADD       ,    opUNP         ,  // Unallocated    opUNP         ,  // Unallocated    opSMLALBB     ,    opSWPB        ,    opSMLALTB     ,    opSTRHofim    ,    opSMLALBT     ,    opLDRDofim    ,    opSMLALTT     ,    opSTRDofim    ,    /*0x15*/    opCMPSlli     ,    opCMPSllr     ,    opCMPSlri     ,    opCMPSlrr     ,    opCMPSari     ,    opCMPSarr     ,    opCMPSrri     ,    opCMPSrrr     ,    opCMPSlli     ,    opUNP         ,  // Unallocated    opCMPSlri     ,    opLDRHofim    ,    opCMPSari     ,    opLDRSBofim   ,    opCMPSrri     ,    opLDRSHofim   ,    /*0x16*/    opMSRrs       ,    opCLZ         ,    opUNP         ,  // Unallocated    opUNP         ,  // Unallocated    opUNP         ,  // Unallocated    opQDSUB       ,    opUNP         ,  // Unallocated    opUNP         ,  // Unallocated    opSMULBB      ,    opUNP         ,  // Unallocated    opSMULTB      ,    opSTRHprim    ,    opSMULBT      ,    opLDRDprim    ,    opSMULTT      ,    opSTRDprim    ,    /*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      ,    opLDRDofrp    ,    opORRrri      ,    opSTRDofrp    ,    /*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      ,    opLDRDprrp    ,    opMOVrri      ,    opSTRDprrp    ,    /*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      ,    opLDRDofip    ,    opBICrri      ,    opSTRDofip    ,    /*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      ,    opLDRDprip    ,    opMVNrri      ,    opSTRDprip    ,    /*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      ,    opSUBimm      ,    opSUBimm      ,    opSUBimm      ,    opSUBimm      ,    opSUBimm      ,    opSUBimm      ,    opSUBimm      ,    /*0x25*/    opSUBSimm     ,    opSUBSimm     ,    opSUBSimm     ,    opSUBSimm     ,

⌨️ 快捷键说明

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