this repo has no description
1/*
2 * log2_x87.s
3 *
4 * by Jeff Kidder
5 *
6 * Copyright � 2007 Apple Inc. All Rights Reserved.
7 */
8//TBD stack comes in misaligned by 4
9
10#if defined(__i386__)
11 // [temp8, nd = exp, [pad32, return ptr32], x]
12#define LOCAL_STACK_SIZE 36
13#else
14 // [temp8, nd = exp, return ptr64, x]
15#define LOCAL_STACK_SIZE 32
16#endif
17
18#include <machine/asm.h>
19#include "abi.h"
20
21.const
22.align 5
23xone: .quad 0x3ff0000000000000, 0
24frexp_exp_mask: .quad 0x7ff0000000000000, 0
25frexp_mant_mask: .quad 0x800fffffffffffff, 0
26frexp_half_mask: .quad 0x0008000000000000, 0
27frexp_head_mask: .quad 0x000ff00000000000, 0
28//log10_key_mask: .quad 0x07e0000000000000, 0
29log1p_not_ulp_mask: .quad 0xfffffffffffffffe, 0
30
31.align 5
32lgel: .quad 0xB8AA3B295C17F0BC, 0x3fff
33ln2l: .quad 0xB17217F7D1CF79AC, 0x3ffe //ln(2) rounded up to long double
34
35log10el: .quad 0xDE5BD8A937287195, 0x3ffd //log10(e) rounded down
36log102l: .quad 0x9A209A84FBCFF799, 0x3ffd //log10(2) rounded up (almost 1/2 ulp) to long double
37
38c0: .quad 0xFFFFFFFFFFFFFFD7, 0xbffd //c0 = -.4999999999999999988974167423L
39
40.align 5
41a01: .double .827742667285236703751556405085096, -2.00038644890076831031534988283768 //a0,a1
42b01: .double 1.51843353412997067893915870795354, 1.54454569915832086827096843200102 //b0,b1
43
44// The lookup table is in a funny format since it has 2 long double and a single.
45 // {10-byte va ; 2-byte pad ; 4-byte single a ; 10-byte lg1pa ; 6-byte pad}
46.align 5
47LOOKUP:
48// This is the table for a, ap1, va, lg1pa: a = (float)k*scale, ap1 = a + 1, va = (long double)1./(1.+a), lg1pa = (long double)log2(1.+a)
49// In C this would be
50// typedef struct {BYTE va[10]; BYTE pad1[2]; float a; BYTE log1p[10]; BYTE pad2[2]; float ap1} record_t;
51// where we are using the fact that long doubles only use 10 of the 16 bytes they are packed in.
52// va[0], va[1], va[2] (float)a, lg1pa[0], lg1pa[1], lg1pa[2], (float)ap1
53.long 0x00000000, 0x80000000, 0x00003fff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000
54.long 0xff00ff01, 0xff00ff00, 0x00003ffe, 0x3b800000, 0xd563ba57, 0xb84e236b, 0x00003ff7, 0x3f808000
55.long 0xe03f80fe, 0xfe03f80f, 0x00003ffe, 0x3c000000, 0x78428bfc, 0xb7f285b7, 0x00003ff8, 0x3f810000
56.long 0x0fd08e55, 0xfd08e550, 0x00003ffe, 0x3c400000, 0x4bd8625e, 0x89b188bd, 0x00003ff9, 0x3f818000
57.long 0x0fc0fc10, 0xfc0fc0fc, 0x00003ffe, 0x3c800000, 0x16914c53, 0xb73cb42e, 0x00003ff9, 0x3f820000
58.long 0x06ddaba6, 0xfb188565, 0x00003ffe, 0x3ca00000, 0x287c3333, 0xe49b1dd4, 0x00003ff9, 0x3f828000
59.long 0x52138ac0, 0xfa232cf2, 0x00003ffe, 0x3cc00000, 0x99a0976c, 0x88e68ea8, 0x00003ffa, 0x3f830000
60.long 0x1855a865, 0xf92fb221, 0x00003ffe, 0x3ce00000, 0x42d13101, 0x9f6984a3, 0x00003ffa, 0x3f838000
61.long 0xe0f83e10, 0xf83e0f83, 0x00003ffe, 0x3d000000, 0x77ec398a, 0xb5d69bac, 0x00003ffa, 0x3f840000
62.long 0x2c700f75, 0xf74e3fc2, 0x00003ffe, 0x3d100000, 0x4a8ca305, 0xcc2dfe1a, 0x00003ffa, 0x3f848000
63.long 0x0f6603da, 0xf6603d98, 0x00003ffe, 0x3d200000, 0x555af7a8, 0xe26fd5c8, 0x00003ffa, 0x3f850000
64.long 0xd00f5740, 0xf57403d5, 0x00003ffe, 0x3d300000, 0x929cfd0e, 0xf89c4c19, 0x00003ffa, 0x3f858000
65.long 0x85bb3950, 0xf4898d5f, 0x00003ffe, 0x3d400000, 0x14fcd59e, 0x8759c4fd, 0x00003ffb, 0x3f860000
66.long 0xba872336, 0xf3a0d52c, 0x00003ffe, 0x3d500000, 0x9ad1e44d, 0x925adbf0, 0x00003ffb, 0x3f868000
67.long 0x0f2b9d65, 0xf2b9d648, 0x00003ffe, 0x3d600000, 0x3f8e16c0, 0x9d517ee9, 0x00003ffb, 0x3f870000
68.long 0xe0d399fa, 0xf1d48bce, 0x00003ffe, 0x3d700000, 0x19ddb6a8, 0xa83dc1b0, 0x00003ffb, 0x3f878000
69.long 0xf0f0f0f1, 0xf0f0f0f0, 0x00003ffe, 0x3d800000, 0x4898b3e6, 0xb31fb7d6, 0x00003ffb, 0x3f880000
70.long 0x0f00f00f, 0xf00f00f0, 0x00003ffe, 0x3d880000, 0xc51409e2, 0xbdf774b5, 0x00003ffb, 0x3f888000
71.long 0xc4345238, 0xef2eb71f, 0x00003ffe, 0x3d900000, 0x319ad574, 0xc8c50b72, 0x00003ffb, 0x3f890000
72.long 0x00ee500f, 0xee500ee5, 0x00003ffe, 0x3d980000, 0xa4249f5a, 0xd3888ef9, 0x00003ffb, 0x3f898000
73.long 0xcc0ed730, 0xed7303b5, 0x00003ffe, 0x3da00000, 0x6d5dd31e, 0xde421205, 0x00003ffb, 0x3f8a0000
74.long 0xf3fc4da2, 0xec979118, 0x00003ffe, 0x3da80000, 0xdc16d268, 0xe8f1a71a, 0x00003ffb, 0x3f8a8000
75.long 0xc1619c8c, 0xebbdb2a5, 0x00003ffe, 0x3db00000, 0xfd2d90e6, 0xf397608b, 0x00003ffb, 0x3f8b0000
76.long 0xab95900f, 0xeae56403, 0x00003ffe, 0x3db80000, 0x58052482, 0xfe335078, 0x00003ffb, 0x3f8b8000
77.long 0x0ea0ea0f, 0xea0ea0ea, 0x00003ffe, 0x3dc00000, 0xd3cf1cb1, 0x8462c466, 0x00003ffc, 0x3f8c0000
78.long 0xe2d8d35c, 0xe939651f, 0x00003ffe, 0x3dc80000, 0x48316ffa, 0x89a70da4, 0x00003ffc, 0x3f8c8000
79.long 0x7603a197, 0xe865ac7b, 0x00003ffe, 0x3dd00000, 0xa95bdaf5, 0x8ee68cba, 0x00003ffc, 0x3f8d0000
80.long 0x25fe30d9, 0xe79372e2, 0x00003ffe, 0x3dd80000, 0x3d31fc6c, 0x94214a58, 0x00003ffc, 0x3f8d8000
81.long 0x1cd85689, 0xe6c2b448, 0x00003ffe, 0x3de00000, 0xc570d0fb, 0x99574f13, 0x00003ffc, 0x3f8e0000
82.long 0x0e5f36cb, 0xe5f36cb0, 0x00003ffe, 0x3de80000, 0xd4531f80, 0x9e88a36c, 0x00003ffc, 0x3f8e8000
83.long 0xf70c880e, 0xe525982a, 0x00003ffe, 0x3df00000, 0x1fba698a, 0xa3b54fcc, 0x00003ffc, 0x3f8f0000
84.long 0xdc52100e, 0xe45932d7, 0x00003ffe, 0x3df80000, 0xd2e45246, 0xa8dd5c83, 0x00003ffc, 0x3f8f8000
85.long 0x8e38e38e, 0xe38e38e3, 0x00003ffe, 0x3e000000, 0xdeb43cfd, 0xae00d1cf, 0x00003ffc, 0x3f900000
86.long 0x6a4c2e10, 0xe2c4a688, 0x00003ffe, 0x3e040000, 0x4898b3e6, 0xb31fb7d6, 0x00003ffc, 0x3f908000
87.long 0x1fc780e2, 0xe1fc780e, 0x00003ffe, 0x3e080000, 0x7813f94e, 0xb83a16a7, 0x00003ffc, 0x3f910000
88.long 0x7500e136, 0xe135a9c9, 0x00003ffe, 0x3e0c0000, 0x82eef78c, 0xbd4ff63e, 0x00003ffc, 0x3f918000
89.long 0x0e070382, 0xe070381c, 0x00003ffe, 0x3e100000, 0x781d97ef, 0xc2615e81, 0x00003ffc, 0x3f920000
90.long 0x346c575f, 0xdfac1f74, 0x00003ffe, 0x3e140000, 0xa95b5dae, 0xc76e5741, 0x00003ffc, 0x3f928000
91.long 0xa037ba57, 0xdee95c4c, 0x00003ffe, 0x3e180000, 0xf386f818, 0xcc76e83b, 0x00003ffc, 0x3f930000
92.long 0x41f3d9d1, 0xde27eb2c, 0x00003ffe, 0x3e1c0000, 0x05c35652, 0xd17b1919, 0x00003ffc, 0x3f938000
93.long 0x0dd67c8a, 0xdd67c8a6, 0x00003ffe, 0x3e200000, 0xa7649f7f, 0xd67af16d, 0x00003ffc, 0x3f940000
94.long 0xc7f91ab8, 0xdca8f158, 0x00003ffe, 0x3e240000, 0xfcaf4b5f, 0xdb7678ba, 0x00003ffc, 0x3f948000
95.long 0xd19c5958, 0xdbeb61ee, 0x00003ffe, 0x3e280000, 0xca6f7207, 0xe06db66e, 0x00003ffc, 0x3f950000
96.long 0xf7702919, 0xdb2f171d, 0x00003ffe, 0x3e2c0000, 0xb86e44b6, 0xe560b1e3, 0x00003ffc, 0x3f958000
97.long 0x40da740e, 0xda740da7, 0x00003ffe, 0x3e300000, 0x92cb7e48, 0xea4f7261, 0x00003ffc, 0x3f960000
98.long 0xc0366e91, 0xd9ba4256, 0x00003ffe, 0x3e340000, 0x8a40770e, 0xef39ff1d, 0x00003ffc, 0x3f968000
99.long 0x6406c80e, 0xd901b203, 0x00003ffe, 0x3e380000, 0x7352663e, 0xf4205f3a, 0x00003ffc, 0x3f970000
100.long 0xc9151f43, 0xd84a598e, 0x00003ffe, 0x3e3c0000, 0x04793a3c, 0xf90299c9, 0x00003ffc, 0x3f978000
101.long 0x0d79435e, 0xd79435e5, 0x00003ffe, 0x3e400000, 0x1340511d, 0xfde0b5c8, 0x00003ffc, 0x3f980000
102.long 0xa482f00d, 0xd6df43fc, 0x00003ffe, 0x3e440000, 0x68331dd9, 0x815d5d12, 0x00003ffd, 0x3f988000
103.long 0x2b80d62c, 0xd62b80d6, 0x00003ffe, 0x3e480000, 0x81804b78, 0x83c856dd, 0x00003ffd, 0x3f990000
104.long 0x3f5fe551, 0xd578e97c, 0x00003ffe, 0x3e4c0000, 0xa1547528, 0x86314baa, 0x00003ffd, 0x3f998000
105.long 0x531dec0d, 0xd4c77b03, 0x00003ffe, 0x3e500000, 0x985bae58, 0x88983ed6, 0x00003ffd, 0x3f9a0000
106.long 0x870ac52e, 0xd4173289, 0x00003ffe, 0x3e540000, 0xd847facc, 0x8afd33b5, 0x00003ffd, 0x3f9a8000
107.long 0x80d3680d, 0xd3680d36, 0x00003ffe, 0x3e580000, 0x8f838294, 0x8d602d94, 0x00003ffd, 0x3f9b0000
108.long 0x445250ab, 0xd2ba083b, 0x00003ffe, 0x3e5c0000, 0xc470995f, 0x8fc12fb6, 0x00003ffd, 0x3f9b8000
109.long 0x0d20d20d, 0xd20d20d2, 0x00003ffe, 0x3e600000, 0x7039cc12, 0x92203d58, 0x00003ffd, 0x3f9c0000
110.long 0x28e50274, 0xd161543e, 0x00003ffe, 0x3e640000, 0x99341b18, 0x947d59ad, 0x00003ffd, 0x3f9c8000
111.long 0xd2580d0b, 0xd0b69fcb, 0x00003ffe, 0x3e680000, 0x6cd57b79, 0x96d887e2, 0x00003ffd, 0x3f9d0000
112.long 0x0d00d00d, 0xd00d00d0, 0x00003ffe, 0x3e6c0000, 0x5941acd7, 0x9931cb1b, 0x00003ffd, 0x3f9d8000
113.long 0x819ec8e9, 0xcf6474a8, 0x00003ffe, 0x3e700000, 0x266f66cd, 0x9b892675, 0x00003ffd, 0x3f9e0000
114.long 0x5b4169cb, 0xcebcf8bb, 0x00003ffe, 0x3e740000, 0x0ee7d4ac, 0x9dde9d05, 0x00003ffd, 0x3f9e8000
115.long 0x25080ce1, 0xce168a77, 0x00003ffe, 0x3e780000, 0xd8224bae, 0xa03231d8, 0x00003ffd, 0x3f9f0000
116.long 0xa886d242, 0xcd712752, 0x00003ffe, 0x3e7c0000, 0xea7e1ca7, 0xa283e7f6, 0x00003ffd, 0x3f9f8000
117.long 0xcccccccd, 0xcccccccc, 0x00003ffe, 0x3e800000, 0x68dc57f2, 0xa4d3c25e, 0x00003ffd, 0x3fa00000
118.long 0x7607f99f, 0xcc29786c, 0x00003ffe, 0x3e820000, 0x47db4fde, 0xa721c407, 0x00003ffd, 0x3fa08000
119.long 0x65c393e0, 0xcb8727c0, 0x00003ffe, 0x3e840000, 0x64b59bee, 0xa96defe2, 0x00003ffd, 0x3fa10000
120.long 0x1bbd6c95, 0xcae5d85f, 0x00003ffe, 0x3e860000, 0x9bc65588, 0xabb848d9, 0x00003ffd, 0x3fa18000
121.long 0xb74f0329, 0xca4587e6, 0x00003ffe, 0x3e880000, 0xdeb43cfd, 0xae00d1cf, 0x00003ffd, 0x3fa20000
122.long 0xd967300d, 0xc9a633fc, 0x00003ffe, 0x3e8a0000, 0x4a456cb8, 0xb0478da1, 0x00003ffd, 0x3fa28000
123.long 0x871146ad, 0xc907da4e, 0x00003ffe, 0x3e8c0000, 0x3bdd3729, 0xb28c7f23, 0x00003ffd, 0x3fa30000
124.long 0x0c86a789, 0xc86a7890, 0x00003ffe, 0x3e8e0000, 0x66a5c346, 0xb4cfa924, 0x00003ffd, 0x3fa38000
125.long 0xe0c7ce0c, 0xc7ce0c7c, 0x00003ffe, 0x3e900000, 0xe866f2bc, 0xb7110e6c, 0x00003ffd, 0x3fa40000
126.long 0x89b9f838, 0xc73293d7, 0x00003ffe, 0x3e920000, 0x5e0c14a2, 0xb950b1be, 0x00003ffd, 0x3fa48000
127.long 0x80c6980c, 0xc6980c69, 0x00003ffe, 0x3e940000, 0xf7d9df23, 0xbb8e95d3, 0x00003ffd, 0x3fa50000
128.long 0x17f9d00c, 0xc5fe7403, 0x00003ffe, 0x3e960000, 0x8d5622bb, 0xbdcabd62, 0x00003ffd, 0x3fa58000
129.long 0x5f9d4d1c, 0xc565c87b, 0x00003ffe, 0x3e980000, 0xb0e2a195, 0xc0052b18, 0x00003ffd, 0x3fa60000
130.long 0x0c4ce07b, 0xc4ce07b0, 0x00003ffe, 0x3e9a0000, 0xc30c6e3e, 0xc23de19e, 0x00003ffd, 0x3fa68000
131.long 0x5d824ca6, 0xc4372f85, 0x00003ffe, 0x3e9c0000, 0x05912d26, 0xc474e397, 0x00003ffd, 0x3fa70000
132.long 0x0495c773, 0xc3a13de6, 0x00003ffe, 0x3e9e0000, 0xae1b8d5a, 0xc6aa339d, 0x00003ffd, 0x3fa78000
133.long 0x0c30c30c, 0xc30c30c3, 0x00003ffe, 0x3ea00000, 0xf8b845a6, 0xc8ddd448, 0x00003ffd, 0x3fa80000
134.long 0xc0309e02, 0xc2780613, 0x00003ffe, 0x3ea20000, 0x3a04dc68, 0xcb0fc829, 0x00003ffd, 0x3fa88000
135.long 0x95f6e947, 0xc1e4bbd5, 0x00003ffe, 0x3ea40000, 0xf11979a6, 0xcd4011c8, 0x00003ffd, 0x3fa90000
136.long 0x152500c1, 0xc152500c, 0x00003ffe, 0x3ea60000, 0xd92efc47, 0xcf6eb3ac, 0x00003ffd, 0x3fa98000
137.long 0xc0c0c0c1, 0xc0c0c0c0, 0x00003ffe, 0x3ea80000, 0xfb0284ec, 0xd19bb053, 0x00003ffd, 0x3faa0000
138.long 0x00c0300c, 0xc0300c03, 0x00003ffe, 0x3eaa0000, 0xbdf7a294, 0xd3c70a37, 0x00003ffd, 0x3faa8000
139.long 0x0bfa02ff, 0xbfa02fe8, 0x00003ffe, 0x3eac0000, 0xf8fa470d, 0xd5f0c3cb, 0x00003ffd, 0x3fab0000
140.long 0xd278e8dd, 0xbf112a8a, 0x00003ffe, 0x3eae0000, 0x0321a333, 0xd818df7f, 0x00003ffd, 0x3fab8000
141.long 0xe82fa0bf, 0xbe82fa0b, 0x00003ffe, 0x3eb00000, 0xc4150521, 0xda3f5fb9, 0x00003ffd, 0x3fac0000
142.long 0x700bdf5a, 0xbdf59c91, 0x00003ffe, 0x3eb20000, 0xc433ccba, 0xdc6446df, 0x00003ffd, 0x3fac8000
143.long 0x07661aa3, 0xbd691047, 0x00003ffe, 0x3eb40000, 0x3c81855a, 0xde87974f, 0x00003ffd, 0x3fad0000
144.long 0xb1cc5b7b, 0xbcdd535d, 0x00003ffe, 0x3eb60000, 0x26572e01, 0xe0a95361, 0x00003ffd, 0x3fad8000
145.long 0xc52640bc, 0xbc52640b, 0x00003ffe, 0x3eb80000, 0x4adab3f4, 0xe2c97d69, 0x00003ffd, 0x3fae0000
146.long 0xd63069a1, 0xbbc8408c, 0x00003ffe, 0x3eba0000, 0x523d9e9c, 0xe4e817b6, 0x00003ffd, 0x3fae8000
147.long 0xa54d880c, 0xbb3ee721, 0x00003ffe, 0x3ebc0000, 0xd2c3e64b, 0xe7052491, 0x00003ffd, 0x3faf0000
148.long 0x0bab6561, 0xbab65610, 0x00003ffe, 0x3ebe0000, 0x5f93ea91, 0xe920a640, 0x00003ffd, 0x3faf8000
149.long 0xe8ba2e8c, 0xba2e8ba2, 0x00003ffe, 0x3ec00000, 0x975077f2, 0xeb3a9f01, 0x00003ffd, 0x3fb00000
150.long 0x0ff46588, 0xb9a7862a, 0x00003ffe, 0x3ec20000, 0x327dc809, 0xed531110, 0x00003ffd, 0x3fb08000
151.long 0x36f5e02e, 0xb92143fa, 0x00003ffe, 0x3ec40000, 0x11b26276, 0xef69fea2, 0x00003ffd, 0x3fb10000
152.long 0xe3e0453a, 0xb89bc36c, 0x00003ffe, 0x3ec60000, 0x4b94c070, 0xf17f69e8, 0x00003ffd, 0x3fb18000
153.long 0x5c0b8170, 0xb81702e0, 0x00003ffe, 0x3ec80000, 0x3aa69063, 0xf393550f, 0x00003ffd, 0x3fb20000
154.long 0x9300b793, 0xb79300b7, 0x00003ffe, 0x3eca0000, 0x8ade729f, 0xf5a5c23e, 0x00003ffd, 0x3fb28000
155.long 0x19be3659, 0xb70fbb5a, 0x00003ffe, 0x3ecc0000, 0x471103e9, 0xf7b6b399, 0x00003ffd, 0x3fb30000
156.long 0x0e4307d8, 0xb68d3134, 0x00003ffe, 0x3ece0000, 0xe62a0688, 0xf9c62b3d, 0x00003ffd, 0x3fb38000
157.long 0x0b60b60b, 0xb60b60b6, 0x00003ffe, 0x3ed00000, 0x58367671, 0xfbd42b46, 0x00003ffd, 0x3fb40000
158.long 0x18d1e7e4, 0xb58a4855, 0x00003ffe, 0x3ed20000, 0x1340511d, 0xfde0b5c8, 0x00003ffd, 0x3fb48000
159.long 0x9b94821f, 0xb509e68a, 0x00003ffe, 0x3ed40000, 0x1ffcd5ce, 0xffebccd4, 0x00003ffd, 0x3fb50000
160.long 0x4685fe97, 0xb48a39d4, 0x00003ffe, 0x3ed60000, 0x9326ff92, 0x80fab93b, 0x00003ffe, 0x3fb58000
161.long 0x0b40b40b, 0xb40b40b4, 0x00003ffe, 0x3ed80000, 0xbccbf99d, 0x81fed45c, 0x00003ffe, 0x3fb60000
162.long 0x0b38cf9b, 0xb38cf9b0, 0x00003ffe, 0x3eda0000, 0x927591f5, 0x830238cf, 0x00003ffe, 0x3fb68000
163.long 0x8917c80b, 0xb30f6352, 0x00003ffe, 0x3edc0000, 0xfb81ea93, 0x8404e793, 0x00003ffe, 0x3fb70000
164.long 0xda5519cf, 0xb2927c29, 0x00003ffe, 0x3ede0000, 0xc70fde00, 0x8506e1a7, 0x00003ffe, 0x3fb78000
165.long 0x590b2164, 0xb21642c8, 0x00003ffe, 0x3ee00000, 0xb1d532c4, 0x86082806, 0x00003ffe, 0x3fb80000
166.long 0x5606f00b, 0xb19ab5c4, 0x00003ffe, 0x3ee20000, 0x6be0889d, 0x8708bbaa, 0x00003ffe, 0x3fb88000
167.long 0x0b11fd3c, 0xb11fd3b8, 0x00003ffe, 0x3ee40000, 0x9e4753d9, 0x88089d8a, 0x00003ffe, 0x3fb90000
168.long 0x8d749d53, 0xb0a59b41, 0x00003ffe, 0x3ee60000, 0xf0c0396a, 0x8907ce9c, 0x00003ffe, 0x3fb98000
169.long 0xc0b02c0b, 0xb02c0b02, 0x00003ffe, 0x3ee80000, 0x0f2a1cf1, 0x8a064fd5, 0x00003ffe, 0x3fba0000
170.long 0x496fdf0e, 0xafb321a1, 0x00003ffe, 0x3eea0000, 0xaf00303c, 0x8b042224, 0x00003ffe, 0x3fba8000
171.long 0x80af3ade, 0xaf3addc6, 0x00003ffe, 0x3eec0000, 0x94bb5276, 0x8c01467b, 0x00003ffe, 0x3fbb0000
172.long 0x671529a5, 0xaec33e1f, 0x00003ffe, 0x3eee0000, 0x99210b8b, 0x8cfdbdc7, 0x00003ffe, 0x3fbb8000
173.long 0x9882b931, 0xae4c415c, 0x00003ffe, 0x3ef00000, 0xae806f1e, 0x8df988f4, 0x00003ffe, 0x3fbc0000
174.long 0x3fd48a86, 0xadd5e632, 0x00003ffe, 0x3ef20000, 0xe5dd30c4, 0x8ef4a8ec, 0x00003ffe, 0x3fbc8000
175.long 0x0ad602b6, 0xad602b58, 0x00003ffe, 0x3ef40000, 0x74093212, 0x8fef1e98, 0x00003ffe, 0x3fbd0000
176.long 0x1e6551bb, 0xaceb0f89, 0x00003ffe, 0x3ef60000, 0xb6acd18b, 0x90e8eadd, 0x00003ffe, 0x3fbd8000
177.long 0x0ac76918, 0xac769184, 0x00003ffe, 0x3ef80000, 0x393e4040, 0x91e20ea1, 0x00003ffe, 0x3fbe0000
178.long 0xc02b00ac, 0xac02b00a, 0x00003ffe, 0x3efa0000, 0xb9e822b4, 0x92da8ac5, 0x00003ffe, 0x3fbe8000
179.long 0x8359cd11, 0xab8f69e2, 0x00003ffe, 0x3efc0000, 0x2e5fc02c, 0x93d2602c, 0x00003ffe, 0x3fbf0000
180.long 0xe2970f60, 0xab1cbdd3, 0x00003ffe, 0x3efe0000, 0xc8ab0290, 0x94c98fb3, 0x00003ffe, 0x3fbf8000
181.long 0xdc17f00b, 0xaa392f35, 0x00003fff, 0xbe7e0000, 0xfec7f9b5, 0xd293feca, 0x0000bffd, 0x3f408000
182.long 0xa07f5638, 0xa9c84a47, 0x00003fff, 0xbe7c0000, 0x4c0d9ebe, 0xd0a978a1, 0x0000bffd, 0x3f410000
183.long 0x402a55ff, 0xa957fab5, 0x00003fff, 0xbe7a0000, 0x4c90dc61, 0xcec0375e, 0x0000bffd, 0x3f418000
184.long 0x17c0a8e8, 0xa8e83f57, 0x00003fff, 0xbe780000, 0xb6359379, 0xccd83954, 0x0000bffd, 0x3f420000
185.long 0x8e262b6f, 0xa8791708, 0x00003fff, 0xbe760000, 0x8f827179, 0xcaf17cda, 0x0000bffd, 0x3f428000
186.long 0x0a80a80b, 0xa80a80a8, 0x00003fff, 0xbe740000, 0x26e9dbfc, 0xc90c0049, 0x0000bffd, 0x3f430000
187.long 0xea64d422, 0xa79c7b16, 0x00003fff, 0xbe720000, 0x0a2f6d7e, 0xc727c1fd, 0x0000bffd, 0x3f438000
188.long 0x7829cbc1, 0xa72f0539, 0x00003fff, 0xbe700000, 0xfde99333, 0xc544c055, 0x0000bffd, 0x3f440000
189.long 0xe1625c80, 0xa6c21df6, 0x00003fff, 0xbe6e0000, 0xf51eddd3, 0xc362f9b6, 0x0000bffd, 0x3f448000
190.long 0x2d7b73a8, 0xa655c439, 0x00003fff, 0xbe6c0000, 0x08fe9952, 0xc1826c86, 0x0000bffd, 0x3f450000
191.long 0x347f0721, 0xa5e9f6ed, 0x00003fff, 0xbe6a0000, 0x70b44141, 0xbfa3172c, 0x0000bffd, 0x3f458000
192.long 0x95fad40a, 0xa57eb502, 0x00003fff, 0xbe680000, 0x79556990, 0xbdc4f816, 0x0000bffd, 0x3f460000
193.long 0xb00a5140, 0xa513fd6b, 0x00003fff, 0xbe660000, 0x7de9b525, 0xbbe80db3, 0x0000bffd, 0x3f468000
194.long 0x96833751, 0xa4a9cf1d, 0x00003fff, 0xbe640000, 0xdf8c75b3, 0xba0c5675, 0x0000bffd, 0x3f470000
195.long 0x0a440291, 0xa4402910, 0x00003fff, 0xbe620000, 0xfda791cc, 0xb831d0d2, 0x0000bffd, 0x3f478000
196.long 0x70a3d70a, 0xa3d70a3d, 0x00003fff, 0xbe600000, 0x2e47501b, 0xb6587b43, 0x0000bffd, 0x3f480000
197.long 0xcb033128, 0xa36e71a2, 0x00003fff, 0xbe5e0000, 0xb686a83a, 0xb4805441, 0x0000bffd, 0x3f488000
198.long 0xae7cd0e0, 0xa3065e3f, 0x00003fff, 0xbe5c0000, 0xc313bb59, 0xb2a95a4c, 0x0000bffd, 0x3f490000
199.long 0x3bb6500a, 0xa29ecf16, 0x00003fff, 0xbe5a0000, 0x60cc188b, 0xb0d38be5, 0x0000bffd, 0x3f498000
200.long 0x16cfd772, 0xa237c32b, 0x00003fff, 0xbe580000, 0x75707221, 0xaefee78f, 0x0000bffd, 0x3f4a0000
201.long 0x5f7268ee, 0xa1d13985, 0x00003fff, 0xbe560000, 0xb86f6b11, 0xad2b6bd1, 0x0000bffd, 0x3f4a8000
202.long 0xa8fc377d, 0xa16b312e, 0x00003fff, 0xbe540000, 0xabc724e5, 0xab591735, 0x0000bffd, 0x3f4b0000
203.long 0xf2ca891f, 0xa105a932, 0x00003fff, 0xbe520000, 0x94fd384f, 0xa987e847, 0x0000bffd, 0x3f4b8000
204.long 0xa0a0a0a1, 0xa0a0a0a0, 0x00003fff, 0xbe500000, 0x762cc3c7, 0xa7b7dd96, 0x0000bffd, 0x3f4c0000
205.long 0x732b3032, 0xa03c1688, 0x00003fff, 0xbe4e0000, 0x072a3d44, 0xa5e8f5b4, 0x0000bffd, 0x3f4c8000
206.long 0x809fd80a, 0x9fd809fd, 0x00003fff, 0xbe4c0000, 0xaebcb551, 0xa41b2f34, 0x0000bffd, 0x3f4d0000
207.long 0x2d7836d0, 0x9f747a15, 0x00003fff, 0xbe4a0000, 0x7bec3b64, 0xa24e88af, 0x0000bffd, 0x3f4d8000
208.long 0x254813e2, 0x9f1165e7, 0x00003fff, 0xbe480000, 0x1f651473, 0xa08300be, 0x0000bffd, 0x3f4e0000
209.long 0x53ae2ddf, 0x9eaecc8d, 0x00003fff, 0xbe460000, 0xe4ef7663, 0x9eb895fc, 0x0000bffd, 0x3f4e8000
210.long 0xdd5f3a20, 0x9e4cad23, 0x00003fff, 0xbe440000, 0xacfb7bf9, 0x9cef470a, 0x0000bffd, 0x3f4f0000
211.long 0x194aa416, 0x9deb06c9, 0x00003fff, 0xbe420000, 0xe6410678, 0x9b271288, 0x0000bffd, 0x3f4f8000
212.long 0x89d89d8a, 0x9d89d89d, 0x00003fff, 0xbe400000, 0x8773432d, 0x995ff71b, 0x0000bffd, 0x3f500000
213.long 0xd6411308, 0x9d2921c3, 0x00003fff, 0xbe3e0000, 0x09078c87, 0x9799f369, 0x0000bffd, 0x3f508000
214.long 0xc3fb19b9, 0x9cc8e160, 0x00003fff, 0xbe3c0000, 0x5f0f5f7f, 0x95d5061a, 0x0000bffd, 0x3f510000
215.long 0x30446dfa, 0x9c69169b, 0x00003fff, 0xbe3a0000, 0xf3251f47, 0x94112dda, 0x0000bffd, 0x3f518000
216.long 0x09c09c0a, 0x9c09c09c, 0x00003fff, 0xbe380000, 0x9e6b6268, 0x924e6958, 0x0000bffd, 0x3f520000
217.long 0x4a2f6e10, 0x9baade8e, 0x00003fff, 0xbe360000, 0xa39e8598, 0x908cb743, 0x0000bffd, 0x3f528000
218.long 0xf03a3caa, 0x9b4c6f9e, 0x00003fff, 0xbe340000, 0xa93841af, 0x8ecc164e, 0x0000bffd, 0x3f530000
219.long 0xf957c10f, 0x9aee72fc, 0x00003fff, 0xbe320000, 0xb3a50346, 0x8d0c852e, 0x0000bffd, 0x3f538000
220.long 0x5bc609a9, 0x9a90e7d9, 0x00003fff, 0xbe300000, 0x1f8ac392, 0x8b4e029b, 0x0000bffd, 0x3f540000
221.long 0x009a33cd, 0x9a33cd67, 0x00003fff, 0xbe2e0000, 0x9c212322, 0x89908d4d, 0x0000bffd, 0x3f548000
222.long 0xbde58f06, 0x99d722da, 0x00003fff, 0xbe2c0000, 0x259a8843, 0x87d42402, 0x0000bffd, 0x3f550000
223.long 0x50efd00a, 0x997ae76b, 0x00003fff, 0xbe2a0000, 0xff9e03b3, 0x8618c576, 0x0000bffd, 0x3f558000
224.long 0x5885fb37, 0x991f1a51, 0x00003fff, 0xbe280000, 0xafd1bf61, 0x845e706c, 0x0000bffd, 0x3f560000
225.long 0x4f5db00a, 0x98c3bac7, 0x00003fff, 0xbe260000, 0xf875bbfc, 0x82a523a5, 0x0000bffd, 0x3f568000
226.long 0x868c8098, 0x9868c809, 0x00003fff, 0xbe240000, 0xd30ea2ed, 0x80ecdde7, 0x0000bffd, 0x3f570000
227.long 0x201301c8, 0x980e4156, 0x00003fff, 0xbe220000, 0xd640e6de, 0xfe6b3bf2, 0x0000bffc, 0x3f578000
228.long 0x097b425f, 0x97b425ed, 0x00003fff, 0xbe200000, 0x31f1a484, 0xfafec548, 0x0000bffc, 0x3f580000
229.long 0xf68a58af, 0x975a750f, 0x00003fff, 0xbe1e0000, 0xb9118906, 0xf7945566, 0x0000bffc, 0x3f588000
230.long 0x5c04b809, 0x97012e02, 0x00003fff, 0xbe1c0000, 0xb09b3def, 0xf42be9e9, 0x0000bffc, 0x3f590000
231.long 0x6a850097, 0x96a85009, 0x00003fff, 0xbe1a0000, 0x9891e833, 0xf0c58070, 0x0000bffc, 0x3f598000
232.long 0x0964fda7, 0x964fda6c, 0x00003fff, 0xbe180000, 0x220e97f2, 0xed61169f, 0x0000bffc, 0x3f5a0000
233.long 0xd1b887e9, 0x95f7cc72, 0x00003fff, 0xbe160000, 0x256ae3d2, 0xe9feaa1d, 0x0000bffc, 0x3f5a8000
234.long 0x095a0257, 0x95a02568, 0x00003fff, 0xbe140000, 0x98884993, 0xe69e3896, 0x0000bffc, 0x3f5b0000
235.long 0x9e0829fd, 0x9548e497, 0x00003fff, 0xbe120000, 0x8533ef03, 0xe33fbfbb, 0x0000bffc, 0x3f5b8000
236.long 0x2094f209, 0x94f2094f, 0x00003fff, 0xbe100000, 0xffa66038, 0xdfe33d3f, 0x0000bffc, 0x3f5c0000
237.long 0xc02526e5, 0x949b92dd, 0x00003fff, 0xbe0e0000, 0x1d1ee96a, 0xdc88aedc, 0x0000bffc, 0x3f5c8000
238.long 0x45809446, 0x94458094, 0x00003fff, 0xbe0c0000, 0xea9a2c67, 0xd930124b, 0x0000bffc, 0x3f5d0000
239.long 0x0e726b7c, 0x93efd1c5, 0x00003fff, 0xbe0a0000, 0x63a39316, 0xd5d9654f, 0x0000bffc, 0x3f5d8000
240.long 0x0939a85c, 0x939a85c4, 0x00003fff, 0xbe080000, 0x69414202, 0xd284a5aa, 0x0000bffc, 0x3f5e0000
241.long 0xb009345a, 0x93459be6, 0x00003fff, 0xbe060000, 0xb8fa2f56, 0xcf31d124, 0x0000bffc, 0x3f5e8000
242.long 0x0497889c, 0x92f11384, 0x00003fff, 0xbe040000, 0xe3f6042d, 0xcbe0e589, 0x0000bffc, 0x3f5f0000
243.long 0x8bbd90e5, 0x929cebf4, 0x00003fff, 0xbe020000, 0x46366f7a, 0xc891e0a9, 0x0000bffc, 0x3f5f8000
244.long 0x49249249, 0x92492492, 0x00003fff, 0xbe000000, 0xfde99333, 0xc544c055, 0x0000bffc, 0x3f600000
245.long 0xbb02d9cd, 0x91f5bcb8, 0x00003fff, 0xbdfc0000, 0xe2d535c6, 0xc1f98266, 0x0000bffc, 0x3f608000
246.long 0xd5e6f809, 0x91a2b3c4, 0x00003fff, 0xbdf80000, 0x7dda633a, 0xbeb024b6, 0x0000bffc, 0x3f610000
247.long 0x00915009, 0x91500915, 0x00003fff, 0xbdf40000, 0x00912aa3, 0xbb68a523, 0x0000bffc, 0x3f618000
248.long 0x0fdbc091, 0x90fdbc09, 0x00003fff, 0xbdf00000, 0x3cfc25f1, 0xb823018e, 0x0000bffc, 0x3f620000
249.long 0x42af3009, 0x90abcc02, 0x00003fff, 0xbdec0000, 0x9d537b43, 0xb4df37dd, 0x0000bffc, 0x3f628000
250.long 0x3e06c43b, 0x905a3863, 0x00003fff, 0xbde80000, 0x1be70855, 0xb19d45fa, 0x0000bffc, 0x3f630000
251.long 0x09009009, 0x90090090, 0x00003fff, 0xbde40000, 0x3b1769a9, 0xae5d29d0, 0x0000bffc, 0x3f638000
252.long 0x08fb823f, 0x8fb823ee, 0x00003fff, 0xbde00000, 0xfd659064, 0xab1ee14f, 0x0000bffc, 0x3f640000
253.long 0xfdc26178, 0x8f67a1e3, 0x00003fff, 0xbddc0000, 0xdd989af8, 0xa7e26a6c, 0x0000bffc, 0x3f648000
254.long 0xfdc3a219, 0x8f1779d9, 0x00003fff, 0xbdd80000, 0xc6f9a5d5, 0xa4a7c31d, 0x0000bffc, 0x3f650000
255.long 0x7255e41d, 0x8ec7ab39, 0x00003fff, 0xbdd40000, 0x0da54a91, 0xa16ee95d, 0x0000bffc, 0x3f658000
256.long 0x1408e783, 0x8e78356d, 0x00003fff, 0xbdd00000, 0x66f2850b, 0x9e37db28, 0x0000bffc, 0x3f660000
257.long 0xe702c6cd, 0x8e2917e0, 0x00003fff, 0xbdcc0000, 0xe1eeb725, 0x9b029680, 0x0000bffc, 0x3f668000
258.long 0x37694809, 0x8dda5202, 0x00003fff, 0xbdc80000, 0xdfee84d1, 0x97cf196a, 0x0000bffc, 0x3f670000
259.long 0x95d71590, 0x8d8be33f, 0x00003fff, 0xbdc40000, 0x0d33432f, 0x949d61ee, 0x0000bffc, 0x3f678000
260.long 0xd3dcb08d, 0x8d3dcb08, 0x00003fff, 0xbdc00000, 0x59a4b697, 0x916d6e15, 0x0000bffc, 0x3f680000
261.long 0x008cf009, 0x8cf008cf, 0x00003fff, 0xbdbc0000, 0xf19edc59, 0x8e3f3bee, 0x0000bffc, 0x3f688000
262.long 0x6514e023, 0x8ca29c04, 0x00003fff, 0xbdb80000, 0x36d37e21, 0x8b12c98c, 0x0000bffc, 0x3f690000
263.long 0x815ed5ca, 0x8c55841c, 0x00003fff, 0xbdb40000, 0xb93f4dc5, 0x87e81501, 0x0000bffc, 0x3f698000
264.long 0x08c08c09, 0x8c08c08c, 0x00003fff, 0xbdb00000, 0x3032495d, 0x84bf1c67, 0x0000bffc, 0x3f6a0000
265.long 0xdeb420c0, 0x8bbc50c8, 0x00003fff, 0xbdac0000, 0x736b2864, 0x8197ddd7, 0x0000bffc, 0x3f6a8000
266.long 0x139bc75a, 0x8b70344a, 0x00003fff, 0xbda80000, 0xe88b274a, 0xfce4aee0, 0x0000bffb, 0x3f6b0000
267.long 0xe19008b2, 0x8b246a87, 0x00003fff, 0xbda40000, 0x6df5d521, 0xf69d0ea6, 0x0000bffb, 0x3f6b8000
268.long 0xa9386823, 0x8ad8f2fb, 0x00003fff, 0xbda00000, 0x97eab326, 0xf058d747, 0x0000bffb, 0x3f6c0000
269.long 0xeeae465c, 0x8a8dcd1f, 0x00003fff, 0xbd9c0000, 0x926a0bb6, 0xea180512, 0x0000bffb, 0x3f6c8000
270.long 0x5669db46, 0x8a42f870, 0x00003fff, 0xbd980000, 0x878e27d1, 0xe3da945b, 0x0000bffb, 0x3f6d0000
271.long 0xa23920e0, 0x89f87469, 0x00003fff, 0xbd940000, 0x929c9e33, 0xdda0817c, 0x0000bffb, 0x3f6d8000
272.long 0xae4089ae, 0x89ae4089, 0x00003fff, 0xbd900000, 0xb33a7280, 0xd769c8d5, 0x0000bffb, 0x3f6e0000
273.long 0x6e055dec, 0x89645c4f, 0x00003fff, 0xbd8c0000, 0xc0c2944d, 0xd13666cc, 0x0000bffb, 0x3f6e8000
274.long 0xe9819b50, 0x891ac73a, 0x00003fff, 0xbd880000, 0x5dbe4f6f, 0xcb0657cd, 0x0000bffb, 0x3f6f0000
275.long 0x3a4133d7, 0x88d180cd, 0x00003fff, 0xbd840000, 0xeb7f40a7, 0xc4d99848, 0x0000bffb, 0x3f6f8000
276.long 0x88888889, 0x88888888, 0x00003fff, 0xbd800000, 0x7dda633a, 0xbeb024b6, 0x0000bffb, 0x3f700000
277.long 0x0883fddf, 0x883fddf0, 0x00003fff, 0xbd780000, 0xcf03cdb6, 0xb889f992, 0x0000bffb, 0x3f708000
278.long 0xf78087f8, 0x87f78087, 0x00003fff, 0xbd700000, 0x338ab5a2, 0xb2671360, 0x0000bffb, 0x3f710000
279.long 0x992d0d40, 0x87af6fd5, 0x00003fff, 0xbd680000, 0x8e755349, 0xac476ea6, 0x0000bffb, 0x3f718000
280.long 0x34e47ef1, 0x8767ab5f, 0x00003fff, 0xbd600000, 0x457c4070, 0xa62b07f3, 0x0000bffb, 0x3f720000
281.long 0x13008720, 0x872032ac, 0x00003fff, 0xbd580000, 0x3564ee1c, 0xa011dbd9, 0x0000bffb, 0x3f728000
282.long 0x7a34acc6, 0x86d90544, 0x00003fff, 0xbd500000, 0xa67acf0f, 0x99fbe6f0, 0x0000bffb, 0x3f730000
283.long 0xacf1ce96, 0x869222b1, 0x00003fff, 0xbd480000, 0x4126d610, 0x93e925d7, 0x0000bffb, 0x3f738000
284.long 0xe6d1d608, 0x864b8a7d, 0x00003fff, 0xbd400000, 0x02a4e866, 0x8dd99530, 0x0000bffb, 0x3f740000
285.long 0x5a0b8473, 0x86053c34, 0x00003fff, 0xbd380000, 0x31d6e65f, 0x87cd31a3, 0x0000bffb, 0x3f748000
286.long 0x2cee3c9b, 0x85bf3761, 0x00003fff, 0xbd300000, 0x5434ed04, 0x81c3f7de, 0x0000bffb, 0x3f750000
287.long 0x7765ab89, 0x85797b91, 0x00003fff, 0xbd280000, 0x45b4eb0a, 0xf77bc928, 0x0000bffa, 0x3f758000
288.long 0x40853408, 0x85340853, 0x00003fff, 0xbd200000, 0xff5ff023, 0xeb75e8f8, 0x0000bffa, 0x3f760000
289.long 0x7c1b0085, 0x84eedd35, 0x00003fff, 0xbd180000, 0xd561728e, 0xdf7648a8, 0x0000bffa, 0x3f768000
290.long 0x084a9f9d, 0x84a9f9c8, 0x00003fff, 0xbd100000, 0xee98d4f3, 0xd37ce1bb, 0x0000bffa, 0x3f770000
291.long 0xab2f1008, 0x84655d9b, 0x00003fff, 0xbd080000, 0x83c88cea, 0xc789adc0, 0x0000bffa, 0x3f778000
292.long 0x10842108, 0x84210842, 0x00003fff, 0xbd000000, 0xcac6aaef, 0xbb9ca64e, 0x0000bffa, 0x3f780000
293.long 0xc7570ce1, 0x83dcf94d, 0x00003fff, 0xbcf00000, 0xe1e308e3, 0xafb5c508, 0x0000bffa, 0x3f788000
294.long 0x3fbe3368, 0x83993052, 0x00003fff, 0xbce00000, 0xbb82795a, 0xa3d5039a, 0x0000bffa, 0x3f790000
295.long 0xc897db10, 0x8355ace3, 0x00003fff, 0xbcd00000, 0x09ee5478, 0x97fa5bba, 0x0000bffa, 0x3f798000
296.long 0x8d4fdf3b, 0x83126e97, 0x00003fff, 0xbcc00000, 0x2b57c149, 0x8c25c726, 0x0000bffa, 0x3f7a0000
297.long 0x93ac3319, 0x82cf7503, 0x00003fff, 0xbcb00000, 0x160e1cd8, 0x80573fa8, 0x0000bffa, 0x3f7a8000
298.long 0xb9a020a3, 0x828cbfbe, 0x00003fff, 0xbca00000, 0x89cfc4de, 0xe91d7e24, 0x0000bff9, 0x3f7b0000
299.long 0xb3262bc5, 0x824a4e60, 0x00003fff, 0xbc900000, 0x47baf53e, 0xd1987e81, 0x0000bff9, 0x3f7b8000
300.long 0x08208208, 0x82082082, 0x00003fff, 0xbc800000, 0xf9aab1b3, 0xba1f7430, 0x0000bff9, 0x3f7c0000
301.long 0x123fdf8e, 0x81c635bc, 0x00003fff, 0xbc600000, 0xc941a2f2, 0xa2b25310, 0x0000bff9, 0x3f7c8000
302.long 0xfaf0d277, 0x81848da8, 0x00003fff, 0xbc400000, 0x5052285e, 0x8b510f10, 0x0000bff9, 0x3f7d0000
303.long 0xb94f462f, 0x814327e3, 0x00003fff, 0xbc200000, 0xe72ee35d, 0xe7f73862, 0x0000bff8, 0x3f7d8000
304.long 0x10204081, 0x81020408, 0x00003fff, 0xbc000000, 0x7b993adb, 0xb963dd10, 0x0000bff8, 0x3f7e0000
305.long 0x8bd1ba98, 0x80c121b2, 0x00003fff, 0xbbc00000, 0x764180a3, 0x8ae7f475, 0x0000bff8, 0x3f7e8000
306.long 0x80808081, 0x80808080, 0x00003fff, 0xbb800000, 0x541af537, 0xb906ce03, 0x0000bff7, 0x3f7f0000
307.long 0x08040201, 0x80402010, 0x00003fff, 0xbb000000, 0x72fed131, 0xb8d87521, 0x0000bff6, 0x3f7f8000
308.long 0x00000000, 0x80000000, 0x00003fff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000
309
310//gcc makeispowerof10.c -o p10 && ./p10
311isPowerOf10: // {10^n, log10(10^n)} for n < 64
312.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=0
313.quad 0x4024000000000000, 0x3ff0000000000000 //{0x1.4p+3, 0x1p+0}, k=1
314.quad 0x4059000000000000, 0x4000000000000000 //{0x1.9p+6, 0x1p+1}, k=2
315.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=3
316.quad 0x408f400000000000, 0x4008000000000000 //{0x1.f4p+9, 0x1.8p+1}, k=4
317.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=5
318.quad 0x40c3880000000000, 0x4010000000000000 //{0x1.388p+13, 0x1p+2}, k=6
319.quad 0x40f86a0000000000, 0x4014000000000000 //{0x1.86ap+16, 0x1.4p+2}, k=7
320.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=8
321.quad 0x412e848000000000, 0x4018000000000000 //{0x1.e848p+19, 0x1.8p+2}, k=9
322.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=10
323.quad 0x416312d000000000, 0x401c000000000000 //{0x1.312dp+23, 0x1.cp+2}, k=11
324.quad 0x4197d78400000000, 0x4020000000000000 //{0x1.7d784p+26, 0x1p+3}, k=12
325.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=13
326.quad 0x41cdcd6500000000, 0x4022000000000000 //{0x1.dcd65p+29, 0x1.2p+3}, k=14
327.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=15
328.quad 0x4202a05f20000000, 0x4024000000000000 //{0x1.2a05f2p+33, 0x1.4p+3}, k=16
329.quad 0x42374876e8000000, 0x4026000000000000 //{0x1.74876e8p+36, 0x1.6p+3}, k=17
330.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=18
331.quad 0x426d1a94a2000000, 0x4028000000000000 //{0x1.d1a94a2p+39, 0x1.8p+3}, k=19
332.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=20
333.quad 0x42a2309ce5400000, 0x402a000000000000 //{0x1.2309ce54p+43, 0x1.ap+3}, k=21
334.quad 0x42d6bcc41e900000, 0x402c000000000000 //{0x1.6bcc41e9p+46, 0x1.cp+3}, k=22
335.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=23
336.quad 0x430c6bf526340000, 0x402e000000000000 //{0x1.c6bf52634p+49, 0x1.ep+3}, k=24
337.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=25
338.quad 0x4341c37937e08000, 0x4030000000000000 //{0x1.1c37937e08p+53, 0x1p+4}, k=26
339.quad 0x4376345785d8a000, 0x4031000000000000 //{0x1.6345785d8ap+56, 0x1.1p+4}, k=27
340.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=28
341.quad 0x43abc16d674ec800, 0x4032000000000000 //{0x1.bc16d674ec8p+59, 0x1.2p+4}, k=29
342.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=30
343.quad 0x43e158e460913d00, 0x4033000000000000 //{0x1.158e460913dp+63, 0x1.3p+4}, k=31
344.quad 0x4415af1d78b58c40, 0x4034000000000000 //{0x1.5af1d78b58c4p+66, 0x1.4p+4}, k=32
345.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=33
346.quad 0x444b1ae4d6e2ef50, 0x4035000000000000 //{0x1.b1ae4d6e2ef5p+69, 0x1.5p+4}, k=34
347.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=35
348.quad 0x4480f0cf064dd592, 0x4036000000000000 //{0x1.0f0cf064dd592p+73, 0x1.6p+4}, k=36
349.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=37
350.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=38
351.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=39
352.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=40
353.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=41
354.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=42
355.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=43
356.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=44
357.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=45
358.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=46
359.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=47
360.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=48
361.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=49
362.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=50
363.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=51
364.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=52
365.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=53
366.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=54
367.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=55
368.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=56
369.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=57
370.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=58
371.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=59
372.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=60
373.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=61
374.quad 0x0000000000000000, 0x0000000000000000 //{0x0p+0, 0x0p+0}, k=62
375.quad 0x3ff0000000000000, 0x0000000000000000 //{0x1p+0, 0x0p+0}, k=63
376
377.literal8
378.align 3
379one: .double 1.0
380mone: .double -1.0
381
382c5_2: .quad 0x3fcA3F080966DC6D // c5 * log2(e) = 0x0.347E1012CDB8DAp0
383c5_e: .quad 0x3fc2314715265A8a // c5 * ln(e) = c5 = .1421288350363350533019772545
384c5_10: .quad 0x3faF9A851C6C68C2 // c5 * log10(e) = 0x0.0FCD428E363461p0
385
386threehalves: .double 1.50
387half: .double 0.50
388mquarter: .double -0.25
389third: .quad 0x3fd5555555555555 // 1/3
390_1pm54: .quad 0x3c90000000000000 // 0x1p-54
391_1pm14: .quad 0x3f10000000000000 // 0x1p-14
392mzero: .quad 0x8000000000000000 // -0
393notmzero: .quad 0x7fffffffffffffff // -0
394logup_ulp_mask: .quad 0x8030000000000000 // xor(-0x1p-53, 0x1p-54) = 0x8030000000000000
395
396#if defined( __x86_64__ )
397.literal8
398small_cut: .quad 0x0010000000000000
399large_cut: .quad 0x7fe0000000000000
400#endif
401
402/****************************************************************************
403
404 PIC code
405
406****************************************************************************/
407.text
408#if defined(__x86_64__)
409 #define REL_ADDR(_a) (_a)(%rip)
410#else
411 #define REL_ADDR(_a) (_a)-0b(%ecx)
412#endif
413
414#if defined( BUILDING_FOR_CARBONCORE_LEGACY )
415// log2 goes into libmathCommon.A.dylib instead of libm.a.
416// BUILDING_FOR_CARBONCORE_LEGACY is a device to control which library it goes into.
417
418#define BASE2 1
419#include "log_universal.h"
420#undef BASE2
421#undef BASEE
422#undef BASE10
423
424#else
425
426#define BASEE 1
427#include "log_universal.h"
428#undef BASE2
429#undef BASEE
430#undef BASE10
431
432#define BASE10 1
433#include "log_universal.h"
434#undef BASE2
435#undef BASEE
436#undef BASE10
437
438#define BASEE 1
439
440#undef LOG1P
441#undef LOGUP
442#define LOGUP 1
443#include "log_universal.h"
444
445#include "log1p.h"
446
447#undef BASE2
448#undef BASEE
449#undef BASE10
450#undef LOG1P
451#undef LOGUP
452
453#endif //defined( BUILDING_FOR_CARBONCORE_LEGACY )