This adds more explanation as to why the test case must be compiled with
the -msoft-float option.  It also documents the my_tbegin and my_tend
functions.
gdb/testsuite/ChangeLog:
	* gdb.arch/s390-tdbregs.c (my_tbegin): Add comment documenting the
	function.
	(my_tend): Likewise.
	* gdb.arch/s390-tdbregs.exp: Enhance comment; explain the
	rationale of avoiding FP- and vector instructions.
+2018-01-19  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+       * gdb.arch/s390-tdbregs.c (my_tbegin): Add comment documenting the
+       function.
+       (my_tend): Likewise.
+       * gdb.arch/s390-tdbregs.exp: Enhance comment; explain the
+       rationale of avoiding FP- and vector instructions.
+
 2018-01-19  Ruslan Kabatsayev  <b7.10110111@gmail.com>
 
        * gdb.arch/powerpc-d128-regs.exp: Replace expected "\[\t\]*" from
 
 
 #include <stdio.h>
 
+/* Start a transaction.  To avoid the need for FPR save/restore, assume
+   that no FP- or vector registers are modified within the transaction.
+   Thus invoke TBEGIN with the "allow floating-point operation" flag set
+   to zero, which forces a transaction abort when hitting an FP- or vector
+   instruction.  Also assume that TBEGIN will eventually succeed, so just
+   retry indefinitely.  */
+
 static void
 my_tbegin ()
 {
       : "cc", "memory" );
 }
 
+/* End a transaction.  */
+
 static void
 my_tend ()
 {
 
 
 standard_testfile .c
 
-# Use soft float, so the compiler doesn't use floating-point or vector
-# instructions.
+# The test case assumes that no FP- or vector instructions occur within
+# the transaction.  Thus tell the compiler to use soft float, so it
+# doesn't emit them.  Some GCC versions may otherwise do so, and an
+# endless loop would result.
 if { [prepare_for_testing "failed to prepare" $testfile $srcfile \
          [list "debug" "additional_flags=-msoft-float"]] } {
     return -1