From patchwork Tue May 16 10:48:16 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yao Qi X-Patchwork-Id: 20460 Received: (qmail 75748 invoked by alias); 16 May 2017 10:48:58 -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 75354 invoked by uid 89); 16 May 2017 10:48:36 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.4 required=5.0 tests=AWL, 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= X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-pg0-f65.google.com Received: from mail-pg0-f65.google.com (HELO mail-pg0-f65.google.com) (74.125.83.65) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 16 May 2017 10:48:34 +0000 Received: by mail-pg0-f65.google.com with SMTP id u187so20942722pgb.1; Tue, 16 May 2017 03:48:31 -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=pSWiyLokJ7QEmhBMwgWiGYn+9K8yq8dTDEDfOBu9x1I=; b=rt8B8sraACQAZ9MAUeQOzxjSYMKF+YTXoBK3JjQATycIwWovcrvpiDX8IieGCbjzZK 3maNOTe6UZ+TyDLCI2THq3Sq3e+APXeu26u2hoVdOH0RMgZ4FdtUhpHt0pIAuoQXGdr2 4BFJFHt6T1yVu6R5vjV6aRlwMmdBnH3qh44o25QVoUj4movqKdFCvCX6HLRJIr8sPPRE oPYnDhNUB7DbmFGanJIwcXpm6ohiBOAecSsqgfgF9hbRUOfPXCfEgAzMWHL3WfKdFnM3 FxJe5uKjs3RUhRDHSxXThA8+iB00or1QscHLh/jw+0Rq+qEf1/bJD23TMayckPaLoBOF 5XVw== X-Gm-Message-State: AODbwcC6kMbrPFKLvGEwV+sNjRV3q7t0AwR75SKVWPvP0AO/n4aV235S ralTh+MmxVB5FB3y X-Received: by 10.98.110.138 with SMTP id j132mr11121575pfc.51.1494931709815; Tue, 16 May 2017 03:48:29 -0700 (PDT) Received: from E107787-LIN.cambridge.arm.com (gcc114.osuosl.org. [140.211.9.72]) by smtp.gmail.com with ESMTPSA id e64sm26559372pfl.49.2017.05.16.03.48.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 16 May 2017 03:48:29 -0700 (PDT) From: Yao Qi X-Google-Original-From: Yao Qi To: binutils@sourceware.org, gdb-patches@sourceware.org Subject: [PATCH 4/6] Use disassble.c:disassembler select rl78 disassembler Date: Tue, 16 May 2017 11:48:16 +0100 Message-Id: <1494931698-15309-5-git-send-email-yao.qi@linaro.org> In-Reply-To: <1494931698-15309-1-git-send-email-yao.qi@linaro.org> References: <1494931698-15309-1-git-send-email-yao.qi@linaro.org> X-IsSubscribed: yes This patch changes rl78 to let disassble.c:disassembler select disassembler. rl78_get_disassembler doesn't handle the case that abfd is NULL, so this patch also fix it. gdb: 2017-05-15 Yao Qi * rl78-tdep.c (rl78_gdbarch_init): Don't call set_gdbarch_print_insn. opcodes: 2017-05-15 Yao Qi * rl78-dis.c (rl78_get_disassembler): If parameter abfd is NULL, set cpu to E_FLAG_RL78_ANY_CPU. --- gdb/rl78-tdep.c | 3 --- opcodes/rl78-dis.c | 6 +++++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/gdb/rl78-tdep.c b/gdb/rl78-tdep.c index 307a760..5775f96 100644 --- a/gdb/rl78-tdep.c +++ b/gdb/rl78-tdep.c @@ -1470,9 +1470,6 @@ rl78_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_sw_breakpoint_from_kind (gdbarch, rl78_breakpoint::bp_from_kind); set_gdbarch_decr_pc_after_break (gdbarch, 1); - /* Disassembly. */ - set_gdbarch_print_insn (gdbarch, print_insn_rl78); - /* Frames, prologues, etc. */ set_gdbarch_inner_than (gdbarch, core_addr_lessthan); set_gdbarch_skip_prologue (gdbarch, rl78_skip_prologue); diff --git a/opcodes/rl78-dis.c b/opcodes/rl78-dis.c index 1839436..799cd38 100644 --- a/opcodes/rl78-dis.c +++ b/opcodes/rl78-dis.c @@ -406,7 +406,11 @@ print_insn_rl78_g14 (bfd_vma addr, disassemble_info * dis) disassembler_ftype rl78_get_disassembler (bfd *abfd) { - int cpu = abfd->tdata.elf_obj_data->elf_header->e_flags & E_FLAG_RL78_CPU_MASK; + int cpu = E_FLAG_RL78_ANY_CPU; + + if (abfd != NULL) + cpu = abfd->tdata.elf_obj_data->elf_header->e_flags & E_FLAG_RL78_CPU_MASK; + switch (cpu) { case E_FLAG_RL78_G10: