public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
* [SCM]  master: Use BankRegister's get/set/access methods.
@ 2007-12-20 18:41 cagney
  0 siblings, 0 replies; only message in thread
From: cagney @ 2007-12-20 18:41 UTC (permalink / raw)
  To: frysk-cvs

The branch, master has been updated
       via  5f345af74c688d16da9c1edd8c79b6786ddba380 (commit)
      from  79fb19acf507102afc8d2bd18cc09da463f96c23 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit 5f345af74c688d16da9c1edd8c79b6786ddba380
Author: Andrew Cagney <cagney@redhat.com>
Date:   Thu Dec 20 13:38:31 2007 -0500

    Use BankRegister's get/set/access methods.
    
    frysk-core/frysk/bank/ChangeLog
    2007-12-20  Andrew Cagney  <cagney@redhat.com>
    
    	* BankRegister.java (getLength()): Make package private.
    	(getOffset()): Make package private.
    	(access)): Make package private.
    	* BankArrayRegister.java (set(ByteBuffer[],long)): New.
    	(access(ByteBuffer[],long,long,byte[],int,boolean)): New.
    	(get(ByteBuffer[])): New.
    	(getBank()): Make package private.
    	* RegisterBanks.java: Use.

-----------------------------------------------------------------------

Summary of changes:
 frysk-core/frysk/bank/BankArrayRegister.java |   16 +++++++++++-
 frysk-core/frysk/bank/BankRegister.java      |    6 ++--
 frysk-core/frysk/bank/ChangeLog              |    9 +++++++
 frysk-core/frysk/bank/RegisterBanks.java     |   33 +++----------------------
 4 files changed, 31 insertions(+), 33 deletions(-)

First 500 lines of diff:
diff --git a/frysk-core/frysk/bank/BankArrayRegister.java b/frysk-core/frysk/bank/BankArrayRegister.java
index a720c34..9063239 100644
--- a/frysk-core/frysk/bank/BankArrayRegister.java
+++ b/frysk-core/frysk/bank/BankArrayRegister.java
@@ -39,6 +39,7 @@
 
 package frysk.bank;
 
+import inua.eio.ByteBuffer;
 import frysk.isa.Register;
 
 /**
@@ -65,7 +66,20 @@ public class BankArrayRegister extends BankRegister {
     /**
      * Return the register bank, as an index.
      */
-    public int getBank() {
+    int getBank() {
 	return bank;
     }
+
+    long get(ByteBuffer[] banks) {
+	return get(banks[bank]);
+    }
+
+    void set(ByteBuffer[] banks, long value) {
+	set(banks[bank], value);
+    }
+
+    void access(ByteBuffer[] banks, long offset, long size, byte[] bytes,
+		int start, boolean write) {
+	access(banks[bank], offset, size, bytes, start, write);
+    }
 }
diff --git a/frysk-core/frysk/bank/BankRegister.java b/frysk-core/frysk/bank/BankRegister.java
index ddf1f96..bc522b5 100644
--- a/frysk-core/frysk/bank/BankRegister.java
+++ b/frysk-core/frysk/bank/BankRegister.java
@@ -91,18 +91,18 @@ public class BankRegister {
      * 
      * @return the length
      */
-    public int getLength() {
+    int getLength() {
 	return length;
     }
 
     /**
      * Return the offset into the register bank.
      */
-    public int getOffset() {
+    int getOffset() {
 	return offset;
     }
 
-    public void access(ByteBuffer byteBuffer, long offset, long size,
+    void access(ByteBuffer byteBuffer, long offset, long size,
 		       byte[] bytes, int start, boolean write) {
 	if (write)
 	    // XXX: Should be directly supported by ByteBuffer.
diff --git a/frysk-core/frysk/bank/ChangeLog b/frysk-core/frysk/bank/ChangeLog
index a9d6c8f..a579545 100644
--- a/frysk-core/frysk/bank/ChangeLog
+++ b/frysk-core/frysk/bank/ChangeLog
@@ -1,5 +1,14 @@
 2007-12-20  Andrew Cagney  <cagney@redhat.com>
 
+	* BankRegister.java (getLength()): Make package private.
+	(getOffset()): Make package private.
+	(access)): Make package private.
+	* BankArrayRegister.java (set(ByteBuffer[],long)): New.
+	(access(ByteBuffer[],long,long,byte[],int,boolean)): New.
+	(get(ByteBuffer[])): New.
+	(getBank()): Make package private.
+	* RegisterBanks.java: Use.
+
 	* RegisterBanks.java (getBanksFIXME()): New.
 
 	* RegisterMap.java: New file.
diff --git a/frysk-core/frysk/bank/RegisterBanks.java b/frysk-core/frysk/bank/RegisterBanks.java
index f23e61c..37685e7 100644
--- a/frysk-core/frysk/bank/RegisterBanks.java
+++ b/frysk-core/frysk/bank/RegisterBanks.java
@@ -75,42 +75,17 @@ public class RegisterBanks {
     }
 
     public long get(Register register) {
-	BankArrayRegister bankRegister = findBankArrayRegister(register);
-	ByteBuffer bank = banks[bankRegister.getBank()];
-	switch (bankRegister.getLength()) {
-	case 1: return bank.getUByte(bankRegister.getOffset());
-	case 2: return bank.getUShort(bankRegister.getOffset());
-	case 4: return bank.getUInt(bankRegister.getOffset());
-	case 8: return bank.getULong(bankRegister.getOffset());
-	default:
-	    throw new RuntimeException("unhandled register size: "
-				       + bankRegister.getLength());
-	}
+	return findBankArrayRegister(register).get(banks);
     }
 
     public void set(Register register, long value) {
-	BankArrayRegister bankRegister = findBankArrayRegister(register);
-	ByteBuffer bank = banks[bankRegister.getBank()];
-	switch (bankRegister.getLength()) {
-	case 1: bank.putUByte(bankRegister.getOffset(), (byte)value); break;
-	case 2: bank.putUShort(bankRegister.getOffset(), (short)value); break;
-	case 4: bank.putUInt(bankRegister.getOffset(), (int)value); break;
-	case 8: bank.putULong(bankRegister.getOffset(), value); break;
-	default:
-	    throw new RuntimeException("unhandled register size: "
-				       + bankRegister.getLength());
-	}
+	findBankArrayRegister(register).set(banks, value);
     }
 
     public void access(Register register, long offset, long size,
 		       byte[] bytes, int start, boolean write) {
-	BankArrayRegister bankRegister = findBankArrayRegister(register);
-	ByteBuffer bank = banks[bankRegister.getBank()];
-	if (write)
-	    throw new RuntimeException("Not implemented");
-	else
-	    bank.get(offset + bankRegister.getOffset(), bytes,
-		     start, (int)size);
+	findBankArrayRegister(register)
+	    .access(banks, offset, size, bytes, start, write);
     }
 
     public ByteBuffer[] getBanksFIXME() {


hooks/post-receive
--
frysk system monitor/debugger


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-12-20 18:41 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-12-20 18:41 [SCM] master: Use BankRegister's get/set/access methods cagney

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).