[SCM] master: Eliminate references to IA-32 and X86-64 FP registers.

cagney@sourceware.org cagney@sourceware.org
Mon Nov 26 22:38:00 GMT 2007


The branch, master has been updated
       via  ccddf5ed862aeea6996f3e6bfbfee5f1e3f229b4 (commit)
       via  0ad52b3674fca09c7c7a974339d3a669ef1f38dc (commit)
       via  b7f178e6359979647d3ff2c72e2e2d7935bcf4ed (commit)
      from  192fa4ac83d415465dbe2e4477f123fc82d122e5 (commit)

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

- Log -----------------------------------------------------------------
commit ccddf5ed862aeea6996f3e6bfbfee5f1e3f229b4
Author: Andrew Cagney <cagney@redhat.com>
Date:   Mon Nov 26 17:37:35 2007 -0500

    Eliminate references to IA-32 and X86-64 FP registers.
    
    frysk-core/frysk/isa/ChangeLog
    2007-11-26  Andrew Cagney  <cagney@redhat.com>
    
    	* X8664Registers.java (XMM0, ..., XMM15): Delete.
    	* IA32Registers.java: Use X87Registers.
    	(XMM0, ..., XMM7, MXCSR): Delete.
    	(FCW, FSW, FTW, FOP, FCS, FIP, FEA, FDS): Delete.
    	(MMX, SSE): Delete.
    	* TestRegisters.java: Update.

commit 0ad52b3674fca09c7c7a974339d3a669ef1f38dc
Author: Andrew Cagney <cagney@redhat.com>
Date:   Mon Nov 26 17:19:03 2007 -0500

    Use frysk.isa.X87Registers to describe bank floating-point registers.
    
    frysk-core/frysk/proc/ChangeLog
    2007-11-26  Andrew Cagney  <cagney@redhat.com>
    
    	* X86BankRegisters.java: Use X87Registers.XMM0, et.al.
    	* IndirectBankRegisterMap.java (add(int,int,int,Register)): New.
    	(add(BankRegister,BankRegister)): Use.

commit b7f178e6359979647d3ff2c72e2e2d7935bcf4ed
Author: Andrew Cagney <cagney@redhat.com>
Date:   Mon Nov 26 16:35:35 2007 -0500

    Expand X87Registers to include XMM and FP status.
    
    frysk-core/frysk/isa/ChangeLog
    2007-11-26  Andrew Cagney  <cagney@redhat.com>
    
    	* X87Registers.java (XMM0, ..., XMM15): New.
    	(FCW, FSW, RIP, EIP, CS, RDP, DP, DS, MXCSR, MXCSR_MASK)
    	(FLOAT32, FLOAT64, XMM32, XMM64): New.
    	(FLOAT): Delete.
    	(FCTRL, FSTAT, FTAG, FLIP, FLDP): Delete.

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

Summary of changes:
 frysk-core/frysk/isa/ChangeLog                     |   15 ++
 frysk-core/frysk/isa/IA32Registers.java            |   80 ++---------
 frysk-core/frysk/isa/TestRegisters.java            |   10 +-
 frysk-core/frysk/isa/X8664Registers.java           |   35 -----
 frysk-core/frysk/isa/X87Registers.java             |  124 +++++++++++++---
 frysk-core/frysk/proc/ChangeLog                    |    8 +
 frysk-core/frysk/proc/IndirectBankRegisterMap.java |   11 +-
 frysk-core/frysk/proc/X86BankRegisters.java        |  150 +++++++++++---------
 frysk-core/frysk/stack/ChangeLog                   |    5 +
 .../frysk/stack/LibunwindRegisterMapFactory.java   |   16 +-
 10 files changed, 243 insertions(+), 211 deletions(-)

