2001-04-29  Ben Collins  <bcollins@debian.org>

	* sysdeps/sparc/sparc64/dl-machine.h: Fix multiline strings
	warnings.
	* sysdeps/sparc/sparc64/soft-fp/qp_add.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_cmp.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_cmpe.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_div.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_dtoq.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_feq.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_fge.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_fgt.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_fle.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_flt.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_fne.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_mul.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_qtod.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_qtos.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_qtox.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_qtox.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_sqrt.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_stoq.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/qp_sub.c: Likewise.
	* sysdeps/sparc/sparc64/soft-fp/sfp-machine.h: Likewise.
This commit is contained in:
Andreas Jaeger 2001-04-30 06:48:37 +00:00
parent 354fa0497f
commit ba77ce24a6
24 changed files with 294 additions and 266 deletions

View File

@ -1,3 +1,31 @@
2001-04-29 Ben Collins <bcollins@debian.org>
* sysdeps/sparc/sparc64/dl-machine.h: Fix multiline strings
warnings.
* sysdeps/sparc/sparc64/soft-fp/qp_add.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_cmp.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_cmpe.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_div.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_dtoq.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_feq.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_fge.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_fgt.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_fle.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_flt.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_fne.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_mul.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_qtod.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_qtos.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_qtox.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_qtox.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_sqrt.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_stoq.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/qp_sub.c: Likewise.
* sysdeps/sparc/sparc64/soft-fp/sfp-machine.h: Likewise.
2001-04-29 Andreas Schwab <schwab@suse.de>
* sysdeps/unix/sysv/linux/kernel-features.h: Fix missing backslash

View File

