add nbsd_endian

git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@551 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
NishiOwO
2025-11-01 08:19:50 +00:00
parent 22e75cc25d
commit 5981ab9f8f
7 changed files with 54 additions and 18 deletions

View File

@@ -65,12 +65,13 @@ clean:
del /f /q src\math\math.obj del /f /q src\math\math.obj
del /f /q src\math\mmx.obj del /f /q src\math\mmx.obj
del /f /q src\math\nbsd_pow.obj del /f /q src\math\nbsd_pow.obj
del /f /q src\math\nbsd_endian.obj
del /f /q src\color_picker\color_picker.obj del /f /q src\color_picker\color_picker.obj
del /f /q src\backend\gdi.obj del /f /q src\backend\gdi.obj
del /f /q src\Mw.dll del /f /q src\Mw.dll
src\Mw.dll: src\core.obj src\text.obj src\string.obj src\draw.obj src\default.obj src\filechooser.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj src\directory.obj src\messagebox.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\math\default.obj src\math\math.obj src\math\mmx.obj src\math\nbsd_pow.obj src\color_picker\color_picker.obj src\backend\gdi.obj src\Mw.dll: src\core.obj src\text.obj src\string.obj src\draw.obj src\default.obj src\filechooser.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj src\directory.obj src\messagebox.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\math\default.obj src\math\math.obj src\math\mmx.obj src\math\nbsd_pow.obj src\math\nbsd_endian.obj src\color_picker\color_picker.obj src\backend\gdi.obj
$(LD) $(LDFLAGS) -e$@ src\core.obj src\text.obj src\string.obj src\draw.obj src\default.obj src\filechooser.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj src\directory.obj src\messagebox.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\math\default.obj src\math\math.obj src\math\mmx.obj src\math\nbsd_pow.obj src\color_picker\color_picker.obj src\backend\gdi.obj -lopengl32.lib -lgdi32.lib -luser32.lib $(LD) $(LDFLAGS) -e$@ src\core.obj src\text.obj src\string.obj src\draw.obj src\default.obj src\filechooser.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj src\directory.obj src\messagebox.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\math\default.obj src\math\math.obj src\math\mmx.obj src\math\nbsd_pow.obj src\math\nbsd_endian.obj src\color_picker\color_picker.obj src\backend\gdi.obj -lopengl32.lib -lgdi32.lib -luser32.lib
implib src\Mw.lib src\Mw.dll implib src\Mw.lib src\Mw.dll
.c.obj: .c.obj:

View File

@@ -65,12 +65,13 @@ clean:
del /f /q src\math\math.obj del /f /q src\math\math.obj
del /f /q src\math\mmx.obj del /f /q src\math\mmx.obj
del /f /q src\math\nbsd_pow.obj del /f /q src\math\nbsd_pow.obj
del /f /q src\math\nbsd_endian.obj
del /f /q src\color_picker\color_picker.obj del /f /q src\color_picker\color_picker.obj
del /f /q src\backend\gdi.obj del /f /q src\backend\gdi.obj
del /f /q src\Mw.dll del /f /q src\Mw.dll
src\Mw.dll: src\core.obj src\text.obj src\string.obj src\draw.obj src\default.obj src\filechooser.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj src\directory.obj src\messagebox.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\math\default.obj src\math\math.obj src\math\mmx.obj src\math\nbsd_pow.obj src\color_picker\color_picker.obj src\backend\gdi.obj src\Mw.dll: src\core.obj src\text.obj src\string.obj src\draw.obj src\default.obj src\filechooser.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj src\directory.obj src\messagebox.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\math\default.obj src\math\math.obj src\math\mmx.obj src\math\nbsd_pow.obj src\math\nbsd_endian.obj src\color_picker\color_picker.obj src\backend\gdi.obj
$(LD) $(LDFLAGS) /OUT:$@ src\core.obj src\text.obj src\string.obj src\draw.obj src\default.obj src\filechooser.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj src\directory.obj src\messagebox.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\math\default.obj src\math\math.obj src\math\mmx.obj src\math\nbsd_pow.obj src\color_picker\color_picker.obj src\backend\gdi.obj opengl32.lib gdi32.lib user32.lib $(LD) $(LDFLAGS) /OUT:$@ src\core.obj src\text.obj src\string.obj src\draw.obj src\default.obj src\filechooser.obj src\lowlevel.obj src\error.obj src\unicode.obj src\color.obj src\directory.obj src\messagebox.obj external\stb_ds.obj external\stb_image.obj external\stb_truetype.obj src\icon\info.obj src\icon\note.obj src\icon\warning.obj src\icon\error.obj src\icon\news.obj src\icon\directory.obj src\icon\file.obj src\icon\back.obj src\icon\forward.obj src\icon\up.obj src\icon\computer.obj src\icon\search.obj src\icon\down.obj src\icon\left.obj src\icon\right.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\cursor\hidden.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\viewport.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\listbox.obj src\widget\numberentry.obj src\widget\progressbar.obj src\widget\radiobox.obj src\font\boldttf.obj src\font\ttf.obj src\font\boldfont.obj src\font\font.obj src\math\default.obj src\math\math.obj src\math\mmx.obj src\math\nbsd_pow.obj src\math\nbsd_endian.obj src\color_picker\color_picker.obj src\backend\gdi.obj opengl32.lib gdi32.lib user32.lib
.c.obj: .c.obj:

