qemu/target/m68k/softfloat_fpsp_tables.h
<<
>>
Prefs
   1/*
   2 * Ported from a work by Andreas Grabher for Previous, NeXT Computer Emulator,
   3 * derived from NetBSD M68040 FPSP functions,
   4 * derived from release 2a of the SoftFloat IEC/IEEE Floating-point Arithmetic
   5 * Package. Those parts of the code (and some later contributions) are
   6 * provided under that license, as detailed below.
   7 * It has subsequently been modified by contributors to the QEMU Project,
   8 * so some portions are provided under:
   9 *  the SoftFloat-2a license
  10 *  the BSD license
  11 *  GPL-v2-or-later
  12 *
  13 * Any future contributions to this file will be taken to be licensed under
  14 * the Softfloat-2a license unless specifically indicated otherwise.
  15 */
  16
  17/*
  18 * Portions of this work are licensed under the terms of the GNU GPL,
  19 * version 2 or later. See the COPYING file in the top-level directory.
  20 */
  21
  22#ifndef TARGET_M68K_SOFTFLOAT_FPSP_TABLES_H
  23#define TARGET_M68K_SOFTFLOAT_FPSP_TABLES_H
  24
  25static const floatx80 log_tbl[128] = {
  26    make_floatx80_init(0x3FFE, 0xFE03F80FE03F80FE),
  27    make_floatx80_init(0x3FF7, 0xFF015358833C47E2),
  28    make_floatx80_init(0x3FFE, 0xFA232CF252138AC0),
  29    make_floatx80_init(0x3FF9, 0xBDC8D83EAD88D549),
  30    make_floatx80_init(0x3FFE, 0xF6603D980F6603DA),
  31    make_floatx80_init(0x3FFA, 0x9CF43DCFF5EAFD48),
  32    make_floatx80_init(0x3FFE, 0xF2B9D6480F2B9D65),
  33    make_floatx80_init(0x3FFA, 0xDA16EB88CB8DF614),
  34    make_floatx80_init(0x3FFE, 0xEF2EB71FC4345238),
  35    make_floatx80_init(0x3FFB, 0x8B29B7751BD70743),
  36    make_floatx80_init(0x3FFE, 0xEBBDB2A5C1619C8C),
  37    make_floatx80_init(0x3FFB, 0xA8D839F830C1FB49),
  38    make_floatx80_init(0x3FFE, 0xE865AC7B7603A197),
  39    make_floatx80_init(0x3FFB, 0xC61A2EB18CD907AD),
  40    make_floatx80_init(0x3FFE, 0xE525982AF70C880E),
  41    make_floatx80_init(0x3FFB, 0xE2F2A47ADE3A18AF),
  42    make_floatx80_init(0x3FFE, 0xE1FC780E1FC780E2),
  43    make_floatx80_init(0x3FFB, 0xFF64898EDF55D551),
  44    make_floatx80_init(0x3FFE, 0xDEE95C4CA037BA57),
  45    make_floatx80_init(0x3FFC, 0x8DB956A97B3D0148),
  46    make_floatx80_init(0x3FFE, 0xDBEB61EED19C5958),
  47    make_floatx80_init(0x3FFC, 0x9B8FE100F47BA1DE),
  48    make_floatx80_init(0x3FFE, 0xD901B2036406C80E),
  49    make_floatx80_init(0x3FFC, 0xA9372F1D0DA1BD17),
  50    make_floatx80_init(0x3FFE, 0xD62B80D62B80D62C),
  51    make_floatx80_init(0x3FFC, 0xB6B07F38CE90E46B),
  52    make_floatx80_init(0x3FFE, 0xD3680D3680D3680D),
  53    make_floatx80_init(0x3FFC, 0xC3FD032906488481),
  54    make_floatx80_init(0x3FFE, 0xD0B69FCBD2580D0B),
  55    make_floatx80_init(0x3FFC, 0xD11DE0FF15AB18CA),
  56    make_floatx80_init(0x3FFE, 0xCE168A7725080CE1),
  57    make_floatx80_init(0x3FFC, 0xDE1433A16C66B150),
  58    make_floatx80_init(0x3FFE, 0xCB8727C065C393E0),
  59    make_floatx80_init(0x3FFC, 0xEAE10B5A7DDC8ADD),
  60    make_floatx80_init(0x3FFE, 0xC907DA4E871146AD),
  61    make_floatx80_init(0x3FFC, 0xF7856E5EE2C9B291),
  62    make_floatx80_init(0x3FFE, 0xC6980C6980C6980C),
  63    make_floatx80_init(0x3FFD, 0x82012CA5A68206D7),
  64    make_floatx80_init(0x3FFE, 0xC4372F855D824CA6),
  65    make_floatx80_init(0x3FFD, 0x882C5FCD7256A8C5),
  66    make_floatx80_init(0x3FFE, 0xC1E4BBD595F6E947),
  67    make_floatx80_init(0x3FFD, 0x8E44C60B4CCFD7DE),
  68    make_floatx80_init(0x3FFE, 0xBFA02FE80BFA02FF),
  69    make_floatx80_init(0x3FFD, 0x944AD09EF4351AF6),
  70    make_floatx80_init(0x3FFE, 0xBD69104707661AA3),
  71    make_floatx80_init(0x3FFD, 0x9A3EECD4C3EAA6B2),
  72    make_floatx80_init(0x3FFE, 0xBB3EE721A54D880C),
  73    make_floatx80_init(0x3FFD, 0xA0218434353F1DE8),
  74    make_floatx80_init(0x3FFE, 0xB92143FA36F5E02E),
  75    make_floatx80_init(0x3FFD, 0xA5F2FCABBBC506DA),
  76    make_floatx80_init(0x3FFE, 0xB70FBB5A19BE3659),
  77    make_floatx80_init(0x3FFD, 0xABB3B8BA2AD362A5),
  78    make_floatx80_init(0x3FFE, 0xB509E68A9B94821F),
  79    make_floatx80_init(0x3FFD, 0xB1641795CE3CA97B),
  80    make_floatx80_init(0x3FFE, 0xB30F63528917C80B),
  81    make_floatx80_init(0x3FFD, 0xB70475515D0F1C61),
  82    make_floatx80_init(0x3FFE, 0xB11FD3B80B11FD3C),
  83    make_floatx80_init(0x3FFD, 0xBC952AFEEA3D13E1),
  84    make_floatx80_init(0x3FFE, 0xAF3ADDC680AF3ADE),
  85    make_floatx80_init(0x3FFD, 0xC2168ED0F458BA4A),
  86    make_floatx80_init(0x3FFE, 0xAD602B580AD602B6),
  87    make_floatx80_init(0x3FFD, 0xC788F439B3163BF1),
  88    make_floatx80_init(0x3FFE, 0xAB8F69E28359CD11),
  89    make_floatx80_init(0x3FFD, 0xCCECAC08BF04565D),
  90    make_floatx80_init(0x3FFE, 0xA9C84A47A07F5638),
  91    make_floatx80_init(0x3FFD, 0xD24204872DD85160),
  92    make_floatx80_init(0x3FFE, 0xA80A80A80A80A80B),
  93    make_floatx80_init(0x3FFD, 0xD78949923BC3588A),
  94    make_floatx80_init(0x3FFE, 0xA655C4392D7B73A8),
  95    make_floatx80_init(0x3FFD, 0xDCC2C4B49887DACC),
  96    make_floatx80_init(0x3FFE, 0xA4A9CF1D96833751),
  97    make_floatx80_init(0x3FFD, 0xE1EEBD3E6D6A6B9E),
  98    make_floatx80_init(0x3FFE, 0xA3065E3FAE7CD0E0),
  99    make_floatx80_init(0x3FFD, 0xE70D785C2F9F5BDC),
 100    make_floatx80_init(0x3FFE, 0xA16B312EA8FC377D),
 101    make_floatx80_init(0x3FFD, 0xEC1F392C5179F283),
 102    make_floatx80_init(0x3FFE, 0x9FD809FD809FD80A),
 103    make_floatx80_init(0x3FFD, 0xF12440D3E36130E6),
 104    make_floatx80_init(0x3FFE, 0x9E4CAD23DD5F3A20),
 105    make_floatx80_init(0x3FFD, 0xF61CCE92346600BB),
 106    make_floatx80_init(0x3FFE, 0x9CC8E160C3FB19B9),
 107    make_floatx80_init(0x3FFD, 0xFB091FD38145630A),
 108    make_floatx80_init(0x3FFE, 0x9B4C6F9EF03A3CAA),
 109    make_floatx80_init(0x3FFD, 0xFFE97042BFA4C2AD),
 110    make_floatx80_init(0x3FFE, 0x99D722DABDE58F06),
 111    make_floatx80_init(0x3FFE, 0x825EFCED49369330),
 112    make_floatx80_init(0x3FFE, 0x9868C809868C8098),
 113    make_floatx80_init(0x3FFE, 0x84C37A7AB9A905C9),
 114    make_floatx80_init(0x3FFE, 0x97012E025C04B809),
 115    make_floatx80_init(0x3FFE, 0x87224C2E8E645FB7),
 116    make_floatx80_init(0x3FFE, 0x95A02568095A0257),
 117    make_floatx80_init(0x3FFE, 0x897B8CAC9F7DE298),
 118    make_floatx80_init(0x3FFE, 0x9445809445809446),
 119    make_floatx80_init(0x3FFE, 0x8BCF55DEC4CD05FE),
 120    make_floatx80_init(0x3FFE, 0x92F113840497889C),
 121    make_floatx80_init(0x3FFE, 0x8E1DC0FB89E125E5),
 122    make_floatx80_init(0x3FFE, 0x91A2B3C4D5E6F809),
 123    make_floatx80_init(0x3FFE, 0x9066E68C955B6C9B),
 124    make_floatx80_init(0x3FFE, 0x905A38633E06C43B),
 125    make_floatx80_init(0x3FFE, 0x92AADE74C7BE59E0),
 126    make_floatx80_init(0x3FFE, 0x8F1779D9FDC3A219),
 127    make_floatx80_init(0x3FFE, 0x94E9BFF615845643),
 128    make_floatx80_init(0x3FFE, 0x8DDA520237694809),
 129    make_floatx80_init(0x3FFE, 0x9723A1B720134203),
 130    make_floatx80_init(0x3FFE, 0x8CA29C046514E023),
 131    make_floatx80_init(0x3FFE, 0x995899C890EB8990),
 132    make_floatx80_init(0x3FFE, 0x8B70344A139BC75A),
 133    make_floatx80_init(0x3FFE, 0x9B88BDAA3A3DAE2F),
 134    make_floatx80_init(0x3FFE, 0x8A42F8705669DB46),
 135    make_floatx80_init(0x3FFE, 0x9DB4224FFFE1157C),
 136    make_floatx80_init(0x3FFE, 0x891AC73AE9819B50),
 137    make_floatx80_init(0x3FFE, 0x9FDADC268B7A12DA),
 138    make_floatx80_init(0x3FFE, 0x87F78087F78087F8),
 139    make_floatx80_init(0x3FFE, 0xA1FCFF17CE733BD4),
 140    make_floatx80_init(0x3FFE, 0x86D905447A34ACC6),
 141    make_floatx80_init(0x3FFE, 0xA41A9E8F5446FB9F),
 142    make_floatx80_init(0x3FFE, 0x85BF37612CEE3C9B),
 143    make_floatx80_init(0x3FFE, 0xA633CD7E6771CD8B),
 144    make_floatx80_init(0x3FFE, 0x84A9F9C8084A9F9D),
 145    make_floatx80_init(0x3FFE, 0xA8489E600B435A5E),
 146    make_floatx80_init(0x3FFE, 0x839930523FBE3368),
 147    make_floatx80_init(0x3FFE, 0xAA59233CCCA4BD49),
 148    make_floatx80_init(0x3FFE, 0x828CBFBEB9A020A3),
 149    make_floatx80_init(0x3FFE, 0xAC656DAE6BCC4985),
 150    make_floatx80_init(0x3FFE, 0x81848DA8FAF0D277),
 151    make_floatx80_init(0x3FFE, 0xAE6D8EE360BB2468),
 152    make_floatx80_init(0x3FFE, 0x8080808080808081),
 153    make_floatx80_init(0x3FFE, 0xB07197A23C46C654)
 154};
 155
 156static const floatx80 exp_tbl[64] = {
 157    make_floatx80_init(0x3FFF, 0x8000000000000000),
 158    make_floatx80_init(0x3FFF, 0x8164D1F3BC030774),
 159    make_floatx80_init(0x3FFF, 0x82CD8698AC2BA1D8),
 160    make_floatx80_init(0x3FFF, 0x843A28C3ACDE4048),
 161    make_floatx80_init(0x3FFF, 0x85AAC367CC487B14),
 162    make_floatx80_init(0x3FFF, 0x871F61969E8D1010),
 163    make_floatx80_init(0x3FFF, 0x88980E8092DA8528),
 164    make_floatx80_init(0x3FFF, 0x8A14D575496EFD9C),
 165    make_floatx80_init(0x3FFF, 0x8B95C1E3EA8BD6E8),
 166    make_floatx80_init(0x3FFF, 0x8D1ADF5B7E5BA9E4),
 167    make_floatx80_init(0x3FFF, 0x8EA4398B45CD53C0),
 168    make_floatx80_init(0x3FFF, 0x9031DC431466B1DC),
 169    make_floatx80_init(0x3FFF, 0x91C3D373AB11C338),
 170    make_floatx80_init(0x3FFF, 0x935A2B2F13E6E92C),
 171    make_floatx80_init(0x3FFF, 0x94F4EFA8FEF70960),
 172    make_floatx80_init(0x3FFF, 0x96942D3720185A00),
 173    make_floatx80_init(0x3FFF, 0x9837F0518DB8A970),
 174    make_floatx80_init(0x3FFF, 0x99E0459320B7FA64),
 175    make_floatx80_init(0x3FFF, 0x9B8D39B9D54E5538),
 176    make_floatx80_init(0x3FFF, 0x9D3ED9A72CFFB750),
 177    make_floatx80_init(0x3FFF, 0x9EF5326091A111AC),
 178    make_floatx80_init(0x3FFF, 0xA0B0510FB9714FC4),
 179    make_floatx80_init(0x3FFF, 0xA27043030C496818),
 180    make_floatx80_init(0x3FFF, 0xA43515AE09E680A0),
 181    make_floatx80_init(0x3FFF, 0xA5FED6A9B15138EC),
 182    make_floatx80_init(0x3FFF, 0xA7CD93B4E9653568),
 183    make_floatx80_init(0x3FFF, 0xA9A15AB4EA7C0EF8),
 184    make_floatx80_init(0x3FFF, 0xAB7A39B5A93ED338),
 185    make_floatx80_init(0x3FFF, 0xAD583EEA42A14AC8),
 186    make_floatx80_init(0x3FFF, 0xAF3B78AD690A4374),
 187    make_floatx80_init(0x3FFF, 0xB123F581D2AC2590),
 188    make_floatx80_init(0x3FFF, 0xB311C412A9112488),
 189    make_floatx80_init(0x3FFF, 0xB504F333F9DE6484),
 190    make_floatx80_init(0x3FFF, 0xB6FD91E328D17790),
 191    make_floatx80_init(0x3FFF, 0xB8FBAF4762FB9EE8),
 192    make_floatx80_init(0x3FFF, 0xBAFF5AB2133E45FC),
 193    make_floatx80_init(0x3FFF, 0xBD08A39F580C36C0),
 194    make_floatx80_init(0x3FFF, 0xBF1799B67A731084),
 195    make_floatx80_init(0x3FFF, 0xC12C4CCA66709458),
 196    make_floatx80_init(0x3FFF, 0xC346CCDA24976408),
 197    make_floatx80_init(0x3FFF, 0xC5672A115506DADC),
 198    make_floatx80_init(0x3FFF, 0xC78D74C8ABB9B15C),
 199    make_floatx80_init(0x3FFF, 0xC9B9BD866E2F27A4),
 200    make_floatx80_init(0x3FFF, 0xCBEC14FEF2727C5C),
 201    make_floatx80_init(0x3FFF, 0xCE248C151F8480E4),
 202    make_floatx80_init(0x3FFF, 0xD06333DAEF2B2594),
 203    make_floatx80_init(0x3FFF, 0xD2A81D91F12AE45C),
 204    make_floatx80_init(0x3FFF, 0xD4F35AABCFEDFA20),
 205    make_floatx80_init(0x3FFF, 0xD744FCCAD69D6AF4),
 206    make_floatx80_init(0x3FFF, 0xD99D15C278AFD7B4),
 207    make_floatx80_init(0x3FFF, 0xDBFBB797DAF23754),
 208    make_floatx80_init(0x3FFF, 0xDE60F4825E0E9124),
 209    make_floatx80_init(0x3FFF, 0xE0CCDEEC2A94E110),
 210    make_floatx80_init(0x3FFF, 0xE33F8972BE8A5A50),
 211    make_floatx80_init(0x3FFF, 0xE5B906E77C8348A8),
 212    make_floatx80_init(0x3FFF, 0xE8396A503C4BDC68),
 213    make_floatx80_init(0x3FFF, 0xEAC0C6E7DD243930),
 214    make_floatx80_init(0x3FFF, 0xED4F301ED9942B84),
 215    make_floatx80_init(0x3FFF, 0xEFE4B99BDCDAF5CC),
 216    make_floatx80_init(0x3FFF, 0xF281773C59FFB138),
 217    make_floatx80_init(0x3FFF, 0xF5257D152486CC2C),
 218    make_floatx80_init(0x3FFF, 0xF7D0DF730AD13BB8),
 219    make_floatx80_init(0x3FFF, 0xFA83B2DB722A033C),
 220    make_floatx80_init(0x3FFF, 0xFD3E0C0CF486C174)
 221};
 222
 223static const float32 exp_tbl2[64] = {
 224    const_float32(0x00000000),
 225    const_float32(0x9F841A9B),
 226    const_float32(0x9FC1D5B9),
 227    const_float32(0xA0728369),
 228    const_float32(0x1FC5C95C),
 229    const_float32(0x1EE85C9F),
 230    const_float32(0x9FA20729),
 231    const_float32(0xA07BF9AF),
 232    const_float32(0xA0020DCF),
 233    const_float32(0x205A63DA),
 234    const_float32(0x1EB70051),
 235    const_float32(0x1F6EB029),
 236    const_float32(0xA0781494),
 237    const_float32(0x9EB319B0),
 238    const_float32(0x2017457D),
 239    const_float32(0x1F11D537),
 240    const_float32(0x9FB952DD),
 241    const_float32(0x1FE43087),
 242    const_float32(0x1FA2A818),
 243    const_float32(0x1FDE494D),
 244    const_float32(0x20504890),
 245    const_float32(0xA073691C),
 246    const_float32(0x1F9B7A05),
 247    const_float32(0xA0797126),
 248    const_float32(0xA071A140),
 249    const_float32(0x204F62DA),
 250    const_float32(0x1F283C4A),
 251    const_float32(0x9F9A7FDC),
 252    const_float32(0xA05B3FAC),
 253    const_float32(0x1FDF2610),
 254    const_float32(0x9F705F90),
 255    const_float32(0x201F678A),
 256    const_float32(0x1F32FB13),
 257    const_float32(0x20038B30),
 258    const_float32(0x200DC3CC),
 259    const_float32(0x9F8B2AE6),
 260    const_float32(0xA02BBF70),
 261    const_float32(0xA00BF518),
 262    const_float32(0xA041DD41),
 263    const_float32(0x9FDF137B),
 264    const_float32(0x201F1568),
 265    const_float32(0x1FC13A2E),
 266    const_float32(0xA03F8F03),
 267    const_float32(0x1FF4907D),
 268    const_float32(0x9E6E53E4),
 269    const_float32(0x1FD6D45C),
 270    const_float32(0xA076EDB9),
 271    const_float32(0x9FA6DE21),
 272    const_float32(0x1EE69A2F),
 273    const_float32(0x207F439F),
 274    const_float32(0x201EC207),
 275    const_float32(0x9E8BE175),
 276    const_float32(0x20032C4B),
 277    const_float32(0x2004DFF5),
 278    const_float32(0x1E72F47A),
 279    const_float32(0x1F722F22),
 280    const_float32(0xA017E945),
 281    const_float32(0x1F401A5B),
 282    const_float32(0x9FB9A9E3),
 283    const_float32(0x20744C05),
 284    const_float32(0x1F773A19),
 285    const_float32(0x1FFE90D5),
 286    const_float32(0xA041ED22),
 287    const_float32(0x1F853F3A),
 288};
 289
 290static const floatx80 exp2_tbl[64] = {
 291    make_floatx80_init(0x3FFF, 0x8000000000000000),
 292    make_floatx80_init(0x3FFF, 0x8164D1F3BC030773),
 293    make_floatx80_init(0x3FFF, 0x82CD8698AC2BA1D7),
 294    make_floatx80_init(0x3FFF, 0x843A28C3ACDE4046),
 295    make_floatx80_init(0x3FFF, 0x85AAC367CC487B15),
 296    make_floatx80_init(0x3FFF, 0x871F61969E8D1010),
 297    make_floatx80_init(0x3FFF, 0x88980E8092DA8527),
 298    make_floatx80_init(0x3FFF, 0x8A14D575496EFD9A),
 299    make_floatx80_init(0x3FFF, 0x8B95C1E3EA8BD6E7),
 300    make_floatx80_init(0x3FFF, 0x8D1ADF5B7E5BA9E6),
 301    make_floatx80_init(0x3FFF, 0x8EA4398B45CD53C0),
 302    make_floatx80_init(0x3FFF, 0x9031DC431466B1DC),
 303    make_floatx80_init(0x3FFF, 0x91C3D373AB11C336),
 304    make_floatx80_init(0x3FFF, 0x935A2B2F13E6E92C),
 305    make_floatx80_init(0x3FFF, 0x94F4EFA8FEF70961),
 306    make_floatx80_init(0x3FFF, 0x96942D3720185A00),
 307    make_floatx80_init(0x3FFF, 0x9837F0518DB8A96F),
 308    make_floatx80_init(0x3FFF, 0x99E0459320B7FA65),
 309    make_floatx80_init(0x3FFF, 0x9B8D39B9D54E5539),
 310    make_floatx80_init(0x3FFF, 0x9D3ED9A72CFFB751),
 311    make_floatx80_init(0x3FFF, 0x9EF5326091A111AE),
 312    make_floatx80_init(0x3FFF, 0xA0B0510FB9714FC2),
 313    make_floatx80_init(0x3FFF, 0xA27043030C496819),
 314    make_floatx80_init(0x3FFF, 0xA43515AE09E6809E),
 315    make_floatx80_init(0x3FFF, 0xA5FED6A9B15138EA),
 316    make_floatx80_init(0x3FFF, 0xA7CD93B4E965356A),
 317    make_floatx80_init(0x3FFF, 0xA9A15AB4EA7C0EF8),
 318    make_floatx80_init(0x3FFF, 0xAB7A39B5A93ED337),
 319    make_floatx80_init(0x3FFF, 0xAD583EEA42A14AC6),
 320    make_floatx80_init(0x3FFF, 0xAF3B78AD690A4375),
 321    make_floatx80_init(0x3FFF, 0xB123F581D2AC2590),
 322    make_floatx80_init(0x3FFF, 0xB311C412A9112489),
 323    make_floatx80_init(0x3FFF, 0xB504F333F9DE6484),
 324    make_floatx80_init(0x3FFF, 0xB6FD91E328D17791),
 325    make_floatx80_init(0x3FFF, 0xB8FBAF4762FB9EE9),
 326    make_floatx80_init(0x3FFF, 0xBAFF5AB2133E45FB),
 327    make_floatx80_init(0x3FFF, 0xBD08A39F580C36BF),
 328    make_floatx80_init(0x3FFF, 0xBF1799B67A731083),
 329    make_floatx80_init(0x3FFF, 0xC12C4CCA66709456),
 330    make_floatx80_init(0x3FFF, 0xC346CCDA24976407),
 331    make_floatx80_init(0x3FFF, 0xC5672A115506DADD),
 332    make_floatx80_init(0x3FFF, 0xC78D74C8ABB9B15D),
 333    make_floatx80_init(0x3FFF, 0xC9B9BD866E2F27A3),
 334    make_floatx80_init(0x3FFF, 0xCBEC14FEF2727C5D),
 335    make_floatx80_init(0x3FFF, 0xCE248C151F8480E4),
 336    make_floatx80_init(0x3FFF, 0xD06333DAEF2B2595),
 337    make_floatx80_init(0x3FFF, 0xD2A81D91F12AE45A),
 338    make_floatx80_init(0x3FFF, 0xD4F35AABCFEDFA1F),
 339    make_floatx80_init(0x3FFF, 0xD744FCCAD69D6AF4),
 340    make_floatx80_init(0x3FFF, 0xD99D15C278AFD7B6),
 341    make_floatx80_init(0x3FFF, 0xDBFBB797DAF23755),
 342    make_floatx80_init(0x3FFF, 0xDE60F4825E0E9124),
 343    make_floatx80_init(0x3FFF, 0xE0CCDEEC2A94E111),
 344    make_floatx80_init(0x3FFF, 0xE33F8972BE8A5A51),
 345    make_floatx80_init(0x3FFF, 0xE5B906E77C8348A8),
 346    make_floatx80_init(0x3FFF, 0xE8396A503C4BDC68),
 347    make_floatx80_init(0x3FFF, 0xEAC0C6E7DD24392F),
 348    make_floatx80_init(0x3FFF, 0xED4F301ED9942B84),
 349    make_floatx80_init(0x3FFF, 0xEFE4B99BDCDAF5CB),
 350    make_floatx80_init(0x3FFF, 0xF281773C59FFB13A),
 351    make_floatx80_init(0x3FFF, 0xF5257D152486CC2C),
 352    make_floatx80_init(0x3FFF, 0xF7D0DF730AD13BB9),
 353    make_floatx80_init(0x3FFF, 0xFA83B2DB722A033A),
 354    make_floatx80_init(0x3FFF, 0xFD3E0C0CF486C175)
 355};
 356
 357static const uint32_t exp2_tbl2[64] = {
 358    0x3F738000, 0x3FBEF7CA, 0x3FBDF8A9, 0x3FBCD7C9,
 359    0xBFBDE8DA, 0x3FBDE85C, 0x3FBEBBF1, 0x3FBB80CA,
 360    0xBFBA8373, 0xBFBE9670, 0x3FBDB700, 0x3FBEEEB0,
 361    0x3FBBFD6D, 0xBFBDB319, 0x3FBDBA2B, 0x3FBE91D5,
 362    0x3FBE8D5A, 0xBFBCDE7B, 0xBFBEBAAF, 0xBFBD86DA,
 363    0xBFBEBEDD, 0x3FBCC96E, 0xBFBEC90B, 0x3FBBD1DB,
 364    0x3FBCE5EB, 0xBFBEC274, 0x3FBEA83C, 0x3FBECB00,
 365    0x3FBE9301, 0xBFBD8367, 0xBFBEF05F, 0x3FBDFB3C,
 366    0x3FBEB2FB, 0x3FBAE2CB, 0x3FBCDC3C, 0x3FBEE9AA,
 367    0xBFBEAEFD, 0xBFBCBF51, 0x3FBEF88A, 0x3FBD83B2,
 368    0x3FBDF8AB, 0xBFBDFB17, 0xBFBEFE3C, 0xBFBBB6F8,
 369    0xBFBCEE53, 0xBFBDA4AE, 0x3FBC9124, 0x3FBEB243,
 370    0x3FBDE69A, 0xBFB8BC61, 0x3FBDF610, 0xBFBD8BE1,
 371    0x3FBACB12, 0x3FBB9BFE, 0x3FBCF2F4, 0x3FBEF22F,
 372    0xBFBDBF4A, 0x3FBEC01A, 0x3FBE8CAC, 0xBFBCBB3F,
 373    0x3FBEF73A, 0xBFB8B795, 0x3FBEF84B, 0xBFBEF581
 374};
 375
 376static const floatx80 pi_tbl[65] = {
 377    make_floatx80_init(0xC004, 0xC90FDAA22168C235),
 378    make_floatx80_init(0xC004, 0xC2C75BCD105D7C23),
 379    make_floatx80_init(0xC004, 0xBC7EDCF7FF523611),
 380    make_floatx80_init(0xC004, 0xB6365E22EE46F000),
 381    make_floatx80_init(0xC004, 0xAFEDDF4DDD3BA9EE),
 382    make_floatx80_init(0xC004, 0xA9A56078CC3063DD),
 383    make_floatx80_init(0xC004, 0xA35CE1A3BB251DCB),
 384    make_floatx80_init(0xC004, 0x9D1462CEAA19D7B9),
 385    make_floatx80_init(0xC004, 0x96CBE3F9990E91A8),
 386    make_floatx80_init(0xC004, 0x9083652488034B96),
 387    make_floatx80_init(0xC004, 0x8A3AE64F76F80584),
 388    make_floatx80_init(0xC004, 0x83F2677A65ECBF73),
 389    make_floatx80_init(0xC003, 0xFB53D14AA9C2F2C2),
 390    make_floatx80_init(0xC003, 0xEEC2D3A087AC669F),
 391    make_floatx80_init(0xC003, 0xE231D5F66595DA7B),
 392    make_floatx80_init(0xC003, 0xD5A0D84C437F4E58),
 393    make_floatx80_init(0xC003, 0xC90FDAA22168C235),
 394    make_floatx80_init(0xC003, 0xBC7EDCF7FF523611),
 395    make_floatx80_init(0xC003, 0xAFEDDF4DDD3BA9EE),
 396    make_floatx80_init(0xC003, 0xA35CE1A3BB251DCB),
 397    make_floatx80_init(0xC003, 0x96CBE3F9990E91A8),
 398    make_floatx80_init(0xC003, 0x8A3AE64F76F80584),
 399    make_floatx80_init(0xC002, 0xFB53D14AA9C2F2C2),
 400    make_floatx80_init(0xC002, 0xE231D5F66595DA7B),
 401    make_floatx80_init(0xC002, 0xC90FDAA22168C235),
 402    make_floatx80_init(0xC002, 0xAFEDDF4DDD3BA9EE),
 403    make_floatx80_init(0xC002, 0x96CBE3F9990E91A8),
 404    make_floatx80_init(0xC001, 0xFB53D14AA9C2F2C2),
 405    make_floatx80_init(0xC001, 0xC90FDAA22168C235),
 406    make_floatx80_init(0xC001, 0x96CBE3F9990E91A8),
 407    make_floatx80_init(0xC000, 0xC90FDAA22168C235),
 408    make_floatx80_init(0xBFFF, 0xC90FDAA22168C235),
 409    make_floatx80_init(0x0000, 0x0000000000000000),
 410    make_floatx80_init(0x3FFF, 0xC90FDAA22168C235),
 411    make_floatx80_init(0x4000, 0xC90FDAA22168C235),
 412    make_floatx80_init(0x4001, 0x96CBE3F9990E91A8),
 413    make_floatx80_init(0x4001, 0xC90FDAA22168C235),
 414    make_floatx80_init(0x4001, 0xFB53D14AA9C2F2C2),
 415    make_floatx80_init(0x4002, 0x96CBE3F9990E91A8),
 416    make_floatx80_init(0x4002, 0xAFEDDF4DDD3BA9EE),
 417    make_floatx80_init(0x4002, 0xC90FDAA22168C235),
 418    make_floatx80_init(0x4002, 0xE231D5F66595DA7B),
 419    make_floatx80_init(0x4002, 0xFB53D14AA9C2F2C2),
 420    make_floatx80_init(0x4003, 0x8A3AE64F76F80584),
 421    make_floatx80_init(0x4003, 0x96CBE3F9990E91A8),
 422    make_floatx80_init(0x4003, 0xA35CE1A3BB251DCB),
 423    make_floatx80_init(0x4003, 0xAFEDDF4DDD3BA9EE),
 424    make_floatx80_init(0x4003, 0xBC7EDCF7FF523611),
 425    make_floatx80_init(0x4003, 0xC90FDAA22168C235),
 426    make_floatx80_init(0x4003, 0xD5A0D84C437F4E58),
 427    make_floatx80_init(0x4003, 0xE231D5F66595DA7B),
 428    make_floatx80_init(0x4003, 0xEEC2D3A087AC669F),
 429    make_floatx80_init(0x4003, 0xFB53D14AA9C2F2C2),
 430    make_floatx80_init(0x4004, 0x83F2677A65ECBF73),
 431    make_floatx80_init(0x4004, 0x8A3AE64F76F80584),
 432    make_floatx80_init(0x4004, 0x9083652488034B96),
 433    make_floatx80_init(0x4004, 0x96CBE3F9990E91A8),
 434    make_floatx80_init(0x4004, 0x9D1462CEAA19D7B9),
 435    make_floatx80_init(0x4004, 0xA35CE1A3BB251DCB),
 436    make_floatx80_init(0x4004, 0xA9A56078CC3063DD),
 437    make_floatx80_init(0x4004, 0xAFEDDF4DDD3BA9EE),
 438    make_floatx80_init(0x4004, 0xB6365E22EE46F000),
 439    make_floatx80_init(0x4004, 0xBC7EDCF7FF523611),
 440    make_floatx80_init(0x4004, 0xC2C75BCD105D7C23),
 441    make_floatx80_init(0x4004, 0xC90FDAA22168C235)
 442};
 443
 444static const float32 pi_tbl2[65] = {
 445    const_float32(0x21800000),
 446    const_float32(0xA0D00000),
 447    const_float32(0xA1E80000),
 448    const_float32(0x21480000),
 449    const_float32(0xA1200000),
 450    const_float32(0x21FC0000),
 451    const_float32(0x21100000),
 452    const_float32(0xA1580000),
 453    const_float32(0x21E00000),
 454    const_float32(0x20B00000),
 455    const_float32(0xA1880000),
 456    const_float32(0x21C40000),
 457    const_float32(0x20000000),
 458    const_float32(0x21380000),
 459    const_float32(0xA1300000),
 460    const_float32(0x9FC00000),
 461    const_float32(0x21000000),
 462    const_float32(0xA1680000),
 463    const_float32(0xA0A00000),
 464    const_float32(0x20900000),
 465    const_float32(0x21600000),
 466    const_float32(0xA1080000),
 467    const_float32(0x1F800000),
 468    const_float32(0xA0B00000),
 469    const_float32(0x20800000),
 470    const_float32(0xA0200000),
 471    const_float32(0x20E00000),
 472    const_float32(0x1F000000),
 473    const_float32(0x20000000),
 474    const_float32(0x20600000),
 475    const_float32(0x1F800000),
 476    const_float32(0x1F000000),
 477    const_float32(0x00000000),
 478    const_float32(0x9F000000),
 479    const_float32(0x9F800000),
 480    const_float32(0xA0600000),
 481    const_float32(0xA0000000),
 482    const_float32(0x9F000000),
 483    const_float32(0xA0E00000),
 484    const_float32(0x20200000),
 485    const_float32(0xA0800000),
 486    const_float32(0x20B00000),
 487    const_float32(0x9F800000),
 488    const_float32(0x21080000),
 489    const_float32(0xA1600000),
 490    const_float32(0xA0900000),
 491    const_float32(0x20A00000),
 492    const_float32(0x21680000),
 493    const_float32(0xA1000000),
 494    const_float32(0x1FC00000),
 495    const_float32(0x21300000),
 496    const_float32(0xA1380000),
 497    const_float32(0xA0000000),
 498    const_float32(0xA1C40000),
 499    const_float32(0x21880000),
 500    const_float32(0xA0B00000),
 501    const_float32(0xA1E00000),
 502    const_float32(0x21580000),
 503    const_float32(0xA1100000),
 504    const_float32(0xA1FC0000),
 505    const_float32(0x21200000),
 506    const_float32(0xA1480000),
 507    const_float32(0x21E80000),
 508    const_float32(0x20D00000),
 509    const_float32(0xA1800000),
 510};
 511
 512static const floatx80 atan_tbl[128] = {
 513    make_floatx80_init(0x3FFB, 0x83D152C5060B7A51),
 514    make_floatx80_init(0x3FFB, 0x8BC8544565498B8B),
 515    make_floatx80_init(0x3FFB, 0x93BE406017626B0D),
 516    make_floatx80_init(0x3FFB, 0x9BB3078D35AEC202),
 517    make_floatx80_init(0x3FFB, 0xA3A69A525DDCE7DE),
 518    make_floatx80_init(0x3FFB, 0xAB98E94362765619),
 519    make_floatx80_init(0x3FFB, 0xB389E502F9C59862),
 520    make_floatx80_init(0x3FFB, 0xBB797E436B09E6FB),
 521    make_floatx80_init(0x3FFB, 0xC367A5C739E5F446),
 522    make_floatx80_init(0x3FFB, 0xCB544C61CFF7D5C6),
 523    make_floatx80_init(0x3FFB, 0xD33F62F82488533E),
 524    make_floatx80_init(0x3FFB, 0xDB28DA8162404C77),
 525    make_floatx80_init(0x3FFB, 0xE310A4078AD34F18),
 526    make_floatx80_init(0x3FFB, 0xEAF6B0A8188EE1EB),
 527    make_floatx80_init(0x3FFB, 0xF2DAF1949DBE79D5),
 528    make_floatx80_init(0x3FFB, 0xFABD581361D47E3E),
 529    make_floatx80_init(0x3FFC, 0x8346AC210959ECC4),
 530    make_floatx80_init(0x3FFC, 0x8B232A08304282D8),
 531    make_floatx80_init(0x3FFC, 0x92FB70B8D29AE2F9),
 532    make_floatx80_init(0x3FFC, 0x9ACF476F5CCD1CB4),
 533    make_floatx80_init(0x3FFC, 0xA29E76304954F23F),
 534    make_floatx80_init(0x3FFC, 0xAA68C5D08AB85230),
 535    make_floatx80_init(0x3FFC, 0xB22DFFFD9D539F83),
 536    make_floatx80_init(0x3FFC, 0xB9EDEF453E900EA5),
 537    make_floatx80_init(0x3FFC, 0xC1A85F1CC75E3EA5),
 538    make_floatx80_init(0x3FFC, 0xC95D1BE828138DE6),
 539    make_floatx80_init(0x3FFC, 0xD10BF300840D2DE4),
 540    make_floatx80_init(0x3FFC, 0xD8B4B2BA6BC05E7A),
 541    make_floatx80_init(0x3FFC, 0xE0572A6BB42335F6),
 542    make_floatx80_init(0x3FFC, 0xE7F32A70EA9CAA8F),
 543    make_floatx80_init(0x3FFC, 0xEF88843264ECEFAA),
 544    make_floatx80_init(0x3FFC, 0xF7170A28ECC06666),
 545    make_floatx80_init(0x3FFD, 0x812FD288332DAD32),
 546    make_floatx80_init(0x3FFD, 0x88A8D1B1218E4D64),
 547    make_floatx80_init(0x3FFD, 0x9012AB3F23E4AEE8),
 548    make_floatx80_init(0x3FFD, 0x976CC3D411E7F1B9),
 549    make_floatx80_init(0x3FFD, 0x9EB689493889A227),
 550    make_floatx80_init(0x3FFD, 0xA5EF72C34487361B),
 551    make_floatx80_init(0x3FFD, 0xAD1700BAF07A7227),
 552    make_floatx80_init(0x3FFD, 0xB42CBCFAFD37EFB7),
 553    make_floatx80_init(0x3FFD, 0xBB303A940BA80F89),
 554    make_floatx80_init(0x3FFD, 0xC22115C6FCAEBBAF),
 555    make_floatx80_init(0x3FFD, 0xC8FEF3E686331221),
 556    make_floatx80_init(0x3FFD, 0xCFC98330B4000C70),
 557    make_floatx80_init(0x3FFD, 0xD6807AA1102C5BF9),
 558    make_floatx80_init(0x3FFD, 0xDD2399BC31252AA3),
 559    make_floatx80_init(0x3FFD, 0xE3B2A8556B8FC517),
 560    make_floatx80_init(0x3FFD, 0xEA2D764F64315989),
 561    make_floatx80_init(0x3FFD, 0xF3BF5BF8BAD1A21D),
 562    make_floatx80_init(0x3FFE, 0x801CE39E0D205C9A),
 563    make_floatx80_init(0x3FFE, 0x8630A2DADA1ED066),
 564    make_floatx80_init(0x3FFE, 0x8C1AD445F3E09B8C),
 565    make_floatx80_init(0x3FFE, 0x91DB8F1664F350E2),
 566    make_floatx80_init(0x3FFE, 0x97731420365E538C),
 567    make_floatx80_init(0x3FFE, 0x9CE1C8E6A0B8CDBA),
 568    make_floatx80_init(0x3FFE, 0xA22832DBCADAAE09),
 569    make_floatx80_init(0x3FFE, 0xA746F2DDB7602294),
 570    make_floatx80_init(0x3FFE, 0xAC3EC0FB997DD6A2),
 571    make_floatx80_init(0x3FFE, 0xB110688AEBDC6F6A),
 572    make_floatx80_init(0x3FFE, 0xB5BCC49059ECC4B0),
 573    make_floatx80_init(0x3FFE, 0xBA44BC7DD470782F),
 574    make_floatx80_init(0x3FFE, 0xBEA94144FD049AAC),
 575    make_floatx80_init(0x3FFE, 0xC2EB4ABB661628B6),
 576    make_floatx80_init(0x3FFE, 0xC70BD54CE602EE14),
 577    make_floatx80_init(0x3FFE, 0xCD000549ADEC7159),
 578    make_floatx80_init(0x3FFE, 0xD48457D2D8EA4EA3),
 579    make_floatx80_init(0x3FFE, 0xDB948DA712DECE3B),
 580    make_floatx80_init(0x3FFE, 0xE23855F969E8096A),
 581    make_floatx80_init(0x3FFE, 0xE8771129C4353259),
 582    make_floatx80_init(0x3FFE, 0xEE57C16E0D379C0D),
 583    make_floatx80_init(0x3FFE, 0xF3E10211A87C3779),
 584    make_floatx80_init(0x3FFE, 0xF919039D758B8D41),
 585    make_floatx80_init(0x3FFE, 0xFE058B8F64935FB3),
 586    make_floatx80_init(0x3FFF, 0x8155FB497B685D04),
 587    make_floatx80_init(0x3FFF, 0x83889E3549D108E1),
 588    make_floatx80_init(0x3FFF, 0x859CFA76511D724B),
 589    make_floatx80_init(0x3FFF, 0x87952ECFFF8131E7),
 590    make_floatx80_init(0x3FFF, 0x89732FD19557641B),
 591    make_floatx80_init(0x3FFF, 0x8B38CAD101932A35),
 592    make_floatx80_init(0x3FFF, 0x8CE7A8D8301EE6B5),
 593    make_floatx80_init(0x3FFF, 0x8F46A39E2EAE5281),
 594    make_floatx80_init(0x3FFF, 0x922DA7D791888487),
 595    make_floatx80_init(0x3FFF, 0x94D19FCBDEDF5241),
 596    make_floatx80_init(0x3FFF, 0x973AB94419D2A08B),
 597    make_floatx80_init(0x3FFF, 0x996FF00E08E10B96),
 598    make_floatx80_init(0x3FFF, 0x9B773F9512321DA7),
 599    make_floatx80_init(0x3FFF, 0x9D55CC320F935624),
 600    make_floatx80_init(0x3FFF, 0x9F100575006CC571),
 601    make_floatx80_init(0x3FFF, 0xA0A9C290D97CC06C),
 602    make_floatx80_init(0x3FFF, 0xA22659EBEBC0630A),
 603    make_floatx80_init(0x3FFF, 0xA388B4AFF6EF0EC9),
 604    make_floatx80_init(0x3FFF, 0xA4D35F1061D292C4),
 605    make_floatx80_init(0x3FFF, 0xA60895DCFBE3187E),
 606    make_floatx80_init(0x3FFF, 0xA72A51DC7367BEAC),
 607    make_floatx80_init(0x3FFF, 0xA83A51530956168F),
 608    make_floatx80_init(0x3FFF, 0xA93A20077539546E),
 609    make_floatx80_init(0x3FFF, 0xAA9E7245023B2605),
 610    make_floatx80_init(0x3FFF, 0xAC4C84BA6FE4D58F),
 611    make_floatx80_init(0x3FFF, 0xADCE4A4A606B9712),
 612    make_floatx80_init(0x3FFF, 0xAF2A2DCD8D263C9C),
 613    make_floatx80_init(0x3FFF, 0xB0656F81F22265C7),
 614    make_floatx80_init(0x3FFF, 0xB18465150F71496A),
 615    make_floatx80_init(0x3FFF, 0xB28AAA156F9ADA35),
 616    make_floatx80_init(0x3FFF, 0xB37B44FF3766B895),
 617    make_floatx80_init(0x3FFF, 0xB458C3DCE9630433),
 618    make_floatx80_init(0x3FFF, 0xB525529D562246BD),
 619    make_floatx80_init(0x3FFF, 0xB5E2CCA95F9D88CC),
 620    make_floatx80_init(0x3FFF, 0xB692CADA7ACA1ADA),
 621    make_floatx80_init(0x3FFF, 0xB736AEA7A6925838),
 622    make_floatx80_init(0x3FFF, 0xB7CFAB287E9F7B36),
 623    make_floatx80_init(0x3FFF, 0xB85ECC66CB219835),
 624    make_floatx80_init(0x3FFF, 0xB8E4FD5A20A593DA),
 625    make_floatx80_init(0x3FFF, 0xB99F41F64AFF9BB5),
 626    make_floatx80_init(0x3FFF, 0xBA7F1E17842BBE7B),
 627    make_floatx80_init(0x3FFF, 0xBB4712857637E17D),
 628    make_floatx80_init(0x3FFF, 0xBBFABE8A4788DF6F),
 629    make_floatx80_init(0x3FFF, 0xBC9D0FAD2B689D79),
 630    make_floatx80_init(0x3FFF, 0xBD306A39471ECD86),
 631    make_floatx80_init(0x3FFF, 0xBDB6C731856AF18A),
 632    make_floatx80_init(0x3FFF, 0xBE31CAC502E80D70),
 633    make_floatx80_init(0x3FFF, 0xBEA2D55CE33194E2),
 634    make_floatx80_init(0x3FFF, 0xBF0B10B7C03128F0),
 635    make_floatx80_init(0x3FFF, 0xBF6B7A18DACB778D),
 636    make_floatx80_init(0x3FFF, 0xBFC4EA4663FA18F6),
 637    make_floatx80_init(0x3FFF, 0xC0181BDE8B89A454),
 638    make_floatx80_init(0x3FFF, 0xC065B066CFBF6439),
 639    make_floatx80_init(0x3FFF, 0xC0AE345F56340AE6),
 640    make_floatx80_init(0x3FFF, 0xC0F222919CB9E6A7)
 641};
 642#endif
 643