@ -481,53 +481,53 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
/* This code is used in dl-runtime.c to call the `fixup' function
and then redirect to the address it returns. */
#define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name) \
asm ("\
.text
.globl " #tramp_name "_0
.type " #tramp_name "_0, @function
.align 32
" #tramp_name "_0:
! sethi %hi(1047552), %l2 - Done in .PLT0
ldx [%l6 + 32 + 8], %o0
sub %g1, %l6, %l0
xor %l2, -1016, %l2
sethi %hi(5120), %l3 ! 160 * 32
add %l0, %l2, %l0
sethi %hi(32768), %l4
udivx %l0, %l3, %l3
sllx %l3, 2, %l1
add %l1, %l3, %l1
sllx %l1, 10, %l2
sub %l4, 4, %l4 ! No thanks to Sun for not obeying their own ABI
sllx %l1, 5, %l1
sub %l0, %l2, %l0
udivx %l0, 24, %l0
add %l0, %l4, %l0
add %l1, %l0, %l1
add %l1, %l1, %l0
add %l0, %l1, %l0
mov %i7, %o2
call " #fixup_name "
sllx %l0, 3, %o1
jmp %o0
restore
.size " #tramp_name "_0, . - " #tramp_name "_0
.globl " #tramp_name "_1
.type " #tramp_name "_1, @function
.align 32
" #tramp_name "_1:
! srlx %g1, 12, %o1 - Done in .PLT1
ldx [%l6 + 8], %o0
add %o1, %o1, %o3
sub %o1, 96, %o1 ! No thanks to Sun for not obeying their own ABI
mov %i7, %o2
call " #fixup_name "
add %o1, %o3, %o1
jmp %o0
restore
.size " #tramp_name "_1, . - " #tramp_name "_1
.previous");
asm ("\n" \
" .text\n" \
" .globl " #tramp_name "_0\n" \
" .type " #tramp_name "_0, @function\n" \
" .align 32\n" \
"\t" #tramp_name "_0:\n" \
" ! sethi %hi(1047552), %l2 - Done in .PLT0\n" \
" ldx [%l6 + 32 + 8], %o0\n" \
" sub %g1, %l6, %l0\n" \
" xor %l2, -1016, %l2\n" \
" sethi %hi(5120), %l3 ! 160 * 32\n" \
" add %l0, %l2, %l0\n" \
" sethi %hi(32768), %l4\n" \
" udivx %l0, %l3, %l3\n" \
" sllx %l3, 2, %l1\n" \
" add %l1, %l3, %l1\n" \
" sllx %l1, 10, %l2\n" \
" sub %l4, 4, %l4 ! No thanks to Sun for not obeying their own ABI\n" \
" sllx %l1, 5, %l1\n" \
" sub %l0, %l2, %l0\n" \
" udivx %l0, 24, %l0\n" \
" add %l0, %l4, %l0\n" \
" add %l1, %l0, %l1\n" \
" add %l1, %l1, %l0\n" \
" add %l0, %l1, %l0\n" \
" mov %i7, %o2\n" \
" call " #fixup_name "\n" \
" sllx %l0, 3, %o1\n" \
" jmp %o0\n" \
" restore\n" \
" .size " #tramp_name "_0, . - " #tramp_name "_0\n" \
"\n" \
" .globl " #tramp_name "_1\n" \
" .type " #tramp_name "_1, @function\n" \
" .align 32\n" \
"\t" #tramp_name "_1:\n" \
" ! srlx %g1, 12, %o1 - Done in .PLT1\n" \
" ldx [%l6 + 8], %o0\n" \
" add %o1, %o1, %o3\n" \
" sub %o1, 96, %o1 ! No thanks to Sun for not obeying their own ABI\n" \
" mov %i7, %o2\n" \
" call " #fixup_name "\n" \
" add %o1, %o3, %o1\n" \
" jmp %o0\n" \
" restore\n" \
" .size " #tramp_name "_1, . - " #tramp_name "_1\n" \
" .previous\n");
#ifndef PROF
#define ELF_MACHINE_RUNTIME_TRAMPOLINE \
@ -549,94 +549,94 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
#define __S1(x) #x
#define __S(x) __S1(x)
#define RTLD_START __asm__ ( "\
.text
.global _start
.type _start, @function
.align 32
_start:
/* Make room for functions to drop their arguments on the stack. */
sub %sp, 6*8, %sp
/* Pass pointer to argument block to _dl_start. */
call _dl_start
add %sp," __S(STACK_BIAS) "+22*8,%o0
/* FALLTHRU */
.size _start, .-_start
.global _dl_start_user
.type _dl_start_user, @function
_dl_start_user:
/* Load the GOT register. */
1: call 11f
sethi %hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
11: or %l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
/* Store the highest stack address. */
sethi %hi(__libc_stack_end), %g5
add %l7, %o7, %l7
or %g5, %lo(__libc_stack_end), %g5
/* Save the user entry point address in %l0. */
mov %o0, %l0
ldx [%l7 + %g5], %l1
sethi %hi(_dl_skip_args), %g5
add %sp, 6*8, %l2
/* See if we were run as a command with the executable file name as an
extra leading argument. If so, we must shift things around since we
must keep the stack doubleword aligned. */
or %g5, %lo(_dl_skip_args), %g5
stx %l2, [%l1]
ldx [%l7 + %g5], %i0
ld [%i0], %i0
brz,pt %i0, 2f
ldx [%sp + " __S(STACK_BIAS) " + 22*8], %i5
/* Find out how far to shift. */
sethi %hi(_dl_argv), %l4
sub %i5, %i0, %i5
or %l4, %lo(_dl_argv), %l4
sllx %i0, 3, %l6
ldx [%l7 + %l4], %l4
stx %i5, [%sp + " __S(STACK_BIAS) " + 22*8]
add %sp, " __S(STACK_BIAS) " + 23*8, %i1
add %i1, %l6, %i2
ldx [%l4], %l5
/* Copy down argv. */
12: ldx [%i2], %i3
add %i2, 8, %i2
stx %i3, [%i1]
brnz,pt %i3, 12b
add %i1, 8, %i1
sub %l5, %l6, %l5
/* Copy down envp. */
13: ldx [%i2], %i3
add %i2, 8, %i2
stx %i3, [%i1]
brnz,pt %i3, 13b
add %i1, 8, %i1
/* Copy down auxiliary table. */
14: ldx [%i2], %i3
ldx [%i2 + 8], %i4
add %i2, 16, %i2
stx %i3, [%i1]
stx %i4, [%i1 + 8]
brnz,pt %i3, 14b
add %i1, 16, %i1
stx %l5, [%l4]
/* %o0 = _dl_loaded, %o1 = argc, %o2 = argv, %o3 = envp. */
2: sethi %hi(_dl_loaded), %o0
add %sp, " __S(STACK_BIAS) " + 23*8, %o2
orcc %o0, %lo(_dl_loaded), %o0
sllx %i5, 3, %o3
ldx [%l7 + %o0], %o0
add %o3, 8, %o3
mov %i5, %o1
add %o2, %o3, %o3
call _dl_init
ldx [%o0], %o0
/* Pass our finalizer function to the user in %g1. */
sethi %hi(_dl_fini), %g1
or %g1, %lo(_dl_fini), %g1
ldx [%l7 + %g1], %g1
/* Jump to the user's entry point and deallocate the extra stack we got. */
jmp %l0
add %sp, 6*8, %sp
.size _dl_start_user, . - _dl_start_user
.previous");
#define RTLD_START __asm__ ( "\n" \
" .text\n" \
" .global _start\n" \
" .type _start, @function\n" \
" .align 32\n" \
"_start:\n" \
" /* Make room for functions to drop their arguments on the stack. */\n" \
" sub %sp, 6*8, %sp\n" \
" /* Pass pointer to argument block to _dl_start. */\n" \
" call _dl_start\n" \
" add %sp," __S(STACK_BIAS) "+22*8,%o0\n" \
" /* FALLTHRU */\n" \
" .size _start, .-_start\n" \
"\n" \
" .global _dl_start_user\n" \
" .type _dl_start_user, @function\n" \
"_dl_start_user:\n" \
" /* Load the GOT register. */\n" \
"1: call 11f\n" \
" sethi %hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7\n" \
"11: or %l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7\n" \
" /* Store the highest stack address. */\n" \
" sethi %hi(__libc_stack_end), %g5\n" \
" add %l7, %o7, %l7\n" \
" or %g5, %lo(__libc_stack_end), %g5\n" \
" /* Save the user entry point address in %l0. */\n" \
" mov %o0, %l0\n" \
" ldx [%l7 + %g5], %l1\n" \
" sethi %hi(_dl_skip_args), %g5\n" \
" add %sp, 6*8, %l2\n" \
" /* See if we were run as a command with the executable file name as an\n" \
" extra leading argument. If so, we must shift things around since we\n" \
" must keep the stack doubleword aligned. */\n" \
" or %g5, %lo(_dl_skip_args), %g5\n" \
" stx %l2, [%l1]\n" \
" ldx [%l7 + %g5], %i0\n" \
" ld [%i0], %i0\n" \
" brz,pt %i0, 2f\n" \
" ldx [%sp + " __S(STACK_BIAS) " + 22*8], %i5\n" \
" /* Find out how far to shift. */\n" \
" sethi %hi(_dl_argv), %l4\n" \
" sub %i5, %i0, %i5\n" \
" or %l4, %lo(_dl_argv), %l4\n" \
" sllx %i0, 3, %l6\n" \
" ldx [%l7 + %l4], %l4\n" \
" stx %i5, [%sp + " __S(STACK_BIAS) " + 22*8]\n" \
" add %sp, " __S(STACK_BIAS) " + 23*8, %i1\n" \
" add %i1, %l6, %i2\n" \
" ldx [%l4], %l5\n" \
" /* Copy down argv. */\n" \
"12: ldx [%i2], %i3\n" \
" add %i2, 8, %i2\n" \
" stx %i3, [%i1]\n" \
" brnz,pt %i3, 12b\n" \
" add %i1, 8, %i1\n" \
" sub %l5, %l6, %l5\n" \
" /* Copy down envp. */\n" \
"13: ldx [%i2], %i3\n" \
" add %i2, 8, %i2\n" \
" stx %i3, [%i1]\n" \
" brnz,pt %i3, 13b\n" \
" add %i1, 8, %i1\n" \
" /* Copy down auxiliary table. */\n" \
"14: ldx [%i2], %i3\n" \
" ldx [%i2 + 8], %i4\n" \
" add %i2, 16, %i2\n" \
" stx %i3, [%i1]\n" \
" stx %i4, [%i1 + 8]\n" \
" brnz,pt %i3, 14b\n" \
" add %i1, 16, %i1\n" \
" stx %l5, [%l4]\n" \
" /* %o0 = _dl_loaded, %o1 = argc, %o2 = argv, %o3 = envp. */\n" \
"2: sethi %hi(_dl_loaded), %o0\n" \
" add %sp, " __S(STACK_BIAS) " + 23*8, %o2\n" \
" orcc %o0, %lo(_dl_loaded), %o0\n" \
" sllx %i5, 3, %o3\n" \
" ldx [%l7 + %o0], %o0\n" \
" add %o3, 8, %o3\n" \
" mov %i5, %o1\n" \
" add %o2, %o3, %o3\n" \
" call _dl_init\n" \
" ldx [%o0], %o0\n" \
" /* Pass our finalizer function to the user in %g1. */\n" \
" sethi %hi(_dl_fini), %g1\n" \
" or %g1, %lo(_dl_fini), %g1\n" \
" ldx [%l7 + %g1], %g1\n" \
" /* Jump to the user's entry point and deallocate the extra stack we got. */\n" \
" jmp %l0\n" \
" add %sp, 6*8, %sp\n" \
" .size _dl_start_user, . - _dl_start_user\n" \
" .previous\n");

