Lines Matching refs:dest
82 static inline int fp_addmant(struct fp_ext *dest, struct fp_ext *src) in fp_addmant() argument
87 asm volatile ("add.b %1,%0" : "=d,g" (dest->lowmant) in fp_addmant()
88 : "g,d" (src->lowmant), "0,0" (dest->lowmant)); in fp_addmant()
89 asm volatile ("addx.l %1,%0" : "=d" (dest->mant.m32[1]) in fp_addmant()
90 : "d" (src->mant.m32[1]), "0" (dest->mant.m32[1])); in fp_addmant()
91 asm volatile ("addx.l %1,%0" : "=d" (dest->mant.m32[0]) in fp_addmant()
92 : "d" (src->mant.m32[0]), "0" (dest->mant.m32[0])); in fp_addmant()
115 static inline void fp_submant(struct fp_ext *dest, struct fp_ext *src1, in fp_submant() argument
119 asm volatile ("sub.b %1,%0" : "=d,g" (dest->lowmant) in fp_submant()
121 asm volatile ("subx.l %1,%0" : "=d" (dest->mant.m32[1]) in fp_submant()
123 asm volatile ("subx.l %1,%0" : "=d" (dest->mant.m32[0]) in fp_submant()
140 #define fp_addx96(dest, src) ({ \ argument
142 asm volatile ("add.l %1,%0" : "=d,g" (dest->m32[2]) \
143 : "g,d" (temp.m32[1]), "0,0" (dest->m32[2])); \
144 asm volatile ("addx.l %1,%0" : "=d" (dest->m32[1]) \
145 : "d" (temp.m32[0]), "0" (dest->m32[1])); \
146 asm volatile ("addx.l %1,%0" : "=d" (dest->m32[0]) \
147 : "d" (0), "0" (dest->m32[0])); \
149 #define fp_sub64(dest, src) ({ \ argument
150 asm ("sub.l %1,%0" : "=d,dm" (dest.m32[1]) \
151 : "dm,d" (src.m32[1]), "0,0" (dest.m32[1])); \
152 asm ("subx.l %1,%0" : "=d" (dest.m32[0]) \
153 : "d" (src.m32[0]), "0" (dest.m32[0])); \
155 #define fp_sub96c(dest, srch, srcm, srcl) ({ \ argument
157 asm ("sub.l %1,%0" : "=d,dm" (dest.m32[2]) \
158 : "dm,d" (srcl), "0,0" (dest.m32[2])); \
159 asm ("subx.l %1,%0" : "=d" (dest.m32[1]) \
160 : "d" (srcm), "0" (dest.m32[1])); \
161 asm ("subx.l %2,%1; scs %0" : "=d" (carry), "=d" (dest.m32[0]) \
162 : "d" (srch), "1" (dest.m32[0])); \
166 static inline void fp_multiplymant(union fp_mant128 *dest, struct fp_ext *src1, in fp_multiplymant() argument
171 fp_mul64(dest->m32[0], dest->m32[1], src1->mant.m32[0], src2->mant.m32[0]); in fp_multiplymant()
172 fp_mul64(dest->m32[2], dest->m32[3], src1->mant.m32[1], src2->mant.m32[1]); in fp_multiplymant()
175 fp_addx96(dest, temp); in fp_multiplymant()
178 fp_addx96(dest, temp); in fp_multiplymant()
181 static inline void fp_dividemant(union fp_mant128 *dest, struct fp_ext *src, in fp_dividemant() argument
186 unsigned long *mantp = dest->m32; in fp_dividemant()
244 static inline void fp_putmant128(struct fp_ext *dest, union fp_mant128 *src, in fp_putmant128() argument
251 dest->mant.m64 = src->m64[0]; in fp_putmant128()
252 dest->lowmant = src->m32[2] >> 24; in fp_putmant128()
254 dest->lowmant |= 1; in fp_putmant128()
260 : "=d" (dest->mant.m32[1]) : "0" (src->m32[1])); in fp_putmant128()
262 : "=d" (dest->mant.m32[0]) : "0" (src->m32[0])); in fp_putmant128()
263 dest->lowmant = tmp >> 24; in fp_putmant128()
265 dest->lowmant |= 1; in fp_putmant128()
269 : "=d" (dest->mant.m32[0]) in fp_putmant128()
272 : "=d" (dest->mant.m32[1]) : "0" (src->m32[2])); in fp_putmant128()
275 dest->lowmant = tmp >> 24; in fp_putmant128()
277 dest->lowmant |= 1; in fp_putmant128()
280 dest->mant.m32[0] = src->m32[1]; in fp_putmant128()
281 dest->mant.m32[1] = src->m32[2]; in fp_putmant128()
282 dest->lowmant = src->m32[3] >> 24; in fp_putmant128()
284 dest->lowmant |= 1; in fp_putmant128()