Search
lxdream.org :: lxdream/src/sh4/sh4stat.h
lxdream 0.9.1
released Jun 29
Download Now
filename src/sh4/sh4stat.h
changeset 905:4c17ebd9ef5e
prev736:a02d1475ccfd
author nkeynes
date Tue Dec 15 08:46:37 2009 +1000 (14 years ago)
permissions -rw-r--r--
last change Add side-by-side x86+sh4 disassembly output
Print SH4 state information and disassembly of the current block when
crashing.
Fix delay slot instruction in conditional branch not being marked as a
delay-slot instruction in the branch-not-taken path.
Rename REG_* defines in cpu.h to avoid conflict with translation defs
view annotate diff log raw
     1 /**
     2  * $Id$
     3  * 
     4  * Support module for collecting instruction stats
     5  *
     6  * Copyright (c) 2005 Nathan Keynes.
     7  *
     8  * This program is free software; you can redistribute it and/or modify
     9  * it under the terms of the GNU General Public License as published by
    10  * the Free Software Foundation; either version 2 of the License, or
    11  * (at your option) any later version.
    12  *
    13  * This program is distributed in the hope that it will be useful,
    14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16  * GNU General Public License for more details.
    17  */
    19 #ifndef lxdream_sh4stat_H
    20 #define lxdream_sh4stat_H 1
    22 #include <stdio.h>
    23 #include <stdint.h>
    24 #include "lxdream.h"
    26 #ifdef __cplusplus
    27 extern "C" {
    28 #endif
    30 typedef enum {
    31     I_UNKNOWN,
    32     I_ADD, I_ADDI, I_ADDC, I_ADDV,
    33     I_AND, I_ANDI, I_ANDB, 
    34     I_BF, I_BFS, I_BRA, I_BRAF, I_BSR, I_BSRF, I_BT, I_BTS,
    35     I_CLRMAC, I_CLRS, I_CLRT, 
    36     I_CMPEQ, I_CMPEQI, I_CMPGE, I_CMPGT, I_CMPHI, I_CMPHS, I_CMPPL, I_CMPPZ, I_CMPSTR,
    37     I_DIV0S, I_DIV0U, I_DIV1,
    38     I_DMULS, I_DMULU, I_DT,   
    39     I_EXTSB, I_EXTSW, I_EXTUB, I_EXTUW, I_FABS, 
    40     I_FADD, I_FCMPEQ, I_FCMPGT, I_FCNVDS, I_FCNVSD, I_FDIV, I_FIPR, I_FLDS,
    41     I_FLDI0, I_FLDI1, I_FLOAT, I_FMAC, I_FMOV1, I_FMOV2, I_FMOV3, I_FMOV4, 
    42     I_FMOV5, I_FMOV6, I_FMOV7, I_FMUL, I_FNEG, I_FRCHG, I_FSCA, I_FSCHG, 
    43     I_FSQRT, I_FSRRA, I_FSTS, I_FSUB, I_FTRC, I_FTRV,  
    44     I_JMP, I_JSR,   
    45     I_LDCSR, I_LDC, I_LDCSRM, I_LDCM, I_LDSFPSCR, I_LDS, I_LDSFPSCRM, I_LDSM, I_LDTLB, 
    46     I_MACL, I_MACW,  
    47     I_MOV, I_MOVI, I_MOVB, I_MOVL, I_MOVLPC, I_MOVW, I_MOVA, I_MOVCA, I_MOVT,  
    48     I_MULL, I_MULSW, I_MULUW, 
    49     I_NEG, I_NEGC, I_NOP, I_NOT,  
    50     I_OCBI, I_OCBP, I_OCBWB, 
    51     I_OR, I_ORI, I_ORB,   
    52     I_PREF, 
    53     I_ROTCL, I_ROTCR, I_ROTL, I_ROTR, 
    54     I_RTE, I_RTS, 
    55     I_SETS, I_SETT,  
    56     I_SHAD, I_SHAL, I_SHAR, I_SHLD, I_SHLL, I_SHLR,  
    57     I_SLEEP, 
    58     I_STCSR, I_STC, I_STCSRM, I_STCM, I_STSFPSCR, I_STS, I_STSFPSCRM, I_STSM,  
    59     I_SUB, I_SUBC, I_SUBV,  
    60     I_SWAPB, I_SWAPW, I_TASB,  
    61     I_TRAPA,
    62     I_TST, I_TSTI, I_TSTB,  
    63     I_XOR, I_XORI, I_XORB,  
    64     I_XTRCT, 
    65     I_UNDEF } sh4_inst_id;
    67 #define SH4_INSTRUCTION_COUNT I_UNDEF
    69     void sh4_stats_reset( void );
    70     void sh4_stats_print( FILE *out );
    71     void FASTCALL sh4_stats_add( sh4_inst_id id );
    72     void sh4_stats_add_by_pc( uint32_t pc );
    74 #ifdef __cplusplus
    75 }
    76 #endif
    78 #endif /* !lxdream_sh4stat_H */
.