First 500 lines of diff:
diff --git a/frysk-core/frysk/isa/ChangeLog b/frysk-core/frysk/isa/ChangeLog
index fe1e979..f467b7c 100644
--- a/frysk-core/frysk/isa/ChangeLog
+++ b/frysk-core/frysk/isa/ChangeLog
@@ -1,3 +1,18 @@
+2007-11-26  Andrew Cagney  <cagney@redhat.com>
+
+	* X8664Registers.java (XMM0, ..., XMM15): Delete.
+	* IA32Registers.java: Use X87Registers.
+	(XMM0, ..., XMM7, MXCSR): Delete.
+	(FCW, FSW, FTW, FOP, FCS, FIP, FEA, FDS): Delete.
+	(MMX, SSE): Delete.
+	* TestRegisters.java: Update.
+	
+	* X87Registers.java (XMM0, ..., XMM15): New.
+	(FCW, FSW, RIP, EIP, CS, RDP, DP, DS, MXCSR, MXCSR_MASK)
+	(FLOAT32, FLOAT64, XMM32, XMM64): New.
+	(FLOAT): Delete.
+	(FCTRL, FSTAT, FTAG, FLIP, FLDP): Delete.
+	
 2007-11-26  Jose Flavio Aguilar Paulino <joseflavio@gmail.com>
 
 	* PPC64Registers.java: Adding some ptrace registers, ordering the
diff --git a/frysk-core/frysk/isa/IA32Registers.java b/frysk-core/frysk/isa/IA32Registers.java
index c12e9d3..a94d053 100644
--- a/frysk-core/frysk/isa/IA32Registers.java
+++ b/frysk-core/frysk/isa/IA32Registers.java
@@ -87,47 +87,6 @@ public class IA32Registers extends Registers {
     public final static Register EIP
 	= new Register("eip", StandardTypes.VOIDPTR32L_T);
 
-    // Floating-point registers
-
-    public final static Register FCW
-	= new Register("fcw", StandardTypes.INT32L_T);
-    public final static Register FSW
-	= new Register("fsw", StandardTypes.INT32L_T);
-    public final static Register FTW
-	= new Register("ftw", StandardTypes.INT32L_T);
-    public final static Register FOP
-	= new Register("fop", StandardTypes.INT32L_T);
-    public final static Register FCS
-	= new Register("fcs", StandardTypes.INT32L_T);
-    public final static Register FIP
-	= new Register("fip", StandardTypes.INT32L_T);
-    public final static Register FEA
-	= new Register("fea", StandardTypes.INT32L_T);
-    public final static Register FDS
-	= new Register("fds", StandardTypes.INT32L_T);
-
-    // Streaming SIMD registers
-
-    public final static Register XMM0
-	= new Register("xmm0", StandardTypes.INT128L_T);
-    public final static Register XMM1
-	= new Register("xmm1", StandardTypes.INT128L_T);
-    public final static Register XMM2
-	= new Register("xmm2", StandardTypes.INT128L_T);
-    public final static Register XMM3
-	= new Register("xmm3", StandardTypes.INT128L_T);
-    public final static Register XMM4
-	= new Register("xmm4", StandardTypes.INT128L_T);
-    public final static Register XMM5
-	= new Register("xmm5", StandardTypes.INT128L_T);
-    public final static Register XMM6
-	= new Register("xmm6", StandardTypes.INT128L_T);
-    public final static Register XMM7
-	= new Register("xmm7", StandardTypes.INT128L_T);
-
-    public final static Register MXCSR
-	= new Register("mxcsr", StandardTypes.INT32L_T);
-
     public final static Register TSS
 	= new Register("tss", StandardTypes.INT32L_T);
     public final static Register LDT
@@ -164,23 +123,6 @@ public class IA32Registers extends Registers {
 				EFLAGS, ESP
 			    });
 
