mirror of
				https://github.com/RetroDECK/Supermodel.git
				synced 2025-04-10 19:15:14 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			171 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			171 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /**
 | |
|  ** Supermodel
 | |
|  ** A Sega Model 3 Arcade Emulator.
 | |
|  ** Copyright 2011 Bart Trzynadlowski, Nik Henson
 | |
|  **
 | |
|  ** This file is part of Supermodel.
 | |
|  **
 | |
|  ** Supermodel 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 3 of the License, or (at your option)
 | |
|  ** any later version.
 | |
|  **
 | |
|  ** Supermodel 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.
 | |
|  **
 | |
|  ** You should have received a copy of the GNU General Public License along
 | |
|  ** with Supermodel.  If not, see <http://www.gnu.org/licenses/>.
 | |
|  **/
 | |
|  
 | |
| /*
 | |
|  * ppc_ops.h
 | |
|  *
 | |
|  * Header file defining PowerPC opcode handlers.
 | |
|  */
 | |
| 
 | |
| static PPC_OPCODE ppc_opcode_common[] =
 | |
| {
 | |
| 	/*code  subcode         handler             */
 | |
| 	{ 31,	266,			ppc_addx			},
 | |
| 	{ 31,	266 | 512,		ppc_addx			},
 | |
| 	{ 31,	10,				ppc_addcx			},
 | |
| 	{ 31,	10 | 512,		ppc_addcx			},
 | |
| 	{ 31,	138,			ppc_addex			},
 | |
| 	{ 31,	138 | 512,		ppc_addex			},
 | |
| 	{ 14,	-1,				ppc_addi			},
 | |
| 	{ 12,	-1,				ppc_addic			},
 | |
| 	{ 13,	-1,				ppc_addic_rc		},
 | |
| 	{ 15,	-1,				ppc_addis			},
 | |
| 	{ 31,	234,			ppc_addmex			},
 | |
| 	{ 31,	234 | 512,		ppc_addmex			},
 | |
| 	{ 31,	202,			ppc_addzex			},
 | |
| 	{ 31,	202 | 512,		ppc_addzex			},
 | |
| 	{ 31,	28,				ppc_andx			},
 | |
| 	{ 31,	28 | 512,		ppc_andx			},
 | |
| 	{ 31,	60,				ppc_andcx			},
 | |
| 	{ 28,	-1,				ppc_andi_rc			},
 | |
| 	{ 29,	-1,				ppc_andis_rc		},
 | |
| 	{ 18,	-1,				ppc_bx				},
 | |
| 	{ 16,	-1,				ppc_bcx				},
 | |
| 	{ 19,	528,			ppc_bcctrx			},
 | |
| 	{ 19,	16,				ppc_bclrx			},
 | |
| 	{ 31,	0,				ppc_cmp				},
 | |
| 	{ 11,	-1,				ppc_cmpi			},
 | |
| 	{ 31,	32,				ppc_cmpl			},
 | |
| 	{ 10,	-1,				ppc_cmpli			},
 | |
| 	{ 31,	26,				ppc_cntlzw			},
 | |
| 	{ 19,	257,			ppc_crand			},
 | |
| 	{ 19,	129,			ppc_crandc			},
 | |
| 	{ 19,	289,			ppc_creqv			},
 | |
| 	{ 19,	225,			ppc_crnand			},
 | |
| 	{ 19,	33,				ppc_crnor			},
 | |
| 	{ 19,	449,			ppc_cror			},
 | |
| 	{ 19,	417,			ppc_crorc			},
 | |
| 	{ 19,	193,			ppc_crxor			},
 | |
| 	{ 31,	86,				ppc_dcbf			},
 | |
| 	{ 31,	470,			ppc_dcbi			},
 | |
| 	{ 31,	54,				ppc_dcbst			},
 | |
| 	{ 31,	278,			ppc_dcbt			},
 | |
| 	{ 31,	246,			ppc_dcbtst			},
 | |
| 	{ 31,	1014,			ppc_dcbz			},
 | |
| 	{ 31,	491,			ppc_divwx			},
 | |
| 	{ 31,	491 | 512,		ppc_divwx			},
 | |
| 	{ 31,	459,			ppc_divwux			},
 | |
| 	{ 31,	459 | 512,		ppc_divwux			},
 | |
| 	{ 31,	854,			ppc_eieio			},
 | |
| 	{ 31,	284,			ppc_eqvx			},
 | |
| 	{ 31,	954,			ppc_extsbx			},
 | |
| 	{ 31,	922,			ppc_extshx			},
 | |
| 	{ 31,	982,			ppc_icbi			},
 | |
| 	{ 19,	150,			ppc_isync			},
 | |
| 	{ 34,	-1,				ppc_lbz				},
 | |
| 	{ 35,	-1,				ppc_lbzu			},
 | |
| 	{ 31,	119,			ppc_lbzux			},
 | |
| 	{ 31,	87,				ppc_lbzx			},
 | |
| 	{ 42,	-1,				ppc_lha				},
 | |
| 	{ 43,	-1,				ppc_lhau			},
 | |
| 	{ 31,	375,			ppc_lhaux			},
 | |
| 	{ 31,	343,			ppc_lhax			},
 | |
| 	{ 31,	790,			ppc_lhbrx			},
 | |
| 	{ 40,	-1,				ppc_lhz				},
 | |
| 	{ 41,	-1,				ppc_lhzu			},
 | |
| 	{ 31,	311,			ppc_lhzux			},
 | |
| 	{ 31,	279,			ppc_lhzx			},
 | |
| 	{ 46,	-1,				ppc_lmw				},
 | |
| 	{ 31,	597,			ppc_lswi			},
 | |
| 	{ 31,	533,			ppc_lswx			},
 | |
| 	{ 31,	20,				ppc_lwarx			},
 | |
| 	{ 31,	534,			ppc_lwbrx			},
 | |
| 	{ 32,	-1,				ppc_lwz				},
 | |
| 	{ 33,	-1,				ppc_lwzu			},
 | |
| 	{ 31,	55,				ppc_lwzux			},
 | |
| 	{ 31,	23,				ppc_lwzx			},
 | |
| 	{ 19,	0,				ppc_mcrf			},
 | |
| 	{ 31,	512,			ppc_mcrxr			},
 | |
| 	{ 31,	19,				ppc_mfcr			},
 | |
| 	{ 31,	83,				ppc_mfmsr			},
 | |
| 	{ 31,	339,			ppc_mfspr			},
 | |
| 	{ 31,	144,			ppc_mtcrf			},
 | |
| 	{ 31,	146,			ppc_mtmsr			},
 | |
| 	{ 31,	467,			ppc_mtspr			},
 | |
| 	{ 31,	75,				ppc_mulhwx			},
 | |
| 	{ 31,	11,				ppc_mulhwux			},
 | |
| 	{ 7,	-1,				ppc_mulli			},
 | |
| 	{ 31,	235,			ppc_mullwx			},
 | |
| 	{ 31,	235 | 512,		ppc_mullwx			},
 | |
| 	{ 31,	476,			ppc_nandx			},
 | |
| 	{ 31,	104,			ppc_negx			},
 | |
| 	{ 31,	104 | 512,		ppc_negx			},
 | |
| 	{ 31,	124,			ppc_norx			},
 | |
| 	{ 31,	444,			ppc_orx				},
 | |
| 	{ 31,	412,			ppc_orcx			},
 | |
| 	{ 24,	-1,				ppc_ori				},
 | |
| 	{ 25,	-1,				ppc_oris			},
 | |
| 	{ 19,	50,				ppc_rfi				},
 | |
| 	{ 20,	-1,				ppc_rlwimix			},
 | |
| 	{ 21,	-1,				ppc_rlwinmx			},
 | |
| 	{ 23,	-1,				ppc_rlwnmx			},
 | |
| 	{ 17,	-1,				ppc_sc				},
 | |
| 	{ 31,	24,				ppc_slwx			},
 | |
| 	{ 31,	792,			ppc_srawx			},
 | |
| 	{ 31,	824,			ppc_srawix			},
 | |
| 	{ 31,	536,			ppc_srwx			},
 | |
| 	{ 38,	-1,				ppc_stb				},
 | |
| 	{ 39,	-1,				ppc_stbu			},
 | |
| 	{ 31,	247,			ppc_stbux			},
 | |
| 	{ 31,	215,			ppc_stbx			},
 | |
| 	{ 44,	-1,				ppc_sth				},
 | |
| 	{ 31,	918,			ppc_sthbrx			},
 | |
| 	{ 45,	-1,				ppc_sthu			},
 | |
| 	{ 31,	439,			ppc_sthux			},
 | |
| 	{ 31,	407,			ppc_sthx			},
 | |
| 	{ 47,	-1,				ppc_stmw			},
 | |
| 	{ 31,	725,			ppc_stswi			},
 | |
| 	{ 31,	661,			ppc_stswx			},
 | |
| 	{ 36,	-1,				ppc_stw				},
 | |
| 	{ 31,	662,			ppc_stwbrx			},
 | |
| 	{ 31,	150,			ppc_stwcx_rc		},
 | |
| 	{ 37,	-1,				ppc_stwu			},
 | |
| 	{ 31,	183,			ppc_stwux			},
 | |
| 	{ 31,	151,			ppc_stwx			},
 | |
| 	{ 31,	40,				ppc_subfx			},
 | |
| 	{ 31,	40 | 512,		ppc_subfx			},
 | |
| 	{ 31,	8,				ppc_subfcx			},
 | |
| 	{ 31,	8 | 512,		ppc_subfcx			},
 | |
| 	{ 31,	136,			ppc_subfex			},
 | |
| 	{ 31,	136 | 512,		ppc_subfex			},
 | |
| 	{ 8,	-1,				ppc_subfic			},
 | |
| 	{ 31,	232,			ppc_subfmex			},
 | |
| 	{ 31,	232 | 512,		ppc_subfmex			},
 | |
| 	{ 31,	200,			ppc_subfzex			},
 | |
| 	{ 31,	200 | 512,		ppc_subfzex			},
 | |
| 	{ 31,	598,			ppc_sync			},
 | |
| 	{ 31,	4,				ppc_tw				},
 | |
| 	{ 3,	-1,				ppc_twi				},
 | |
| 	{ 31,	316,			ppc_xorx			},
 | |
| 	{ 26,	-1,				ppc_xori			},
 | |
| 	{ 27,	-1,				ppc_xoris			}
 | |
| };
 | 
