From patchwork Mon Aug 21 15:28:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yao Qi X-Patchwork-Id: 22267 Received: (qmail 126953 invoked by alias); 21 Aug 2017 15:29:24 -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 126822 invoked by uid 89); 21 Aug 2017 15:29:23 -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-io0-f193.google.com Received: from mail-io0-f193.google.com (HELO mail-io0-f193.google.com) (209.85.223.193) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 21 Aug 2017 15:29:22 +0000 Received: by mail-io0-f193.google.com with SMTP id l190so2192998iol.2 for ; Mon, 21 Aug 2017 08:29:21 -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=taCanp10H0t46Lr78tO/ZQjEb8koJHGbHW4l6xZXf0zszBGBZPf3o9fR+eV0oqha6L diEtJMDj2l7Jrn0OBDAA6GycRXOCGkIevFPkQIe3Cfa0tV9qZ+XMOEC0vKlX22brAtof dFIqDqKLLwV7qfCUaFcRvrIoP8HR/t6SK0stjE6O8JqkTGQosD2m3+ArIi6srtvwNxnB XYGd+CTAaMkTjeF13uNaXPT8dQ+ZcoBEHsV7jzd3RAGdxAdb1M3A9LOgvNqOy2Wk6Fjo GiYbk6svztQPlUGhSEKw2cAdNRIj/gmX5JBtyoJLr8DtErNzc8PERr42JE5TmVpbSrep BMeg== X-Gm-Message-State: AHYfb5h+TFt7yOi9lhrIzOIZ8obZDuVq39mup2YyxCCEoAPDF7N4TVBg sI5z26jTRP2cvt3U X-Received: by 10.107.205.72 with SMTP id d69mr17210412iog.224.1503329360254; Mon, 21 Aug 2017 08:29:20 -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 p62sm5831589ioe.34.2017.08.21.08.29.19 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 21 Aug 2017 08:29:19 -0700 (PDT) From: Yao Qi X-Google-Original-From: Yao Qi To: gdb-patches@sourceware.org Subject: [PATCH 05/22] Adjust code generated by regformats/regdat.sh Date: Mon, 21 Aug 2017 16:28:50 +0100 Message-Id: <1503329347-26711-6-git-send-email-yao.qi@linaro.org> In-Reply-To: <1503329347-26711-1-git-send-email-yao.qi@linaro.org> References: <1503329347-26711-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]);