mirror of
https://github.com/ioacademy-jikim/debugging
synced 2025-06-08 08:26:14 +00:00
150 lines
4.8 KiB
C
150 lines
4.8 KiB
C
|
|
/*---------------------------------------------------------------*/
|
|
/*--- begin libvex_guest_tilegx.h ---*/
|
|
/*---------------------------------------------------------------*/
|
|
|
|
/*
|
|
This file is part of Valgrind, a dynamic binary instrumentation
|
|
framework.
|
|
|
|
Copyright (C) 2010-2015 Tilera Corp.
|
|
|
|
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., 59 Temple Place, Suite 330, Boston, MA
|
|
02111-1307, USA.
|
|
|
|
The GNU General Public License is contained in the file COPYING.
|
|
*/
|
|
|
|
/* Contributed by Zhi-Gang Liu <zliu at tilera dot com> */
|
|
|
|
#ifndef __LIBVEX_PUB_GUEST_TILEGX_H
|
|
#define __LIBVEX_PUB_GUEST_TILEGX_H
|
|
|
|
#include "libvex_basictypes.h"
|
|
#include "libvex_emnote.h"
|
|
|
|
#undef TILEGX_DEBUG
|
|
|
|
/*---------------------------------------------------------------*/
|
|
/*--- Vex's representation of the tilegx CPU state. ---*/
|
|
/*---------------------------------------------------------------*/
|
|
|
|
typedef ULong ULONG;
|
|
|
|
typedef
|
|
struct {
|
|
/* CPU Registers */
|
|
/* 0 */ ULONG guest_r0;
|
|
/* 8 */ ULONG guest_r1;
|
|
/* 16 */ ULONG guest_r2;
|
|
/* 24 */ ULONG guest_r3;
|
|
/* 32 */ ULONG guest_r4;
|
|
/* 40 */ ULONG guest_r5;
|
|
/* 48 */ ULONG guest_r6;
|
|
/* 56 */ ULONG guest_r7;
|
|
/* 64 */ ULONG guest_r8;
|
|
/* 72 */ ULONG guest_r9;
|
|
/* 80 */ ULONG guest_r10;
|
|
/* 88 */ ULONG guest_r11;
|
|
/* 96 */ ULONG guest_r12;
|
|
/* 104 */ ULONG guest_r13;
|
|
/* 112 */ ULONG guest_r14;
|
|
/* 120 */ ULONG guest_r15;
|
|
/* 128 */ ULONG guest_r16;
|
|
/* 136 */ ULONG guest_r17;
|
|
/* 144 */ ULONG guest_r18;
|
|
/* 152 */ ULONG guest_r19;
|
|
/* 160 */ ULONG guest_r20;
|
|
/* 168 */ ULONG guest_r21;
|
|
/* 176 */ ULONG guest_r22;
|
|
/* 184 */ ULONG guest_r23;
|
|
/* 192 */ ULONG guest_r24;
|
|
/* 200 */ ULONG guest_r25;
|
|
/* 208 */ ULONG guest_r26;
|
|
/* 216 */ ULONG guest_r27;
|
|
/* 224 */ ULONG guest_r28;
|
|
/* 232 */ ULONG guest_r29;
|
|
/* 240 */ ULONG guest_r30;
|
|
/* 248 */ ULONG guest_r31;
|
|
/* 256 */ ULONG guest_r32;
|
|
/* 264 */ ULONG guest_r33;
|
|
/* 272 */ ULONG guest_r34;
|
|
/* 280 */ ULONG guest_r35;
|
|
/* 288 */ ULONG guest_r36;
|
|
/* 296 */ ULONG guest_r37;
|
|
/* 304 */ ULONG guest_r38;
|
|
/* 312 */ ULONG guest_r39;
|
|
/* 320 */ ULONG guest_r40;
|
|
/* 328 */ ULONG guest_r41;
|
|
/* 336 */ ULONG guest_r42;
|
|
/* 344 */ ULONG guest_r43;
|
|
/* 352 */ ULONG guest_r44;
|
|
/* 360 */ ULONG guest_r45;
|
|
/* 368 */ ULONG guest_r46;
|
|
/* 376 */ ULONG guest_r47;
|
|
/* 384 */ ULONG guest_r48;
|
|
/* 392 */ ULONG guest_r49;
|
|
/* 400 */ ULONG guest_r50;
|
|
/* 408 */ ULONG guest_r51;
|
|
/* 416 */ ULONG guest_r52; /* FP */
|
|
/* 424 */ ULONG guest_r53;
|
|
/* 432 */ ULONG guest_r54; /* SP */
|
|
/* 440 */ ULONG guest_r55; /* LR */
|
|
/* 448 */ ULONG guest_r56; /* zero */
|
|
/* 456 */ ULONG guest_r57; /* Reserved */
|
|
/* 464 */ ULONG guest_r58; /* Reserved */
|
|
/* 472 */ ULONG guest_r59; /* Reserved */
|
|
/* 480 */ ULONG guest_r60; /* Reserved */
|
|
/* 488 */ ULONG guest_r61; /* Reserved */
|
|
/* 496 */ ULONG guest_r62; /* Reserved */
|
|
/* 504 */ ULONG guest_r63; /* Reserved */
|
|
/* 512 */ ULONG guest_pc;
|
|
/* 520 */ ULONG guest_spare; /* Reserved */
|
|
/* 528 */ ULONG guest_EMNOTE;
|
|
/* 536 */ ULONG guest_CMSTART;
|
|
/* 544 */ ULONG guest_CMLEN;
|
|
/* 552 */ ULONG guest_NRADDR;
|
|
/* 560 */ ULong guest_cmpexch;
|
|
/* 568 */ ULong guest_zero;
|
|
/* 576 */ ULong guest_ex_context_0;
|
|
/* 584 */ ULong guest_ex_context_1;
|
|
/* 592 */ ULong host_EvC_FAILADDR;
|
|
/* 600 */ ULong host_EvC_COUNTER;
|
|
/* 608 */ ULong guest_COND;
|
|
/* 616 */ ULong PAD;
|
|
|
|
} VexGuestTILEGXState;
|
|
|
|
#define OFFSET_tilegx_r(_N) (8 * (_N))
|
|
|
|
/*---------------------------------------------------------------*/
|
|
/*--- Utility functions for TILEGX guest stuff. ---*/
|
|
/*---------------------------------------------------------------*/
|
|
|
|
/* ALL THE FOLLOWING ARE VISIBLE TO LIBRARY CLIENT */
|
|
|
|
/* Initialise all guest TILEGX state. */
|
|
|
|
extern
|
|
void LibVEX_GuestTILEGX_initialise ( /*OUT*/VexGuestTILEGXState* vex_state );
|
|
|
|
|
|
#endif /* __LIBVEX_PUB_GUEST_TILEGX_H */
|
|
|
|
|
|
/*---------------------------------------------------------------*/
|
|
/*--- libvex_guest_tilegx.h ---*/
|
|
/*---------------------------------------------------------------*/
|