1*b725ae77Skettenis /* Target-dependent code for GDB, the GNU debugger. 2*b725ae77Skettenis Copyright 2003 Free Software Foundation, Inc. 3*b725ae77Skettenis 4*b725ae77Skettenis This file is part of GDB. 5*b725ae77Skettenis 6*b725ae77Skettenis This program is free software; you can redistribute it and/or modify 7*b725ae77Skettenis it under the terms of the GNU General Public License as published by 8*b725ae77Skettenis the Free Software Foundation; either version 2 of the License, or 9*b725ae77Skettenis (at your option) any later version. 10*b725ae77Skettenis 11*b725ae77Skettenis This program is distributed in the hope that it will be useful, 12*b725ae77Skettenis but WITHOUT ANY WARRANTY; without even the implied warranty of 13*b725ae77Skettenis MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14*b725ae77Skettenis GNU General Public License for more details. 15*b725ae77Skettenis 16*b725ae77Skettenis You should have received a copy of the GNU General Public License 17*b725ae77Skettenis along with this program; if not, write to the Free Software 18*b725ae77Skettenis Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 19*b725ae77Skettenis 02111-1307, USA. */ 20*b725ae77Skettenis 21*b725ae77Skettenis #ifndef S390_TDEP_H 22*b725ae77Skettenis #define S390_TDEP_H 23*b725ae77Skettenis 24*b725ae77Skettenis /* Register information. */ 25*b725ae77Skettenis 26*b725ae77Skettenis /* Program Status Word. */ 27*b725ae77Skettenis #define S390_PSWM_REGNUM 0 28*b725ae77Skettenis #define S390_PSWA_REGNUM 1 29*b725ae77Skettenis /* General Purpose Registers. */ 30*b725ae77Skettenis #define S390_R0_REGNUM 2 31*b725ae77Skettenis #define S390_R1_REGNUM 3 32*b725ae77Skettenis #define S390_R2_REGNUM 4 33*b725ae77Skettenis #define S390_R3_REGNUM 5 34*b725ae77Skettenis #define S390_R4_REGNUM 6 35*b725ae77Skettenis #define S390_R5_REGNUM 7 36*b725ae77Skettenis #define S390_R6_REGNUM 8 37*b725ae77Skettenis #define S390_R7_REGNUM 9 38*b725ae77Skettenis #define S390_R8_REGNUM 10 39*b725ae77Skettenis #define S390_R9_REGNUM 11 40*b725ae77Skettenis #define S390_R10_REGNUM 12 41*b725ae77Skettenis #define S390_R11_REGNUM 13 42*b725ae77Skettenis #define S390_R12_REGNUM 14 43*b725ae77Skettenis #define S390_R13_REGNUM 15 44*b725ae77Skettenis #define S390_R14_REGNUM 16 45*b725ae77Skettenis #define S390_R15_REGNUM 17 46*b725ae77Skettenis /* Access Registers. */ 47*b725ae77Skettenis #define S390_A0_REGNUM 18 48*b725ae77Skettenis #define S390_A1_REGNUM 19 49*b725ae77Skettenis #define S390_A2_REGNUM 20 50*b725ae77Skettenis #define S390_A3_REGNUM 21 51*b725ae77Skettenis #define S390_A4_REGNUM 22 52*b725ae77Skettenis #define S390_A5_REGNUM 23 53*b725ae77Skettenis #define S390_A6_REGNUM 24 54*b725ae77Skettenis #define S390_A7_REGNUM 25 55*b725ae77Skettenis #define S390_A8_REGNUM 26 56*b725ae77Skettenis #define S390_A9_REGNUM 27 57*b725ae77Skettenis #define S390_A10_REGNUM 28 58*b725ae77Skettenis #define S390_A11_REGNUM 29 59*b725ae77Skettenis #define S390_A12_REGNUM 30 60*b725ae77Skettenis #define S390_A13_REGNUM 31 61*b725ae77Skettenis #define S390_A14_REGNUM 32 62*b725ae77Skettenis #define S390_A15_REGNUM 33 63*b725ae77Skettenis /* Floating Point Control Word. */ 64*b725ae77Skettenis #define S390_FPC_REGNUM 34 65*b725ae77Skettenis /* Floating Point Registers. */ 66*b725ae77Skettenis #define S390_F0_REGNUM 35 67*b725ae77Skettenis #define S390_F1_REGNUM 36 68*b725ae77Skettenis #define S390_F2_REGNUM 37 69*b725ae77Skettenis #define S390_F3_REGNUM 38 70*b725ae77Skettenis #define S390_F4_REGNUM 39 71*b725ae77Skettenis #define S390_F5_REGNUM 40 72*b725ae77Skettenis #define S390_F6_REGNUM 41 73*b725ae77Skettenis #define S390_F7_REGNUM 42 74*b725ae77Skettenis #define S390_F8_REGNUM 43 75*b725ae77Skettenis #define S390_F9_REGNUM 44 76*b725ae77Skettenis #define S390_F10_REGNUM 45 77*b725ae77Skettenis #define S390_F11_REGNUM 46 78*b725ae77Skettenis #define S390_F12_REGNUM 47 79*b725ae77Skettenis #define S390_F13_REGNUM 48 80*b725ae77Skettenis #define S390_F14_REGNUM 49 81*b725ae77Skettenis #define S390_F15_REGNUM 50 82*b725ae77Skettenis /* Total. */ 83*b725ae77Skettenis #define S390_NUM_REGS 51 84*b725ae77Skettenis 85*b725ae77Skettenis /* Pseudo registers -- PC and condition code. */ 86*b725ae77Skettenis #define S390_PC_REGNUM S390_NUM_REGS 87*b725ae77Skettenis #define S390_CC_REGNUM (S390_NUM_REGS+1) 88*b725ae77Skettenis #define S390_NUM_PSEUDO_REGS 2 89*b725ae77Skettenis #define S390_NUM_TOTAL_REGS (S390_NUM_REGS+2) 90*b725ae77Skettenis 91*b725ae77Skettenis /* Special register usage. */ 92*b725ae77Skettenis #define S390_SP_REGNUM S390_R15_REGNUM 93*b725ae77Skettenis #define S390_RETADDR_REGNUM S390_R14_REGNUM 94*b725ae77Skettenis #define S390_FRAME_REGNUM S390_R11_REGNUM 95*b725ae77Skettenis 96*b725ae77Skettenis /* Core file register sets, defined in s390-tdep.c. */ 97*b725ae77Skettenis #define s390_sizeof_gregset 0x90 98*b725ae77Skettenis extern int s390_regmap_gregset[S390_NUM_REGS]; 99*b725ae77Skettenis #define s390x_sizeof_gregset 0xd8 100*b725ae77Skettenis extern int s390x_regmap_gregset[S390_NUM_REGS]; 101*b725ae77Skettenis #define s390_sizeof_fpregset 0x88 102*b725ae77Skettenis extern int s390_regmap_fpregset[S390_NUM_REGS]; 103*b725ae77Skettenis 104*b725ae77Skettenis #endif 105*b725ae77Skettenis 106