daedalus/Source/DynaRec/ARM/DynarecTargetARM.h
2023-12-15 22:21:38 -08:00

63 lines
No EOL
1.9 KiB
C

/*
Copyright (C) 2020 MasterFeizz
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.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#pragma once
#include "Core/R4300OpCode.h"
// ARM register codes.
enum EArmReg
{
ArmReg_R0 = 0, ArmReg_R1, ArmReg_R2, ArmReg_R3,
ArmReg_R4, ArmReg_R5, ArmReg_R6, ArmReg_R7,
ArmReg_R8, ArmReg_R9, ArmReg_R10, ArmReg_R11,
ArmReg_R12, ArmReg_R13, ArmReg_R14, ArmReg_R15,
NUM_ARM_REGISTERS = 16,
//Aliases
};
enum EArmVfpReg
{
ArmVfpReg_S0 = 0, ArmVfpReg_S1, ArmVfpReg_S2, ArmVfpReg_S3,
ArmVfpReg_S4, ArmVfpReg_S5, ArmVfpReg_S6, ArmVfpReg_S7,
ArmVfpReg_S8, ArmVfpReg_S9, ArmVfpReg_S10, ArmVfpReg_S11,
ArmVfpReg_S12, ArmVfpReg_S13, ArmVfpReg_S14, ArmVfpReg_S15,
ArmVfpReg_S16, ArmVfpReg_S17, ArmVfpReg_S18, ArmVfpReg_S19,
ArmVfpReg_S20, ArmVfpReg_S21, ArmVfpReg_S22, ArmVfpReg_S23,
ArmVfpReg_S24, ArmVfpReg_S25, ArmVfpReg_S26, ArmVfpReg_S27,
ArmVfpReg_S28, ArmVfpReg_S29, ArmVfpReg_S30, ArmVfpReg_S31,
NUM_VFP_REGISTERS = 32,
//Aliases
};
// ARM conditions. Do NOT reorder these
enum EArmCond
{
EQ, NE, CS, CC, MI, PL, VS, VC,
HI, LS, GE, LT, GT, LE, AL, NV
};
// Return true if this register dont need sign extension //Corn
inline bool N64Reg_DontNeedSign( EN64Reg n64_reg ) { return (0x30000001 >> n64_reg) & 1;}
inline bool Reg_IsTemporary(EArmReg reg) { return false; }