From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10643 invoked by alias); 6 Nov 2002 19:43:41 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 10635 invoked from network); 6 Nov 2002 19:43:40 -0000 Received: from unknown (HELO nile.gnat.com) (205.232.38.5) by sources.redhat.com with SMTP; 6 Nov 2002 19:43:40 -0000 Received: from Jinx (vsat-148-63-167-118.c189.t7.mrt.starband.net [148.63.167.118]) by nile.gnat.com (Postfix) with SMTP id 95FB6F28D2 for ; Wed, 6 Nov 2002 14:43:33 -0500 (EST) Message-ID: <010501c285cc$cb8886a0$0500a8c0@Jinx> Reply-To: "Douglas B Rupp" From: "Douglas B Rupp" To: Subject: [3.4-BIB]: Some new MD patterns for VMS Date: Wed, 06 Nov 2002 11:43:00 -0000 Organization: Ada Core Technologies, Inc MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0102_01C28589.B881C000" X-Priority: 3 X-MSMail-Priority: Normal X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-SW-Source: 2002-11/txt/msg00320.txt.bz2 This is a multi-part message in MIME format. ------=_NextPart_000_0102_01C28589.B881C000 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-length: 137 These patterns allow the use of vendor compiler support functions that are slightly faster than the default C functions. OK to commit? ------=_NextPart_000_0102_01C28589.B881C000 Content-Type: text/plain; name="alpha_md.diff.txt" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="alpha_md.diff.txt" Content-length: 4021 * config/alpha/alpha.md (movstrdi, clrstrdi): New VMS patterns. Index: gcc/config/alpha/alpha.md =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvs/gcc/gcc/gcc/config/alpha/alpha.md,v retrieving revision 1.195.4.4 diff -u -p -r1.195.4.4 alpha.md --- gcc/config/alpha/alpha.md 21 Oct 2002 17:52:08 -0000 1.195.4.4 +++ gcc/config/alpha/alpha.md 6 Nov 2002 19:20:18 -0000 @@ -6460,6 +6460,57 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi FAIL; }) =20 +(define_expand "movstrdi" + [(parallel [(set (match_operand:BLK 0 "memory_operand" "") + (match_operand:BLK 1 "memory_operand" "")) + (use (match_operand:DI 2 "immediate_operand" "")) + (use (match_operand:DI 3 "immediate_operand" "")) + (use (match_dup 4)) + (clobber (reg:DI 25)) + (clobber (reg:DI 16)) + (clobber (reg:DI 17)) + (clobber (reg:DI 18)) + (clobber (reg:DI 19)) + (clobber (reg:DI 20)) + (clobber (reg:DI 26)) + (clobber (reg:DI 27))])] + "TARGET_ABI_OPEN_VMS" +{ + operands[4] =3D gen_rtx_SYMBOL_REF (Pmode, "OTS$MOVE"); + alpha_need_linkage (XSTR (operands[4], 0), 0); +}) + +(define_insn "*movstrdi_1" + [(set (match_operand:BLK 0 "memory_operand" "=3Dm,=3Dm") + (match_operand:BLK 1 "memory_operand" "m,m")) + (use (match_operand:DI 2 "nonmemory_operand" "r,i")) + (use (match_operand:DI 3 "immediate_operand" "")) + (use (match_operand:DI 4 "call_operand" "i,i")) + (clobber (reg:DI 25)) + (clobber (reg:DI 16)) + (clobber (reg:DI 17)) + (clobber (reg:DI 18)) + (clobber (reg:DI 19)) + (clobber (reg:DI 20)) + (clobber (reg:DI 26)) + (clobber (reg:DI 27))] + "TARGET_ABI_OPEN_VMS" + "* +{ + operands [5] =3D alpha_use_linkage (operands [4], cfun->decl, 0, 1); + switch (which_alternative) + { + case 0: + return \"lda $16,%0\;bis $31,%2,$17\;lda $18,%1\;ldq $26,%5\;lda $25,3($3= 1)\;jsr $26,%4\;ldq $27,0($29)\"; + case 1: + return \"lda $16,%0\;lda $17,%2($31)\;lda $18,%1\;ldq $26,%5\;lda $25,3($= 31)\;jsr $26,%4\;ldq $27,0($29)\"; + default: + abort(); + } +}" + [(set_attr "type" "multi") + (set_attr "length" "28")]) + (define_expand "clrstrqi" [(parallel [(set (match_operand:BLK 0 "memory_operand" "") (const_int 0)) @@ -6472,6 +6523,52 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi else FAIL; }) + +(define_expand "clrstrdi" + [(parallel [(set (match_operand:BLK 0 "memory_operand" "") + (const_int 0)) + (use (match_operand:DI 1 "immediate_operand" "")) + (use (match_operand:DI 2 "immediate_operand" "")) + (use (match_dup 3)) + (clobber (reg:DI 25)) + (clobber (reg:DI 16)) + (clobber (reg:DI 17)) + (clobber (reg:DI 26)) + (clobber (reg:DI 27))])] + "TARGET_ABI_OPEN_VMS" +{ + operands[3] =3D gen_rtx_SYMBOL_REF (Pmode, "OTS$ZERO"); + alpha_need_linkage (XSTR (operands[3], 0), 0); +}) + +(define_insn "*clrstrdi_1" + [(set (match_operand:BLK 0 "memory_operand" "=3Dm,=3Dm") + (const_int 0)) + (use (match_operand:DI 1 "nonmemory_operand" "r,i")) + (use (match_operand:DI 2 "immediate_operand" "")) + (use (match_operand:DI 3 "call_operand" "i,i")) + (clobber (reg:DI 25)) + (clobber (reg:DI 16)) + (clobber (reg:DI 17)) + (clobber (reg:DI 26)) + (clobber (reg:DI 27))] + "TARGET_ABI_OPEN_VMS" + "* +{ + operands [4] =3D alpha_use_linkage (operands [3], cfun->decl, 0, 1); + switch (which_alternative) + { + case 0: + return \"lda $16,%0\;bis $31,%2,$17\;ldq $26,%4\;lda $25,2($31)\;jsr $26,= %3\;ldq $27,0($29)\"; + case 1: + return \"lda $16,%0\;lda $17,%2($31)\;ldq $26,%4\;lda $25,2($31)\;jsr $26= ,%3\;ldq $27,0($29)\"; + default: + abort(); + } +}" + [(set_attr "type" "multi") + (set_attr "length" "24")]) + =0C ;; Subroutine of stack space allocation. Perform a stack probe. (define_expand "probe_stack" ------=_NextPart_000_0102_01C28589.B881C000--