From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22046 invoked by alias); 13 Sep 2005 16:17:08 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 21827 invoked by uid 22791); 13 Sep 2005 16:16:53 -0000 Received: from public.id2-vpn.continvity.gns.novell.com (HELO emea1-mh.id2.novell.com) (195.33.99.129) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Tue, 13 Sep 2005 16:16:53 +0000 Received: from EMEA1-MTA by emea1-mh.id2.novell.com with Novell_GroupWise; Tue, 13 Sep 2005 17:16:50 +0200 Message-Id: <432717DB.76F0.0078.0@novell.com> Date: Tue, 13 Sep 2005 16:17:00 -0000 From: "Jan Beulich" To: Cc: "Richard Henderson" Subject: [PATCH] x86 CFI extensions References: <432070850200007800024465@emea1-mh.id2.novell.com> <20050908154645.GN3966@smtp.west.cox.net> <43207BA30200007800024502@emea1-mh.id2.novell.com> <20050908161334.GP3966@smtp.west.cox.net> <43214D2D02000078000247B5@emea1-mh.id2.novell.com> <20050910055836.GA28662@twiddle.net> <4325448C0200007800024DF5@emea1-mh.id2.novell.com> <20050912074914.GA31047@twiddle.net> In-Reply-To: <20050912074914.GA31047@twiddle.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=__Part5D7F35AB.0__=" X-SW-Source: 2005-09/txt/msg00099.txt.bz2 This is a MIME message. If you are reading this text, you may want to consider changing to a mail reader or gateway that understands how to properly handle MIME multipart messages. --=__Part5D7F35AB.0__= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 3521 >>> Richard Henderson 12.09.05 09:49:14 >>> >On Mon, Sep 12, 2005 at 09:04:12AM +0200, Jan Beulich wrote: >> But truly I think the processor-specific pieces of Dwarf's >> frame unwind spec should provide numbering for the complete set of >> registers. > >Except there is no standards body for this. So *someone* will >have to make it up. > >Make it up and put it in gas and gdb: that will make it a defacto standard. This adds to gdb a little more than the minimum set of registers needed to at least fully understand CFI annotations for Linux' pt_regs. Built and tested on i686-pc-linux-gnu and x86_64-unknown-linux-gnu. Jan gdb/ 2005-09-13 Jan Beulich * amd64-tdep.h (AMD64_FCTRL_REGNUM, AMD64_FSTAT_REGNUM, AMD64_MXCSR_REGNUM): New. * amd64-tdep.c (amd64_dwarf_regmap): Add eflags, selector regs, mxcsr, fp control and status words. * i386-tdep.c (): Add selector regs, mxcsr, fp control and status words. --- /home/jbeulich/src/gdb/mainline/2005-09-13/gdb/amd64-tdep.c 2005-07-05 09:09:52.000000000 +0200 +++ 2005-09-13/gdb/amd64-tdep.c 2005-09-13 17:50:00.723239944 +0200 @@ -212,7 +212,35 @@ static int amd64_dwarf_regmap[] = AMD64_ST0_REGNUM + 0, AMD64_ST0_REGNUM + 1, AMD64_ST0_REGNUM + 2, AMD64_ST0_REGNUM + 3, AMD64_ST0_REGNUM + 4, AMD64_ST0_REGNUM + 5, - AMD64_ST0_REGNUM + 6, AMD64_ST0_REGNUM + 7 + AMD64_ST0_REGNUM + 6, AMD64_ST0_REGNUM + 7, + + /* Control and Status Flags Register. */ + AMD64_EFLAGS_REGNUM, + + /* Selector Registers. */ + AMD64_ES_REGNUM, + AMD64_CS_REGNUM, + AMD64_SS_REGNUM, + AMD64_DS_REGNUM, + AMD64_FS_REGNUM, + AMD64_GS_REGNUM, + -1, + -1, + + /* Segment Base Address Registers. */ + -1, + -1, + -1, + -1, + + /* Special Selector Registers. */ + -1, + -1, + + /* Floating Point Control Registers. */ + AMD64_MXCSR_REGNUM, + AMD64_FCTRL_REGNUM, + AMD64_FSTAT_REGNUM }; static const int amd64_dwarf_regmap_len = --- /home/jbeulich/src/gdb/mainline/2005-09-13/gdb/amd64-tdep.h 2004-04-12 18:17:20.000000000 +0200 +++ 2005-09-13/gdb/amd64-tdep.h 2005-09-13 15:41:55.000000000 +0200 @@ -52,8 +52,11 @@ enum amd64_regnum AMD64_FS_REGNUM, /* %fs */ AMD64_GS_REGNUM, /* %gs */ AMD64_ST0_REGNUM = 24, /* %st0 */ + AMD64_FCTRL_REGNUM = AMD64_ST0_REGNUM + 8, + AMD64_FSTAT_REGNUM = AMD64_ST0_REGNUM + 9, AMD64_XMM0_REGNUM = 40, /* %xmm0 */ - AMD64_XMM1_REGNUM /* %xmm1 */ + AMD64_XMM1_REGNUM, /* %xmm1 */ + AMD64_MXCSR_REGNUM = AMD64_XMM0_REGNUM + 16 }; /* Number of general purpose registers. */ --- /home/jbeulich/src/gdb/mainline/2005-09-13/gdb/i386-tdep.c 2005-07-26 08:26:49.000000000 +0200 +++ 2005-09-13/gdb/i386-tdep.c 2005-09-13 11:46:18.000000000 +0200 @@ -225,12 +225,25 @@ i386_svr4_reg_to_regnum (int reg) /* Floating-point registers. */ return reg - 11 + I387_ST0_REGNUM; } - else if (reg >= 21) + else if (reg >= 21 && reg <= 36) { /* The SSE and MMX registers have the same numbers as with dbx. */ return i386_dbx_reg_to_regnum (reg); } + switch (reg) + { + case 37: return I387_FCTRL_REGNUM; + case 38: return I387_FSTAT_REGNUM; + case 39: return I387_MXCSR_REGNUM; + case 40: return I386_ES_REGNUM; + case 41: return I386_CS_REGNUM; + case 42: return I386_SS_REGNUM; + case 43: return I386_DS_REGNUM; + case 44: return I386_FS_REGNUM; + case 45: return I386_GS_REGNUM; + } + /* This will hopefully provoke a warning. */ return NUM_REGS + NUM_PSEUDO_REGS; } --=__Part5D7F35AB.0__= Content-Type: application/octet-stream; name="gdb-mainline-x86-cfi-extensions.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="gdb-mainline-x86-cfi-extensions.patch" Content-length: 4181 VGhpcyBhZGRzIHRvIGdkYiBhIGxpdHRsZSBtb3JlIHRoYW4gdGhlIG1pbmlt dW0gc2V0IG9mIHJlZ2lzdGVycyBuZWVkZWQKdG8gYXQgbGVhc3QgZnVsbHkg dW5kZXJzdGFuZCBDRkkgYW5ub3RhdGlvbnMgZm9yIExpbnV4JyBwdF9yZWdz LgoKQnVpbHQgYW5kIHRlc3RlZCBvbiBpNjg2LXBjLWxpbnV4LWdudSBhbmQg eDg2XzY0LXVua25vd24tbGludXgtZ251LgoKSmFuCgpnZGIvCjIwMDUtMDkt MTMgIEphbiBCZXVsaWNoICA8amJldWxpY2hAbm92ZWxsLmNvbT4KCgkqIGFt ZDY0LXRkZXAuaCAoQU1ENjRfRkNUUkxfUkVHTlVNLCBBTUQ2NF9GU1RBVF9S RUdOVU0sCglBTUQ2NF9NWENTUl9SRUdOVU0pOiBOZXcuCgkqIGFtZDY0LXRk ZXAuYyAoYW1kNjRfZHdhcmZfcmVnbWFwKTogQWRkIGVmbGFncywgc2VsZWN0 b3IgcmVncywKCW14Y3NyLCBmcCBjb250cm9sIGFuZCBzdGF0dXMgd29yZHMu CgkqIGkzODYtdGRlcC5jICgpOiBBZGQgc2VsZWN0b3IgcmVncywgbXhjc3Is IGZwIGNvbnRyb2wgYW5kIHN0YXR1cwoJd29yZHMuCgotLS0gL2hvbWUvamJl dWxpY2gvc3JjL2dkYi9tYWlubGluZS8yMDA1LTA5LTEzL2dkYi9hbWQ2NC10 ZGVwLmMJMjAwNS0wNy0wNSAwOTowOTo1Mi4wMDAwMDAwMDAgKzAyMDAKKysr IDIwMDUtMDktMTMvZ2RiL2FtZDY0LXRkZXAuYwkyMDA1LTA5LTEzIDE3OjUw OjAwLjcyMzIzOTk0NCArMDIwMApAQCAtMjEyLDcgKzIxMiwzNSBAQCBzdGF0 aWMgaW50IGFtZDY0X2R3YXJmX3JlZ21hcFtdID0KICAgQU1ENjRfU1QwX1JF R05VTSArIDAsIEFNRDY0X1NUMF9SRUdOVU0gKyAxLAogICBBTUQ2NF9TVDBf UkVHTlVNICsgMiwgQU1ENjRfU1QwX1JFR05VTSArIDMsCiAgIEFNRDY0X1NU MF9SRUdOVU0gKyA0LCBBTUQ2NF9TVDBfUkVHTlVNICsgNSwKLSAgQU1ENjRf U1QwX1JFR05VTSArIDYsIEFNRDY0X1NUMF9SRUdOVU0gKyA3CisgIEFNRDY0 X1NUMF9SRUdOVU0gKyA2LCBBTUQ2NF9TVDBfUkVHTlVNICsgNywKKyAgCisg IC8qIENvbnRyb2wgYW5kIFN0YXR1cyBGbGFncyBSZWdpc3Rlci4gICovCisg IEFNRDY0X0VGTEFHU19SRUdOVU0sCisKKyAgLyogU2VsZWN0b3IgUmVnaXN0 ZXJzLiAgKi8KKyAgQU1ENjRfRVNfUkVHTlVNLAorICBBTUQ2NF9DU19SRUdO VU0sCisgIEFNRDY0X1NTX1JFR05VTSwKKyAgQU1ENjRfRFNfUkVHTlVNLAor ICBBTUQ2NF9GU19SRUdOVU0sCisgIEFNRDY0X0dTX1JFR05VTSwKKyAgLTEs CisgIC0xLAorCisgIC8qIFNlZ21lbnQgQmFzZSBBZGRyZXNzIFJlZ2lzdGVy cy4gICovCisgIC0xLAorICAtMSwKKyAgLTEsCisgIC0xLAorCisgIC8qIFNw ZWNpYWwgU2VsZWN0b3IgUmVnaXN0ZXJzLiAgKi8KKyAgLTEsCisgIC0xLAor CisgIC8qIEZsb2F0aW5nIFBvaW50IENvbnRyb2wgUmVnaXN0ZXJzLiAgKi8K KyAgQU1ENjRfTVhDU1JfUkVHTlVNLAorICBBTUQ2NF9GQ1RSTF9SRUdOVU0s CisgIEFNRDY0X0ZTVEFUX1JFR05VTQogfTsKIAogc3RhdGljIGNvbnN0IGlu dCBhbWQ2NF9kd2FyZl9yZWdtYXBfbGVuID0KLS0tIC9ob21lL2piZXVsaWNo L3NyYy9nZGIvbWFpbmxpbmUvMjAwNS0wOS0xMy9nZGIvYW1kNjQtdGRlcC5o CTIwMDQtMDQtMTIgMTg6MTc6MjAuMDAwMDAwMDAwICswMjAwCisrKyAyMDA1 LTA5LTEzL2dkYi9hbWQ2NC10ZGVwLmgJMjAwNS0wOS0xMyAxNTo0MTo1NS4w MDAwMDAwMDAgKzAyMDAKQEAgLTUyLDggKzUyLDExIEBAIGVudW0gYW1kNjRf cmVnbnVtCiAgIEFNRDY0X0ZTX1JFR05VTSwJCS8qICVmcyAqLwogICBBTUQ2 NF9HU19SRUdOVU0sCQkvKiAlZ3MgKi8KICAgQU1ENjRfU1QwX1JFR05VTSA9 IDI0LAkvKiAlc3QwICovCisgIEFNRDY0X0ZDVFJMX1JFR05VTSA9IEFNRDY0 X1NUMF9SRUdOVU0gKyA4LAorICBBTUQ2NF9GU1RBVF9SRUdOVU0gPSBBTUQ2 NF9TVDBfUkVHTlVNICsgOSwKICAgQU1ENjRfWE1NMF9SRUdOVU0gPSA0MCwJ LyogJXhtbTAgKi8KLSAgQU1ENjRfWE1NMV9SRUdOVU0JCS8qICV4bW0xICov CisgIEFNRDY0X1hNTTFfUkVHTlVNLAkJLyogJXhtbTEgKi8KKyAgQU1ENjRf TVhDU1JfUkVHTlVNID0gQU1ENjRfWE1NMF9SRUdOVU0gKyAxNgogfTsKIAog LyogTnVtYmVyIG9mIGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMuICAqLwot LS0gL2hvbWUvamJldWxpY2gvc3JjL2dkYi9tYWlubGluZS8yMDA1LTA5LTEz L2dkYi9pMzg2LXRkZXAuYwkyMDA1LTA3LTI2IDA4OjI2OjQ5LjAwMDAwMDAw MCArMDIwMAorKysgMjAwNS0wOS0xMy9nZGIvaTM4Ni10ZGVwLmMJMjAwNS0w OS0xMyAxMTo0NjoxOC4wMDAwMDAwMDAgKzAyMDAKQEAgLTIyNSwxMiArMjI1 LDI1IEBAIGkzODZfc3ZyNF9yZWdfdG9fcmVnbnVtIChpbnQgcmVnKQogICAg ICAgLyogRmxvYXRpbmctcG9pbnQgcmVnaXN0ZXJzLiAgKi8KICAgICAgIHJl dHVybiByZWcgLSAxMSArIEkzODdfU1QwX1JFR05VTTsKICAgICB9Ci0gIGVs c2UgaWYgKHJlZyA+PSAyMSkKKyAgZWxzZSBpZiAocmVnID49IDIxICYmIHJl ZyA8PSAzNikKICAgICB7CiAgICAgICAvKiBUaGUgU1NFIGFuZCBNTVggcmVn aXN0ZXJzIGhhdmUgdGhlIHNhbWUgbnVtYmVycyBhcyB3aXRoIGRieC4gICov CiAgICAgICByZXR1cm4gaTM4Nl9kYnhfcmVnX3RvX3JlZ251bSAocmVnKTsK ICAgICB9CiAKKyAgc3dpdGNoIChyZWcpCisgICAgeworICAgIGNhc2UgMzc6 IHJldHVybiBJMzg3X0ZDVFJMX1JFR05VTTsKKyAgICBjYXNlIDM4OiByZXR1 cm4gSTM4N19GU1RBVF9SRUdOVU07CisgICAgY2FzZSAzOTogcmV0dXJuIEkz ODdfTVhDU1JfUkVHTlVNOworICAgIGNhc2UgNDA6IHJldHVybiBJMzg2X0VT X1JFR05VTTsKKyAgICBjYXNlIDQxOiByZXR1cm4gSTM4Nl9DU19SRUdOVU07 CisgICAgY2FzZSA0MjogcmV0dXJuIEkzODZfU1NfUkVHTlVNOworICAgIGNh c2UgNDM6IHJldHVybiBJMzg2X0RTX1JFR05VTTsKKyAgICBjYXNlIDQ0OiBy ZXR1cm4gSTM4Nl9GU19SRUdOVU07CisgICAgY2FzZSA0NTogcmV0dXJuIEkz ODZfR1NfUkVHTlVNOworICAgIH0KKwogICAvKiBUaGlzIHdpbGwgaG9wZWZ1 bGx5IHByb3Zva2UgYSB3YXJuaW5nLiAgKi8KICAgcmV0dXJuIE5VTV9SRUdT ICsgTlVNX1BTRVVET19SRUdTOwogfQo= --=__Part5D7F35AB.0__=--