Blame sim/aarch64/sim-main.h

Packit Service 706eca
/* sim-main.h -- Interface with sim/common.
Packit Service 706eca
Packit Service 706eca
   Copyright (C) 2015-2018 Free Software Foundation, Inc.
Packit Service 706eca
Packit Service 706eca
   Contributed by Red Hat.
Packit Service 706eca
Packit Service 706eca
   This file is part of GDB.
Packit Service 706eca
Packit Service 706eca
   This program is free software; you can redistribute it and/or modify
Packit Service 706eca
   it under the terms of the GNU General Public License as published by
Packit Service 706eca
   the Free Software Foundation; either version 3 of the License, or
Packit Service 706eca
   (at your option) any later version.
Packit Service 706eca
Packit Service 706eca
   This program is distributed in the hope that it will be useful,
Packit Service 706eca
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 706eca
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 706eca
   GNU General Public License for more details.
Packit Service 706eca
Packit Service 706eca
   You should have received a copy of the GNU General Public License
Packit Service 706eca
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
Packit Service 706eca
Packit Service 706eca
#ifndef _SIM_MAIN_H
Packit Service 706eca
#define _SIM_MAIN_H
Packit Service 706eca
Packit Service 706eca
#include "sim-basics.h"
Packit Service 706eca
#include "sim-types.h"
Packit Service 706eca
#include "sim-base.h"
Packit Service 706eca
#include "sim-base.h"
Packit Service 706eca
#include "sim-io.h"
Packit Service 706eca
#include "cpustate.h"
Packit Service 706eca
Packit Service 706eca
/* A per-core state structure.  */
Packit Service 706eca
struct _sim_cpu
Packit Service 706eca
{
Packit Service 706eca
  GRegister    gr[33];	/* Extra register at index 32 is used to hold zero value.  */
Packit Service 706eca
  FRegister    fr[32];
Packit Service 706eca
Packit Service 706eca
  uint64_t     pc;
Packit Service 706eca
  uint32_t     CPSR;
Packit Service 706eca
  uint32_t     FPSR; /* Floating point Status register.  */
Packit Service 706eca
  uint32_t     FPCR; /* Floating point Control register.  */
Packit Service 706eca
Packit Service 706eca
  uint64_t     nextpc;
Packit Service 706eca
  uint32_t     instr;
Packit Service 706eca
Packit Service 706eca
  uint64_t     tpidr;  /* Thread pointer id.  */
Packit Service 706eca
Packit Service 706eca
  sim_cpu_base base;
Packit Service 706eca
};
Packit Service 706eca
Packit Service 706eca
typedef enum
Packit Service 706eca
{
Packit Service 706eca
  AARCH64_MIN_GR     = 0,
Packit Service 706eca
  AARCH64_MAX_GR     = 31,
Packit Service 706eca
  AARCH64_MIN_FR     = 32,
Packit Service 706eca
  AARCH64_MAX_FR     = 63,
Packit Service 706eca
  AARCH64_PC_REGNO   = 64,
Packit Service 706eca
  AARCH64_CPSR_REGNO = 65,
Packit Service 706eca
  AARCH64_FPSR_REGNO = 66,
Packit Service 706eca
  AARCH64_MAX_REGNO  = 67
Packit Service 706eca
} aarch64_regno;
Packit Service 706eca
Packit Service 706eca
/* The simulator state structure used to hold all global variables.  */
Packit Service 706eca
struct sim_state
Packit Service 706eca
{
Packit Service 706eca
  sim_cpu *       cpu[MAX_NR_PROCESSORS];
Packit Service 706eca
  sim_state_base  base;
Packit Service 706eca
};
Packit Service 706eca
Packit Service 706eca
#endif /* _SIM_MAIN_H */