Make tests expect [ \t]+ pattern instead of \t for "info reg" command

Message ID 1515363510-18374-1-git-send-email-b7.10110111@gmail.com
State New, archived
Headers

Commit Message

Ruslan Kabatsayev Jan. 7, 2018, 10:18 p.m. UTC
  This will allow to format output of "info reg" command as we wish,
without breaking the tests. In particular, it'll let us correctly align
raw and natural values of the registers using spaces instead of current
badly-working approach with tabs.

This change is forwards- and backwards-compatible, so that the amended
tests will work in the same way before and after reformatting patches
(unless the tests check formatting, of course, but I've not come across
any such tests).

Some tests already used this expected pattern, so they didn't
even have to be modified. Others are changed by this patch.

I've checked this on a i386 system, with no noticeable differences in
test results, so at least on i386 nothing seems to be broken by this.

gdb/testsuite/ChangeLog:

	* gdb.arch/powerpc-d128-regs.exp: Replace expected "\[\t\]*" from
	"info reg" with "\[ \t\]*".
	* gdb.arch/altivec-regs.exp: Replace expected "\t" from "info reg" with
	"\[ \t\]+".
	* gdb.arch/s390-multiarch.exp: Ditto.
	* gdb.base/pc-fp.exp: Ditto.
	* gdb.reverse/i386-precsave.exp: Ditto.
	* gdb.reverse/i386-reverse.exp: Ditto.
	* gdb.reverse/i387-env-reverse.exp: Ditto.
	* gdb.reverse/i387-stack-reverse.exp: Ditto.
---
 gdb/testsuite/gdb.arch/altivec-regs.exp          |    4 +-
 gdb/testsuite/gdb.arch/powerpc-d128-regs.exp     |    6 +-
 gdb/testsuite/gdb.arch/s390-multiarch.exp        |    4 +-
 gdb/testsuite/gdb.base/pc-fp.exp                 |    2 +-
 gdb/testsuite/gdb.reverse/i386-precsave.exp      |   96 ++++++++---------
 gdb/testsuite/gdb.reverse/i386-reverse.exp       |   96 ++++++++---------
 gdb/testsuite/gdb.reverse/i387-env-reverse.exp   |   62 +++++------
 gdb/testsuite/gdb.reverse/i387-stack-reverse.exp |  126 +++++++++++-----------
 8 files changed, 198 insertions(+), 198 deletions(-)
  

Comments

Joel Brobecker Jan. 8, 2018, 4:25 a.m. UTC | #1
On Mon, Jan 08, 2018 at 01:18:30AM +0300, Ruslan Kabatsayev wrote:
> This will allow to format output of "info reg" command as we wish,
> without breaking the tests. In particular, it'll let us correctly align
> raw and natural values of the registers using spaces instead of current
> badly-working approach with tabs.
> 
> This change is forwards- and backwards-compatible, so that the amended
> tests will work in the same way before and after reformatting patches
> (unless the tests check formatting, of course, but I've not come across
> any such tests).
> 
> Some tests already used this expected pattern, so they didn't
> even have to be modified. Others are changed by this patch.
> 
> I've checked this on a i386 system, with no noticeable differences in
> test results, so at least on i386 nothing seems to be broken by this.
> 
> gdb/testsuite/ChangeLog:
> 
> 	* gdb.arch/powerpc-d128-regs.exp: Replace expected "\[\t\]*" from
> 	"info reg" with "\[ \t\]*".
> 	* gdb.arch/altivec-regs.exp: Replace expected "\t" from "info reg" with
> 	"\[ \t\]+".
> 	* gdb.arch/s390-multiarch.exp: Ditto.
> 	* gdb.base/pc-fp.exp: Ditto.
> 	* gdb.reverse/i386-precsave.exp: Ditto.
> 	* gdb.reverse/i386-reverse.exp: Ditto.
> 	* gdb.reverse/i387-env-reverse.exp: Ditto.
> 	* gdb.reverse/i387-stack-reverse.exp: Ditto.

No objection on my end. I might have used \\s instead of \[ \t\],
but perhaps there was a reason not to; and even if not, no point
in redoing it all now.

Anyone against this change?

One comment:

> diff --git a/gdb/testsuite/gdb.base/pc-fp.exp b/gdb/testsuite/gdb.base/pc-fp.exp
> index 5230b2b..8a81db4 100644
> --- a/gdb/testsuite/gdb.base/pc-fp.exp
> +++ b/gdb/testsuite/gdb.base/pc-fp.exp
> @@ -58,4 +58,4 @@ gdb_test "info register \$fp" "${valueof_fp}.*"
>  # Regression test for
>  # http://sourceware.org/bugzilla/show_bug.cgi?id=12659
>  gdb_test "info register pc fp" \
> -    "pc +${valueof_pc}\t${valueof_pc} <.*>\[\r\n\]+fp +${valueof_fp}\t${valueof_fp}\[\r\n\]+"
> +    "pc +${valueof_pc}\[ \t\]+${valueof_pc} <.*>\[\r\n\]+fp +${valueof_fp}\[ \t\]+${valueof_fp}\[\r\n\]+"

This change looks like it's doing more than just allowing spaces
on top of tabs...

For the rest of this (large and mechanical patch), I tried my best
to pay attention to all the details.
  
Ruslan Kabatsayev Jan. 8, 2018, 6:42 a.m. UTC | #2
On 8 January 2018 at 07:25, Joel Brobecker <brobecker@adacore.com> wrote:
> On Mon, Jan 08, 2018 at 01:18:30AM +0300, Ruslan Kabatsayev wrote:
>> This will allow to format output of "info reg" command as we wish,
>> without breaking the tests. In particular, it'll let us correctly align
>> raw and natural values of the registers using spaces instead of current
>> badly-working approach with tabs.
>>
>> This change is forwards- and backwards-compatible, so that the amended
>> tests will work in the same way before and after reformatting patches
>> (unless the tests check formatting, of course, but I've not come across
>> any such tests).
>>
>> Some tests already used this expected pattern, so they didn't
>> even have to be modified. Others are changed by this patch.
>>
>> I've checked this on a i386 system, with no noticeable differences in
>> test results, so at least on i386 nothing seems to be broken by this.
>>
>> gdb/testsuite/ChangeLog:
>>
>>       * gdb.arch/powerpc-d128-regs.exp: Replace expected "\[\t\]*" from
>>       "info reg" with "\[ \t\]*".
>>       * gdb.arch/altivec-regs.exp: Replace expected "\t" from "info reg" with
>>       "\[ \t\]+".
>>       * gdb.arch/s390-multiarch.exp: Ditto.
>>       * gdb.base/pc-fp.exp: Ditto.
>>       * gdb.reverse/i386-precsave.exp: Ditto.
>>       * gdb.reverse/i386-reverse.exp: Ditto.
>>       * gdb.reverse/i387-env-reverse.exp: Ditto.
>>       * gdb.reverse/i387-stack-reverse.exp: Ditto.
>
> No objection on my end. I might have used \\s instead of \[ \t\],
> but perhaps there was a reason not to; and even if not, no point
> in redoing it all now.

\\s would also allow newlines, form feeds etc., which doesn't look
like a good idea here.

>
> Anyone against this change?
>
> One comment:
>
>> diff --git a/gdb/testsuite/gdb.base/pc-fp.exp b/gdb/testsuite/gdb.base/pc-fp.exp
>> index 5230b2b..8a81db4 100644
>> --- a/gdb/testsuite/gdb.base/pc-fp.exp
>> +++ b/gdb/testsuite/gdb.base/pc-fp.exp
>> @@ -58,4 +58,4 @@ gdb_test "info register \$fp" "${valueof_fp}.*"
>>  # Regression test for
>>  # http://sourceware.org/bugzilla/show_bug.cgi?id=12659
>>  gdb_test "info register pc fp" \
>> -    "pc +${valueof_pc}\t${valueof_pc} <.*>\[\r\n\]+fp +${valueof_fp}\t${valueof_fp}\[\r\n\]+"
>> +    "pc +${valueof_pc}\[ \t\]+${valueof_pc} <.*>\[\r\n\]+fp +${valueof_fp}\[ \t\]+${valueof_fp}\[\r\n\]+"
>
> This change looks like it's doing more than just allowing spaces
> on top of tabs...

Well it allows _multiple_ spaces/tabs instead of exactly one tab —
exactly what we need to be compatible with space-alignment. In other
respects I don't see what else it does.

>
> For the rest of this (large and mechanical patch), I tried my best
> to pay attention to all the details.
>
> --
> Joel
  
Joel Brobecker Jan. 8, 2018, 7:33 a.m. UTC | #3
> >> gdb/testsuite/ChangeLog:
> >>
> >>       * gdb.arch/powerpc-d128-regs.exp: Replace expected "\[\t\]*" from
> >>       "info reg" with "\[ \t\]*".
> >>       * gdb.arch/altivec-regs.exp: Replace expected "\t" from "info reg" with
> >>       "\[ \t\]+".
> >>       * gdb.arch/s390-multiarch.exp: Ditto.
> >>       * gdb.base/pc-fp.exp: Ditto.
> >>       * gdb.reverse/i386-precsave.exp: Ditto.
> >>       * gdb.reverse/i386-reverse.exp: Ditto.
> >>       * gdb.reverse/i387-env-reverse.exp: Ditto.
> >>       * gdb.reverse/i387-stack-reverse.exp: Ditto.
> >
> > No objection on my end. I might have used \\s instead of \[ \t\],
> > but perhaps there was a reason not to; and even if not, no point
> > in redoing it all now.
> 
> \\s would also allow newlines, form feeds etc., which doesn't look
> like a good idea here.

