mirror of
https://git.freebsd.org/ports.git
synced 2025-05-22 11:48:35 -04:00
115 lines
2.8 KiB
Text
115 lines
2.8 KiB
Text
Index: qemu/configure
|
|
===================================================================
|
|
RCS file: /cvsroot/qemu/qemu/configure,v
|
|
retrieving revision 1.39
|
|
diff -w -u -d -r1.39 configure
|
|
--- configure 20 May 2004 13:23:39 -0000 1.39
|
|
+++ configure 21 May 2004 15:00:41 -0000
|
|
@@ -93,7 +93,7 @@
|
|
|
|
if [ "$bsd" = "yes" ] ; then
|
|
make="gmake"
|
|
- target_list="i386-softmmu"
|
|
+ target_list="i386-softmmu ppc-softmmu"
|
|
fi
|
|
|
|
# find source path
|
|
Index: qemu/dyngen-exec.h
|
|
===================================================================
|
|
RCS file: /cvsroot/qemu/qemu/dyngen-exec.h,v
|
|
retrieving revision 1.12
|
|
diff -w -u -d -r1.12 dyngen-exec.h
|
|
--- dyngen-exec.h 12 May 2004 19:32:15 -0000 1.12
|
|
+++ dyngen-exec.h 21 May 2004 15:00:41 -0000
|
|
@@ -21,6 +21,8 @@
|
|
#define __DYNGEN_EXEC_H__
|
|
|
|
#include <stddef.h>
|
|
+#include <stdio.h>
|
|
+#include "config.h"
|
|
|
|
typedef unsigned char uint8_t;
|
|
typedef unsigned short uint16_t;
|
|
@@ -54,9 +56,6 @@
|
|
#define UINT32_MAX (4294967295U)
|
|
#define UINT64_MAX ((uint64_t)(18446744073709551615))
|
|
|
|
-typedef struct FILE FILE;
|
|
-extern int fprintf(FILE *, const char *, ...);
|
|
-extern int printf(const char *, ...);
|
|
#undef NULL
|
|
#define NULL 0
|
|
#ifdef _BSD
|
|
Index: qemu/target-ppc/op_helper.c
|
|
===================================================================
|
|
RCS file: /cvsroot/qemu/qemu/target-ppc/op_helper.c,v
|
|
retrieving revision 1.6
|
|
diff -w -u -d -r1.6 op_helper.c
|
|
--- target-ppc/op_helper.c 21 May 2004 12:59:31 -0000 1.6
|
|
+++ target-ppc/op_helper.c 21 May 2004 15:00:49 -0000
|
|
@@ -210,6 +210,22 @@
|
|
}
|
|
/* TODO: update FEX & VX */
|
|
/* Set rounding mode */
|
|
+#ifdef _BSD
|
|
+ switch(env->fpscr[0] & 0x3) {
|
|
+ case 0:
|
|
+ fpsetround(FP_RN);
|
|
+ break;
|
|
+ case 1:
|
|
+ fpsetround(FP_RZ);
|
|
+ break;
|
|
+ case 2:
|
|
+ fpsetround(FP_RP);
|
|
+ break;
|
|
+ case 3:
|
|
+ fpsetround(FP_RM);
|
|
+ break;
|
|
+ }
|
|
+#else
|
|
switch (env->fpscr[0] & 0x3) {
|
|
case 0:
|
|
/* Best approximation (round to nearest) */
|
|
@@ -228,6 +244,7 @@
|
|
fesetround(FE_DOWNWARD);
|
|
break;
|
|
}
|
|
+#endif
|
|
}
|
|
|
|
void do_fctiw (void)
|
|
@@ -253,9 +270,13 @@
|
|
double d;
|
|
uint64_t i;
|
|
} *p = (void *)&FT1;
|
|
+#ifdef _BSD
|
|
+ int cround = fpgetround();
|
|
+ fpsetround(FP_RZ);
|
|
+#else
|
|
int cround = fegetround();
|
|
-
|
|
fesetround(FE_TOWARDZERO);
|
|
+#endif
|
|
if (FT0 > (double)0x7FFFFFFF)
|
|
p->i = 0x7FFFFFFFULL << 32;
|
|
else if (FT0 < -(double)0x80000000)
|
|
@@ -264,7 +285,11 @@
|
|
p->i = 0;
|
|
p->i |= (uint32_t)FT0;
|
|
FT0 = p->d;
|
|
+#ifdef _BSD
|
|
+ fpsetround(cround);
|
|
+#else
|
|
fesetround(cround);
|
|
+#endif
|
|
}
|
|
|
|
void do_fnmadds (void)
|
|
@@ -379,7 +404,6 @@
|
|
|
|
/*****************************************************************************/
|
|
/* Special helpers for debug */
|
|
-extern FILE *stdout;
|
|
|
|
void dump_state (void)
|
|
{
|