View File

@@ -64,12 +64,13 @@ clean: .SYMBOLIC
%erase src/math/math.obj %erase src/math/math.obj
%erase src/math/mmx.obj %erase src/math/mmx.obj
%erase src/math/nbsd_pow.obj %erase src/math/nbsd_pow.obj
%erase src/math/nbsd_endian.obj
%erase src/color_picker/color_picker.obj %erase src/color_picker/color_picker.obj
%erase src/backend/gdi.obj %erase src/backend/gdi.obj
%erase src/Mw.dll %erase src/Mw.dll
src/Mw.dll: src/core.obj src/text.obj src/string.obj src/draw.obj src/default.obj src/filechooser.obj src/lowlevel.obj src/error.obj src/unicode.obj src/color.obj src/directory.obj src/messagebox.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/icon/info.obj src/icon/note.obj src/icon/warning.obj src/icon/error.obj src/icon/news.obj src/icon/directory.obj src/icon/file.obj src/icon/back.obj src/icon/forward.obj src/icon/up.obj src/icon/computer.obj src/icon/search.obj src/icon/down.obj src/icon/left.obj src/icon/right.obj src/cursor/default.obj src/cursor/cross.obj src/cursor/text.obj src/cursor/hidden.obj src/widget/button.obj src/widget/frame.obj src/widget/opengl.obj src/widget/window.obj src/widget/menu.obj src/widget/entry.obj src/widget/submenu.obj src/widget/viewport.obj src/widget/image.obj src/widget/scrollbar.obj src/widget/checkbox.obj src/widget/label.obj src/widget/listbox.obj src/widget/numberentry.obj src/widget/progressbar.obj src/widget/radiobox.obj src/font/boldttf.obj src/font/ttf.obj src/font/boldfont.obj src/font/font.obj src/math/default.obj src/math/math.obj src/math/mmx.obj src/math/nbsd_pow.obj src/color_picker/color_picker.obj src/backend/gdi.obj src/Mw.dll: src/core.obj src/text.obj src/string.obj src/draw.obj src/default.obj src/filechooser.obj src/lowlevel.obj src/error.obj src/unicode.obj src/color.obj src/directory.obj src/messagebox.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/icon/info.obj src/icon/note.obj src/icon/warning.obj src/icon/error.obj src/icon/news.obj src/icon/directory.obj src/icon/file.obj src/icon/back.obj src/icon/forward.obj src/icon/up.obj src/icon/computer.obj src/icon/search.obj src/icon/down.obj src/icon/left.obj src/icon/right.obj src/cursor/default.obj src/cursor/cross.obj src/cursor/text.obj src/cursor/hidden.obj src/widget/button.obj src/widget/frame.obj src/widget/opengl.obj src/widget/window.obj src/widget/menu.obj src/widget/entry.obj src/widget/submenu.obj src/widget/viewport.obj src/widget/image.obj src/widget/scrollbar.obj src/widget/checkbox.obj src/widget/label.obj src/widget/listbox.obj src/widget/numberentry.obj src/widget/progressbar.obj src/widget/radiobox.obj src/font/boldttf.obj src/font/ttf.obj src/font/boldfont.obj src/font/font.obj src/math/default.obj src/math/math.obj src/math/mmx.obj src/math/nbsd_pow.obj src/math/nbsd_endian.obj src/color_picker/color_picker.obj src/backend/gdi.obj
$(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file src/core.obj file src/text.obj file src/string.obj file src/draw.obj file src/default.obj file src/filechooser.obj file src/lowlevel.obj file src/error.obj file src/unicode.obj file src/color.obj file src/directory.obj file src/messagebox.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/icon/info.obj file src/icon/note.obj file src/icon/warning.obj file src/icon/error.obj file src/icon/news.obj file src/icon/directory.obj file src/icon/file.obj file src/icon/back.obj file src/icon/forward.obj file src/icon/up.obj file src/icon/computer.obj file src/icon/search.obj file src/icon/down.obj file src/icon/left.obj file src/icon/right.obj file src/cursor/default.obj file src/cursor/cross.obj file src/cursor/text.obj file src/cursor/hidden.obj file src/widget/button.obj file src/widget/frame.obj file src/widget/opengl.obj file src/widget/window.obj file src/widget/menu.obj file src/widget/entry.obj file src/widget/submenu.obj file src/widget/viewport.obj file src/widget/image.obj file src/widget/scrollbar.obj file src/widget/checkbox.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/numberentry.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/font/boldttf.obj file src/font/ttf.obj file src/font/boldfont.obj file src/font/font.obj file src/math/default.obj file src/math/math.obj file src/math/mmx.obj file src/math/nbsd_pow.obj file src/color_picker/color_picker.obj file src/backend/gdi.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib $(LD) $(LDFLAGS) option implib=src/Mw.lib name $@ file src/core.obj file src/text.obj file src/string.obj file src/draw.obj file src/default.obj file src/filechooser.obj file src/lowlevel.obj file src/error.obj file src/unicode.obj file src/color.obj file src/directory.obj file src/messagebox.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/icon/info.obj file src/icon/note.obj file src/icon/warning.obj file src/icon/error.obj file src/icon/news.obj file src/icon/directory.obj file src/icon/file.obj file src/icon/back.obj file src/icon/forward.obj file src/icon/up.obj file src/icon/computer.obj file src/icon/search.obj file src/icon/down.obj file src/icon/left.obj file src/icon/right.obj file src/cursor/default.obj file src/cursor/cross.obj file src/cursor/text.obj file src/cursor/hidden.obj file src/widget/button.obj file src/widget/frame.obj file src/widget/opengl.obj file src/widget/window.obj file src/widget/menu.obj file src/widget/entry.obj file src/widget/submenu.obj file src/widget/viewport.obj file src/widget/image.obj file src/widget/scrollbar.obj file src/widget/checkbox.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/numberentry.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/font/boldttf.obj file src/font/ttf.obj file src/font/boldfont.obj file src/font/font.obj file src/math/default.obj file src/math/math.obj file src/math/mmx.obj file src/math/nbsd_pow.obj file src/math/nbsd_endian.obj file src/color_picker/color_picker.obj file src/backend/gdi.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib
@@ -189,6 +190,8 @@ src/math/mmx.obj: src/math/mmx.c
$(CC) $(CFLAGS) -fo=$@ $< $(CC) $(CFLAGS) -fo=$@ $<
src/math/nbsd_pow.obj: src/math/nbsd_pow.c src/math/nbsd_pow.obj: src/math/nbsd_pow.c
$(CC) $(CFLAGS) -fo=$@ $< $(CC) $(CFLAGS) -fo=$@ $<
src/math/nbsd_endian.obj: src/math/nbsd_endian.c
$(CC) $(CFLAGS) -fo=$@ $<
src/color_picker/color_picker.obj: src/color_picker/color_picker.c src/color_picker/color_picker.obj: src/color_picker/color_picker.c
$(CC) $(CFLAGS) -fo=$@ $< $(CC) $(CFLAGS) -fo=$@ $<
src/backend/gdi.obj: src/backend/gdi.c src/backend/gdi.obj: src/backend/gdi.c

View File

@@ -1,3 +1,3 @@
# $Id$ # $Id$
L_OBJS += src/math/default.o src/math/math.o src/math/mmx.o L_OBJS += src/math/default.o src/math/math.o src/math/mmx.o
L_OBJS += src/math/nbsd_pow.o L_OBJS += src/math/nbsd_pow.o src/math/nbsd_endian.o

View File

@@ -33,6 +33,5 @@ typedef struct _MwLLMathVTable MwLLMathVTable;
MwLLMathVTable** default_multi_table(void); MwLLMathVTable** default_multi_table(void);
void mmx_apply(MwLLMathVTable**); void mmx_apply(MwLLMathVTable**);
double nbsd_pow(double a, double b);
#endif #endif

16
src/math/nbsd_endian.c Normal file
View File

@@ -0,0 +1,16 @@
/* $Id$ */
#include "nbsd_math.h"
static char endian = 0;
char nbsd_endian(void) {
unsigned short n = 1;
if(endian != 0) return endian;
if(1 == *(unsigned char*)&n) {
endian = 'L';
} else {
endian = 'B';
}
return endian;
}

View File

@@ -39,8 +39,13 @@ typedef union _ieee_double_shape_type {
do { \ do { \
ieee_double_shape_type ew_u; \ ieee_double_shape_type ew_u; \
ew_u.value = (d); \ ew_u.value = (d); \
(ix0) = ew_u.parts.msw; \ if(nbsd_endian() == 'L') { \
(ix1) = ew_u.parts.lsw; \ (ix0) = ew_u.parts.msw; \
(ix1) = ew_u.parts.lsw; \
} else { \
(ix0) = ew_u.parts.lsw; \
(ix1) = ew_u.parts.msw; \
} \
} while(0) } while(0)
/* Get the more significant 32-bit integer from a double. */ /* Get the more significant 32-bit integer from a double. */
@@ -49,7 +54,7 @@ typedef union _ieee_double_shape_type {
do { \ do { \
ieee_double_shape_type gh_u; \ ieee_double_shape_type gh_u; \
gh_u.value = (d); \ gh_u.value = (d); \
(i) = gh_u.parts.msw; \ (i) = nbsd_endian() == 'L' ? gh_u.parts.msw : gh_u.parts.lsw; \
} while(0) } while(0)
/* Get the less significant 32-bit integer from a double. */ /* Get the less significant 32-bit integer from a double. */
@@ -58,7 +63,7 @@ typedef union _ieee_double_shape_type {
do { \ do { \
ieee_double_shape_type gl_u; \ ieee_double_shape_type gl_u; \
gl_u.value = (d); \ gl_u.value = (d); \
(i) = gl_u.parts.lsw; \ (i) = nbsd_endian() == 'L' ? gl_u.parts.lsw : gl_u.parts.msw; \
} while(0) } while(0)
/* Set the more significant 32 bits of a double from an integer. */ /* Set the more significant 32 bits of a double from an integer. */
@@ -66,9 +71,13 @@ typedef union _ieee_double_shape_type {
#define SET_HIGH_WORD(d, v) \ #define SET_HIGH_WORD(d, v) \
do { \ do { \
ieee_double_shape_type sh_u; \ ieee_double_shape_type sh_u; \
sh_u.value = (d); \ sh_u.value = (d); \
sh_u.parts.msw = (v); \ if(nbsd_endian() == 'L') { \
(d) = sh_u.value; \ sh_u.parts.msw = (v); \
} else { \
sh_u.parts.lsw = (v); \
} \
(d) = sh_u.value; \
} while(0) } while(0)
/* Set the less significant 32 bits of a double from an integer. */ /* Set the less significant 32 bits of a double from an integer. */
@@ -76,9 +85,16 @@ typedef union _ieee_double_shape_type {
#define SET_LOW_WORD(d, v) \ #define SET_LOW_WORD(d, v) \
do { \ do { \
ieee_double_shape_type sl_u; \ ieee_double_shape_type sl_u; \
sl_u.value = (d); \ sl_u.value = (d); \
sl_u.parts.lsw = (v); \ if(nbsd_endian() == 'L') { \
(d) = sl_u.value; \ sl_u.parts.lsw = (v); \
} else { \
sl_u.parts.msw = (v); \
} \
(d) = sl_u.value; \
} while(0) } while(0)
double nbsd_pow(double a, double b);
char nbsd_endian(void);
#endif #endif