Hmmm, true. Forgot about newlines in particular.

> >> -    "pc +${valueof_pc}\t${valueof_pc} <.*>\[\r\n\]+fp +${valueof_fp}\t${valueof_fp}\[\r\n\]+"
> >> +    "pc +${valueof_pc}\[ \t\]+${valueof_pc} <.*>\[\r\n\]+fp +${valueof_fp}\[ \t\]+${valueof_fp}\[\r\n\]+"
> >
> > This change looks like it's doing more than just allowing spaces
> > on top of tabs...
> 
> Well it allows _multiple_ spaces/tabs instead of exactly one tab —
> exactly what we need to be compatible with space-alignment. In other
> respects I don't see what else it does.

My mistake. I was seeing 2 new lines, because one of the '+' lined up
exactly at the start of the next line when wraparound gets involved.
Upon re-examination, the change looks fine indeed.
  
Yao Qi Jan. 18, 2018, 3:18 p.m. UTC | #4
Ruslan Kabatsayev <b7.10110111@gmail.com> writes:

> This will allow to format output of "info reg" command as we wish,

What output format do you wish?

> without breaking the tests. In particular, it'll let us correctly align
> raw and natural values of the registers using spaces instead of current
> badly-working approach with tabs.

Why alignment with tabs is "badly-working"?  Do you have some other
patches to change the output of "info reg"?
  
Ruslan Kabatsayev Jan. 18, 2018, 3:42 p.m. UTC | #5
On 18 January 2018 at 18:18, Yao Qi <qiyaoltc@gmail.com> wrote:
> Ruslan Kabatsayev <b7.10110111@gmail.com> writes:
>
>> This will allow to format output of "info reg" command as we wish,
>
> What output format do you wish?
>
>> without breaking the tests. In particular, it'll let us correctly align
>> raw and natural values of the registers using spaces instead of current
>> badly-working approach with tabs.
>
> Why alignment with tabs is "badly-working"?  Do you have some other
> patches to change the output of "info reg"?

