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> 2001-04-29 Andreas Schwab <schwab@suse.de>
* sysdeps/unix/sysv/linux/kernel-features.h: Fix missing backslash * 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 /* This code is used in dl-runtime.c to call the `fixup' function
and then redirect to the address it returns. */ and then redirect to the address it returns. */
#define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name) \ #define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name) \
asm ("\ asm ("\n" \
.text " .text\n" \
.globl " #tramp_name "_0 " .globl " #tramp_name "_0\n" \
.type " #tramp_name "_0, @function " .type " #tramp_name "_0, @function\n" \
.align 32 " .align 32\n" \
" #tramp_name "_0: "\t" #tramp_name "_0:\n" \
! sethi %hi(1047552), %l2 - Done in .PLT0 " ! sethi %hi(1047552), %l2 - Done in .PLT0\n" \
ldx [%l6 + 32 + 8], %o0 " ldx [%l6 + 32 + 8], %o0\n" \
sub %g1, %l6, %l0 " sub %g1, %l6, %l0\n" \
xor %l2, -1016, %l2 " xor %l2, -1016, %l2\n" \
sethi %hi(5120), %l3 ! 160 * 32 " sethi %hi(5120), %l3 ! 160 * 32\n" \
add %l0, %l2, %l0 " add %l0, %l2, %l0\n" \
sethi %hi(32768), %l4 " sethi %hi(32768), %l4\n" \
udivx %l0, %l3, %l3 " udivx %l0, %l3, %l3\n" \
sllx %l3, 2, %l1 " sllx %l3, 2, %l1\n" \
add %l1, %l3, %l1 " add %l1, %l3, %l1\n" \
sllx %l1, 10, %l2 " sllx %l1, 10, %l2\n" \
sub %l4, 4, %l4 ! No thanks to Sun for not obeying their own ABI " sub %l4, 4, %l4 ! No thanks to Sun for not obeying their own ABI\n" \
sllx %l1, 5, %l1 " sllx %l1, 5, %l1\n" \
sub %l0, %l2, %l0 " sub %l0, %l2, %l0\n" \
udivx %l0, 24, %l0 " udivx %l0, 24, %l0\n" \
add %l0, %l4, %l0 " add %l0, %l4, %l0\n" \
add %l1, %l0, %l1 " add %l1, %l0, %l1\n" \
add %l1, %l1, %l0 " add %l1, %l1, %l0\n" \
add %l0, %l1, %l0 " add %l0, %l1, %l0\n" \
mov %i7, %o2 " mov %i7, %o2\n" \
call " #fixup_name " " call " #fixup_name "\n" \
sllx %l0, 3, %o1 " sllx %l0, 3, %o1\n" \
jmp %o0 " jmp %o0\n" \
restore " restore\n" \
.size " #tramp_name "_0, . - " #tramp_name "_0 " .size " #tramp_name "_0, . - " #tramp_name "_0\n" \
"\n" \
.globl " #tramp_name "_1 " .globl " #tramp_name "_1\n" \
.type " #tramp_name "_1, @function " .type " #tramp_name "_1, @function\n" \
.align 32 " .align 32\n" \
" #tramp_name "_1: "\t" #tramp_name "_1:\n" \
! srlx %g1, 12, %o1 - Done in .PLT1 " ! srlx %g1, 12, %o1 - Done in .PLT1\n" \
ldx [%l6 + 8], %o0 " ldx [%l6 + 8], %o0\n" \
add %o1, %o1, %o3 " add %o1, %o1, %o3\n" \
sub %o1, 96, %o1 ! No thanks to Sun for not obeying their own ABI " sub %o1, 96, %o1 ! No thanks to Sun for not obeying their own ABI\n" \
mov %i7, %o2 " mov %i7, %o2\n" \
call " #fixup_name " " call " #fixup_name "\n" \
add %o1, %o3, %o1 " add %o1, %o3, %o1\n" \
jmp %o0 " jmp %o0\n" \
restore " restore\n" \
.size " #tramp_name "_1, . - " #tramp_name "_1 " .size " #tramp_name "_1, . - " #tramp_name "_1\n" \
.previous"); " .previous\n");
#ifndef PROF #ifndef PROF
#define ELF_MACHINE_RUNTIME_TRAMPOLINE \ #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 __S1(x) #x
#define __S(x) __S1(x) #define __S(x) __S1(x)
#define RTLD_START __asm__ ( "\ #define RTLD_START __asm__ ( "\n" \
.text " .text\n" \
.global _start " .global _start\n" \
.type _start, @function " .type _start, @function\n" \
.align 32 " .align 32\n" \
_start: "_start:\n" \
/* Make room for functions to drop their arguments on the stack. */ " /* Make room for functions to drop their arguments on the stack. */\n" \
sub %sp, 6*8, %sp " sub %sp, 6*8, %sp\n" \
/* Pass pointer to argument block to _dl_start. */ " /* Pass pointer to argument block to _dl_start. */\n" \
call _dl_start " call _dl_start\n" \
add %sp," __S(STACK_BIAS) "+22*8,%o0 " add %sp," __S(STACK_BIAS) "+22*8,%o0\n" \
/* FALLTHRU */ " /* FALLTHRU */\n" \
.size _start, .-_start " .size _start, .-_start\n" \
"\n" \
.global _dl_start_user " .global _dl_start_user\n" \
.type _dl_start_user, @function " .type _dl_start_user, @function\n" \
_dl_start_user: "_dl_start_user:\n" \
/* Load the GOT register. */ " /* Load the GOT register. */\n" \
1: call 11f "1: call 11f\n" \
sethi %hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7 " sethi %hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7\n" \
11: or %l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7 "11: or %l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7\n" \
/* Store the highest stack address. */ " /* Store the highest stack address. */\n" \
sethi %hi(__libc_stack_end), %g5 " sethi %hi(__libc_stack_end), %g5\n" \
add %l7, %o7, %l7 " add %l7, %o7, %l7\n" \
or %g5, %lo(__libc_stack_end), %g5 " or %g5, %lo(__libc_stack_end), %g5\n" \
/* Save the user entry point address in %l0. */ " /* Save the user entry point address in %l0. */\n" \
mov %o0, %l0 " mov %o0, %l0\n" \
ldx [%l7 + %g5], %l1 " ldx [%l7 + %g5], %l1\n" \
sethi %hi(_dl_skip_args), %g5 " sethi %hi(_dl_skip_args), %g5\n" \
add %sp, 6*8, %l2 " add %sp, 6*8, %l2\n" \
/* See if we were run as a command with the executable file name as an " /* 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 " extra leading argument. If so, we must shift things around since we\n" \
must keep the stack doubleword aligned. */ " must keep the stack doubleword aligned. */\n" \
or %g5, %lo(_dl_skip_args), %g5 " or %g5, %lo(_dl_skip_args), %g5\n" \
stx %l2, [%l1] " stx %l2, [%l1]\n" \
ldx [%l7 + %g5], %i0 " ldx [%l7 + %g5], %i0\n" \
ld [%i0], %i0 " ld [%i0], %i0\n" \
brz,pt %i0, 2f " brz,pt %i0, 2f\n" \
ldx [%sp + " __S(STACK_BIAS) " + 22*8], %i5 " ldx [%sp + " __S(STACK_BIAS) " + 22*8], %i5\n" \
/* Find out how far to shift. */ " /* Find out how far to shift. */\n" \
sethi %hi(_dl_argv), %l4 " sethi %hi(_dl_argv), %l4\n" \
sub %i5, %i0, %i5 " sub %i5, %i0, %i5\n" \
or %l4, %lo(_dl_argv), %l4 " or %l4, %lo(_dl_argv), %l4\n" \
sllx %i0, 3, %l6 " sllx %i0, 3, %l6\n" \
ldx [%l7 + %l4], %l4 " ldx [%l7 + %l4], %l4\n" \
stx %i5, [%sp + " __S(STACK_BIAS) " + 22*8] " stx %i5, [%sp + " __S(STACK_BIAS) " + 22*8]\n" \
add %sp, " __S(STACK_BIAS) " + 23*8, %i1 " add %sp, " __S(STACK_BIAS) " + 23*8, %i1\n" \
add %i1, %l6, %i2 " add %i1, %l6, %i2\n" \
ldx [%l4], %l5 " ldx [%l4], %l5\n" \
/* Copy down argv. */ " /* Copy down argv. */\n" \
12: ldx [%i2], %i3 "12: ldx [%i2], %i3\n" \
add %i2, 8, %i2 " add %i2, 8, %i2\n" \
stx %i3, [%i1] " stx %i3, [%i1]\n" \
brnz,pt %i3, 12b " brnz,pt %i3, 12b\n" \
add %i1, 8, %i1 " add %i1, 8, %i1\n" \
sub %l5, %l6, %l5 " sub %l5, %l6, %l5\n" \
/* Copy down envp. */ " /* Copy down envp. */\n" \
13: ldx [%i2], %i3 "13: ldx [%i2], %i3\n" \
add %i2, 8, %i2 " add %i2, 8, %i2\n" \
stx %i3, [%i1] " stx %i3, [%i1]\n" \
brnz,pt %i3, 13b " brnz,pt %i3, 13b\n" \
add %i1, 8, %i1 " add %i1, 8, %i1\n" \
/* Copy down auxiliary table. */ " /* Copy down auxiliary table. */\n" \
14: ldx [%i2], %i3 "14: ldx [%i2], %i3\n" \
ldx [%i2 + 8], %i4 " ldx [%i2 + 8], %i4\n" \
add %i2, 16, %i2 " add %i2, 16, %i2\n" \
stx %i3, [%i1] " stx %i3, [%i1]\n" \
stx %i4, [%i1 + 8] " stx %i4, [%i1 + 8]\n" \
brnz,pt %i3, 14b " brnz,pt %i3, 14b\n" \
add %i1, 16, %i1 " add %i1, 16, %i1\n" \
stx %l5, [%l4] " stx %l5, [%l4]\n" \
/* %o0 = _dl_loaded, %o1 = argc, %o2 = argv, %o3 = envp. */ " /* %o0 = _dl_loaded, %o1 = argc, %o2 = argv, %o3 = envp. */\n" \
2: sethi %hi(_dl_loaded), %o0 "2: sethi %hi(_dl_loaded), %o0\n" \
add %sp, " __S(STACK_BIAS) " + 23*8, %o2 " add %sp, " __S(STACK_BIAS) " + 23*8, %o2\n" \
orcc %o0, %lo(_dl_loaded), %o0 " orcc %o0, %lo(_dl_loaded), %o0\n" \
sllx %i5, 3, %o3 " sllx %i5, 3, %o3\n" \
ldx [%l7 + %o0], %o0 " ldx [%l7 + %o0], %o0\n" \
add %o3, 8, %o3 " add %o3, 8, %o3\n" \
mov %i5, %o1 " mov %i5, %o1\n" \
add %o2, %o3, %o3 " add %o2, %o3, %o3\n" \
call _dl_init " call _dl_init\n" \
ldx [%o0], %o0 " ldx [%o0], %o0\n" \
/* Pass our finalizer function to the user in %g1. */ " /* Pass our finalizer function to the user in %g1. */\n" \
sethi %hi(_dl_fini), %g1 " sethi %hi(_dl_fini), %g1\n" \
or %g1, %lo(_dl_fini), %g1 " or %g1, %lo(_dl_fini), %g1\n" \
ldx [%l7 + %g1], %g1 " ldx [%l7 + %g1], %g1\n" \
/* Jump to the user's entry point and deallocate the extra stack we got. */ " /* Jump to the user's entry point and deallocate the extra stack we got. */\n" \
jmp %l0 " jmp %l0\n" \
add %sp, 6*8, %sp " add %sp, 6*8, %sp\n" \
.size _dl_start_user, . - _dl_start_user " .size _dl_start_user, . - _dl_start_user\n" \
.previous"); " .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_ADD_Q(C, A, B);
FP_PACK_QP(c, C); FP_PACK_QP(c, C);
QP_HANDLE_EXCEPTIONS(__asm ( QP_HANDLE_EXCEPTIONS(__asm (
"ldd [%1], %%f52 " ldd [%1], %%f52\n"
ldd [%1+8], %%f54 " ldd [%1+8], %%f54\n"
ldd [%2], %%f56 " ldd [%2], %%f56\n"
ldd [%2+8], %%f58 " ldd [%2+8], %%f58\n"
faddq %%f52, %%f56, %%f60 " faddq %%f52, %%f56, %%f60\n"
std %%f60, [%0] " std %%f60, [%0]\n"
std %%f62, [%0+8] " std %%f62, [%0+8]\n"
" : : "r" (c), "r" (a), "r" (b) : QP_CLOBBER)); " " : : "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); FP_SET_EXCEPTION(FP_EX_INVALID);
QP_HANDLE_EXCEPTIONS( QP_HANDLE_EXCEPTIONS(
__asm ( __asm (
"ldd [%0], %%f52 " ldd [%0], %%f52\n"
ldd [%0+8], %%f54 " ldd [%0+8], %%f54\n"
ldd [%1], %%f56 " ldd [%1], %%f56\n"
ldd [%1+8], %%f58 " ldd [%1+8], %%f58\n"
fcmpq %%fcc3, %%f52, %%f56 " fcmpq %%fcc3, %%f52, %%f56\n"
" : : "r" (a), "r" (b) : QP_CLOBBER_CC); " " : : "r" (a), "r" (b) : QP_CLOBBER_CC);
_FPU_GETCW(_fcw); _FPU_GETCW(_fcw);
r = ((_fcw >> 36) & 3)); 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); FP_SET_EXCEPTION(FP_EX_INVALID);
QP_HANDLE_EXCEPTIONS( QP_HANDLE_EXCEPTIONS(
__asm ( __asm (
"ldd [%0], %%f52 " ldd [%0], %%f52\n"
ldd [%0+8], %%f54 " ldd [%0+8], %%f54\n"
ldd [%1], %%f56 " ldd [%1], %%f56\n"
ldd [%1+8], %%f58 " ldd [%1+8], %%f58\n"
fcmpeq %%fcc3, %%f52, %%f56 " fcmpeq %%fcc3, %%f52, %%f56\n"
" : : "r" (a), "r" (b) : QP_CLOBBER_CC); " " : : "r" (a), "r" (b) : QP_CLOBBER_CC);
_FPU_GETCW(_fcw); _FPU_GETCW(_fcw);
r = ((_fcw >> 36) & 3)); 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_DIV_Q(C, A, B);
FP_PACK_QP(c, C); FP_PACK_QP(c, C);
QP_HANDLE_EXCEPTIONS(__asm ( QP_HANDLE_EXCEPTIONS(__asm (
"ldd [%1], %%f52 " ldd [%1], %%f52\n"
ldd [%1+8], %%f54 " ldd [%1+8], %%f54\n"
ldd [%2], %%f56 " ldd [%2], %%f56\n"
ldd [%2+8], %%f58 " ldd [%2+8], %%f58\n"
fdivq %%f52, %%f56, %%f60 " fdivq %%f52, %%f56, %%f60\n"
std %%f60, [%0] " std %%f60, [%0]\n"
std %%f62, [%0+8] " std %%f62, [%0+8]\n"
" : : "r" (c), "r" (a), "r" (b) : QP_CLOBBER)); " " : : "r" (c), "r" (a), "r" (b) : QP_CLOBBER));
} }

View File

@ -39,8 +39,8 @@ void _Qp_dtoq(long double *c, const double a)
#endif #endif
FP_PACK_QP(c, C); FP_PACK_QP(c, C);
QP_HANDLE_EXCEPTIONS(__asm ( QP_HANDLE_EXCEPTIONS(__asm (
"fdtoq %1, %%f60 " fdtoq %1, %%f60\n"
std %%f60, [%0] " std %%f60, [%0]\n"
std %%f62, [%0+8] " std %%f62, [%0+8]\n"
" : : "r" (c), "e" (a) : QP_CLOBBER)); " " : : "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( QP_HANDLE_EXCEPTIONS(
__asm ( __asm (
"ldd [%0], %%f52 " ldd [%0], %%f52\n"
ldd [%0+8], %%f54 " ldd [%0+8], %%f54\n"
ldd [%1], %%f56 " ldd [%1], %%f56\n"
ldd [%1+8], %%f58 " ldd [%1+8], %%f58\n"
fcmpq %%fcc3, %%f52, %%f56 " fcmpq %%fcc3, %%f52, %%f56\n"
" : : "r" (a), "r" (b) : QP_CLOBBER_CC); " " : : "r" (a), "r" (b) : QP_CLOBBER_CC);
_FPU_GETCW(_fcw); _FPU_GETCW(_fcw);
r = ((_fcw >> 36) & 3)); r = ((_fcw >> 36) & 3));

View File

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

View File

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

View File

@ -38,12 +38,12 @@ int _Qp_fne(const long double *a, const long double *b)
QP_HANDLE_EXCEPTIONS( QP_HANDLE_EXCEPTIONS(
__asm ( __asm (
"ldd [%0], %%f52 " ldd [%0], %%f52\n"
ldd [%0+8], %%f54 " ldd [%0+8], %%f54\n"
ldd [%1], %%f56 " ldd [%1], %%f56\n"
ldd [%1+8], %%f58 " ldd [%1+8], %%f58\n"
fcmpq %%fcc3, %%f52, %%f56 " fcmpq %%fcc3, %%f52, %%f56\n"
" : : "r" (a), "r" (b) : QP_CLOBBER_CC); " " : : "r" (a), "r" (b) : QP_CLOBBER_CC);
_FPU_GETCW(_fcw); _FPU_GETCW(_fcw);
r = ((_fcw >> 36) & 3) != 0); 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( QP_HANDLE_EXCEPTIONS(
_FPU_SETCW(_fcw); _FPU_SETCW(_fcw);
__asm ( __asm (
"ldd [%1], %%f52 " ldd [%1], %%f52\n"
ldd [%1+8], %%f54 " ldd [%1+8], %%f54\n"
ldd [%2], %%f56 " ldd [%2], %%f56\n"
ldd [%2+8], %%f58 " ldd [%2+8], %%f58\n"
fmulq %%f52, %%f56, %%f60 " fmulq %%f52, %%f56, %%f60\n"
std %%f60, [%0] " std %%f60, [%0]\n"
std %%f62, [%0+8] " std %%f62, [%0+8]\n"
" : : "r" (c), "r" (a), "r" (b) : QP_CLOBBER)); " " : : "r" (c), "r" (a), "r" (b) : QP_CLOBBER));
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -39,8 +39,8 @@ void _Qp_stoq(long double *c, const float a)
#endif #endif
FP_PACK_QP(c, C); FP_PACK_QP(c, C);
QP_HANDLE_EXCEPTIONS(__asm ( QP_HANDLE_EXCEPTIONS(__asm (
"fstoq %1, %%f60 " fstoq %1, %%f60\n"
std %%f60, [%0] " std %%f60, [%0]\n"
std %%f62, [%0+8] " std %%f62, [%0+8]\n"
" : : "r" (c), "f" (a) : QP_CLOBBER)); " " : : "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_SUB_Q(C, A, B);
FP_PACK_QP(c, C); FP_PACK_QP(c, C);
QP_HANDLE_EXCEPTIONS(__asm ( QP_HANDLE_EXCEPTIONS(__asm (
"ldd [%1], %%f52 " ldd [%1], %%f52\n"
ldd [%1+8], %%f54 " ldd [%1+8], %%f54\n"
ldd [%2], %%f56 " ldd [%2], %%f56\n"
ldd [%2+8], %%f58 " ldd [%2+8], %%f58\n"
fsubq %%f52, %%f56, %%f60 " fsubq %%f52, %%f56, %%f60\n"
std %%f60, [%0] " std %%f60, [%0]\n"
std %%f62, [%0+8] " std %%f62, [%0+8]\n"
" : : "r" (c), "r" (a), "r" (b) : QP_CLOBBER)); " " : : "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. \ /* This is the common case, so we do it inline. \
* We need to clear cexc bits if any. \ * We need to clear cexc bits if any. \
*/ \ */ \
__asm__ __volatile__(" __asm__ __volatile__("\n" \
fzero %%f62 " fzero %%f62\n" \
faddd %%f62, %%f62, %%f62 " faddd %%f62, %%f62, %%f62\n" \
" : : : "f62"); \ " " : : : "f62"); \
} \ } \
else \ else \
{ \ { \
@ -136,8 +136,8 @@ do { \
} while (0) } while (0)
#define QP_NO_EXCEPTIONS \ #define QP_NO_EXCEPTIONS \
__asm ("fzero %%f62 __asm ("fzero %%f62\n" \
faddd %%f62, %%f62, %%f62" : : : "f62") " faddd %%f62, %%f62, %%f62" : : : "f62")
#define QP_CLOBBER "memory", "f52", "f54", "f56", "f58", "f60", "f62" #define QP_CLOBBER "memory", "f52", "f54", "f56", "f58", "f60", "f62"
#define QP_CLOBBER_CC QP_CLOBBER , "cc" #define QP_CLOBBER_CC QP_CLOBBER , "cc"