From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13607 invoked by alias); 1 Mar 2010 00:57:00 -0000 Received: (qmail 13582 invoked by uid 22791); 1 Mar 2010 00:56:58 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40 X-Spam-Check-By: sourceware.org Received: from mail-ww0-f41.google.com (HELO mail-ww0-f41.google.com) (74.125.82.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 01 Mar 2010 00:56:53 +0000 Received: by wwb24 with SMTP id 24so985536wwb.0 for ; Sun, 28 Feb 2010 16:56:51 -0800 (PST) MIME-Version: 1.0 Received: by 10.216.88.83 with SMTP id z61mr2609885wee.14.1267405010880; Sun, 28 Feb 2010 16:56:50 -0800 (PST) In-Reply-To: <6dc9ffc81002281615s376df02cm1807b3b1189fd0f0@mail.gmail.com> References: <20100222164509.GE30100@caradoc.them.org> <6dc9ffc81002281615s376df02cm1807b3b1189fd0f0@mail.gmail.com> Date: Mon, 01 Mar 2010 00:57:00 -0000 Message-ID: <6dc9ffc81002281656s1662374etd945bc11626fa1f9@mail.gmail.com> Subject: Re: [patch] Add support for and in target descriptions From: "H.J. Lu" To: gdb-patches@sourceware.org, Daniel Jacobowitz Content-Type: multipart/mixed; boundary=0016e6d6417775c87c0480b2b985 X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2010-03/txt/msg00001.txt.bz2 --0016e6d6417775c87c0480b2b985 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 4627 On Sun, Feb 28, 2010 at 4:15 PM, H.J. Lu wrote: > On Mon, Feb 22, 2010 at 8:45 AM, Daniel Jacobowitz = wrote: >> Hi H.J., >> >> This patch adds support to the XML language. =A0Could you try >> using this to move the two x86 flags registers from out of >> target-descriptions.c? >> >> The flags support is straightforward and covered by the manual. >> It's not tested because I couldn't find a way to do so; you can't >> ptype a flags register, and you can't add dummy registers whose value >> you can get at, only for ptype. >> >> The patch also adds , which is a little more interesting. >> It's got two forms: >> >> * Register containing integer bitfields. =A0Each field must be >> explicitly positioned. =A0The size must be pre-declared - otherwise >> the representation GDB uses for big-endian bitfields can't figure out >> how far from the MSB edge of the register the field is. >> >> * Register containing typed non-bitfield structures. =A0Each field must >> be implicitly positioned. =A0There's no support for padding. >> >> These are somewhat annoying limitations, but they suffice for >> everything I've needed this for since I wrote the patch, which was >> originally several years ago; it's been stuck in my submission queue >> because it was tangled up with other local patches. =A0Since they are >> "must" restrictions, they are easy to lift in the future; we can make >> GDB more permissive. >> >> These I was able to type, although I'd have liked more exhaustive >> tests... for that, I'd need typeof, which turns out to be annoyingly >> hard to implement in GDB's parser :-( >> >> Eli, how's the documentation? >> >> -- >> Daniel Jacobowitz >> CodeSourcery >> >> 2010-02-22 =A0Daniel Jacobowitz =A0 >> >> =A0 =A0 =A0 =A0* gdbtypes.c (append_composite_type_field_raw): New. >> =A0 =A0 =A0 =A0(append_composite_type_field_aligned): Use the new functi= on. >> =A0 =A0 =A0 =A0* gdbtypes.h (append_composite_type_field_raw): Declare. >> =A0 =A0 =A0 =A0* target-descriptions.c (struct tdesc_type_field): Add st= art and end. >> =A0 =A0 =A0 =A0(struct tdesc_type_flag): New type. >> =A0 =A0 =A0 =A0(struct tdesc_type): Add TDESC_TYPE_STRUCT and TDESC_TYPE= _FLAGS to >> =A0 =A0 =A0 =A0kind. =A0Add size to u.u. =A0Add u.f for flags. >> =A0 =A0 =A0 =A0(tdesc_gdb_type): Handle TDESC_TYPE_STRUCT and TDESC_TYPE= _FLAGS. >> =A0 =A0 =A0 =A0(tdesc_free_type): Likewise. >> =A0 =A0 =A0 =A0(tdesc_create_struct, tdesc_set_struct_size, tdesc_create= _flags): New. >> =A0 =A0 =A0 =A0(tdesc_add_field): Handle TDESC_TYPE_STRUCT. >> =A0 =A0 =A0 =A0(tdesc_add_bitfield, tdesc_add_flag): New. >> =A0 =A0 =A0 =A0* target-descriptions.h (tdesc_create_struct, tdesc_set_s= truct_size) >> =A0 =A0 =A0 =A0(tdesc_create_flags, tdesc_add_bitfield, tdesc_add_flag):= Declare. >> =A0 =A0 =A0 =A0* xml-tdesc.c (struct tdesc_parsing_data): Rename current= _union to >> =A0 =A0 =A0 =A0current_type. =A0Add current_type_size and current_type_i= s_flags. >> =A0 =A0 =A0 =A0(tdesc_start_union): Clear the new fields. >> =A0 =A0 =A0 =A0(tdesc_start_struct, tdesc_start_flags): New. >> =A0 =A0 =A0 =A0(tdesc_start_field): Handle struct fields, including bitf= ields. >> =A0 =A0 =A0 =A0(field_attributes): Make type optional. =A0Add start and = end. >> =A0 =A0 =A0 =A0(union_children): Rename to struct_union_children. >> =A0 =A0 =A0 =A0(union_attributes): Rename to struct_union_attributes. = =A0Add optional >> =A0 =A0 =A0 =A0size. >> =A0 =A0 =A0 =A0(flags_attributes): New. >> =A0 =A0 =A0 =A0(feature_children): Add struct and flags. >> =A0 =A0 =A0 =A0* features/gdb-target.dtd: Add flags and struct to featur= es. >> =A0 =A0 =A0 =A0Make field type optional. =A0Add field start and end. >> >> =A0 =A0 =A0 =A0* gdb.texinfo (Types): Describe and . >> >> =A0 =A0 =A0 =A0* gdb.xml/extra-regs.xml: Add struct1, struct2, and flags >> =A0 =A0 =A0 =A0types. =A0Add structreg, bitfields, and flags registers. >> =A0 =A0 =A0 =A0* gdb.xml/tdesc-regs.exp: Test structreg and bitfields >> =A0 =A0 =A0 =A0registers. >> > > It doesn't work. "case TDESC_TYPE_FLAGS:" is missing in > maint_print_c_tdesc_cmd. > > This patch makes it to work. However, there is no equivalent of append_flags_type_flag (type, 1, NULL); I have .... I got (gdb) p $eflags $1 =3D [ PF ZF IF ] ^ extra white space (gdb) instead of (gdb) p $eflags $1 =3D [ PF ZF IF ] (gdb) --=20 H.J. --0016e6d6417775c87c0480b2b985 Content-Type: text/plain; charset=US-ASCII; name="gdb-flag-1.patch" Content-Disposition: attachment; filename="gdb-flag-1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g68k3r7r0 Content-length: 3701 ZGlmZiAtLWdpdCBhL2dkYi90YXJnZXQtZGVzY3JpcHRpb25zLmMgYi9nZGIv dGFyZ2V0LWRlc2NyaXB0aW9ucy5jCmluZGV4IDc3ZGQzN2IuLmFmODc2MzMg MTAwNjQ0Ci0tLSBhL2dkYi90YXJnZXQtZGVzY3JpcHRpb25zLmMKKysrIGIv Z2RiL3RhcmdldC1kZXNjcmlwdGlvbnMuYwpAQCAtMTI2LDcgKzEyNiw2IEBA IHR5cGVkZWYgc3RydWN0IHRkZXNjX3R5cGUKICAgICBUREVTQ19UWVBFX0lF RUVfRE9VQkxFLAogICAgIFRERVNDX1RZUEVfQVJNX0ZQQV9FWFQsCiAgICAg VERFU0NfVFlQRV9JMzg3X0VYVCwKLSAgICBUREVTQ19UWVBFX0kzODZfRUZM QUdTLAogICAgIFRERVNDX1RZUEVfSTM4Nl9NWENTUiwKIAogICAgIC8qIFR5 cGVzIGRlZmluZWQgYnkgYSB0YXJnZXQgZmVhdHVyZS4gICovCkBAIC00ODQs NyArNDgzLDYgQEAgc3RhdGljIHN0cnVjdCB0ZGVzY190eXBlIHRkZXNjX3By ZWRlZmluZWRfdHlwZXNbXSA9CiAgIHsgImllZWVfZG91YmxlIiwgVERFU0Nf VFlQRV9JRUVFX0RPVUJMRSB9LAogICB7ICJhcm1fZnBhX2V4dCIsIFRERVND X1RZUEVfQVJNX0ZQQV9FWFQgfSwKICAgeyAiaTM4N19leHQiLCBUREVTQ19U WVBFX0kzODdfRVhUIH0sCi0gIHsgImkzODZfZWZsYWdzIiwgVERFU0NfVFlQ RV9JMzg2X0VGTEFHUyB9LAogICB7ICJpMzg2X214Y3NyIiwgVERFU0NfVFlQ RV9JMzg2X01YQ1NSIH0KIH07CiAKQEAgLTYwNywzMyArNjA1LDYgQEAgdGRl c2NfZ2RiX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3Qg dGRlc2NfdHlwZSAqdGRlc2NfdHlwZSkKICAgICAgIHJldHVybiBhcmNoX2Zs b2F0X3R5cGUgKGdkYmFyY2gsIC0xLCAiYnVpbHRpbl90eXBlX2kzODdfZXh0 IiwKIAkJCSAgICAgIGZsb2F0Zm9ybWF0c19pMzg3X2V4dCk7CiAKLSAgICBj YXNlIFRERVNDX1RZUEVfSTM4Nl9FRkxBR1M6Ci0gICAgICB7Ci0Jc3RydWN0 IHR5cGUgKnR5cGU7Ci0KLQl0eXBlID0gYXJjaF9mbGFnc190eXBlIChnZGJh cmNoLCAiYnVpbHRpbl90eXBlX2kzODZfZWZsYWdzIiwgNCk7Ci0JYXBwZW5k X2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMCwgIkNGIik7Ci0JYXBwZW5kX2Zs YWdzX3R5cGVfZmxhZyAodHlwZSwgMSwgTlVMTCk7Ci0JYXBwZW5kX2ZsYWdz X3R5cGVfZmxhZyAodHlwZSwgMiwgIlBGIik7Ci0JYXBwZW5kX2ZsYWdzX3R5 cGVfZmxhZyAodHlwZSwgNCwgIkFGIik7Ci0JYXBwZW5kX2ZsYWdzX3R5cGVf ZmxhZyAodHlwZSwgNiwgIlpGIik7Ci0JYXBwZW5kX2ZsYWdzX3R5cGVfZmxh ZyAodHlwZSwgNywgIlNGIik7Ci0JYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAo dHlwZSwgOCwgIlRGIik7Ci0JYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlw ZSwgOSwgIklGIik7Ci0JYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwg MTAsICJERiIpOwotCWFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIDEx LCAiT0YiKTsKLQlhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAxNCwg Ik5UIik7Ci0JYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMTYsICJS RiIpOwotCWFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIDE3LCAiVk0i KTsKLQlhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAxOCwgIkFDIik7 Ci0JYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMTksICJWSUYiKTsK LQlhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAyMCwgIlZJUCIpOwot CWFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIDIxLCAiSUQiKTsKLQot CXJldHVybiB0eXBlOwotICAgICAgfQotICAgIGJyZWFrOwotCiAgICAgY2Fz ZSBUREVTQ19UWVBFX0kzODZfTVhDU1I6CiAgICAgICB7CiAJc3RydWN0IHR5 cGUgKnR5cGU7CkBAIC0xNjAyLDYgKzE1NzMsNyBAQCBtYWludF9wcmludF9j X3RkZXNjX2NtZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQogICBzdHJ1 Y3QgdGRlc2NfcmVnICpyZWc7CiAgIHN0cnVjdCB0ZGVzY190eXBlICp0eXBl OwogICBzdHJ1Y3QgdGRlc2NfdHlwZV9maWVsZCAqZjsKKyAgc3RydWN0IHRk ZXNjX3R5cGVfZmxhZyAqZmxhZzsKICAgaW50IGl4LCBpeDIsIGl4MzsKIAog ICAvKiBVc2UgdGhlIGdsb2JhbCB0YXJnZXQtc3VwcGxpZWQgZGVzY3JpcHRp b24sIG5vdCB0aGUgY3VycmVudApAQCAtMTcxNSw2ICsxNjg3LDE4IEBAIG1h aW50X3ByaW50X2NfdGRlc2NfY21kIChjaGFyICphcmdzLCBpbnQgZnJvbV90 dHkpCiAJCSAgICAgZi0+bmFtZSk7CiAJCX0KIAkgICAgICBicmVhazsKKwkg ICAgY2FzZSBUREVTQ19UWVBFX0ZMQUdTOgorCSAgICAgIHByaW50Zl91bmZp bHRlcmVkCisJCSgiICBmaWVsZF90eXBlID0gdGRlc2NfY3JlYXRlX2ZsYWdz IChmZWF0dXJlLCBcIiVzXCIsICVkKTtcbiIsCisJCSB0eXBlLT5uYW1lLCAo aW50KSB0eXBlLT51LmYuc2l6ZSk7CisJICAgICAgZm9yIChpeDMgPSAwOwor CQkgICBWRUNfaXRlcmF0ZSAodGRlc2NfdHlwZV9mbGFnLCB0eXBlLT51LmYu ZmxhZ3MsIGl4MywKKwkJCQlmbGFnKTsKKwkJICAgaXgzKyspCisJCXByaW50 Zl91bmZpbHRlcmVkCisJCSAgKCIgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90 eXBlLCAlZCwgXCIlc1wiKTtcbiIsCisJCSAgIGZsYWctPnN0YXJ0LCBmbGFn LT5uYW1lKTsKKwkgICAgICBicmVhazsKIAkgICAgZGVmYXVsdDoKIAkgICAg ICBlcnJvciAoXygiQyBvdXRwdXQgaXMgbm90IHN1cHBvcnRlZCB0eXBlIFwi JXNcIi4iKSwgdHlwZS0+bmFtZSk7CiAJICAgIH0K --0016e6d6417775c87c0480b2b985--