View File

@ -34,12 +34,12 @@ void _Qp_add(long double *c, const long double *a, const long double *b)
FP_ADD_Q(C, A, B);
FP_PACK_QP(c, C);
QP_HANDLE_EXCEPTIONS(__asm (
"ldd [%1], %%f52
ldd [%1+8], %%f54
ldd [%2], %%f56
ldd [%2+8], %%f58
faddq %%f52, %%f56, %%f60
std %%f60, [%0]
std %%f62, [%0+8]
" : : "r" (c), "r" (a), "r" (b) : QP_CLOBBER));
" ldd [%1], %%f52\n"
" ldd [%1+8], %%f54\n"
" ldd [%2], %%f56\n"
" ldd [%2+8], %%f58\n"
" faddq %%f52, %%f56, %%f60\n"
" std %%f60, [%0]\n"
" std %%f62, [%0+8]\n"
" " : : "r" (c), "r" (a), "r" (b) : QP_CLOBBER));
}

View File

@ -38,12 +38,12 @@ int _Qp_cmp(const long double *a, const long double *b)
FP_SET_EXCEPTION(FP_EX_INVALID);
QP_HANDLE_EXCEPTIONS(
__asm (
"ldd [%0], %%f52
ldd [%0+8], %%f54
ldd [%1], %%f56
ldd [%1+8], %%f58
fcmpq %%fcc3, %%f52, %%f56
" : : "r" (a), "r" (b) : QP_CLOBBER_CC);
" ldd [%0], %%f52\n"
" ldd [%0+8], %%f54\n"
" ldd [%1], %%f56\n"
" ldd [%1+8], %%f58\n"
" fcmpq %%fcc3, %%f52, %%f56\n"
" " : : "r" (a), "r" (b) : QP_CLOBBER_CC);
_FPU_GETCW(_fcw);
r = ((_fcw >> 36) & 3));

