Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / sam / cpus / vonk / ss / api / rtl / src / SS_RtlTracer.cc
CommitLineData
920dae64
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: SS_RtlTracer.cc
4// Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
5// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
6//
7// The above named program is free software; you can redistribute it and/or
8// modify it under the terms of the GNU General Public
9// License version 2 as published by the Free Software Foundation.
10//
11// The above named program is distributed in the hope that it will be
12// useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14// General Public License for more details.
15//
16// You should have received a copy of the GNU General Public
17// License along with this work; if not, write to the Free Software
18// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
19//
20// ========== Copyright Header End ============================================
21
22#include "SS_RtlTracer.h"
23#include "spix_sparc.h"
24
25SS_RtlTracer::SS_RtlTracer( uint_t sid, FILE* out )/*{{{*/
26 :
27 SS_Tracer(),
28 strand_id(sid),
29 trc_out(out)
30{
31 assert(trc_out);
32 hook_exe_instr = &ss_rtl_tracer_exe_instr;
33}
34/*}}}*/
35
36void SS_RtlTracer::ss_rtl_tracer_exe_instr( SS_Tracer* _trc, SS_Vaddr pc, SS_Tte* tte, SS_Instr* i )/*{{{*/
37{
38 SS_RtlTracer* trc = (SS_RtlTracer*)_trc;
39
40 uint32_t opc = i->opc();
41 static char buffer[256];
42 size_t n = spix_sparc_dis(buffer,256,spix_sparc_iop(SPIX_SPARC_V9,&opc),&opc,pc);
43 buffer[n] = 0;
44
45 fprintf(trc->trc_out,"%d : 0x%llx : 0x%llx [%08x] %s\n",trc->strand_id,pc,tte->trans(pc),i->opc(),buffer);
46}
47/*}}}*/
48