diff options
author | Alex Williamson <alex.williamson@hp.com> | 2007-07-02 08:38:45 -0600 |
---|---|---|
committer | Alex Williamson <alex.williamson@hp.com> | 2007-07-02 08:38:45 -0600 |
commit | 821d1e611501e57947ad62ca352beb7035d44875 (patch) | |
tree | 1f0cab2393a0584f662dc5c89cca06f3419853a7 /tools/xentrace | |
parent | e57246bd3a17d0157e14f852709d3bbe2f40c9a6 (diff) | |
download | xen-821d1e611501e57947ad62ca352beb7035d44875.tar.gz xen-821d1e611501e57947ad62ca352beb7035d44875.tar.bz2 xen-821d1e611501e57947ad62ca352beb7035d44875.zip |
[IA64] Remove IA64_GUEST_CONTEXT_RBS_OFFSET
Pass the offset in the vcpu_reg struct.
Fix displaying stack register in xenctx.
Signed-off-by: Tristan Gingold <tgingold@free.fr>
Diffstat (limited to 'tools/xentrace')
-rw-r--r-- | tools/xentrace/xenctx.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/tools/xentrace/xenctx.c b/tools/xentrace/xenctx.c index 7861d11cd1..274da0b41b 100644 --- a/tools/xentrace/xenctx.c +++ b/tools/xentrace/xenctx.c @@ -335,7 +335,7 @@ void print_ctx(vcpu_guest_context_t *ctx) struct vcpu_guest_context_regs *regs = &ctx->regs; struct vcpu_tr_regs *tr = &ctx->regs.tr; int i; - unsigned int rbs_size; + unsigned int rbs_size, cfm_sof; printf(" ip: %016lx ", regs->ip); print_symbol(regs->ip); @@ -485,15 +485,18 @@ void print_ctx(vcpu_guest_context_t *ctx) printf("\n"); rbs_size = (regs->ar.bsp - regs->ar.bspstore) / 8; - for (i = 0; i < (regs->cfm & CFM_SOF_MASK); i++) { - unsigned int rbs_off = (((64 - (rbs_size % 64) - i)) / 64) + i; + cfm_sof = (regs->cfm & CFM_SOF_MASK); + for (i = 0; i < cfm_sof; i++) { + int off = cfm_sof - i; + unsigned int rbs_off = + (((62 - ((rbs_size + regs->rbs_voff) % 64) + off)) / 63) + off; if (rbs_off > rbs_size) break; printf(" r%02d: %016lx%s", 32 + i, regs->rbs[rbs_size - rbs_off], (i % 3) != 2 ? " " : "\n"); } - if (i && (i % 3) != 2) + if ((i % 3) != 0) printf ("\n"); if (disp_tlb) { |