View File

@ -39,12 +39,12 @@ int _Qp_cmpe(const long double *a, const long double *b)
FP_SET_EXCEPTION(FP_EX_INVALID);
QP_HANDLE_EXCEPTIONS(
__asm (
"ldd [%0], %%f52
ldd [%0+8], %%f54
ldd [%1], %%f56
ldd [%1+8], %%f58
fcmpeq %%fcc3, %%f52, %%f56
" : : "r" (a), "r" (b) : QP_CLOBBER_CC);
" ldd [%0], %%f52\n"
" ldd [%0+8], %%f54\n"
" ldd [%1], %%f56\n"
" ldd [%1+8], %%f58\n"
" fcmpeq %%fcc3, %%f52, %%f56\n"
" " : : "r" (a), "r" (b) : QP_CLOBBER_CC);
_FPU_GETCW(_fcw);
r = ((_fcw >> 36) & 3));

View File

@ -34,12 +34,12 @@ void _Qp_div(long double *c, const long double *a, const long double *b)
FP_DIV_Q(C, A, B);
FP_PACK_QP(c, C);
QP_HANDLE_EXCEPTIONS(__asm (
"ldd [%1], %%f52
ldd [%1+8], %%f54
ldd [%2], %%f56
ldd [%2+8], %%f58
fdivq %%f52, %%f56, %%f60
std %%f60, [%0]
std %%f62, [%0+8]
" : : "r" (c), "r" (a), "r" (b) : QP_CLOBBER));
" ldd [%1], %%f52\n"
" ldd [%1+8], %%f54\n"
" ldd [%2], %%f56\n"
" ldd [%2+8], %%f58\n"
" fdivq %%f52, %%f56, %%f60\n"
" std %%f60, [%0]\n"
" std %%f62, [%0+8]\n"
" " : : "r" (c), "r" (a), "r" (b) : QP_CLOBBER));
}

