Re: New gdb 31 & 64 bit patches for S/390

Andreas Jaeger
2001-06-15T11:46:00Z

Andrew Cagney <ac131313@cygnus.com> writes:

> Hello,
>
> I intend checking in the attatched (diff) patch. Before doing it
> though, is the s390 really a 31 bit architecture?

Yes, it is.

AFAIR: It has 32 bits but the most significant bit is used to signal
that the hardware is using the "new" mode which has 31 bit instead of
the "old" mode with 24 (???) bits. For Linux/S390 only the 31 bit
mode is used.

Andreas

>
> For reference I've also included the original diff and ChangeLog.
>
> Andrew
> 2001-06-15 Andrew Cagney <ac131313@redhat.com>
>
> From 2001-02-26 D.J. Barrow <djbarrow@de.ibm.com>:
> * configure.tgt: Add S/390 31 & 64 bit target configuration.
> * configure.host: Ditto for host.
>
> Index: configure.host
> ===================================================================
> RCS file: /cvs/src/src/gdb/configure.host,v
> retrieving revision 1.21
> diff -p -r1.21 configure.host
> *** configure.host 2001/06/07 15:57:57 1.21
> --- configure.host 2001/06/15 16:46:05
> *************** m68*) gdb_host_cpu=m68k ;;
> *** 18,23 ****
> --- 18,24 ----
> m88*) gdb_host_cpu=m88k ;;
> powerpc*) gdb_host_cpu=powerpc ;;
> sparc64) gdb_host_cpu=sparc ;;
>+ s390*) gdb_host_cpu=s390 ;;
> *) gdb_host_cpu=$host_cpu ;;
>
> esac
> *************** powerpc-*-netbsd*) gdb_host=nbsd ;;
> *** 138,143 ****
> --- 139,146 ----
> rs6000-*-lynxos*) gdb_host=rs6000lynx ;;
> rs6000-*-aix4*) gdb_host=aix4 ;;
> rs6000-*-*) gdb_host=rs6000 ;;
>+
>+ s390*-*-*) gdb_host=s390 ;;
>
> sparc-*-linux*) gdb_host=linux ;;
> sparc-*-lynxos*) gdb_host=sparclynx ;;
> Index: configure.tgt
> ===================================================================
> RCS file: /cvs/src/src/gdb/configure.tgt,v
> retrieving revision 1.29
> diff -p -r1.29 configure.tgt
> *** configure.tgt 2001/06/07 15:57:57 1.29
> --- configure.tgt 2001/06/15 16:46:05
> *************** mips*) gdb_target_cpu=mips ;;
> *** 23,28 ****
> --- 23,29 ----
> powerpc*) gdb_target_cpu=powerpc ;;
> sparc*) gdb_target_cpu=sparc ;;
> thumb*) gdb_target_cpu=arm ;;
>+ s390*) gdb_target_cpu=s390 ;;
> strongarm*) gdb_target_cpu=arm ;;
> xscale*) gdb_target_cpu=arm ;;
> v850*) gdb_target_cpu=v850 ;;
> *************** rs6000-*-lynxos*) gdb_target=rs6000lynx
> *** 255,260 ****
> --- 256,264 ----
> configdirs="${configdirs} gdbserver" ;;
> rs6000-*-aix4*) gdb_target=aix4 ;;
> rs6000-*-*) gdb_target=rs6000 ;;
>+
>+ s390-*-*) gdb_target=s390 ;;
>+ s390x-*-*) gdb_target=s390x ;;
>
> sh*-*-pe) gdb_target=wince ;;
> sh-*-hms) gdb_target=embed ;;
> 2001-02-26 D.J. Barrow <djbarrow@de.ibm.com,barrow_dj@yahoo.com>
> * s390-nat.c New file Added for S/390 31 & 64 bit target.
> * s390-tdep.c Likewise.
> * config/s390/nm-linux.h Likewise.
> * config/s390/s390x.mt Likewise.
> * config/s390/tm-linux.h Likewise.
> * config/s390/xm-linux.h Likewise
> * config/s390/s390.mh Likewise.
> * config/s390/s390.mt Likewise.
> * config/s390/tm-s390.h Likewise.
> * config.in Added definitions for S/390 31 & 64 bit target.
> * configure.host Likewise.
> * configure.in Likewise.
> * configure.tgt Likewise.
>
> * gdbarch.sh Added 2 definitions to the input table
> allow_null_function, this definition is set to an
> non empty string if it is okay for the gdbarch function
> to be null.
> null_function_default_retval, this definiton is the
> default return value for a undefined function
> (i.e. allow_null_function is defined ).
> Added new macros required for S/390
> INIT_FRAME_PC_FIRST
> CANNOT_STORE_REGISTER
> CANNOT_FETCH_REGISTER
> ADDR_BITS_REMOVE
> EXTRACT_STRUCT_VALUE_ADDRESS_P
>
> Improved the behaviour of the following macros.
> PUSH_RETURN_ADDRESS
> added allow null function so default behaviour would be correct.
> EXTRACT_STRUCT_VALUE_ADDRESS
> added check for EXTRACT_STRUCT_VALUE_ADDRESS_P
> CALL_DUMMY_BREAKPOINT_OFFSET
>
> * core-aout.c added check for CANNOT_FETCH_REGISTER
> in fetch_core_registers.
> * arch-utils.c added check for BFD_ENDIAN_UNKNOWN
> in set_endian_from_file.
>
>
>
>
>
>
>
>
>
> --- src.orig/config.sub Sat Feb 10 01:55:46 2001
>+++ src.new/config.sub Mon Feb 26 17:57:37 2001
> @@ -740,6 +740,12 @@
> rtpc | rtpc-*)
> basic_machine=romp-ibm
> ;;
>+ s390 | s390-* )
>+ basic_machine=s390-ibm
>+ ;;
>+ s390x | s390x-* )
>+ basic_machine=s390x-ibm
>+ ;;
> sa29200)
> basic_machine=a29k-amd
> os=-udi
> --- src.orig/gdb/configure.host Thu Feb 8 07:30:23 2001
>+++ src.new/gdb/configure.host Mon Feb 26 17:57:37 2001
> @@ -18,6 +18,7 @@
> m88*) gdb_host_cpu=m88k ;;
> powerpc*) gdb_host_cpu=powerpc ;;
> sparc64) gdb_host_cpu=sparc ;;
>+s390*) gdb_host_cpu=s390 ;;
> *) gdb_host_cpu=$host_cpu ;;
>
> esac
> @@ -158,5 +159,10 @@
> vax-*-bsd*) gdb_host=vaxbsd ;;
> vax-*-ultrix2*) gdb_host=vaxult2 ;;
> vax-*-ultrix*) gdb_host=vaxult ;;
> -
>+s390*-*-*) gdb_host=s390 ;;
> esac
>+
>+
>+
>+
>+
> --- src.orig/gdb/configure.tgt Thu Feb 8 07:30:23 2001
>+++ src.new/gdb/configure.tgt Mon Feb 26 17:57:37 2001
> @@ -26,6 +26,7 @@
> strongarm*) gdb_target_cpu=arm ;;
> xscale*) gdb_target_cpu=arm ;;
> v850*) gdb_target_cpu=v850 ;;
>+s390*) gdb_target_cpu=s390 ;;
> *) gdb_target_cpu=$target_cpu ;;
>
> esac
> @@ -305,6 +306,8 @@
>
> z8k-*-coff*) gdb_target=z8k ;;
>
>+s390-*-*) gdb_target=s390 ;;
>+s390x-*-*) gdb_target=s390x ;;
> esac
>
>

--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.inka.de