diff options
author | Doug Evans <dje@google.com> | 2009-02-17 06:14:17 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2009-02-17 06:14:17 +0000 |
commit | 1903f0e64bb6f600388af42a7af7aff02e70bdef (patch) | |
tree | 38b72309b83508ccf9dc30ebce511f549d2fb988 /gdb/testsuite/gdb.arch/amd64-disp-step.S | |
parent | *** empty log message *** (diff) | |
download | binutils-gdb-1903f0e64bb6f600388af42a7af7aff02e70bdef.tar.gz binutils-gdb-1903f0e64bb6f600388af42a7af7aff02e70bdef.tar.bz2 binutils-gdb-1903f0e64bb6f600388af42a7af7aff02e70bdef.zip |
* amd64-tdep.c (amd64_skip_prefixes): Renamed from skip_prefixes.
All callers updated.
(amd64_get_insn_details): Handle more 3-byte opcode insns.
(amd64_breakpoint_p): Delete.
(amd64_displaced_step_fixup): When fixing up after stepping an int3,
don't back up pc to the start of the int3.
* i386-tdep.c: #include opcode/i386.h.
(i386_skip_prefixes): New function.
(i386_absolute_jmp_p): Constify argument.
(i386_absolute_call_p,i386_ret_p,i386_call_p,i386_syscall_p): Ditto.
(i386_breakpoint_p): Delete.
(i386_displaced_step_fixup): Handle unnecessary or redundant prefixes.
When fixing up after stepping an int3, don't back up pc to the start
of the int3.
* gdb.arch/amd64-disp-step.S (test_int3): New test.
* gdb.arch/amd64-disp-step.exp (test_int3): New test.
* gdb.arch/i386-disp-step.S (test_prefixed_abs_jump): New test.
(test_prefixed_syscall,test_int3): New tests.
* gdb.arch/i386-disp-step.exp (test_prefixed_abs_jump): New test.
(test_prefixed_syscall,test_int3): New tests.
Diffstat (limited to 'gdb/testsuite/gdb.arch/amd64-disp-step.S')
-rw-r--r-- | gdb/testsuite/gdb.arch/amd64-disp-step.S | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.arch/amd64-disp-step.S b/gdb/testsuite/gdb.arch/amd64-disp-step.S index 45eeb9b17da..1ce0184c8fb 100644 --- a/gdb/testsuite/gdb.arch/amd64-disp-step.S +++ b/gdb/testsuite/gdb.arch/amd64-disp-step.S @@ -23,6 +23,8 @@ main: nop +/***********************************************/ + /* test call/ret */ .global test_call @@ -33,6 +35,8 @@ test_call: test_ret_end: nop +/***********************************************/ + /* test abs-jmp/rep-ret */ test_abs_jmp_setup: @@ -48,6 +52,8 @@ test_abs_jmp_return: test_rep_ret_end: nop +/***********************************************/ + /* test syscall */ .global test_syscall @@ -58,6 +64,24 @@ test_syscall: test_syscall_end: nop +/***********************************************/ + +/* Test stepping over int3. + The prefixes are pointless, but it's possible, so we exercise it. */ + + nop + .global test_int3 +test_int3: + repz + repz + int3 + nop + .global test_int3_end +test_int3_end: + nop + +/***********************************************/ + /* test rip-relative GDB picks a spare register to hold the rip-relative address. Exercise all the possibilities (rax-rdi, sans rsp). */ @@ -118,6 +142,8 @@ test_rip_rdi_end: answer: .8byte 42 +/***********************************************/ + /* all done */ done: @@ -139,6 +165,8 @@ test_call_end: test_ret: ret +/***********************************************/ + /* subroutine to help test abs-jmp/rep-ret */ test_abs_jmp_subr: |