View File

@ -39,8 +39,8 @@ void _Qp_dtoq(long double *c, const double a)
#endif
FP_PACK_QP(c, C);
QP_HANDLE_EXCEPTIONS(__asm (
"fdtoq %1, %%f60
std %%f60, [%0]
std %%f62, [%0+8]
" : : "r" (c), "e" (a) : QP_CLOBBER));
" fdtoq %1, %%f60\n"
" std %%f60, [%0]\n"
" std %%f62, [%0+8]\n"
" " : : "r" (c), "e" (a) : QP_CLOBBER));
}

View File

@ -38,12 +38,12 @@ int _Qp_feq(const long double *a, const long double *b)
QP_HANDLE_EXCEPTIONS(
__asm (
"ldd [%0], %%f52
ldd [%0+8], %%f54
ldd [%1], %%f56
ldd [%1+8], %%f58
fcmpq %%fcc3, %%f52, %%f56
" : : "r" (a), "r" (b) : QP_CLOBBER_CC);
" ldd [%0], %%f52\n"
" ldd [%0+8], %%f54\n"
" ldd [%1], %%f56\n"
" ldd [%1+8], %%f58\n"
" fcmpq %%fcc3, %%f52, %%f56\n"
" " : : "r" (a), "r" (b) : QP_CLOBBER_CC);
_FPU_GETCW(_fcw);
r = ((_fcw >> 36) & 3));

View File

@ -38,12 +38,12 @@ int _Qp_fge(const long double *a, const long double *b)
QP_HANDLE_EXCEPTIONS(
__asm (
"ldd [%0], %%f52
ldd [%0+8], %%f54
ldd [%1], %%f56
ldd [%1+8], %%f58
fcmpeq %%fcc3, %%f52, %%f56
" : : "r" (a), "r" (b) : QP_CLOBBER_CC);
" ldd [%0], %%f52\n"
" ldd [%0+8], %%f54\n"
" ldd [%1], %%f56\n"
" ldd [%1+8], %%f58\n"
" fcmpeq %%fcc3, %%f52, %%f56\n"
" " : : "r" (a), "r" (b) : QP_CLOBBER_CC);
_FPU_GETCW(_fcw);
r = ((_fcw >> 36) & 1));

