1;! HP-PA __mpn_rshift -- 2 3;! Copyright (C) 1992-2022 Free Software Foundation, Inc. 4 5;! This file is part of the GNU MP Library. 6 7;! The GNU MP Library is free software; you can redistribute it and/or modify 8;! it under the terms of the GNU Lesser General Public License as published by 9;! the Free Software Foundation; either version 2.1 of the License, or (at your 10;! option) any later version. 11 12;! The GNU MP Library is distributed in the hope that it will be useful, but 13;! WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 14;! or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 15;! License for more details. 16 17;! You should have received a copy of the GNU Lesser General Public License 18;! along with the GNU MP Library. If not, see 19;! <https://www.gnu.org/licenses/>. 20 21 22;! INPUT PARAMETERS 23;! res_ptr gr26 24;! s_ptr gr25 25;! size gr24 26;! cnt gr23 27 28 .text 29 .export __mpn_rshift 30__mpn_rshift: 31 .proc 32 .callinfo frame=64,no_calls 33 .entry 34 35 ldws,ma 4(%r25),%r22 36 mtsar %r23 37 addib,= -1,%r24,L$0004 38 vshd %r22,%r0,%r28 ;! compute carry out limb 39 ldws,ma 4(%r25),%r29 40 addib,= -1,%r24,L$0002 41 vshd %r29,%r22,%r20 42 43L$loop: ldws,ma 4(%r25),%r22 44 stws,ma %r20,4(%r26) 45 addib,= -1,%r24,L$0003 46 vshd %r22,%r29,%r20 47 ldws,ma 4(%r25),%r29 48 stws,ma %r20,4(%r26) 49 addib,<> -1,%r24,L$loop 50 vshd %r29,%r22,%r20 51 52L$0002: stws,ma %r20,4(%r26) 53 vshd %r0,%r29,%r20 54 bv 0(%r2) 55 stw %r20,0(%r26) 56L$0003: stws,ma %r20,4(%r26) 57L$0004: vshd %r0,%r22,%r20 58 bv 0(%r2) 59 stw %r20,0(%r26) 60 61 .exit 62 .procend 63