2019-05-27 09:55:15 +03:00
/* SPDX-License-Identifier: GPL-2.0-only */
2006-11-23 02:46:52 +03:00
/ *
* PS3 h v c a l l i n t e r f a c e .
*
* Copyright ( C ) 2 0 0 6 S o n y C o m p u t e r E n t e r t a i n m e n t I n c .
* Copyright 2 0 0 6 S o n y C o r p .
* Copyright 2 0 0 3 , 2 0 0 4 ( c ) M o n t a V i s t a S o f t w a r e , I n c .
* /
# include < a s m / p r o c e s s o r . h >
# include < a s m / p p c _ a s m . h >
# define l v1 c a l l . l o n g 0 x44 0 0 0 0 2 2 ; extsw r3, r3
# define L V 1 _ N _ I N _ 0 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 0 _ I N _ 0 _ O U T L V 1 _ N _ I N _ 0 _ O U T
# define L V 1 _ 1 _ I N _ 0 _ O U T L V 1 _ N _ I N _ 0 _ O U T
# define L V 1 _ 2 _ I N _ 0 _ O U T L V 1 _ N _ I N _ 0 _ O U T
# define L V 1 _ 3 _ I N _ 0 _ O U T L V 1 _ N _ I N _ 0 _ O U T
# define L V 1 _ 4 _ I N _ 0 _ O U T L V 1 _ N _ I N _ 0 _ O U T
# define L V 1 _ 5 _ I N _ 0 _ O U T L V 1 _ N _ I N _ 0 _ O U T
# define L V 1 _ 6 _ I N _ 0 _ O U T L V 1 _ N _ I N _ 0 _ O U T
# define L V 1 _ 7 _ I N _ 0 _ O U T L V 1 _ N _ I N _ 0 _ O U T
# define L V 1 _ 0 _ I N _ 1 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
stdu r3 , - 8 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 8 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 0 _ I N _ 2 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r3 , - 8 ( r1 ) ; \
stdu r4 , - 1 6 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 1 6 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 0 _ I N _ 3 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r3 , - 8 ( r1 ) ; \
std r4 , - 1 6 ( r1 ) ; \
stdu r5 , - 2 4 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 2 4 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
ld r11 , - 2 4 ( r1 ) ; \
std r6 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 0 _ I N _ 7 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r3 , - 8 ( r1 ) ; \
std r4 , - 1 6 ( r1 ) ; \
std r5 , - 2 4 ( r1 ) ; \
std r6 , - 3 2 ( r1 ) ; \
std r7 , - 4 0 ( r1 ) ; \
std r8 , - 4 8 ( r1 ) ; \
stdu r9 , - 5 6 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 5 6 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
ld r11 , - 2 4 ( r1 ) ; \
std r6 , 0 ( r11 ) ; \
ld r11 , - 3 2 ( r1 ) ; \
std r7 , 0 ( r11 ) ; \
ld r11 , - 4 0 ( r1 ) ; \
std r8 , 0 ( r11 ) ; \
ld r11 , - 4 8 ( r1 ) ; \
std r9 , 0 ( r11 ) ; \
ld r11 , - 5 6 ( r1 ) ; \
std r10 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 1 _ I N _ 1 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
stdu r4 , - 8 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 8 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 1 _ I N _ 2 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r4 , - 8 ( r1 ) ; \
stdu r5 , - 1 6 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 1 6 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 1 _ I N _ 3 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r4 , - 8 ( r1 ) ; \
std r5 , - 1 6 ( r1 ) ; \
stdu r6 , - 2 4 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 2 4 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
ld r11 , - 2 4 ( r1 ) ; \
std r6 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 1 _ I N _ 4 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r4 , - 8 ( r1 ) ; \
std r5 , - 1 6 ( r1 ) ; \
std r6 , - 2 4 ( r1 ) ; \
stdu r7 , - 3 2 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 3 2 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
ld r11 , - 2 4 ( r1 ) ; \
std r6 , 0 ( r11 ) ; \
ld r11 , - 3 2 ( r1 ) ; \
std r7 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 1 _ I N _ 5 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r4 , - 8 ( r1 ) ; \
std r5 , - 1 6 ( r1 ) ; \
std r6 , - 2 4 ( r1 ) ; \
std r7 , - 3 2 ( r1 ) ; \
stdu r8 , - 4 0 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 4 0 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
ld r11 , - 2 4 ( r1 ) ; \
std r6 , 0 ( r11 ) ; \
ld r11 , - 3 2 ( r1 ) ; \
std r7 , 0 ( r11 ) ; \
ld r11 , - 4 0 ( r1 ) ; \
std r8 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 1 _ I N _ 6 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r4 , - 8 ( r1 ) ; \
std r5 , - 1 6 ( r1 ) ; \
std r6 , - 2 4 ( r1 ) ; \
std r7 , - 3 2 ( r1 ) ; \
std r8 , - 4 0 ( r1 ) ; \
stdu r9 , - 4 8 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 4 8 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
ld r11 , - 2 4 ( r1 ) ; \
std r6 , 0 ( r11 ) ; \
ld r11 , - 3 2 ( r1 ) ; \
std r7 , 0 ( r11 ) ; \
ld r11 , - 4 0 ( r1 ) ; \
std r8 , 0 ( r11 ) ; \
ld r11 , - 4 8 ( r1 ) ; \
std r9 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 1 _ I N _ 7 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r4 , - 8 ( r1 ) ; \
std r5 , - 1 6 ( r1 ) ; \
std r6 , - 2 4 ( r1 ) ; \
std r7 , - 3 2 ( r1 ) ; \
std r8 , - 4 0 ( r1 ) ; \
std r9 , - 4 8 ( r1 ) ; \
stdu r10 , - 5 6 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 5 6 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
ld r11 , - 2 4 ( r1 ) ; \
std r6 , 0 ( r11 ) ; \
ld r11 , - 3 2 ( r1 ) ; \
std r7 , 0 ( r11 ) ; \
ld r11 , - 4 0 ( r1 ) ; \
std r8 , 0 ( r11 ) ; \
ld r11 , - 4 8 ( r1 ) ; \
std r9 , 0 ( r11 ) ; \
ld r11 , - 5 6 ( r1 ) ; \
std r10 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 2 _ I N _ 1 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
stdu r5 , - 8 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 8 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 2 _ I N _ 2 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r5 , - 8 ( r1 ) ; \
stdu r6 , - 1 6 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 1 6 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 2 _ I N _ 3 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r5 , - 8 ( r1 ) ; \
std r6 , - 1 6 ( r1 ) ; \
stdu r7 , - 2 4 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 2 4 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
ld r11 , - 2 4 ( r1 ) ; \
std r6 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 2 _ I N _ 4 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r5 , - 8 ( r1 ) ; \
std r6 , - 1 6 ( r1 ) ; \
std r7 , - 2 4 ( r1 ) ; \
stdu r8 , - 3 2 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 3 2 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
ld r11 , - 2 4 ( r1 ) ; \
std r6 , 0 ( r11 ) ; \
ld r11 , - 3 2 ( r1 ) ; \
std r7 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 2 _ I N _ 5 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r5 , - 8 ( r1 ) ; \
std r6 , - 1 6 ( r1 ) ; \
std r7 , - 2 4 ( r1 ) ; \
std r8 , - 3 2 ( r1 ) ; \
stdu r9 , - 4 0 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 4 0 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
ld r11 , - 2 4 ( r1 ) ; \
std r6 , 0 ( r11 ) ; \
ld r11 , - 3 2 ( r1 ) ; \
std r7 , 0 ( r11 ) ; \
ld r11 , - 4 0 ( r1 ) ; \
std r8 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 3 _ I N _ 1 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
stdu r6 , - 8 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 8 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 3 _ I N _ 2 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r6 , - 8 ( r1 ) ; \
stdu r7 , - 1 6 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 1 6 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 3 _ I N _ 3 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r6 , - 8 ( r1 ) ; \
std r7 , - 1 6 ( r1 ) ; \
stdu r8 , - 2 4 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 2 4 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
ld r11 , - 2 4 ( r1 ) ; \
std r6 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 4 _ I N _ 1 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
stdu r7 , - 8 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 8 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 4 _ I N _ 2 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r7 , - 8 ( r1 ) ; \
stdu r8 , - 1 6 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 1 6 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 4 _ I N _ 3 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r7 , - 8 ( r1 ) ; \
std r8 , - 1 6 ( r1 ) ; \
stdu r9 , - 2 4 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 2 4 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
ld r11 , - 2 4 ( r1 ) ; \
std r6 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 5 _ I N _ 1 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
stdu r8 , - 8 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 8 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 5 _ I N _ 2 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r8 , - 8 ( r1 ) ; \
stdu r9 , - 1 6 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 1 6 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 5 _ I N _ 3 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r8 , - 8 ( r1 ) ; \
std r9 , - 1 6 ( r1 ) ; \
stdu r10 , - 2 4 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 2 4 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
ld r11 , - 2 4 ( r1 ) ; \
std r6 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 6 _ I N _ 1 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
stdu r9 , - 8 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 8 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 6 _ I N _ 2 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r9 , - 8 ( r1 ) ; \
stdu r10 , - 1 6 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 1 6 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 6 _ I N _ 3 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r9 , - 8 ( r1 ) ; \
stdu r10 , - 1 6 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 1 6 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , - 1 6 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
ld r11 , 4 8 + 8 * 8 ( r1 ) ; \
std r6 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 7 _ I N _ 1 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
stdu r10 , - 8 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
addi r1 , r1 , 8 ; \
ld r11 , - 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 7 _ I N _ 6 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
std r10 , 4 8 + 8 * 7 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
ld r11 , 4 8 + 8 * 7 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
ld r11 , 4 8 + 8 * 8 ( r1 ) ; \
std r5 , 0 ( r11 ) ; \
ld r11 , 4 8 + 8 * 9 ( r1 ) ; \
std r6 , 0 ( r11 ) ; \
ld r11 , 4 8 + 8 * 1 0 ( r1 ) ; \
std r7 , 0 ( r11 ) ; \
ld r11 , 4 8 + 8 * 1 1 ( r1 ) ; \
std r8 , 0 ( r11 ) ; \
ld r11 , 4 8 + 8 * 1 2 ( r1 ) ; \
std r9 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
# define L V 1 _ 8 _ I N _ 1 _ O U T ( A P I _ N A M E , A P I _ N U M B E R ) \
_ GLOBAL( _ ## A P I _ N A M E ) \
\
mflr r0 ; \
std r0 , 1 6 ( r1 ) ; \
\
li r11 , A P I _ N U M B E R ; \
lv1 c a l l ; \
\
ld r11 , 4 8 + 8 * 8 ( r1 ) ; \
std r4 , 0 ( r11 ) ; \
\
ld r0 , 1 6 ( r1 ) ; \
mtlr r0 ; \
blr
.text
/* the lv1 underscored call definitions expand here */
# define L V 1 _ C A L L ( n a m e , i n , o u t , n u m ) L V 1 _ ## i n # # _ I N _ # # o u t # # _ O U T ( l v 1 _ ## n a m e , n u m )
# include < a s m / l v1 c a l l . h >