--- testsuite/gdb.reverse/i386-reverse.c | 13 +++++++++++++ testsuite/gdb.reverse/i386-reverse.exp | 12 ++++++++++++ 2 files changed, 25 insertions(+) --- a/testsuite/gdb.reverse/i386-reverse.c +++ b/testsuite/gdb.reverse/i386-reverse.c @@ -38,9 +38,22 @@ inc_dec_tests (void) asm ("dec %edi"); } /* end inc_dec_tests */ +void +segment_register_test (void) +{ + asm ("push %eax"); + asm ("push %ebx"); + asm ("movl $0, %eax"); + asm ("mov %ebx, %gs:(%eax)"); + asm ("mov %gs:(%eax), %ebx"); + asm ("pop %ebx"); + asm ("pop %eax"); +} /* end segment_register_test */ + int main () { inc_dec_tests (); + segment_register_test (); return 0; /* end of main */ } --- a/testsuite/gdb.reverse/i386-reverse.exp +++ b/testsuite/gdb.reverse/i386-reverse.exp @@ -53,6 +53,7 @@ if { [gdb_compile "${srcdir}/${subdir}/$ set end_of_main [gdb_get_line_number " end of main "] set end_of_inc_dec_tests [gdb_get_line_number " end inc_dec_tests "] +set end_segment_register_test [gdb_get_line_number " end segment_register_test "] # Get things started. @@ -285,4 +286,15 @@ gdb_test "info reg eax" "eax *$predec_ea 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 "continue" \ + " end inc_dec_tests .*" \ + "reverse to inc_dec_tests" + + +gdb_test "break $end_segment_register_test" \ + "Breakpoint $decimal at .* line $end_segment_register_test\." \ + "set breakpoint at end of segment_register_test" +gdb_test "continue" \ + " end segment_register_test .*" \ + "reverse to segment_register_test"