From 5981ab9f8fd41fb2f90774332a7c0f2b44ba27d8 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 1 Nov 2025 08:19:50 +0000 Subject: [PATCH] add nbsd_endian git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@551 b9cfdab3-6d41-4d17-bbe4-086880011989 --- BorMakefile | 5 +++-- NTMakefile | 5 +++-- WatMakefile | 7 +++++-- mk/math.mk | 2 +- src/math/math_internal.h | 1 - src/math/nbsd_endian.c | 16 ++++++++++++++++ src/math/nbsd_math.h | 36 ++++++++++++++++++++++++++---------- 7 files changed, 54 insertions(+), 18 deletions(-) create mode 100644 src/math/nbsd_endian.c diff --git a/BorMakefile b/BorMakefile index f0327227..f90ff2f6 100644 --- a/BorMakefile +++ b/BorMakefile @@ -65,12 +65,13 @@ clean: del /f /q src\math\math.obj del /f /q src\math\mmx.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\backend\gdi.obj 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 - $(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 +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\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 .c.obj: diff --git a/NTMakefile b/NTMakefile index b402e80f..9c9b0a29 100644 --- a/NTMakefile +++ b/NTMakefile @@ -65,12 +65,13 @@ clean: del /f /q src\math\math.obj del /f /q src\math\mmx.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\backend\gdi.obj 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 - $(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 +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\math\nbsd_endian.obj src\color_picker\color_picker.obj src\backend\gdi.obj opengl32.lib gdi32.lib user32.lib .c.obj: diff --git a/WatMakefile b/WatMakefile index e9097013..79704f16 100644 --- a/WatMakefile +++ b/WatMakefile @@ -64,12 +64,13 @@ clean: .SYMBOLIC %erase src/math/math.obj %erase src/math/mmx.obj %erase src/math/nbsd_pow.obj + %erase src/math/nbsd_endian.obj %erase src/color_picker/color_picker.obj %erase src/backend/gdi.obj %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 - $(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 +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/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=$@ $< src/math/nbsd_pow.obj: src/math/nbsd_pow.c $(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 $(CC) $(CFLAGS) -fo=$@ $< src/backend/gdi.obj: src/backend/gdi.c diff --git a/mk/math.mk b/mk/math.mk index 8443402c..2897c994 100644 --- a/mk/math.mk +++ b/mk/math.mk @@ -1,3 +1,3 @@ # $Id$ 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 diff --git a/src/math/math_internal.h b/src/math/math_internal.h index 80277901..50533dbc 100644 --- a/src/math/math_internal.h +++ b/src/math/math_internal.h @@ -33,6 +33,5 @@ typedef struct _MwLLMathVTable MwLLMathVTable; MwLLMathVTable** default_multi_table(void); void mmx_apply(MwLLMathVTable**); -double nbsd_pow(double a, double b); #endif diff --git a/src/math/nbsd_endian.c b/src/math/nbsd_endian.c new file mode 100644 index 00000000..83ff4a6c --- /dev/null +++ b/src/math/nbsd_endian.c @@ -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; +} diff --git a/src/math/nbsd_math.h b/src/math/nbsd_math.h index c3bd6744..c4871c1a 100644 --- a/src/math/nbsd_math.h +++ b/src/math/nbsd_math.h @@ -39,8 +39,13 @@ typedef union _ieee_double_shape_type { do { \ ieee_double_shape_type ew_u; \ ew_u.value = (d); \ - (ix0) = ew_u.parts.msw; \ - (ix1) = ew_u.parts.lsw; \ + if(nbsd_endian() == 'L') { \ + (ix0) = ew_u.parts.msw; \ + (ix1) = ew_u.parts.lsw; \ + } else { \ + (ix0) = ew_u.parts.lsw; \ + (ix1) = ew_u.parts.msw; \ + } \ } while(0) /* Get the more significant 32-bit integer from a double. */ @@ -49,7 +54,7 @@ typedef union _ieee_double_shape_type { do { \ ieee_double_shape_type gh_u; \ gh_u.value = (d); \ - (i) = gh_u.parts.msw; \ + (i) = nbsd_endian() == 'L' ? gh_u.parts.msw : gh_u.parts.lsw; \ } while(0) /* Get the less significant 32-bit integer from a double. */ @@ -58,7 +63,7 @@ typedef union _ieee_double_shape_type { do { \ ieee_double_shape_type gl_u; \ gl_u.value = (d); \ - (i) = gl_u.parts.lsw; \ + (i) = nbsd_endian() == 'L' ? gl_u.parts.lsw : gl_u.parts.msw; \ } while(0) /* 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) \ do { \ ieee_double_shape_type sh_u; \ - sh_u.value = (d); \ - sh_u.parts.msw = (v); \ - (d) = sh_u.value; \ + sh_u.value = (d); \ + if(nbsd_endian() == 'L') { \ + sh_u.parts.msw = (v); \ + } else { \ + sh_u.parts.lsw = (v); \ + } \ + (d) = sh_u.value; \ } while(0) /* 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) \ do { \ ieee_double_shape_type sl_u; \ - sl_u.value = (d); \ - sl_u.parts.lsw = (v); \ - (d) = sl_u.value; \ + sl_u.value = (d); \ + if(nbsd_endian() == 'L') { \ + sl_u.parts.lsw = (v); \ + } else { \ + sl_u.parts.msw = (v); \ + } \ + (d) = sl_u.value; \ } while(0) +double nbsd_pow(double a, double b); +char nbsd_endian(void); + #endif