For your questions of "what format" and "why current is bad" please
see my previously sent (but not applied) patch:
https://sourceware.org/ml/gdb-patches/2017-07/msg00046.html
(and its follow-up version 2:
https://sourceware.org/ml/gdb-patches/2017-07/msg00406.html ).
In short, "info reg" prints three columns, and the third one is
aligned by a single tab. This works well only in two cases: all
registers have short hex values (i.e. less than 8 chars wide), or all
have long values. Then the tab shifts the third column of values to
the same terminal character column.
Initially (in the patch linked above) I wanted to preserve the tab and
only pad it with subsequent spaces to a fixed column, thus avoiding
breaking the tests, but after the discussion I understood that it's
too hacky to be a solution, and it's better to fix the tests and then
use space-only alignment, similarly to what is done with the second
column.

As for "some other patches", I don't have any particular change in
mind currently.

>
> --
> Yao (齐尧)
  
Yao Qi Jan. 18, 2018, 9:12 p.m. UTC | #6
On Thu, Jan 18, 2018 at 3:42 PM, Ruslan Kabatsayev
<b7.10110111@gmail.com> wrote:
>
> For your questions of "what format" and "why current is bad" please
> see my previously sent (but not applied) patch:
> https://sourceware.org/ml/gdb-patches/2017-07/msg00046.html
> (and its follow-up version 2:
> https://sourceware.org/ml/gdb-patches/2017-07/msg00406.html ).
> In short, "info reg" prints three columns, and the third one is
> aligned by a single tab. This works well only in two cases: all
> registers have short hex values (i.e. less than 8 chars wide), or all
> have long values. Then the tab shifts the third column of values to
> the same terminal character column.
> Initially (in the patch linked above) I wanted to preserve the tab and
> only pad it with subsequent spaces to a fixed column, thus avoiding
> breaking the tests, but after the discussion I understood that it's
> too hacky to be a solution, and it's better to fix the tests and then
> use space-only alignment, similarly to what is done with the second
> column.
>
> As for "some other patches", I don't have any particular change in
> mind currently.
>

Thanks for bringing more context, which is helpful to understand
the patch.  It is good to me, you can push.
  

Patch

diff --git a/gdb/testsuite/gdb.arch/altivec-regs.exp b/gdb/testsuite/gdb.arch/altivec-regs.exp
index 5f64af5..fcff886 100644
--- a/gdb/testsuite/gdb.arch/altivec-regs.exp
+++ b/gdb/testsuite/gdb.arch/altivec-regs.exp
@@ -93,8 +93,8 @@  for {set i 0} {$i < 32} {incr i 1} {
         gdb_test "info reg vr$i" "vr$i.*$vector_register" "info reg vr$i"
 }
 
-gdb_test "info reg vrsave" "vrsave.*0x1\t1" "info reg vrsave"
-gdb_test "info reg vscr" "vscr.*0x1\t1" "info reg vscr"
+gdb_test "info reg vrsave" "vrsave.*0x1\[ \t\]+1" "info reg vrsave"
+gdb_test "info reg vscr" "vscr.*0x1\[ \t\]+1" "info reg vscr"
 
 # Now redo the same tests, but using the print command.
 # Note: in LE case, the char array is printed WITHOUT the last character.
diff --git a/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp b/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp
index 48ba43c..9ab761b 100644
--- a/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp
@@ -56,15 +56,15 @@  gdb_test "set \$dl$i=d128" "" "set dl$i register"
 gdb_test "print \$dl$i" "\\\$$decimal = 1\.2345678910" "print dl$i register as DFP"
 
 gdb_test "info reg dl$i" \
-	 "dl$i\[ \]*1\.2345678910\[\t\]*\\(raw 0x2205800000000000000000049c5de09c\\)" \
+	 "dl$i\[ \]*1\.2345678910\[ \t\]*\\(raw 0x2205800000000000000000049c5de09c\\)" \
 	 "print dl$i register with the info reg command"
 
 gdb_test "info reg f[expr 2*$i]" \
-	 "f[expr 2*$i]\[ \]*8\.608957309287334e\-145\[\t\]*\\(raw 0x2205800000000000\\)" \
+	 "f[expr 2*$i]\[ \]*8\.608957309287334e\-145\[ \t\]*\\(raw 0x2205800000000000\\)" \
 	 "testing lower half of dl$i register"
 
 gdb_test "info reg f[expr 2*$i+1]" \
-	 "f[expr 2*$i+1]\[ \]*9\.7841140127686122e\-314\[\t\]*\\(raw 0x000000049c5de09c\\)" \
+	 "f[expr 2*$i+1]\[ \]*9\.7841140127686122e\-314\[ \t\]*\\(raw 0x000000049c5de09c\\)" \
 	 "testing upper half of dl$i register"
 
 }
diff --git a/gdb/testsuite/gdb.arch/s390-multiarch.exp b/gdb/testsuite/gdb.arch/s390-multiarch.exp
index 576fe55..50c7ab3 100644
--- a/gdb/testsuite/gdb.arch/s390-multiarch.exp
+++ b/gdb/testsuite/gdb.arch/s390-multiarch.exp
@@ -65,7 +65,7 @@  proc test_linux_v2 {} {
 
     set test "Linux v2"
     gdb_test_multiple "info reg system_call" "$test" {
-	-re "system_call\[ \t\]+0x\[0-9a-z\]+\t.*\r\n$gdb_prompt $" {
+	-re "system_call\[ \t\]+0x\[0-9a-z\]+\[ \t\]+.*\r\n$gdb_prompt $" {
 	    pass "$test"
 	    return 1
 	}
@@ -79,7 +79,7 @@  proc test_linux_v2 {} {
 
 proc test_register_valid {reg variant} {
     gdb_test "info reg $reg" \
-	"$reg\[ \t\]+0x\[0-9a-z\]+\t.*" \
+	"$reg\[ \t\]+0x\[0-9a-z\]+\[ \t\]+.*" \
 	"'$reg' exists ($variant)"
 }
 
diff --git a/gdb/testsuite/gdb.base/pc-fp.exp b/gdb/testsuite/gdb.base/pc-fp.exp
index 5230b2b..8a81db4 100644
--- a/gdb/testsuite/gdb.base/pc-fp.exp
+++ b/gdb/testsuite/gdb.base/pc-fp.exp
@@ -58,4 +58,4 @@  gdb_test "info register \$fp" "${valueof_fp}.*"
 # Regression test for
 # http://sourceware.org/bugzilla/show_bug.cgi?id=12659
 gdb_test "info register pc fp" \
-    "pc +${valueof_pc}\t${valueof_pc} <.*>\[\r\n\]+fp +${valueof_fp}\t${valueof_fp}\[\r\n\]+"
+    "pc +${valueof_pc}\[ \t\]+${valueof_pc} <.*>\[\r\n\]+fp +${valueof_fp}\[ \t\]+${valueof_fp}\[\r\n\]+"
diff --git a/gdb/testsuite/gdb.reverse/i386-precsave.exp b/gdb/testsuite/gdb.reverse/i386-precsave.exp
index d52fd2f..fa14116 100644
--- a/gdb/testsuite/gdb.reverse/i386-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/i386-precsave.exp
@@ -74,7 +74,7 @@  gdb_test "record restore $precsave" \
 gdb_test "step" "inc .eax.*" "step to inc eax 1st time"
 send_gdb "info reg eax\n"
 gdb_expect {
-    -re "eax *($hex)\t.*$gdb_prompt " {
+    -re "eax *($hex)\[ \t\]+.*$gdb_prompt " {
 	set preinc_eax $expect_out(1,string)
     }
 }
@@ -82,7 +82,7 @@  gdb_expect {
 gdb_test "step" "inc .ecx.*" "step to inc ecx 1st time"
 send_gdb "info reg ecx\n"
 gdb_expect {
-    -re "ecx *($hex)\t.*$gdb_prompt " {
+    -re "ecx *($hex)\[ \t\]+.*$gdb_prompt " {
 	set preinc_ecx $expect_out(1,string)
     }
 }
@@ -90,7 +90,7 @@  gdb_expect {
 gdb_test "step" "inc .edx.*" "step to inc edx 1st time"
 send_gdb "info reg edx\n"
 gdb_expect {
-    -re "edx *($hex)\t.*$gdb_prompt " {
+    -re "edx *($hex)\[ \t\]+.*$gdb_prompt " {
 	set preinc_edx $expect_out(1,string)
     }
 }
@@ -98,7 +98,7 @@  gdb_expect {
 gdb_test "step" "inc .ebx.*" "step to inc ebx 1st time"
 send_gdb "info reg ebx\n"
 gdb_expect {
-    -re "ebx *($hex)\t.*$gdb_prompt " {
+    -re "ebx *($hex)\[ \t\]+.*$gdb_prompt " {
 	set preinc_ebx $expect_out(1,string)
     }
 }
@@ -106,7 +106,7 @@  gdb_expect {
 gdb_test "step" "inc .esp.*" "step to inc esp 1st time"
 send_gdb "info reg esp\n"
 gdb_expect {
-    -re "esp *($hex)\t.*$gdb_prompt " {
+    -re "esp *($hex)\[ \t\]+.*$gdb_prompt " {
 	set preinc_esp $expect_out(1,string)
     }
 }
@@ -114,7 +114,7 @@  gdb_expect {
 gdb_test "step" "inc .ebp.*" "step to inc ebp 1st time"
 send_gdb "info reg ebp\n"
 gdb_expect {
-    -re "ebp *($hex)\t.*$gdb_prompt " {
+    -re "ebp *($hex)\[ \t\]+.*$gdb_prompt " {
 	set preinc_ebp $expect_out(1,string)
     }
 }
@@ -122,7 +122,7 @@  gdb_expect {
 gdb_test "step" "inc .esi.*" "step to inc esi 1st time"
 send_gdb "info reg esi\n"
 gdb_expect {
-    -re "esi *($hex)\t.*$gdb_prompt " {
+    -re "esi *($hex)\[ \t\]+.*$gdb_prompt " {
 	set preinc_esi $expect_out(1,string)
     }
 }
@@ -130,7 +130,7 @@  gdb_expect {
 gdb_test "step" "inc .edi.*" "step to inc edi 1st time"
 send_gdb "info reg edi\n"
 gdb_expect {
-    -re "edi *($hex)\t.*$gdb_prompt " {
+    -re "edi *($hex)\[ \t\]+.*$gdb_prompt " {
 	set preinc_edi $expect_out(1,string)
     }
 }
@@ -138,7 +138,7 @@  gdb_expect {
 gdb_test "step" "dec .eax.*" "step to dec eax 1st time"
 send_gdb "info reg eax\n"
 gdb_expect {
-    -re "eax *($hex)\t.*$gdb_prompt " {
+    -re "eax *($hex)\[ \t\]+.*$gdb_prompt " {
 	set predec_eax $expect_out(1,string)
     }
 }
@@ -146,7 +146,7 @@  gdb_expect {
 gdb_test "step" "dec .ecx.*" "step to dec ecx 1st time"
 send_gdb "info reg ecx\n"
 gdb_expect {
-    -re "ecx *($hex)\t.*$gdb_prompt " {
+    -re "ecx *($hex)\[ \t\]+.*$gdb_prompt " {
 	set predec_ecx $expect_out(1,string)
     }
 }
@@ -154,7 +154,7 @@  gdb_expect {
 gdb_test "step" "dec .edx.*" "step to dec edx 1st time"
 send_gdb "info reg edx\n"
 gdb_expect {
-    -re "edx *($hex)\t.*$gdb_prompt " {
+    -re "edx *($hex)\[ \t\]+.*$gdb_prompt " {
 	set predec_edx $expect_out(1,string)
     }
 }
@@ -162,7 +162,7 @@  gdb_expect {
 gdb_test "step" "dec .ebx.*" "step to dec ebx 1st time"
 send_gdb "info reg ebx\n"
 gdb_expect {
-    -re "ebx *($hex)\t.*$gdb_prompt " {
+    -re "ebx *($hex)\[ \t\]+.*$gdb_prompt " {
 	set predec_ebx $expect_out(1,string)
     }
 }
@@ -170,7 +170,7 @@  gdb_expect {
 gdb_test "step" "dec .esp.*" "step to dec esp 1st time"
 send_gdb "info reg esp\n"
 gdb_expect {
-    -re "esp *($hex)\t.*$gdb_prompt " {
+    -re "esp *($hex)\[ \t\]+.*$gdb_prompt " {
 	set predec_esp $expect_out(1,string)
     }
 }
@@ -178,7 +178,7 @@  gdb_expect {
 gdb_test "step" "dec .ebp.*" "step to dec ebp 1st time"
 send_gdb "info reg ebp\n"
 gdb_expect {
-    -re "ebp *($hex)\t.*$gdb_prompt " {
+    -re "ebp *($hex)\[ \t\]+.*$gdb_prompt " {
 	set predec_ebp $expect_out(1,string)
     }
 }
@@ -186,7 +186,7 @@  gdb_expect {
 gdb_test "step" "dec .esi.*" "step to dec esi 1st time"
 send_gdb "info reg esi\n"
 gdb_expect {
-    -re "esi *($hex)\t.*$gdb_prompt " {
+    -re "esi *($hex)\[ \t\]+.*$gdb_prompt " {
 	set predec_esi $expect_out(1,string)
     }
 }
@@ -194,7 +194,7 @@  gdb_expect {
 gdb_test "step" "dec .edi.*" "step to dec edi 1st time"
 send_gdb "info reg edi\n"
 gdb_expect {
-    -re "edi *($hex)\t.*$gdb_prompt " {
+    -re "edi *($hex)\[ \t\]+.*$gdb_prompt " {
 	set predec_edi $expect_out(1,string)
     }
 }
@@ -221,68 +221,68 @@  gdb_test "reverse-continue" \
 # Now reverse step, and check register values.
 #
 
-gdb_test "info reg edi" "edi *$preinc_edi\t.*" "edi before reverse-dec"
+gdb_test "info reg edi" "edi *$preinc_edi\[ \t\]+.*" "edi before reverse-dec"
 gdb_test "reverse-step" "dec .edi.*" "reverse-step to dec edi"
-gdb_test "info reg edi" "edi *$predec_edi\t.*" "edi after reverse-dec"
+gdb_test "info reg edi" "edi *$predec_edi\[ \t\]+.*" "edi after reverse-dec"
 
-gdb_test "info reg esi" "esi *$preinc_esi\t.*" "esi before reverse-dec"
+gdb_test "info reg esi" "esi *$preinc_esi\[ \t\]+.*" "esi before reverse-dec"
 gdb_test "reverse-step" "dec .esi.*" "reverse-step to dec esi"
-gdb_test "info reg esi" "esi *$predec_esi\t.*" "esi after reverse-dec"
+gdb_test "info reg esi" "esi *$predec_esi\[ \t\]+.*" "esi after reverse-dec"
 
-gdb_test "info reg ebp" "ebp *$preinc_ebp\t.*" "ebp before reverse-dec"
+gdb_test "info reg ebp" "ebp *$preinc_ebp\[ \t\]+.*" "ebp before reverse-dec"
 gdb_test "reverse-step" "dec .ebp.*" "reverse-step to dec ebp"
-gdb_test "info reg ebp" "ebp *$predec_ebp\t.*" "ebp after reverse-dec"
+gdb_test "info reg ebp" "ebp *$predec_ebp\[ \t\]+.*" "ebp after reverse-dec"
 
-gdb_test "info reg esp" "esp *$preinc_esp\t.*" "esp before reverse-dec"
+gdb_test "info reg esp" "esp *$preinc_esp\[ \t\]+.*" "esp before reverse-dec"
 gdb_test "reverse-step" "dec .esp.*" "reverse-step to dec esp"
-gdb_test "info reg esp" "esp *$predec_esp\t.*" "esp after reverse-dec"
+gdb_test "info reg esp" "esp *$predec_esp\[ \t\]+.*" "esp after reverse-dec"
 
-gdb_test "info reg ebx" "ebx *$preinc_ebx\t.*" "ebx before reverse-dec"
+gdb_test "info reg ebx" "ebx *$preinc_ebx\[ \t\]+.*" "ebx before reverse-dec"
 gdb_test "reverse-step" "dec .ebx.*" "reverse-step to dec ebx"
-gdb_test "info reg ebx" "ebx *$predec_ebx\t.*" "ebx after reverse-dec"
+gdb_test "info reg ebx" "ebx *$predec_ebx\[ \t\]+.*" "ebx after reverse-dec"
 
-gdb_test "info reg edx" "edx *$preinc_edx\t.*" "edx before reverse-dec"
+gdb_test "info reg edx" "edx *$preinc_edx\[ \t\]+.*" "edx before reverse-dec"
 gdb_test "reverse-step" "dec .edx.*" "reverse-step to dec edx"
-gdb_test "info reg edx" "edx *$predec_edx\t.*" "edx after reverse-dec"
+gdb_test "info reg edx" "edx *$predec_edx\[ \t\]+.*" "edx after reverse-dec"
 
-gdb_test "info reg ecx" "ecx *$preinc_ecx\t.*" "ecx before reverse-dec"
+gdb_test "info reg ecx" "ecx *$preinc_ecx\[ \t\]+.*" "ecx before reverse-dec"
 gdb_test "reverse-step" "dec .ecx.*" "reverse-step to dec ecx"
-gdb_test "info reg ecx" "ecx *$predec_ecx\t.*" "ecx after reverse-dec"
+gdb_test "info reg ecx" "ecx *$predec_ecx\[ \t\]+.*" "ecx after reverse-dec"
 
-gdb_test "info reg eax" "eax *$preinc_eax\t.*" "eax before reverse-dec"
+gdb_test "info reg eax" "eax *$preinc_eax\[ \t\]+.*" "eax before reverse-dec"
 gdb_test "reverse-step" "dec .eax.*" "reverse-step to dec eax"
-gdb_test "info reg eax" "eax *$predec_eax\t.*" "eax after reverse-dec"
+gdb_test "info reg eax" "eax *$predec_eax\[ \t\]+.*" "eax after reverse-dec"
 
-gdb_test "info reg edi" "edi *$predec_edi\t.*" "edi before reverse-inc"
+gdb_test "info reg edi" "edi *$predec_edi\[ \t\]+.*" "edi before reverse-inc"
 gdb_test "reverse-step" "inc .edi.*" "reverse-step to inc edi"
-gdb_test "info reg edi" "edi *$preinc_edi\t.*" "edi after reverse-inc"
+gdb_test "info reg edi" "edi *$preinc_edi\[ \t\]+.*" "edi after reverse-inc"
 
-gdb_test "info reg esi" "esi *$predec_esi\t.*" "esi before reverse-inc"
+gdb_test "info reg esi" "esi *$predec_esi\[ \t\]+.*" "esi before reverse-inc"
 gdb_test "reverse-step" "inc .esi.*" "reverse-step to inc esi"
-gdb_test "info reg esi" "esi *$preinc_esi\t.*" "esi after reverse-inc"
+gdb_test "info reg esi" "esi *$preinc_esi\[ \t\]+.*" "esi after reverse-inc"
 
-gdb_test "info reg ebp" "ebp *$predec_ebp\t.*" "ebp before reverse-inc"
+gdb_test "info reg ebp" "ebp *$predec_ebp\[ \t\]+.*" "ebp before reverse-inc"
 gdb_test "reverse-step" "inc .ebp.*" "reverse-step to inc ebp"
-gdb_test "info reg ebp" "ebp *$preinc_ebp\t.*" "ebp after reverse-inc"
+gdb_test "info reg ebp" "ebp *$preinc_ebp\[ \t\]+.*" "ebp after reverse-inc"
 
-gdb_test "info reg esp" "esp *$predec_esp\t.*" "esp before reverse-inc"
+gdb_test "info reg esp" "esp *$predec_esp\[ \t\]+.*" "esp before reverse-inc"
 gdb_test "reverse-step" "inc .esp.*" "reverse-step to inc esp"
-gdb_test "info reg esp" "esp *$preinc_esp\t.*" "esp after reverse-inc"
+gdb_test "info reg esp" "esp *$preinc_esp\[ \t\]+.*" "esp after reverse-inc"
 
-gdb_test "info reg ebx" "ebx *$predec_ebx\t.*" "ebx before reverse-inc"
+gdb_test "info reg ebx" "ebx *$predec_ebx\[ \t\]+.*" "ebx before reverse-inc"
 gdb_test "reverse-step" "inc .ebx.*" "reverse-step to inc ebx"
-gdb_test "info reg ebx" "ebx *$preinc_ebx\t.*" "ebx after reverse-inc"
+gdb_test "info reg ebx" "ebx *$preinc_ebx\[ \t\]+.*" "ebx after reverse-inc"
 
-gdb_test "info reg edx" "edx *$predec_edx\t.*" "edx before reverse-inc"
+gdb_test "info reg edx" "edx *$predec_edx\[ \t\]+.*" "edx before reverse-inc"
 gdb_test "reverse-step" "inc .edx.*" "reverse-step to inc edx"
-gdb_test "info reg edx" "edx *$preinc_edx\t.*" "edx after reverse-inc"
+gdb_test "info reg edx" "edx *$preinc_edx\[ \t\]+.*" "edx after reverse-inc"
 
-gdb_test "info reg ecx" "ecx *$predec_ecx\t.*" "ecx before reverse-inc"
+gdb_test "info reg ecx" "ecx *$predec_ecx\[ \t\]+.*" "ecx before reverse-inc"
 gdb_test "reverse-step" "inc .ecx.*" "reverse-step to inc ecx"
-gdb_test "info reg ecx" "ecx *$preinc_ecx\t.*" "ecx after reverse-inc"
+gdb_test "info reg ecx" "ecx *$preinc_ecx\[ \t\]+.*" "ecx after reverse-inc"
 
-gdb_test "info reg eax" "eax *$predec_eax\t.*" "eax before reverse-inc"
+gdb_test "info reg eax" "eax *$predec_eax\[ \t\]+.*" "eax before reverse-inc"
 gdb_test "reverse-step" "inc .eax.*" "reverse-step to inc eax"
-gdb_test "info reg eax" "eax *$preinc_eax\t.*" "eax after reverse-inc"
+gdb_test "info reg eax" "eax *$preinc_eax\[ \t\]+.*" "eax after reverse-inc"
 
 
diff --git a/gdb/testsuite/gdb.reverse/i386-reverse.exp b/gdb/testsuite/gdb.reverse/i386-reverse.exp
index 753a2dd..a83e1df 100644
--- a/gdb/testsuite/gdb.reverse/i386-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/i386-reverse.exp
@@ -55,7 +55,7 @@  global decimal
 gdb_test "step" "inc .eax.*" "step to inc eax 1st time"
 send_gdb "info reg eax\n"
 gdb_expect {
-    -re "eax *($hex)\t.*$gdb_prompt " {
+    -re "eax *($hex)\[ \t\]+.*$gdb_prompt " {
 	set preinc_eax $expect_out(1,string)
     }
 }
@@ -63,7 +63,7 @@  gdb_expect {
 gdb_test "step" "inc .ecx.*" "step to inc ecx 1st time"
 send_gdb "info reg ecx\n"
 gdb_expect {
-    -re "ecx *($hex)\t.*$gdb_prompt " {
+    -re "ecx *($hex)\[ \t\]+.*$gdb_prompt " {
 	set preinc_ecx $expect_out(1,string)
     }
 }
@@ -71,7 +71,7 @@  gdb_expect {
 gdb_test "step" "inc .edx.*" "step to inc edx 1st time"
 send_gdb "info reg edx\n"
 gdb_expect {
-    -re "edx *($hex)\t.*$gdb_prompt " {
+    -re "edx *($hex)\[ \t\]+.*$gdb_prompt " {
 	set preinc_edx $expect_out(1,string)
     }
 }
@@ -79,7 +79,7 @@  gdb_expect {
 gdb_test "step" "inc .ebx.*" "step to inc ebx 1st time"
 send_gdb "info reg ebx\n"
 gdb_expect {
-    -re "ebx *($hex)\t.*$gdb_prompt " {
+    -re "ebx *($hex)\[ \t\]+.*$gdb_prompt " {
 	set preinc_ebx $expect_out(1,string)
     }
 }
@@ -87,7 +87,7 @@  gdb_expect {
 gdb_test "step" "inc .esp.*" "step to inc esp 1st time"
 send_gdb "info reg esp\n"
 gdb_expect {
-    -re "esp *($hex)\t.*$gdb_prompt " {
+    -re "esp *($hex)\[ \t\]+.*$gdb_prompt " {
 	set preinc_esp $expect_out(1,string)
     }
 }
@@ -95,7 +95,7 @@  gdb_expect {
 gdb_test "step" "inc .ebp.*" "step to inc ebp 1st time"
 send_gdb "info reg ebp\n"
 gdb_expect {
-    -re "ebp *($hex)\t.*$gdb_prompt " {
+    -re "ebp *($hex)\[ \t\]+.*$gdb_prompt " {
 	set preinc_ebp $expect_out(1,string)
     }
 }
@@ -103,7 +103,7 @@  gdb_expect {
 gdb_test "step" "inc .esi.*" "step to inc esi 1st time"
 send_gdb "info reg esi\n"
 gdb_expect {
-    -re "esi *($hex)\t.*$gdb_prompt " {
+    -re "esi *($hex)\[ \t\]+.*$gdb_prompt " {
 	set preinc_esi $expect_out(1,string)
     }
 }
@@ -111,7 +111,7 @@  gdb_expect {
 gdb_test "step" "inc .edi.*" "step to inc edi 1st time"
 send_gdb "info reg edi\n"
 gdb_expect {
-    -re "edi *($hex)\t.*$gdb_prompt " {
+    -re "edi *($hex)\[ \t\]+.*$gdb_prompt " {
 	set preinc_edi $expect_out(1,string)
     }
 }
@@ -119,7 +119,7 @@  gdb_expect {
 gdb_test "step" "dec .eax.*" "step to dec eax 1st time"
 send_gdb "info reg eax\n"
 gdb_expect {
-    -re "eax *($hex)\t.*$gdb_prompt " {
+    -re "eax *($hex)\[ \t\]+.*$gdb_prompt " {
 	set predec_eax $expect_out(1,string)
     }
 }
@@ -127,7 +127,7 @@  gdb_expect {
 gdb_test "step" "dec .ecx.*" "step to dec ecx 1st time"
 send_gdb "info reg ecx\n"
 gdb_expect {
-    -re "ecx *($hex)\t.*$gdb_prompt " {
+    -re "ecx *($hex)\[ \t\]+.*$gdb_prompt " {
 	set predec_ecx $expect_out(1,string)
     }
 }
@@ -135,7 +135,7 @@  gdb_expect {
 gdb_test "step" "dec .edx.*" "step to dec edx 1st time"
 send_gdb "info reg edx\n"
 gdb_expect {
-    -re "edx *($hex)\t.*$gdb_prompt " {
+    -re "edx *($hex)\[ \t\]+.*$gdb_prompt " {
 	set predec_edx $expect_out(1,string)
     }
 }
@@ -143,7 +143,7 @@  gdb_expect {
 gdb_test "step" "dec .ebx.*" "step to dec ebx 1st time"
 send_gdb "info reg ebx\n"
 gdb_expect {
-    -re "ebx *($hex)\t.*$gdb_prompt " {
+    -re "ebx *($hex)\[ \t\]+.*$gdb_prompt " {
 	set predec_ebx $expect_out(1,string)
     }
 }
@@ -151,7 +151,7 @@  gdb_expect {
 gdb_test "step" "dec .esp.*" "step to dec esp 1st time"
 send_gdb "info reg esp\n"
 gdb_expect {
-    -re "esp *($hex)\t.*$gdb_prompt " {
+    -re "esp *($hex)\[ \t\]+.*$gdb_prompt " {
 	set predec_esp $expect_out(1,string)
     }
 }
@@ -159,7 +159,7 @@  gdb_expect {
 gdb_test "step" "dec .ebp.*" "step to dec ebp 1st time"
 send_gdb "info reg ebp\n"
 gdb_expect {
-    -re "ebp *($hex)\t.*$gdb_prompt " {
+    -re "ebp *($hex)\[ \t\]+.*$gdb_prompt " {
 	set predec_ebp $expect_out(1,string)
     }
 }
@@ -167,7 +167,7 @@  gdb_expect {
 gdb_test "step" "dec .esi.*" "step to dec esi 1st time"
 send_gdb "info reg esi\n"
 gdb_expect {
-    -re "esi *($hex)\t.*$gdb_prompt " {
+    -re "esi *($hex)\[ \t\]+.*$gdb_prompt " {
 	set predec_esi $expect_out(1,string)
     }
 }
@@ -175,7 +175,7 @@  gdb_expect {
 gdb_test "step" "dec .edi.*" "step to dec edi 1st time"
 send_gdb "info reg edi\n"
 gdb_expect {
-    -re "edi *($hex)\t.*$gdb_prompt " {
+    -re "edi *($hex)\[ \t\]+.*$gdb_prompt " {
 	set predec_edi $expect_out(1,string)
     }
 }
@@ -202,68 +202,68 @@  gdb_test "reverse-continue" \
 # Now reverse step, and check register values.
 #
 
-gdb_test "info reg edi" "edi *$preinc_edi\t.*" "edi before reverse-dec"
+gdb_test "info reg edi" "edi *$preinc_edi\[ \t\]+.*" "edi before reverse-dec"
 gdb_test "reverse-step" "dec .edi.*" "reverse-step to dec edi"
-gdb_test "info reg edi" "edi *$predec_edi\t.*" "edi after reverse-dec"
+gdb_test "info reg edi" "edi *$predec_edi\[ \t\]+.*" "edi after reverse-dec"
 
-gdb_test "info reg esi" "esi *$preinc_esi\t.*" "esi before reverse-dec"
+gdb_test "info reg esi" "esi *$preinc_esi\[ \t\]+.*" "esi before reverse-dec"
 gdb_test "reverse-step" "dec .esi.*" "reverse-step to dec esi"
-gdb_test "info reg esi" "esi *$predec_esi\t.*" "esi after reverse-dec"
+gdb_test "info reg esi" "esi *$predec_esi\[ \t\]+.*" "esi after reverse-dec"
 
-gdb_test "info reg ebp" "ebp *$preinc_ebp\t.*" "ebp before reverse-dec"
+gdb_test "info reg ebp" "ebp *$preinc_ebp\[ \t\]+.*" "ebp before reverse-dec"
 gdb_test "reverse-step" "dec .ebp.*" "reverse-step to dec ebp"
-gdb_test "info reg ebp" "ebp *$predec_ebp\t.*" "ebp after reverse-dec"
+gdb_test "info reg ebp" "ebp *$predec_ebp\[ \t\]+.*" "ebp after reverse-dec"
 
-gdb_test "info reg esp" "esp *$preinc_esp\t.*" "esp before reverse-dec"
+gdb_test "info reg esp" "esp *$preinc_esp\[ \t\]+.*" "esp before reverse-dec"
 gdb_test "reverse-step" "dec .esp.*" "reverse-step to dec esp"
-gdb_test "info reg esp" "esp *$predec_esp\t.*" "esp after reverse-dec"
+gdb_test "info reg esp" "esp *$predec_esp\[ \t\]+.*" "esp after reverse-dec"
 
-gdb_test "info reg ebx" "ebx *$preinc_ebx\t.*" "ebx before reverse-dec"
+gdb_test "info reg ebx" "ebx *$preinc_ebx\[ \t\]+.*" "ebx before reverse-dec"
 gdb_test "reverse-step" "dec .ebx.*" "reverse-step to dec ebx"
-gdb_test "info reg ebx" "ebx *$predec_ebx\t.*" "ebx after reverse-dec"
+gdb_test "info reg ebx" "ebx *$predec_ebx\[ \t\]+.*" "ebx after reverse-dec"
 
-gdb_test "info reg edx" "edx *$preinc_edx\t.*" "edx before reverse-dec"
+gdb_test "info reg edx" "edx *$preinc_edx\[ \t\]+.*" "edx before reverse-dec"
 gdb_test "reverse-step" "dec .edx.*" "reverse-step to dec edx"
-gdb_test "info reg edx" "edx *$predec_edx\t.*" "edx after reverse-dec"
+gdb_test "info reg edx" "edx *$predec_edx\[ \t\]+.*" "edx after reverse-dec"
 
-gdb_test "info reg ecx" "ecx *$preinc_ecx\t.*" "ecx before reverse-dec"
+gdb_test "info reg ecx" "ecx *$preinc_ecx\[ \t\]+.*" "ecx before reverse-dec"
 gdb_test "reverse-step" "dec .ecx.*" "reverse-step to dec ecx"
-gdb_test "info reg ecx" "ecx *$predec_ecx\t.*" "ecx after reverse-dec"
+gdb_test "info reg ecx" "ecx *$predec_ecx\[ \t\]+.*" "ecx after reverse-dec"
 
-gdb_test "info reg eax" "eax *$preinc_eax\t.*" "eax before reverse-dec"
+gdb_test "info reg eax" "eax *$preinc_eax\[ \t\]+.*" "eax before reverse-dec"
 gdb_test "reverse-step" "dec .eax.*" "reverse-step to dec eax"
-gdb_test "info reg eax" "eax *$predec_eax\t.*" "eax after reverse-dec"
+gdb_test "info reg eax" "eax *$predec_eax\[ \t\]+.*" "eax after reverse-dec"
 
-gdb_test "info reg edi" "edi *$predec_edi\t.*" "edi before reverse-inc"
+gdb_test "info reg edi" "edi *$predec_edi\[ \t\]+.*" "edi before reverse-inc"
 gdb_test "reverse-step" "inc .edi.*" "reverse-step to inc edi"
-gdb_test "info reg edi" "edi *$preinc_edi\t.*" "edi after reverse-inc"
+gdb_test "info reg edi" "edi *$preinc_edi\[ \t\]+.*" "edi after reverse-inc"
 
-gdb_test "info reg esi" "esi *$predec_esi\t.*" "esi before reverse-inc"
+gdb_test "info reg esi" "esi *$predec_esi\[ \t\]+.*" "esi before reverse-inc"
 gdb_test "reverse-step" "inc .esi.*" "reverse-step to inc esi"
-gdb_test "info reg esi" "esi *$preinc_esi\t.*" "esi after reverse-inc"
+gdb_test "info reg esi" "esi *$preinc_esi\[ \t\]+.*" "esi after reverse-inc"
 
-gdb_test "info reg ebp" "ebp *$predec_ebp\t.*" "ebp before reverse-inc"
+gdb_test "info reg ebp" "ebp *$predec_ebp\[ \t\]+.*" "ebp before reverse-inc"
 gdb_test "reverse-step" "inc .ebp.*" "reverse-step to inc ebp"
-gdb_test "info reg ebp" "ebp *$preinc_ebp\t.*" "ebp after reverse-inc"
+gdb_test "info reg ebp" "ebp *$preinc_ebp\[ \t\]+.*" "ebp after reverse-inc"
 
-gdb_test "info reg esp" "esp *$predec_esp\t.*" "esp before reverse-inc"
+gdb_test "info reg esp" "esp *$predec_esp\[ \t\]+.*" "esp before reverse-inc"
 gdb_test "reverse-step" "inc .esp.*" "reverse-step to inc esp"
-gdb_test "info reg esp" "esp *$preinc_esp\t.*" "esp after reverse-inc"
+gdb_test "info reg esp" "esp *$preinc_esp\[ \t\]+.*" "esp after reverse-inc"
 
-gdb_test "info reg ebx" "ebx *$predec_ebx\t.*" "ebx before reverse-inc"
+gdb_test "info reg ebx" "ebx *$predec_ebx\[ \t\]+.*" "ebx before reverse-inc"
 gdb_test "reverse-step" "inc .ebx.*" "reverse-step to inc ebx"
-gdb_test "info reg ebx" "ebx *$preinc_ebx\t.*" "ebx after reverse-inc"
+gdb_test "info reg ebx" "ebx *$preinc_ebx\[ \t\]+.*" "ebx after reverse-inc"
 
-gdb_test "info reg edx" "edx *$predec_edx\t.*" "edx before reverse-inc"
+gdb_test "info reg edx" "edx *$predec_edx\[ \t\]+.*" "edx before reverse-inc"
 gdb_test "reverse-step" "inc .edx.*" "reverse-step to inc edx"
-gdb_test "info reg edx" "edx *$preinc_edx\t.*" "edx after reverse-inc"
+gdb_test "info reg edx" "edx *$preinc_edx\[ \t\]+.*" "edx after reverse-inc"
 
-gdb_test "info reg ecx" "ecx *$predec_ecx\t.*" "ecx before reverse-inc"
+gdb_test "info reg ecx" "ecx *$predec_ecx\[ \t\]+.*" "ecx before reverse-inc"
 gdb_test "reverse-step" "inc .ecx.*" "reverse-step to inc ecx"
-gdb_test "info reg ecx" "ecx *$preinc_ecx\t.*" "ecx after reverse-inc"
+gdb_test "info reg ecx" "ecx *$preinc_ecx\[ \t\]+.*" "ecx after reverse-inc"
 
-gdb_test "info reg eax" "eax *$predec_eax\t.*" "eax before reverse-inc"
+gdb_test "info reg eax" "eax *$predec_eax\[ \t\]+.*" "eax before reverse-inc"
 gdb_test "reverse-step" "inc .eax.*" "reverse-step to inc eax"
-gdb_test "info reg eax" "eax *$preinc_eax\t.*" "eax after reverse-inc"
+gdb_test "info reg eax" "eax *$preinc_eax\[ \t\]+.*" "eax after reverse-inc"
 
 
diff --git a/gdb/testsuite/gdb.reverse/i387-env-reverse.exp b/gdb/testsuite/gdb.reverse/i387-env-reverse.exp
index 63e99d5..cffbc46 100644
--- a/gdb/testsuite/gdb.reverse/i387-env-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/i387-env-reverse.exp
@@ -63,68 +63,68 @@  gdb_test "n" "asm.*frstor.*"              "restore FPU env"
 gdb_test "n" "asm.*fstsw.*"               "store status word in EAX"
 gdb_test "n" "asm.*fld1.*"                "push st0"
 
-gdb_test "info register eax" "eax *0x8040000.*\t.*"  "verify eax == 0x8040000"
-gdb_test "info register fstat" "fstat *0.*\t.*"      "verify fstat == 0"
-gdb_test "info register ftag" "ftag *0xffff.*\t.*"   "verify ftag == 0xffff"
+gdb_test "info register eax" "eax *0x8040000.*\[ \t\]+.*"  "verify eax == 0x8040000"
+gdb_test "info register fstat" "fstat *0.*\[ \t\]+.*"      "verify fstat == 0"
+gdb_test "info register ftag" "ftag *0xffff.*\[ \t\]+.*"   "verify ftag == 0xffff"
 
 gdb_test "stepi" "asm.*fldl2t.*"                      "push st0"
-gdb_test "info register fstat" "fstat *0x3800.*\t.*"  "verify fstat == 0x3800"
-gdb_test "info register ftag" "ftag *0x3fff.*\t.*"    "verify ftag  == 0x3fff"
+gdb_test "info register fstat" "fstat *0x3800.*\[ \t\]+.*"  "verify fstat == 0x3800"
+gdb_test "info register ftag" "ftag *0x3fff.*\[ \t\]+.*"    "verify ftag  == 0x3fff"
 
 gdb_test "stepi" "asm.*fldl2e.*"                  "push st0"
-gdb_test "info register fstat" "fstat *0x3000.*\t.*"  "verify fstat == 0x3000"
-gdb_test "info register ftag" "ftag *0xfff.*\t.*"     "verify ftag  == 0xfff"
+gdb_test "info register fstat" "fstat *0x3000.*\[ \t\]+.*"  "verify fstat == 0x3000"
+gdb_test "info register ftag" "ftag *0xfff.*\[ \t\]+.*"     "verify ftag  == 0xfff"
 
 gdb_test "stepi" "asm.*fldpi.*"                   "push st0"
-gdb_test "info register fstat" "fstat *0x2800.*\t.*"  "verify fstat == 0x2800"
-gdb_test "info register ftag" "ftag *0x3ff.*\t.*"     "verify ftag  == 0x3ff"
+gdb_test "info register fstat" "fstat *0x2800.*\[ \t\]+.*"  "verify fstat == 0x2800"
+gdb_test "info register ftag" "ftag *0x3ff.*\[ \t\]+.*"     "verify ftag  == 0x3ff"
 
 gdb_test "stepi" "asm.*fldlg2.*"                  "push st0"
-gdb_test "info register fstat" "fstat *0x2000.*\t.*"  "verify fstat == 0x2000"
-gdb_test "info register ftag" "ftag *0xff.*\t.*"      "verify ftag  == 0xff"
+gdb_test "info register fstat" "fstat *0x2000.*\[ \t\]+.*"  "verify fstat == 0x2000"
+gdb_test "info register ftag" "ftag *0xff.*\[ \t\]+.*"      "verify ftag  == 0xff"
 
 gdb_test "stepi" "asm.*fldln2.*"                  "push st0"
-gdb_test "info register fstat" "fstat *0x1800.*\t.*"  "verify fstat == 0x1800"
-gdb_test "info register ftag" "ftag *0x3f.*\t.*"      "verify ftag  == 0x3f"
+gdb_test "info register fstat" "fstat *0x1800.*\[ \t\]+.*"  "verify fstat == 0x1800"
+gdb_test "info register ftag" "ftag *0x3f.*\[ \t\]+.*"      "verify ftag  == 0x3f"
 
 gdb_test "stepi" "asm.*fldz.*"                    "push st0"
-gdb_test "info register fstat" "fstat *0x1000.*\t.*"  "verify fstat == 0x1000"
-gdb_test "info register ftag" "ftag *0xf.*\t.*"       "verify ftag  == 0xf"
+gdb_test "info register fstat" "fstat *0x1000.*\[ \t\]+.*"  "verify fstat == 0x1000"
+gdb_test "info register ftag" "ftag *0xf.*\[ \t\]+.*"       "verify ftag  == 0xf"
 
 gdb_test "stepi" "asm.*nop.*"                    "push st0"
-gdb_test "info register fstat" "fstat *0x800.*\t.*"  "verify fstat == 0x800"
-gdb_test "info register ftag" "ftag *0x7.*\t.*"      "verify ftag  == 0x7"
+gdb_test "info register fstat" "fstat *0x800.*\[ \t\]+.*"  "verify fstat == 0x800"
+gdb_test "info register ftag" "ftag *0x7.*\[ \t\]+.*"      "verify ftag  == 0x7"
 
 
 # move backward and ehck we get the same registers back.
 
 gdb_test "reverse-stepi" "asm.*fldz.*"           "push st0"
-gdb_test "info register fstat" "fstat *0x1000.*\t.*" "verify fstat == 0x1000"
-gdb_test "info register ftag" "ftag *0xf.*\t.*"      "verify ftag  == 0xf"
+gdb_test "info register fstat" "fstat *0x1000.*\[ \t\]+.*" "verify fstat == 0x1000"
+gdb_test "info register ftag" "ftag *0xf.*\[ \t\]+.*"      "verify ftag  == 0xf"
 
 gdb_test "reverse-stepi" "asm.*fldln2.*"          "push st0"
-gdb_test "info register fstat" "fstat *0x1800.*\t.*"  "verify fstat == 0x1800"
-gdb_test "info register ftag" "ftag *0x3f.*\t.*"      "verify ftag  == 0x3f"
+gdb_test "info register fstat" "fstat *0x1800.*\[ \t\]+.*"  "verify fstat == 0x1800"
+gdb_test "info register ftag" "ftag *0x3f.*\[ \t\]+.*"      "verify ftag  == 0x3f"
 
 gdb_test "reverse-stepi" "asm.*fldlg2.*"          "push st0"
-gdb_test "info register fstat" "fstat *0x2000.*\t.*"  "verify fstat == 0x2000"
-gdb_test "info register ftag" "ftag *0xff.*\t.*"      "verify ftag  == 0xff"
+gdb_test "info register fstat" "fstat *0x2000.*\[ \t\]+.*"  "verify fstat == 0x2000"
+gdb_test "info register ftag" "ftag *0xff.*\[ \t\]+.*"      "verify ftag  == 0xff"
 
 gdb_test "reverse-stepi" "asm.*fldpi.*"          "push st0"
-gdb_test "info register fstat" "fstat *0x2800.*\t.*" "verify fstat == 0x2800"
-gdb_test "info register ftag" "ftag *0x3ff.*\t.*"    "verify ftag  == 0x3ff"
+gdb_test "info register fstat" "fstat *0x2800.*\[ \t\]+.*" "verify fstat == 0x2800"
+gdb_test "info register ftag" "ftag *0x3ff.*\[ \t\]+.*"    "verify ftag  == 0x3ff"
 
 gdb_test "reverse-stepi" "asm.*fldl2e.*"          "push st0"
-gdb_test "info register fstat" "fstat *0x3000.*\t.*"  "verify fstat == 0x3000"
-gdb_test "info register ftag" "ftag *0xfff.*\t.*"     "verify ftag  == 0xfff"
+gdb_test "info register fstat" "fstat *0x3000.*\[ \t\]+.*"  "verify fstat == 0x3000"
+gdb_test "info register ftag" "ftag *0xfff.*\[ \t\]+.*"     "verify ftag  == 0xfff"
 
 gdb_test "reverse-stepi" "asm.*fldl2t.*"          "push st0"
-gdb_test "info register fstat" "fstat *0x3800.*\t.*"  "verify fstat == 0x3800"
-gdb_test "info register ftag" "ftag *0x3fff.*\t.*"    "verify ftag  == 0x3fff"
+gdb_test "info register fstat" "fstat *0x3800.*\[ \t\]+.*"  "verify fstat == 0x3800"
+gdb_test "info register ftag" "ftag *0x3fff.*\[ \t\]+.*"    "verify ftag  == 0x3fff"
 
 gdb_test "reverse-stepi" "asm.*fld1.*"            "push st0"
-gdb_test "info register fstat" "fstat *0.*\t.*"       "verify fstat == 0"
-gdb_test "info register ftag" "ftag *0xffff.*\t.*"    "verify ftag == 0xffff"
+gdb_test "info register fstat" "fstat *0.*\[ \t\]+.*"       "verify fstat == 0"
+gdb_test "info register ftag" "ftag *0xffff.*\[ \t\]+.*"    "verify ftag == 0xffff"
 
 
 
diff --git a/gdb/testsuite/gdb.reverse/i387-stack-reverse.exp b/gdb/testsuite/gdb.reverse/i387-stack-reverse.exp
index e445d17..43d6169 100644
--- a/gdb/testsuite/gdb.reverse/i387-stack-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/i387-stack-reverse.exp
@@ -56,102 +56,102 @@  set location [gdb_get_line_number "test st0 register"]
 gdb_test "until $location" ".*$srcfile:$location.*asm.*fld1.*" \
     "begin test st0"
 gdb_test "stepi" "asm.*fldl2t.*"              "push st0 == 1"
-gdb_test "info register st0" "st0 *1\t.*"     "verify st0 == 1"
+gdb_test "info register st0" "st0 *1\[ \t\]+.*"     "verify st0 == 1"
 
 
 gdb_test "stepi" "asm.*fldl2e.*"              "push st0 == 3.3219280948*"
-gdb_test "info register st0" "st0 *3.32192.*\t.*" "verify st0 == 3.321928094*"
-gdb_test "info register st1" "st1 *1\t.*"       "verify st1 == 1"
+gdb_test "info register st0" "st0 *3.32192.*\[ \t\]+.*" "verify st0 == 3.321928094*"
+gdb_test "info register st1" "st1 *1\[ \t\]+.*"       "verify st1 == 1"
 
 gdb_test "stepi" "asm.*fldpi.*"                   "push st0 == 1.4426950406*"
-gdb_test "info register st0" "st0 *1.44269.*\t.*" "verify st0 == 1.442695040*"
-gdb_test "info register st1" "st1 *3.32192.*\t.*" "verify st1 == 3.3219280948*"
-gdb_test "info register st2" "st2 *1\t.*"         "verify st2 == 1"
+gdb_test "info register st0" "st0 *1.44269.*\[ \t\]+.*" "verify st0 == 1.442695040*"
+gdb_test "info register st1" "st1 *3.32192.*\[ \t\]+.*" "verify st1 == 3.3219280948*"
+gdb_test "info register st2" "st2 *1\[ \t\]+.*"         "verify st2 == 1"
                                                
 gdb_test "stepi" "asm.*fldlg2.*"                  "push st0 == 3.14159265*"
-gdb_test "info register st0" "st0 *3.14159.*\t.*" "verify st0 == 3.14159265*"
-gdb_test "info register st1" "st1 *1.44269.*\t.*" "verify st1 == 1.4426950*"
-gdb_test "info register st2" "st2 *3.32192.*\t.*" "verify st2 == 3.3219280*"
-gdb_test "info register st3" "st3 *1\t.*"          "verify st3 == 1"
+gdb_test "info register st0" "st0 *3.14159.*\[ \t\]+.*" "verify st0 == 3.14159265*"
+gdb_test "info register st1" "st1 *1.44269.*\[ \t\]+.*" "verify st1 == 1.4426950*"
+gdb_test "info register st2" "st2 *3.32192.*\[ \t\]+.*" "verify st2 == 3.3219280*"
+gdb_test "info register st3" "st3 *1\[ \t\]+.*"          "verify st3 == 1"
 
 gdb_test "stepi" "asm.*fldln2.*"                  "push st0 == 0.301029*"
-gdb_test "info register st0" "st0 *0.30102.*\t.*" "verify st0 == 0.301029*"
-gdb_test "info register st1" "st1 *3.14159.*\t.*" "verify st1 == 3.14159265*"
-gdb_test "info register st2" "st2 *1.44269.*\t.*" "verify st2 == 1.44269506*"
-gdb_test "info register st3" "st3 *3.32192.*\t.*" "verify st3 == 3.3219280948*"
-gdb_test "info register st4" "st4 *1\t.*"         "verify st4 == 1"
+gdb_test "info register st0" "st0 *0.30102.*\[ \t\]+.*" "verify st0 == 0.301029*"
+gdb_test "info register st1" "st1 *3.14159.*\[ \t\]+.*" "verify st1 == 3.14159265*"
+gdb_test "info register st2" "st2 *1.44269.*\[ \t\]+.*" "verify st2 == 1.44269506*"
+gdb_test "info register st3" "st3 *3.32192.*\[ \t\]+.*" "verify st3 == 3.3219280948*"
+gdb_test "info register st4" "st4 *1\[ \t\]+.*"         "verify st4 == 1"
 
 gdb_test "stepi" "asm.*fldz.*"                    "push st0 == 0.69314*"
-gdb_test "info register st0" "st0 *0.69314.*\t.*" "verify st0 == 0.69314*"
-gdb_test "info register st1" "st1 *0.30102.*\t.*" "verify st1 == 0.301029*"
-gdb_test "info register st2" "st2 *3.14159.*\t.*" "verify st2 == 3.14159265*"
-gdb_test "info register st3" "st3 *1.44269.*\t.*" "verify st3 == 1.442695040*"
-gdb_test "info register st4" "st4 *3.32192.*\t.*" "verify st4 == 3.3219280948*"
-gdb_test "info register st5" "st5 *1\t.*"         "verify st5 == 1"
+gdb_test "info register st0" "st0 *0.69314.*\[ \t\]+.*" "verify st0 == 0.69314*"
+gdb_test "info register st1" "st1 *0.30102.*\[ \t\]+.*" "verify st1 == 0.301029*"
+gdb_test "info register st2" "st2 *3.14159.*\[ \t\]+.*" "verify st2 == 3.14159265*"
+gdb_test "info register st3" "st3 *1.44269.*\[ \t\]+.*" "verify st3 == 1.442695040*"
+gdb_test "info register st4" "st4 *3.32192.*\[ \t\]+.*" "verify st4 == 3.3219280948*"
+gdb_test "info register st5" "st5 *1\[ \t\]+.*"         "verify st5 == 1"
 
 gdb_test "stepi" "asm.*fld1.*"                    "push st0 == 0"
-gdb_test "info register st0" "st0 *0\t.*"         "verify st0 == 0"
-gdb_test "info register st1" "st1 *0.69314.*\t.*" "verify st1 == 0.69314*"
-gdb_test "info register st2" "st2 *0.30102.*\t.*" "verify st2 == 0.301029*"
-gdb_test "info register st3" "st3 *3.14159.*\t.*" "verify st3 == 3.14159265*"
-gdb_test "info register st4" "st4 *1.44269.*\t.*" "verify st4 == 1.442695040*"
-gdb_test "info register st5" "st5 *3.32192.*\t.*" "verify st5 == 3.32192809*"
-gdb_test "info register st6" "st6 *1\t.*"         "verify st6 == 1"
+gdb_test "info register st0" "st0 *0\[ \t\]+.*"         "verify st0 == 0"
+gdb_test "info register st1" "st1 *0.69314.*\[ \t\]+.*" "verify st1 == 0.69314*"
+gdb_test "info register st2" "st2 *0.30102.*\[ \t\]+.*" "verify st2 == 0.301029*"
+gdb_test "info register st3" "st3 *3.14159.*\[ \t\]+.*" "verify st3 == 3.14159265*"
+gdb_test "info register st4" "st4 *1.44269.*\[ \t\]+.*" "verify st4 == 1.442695040*"
+gdb_test "info register st5" "st5 *3.32192.*\[ \t\]+.*" "verify st5 == 3.32192809*"
+gdb_test "info register st6" "st6 *1\[ \t\]+.*"         "verify st6 == 1"
 
 gdb_test "stepi" "asm.*nop.*"                     "push st0 == 0"
-gdb_test "info register st0" "st0 *1\t.*"         "verify st0 == 1"
-gdb_test "info register st1" "st1 *0\t.*"         "verify st1 == 0"
-gdb_test "info register st2" "st2 *0.69314.*\t.*" "verify st2 == 0.69314*"
-gdb_test "info register st3" "st3 *0.30102.*\t.*" "verify st3 == 0.301029*"
-gdb_test "info register st4" "st4 *3.14159.*\t.*" "verify st4 == 3.14159265*"
-gdb_test "info register st5" "st5 *1.44269.*\t.*" "verify st5 == 1.44269504*"
-gdb_test "info register st6" "st6 *3.32192.*\t.*" "verify st6 == 3.3219280948*"
+gdb_test "info register st0" "st0 *1\[ \t\]+.*"         "verify st0 == 1"
+gdb_test "info register st1" "st1 *0\[ \t\]+.*"         "verify st1 == 0"
+gdb_test "info register st2" "st2 *0.69314.*\[ \t\]+.*" "verify st2 == 0.69314*"
+gdb_test "info register st3" "st3 *0.30102.*\[ \t\]+.*" "verify st3 == 0.301029*"
+gdb_test "info register st4" "st4 *3.14159.*\[ \t\]+.*" "verify st4 == 3.14159265*"
+gdb_test "info register st5" "st5 *1.44269.*\[ \t\]+.*" "verify st5 == 1.44269504*"
+gdb_test "info register st6" "st6 *3.32192.*\[ \t\]+.*" "verify st6 == 3.3219280948*"
 gdb_test "info register st7" "st7 *1.*"           "verify st7 == 1"
 
 # Now step backward, and check that st0 value reverts to zero.
 
 gdb_test "reverse-stepi" "asm.*fld1.*"            "undo registers, st0-st7"
-gdb_test "info register st0" "st0 *0\t.*"         "verify st0 == 0"
-gdb_test "info register st1" "st1 *0.69314.*\t.*" "verify st1 == 0.69314*"
-gdb_test "info register st2" "st2 *0.30102.*\t.*" "verify st2 == 0.301029*"
-gdb_test "info register st3" "st3 *3.14159.*\t.*" "verify st3 == 3.14159265*"
-gdb_test "info register st4" "st4 *1.44269.*\t.*" "verify st4 == 1.442695040*"
-gdb_test "info register st5" "st5 *3.32192.*\t.*" "verify st5 == 3.3219280948*"
-gdb_test "info register st6" "st6 *1\t.*"         "verify st6 == 1"
+gdb_test "info register st0" "st0 *0\[ \t\]+.*"         "verify st0 == 0"
+gdb_test "info register st1" "st1 *0.69314.*\[ \t\]+.*" "verify st1 == 0.69314*"
+gdb_test "info register st2" "st2 *0.30102.*\[ \t\]+.*" "verify st2 == 0.301029*"
+gdb_test "info register st3" "st3 *3.14159.*\[ \t\]+.*" "verify st3 == 3.14159265*"
+gdb_test "info register st4" "st4 *1.44269.*\[ \t\]+.*" "verify st4 == 1.442695040*"
+gdb_test "info register st5" "st5 *3.32192.*\[ \t\]+.*" "verify st5 == 3.3219280948*"
+gdb_test "info register st6" "st6 *1\[ \t\]+.*"         "verify st6 == 1"
 
 gdb_test "reverse-stepi" "asm.*fldz.*"            "push st0 == 0.69314*"
-gdb_test "info register st0" "st0 *0.69314.*\t.*" "verify st0 == 0.69314*"
-gdb_test "info register st1" "st1 *0.30102.*\t.*" "verify st1 == 0.301029*"
-gdb_test "info register st2" "st2 *3.14159.*\t.*" "verify st2 == 3.14159265*"
-gdb_test "info register st3" "st3 *1.44269.*\t.*" "verify st3 == 1.442695040*"
-gdb_test "info register st4" "st4 *3.32192.*\t.*" "verify st4 == 3.3219280948*"
-gdb_test "info register st5" "st5 *1\t.*"       "verify st5 == 1"
+gdb_test "info register st0" "st0 *0.69314.*\[ \t\]+.*" "verify st0 == 0.69314*"
+gdb_test "info register st1" "st1 *0.30102.*\[ \t\]+.*" "verify st1 == 0.301029*"
+gdb_test "info register st2" "st2 *3.14159.*\[ \t\]+.*" "verify st2 == 3.14159265*"
+gdb_test "info register st3" "st3 *1.44269.*\[ \t\]+.*" "verify st3 == 1.442695040*"
+gdb_test "info register st4" "st4 *3.32192.*\[ \t\]+.*" "verify st4 == 3.3219280948*"
+gdb_test "info register st5" "st5 *1\[ \t\]+.*"       "verify st5 == 1"
 
 gdb_test "reverse-stepi" "asm.*fldln2.*"          "push st0 == 0.301029*"
-gdb_test "info register st0" "st0 *0.30102.*\t.*" "verify st0 == 0.301029*"
-gdb_test "info register st1" "st1 *3.14159.*\t.*" "verify st1 == 3.14159265*"
-gdb_test "info register st2" "st2 *1.44269.*\t.*" "verify st2 == 1.442695040*"
-gdb_test "info register st3" "st3 *3.32192.*\t.*" "verify st3 == 3.3219280948*"
-gdb_test "info register st4" "st4 *1\t.*"         "verify st4 == 1"
+gdb_test "info register st0" "st0 *0.30102.*\[ \t\]+.*" "verify st0 == 0.301029*"
+gdb_test "info register st1" "st1 *3.14159.*\[ \t\]+.*" "verify st1 == 3.14159265*"
+gdb_test "info register st2" "st2 *1.44269.*\[ \t\]+.*" "verify st2 == 1.442695040*"
+gdb_test "info register st3" "st3 *3.32192.*\[ \t\]+.*" "verify st3 == 3.3219280948*"
+gdb_test "info register st4" "st4 *1\[ \t\]+.*"         "verify st4 == 1"
 
 gdb_test "reverse-stepi" "asm.*fldlg2.*"          "push st0 == 3.14159265*"
-gdb_test "info register st0" "st0 *3.14159.*\t.*" "verify st0 == 3.14159265*"
-gdb_test "info register st1" "st1 *1.44269.*\t.*" "verify st1 == 1.442695040*"
-gdb_test "info register st2" "st2 *3.32192.*\t.*" "verify st2 == 3.3219280948*"
-gdb_test "info register st3" "st3 *1\t.*"       "verify st3 == 1"
+gdb_test "info register st0" "st0 *3.14159.*\[ \t\]+.*" "verify st0 == 3.14159265*"
+gdb_test "info register st1" "st1 *1.44269.*\[ \t\]+.*" "verify st1 == 1.442695040*"
+gdb_test "info register st2" "st2 *3.32192.*\[ \t\]+.*" "verify st2 == 3.3219280948*"
+gdb_test "info register st3" "st3 *1\[ \t\]+.*"       "verify st3 == 1"
 
 gdb_test "reverse-stepi" "asm.*fldpi.*"           "push st0 == 1.44269504088*"
-gdb_test "info register st0" "st0 *1.44269.*\t.*" "verify st0 == 1.442695040*"
-gdb_test "info register st1" "st1 *3.32192.*\t.*" "verify st1 == 3.3219280948*"
-gdb_test "info register st2" "st2 *1\t.*"         "verify st2 == 1"
+gdb_test "info register st0" "st0 *1.44269.*\[ \t\]+.*" "verify st0 == 1.442695040*"
+gdb_test "info register st1" "st1 *3.32192.*\[ \t\]+.*" "verify st1 == 3.3219280948*"
+gdb_test "info register st2" "st2 *1\[ \t\]+.*"         "verify st2 == 1"
 
 
 gdb_test "reverse-stepi" "asm.*fldl2e.*"          "push st0 == 3.3219280948*"
-gdb_test "info register st0" "st0 *3.32192.*\t.*" "verify st0 == 3.3219280948*"
-gdb_test "info register st1" "st1 *1\t.*"         "verify st1 == 1"
+gdb_test "info register st0" "st0 *3.32192.*\[ \t\]+.*" "verify st0 == 3.3219280948*"
+gdb_test "info register st1" "st1 *1\[ \t\]+.*"         "verify st1 == 1"
 
 gdb_test "reverse-stepi" "asm.*fldl2t.*"      "push st0 == 1"
-gdb_test "info register st0" "st0 *1\t.*"     "verify st0 == 1"                                               
+gdb_test "info register st0" "st0 *1\[ \t\]+.*"     "verify st0 == 1"