inst.proto revision 10695
110779SCurtis.Dunham@arm.com// Copyright (c) 2014 ARM Limited 210779SCurtis.Dunham@arm.com// All rights reserved 310779SCurtis.Dunham@arm.com// 410779SCurtis.Dunham@arm.com// The license below extends only to copyright in the software and shall 510779SCurtis.Dunham@arm.com// not be construed as granting a license to any other intellectual 610779SCurtis.Dunham@arm.com// property including but not limited to intellectual property relating 710779SCurtis.Dunham@arm.com// to a hardware implementation of the functionality of the software 810779SCurtis.Dunham@arm.com// licensed hereunder. You may use the software subject to the license 910779SCurtis.Dunham@arm.com// terms below provided that you ensure that this notice is replicated 1010779SCurtis.Dunham@arm.com// unmodified and in its entirety in all distributions of the software, 1110779SCurtis.Dunham@arm.com// modified or unmodified, in source code or in binary form. 1210779SCurtis.Dunham@arm.com// 1310779SCurtis.Dunham@arm.com// Redistribution and use in source and binary forms, with or without 1410779SCurtis.Dunham@arm.com// modification, are permitted provided that the following conditions are 1510779SCurtis.Dunham@arm.com// met: redistributions of source code must retain the above copyright 1610779SCurtis.Dunham@arm.com// notice, this list of conditions and the following disclaimer; 1710779SCurtis.Dunham@arm.com// redistributions in binary form must reproduce the above copyright 1810779SCurtis.Dunham@arm.com// notice, this list of conditions and the following disclaimer in the 1910779SCurtis.Dunham@arm.com// documentation and/or other materials provided with the distribution; 2010779SCurtis.Dunham@arm.com// neither the name of the copyright holders nor the names of its 2110779SCurtis.Dunham@arm.com// contributors may be used to endorse or promote products derived from 2210779SCurtis.Dunham@arm.com// this software without specific prior written permission. 2310779SCurtis.Dunham@arm.com// 2410779SCurtis.Dunham@arm.com// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 2510779SCurtis.Dunham@arm.com// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 2610779SCurtis.Dunham@arm.com// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 2710779SCurtis.Dunham@arm.com// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2810779SCurtis.Dunham@arm.com// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2910779SCurtis.Dunham@arm.com// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 3010779SCurtis.Dunham@arm.com// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 3110779SCurtis.Dunham@arm.com// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 3210779SCurtis.Dunham@arm.com// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 3310779SCurtis.Dunham@arm.com// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 3410779SCurtis.Dunham@arm.com// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3510779SCurtis.Dunham@arm.com// 3610779SCurtis.Dunham@arm.com// Authors: Ali Saidi 3710779SCurtis.Dunham@arm.com 3810779SCurtis.Dunham@arm.com 3910779SCurtis.Dunham@arm.com// Put all the generated messages in a namespace 4010779SCurtis.Dunham@arm.compackage ProtoMessage; 4110779SCurtis.Dunham@arm.com 4210779SCurtis.Dunham@arm.com// Packet header with the identifier describing what object captured 4310779SCurtis.Dunham@arm.com// the trace, the version of this file format, and the tick frequency 4410779SCurtis.Dunham@arm.com// for all the packet time stamps. 4510779SCurtis.Dunham@arm.commessage InstHeader { 4610779SCurtis.Dunham@arm.com required string obj_id = 1; 4710779SCurtis.Dunham@arm.com required uint32 ver = 2 [default = 0]; 4810779SCurtis.Dunham@arm.com required uint64 tick_freq = 3; 4910779SCurtis.Dunham@arm.com required bool has_mem = 4; 5010779SCurtis.Dunham@arm.com} 5111618SCurtis.Dunham@arm.com 5211618SCurtis.Dunham@arm.commessage Inst { 5310779SCurtis.Dunham@arm.com required uint64 pc = 1; 5410779SCurtis.Dunham@arm.com required fixed32 inst = 2; 5510779SCurtis.Dunham@arm.com optional uint32 nodeid = 3; 5610779SCurtis.Dunham@arm.com optional uint32 cpuid = 4; 5710779SCurtis.Dunham@arm.com optional fixed64 tick = 5; 5810779SCurtis.Dunham@arm.com 5910779SCurtis.Dunham@arm.com enum InstType { 6010779SCurtis.Dunham@arm.com None = 0; 6110779SCurtis.Dunham@arm.com IntAlu = 1; 6210779SCurtis.Dunham@arm.com IntMul = 2; 6310779SCurtis.Dunham@arm.com IntDiv = 3; 6410779SCurtis.Dunham@arm.com FloatAdd = 4; 6510779SCurtis.Dunham@arm.com FloatCmp = 5; 6610779SCurtis.Dunham@arm.com FloatCvt = 6; 6710779SCurtis.Dunham@arm.com FloatMult = 7; 6810779SCurtis.Dunham@arm.com FloatDiv = 8; 6910779SCurtis.Dunham@arm.com FloatSqrt = 9; 7010779SCurtis.Dunham@arm.com SIMDIntAdd = 10; 7110779SCurtis.Dunham@arm.com SIMDIntAddAcc = 11; 7210779SCurtis.Dunham@arm.com SIMDIntAlu = 12; 7310779SCurtis.Dunham@arm.com SIMDIntCmp = 13; 7410779SCurtis.Dunham@arm.com SIMDIntCvt = 14; 7510779SCurtis.Dunham@arm.com SIMDMisc = 15; 7610779SCurtis.Dunham@arm.com SIMDIntMult = 16; 7710779SCurtis.Dunham@arm.com SIMDIntMultAcc = 17; 7810779SCurtis.Dunham@arm.com SIMDIntShift = 18; 7910779SCurtis.Dunham@arm.com SIMDIntShiftAcc = 19; 8010779SCurtis.Dunham@arm.com SIMDSqrt = 20; 8110779SCurtis.Dunham@arm.com SIMDFloatAdd = 21; 8210779SCurtis.Dunham@arm.com SIMDFloatAlu = 22; 8310779SCurtis.Dunham@arm.com SIMDFloatCmp = 23; 8410779SCurtis.Dunham@arm.com SIMDFloatCvt = 24; 8510779SCurtis.Dunham@arm.com SIMDFloatDiv = 25; 8610779SCurtis.Dunham@arm.com SIMDFloatMisc = 26; 8710779SCurtis.Dunham@arm.com SIMDFloatMult = 27; 8810779SCurtis.Dunham@arm.com SIMDFloatMultAdd = 28; 8910779SCurtis.Dunham@arm.com SIMDFloatSqrt = 29; 9010779SCurtis.Dunham@arm.com MemRead = 30; 9110779SCurtis.Dunham@arm.com MemWrite = 31; 9210779SCurtis.Dunham@arm.com IprAccess = 32; 9310779SCurtis.Dunham@arm.com InstPrefetch = 33; 9410779SCurtis.Dunham@arm.com } 9510779SCurtis.Dunham@arm.com 9610779SCurtis.Dunham@arm.com optional InstType type = 6; // add, mul, fp add, load, store, simd add, … 9710779SCurtis.Dunham@arm.com optional uint32 inst_flags = 7; // execution mode information 9810779SCurtis.Dunham@arm.com 9910779SCurtis.Dunham@arm.com // If the operation does one or more memory accesses 10010779SCurtis.Dunham@arm.com message MemAccess { 10110779SCurtis.Dunham@arm.com required uint64 addr = 1; 10210779SCurtis.Dunham@arm.com required uint32 size = 2; 10310779SCurtis.Dunham@arm.com optional uint32 mem_flags = 3; 10410779SCurtis.Dunham@arm.com } 10510779SCurtis.Dunham@arm.com repeated MemAccess mem_access = 8; 10610779SCurtis.Dunham@arm.com} 10710779SCurtis.Dunham@arm.com 10810779SCurtis.Dunham@arm.com