From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31567 invoked by alias); 15 Feb 2006 01:37:27 -0000 Received: (qmail 31559 invoked by uid 22791); 15 Feb 2006 01:37:27 -0000 X-Spam-Check-By: sourceware.org Received: from potter.codesourcery.com (HELO mail.codesourcery.com) (65.74.133.4) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 15 Feb 2006 01:37:26 +0000 Received: (qmail 18025 invoked from network); 15 Feb 2006 01:37:24 -0000 Received: from unknown (HELO 81-178-226-166.dsl.pipex.com) (paul@127.0.0.2) by mail.codesourcery.com with ESMTPA; 15 Feb 2006 01:37:24 -0000 From: Paul Brook To: gdb-patches@sourceware.org Subject: [patch] Arm prologe skipping broken on 64-bit hosts Date: Wed, 15 Feb 2006 01:37:00 -0000 User-Agent: KMail/1.9.1 MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_RXo8D/qxNzsHoA1" Message-Id: <200602150137.21894.paul@codesourcery.com> Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2006-02/txt/msg00312.txt.bz2 --Boundary-00=_RXo8D/qxNzsHoA1 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 567 The Arm prologue skipping code is broken on 64-bit hosts. The problem is that the opcode is loaded as a signed integer, then stored in an "unsigned long". This is then compared against unsigned 32-bit constants. The attached patch fixes this by reading the instruction as an unsigned value. For consistency I made the same change in other similar routines. Tested with cross to arm-none-eabi. Ok? Paul 2006-02-15 Paul Brook * arm-tdep.c (arm_skip_prologue, thumb_get_next_pc, arm_get_next_pc): Load insn opcodes as unsigned values. --Boundary-00=_RXo8D/qxNzsHoA1 Content-Type: text/plain; charset="us-ascii"; name="commit.gdb_host64" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="commit.gdb_host64" Content-length: 159 2006-02-15 Paul Brook * arm-tdep.c (arm_skip_prologue, thumb_get_next_pc, arm_get_next_pc): Load insn opcodes as unsigned values. --Boundary-00=_RXo8D/qxNzsHoA1--