View File

@ -38,12 +38,12 @@ int _Qp_fgt(const long double *a, const long double *b)
QP_HANDLE_EXCEPTIONS(
__asm (
"ldd [%0], %%f52
ldd [%0+8], %%f54
ldd [%1], %%f56
ldd [%1+8], %%f58
fcmpeq %%fcc3, %%f52, %%f56
" : : "r" (a), "r" (b) : QP_CLOBBER_CC);
" ldd [%0], %%f52\n"
" ldd [%0+8], %%f54\n"
" ldd [%1], %%f56\n"
" ldd [%1+8], %%f58\n"
" fcmpeq %%fcc3, %%f52, %%f56\n"
" " : : "r" (a), "r" (b) : QP_CLOBBER_CC);
_FPU_GETCW(_fcw);
r = ((_fcw >> 36) & 3) - 3);

View File

@ -38,12 +38,12 @@ int _Qp_fle(const long double *a, const long double *b)
QP_HANDLE_EXCEPTIONS(
__asm (
"ldd [%0], %%f52
ldd [%0+8], %%f54
ldd [%1], %%f56
ldd [%1+8], %%f58
fcmpeq %%fcc3, %%f52, %%f56
" : : "r" (a), "r" (b) : QP_CLOBBER_CC);
" ldd [%0], %%f52\n"
" ldd [%0+8], %%f54\n"
" ldd [%1], %%f56\n"
" ldd [%1+8], %%f58\n"
" fcmpeq %%fcc3, %%f52, %%f56\n"
" " : : "r" (a), "r" (b) : QP_CLOBBER_CC);
_FPU_GETCW(_fcw);
r = ((_fcw >> 36) & 2) ? -1 : 0);

View File

@ -38,12 +38,12 @@ int _Qp_flt(const long double *a, const long double *b)
QP_HANDLE_EXCEPTIONS(
__asm (
"ldd [%0], %%f52
ldd [%0+8], %%f54
ldd [%1], %%f56
ldd [%1+8], %%f58
fcmpeq %%fcc3, %%f52, %%f56
" : : "r" (a), "r" (b) : QP_CLOBBER_CC);
" ldd [%0], %%f52\n"
" ldd [%0+8], %%f54\n"
" ldd [%1], %%f56\n"
" ldd [%1+8], %%f58\n"
" fcmpeq %%fcc3, %%f52, %%f56\n"
" " : : "r" (a), "r" (b) : QP_CLOBBER_CC);
_FPU_GETCW(_fcw);
r = ((_fcw >> 36) & 3));

View File

@ -38,12 +38,12 @@ int _Qp_fne(const long double *a, const long double *b)
QP_HANDLE_EXCEPTIONS(
__asm (
"ldd [%0], %%f52
ldd [%0+8], %%f54
ldd [%1], %%f56
ldd [%1+8], %%f58
fcmpq %%fcc3, %%f52, %%f56
" : : "r" (a), "r" (b) : QP_CLOBBER_CC);
" ldd [%0], %%f52\n"
" ldd [%0+8], %%f54\n"
" ldd [%1], %%f56\n"
" ldd [%1+8], %%f58\n"
" fcmpq %%fcc3, %%f52, %%f56\n"
" " : : "r" (a), "r" (b) : QP_CLOBBER_CC);
_FPU_GETCW(_fcw);
r = ((_fcw >> 36) & 3) != 0);

View File

