x86: Remove .tfloat usage

Some compiler does not support it (such as clang integrated assembler)
neither gcc emits it.
This commit is contained in:
Adhemerval Zanella 2022-03-11 11:08:55 -03:00
parent 365b3af67e
commit 114e299ca6
9 changed files with 47 additions and 26 deletions

View File

@ -33,7 +33,8 @@ one: .double 1.0
limit: .double 0.29 limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit) ASM_SIZE_DIRECTIVE(limit)
.type ln2_2,@object .type ln2_2,@object
ln2_2: .tfloat 0.3465735902799726547086160 ln2_2: .quad 0xb17217f7d1cf79ac /* 0.3465735902799726547086160 */
.short 0x3ffd
ASM_SIZE_DIRECTIVE(ln2_2) ASM_SIZE_DIRECTIVE(ln2_2)
DEFINE_DBL_MIN DEFINE_DBL_MIN

View File

@ -34,7 +34,8 @@ limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit) ASM_SIZE_DIRECTIVE(limit)
.align ALIGNARG(4) .align ALIGNARG(4)
.type ln2_2,@object .type ln2_2,@object
ln2_2: .tfloat 0.3465735902799726547086160 ln2_2: .quad 0xb17217f7d1cf79ac /* 0.3465735902799726547086160 */
.short 0x3ffd
ASM_SIZE_DIRECTIVE(ln2_2) ASM_SIZE_DIRECTIVE(ln2_2)
DEFINE_FLT_MIN DEFINE_FLT_MIN

View File

@ -39,7 +39,8 @@ limit: .double 0.29
ASM_SIZE_DIRECTIVE(limit) ASM_SIZE_DIRECTIVE(limit)
.align ALIGNARG(4) .align ALIGNARG(4)
.type ln2_2,@object .type ln2_2,@object
ln2_2: .tfloat 0.3465735902799726547086160 ln2_2: .quad 0xb17217f7d1cf79ac /* 0.3465735902799726547086160 */
.short 0x3ffd
ASM_SIZE_DIRECTIVE(ln2_2) ASM_SIZE_DIRECTIVE(ln2_2)
#ifdef PIC #ifdef PIC

View File

@ -23,7 +23,8 @@
.align ALIGNARG(4) .align ALIGNARG(4)
.type huge,@object .type huge,@object
huge: .tfloat 1e+4930 huge: .quad 0x89b634e7456ffa1d /* 1e+4930 */
.short 0x7ff8
ASM_SIZE_DIRECTIVE(huge) ASM_SIZE_DIRECTIVE(huge)
.align ALIGNARG(4) .align ALIGNARG(4)
/* Please note that we use double value for 1.0. This number /* Please note that we use double value for 1.0. This number

View File

@ -23,55 +23,68 @@
.align ALIGNARG(4) .align ALIGNARG(4)
.type f8,@object .type f8,@object
f8: .tfloat 0.161617097923756032 f8: .quad 0xa57ef3d83a542839 /* 0.161617097923756032 */
.short 0x3ffc
ASM_SIZE_DIRECTIVE(f8) ASM_SIZE_DIRECTIVE(f8)
.align ALIGNARG(4) .align ALIGNARG(4)
.type f7,@object .type f7,@object
f7: .tfloat -0.988553671195413709 f7: .quad 0xfd11da7820029014 /* -0.988553671195413709 */
.short 0xbffe
ASM_SIZE_DIRECTIVE(f7) ASM_SIZE_DIRECTIVE(f7)
.align ALIGNARG(4) .align ALIGNARG(4)
.type f6,@object .type f6,@object
f6: .tfloat 2.65298938441952296 f6: .quad 0xa9ca93fcade3b4ad /* 2.65298938441952296 */
.short 0x4000
ASM_SIZE_DIRECTIVE(f6) ASM_SIZE_DIRECTIVE(f6)
.align ALIGNARG(4) .align ALIGNARG(4)
.type f5,@object .type f5,@object
f5: .tfloat -4.11151425200350531 f5: .quad 0x839186562c931c34 /* -4.11151425200350531 */
.short 0xc001
ASM_SIZE_DIRECTIVE(f5) ASM_SIZE_DIRECTIVE(f5)
.align ALIGNARG(4) .align ALIGNARG(4)
.type f4,@object .type f4,@object
f4: .tfloat 4.09559907378707839 f4: .quad 0x830f25c9ee304594 /* 4.09559907378707839 */
.short 0x4001
ASM_SIZE_DIRECTIVE(f4) ASM_SIZE_DIRECTIVE(f4)
.align ALIGNARG(4) .align ALIGNARG(4)
.type f3,@object .type f3,@object
f3: .tfloat -2.82414939754975962 f3: .quad 0xb4bedd1d5fa2f0c6 /* -2.82414939754975962 */
.short 0xc000
ASM_SIZE_DIRECTIVE(f3) ASM_SIZE_DIRECTIVE(f3)
.align ALIGNARG(4) .align ALIGNARG(4)
.type f2,@object .type f2,@object
f2: .tfloat 1.67595307700780102 f2: .quad 0xd685a163b08586e3 /* 1.67595307700780102 */
.short 0x3fff
ASM_SIZE_DIRECTIVE(f2) ASM_SIZE_DIRECTIVE(f2)
.align ALIGNARG(4) .align ALIGNARG(4)
.type f1,@object .type f1,@object
f1: .tfloat 0.338058687610520237 f1: .quad 0xad16073ed4ec3b45 /* 0.338058687610520237 */
.short 0x3ffd
ASM_SIZE_DIRECTIVE(f1) ASM_SIZE_DIRECTIVE(f1)
#define CBRT2 1.2599210498948731648
#define ONE_CBRT2 0.793700525984099737355196796584
#define SQR_CBRT2 1.5874010519681994748
#define ONE_SQR_CBRT2 0.629960524947436582364439673883
/* We make the entries in the following table all 16 bytes /* We make the entries in the following table all 16 bytes
wide to avoid having to implement a multiplication by 10. */ wide to avoid having to implement a multiplication by 10. */
.type factor,@object .type factor,@object
.align ALIGNARG(4) .align ALIGNARG(4)
factor: .tfloat ONE_SQR_CBRT2 factor: /* 1.0 / cbrt (2.0) ^ 2 = 0.629960524947436582364439673883 */
.quad 0xa14517cc6b945711
.short 0x3ffe
.byte 0, 0, 0, 0, 0, 0 .byte 0, 0, 0, 0, 0, 0
.tfloat ONE_CBRT2 /* 1.0 / cbrt (2.0) = 0.793700525984099737355196796584 */
.quad 0xcb2ff529eb71e415
.short 0x3ffe
.byte 0, 0, 0, 0, 0, 0 .byte 0, 0, 0, 0, 0, 0
.tfloat 1.0 /* 1.0L */
.quad 0x8000000000000000
.short 0x3fff
.byte 0, 0, 0, 0, 0, 0 .byte 0, 0, 0, 0, 0, 0
.tfloat CBRT2 /* cbrt (2.0) = 1.2599210498948731648 */
.quad 0xa14517cc6b945711
.short 0x3fff
.byte 0, 0, 0, 0, 0, 0 .byte 0, 0, 0, 0, 0, 0
.tfloat SQR_CBRT2 /* cbrt (2.0) ^ 2 = 1.5874010519681994748 */
.quad 0xcb2ff529eb71e416
.short 0x3fff
ASM_SIZE_DIRECTIVE(factor) ASM_SIZE_DIRECTIVE(factor)
.type two64,@object .type two64,@object

