diff options
author | Joseph Myers <jsm@polyomino.org.uk> | 2012-08-22 19:47:55 +0000 |
---|---|---|
committer | Joseph Myers <jsm@polyomino.org.uk> | 2012-08-22 19:47:55 +0000 |
commit | 1735c95af7dfb62073f03fff7f9cdf2a2864d12b (patch) | |
tree | 327986c3658d634f631cec2b8c1540f90d4d6049 /gdb/testsuite/gdb.arch | |
parent | 2b5c243b4699455294a5087d46926d263882fe66 (diff) | |
download | gdb-1735c95af7dfb62073f03fff7f9cdf2a2864d12b.tar.gz |
* arm-tdep.c (thumb_get_next_pc_raw): Mask off low bits for bx pc
and blx pc.
testsuite:
* gdb.arch/thumb-bx-pc.S: New file.
* gdb.arch/thumb-bx-pc.exp: New file.
Diffstat (limited to 'gdb/testsuite/gdb.arch')
-rw-r--r-- | gdb/testsuite/gdb.arch/thumb-bx-pc.S | 34 | ||||
-rw-r--r-- | gdb/testsuite/gdb.arch/thumb-bx-pc.exp | 41 |
2 files changed, 75 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.arch/thumb-bx-pc.S b/gdb/testsuite/gdb.arch/thumb-bx-pc.S new file mode 100644 index 00000000000..437e66e8f22 --- /dev/null +++ b/gdb/testsuite/gdb.arch/thumb-bx-pc.S @@ -0,0 +1,34 @@ +/* Test PC adjustment from Thumb-mode "bx pc" instruction. + + Copyright 2012 Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + + .syntax unified + .thumb + .text + .p2align 2 + .global main + .thumb + .thumb_func + .type main, %function +main: + bx pc + nop +.code 32 + mov r0, #0 + bx lr + .size main, .-main diff --git a/gdb/testsuite/gdb.arch/thumb-bx-pc.exp b/gdb/testsuite/gdb.arch/thumb-bx-pc.exp new file mode 100644 index 00000000000..5a6b4770f75 --- /dev/null +++ b/gdb/testsuite/gdb.arch/thumb-bx-pc.exp @@ -0,0 +1,41 @@ +# Copyright 2012 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Test PC adjustment from Thumb-mode "bx pc" instruction. + +if {![istarget arm*-*]} then { + verbose "Skipping ARM tests." + return +} + +set testfile "thumb-bx-pc" +set srcfile ${testfile}.S +set opts {} + +if [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} $opts] { + untested "Failed to compile $srcfile" + return -1 +} + +if ![runto_main] then { + untested "could not run to main" + return -1 +} + +gdb_test "stepi" "$hex in main \\(\\)" "stepi for bx pc" + +gdb_test "x /i \$pc" \ + "$hex <main\\+4>:\[ \t\]+mov\[ \t\]+r0,\[ \t\]+#0.*" \ + "stepi reached correct instruction" |