From 551e4f2e429ad77b1f862e2d4aad97e194c2493d Mon Sep 17 00:00:00 2001 From: Joel Brobecker Date: Sun, 29 May 2005 01:54:44 +0000 Subject: [PATCH] * alpha-tdep.c (alpha_next_pc): Use correct register number for floating-point branch instructions. --- gdb/ChangeLog | 5 +++++ gdb/alpha-tdep.c | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c6c45bde339..02105c4eb47 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2005-05-29 Joel Brobecker + + * alpha-tdep.c (alpha_next_pc): Use correct register number + for floating-point branch instructions. + 2005-05-28 Daniel Jacobowitz Jonathan Larmour diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c index 7e3f6840460..e7d965b4407 100644 --- a/gdb/alpha-tdep.c +++ b/gdb/alpha-tdep.c @@ -1372,6 +1372,7 @@ alpha_next_pc (CORE_ADDR pc) { unsigned int insn; unsigned int op; + int regno; int offset; LONGEST rav; char reg[8]; @@ -1404,7 +1405,19 @@ alpha_next_pc (CORE_ADDR pc) } /* Need to determine if branch is taken; read RA. */ - regcache_cooked_read (current_regcache, (insn >> 21) & 0x1f, reg); + regno = (insn >> 21) & 0x1f; + switch (op) + { + case 0x31: /* FBEQ */ + case 0x36: /* FBGE */ + case 0x37: /* FBGT */ + case 0x33: /* FBLE */ + case 0x32: /* FBLT */ + case 0x35: /* FBNE */ + regno += FP0_REGNUM; + } + + regcache_cooked_read (current_regcache, regno, reg); rav = extract_signed_integer (reg, 8); switch (op) -- 2.30.2