From 4a44907122378cb6b020b3813589b8b4cd2ffab5 Mon Sep 17 00:00:00 2001 From: Juergen Lock Date: Sun, 21 Aug 2011 15:49:39 +0000 Subject: [PATCH] - Update to 0.15.0 - Changelog: http://wiki.qemu.org/ChangeLog/0.15 --- emulators/qemu-devel/Makefile | 61 +- emulators/qemu-devel/distinfo | 26 +- emulators/qemu-devel/files/net_c.patch | 38 + emulators/qemu-devel/files/net_h.patch | 10 + .../qemu-devel/files/patch-Makefile.objs | 10 + emulators/qemu-devel/files/patch-fbsd | 121 - .../qemu-devel/files/patch-hw-ppc_newworld.c | 14 + .../qemu-devel/files/patch-hw-ppc_oldworld.c | 14 + emulators/qemu-devel/files/patch-libmath | 2524 ----------------- emulators/qemu-devel/files/patch-libmath2 | 57 - .../files/patch-libmath_FreeBSD-version | 151 - .../files/patch-sgabios-read-only-rom16.ld | 15 + .../qemu-devel/files/pcap-client-type.sed | 2 +- emulators/qemu-devel/files/pcap-patch | 31 +- emulators/qemu-devel/pkg-descr | 2 +- emulators/qemu-devel/pkg-message | 29 + emulators/qemu-devel/pkg-plist | 24 +- 17 files changed, 218 insertions(+), 2911 deletions(-) create mode 100644 emulators/qemu-devel/files/net_c.patch create mode 100644 emulators/qemu-devel/files/net_h.patch create mode 100644 emulators/qemu-devel/files/patch-Makefile.objs delete mode 100644 emulators/qemu-devel/files/patch-fbsd create mode 100644 emulators/qemu-devel/files/patch-hw-ppc_newworld.c create mode 100644 emulators/qemu-devel/files/patch-hw-ppc_oldworld.c delete mode 100644 emulators/qemu-devel/files/patch-libmath delete mode 100644 emulators/qemu-devel/files/patch-libmath2 delete mode 100644 emulators/qemu-devel/files/patch-libmath_FreeBSD-version create mode 100644 emulators/qemu-devel/files/patch-sgabios-read-only-rom16.ld diff --git a/emulators/qemu-devel/Makefile b/emulators/qemu-devel/Makefile index 559f04333860..c60871d5a456 100644 --- a/emulators/qemu-devel/Makefile +++ b/emulators/qemu-devel/Makefile @@ -6,13 +6,15 @@ # PORTNAME= qemu -PORTVERSION= 0.14.1 +PORTVERSION= 0.15.0 CATEGORIES= emulators MASTER_SITES= SAVANNAH:release \ + http://wiki.qemu.org/download/:release \ LOCAL:snapshot MASTER_SITE_SUBDIR= qemu/:release nox/:snapshot PKGNAMESUFFIX= -devel -DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:release +DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:release \ + sgabios-read-only-r8${EXTRACT_SUFX}:snapshot DIST_SUBDIR= qemu/${PORTVERSION} PATCH_SITES= http://code.gns3.net/qemu-patches/raw-file/0b69b9be6a8e/ @@ -23,6 +25,8 @@ COMMENT= QEMU CPU Emulator - development version HAS_CONFIGURE= yes USE_GMAKE= yes +USE_PYTHON= yes +USE_GNOME= glib20 USE_PERL5_BUILD= yes PATCH_STRIP= -p1 MAKE_ENV+= BSD_MAKE="${MAKE}" LDFLAGS="${LDFLAGS}" @@ -34,16 +38,24 @@ MAKE_JOBS_SAFE= yes OPTIONS= SAMBA "samba dependency (for -smb)" Off \ SDL "SDL/X dependency (graphical output)" On \ + OPENGL "OpenGL dependency" On \ GNUTLS "gnutls dependency (vnc encryption)" On \ + SASL "cyrus-sasl dependency (vnc encryption)" On \ CURL "libcurl dependency (remote images)" On \ CDROM_DMA "IDE CDROM DMA" On \ PCAP "pcap dependency (networking with bpf)" On \ + USBREDIR "usb device network redirection (experimental!)" Off \ GNS3 "gns3 patches (udp, promiscuous multicast)" Off \ ADD_AUDIO "Emulate more audio hardware (experimental!)" Off \ ALL_TARGETS "Also build bsd-user targets (for testing)" Off .include +CONFIGURE_ARGS+= --extra-ldflags=-L${LOCALBASE}/lib +PORTDOCS= docs qemu-doc.html qemu-tech.html +LIB_DEPENDS+= jpeg:${PORTSDIR}/graphics/jpeg \ + png.6:${PORTSDIR}/graphics/png + .if defined(WITHOUT_ALL_TARGETS) CONFIGURE_ARGS+= --disable-bsd-user PLIST_SUB+= ALLTARGETS="@comment " @@ -56,8 +68,10 @@ IGNORE= bsd-user targets not tested on sparc64 .if defined(WITH_GNS3) PATCHFILES+= hw_e1000_c.patch -PATCHFILES+= net_c.patch -PATCHFILES+= net_h.patch +#PATCHFILES+= net_c.patch +#PATCHFILES+= net_h.patch +EXTRA_PATCHES+= ${FILESDIR}/net_c.patch +EXTRA_PATCHES+= ${FILESDIR}/net_h.patch PATCHFILES+= net_udp_c.patch PATCHFILES+= net_udp_h.patch PATCHFILES+= Makefile_objs.patch @@ -83,12 +97,30 @@ CONFIGURE_ARGS+= --disable-vnc-tls LIB_DEPENDS+= gnutls:${PORTSDIR}/security/gnutls .endif +.if defined(WITHOUT_SASL) +CONFIGURE_ARGS+= --disable-vnc-sasl +.else +LIB_DEPENDS+= sasl2:${PORTSDIR}/security/cyrus-sasl2 +.endif + .if defined(WITHOUT_CURL) CONFIGURE_ARGS+= --disable-curl .else LIB_DEPENDS+= curl:${PORTSDIR}/ftp/curl .endif +.if defined(WITHOUT_OPENGL) +CONFIGURE_ARGS+= --disable-opengl +.else +USE_GL= yes +.endif + +.if defined(WITHOUT_USBREDIR) +CONFIGURE_ARGS+= --disable-usb-redir +.else +LIB_DEPENDS+= usbredirparser:${PORTSDIR}/net/usbredir +.endif + .if defined(WITH_PCAP) CONFIGURE_ARGS+= --enable-pcap .endif @@ -130,20 +162,6 @@ pre-patch: ${MKDIR} ${WRKSRC}/bsd/$$A; \ done -post-patch: -.if (${ARCH} == "powerpc" || ${ARCH} == "sparc64") -.if ${OSVERSION} < 800030 -# These OSVERSION don't have all the needed long double fns in their -# libc so just disable 80 bit floats completely. - @cd ${WRKSRC} && ${PATCH} --quiet -R ${PATCH_STRIP} < ${FILESDIR}/patch-libmath_FreeBSD-version - @cd ${WRKSRC} && ${PATCH} --quiet -R ${PATCH_STRIP} < ${FILESDIR}/patch-fbsd -.else -# ...else we only need to disable the libmath build. (since its -# x86-specific.) - @cd ${WRKSRC} && ${PATCH} --quiet < ${FILESDIR}/revert-fbsd-libmath-patch -.endif -.endif - .if defined(WITH_PCAP) @cd ${WRKSRC} && ${PATCH} --quiet < ${FILESDIR}/pcap-patch @${REINPLACE_CMD} -f ${FILESDIR}/pcap-client-type.sed ${WRKSRC}/net.h @@ -172,7 +190,14 @@ post-configure: ${WRKSRC}/config-host.mak .endif +post-build: + @(cd ${WRKDIR}/sgabios-read-only && ${GMAKE}) + post-install: +.if !defined(NOPORTDOCS) + @(cd ${WRKSRC} && ${COPYTREE_SHARE} docs ${DOCSDIR}/) +.endif + @${INSTALL_DATA} ${WRKDIR}/sgabios-read-only/sgabios.bin ${DATADIR} @${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifup.sample ${PREFIX}/etc @${INSTALL_SCRIPT} ${FILESDIR}/qemu-ifdown.sample ${PREFIX}/etc @if [ ! -f ${PREFIX}/etc/qemu-ifup ]; then \ diff --git a/emulators/qemu-devel/distinfo b/emulators/qemu-devel/distinfo index 9aece31ab509..186cdb445749 100644 --- a/emulators/qemu-devel/distinfo +++ b/emulators/qemu-devel/distinfo @@ -1,14 +1,12 @@ -SHA256 (qemu/0.14.1/qemu-0.14.1.tar.gz) = 33ceae3fbe516f2cbb151dc98d16c8ccfec74b1056674ad715e75a2f7fed45c3 -SIZE (qemu/0.14.1/qemu-0.14.1.tar.gz) = 5439697 -SHA256 (qemu/0.14.1/hw_e1000_c.patch) = a9c8f29b8493ac62526b2ed4078b3e69c8e9c709a049f4fa11765ce37067e5a5 -SIZE (qemu/0.14.1/hw_e1000_c.patch) = 407 -SHA256 (qemu/0.14.1/net_c.patch) = 612f443bcfd37c921c973e904b527688ec1bee0ef6fc43f994ef41ff5a737a49 -SIZE (qemu/0.14.1/net_c.patch) = 1032 -SHA256 (qemu/0.14.1/net_h.patch) = 9b7c38b646c8ac3f1bf39bc627a30c863585efb381988d3e17e3b1190dd475b9 -SIZE (qemu/0.14.1/net_h.patch) = 272 -SHA256 (qemu/0.14.1/net_udp_c.patch) = 6cbe5b229381db94fb6865bb53741217f914749723eea734917143f6db457a51 -SIZE (qemu/0.14.1/net_udp_c.patch) = 4115 -SHA256 (qemu/0.14.1/net_udp_h.patch) = e43853ba86689cb9ace6a177f891ab8536f6fbce21c7e9fa3ee0d5b25c47b463 -SIZE (qemu/0.14.1/net_udp_h.patch) = 1518 -SHA256 (qemu/0.14.1/Makefile_objs.patch) = 7bfed73dfa87b78fd9b3231c1664ff9c871e8b38009b82bf9311573cbb679d58 -SIZE (qemu/0.14.1/Makefile_objs.patch) = 371 +SHA256 (qemu/0.15.0/qemu-0.15.0.tar.gz) = 0197e52dba07aeb6dfe0343b0c2ae08ed374d2cb0af3bb9ec73fed5baa0cb74d +SIZE (qemu/0.15.0/qemu-0.15.0.tar.gz) = 9577243 +SHA256 (qemu/0.15.0/sgabios-read-only-r8.tar.gz) = b5a511f237f9e3fbceb8d406b818253c1661773fc12c3ec14f0580ab15151384 +SIZE (qemu/0.15.0/sgabios-read-only-r8.tar.gz) = 31201 +SHA256 (qemu/0.15.0/hw_e1000_c.patch) = a9c8f29b8493ac62526b2ed4078b3e69c8e9c709a049f4fa11765ce37067e5a5 +SIZE (qemu/0.15.0/hw_e1000_c.patch) = 407 +SHA256 (qemu/0.15.0/net_udp_c.patch) = 6cbe5b229381db94fb6865bb53741217f914749723eea734917143f6db457a51 +SIZE (qemu/0.15.0/net_udp_c.patch) = 4115 +SHA256 (qemu/0.15.0/net_udp_h.patch) = e43853ba86689cb9ace6a177f891ab8536f6fbce21c7e9fa3ee0d5b25c47b463 +SIZE (qemu/0.15.0/net_udp_h.patch) = 1518 +SHA256 (qemu/0.15.0/Makefile_objs.patch) = 7bfed73dfa87b78fd9b3231c1664ff9c871e8b38009b82bf9311573cbb679d58 +SIZE (qemu/0.15.0/Makefile_objs.patch) = 371 diff --git a/emulators/qemu-devel/files/net_c.patch b/emulators/qemu-devel/files/net_c.patch new file mode 100644 index 000000000000..8672fd4df561 --- /dev/null +++ b/emulators/qemu-devel/files/net_c.patch @@ -0,0 +1,38 @@ +--- qemu-0.15.0/net.c.orig ++++ qemu-0.15.0/net.c +@@ -30,6 +30,7 @@ + #include "net/dump.h" + #include "net/slirp.h" + #include "net/vde.h" ++#include "net/udp.h" + #include "net/util.h" + #include "monitor.h" + #include "qemu-common.h" +@@ -1029,6 +1030,27 @@ static const struct { + }, + }, + #endif ++ [NET_CLIENT_TYPE_UDP] = { ++ .type = "udp", ++ .init = net_init_udp, ++ .desc = { ++ NET_COMMON_PARAMS_DESC, ++ { ++ .name = "sport", ++ .type = QEMU_OPT_NUMBER, ++ .help = "source port number", ++ }, { ++ .name = "daddr", ++ .type = QEMU_OPT_STRING, ++ .help = "destination IP address", ++ }, { ++ .name = "dport", ++ .type = QEMU_OPT_NUMBER, ++ .help = "destination port number", ++ }, ++ { /* end of list */ } ++ }, ++ }, + [NET_CLIENT_TYPE_DUMP] = { + .type = "dump", + .init = net_init_dump, diff --git a/emulators/qemu-devel/files/net_h.patch b/emulators/qemu-devel/files/net_h.patch new file mode 100644 index 000000000000..1af162c568ff --- /dev/null +++ b/emulators/qemu-devel/files/net_h.patch @@ -0,0 +1,10 @@ +--- qemu-0.15.0/net.h.orig ++++ qemu-0.15.0/net.h +@@ -35,6 +35,7 @@ typedef enum { + NET_CLIENT_TYPE_TAP, + NET_CLIENT_TYPE_SOCKET, + NET_CLIENT_TYPE_VDE, ++ NET_CLIENT_TYPE_UDP, + NET_CLIENT_TYPE_DUMP, + + NET_CLIENT_TYPE_MAX diff --git a/emulators/qemu-devel/files/patch-Makefile.objs b/emulators/qemu-devel/files/patch-Makefile.objs new file mode 100644 index 000000000000..bed3e56759a2 --- /dev/null +++ b/emulators/qemu-devel/files/patch-Makefile.objs @@ -0,0 +1,10 @@ +--- a/Makefile.objs ++++ b/Makefile.objs +@@ -166,6 +166,7 @@ user-obj-y = + user-obj-y += envlist.o path.o + user-obj-y += tcg-runtime.o host-utils.o + user-obj-y += cutils.o cache-utils.o ++user-obj-y += qemu-thread-posix.o + + ###################################################################### + # libhw diff --git a/emulators/qemu-devel/files/patch-fbsd b/emulators/qemu-devel/files/patch-fbsd deleted file mode 100644 index b5b0bca7a4b4..000000000000 --- a/emulators/qemu-devel/files/patch-fbsd +++ /dev/null @@ -1,121 +0,0 @@ -Index: qemu/Makefile -@@ -49,7 +49,10 @@ - - -include config-all-devices.mak - --build-all: $(DOCS) $(TOOLS) recurse-all -+build-all: $(DOCS) $(TOOLS) bsd/libmath.a recurse-all -+ -+bsd/libmath.a: -+ ( cd bsd ; unset MAKEFLAGS ; $(BSD_MAKE) CC=$(CC) ) - - config-host.h: config-host.h-timestamp - config-host.h-timestamp: config-host.mak -@@ -237,6 +240,7 @@ - - clean: - # avoid old build problems by removing potentially incorrect old files -+ ( cd bsd ; $(BSD_MAKE) clean ) - rm -f config.mak op-i386.h opc-i386.h gen-op-i386.h op-arm.h opc-arm.h gen-op-arm.h - rm -f *.o *.d *.a $(TOOLS) TAGS cscope.* *.pod *~ */*~ - rm -f slirp/*.o slirp/*.d audio/*.o audio/*.d block/*.o block/*.d net/*.o net/*.d -Index: qemu/Makefile.target -@@ -312,8 +312,8 @@ endif # CONFIG_SOFTMMU - - obj-$(CONFIG_GDBSTUB_XML) += gdbstub-xml.o - --$(QEMU_PROG): $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y) -- $(call LINK,$(obj-y) $(obj-$(TARGET_BASE_ARCH)-y)) -+$(QEMU_PROG): $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y) ../bsd/libmath.a -+ $(call LINK,$(obj-y) $(obj-$(TARGET_BASE_ARCH)-y) ../bsd/libmath.a) - - - gdbstub-xml.c: $(TARGET_XML_FILES) $(SRC_PATH)/feature_to_c.sh -Index: qemu/fpu/softfloat-native.c -@@ -9,7 +9,8 @@ - void set_float_rounding_mode(int val STATUS_PARAM) - { - STATUS(float_rounding_mode) = val; --#if (defined(CONFIG_BSD) && !defined(__APPLE__) && !defined(__GLIBC__)) || \ -+#if (defined(CONFIG_BSD) && !defined(__APPLE__) && !defined(__GLIBC__) && \ -+ !defined(__FreeBSD__)) || \ - (defined(CONFIG_SOLARIS) && CONFIG_SOLARIS_VERSION < 10) - fpsetround(val); - #elif defined(__arm__) -@@ -26,7 +27,7 @@ void set_floatx80_rounding_precision(int - } - #endif - --#if defined(CONFIG_BSD) || \ -+#if (defined(CONFIG_BSD) && !defined(__FreeBSD__)) || \ - (defined(CONFIG_SOLARIS) && CONFIG_SOLARIS_VERSION < 10) - #define lrint(d) ((int32_t)rint(d)) - #define llrint(d) ((int64_t)rint(d)) -Index: qemu/fpu/softfloat-native.h -@@ -3,7 +3,28 @@ - - #if (defined(CONFIG_BSD) && !defined(__APPLE__) && !defined(__GLIBC__)) \ - || defined(CONFIG_SOLARIS) -+#ifdef __FreeBSD__ -+#include -+long double fabsl(long double x); -+long double remainderl(long double x, long double y); -+long double sqrtl(long double x); -+long double rintl(long double x); -+long lrintl(long double x); -+long long llrintl(long double x); -+#endif -+ -+#if (defined(CONFIG_BSD) && !defined(__APPLE__) && !defined(__GLIBC__) && \ -+ (!defined(__FreeBSD__) || __FreeBSD_version < 500000)) || \ -+ defined(CONFIG_SOLARIS) - #include -+#if defined(__FreeBSD__) -+#define isgreater(x, y) __builtin_isgreater((x), (y)) -+#define isgreaterequal(x, y) __builtin_isgreaterequal((x), (y)) -+#define isless(x, y) __builtin_isless((x), (y)) -+#define islessequal(x, y) __builtin_islessequal((x), (y)) -+#define islessgreater(x, y) __builtin_islessgreater((x), (y)) -+#define isunordered(x, y) __builtin_isunordered((x), (y)) -+#endif - #define fabsf(f) ((float)fabs(f)) - #else - #include -@@ -113,8 +134,9 @@ typedef union { - /*---------------------------------------------------------------------------- - | Software IEC/IEEE floating-point rounding mode. - *----------------------------------------------------------------------------*/ --#if (defined(CONFIG_BSD) && !defined(__APPLE__) && !defined(__GLIBC__)) \ -- || defined(CONFIG_SOLARIS) -+#if (defined(CONFIG_BSD) && !defined(__APPLE__) && !defined(__GLIBC__) && \ -+ (!defined(__FreeBSD__) || __FreeBSD_version < 500000)) || \ -+ defined(CONFIG_SOLARIS) - #if defined(__OpenBSD__) - #define FE_RM FP_RM - #define FE_RP FP_RP -Index: qemu/fpu/softfloat.h -@@ -90,7 +90,8 @@ - #define FLOAT128 - #else - /* native float support */ --#if (defined(__i386__) || defined(__x86_64__)) && !defined(CONFIG_BSD) -+#if (defined(__i386__) || defined(__x86_64__)) && \ -+ (!defined(CONFIG_BSD) || defined(__FreeBSD__)) - #define FLOATX80 - #endif - #endif /* !CONFIG_SOFTFLOAT */ -Index: qemu/target-ppc/op_helper.c -@@ -293,6 +293,13 @@ - uint32_t exp = (u.ll >> 52) & 0x7FF; - return ((0 < exp) && (exp < 0x7FF)); - } -+#else -+#ifndef isnormal -+#define isnormal(x) \ -+ ((sizeof (x) == sizeof (float)) ? __isnormalf(x) \ -+ : (sizeof (x) == sizeof (double)) ? __isnormal(x) \ -+ : __isnormall(x)) -+#endif - #endif - - uint32_t helper_compute_fprf (uint64_t arg, uint32_t set_fprf) diff --git a/emulators/qemu-devel/files/patch-hw-ppc_newworld.c b/emulators/qemu-devel/files/patch-hw-ppc_newworld.c new file mode 100644 index 000000000000..4e14d5621263 --- /dev/null +++ b/emulators/qemu-devel/files/patch-hw-ppc_newworld.c @@ -0,0 +1,14 @@ +--- a/hw/ppc_newworld.c ++++ b/hw/ppc_newworld.c +@@ -68,6 +68,11 @@ + #include "hw/usb.h" + #include "blockdev.h" + ++/* FreeBSD headers define this */ ++#ifdef round_page ++#undef round_page ++#endif ++ + #define MAX_IDE_BUS 2 + #define CFG_ADDR 0xf0000510 + diff --git a/emulators/qemu-devel/files/patch-hw-ppc_oldworld.c b/emulators/qemu-devel/files/patch-hw-ppc_oldworld.c new file mode 100644 index 000000000000..46fc2ae7e77e --- /dev/null +++ b/emulators/qemu-devel/files/patch-hw-ppc_oldworld.c @@ -0,0 +1,14 @@ +--- a/hw/ppc_oldworld.c ++++ b/hw/ppc_oldworld.c +@@ -47,6 +47,11 @@ + #define MAX_IDE_BUS 2 + #define CFG_ADDR 0xf0000510 + ++/* FreeBSD headers define this */ ++#ifdef round_page ++#undef round_page ++#endif ++ + static int fw_cfg_boot_set(void *opaque, const char *boot_device) + { + fw_cfg_add_i16(opaque, FW_CFG_BOOT_DEVICE, boot_device[0]); diff --git a/emulators/qemu-devel/files/patch-libmath b/emulators/qemu-devel/files/patch-libmath deleted file mode 100644 index fcc4e4020c3a..000000000000 --- a/emulators/qemu-devel/files/patch-libmath +++ /dev/null @@ -1,2524 +0,0 @@ -diff -Nru qemu-0.7.0/bsd.orig/Makefile qemu-0.7.0/bsd/Makefile ---- qemu-0.7.0/bsd.orig/Makefile Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/Makefile Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,32 @@ -+SRCS= ${MACHINE_ARCH}/e_atan2l.c \ -+ ${MACHINE_ARCH}/e_logl.S \ -+ ${MACHINE_ARCH}/e_powl.S \ -+ ${MACHINE_ARCH}/e_remainderl.S \ -+ ${MACHINE_ARCH}/e_sqrtl.c \ -+ ${MACHINE_ARCH}/s_ceill.S \ -+ ${MACHINE_ARCH}/s_cosl.S \ -+ ${MACHINE_ARCH}/s_floorl.S \ -+ ${MACHINE_ARCH}/s_isnormal.c \ -+ ${MACHINE_ARCH}/s_llrint.S \ -+ ${MACHINE_ARCH}/s_llrintf.S \ -+ ${MACHINE_ARCH}/s_llrintl.S \ -+ ${MACHINE_ARCH}/s_lrint.S \ -+ ${MACHINE_ARCH}/s_lrintf.S \ -+ ${MACHINE_ARCH}/s_lrintl.S \ -+ ${MACHINE_ARCH}/s_rintl.c \ -+ ${MACHINE_ARCH}/s_round.c \ -+ ${MACHINE_ARCH}/s_sinl.S \ -+ ${MACHINE_ARCH}/s_tanl.S -+ -+OBJS= ${SRCS:R:S/$/.o/} -+ -+CFLAGS+= -I. -+ -+all: libmath.a -+ -+libmath.a: ${OBJS} -+ rm -f $@ -+ ${AR} rcs $@ ${OBJS:T} -+ -+clean: -+ rm -f ${OBJS:T} libmath.a -diff -Nru qemu-0.7.0/bsd.orig/amd64/e_atan2l.c qemu-0.7.0/bsd/amd64/e_atan2l.c ---- qemu-0.7.0/bsd.orig/amd64/e_atan2l.c Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/amd64/e_atan2l.c Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,20 @@ -+/* -+ * Written by J.T. Conklin . -+ * Public domain. -+ * -+ * Adapted for `long double' by Ulrich Drepper . -+ */ -+ -+#include -+ -+long double -+__ieee754_atan2l (long double y, long double x) -+{ -+ long double res; -+ -+ asm ("fpatan" : "=t" (res) : "u" (y), "0" (x) : "st(1)"); -+ -+ return res; -+} -+ -+weak_alias(__ieee754_atan2l, atan2l) -diff -Nru qemu-0.7.0/bsd.orig/amd64/e_logl.S qemu-0.7.0/bsd/amd64/e_logl.S ---- qemu-0.7.0/bsd.orig/amd64/e_logl.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/amd64/e_logl.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,59 @@ -+/* -+ * Written by J.T. Conklin . -+ * Public domain. -+ * -+ * Adapted for `long double' by Ulrich Drepper . -+ * Adapted for x86-64 by Andreas Jaeger . -+ */ -+ -+#include -+#include -+ -+RCSID("$NetBSD: $") -+ -+ -+#ifdef __ELF__ -+ .section .rodata -+#else -+ .text -+#endif -+ .align ALIGNARG(4) -+ ASM_TYPE_DIRECTIVE(one,@object) -+one: .double 1.0 -+ ASM_SIZE_DIRECTIVE(one) -+ /* It is not important that this constant is precise. It is only -+ a value which is known to be on the safe side for using the -+ fyl2xp1 instruction. */ -+ ASM_TYPE_DIRECTIVE(limit,@object) -+limit: .double 0.29 -+ ASM_SIZE_DIRECTIVE(limit) -+ -+ -+#ifdef PIC -+#define MO(op) op##(%rip) -+#else -+#define MO(op) op -+#endif -+ -+ .text -+ENTRY(__ieee754_logl) -+ fldln2 // log(2) -+ fldt 8(%rsp) // x : log(2) -+ fld %st // x : x : log(2) -+ fsubl MO(one) // x-1 : x : log(2) -+ fld %st // x-1 : x-1 : x : log(2) -+ fabs // |x-1| : x-1 : x : log(2) -+ fcompl MO(limit) // x-1 : x : log(2) -+ fnstsw // x-1 : x : log(2) -+ andb $0x45, %ah -+ jz 2f -+ fstp %st(1) // x-1 : log(2) -+ fyl2xp1 // log(x) -+ ret -+ -+2: fstp %st(0) // x : log(2) -+ fyl2x // log(x) -+ ret -+END (__ieee754_logl) -+ -+weak_alias(__ieee754_logl,logl) -diff -Nru qemu-0.7.0/bsd.orig/amd64/e_powl.S qemu-0.7.0/bsd/amd64/e_powl.S ---- qemu-0.7.0/bsd.orig/amd64/e_powl.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/amd64/e_powl.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,341 @@ -+/* ix87 specific implementation of pow function. -+ Copyright (C) 1996, 1997, 1998, 1999, 2001, 2004 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ Contributed by Ulrich Drepper , 1996. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+ -+#ifdef __ELF__ -+ .section .rodata -+#else -+ .text -+#endif -+ -+ .align ALIGNARG(4) -+ ASM_TYPE_DIRECTIVE(infinity,@object) -+inf_zero: -+infinity: -+ .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f -+ ASM_SIZE_DIRECTIVE(infinity) -+ ASM_TYPE_DIRECTIVE(zero,@object) -+zero: .double 0.0 -+ ASM_SIZE_DIRECTIVE(zero) -+ ASM_TYPE_DIRECTIVE(minf_mzero,@object) -+minf_mzero: -+minfinity: -+ .byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff -+mzero: -+ .byte 0, 0, 0, 0, 0, 0, 0, 0x80 -+ ASM_SIZE_DIRECTIVE(minf_mzero) -+ ASM_TYPE_DIRECTIVE(one,@object) -+one: .double 1.0 -+ ASM_SIZE_DIRECTIVE(one) -+ ASM_TYPE_DIRECTIVE(limit,@object) -+limit: .double 0.29 -+ ASM_SIZE_DIRECTIVE(limit) -+ ASM_TYPE_DIRECTIVE(p63,@object) -+p63: -+ .byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43 -+ ASM_SIZE_DIRECTIVE(p63) -+ -+#ifdef PIC -+#define MO(op) op##(%rip) -+#else -+#define MO(op) op -+#endif -+ -+ .text -+ENTRY(__ieee754_powl) -+ fldt 24(%rsp) // y -+ fxam -+ -+ -+ fnstsw -+ movb %ah, %dl -+ andb $0x45, %ah -+ cmpb $0x40, %ah // is y == 0 ? -+ je 11f -+ -+ cmpb $0x05, %ah // is y == ±inf ? -+ je 12f -+ -+ cmpb $0x01, %ah // is y == NaN ? -+ je 30f -+ -+ fldt 8(%rsp) // x : y -+ -+ fxam -+ fnstsw -+ movb %ah, %dh -+ andb $0x45, %ah -+ cmpb $0x40, %ah -+ je 20f // x is ±0 -+ -+ cmpb $0x05, %ah -+ je 15f // x is ±inf -+ -+ fxch // y : x -+ -+ /* fistpll raises invalid exception for |y| >= 1L<<63. */ -+ fldl MO(p63) // 1L<<63 : y : x -+ fld %st(1) // y : 1L<<63 : y : x -+ fabs // |y| : 1L<<63 : y : x -+ fcomip %st(1), %st // 1L<<63 : y : x -+ fstp %st(0) // y : x -+ jnc 2f -+ -+ /* First see whether `y' is a natural number. In this case we -+ can use a more precise algorithm. */ -+ fld %st // y : y : x -+ fistpll -8(%rsp) // y : x -+ fildll -8(%rsp) // int(y) : y : x -+ fucomip %st(1),%st // y : x -+ jne 2f -+ -+ /* OK, we have an integer value for y. */ -+ mov -8(%rsp),%eax -+ mov -4(%rsp),%edx -+ orl $0, %edx -+ fstp %st(0) // x -+ jns 4f // y >= 0, jump -+ fdivrl MO(one) // 1/x (now referred to as x) -+ negl %eax -+ adcl $0, %edx -+ negl %edx -+4: fldl MO(one) // 1 : x -+ fxch -+ -+6: shrdl $1, %edx, %eax -+ jnc 5f -+ fxch -+ fmul %st(1) // x : ST*x -+ fxch -+5: fmul %st(0), %st // x*x : ST*x -+ shrl $1, %edx -+ movl %eax, %ecx -+ orl %edx, %ecx -+ jnz 6b -+ fstp %st(0) // ST*x -+ ret -+ -+ /* y is ±NAN */ -+30: fldt 8(%rsp) // x : y -+ fldl MO(one) // 1.0 : x : y -+ fucomip %st(1),%st // x : y -+ je 31f -+ fxch // y : x -+31: fstp %st(1) -+ ret -+ -+ .align ALIGNARG(4) -+2: /* y is a real number. */ -+ fxch // x : y -+ fldl MO(one) // 1.0 : x : y -+ fld %st(1) // x : 1.0 : x : y -+ fsub %st(1) // x-1 : 1.0 : x : y -+ fabs // |x-1| : 1.0 : x : y -+ fcompl MO(limit) // 1.0 : x : y -+ fnstsw -+ fxch // x : 1.0 : y -+ test $4500,%eax -+ jz 7f -+ fsub %st(1) // x-1 : 1.0 : y -+ fyl2xp1 // log2(x) : y -+ jmp 8f -+ -+7: fyl2x // log2(x) : y -+8: fmul %st(1) // y*log2(x) : y -+ fxam -+ fnstsw -+ andb $0x45, %ah -+ cmpb $0x05, %ah // is y*log2(x) == ±inf ? -+ je 28f -+ fst %st(1) // y*log2(x) : y*log2(x) -+ frndint // int(y*log2(x)) : y*log2(x) -+ fsubr %st, %st(1) // int(y*log2(x)) : fract(y*log2(x)) -+ fxch // fract(y*log2(x)) : int(y*log2(x)) -+ f2xm1 // 2^fract(y*log2(x))-1 : int(y*log2(x)) -+ faddl MO(one) // 2^fract(y*log2(x)) : int(y*log2(x)) -+ fscale // 2^fract(y*log2(x))*2^int(y*log2(x)) : int(y*log2(x)) -+ fstp %st(1) // 2^fract(y*log2(x))*2^int(y*log2(x)) -+ ret -+ -+28: fstp %st(1) // y*log2(x) -+ fldl MO(one) // 1 : y*log2(x) -+ fscale // 2^(y*log2(x)) : y*log2(x) -+ fstp %st(1) // 2^(y*log2(x)) -+ ret -+ -+ // pow(x,±0) = 1 -+ .align ALIGNARG(4) -+11: fstp %st(0) // pop y -+ fldl MO(one) -+ ret -+ -+ // y == ±inf -+ .align ALIGNARG(4) -+12: fstp %st(0) // pop y -+ fldt 8(%rsp) // x -+ fabs -+ fcompl MO(one) // < 1, == 1, or > 1 -+ fnstsw -+ andb $0x45, %ah -+ cmpb $0x45, %ah -+ je 13f // jump if x is NaN -+ -+ cmpb $0x40, %ah -+ je 14f // jump if |x| == 1 -+ -+ shlb $1, %ah -+ xorb %ah, %dl -+ andl $2, %edx -+#ifdef PIC -+ lea inf_zero(%rip),%rcx -+ fldl (%rcx, %rdx, 4) -+#else -+ fldl inf_zero(,%rdx, 4) -+#endif -+ ret -+ -+ .align ALIGNARG(4) -+14: fldl MO(one) -+ ret -+ -+ .align ALIGNARG(4) -+13: fldt 8(%rsp) // load x == NaN -+ ret -+ -+ .align ALIGNARG(4) -+ // x is ±inf -+15: fstp %st(0) // y -+ testb $2, %dh -+ jz 16f // jump if x == +inf -+ -+ // We must find out whether y is an odd integer. -+ fld %st // y : y -+ fistpll -8(%rsp) // y -+ fildll -8(%rsp) // int(y) : y -+ fucomip %st(1),%st -+ ffreep %st // -+ jne 17f -+ -+ // OK, the value is an integer, but is it odd? -+ mov -8(%rsp), %eax -+ mov -4(%rsp), %edx -+ andb $1, %al -+ jz 18f // jump if not odd -+ // It's an odd integer. -+ shrl $31, %edx -+#ifdef PIC -+ lea minf_mzero(%rip),%rcx -+ fldl (%rcx, %rdx, 8) -+#else -+ fldl minf_mzero(,%rdx, 8) -+#endif -+ ret -+ -+ .align ALIGNARG(4) -+16: fcompl MO(zero) -+ fnstsw -+ shrl $5, %eax -+ andl $8, %eax -+#ifdef PIC -+ lea inf_zero(%rip),%rcx -+ fldl (%rcx, %rax, 1) -+#else -+ fldl inf_zero(,%rax, 1) -+#endif -+ ret -+ -+ .align ALIGNARG(4) -+17: shll $30, %edx // sign bit for y in right position -+18: shrl $31, %edx -+#ifdef PIC -+ lea inf_zero(%rip),%rcx -+ fldl (%rcx, %rdx, 8) -+#else -+ fldl inf_zero(,%rdx, 8) -+#endif -+ ret -+ -+ .align ALIGNARG(4) -+ // x is ±0 -+20: fstp %st(0) // y -+ testb $2, %dl -+ jz 21f // y > 0 -+ -+ // x is ±0 and y is < 0. We must find out whether y is an odd integer. -+ testb $2, %dh -+ jz 25f -+ -+ fld %st // y : y -+ fistpll -8(%rsp) // y -+ fildll -8(%rsp) // int(y) : y -+ fucomip %st(1),%st -+ ffreep %st // -+ jne 26f -+ -+ // OK, the value is an integer, but is it odd? -+ mov -8(%rsp),%eax -+ mov -4(%rsp),%edx -+ andb $1, %al -+ jz 27f // jump if not odd -+ // It's an odd integer. -+ // Raise divide-by-zero exception and get minus infinity value. -+ fldl MO(one) -+ fdivl MO(zero) -+ fchs -+ ret -+ -+25: fstp %st(0) -+26: -+27: // Raise divide-by-zero exception and get infinity value. -+ fldl MO(one) -+ fdivl MO(zero) -+ ret -+ -+ .align ALIGNARG(4) -+ // x is ±0 and y is > 0. We must find out whether y is an odd integer. -+21: testb $2, %dh -+ jz 22f -+ -+ fld %st // y : y -+ fistpll -8(%rsp) // y -+ fildll -8(%rsp) // int(y) : y -+ fucomip %st(1),%st -+ ffreep %st // -+ jne 23f -+ -+ // OK, the value is an integer, but is it odd? -+ mov -8(%rsp),%eax -+ mov -4(%rsp),%edx -+ andb $1, %al -+ jz 24f // jump if not odd -+ // It's an odd integer. -+ fldl MO(mzero) -+ ret -+ -+22: fstp %st(0) -+23: -+24: fldl MO(zero) -+ ret -+ -+END(__ieee754_powl) -+ -+weak_alias(__ieee754_powl,powl) -diff -Nru qemu-0.7.0/bsd.orig/amd64/e_remainderl.S qemu-0.7.0/bsd/amd64/e_remainderl.S ---- qemu-0.7.0/bsd.orig/amd64/e_remainderl.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/amd64/e_remainderl.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,23 @@ -+/* -+ * Written by J.T. Conklin . -+ * Public domain. -+ * -+ * Adapted for `long double' by Ulrich Drepper . -+ * Adapted for x86-64 by Andreas Jaeger . -+ */ -+ -+#include -+#include -+ -+ENTRY(__ieee754_remainderl) -+ fldt 24(%rsp) -+ fldt 8(%rsp) -+1: fprem1 -+ fstsw %ax -+ testl $0x400,%eax -+ jnz 1b -+ fstp %st(1) -+ ret -+END (__ieee754_remainderl) -+ -+weak_alias(__ieee754_remainderl,remainderl) -diff -Nru qemu-0.7.0/bsd.orig/amd64/e_sqrtl.c qemu-0.7.0/bsd/amd64/e_sqrtl.c ---- qemu-0.7.0/bsd.orig/amd64/e_sqrtl.c Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/amd64/e_sqrtl.c Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,20 @@ -+/* -+ * Written by J.T. Conklin . -+ * Public domain. -+ * -+ * Adapted for `long double' by Ulrich Drepper . -+ */ -+ -+#include -+ -+long double -+__ieee754_sqrtl (long double x) -+{ -+ long double res; -+ -+ asm ("fsqrt" : "=t" (res) : "0" (x)); -+ -+ return res; -+} -+ -+weak_alias(__ieee754_sqrtl,sqrtl) -diff -Nru qemu-0.7.0/bsd.orig/amd64/s_ceill.S qemu-0.7.0/bsd/amd64/s_ceill.S ---- qemu-0.7.0/bsd.orig/amd64/s_ceill.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/amd64/s_ceill.S Fri Apr 29 02:22:18 2005 -@@ -0,0 +1,246 @@ -+/* -+ * ==================================================== -+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. -+ * -+ * Developed at SunPro, a Sun Microsystems, Inc. business. -+ * Permission to use, copy, modify, and distribute this -+ * software is freely granted, provided that this notice -+ * is preserved. -+ * ==================================================== -+ * -+ * From: @(#)s_ceil.c 5.1 93/09/24 -+ */ -+/* XXX: generated from src/lib/msun/src/s_ceill.c */ -+ -+#include -+ -+__FBSDID("$FreeBSD: /tmp/pcvs/ports/emulators/qemu-devel/files/Attic/patch-libmath,v 1.4 2007-03-10 17:03:05 nox Exp $") -+ -+ .file "s_ceill.c" -+ .section .rodata.cst8,"aM",@progbits,8 -+ .p2align 3 -+.LC0: -+ .long 2281731484 -+ .long 2117592124 -+ .text -+ .p2align 4,,15 -+.globl ceill -+ .type ceill, @function -+ceill: -+.LFB17: -+ pushq %rbp -+.LCFI0: -+ pushq %rbx -+.LCFI1: -+ fldt 24(%rsp) -+ movq $0, -16(%rsp) -+ fld %st(0) -+ fstpt -40(%rsp) -+ movl -32(%rsp), %edi -+ movq -40(%rsp), %rsi -+ movl %edi, -16(%rsp) -+ movl -16(%rsp), %r11d -+ movq %rsi, -24(%rsp) -+ movl %r11d, %r10d -+ andl $32767, %r10d -+ leal -16383(%r10), %r8d -+ cmpl $30, %r8d -+ jg .L2 -+ testl %r8d, %r8d -+ js .L38 -+ movl -20(%rsp), %r9d -+ leal 1(%r8), %ecx -+ mov -24(%rsp), %eax -+ movl $4294967295, %ebp -+ movq %rsi, -40(%rsp) -+ movl %edi, -32(%rsp) -+ shrq %cl, %rbp -+ mov %r9d, %ebx -+ movq %rbx, %rdx -+ andq %rbp, %rdx -+ orq %rax, %rdx -+ fldt -40(%rsp) -+ je .L42 -+ ffreep %st(0) -+ testb $-128, -15(%rsp) -+ jne .L12 -+ movl $31, %ecx -+ movl $1, %eax -+ subl %r8d, %ecx -+ salq %cl, %rax -+ addl %eax, %r9d -+ mov %r9d, %eax -+ cmpq %rbx, %rax -+ jae .L32 -+ leal 1(%r10), %edx -+ movl %r11d, %eax -+ orl $-2147483648, %r9d -+ andw $-32768, %ax -+ andw $32767, %dx -+ orl %edx, %eax -+ movw %ax, -16(%rsp) -+.L32: -+ movl %r9d, -20(%rsp) -+.L12: -+ faddl .LC0(%rip) -+ fldz -+ fxch %st(1) -+ fucomip %st(1), %st -+ fstp %st(0) -+ jbe .L31 -+ movl %ebp, %eax -+ movl $0, -24(%rsp) -+ notl %eax -+ andl %eax, %r9d -+ movl %r9d, -20(%rsp) -+ .p2align 4,,7 -+.L31: -+ movq -24(%rsp), %rsi -+ movl -16(%rsp), %edi -+ movq %rsi, -40(%rsp) -+ movl %edi, -32(%rsp) -+ fldt -40(%rsp) -+ popq %rbx -+ popq %rbp -+ ret -+ .p2align 4,,7 -+.L2: -+ cmpl $62, %r8d -+ jle .L45 -+.L44: -+ ffreep %st(0) -+.L17: -+ movq %rsi, -40(%rsp) -+ movl %edi, -32(%rsp) -+ fldt -40(%rsp) -+ popq %rbx -+ popq %rbp -+ ret -+ .p2align 4,,7 -+.L45: -+ movl -24(%rsp), %edx -+ leal 1(%r8), %ecx -+ movq $-1, %rbx -+ movq %rsi, -40(%rsp) -+ movl %edi, -32(%rsp) -+ shrq %cl, %rbx -+ mov %edx, %r9d -+ testq %rbx, %r9 -+ fldt -40(%rsp) -+ je .L42 -+ ffreep %st(0) -+ testb $-128, -15(%rsp) -+ jne .L20 -+ cmpl $31, %r8d -+ je .L36 -+ movl $63, %ecx -+ movl $1, %eax -+ subl %r8d, %ecx -+ salq %cl, %rax -+ leal (%rdx,%rax), %eax -+ movl %eax, -24(%rsp) -+ mov %eax, %eax -+ cmpq %r9, %rax -+ jae .L20 -+.L36: -+ movl -20(%rsp), %eax -+ leal 1(%rax), %ecx -+ cmpl %eax, %ecx -+ jae .L34 -+ leal 1(%r10), %edx -+ movl %r11d, %eax -+ orl $-2147483648, %ecx -+ andw $-32768, %ax -+ andw $32767, %dx -+ orl %edx, %eax -+ movw %ax, -16(%rsp) -+.L34: -+ movl %ecx, -20(%rsp) -+ .p2align 4,,7 -+.L20: -+ faddl .LC0(%rip) -+ fldz -+ fxch %st(1) -+ fucomip %st(1), %st -+ fstp %st(0) -+ jbe .L31 -+ movl %ebx, %eax -+ notl %eax -+ andl %eax, -24(%rsp) -+ jmp .L31 -+ .p2align 4,,7 -+.L42: -+ fstp %st(1) -+ popq %rbx -+ popq %rbp -+ ret -+ .p2align 4,,7 -+.L38: -+ fldl .LC0(%rip) -+ faddp %st, %st(1) -+ fldz -+ fxch %st(1) -+ fucomip %st(1), %st -+ jbe .L44 -+ testl %r10d, %r10d -+ jle .L39 -+.L7: -+ movabsq $-9223372036854775808, %rsi -+ movl $16383, %edi -+ testb $-128, -15(%rsp) -+ movq %rsi, -40(%rsp) -+ movl %edi, -32(%rsp) -+ fldt -40(%rsp) -+ fcmovne %st(1), %st -+ fstp %st(1) -+ fstpt -40(%rsp) -+ movq -40(%rsp), %rsi -+ movl -32(%rsp), %edi -+ movq %rsi, -24(%rsp) -+ movl %edi, -16(%rsp) -+ jmp .L17 -+.L39: -+ movl -24(%rsp), %eax -+ orl -20(%rsp), %eax -+ je .L44 -+ jmp .L7 -+.LFE17: -+ .size ceill, .-ceill -+ .section .eh_frame,"a",@progbits -+.Lframe1: -+ .long .LECIE1-.LSCIE1 -+.LSCIE1: -+ .long 0x0 -+ .byte 0x1 -+ .string "" -+ .uleb128 0x1 -+ .sleb128 -8 -+ .byte 0x10 -+ .byte 0xc -+ .uleb128 0x7 -+ .uleb128 0x8 -+ .byte 0x90 -+ .uleb128 0x1 -+ .p2align 3 -+.LECIE1: -+.LSFDE1: -+ .long .LEFDE1-.LASFDE1 -+.LASFDE1: -+ .long .LASFDE1-.Lframe1 -+ .quad .LFB17 -+ .quad .LFE17-.LFB17 -+ .byte 0x4 -+ .long .LCFI0-.LFB17 -+ .byte 0xe -+ .uleb128 0x10 -+ .byte 0x4 -+ .long .LCFI1-.LCFI0 -+ .byte 0xe -+ .uleb128 0x18 -+ .byte 0x83 -+ .uleb128 0x3 -+ .byte 0x86 -+ .uleb128 0x2 -+ .p2align 3 -+.LEFDE1: -+ .ident "GCC: (GNU) 3.4.4 [FreeBSD] 20050421" -diff -Nru qemu-0.7.0/bsd.orig/amd64/s_cosl.S qemu-0.7.0/bsd/amd64/s_cosl.S ---- qemu-0.7.0/bsd.orig/amd64/s_cosl.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/amd64/s_cosl.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,33 @@ -+/* -+ * Written by J.T. Conklin . -+ * Public domain. -+ * -+ * Adapted for `long double' by Ulrich Drepper . -+ * Adapted for x86-64 by Andreas Jaeger . -+ */ -+ -+#include -+#include -+ -+RCSID("$NetBSD: $") -+ -+ENTRY(__cosl) -+ fldt 8(%rsp) -+ fcos -+ fnstsw %ax -+ testl $0x400,%eax -+ jnz 1f -+ ret -+ .align ALIGNARG(4) -+1: fldpi -+ fadd %st(0) -+ fxch %st(1) -+2: fprem1 -+ fnstsw %ax -+ testl $0x400,%eax -+ jnz 2b -+ fstp %st(1) -+ fcos -+ ret -+END (__cosl) -+weak_alias (__cosl, cosl) -diff -Nru qemu-0.7.0/bsd.orig/amd64/s_floorl.S qemu-0.7.0/bsd/amd64/s_floorl.S ---- qemu-0.7.0/bsd.orig/amd64/s_floorl.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/amd64/s_floorl.S Fri Apr 29 02:24:32 2005 -@@ -0,0 +1,247 @@ -+/* -+ * ==================================================== -+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. -+ * -+ * Developed at SunPro, a Sun Microsystems, Inc. business. -+ * Permission to use, copy, modify, and distribute this -+ * software is freely granted, provided that this notice -+ * is preserved. -+ * ==================================================== -+ * -+ * From: @(#)s_floor.c 5.1 93/09/24 -+ */ -+/* XXX: generated from src/lib/msun/src/s_floorl.c */ -+ -+#include -+ -+__FBSDID("$FreeBSD: /tmp/pcvs/ports/emulators/qemu-devel/files/Attic/patch-libmath,v 1.4 2007-03-10 17:03:05 nox Exp $") -+ -+ .file "s_floorl.c" -+ .section .rodata.cst8,"aM",@progbits,8 -+ .p2align 3 -+.LC0: -+ .long 2281731484 -+ .long 2117592124 -+ .section .rodata.cst4,"aM",@progbits,4 -+ .p2align 2 -+.LC2: -+ .long 3212836864 -+ .text -+ .p2align 4,,15 -+.globl floorl -+ .type floorl, @function -+floorl: -+.LFB17: -+ pushq %rbp -+.LCFI0: -+ pushq %rbx -+.LCFI1: -+ fldt 24(%rsp) -+ movq $0, -16(%rsp) -+ fld %st(0) -+ fstpt -40(%rsp) -+ movl -32(%rsp), %edi -+ movq -40(%rsp), %rsi -+ movl %edi, -16(%rsp) -+ movl -16(%rsp), %r11d -+ movq %rsi, -24(%rsp) -+ movl %r11d, %r10d -+ andl $32767, %r10d -+ leal -16383(%r10), %r8d -+ cmpl $30, %r8d -+ jg .L2 -+ testl %r8d, %r8d -+ js .L38 -+ movl -20(%rsp), %r9d -+ leal 1(%r8), %ecx -+ mov -24(%rsp), %eax -+ movl $4294967295, %ebp -+ movq %rsi, -40(%rsp) -+ movl %edi, -32(%rsp) -+ shrq %cl, %rbp -+ mov %r9d, %ebx -+ movq %rbx, %rdx -+ andq %rbp, %rdx -+ orq %rax, %rdx -+ fldt -40(%rsp) -+ je .L42 -+ ffreep %st(0) -+ testb $-128, -15(%rsp) -+ je .L12 -+ movl $31, %ecx -+ movl $1, %eax -+ subl %r8d, %ecx -+ salq %cl, %rax -+ addl %eax, %r9d -+ mov %r9d, %eax -+ cmpq %rbx, %rax -+ jae .L32 -+ leal 1(%r10), %edx -+ movl %r11d, %eax -+ orl $-2147483648, %r9d -+ andw $-32768, %ax -+ andw $32767, %dx -+ orl %edx, %eax -+ movw %ax, -16(%rsp) -+.L32: -+ movl %r9d, -20(%rsp) -+.L12: -+ faddl .LC0(%rip) -+ fldz -+ fxch %st(1) -+ fucomip %st(1), %st -+ fstp %st(0) -+ jbe .L31 -+ movl %ebp, %eax -+ movl $0, -24(%rsp) -+ notl %eax -+ andl %eax, %r9d -+ movl %r9d, -20(%rsp) -+ .p2align 4,,7 -+.L31: -+ movq -24(%rsp), %rsi -+ movl -16(%rsp), %edi -+ movq %rsi, -40(%rsp) -+ movl %edi, -32(%rsp) -+ fldt -40(%rsp) -+ popq %rbx -+ popq %rbp -+ ret -+ .p2align 4,,7 -+.L2: -+ cmpl $62, %r8d -+ jle .L45 -+.L44: -+ ffreep %st(0) -+.L17: -+ movq %rsi, -40(%rsp) -+ movl %edi, -32(%rsp) -+ fldt -40(%rsp) -+ popq %rbx -+ popq %rbp -+ ret -+ .p2align 4,,7 -+.L45: -+ movl -24(%rsp), %edx -+ leal 1(%r8), %ecx -+ movq $-1, %rbx -+ movq %rsi, -40(%rsp) -+ movl %edi, -32(%rsp) -+ shrq %cl, %rbx -+ mov %edx, %r9d -+ testq %rbx, %r9 -+ fldt -40(%rsp) -+ je .L42 -+ ffreep %st(0) -+ testb $-128, -15(%rsp) -+ je .L20 -+ cmpl $31, %r8d -+ je .L36 -+ movl $63, %ecx -+ movl $1, %eax -+ subl %r8d, %ecx -+ salq %cl, %rax -+ leal (%rdx,%rax), %eax -+ movl %eax, -24(%rsp) -+ mov %eax, %eax -+ cmpq %r9, %rax -+ jae .L20 -+.L36: -+ movl -20(%rsp), %eax -+ leal 1(%rax), %ecx -+ cmpl %eax, %ecx -+ jae .L34 -+ leal 1(%r10), %edx -+ movl %r11d, %eax -+ orl $-2147483648, %ecx -+ andw $-32768, %ax -+ andw $32767, %dx -+ orl %edx, %eax -+ movw %ax, -16(%rsp) -+.L34: -+ movl %ecx, -20(%rsp) -+ .p2align 4,,7 -+.L20: -+ faddl .LC0(%rip) -+ fldz -+ fxch %st(1) -+ fucomip %st(1), %st -+ fstp %st(0) -+ jbe .L31 -+ movl %ebx, %eax -+ notl %eax -+ andl %eax, -24(%rsp) -+ jmp .L31 -+ .p2align 4,,7 -+.L42: -+ fstp %st(1) -+ popq %rbx -+ popq %rbp -+ ret -+ .p2align 4,,7 -+.L38: -+ fldl .LC0(%rip) -+ faddp %st, %st(1) -+ fldz -+ fxch %st(1) -+ fucomip %st(1), %st -+ jbe .L44 -+ testl %r10d, %r10d -+ jle .L39 -+.L7: -+ testb $-128, -15(%rsp) -+ je .L9 -+ ffreep %st(0) -+ flds .LC2(%rip) -+.L9: -+ fstpt -40(%rsp) -+ movq -40(%rsp), %rsi -+ movl -32(%rsp), %edi -+ movq %rsi, -24(%rsp) -+ movl %edi, -16(%rsp) -+ jmp .L17 -+.L39: -+ movl -24(%rsp), %eax -+ orl -20(%rsp), %eax -+ je .L44 -+ jmp .L7 -+.LFE17: -+ .size floorl, .-floorl -+ .section .eh_frame,"a",@progbits -+.Lframe1: -+ .long .LECIE1-.LSCIE1 -+.LSCIE1: -+ .long 0x0 -+ .byte 0x1 -+ .string "" -+ .uleb128 0x1 -+ .sleb128 -8 -+ .byte 0x10 -+ .byte 0xc -+ .uleb128 0x7 -+ .uleb128 0x8 -+ .byte 0x90 -+ .uleb128 0x1 -+ .p2align 3 -+.LECIE1: -+.LSFDE1: -+ .long .LEFDE1-.LASFDE1 -+.LASFDE1: -+ .long .LASFDE1-.Lframe1 -+ .quad .LFB17 -+ .quad .LFE17-.LFB17 -+ .byte 0x4 -+ .long .LCFI0-.LFB17 -+ .byte 0xe -+ .uleb128 0x10 -+ .byte 0x4 -+ .long .LCFI1-.LCFI0 -+ .byte 0xe -+ .uleb128 0x18 -+ .byte 0x83 -+ .uleb128 0x3 -+ .byte 0x86 -+ .uleb128 0x2 -+ .p2align 3 -+.LEFDE1: -+ .ident "GCC: (GNU) 3.4.4 [FreeBSD] 20050421" -diff -Nru qemu-0.7.0/bsd.orig/amd64/s_isnormal.c qemu-0.7.0/bsd/amd64/s_isnormal.c ---- qemu-0.7.0/bsd.orig/amd64/s_isnormal.c Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/amd64/s_isnormal.c Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,85 @@ -+/*- -+ * Copyright (c) 2003 Mike Barcroft -+ * Copyright (c) 2002-2004 David Schultz -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ * -+ * $FreeBSD: /tmp/pcvs/ports/emulators/qemu-devel/files/Attic/patch-libmath,v 1.4 2007-03-10 17:03:05 nox Exp $ -+ */ -+ -+union IEEEf2bits { -+ float f; -+ struct { -+ unsigned int man :23; -+ unsigned int exp :8; -+ unsigned int sign :1; -+ } bits; -+}; -+ -+union IEEEd2bits { -+ double d; -+ struct { -+ unsigned int manl :32; -+ unsigned int manh :20; -+ unsigned int exp :11; -+ unsigned int sign :1; -+ } bits; -+}; -+ -+union IEEEl2bits { -+ long double e; -+ struct { -+ unsigned int manl :32; -+ unsigned int manh :32; -+ unsigned int exp :15; -+ unsigned int sign :1; -+ unsigned int junk :16; -+ } bits; -+}; -+ -+int -+__isnormal(double d) -+{ -+ union IEEEd2bits u; -+ -+ u.d = d; -+ return (u.bits.exp != 0 && u.bits.exp != 2047); -+} -+ -+int -+__isnormalf(float f) -+{ -+ union IEEEf2bits u; -+ -+ u.f = f; -+ return (u.bits.exp != 0 && u.bits.exp != 255); -+} -+ -+int -+__isnormall(long double e) -+{ -+ union IEEEl2bits u; -+ -+ u.e = e; -+ return (u.bits.exp != 0 && u.bits.exp != 32767); -+} -diff -Nru qemu-0.7.0/bsd.orig/amd64/s_llrint.S qemu-0.7.0/bsd/amd64/s_llrint.S ---- qemu-0.7.0/bsd.orig/amd64/s_llrint.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/amd64/s_llrint.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,6 @@ -+#include -+__FBSDID("$FreeBSD: /tmp/pcvs/ports/emulators/qemu-devel/files/Attic/patch-libmath,v 1.4 2007-03-10 17:03:05 nox Exp $") -+ -+/* sizeof(long) == sizeof(long long) */ -+#define fn llrint -+#include "s_lrint.S" -diff -Nru qemu-0.7.0/bsd.orig/amd64/s_llrintf.S qemu-0.7.0/bsd/amd64/s_llrintf.S ---- qemu-0.7.0/bsd.orig/amd64/s_llrintf.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/amd64/s_llrintf.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,6 @@ -+#include -+__FBSDID("$FreeBSD: /tmp/pcvs/ports/emulators/qemu-devel/files/Attic/patch-libmath,v 1.4 2007-03-10 17:03:05 nox Exp $") -+ -+/* sizeof(long) == sizeof(long long) */ -+#define fn llrintf -+#include "s_lrintf.S" -diff -Nru qemu-0.7.0/bsd.orig/amd64/s_llrintl.S qemu-0.7.0/bsd/amd64/s_llrintl.S ---- qemu-0.7.0/bsd.orig/amd64/s_llrintl.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/amd64/s_llrintl.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,35 @@ -+/* Round argument to nearest integral value according to current rounding -+ direction. -+ Copyright (C) 1997, 2002 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+ -+ .text -+ENTRY(__llrintl) -+ fldt 8(%rsp) -+ fistpll -8(%rsp) -+ fwait -+ movq -8(%rsp),%rax -+ ret -+END(__llrintl) -+weak_alias (__llrintl, llrintl) -+strong_alias (__llrintl, __lrintl) -+weak_alias (__llrintl, lrintl) -+ -diff -Nru qemu-0.7.0/bsd.orig/amd64/s_lrint.S qemu-0.7.0/bsd/amd64/s_lrint.S ---- qemu-0.7.0/bsd.orig/amd64/s_lrint.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/amd64/s_lrint.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,36 @@ -+/*- -+ * Copyright (c) 2005 David Schultz -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+ -+#include -+ -+#ifndef fn -+__FBSDID("$FreeBSD: /tmp/pcvs/ports/emulators/qemu-devel/files/Attic/patch-libmath,v 1.4 2007-03-10 17:03:05 nox Exp $") -+#define fn lrint -+#endif -+ -+ENTRY(fn) -+ cvtsd2si %xmm0, %rax -+ ret -diff -Nru qemu-0.7.0/bsd.orig/amd64/s_lrintf.S qemu-0.7.0/bsd/amd64/s_lrintf.S ---- qemu-0.7.0/bsd.orig/amd64/s_lrintf.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/amd64/s_lrintf.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,36 @@ -+/*- -+ * Copyright (c) 2005 David Schultz -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+ -+#include -+ -+#ifndef fn -+__FBSDID("$FreeBSD: /tmp/pcvs/ports/emulators/qemu-devel/files/Attic/patch-libmath,v 1.4 2007-03-10 17:03:05 nox Exp $") -+#define fn lrintf -+#endif -+ -+ENTRY(fn) -+ cvtss2si %xmm0, %rax -+ ret -diff -Nru qemu-0.7.0/bsd.orig/amd64/s_lrintl.S qemu-0.7.0/bsd/amd64/s_lrintl.S ---- qemu-0.7.0/bsd.orig/amd64/s_lrintl.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/amd64/s_lrintl.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1 @@ -+/* Not needed, see s_llrintl.S. */ -diff -Nru qemu-0.7.0/bsd.orig/amd64/s_rintl.c qemu-0.7.0/bsd/amd64/s_rintl.c ---- qemu-0.7.0/bsd.orig/amd64/s_rintl.c Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/amd64/s_rintl.c Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,18 @@ -+/* -+ * Written by J.T. Conklin . -+ * Changes for long double by Ulrich Drepper -+ * Public domain. -+ */ -+ -+#include -+ -+long double -+__rintl (long double x) -+{ -+ long double res; -+ -+ asm ("frndint" : "=t" (res) : "0" (x)); -+ return res; -+} -+ -+weak_alias (__rintl, rintl) -diff -Nru qemu-0.7.0/bsd.orig/amd64/s_round.c qemu-0.7.0/bsd/amd64/s_round.c ---- qemu-0.7.0/bsd.orig/amd64/s_round.c Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/amd64/s_round.c Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,51 @@ -+/*- -+ * Copyright (c) 2003, Steven G. Kargl -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice unmodified, this list of conditions, and the following -+ * disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ */ -+ -+#include -+__FBSDID("$FreeBSD: /tmp/pcvs/ports/emulators/qemu-devel/files/Attic/patch-libmath,v 1.4 2007-03-10 17:03:05 nox Exp $"); -+ -+#include -+ -+double -+round(double x) -+{ -+ double t; -+ -+ if (!isfinite(x)) -+ return (x); -+ -+ if (x >= 0.0) { -+ t = floor(x); -+ if (t - x <= -0.5) -+ t += 1.0; -+ return (t); -+ } else { -+ t = floor(-x); -+ if (t + x <= -0.5) -+ t += 1.0; -+ return (-t); -+ } -+} -diff -Nru qemu-0.7.0/bsd.orig/amd64/s_sinl.S qemu-0.7.0/bsd/amd64/s_sinl.S ---- qemu-0.7.0/bsd.orig/amd64/s_sinl.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/amd64/s_sinl.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,31 @@ -+/* -+ * Written by J.T. Conklin . -+ * Public domain. -+ * -+ * Adapted for `long double' by Ulrich Drepper . -+ * Adapted for x86-64 by Andreas Jaeger . -+ */ -+ -+#include -+#include -+ -+ENTRY(__sinl) -+ fldt 8(%rsp) -+ fsin -+ fnstsw %ax -+ testl $0x400,%eax -+ jnz 1f -+ ret -+ .align ALIGNARG(4) -+1: fldpi -+ fadd %st(0) -+ fxch %st(1) -+2: fprem1 -+ fnstsw %ax -+ testl $0x400,%eax -+ jnz 2b -+ fstp %st(1) -+ fsin -+ ret -+END (__sinl) -+weak_alias (__sinl, sinl) -diff -Nru qemu-0.7.0/bsd.orig/amd64/s_tanl.S qemu-0.7.0/bsd/amd64/s_tanl.S ---- qemu-0.7.0/bsd.orig/amd64/s_tanl.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/amd64/s_tanl.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,34 @@ -+/* -+ * Written by J.T. Conklin . -+ * Public domain. -+ * -+ * Adapted for `long double' by Ulrich Drepper . -+ * Adapted for x86-64 by Andreas Jaeger . -+ */ -+ -+#include -+#include -+ -+RCSID("$NetBSD: $") -+ -+ENTRY(__tanl) -+ fldt 8(%rsp) -+ fptan -+ fnstsw %ax -+ testl $0x400,%eax -+ jnz 1f -+ fstp %st(0) -+ ret -+1: fldpi -+ fadd %st(0) -+ fxch %st(1) -+2: fprem1 -+ fstsw %ax -+ testl $0x400,%eax -+ jnz 2b -+ fstp %st(1) -+ fptan -+ fstp %st(0) -+ ret -+END (__tanl) -+weak_alias (__tanl, tanl) -diff -Nru qemu-0.7.0/bsd.orig/i386/e_atan2l.c qemu-0.7.0/bsd/i386/e_atan2l.c ---- qemu-0.7.0/bsd.orig/i386/e_atan2l.c Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/i386/e_atan2l.c Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,20 @@ -+/* -+ * Written by J.T. Conklin . -+ * Public domain. -+ * -+ * Adapted for `long double' by Ulrich Drepper . -+ */ -+ -+#include -+ -+long double -+__ieee754_atan2l (long double y, long double x) -+{ -+ long double res; -+ -+ asm ("fpatan" : "=t" (res) : "u" (y), "0" (x) : "st(1)"); -+ -+ return res; -+} -+ -+weak_alias(__ieee754_atan2l, atan2l) -diff -Nru qemu-0.7.0/bsd.orig/i386/e_logl.S qemu-0.7.0/bsd/i386/e_logl.S ---- qemu-0.7.0/bsd.orig/i386/e_logl.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/i386/e_logl.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,63 @@ -+/* -+ * Written by J.T. Conklin . -+ * Public domain. -+ * -+ * Adapted for `long double' by Ulrich Drepper . -+ */ -+ -+#include -+#include -+ -+RCSID("$NetBSD: $") -+ -+ -+#ifdef __ELF__ -+ .section .rodata -+#else -+ .text -+#endif -+ .align ALIGNARG(4) -+ ASM_TYPE_DIRECTIVE(one,@object) -+one: .double 1.0 -+ ASM_SIZE_DIRECTIVE(one) -+ /* It is not important that this constant is precise. It is only -+ a value which is known to be on the safe side for using the -+ fyl2xp1 instruction. */ -+ ASM_TYPE_DIRECTIVE(limit,@object) -+limit: .double 0.29 -+ ASM_SIZE_DIRECTIVE(limit) -+ -+ -+#ifdef PIC -+#define MO(op) op##@GOTOFF(%edx) -+#else -+#define MO(op) op -+#endif -+ -+ .text -+ENTRY(__ieee754_logl) -+ fldln2 // log(2) -+ fldt 4(%esp) // x : log(2) -+#ifdef PIC -+ call 1f -+1: popl %edx -+ addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx -+#endif -+ fld %st // x : x : log(2) -+ fsubl MO(one) // x-1 : x : log(2) -+ fld %st // x-1 : x-1 : x : log(2) -+ fabs // |x-1| : x-1 : x : log(2) -+ fcompl MO(limit) // x-1 : x : log(2) -+ fnstsw // x-1 : x : log(2) -+ andb $0x45, %ah -+ jz 2f -+ fstp %st(1) // x-1 : log(2) -+ fyl2xp1 // log(x) -+ ret -+ -+2: fstp %st(0) // x : log(2) -+ fyl2x // log(x) -+ ret -+END (__ieee754_logl) -+ -+weak_alias(__ieee754_logl,logl) -diff -Nru qemu-0.7.0/bsd.orig/i386/e_powl.S qemu-0.7.0/bsd/i386/e_powl.S ---- qemu-0.7.0/bsd.orig/i386/e_powl.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/i386/e_powl.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,341 @@ -+/* ix87 specific implementation of pow function. -+ Copyright (C) 1996, 1997, 1998, 1999, 2001, 2004 -+ Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ Contributed by Ulrich Drepper , 1996. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+ -+#ifdef __ELF__ -+ .section .rodata -+#else -+ .text -+#endif -+ -+ .align ALIGNARG(4) -+ ASM_TYPE_DIRECTIVE(infinity,@object) -+inf_zero: -+infinity: -+ .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f -+ ASM_SIZE_DIRECTIVE(infinity) -+ ASM_TYPE_DIRECTIVE(zero,@object) -+zero: .double 0.0 -+ ASM_SIZE_DIRECTIVE(zero) -+ ASM_TYPE_DIRECTIVE(minf_mzero,@object) -+minf_mzero: -+minfinity: -+ .byte 0, 0, 0, 0, 0, 0, 0xf0, 0xff -+mzero: -+ .byte 0, 0, 0, 0, 0, 0, 0, 0x80 -+ ASM_SIZE_DIRECTIVE(minf_mzero) -+ ASM_TYPE_DIRECTIVE(one,@object) -+one: .double 1.0 -+ ASM_SIZE_DIRECTIVE(one) -+ ASM_TYPE_DIRECTIVE(limit,@object) -+limit: .double 0.29 -+ ASM_SIZE_DIRECTIVE(limit) -+ ASM_TYPE_DIRECTIVE(p63,@object) -+p63: .byte 0, 0, 0, 0, 0, 0, 0xe0, 0x43 -+ ASM_SIZE_DIRECTIVE(p63) -+ -+#ifdef PIC -+#define MO(op) op##@GOTOFF(%ecx) -+#define MOX(op,x,f) op##@GOTOFF(%ecx,x,f) -+#else -+#define MO(op) op -+#define MOX(op,x,f) op(,x,f) -+#endif -+ -+ .text -+ENTRY(__ieee754_powl) -+ fldt 16(%esp) // y -+ fxam -+ -+#ifdef PIC -+ call 1f -+1: popl %ecx -+ addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx -+#endif -+ -+ fnstsw -+ movb %ah, %dl -+ andb $0x45, %ah -+ cmpb $0x40, %ah // is y == 0 ? -+ je 11f -+ -+ cmpb $0x05, %ah // is y == ±inf ? -+ je 12f -+ -+ cmpb $0x01, %ah // is y == NaN ? -+ je 30f -+ -+ fldt 4(%esp) // x : y -+ -+ subl $8,%esp -+ -+ fxam -+ fnstsw -+ movb %ah, %dh -+ andb $0x45, %ah -+ cmpb $0x40, %ah -+ je 20f // x is ±0 -+ -+ cmpb $0x05, %ah -+ je 15f // x is ±inf -+ -+ fxch // y : x -+ -+ /* fistpll raises invalid exception for |y| >= 1L<<63. */ -+ fld %st // y : y : x -+ fabs // |y| : y : x -+ fcompl MO(p63) // y : x -+ fnstsw -+ sahf -+ jnc 2f -+ -+ /* First see whether `y' is a natural number. In this case we -+ can use a more precise algorithm. */ -+ fld %st // y : y : x -+ fistpll (%esp) // y : x -+ fildll (%esp) // int(y) : y : x -+ fucomp %st(1) // y : x -+ fnstsw -+ sahf -+ jne 2f -+ -+ /* OK, we have an integer value for y. */ -+ popl %eax -+ popl %edx -+ orl $0, %edx -+ fstp %st(0) // x -+ jns 4f // y >= 0, jump -+ fdivrl MO(one) // 1/x (now referred to as x) -+ negl %eax -+ adcl $0, %edx -+ negl %edx -+4: fldl MO(one) // 1 : x -+ fxch -+ -+6: shrdl $1, %edx, %eax -+ jnc 5f -+ fxch -+ fmul %st(1) // x : ST*x -+ fxch -+5: fmul %st(0), %st // x*x : ST*x -+ shrl $1, %edx -+ movl %eax, %ecx -+ orl %edx, %ecx -+ jnz 6b -+ fstp %st(0) // ST*x -+ ret -+ -+ /* y is ±NAN */ -+30: fldt 4(%esp) // x : y -+ fldl MO(one) // 1.0 : x : y -+ fucomp %st(1) // x : y -+ fnstsw -+ sahf -+ je 31f -+ fxch // y : x -+31: fstp %st(1) -+ ret -+ -+ .align ALIGNARG(4) -+2: /* y is a real number. */ -+ fxch // x : y -+ fldl MO(one) // 1.0 : x : y -+ fld %st(1) // x : 1.0 : x : y -+ fsub %st(1) // x-1 : 1.0 : x : y -+ fabs // |x-1| : 1.0 : x : y -+ fcompl MO(limit) // 1.0 : x : y -+ fnstsw -+ fxch // x : 1.0 : y -+ sahf -+ ja 7f -+ fsub %st(1) // x-1 : 1.0 : y -+ fyl2xp1 // log2(x) : y -+ jmp 8f -+ -+7: fyl2x // log2(x) : y -+8: fmul %st(1) // y*log2(x) : y -+ fxam -+ fnstsw -+ andb $0x45, %ah -+ cmpb $0x05, %ah // is y*log2(x) == ±inf ? -+ je 28f -+ fst %st(1) // y*log2(x) : y*log2(x) -+ frndint // int(y*log2(x)) : y*log2(x) -+ fsubr %st, %st(1) // int(y*log2(x)) : fract(y*log2(x)) -+ fxch // fract(y*log2(x)) : int(y*log2(x)) -+ f2xm1 // 2^fract(y*log2(x))-1 : int(y*log2(x)) -+ faddl MO(one) // 2^fract(y*log2(x)) : int(y*log2(x)) -+ fscale // 2^fract(y*log2(x))*2^int(y*log2(x)) : int(y*log2(x)) -+ addl $8, %esp -+ fstp %st(1) // 2^fract(y*log2(x))*2^int(y*log2(x)) -+ ret -+ -+28: fstp %st(1) // y*log2(x) -+ fldl MO(one) // 1 : y*log2(x) -+ fscale // 2^(y*log2(x)) : y*log2(x) -+ addl $8, %esp -+ fstp %st(1) // 2^(y*log2(x)) -+ ret -+ -+ // pow(x,±0) = 1 -+ .align ALIGNARG(4) -+11: fstp %st(0) // pop y -+ fldl MO(one) -+ ret -+ -+ // y == ±inf -+ .align ALIGNARG(4) -+12: fstp %st(0) // pop y -+ fldt 4(%esp) // x -+ fabs -+ fcompl MO(one) // < 1, == 1, or > 1 -+ fnstsw -+ andb $0x45, %ah -+ cmpb $0x45, %ah -+ je 13f // jump if x is NaN -+ -+ cmpb $0x40, %ah -+ je 14f // jump if |x| == 1 -+ -+ shlb $1, %ah -+ xorb %ah, %dl -+ andl $2, %edx -+ fldl MOX(inf_zero, %edx, 4) -+ ret -+ -+ .align ALIGNARG(4) -+14: fldl MO(one) -+ ret -+ -+ .align ALIGNARG(4) -+13: fldt 4(%esp) // load x == NaN -+ ret -+ -+ .align ALIGNARG(4) -+ // x is ±inf -+15: fstp %st(0) // y -+ testb $2, %dh -+ jz 16f // jump if x == +inf -+ -+ // We must find out whether y is an odd integer. -+ fld %st // y : y -+ fistpll (%esp) // y -+ fildll (%esp) // int(y) : y -+ fucompp // -+ fnstsw -+ sahf -+ jne 17f -+ -+ // OK, the value is an integer, but is it odd? -+ popl %eax -+ popl %edx -+ andb $1, %al -+ jz 18f // jump if not odd -+ // It's an odd integer. -+ shrl $31, %edx -+ fldl MOX(minf_mzero, %edx, 8) -+ ret -+ -+ .align ALIGNARG(4) -+16: fcompl MO(zero) -+ addl $8, %esp -+ fnstsw -+ shrl $5, %eax -+ andl $8, %eax -+ fldl MOX(inf_zero, %eax, 1) -+ ret -+ -+ .align ALIGNARG(4) -+17: shll $30, %edx // sign bit for y in right position -+ addl $8, %esp -+18: shrl $31, %edx -+ fldl MOX(inf_zero, %edx, 8) -+ ret -+ -+ .align ALIGNARG(4) -+ // x is ±0 -+20: fstp %st(0) // y -+ testb $2, %dl -+ jz 21f // y > 0 -+ -+ // x is ±0 and y is < 0. We must find out whether y is an odd integer. -+ testb $2, %dh -+ jz 25f -+ -+ fld %st // y : y -+ fistpll (%esp) // y -+ fildll (%esp) // int(y) : y -+ fucompp // -+ fnstsw -+ sahf -+ jne 26f -+ -+ // OK, the value is an integer, but is it odd? -+ popl %eax -+ popl %edx -+ andb $1, %al -+ jz 27f // jump if not odd -+ // It's an odd integer. -+ // Raise divide-by-zero exception and get minus infinity value. -+ fldl MO(one) -+ fdivl MO(zero) -+ fchs -+ ret -+ -+25: fstp %st(0) -+26: addl $8, %esp -+27: // Raise divide-by-zero exception and get infinity value. -+ fldl MO(one) -+ fdivl MO(zero) -+ ret -+ -+ .align ALIGNARG(4) -+ // x is ±0 and y is > 0. We must find out whether y is an odd integer. -+21: testb $2, %dh -+ jz 22f -+ -+ fld %st // y : y -+ fistpll (%esp) // y -+ fildll (%esp) // int(y) : y -+ fucompp // -+ fnstsw -+ sahf -+ jne 23f -+ -+ // OK, the value is an integer, but is it odd? -+ popl %eax -+ popl %edx -+ andb $1, %al -+ jz 24f // jump if not odd -+ // It's an odd integer. -+ fldl MO(mzero) -+ ret -+ -+22: fstp %st(0) -+23: addl $8, %esp // Don't use 2 x pop -+24: fldl MO(zero) -+ ret -+ -+END(__ieee754_powl) -+ -+weak_alias(__ieee754_powl,powl) -diff -Nru qemu-0.7.0/bsd.orig/i386/e_remainderl.S qemu-0.7.0/bsd/i386/e_remainderl.S ---- qemu-0.7.0/bsd.orig/i386/e_remainderl.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/i386/e_remainderl.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,24 @@ -+/* -+ * Written by J.T. Conklin . -+ * Public domain. -+ * -+ * Adapted for `long double' by Ulrich Drepper . -+ */ -+ -+#include -+#include -+ -+RCSID("$NetBSD: $") -+ -+ENTRY(__ieee754_remainderl) -+ fldt 16(%esp) -+ fldt 4(%esp) -+1: fprem1 -+ fstsw %ax -+ sahf -+ jp 1b -+ fstp %st(1) -+ ret -+END (__ieee754_remainderl) -+ -+weak_alias(__ieee754_remainderl,remainderl) -diff -Nru qemu-0.7.0/bsd.orig/i386/e_sqrtl.c qemu-0.7.0/bsd/i386/e_sqrtl.c ---- qemu-0.7.0/bsd.orig/i386/e_sqrtl.c Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/i386/e_sqrtl.c Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,20 @@ -+/* -+ * Written by J.T. Conklin . -+ * Public domain. -+ * -+ * Adapted for `long double' by Ulrich Drepper . -+ */ -+ -+#include -+ -+long double -+__ieee754_sqrtl (long double x) -+{ -+ long double res; -+ -+ asm ("fsqrt" : "=t" (res) : "0" (x)); -+ -+ return res; -+} -+ -+weak_alias(__ieee754_sqrtl,sqrtl) -diff -Nru qemu-0.7.0/bsd.orig/i386/s_ceill.S qemu-0.7.0/bsd/i386/s_ceill.S ---- qemu-0.7.0/bsd.orig/i386/s_ceill.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/i386/s_ceill.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,27 @@ -+/* -+ * Based on code written by J.T. Conklin . -+ * Public domain. -+ */ -+ -+#include -+RCSID("$FreeBSD: /tmp/pcvs/ports/emulators/qemu-devel/files/Attic/patch-libmath,v 1.4 2007-03-10 17:03:05 nox Exp $") -+ -+ENTRY(ceill) -+ pushl %ebp -+ movl %esp,%ebp -+ subl $8,%esp -+ -+ fstcw -4(%ebp) /* store fpu control word */ -+ movw -4(%ebp),%dx -+ orw $0x0800,%dx /* round towards +oo */ -+ andw $0xfbff,%dx -+ movw %dx,-8(%ebp) -+ fldcw -8(%ebp) /* load modfied control word */ -+ -+ fldt 8(%ebp) /* round */ -+ frndint -+ -+ fldcw -4(%ebp) /* restore original control word */ -+ -+ leave -+ ret -diff -Nru qemu-0.7.0/bsd.orig/i386/s_cosl.S qemu-0.7.0/bsd/i386/s_cosl.S ---- qemu-0.7.0/bsd.orig/i386/s_cosl.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/i386/s_cosl.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,32 @@ -+/* -+ * Written by J.T. Conklin . -+ * Public domain. -+ * -+ * Adapted for `long double' by Ulrich Drepper . -+ */ -+ -+#include -+#include -+ -+RCSID("$NetBSD: $") -+ -+ENTRY(__cosl) -+ fldt 4(%esp) -+ fcos -+ fnstsw %ax -+ testl $0x400,%eax -+ jnz 1f -+ ret -+ .align ALIGNARG(4) -+1: fldpi -+ fadd %st(0) -+ fxch %st(1) -+2: fprem1 -+ fnstsw %ax -+ testl $0x400,%eax -+ jnz 2b -+ fstp %st(1) -+ fcos -+ ret -+END (__cosl) -+weak_alias (__cosl, cosl) -diff -Nru qemu-0.7.0/bsd.orig/i386/s_floorl.S qemu-0.7.0/bsd/i386/s_floorl.S ---- qemu-0.7.0/bsd.orig/i386/s_floorl.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/i386/s_floorl.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,27 @@ -+/* -+ * Based on code written by J.T. Conklin . -+ * Public domain. -+ */ -+ -+#include -+RCSID("$FreeBSD: /tmp/pcvs/ports/emulators/qemu-devel/files/Attic/patch-libmath,v 1.4 2007-03-10 17:03:05 nox Exp $") -+ -+ENTRY(floorl) -+ pushl %ebp -+ movl %esp,%ebp -+ subl $8,%esp -+ -+ fstcw -4(%ebp) /* store fpu control word */ -+ movw -4(%ebp),%dx -+ orw $0x0400,%dx /* round towards -oo */ -+ andw $0xf7ff,%dx -+ movw %dx,-8(%ebp) -+ fldcw -8(%ebp) /* load modfied control word */ -+ -+ fldt 8(%ebp) /* round */ -+ frndint -+ -+ fldcw -4(%ebp) /* restore original control word */ -+ -+ leave -+ ret -diff -Nru qemu-0.7.0/bsd.orig/i386/s_isnormal.c qemu-0.7.0/bsd/i386/s_isnormal.c ---- qemu-0.7.0/bsd.orig/i386/s_isnormal.c Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/i386/s_isnormal.c Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,85 @@ -+/*- -+ * Copyright (c) 2003 Mike Barcroft -+ * Copyright (c) 2002-2004 David Schultz -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ * -+ * $FreeBSD: /tmp/pcvs/ports/emulators/qemu-devel/files/Attic/patch-libmath,v 1.4 2007-03-10 17:03:05 nox Exp $ -+ */ -+ -+union IEEEf2bits { -+ float f; -+ struct { -+ unsigned int man :23; -+ unsigned int exp :8; -+ unsigned int sign :1; -+ } bits; -+}; -+ -+union IEEEd2bits { -+ double d; -+ struct { -+ unsigned int manl :32; -+ unsigned int manh :20; -+ unsigned int exp :11; -+ unsigned int sign :1; -+ } bits; -+}; -+ -+union IEEEl2bits { -+ long double e; -+ struct { -+ unsigned int manl :32; -+ unsigned int manh :32; -+ unsigned int exp :15; -+ unsigned int sign :1; -+ unsigned int junk :16; -+ } bits; -+}; -+ -+int -+__isnormal(double d) -+{ -+ union IEEEd2bits u; -+ -+ u.d = d; -+ return (u.bits.exp != 0 && u.bits.exp != 2047); -+} -+ -+int -+__isnormalf(float f) -+{ -+ union IEEEf2bits u; -+ -+ u.f = f; -+ return (u.bits.exp != 0 && u.bits.exp != 255); -+} -+ -+int -+__isnormall(long double e) -+{ -+ union IEEEl2bits u; -+ -+ u.e = e; -+ return (u.bits.exp != 0 && u.bits.exp != 32767); -+} -diff -Nru qemu-0.7.0/bsd.orig/i386/s_llrint.S qemu-0.7.0/bsd/i386/s_llrint.S ---- qemu-0.7.0/bsd.orig/i386/s_llrint.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/i386/s_llrint.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,36 @@ -+/*- -+ * Copyright (c) 2005 David Schultz -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+ -+#include -+RCSID("$FreeBSD: /tmp/pcvs/ports/emulators/qemu-devel/files/Attic/patch-libmath,v 1.4 2007-03-10 17:03:05 nox Exp $"); -+ -+ENTRY(llrint) -+ fldl 4(%esp) -+ subl $8,%esp -+ fistpll (%esp) -+ popl %eax -+ popl %edx -+ ret -diff -Nru qemu-0.7.0/bsd.orig/i386/s_llrintf.S qemu-0.7.0/bsd/i386/s_llrintf.S ---- qemu-0.7.0/bsd.orig/i386/s_llrintf.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/i386/s_llrintf.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,36 @@ -+/*- -+ * Copyright (c) 2005 David Schultz -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+ -+#include -+RCSID("$FreeBSD: /tmp/pcvs/ports/emulators/qemu-devel/files/Attic/patch-libmath,v 1.4 2007-03-10 17:03:05 nox Exp $") -+ -+ENTRY(llrintf) -+ flds 4(%esp) -+ subl $8,%esp -+ fistpll (%esp) -+ popl %eax -+ popl %edx -+ ret -diff -Nru qemu-0.7.0/bsd.orig/i386/s_llrintl.S qemu-0.7.0/bsd/i386/s_llrintl.S ---- qemu-0.7.0/bsd.orig/i386/s_llrintl.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/i386/s_llrintl.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,35 @@ -+/* Round argument to nearest integral value according to current rounding -+ direction. -+ Copyright (C) 1997 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ Contributed by Ulrich Drepper , 1997. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+ -+ .text -+ENTRY(__llrintl) -+ fldt 4(%esp) -+ subl $8, %esp -+ fistpll (%esp) -+ fwait -+ popl %eax -+ popl %edx -+ ret -+END(__llrintl) -+weak_alias (__llrintl, llrintl) -diff -Nru qemu-0.7.0/bsd.orig/i386/s_lrint.S qemu-0.7.0/bsd/i386/s_lrint.S ---- qemu-0.7.0/bsd.orig/i386/s_lrint.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/i386/s_lrint.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,35 @@ -+/*- -+ * Copyright (c) 2005 David Schultz -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+ -+#include -+RCSID("$FreeBSD: /tmp/pcvs/ports/emulators/qemu-devel/files/Attic/patch-libmath,v 1.4 2007-03-10 17:03:05 nox Exp $"); -+ -+ENTRY(lrint) -+ fldl 4(%esp) -+ subl $4,%esp -+ fistpl (%esp) -+ popl %eax -+ ret -diff -Nru qemu-0.7.0/bsd.orig/i386/s_lrintf.S qemu-0.7.0/bsd/i386/s_lrintf.S ---- qemu-0.7.0/bsd.orig/i386/s_lrintf.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/i386/s_lrintf.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,35 @@ -+/*- -+ * Copyright (c) 2005 David Schultz -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+ * SUCH DAMAGE. -+ */ -+ -+#include -+RCSID("$FreeBSD: /tmp/pcvs/ports/emulators/qemu-devel/files/Attic/patch-libmath,v 1.4 2007-03-10 17:03:05 nox Exp $") -+ -+ENTRY(lrintf) -+ flds 4(%esp) -+ subl $4,%esp -+ fistpl (%esp) -+ popl %eax -+ ret -diff -Nru qemu-0.7.0/bsd.orig/i386/s_lrintl.S qemu-0.7.0/bsd/i386/s_lrintl.S ---- qemu-0.7.0/bsd.orig/i386/s_lrintl.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/i386/s_lrintl.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,34 @@ -+/* Round argument to nearest integral value according to current rounding -+ direction. -+ Copyright (C) 1997 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ Contributed by Ulrich Drepper , 1997. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+ -+ .text -+ENTRY(__lrintl) -+ fldt 4(%esp) -+ subl $4, %esp -+ fistpl (%esp) -+ fwait -+ popl %eax -+ ret -+END(__lrintl) -+weak_alias (__lrintl, lrintl) -diff -Nru qemu-0.7.0/bsd.orig/i386/s_rintl.c qemu-0.7.0/bsd/i386/s_rintl.c ---- qemu-0.7.0/bsd.orig/i386/s_rintl.c Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/i386/s_rintl.c Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,18 @@ -+/* -+ * Written by J.T. Conklin . -+ * Changes for long double by Ulrich Drepper -+ * Public domain. -+ */ -+ -+#include -+ -+long double -+__rintl (long double x) -+{ -+ long double res; -+ -+ asm ("frndint" : "=t" (res) : "0" (x)); -+ return res; -+} -+ -+weak_alias (__rintl, rintl) -diff -Nru qemu-0.7.0/bsd.orig/i386/s_round.c qemu-0.7.0/bsd/i386/s_round.c ---- qemu-0.7.0/bsd.orig/i386/s_round.c Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/i386/s_round.c Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,51 @@ -+/*- -+ * Copyright (c) 2003, Steven G. Kargl -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice unmodified, this list of conditions, and the following -+ * disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ */ -+ -+#include -+__FBSDID("$FreeBSD: /tmp/pcvs/ports/emulators/qemu-devel/files/Attic/patch-libmath,v 1.4 2007-03-10 17:03:05 nox Exp $"); -+ -+#include -+ -+double -+round(double x) -+{ -+ double t; -+ -+ if (!isfinite(x)) -+ return (x); -+ -+ if (x >= 0.0) { -+ t = floor(x); -+ if (t - x <= -0.5) -+ t += 1.0; -+ return (t); -+ } else { -+ t = floor(-x); -+ if (t + x <= -0.5) -+ t += 1.0; -+ return (-t); -+ } -+} -diff -Nru qemu-0.7.0/bsd.orig/i386/s_sinl.S qemu-0.7.0/bsd/i386/s_sinl.S ---- qemu-0.7.0/bsd.orig/i386/s_sinl.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/i386/s_sinl.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,32 @@ -+/* -+ * Written by J.T. Conklin . -+ * Public domain. -+ * -+ * Adapted for `long double' by Ulrich Drepper . -+ */ -+ -+#include -+#include -+ -+RCSID("$NetBSD: $") -+ -+ENTRY(__sinl) -+ fldt 4(%esp) -+ fsin -+ fnstsw %ax -+ testl $0x400,%eax -+ jnz 1f -+ ret -+ .align ALIGNARG(4) -+1: fldpi -+ fadd %st(0) -+ fxch %st(1) -+2: fprem1 -+ fnstsw %ax -+ testl $0x400,%eax -+ jnz 2b -+ fstp %st(1) -+ fsin -+ ret -+END (__sinl) -+weak_alias (__sinl, sinl) -diff -Nru qemu-0.7.0/bsd.orig/i386/s_tanl.S qemu-0.7.0/bsd/i386/s_tanl.S ---- qemu-0.7.0/bsd.orig/i386/s_tanl.S Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/i386/s_tanl.S Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,33 @@ -+/* -+ * Written by J.T. Conklin . -+ * Public domain. -+ * -+ * Adapted for `long double' by Ulrich Drepper . -+ */ -+ -+#include -+#include -+ -+RCSID("$NetBSD: $") -+ -+ENTRY(__tanl) -+ fldt 4(%esp) -+ fptan -+ fnstsw %ax -+ testl $0x400,%eax -+ jnz 1f -+ fstp %st(0) -+ ret -+1: fldpi -+ fadd %st(0) -+ fxch %st(1) -+2: fprem1 -+ fstsw %ax -+ testl $0x400,%eax -+ jnz 2b -+ fstp %st(1) -+ fptan -+ fstp %st(0) -+ ret -+END (__tanl) -+weak_alias (__tanl, tanl) -diff -Nru qemu-0.7.0/bsd.orig/sysdep.h qemu-0.7.0/bsd/sysdep.h ---- qemu-0.7.0/bsd.orig/sysdep.h Wed Dec 31 19:00:00 1969 -+++ qemu-0.7.0/bsd/sysdep.h Fri Apr 29 02:11:27 2005 -@@ -0,0 +1,20 @@ -+#ifndef _QEMU_BSD_SYSDEP_H_ -+#define _QEMU_BSD_SYSDEP_H_ -+ -+#include -+ -+#define HAVE_ELF -+ -+#ifdef __ASSEMBLER__ -+#define ALIGNARG(log2) 1< -+#include -+#include -+ -+long double __ldexpl(long double x, int expn) -+{ -+ long double res; -+ if (!isfinite (x) || x == 0.0L) -+ return x; -+ -+ __asm__ ("fscale" -+ : "=t" (res) -+ : "0" (x), "u" ((long double) expn)); -+ -+ if (!isfinite (res) || res == 0.0L) -+ errno = ERANGE; -+ -+ return res; -+} -+ -+weak_alias(__ldexpl,ldexpl) -Index: qemu/bsd/amd64/s_ldexpl.c -@@ -0,0 +1,21 @@ -+#include -+#include -+#include -+ -+long double __ldexpl(long double x, int expn) -+{ -+ long double res; -+ if (!isfinite (x) || x == 0.0L) -+ return x; -+ -+ __asm__ ("fscale" -+ : "=t" (res) -+ : "0" (x), "u" ((long double) expn)); -+ -+ if (!isfinite (res) || res == 0.0L) -+ errno = ERANGE; -+ -+ return res; -+} -+ -+weak_alias(__ldexpl,ldexpl) diff --git a/emulators/qemu-devel/files/patch-libmath_FreeBSD-version b/emulators/qemu-devel/files/patch-libmath_FreeBSD-version deleted file mode 100644 index 223199715c0f..000000000000 --- a/emulators/qemu-devel/files/patch-libmath_FreeBSD-version +++ /dev/null @@ -1,151 +0,0 @@ -diff -ru qemu.orig/bsd/Makefile qemu/bsd/Makefile ---- qemu.orig/bsd/Makefile 2009-01-19 23:30:09.124413041 -0600 -+++ qemu/bsd/Makefile 2009-01-19 23:40:20.180704580 -0600 -@@ -1,23 +1,90 @@ --SRCS= ${MACHINE_ARCH}/e_atan2l.c \ -- ${MACHINE_ARCH}/e_logl.S \ -- ${MACHINE_ARCH}/e_powl.S \ -- ${MACHINE_ARCH}/e_remainderl.S \ -- ${MACHINE_ARCH}/e_sqrtl.c \ -- ${MACHINE_ARCH}/s_ceill.S \ -- ${MACHINE_ARCH}/s_cosl.S \ -- ${MACHINE_ARCH}/s_floorl.S \ -- ${MACHINE_ARCH}/s_isnormal.c \ -- ${MACHINE_ARCH}/s_llrint.S \ -- ${MACHINE_ARCH}/s_llrintf.S \ -- ${MACHINE_ARCH}/s_llrintl.S \ -- ${MACHINE_ARCH}/s_lrint.S \ -- ${MACHINE_ARCH}/s_lrintf.S \ -- ${MACHINE_ARCH}/s_lrintl.S \ -- ${MACHINE_ARCH}/s_rintl.c \ -- ${MACHINE_ARCH}/s_round.c \ -- ${MACHINE_ARCH}/s_sinl.S \ -- ${MACHINE_ARCH}/s_tanl.S \ -- ${MACHINE_ARCH}/s_ldexpl.c -+AWK= /usr/bin/awk -+SYSCTL= /sbin/sysctl -+ -+.if !defined(OSVERSION) -+.if exists(/usr/include/sys/param.h) -+OSVERSION!= ${AWK} '/^\#define[[:blank:]]__FreeBSD_version/ {print $$3}' < /usr/include/sys/param.h -+.elif exists(/usr/src/sys/sys/param.h) -+OSVERSION!= ${AWK} '/^\#define[[:blank::]]__FreeBSD_version/ {print $$3}' < /usr/src/sys/sys/param.h -+.else -+OSVERSION!= ${SYSCTL} -n kern.osreldate -+.endif -+.endif -+ -+# Need to be implemented -+_logl= ${MACHINE_ARCH}/e_logl.S -+_powl= ${MACHINE_ARCH}/e_powl.S -+ -+# Implemented in -CURRENT -+.if ${OSVERSION} < 800042 -+_atan2l= ${MACHINE_ARCH}/e_atan2l.c -+.endif -+ -+.if ${OSVERSION} < 800030 -+_remainderl= ${MACHINE_ARCH}/e_remainderl.S -+.endif -+ -+.if ${OSVERSION} < 800025 -+_sqrtl= ${MACHINE_ARCH}/e_sqrtl.c -+.endif -+ -+.if ${OSVERSION} < 800022 -+_cosl= ${MACHINE_ARCH}/s_cosl.S -+_sinl= ${MACHINE_ARCH}/s_sinl.S -+_tanl= ${MACHINE_ARCH}/s_tanl.S -+.endif -+ -+.if ${OSVERSION} < 800012 -+_lrintl= ${MACHINE_ARCH}/s_lrintl.S -+_llrintl= ${MACHINE_ARCH}/s_llrintl.S -+_rintl= ${MACHINE_ARCH}/s_rintl.c -+.endif -+ -+.if ${OSVERSION} < 600020 -+_ldexpl= ${MACHINE_ARCH}/s_ldexpl.c -+.endif -+ -+.if ${OSVERSION} < 600008 -+_ceill= ${MACHINE_ARCH}/s_ceill.S -+_floorl= ${MACHINE_ARCH}/s_floorl.S -+_llrint= ${MACHINE_ARCH}/s_llrint.S -+_llrintf= ${MACHINE_ARCH}/s_llrintf.S -+_lrint= ${MACHINE_ARCH}/s_lrint.S -+_lrintf= ${MACHINE_ARCH}/s_lrintf.S -+.endif -+ -+.if ${OSVERSION} < 502121 -+_isnormal= ${MACHINE_ARCH}/s_isnormal.c -+.endif -+ -+.if ${OSVERSION} < 502114 -+_round= ${MACHINE_ARCH}/s_round.c -+.endif -+ -+#.if ${OSVERSION} < 501113 -+#_fabsl= ${MACHINE_ARCH}/e_fabsl.c -+#.endif -+ -+SRCS= ${_atan2l} \ -+ ${_logl} \ -+ ${_powl} \ -+ ${_remainderl} \ -+ ${_sqrtl} \ -+ ${_ceill} \ -+ ${_cosl} \ -+ ${_floorl} \ -+ ${_isnormal} \ -+ ${_llrint} \ -+ ${_llrintf} \ -+ ${_llrintl} \ -+ ${_lrint} \ -+ ${_lrintf} \ -+ ${_lrintl} \ -+ ${_rintl} \ -+ ${_round} \ -+ ${_sinl} \ -+ ${_tanl} \ -+ ${_ldexpl} - - OBJS= ${SRCS:R:S/$/.o/} - -Index: qemu/fpu/softfloat-native.h -@@ -1,17 +1,29 @@ -+#ifndef SOFTFLOAT_NATIVE_H -+#define SOFTFLOAT_NATIVE_H -+ - /* Native implementation of soft float functions */ - #include - - #if (defined(CONFIG_BSD) && !defined(__APPLE__) && !defined(__GLIBC__)) \ - || defined(CONFIG_SOLARIS) - #ifdef __FreeBSD__ - #include -+#if __FreeBSD_version < 501113 - long double fabsl(long double x); -+#endif -+#if __FreeBSD_version < 800030 - long double remainderl(long double x, long double y); -+#endif -+#if __FreeBSD_version < 800025 - long double sqrtl(long double x); -+#endif -+#if __FreeBSD_version < 800012 - long double rintl(long double x); - long lrintl(long double x); - long long llrintl(long double x); - #endif -+#endif -+#endif - - #if (defined(CONFIG_BSD) && !defined(__APPLE__) && \ - (!defined(__FreeBSD__) || __FreeBSD_version < 500000)) || \ -@@ -518,3 +529,5 @@ - } - - #endif -+ -+#endif /* SOFTFLOAT_NATIVE_H */ diff --git a/emulators/qemu-devel/files/patch-sgabios-read-only-rom16.ld b/emulators/qemu-devel/files/patch-sgabios-read-only-rom16.ld new file mode 100644 index 000000000000..624d8273a32e --- /dev/null +++ b/emulators/qemu-devel/files/patch-sgabios-read-only-rom16.ld @@ -0,0 +1,15 @@ +Index: a/../sgabios-read-only/rom16.ld +=================================================================== +--- sgabios-read-only/rom16.ld (revision 8) ++++ sgabios-read-only/rom16.ld (working copy) +@@ -3,8 +3,8 @@ + */ + + /* Script for -z combreloc: combine and sort reloc sections */ +-OUTPUT_FORMAT("elf32-i386", "elf32-i386", +- "elf32-i386") ++OUTPUT_FORMAT("elf32-i386-freebsd", "elf32-i386-freebsd", ++ "elf32-i386-freebsd") + OUTPUT_ARCH(i386) + EXTERN(_start) + ENTRY(_start) diff --git a/emulators/qemu-devel/files/pcap-client-type.sed b/emulators/qemu-devel/files/pcap-client-type.sed index cf593878e5d4..135de3cdd926 100644 --- a/emulators/qemu-devel/files/pcap-client-type.sed +++ b/emulators/qemu-devel/files/pcap-client-type.sed @@ -1,2 +1,2 @@ -/^ NET_CLIENT_TYPE_DUMP$/i\ +/^ NET_CLIENT_TYPE_DUMP,$/i\ \ NET_CLIENT_TYPE_PCAP, diff --git a/emulators/qemu-devel/files/pcap-patch b/emulators/qemu-devel/files/pcap-patch index 0b9fecc89a39..42873b6f8d49 100644 --- a/emulators/qemu-devel/files/pcap-patch +++ b/emulators/qemu-devel/files/pcap-patch @@ -1,16 +1,16 @@ --- configure.orig 2010-01-29 14:36:00.000000000 -0500 +++ configure 2010-01-29 14:36:00.000000000 -0500 -@@ -174,6 +174,9 @@ trace_backend="nop" - trace_file="trace" - spice="" - rbd="" +@@ -180,6 +180,9 @@ smartcard_nss="" + usb_redir="" + opengl="" + guest_agent="yes" +pcap="no" +pcap_create="no" +bpf="no" # parse CC options first for opt do -@@ -592,6 +595,8 @@ for opt do +@@ -611,6 +614,8 @@ for opt do ;; --enable-vnc-thread) vnc_thread="yes" ;; @@ -19,7 +19,7 @@ --disable-slirp) slirp="no" ;; --disable-uuid) uuid="no" -@@ -1269,6 +1274,49 @@ EOF +@@ -1438,6 +1443,49 @@ EOF fi ########################################## @@ -67,9 +67,9 @@ + +########################################## # VNC TLS detection - if test "$vnc_tls" != "no" ; then + if test "$vnc" = "yes" -a "$vnc_tls" != "no" ; then cat > $TMPC <> $config_host_mak fi @@ -87,8 +87,8 @@ QEMU_INCLUDES="-I\$(SRC_PATH)/slirp $QEMU_INCLUDES" Index: net.c @@ -37,6 +37,11 @@ - #include "qemu_socket.h" #include "hw/qdev.h" + #include "iov.h" +#include +#ifdef __FreeBSD__ @@ -98,7 +98,7 @@ Index: net.c static QTAILQ_HEAD(, VLANState) vlans; static QTAILQ_HEAD(, VLANClientState) non_vlan_clients; -@@ -820,6 +825,226 @@ static int net_init_nic(QemuOpts *opts, +@@ -797,6 +802,226 @@ static int net_init_nic(QemuOpts *opts, return idx; } @@ -325,12 +325,12 @@ Index: net.c #define NET_COMMON_PARAMS_DESC \ { \ .name = "type", \ -@@ -988,6 +1213,20 @@ static const struct { - #endif /* _WIN32 */ +@@ -973,6 +1198,21 @@ static const struct { { /* end of list */ } }, + }, +#ifdef CONFIG_PCAP -+ }, { ++ [NET_CLIENT_TYPE_PCAP] = { + .type = "pcap", + .init = net_init_pcap, + .desc = { @@ -342,11 +342,12 @@ Index: net.c + }, + { /* end of list */ } + }, ++ }, +#endif - }, { + [NET_CLIENT_TYPE_SOCKET] = { .type = "socket", .init = net_init_socket, -@@ -1314,6 +1553,7 @@ void net_check_clients(void) +@@ -1343,6 +1583,7 @@ void net_check_clients(void) case NET_CLIENT_TYPE_TAP: case NET_CLIENT_TYPE_SOCKET: case NET_CLIENT_TYPE_VDE: diff --git a/emulators/qemu-devel/pkg-descr b/emulators/qemu-devel/pkg-descr index c26d1bed623b..b7d04211a7db 100644 --- a/emulators/qemu-devel/pkg-descr +++ b/emulators/qemu-devel/pkg-descr @@ -16,4 +16,4 @@ As QEMU requires no host kernel patches to run, it is very safe and easy to use. See also the preconfigured system images on http://oszoo.org/ Many live cd isos also work. -WWW: http://www.nongnu.org/qemu/ +WWW: http://wiki.qemu.org/Main_Page diff --git a/emulators/qemu-devel/pkg-message b/emulators/qemu-devel/pkg-message index 0d6b8f58b8e4..4a351e2aeca6 100644 --- a/emulators/qemu-devel/pkg-message +++ b/emulators/qemu-devel/pkg-message @@ -66,6 +66,35 @@ FreeBSD host notes devfs_system_ruleset="ugen_ruleset" +- If you want to test the new (in 0.15.0) usb network redirection (USBREDIR + option) see this thread by Hans de Goede redhat.com>: + + http://thread.gmane.org/gmane.comp.emulators.qemu/110176/focus=110183 + + Quote: + + Example usage: + + 1) Start usbredirserver for a usb device: + sudo usbredirserver 045e:0772 + 2) Start qemu with usb2 support + a chardev talking to usbredirserver + + a usb-redir device using this chardev: + qemu ... \ + -readconfig docs/ich9-ehci-uhci.cfg \ + -chardev socket,id=usbredirchardev,host=localhost,port=4000 \ + -device usb-redir,chardev=usbredirchardev,id=usbredirdev + + [you would replace docs/ich9-ehci-uhci.cfg with e.g. + /usr/local/share/doc/qemu/docs/ich9-ehci-uhci.cfg, but turns out + ehci seems broken for me here with FreeBSD guests at least, I get: + + FETCHENTRY: entry at 22C5484 is of type 2 which is not supported yet +processing error - resetting ehci HC + Assertion failed: (0), function ehci_advance_state, file /data/ports/emulators/qemu-devel/work/qemu-0.15.0/hw/usb-ehci.c, line 2045. + + Starting the same without ehci (-readconfig) works, tho usbredirserver + crashes when qemu exits.] + - Still usb: since the hub is no longer attached to the uchi controller and the wakeup mechanism, resume interrupt is not implemented yet linux guests will suspend the bus, i.e. they wont see devices usb_add'ed after its diff --git a/emulators/qemu-devel/pkg-plist b/emulators/qemu-devel/pkg-plist index 8f0206e40690..5f15d7ea8dd3 100644 --- a/emulators/qemu-devel/pkg-plist +++ b/emulators/qemu-devel/pkg-plist @@ -1,11 +1,14 @@ bin/qemu +bin/qemu-ga bin/qemu-img bin/qemu-io bin/qemu-nbd bin/qemu-system-arm bin/qemu-system-cris +bin/qemu-system-lm32 bin/qemu-system-m68k bin/qemu-system-microblaze +bin/qemu-system-microblazeel bin/qemu-system-mips bin/qemu-system-mips64 bin/qemu-system-mips64el @@ -13,6 +16,7 @@ bin/qemu-system-mipsel bin/qemu-system-ppc bin/qemu-system-ppc64 bin/qemu-system-ppcemb +bin/qemu-system-s390x bin/qemu-system-sh4 bin/qemu-system-sh4eb bin/qemu-system-sparc @@ -32,9 +36,6 @@ etc/qemu-ifdown.sample etc/qemu/target-x86_64.conf.sample @exec if [ ! -f %D/etc/qemu/target-x86_64.conf ] ; then cp -p %D/%F %B/etc/qemu/target-x86_64.conf; fi @dirrmtry etc/qemu -%%PORTDOCS%%%%DOCSDIR%%/qemu-doc.html -%%PORTDOCS%%%%DOCSDIR%%/qemu-tech.html -%%PORTDOCS%%@dirrm %%DOCSDIR%% %%DATADIR%%/bios.bin %%DATADIR%%/vgabios.bin %%DATADIR%%/vgabios-cirrus.bin @@ -45,15 +46,20 @@ etc/qemu/target-x86_64.conf.sample %%DATADIR%%/openbios-ppc %%DATADIR%%/openbios-sparc32 %%DATADIR%%/openbios-sparc64 -%%DATADIR%%/pxe-e1000.bin -%%DATADIR%%/pxe-ne2k_pci.bin -%%DATADIR%%/pxe-rtl8139.bin -%%DATADIR%%/pxe-pcnet.bin -%%DATADIR%%/pxe-virtio.bin -%%DATADIR%%/gpxe-eepro100-80861209.rom +%%DATADIR%%/pxe-e1000.rom +%%DATADIR%%/pxe-eepro100.rom +%%DATADIR%%/pxe-ne2k_pci.rom +%%DATADIR%%/pxe-rtl8139.rom +%%DATADIR%%/pxe-pcnet.rom +%%DATADIR%%/pxe-virtio.rom +%%DATADIR%%/petalogix-ml605.dtb +%%DATADIR%%/mpc8544ds.dtb +%%DATADIR%%/spapr-rtas.bin +%%DATADIR%%/slof.bin %%DATADIR%%/s390-zipl.rom %%DATADIR%%/linuxboot.bin %%DATADIR%%/multiboot.bin +%%DATADIR%%/sgabios.bin %%DATADIR%%/petalogix-s3adsp1800.dtb %%DATADIR%%/bamboo.dtb %%DATADIR%%/keymaps/ar