/* Target-dependent code for s390.

   Copyright (C) 2003-2021 Free Software Foundation, Inc.

   This file is part of GDB.

   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 3 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, see <http://www.gnu.org/licenses/>.  */

#ifndef S390_TDEP_H
#define S390_TDEP_H

#include "prologue-value.h"

enum s390_abi_kind
{
  ABI_NONE,
  ABI_LINUX_S390,
  ABI_LINUX_ZSERIES
};

enum s390_vector_abi_kind
{
  S390_VECTOR_ABI_NONE,
  S390_VECTOR_ABI_128
};

/* The tdep structure.  */

struct gdbarch_tdep
{
  /* Target description.  */
  const struct target_desc *tdesc;

  /* ABI version.  */
  enum s390_abi_kind abi;

  /* Vector ABI.  */
  enum s390_vector_abi_kind vector_abi;

  /* Pseudo register numbers.  */
  int gpr_full_regnum;
  int pc_regnum;
  int cc_regnum;
  int v0_full_regnum;

  bool have_upper;
  bool have_linux_v1;
  bool have_linux_v2;
  bool have_tdb;
  bool have_vx;
  bool have_gs;

  /* Hook to record OS specific systemcall.  */
  int (*s390_syscall_record) (struct regcache *regcache, LONGEST svc_number);
};

/* Decoding S/390 instructions.  */

/* Named opcode values for the S/390 instructions we recognize.  Some
   instructions have their opcode split across two fields; those are the
   op1_* and op2_* enums.  */

enum
{
  op1_lhi  = 0xa7,   op2_lhi  = 0x08,
  op1_lghi = 0xa7,   op2_lghi = 0x09,
  op1_lgfi = 0xc0,   op2_lgfi = 0x01,
  op_lr    = 0x18,
  op_lgr   = 0xb904,
  op_l     = 0x58,
  op1_ly   = 0xe3,   op2_ly   = 0x58,
  op1_lg   = 0xe3,   op2_lg   = 0x04,
  op_lm    = 0x98,
  op1_lmy  = 0xeb,   op2_lmy  = 0x98,
  op1_lmg  = 0xeb,   op2_lmg  = 0x04,
  op_st    = 0x50,
  op1_sty  = 0xe3,   op2_sty  = 0x50,
  op1_stg  = 0xe3,   op2_stg  = 0x24,
  op_std   = 0x60,
  op_stm   = 0x90,
  op1_stmy = 0xeb,   op2_stmy = 0x90,
  op1_stmg = 0xeb,   op2_stmg = 0x24,
  op1_aghi = 0xa7,   op2_aghi = 0x0b,
  op1_ahi  = 0xa7,   op2_ahi  = 0x0a,
  op1_agfi = 0xc2,   op2_agfi = 0x08,
  op1_afi  = 0xc2,   op2_afi  = 0x09,
  op1_algfi= 0xc2,   op2_algfi= 0x0a,
  op1_alfi = 0xc2,   op2_alfi = 0x0b,
  op_ar    = 0x1a,
  op_agr   = 0xb908,
  op_a     = 0x5a,
  op1_ay   = 0xe3,   op2_ay   = 0x5a,
  op1_ag   = 0xe3,   op2_ag   = 0x08,
  op1_slgfi= 0xc2,   op2_slgfi= 0x04,
  op1_slfi = 0xc2,   op2_slfi = 0x05,
  op_sr    = 0x1b,
  op_sgr   = 0xb909,
  op_s     = 0x5b,
  op1_sy   = 0xe3,   op2_sy   = 0x5b,
  op1_sg   = 0xe3,   op2_sg   = 0x09,
  op_nr    = 0x14,
  op_ngr   = 0xb980,
  op_la    = 0x41,
  op1_lay  = 0xe3,   op2_lay  = 0x71,
  op1_larl = 0xc0,   op2_larl = 0x00,
  op_basr  = 0x0d,
  op_bas   = 0x4d,
  op_bcr   = 0x07,
  op_bc    = 0x47,
  op_bctr  = 0x06,
  op_bctgr = 0xb946,
  op_bct   = 0x46,
  op1_bctg = 0xe3,   op2_bctg = 0x46,
  op_bxh   = 0x86,
  op1_bxhg = 0xeb,   op2_bxhg = 0x44,
  op_bxle  = 0x87,
  op1_bxleg= 0xeb,   op2_bxleg= 0x45,
  op1_bras = 0xa7,   op2_bras = 0x05,
  op1_brasl= 0xc0,   op2_brasl= 0x05,
  op1_brc  = 0xa7,   op2_brc  = 0x04,
  op1_brcl = 0xc0,   op2_brcl = 0x04,
  op1_brct = 0xa7,   op2_brct = 0x06,
  op1_brctg= 0xa7,   op2_brctg= 0x07,
  op_brxh  = 0x84,
  op1_brxhg= 0xec,   op2_brxhg= 0x44,
  op_brxle = 0x85,
  op1_brxlg= 0xec,   op2_brxlg= 0x45,
  op_svc   = 0x0a,
};