@ -39,12 +39,12 @@ void _Qp_mul(long double *c, const long double *a, const long double *b)
QP_HANDLE_EXCEPTIONS(
_FPU_SETCW(_fcw);
__asm (
"ldd [%1], %%f52
ldd [%1+8], %%f54
ldd [%2], %%f56
ldd [%2+8], %%f58
fmulq %%f52, %%f56, %%f60
std %%f60, [%0]
std %%f62, [%0+8]
" : : "r" (c), "r" (a), "r" (b) : QP_CLOBBER));
" ldd [%1], %%f52\n"
" ldd [%1+8], %%f54\n"
" ldd [%2], %%f56\n"
" ldd [%2+8], %%f58\n"
" fmulq %%f52, %%f56, %%f60\n"
" std %%f60, [%0]\n"
" std %%f62, [%0+8]\n"
" " : : "r" (c), "r" (a), "r" (b) : QP_CLOBBER));
}

View File

@ -40,10 +40,10 @@ double _Qp_qtod(const long double *a)
#endif
FP_PACK_D(r, R);
QP_HANDLE_EXCEPTIONS(__asm (
"ldd [%1], %%f52
ldd [%1+8], %%f54
fqtod %%f52, %0
" : "=&e" (r) : "r" (a) : QP_CLOBBER));
" ldd [%1], %%f52\n"
" ldd [%1+8], %%f54\n"
" fqtod %%f52, %0\n"
" " : "=&e" (r) : "r" (a) : QP_CLOBBER));
return r;
}

View File

@ -36,11 +36,11 @@ int _Qp_qtoi(const long double *a)
QP_HANDLE_EXCEPTIONS(
int rx;
__asm (
"ldd [%1], %%f52
ldd [%1+8], %%f54
fqtoi %%f52, %%f60
st %%f60, [%0]
" : : "r" (&rx), "r" (a) : QP_CLOBBER);
" ldd [%1], %%f52\n"
" ldd [%1+8], %%f54\n"
" fqtoi %%f52, %%f60\n"
" st %%f60, [%0]\n"
" " : : "r" (&rx), "r" (a) : QP_CLOBBER);
r = rx);
return r;

View File

@ -41,10 +41,10 @@ float _Qp_qtos(const long double *a)
FP_PACK_S(r, R);
QP_HANDLE_EXCEPTIONS(__asm (
"ldd [%1], %%f52
ldd [%1+8], %%f54
fqtos %%f52, %0
" : "=&f" (r) : "r" (a) : QP_CLOBBER));
" ldd [%1], %%f52\n"
" ldd [%1+8], %%f54\n"
" fqtos %%f52, %0\n"
" " : "=&f" (r) : "r" (a) : QP_CLOBBER));
return r;
}

View File

@ -36,11 +36,11 @@ unsigned int _Qp_qtoui(const long double *a)
QP_HANDLE_EXCEPTIONS(
int rx;
__asm (
"ldd [%1], %%f52
ldd [%1+8], %%f54
fqtoi %%f52, %%f60
st %%f60, [%0]
" : : "r" (&rx), "r" (a) : QP_CLOBBER);
" ldd [%1], %%f52\n"
" ldd [%1+8], %%f54\n"
" fqtoi %%f52, %%f60\n"
" st %%f60, [%0]\n"
" " : : "r" (&rx), "r" (a) : QP_CLOBBER);
r = rx);
return r;

View File

@ -36,11 +36,11 @@ unsigned long _Qp_qtoux(const long double *a)
QP_HANDLE_EXCEPTIONS(
unsigned long rx;
__asm (
"ldd [%1], %%f52
ldd [%1+8], %%f54
fqtoi %%f52, %%f60
std %%f60, [%0]
" : : "r" (&rx), "r" (a) : QP_CLOBBER);
" ldd [%1], %%f52\n"
" ldd [%1+8], %%f54\n"
" fqtoi %%f52, %%f60\n"
" std %%f60, [%0]\n"
" " : : "r" (&rx), "r" (a) : QP_CLOBBER);
r = rx);
return r;

View File