-    public final static RegisterGroup MMX
-	= new RegisterGroup("mmx",
-			    new Register[] {
-				X87Registers.ST0, X87Registers.ST1,
-				X87Registers.ST2, X87Registers.ST3,
-				X87Registers.ST4, X87Registers.ST5,
-				X87Registers.ST6, X87Registers.ST7,
-				FCW, FSW, FTW, FOP, FCS, FIP, FEA, FDS
-			    });
-
-    public final static RegisterGroup SSE
-	= new RegisterGroup("sse",
-			    new Register[] {
-				XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7,
-				MXCSR
-			    });
-
     public final static RegisterGroup SEGMENT
 	= new RegisterGroup("segment",
 			    new Register[] {
@@ -191,19 +133,21 @@ public class IA32Registers extends Registers {
     static {
 	Register[] allRegs
 	    = new Register[GENERAL.getRegisters().length
-			   + MMX.getRegisters().length
-			   + SSE.getRegisters().length
+			   + X87Registers.FLOAT32.getRegisters().length
+			   + X87Registers.XMM32.getRegisters().length
 			   + SEGMENT.getRegisters().length];
 	int count = 0;
 	System.arraycopy(GENERAL.getRegisters(), 0, allRegs, count,
 			 GENERAL.getRegisters().length);
 	count += GENERAL.getRegisters().length;
-	System.arraycopy(MMX.getRegisters(), 0, allRegs, count,
-			 MMX.getRegisters().length);
-	count += MMX.getRegisters().length;
-	System.arraycopy(SSE.getRegisters(), 0, allRegs, count,
-			 SSE.getRegisters().length);
-	count += SSE.getRegisters().length;
+	System.arraycopy(X87Registers.FLOAT32.getRegisters(),
+			 0, allRegs, count,
+			 X87Registers.FLOAT32.getRegisters().length);
+	count += X87Registers.FLOAT32.getRegisters().length;
+	System.arraycopy(X87Registers.XMM32.getRegisters(),
+			 0, allRegs, count,
+			 X87Registers.XMM32.getRegisters().length);
+	count += X87Registers.XMM32.getRegisters().length;
 	System.arraycopy(SEGMENT.getRegisters(), 0, allRegs, count,
 			 SEGMENT.getRegisters().length);
 
@@ -212,7 +156,9 @@ public class IA32Registers extends Registers {
 
     IA32Registers() {
 	super (new RegisterGroup[] {
-		   GENERAL, MMX, SSE, SEGMENT, ALL
+		   GENERAL,
+		   X87Registers.FLOAT32, X87Registers.XMM32,
+		   SEGMENT, ALL
 	       });
     }
 
diff --git a/frysk-core/frysk/isa/TestRegisters.java b/frysk-core/frysk/isa/TestRegisters.java
index 7f6244f..72040a2 100644
--- a/frysk-core/frysk/isa/TestRegisters.java
+++ b/frysk-core/frysk/isa/TestRegisters.java
@@ -55,8 +55,8 @@ public class TestRegisters extends TestCase {
     }
 
     public void testGetGroup() {
-	assertEquals("getGroup", IA32Registers.MMX,
-		     regs.getGroup("mmx"));
+	assertEquals("getGroup", IA32Registers.GENERAL,
+		     regs.getGroup("general"));
     }
 
     public void testGetRegister() {
@@ -66,8 +66,10 @@ public class TestRegisters extends TestCase {
 
     public void testGetGroupNames() {
 	assertEquals("getGroupNames",
-		     new String[] { "general", "mmx", "sse", "segment", "all" },
-		     regs.getGroupNames());
+		     new String[] {
+			 "general", "float", "xmm",
+			 "segment", "all"
+		     }, regs.getGroupNames());
     }
 
     public void testDefaultRegisterGroup() {
diff --git a/frysk-core/frysk/isa/X8664Registers.java b/frysk-core/frysk/isa/X8664Registers.java
index cdbc06d..a913c6c 100644
--- a/frysk-core/frysk/isa/X8664Registers.java
+++ b/frysk-core/frysk/isa/X8664Registers.java
@@ -105,41 +105,6 @@ public class X8664Registers extends Registers {
     public static final Register GS_BASE
 	= new Register("gs_base", StandardTypes.INT64L_T);
 
-    // Multi-media registers.
-
-    public static final Register XMM0
-	= new Register("xmm0", StandardTypes.INT64L_T);
-    public static final Register XMM1
-	= new Register("xmm1", StandardTypes.INT64L_T);
-    public static final Register XMM2
-	= new Register("xmm2", StandardTypes.INT64L_T);
-    public static final Register XMM3
-	= new Register("xmm3", StandardTypes.INT64L_T);
-    public static final Register XMM4
-	= new Register("xmm4", StandardTypes.INT64L_T);
-    public static final Register XMM5
-	= new Register("xmm5", StandardTypes.INT64L_T);
-    public static final Register XMM6
-	= new Register("xmm6", StandardTypes.INT64L_T);
-    public static final Register XMM7
-	= new Register("xmm7", StandardTypes.INT64L_T);
-    public static final Register XMM8
-	= new Register("xmm8", StandardTypes.INT64L_T);
-    public static final Register XMM9
-	= new Register("xmm9", StandardTypes.INT64L_T);
-    public static final Register XMM10
-	= new Register("xmm10", StandardTypes.INT64L_T);
-    public static final Register XMM11
-	= new Register("xmm11", StandardTypes.INT64L_T);
-    public static final Register XMM12
-	= new Register("xmm12", StandardTypes.INT64L_T);
-    public static final Register XMM13
-	= new Register("xmm13", StandardTypes.INT64L_T);
-    public static final Register XMM14
-	= new Register("xmm14", StandardTypes.INT64L_T);
-    public static final Register XMM15
-	= new Register("xmm15", StandardTypes.INT64L_T);
-
     public static final Register DR0
 	= new Register("dr0", StandardTypes.INT64L_T);
     public static final Register DR1
diff --git a/frysk-core/frysk/isa/X87Registers.java b/frysk-core/frysk/isa/X87Registers.java
index 58664a9..23cb1c0 100644
--- a/frysk-core/frysk/isa/X87Registers.java
+++ b/frysk-core/frysk/isa/X87Registers.java
@@ -71,7 +71,8 @@ public class X87Registers {
 	= new Register("fpr7", StandardTypes.FLOAT80L_T);
 
     // The virtual floating-point register stack - the user sees the
-    // above registers as a stack.
+    // above registers as a stack.  The F*SAVE instructions also dump
+    // the registers into memory in this order.
 
     public final static Register ST0
 	= new Register("st0", StandardTypes.FLOAT80L_T);
@@ -90,8 +91,8 @@ public class X87Registers {
     public final static Register ST7
 	= new Register("st7", StandardTypes.FLOAT80L_T);
 
-    // The "abstract" multi-media registers - again the user sees part
-    // of the raw registers.
+    // 64-bit media registers (overlayed on the floating-point
+    // registers).
 
     public final static Register MMX0
 	= new Register("mmx0", StandardTypes.FLOAT80L_T);
@@ -110,35 +111,110 @@ public class X87Registers {
     public final static Register MMX7
 	= new Register("mmx7", StandardTypes.FLOAT80L_T);
     
-    // The floating-point control registers.
-
-    public final static Register FCTRL // control word/register
-	= new Register("fctrl", StandardTypes.INT16L_T);
-    public final static Register FSTAT // status word/register
-	= new Register("fstat", StandardTypes.INT16L_T);
-    public final static Register FTAG // tag word/register
-	= new Register("ftag", StandardTypes.INT16L_T);
-
-    public final static Register FLIP // [last] instruction pointer
-	= new Register("flip", StandardTypes.INT64L_T);
-    public final static Register FLDP // [last] data (operand) pointer
-	= new Register("fldp", StandardTypes.INT64L_T);
-
-    public final static Register FOP // opcode
-	= new Register("fop", StandardTypes.INT32L_T);
-
-
-    public final static RegisterGroup FLOAT
+    // 128-bit media registers; the IA-32 has 8; x86-64 has 16.
+
+    public static final Register XMM0
+	= new Register("xmm0", StandardTypes.INT128L_T);
+    public static final Register XMM1
+	= new Register("xmm1", StandardTypes.INT128L_T);
+    public static final Register XMM2
+	= new Register("xmm2", StandardTypes.INT128L_T);
+    public static final Register XMM3
+	= new Register("xmm3", StandardTypes.INT128L_T);
+    public static final Register XMM4
+	= new Register("xmm4", StandardTypes.INT128L_T);
+    public static final Register XMM5
+	= new Register("xmm5", StandardTypes.INT128L_T);
+    public static final Register XMM6
+	= new Register("xmm6", StandardTypes.INT128L_T);
+    public static final Register XMM7
+	= new Register("xmm7", StandardTypes.INT128L_T);
+    public static final Register XMM8
+	= new Register("xmm8", StandardTypes.INT128L_T);
+    public static final Register XMM9
+	= new Register("xmm9", StandardTypes.INT128L_T);
+    public static final Register XMM10
+	= new Register("xmm10", StandardTypes.INT128L_T);
+    public static final Register XMM11
+	= new Register("xmm11", StandardTypes.INT128L_T);
+    public static final Register XMM12
+	= new Register("xmm12", StandardTypes.INT128L_T);
+    public static final Register XMM13
+	= new Register("xmm13", StandardTypes.INT128L_T);
+    public static final Register XMM14
+	= new Register("xmm14", StandardTypes.INT128L_T);
+    public static final Register XMM15
+	= new Register("xmm15", StandardTypes.INT128L_T);
+
+    // The floating-point control registers
+
+    // control word
+    public static final Register FCW
+	= new Register("fcw", StandardTypes.INT16L_T);
+    // status word
+    public static final Register FSW
+	= new Register("fcw", StandardTypes.INT16L_T);
+    // tag word
+    public static final Register FTW
+	= new Register("ftw", StandardTypes.INT8L_T);
+    // opcode
+    public static final Register FOP
+	= new Register("fop", StandardTypes.INT16L_T);
+    // last instruction pointer; 32- and 64- are different.
+    public static final Register RIP // 64-bit
+	= new Register("fip", StandardTypes.INT64L_T);
+    public static final Register EIP // 32-bit
+	= new Register("fip", StandardTypes.INT32L_T);
+    public static final Register CS // 32-bit
+	= new Register("fcs", StandardTypes.INT16L_T);
+    // last data pointer; 32- and 64- are different.
+    public static final Register RDP // 64-bit
+	= new Register("frdp", StandardTypes.INT64L_T);
+    public static final Register DP // 32-bit
+	= new Register("fdp", StandardTypes.INT32L_T);
+    public static final Register DS // 32-bit
+	= new Register("fds", StandardTypes.INT16L_T);
+    // media instruction control/status register
+    public static final Register MXCSR
+	= new Register("mxcsr", StandardTypes.INT32L_T);
+    public static final Register MXCSR_MASK
+	= new Register("mxcsr_mask", StandardTypes.INT32L_T);
+
+    public final static RegisterGroup FLOAT32
 	= new RegisterGroup("float",
 			    new Register[] {
 				ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7,
-				FCTRL, FSTAT, FTAG, FLIP, FLDP, FOP
+				FCW, FSW, FTW, FOP,
+				EIP, CS, DP, DS,
+				
+			    });
+    public final static RegisterGroup FLOAT64
+	= new RegisterGroup("float",
+			    new Register[] {
+				ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7,
+				FCW, FSW, FTW, FOP,
+				RIP, RDP
 			    });
 
     public final static RegisterGroup MMX
 	= new RegisterGroup("mmx",
 			    new Register[] {
-				MMX0, MMX1, MMX2, MMX3, MMX4, MMX5, MMX6, MMX7
+				MMX0, MMX1, MMX2, MMX3, MMX4, MMX5, MMX6, MMX7,
+				MXCSR, MXCSR_MASK
 			    });
 
+    public final static RegisterGroup XMM32
+	= new RegisterGroup("xmm",
+			    new Register[] {
+				XMM0, XMM1, XMM2, XMM3,
+				XMM4, XMM5, XMM6, XMM7,
+			    });
+    public final static RegisterGroup XMM64
+	= new RegisterGroup("xmm",
+			    new Register[] {
+				XMM0, XMM1, XMM2, XMM3,
+				XMM4, XMM5, XMM6, XMM7,
+				XMM8, XMM9, XMM10, XMM11,
+				XMM12, XMM13, XMM15, XMM15,
+			    });
 }
diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog
index fdf40d7..90e62d2 100644
--- a/frysk-core/frysk/proc/ChangeLog
+++ b/frysk-core/frysk/proc/ChangeLog
@@ -1,5 +1,13 @@
 2007-11-26  Andrew Cagney  <cagney@redhat.com>
 
+	* X86BankRegisters.java: Replace X8664Registers.XMM8 et.al. with
+	X87Registers.XMM8.
+
+	* X86BankRegisters.java: Use X87Registers.XMM0, et.al.
+
+	* IndirectBankRegisterMap.java (add(int,int,int,Register)): New.
+	(add(BankRegister,BankRegister)): Use.
+
 	* IndirectBankRegisterMap.java (add(String)): Delete.
 	
 	* PPCBankRegisters.java (PPC32BE_ON_PPC64BE): Use
diff --git a/frysk-core/frysk/proc/IndirectBankRegisterMap.java b/frysk-core/frysk/proc/IndirectBankRegisterMap.java
index 81aadf5..5547258 100644
--- a/frysk-core/frysk/proc/IndirectBankRegisterMap.java
+++ b/frysk-core/frysk/proc/IndirectBankRegisterMap.java
@@ -70,11 +70,16 @@ class IndirectBankRegisterMap extends BankRegisterMap {
 	}
     }
 
+    IndirectBankRegisterMap add(Register reg32, int bank, int offset,
+				int size) {
+	add(new BankRegister(bank, offset, size, reg32.getName()));
+	return this;
+    }
+
     private IndirectBankRegisterMap add(BankRegister reg32,
 					BankRegister reg64) {
-	add(new BankRegister(reg64.getBank(), offset(reg32, reg64),
-			     reg32.getLength(), reg32.getName()));
-	return this;
+	return add(reg32.getRegister(),
+		   reg64.getBank(), offset(reg32, reg64), reg32.getLength());
     }
 
     IndirectBankRegisterMap add(Register reg32, Register reg64) {
diff --git a/frysk-core/frysk/proc/X86BankRegisters.java b/frysk-core/frysk/proc/X86BankRegisters.java
index b28c1e7..d2cd468 100644
--- a/frysk-core/frysk/proc/X86BankRegisters.java
+++ b/frysk-core/frysk/proc/X86BankRegisters.java
@@ -68,29 +68,34 @@ public class X86BankRegisters {
 	.add(new BankRegister (0, 48, 4, IA32Registers.EIP))
 	.add(new BankRegister (0, 56, 4, IA32Registers.EFLAGS))
 	.add(new BankRegister (0, 60, 4, IA32Registers.ESP))
-	.add(new BankRegister (1, 0, 4, "cwd"))
-	.add(new BankRegister (1, 4, 4, "swd"))
-	.add(new BankRegister (1, 8, 4, "twd"))
-	.add(new BankRegister (1, 12, 4, IA32Registers.FIP))
-	.add(new BankRegister (1, 16, 4, IA32Registers.FCS))
-	.add(new BankRegister (1, 20, 4, "foo"))
-	.add(new BankRegister (1, 24, 4, "fos"))
-	.add(new BankRegister (1, 28, 10, X87Registers.ST0))
-	.add(new BankRegister (1, 38, 10, X87Registers.ST1))
-	.add(new BankRegister (1, 48, 10, X87Registers.ST2))
-	.add(new BankRegister (1, 58, 10, X87Registers.ST3))
-	.add(new BankRegister (1, 68, 10, X87Registers.ST4))
-	.add(new BankRegister (1, 78, 10, X87Registers.ST5))
-	.add(new BankRegister (1, 88, 10, X87Registers.ST6))
-	.add(new BankRegister (1, 98, 10, X87Registers.ST7))
-	.add(new BankRegister (2, 160, 16, IA32Registers.XMM0))
-	.add(new BankRegister (2, 176, 16, IA32Registers.XMM1))
-	.add(new BankRegister (2, 192, 16, IA32Registers.XMM2))
-	.add(new BankRegister (2, 208, 16, IA32Registers.XMM3))
-	.add(new BankRegister (2, 224, 16, IA32Registers.XMM4))
-	.add(new BankRegister (2, 240, 16, IA32Registers.XMM5))
-	.add(new BankRegister (2, 256, 16, IA32Registers.XMM6))
-	.add(new BankRegister (2, 272, 16, IA32Registers.XMM7))
+    // Get all FP registers from FXSAVE area.
+	.add(new BankRegister(2, 0x00, 2, X87Registers.FCW))
+	.add(new BankRegister(2, 0x02, 2, X87Registers.FSW))
+	.add(new BankRegister(2, 0x04, 1, X87Registers.FTW))
+	.add(new BankRegister(2, 0x06, 2, X87Registers.FOP))
+	.add(new BankRegister(2, 0x08, 4, X87Registers.EIP))
+	.add(new BankRegister(2, 0x0c, 2, X87Registers.CS))
+	.add(new BankRegister(2, 0x10, 4, X87Registers.DP))
+	.add(new BankRegister(2, 0x14, 2, X87Registers.DS))
+	.add(new BankRegister(2, 0x18, 2, X87Registers.MXCSR))
+	.add(new BankRegister(2, 0x1c, 2, X87Registers.MXCSR_MASK))
+	.add(new BankRegister(2, 0x20, 10, X87Registers.ST0))
+	.add(new BankRegister(2, 0x30, 10, X87Registers.ST1))
+	.add(new BankRegister(2, 0x40, 10, X87Registers.ST2))
+	.add(new BankRegister(2, 0x50, 10, X87Registers.ST3))
+	.add(new BankRegister(2, 0x60, 10, X87Registers.ST4))
+	.add(new BankRegister(2, 0x70, 10, X87Registers.ST5))
+	.add(new BankRegister(2, 0x80, 10, X87Registers.ST6))
+	.add(new BankRegister(2, 0x90, 10, X87Registers.ST7))
+	.add(new BankRegister(2, 0xa0, 16, X87Registers.XMM0))
+	.add(new BankRegister(2, 0xb0, 16, X87Registers.XMM1))
+	.add(new BankRegister(2, 0xc0, 16, X87Registers.XMM2))
+	.add(new BankRegister(2, 0xd0, 16, X87Registers.XMM3))
+	.add(new BankRegister(2, 0xe0, 16, X87Registers.XMM4))
+	.add(new BankRegister(2, 0xf0, 16, X87Registers.XMM5))
+	.add(new BankRegister(2, 0x100, 16, X87Registers.XMM6))
+	.add(new BankRegister(2, 0x110, 16, X87Registers.XMM7))
+    // debug registers
 	.add(new BankRegister (3, 252, 4, IA32Registers.D0))
 	.add(new BankRegister (3, 256, 4, IA32Registers.D1))
 	.add(new BankRegister (3, 260, 4, IA32Registers.D2))
@@ -129,38 +134,40 @@ public class X86BankRegisters {
 	.add(new BankRegister(0, 120, 8, X8664Registers.ORIG_RAX))
 	.add(new BankRegister(0, 168, 8, X8664Registers.FS_BASE))
 	.add(new BankRegister(0, 176, 8, X8664Registers.GS_BASE))
-	.add(new BankRegister(1, 0, 2, "cwd"))
-	.add(new BankRegister(1, 2, 2, "swd"))
-	.add(new BankRegister(1, 4, 2, "ftw"))
-	.add(new BankRegister(1, 6, 2, "fop"))
-	.add(new BankRegister(1, 8, 8, "fprip"))
-	.add(new BankRegister(1, 16, 8, "rdp"))
-	.add(new BankRegister(1, 24, 4, "mxcsr"))
-	.add(new BankRegister(1, 28, 4, "mxcsr_mask"))
-	.add(new BankRegister(1, 32, 10, X87Registers.ST0))
-	.add(new BankRegister(1, 48, 10, X87Registers.ST1))
-	.add(new BankRegister(1, 64, 10, X87Registers.ST2))
-	.add(new BankRegister(1, 80, 10, X87Registers.ST3))
-	.add(new BankRegister(1, 96, 10, X87Registers.ST4))
-	.add(new BankRegister(1, 112, 10, X87Registers.ST5))
-	.add(new BankRegister(1, 128, 10, X87Registers.ST6))
-	.add(new BankRegister(1, 144, 10, X87Registers.ST7))
-	.add(new BankRegister(1, 160, 16, X8664Registers.XMM0))
-	.add(new BankRegister(1, 176, 16, X8664Registers.XMM1))
-	.add(new BankRegister(1, 192, 16, X8664Registers.XMM2))
-	.add(new BankRegister(1, 208, 16, X8664Registers.XMM3))
-	.add(new BankRegister(1, 224, 16, X8664Registers.XMM4))


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



More information about the Frysk-cvs mailing list