version 1.1.1.1, 2000/09/09 14:12:39 |
version 1.1.1.2, 2003/08/25 16:06:24 |
|
|
# PowerPC-64 mpn_lshift -- Shift a number left. |
# PowerPC-64 mpn_lshift -- Shift a number left. |
|
|
# Copyright (C) 1999, 2000 Free Software Foundation, Inc. |
# Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. |
|
|
# This file is part of the GNU MP Library. |
# This file is part of the GNU MP Library. |
|
|
|
|
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, |
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, |
# MA 02111-1307, USA. |
# MA 02111-1307, USA. |
|
|
|
include(`../config.m4') |
|
|
|
|
|
# ppc630: 1.6375 cycles/limb |
|
|
|
|
# INPUT PARAMETERS |
# INPUT PARAMETERS |
# res_ptr r3 |
# res_ptr r3 |
# s1_ptr r4 |
# s1_ptr r4 |
# size r5 |
# size r5 |
# cnt r6 |
# cnt r6 |
|
|
include(`../config.m4') |
|
|
|
ASM_START() |
ASM_START() |
PROLOGUE(mpn_lshift) |
PROLOGUE(mpn_lshift) |
cmpdi cr0,r5,20 # more than 20 limbs? |
cmpdi cr0,r5,20 # more than 20 limbs? |
Line 63 PROLOGUE(mpn_lshift) |
|
Line 66 PROLOGUE(mpn_lshift) |
|
blr |
blr |
|
|
.LBIG: |
.LBIG: |
std r24,-64(1) |
std r24,-64(r1) |
std r25,-56(1) |
std r25,-56(r1) |
std r26,-48(1) |
std r26,-48(r1) |
std r27,-40(1) |
std r27,-40(r1) |
std r28,-32(1) |
std r28,-32(r1) |
std r29,-24(1) |
std r29,-24(r1) |
std r30,-16(1) |
std r30,-16(r1) |
std r31,-8(1) |
std r31,-8(r1) |
ldu r9,-8(r4) |
ldu r9,-8(r4) |
subfic r8,r6,64 |
subfic r8,r6,64 |
srd r3,r9,r8 # compute function return value |
srd r3,r9,r8 # compute function return value |
Line 147 PROLOGUE(mpn_lshift) |
|
Line 150 PROLOGUE(mpn_lshift) |
|
mr r0,r12 |
mr r0,r12 |
|
|
std r0,-8(r7) |
std r0,-8(r7) |
ld r24,-64(1) |
ld r24,-64(r1) |
ld r25,-56(1) |
ld r25,-56(r1) |
ld r26,-48(1) |
ld r26,-48(r1) |
ld r27,-40(1) |
ld r27,-40(r1) |
ld r28,-32(1) |
ld r28,-32(r1) |
ld r29,-24(1) |
ld r29,-24(r1) |
ld r30,-16(1) |
ld r30,-16(r1) |
ld r31,-8(1) |
ld r31,-8(r1) |
blr |
blr |
EPILOGUE(mpn_lshift) |
EPILOGUE(mpn_lshift) |