/* Hardware capabilities. */

#ifndef HWCAP_S390_HIGH_GPRS
#define HWCAP_S390_HIGH_GPRS 512
#endif

#ifndef HWCAP_S390_TE
#define HWCAP_S390_TE 1024
#endif

#ifndef HWCAP_S390_VX
#define HWCAP_S390_VX 2048
#endif

#ifndef HWCAP_S390_GS
#define HWCAP_S390_GS 16384
#endif

/* Register information.  */

/* Program Status Word.  */
#define S390_PSWM_REGNUM 0
#define S390_PSWA_REGNUM 1
/* General Purpose Registers.  */
#define S390_R0_REGNUM 2
#define S390_R1_REGNUM 3
#define S390_R2_REGNUM 4
#define S390_R3_REGNUM 5
#define S390_R4_REGNUM 6
#define S390_R5_REGNUM 7
#define S390_R6_REGNUM 8
#define S390_R7_REGNUM 9
#define S390_R8_REGNUM 10
#define S390_R9_REGNUM 11
#define S390_R10_REGNUM 12
#define S390_R11_REGNUM 13
#define S390_R12_REGNUM 14
#define S390_R13_REGNUM 15
#define S390_R14_REGNUM 16
#define S390_R15_REGNUM 17
/* Access Registers.  */
#define S390_A0_REGNUM 18
#define S390_A1_REGNUM 19
#define S390_A2_REGNUM 20
#define S390_A3_REGNUM 21
#define S390_A4_REGNUM 22
#define S390_A5_REGNUM 23
#define S390_A6_REGNUM 24
#define S390_A7_REGNUM 25
#define S390_A8_REGNUM 26
#define S390_A9_REGNUM 27
#define S390_A10_REGNUM 28
#define S390_A11_REGNUM 29
#define S390_A12_REGNUM 30
#define S390_A13_REGNUM 31
#define S390_A14_REGNUM 32
#define S390_A15_REGNUM 33
/* Floating Point Control Word.  */
#define S390_FPC_REGNUM 34
/* Floating Point Registers.  */
#define S390_F0_REGNUM 35
#define S390_F1_REGNUM 36
#define S390_F2_REGNUM 37
#define S390_F3_REGNUM 38
#define S390_F4_REGNUM 39
#define S390_F5_REGNUM 40
#define S390_F6_REGNUM 41
#define S390_F7_REGNUM 42
#define S390_F8_REGNUM 43
#define S390_F9_REGNUM 44
#define S390_F10_REGNUM 45
#define S390_F11_REGNUM 46
#define S390_F12_REGNUM 47
#define S390_F13_REGNUM 48
#define S390_F14_REGNUM 49
#define S390_F15_REGNUM 50
/* General Purpose Register Upper Halves.  */
#define S390_R0_UPPER_REGNUM 51
#define S390_R1_UPPER_REGNUM 52
#define S390_R2_UPPER_REGNUM 53
#define S390_R3_UPPER_REGNUM 54
#define S390_R4_UPPER_REGNUM 55
#define S390_R5_UPPER_REGNUM 56
#define S390_R6_UPPER_REGNUM 57
#define S390_R7_UPPER_REGNUM 58
#define S390_R8_UPPER_REGNUM 59
#define S390_R9_UPPER_REGNUM 60
#define S390_R10_UPPER_REGNUM 61
#define S390_R11_UPPER_REGNUM 62
#define S390_R12_UPPER_REGNUM 63
#define S390_R13_UPPER_REGNUM 64
#define S390_R14_UPPER_REGNUM 65
#define S390_R15_UPPER_REGNUM 66
/* GNU/Linux-specific optional registers.  */
#define S390_ORIG_R2_REGNUM 67
#define S390_LAST_BREAK_REGNUM 68
#define S390_SYSTEM_CALL_REGNUM 69
/* Transaction diagnostic block.  */
#define S390_TDB_DWORD0_REGNUM 70
#define S390_TDB_ABORT_CODE_REGNUM 71
#define S390_TDB_CONFLICT_TOKEN_REGNUM 72
#define S390_TDB_ATIA_REGNUM 73
#define S390_TDB_R0_REGNUM 74
#define S390_TDB_R1_REGNUM 75
#define S390_TDB_R2_REGNUM 76
#define S390_TDB_R3_REGNUM 77
#define S390_TDB_R4_REGNUM 78
#define S390_TDB_R5_REGNUM 79
#define S390_TDB_R6_REGNUM 80
#define S390_TDB_R7_REGNUM 81
#define S390_TDB_R8_REGNUM 82
#define S390_TDB_R9_REGNUM 83
#define S390_TDB_R10_REGNUM 84
#define S390_TDB_R11_REGNUM 85
#define S390_TDB_R12_REGNUM 86
#define S390_TDB_R13_REGNUM 87
#define S390_TDB_R14_REGNUM 88
#define S390_TDB_R15_REGNUM 89
/* Vector registers.  */
#define S390_V0_LOWER_REGNUM 90
#define S390_V1_LOWER_REGNUM 91
#define S390_V2_LOWER_REGNUM 92
#define S390_V3_LOWER_REGNUM 93
#define S390_V4_LOWER_REGNUM 94
#define S390_V5_LOWER_REGNUM 95
#define S390_V6_LOWER_REGNUM 96
#define S390_V7_LOWER_REGNUM 97
#define S390_V8_LOWER_REGNUM 98
#define S390_V9_LOWER_REGNUM 99
#define S390_V10_LOWER_REGNUM 100
#define S390_V11_LOWER_REGNUM 101
#define S390_V12_LOWER_REGNUM 102
#define S390_V13_LOWER_REGNUM 103
#define S390_V14_LOWER_REGNUM 104
#define S390_V15_LOWER_REGNUM 105
#define S390_V16_REGNUM 106
#define S390_V17_REGNUM 107
#define S390_V18_REGNUM 108
#define S390_V19_REGNUM 109
#define S390_V20_REGNUM 110
#define S390_V21_REGNUM 111
#define S390_V22_REGNUM 112
#define S390_V23_REGNUM 113
#define S390_V24_REGNUM 114
#define S390_V25_REGNUM 115
#define S390_V26_REGNUM 116
#define S390_V27_REGNUM 117
#define S390_V28_REGNUM 118
#define S390_V29_REGNUM 119
#define S390_V30_REGNUM 120
#define S390_V31_REGNUM 121
#define S390_GSD_REGNUM 122
#define S390_GSSM_REGNUM 123
#define S390_GSEPLA_REGNUM 124
#define S390_BC_GSD_REGNUM 125
#define S390_BC_GSSM_REGNUM 126
#define S390_BC_GSEPLA_REGNUM 127
/* Total.  */
#define S390_NUM_REGS 128

#define S390_NUM_GPRS 16
#define S390_NUM_FPRS 16

#define S390_MAX_INSTR_SIZE 6

/* Special register usage.  */
#define S390_SP_REGNUM S390_R15_REGNUM
#define S390_RETADDR_REGNUM S390_R14_REGNUM
#define S390_FRAME_REGNUM S390_R11_REGNUM

/* Frame unwinding.  */

extern struct value *s390_trad_frame_prev_register
    (struct frame_info *this_frame, struct trad_frame_saved_reg saved_regs[],
     int regnum);

extern struct target_desc *tdesc_s390_linux32;
extern struct target_desc *tdesc_s390x_linux64;

#endif /* S390_TDEP_H */
