From patchwork Mon Jul 10 13:55:23 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yao Qi X-Patchwork-Id: 21498 Received: (qmail 28056 invoked by alias); 10 Jul 2017 13:55:59 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 27628 invoked by uid 89); 10 Jul 2017 13:55:58 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.4 required=5.0 tests=BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM, SPF_PASS autolearn=ham version=3.3.2 spammy=H*r:sk:static. X-HELO: mail-it0-f42.google.com Received: from mail-it0-f42.google.com (HELO mail-it0-f42.google.com) (209.85.214.42) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 10 Jul 2017 13:55:56 +0000 Received: by mail-it0-f42.google.com with SMTP id 188so10620342itx.0 for ; Mon, 10 Jul 2017 06:55:56 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=1HjOBWrQOOg4xK5joNKjh6vupfb8ok/Skueul1BhVI8=; b=hpGKZa5XWY9uQ79Z8q9MXAVKraafQvMrN4o+zshlHZOF6Dt6PSLv2qMh7f+VClGDsH GX+Y1x9aLuUsVL5mvtNlj/WompmCaI9HQJrXmPVjQvwR2GghjOjzcb0DRR0s+o36V3Ll h1V+HMyqODYEyczb/CnJ6QhYTxKW1knTfl5R81I/inIQr6MHhlrZg/ninqzC9QZ3nWwK iU9L2r1LNmujd7Sgzyz5PP778zfNptg1qZC8GkAfDQwzyfUxfG5DZP7gm9nx+nfWtpNZ 6OAyy6qWg2FV2cPuIyFHdXKXd6F+H0ARLGTEsFf2TNzu4wFYKTVPysm5Sx6wew5yo3B5 xKmw== X-Gm-Message-State: AIVw112iYXVsAlbcJDyEbR44Aks8aq0gJ7lKULSb+TdQMWM+T+Qm+6hh 6HIVu26a6CaHegt5 X-Received: by 10.36.95.65 with SMTP id r62mr10849500itb.40.1499694955208; Mon, 10 Jul 2017 06:55:55 -0700 (PDT) Received: from E107787-LIN.cambridge.arm.com (static.42.136.251.148.clients.your-server.de. [148.251.136.42]) by smtp.gmail.com with ESMTPSA id v96sm5973996ioi.50.2017.07.10.06.55.54 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 10 Jul 2017 06:55:54 -0700 (PDT) From: Yao Qi X-Google-Original-From: Yao Qi To: gdb-patches@sourceware.org Subject: [PATCH 09/26] Adjust code generated by regformats/regdat.sh Date: Mon, 10 Jul 2017 14:55:23 +0100 Message-Id: <1499694940-23564-10-git-send-email-yao.qi@linaro.org> In-Reply-To: <1499694940-23564-1-git-send-email-yao.qi@linaro.org> References: <1499694940-23564-1-git-send-email-yao.qi@linaro.org> X-IsSubscribed: yes regformats/regdat.sh generate some *-generated.c files when GDBserver is built. Each .c file has some static variables, which are only used within function init_registers_XXX, like this, static struct reg regs_i386_linux[] = { { "eax", 0, 32 }, { "ecx", 32, 32 }, ... }; static const char *expedite_regs_i386_linux[] = { "ebp", "esp", "eip", 0 }; static const char *xmltarget_i386_linux = "i386-linux.xml"; void init_registers_i386_linux (void) { ... } This patch moves these static variables' definitions to function init_registers_XXX, so the generated files look like this, void init_registers_i386_linux (void) { static struct target_desc tdesc_i386_linux_s; struct target_desc *result = &tdesc_i386_linux_s; static struct reg regs_i386_linux[] = { ... }; static const char *expedite_regs_i386_linux[] = { "ebp", "esp", "eip", 0 }; static const char *xmltarget_i386_linux = "i386-linux.xml"; ... } We want GDBserver create target descriptions dynamically in each init_registers_XXXX functions, so this patch moves all the related code into function init_registers_XXXX, so that the following patch can easily change function init_registers_XXXX to create target description dynamically, rather than using current pre-generated array. gdb: 2017-06-06 Yao Qi * regformats/regdat.sh: Adjust code order. --- gdb/regformats/regdat.sh | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/gdb/regformats/regdat.sh b/gdb/regformats/regdat.sh index 651f703..2c764cd 100755 --- a/gdb/regformats/regdat.sh +++ b/gdb/regformats/regdat.sh @@ -123,6 +123,15 @@ while do_read do if test "${type}" = "name"; then name="${entry}" + + echo "const struct target_desc *tdesc_${name};" + echo "" + echo "void" + echo "init_registers_${name} (void)" + echo "{" + echo " static struct target_desc tdesc_${name}_s;" + echo " struct target_desc *result = &tdesc_${name}_s;" + echo "static struct reg regs_${name}[] = {" continue elif test "${type}" = "xmltarget"; then @@ -169,14 +178,6 @@ fi echo cat <reg_defs = regs_${name}; result->num_registers = sizeof (regs_${name}) / sizeof (regs_${name}[0]);