pcsxr/libpcsxcore/pgxp_debug.h

155 lines
3.5 KiB
C

/***************************************************************************
* Copyright (C) 2016 by iCatButler *
* *
* 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., *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *
***************************************************************************/
/**************************************************************************
* pgxp_debug.h
* PGXP - Parallel/Precision Geometry Xform Pipeline
*
* Created on: 07 Jun 2016
* Author: iCatButler
***************************************************************************/
#ifndef _PGXP_DEBUG_H_
#define _PGXP_DEBUG_H_
#include "psxcommon.h"
//#define PGXP_CPU_DEBUG
//#define PGXP_OUTPUT_ALL
//#define PGXP_FORCE_INPUT_VALUES
//#define PGXP_TEST_OUTPUT_VALUES
#define PGXP_DEBUG_TOLERANCE 2.f
// Debug wrappers
void PGXP_psxTraceOp(u32 eOp, u32 code);
void PGXP_psxTraceOp1(u32 eOp, u32 code, u32 op1);
void PGXP_psxTraceOp2(u32 eOp, u32 code, u32 op1, u32 op2);
void PGXP_psxTraceOp3(u32 eOp, u32 code, u32 op1, u32 op2, u32 op3);
void PGXP_psxTraceOp4(u32 eOp, u32 code, u32 op1, u32 op2, u32 op3, u32 op4);
extern unsigned int pgxp_debug;
// Op flags
enum PGXP_DBG_Enum
{
DBG_E_SPECIAL,
DBG_E_REGIMM,
DBG_E_J,
DBG_E_JAL,
DBG_E_BEQ,
DBG_E_BNE,
DBG_E_BLEZ,
DBG_E_BGTZ,
DBG_E_ADDI,
DBG_E_ADDIU,
DBG_E_SLTI,
DBG_E_SLTIU,
DBG_E_ANDI,
DBG_E_ORI,
DBG_E_XORI,
DBG_E_LUI,
DBG_E_COP0,
DBG_E_COP2,
DBG_E_LB,
DBG_E_LH,
DBG_E_LWL,
DBG_E_LW,
DBG_E_LBU,
DBG_E_LHU,
DBG_E_LWR,
DBG_E_SB,
DBG_E_SH,
DBG_E_SWL,
DBG_E_SW,
DBG_E_SWR,
DBG_E_LWC2,
DBG_E_SWC2,
DBG_E_HLE,
DBG_E_SLL,
DBG_E_SRL,
DBG_E_SRA,
DBG_E_SLLV,
DBG_E_SRLV,
DBG_E_SRAV,
DBG_E_JR,
DBG_E_JALR,
DBG_E_SYSCALL,
DBG_E_BREAK,
DBG_E_MFHI,
DBG_E_MTHI,
DBG_E_MFLO,
DBG_E_MTLO,
DBG_E_MULT,
DBG_E_MULTU,
DBG_E_DIV,
DBG_E_DIVU,
DBG_E_ADD,
DBG_E_ADDU,
DBG_E_SUB,
DBG_E_SUBU,
DBG_E_AND,
DBG_E_OR,
DBG_E_XOR,
DBG_E_NOR,
DBG_E_SLT,
DBG_E_SLTU,
DBG_E_BLTZ,
DBG_E_BGEZ,
DBG_E_BLTZAL,
DBG_E_BGEZAL,
DBG_E_MFC0,
DBG_E_CFC0,
DBG_E_MTC0,
DBG_E_CTC0,
DBG_E_RFE,
DBG_E_BASIC,
DBG_E_RTPS,
DBG_E_NCLIP,
DBG_E_OP,
DBG_E_DPCS,
DBG_E_INTPL,
DBG_E_MVMVA,
DBG_E_NCDS,
DBG_E_CDP,
DBG_E_NCDT,
DBG_E_NCCS,
DBG_E_CC,
DBG_E_NCS,
DBG_E_NCT,
DBG_E_SQR,
DBG_E_DCPL,
DBG_E_DPCT,
DBG_E_AVSZ3,
DBG_E_AVSZ4,
DBG_E_RTPT,
DBG_E_GPF,
DBG_E_GPL,
DBG_E_NCCT,
DBG_E_MFC2,
DBG_E_CFC2,
DBG_E_MTC2,
DBG_E_CTC2,
DBG_E_NULL,
DBG_E_ERROR
};
#endif//_PGXP_DEBUG_H_