View File

@ -33,7 +33,8 @@ minus1: .double -1.0
one: .double 1.0 one: .double 1.0
ASM_SIZE_DIRECTIVE(one) ASM_SIZE_DIRECTIVE(one)
.type l2e,@object .type l2e,@object
l2e: .tfloat 1.442695040888963407359924681002 l2e: .quad 0xb8aa3b295c17f0bc /* 1.442695040888963407359924681002 */
.short 0x3fff
ASM_SIZE_DIRECTIVE(l2e) ASM_SIZE_DIRECTIVE(l2e)
DEFINE_DBL_MIN DEFINE_DBL_MIN

View File

@ -33,7 +33,8 @@ minus1: .double -1.0
one: .double 1.0 one: .double 1.0
ASM_SIZE_DIRECTIVE(one) ASM_SIZE_DIRECTIVE(one)
.type l2e,@object .type l2e,@object
l2e: .tfloat 1.442695040888963407359924681002 l2e: .quad 0xb8aa3b295c17f0bc /* 1.442695040888963407359924681002 */
.short 0x3fff
ASM_SIZE_DIRECTIVE(l2e) ASM_SIZE_DIRECTIVE(l2e)
DEFINE_FLT_MIN DEFINE_FLT_MIN

View File

@ -14,7 +14,8 @@ RCSID("$NetBSD: s_log1p.S,v 1.7 1995/05/09 00:10:58 jtc Exp $")
-1 + sqrt(2) / 2 <= x <= 1 - sqrt(2) / 2 -1 + sqrt(2) / 2 <= x <= 1 - sqrt(2) / 2
0.29 is a safe value. 0.29 is a safe value.
*/ */
limit: .tfloat 0.29 limit: .quad 0x947ae147ae147ae1 /* 0.29 */
.short 0x3ffd
/* Please note: we use a double value here. Since 1.0 has /* Please note: we use a double value here. Since 1.0 has
an exact representation this does not effect the accuracy an exact representation this does not effect the accuracy
but it helps to optimize the code. */ but it helps to optimize the code. */

View File

@ -14,7 +14,8 @@ RCSID("$NetBSD: s_log1p.S,v 1.7 1995/05/09 00:10:58 jtc Exp $")
-1 + sqrt(2) / 2 <= x <= 1 - sqrt(2) / 2 -1 + sqrt(2) / 2 <= x <= 1 - sqrt(2) / 2
0.29 is a safe value. 0.29 is a safe value.
*/ */
limit: .tfloat 0.29 limit: .quad 0x947ae147ae147ae1 /* 0.29 */
.short 0x3ffd
/* Please note: we use a double value here. Since 1.0 has /* Please note: we use a double value here. Since 1.0 has
an exact representation this does not effect the accuracy an exact representation this does not effect the accuracy
but it helps to optimize the code. */ but it helps to optimize the code. */