From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28781 invoked by alias); 17 Jul 2014 02:05:05 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 27130 invoked by uid 55); 17 Jul 2014 02:04:42 -0000 From: "hp at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/61737] ICE when building libgcc for cris cross-compiler Date: Thu, 17 Jul 2014 02:05:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 4.9.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: hp at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: hp at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2014-07/txt/msg01184.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61737 --- Comment #16 from Hans-Peter Nilsson --- Author: hp Date: Thu Jul 17 02:03:52 2014 New Revision: 212708 URL: https://gcc.gnu.org/viewcvs?rev=212708&root=gcc&view=rev Log: PR target/61737. * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P) (TARGET_CANNOT_FORCE_CONST_MEM): Define. (cris_cannot_force_const_mem, cris_legitimate_constant_p): New functions. (cris_print_index, cris_print_operand, cris_constant_index_p) (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P. (cris_address_cost): Ditto last CONSTANT_P. (cris_symbol_type_of): Rename from cris_pic_symbol_type_of. All callers changed. Yield cris_offsettable_symbol for non-PIC constant symbolic expressions including labels. Yield cris_unspec for all unspecs. (cris_expand_pic_call_address): New parameter MARKERP. Set its target to pic_offset_table_rtx for calls that will likely go through PLT, const0_rtx when they can't. All callers changed. Assert flag_pic. Use CONSTANT_P, not CONSTANT_ADDRESS_P, for symbolic expressions to be PICified. Remove second, redundant, assert on can_create_pseudo_p returning non-zero. Use replace_equiv_address_nv, not replace_equiv_address, for final operand update. * config/cris/cris.md ("movsi"): Move variable t to pattern toplevel. Adjust assert for new cris_symbol_type member. Use CONSTANT_P instead of CONSTANT_ADDRESS_P. ("*movsi_internal") : Make check for valid unspec operands for lapc stricter. : Clear condition codes. ("call", "call_value"): Use second incoming operand as a marker for pic-offset-table-register being used. ("*expanded_call_non_v32", "*expanded_call_v32") ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For second incoming operand to CALL, match cris_call_type_marker. ("*expanded_call_value_side"): Ditto. Disable before reload_completed. ("*expanded_call_side"): Ditto. Fix typo in comment. (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not CONSTANT_P. * config/cris/predicates.md ("cris_call_type_marker"): New predicate. * config/cris/cris.h (CRIS_CONSTANT_P): New macro. (enum cris_symbol_type): Rename from cris_pic_symbol_type. All users changed. Add members cris_offsettable_symbol and cris_unspec. (cris_symbol_type): Rename from cris_pic_symbol_type. * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not just CONSTANT_P. * config/cris/cris-protos.h (cris_symbol_type_of, cris_expand_pic_call_address): Adjust prototypes. (cris_legitimate_constant_p): New prototype. Modified: trunk/gcc/ChangeLog trunk/gcc/config/cris/constraints.md trunk/gcc/config/cris/cris-protos.h trunk/gcc/config/cris/cris.c trunk/gcc/config/cris/cris.h trunk/gcc/config/cris/cris.md trunk/gcc/config/cris/predicates.md