[SCM] master: Use Bank Registers for GPR. Do not use getRegisterByName().

pmuldoon@sourceware.org pmuldoon@sourceware.org
Wed Nov 28 13:50:00 GMT 2007


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



More information about the Frysk-cvs mailing list