From patchwork Fri Oct 29 15:31:15 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Koning X-Patchwork-Id: 69605 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 43402B70D6 for ; Sat, 30 Oct 2010 02:32:03 +1100 (EST) Received: (qmail 4683 invoked by alias); 29 Oct 2010 15:31:57 -0000 Received: (qmail 4670 invoked by uid 22791); 29 Oct 2010 15:31:56 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL, BAYES_00, T_LOTS_OF_MONEY, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from ausxippc101.us.dell.com (HELO ausxippc101.us.dell.com) (143.166.85.207) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 29 Oct 2010 15:31:51 +0000 X-Loopcount0: from 10.152.240.141 From: Paul Koning Subject: [PATCH] pdp11: correct trampoline Date: Fri, 29 Oct 2010 11:31:15 -0400 Message-Id: <39B50822-F65D-4B46-A739-8EADF55783E2@dell.com> To: gcc-patches Mime-Version: 1.0 (Apple Message framework v1081) 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 pdp11 backend had wrong instruction values for trampolines, which also causes an ICE. This patch cures both issues. Tested with build and make check. Committed. paul ChangeLog: 2010-10-29 Paul Koning * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct instruction encoding. Index: config/pdp11/pdp11.c =================================================================== --- config/pdp11/pdp11.c (revision 166060) +++ config/pdp11/pdp11.c (working copy) @@ -1908,8 +1908,8 @@ the following should work for shared I/D: - MV #STATIC, $4 0x940Y 0x0000 <- STATIC; Y = STATIC_CHAIN_REGNUM - JMP FUNCTION 0x0058 0x0000 <- FUNCTION + MOV #STATIC, $4 01270Y 0x0000 <- STATIC; Y = STATIC_CHAIN_REGNUM + JMP @#FUNCTION 000137 0x0000 <- FUNCTION */ static void @@ -1921,11 +1921,11 @@ gcc_assert (!TARGET_SPLIT); mem = adjust_address (m_tramp, HImode, 0); - emit_move_insn (mem, GEN_INT (0x9400+STATIC_CHAIN_REGNUM)); + emit_move_insn (mem, GEN_INT (012700+STATIC_CHAIN_REGNUM)); mem = adjust_address (m_tramp, HImode, 2); emit_move_insn (mem, chain_value); mem = adjust_address (m_tramp, HImode, 4); - emit_move_insn (mem, GEN_INT (0x0058)); + emit_move_insn (mem, GEN_INT (000137)); emit_move_insn (mem, fnaddr); }