From patchwork Mon Oct 3 15:52:03 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Brook X-Patchwork-Id: 117476 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 7C128B6EE8 for ; Tue, 4 Oct 2011 02:52:26 +1100 (EST) Received: (qmail 13070 invoked by alias); 3 Oct 2011 15:52:24 -0000 Received: (qmail 13060 invoked by uid 22791); 3 Oct 2011 15:52:23 -0000 X-SWARE-Spam-Status: No, hits=-0.8 required=5.0 tests=AWL, BAYES_00, FROM_12LTRDOM, TW_SV X-Spam-Check-By: sourceware.org Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 03 Oct 2011 15:52:07 +0000 Received: from nat-ies.mentorg.com ([192.94.31.2] helo=EU1-MAIL.mgc.mentorg.com) by relay1.mentorg.com with esmtp id 1RAkoJ-0004cm-1q from Paul_Brook@mentor.com for gcc-patches@gcc.gnu.org; Mon, 03 Oct 2011 08:52:07 -0700 Received: from nowt.org ([172.30.64.129]) by EU1-MAIL.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.1830); Mon, 3 Oct 2011 16:52:05 +0100 Received: from wren.localnet (wren.home [192.168.93.7]) by nowt.org (Postfix) with ESMTP id F3FB86EFB3; Mon, 3 Oct 2011 16:52:04 +0100 (BST) From: Paul Brook To: gcc-patches@gcc.gnu.org, Bernd Schmidt Subject: Fix C6x 24-bit unwinding opcodes Date: Mon, 3 Oct 2011 16:52:03 +0100 User-Agent: KMail/1.13.7 (Linux/3.0.0-1-amd64; KDE/4.6.5; x86_64; ; ) MIME-Version: 1.0 Message-Id: <201110031652.04721.paul@codesourcery.com> Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org The C6XABI defined persoality routines ID 3 and 4 use a single 24-bit block word of unwinding data. Patch below makes sure this is preserved, rather than treating it as a set of unwinding opcode bytes. I seem to have lost this bit of code when I merged the ARM and c6x implementations. Applied to svn trunk. Paul 2011-10-03 Paul Brook libgcc/ * unwind-arm-common.inc: Handle ID3/4 unwinding data. Index: libgcc/unwind-arm-common.inc =================================================================== --- libgcc/unwind-arm-common.inc (revision 179178) +++ libgcc/unwind-arm-common.inc (working copy) @@ -583,7 +583,7 @@ __gnu_unwind_pr_common (_Unwind_State st uws.words_left = 0; uws.bytes_left = 3; } - else + else if (id < 3) { uws.words_left = (uws.data >> 16) & 0xff; uws.data <<= 16;