This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: [PATCH] ia64-tdep.c: Add rotating register rename support


On Sep 6, 12:56am, Kevin Buettner wrote:

> The patch below adds IA-64 gdb support for rotating registers.  I've
> just checked it into the sourceware repository.
> 
> 	* ia64-tdep.c (examine_prologue): Add rotating register rename
> 	support for the GPRs.
> 	(ia64_get_saved_register): Add rotating register rename support
> 	for the predicate registers and the floating point registers.

FYI, I found the following two files to be useful for testing this
code.  Thanks to Richard Henderson for providing me with the guts
of rr.s.

To use these files, do

    gcc -o rr rr.s
    gdb rr
    source rr.gdb

Then either `continue' or `si' (repeatedly) and watch what happens.

--- rr.s ---
	.file	"rr.s"
	.version	"01.01"
.text
	.align 16
	.global main#
	.proc main#
main:
	alloc r34 = ar.pfs, 0, 3, 0, 0
	mov r32 = r12
	mov r33 = b0
	;;
	adds r12 = -16, r12
	br.call.sptk.many b0 = foo# ;;
	addl r8 = 0, r0
	;;
	mov r12 = r32
	mov ar.pfs = r34
	mov b0 = r33
	br.ret.sptk.many b0
	.endp main#
	.align 16
	.proc foo#
foo:
	alloc r42 = ar.pfs, 0, 0, 11, 8
	mov r41 = b0
	mov r40 = r12

	mov r33 = 2
	fadd.d f33 = f1, f1
	mov ar.ec = 0
	mov ar.lc = 10
	cmp.eq p16,p17=r0,r0
	cmp.eq p19,p18=r0,r0
	;;
.L0:
	mov r32 = 1
	mov f32 = f1
	br.ctop.dptk .L0
	;;
	mov r12 = r40
	mov ar.pfs = r42
	mov b0 = r41
	br.ret.sptk.many b0
	.endp foo#
	.ident	"GCC: (GNU) 2.9-ia64-000216-final"
--- end rr.s ---

--- rr.gdb ---
b foo
r
disp/i $pc
si 3
disp/x $r40
disp/x $r39
disp/x $r38
disp/x $r37
disp/x $r36
disp/x $r35
disp/x $r34
disp/x $r33
disp/x $r32
disp/x $r31
disp/x $lc
disp $p30
disp $p29
disp $p28
disp $p27
disp $p26
disp $p25
disp $p24
disp $p23
disp $p22
disp $p21
disp $p20
disp $p19
disp $p18
disp $p17
disp $p16
disp $f44
disp $f43
disp $f42
disp $f41
disp $f40
disp $f39
disp $f38
disp $f37
disp $f36
disp $f35
disp $f34
disp $f33
disp $f32
si 6
b *$pc
--- end rr.gdb ---

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]