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