18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci NetWinder Floating Point Emulator 48c2ecf20Sopenharmony_ci (c) Rebel.COM, 1998,1999 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci Direct questions, comments to Scott Bambrough <scottb@netwinder.org> 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci*/ 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#include "fpa11.h" 118c2ecf20Sopenharmony_ci#include "softfloat.h" 128c2ecf20Sopenharmony_ci#include "fpopcode.h" 138c2ecf20Sopenharmony_ci#include "fpsr.h" 148c2ecf20Sopenharmony_ci#include "fpmodule.h" 158c2ecf20Sopenharmony_ci#include "fpmodule.inl" 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci#ifdef CONFIG_FPE_NWFPE_XP 188c2ecf20Sopenharmony_ciconst floatx80 floatx80Constant[] = { 198c2ecf20Sopenharmony_ci { .high = 0x0000, .low = 0x0000000000000000ULL},/* extended 0.0 */ 208c2ecf20Sopenharmony_ci { .high = 0x3fff, .low = 0x8000000000000000ULL},/* extended 1.0 */ 218c2ecf20Sopenharmony_ci { .high = 0x4000, .low = 0x8000000000000000ULL},/* extended 2.0 */ 228c2ecf20Sopenharmony_ci { .high = 0x4000, .low = 0xc000000000000000ULL},/* extended 3.0 */ 238c2ecf20Sopenharmony_ci { .high = 0x4001, .low = 0x8000000000000000ULL},/* extended 4.0 */ 248c2ecf20Sopenharmony_ci { .high = 0x4001, .low = 0xa000000000000000ULL},/* extended 5.0 */ 258c2ecf20Sopenharmony_ci { .high = 0x3ffe, .low = 0x8000000000000000ULL},/* extended 0.5 */ 268c2ecf20Sopenharmony_ci { .high = 0x4002, .low = 0xa000000000000000ULL},/* extended 10.0 */ 278c2ecf20Sopenharmony_ci}; 288c2ecf20Sopenharmony_ci#endif 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ciconst float64 float64Constant[] = { 318c2ecf20Sopenharmony_ci 0x0000000000000000ULL, /* double 0.0 */ 328c2ecf20Sopenharmony_ci 0x3ff0000000000000ULL, /* double 1.0 */ 338c2ecf20Sopenharmony_ci 0x4000000000000000ULL, /* double 2.0 */ 348c2ecf20Sopenharmony_ci 0x4008000000000000ULL, /* double 3.0 */ 358c2ecf20Sopenharmony_ci 0x4010000000000000ULL, /* double 4.0 */ 368c2ecf20Sopenharmony_ci 0x4014000000000000ULL, /* double 5.0 */ 378c2ecf20Sopenharmony_ci 0x3fe0000000000000ULL, /* double 0.5 */ 388c2ecf20Sopenharmony_ci 0x4024000000000000ULL /* double 10.0 */ 398c2ecf20Sopenharmony_ci}; 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ciconst float32 float32Constant[] = { 428c2ecf20Sopenharmony_ci 0x00000000, /* single 0.0 */ 438c2ecf20Sopenharmony_ci 0x3f800000, /* single 1.0 */ 448c2ecf20Sopenharmony_ci 0x40000000, /* single 2.0 */ 458c2ecf20Sopenharmony_ci 0x40400000, /* single 3.0 */ 468c2ecf20Sopenharmony_ci 0x40800000, /* single 4.0 */ 478c2ecf20Sopenharmony_ci 0x40a00000, /* single 5.0 */ 488c2ecf20Sopenharmony_ci 0x3f000000, /* single 0.5 */ 498c2ecf20Sopenharmony_ci 0x41200000 /* single 10.0 */ 508c2ecf20Sopenharmony_ci}; 518c2ecf20Sopenharmony_ci 52