public inbox for frysk-cvs@sourceware.org help / color / mirror / Atom feed
From: pmuldoon@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Use Bank Registers for GPR. Do not use getRegisterByName(). Date: Wed, 28 Nov 2007 13:50:00 -0000 [thread overview] Message-ID: <20071128135027.22978.qmail@sourceware.org> (raw) The branch, master has been updated via 9ce87ebc824d9ddd20bff9b53e89b87948c45e9a (commit) from 73c6fe8aca72acc92166db968b80e906a8af83a3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 9ce87ebc824d9ddd20bff9b53e89b87948c45e9a Author: Phil Muldoon <pmuldoon@redhat.com> Date: Wed Nov 28 13:50:19 2007 +0000 Use Bank Registers for GPR. Do not use getRegisterByName(). 2007-11-28 Phil Muldoon <pmuldoon@redhat.com> * PPC64LinuxElfCorefile.java (writeNotePrstatus): Add GPR registers to map. Do not use getRegisterByName() anymore. * PPC32LinuxElfCorefile.java(writeNotePrstatus): Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/util/ChangeLog | 4 ++ frysk-core/frysk/util/PPC32LinuxElfCorefile.java | 59 ++++++++++------------ frysk-core/frysk/util/PPC64LinuxElfCorefile.java | 46 ++++++++--------- 3 files changed, 52 insertions(+), 57 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index d1cda2f..2452a84 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,5 +1,9 @@ 2007-11-28 Phil Muldoon <pmuldoon@redhat.com> + * PPC64LinuxElfCorefile.java (writeNotePrstatus): Add GPR + registers to map. Do not use getRegisterByName() anymore. + * PPC32LinuxElfCorefile.java(writeNotePrstatus): Ditto. + * X8664LinuxElfCorefile.java (writeNotePrstatus): Do not use getRegisterByName(). Use static X8864 register constants, and task.access() diff --git a/frysk-core/frysk/util/PPC32LinuxElfCorefile.java b/frysk-core/frysk/util/PPC32LinuxElfCorefile.java index 355afce..8180acf 100644 --- a/frysk-core/frysk/util/PPC32LinuxElfCorefile.java +++ b/frysk-core/frysk/util/PPC32LinuxElfCorefile.java @@ -186,9 +186,6 @@ public class PPC32LinuxElfCorefile extends LinuxElfCorefile { // are the names are the same. Create a string[] map to bridge // gap between frysk and core file register order. - // The number of general purpose regiser. - int gprSize = 32; - // The number of total common registers in PPC/PPC64 including nip, msr, // etc. Defined in the asm-ppc/elf.h. int elfNGREG = 48; @@ -197,42 +194,40 @@ public class PPC32LinuxElfCorefile extends LinuxElfCorefile { byte[] zeroVal = new byte[] { 0 }; Register[] ptracePpcRegMap = { - PPC32Registers.NIP, - PPC32Registers.MSR, - PPC32Registers.ORIGR3, - PPC32Registers.CTR, - PPC32Registers.LR, - PPC32Registers.XER, - PPC32Registers.CCR, - PPC32Registers.MQ, - PPC32Registers.TRAP, - PPC32Registers.DAR, - PPC32Registers.DSISR, - PPC32Registers.RESULT }; - + PPC32Registers.NIP, PPC32Registers.MSR, PPC32Registers.ORIGR3, + PPC32Registers.CTR, PPC32Registers.LR, PPC32Registers.XER, + PPC32Registers.CCR, PPC32Registers.MQ, PPC32Registers.TRAP, + PPC32Registers.DAR, PPC32Registers.DSISR, PPC32Registers.RESULT, + PPC32Registers.GPR0, PPC32Registers.GPR1, PPC32Registers.GPR2, + PPC32Registers.GPR3, PPC32Registers.GPR4, PPC32Registers.GPR5, + PPC32Registers.GPR6, PPC32Registers.GPR7, PPC32Registers.GPR8, + PPC32Registers.GPR9, PPC32Registers.GPR10, PPC32Registers.GPR11, + PPC32Registers.GPR12, PPC32Registers.GPR13, PPC32Registers.GPR14, + PPC32Registers.GPR15, PPC32Registers.GPR16, PPC32Registers.GPR17, + PPC32Registers.GPR18, PPC32Registers.GPR19, PPC32Registers.GPR20, + PPC32Registers.GPR21, PPC32Registers.GPR22, PPC32Registers.GPR23, + PPC32Registers.GPR24, PPC32Registers.GPR25, PPC32Registers.GPR26, + PPC32Registers.GPR27, PPC32Registers.GPR28, PPC32Registers.GPR29, + PPC32Registers.GPR30, PPC32Registers.GPR31}; + for (int i = 0; i < ptracePpcRegMap.length; i++) { - int registerSize = ptracePpcRegMap[i].getType().getSize(); - byte[] byteOrderedRegister = new byte[registerSize]; - task.access(ptracePpcRegMap[i], 0, registerSize, byteOrderedRegister, 0, false); - prStatus.setPrGPReg(i,bytesToBigInteger(byteOrderedRegister)); + int registerSize = ptracePpcRegMap[i].getType().getSize(); + byte[] byteOrderedRegister = new byte[registerSize]; + task.access(ptracePpcRegMap[i], 0, registerSize, byteOrderedRegister, 0, false); + prStatus.setPrGPReg(i,bytesToBigInteger(byteOrderedRegister)); } - - // Set the general purpose registers. - for (int index = 0; index < gprSize; index++) - prStatus.setPrGPReg - (index, - task.getBigIntegerRegisterFIXME("gpr" + index)); - - blankRegisterIndex = gprSize + ptracePpcRegMap.length; - + + + blankRegisterIndex = ptracePpcRegMap.length; + BigInteger bigInt = new BigInteger(zeroVal); - - // On ppc, some register indexes are not defined in + + // On ppc, some register indexes are not defined in // asm-<ISA>/ptrace.h. for (int index = blankRegisterIndex; index < elfNGREG; index++) prStatus.setPrGPReg(index, bigInt); - // Write it + // Write it nhdrEntry.setNhdrDesc(ElfNhdrType.NT_PRSTATUS, prStatus); } diff --git a/frysk-core/frysk/util/PPC64LinuxElfCorefile.java b/frysk-core/frysk/util/PPC64LinuxElfCorefile.java index bc0be2a..ffcc899 100644 --- a/frysk-core/frysk/util/PPC64LinuxElfCorefile.java +++ b/frysk-core/frysk/util/PPC64LinuxElfCorefile.java @@ -187,9 +187,6 @@ public class PPC64LinuxElfCorefile extends LinuxElfCorefile { // are the names are the same. Create a string[] map to bridge // gap between frysk and core file register order. - // The number of general purpose regiser. - int gprSize = 32; - // The number of total common registers in PPC/PPC64 including nip, msr, // etc. Defined in the asm-ppc64/elf.h. int elfNGREG = 48; @@ -200,37 +197,36 @@ public class PPC64LinuxElfCorefile extends LinuxElfCorefile { // XXX: if one register's offset is not defined in asm-ppc/ptrace.h or // asm-ppc64/ptrace.h,we did not dump it out and fill give the null Name. Register[] ptracePpc64RegMap = { - PPC64Registers.NIP, - PPC64Registers.MSR, - PPC64Registers.ORIGR3, - PPC64Registers.CTR, - PPC64Registers.LR, - PPC64Registers.XER, - PPC64Registers.CCR, - PPC64Registers.SOFTE, - PPC64Registers.TRAP, - PPC64Registers.DAR, - PPC64Registers.DSISR, - PPC64Registers.RESULT }; + PPC64Registers.NIP, PPC64Registers.MSR, PPC64Registers.ORIGR3, + PPC64Registers.CTR, PPC64Registers.LR, PPC64Registers.XER, + PPC64Registers.CCR, PPC64Registers.SOFTE, PPC64Registers.TRAP, + PPC64Registers.DAR, PPC64Registers.DSISR, PPC64Registers.RESULT, + PPC64Registers.GPR0, PPC64Registers.GPR1, PPC64Registers.GPR2, + PPC64Registers.GPR3, PPC64Registers.GPR4, PPC64Registers.GPR5, + PPC64Registers.GPR6, PPC64Registers.GPR7, PPC64Registers.GPR8, + PPC64Registers.GPR9, PPC64Registers.GPR10, PPC64Registers.GPR11, + PPC64Registers.GPR12, PPC64Registers.GPR13, PPC64Registers.GPR14, + PPC64Registers.GPR15, PPC64Registers.GPR16, PPC64Registers.GPR17, + PPC64Registers.GPR18, PPC64Registers.GPR19, PPC64Registers.GPR20, + PPC64Registers.GPR21, PPC64Registers.GPR22, PPC64Registers.GPR23, + PPC64Registers.GPR24, PPC64Registers.GPR25, PPC64Registers.GPR26, + PPC64Registers.GPR27, PPC64Registers.GPR28, PPC64Registers.GPR29, + PPC64Registers.GPR30, PPC64Registers.GPR31}; for (int i = 0; i < ptracePpc64RegMap.length; i++) { - int registerSize = ptracePpc64RegMap[i].getType().getSize(); - byte[] byteOrderedRegister = new byte[registerSize]; - task.access(ptracePpc64RegMap[i], 0, registerSize, byteOrderedRegister, 0, false); - prStatus.setPrGPReg(i, bytesToBigInteger(byteOrderedRegister)); + int registerSize = ptracePpc64RegMap[i].getType().getSize(); + byte[] byteOrderedRegister = new byte[registerSize]; + task.access(ptracePpc64RegMap[i], 0, registerSize, byteOrderedRegister, 0, false); + prStatus.setPrGPReg(i, bytesToBigInteger(byteOrderedRegister)); } - // Set the general purpose registers. - for (int index = 0; index < gprSize; index++) - prStatus.setPrGPReg - (index, task.getBigIntegerRegisterFIXME("gpr" + index)); - blankRegisterIndex = gprSize + ptracePpc64RegMap.length; + blankRegisterIndex = ptracePpc64RegMap.length; BigInteger bigInt = new BigInteger(zeroVal); // On ppc, some register indexes are not defined in - // asm-<ISA>/ptrace.h. + // asm-<ISA>/ptrace.h. for (int index = blankRegisterIndex; index < elfNGREG; index++) prStatus.setPrGPReg(index, bigInt); hooks/post-receive -- frysk system monitor/debugger
reply other threads:[~2007-11-28 13:50 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20071128135027.22978.qmail@sourceware.org \ --to=pmuldoon@sourceware.org \ --cc=frysk-cvs@sourceware.org \ --cc=frysk@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).