mirror of
git://git.gnupg.org/gnupg.git
synced 2025-02-08 17:43:04 +01:00
* longlong.h: Replaced all K&R multiline strings by ISO ones for
the sake of modern compilers. Suggested by Marco Parrone.
This commit is contained in:
parent
6b50533fe1
commit
9a4e2a4c86
@ -1,3 +1,8 @@
|
|||||||
|
2002-07-24 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* longlong.h: Replaced all K&R multiline strings by ISO ones for
|
||||||
|
the sake of modern compilers. Suggested by Marco Parrone.
|
||||||
|
|
||||||
2002-05-10 Stefan Bellon <sbellon@sbellon.de>
|
2002-05-10 Stefan Bellon <sbellon@sbellon.de>
|
||||||
|
|
||||||
* mpiutil.c (mpi_alloc_like/mpi_debug_alloc_like): Added code
|
* mpiutil.c (mpi_alloc_like/mpi_debug_alloc_like): Added code
|
||||||
|
428
mpi/longlong.h
428
mpi/longlong.h
@ -2,7 +2,7 @@
|
|||||||
Note: I added some stuff for use with gnupg
|
Note: I added some stuff for use with gnupg
|
||||||
|
|
||||||
Copyright (C) 1991, 1992, 1993, 1994, 1996, 1998,
|
Copyright (C) 1991, 1992, 1993, 1994, 1996, 1998,
|
||||||
2000, 2001 Free Software Foundation, Inc.
|
2000, 2001, 2002 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is free software; you can redistribute it and/or modify
|
This file is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Library General Public License as published by
|
it under the terms of the GNU Library General Public License as published by
|
||||||
@ -115,8 +115,8 @@ MA 02111-1307, USA. */
|
|||||||
***************************************/
|
***************************************/
|
||||||
#if (defined (__a29k__) || defined (_AM29K)) && W_TYPE_SIZE == 32
|
#if (defined (__a29k__) || defined (_AM29K)) && W_TYPE_SIZE == 32
|
||||||
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("add %1,%4,%5
|
__asm__ ("add %1,%4,%5\n" \
|
||||||
addc %0,%2,%3" \
|
"addc %0,%2,%3" \
|
||||||
: "=r" ((USItype)(sh)), \
|
: "=r" ((USItype)(sh)), \
|
||||||
"=&r" ((USItype)(sl)) \
|
"=&r" ((USItype)(sl)) \
|
||||||
: "%r" ((USItype)(ah)), \
|
: "%r" ((USItype)(ah)), \
|
||||||
@ -124,8 +124,8 @@ MA 02111-1307, USA. */
|
|||||||
"%r" ((USItype)(al)), \
|
"%r" ((USItype)(al)), \
|
||||||
"rI" ((USItype)(bl)))
|
"rI" ((USItype)(bl)))
|
||||||
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("sub %1,%4,%5
|
__asm__ ("sub %1,%4,%5\n" \
|
||||||
subc %0,%2,%3" \
|
"subc %0,%2,%3" \
|
||||||
: "=r" ((USItype)(sh)), \
|
: "=r" ((USItype)(sh)), \
|
||||||
"=&r" ((USItype)(sl)) \
|
"=&r" ((USItype)(sl)) \
|
||||||
: "r" ((USItype)(ah)), \
|
: "r" ((USItype)(ah)), \
|
||||||
@ -186,8 +186,8 @@ extern UDItype __udiv_qrnnd ();
|
|||||||
***************************************/
|
***************************************/
|
||||||
#if defined (__arm__) && W_TYPE_SIZE == 32
|
#if defined (__arm__) && W_TYPE_SIZE == 32
|
||||||
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("adds %1, %4, %5
|
__asm__ ("adds %1, %4, %5\n" \
|
||||||
adc %0, %2, %3" \
|
"adc %0, %2, %3" \
|
||||||
: "=r" ((USItype)(sh)), \
|
: "=r" ((USItype)(sh)), \
|
||||||
"=&r" ((USItype)(sl)) \
|
"=&r" ((USItype)(sl)) \
|
||||||
: "%r" ((USItype)(ah)), \
|
: "%r" ((USItype)(ah)), \
|
||||||
@ -195,8 +195,8 @@ extern UDItype __udiv_qrnnd ();
|
|||||||
"%r" ((USItype)(al)), \
|
"%r" ((USItype)(al)), \
|
||||||
"rI" ((USItype)(bl)))
|
"rI" ((USItype)(bl)))
|
||||||
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("subs %1, %4, %5
|
__asm__ ("subs %1, %4, %5\n" \
|
||||||
sbc %0, %2, %3" \
|
"sbc %0, %2, %3" \
|
||||||
: "=r" ((USItype)(sh)), \
|
: "=r" ((USItype)(sh)), \
|
||||||
"=&r" ((USItype)(sl)) \
|
"=&r" ((USItype)(sl)) \
|
||||||
: "r" ((USItype)(ah)), \
|
: "r" ((USItype)(ah)), \
|
||||||
@ -205,19 +205,19 @@ extern UDItype __udiv_qrnnd ();
|
|||||||
"rI" ((USItype)(bl)))
|
"rI" ((USItype)(bl)))
|
||||||
#if defined __ARM_ARCH_2__ || defined __ARM_ARCH_3__
|
#if defined __ARM_ARCH_2__ || defined __ARM_ARCH_3__
|
||||||
#define umul_ppmm(xh, xl, a, b) \
|
#define umul_ppmm(xh, xl, a, b) \
|
||||||
__asm__ ("%@ Inlined umul_ppmm
|
__asm__ ("%@ Inlined umul_ppmm\n" \
|
||||||
mov %|r0, %2, lsr #16 @ AAAA
|
"mov %|r0, %2, lsr #16 @ AAAA\n" \
|
||||||
mov %|r2, %3, lsr #16 @ BBBB
|
"mov %|r2, %3, lsr #16 @ BBBB\n" \
|
||||||
bic %|r1, %2, %|r0, lsl #16 @ aaaa
|
"bic %|r1, %2, %|r0, lsl #16 @ aaaa\n" \
|
||||||
bic %0, %3, %|r2, lsl #16 @ bbbb
|
"bic %0, %3, %|r2, lsl #16 @ bbbb\n" \
|
||||||
mul %1, %|r1, %|r2 @ aaaa * BBBB
|
"mul %1, %|r1, %|r2 @ aaaa * BBBB\n" \
|
||||||
mul %|r2, %|r0, %|r2 @ AAAA * BBBB
|
"mul %|r2, %|r0, %|r2 @ AAAA * BBBB\n" \
|
||||||
mul %|r1, %0, %|r1 @ aaaa * bbbb
|
"mul %|r1, %0, %|r1 @ aaaa * bbbb\n" \
|
||||||
mul %0, %|r0, %0 @ AAAA * bbbb
|
"mul %0, %|r0, %0 @ AAAA * bbbb\n" \
|
||||||
adds %|r0, %1, %0 @ central sum
|
"adds %|r0, %1, %0 @ central sum\n" \
|
||||||
addcs %|r2, %|r2, #65536
|
"addcs %|r2, %|r2, #65536\n" \
|
||||||
adds %1, %|r1, %|r0, lsl #16
|
"adds %1, %|r1, %|r0, lsl #16\n" \
|
||||||
adc %0, %|r2, %|r0, lsr #16" \
|
"adc %0, %|r2, %|r0, lsr #16" \
|
||||||
: "=&r" ((USItype)(xh)), \
|
: "=&r" ((USItype)(xh)), \
|
||||||
"=r" ((USItype)(xl)) \
|
"=r" ((USItype)(xl)) \
|
||||||
: "r" ((USItype)(a)), \
|
: "r" ((USItype)(a)), \
|
||||||
@ -225,8 +225,8 @@ extern UDItype __udiv_qrnnd ();
|
|||||||
: "r0", "r1", "r2")
|
: "r0", "r1", "r2")
|
||||||
#else
|
#else
|
||||||
#define umul_ppmm(xh, xl, a, b) \
|
#define umul_ppmm(xh, xl, a, b) \
|
||||||
__asm__ ("%@ Inlined umul_ppmm
|
__asm__ ("%@ Inlined umul_ppmm\n" \
|
||||||
umull %r1, %r0, %r2, %r3" \
|
"umull %r1, %r0, %r2, %r3" \
|
||||||
: "=&r" ((USItype)(xh)), \
|
: "=&r" ((USItype)(xh)), \
|
||||||
"=r" ((USItype)(xl)) \
|
"=r" ((USItype)(xl)) \
|
||||||
: "r" ((USItype)(a)), \
|
: "r" ((USItype)(a)), \
|
||||||
@ -274,8 +274,8 @@ extern UDItype __udiv_qrnnd ();
|
|||||||
***************************************/
|
***************************************/
|
||||||
#if defined (__gmicro__) && W_TYPE_SIZE == 32
|
#if defined (__gmicro__) && W_TYPE_SIZE == 32
|
||||||
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("add.w %5,%1
|
__asm__ ("add.w %5,%1\n" \
|
||||||
addx %3,%0" \
|
"addx %3,%0" \
|
||||||
: "=g" ((USItype)(sh)), \
|
: "=g" ((USItype)(sh)), \
|
||||||
"=&g" ((USItype)(sl)) \
|
"=&g" ((USItype)(sl)) \
|
||||||
: "%0" ((USItype)(ah)), \
|
: "%0" ((USItype)(ah)), \
|
||||||
@ -283,8 +283,8 @@ extern UDItype __udiv_qrnnd ();
|
|||||||
"%1" ((USItype)(al)), \
|
"%1" ((USItype)(al)), \
|
||||||
"g" ((USItype)(bl)))
|
"g" ((USItype)(bl)))
|
||||||
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("sub.w %5,%1
|
__asm__ ("sub.w %5,%1\n" \
|
||||||
subx %3,%0" \
|
"subx %3,%0" \
|
||||||
: "=g" ((USItype)(sh)), \
|
: "=g" ((USItype)(sh)), \
|
||||||
"=&g" ((USItype)(sl)) \
|
"=&g" ((USItype)(sl)) \
|
||||||
: "0" ((USItype)(ah)), \
|
: "0" ((USItype)(ah)), \
|
||||||
@ -317,8 +317,8 @@ extern UDItype __udiv_qrnnd ();
|
|||||||
***************************************/
|
***************************************/
|
||||||
#if defined (__hppa) && W_TYPE_SIZE == 32
|
#if defined (__hppa) && W_TYPE_SIZE == 32
|
||||||
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("add %4,%5,%1
|
__asm__ ("add %4,%5,%1\n" \
|
||||||
addc %2,%3,%0" \
|
"addc %2,%3,%0" \
|
||||||
: "=r" ((USItype)(sh)), \
|
: "=r" ((USItype)(sh)), \
|
||||||
"=&r" ((USItype)(sl)) \
|
"=&r" ((USItype)(sl)) \
|
||||||
: "%rM" ((USItype)(ah)), \
|
: "%rM" ((USItype)(ah)), \
|
||||||
@ -326,8 +326,8 @@ extern UDItype __udiv_qrnnd ();
|
|||||||
"%rM" ((USItype)(al)), \
|
"%rM" ((USItype)(al)), \
|
||||||
"rM" ((USItype)(bl)))
|
"rM" ((USItype)(bl)))
|
||||||
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("sub %4,%5,%1
|
__asm__ ("sub %4,%5,%1\n" \
|
||||||
subb %2,%3,%0" \
|
"subb %2,%3,%0" \
|
||||||
: "=r" ((USItype)(sh)), \
|
: "=r" ((USItype)(sh)), \
|
||||||
"=&r" ((USItype)(sl)) \
|
"=&r" ((USItype)(sl)) \
|
||||||
: "rM" ((USItype)(ah)), \
|
: "rM" ((USItype)(ah)), \
|
||||||
@ -365,22 +365,22 @@ extern USItype __udiv_qrnnd ();
|
|||||||
do { \
|
do { \
|
||||||
USItype __tmp; \
|
USItype __tmp; \
|
||||||
__asm__ ( \
|
__asm__ ( \
|
||||||
"ldi 1,%0
|
"ldi 1,%0 \n" \
|
||||||
extru,= %1,15,16,%%r0 ; Bits 31..16 zero?
|
"extru,= %1,15,16,%%r0 ; Bits 31..16 zero? \n" \
|
||||||
extru,tr %1,15,16,%1 ; No. Shift down, skip add.
|
"extru,tr %1,15,16,%1 ; No. Shift down, skip add.\n" \
|
||||||
ldo 16(%0),%0 ; Yes. Perform add.
|
"ldo 16(%0),%0 ; Yes. Perform add. \n" \
|
||||||
extru,= %1,23,8,%%r0 ; Bits 15..8 zero?
|
"extru,= %1,23,8,%%r0 ; Bits 15..8 zero? \n" \
|
||||||
extru,tr %1,23,8,%1 ; No. Shift down, skip add.
|
"extru,tr %1,23,8,%1 ; No. Shift down, skip add.\n" \
|
||||||
ldo 8(%0),%0 ; Yes. Perform add.
|
"ldo 8(%0),%0 ; Yes. Perform add. \n" \
|
||||||
extru,= %1,27,4,%%r0 ; Bits 7..4 zero?
|
"extru,= %1,27,4,%%r0 ; Bits 7..4 zero? \n" \
|
||||||
extru,tr %1,27,4,%1 ; No. Shift down, skip add.
|
"extru,tr %1,27,4,%1 ; No. Shift down, skip add.\n" \
|
||||||
ldo 4(%0),%0 ; Yes. Perform add.
|
"ldo 4(%0),%0 ; Yes. Perform add. \n" \
|
||||||
extru,= %1,29,2,%%r0 ; Bits 3..2 zero?
|
"extru,= %1,29,2,%%r0 ; Bits 3..2 zero? \n" \
|
||||||
extru,tr %1,29,2,%1 ; No. Shift down, skip add.
|
"extru,tr %1,29,2,%1 ; No. Shift down, skip add.\n" \
|
||||||
ldo 2(%0),%0 ; Yes. Perform add.
|
"ldo 2(%0),%0 ; Yes. Perform add. \n" \
|
||||||
extru %1,30,1,%1 ; Extract bit 1.
|
"extru %1,30,1,%1 ; Extract bit 1. \n" \
|
||||||
sub %0,%1,%0 ; Subtract it.
|
"sub %0,%1,%0 ; Subtract it. " \
|
||||||
" : "=r" (count), "=r" (__tmp) : "1" (x)); \
|
: "=r" (count), "=r" (__tmp) : "1" (x)); \
|
||||||
} while (0)
|
} while (0)
|
||||||
#endif /* hppa */
|
#endif /* hppa */
|
||||||
|
|
||||||
@ -435,8 +435,8 @@ extern USItype __udiv_qrnnd ();
|
|||||||
***************************************/
|
***************************************/
|
||||||
#if (defined (__i386__) || defined (__i486__)) && W_TYPE_SIZE == 32
|
#if (defined (__i386__) || defined (__i486__)) && W_TYPE_SIZE == 32
|
||||||
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("addl %5,%1
|
__asm__ ("addl %5,%1\n" \
|
||||||
adcl %3,%0" \
|
"adcl %3,%0" \
|
||||||
: "=r" ((USItype)(sh)), \
|
: "=r" ((USItype)(sh)), \
|
||||||
"=&r" ((USItype)(sl)) \
|
"=&r" ((USItype)(sl)) \
|
||||||
: "%0" ((USItype)(ah)), \
|
: "%0" ((USItype)(ah)), \
|
||||||
@ -444,8 +444,8 @@ extern USItype __udiv_qrnnd ();
|
|||||||
"%1" ((USItype)(al)), \
|
"%1" ((USItype)(al)), \
|
||||||
"g" ((USItype)(bl)))
|
"g" ((USItype)(bl)))
|
||||||
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("subl %5,%1
|
__asm__ ("subl %5,%1\n" \
|
||||||
sbbl %3,%0" \
|
"sbbl %3,%0" \
|
||||||
: "=r" ((USItype)(sh)), \
|
: "=r" ((USItype)(sh)), \
|
||||||
"=&r" ((USItype)(sl)) \
|
"=&r" ((USItype)(sl)) \
|
||||||
: "0" ((USItype)(ah)), \
|
: "0" ((USItype)(ah)), \
|
||||||
@ -488,7 +488,8 @@ extern USItype __udiv_qrnnd ();
|
|||||||
***************************************/
|
***************************************/
|
||||||
#if defined (__i860__) && W_TYPE_SIZE == 32
|
#if defined (__i860__) && W_TYPE_SIZE == 32
|
||||||
#define rshift_rhlc(r,h,l,c) \
|
#define rshift_rhlc(r,h,l,c) \
|
||||||
__asm__ ("shr %3,r0,r0\;shrd %1,%2,%0" \
|
__asm__ ("shr %3,r0,r0\n" \
|
||||||
|
"shrd %1,%2,%0" \
|
||||||
"=r" (r) : "r" (h), "r" (l), "rn" (c))
|
"=r" (r) : "r" (h), "r" (l), "rn" (c))
|
||||||
#endif /* i860 */
|
#endif /* i860 */
|
||||||
|
|
||||||
@ -497,7 +498,9 @@ extern USItype __udiv_qrnnd ();
|
|||||||
***************************************/
|
***************************************/
|
||||||
#if defined (__i960__) && W_TYPE_SIZE == 32
|
#if defined (__i960__) && W_TYPE_SIZE == 32
|
||||||
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("cmpo 1,0\;addc %5,%4,%1\;addc %3,%2,%0" \
|
__asm__ ("cmpo 1,0\n" \
|
||||||
|
"addc %5,%4,%1\n" \
|
||||||
|
"addc %3,%2,%0" \
|
||||||
: "=r" ((USItype)(sh)), \
|
: "=r" ((USItype)(sh)), \
|
||||||
"=&r" ((USItype)(sl)) \
|
"=&r" ((USItype)(sl)) \
|
||||||
: "%dI" ((USItype)(ah)), \
|
: "%dI" ((USItype)(ah)), \
|
||||||
@ -505,7 +508,9 @@ extern USItype __udiv_qrnnd ();
|
|||||||
"%dI" ((USItype)(al)), \
|
"%dI" ((USItype)(al)), \
|
||||||
"dI" ((USItype)(bl)))
|
"dI" ((USItype)(bl)))
|
||||||
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("cmpo 0,0\;subc %5,%4,%1\;subc %3,%2,%0" \
|
__asm__ ("cmpo 0,0\n" \
|
||||||
|
"subc %5,%4,%1\n" \
|
||||||
|
"subc %3,%2,%0" \
|
||||||
: "=r" ((USItype)(sh)), \
|
: "=r" ((USItype)(sh)), \
|
||||||
"=&r" ((USItype)(sl)) \
|
"=&r" ((USItype)(sl)) \
|
||||||
: "dI" ((USItype)(ah)), \
|
: "dI" ((USItype)(ah)), \
|
||||||
@ -568,8 +573,8 @@ extern USItype __udiv_qrnnd ();
|
|||||||
***************************************/
|
***************************************/
|
||||||
#if (defined (__mc68000__) || defined (__mc68020__) || defined (__NeXT__) || defined(mc68020)) && W_TYPE_SIZE == 32
|
#if (defined (__mc68000__) || defined (__mc68020__) || defined (__NeXT__) || defined(mc68020)) && W_TYPE_SIZE == 32
|
||||||
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("add%.l %5,%1
|
__asm__ ("add%.l %5,%1\n" \
|
||||||
addx%.l %3,%0" \
|
"addx%.l %3,%0" \
|
||||||
: "=d" ((USItype)(sh)), \
|
: "=d" ((USItype)(sh)), \
|
||||||
"=&d" ((USItype)(sl)) \
|
"=&d" ((USItype)(sl)) \
|
||||||
: "%0" ((USItype)(ah)), \
|
: "%0" ((USItype)(ah)), \
|
||||||
@ -577,8 +582,8 @@ extern USItype __udiv_qrnnd ();
|
|||||||
"%1" ((USItype)(al)), \
|
"%1" ((USItype)(al)), \
|
||||||
"g" ((USItype)(bl)))
|
"g" ((USItype)(bl)))
|
||||||
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("sub%.l %5,%1
|
__asm__ ("sub%.l %5,%1\n" \
|
||||||
subx%.l %3,%0" \
|
"subx%.l %3,%0" \
|
||||||
: "=d" ((USItype)(sh)), \
|
: "=d" ((USItype)(sh)), \
|
||||||
"=&d" ((USItype)(sl)) \
|
"=&d" ((USItype)(sl)) \
|
||||||
: "0" ((USItype)(ah)), \
|
: "0" ((USItype)(ah)), \
|
||||||
@ -616,28 +621,28 @@ extern USItype __udiv_qrnnd ();
|
|||||||
#else /* not mc68020 */
|
#else /* not mc68020 */
|
||||||
#define umul_ppmm(xh, xl, a, b) \
|
#define umul_ppmm(xh, xl, a, b) \
|
||||||
do { USItype __umul_tmp1, __umul_tmp2; \
|
do { USItype __umul_tmp1, __umul_tmp2; \
|
||||||
__asm__ ("| Inlined umul_ppmm
|
__asm__ ("| Inlined umul_ppmm \n" \
|
||||||
move%.l %5,%3
|
" move%.l %5,%3 \n" \
|
||||||
move%.l %2,%0
|
" move%.l %2,%0 \n" \
|
||||||
move%.w %3,%1
|
" move%.w %3,%1 \n" \
|
||||||
swap %3
|
" swap %3 \n" \
|
||||||
swap %0
|
" swap %0 \n" \
|
||||||
mulu %2,%1
|
" mulu %2,%1 \n" \
|
||||||
mulu %3,%0
|
" mulu %3,%0 \n" \
|
||||||
mulu %2,%3
|
" mulu %2,%3 \n" \
|
||||||
swap %2
|
" swap %2 \n" \
|
||||||
mulu %5,%2
|
" mulu %5,%2 \n" \
|
||||||
add%.l %3,%2
|
" add%.l %3,%2 \n" \
|
||||||
jcc 1f
|
" jcc 1f \n" \
|
||||||
add%.l %#0x10000,%0
|
" add%.l %#0x10000,%0 \n" \
|
||||||
1: move%.l %2,%3
|
"1: move%.l %2,%3 \n" \
|
||||||
clr%.w %2
|
" clr%.w %2 \n" \
|
||||||
swap %2
|
" swap %2 \n" \
|
||||||
swap %3
|
" swap %3 \n" \
|
||||||
clr%.w %3
|
" clr%.w %3 \n" \
|
||||||
add%.l %3,%1
|
" add%.l %3,%1 \n" \
|
||||||
addx%.l %2,%0
|
" addx%.l %2,%0 \n" \
|
||||||
| End inlined umul_ppmm" \
|
" | End inlined umul_ppmm" \
|
||||||
: "=&d" ((USItype)(xh)), "=&d" ((USItype)(xl)), \
|
: "=&d" ((USItype)(xh)), "=&d" ((USItype)(xl)), \
|
||||||
"=d" (__umul_tmp1), "=&d" (__umul_tmp2) \
|
"=d" (__umul_tmp1), "=&d" (__umul_tmp2) \
|
||||||
: "%2" ((USItype)(a)), "d" ((USItype)(b))); \
|
: "%2" ((USItype)(a)), "d" ((USItype)(b))); \
|
||||||
@ -653,8 +658,8 @@ extern USItype __udiv_qrnnd ();
|
|||||||
***************************************/
|
***************************************/
|
||||||
#if defined (__m88000__) && W_TYPE_SIZE == 32
|
#if defined (__m88000__) && W_TYPE_SIZE == 32
|
||||||
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("addu.co %1,%r4,%r5
|
__asm__ ("addu.co %1,%r4,%r5\n" \
|
||||||
addu.ci %0,%r2,%r3" \
|
"addu.ci %0,%r2,%r3" \
|
||||||
: "=r" ((USItype)(sh)), \
|
: "=r" ((USItype)(sh)), \
|
||||||
"=&r" ((USItype)(sl)) \
|
"=&r" ((USItype)(sl)) \
|
||||||
: "%rJ" ((USItype)(ah)), \
|
: "%rJ" ((USItype)(ah)), \
|
||||||
@ -662,8 +667,8 @@ extern USItype __udiv_qrnnd ();
|
|||||||
"%rJ" ((USItype)(al)), \
|
"%rJ" ((USItype)(al)), \
|
||||||
"rJ" ((USItype)(bl)))
|
"rJ" ((USItype)(bl)))
|
||||||
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("subu.co %1,%r4,%r5
|
__asm__ ("subu.co %1,%r4,%r5\n" \
|
||||||
subu.ci %0,%r2,%r3" \
|
"subu.ci %0,%r2,%r3" \
|
||||||
: "=r" ((USItype)(sh)), \
|
: "=r" ((USItype)(sh)), \
|
||||||
"=&r" ((USItype)(sl)) \
|
"=&r" ((USItype)(sl)) \
|
||||||
: "rJ" ((USItype)(ah)), \
|
: "rJ" ((USItype)(ah)), \
|
||||||
@ -705,7 +710,6 @@ extern USItype __udiv_qrnnd ();
|
|||||||
#endif /* __m88110__ */
|
#endif /* __m88110__ */
|
||||||
#endif /* __m88000__ */
|
#endif /* __m88000__ */
|
||||||
|
|
||||||
|
|
||||||
/***************************************
|
/***************************************
|
||||||
************** MIPS *****************
|
************** MIPS *****************
|
||||||
***************************************/
|
***************************************/
|
||||||
@ -719,9 +723,9 @@ extern USItype __udiv_qrnnd ();
|
|||||||
"d" ((USItype)(v)))
|
"d" ((USItype)(v)))
|
||||||
#else
|
#else
|
||||||
#define umul_ppmm(w1, w0, u, v) \
|
#define umul_ppmm(w1, w0, u, v) \
|
||||||
__asm__ ("multu %2,%3
|
__asm__ ("multu %2,%3 \n" \
|
||||||
mflo %0
|
"mflo %0 \n" \
|
||||||
mfhi %1" \
|
"mfhi %1" \
|
||||||
: "=d" ((USItype)(w0)), \
|
: "=d" ((USItype)(w0)), \
|
||||||
"=d" ((USItype)(w1)) \
|
"=d" ((USItype)(w1)) \
|
||||||
: "d" ((USItype)(u)), \
|
: "d" ((USItype)(u)), \
|
||||||
@ -744,9 +748,9 @@ extern USItype __udiv_qrnnd ();
|
|||||||
"d" ((UDItype)(v)))
|
"d" ((UDItype)(v)))
|
||||||
#else
|
#else
|
||||||
#define umul_ppmm(w1, w0, u, v) \
|
#define umul_ppmm(w1, w0, u, v) \
|
||||||
__asm__ ("dmultu %2,%3
|
__asm__ ("dmultu %2,%3 \n" \
|
||||||
mflo %0
|
"mflo %0 \n" \
|
||||||
mfhi %1" \
|
"mfhi %1" \
|
||||||
: "=d" ((UDItype)(w0)), \
|
: "=d" ((UDItype)(w0)), \
|
||||||
"=d" ((UDItype)(w1)) \
|
"=d" ((UDItype)(w1)) \
|
||||||
: "d" ((UDItype)(u)), \
|
: "d" ((UDItype)(u)), \
|
||||||
@ -926,8 +930,8 @@ extern USItype __udiv_qrnnd ();
|
|||||||
***************************************/
|
***************************************/
|
||||||
#if defined (__pyr__) && W_TYPE_SIZE == 32
|
#if defined (__pyr__) && W_TYPE_SIZE == 32
|
||||||
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("addw %5,%1
|
__asm__ ("addw %5,%1 \n" \
|
||||||
addwc %3,%0" \
|
"addwc %3,%0" \
|
||||||
: "=r" ((USItype)(sh)), \
|
: "=r" ((USItype)(sh)), \
|
||||||
"=&r" ((USItype)(sl)) \
|
"=&r" ((USItype)(sl)) \
|
||||||
: "%0" ((USItype)(ah)), \
|
: "%0" ((USItype)(ah)), \
|
||||||
@ -935,8 +939,8 @@ extern USItype __udiv_qrnnd ();
|
|||||||
"%1" ((USItype)(al)), \
|
"%1" ((USItype)(al)), \
|
||||||
"g" ((USItype)(bl)))
|
"g" ((USItype)(bl)))
|
||||||
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("subw %5,%1
|
__asm__ ("subw %5,%1 \n" \
|
||||||
subwb %3,%0" \
|
"subwb %3,%0" \
|
||||||
: "=r" ((USItype)(sh)), \
|
: "=r" ((USItype)(sh)), \
|
||||||
"=&r" ((USItype)(sl)) \
|
"=&r" ((USItype)(sl)) \
|
||||||
: "0" ((USItype)(ah)), \
|
: "0" ((USItype)(ah)), \
|
||||||
@ -948,8 +952,8 @@ extern USItype __udiv_qrnnd ();
|
|||||||
({union {UDItype __ll; \
|
({union {UDItype __ll; \
|
||||||
struct {USItype __h, __l;} __i; \
|
struct {USItype __h, __l;} __i; \
|
||||||
} __xx; \
|
} __xx; \
|
||||||
__asm__ ("movw %1,%R0
|
__asm__ ("movw %1,%R0 \n" \
|
||||||
uemul %2,%0" \
|
"uemul %2,%0" \
|
||||||
: "=&r" (__xx.__ll) \
|
: "=&r" (__xx.__ll) \
|
||||||
: "g" ((USItype) (u)), \
|
: "g" ((USItype) (u)), \
|
||||||
"g" ((USItype)(v))); \
|
"g" ((USItype)(v))); \
|
||||||
@ -962,8 +966,8 @@ extern USItype __udiv_qrnnd ();
|
|||||||
***************************************/
|
***************************************/
|
||||||
#if defined (__ibm032__) /* RT/ROMP */ && W_TYPE_SIZE == 32
|
#if defined (__ibm032__) /* RT/ROMP */ && W_TYPE_SIZE == 32
|
||||||
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("a %1,%5
|
__asm__ ("a %1,%5 \n" \
|
||||||
ae %0,%3" \
|
"ae %0,%3" \
|
||||||
: "=r" ((USItype)(sh)), \
|
: "=r" ((USItype)(sh)), \
|
||||||
"=&r" ((USItype)(sl)) \
|
"=&r" ((USItype)(sl)) \
|
||||||
: "%0" ((USItype)(ah)), \
|
: "%0" ((USItype)(ah)), \
|
||||||
@ -971,8 +975,8 @@ extern USItype __udiv_qrnnd ();
|
|||||||
"%1" ((USItype)(al)), \
|
"%1" ((USItype)(al)), \
|
||||||
"r" ((USItype)(bl)))
|
"r" ((USItype)(bl)))
|
||||||
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("s %1,%5
|
__asm__ ("s %1,%5\n" \
|
||||||
se %0,%3" \
|
"se %0,%3" \
|
||||||
: "=r" ((USItype)(sh)), \
|
: "=r" ((USItype)(sh)), \
|
||||||
"=&r" ((USItype)(sl)) \
|
"=&r" ((USItype)(sl)) \
|
||||||
: "0" ((USItype)(ah)), \
|
: "0" ((USItype)(ah)), \
|
||||||
@ -983,26 +987,26 @@ extern USItype __udiv_qrnnd ();
|
|||||||
do { \
|
do { \
|
||||||
USItype __m0 = (m0), __m1 = (m1); \
|
USItype __m0 = (m0), __m1 = (m1); \
|
||||||
__asm__ ( \
|
__asm__ ( \
|
||||||
"s r2,r2
|
"s r2,r2 \n" \
|
||||||
mts r10,%2
|
"mts r10,%2 \n" \
|
||||||
m r2,%3
|
"m r2,%3 \n" \
|
||||||
m r2,%3
|
"m r2,%3 \n" \
|
||||||
m r2,%3
|
"m r2,%3 \n" \
|
||||||
m r2,%3
|
"m r2,%3 \n" \
|
||||||
m r2,%3
|
"m r2,%3 \n" \
|
||||||
m r2,%3
|
"m r2,%3 \n" \
|
||||||
m r2,%3
|
"m r2,%3 \n" \
|
||||||
m r2,%3
|
"m r2,%3 \n" \
|
||||||
m r2,%3
|
"m r2,%3 \n" \
|
||||||
m r2,%3
|
"m r2,%3 \n" \
|
||||||
m r2,%3
|
"m r2,%3 \n" \
|
||||||
m r2,%3
|
"m r2,%3 \n" \
|
||||||
m r2,%3
|
"m r2,%3 \n" \
|
||||||
m r2,%3
|
"m r2,%3 \n" \
|
||||||
m r2,%3
|
"m r2,%3 \n" \
|
||||||
m r2,%3
|
"m r2,%3 \n" \
|
||||||
cas %0,r2,r0
|
"cas %0,r2,r0 \n" \
|
||||||
mfs r10,%1" \
|
"mfs r10,%1" \
|
||||||
: "=r" ((USItype)(ph)), \
|
: "=r" ((USItype)(ph)), \
|
||||||
"=r" ((USItype)(pl)) \
|
"=r" ((USItype)(pl)) \
|
||||||
: "%r" (__m0), \
|
: "%r" (__m0), \
|
||||||
@ -1036,9 +1040,9 @@ extern USItype __udiv_qrnnd ();
|
|||||||
#if defined (__sh2__) && W_TYPE_SIZE == 32
|
#if defined (__sh2__) && W_TYPE_SIZE == 32
|
||||||
#define umul_ppmm(w1, w0, u, v) \
|
#define umul_ppmm(w1, w0, u, v) \
|
||||||
__asm__ ( \
|
__asm__ ( \
|
||||||
"dmulu.l %2,%3
|
"dmulu.l %2,%3\n" \
|
||||||
sts macl,%1
|
"sts macl,%1\n" \
|
||||||
sts mach,%0" \
|
"sts mach,%0" \
|
||||||
: "=r" ((USItype)(w1)), \
|
: "=r" ((USItype)(w1)), \
|
||||||
"=r" ((USItype)(w0)) \
|
"=r" ((USItype)(w0)) \
|
||||||
: "r" ((USItype)(u)), \
|
: "r" ((USItype)(u)), \
|
||||||
@ -1052,8 +1056,8 @@ extern USItype __udiv_qrnnd ();
|
|||||||
***************************************/
|
***************************************/
|
||||||
#if defined (__sparc__) && W_TYPE_SIZE == 32
|
#if defined (__sparc__) && W_TYPE_SIZE == 32
|
||||||
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("addcc %r4,%5,%1
|
__asm__ ("addcc %r4,%5,%1\n" \
|
||||||
addx %r2,%3,%0" \
|
"addx %r2,%3,%0" \
|
||||||
: "=r" ((USItype)(sh)), \
|
: "=r" ((USItype)(sh)), \
|
||||||
"=&r" ((USItype)(sl)) \
|
"=&r" ((USItype)(sl)) \
|
||||||
: "%rJ" ((USItype)(ah)), \
|
: "%rJ" ((USItype)(ah)), \
|
||||||
@ -1062,8 +1066,8 @@ extern USItype __udiv_qrnnd ();
|
|||||||
"rI" ((USItype)(bl)) \
|
"rI" ((USItype)(bl)) \
|
||||||
__CLOBBER_CC)
|
__CLOBBER_CC)
|
||||||
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("subcc %r4,%5,%1
|
__asm__ ("subcc %r4,%5,%1\n" \
|
||||||
subx %r2,%3,%0" \
|
"subx %r2,%3,%0" \
|
||||||
: "=r" ((USItype)(sh)), \
|
: "=r" ((USItype)(sh)), \
|
||||||
"=&r" ((USItype)(sl)) \
|
"=&r" ((USItype)(sl)) \
|
||||||
: "rJ" ((USItype)(ah)), \
|
: "rJ" ((USItype)(ah)), \
|
||||||
@ -1109,45 +1113,45 @@ extern USItype __udiv_qrnnd ();
|
|||||||
"r" ((USItype)(v)))
|
"r" ((USItype)(v)))
|
||||||
#define UMUL_TIME 5
|
#define UMUL_TIME 5
|
||||||
#define udiv_qrnnd(q, r, n1, n0, d) \
|
#define udiv_qrnnd(q, r, n1, n0, d) \
|
||||||
__asm__ ("! Inlined udiv_qrnnd
|
__asm__ ("! Inlined udiv_qrnnd \n" \
|
||||||
wr %%g0,%2,%%y ! Not a delayed write for sparclite
|
" wr %%g0,%2,%%y ! Not a delayed write for sparclite \n" \
|
||||||
tst %%g0
|
" tst %%g0 \n" \
|
||||||
divscc %3,%4,%%g1
|
" divscc %3,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%%g1
|
" divscc %%g1,%4,%%g1 \n" \
|
||||||
divscc %%g1,%4,%0
|
" divscc %%g1,%4,%0 \n" \
|
||||||
rd %%y,%1
|
" rd %%y,%1 \n" \
|
||||||
bl,a 1f
|
" bl,a 1f \n" \
|
||||||
add %1,%4,%1
|
" add %1,%4,%1 \n" \
|
||||||
1: ! End of inline udiv_qrnnd" \
|
"1: ! End of inline udiv_qrnnd" \
|
||||||
: "=r" ((USItype)(q)), \
|
: "=r" ((USItype)(q)), \
|
||||||
"=r" ((USItype)(r)) \
|
"=r" ((USItype)(r)) \
|
||||||
: "r" ((USItype)(n1)), \
|
: "r" ((USItype)(n1)), \
|
||||||
@ -1167,46 +1171,46 @@ extern USItype __udiv_qrnnd ();
|
|||||||
/* Default to sparc v7 versions of umul_ppmm and udiv_qrnnd. */
|
/* Default to sparc v7 versions of umul_ppmm and udiv_qrnnd. */
|
||||||
#ifndef umul_ppmm
|
#ifndef umul_ppmm
|
||||||
#define umul_ppmm(w1, w0, u, v) \
|
#define umul_ppmm(w1, w0, u, v) \
|
||||||
__asm__ ("! Inlined umul_ppmm
|
__asm__ ("! Inlined umul_ppmm \n" \
|
||||||
wr %%g0,%2,%%y ! SPARC has 0-3 delay insn after a wr
|
" wr %%g0,%2,%%y ! SPARC has 0-3 delay insn after a wr \n" \
|
||||||
sra %3,31,%%g2 ! Don't move this insn
|
" sra %3,31,%%g2 ! Don't move this insn \n" \
|
||||||
and %2,%%g2,%%g2 ! Don't move this insn
|
" and %2,%%g2,%%g2 ! Don't move this insn \n" \
|
||||||
andcc %%g0,0,%%g1 ! Don't move this insn
|
" andcc %%g0,0,%%g1 ! Don't move this insn \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,%3,%%g1
|
" mulscc %%g1,%3,%%g1 \n" \
|
||||||
mulscc %%g1,0,%%g1
|
" mulscc %%g1,0,%%g1 \n" \
|
||||||
add %%g1,%%g2,%0
|
" add %%g1,%%g2,%0 \n" \
|
||||||
rd %%y,%1" \
|
" rd %%y,%1" \
|
||||||
: "=r" ((USItype)(w1)), \
|
: "=r" ((USItype)(w1)), \
|
||||||
"=r" ((USItype)(w0)) \
|
"=r" ((USItype)(w0)) \
|
||||||
: "%rI" ((USItype)(u)), \
|
: "%rI" ((USItype)(u)), \
|
||||||
@ -1233,8 +1237,8 @@ extern USItype __udiv_qrnnd ();
|
|||||||
***************************************/
|
***************************************/
|
||||||
#if defined (__vax__) && W_TYPE_SIZE == 32
|
#if defined (__vax__) && W_TYPE_SIZE == 32
|
||||||
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("addl2 %5,%1
|
__asm__ ("addl2 %5,%1\n" \
|
||||||
adwc %3,%0" \
|
"adwc %3,%0" \
|
||||||
: "=g" ((USItype)(sh)), \
|
: "=g" ((USItype)(sh)), \
|
||||||
"=&g" ((USItype)(sl)) \
|
"=&g" ((USItype)(sl)) \
|
||||||
: "%0" ((USItype)(ah)), \
|
: "%0" ((USItype)(ah)), \
|
||||||
@ -1242,8 +1246,8 @@ extern USItype __udiv_qrnnd ();
|
|||||||
"%1" ((USItype)(al)), \
|
"%1" ((USItype)(al)), \
|
||||||
"g" ((USItype)(bl)))
|
"g" ((USItype)(bl)))
|
||||||
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
||||||
__asm__ ("subl2 %5,%1
|
__asm__ ("subl2 %5,%1\n" \
|
||||||
sbwc %3,%0" \
|
"sbwc %3,%0" \
|
||||||
: "=g" ((USItype)(sh)), \
|
: "=g" ((USItype)(sh)), \
|
||||||
"=&g" ((USItype)(sl)) \
|
"=&g" ((USItype)(sl)) \
|
||||||
: "0" ((USItype)(ah)), \
|
: "0" ((USItype)(ah)), \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user