ChangeLog.regs | 10 ++++++++++ gdb/gdbserver/Makefile.in | 3 +++ gdb/gdbserver/configure | 29 +++++++++++++++++++++++++++++ gdb/gdbserver/configure.ac | 12 ++++++++++++ gdb/gdbserver/configure.srv | 12 ++++++++++-- gdb/regformats/reg-cf.dat | 33 +++++++++++++++++++++++++++++++++ 6 files changed, 97 insertions(+), 2 deletions(-) diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in index 155094b..cfd9d0f 100644 --- a/gdb/gdbserver/Makefile.in +++ b/gdb/gdbserver/Makefile.in @@ -359,6 +359,9 @@ reg-m32r.c : $(srcdir)/../regformats/reg-m32r.dat $(regdat_sh) reg-m68k.o : reg-m68k.c $(regdef_h) reg-m68k.c : $(srcdir)/../regformats/reg-m68k.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-m68k.dat reg-m68k.c +reg-cf.o : reg-cf.c $(regdef_h) +reg-cf.c : $(srcdir)/../regformats/reg-cf.dat $(regdat_sh) + $(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-cf.dat reg-cf.c mips-linux.o : mips-linux.c $(regdef_h) mips-linux.c : $(srcdir)/../regformats/mips-linux.dat $(regdat_sh) $(SHELL) $(regdat_sh) $(srcdir)/../regformats/mips-linux.dat mips-linux.c diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure index 955f716..93aeb78 100755 --- a/gdb/gdbserver/configure +++ b/gdb/gdbserver/configure @@ -4005,6 +4005,35 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_i386_is_x86_64" >&5 $as_echo "$gdb_cv_i386_is_x86_64" >&6; } ;; + m68k-*-*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if building for Coldfire" >&5 +$as_echo_n "checking if building for Coldfire... " >&6; } +if test "${gdb_cv_m68k_is_coldfire+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $CFLAGS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __mcoldfire__ +got it +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "got it" >/dev/null 2>&1; then : + gdb_cv_m68k_is_coldfire=yes +else + gdb_cv_m68k_is_coldfire=no +fi +rm -f conftest* + + CPPFLAGS="$save_CPPFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_m68k_is_coldfire" >&5 +$as_echo "$gdb_cv_m68k_is_coldfire" >&6; } + ;; esac . ${srcdir}/configure.srv diff --git a/gdb/gdbserver/configure.ac b/gdb/gdbserver/configure.ac index 57eaf21..215387d 100644 --- a/gdb/gdbserver/configure.ac +++ b/gdb/gdbserver/configure.ac @@ -90,6 +90,18 @@ got it [gdb_cv_i386_is_x86_64=no]) CPPFLAGS="$save_CPPFLAGS"]) ;; + m68k-*-*) + AC_CACHE_CHECK([if building for Coldfire], [gdb_cv_m68k_is_coldfire], + [save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $CFLAGS" + AC_EGREP_CPP([got it], [ +#ifdef __mcoldfire__ +got it +#endif + ], [gdb_cv_m68k_is_coldfire=yes], + [gdb_cv_m68k_is_coldfire=no]) + CPPFLAGS="$save_CPPFLAGS"]) + ;; esac . ${srcdir}/configure.srv diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv index ea746be..1814b0e 100644 --- a/gdb/gdbserver/configure.srv +++ b/gdb/gdbserver/configure.srv @@ -98,13 +98,21 @@ case "${target}" in srv_linux_usrregs=yes srv_linux_thread_db=yes ;; - m68*-*-linux*) srv_regobj=reg-m68k.o + m68*-*-linux*) if test "$gdb_cv_m68k_is_coldfire" = yes; then + srv_regobj=reg-cf.o + else + src_regobj=reg-m68k.o + fi srv_tgtobj="linux-low.o linux-m68k-low.o" srv_linux_usrregs=yes srv_linux_regsets=yes srv_linux_thread_db=yes ;; - m68*-*-uclinux*) srv_regobj=reg-m68k.o + m68*-*-uclinux*) if test "$gdb_cv_m68k_is_coldfire" = yes; then + srv_regobj=reg-cf.o + else + src_regobj=reg-m68k.o + fi srv_tgtobj="linux-low.o linux-m68k-low.o" srv_linux_usrregs=yes srv_linux_regsets=yes diff --git a/gdb/regformats/reg-cf.dat b/gdb/regformats/reg-cf.dat new file mode 100644 index 0000000..068aa75 --- /dev/null +++ b/gdb/regformats/reg-cf.dat @@ -0,0 +1,33 @@ +name:m68k +expedite:sp,fp,pc +32:d0 +32:d1 +32:d2 +32:d3 +32:d4 +32:d5 +32:d6 +32:d7 +32:a0 +32:a1 +32:a2 +32:a3 +32:a4 +32:a5 +32:fp +32:sp +32:ps +32:pc + +64:fp0 +64:fp1 +64:fp2 +64:fp3 +64:fp4 +64:fp5 +64:fp6 +64:fp7 + +32:fpcontrol +32:fpstatus +32:fpiaddr