mirror of
https://github.com/RetroDECK/Supermodel.git
synced 2024-11-30 01:25:49 +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 }
|
|
};
|