From patchwork Tue Jun 25 20:22:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aaron Sawdey X-Patchwork-Id: 1122247 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-503711-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="wbK4FIsG"; 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 45YHk8575Nz9s9h for ; Wed, 26 Jun 2019 06:26:24 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:in-reply-to:references:in-reply-to :references:message-id; q=dns; s=default; b=lqG+9vEPSewNd/ASRzZb XxYCX1MkewR/9Y4R9LOMstp9pbmEJzEyzClwUXEllaCt5VycB3Ih1wt76fbXgbiq lNp6tcwgBVxe22Dq32IB/kT3tuFo6GMHjc49+fvOtYWveKYIfV/FDBOEtE8cWtSZ FlUBZy3QM24cZCH3hHsrKwA= 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:from :to:cc:subject:date:in-reply-to:references:in-reply-to :references:message-id; s=default; bh=LSyVFxCVvGJ9ZRShXH/6BVuShR w=; b=wbK4FIsGh2myK6xFqReJOJef6SUmmXkyOz7398vDLPvVPx4dG91RXoFk74 l0vse4U6majYwVOqfL44q3Ww5lHj52z3UeYvWqTosWvgeNQusQnu+1yQi9wL3l7Y tqqMuvx+uLdaiHyo/RvccY4Ij2XjD6/Xs1u70gkzHQ5bAI9b0= Received: (qmail 41159 invoked by alias); 25 Jun 2019 20:25:50 -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 41083 invoked by uid 89); 25 Jun 2019 20:25:50 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-24.2 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.1 spammy= X-HELO: mx0a-001b2d01.pphosted.com Received: from mx0b-001b2d01.pphosted.com (HELO mx0a-001b2d01.pphosted.com) (148.163.158.5) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 25 Jun 2019 20:25:48 +0000 Received: from pps.filterd (m0098417.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x5PKMoba016088 for ; Tue, 25 Jun 2019 16:25:47 -0400 Received: from e14.ny.us.ibm.com (e14.ny.us.ibm.com [129.33.205.204]) by mx0a-001b2d01.pphosted.com with ESMTP id 2tbqncqcqx-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 25 Jun 2019 16:25:46 -0400 Received: from localhost by e14.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 25 Jun 2019 21:25:46 +0100 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; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Tue, 25 Jun 2019 21:25:42 +0100 Received: from b01ledav003.gho.pok.ibm.com (b01ledav003.gho.pok.ibm.com [9.57.199.108]) by b01cxnp22033.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id x5PKPgMB47055298 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2019 20:25:42 GMT Received: from b01ledav003.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id ED343B205F; Tue, 25 Jun 2019 20:25:41 +0000 (GMT) Received: from b01ledav003.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D0586B2065; Tue, 25 Jun 2019 20:25:41 +0000 (GMT) Received: from genoa.aus.stglabs.ibm.com (unknown [9.40.192.157]) by b01ledav003.gho.pok.ibm.com (Postfix) with ESMTP; Tue, 25 Jun 2019 20:25:41 +0000 (GMT) Received: by genoa.aus.stglabs.ibm.com (Postfix, from userid 1025) id 8CF55A60E3E; Tue, 25 Jun 2019 15:25:40 -0500 (CDT) From: acsawdey@linux.ibm.com To: gcc-patches@gcc.gnu.org Cc: segher@kernel.crashing.org, wschmidt@linux.ibm.com, dje.gcc@gmail.com, acsawdey@linux.ibm.com, chertykov@gmail.com Subject: [PATCH 06/30] Changes to avr Date: Tue, 25 Jun 2019 15:22:15 -0500 In-Reply-To: References: In-Reply-To: References: x-cbid: 19062520-0052-0000-0000-000003D624E1 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00011329; HX=3.00000242; KW=3.00000007; PH=3.00000004; SC=3.00000286; SDB=6.01223211; UDB=6.00643701; IPR=6.01004383; MB=3.00027467; MTD=3.00000008; XFM=3.00000015; UTC=2019-06-25 20:25:44 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 19062520-0053-0000-0000-000061756941 Message-Id: X-IsSubscribed: yes From: Aaron Sawdey * config/avr/avr-protos.h: Change movmem to cpymem. * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi, avr_out_movmem): Change movmem to cpymem. * config/avr/avr.md (movmemhi, movmem_, movmemx_): Change movmem to cpymem. --- gcc/config/avr/avr-protos.h | 4 ++-- gcc/config/avr/avr.c | 14 +++++++------- gcc/config/avr/avr.md | 32 ++++++++++++++++---------------- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/gcc/config/avr/avr-protos.h b/gcc/config/avr/avr-protos.h index dd0babb..31fe3a6 100644 --- a/gcc/config/avr/avr-protos.h +++ b/gcc/config/avr/avr-protos.h @@ -82,7 +82,7 @@ extern rtx avr_to_int_mode (rtx); extern void avr_expand_prologue (void); extern void avr_expand_epilogue (bool); -extern bool avr_emit_movmemhi (rtx*); +extern bool avr_emit_cpymemhi (rtx*); extern int avr_epilogue_uses (int regno); extern void avr_output_addr_vec (rtx_insn*, rtx); @@ -92,7 +92,7 @@ extern const char* avr_out_plus (rtx, rtx*, int* =NULL, int* =NULL, bool =true); extern const char* avr_out_round (rtx_insn *, rtx*, int* =NULL); extern const char* avr_out_addto_sp (rtx*, int*); extern const char* avr_out_xload (rtx_insn *, rtx*, int*); -extern const char* avr_out_movmem (rtx_insn *, rtx*, int*); +extern const char* avr_out_cpymem (rtx_insn *, rtx*, int*); extern const char* avr_out_insert_bits (rtx*, int*); extern bool avr_popcount_each_byte (rtx, int, int); extern bool avr_has_nibble_0xf (rtx); diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index 873a9da..b97faaf 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -9404,7 +9404,7 @@ avr_adjust_insn_length (rtx_insn *insn, int len) case ADJUST_LEN_MOV16: output_movhi (insn, op, &len); break; case ADJUST_LEN_MOV24: avr_out_movpsi (insn, op, &len); break; case ADJUST_LEN_MOV32: output_movsisf (insn, op, &len); break; - case ADJUST_LEN_MOVMEM: avr_out_movmem (insn, op, &len); break; + case ADJUST_LEN_CPYMEM: avr_out_cpymem (insn, op, &len); break; case ADJUST_LEN_XLOAD: avr_out_xload (insn, op, &len); break; case ADJUST_LEN_SEXT: avr_out_sign_extend (insn, op, &len); break; @@ -13321,7 +13321,7 @@ avr_emit3_fix_outputs (rtx (*gen)(rtx,rtx,rtx), rtx *op, } -/* Worker function for movmemhi expander. +/* Worker function for cpymemhi expander. XOP[0] Destination as MEM:BLK XOP[1] Source " " XOP[2] # Bytes to copy @@ -13330,7 +13330,7 @@ avr_emit3_fix_outputs (rtx (*gen)(rtx,rtx,rtx), rtx *op, Return FALSE if the operand compination is not supported. */ bool -avr_emit_movmemhi (rtx *xop) +avr_emit_cpymemhi (rtx *xop) { HOST_WIDE_INT count; machine_mode loop_mode; @@ -13407,14 +13407,14 @@ avr_emit_movmemhi (rtx *xop) Do the copy-loop inline. */ rtx (*fun) (rtx, rtx, rtx) - = QImode == loop_mode ? gen_movmem_qi : gen_movmem_hi; + = QImode == loop_mode ? gen_cpymem_qi : gen_cpymem_hi; insn = fun (xas, loop_reg, loop_reg); } else { rtx (*fun) (rtx, rtx) - = QImode == loop_mode ? gen_movmemx_qi : gen_movmemx_hi; + = QImode == loop_mode ? gen_cpymemx_qi : gen_cpymemx_hi; emit_move_insn (gen_rtx_REG (QImode, 23), a_hi8); @@ -13428,7 +13428,7 @@ avr_emit_movmemhi (rtx *xop) } -/* Print assembler for movmem_qi, movmem_hi insns... +/* Print assembler for cpymem_qi, cpymem_hi insns... $0 : Address Space $1, $2 : Loop register Z : Source address @@ -13436,7 +13436,7 @@ avr_emit_movmemhi (rtx *xop) */ const char* -avr_out_movmem (rtx_insn *insn ATTRIBUTE_UNUSED, rtx *op, int *plen) +avr_out_cpymem (rtx_insn *insn ATTRIBUTE_UNUSED, rtx *op, int *plen) { addr_space_t as = (addr_space_t) INTVAL (op[0]); machine_mode loop_mode = GET_MODE (op[1]); diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md index f263b69..e85bf49 100644 --- a/gcc/config/avr/avr.md +++ b/gcc/config/avr/avr.md @@ -70,7 +70,7 @@ (define_c_enum "unspec" [UNSPEC_STRLEN - UNSPEC_MOVMEM + UNSPEC_CPYMEM UNSPEC_INDEX_JMP UNSPEC_FMUL UNSPEC_FMULS @@ -158,7 +158,7 @@ tsthi, tstpsi, tstsi, compare, compare64, call, mov8, mov16, mov24, mov32, reload_in16, reload_in24, reload_in32, ufract, sfract, round, - xload, movmem, + xload, cpymem, ashlqi, ashrqi, lshrqi, ashlhi, ashrhi, lshrhi, ashlsi, ashrsi, lshrsi, @@ -992,20 +992,20 @@ ;;========================================================================= ;; move string (like memcpy) -(define_expand "movmemhi" +(define_expand "cpymemhi" [(parallel [(set (match_operand:BLK 0 "memory_operand" "") (match_operand:BLK 1 "memory_operand" "")) (use (match_operand:HI 2 "const_int_operand" "")) (use (match_operand:HI 3 "const_int_operand" ""))])] "" { - if (avr_emit_movmemhi (operands)) + if (avr_emit_cpymemhi (operands)) DONE; FAIL; }) -(define_mode_attr MOVMEM_r_d [(QI "r") +(define_mode_attr CPYMEM_r_d [(QI "r") (HI "wd")]) ;; $0 : Address Space @@ -1013,23 +1013,23 @@ ;; R30 : source address ;; R26 : destination address -;; "movmem_qi" -;; "movmem_hi" -(define_insn "movmem_" +;; "cpymem_qi" +;; "cpymem_hi" +(define_insn "cpymem_" [(set (mem:BLK (reg:HI REG_X)) (mem:BLK (reg:HI REG_Z))) (unspec [(match_operand:QI 0 "const_int_operand" "n")] - UNSPEC_MOVMEM) - (use (match_operand:QIHI 1 "register_operand" "")) + UNSPEC_CPYMEM) + (use (match_operand:QIHI 1 "register_operand" "")) (clobber (reg:HI REG_X)) (clobber (reg:HI REG_Z)) (clobber (reg:QI LPM_REGNO)) (clobber (match_operand:QIHI 2 "register_operand" "=1"))] "" { - return avr_out_movmem (insn, operands, NULL); + return avr_out_cpymem (insn, operands, NULL); } - [(set_attr "adjust_len" "movmem") + [(set_attr "adjust_len" "cpymem") (set_attr "cc" "clobber")]) @@ -1039,14 +1039,14 @@ ;; R23:Z : 24-bit source address ;; R26 : 16-bit destination address -;; "movmemx_qi" -;; "movmemx_hi" -(define_insn "movmemx_" +;; "cpymemx_qi" +;; "cpymemx_hi" +(define_insn "cpymemx_" [(set (mem:BLK (reg:HI REG_X)) (mem:BLK (lo_sum:PSI (reg:QI 23) (reg:HI REG_Z)))) (unspec [(match_operand:QI 0 "const_int_operand" "n")] - UNSPEC_MOVMEM) + UNSPEC_CPYMEM) (use (reg:QIHI 24)) (clobber (reg:HI REG_X)) (clobber (reg:HI REG_Z))