diff options
author | Yao Qi <yao.qi@linaro.org> | 2016-01-18 15:03:18 +0000 |
---|---|---|
committer | Yao Qi <yao.qi@linaro.org> | 2016-01-18 15:03:18 +0000 |
commit | 6f69e520676f5f434cf43c250865036b3d516429 (patch) | |
tree | 97ebabc257ca590604be2b9e3d28b72e61804a84 /gdb/gdbserver/linux-tile-low.c | |
parent | 276d4552dfc2dc3906fa2bd8690ea85b3d8ec055 (diff) | |
download | gdb-6f69e520676f5f434cf43c250865036b3d516429.zip gdb-6f69e520676f5f434cf43c250865036b3d516429.tar.gz gdb-6f69e520676f5f434cf43c250865036b3d516429.tar.bz2 |
Replace some $ARCH_{get,set}_pc with linux_{get,set}_pc_64bit
This patch is the follow-up of
https://sourceware.org/ml/gdb-patches/2016-01/msg00164.html to provide
linux_{get,set}_pc_64bit functions.
Rebuild GDBserver with tilegx-linux-gcc. Not tested.
I think about pc in Tile-GX a little bit. Looks current Tile-GX
supports debugging 32-bit program (multi-arch), but PC is always
64-bit. See this thread
https://sourceware.org/ml/gdb-patches/2013-02/msg00113.html
and GDBserver reads PC as 64-bit through ptrace. However, if
the inferior is 32-bit, the PC in the target description and
regcache is 32-bit, so only 32-bit contents are sent back GDB.
Anyway, Tile-GX GDBserver may have some problems here, but this
patch doesn't change anything.
gdb/gdbserver:
2016-01-18 Yao Qi <yao.qi@linaro.org>
* linux-low.c (linux_set_pc_64bit): New function.
(linux_get_pc_64bit): New function.
* linux-low.h (linux_set_pc_64bit, linux_get_pc_64bit):
Declare.
* linux-sparc-low.c (debug_threads): Remove declaration.
(sparc_get_pc): Remove.
(the_low_target): Use linux_get_pc_64bit instead of
sparc_get_pc.
* linux-tile-low.c (tile_get_pc, tile_set_pc): Remove.
(the_low_target): Use linux_get_pc_64bit and
linux_set_pc_64bit.
Diffstat (limited to 'gdb/gdbserver/linux-tile-low.c')
-rw-r--r-- | gdb/gdbserver/linux-tile-low.c | 21 |
1 files changed, 2 insertions, 19 deletions
diff --git a/gdb/gdbserver/linux-tile-low.c b/gdb/gdbserver/linux-tile-low.c index aaaa5c7..45d63d6 100644 --- a/gdb/gdbserver/linux-tile-low.c +++ b/gdb/gdbserver/linux-tile-low.c @@ -68,23 +68,6 @@ tile_cannot_store_register (int regno) return 1; } -static CORE_ADDR -tile_get_pc (struct regcache *regcache) -{ - unsigned long pc; - - collect_register_by_name (regcache, "pc", &pc); - return pc; -} - -static void -tile_set_pc (struct regcache *regcache, CORE_ADDR pc) -{ - unsigned long newpc = pc; - - supply_register_by_name (regcache, "pc", &newpc); -} - static uint64_t tile_breakpoint = 0x400b3cae70166000ULL; #define tile_breakpoint_len 8 @@ -197,8 +180,8 @@ struct linux_target_ops the_low_target = tile_cannot_fetch_register, tile_cannot_store_register, NULL, - tile_get_pc, - tile_set_pc, + linux_get_pc_64bit, + linux_set_pc_64bit, NULL, /* breakpoint_kind_from_pc */ tile_sw_breakpoint_from_kind, NULL, |