From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25976 invoked by alias); 14 Jan 2008 14:37:16 -0000 Received: (qmail 25767 invoked by uid 22791); 14 Jan 2008 14:37:15 -0000 X-Spam-Status: No, hits=-2.7 required=5.0 tests=AWL,BAYES_50,RCVD_IN_DNSWL_MED X-Spam-Check-By: sourceware.org Received: from igw3.br.ibm.com (HELO igw3.br.ibm.com) (32.104.18.26) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 14 Jan 2008 14:36:49 +0000 Received: from mailhub3.br.ibm.com (unknown [9.18.232.110]) by igw3.br.ibm.com (Postfix) with ESMTP id 419C8390085 for ; Mon, 14 Jan 2008 12:28:39 -0200 (BRDT) Received: from d24av02.br.ibm.com (d24av02.br.ibm.com [9.18.232.47]) by mailhub3.br.ibm.com (8.13.8/8.13.8/NCO v8.7) with ESMTP id m0EEak7C2945082 for ; Mon, 14 Jan 2008 12:36:46 -0200 Received: from d24av02.br.ibm.com (loopback [127.0.0.1]) by d24av02.br.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id m0EEajB7022162 for ; Mon, 14 Jan 2008 12:36:45 -0200 Received: from [9.8.2.135] ([9.8.2.135]) by d24av02.br.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id m0EEajI6022142 for ; Mon, 14 Jan 2008 12:36:45 -0200 Message-ID: <478B737D.9020408@linux.vnet.ibm.com> Date: Mon, 14 Jan 2008 14:37:00 -0000 From: Carlos Eduardo Seo Organization: IBM Linux Technology Center Brazil User-Agent: Thunderbird 2.0.0.9 (X11/20071116) MIME-Version: 1.0 To: Frysk Mailing List Subject: LinuxPPCRegisterBanks.java - adequate reg banks X-Enigmail-Version: 0.95.6 OpenPGP: id=8BFFA900 Content-Type: multipart/mixed; boundary="------------040700000409080006080308" X-Virus-Checked: Checked by ClamAV on sourceware.org X-IsSubscribed: yes Mailing-List: contact frysk-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-owner@sourceware.org X-SW-Source: 2008-q1/txt/msg00021.txt.bz2 This is a multi-part message in MIME format. --------------040700000409080006080308 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 387 Hello all I broke the original bank into more logical banks: general-purpose registers, FP registers and Altivec registers. This is how they are stored in the core file, btw (CORE/PRSTATUS, CORE/FPREGSET, LINUX/PPC_VMX, respectively). This way, PPC code is analog to IA32 code, as Phil required. What do you think? -- Carlos Eduardo Seo Software Engineer IBM Linux Technology Center --------------040700000409080006080308 Content-Type: text/x-patch; name="PPCRegisterBanks.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="PPCRegisterBanks.patch" Content-length: 2797 Index: frysk/frysk-core/frysk/bank/LinuxPPCRegisterBanks.java =================================================================== --- frysk.orig/frysk-core/frysk/bank/LinuxPPCRegisterBanks.java +++ frysk/frysk-core/frysk/bank/LinuxPPCRegisterBanks.java @@ -5,6 +5,7 @@ // // Contributed by // Jose Flavio Aguilar Paulino (joseflavio@gmail.com) +// Carlos Eduardo Seo (cseo@linux.vnet.ibm.com) // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -48,7 +49,7 @@ import frysk.isa.PPC64Registers; public class LinuxPPCRegisterBanks { - public static final BankRegisterMap USR32 + public static final BankRegisterMap GREGS32 = new BankRegisterMap() .add(new BankRegister(0, 4, PPC32Registers.GPR0)) .add(new BankRegister(4, 4, PPC32Registers.GPR1)) @@ -94,6 +95,10 @@ public class LinuxPPCRegisterBanks { .add(new BankRegister(164, 4, PPC32Registers.DAR)) .add(new BankRegister(168, 4, PPC32Registers.DSISR)) .add(new BankRegister(172, 4, PPC32Registers.RESULT)) + ; + + public static final BankRegisterMap FPREGS32 + = new BankRegisterMap() .add(new BankRegister(192, 8, PPC32Registers.FPR0)) // 48*4 .add(new BankRegister(200, 8, PPC32Registers.FPR1)) .add(new BankRegister(208, 8, PPC32Registers.FPR2)) @@ -130,7 +135,7 @@ public class LinuxPPCRegisterBanks { .add(new BankRegister(452, 4, PPC32Registers.FPSCR)) //(PT_FPR0 + 2*32 + 1) ; - public static final BankRegisterMap USR64 + public static final BankRegisterMap GREGS64 = new BankRegisterMap() .add(new BankRegister(0, 8, PPC64Registers.GPR0)) .add(new BankRegister(8, 8, PPC64Registers.GPR1)) @@ -176,6 +181,10 @@ public class LinuxPPCRegisterBanks { .add(new BankRegister(328, 8, PPC64Registers.DAR)) .add(new BankRegister(336, 8, PPC64Registers.DSISR)) .add(new BankRegister(344, 8, PPC64Registers.RESULT)) + ; + + public static final BankRegisterMap FPREGS64 + = new BankRegisterMap() .add(new BankRegister(384, 8, PPC64Registers.FPR0)) //PT_FPR0 48 .add(new BankRegister(392, 8, PPC64Registers.FPR1)) .add(new BankRegister(400, 8, PPC64Registers.FPR2)) @@ -209,8 +218,12 @@ public class LinuxPPCRegisterBanks { .add(new BankRegister(624, 8, PPC64Registers.FPR30)) .add(new BankRegister(632, 8, PPC64Registers.FPR31)) .add(new BankRegister(640, 4, PPC64Registers.FPSCR)) + ; + + public static final BankRegisterMap VRREGS + = new BankRegisterMap() // Fixme: need to implement altivec registers - // Vector Registers are 128 bit wide + // Vector Registers are 128 bit wide - in both PPC32 and PPC64 //.add(new BankRegister(0, 656, 16, PPC64Registers.VR0)) PT_VR0 82 //... //.add(new BankRegister(0, 1152, 16, PPC64Registers.V31)) PT_VR0 + 31*2), index 148 --------------040700000409080006080308--