From patchwork Sat Jan 20 04:48:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bill Schmidt X-Patchwork-Id: 863922 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-471722-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="WjAH0FCJ"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zNlZk057Fz9s0g for ; Sat, 20 Jan 2018 15:48:42 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:to:cc :from:subject:date:mime-version:content-type :content-transfer-encoding:message-id; q=dns; s=default; b=kh8PK a3fY3kAP+rMxBcEwp2QM+JLYNsAjpzl7Blp2KepyWiGmT7kzdMquQkkCxrMrG8CG +9J6lmDu781eRtqEENVv0aE929FiUrclT/B8W3K5GYIDnI4ozNb82NeLsU60gZf0 4a1FzJwPYFYqM/u7kcP6l+dR5zfXcQAgTjvWP0= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:to:cc :from:subject:date:mime-version:content-type :content-transfer-encoding:message-id; s=default; bh=iNglWr9MIW+ qpNStdP42q8OGoWs=; b=WjAH0FCJPMOW3UgpPmMP9u1zKhUNAHwGzQzJD9ZcZ1W 1HnAdb+DCyHQgD6W4PzG+G9NkMm+/VBkwP0iYenLoZr+DjyGN2/umGWm+MiRBTpR EaAngxP9GhCnzU8fGCb8F59I0KMyi2wB8ZyUD2pZL49s6+23faUbA53OZIFnHT1U = Received: (qmail 87359 invoked by alias); 20 Jan 2018 04:48:33 -0000 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 Received: (qmail 87322 invoked by uid 89); 20 Jan 2018 04:48:31 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-8.8 required=5.0 tests=BAYES_00, GIT_PATCH_2, GIT_PATCH_3, KAM_ASCII_DIVIDERS, KAM_LAZY_DOMAIN_SECURITY, KAM_SHORT, LIKELY_SPAM_BODY, RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.2 spammy= X-HELO: mx0a-001b2d01.pphosted.com Received: from mx0a-001b2d01.pphosted.com (HELO mx0a-001b2d01.pphosted.com) (148.163.156.1) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 20 Jan 2018 04:48:26 +0000 Received: from pps.filterd (m0098396.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w0K4jjl9000726 for ; Fri, 19 Jan 2018 23:48:23 -0500 Received: from e14.ny.us.ibm.com (e14.ny.us.ibm.com [129.33.205.204]) by mx0a-001b2d01.pphosted.com with ESMTP id 2fkptqr8bc-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Fri, 19 Jan 2018 23:48:23 -0500 Received: from localhost by e14.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 19 Jan 2018 23:48:21 -0500 Received: from b01cxnp22033.gho.pok.ibm.com (9.57.198.23) by e14.ny.us.ibm.com (146.89.104.201) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Fri, 19 Jan 2018 23:48:19 -0500 Received: from b01ledav005.gho.pok.ibm.com (b01ledav005.gho.pok.ibm.com [9.57.199.110]) by b01cxnp22033.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w0K4mJ3639256190; Sat, 20 Jan 2018 04:48:19 GMT Received: from b01ledav005.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 238AEAE03C; Fri, 19 Jan 2018 23:49:33 -0500 (EST) Received: from BigMac.local (unknown [9.85.151.49]) by b01ledav005.gho.pok.ibm.com (Postfix) with ESMTP id C4BB6AE03B; Fri, 19 Jan 2018 23:49:32 -0500 (EST) To: GCC Patches Cc: Segher Boessenkool , David Edelsohn From: Bill Schmidt Subject: [PATCH v3, rs6000] Use $ instead of . for PC, use "crset 2" instead of "crset eq" Date: Fri, 19 Jan 2018 22:48:18 -0600 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 X-TM-AS-GCONF: 00 x-cbid: 18012004-0052-0000-0000-000002A5C624 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00008406; HX=3.00000241; KW=3.00000007; PH=3.00000004; SC=3.00000247; SDB=6.00977598; UDB=6.00495596; IPR=6.00757385; BA=6.00005786; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009; ZB=6.00000000; ZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00019133; XFM=3.00000015; UTC=2018-01-20 04:48:21 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18012004-0053-0000-0000-0000534C017C Message-Id: X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2018-01-20_02:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1709140000 definitions=main-1801200069 X-IsSubscribed: yes Hi, Here's another version of this patch incorporating the late-breaking news that the AIX assembler doesn't comprehend the "eq" symbol. Same as https://gcc.gnu.org/ml/gcc-patches/2018-01/msg01787.html but adding the change to use "crset 2" instead. This one is still regstrapping on BE/LE, trunk/7. If these all complete successfully, is this okay for trunk and backport? Thanks, Bill [gcc] 2018-01-19 Bill Schmidt David Edelsohn PR target/83946 * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv): Change "crset eq" to "crset 2". (*call_value_indirect_nonlocal_sysv): Likewise. (*call_indirect_aix_nospec): Likewise. (*call_value_indirect_aix_nospec): Likewise. (*call_indirect_elfv2_nospec): Likewise. (*call_value_indirect_elfv2_nospec): Likewise. (*sibcall_nonlocal_sysv): Change "crset eq" to "crset 2"; change assembly output from . to $. (*sibcall_value_nonlocal_sysv): Likewise. (indirect_jump_nospec): Change assembly output from . to $. (*tablejump_internal1_nospec): Likewise. [gcc/testsuite] 2018-01-19 Bill Schmidt David Edelsohn PR target/83946 * gcc.target/powerpc/safe-indirect-jump-1.c: Change expected assembly output from "crset eq" to "crset 2". * gcc.target/powerpc/safe-indirect-jump-2.c: Change expected assembly output from . to $. * gcc.target/powerpc/safe-indirect-jump-3.c: Likewise. * gcc.target/powerpc/safe-indirect-jump-1.c: Change expected assembly output from "crset eq" to "crset 2". * gcc.target/powerpc/safe-indirect-jump-8.c: Change expected assembly output from "crset eq" to "crset 2", and from . to $. Index: gcc/config/rs6000/rs6000.md =================================================================== --- gcc/config/rs6000/rs6000.md (revision 256894) +++ gcc/config/rs6000/rs6000.md (working copy) @@ -10457,7 +10457,7 @@ || which_alternative == 1 || which_alternative == 3) return "b%T0l"; else - return "crset eq\;beq%T0l-"; + return "crset 2\;beq%T0l-"; } [(set_attr "type" "jmpreg,jmpreg,jmpreg,jmpreg") (set (attr "length") @@ -10570,7 +10570,7 @@ || which_alternative == 1 || which_alternative == 3) return "b%T1l"; else - return "crset eq\;beq%T1l-"; + return "crset 2\;beq%T1l-"; } [(set_attr "type" "jmpreg,jmpreg,jmpreg,jmpreg") (set (attr "length") @@ -10731,7 +10731,7 @@ (set (reg:P TOC_REGNUM) (unspec:P [(match_operand:P 3 "const_int_operand" "n,n")] UNSPEC_TOCSLOT)) (clobber (reg:P LR_REGNO))] "DEFAULT_ABI == ABI_AIX && !rs6000_speculate_indirect_jumps" - "crset eq\; 2,%2\;beq%T0l-\; 2,%3(1)" + "crset 2\; 2,%2\;beq%T0l-\; 2,%3(1)" [(set_attr "type" "jmpreg") (set_attr "length" "16")]) @@ -10755,7 +10755,7 @@ (set (reg:P TOC_REGNUM) (unspec:P [(match_operand:P 4 "const_int_operand" "n,n")] UNSPEC_TOCSLOT)) (clobber (reg:P LR_REGNO))] "DEFAULT_ABI == ABI_AIX && !rs6000_speculate_indirect_jumps" - "crset eq\; 2,%3\;beq%T1l-\; 2,%4(1)" + "crset 2\; 2,%3\;beq%T1l-\; 2,%4(1)" [(set_attr "type" "jmpreg") (set_attr "length" "16")]) @@ -10780,7 +10780,7 @@ (set (reg:P TOC_REGNUM) (unspec:P [(match_operand:P 2 "const_int_operand" "n,n")] UNSPEC_TOCSLOT)) (clobber (reg:P LR_REGNO))] "DEFAULT_ABI == ABI_ELFv2 && !rs6000_speculate_indirect_jumps" - "crset eq\;beq%T0l-\; 2,%2(1)" + "crset 2\;beq%T0l-\; 2,%2(1)" [(set_attr "type" "jmpreg") (set_attr "length" "12")]) @@ -10803,7 +10803,7 @@ (set (reg:P TOC_REGNUM) (unspec:P [(match_operand:P 3 "const_int_operand" "n,n")] UNSPEC_TOCSLOT)) (clobber (reg:P LR_REGNO))] "DEFAULT_ABI == ABI_ELFv2 && !rs6000_speculate_indirect_jumps" - "crset eq\;beq%T1l-\; 2,%3(1)" + "crset 2\;beq%T1l-\; 2,%3(1)" [(set_attr "type" "jmpreg") (set_attr "length" "12")]) @@ -10987,7 +10987,7 @@ return \"b%T0\"; else /* Can use CR0 since it is volatile across sibcalls. */ - return \"crset eq\;beq%T0-\;b .\"; + return \"crset 2\;beq%T0-\;b $\"; } else if (DEFAULT_ABI == ABI_V4 && flag_pic) { @@ -11044,7 +11044,7 @@ return \"b%T1\"; else /* Can use CR0 since it is volatile across sibcalls. */ - return \"crset eq\;beq%T1-\;b .\"; + return \"crset 2\;beq%T1-\;b $\"; } else if (DEFAULT_ABI == ABI_V4 && flag_pic) { @@ -12566,7 +12566,7 @@ [(set (pc) (match_operand:P 0 "register_operand" "c,*l")) (clobber (match_operand:CC 1 "cc_reg_operand" "=y,y"))] "!rs6000_speculate_indirect_jumps" - "crset %E1\;beq%T0- %1\;b ." + "crset %E1\;beq%T0- %1\;b $" [(set_attr "type" "jmpreg") (set_attr "length" "12")]) @@ -12672,7 +12672,7 @@ (use (label_ref (match_operand 1))) (clobber (match_operand:CC 2 "cc_reg_operand" "=y,y"))] "!rs6000_speculate_indirect_jumps" - "crset %E2\;beq%T0- %2\;b ." + "crset %E2\;beq%T0- %2\;b $" [(set_attr "type" "jmpreg") (set_attr "length" "12")]) Index: gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c =================================================================== --- gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c (revision 256894) +++ gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c (working copy) @@ -10,5 +10,5 @@ int bar () return (*f) (); } -/* { dg-final { scan-assembler "crset eq" } } */ +/* { dg-final { scan-assembler "crset 2" } } */ /* { dg-final { scan-assembler "beqctrl-" } } */ Index: gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c =================================================================== --- gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c (revision 256894) +++ gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c (working copy) @@ -30,4 +30,4 @@ int foo (int x) /* { dg-final { scan-assembler "crset 30" } } */ /* { dg-final { scan-assembler "beqctr- 7" } } */ -/* { dg-final { scan-assembler "b ." } } */ +/* { dg-final { scan-assembler {b \$} } } */ Index: gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c =================================================================== --- gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c (revision 256894) +++ gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c (working copy) @@ -49,4 +49,4 @@ int foo (int x) /* { dg-final { scan-assembler "crset 30" } } */ /* { dg-final { scan-assembler "beqctr- 7" } } */ -/* { dg-final { scan-assembler "b ." } } */ +/* { dg-final { scan-assembler {b \$} } } */ Index: gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c =================================================================== --- gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c (revision 256894) +++ gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c (working copy) @@ -10,5 +10,5 @@ int bar () return (*f) () * 53; } -/* { dg-final { scan-assembler "crset eq" } } */ +/* { dg-final { scan-assembler "crset 2" } } */ /* { dg-final { scan-assembler "beqctrl-" } } */ Index: gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c =================================================================== --- gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c (revision 256894) +++ gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c (working copy) @@ -10,6 +10,6 @@ int bar () return (*f) (); } -/* { dg-final { scan-assembler "crset eq" } } */ +/* { dg-final { scan-assembler "crset 2" } } */ /* { dg-final { scan-assembler "beqctr-" } } */ -/* { dg-final { scan-assembler "b ." } } */ +/* { dg-final { scan-assembler {b \$} } } */