Use target_read_code in skip_prologue (amd64)

gdb:

2013-12-10  Yao Qi  <yao@codesourcery.com>

	* amd64-tdep.c (amd64_analyze_stack_align): Call
	target_read_code instead of target_read_memory.
	(amd64_analyze_prologue): Call read_code_unsigned_integer
	instead of read_memory_unsigned_integer.  Call read_code
	instead of read_memory.
	(amd64_skip_xmm_prologue): Likewise.
This commit is contained in:
Yao Qi 2013-10-23 21:49:32 +08:00
parent 0865b04a4d
commit bae8a07ab1
2 changed files with 13 additions and 4 deletions

View File

@ -1,3 +1,12 @@
2013-12-10 Yao Qi <yao@codesourcery.com>
* amd64-tdep.c (amd64_analyze_stack_align): Call
target_read_code instead of target_read_memory.
(amd64_analyze_prologue): Call read_code_unsigned_integer
instead of read_memory_unsigned_integer. Call read_code
instead of read_memory.
(amd64_skip_xmm_prologue): Likewise.
2013-12-10 Yao Qi <yao@codesourcery.com>
* corefile.c (read_code): New function.

View File

@ -1761,7 +1761,7 @@ amd64_analyze_stack_align (CORE_ADDR pc, CORE_ADDR current_pc,
int reg, r;
int offset, offset_and;
if (target_read_memory (pc, buf, sizeof buf))
if (target_read_code (pc, buf, sizeof buf))
return pc;
/* Check caller-saved saved register. The first instruction has
@ -2104,7 +2104,7 @@ amd64_analyze_prologue (struct gdbarch *gdbarch,
else
pc = amd64_analyze_stack_align (pc, current_pc, cache);
op = read_memory_unsigned_integer (pc, 1, byte_order);
op = read_code_unsigned_integer (pc, 1, byte_order);
if (op == 0x55) /* pushq %rbp */
{
@ -2117,7 +2117,7 @@ amd64_analyze_prologue (struct gdbarch *gdbarch,
if (current_pc <= pc + 1)
return current_pc;
read_memory (pc + 1, buf, 3);
read_code (pc + 1, buf, 3);
/* Check for `movq %rsp, %rbp'. */
if (memcmp (buf, mov_rsp_rbp_1, 3) == 0
@ -2185,7 +2185,7 @@ amd64_skip_xmm_prologue (CORE_ADDR pc, CORE_ADDR start_pc)
return pc;
/* START_PC can be from overlayed memory, ignored here. */
if (target_read_memory (next_sal.pc - 4, buf, sizeof (buf)) != 0)
if (target_read_code (next_sal.pc - 4, buf, sizeof (buf)) != 0)
return pc;
/* test %al,%al */