From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7882) id EBA0B385840D; Mon, 21 Nov 2022 01:58:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EBA0B385840D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1668995892; bh=ruXoI7y9y8zic7yZCkdeHfvh02N8vJKUglR0QKJVleU=; h=From:To:Subject:Date:From; b=CGw/2qCrHPiLiNo8sTtDRtN21X0QlaDZ2n+EeqTvbdq86VEbDDjxqmGDgskU59n7M nYwjLuIs5srJuVzrB6c/AlhcfPLwZU5J0nEFd1vf6KNFCIRYx+gWynwc4FBkfctDzX ZAK21jz7bTH+R/OJYanOGJza6Nn7DRT/C2IWvOKw= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Jiangshuai Li To: gdb-cvs@sourceware.org Subject: [binutils-gdb] gdb/csky just return type from csky_vector_type() for vector resgisters X-Act-Checkin: binutils-gdb X-Git-Author: Jiangshuai Li X-Git-Refname: refs/heads/master X-Git-Oldrev: e710dfe0cf3be7cd87ba397ffa6c74706d8ecbfb X-Git-Newrev: 84f9fbe90e5429adb9dee68f04f44c92fa9e2345 Message-Id: <20221121015812.EBA0B385840D@sourceware.org> Date: Mon, 21 Nov 2022 01:58:12 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D84f9fbe90e54= 29adb9dee68f04f44c92fa9e2345 commit 84f9fbe90e5429adb9dee68f04f44c92fa9e2345 Author: Jiangshuai Li Date: Wed Nov 9 19:50:35 2022 +0800 gdb/csky just return type from csky_vector_type() for vector resgisters =20 Some gdb stubs may not describe the type for vector registers in the tdesc-xml and only send bitsize=3D"128", gdb can't deal with a reg with default type int with bitsize=3D=3D128. So Just return csky_vector= _type() for vector resgisters. Diff: --- gdb/csky-tdep.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gdb/csky-tdep.c b/gdb/csky-tdep.c index ced1b032a7b..f293d204da2 100644 --- a/gdb/csky-tdep.c +++ b/gdb/csky-tdep.c @@ -711,6 +711,13 @@ csky_register_type (struct gdbarch *gdbarch, int reg_n= r) return builtin_type (gdbarch)->builtin_int32; } =20 + /* Vector register has 128 bits, and only in ck810. Just return + csky_vector_type(), not check tdesc_has_registers(), is in case + of some GDB stub does not describe type for Vector resgisters + in the target-description-xml. */ + if ((reg_nr >=3D CSKY_VR0_REGNUM) && (reg_nr <=3D CSKY_VR0_REGNUM + 15)) + return csky_vector_type (gdbarch); + /* If type has been described in tdesc-xml, use it. */ if (tdesc_has_registers (gdbarch_target_desc (gdbarch))) { @@ -733,10 +740,6 @@ csky_register_type (struct gdbarch *gdbarch, int reg_n= r) return arch_float_type (gdbarch, 64, "builtin_type_csky_ext", floatformats_ieee_double); =20 - /* Vector register has 128 bits, and only in ck810. */ - if ((reg_nr >=3D CSKY_VR0_REGNUM) && (reg_nr <=3D CSKY_VR0_REGNUM + 15)) - return csky_vector_type (gdbarch); - /* Profiling general register has 48 bits, we use 64bit. */ if ((reg_nr >=3D CSKY_PROFGR_REGNUM) && (reg_nr <=3D CSKY_PROFGR_REGNUM = + 44)) return builtin_type (gdbarch)->builtin_uint64;