From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1118) id CF3B53858C27; Sun, 2 Jan 2022 16:42:35 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CF3B53858C27 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: John David Anglin To: gcc-cvs@gcc.gnu.org Subject: [gcc r11-9426] Use optab_libfunc to access sync_lock_test_and_set libfunc on hppa-linux. X-Act-Checkin: gcc X-Git-Author: John David Anglin X-Git-Refname: refs/heads/releases/gcc-11 X-Git-Oldrev: fd6acb47843dd68cdbedb46af3ccd7f367361983 X-Git-Newrev: 21a0bd00f62af9dec87a10ec512aacf1db08e70f Message-Id: <20220102164235.CF3B53858C27@sourceware.org> Date: Sun, 2 Jan 2022 16:42:35 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Jan 2022 16:42:35 -0000 https://gcc.gnu.org/g:21a0bd00f62af9dec87a10ec512aacf1db08e70f commit r11-9426-g21a0bd00f62af9dec87a10ec512aacf1db08e70f Author: John David Anglin Date: Sun Jan 2 16:42:02 2022 +0000 Use optab_libfunc to access sync_lock_test_and_set libfunc on hppa-linux. 2022-01-02 John David Anglin gcc/ChangeLog: * config/pa/pa.md (atomic_storeq): Use optab_libfunc to access sync_lock_test_and_set libfunc. Call convert_memory_address to convert memory address to Pmode. (atomic_storehi, atomic_storesi, atomic_storedi): Likewise. Diff: --- gcc/config/pa/pa.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index af5449a9ea3..31e3b1bff80 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -10366,10 +10366,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)" { if (TARGET_SYNC_LIBCALL) { - rtx libfunc = init_one_libfunc ("__sync_lock_test_and_set_1"); + rtx libfunc = optab_libfunc (sync_lock_test_and_set_optab, QImode); + rtx addr = convert_memory_address (Pmode, XEXP (operands[0], 0)); - emit_library_call (libfunc, LCT_NORMAL, VOIDmode, - XEXP (operands[0], 0), Pmode, + emit_library_call (libfunc, LCT_NORMAL, VOIDmode, addr, Pmode, operands[1], QImode); DONE; } @@ -10386,10 +10386,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)" { if (TARGET_SYNC_LIBCALL) { - rtx libfunc = init_one_libfunc ("__sync_lock_test_and_set_2"); + rtx libfunc = optab_libfunc (sync_lock_test_and_set_optab, HImode); + rtx addr = convert_memory_address (Pmode, XEXP (operands[0], 0)); - emit_library_call (libfunc, LCT_NORMAL, VOIDmode, - XEXP (operands[0], 0), Pmode, + emit_library_call (libfunc, LCT_NORMAL, VOIDmode, addr, Pmode, operands[1], HImode); DONE; } @@ -10406,10 +10406,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)" { if (TARGET_SYNC_LIBCALL) { - rtx libfunc = init_one_libfunc ("__sync_lock_test_and_set_4"); + rtx libfunc = optab_libfunc (sync_lock_test_and_set_optab, SImode); + rtx addr = convert_memory_address (Pmode, XEXP (operands[0], 0)); - emit_library_call (libfunc, LCT_NORMAL, VOIDmode, - XEXP (operands[0], 0), Pmode, + emit_library_call (libfunc, LCT_NORMAL, VOIDmode, addr, Pmode, operands[1], SImode); DONE; } @@ -10459,10 +10459,10 @@ add,l %2,%3,%3\;bv,n %%r0(%3)" if (TARGET_SYNC_LIBCALL) { - rtx libfunc = init_one_libfunc ("__sync_lock_test_and_set_8"); + rtx libfunc = optab_libfunc (sync_lock_test_and_set_optab, DImode); + rtx addr = convert_memory_address (Pmode, XEXP (operands[0], 0)); - emit_library_call (libfunc, LCT_NORMAL, VOIDmode, - XEXP (operands[0], 0), Pmode, + emit_library_call (libfunc, LCT_NORMAL, VOIDmode, addr, Pmode, operands[1], DImode); DONE; }