@ -36,11 +36,11 @@ long _Qp_qtox(const long double *a)
QP_HANDLE_EXCEPTIONS(
long rx;
__asm (
"ldd [%1], %%f52
ldd [%1+8], %%f54
fqtoi %%f52, %%f60
std %%f60, [%0]
" : : "r" (&rx), "r" (a) : QP_CLOBBER);
" ldd [%1], %%f52\n"
" ldd [%1+8], %%f54\n"
" fqtoi %%f52, %%f60\n"
" std %%f60, [%0]\n"
" " : : "r" (&rx), "r" (a) : QP_CLOBBER);
r = rx);
return r;

View File

@ -33,10 +33,10 @@ void _Qp_sqrt(long double *c, const long double *a)
FP_SQRT_Q(C, A);
FP_PACK_QP(c, C);
QP_HANDLE_EXCEPTIONS(__asm (
"ldd [%1], %%f52
ldd [%1+8], %%f54
fsqrtq %%f52, %%f60
std %%f60, [%0]
std %%f62, [%0+8]
" : : "r" (c), "r" (a) : QP_CLOBBER));
" ldd [%1], %%f52\n"
" ldd [%1+8], %%f54\n"
" fsqrtq %%f52, %%f60\n"
" std %%f60, [%0]\n"
" std %%f62, [%0+8]\n"
" " : : "r" (c), "r" (a) : QP_CLOBBER));
}

View File

@ -39,8 +39,8 @@ void _Qp_stoq(long double *c, const float a)
#endif
FP_PACK_QP(c, C);
QP_HANDLE_EXCEPTIONS(__asm (
"fstoq %1, %%f60
std %%f60, [%0]
std %%f62, [%0+8]
" : : "r" (c), "f" (a) : QP_CLOBBER));
" fstoq %1, %%f60\n"
" std %%f60, [%0]\n"
" std %%f62, [%0+8]\n"
" " : : "r" (c), "f" (a) : QP_CLOBBER));
}

View File

@ -34,12 +34,12 @@ void _Qp_sub(long double *c, const long double *a, const long double *b)
FP_SUB_Q(C, A, B);
FP_PACK_QP(c, C);
QP_HANDLE_EXCEPTIONS(__asm (
"ldd [%1], %%f52
ldd [%1+8], %%f54
ldd [%2], %%f56
ldd [%2+8], %%f58
fsubq %%f52, %%f56, %%f60
std %%f60, [%0]
std %%f62, [%0+8]
" : : "r" (c), "r" (a), "r" (b) : QP_CLOBBER));
" ldd [%1], %%f52\n"
" ldd [%1+8], %%f54\n"
" ldd [%2], %%f56\n"
" ldd [%2+8], %%f58\n"
" fsubq %%f52, %%f56, %%f60\n"
" std %%f60, [%0]\n"
" std %%f62, [%0+8]\n"
" " : : "r" (c), "r" (a), "r" (b) : QP_CLOBBER));
}

View File

@ -111,10 +111,10 @@ do { \
/* This is the common case, so we do it inline. \
* We need to clear cexc bits if any. \
*/ \
__asm__ __volatile__("
fzero %%f62
faddd %%f62, %%f62, %%f62
" : : : "f62"); \
__asm__ __volatile__("\n" \
" fzero %%f62\n" \
" faddd %%f62, %%f62, %%f62\n" \
" " : : : "f62"); \
} \
else \
{ \
@ -136,8 +136,8 @@ do { \
} while (0)
#define QP_NO_EXCEPTIONS \
__asm ("fzero %%f62
faddd %%f62, %%f62, %%f62" : : : "f62")
__asm ("fzero %%f62\n" \
" faddd %%f62, %%f62, %%f62" : : : "f62")
#define QP_CLOBBER "memory", "f52", "f54", "f56", "f58", "f60", "f62"
#define QP_CLOBBER_CC QP_CLOBBER , "cc"