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