Update tme to 0.6. Ok'ed by skrll@.
See fredette's annoucement for details: http://mail-index.netbsd.org/port-sparc/2007/09/07/0000.html >> The new version of tme, 0.6, fixes many bugs in the Sun 3 emulation, >> and can also emulate a SPARCstation 2. NetBSD 3.x seems to run pretty >> well on the different emulations.
This commit is contained in:
parent
4ec0595b67
commit
01822829fc
28 changed files with 27 additions and 1654 deletions
|
@ -1,16 +1,16 @@
|
|||
# $NetBSD: Makefile,v 1.14 2007/03/17 13:44:17 tsutsui Exp $
|
||||
# $NetBSD: Makefile,v 1.15 2007/09/07 14:11:51 tsutsui Exp $
|
||||
#
|
||||
|
||||
DISTNAME= tme-0.4
|
||||
PKGREVISION= 3
|
||||
DISTNAME= tme-0.6
|
||||
PKGREVISION= 0
|
||||
CATEGORIES= emulators
|
||||
MASTER_SITES= http://theory.lcs.mit.edu/~fredette/tme/
|
||||
MASTER_SITES= http://csail.mit.edu/~fredette/tme/
|
||||
|
||||
MAINTAINER= skrll@NetBSD.org
|
||||
# Please do not assign PR's for this package to skrll.
|
||||
# Instead, assign them to the package author, fredette.
|
||||
|
||||
HOMEPAGE= http://theory.lcs.mit.edu/~fredette/tme/
|
||||
HOMEPAGE= http://csail.mit.edu/~fredette/tme/
|
||||
COMMENT= The Machine Emulator
|
||||
|
||||
USE_PKGLOCALEDIR= yes
|
||||
|
@ -19,9 +19,6 @@ GNU_CONFIGURE= yes
|
|||
USE_TOOLS+= gmake perl:run
|
||||
|
||||
CONFIGURE_ARGS+= --disable-debug
|
||||
CONFIGURE_ARGS+= ac_cv_shiftmax_int8_t=8
|
||||
CONFIGURE_ARGS+= ac_cv_shiftmax_int16_t=16
|
||||
CONFIGURE_ARGS+= ac_cv_shiftmax_int32_t=32
|
||||
|
||||
BUILDLINK_DEPMETHOD.libXt?= build
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
@comment $NetBSD: PLIST,v 1.3 2005/07/27 07:29:26 skrll Exp $
|
||||
@comment $NetBSD: PLIST,v 1.4 2007/09/07 14:11:51 tsutsui Exp $
|
||||
bin/tme-sun-eeprom
|
||||
bin/tme-sun-idprom
|
||||
bin/tmesh
|
||||
include/tme/atomics.h
|
||||
include/tme/common.h
|
||||
include/tme/connection.h
|
||||
include/tme/element.h
|
||||
|
@ -20,19 +19,26 @@ include/tme/generic/serial.h
|
|||
include/tme/generic/tape.h
|
||||
include/tme/hash.h
|
||||
include/tme/ic/am9513.h
|
||||
include/tme/ic/bt458.h
|
||||
include/tme/ic/i825x6.h
|
||||
include/tme/ic/ieee754-auto.h
|
||||
include/tme/ic/ieee754-ops-auto.h
|
||||
include/tme/ic/ieee754.h
|
||||
include/tme/ic/isil7170.h
|
||||
include/tme/ic/m68k.h
|
||||
include/tme/ic/mk48txx.h
|
||||
include/tme/ic/mm58167.h
|
||||
include/tme/ic/nec765.h
|
||||
include/tme/ic/sparc.h
|
||||
include/tme/ic/z8530.h
|
||||
include/tme/log.h
|
||||
include/tme/machine/sun.h
|
||||
include/tme/misc.h
|
||||
include/tme/module.h
|
||||
include/tme/memory-auto.h
|
||||
include/tme/memory.h
|
||||
include/tme/scsi/scsi-cdb.h
|
||||
include/tme/scsi/scsi-cdrom.h
|
||||
include/tme/scsi/scsi-device.h
|
||||
include/tme/scsi/scsi-disk.h
|
||||
include/tme/scsi/scsi-msg.h
|
||||
|
@ -51,20 +57,30 @@ lib/tme/tme_generic.la
|
|||
lib/tme/tme_host_bsd.la
|
||||
lib/tme/tme_host_gtk.la
|
||||
lib/tme/tme_host_posix.la
|
||||
lib/tme/tme_bus_sbus.la
|
||||
lib/tme/tme_ic_am7930.la
|
||||
lib/tme/tme_ic_am7990.la
|
||||
lib/tme/tme_ic_am9513.la
|
||||
lib/tme/tme_ic_i825x6.la
|
||||
lib/tme/tme_ic_isil7170.la
|
||||
lib/tme/tme_ic_lsi64854.la
|
||||
lib/tme/tme_ic_m68k.la
|
||||
lib/tme/tme_ic_mk48txx.la
|
||||
lib/tme/tme_ic_mm58167.la
|
||||
lib/tme/tme_ic_ncr5380.la
|
||||
lib/tme/tme_ic_ncr53c9x.la
|
||||
lib/tme/tme_ic_nec765.la
|
||||
lib/tme/tme_ic_sparc.la
|
||||
lib/tme/tme_ic_z8530.la
|
||||
lib/tme/tme_machine_sun2.la
|
||||
lib/tme/tme_machine_sun3.la
|
||||
lib/tme/tme_machine_sun4.la
|
||||
lib/tme/tme_scsi.la
|
||||
lib/tme/tme_serial_kb.la
|
||||
lib/tme/tmeconfig.h
|
||||
share/examples/tme/SUN2-MULTIBUS
|
||||
share/examples/tme/SUN3-CARRERA
|
||||
share/examples/tme/SUN4-75
|
||||
share/examples/tme/my-sun-macros.txt
|
||||
share/examples/tme/sun-keyboards.txt
|
||||
share/examples/tme/sun3-carrera-eeprom.txt
|
||||
|
|
|
@ -1,30 +1,5 @@
|
|||
$NetBSD: distinfo,v 1.8 2007/03/17 14:36:42 tsutsui Exp $
|
||||
$NetBSD: distinfo,v 1.9 2007/09/07 14:11:51 tsutsui Exp $
|
||||
|
||||
SHA1 (tme-0.4.tar.gz) = 7a1a2c6aa05527b11f81925e4931e7250f5be308
|
||||
RMD160 (tme-0.4.tar.gz) = a5b5ac56c8247f94cd96c92a04a6cb132ba92931
|
||||
Size (tme-0.4.tar.gz) = 1448981 bytes
|
||||
SHA1 (patch-aa) = 0fe6c37472caa876c253b9e8bb4e09cd278e5def
|
||||
SHA1 (patch-ab) = ffadbe0a97737fb8c04913781c78b09f6ddc649b
|
||||
SHA1 (patch-ac) = 94940e5f0a99c4c1e4e718ffc35fbb2117bceb21
|
||||
SHA1 (patch-ad) = 3f5adbaa94e5b97ded14e9a05cce912ed01f406f
|
||||
SHA1 (patch-ae) = 2f472a55f5afd1c0079349ce49bd3eb251ea9d76
|
||||
SHA1 (patch-af) = 17bf5f0a52036b50533fdfb9f2b6d74ea9494186
|
||||
SHA1 (patch-ag) = 9b88bc76c34320e63f7aa4fda6804b7b2c432c5c
|
||||
SHA1 (patch-ah) = c33a0dd4353aac9d7c01a0c9d5d54e5813e8382d
|
||||
SHA1 (patch-ai) = 6f6be39f73542ef128824aaa969fa9e793c478a5
|
||||
SHA1 (patch-aj) = 63c804457fae8a3527532e5d6b1ab09a377d41e4
|
||||
SHA1 (patch-ak) = 29ededa7be17a570be7d5f38b9536ff725ece5dc
|
||||
SHA1 (patch-al) = b36aecb7f3a89d80be4631bebaa3f3230ce7c8e7
|
||||
SHA1 (patch-am) = 2c216b3549ad02a81ba829e43dfa46dcd0525e24
|
||||
SHA1 (patch-an) = c6317d655348bb679f1ea6eef79e8743f3eb0158
|
||||
SHA1 (patch-ap) = 91d7b00791f90666728f85ebb940cbc2a75da2af
|
||||
SHA1 (patch-aq) = c426d9576b2d6f460a7b290e9f3be69c98e1dfef
|
||||
SHA1 (patch-ar) = 5d01194d1b3516ae387e21e54c861f6b5ec9e28e
|
||||
SHA1 (patch-aw) = fed1d90d936eac53dbe5be9a505bd7171768cc37
|
||||
SHA1 (patch-ax) = b8f16847326e3599df4d73d1108f6815a9c46164
|
||||
SHA1 (patch-az) = ab4a4164b880ed1716e7fed0e269b40c85515973
|
||||
SHA1 (patch-ba) = 22a47dfbf0c494916e4e8f15aa1fc11b687feaa8
|
||||
SHA1 (patch-bb) = 6f98e9456581676e380c2724937a7fbcbf660c2b
|
||||
SHA1 (patch-bc) = 52253ad742a4f1dd4c437cd7f8df3c9815483390
|
||||
SHA1 (patch-bd) = 69d00319ef82c1b274f56a61b5aa23a3770f5012
|
||||
SHA1 (patch-be) = b22f599b6c156f404f0d011cb692bb14bf8363e7
|
||||
SHA1 (tme-0.6.tar.gz) = bd5556eb2ae4a6999f46099166370491ee633a8b
|
||||
RMD160 (tme-0.6.tar.gz) = b730faac06280c55c9355e375caf4f4b26365f50
|
||||
Size (tme-0.6.tar.gz) = 1700273 bytes
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
$NetBSD: patch-aa,v 1.3 2005/12/05 20:50:12 rillig Exp $
|
||||
|
||||
--- tme/threads.h.orig 2003-06-27 21:09:10.000000000 +0000
|
||||
+++ tme/threads.h
|
||||
@@ -41,6 +41,7 @@
|
||||
|
||||
/* includes: */
|
||||
#include <errno.h>
|
||||
+#include <sys/time.h>
|
||||
|
||||
/* note that our locking model never allows recursive locking. */
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
$NetBSD: patch-ab,v 1.3 2007/03/17 13:44:18 tsutsui Exp $
|
||||
|
||||
--- ic/i825x6.c.orig 2007-01-24 12:56:18.000000000 +0000
|
||||
+++ ic/i825x6.c
|
||||
@@ -122,11 +122,19 @@ do { \
|
||||
/* an rx buffer: */
|
||||
struct tme_i825x6_rx_buffer {
|
||||
|
||||
- /* the generic ethernet frame chunk. this must be first, since we
|
||||
- abuse its tme_ethernet_frame_chunk_next for our own next pointer: */
|
||||
- struct tme_ethernet_frame_chunk tme_i825x6_rx_buffer_frame_chunk;
|
||||
+ union {
|
||||
+ struct tme_i825x6_rx_buffer *rx_buffer_next;
|
||||
+
|
||||
+ /* the generic ethernet frame chunk. this must be first, since we
|
||||
+ abuse its tme_ethernet_frame_chunk_next for our own next pointer: */
|
||||
+ struct tme_ethernet_frame_chunk buffer_frame_chunk;
|
||||
+ } rx_un;
|
||||
+
|
||||
+#define tme_i825x6_rx_buffer_next rx_un.rx_buffer_next
|
||||
+#define tme_i825x6_rx_buffer_frame_chunk rx_un.buffer_frame_chunk
|
||||
+
|
||||
#define TME_I825X6_RX_BUFFER_NEXT(rx_buffer) \
|
||||
- (*((struct tme_i825x6_rx_buffer **) &(rx_buffer)->tme_i825x6_rx_buffer_frame_chunk.tme_ethernet_frame_chunk_next))
|
||||
+ (rx_buffer->tme_i825x6_rx_buffer_next)
|
||||
|
||||
/* when this is TME_I825X6_RU_ADDRESS_UNDEF, this rx buffer was made
|
||||
from a fast-write TLB entry, and the generic ethernet frame chunk
|
|
@ -1,22 +0,0 @@
|
|||
$NetBSD: patch-ac,v 1.4 2007/03/17 13:44:18 tsutsui Exp $
|
||||
|
||||
--- libtme/module.c.orig 2005-01-26 21:59:24.000000000 +0900
|
||||
+++ libtme/module.c 2006-07-29 14:41:36.000000000 +0900
|
||||
@@ -214,7 +214,7 @@
|
||||
char *modules_dir;
|
||||
char line_buffer[1024];
|
||||
char **tokens;
|
||||
- unsigned int tokens_count;
|
||||
+ int tokens_count;
|
||||
char *module_basename;
|
||||
char *module_pathname;
|
||||
lt_dlhandle handle;
|
||||
@@ -230,7 +230,7 @@
|
||||
for (p1 = module_raw_name;
|
||||
(c = *p1) != '\0';
|
||||
p1++) {
|
||||
- if (!isalnum(c)) {
|
||||
+ if (!isalnum((unsigned char)c)) {
|
||||
*p1 = '_';
|
||||
if (c == '/'
|
||||
&& first_slash == NULL) {
|
|
@ -1,22 +0,0 @@
|
|||
$NetBSD: patch-ad,v 1.2 2005/07/27 07:29:26 skrll Exp $
|
||||
|
||||
--- libtme/misc.c.orig 2004-05-11 12:03:47.000000000 +0000
|
||||
+++ libtme/misc.c
|
||||
@@ -83,7 +83,7 @@ tme_misc_tokenize(const char *string,
|
||||
|
||||
/* if this is a token delimiter: */
|
||||
if (c == '\0'
|
||||
- || isspace(c)
|
||||
+ || isspace((unsigned char)c)
|
||||
|| c == comment) {
|
||||
|
||||
/* if we had been collecting a token, it's finished: */
|
||||
@@ -184,7 +184,7 @@ _tme_misc_number_parse(const char *strin
|
||||
/* XXX parts of this might be ASCII-centric: */
|
||||
|
||||
/* skip leading whitespace: */
|
||||
- for (; (c = *string) != '\0' && isspace(c); string++);
|
||||
+ for (; (c = *string) != '\0' && isspace((unsigned char)c); string++);
|
||||
|
||||
/* check for a leading '-' or '+' character: */
|
||||
if ((negative = (c == '-'))
|
|
@ -1,22 +0,0 @@
|
|||
$NetBSD: patch-ae,v 1.1 2004/12/05 07:32:17 skrll Exp $
|
||||
|
||||
--- serial/serial-kb.c.orig 2003-10-16 03:48:25.000000000 +0100
|
||||
+++ serial/serial-kb.c
|
||||
@@ -966,7 +966,7 @@ TME_ELEMENT_X_NEW_DECL(tme_serial_,kb,ke
|
||||
}
|
||||
for (p1 = line_buffer;
|
||||
((c = *(p1++)) != '\0'
|
||||
- && isspace(c)););
|
||||
+ && isspace((unsigned char)c)););
|
||||
if (c == '\0'
|
||||
|| c == '#') {
|
||||
continue;
|
||||
@@ -1049,7 +1049,7 @@ TME_ELEMENT_X_NEW_DECL(tme_serial_,kb,ke
|
||||
}
|
||||
for (p1 = line_buffer;
|
||||
((c = *(p1++)) != '\0'
|
||||
- && isspace(c)););
|
||||
+ && isspace((unsigned char)c)););
|
||||
if (c == '\0'
|
||||
|| c == '#') {
|
||||
continue;
|
|
@ -1,101 +0,0 @@
|
|||
$NetBSD: patch-af,v 1.1 2006/09/24 15:20:28 joerg Exp $
|
||||
|
||||
--- libltdl/configure.orig 2006-09-24 16:19:12.000000000 +0000
|
||||
+++ libltdl/configure
|
||||
@@ -3518,13 +3518,13 @@ darwin* | rhapsody*)
|
||||
lt_cv_deplibs_check_method=pass_all
|
||||
;;
|
||||
|
||||
-freebsd*)
|
||||
+freebsd* | dragonfly*)
|
||||
if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
|
||||
case $host_cpu in
|
||||
i*86 )
|
||||
# Not sure whether the presence of OpenBSD here was a mistake.
|
||||
# Let's accept both of them until this is cleared up.
|
||||
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
|
||||
+ lt_cv_deplibs_check_method='file_magic (DragonFly|FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
|
||||
lt_cv_file_magic_cmd=/usr/bin/file
|
||||
lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
|
||||
;;
|
||||
@@ -7289,7 +7289,7 @@ if test -z "$aix_libpath"; then aix_libp
|
||||
;;
|
||||
|
||||
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
|
||||
- freebsd*)
|
||||
+ freebsd* | dragonfly*)
|
||||
archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
@@ -7922,7 +7922,7 @@ freebsd1*)
|
||||
dynamic_linker=no
|
||||
;;
|
||||
|
||||
-freebsd*)
|
||||
+freebsd* | dragonfly*)
|
||||
objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
|
||||
version_type=freebsd-$objformat
|
||||
case $version_type in
|
||||
@@ -10086,7 +10086,7 @@ if test -z "$aix_libpath"; then aix_libp
|
||||
freebsd-elf*)
|
||||
archive_cmds_need_lc_CXX=no
|
||||
;;
|
||||
- freebsd*)
|
||||
+ freebsd* | dragonfly*)
|
||||
# FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
|
||||
# conventions
|
||||
ld_shlibs_CXX=yes
|
||||
@@ -10793,7 +10793,7 @@ echo $ECHO_N "checking for $compiler opt
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
- freebsd*)
|
||||
+ freebsd* | dragonfly*)
|
||||
# FreeBSD uses GNU C++
|
||||
;;
|
||||
hpux9* | hpux10* | hpux11*)
|
||||
@@ -11462,7 +11462,7 @@ freebsd1*)
|
||||
dynamic_linker=no
|
||||
;;
|
||||
|
||||
-freebsd*)
|
||||
+freebsd* | dragonfly*)
|
||||
objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
|
||||
version_type=freebsd-$objformat
|
||||
case $version_type in
|
||||
@@ -13806,7 +13806,7 @@ if test -z "$aix_libpath"; then aix_libp
|
||||
;;
|
||||
|
||||
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
|
||||
- freebsd*)
|
||||
+ freebsd* | dragonfly*)
|
||||
archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
|
||||
hardcode_libdir_flag_spec_F77='-R$libdir'
|
||||
hardcode_direct_F77=yes
|
||||
@@ -14439,7 +14439,7 @@ freebsd1*)
|
||||
dynamic_linker=no
|
||||
;;
|
||||
|
||||
-freebsd*)
|
||||
+freebsd* | dragonfly*)
|
||||
objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
|
||||
version_type=freebsd-$objformat
|
||||
case $version_type in
|
||||
@@ -16067,7 +16067,7 @@ if test -z "$aix_libpath"; then aix_libp
|
||||
;;
|
||||
|
||||
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
|
||||
- freebsd*)
|
||||
+ freebsd* | dragonfly*)
|
||||
archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
|
||||
hardcode_libdir_flag_spec_GCJ='-R$libdir'
|
||||
hardcode_direct_GCJ=yes
|
||||
@@ -16700,7 +16700,7 @@ freebsd1*)
|
||||
dynamic_linker=no
|
||||
;;
|
||||
|
||||
-freebsd*)
|
||||
+freebsd* | dragonfly*)
|
||||
objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
|
||||
version_type=freebsd-$objformat
|
||||
case $version_type in
|
|
@ -1,16 +0,0 @@
|
|||
$NetBSD: patch-ag,v 1.1 2006/09/24 15:20:28 joerg Exp $
|
||||
|
||||
--- ic/ieee754/ieee754-misc-auto.sh.orig 2005-05-11 00:13:33.000000000 +0000
|
||||
+++ ic/ieee754/ieee754-misc-auto.sh
|
||||
@@ -473,7 +473,10 @@ tme_ieee754_${precision}_value_from_buil
|
||||
tme_uint32_t chunk;
|
||||
|
||||
/* x must not be a NaN or an infinity: */
|
||||
-#if (TME_FLOAT_FORMAT_IEEE754_${capprecision}_BUILTIN == TME_FLOAT_FORMAT_FLOAT)
|
||||
+#if defined(isnan) && defined(__DragonFly__)
|
||||
+ assert (!isnan(x_builtin));
|
||||
+ assert (!isinf(x_builtin));
|
||||
+#elif (TME_FLOAT_FORMAT_IEEE754_${capprecision}_BUILTIN == TME_FLOAT_FORMAT_FLOAT)
|
||||
assert (!isnanf(x_builtin));
|
||||
assert (!isinff(x_builtin));
|
||||
#elif (TME_FLOAT_FORMAT_IEEE754_${capprecision}_BUILTIN == TME_FLOAT_FORMAT_DOUBLE)
|
|
@ -1,71 +0,0 @@
|
|||
$NetBSD: patch-ah,v 1.1 2006/09/24 15:20:28 joerg Exp $
|
||||
|
||||
--- tme/generic/float.h.orig 2006-09-24 16:50:59.000000000 +0000
|
||||
+++ tme/generic/float.h
|
||||
@@ -334,6 +334,27 @@ tme_float_assert_formats(_tme_const stru
|
||||
| (x)->tme_float_value_ieee754_quad.tme_float_ieee754_quad_lo.tme_value64_uint32_lo)
|
||||
|
||||
/* this evaluates to nonzero if the float is a NaN: */
|
||||
+#if defined(isnan) && defined(__DragonFly__)
|
||||
+#define tme_float_is_nan(x, formats) \
|
||||
+ (tme_float_assert_formats(x, formats) \
|
||||
+ && (tme_float_is_format(x, formats, TME_FLOAT_FORMAT_IEEE754_SINGLE) \
|
||||
+ ? (tme_float_value_ieee754_exponent_single(x) == 0xff \
|
||||
+ && tme_float_value_ieee754_fracor_single(x) != 0) \
|
||||
+ : tme_float_is_format(x, formats, TME_FLOAT_FORMAT_IEEE754_DOUBLE) \
|
||||
+ ? (tme_float_value_ieee754_exponent_double(x) == 0x7ff \
|
||||
+ && tme_float_value_ieee754_fracor_double(x) != 0) \
|
||||
+ : tme_float_is_format(x, formats, TME_FLOAT_FORMAT_IEEE754_EXTENDED80) \
|
||||
+ ? (tme_float_value_ieee754_exponent_extended80(x) == 0x7fff \
|
||||
+ && tme_float_value_ieee754_fracor_extended80(x) != 0) \
|
||||
+ : tme_float_is_format(x, formats, TME_FLOAT_FORMAT_IEEE754_QUAD) \
|
||||
+ ? (tme_float_value_ieee754_exponent_quad(x) == 0x7fff \
|
||||
+ && tme_float_value_ieee754_fracor_quad(x) != 0) \
|
||||
+ : tme_float_is_format(x, formats, TME_FLOAT_FORMAT_FLOAT) \
|
||||
+ ? isnan((x)->tme_float_value_float) \
|
||||
+ : tme_float_is_format(x, formats, TME_FLOAT_FORMAT_DOUBLE) \
|
||||
+ ? isnan((x)->tme_float_value_double) \
|
||||
+ : TME_FLOAT_IF_LONG_DOUBLE(isnan((x)->tme_float_value_long_double) ||) FALSE))
|
||||
+#else
|
||||
#define tme_float_is_nan(x, formats) \
|
||||
(tme_float_assert_formats(x, formats) \
|
||||
&& (tme_float_is_format(x, formats, TME_FLOAT_FORMAT_IEEE754_SINGLE) \
|
||||
@@ -353,8 +374,30 @@ tme_float_assert_formats(_tme_const stru
|
||||
: tme_float_is_format(x, formats, TME_FLOAT_FORMAT_DOUBLE) \
|
||||
? isnan((x)->tme_float_value_double) \
|
||||
: TME_FLOAT_IF_LONG_DOUBLE(isnan((x)->tme_float_value_long_double) ||) FALSE))
|
||||
+#endif
|
||||
|
||||
/* this evaluates to nonzero if the float is an infinity: */
|
||||
+#if defined(isinf) && defined(__DragonFly__)
|
||||
+#define tme_float_is_inf(x, formats) \
|
||||
+ (tme_float_assert_formats(x, formats) \
|
||||
+ && (tme_float_is_format(x, formats, TME_FLOAT_FORMAT_IEEE754_SINGLE) \
|
||||
+ ? (tme_float_value_ieee754_exponent_single(x) == 0xff \
|
||||
+ && tme_float_value_ieee754_fracor_single(x) == 0) \
|
||||
+ : tme_float_is_format(x, formats, TME_FLOAT_FORMAT_IEEE754_DOUBLE) \
|
||||
+ ? (tme_float_value_ieee754_exponent_double(x) == 0x7ff \
|
||||
+ && tme_float_value_ieee754_fracor_double(x) == 0) \
|
||||
+ : tme_float_is_format(x, formats, TME_FLOAT_FORMAT_IEEE754_EXTENDED80) \
|
||||
+ ? (tme_float_value_ieee754_exponent_extended80(x) == 0x7fff \
|
||||
+ && tme_float_value_ieee754_fracor_extended80(x) == 0) \
|
||||
+ : tme_float_is_format(x, formats, TME_FLOAT_FORMAT_IEEE754_QUAD) \
|
||||
+ ? (tme_float_value_ieee754_exponent_quad(x) == 0x7fff \
|
||||
+ && tme_float_value_ieee754_fracor_quad(x) == 0) \
|
||||
+ : tme_float_is_format(x, formats, TME_FLOAT_FORMAT_FLOAT) \
|
||||
+ ? isinf((x)->tme_float_value_float) \
|
||||
+ : tme_float_is_format(x, formats, TME_FLOAT_FORMAT_DOUBLE) \
|
||||
+ ? isinf((x)->tme_float_value_double) \
|
||||
+ : TME_FLOAT_IF_LONG_DOUBLE(isinf((x)->tme_float_value_long_double) ||) FALSE))
|
||||
+#else
|
||||
#define tme_float_is_inf(x, formats) \
|
||||
(tme_float_assert_formats(x, formats) \
|
||||
&& (tme_float_is_format(x, formats, TME_FLOAT_FORMAT_IEEE754_SINGLE) \
|
||||
@@ -374,6 +417,7 @@ tme_float_assert_formats(_tme_const stru
|
||||
: tme_float_is_format(x, formats, TME_FLOAT_FORMAT_DOUBLE) \
|
||||
? isinf((x)->tme_float_value_double) \
|
||||
: TME_FLOAT_IF_LONG_DOUBLE(isinf((x)->tme_float_value_long_double) ||) FALSE))
|
||||
+#endif
|
||||
|
||||
/* this evaluates to nonzero if the float is a zero: */
|
||||
#define tme_float_is_zero(x, formats) \
|
|
@ -1,242 +0,0 @@
|
|||
$NetBSD: patch-ai,v 1.1 2007/03/17 13:44:18 tsutsui Exp $
|
||||
|
||||
--- bus/multibus/Makefile.in.orig 2005-05-15 10:26:15.000000000 +0900
|
||||
+++ bus/multibus/Makefile.in 2006-07-29 14:32:31.000000000 +0900
|
||||
@@ -221,9 +221,10 @@
|
||||
@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/3c400.Plo ./$(DEPDIR)/sun-mie.Plo \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/sun-sc.Plo
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_NO_STRICT_ALIASING)
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
|
||||
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
|
||||
+ $(CFLAGS_NO_STRICT_ALIASING)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
--- generic/Makefile.in.orig 2005-05-15 10:26:16.000000000 +0900
|
||||
+++ generic/Makefile.in 2006-07-29 14:30:19.000000000 +0900
|
||||
@@ -247,9 +247,10 @@
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/scsi.Plo ./$(DEPDIR)/serial.Plo \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/tape.Plo
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_NO_STRICT_ALIASING)
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
|
||||
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
|
||||
+ $(CFLAGS_NO_STRICT_ALIASING)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
--- host/bsd/Makefile.in.orig 2005-05-15 10:26:17.000000000 +0900
|
||||
+++ host/bsd/Makefile.in 2006-07-29 14:32:41.000000000 +0900
|
||||
@@ -217,9 +217,10 @@
|
||||
am__depfiles_maybe = depfiles
|
||||
@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/bsd-bpf.Plo ./$(DEPDIR)/bsd-if.Plo
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_NO_STRICT_ALIASING)
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
|
||||
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
|
||||
+ $(CFLAGS_NO_STRICT_ALIASING)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
--- host/gtk/Makefile.in.orig 2005-05-15 10:26:17.000000000 +0900
|
||||
+++ host/gtk/Makefile.in 2006-07-29 14:32:52.000000000 +0900
|
||||
@@ -221,9 +221,10 @@
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/gtk-mouse.Plo \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/gtk-screen.Plo
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_NO_STRICT_ALIASING)
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
|
||||
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
|
||||
+ $(CFLAGS_NO_STRICT_ALIASING)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
--- host/posix/Makefile.in.orig 2005-05-15 10:26:18.000000000 +0900
|
||||
+++ host/posix/Makefile.in 2006-07-29 14:33:04.000000000 +0900
|
||||
@@ -225,9 +225,10 @@
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/posix-serial.Plo \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/posix-tape.Plo
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_NO_STRICT_ALIASING)
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
|
||||
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
|
||||
+ $(CFLAGS_NO_STRICT_ALIASING)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
--- ic/Makefile.in.orig 2005-05-15 10:26:19.000000000 +0900
|
||||
+++ ic/Makefile.in 2006-07-29 14:30:51.000000000 +0900
|
||||
@@ -280,9 +280,10 @@
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/isil7170.Plo ./$(DEPDIR)/mm58167.Plo \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/ncr5380.Plo ./$(DEPDIR)/z8530.Plo
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_NO_STRICT_ALIASING)
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
|
||||
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
|
||||
+ $(CFLAGS_NO_STRICT_ALIASING)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
--- ic/ieee754/Makefile.in.orig 2005-05-15 10:26:19.000000000 +0900
|
||||
+++ ic/ieee754/Makefile.in 2006-07-29 14:33:17.000000000 +0900
|
||||
@@ -190,9 +190,10 @@
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/ieee754-ops-auto.Plo \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/softfloat-tme.Plo
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_NO_STRICT_ALIASING)
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
|
||||
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
|
||||
+ $(CFLAGS_NO_STRICT_ALIASING)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
--- ic/m68k/Makefile.in.orig 2005-05-15 10:26:20.000000000 +0900
|
||||
+++ ic/m68k/Makefile.in 2006-07-29 14:33:27.000000000 +0900
|
||||
@@ -241,9 +241,10 @@
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/m68k-misc.Plo \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/m68k-opmap.Plo
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_NO_STRICT_ALIASING)
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
|
||||
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
|
||||
+ $(CFLAGS_NO_STRICT_ALIASING)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
--- libltdl/Makefile.in.orig 2003-05-14 11:33:05.000000000 +0900
|
||||
+++ libltdl/Makefile.in 2006-07-29 14:31:04.000000000 +0900
|
||||
@@ -177,9 +177,10 @@
|
||||
depcomp =
|
||||
am__depfiles_maybe =
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_NO_STRICT_ALIASING)
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
|
||||
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
|
||||
+ $(CFLAGS_NO_STRICT_ALIASING)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
--- libtme/Makefile.in.orig 2005-05-15 10:26:20.000000000 +0900
|
||||
+++ libtme/Makefile.in 2006-07-29 14:31:20.000000000 +0900
|
||||
@@ -195,9 +195,10 @@
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/misc.Plo ./$(DEPDIR)/module.Plo \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/threads-sjlj.Plo
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_NO_STRICT_ALIASING)
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
|
||||
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
|
||||
+ $(CFLAGS_NO_STRICT_ALIASING)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
|
||||
--- machine/sun/Makefile.in.orig 2005-05-15 10:26:22.000000000 +0900
|
||||
+++ machine/sun/Makefile.in 2006-07-29 14:33:37.000000000 +0900
|
||||
@@ -205,9 +205,10 @@
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/sun-mmu.Plo ./$(DEPDIR)/sun-obie.Plo \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/sun-si.Plo
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_NO_STRICT_ALIASING)
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
|
||||
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
|
||||
+ $(CFLAGS_NO_STRICT_ALIASING)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
+++ machine/sun2/Makefile.in 2006-07-29 14:33:45.000000000 +0900
|
||||
@@ -230,9 +230,10 @@
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/sun2-mainbus.Plo \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/sun2-mmu.Plo
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_NO_STRICT_ALIASING)
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
|
||||
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
|
||||
+ $(CFLAGS_NO_STRICT_ALIASING)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
--- machine/sun3/Makefile.in.orig 2005-05-15 10:26:23.000000000 +0900
|
||||
+++ machine/sun3/Makefile.in 2006-07-29 14:33:54.000000000 +0900
|
||||
@@ -230,9 +230,10 @@
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/sun3-mainbus.Plo \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/sun3-mmu.Plo
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_NO_STRICT_ALIASING)
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
|
||||
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
|
||||
+ $(CFLAGS_NO_STRICT_ALIASING)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
--- scsi/Makefile.in.orig 2005-05-15 10:26:23.000000000 +0900
|
||||
+++ scsi/Makefile.in 2006-07-29 14:31:42.000000000 +0900
|
||||
@@ -235,9 +235,10 @@
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/scsi-disk.Plo ./$(DEPDIR)/scsi-msg.Plo \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/scsi-tape.Plo
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_NO_STRICT_ALIASING)
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
|
||||
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
|
||||
+ $(CFLAGS_NO_STRICT_ALIASING)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
--- serial/Makefile.in.orig 2005-05-15 10:26:24.000000000 +0900
|
||||
+++ serial/Makefile.in 2006-07-29 14:31:54.000000000 +0900
|
||||
@@ -228,9 +228,10 @@
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/ms-mssystems.Plo \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/serial-kb.Plo ./$(DEPDIR)/serial-ms.Plo
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_NO_STRICT_ALIASING)
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
|
||||
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
|
||||
+ $(CFLAGS_NO_STRICT_ALIASING)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
--- tmesh/Makefile.in.orig 2005-05-15 10:26:27.000000000 +0900
|
||||
+++ tmesh/Makefile.in 2006-07-29 14:32:10.000000000 +0900
|
||||
@@ -200,9 +200,10 @@
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/tmesh-input.Plo \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/tmesh-util.Plo ./$(DEPDIR)/tmesh.Po
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CFLAGS_NO_STRICT_ALIASING)
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
|
||||
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
|
||||
+ $(CFLAGS_NO_STRICT_ALIASING)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
|
@ -1,13 +0,0 @@
|
|||
$NetBSD: patch-aj,v 1.1 2007/03/17 13:44:18 tsutsui Exp $
|
||||
|
||||
--- dist/softfloat/softfloat/bits64/softfloat.c.orig 2005-05-11 09:06:30.000000000 +0900
|
||||
+++ dist/softfloat/softfloat/bits64/softfloat.c 2007-01-07 22:08:03.000000000 +0900
|
||||
@@ -4909,7 +4909,7 @@
|
||||
sub128( aSig0, aSig1, bSig0, bSig1, &aSig0, &aSig1 );
|
||||
} while ( 0 <= (sbits64) aSig0 );
|
||||
add128(
|
||||
- aSig0, aSig1, alternateASig0, alternateASig1, &sigMean0, &sigMean1 );
|
||||
+ aSig0, aSig1, alternateASig0, alternateASig1, (bits64 *)&sigMean0, &sigMean1 );
|
||||
if ( ( sigMean0 < 0 )
|
||||
|| ( ( ( sigMean0 | sigMean1 ) == 0 ) && ( q & 1 ) ) ) {
|
||||
aSig0 = alternateASig0;
|
|
@ -1,13 +0,0 @@
|
|||
$NetBSD: patch-ak,v 1.1 2007/03/17 13:44:18 tsutsui Exp $
|
||||
|
||||
--- scsi/scsi-cdb.c.orig 2004-12-06 12:40:33.000000000 +0900
|
||||
+++ scsi/scsi-cdb.c 2006-07-29 15:14:52.000000000 +0900
|
||||
@@ -187,7 +187,7 @@
|
||||
/* this adds one of the inquiry strings to the data: */
|
||||
static tme_uint8_t *
|
||||
_tme_scsi_device_make_inquiry_string(tme_uint8_t *data,
|
||||
- const tme_uint8_t *string,
|
||||
+ char *string,
|
||||
unsigned int size)
|
||||
{
|
||||
tme_uint8_t c;
|
|
@ -1,30 +0,0 @@
|
|||
$NetBSD: patch-al,v 1.1 2007/03/17 13:44:18 tsutsui Exp $
|
||||
|
||||
--- host/gtk/gtk-mouse.c.orig 2003-07-31 10:41:48.000000000 +0900
|
||||
+++ host/gtk/gtk-mouse.c 2006-07-29 15:04:20.000000000 +0900
|
||||
@@ -312,8 +312,8 @@
|
||||
gdk_window_get_geometry(screen->tme_gtk_screen_gtkimage->window,
|
||||
&junk,
|
||||
&junk,
|
||||
- &screen->tme_gtk_screen_mouse_warp_x,
|
||||
- &screen->tme_gtk_screen_mouse_warp_y,
|
||||
+ (gint *)&screen->tme_gtk_screen_mouse_warp_x,
|
||||
+ (gint *)&screen->tme_gtk_screen_mouse_warp_y,
|
||||
&junk);
|
||||
screen->tme_gtk_screen_mouse_warp_x >>= 1;
|
||||
screen->tme_gtk_screen_mouse_warp_y >>= 1;
|
||||
@@ -626,12 +626,12 @@
|
||||
/* create the mouse cursor: */
|
||||
source
|
||||
= gdk_bitmap_create_from_data(NULL,
|
||||
- _tme_gtk_mouse_cursor_source,
|
||||
+ (const gchar *)_tme_gtk_mouse_cursor_source,
|
||||
TME_GTK_MOUSE_CURSOR_WIDTH,
|
||||
TME_GTK_MOUSE_CURSOR_HEIGHT);
|
||||
mask
|
||||
= gdk_bitmap_create_from_data (NULL,
|
||||
- _tme_gtk_mouse_cursor_mask,
|
||||
+ (const gchar *)_tme_gtk_mouse_cursor_mask,
|
||||
TME_GTK_MOUSE_CURSOR_WIDTH,
|
||||
TME_GTK_MOUSE_CURSOR_HEIGHT);
|
||||
display->tme_gtk_display_mouse_cursor
|
|
@ -1,13 +0,0 @@
|
|||
$NetBSD: patch-am,v 1.1 2007/03/17 13:44:18 tsutsui Exp $
|
||||
|
||||
--- ic/m68k/m68k-bus-auto.c.orig 2005-03-23 11:24:55.000000000 +0900
|
||||
+++ ic/m68k/m68k-bus-auto.c 2006-07-29 14:46:47.000000000 +0900
|
||||
@@ -156,7 +156,7 @@
|
||||
};
|
||||
|
||||
/* the 32-bit bus router used on the 68020 and 68030: */
|
||||
-static const tme_bus_lane_t tme_m68k_router_32[TME_M68K_BUS_ROUTER_SIZE(TME_BUS32_LOG2)] = {
|
||||
+const tme_bus_lane_t tme_m68k_router_32[TME_M68K_BUS_ROUTER_SIZE(TME_BUS32_LOG2)] = {
|
||||
|
||||
/* [m68k] initiator maximum cycle size: 8 bits
|
||||
[m68k] initiator A1,A0: 00
|
|
@ -1,30 +0,0 @@
|
|||
$NetBSD: patch-an,v 1.1 2007/03/17 13:44:19 tsutsui Exp $
|
||||
|
||||
--- machine/sun/sun-si.c.orig 2005-02-17 21:19:17.000000000 +0900
|
||||
+++ machine/sun/sun-si.c 2006-07-29 14:59:24.000000000 +0900
|
||||
@@ -475,7 +475,6 @@
|
||||
tme_uint32_t csr_old, csr_new, csr_diff, csr_mask;
|
||||
tme_bus_addr_t address;
|
||||
tme_uint8_t cycle_size;
|
||||
- tme_uint32_t csr;
|
||||
tme_uint32_t dma_count;
|
||||
int new_callouts;
|
||||
|
||||
@@ -561,7 +560,7 @@
|
||||
case TME_SUN_SI_TYPE_VME:
|
||||
TME_SUN_SI_REG16_PUT(sun_si, TME_SUN_SI_REG_FIFO_COUNT_L, 0);
|
||||
TME_SUN_SI_REG16_PUT(sun_si, TME_SUN_SI_REG_VME_FIFO_COUNT_H, 0);
|
||||
- csr &= ~TME_SUN_SI_CSR_VME_LOB_MASK;
|
||||
+ csr_new &= ~TME_SUN_SI_CSR_VME_LOB_MASK;
|
||||
break;
|
||||
case TME_SUN_SI_TYPE_COBRA:
|
||||
abort();
|
||||
@@ -1428,7 +1427,7 @@
|
||||
sun_si = tme_new0(struct tme_sun_si, 1);
|
||||
sun_si->tme_sun_si_type = si_type;
|
||||
sun_si->tme_sun_si_3e_dma = (si_type == TME_SUN_SI_TYPE_3E
|
||||
- ? tme_new(char, TME_SUN_SI_3E_SIZ_DMA)
|
||||
+ ? tme_new(unsigned char, TME_SUN_SI_3E_SIZ_DMA)
|
||||
: NULL);
|
||||
sun_si->tme_sun_si_element = element;
|
||||
TME_SUN_SI_CSR_PUT(sun_si,
|
|
@ -1,20 +0,0 @@
|
|||
$NetBSD: patch-ap,v 1.1 2007/03/17 13:44:19 tsutsui Exp $
|
||||
|
||||
--- host/gtk/gtk-keyboard.c.orig 2006-10-19 10:39:26.000000000 -0400
|
||||
+++ host/gtk/gtk-keyboard.c 2006-10-19 10:39:50.000000000 -0400
|
||||
@@ -399,6 +399,7 @@
|
||||
= display->tme_gtk_display_keyboard_keysyms_bad;
|
||||
|
||||
/* log the complaint: */
|
||||
+#ifndef NDEBUG
|
||||
tme_log(&display->tme_gtk_display_element->tme_element_log_handle, 0, ENOENT,
|
||||
(&display->tme_gtk_display_element->tme_element_log_handle,
|
||||
_("cannot generate keysym '%s' directly%s"),
|
||||
@@ -407,6 +408,7 @@
|
||||
== TME_KEYBOARD_LOOKUP_FLAG_OK_DIRECT
|
||||
? ""
|
||||
: _(", or through a macro"))));
|
||||
+#endif
|
||||
|
||||
/* free this record: */
|
||||
display->tme_gtk_display_keyboard_keysyms_bad
|
|
@ -1,169 +0,0 @@
|
|||
$NetBSD: patch-aq,v 1.1 2007/03/17 13:44:19 tsutsui Exp $
|
||||
|
||||
--- ic/m68k/m68k-insns.c.orig 2005-03-23 20:53:02.000000000 +0900
|
||||
+++ ic/m68k/m68k-insns.c 2007-03-14 20:28:31.000000000 +0900
|
||||
@@ -485,9 +485,8 @@
|
||||
TME_M68K_INSN(tme_m68k_cmp2_chk2)
|
||||
{
|
||||
tme_uint32_t ireg;
|
||||
- unsigned int size_bytes, size_name, size_ireg;
|
||||
+ unsigned int size_bytes, size_ireg;
|
||||
tme_uint32_t uvalue, ulower, uupper;
|
||||
- tme_int32_t value, lower, upper;
|
||||
|
||||
TME_M68K_INSN_CANFAULT;
|
||||
|
||||
@@ -495,60 +494,109 @@
|
||||
ireg = TME_M68K_IREG_D0 + TME_FIELD_EXTRACTU(TME_M68K_INSN_SPECOP, 12, 4);
|
||||
size_bytes = TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE, 9, 2);
|
||||
size_ireg = 2 - size_bytes;
|
||||
- size_name = TME_M68K_SIZE_8 + size_bytes;
|
||||
+
|
||||
+ /* size comes back from cp2 instruction as:
|
||||
+ 0 : byte
|
||||
+ 1 : word
|
||||
+ 2 : long
|
||||
+ we convert to
|
||||
+ 0 : byte
|
||||
+ 1 : word
|
||||
+ 4 : long
|
||||
+ */
|
||||
size_bytes = 1 << size_bytes;
|
||||
|
||||
/* read in the two bounds: */
|
||||
- (*_tme_m68k_read_mem[size_name])(ic, TME_M68K_IREG_MEMX32 << size_ireg);
|
||||
+ (*_tme_m68k_read_mem[size_bytes])(ic, TME_M68K_IREG_MEMX32 << size_ireg);
|
||||
if (!TME_M68K_SEQUENCE_RESTARTING) {
|
||||
ic->_tme_m68k_ea_address += size_bytes;
|
||||
}
|
||||
- (*_tme_m68k_read_mem[size_name])(ic, TME_M68K_IREG_MEMY32 << size_ireg);
|
||||
+ (*_tme_m68k_read_mem[size_bytes])(ic, TME_M68K_IREG_MEMY32 << size_ireg);
|
||||
|
||||
- /* if we have an address register, sign-extend the bounds to 32
|
||||
- bits: */
|
||||
+ /* if value is an address register, sign-extend the bounds to 32 bits,
|
||||
+ then set size of bounds and value to 32 bits (so we check entire
|
||||
+ longword value)
|
||||
+ */
|
||||
if (ireg >= TME_M68K_IREG_A0) {
|
||||
- if (size_name == TME_M68K_SIZE_8) {
|
||||
+ if (size_bytes == TME_M68K_SIZE_8) {
|
||||
ic->tme_m68k_ireg_int32(TME_M68K_IREG_MEMX32) = TME_EXT_S8_S32(ic->tme_m68k_ireg_int8(TME_M68K_IREG_MEMX8));
|
||||
ic->tme_m68k_ireg_int32(TME_M68K_IREG_MEMY32) = TME_EXT_S8_S32(ic->tme_m68k_ireg_int8(TME_M68K_IREG_MEMY8));
|
||||
}
|
||||
- else if (size_name == TME_M68K_SIZE_16) {
|
||||
+ else if (size_bytes == TME_M68K_SIZE_16) {
|
||||
ic->tme_m68k_ireg_int32(TME_M68K_IREG_MEMX32) = TME_EXT_S16_S32(ic->tme_m68k_ireg_int16(TME_M68K_IREG_MEMX16));
|
||||
ic->tme_m68k_ireg_int32(TME_M68K_IREG_MEMY32) = TME_EXT_S16_S32(ic->tme_m68k_ireg_int16(TME_M68K_IREG_MEMY16));
|
||||
}
|
||||
- size_bytes = sizeof(tme_uint32_t);
|
||||
- size_name = TME_M68K_SIZE_32;
|
||||
+ size_bytes = TME_M68K_SIZE_32;
|
||||
}
|
||||
|
||||
- /* get the values to check: */
|
||||
- switch (size_name) {
|
||||
+ /* get the bounds and value */
|
||||
+ switch (size_bytes) {
|
||||
case TME_M68K_SIZE_8:
|
||||
- uvalue = ic->tme_m68k_ireg_uint8(ireg);
|
||||
ulower = ic->tme_m68k_ireg_uint8(TME_M68K_IREG_MEMX8);
|
||||
uupper = ic->tme_m68k_ireg_uint8(TME_M68K_IREG_MEMY8);
|
||||
- value = ic->tme_m68k_ireg_int8(ireg);
|
||||
- lower = ic->tme_m68k_ireg_int8(TME_M68K_IREG_MEMX8);
|
||||
- upper = ic->tme_m68k_ireg_int8(TME_M68K_IREG_MEMY8);
|
||||
+
|
||||
+ /* if value is a data register, read the entire register, extract
|
||||
+ the appropriate number of bytes, and sign extend to our own
|
||||
+ longword size for comparison.
|
||||
+ if value is an address register, just use the entire register as is
|
||||
+ */
|
||||
+ if (ireg < TME_M68K_IREG_A0)
|
||||
+ uvalue = (tme_uint32_t)TME_EXT_S8_S32
|
||||
+ ((tme_int32_t)(ic->tme_m68k_ireg_uint32(ireg) & 0xFF));
|
||||
+ else
|
||||
+ uvalue = ic->tme_m68k_ireg_uint32(ireg);
|
||||
+
|
||||
break;
|
||||
case TME_M68K_SIZE_16:
|
||||
- uvalue = ic->tme_m68k_ireg_uint16(ireg);
|
||||
ulower = ic->tme_m68k_ireg_uint16(TME_M68K_IREG_MEMX16);
|
||||
uupper = ic->tme_m68k_ireg_uint16(TME_M68K_IREG_MEMY16);
|
||||
- value = ic->tme_m68k_ireg_int16(ireg);
|
||||
- lower = ic->tme_m68k_ireg_int16(TME_M68K_IREG_MEMX16);
|
||||
- upper = ic->tme_m68k_ireg_int16(TME_M68K_IREG_MEMY16);
|
||||
+
|
||||
+ /* if value is a data register, read the entire register, extract
|
||||
+ the appropriate number of bytes, and sign extend to our own
|
||||
+ longword size for comparison.
|
||||
+ if value is an address register, just use the entire register as is
|
||||
+ */
|
||||
+ if (ireg < TME_M68K_IREG_A0)
|
||||
+ uvalue = (tme_uint32_t)TME_EXT_S16_S32
|
||||
+ ((tme_int32_t)(ic->tme_m68k_ireg_uint32(ireg) & 0xFFFF));
|
||||
+ else
|
||||
+ uvalue = ic->tme_m68k_ireg_uint32(ireg);
|
||||
+
|
||||
break;
|
||||
case TME_M68K_SIZE_32:
|
||||
- uvalue = ic->tme_m68k_ireg_uint32(ireg);
|
||||
ulower = ic->tme_m68k_ireg_uint32(TME_M68K_IREG_MEMX32);
|
||||
uupper = ic->tme_m68k_ireg_uint32(TME_M68K_IREG_MEMY32);
|
||||
- value = ic->tme_m68k_ireg_int32(ireg);
|
||||
- lower = ic->tme_m68k_ireg_int32(TME_M68K_IREG_MEMX32);
|
||||
- upper = ic->tme_m68k_ireg_int32(TME_M68K_IREG_MEMY32);
|
||||
+
|
||||
+ uvalue = ic->tme_m68k_ireg_uint32(ireg);
|
||||
+
|
||||
break;
|
||||
default: abort();
|
||||
}
|
||||
|
||||
+ /* cmp2 / chk2 can be used for unsigned, or signed.
|
||||
+ for either type, the lower bound "should be" <= upper bound
|
||||
+ (per m68000 family programmer's reference manual)
|
||||
+
|
||||
+ cmp2 instruction doesn't know if signed or unsigned
|
||||
+ if bound 250 250 then bound is the one value, check unsigned or signed
|
||||
+
|
||||
+ if bound 253 255 could be unsigned 253 255
|
||||
+ or signed -3 -1
|
||||
+ either way, ok to check.
|
||||
+
|
||||
+ if bound 255 5 then only makes sense to check signed -1 5
|
||||
+
|
||||
+ if bound 255 253 then doesn't make sense either way!
|
||||
+ its either 255 253 unsigned or -1 -3 signed.
|
||||
+
|
||||
+ reverse engineering the code, by running many test cases shows that
|
||||
+ the motorola 68020 microcode does the following.
|
||||
+
|
||||
+ Always check unsigned.
|
||||
+ if low <= high, then out of bounds if either < low or > high.
|
||||
+ if high > low, then out of bounds if BOTH < low AND > high.
|
||||
+ */
|
||||
+
|
||||
/* do the comparison. if the value is out-of-bounds and this is
|
||||
a chk2 instruction, trap: */
|
||||
ic->tme_m68k_ireg_ccr = (ic->tme_m68k_ireg_ccr & TME_M68K_FLAG_X);
|
||||
@@ -556,13 +604,14 @@
|
||||
|| uvalue == uupper) {
|
||||
ic->tme_m68k_ireg_ccr |= TME_M68K_FLAG_Z;
|
||||
}
|
||||
- else if ((ulower > uupper)
|
||||
- /* signed comparison: */
|
||||
- ? (value < lower || value > upper)
|
||||
- /* unsigned comparison: */
|
||||
- : (uvalue < ulower || uvalue > uupper)) {
|
||||
+ else if (((ulower <= uupper) && (uvalue < ulower || uvalue > uupper)) ||
|
||||
+ ((ulower > uupper) && (uvalue < ulower && uvalue > uupper))) {
|
||||
ic->tme_m68k_ireg_ccr |= TME_M68K_FLAG_C;
|
||||
- if (TME_M68K_INSN_OPCODE & TME_BIT(11)) {
|
||||
+
|
||||
+ /* if chk2 instruction,
|
||||
+ also cause a CHK instruction exception (vector number 6)
|
||||
+ */
|
||||
+ if (TME_FIELD_EXTRACTU(TME_M68K_INSN_SPECOP, 11, 1)) {
|
||||
ic->tme_m68k_ireg_pc_last = ic->tme_m68k_ireg_pc;
|
||||
ic->tme_m68k_ireg_pc = ic->tme_m68k_ireg_pc_next;
|
||||
TME_M68K_INSN_EXCEPTION(TME_M68K_EXCEPTION_INST(TME_M68K_VECTOR_CHK));
|
|
@ -1,23 +0,0 @@
|
|||
$NetBSD: patch-ar,v 1.1 2007/03/17 13:44:19 tsutsui Exp $
|
||||
|
||||
--- ic/m68k/m68k-execute.c.orig 2006-10-01 08:23:58.000000000 -0400
|
||||
+++ ic/m68k/m68k-execute.c 2006-10-01 08:27:17.000000000 -0400
|
||||
@@ -591,6 +591,18 @@
|
||||
_TME_M68K_EXECUTE_FETCH_S16(ea_bd);
|
||||
/* XXX simulates preincremented pc: */
|
||||
ea_address = ic->tme_m68k_ireg_pc + first_ea_extword_offset + ea_bd;
|
||||
+
|
||||
+ /* if instruction has immediate, then we need to add either 2 bytes
|
||||
+ (for byte or word) or 4 bytes (for lword) to get the effective
|
||||
+ address
|
||||
+ */
|
||||
+ if (TME_M68K_OPCODE_HAS_IMM(params)) {
|
||||
+ if (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,6,2) == 2)
|
||||
+ ea_address = ea_address + 4;
|
||||
+ else
|
||||
+ ea_address = ea_address + 2;
|
||||
+ }
|
||||
+
|
||||
ea_function_code = function_code_program;
|
||||
break;
|
||||
}
|
|
@ -1,84 +0,0 @@
|
|||
$NetBSD: patch-aw,v 1.1 2007/03/17 13:44:19 tsutsui Exp $
|
||||
|
||||
--- host/posix/posix-serial.c.orig 2006-11-07 06:29:39.000000000 -0500
|
||||
+++ host/posix/posix-serial.c 2006-11-07 08:23:59.000000000 -0500
|
||||
@@ -839,6 +839,8 @@
|
||||
int saved_errno;
|
||||
int emulate_break;
|
||||
|
||||
+ int ignore_fd_in = FALSE;
|
||||
+
|
||||
/* initialize: */
|
||||
filename_in = NULL;
|
||||
filename_out = NULL;
|
||||
@@ -915,24 +917,32 @@
|
||||
|
||||
/* open the devices: */
|
||||
fd_in = fd_out = -1;
|
||||
- if (fd_in < 0
|
||||
- && !strcmp(filename_in, "-")) {
|
||||
- fd_in = STDIN_FILENO;
|
||||
+
|
||||
+ ignore_fd_in = (strcmp(filename_in,"NONE") == 0);
|
||||
+
|
||||
+ if (!ignore_fd_in) {
|
||||
+ if (fd_in < 0
|
||||
+ && !strcmp(filename_in, "-")) {
|
||||
+ fd_in = STDIN_FILENO;
|
||||
+ }
|
||||
}
|
||||
if (fd_out < 0
|
||||
&& !strcmp(filename_out, "-")) {
|
||||
fd_out = STDOUT_FILENO;
|
||||
}
|
||||
- if (fd_in < 0) {
|
||||
- if (strcmp(filename_in, filename_out) == 0) {
|
||||
- fd_in = fd_out = open(filename_in, O_RDWR | O_NONBLOCK);
|
||||
- }
|
||||
- else {
|
||||
- fd_in = open(filename_in, O_RDONLY | O_NONBLOCK);
|
||||
- }
|
||||
+
|
||||
+ if (!ignore_fd_in) {
|
||||
if (fd_in < 0) {
|
||||
- tme_output_append_error(_output, "%s", filename_in);
|
||||
- return (errno);
|
||||
+ if (strcmp(filename_in, filename_out) == 0) {
|
||||
+ fd_in = fd_out = open(filename_in, O_RDWR | O_NONBLOCK);
|
||||
+ }
|
||||
+ else {
|
||||
+ fd_in = open(filename_in, O_RDONLY | O_NONBLOCK);
|
||||
+ }
|
||||
+ if (fd_in < 0) {
|
||||
+ tme_output_append_error(_output, "%s", filename_in);
|
||||
+ return (errno);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
if (fd_out < 0) {
|
||||
@@ -962,7 +972,11 @@
|
||||
tme_mutex_init(&serial->tme_posix_serial_mutex);
|
||||
tme_cond_init(&serial->tme_posix_serial_cond_writer);
|
||||
tme_thread_create((tme_thread_t) _tme_posix_serial_th_writer, serial);
|
||||
- tme_thread_create((tme_thread_t) _tme_posix_serial_th_reader, serial);
|
||||
+
|
||||
+ if (!ignore_fd_in) {
|
||||
+ tme_thread_create((tme_thread_t) _tme_posix_serial_th_reader, serial);
|
||||
+ }
|
||||
+
|
||||
tme_thread_create((tme_thread_t) _tme_posix_serial_th_ctrl, serial);
|
||||
|
||||
/* fill the element: */
|
||||
--- libtme/threads-sjlj.c.orig 2006-11-07 06:50:22.000000000 -0500
|
||||
+++ libtme/threads-sjlj.c 2006-11-07 07:54:07.000000000 -0500
|
||||
@@ -833,7 +833,9 @@
|
||||
if (fd_condition_new != 0) {
|
||||
|
||||
/* this thread is now blocking on this fd: */
|
||||
- assert(tme_sjlj_fd_thread[fd] == NULL);
|
||||
+
|
||||
+ /* assert if this fd is already used - unless its stdin */
|
||||
+ assert(tme_sjlj_fd_thread[fd] == NULL || fd == STDIN_FILENO);
|
||||
tme_sjlj_fd_thread[fd] = thread;
|
||||
|
||||
#ifdef HAVE_GTK
|
|
@ -1,19 +0,0 @@
|
|||
$NetBSD: patch-ax,v 1.1 2007/03/17 13:44:19 tsutsui Exp $
|
||||
|
||||
--- host/bsd/bsd-bpf.c.orig 2007-03-14 20:49:03.000000000 +0900
|
||||
+++ host/bsd/bsd-bpf.c 2007-03-14 20:51:14.000000000 +0900
|
||||
@@ -694,6 +701,14 @@
|
||||
< the_bpf_header.bh_tstamp.tv_usec))) {
|
||||
|
||||
/* set the sleep time: */
|
||||
+
|
||||
+ /* if asserting, print likely description first */
|
||||
+ if (! ((bpf->tme_bsd_bpf_delay_release.tv_sec
|
||||
+ == the_bpf_header.bh_tstamp.tv_sec)
|
||||
+ || ((bpf->tme_bsd_bpf_delay_release.tv_sec + 1)
|
||||
+ == the_bpf_header.bh_tstamp.tv_sec))) {
|
||||
+ printf("someone started a second tmesh without this tmesh first configuring ie0\n");
|
||||
+ }
|
||||
assert ((bpf->tme_bsd_bpf_delay_release.tv_sec
|
||||
== the_bpf_header.bh_tstamp.tv_sec)
|
||||
|| ((bpf->tme_bsd_bpf_delay_release.tv_sec + 1)
|
|
@ -1,343 +0,0 @@
|
|||
$NetBSD: patch-az,v 1.1 2007/03/17 13:44:19 tsutsui Exp $
|
||||
|
||||
--- ic/i825x6.c.orig 2007-03-15 20:29:47.000000000 +0900
|
||||
+++ ic/i825x6.c 2007-03-17 22:07:48.000000000 +0900
|
||||
@@ -809,6 +809,9 @@
|
||||
| TME_I825X6_SCB_CUS_IDLE
|
||||
| TME_I825X6_SCB_RUS_IDLE);
|
||||
|
||||
+ /* clears the SCB command word": */
|
||||
+ /* [this is done at end of this routine] */
|
||||
+
|
||||
/* "The 82596 ... sends an interrupt to the CPU": */
|
||||
i825x6->tme_i825x6_callout_flags = TME_I825X6_CALLOUTS_RUNNING | TME_I825X6_CALLOUT_INT;
|
||||
}
|
||||
@@ -1258,8 +1261,10 @@
|
||||
break;
|
||||
|
||||
case TME_I825X6_CB_CMD_DUMP:
|
||||
- case TME_I825X6_CB_CMD_DIAGNOSE:
|
||||
abort();
|
||||
+
|
||||
+ case TME_I825X6_CB_CMD_DIAGNOSE:
|
||||
+ break;
|
||||
}
|
||||
|
||||
/* add to the callouts and return the current status: */
|
||||
@@ -1898,7 +1903,7 @@
|
||||
tme_uint16_t c_b_ok_a;
|
||||
tme_uint16_t value16;
|
||||
tme_uint32_t value32;
|
||||
- int rc, err;
|
||||
+ int rc, err, tot_length;
|
||||
|
||||
/* recover our data structures: */
|
||||
i825x6 = conn_eth->tme_ethernet_connection.tme_connection_element->tme_element_private;
|
||||
@@ -1919,7 +1924,7 @@
|
||||
tme_mutex_lock(&i825x6->tme_i825x6_mutex);
|
||||
|
||||
/* assume that we will have no packet to transmit: */
|
||||
- rc = 0;
|
||||
+ tot_length = 0;
|
||||
|
||||
/* if we have a packet to transmit: */
|
||||
if ((i825x6->tme_i825x6_el_s_i_cmd
|
||||
@@ -1934,10 +1939,10 @@
|
||||
#define CHUNKS_DMA_TX(addr, size) \
|
||||
err = _tme_i825x6_chunks_dma_tx(i825x6, frame_chunks, (addr), (size)); \
|
||||
if (err != TME_OK) break; \
|
||||
- rc += size
|
||||
+ tot_length += size
|
||||
#define CHUNKS_MEM_TX(data, size) \
|
||||
_tme_i825x6_chunks_mem_tx(frame_chunks, (data), (size)); \
|
||||
- rc += size
|
||||
+ tot_length += size
|
||||
|
||||
/* if AL-LOC is set to zero, add the Ethernet/802.3 MAC header: */
|
||||
if (i825x6->tme_i825x6_al_loc == 0) {
|
||||
@@ -1973,7 +1978,7 @@
|
||||
CHUNKS_DMA_TX(tb_address,
|
||||
(eof_size & TME_I82586_TBD_SIZE_MASK));
|
||||
|
||||
- /* the next transmit buffer: */
|
||||
+ /* get out if no next transmit buffer: */
|
||||
if (eof_size & TME_I82586_TBD_EOF) {
|
||||
break;
|
||||
}
|
||||
@@ -2022,7 +2027,7 @@
|
||||
tme_mutex_unlock(&i825x6->tme_i825x6_mutex);
|
||||
|
||||
/* done: */
|
||||
- return (rc);
|
||||
+ return (tot_length);
|
||||
}
|
||||
|
||||
/* this makes a new Ethernet connection: */
|
||||
--- host/bsd/bsd-bpf.c.orig2 2006-12-13 08:07:09.000000000 -0500
|
||||
+++ host/bsd/bsd-bpf.c 2006-12-13 11:38:27.000000000 -0500
|
||||
@@ -292,7 +292,7 @@
|
||||
struct tme_ethernet_connection *conn_eth;
|
||||
int callouts, later_callouts;
|
||||
unsigned int ctrl;
|
||||
- int rc;
|
||||
+ int rc, status;
|
||||
tme_ethernet_fid_t frame_id;
|
||||
struct tme_ethernet_frame_chunk frame_chunk_buffer;
|
||||
tme_uint8_t frame[TME_ETHERNET_FRAME_MAX];
|
||||
@@ -372,6 +372,9 @@
|
||||
&frame_id,
|
||||
&frame_chunk_buffer,
|
||||
TME_ETHERNET_READ_NEXT)));
|
||||
+
|
||||
+ /* ensure don't get back bad length from i825x6 */
|
||||
+ assert(rc <= sizeof(frame));
|
||||
|
||||
/* lock the mutex: */
|
||||
tme_mutex_lock(&bpf->tme_bsd_bpf_mutex);
|
||||
@@ -380,7 +383,11 @@
|
||||
if (rc > 0) {
|
||||
|
||||
/* do the write: */
|
||||
- tme_thread_write(bpf->tme_bsd_bpf_fd, frame, rc);
|
||||
+ status = tme_thread_write(bpf->tme_bsd_bpf_fd, frame, rc);
|
||||
+
|
||||
+ /* assert if write failed. also assert if we wrote less bytes
|
||||
+ than we commanded */
|
||||
+ assert (status == rc);
|
||||
|
||||
/* mark that we need to loop to callout to read more frames: */
|
||||
bpf->tme_bsd_bpf_callout_flags |= TME_BSD_BPF_CALLOUT_READ;
|
||||
--- machine/sun/sun-obie.c.orig 2005-02-17 07:37:25.000000000 -0500
|
||||
+++ machine/sun/sun-obie.c 2006-12-19 05:34:13.000000000 -0500
|
||||
@@ -78,7 +78,6 @@
|
||||
#define TME_SUN_OBIE_CALLOUT_RUNNING TME_BIT(0)
|
||||
#define TME_SUN_OBIE_CALLOUTS_MASK (-2)
|
||||
#define TME_SUN_OBIE_CALLOUT_SIGNALS TME_BIT(1)
|
||||
-#define TME_SUN_OBIE_CALLOUT_INT TME_BIT(2)
|
||||
|
||||
/* structures: */
|
||||
|
||||
@@ -106,8 +105,15 @@
|
||||
/* the callout flags: */
|
||||
int tme_sun_obie_callout_flags;
|
||||
|
||||
- /* if our interrupt line is currently asserted: */
|
||||
- int tme_sun_obie_int_asserted;
|
||||
+ /* the obie CSR interrupt enable bit has been set since powerup */
|
||||
+ int csr_ie_has_been_set;
|
||||
+
|
||||
+ /* the i825x6 interrupt is currently active to the obie */
|
||||
+ int i825x6_interrupt_is_active;
|
||||
+
|
||||
+ /* the obie interrupt (forward of the i825x6 interrupt) is currently active
|
||||
+ to the bus */
|
||||
+ int obie_interrupt_is_active;
|
||||
|
||||
/* it's easiest to just model the board registers as a chunk of memory: */
|
||||
tme_uint8_t tme_sun_obie_regs[TME_SUN_OBIE_SIZ_REGS];
|
||||
@@ -137,17 +143,67 @@
|
||||
static const struct tme_bus_signals _tme_sun_obie_bus_signals_generic = TME_BUS_SIGNALS_GENERIC;
|
||||
static const struct tme_bus_signals _tme_sun_obie_bus_signals_i825x6 = TME_BUS_SIGNALS_I825X6;
|
||||
|
||||
+
|
||||
+/* TME originally never set or cleared TME_SUN_OBIE_CSR_INTR in the obie CSR.
|
||||
+ * This worked fine for running NetBSD inside the emulator, as the NetBSD ie0
|
||||
+ * driver never checked that bit. But SunOS 4.1.1 does.
|
||||
+ * Following is the logic that makes NetBSD and SunOS work inside the
|
||||
+ * emulator (and therefore is likely close to the logic of the actual OBIE
|
||||
+ * hardware: The Sun-2 MultiBus Ethernet Controller, part 501-1004).
|
||||
+ *
|
||||
+ * When i825x6 chip asserts/deasserts an interrupt to OBIE:
|
||||
+ * 1) set or clear TME_SUN_OBIE_CSR_INTR as appropriate
|
||||
+ * and, if the TME_SUN_OBIE_IE (interrupt enable) has ever been set:
|
||||
+ * 2) pass along signal to main bus.
|
||||
+ *
|
||||
+ * Note:
|
||||
+ * When correcting the TME code to work with SunOS, I originally only
|
||||
+ * forwarded the interrupt when IE was active, but SunOS fails five minutes
|
||||
+ * after bootup (complaining about level 3 interrupt) with this arrangement.
|
||||
+ *
|
||||
+ * So the actual use of the IE bit remains a mystery. It is likely sufficient
|
||||
+ * to ignore the IE bit and always pass along the i825x6 interrupt to the main
|
||||
+ * bus. But the current "has been set" IE logic allows NetBSD and SunOS to
|
||||
+ * fully run ethernet correctly inside the emulator, and that's good enough
|
||||
+ * for me. ART
|
||||
+ */
|
||||
+
|
||||
+static void
|
||||
+_possibly_set_csr_intr_bit(struct tme_sun_obie *sun_obie)
|
||||
+{
|
||||
+ tme_uint16_t csr;
|
||||
+
|
||||
+ csr = TME_SUN_OBIE_CSR_GET(sun_obie);
|
||||
+ sun_obie->csr_ie_has_been_set |=
|
||||
+ ((csr & TME_SUN_OBIE_CSR_IE) == TME_SUN_OBIE_CSR_IE);
|
||||
+
|
||||
+ /* if a change in interrupt status */
|
||||
+ if (sun_obie->obie_interrupt_is_active != sun_obie->i825x6_interrupt_is_active) {
|
||||
+
|
||||
+ /* transition to assert */
|
||||
+ if (!sun_obie->obie_interrupt_is_active) {
|
||||
+ csr = (csr | TME_SUN_OBIE_CSR_INTR);
|
||||
+ }
|
||||
+
|
||||
+ /* transition to deassert */
|
||||
+ else {
|
||||
+ csr = (csr & ~TME_SUN_OBIE_CSR_INTR);
|
||||
+ }
|
||||
+
|
||||
+ TME_SUN_OBIE_CSR_PUT(sun_obie, csr);
|
||||
+ sun_obie->obie_interrupt_is_active = sun_obie->i825x6_interrupt_is_active;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
/* the sun_obie callout function. it must be called with the mutex locked: */
|
||||
static void
|
||||
_tme_sun_obie_callout(struct tme_sun_obie *sun_obie, int new_callouts)
|
||||
{
|
||||
struct tme_bus_connection *conn_i825x6;
|
||||
- struct tme_bus_connection *conn_bus;
|
||||
tme_uint16_t csr, csr_diff;
|
||||
unsigned int signal, level;
|
||||
int callouts, later_callouts;
|
||||
int rc;
|
||||
- int int_asserted;
|
||||
|
||||
/* add in any new callouts: */
|
||||
sun_obie->tme_sun_obie_callout_flags |= new_callouts;
|
||||
@@ -176,6 +232,8 @@
|
||||
|
||||
/* get the current CSR value: */
|
||||
csr = TME_SUN_OBIE_CSR_GET(sun_obie);
|
||||
+ sun_obie->csr_ie_has_been_set |=
|
||||
+ ((csr & TME_SUN_OBIE_CSR_IE) == TME_SUN_OBIE_CSR_IE);
|
||||
|
||||
/* get the next signal to call out to the i825x6: */
|
||||
csr_diff = ((csr
|
||||
@@ -230,7 +288,10 @@
|
||||
(conn_i825x6,
|
||||
signal | level))
|
||||
: TME_OK);
|
||||
-
|
||||
+
|
||||
+ /* possibly update status of INTR bit in CSR */
|
||||
+ _possibly_set_csr_intr_bit(sun_obie);
|
||||
+
|
||||
/* lock the mutex: */
|
||||
tme_mutex_lock(&sun_obie->tme_sun_obie_mutex);
|
||||
|
||||
@@ -254,55 +315,6 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
-
|
||||
- /* if we need to call out a possible change to our interrupt
|
||||
- signal: */
|
||||
- if (callouts & TME_SUN_OBIE_CALLOUT_INT) {
|
||||
-
|
||||
- /* get the current CSR value: */
|
||||
- csr = TME_SUN_OBIE_CSR_GET(sun_obie);
|
||||
-
|
||||
- /* see if the interrupt signal should be asserted or negated: */
|
||||
- int_asserted = ((csr & (TME_SUN_OBIE_CSR_IE
|
||||
- | TME_SUN_OBIE_CSR_INTR))
|
||||
- == (TME_SUN_OBIE_CSR_IE
|
||||
- | TME_SUN_OBIE_CSR_INTR));
|
||||
-
|
||||
- /* if the interrupt signal doesn't already have the right state: */
|
||||
- if (!int_asserted != !sun_obie->tme_sun_obie_int_asserted) {
|
||||
-
|
||||
- /* get our bus connection: */
|
||||
- conn_bus = sun_obie->tme_sun_obie_conn_regs;
|
||||
-
|
||||
- /* unlock our mutex: */
|
||||
- tme_mutex_unlock(&sun_obie->tme_sun_obie_mutex);
|
||||
-
|
||||
- /* call out the bus interrupt signal edge: */
|
||||
- rc = (conn_bus != NULL
|
||||
- ? ((*conn_bus->tme_bus_signal)
|
||||
- (conn_bus,
|
||||
- TME_BUS_SIGNAL_INT_UNSPEC
|
||||
- | (int_asserted
|
||||
- ? TME_BUS_SIGNAL_LEVEL_ASSERTED
|
||||
- : TME_BUS_SIGNAL_LEVEL_NEGATED)))
|
||||
- : TME_OK);
|
||||
-
|
||||
- /* lock our mutex: */
|
||||
- tme_mutex_lock(&sun_obie->tme_sun_obie_mutex);
|
||||
-
|
||||
- /* if this callout was successful, note the new state of the
|
||||
- interrupt signal: */
|
||||
- if (rc == TME_OK) {
|
||||
- sun_obie->tme_sun_obie_int_asserted = int_asserted;
|
||||
- }
|
||||
-
|
||||
- /* otherwise, remember that at some later time this callout
|
||||
- should be attempted again: */
|
||||
- else {
|
||||
- later_callouts |= TME_SUN_OBIE_CALLOUT_INT;
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
}
|
||||
|
||||
/* put in any later callouts, and clear that callouts are running: */
|
||||
@@ -321,6 +333,9 @@
|
||||
/* recover our data structure: */
|
||||
sun_obie = (struct tme_sun_obie *) _sun_obie;
|
||||
|
||||
+ /* possibly update status of INTR bit in CSR */
|
||||
+ _possibly_set_csr_intr_bit(sun_obie);
|
||||
+
|
||||
/* assume we won't need any new callouts: */
|
||||
new_callouts = 0;
|
||||
|
||||
@@ -329,6 +344,8 @@
|
||||
|
||||
/* get the previous CSR value: */
|
||||
csr_old = TME_SUN_OBIE_CSR_GET(sun_obie);
|
||||
+ sun_obie->csr_ie_has_been_set |=
|
||||
+ ((csr_old & TME_SUN_OBIE_CSR_IE) == TME_SUN_OBIE_CSR_IE);
|
||||
|
||||
/* run the cycle: */
|
||||
tme_bus_cycle_xfer_memory(cycle_init,
|
||||
@@ -354,12 +371,6 @@
|
||||
new_callouts |= TME_SUN_OBIE_CALLOUT_SIGNALS;
|
||||
}
|
||||
|
||||
- /* if this is an interrupt mask change, possibly call out an
|
||||
- interrupt signal change to the bus: */
|
||||
- if (csr_diff & TME_SUN_OBIE_CSR_IE) {
|
||||
- new_callouts |= TME_SUN_OBIE_CALLOUT_INT;
|
||||
- }
|
||||
-
|
||||
#ifndef TME_NO_LOG
|
||||
if (csr_new != sun_obie->tme_sun_obie_last_log_csr) {
|
||||
sun_obie->tme_sun_obie_last_log_csr = csr_new;
|
||||
@@ -397,6 +408,15 @@
|
||||
/* recover our data structures: */
|
||||
sun_obie = conn_bus->tme_bus_connection.tme_connection_element->tme_element_private;
|
||||
|
||||
+ /* save this information so we'll know it later */
|
||||
+ sun_obie->i825x6_interrupt_is_active =
|
||||
+ ((signal & TME_BUS_SIGNAL_LEVEL_ASSERTED) == TME_BUS_SIGNAL_LEVEL_ASSERTED);
|
||||
+
|
||||
+ /* return now if interrupt enable has never been set in CSR */
|
||||
+ if (!sun_obie->csr_ie_has_been_set) {
|
||||
+ return (TME_OK);
|
||||
+ }
|
||||
+
|
||||
/* pass the i825x6's signal through to the obio bus: */
|
||||
conn_bus = sun_obie->tme_sun_obie_conn_regs;
|
||||
return (conn_bus != NULL
|
||||
--- ic/i825x6reg.h.orig 2006-12-13 08:27:48.000000000 -0500
|
||||
+++ ic/i825x6reg.h 2006-12-13 08:28:27.000000000 -0500
|
||||
@@ -156,7 +156,7 @@
|
||||
/* the i82586 and 32-bit segmented i82586 Transmit Buffer: */
|
||||
#define TME_I82586_TBD_EOF_SIZE (0)
|
||||
#define TME_I82586_TBD_EOF (0x8000)
|
||||
-#define TME_I82586_TBD_SIZE_MASK (0x7fff)
|
||||
+#define TME_I82586_TBD_SIZE_MASK (0x3fff)
|
||||
#define TME_I82586_TBD_TBD_OFFSET (2)
|
||||
#define TME_I82586_TBD_TB_ADDRESS (4)
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
$NetBSD: patch-ba,v 1.1 2007/03/17 13:44:19 tsutsui Exp $
|
||||
|
||||
--- host/gtk/gtk-screen.c.orig 2006-12-18 09:35:14.000000000 -0500
|
||||
+++ host/gtk/gtk-screen.c 2006-12-18 09:36:18.000000000 -0500
|
||||
@@ -537,6 +537,8 @@
|
||||
and auto-shrink: */
|
||||
screen->tme_gtk_screen_window
|
||||
= gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
||||
+ gtk_window_set_position(GTK_WINDOW(screen->tme_gtk_screen_window),
|
||||
+ GTK_WIN_POS_CENTER);
|
||||
gtk_window_set_policy(GTK_WINDOW(screen->tme_gtk_screen_window),
|
||||
TRUE, TRUE, TRUE);
|
||||
|
|
@ -1,195 +0,0 @@
|
|||
$NetBSD: patch-bb,v 1.2 2007/03/17 14:36:42 tsutsui Exp $
|
||||
|
||||
--- ic/m68k/m68k-insns-auto.sh.orig 2005-03-23 11:09:33.000000000 +0900
|
||||
+++ ic/m68k/m68k-insns-auto.sh 2007-03-17 23:25:24.000000000 +0900
|
||||
@@ -58,6 +58,96 @@
|
||||
EOF
|
||||
fi
|
||||
|
||||
+if $header; then
|
||||
+ cat <<EOF
|
||||
+
|
||||
+/* following are to fix the movel sp,-(sp) problem (of the value being pushed
|
||||
+ on the stack being off by four) and to warn if there are other possible
|
||||
+ problems that haven't been tested */
|
||||
+
|
||||
+#define PREDEC_POSTINC_CONCERN ( \\
|
||||
+ \\
|
||||
+/* if source and destination register are the same number */ \\
|
||||
+ (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,0,3) == \\
|
||||
+ TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,9,3)) && \\
|
||||
+ \\
|
||||
+/* and both are address registers */ \\
|
||||
+ ( \\
|
||||
+ (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,3,3) >= 1) && \\
|
||||
+ (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,3,3) <= 6) && \\
|
||||
+ (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,6,3) >= 1) && \\
|
||||
+ (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,6,3) <= 6) \\
|
||||
+ ) && \\
|
||||
+ \\
|
||||
+/* and there is a predec or postinc in the src, or a predec in dest */ \\
|
||||
+ ( \\
|
||||
+ (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,3,3) == 3) || \\
|
||||
+ (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,3,3) == 4) || \\
|
||||
+ (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,6,3) == 4) \\
|
||||
+ ) \\
|
||||
+ )
|
||||
+
|
||||
+
|
||||
+#define DEST_IS_PREDEC_SRC_IS_REG_BOTH_SP ( \\
|
||||
+ (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,6,3) == 4) && \\
|
||||
+ (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,3,3) == 1) && \\
|
||||
+ (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,0,3) == 7) && \\
|
||||
+ (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,9,3) == 7) \\
|
||||
+ )
|
||||
+
|
||||
+/* following modes test ok */
|
||||
+#define MODE35_MODE24_OR_MODE54 ( \\
|
||||
+ \\
|
||||
+/* src/dest mode 3,5 : this is move.l (a5)+,(028,a5) */ \\
|
||||
+ ( \\
|
||||
+ (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,3,3) == 3) && \\
|
||||
+ (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,6,3) == 5) \\
|
||||
+ ) || \\
|
||||
+ \\
|
||||
+/* or src/dest mode 2,4 : this is move.l (a5),-(a5) */ \\
|
||||
+ ( \\
|
||||
+ (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,3,3) == 2) && \\
|
||||
+ (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,6,3) == 4) \\
|
||||
+ ) || \\
|
||||
+ \\
|
||||
+/* or src/dest mode 5,4 : this is move.l (028,a5),-(a5) */ \\
|
||||
+ ( \\
|
||||
+ (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,3,3) == 5) && \\
|
||||
+ (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,6,3) == 4) \\
|
||||
+ ) \\
|
||||
+ )
|
||||
+
|
||||
+
|
||||
+#define PRINT_WEIRD_SRC_DST_REG_MODE(msg) \\
|
||||
+ printf("%s\nsrc reg: %x src mode: %x dest reg: %x dest mode %x at pc:%x\n", \\
|
||||
+ msg, \\
|
||||
+ TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,0,3), \\
|
||||
+ TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,3,3), \\
|
||||
+ TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,9,3), \\
|
||||
+ TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,6,3), \\
|
||||
+ ic->tme_m68k_ireg_pc)
|
||||
+
|
||||
+
|
||||
+#define HITRETURN(msg) do { \\
|
||||
+ printf("%s, pc:0x%08x, insn:0x%08x: please", \\
|
||||
+ msg, ic->tme_m68k_ireg_pc, TME_M68K_INSN_OPCODE); \\
|
||||
+ printf(" analyze M68K instruction.\n"); \\
|
||||
+ printf(" generate test case.\n"); \\
|
||||
+ printf(" if TME emulation is incorrect, correct problem.\n"); \\
|
||||
+ printf(" modify source to avoid this message in the future.\n"); \\
|
||||
+ printf("press any to continue:"); \\
|
||||
+ (void)getchar(); \\
|
||||
+ printf("continuing\n"); \\
|
||||
+} while (0)
|
||||
+
|
||||
+EOF
|
||||
+else
|
||||
+ cat <<EOF
|
||||
+#include <stdio.h>
|
||||
+
|
||||
+EOF
|
||||
+fi
|
||||
+
|
||||
# permute for the three different operand sizes we need to handle:
|
||||
for size in 8 16 32; do
|
||||
|
||||
@@ -162,16 +252,16 @@
|
||||
echo ""
|
||||
echo " if (!TME_M68K_SEQUENCE_RESTARTING) {"
|
||||
echo " ic->_tme_m68k_ea_function_code = function_code;"
|
||||
- echo " ic->_tme_m68k_ea_address = ic->tme_m68k_ireg_uint32(TME_M68K_IREG_A0 + ireg_dst);"
|
||||
- echo " ic->tme_m68k_ireg_uint32(TME_M68K_IREG_A0 + ireg_dst) += ireg_dst_adjust;"
|
||||
- echo " }"
|
||||
- echo " tme_m68k_read_memx${size}(ic);"
|
||||
- echo " if (!TME_M68K_SEQUENCE_RESTARTING) {"
|
||||
- echo " ic->_tme_m68k_ea_function_code = function_code;"
|
||||
echo " ic->_tme_m68k_ea_address = ic->tme_m68k_ireg_uint32(TME_M68K_IREG_A0 + ireg_src);"
|
||||
echo " ic->tme_m68k_ireg_uint32(TME_M68K_IREG_A0 + ireg_src) += ireg_src_adjust;"
|
||||
echo " }"
|
||||
echo " tme_m68k_read_mem${size}(ic, TME_M68K_IREG_MEMY${size});"
|
||||
+ echo " if (!TME_M68K_SEQUENCE_RESTARTING) {"
|
||||
+ echo " ic->_tme_m68k_ea_function_code = function_code;"
|
||||
+ echo " ic->_tme_m68k_ea_address = ic->tme_m68k_ireg_uint32(TME_M68K_IREG_A0 + ireg_dst);"
|
||||
+ echo " ic->tme_m68k_ireg_uint32(TME_M68K_IREG_A0 + ireg_dst) += ireg_dst_adjust;"
|
||||
+ echo " }"
|
||||
+ echo " tme_m68k_read_memx${size}(ic);"
|
||||
echo " ${dst} = ic->tme_m68k_ireg_memx${size};"
|
||||
echo " ${src} = ic->tme_m68k_ireg_memy${size};"
|
||||
;;
|
||||
@@ -181,6 +271,12 @@
|
||||
addx|subx)
|
||||
echo " tme_uint16_t memory;"
|
||||
echo ""
|
||||
+ # sanity checks for addx/subx
|
||||
+ echo " if ((ireg_src == ireg_dst) &&"
|
||||
+ echo " (TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,3,1) == 1)) {"
|
||||
+ echo " HITRETURN(\"weird ${name}${size}\");"
|
||||
+ echo " }"
|
||||
+ echo ""
|
||||
echo " memory = (TME_M68K_INSN_OPCODE & TME_BIT(3));"
|
||||
echo " if (memory) {"
|
||||
echo " TME_M68K_INSN_CANFAULT;"
|
||||
@@ -239,6 +335,35 @@
|
||||
fi
|
||||
echo ";"
|
||||
|
||||
+ # check "moveX sp,-(sp)" and adjust res
|
||||
+ if test ${name} = move; then
|
||||
+ echo ""
|
||||
+ echo " if (PREDEC_POSTINC_CONCERN) {"
|
||||
+ echo " if (DEST_IS_PREDEC_SRC_IS_REG_BOTH_SP) {"
|
||||
+ if test ${size} = 8; then
|
||||
+ echo " printf(\"ERROR: ${name}${size}: how can addr/addr be 8 bits? at pc:%x\\n\","
|
||||
+ echo " ic->tme_m68k_ireg_pc);"
|
||||
+ else
|
||||
+ echo "#if 0"
|
||||
+ echo " printf(\"${name}${size}: chg predec dest res from:%x to %x for register %d at pc %x\\n\","
|
||||
+ echo " res, res + (${size} / 8), TME_FIELD_EXTRACTU(TME_M68K_INSN_OPCODE,0,3), ic->tme_m68k_ireg_pc);"
|
||||
+ echo "#endif"
|
||||
+ echo " res = res + (${size} / 8);"
|
||||
+ fi
|
||||
+ echo " } else if (!(MODE35_MODE24_OR_MODE54)) {"
|
||||
+ echo " PRINT_WEIRD_SRC_DST_REG_MODE(\"WEIRD: ${name}${size}\");"
|
||||
+ echo " }"
|
||||
+ echo " }"
|
||||
+ fi
|
||||
+
|
||||
+ # sanity check for cmpa16
|
||||
+ if test ${name} = cmpa; then
|
||||
+ echo ""
|
||||
+ echo " if PREDEC_POSTINC_CONCERN {"
|
||||
+ echo " PRINT_WEIRD_SRC_DST_REG_MODE(\"weird ${name}${size}\");"
|
||||
+ echo " }"
|
||||
+ fi
|
||||
+
|
||||
# store the result:
|
||||
if $store_res; then
|
||||
echo ""
|
||||
@@ -362,6 +487,10 @@
|
||||
adda) op='+' ; src="_op0" ; dst="_op1" ;;
|
||||
movea) op='' ; src="_op1" ; dst="_op0" ;;
|
||||
esac
|
||||
+ echo " if (PREDEC_POSTINC_CONCERN) {"
|
||||
+ echo " PRINT_WEIRD_SRC_DST_REG_MODE(\"weird ${name}${size}\");"
|
||||
+ echo " }"
|
||||
+ echo ""
|
||||
echo " *((tme_int32_t *) ${dst}) ${op}= *((tme_int${size}_t *) ${src});"
|
||||
echo " TME_M68K_INSN_OK;"
|
||||
echo "}"
|
||||
@@ -801,6 +930,10 @@
|
||||
echo " tme_uint16_t specopy = TME_M68K_INSN_OP0(tme_uint16_t);"
|
||||
echo " tme_uint32_t addrx;"
|
||||
echo " tme_uint32_t addry;"
|
||||
+ fi
|
||||
+ echo ""
|
||||
+ echo " TME_M68K_INSN_CANFAULT;"
|
||||
+ if test $name = cas2_; then
|
||||
echo ""
|
||||
echo " /* get the function code and addresses we'll be dealing with: */"
|
||||
echo " ic->_tme_m68k_ea_function_code = TME_M68K_FUNCTION_CODE_DATA(ic);"
|
|
@ -1,65 +0,0 @@
|
|||
$NetBSD: patch-bc,v 1.1 2007/03/17 13:44:20 tsutsui Exp $
|
||||
|
||||
--- ic/ieee754/ieee754-ops-auto.sh.orig 2005-03-23 20:47:37.000000000 +0900
|
||||
+++ ic/ieee754/ieee754-ops-auto.sh 2007-03-14 22:00:59.000000000 +0900
|
||||
@@ -126,7 +126,7 @@
|
||||
|
||||
# generate the operations:
|
||||
#
|
||||
- for name in add sub mul div \
|
||||
+ for name in add cmp sub mul div \
|
||||
rem sqrt abs neg move \
|
||||
rint \
|
||||
cos acos cosh \
|
||||
@@ -144,7 +144,7 @@
|
||||
#
|
||||
monadic=true
|
||||
case "${name}" in
|
||||
- add | sub | mul | div | rem | pow | scale)
|
||||
+ add | cmp | sub | mul | div | rem | pow | scale)
|
||||
monadic=false
|
||||
;;
|
||||
esac
|
||||
@@ -243,13 +243,14 @@
|
||||
func_softfloat="${name}"
|
||||
;;
|
||||
*-add) op_builtin='+' ;;
|
||||
+ *-cmp) op_builtin='-' ;;
|
||||
*-sub) op_builtin='-' ;;
|
||||
*-mul) op_builtin='*' ;;
|
||||
*-div) op_builtin='/' ;;
|
||||
*-sqrt) func_libm=sqrt ;;
|
||||
partial-abs | unknown-abs) func_libm=fabs ;;
|
||||
strict-neg) op0=0 ; func_softfloat=sub ; op1=src0 ;;
|
||||
- partial-neg | unknown-neg) op0=0 ; op_builtin='-'; op1=src0 ;;
|
||||
+ partial-neg | unknown-neg) op0=-1.0 ; op_builtin='*'; op1=src0 ;;
|
||||
strict-move) func_softfloat=add ; op1=0 ;;
|
||||
*-move) type="${level_stricter}-move" ; src0_buffer=false ;;
|
||||
strict-rint) func_softfloat=round_to_int ;;
|
||||
@@ -547,6 +548,15 @@
|
||||
# a builtin operation:
|
||||
#
|
||||
builtin)
|
||||
+ if test ${name} = "cmp"; then
|
||||
+
|
||||
+ echo " if (tme_float_is_inf(src0, TME_FLOAT_FORMAT_IEEE754_${capprecision} ) &"
|
||||
+ echo " tme_float_is_inf(src1, TME_FLOAT_FORMAT_IEEE754_${capprecision}) &"
|
||||
+ echo " (tme_float_is_negative(src0, TME_FLOAT_FORMAT_IEEE754_${capprecision}) =="
|
||||
+ echo " tme_float_is_negative(src1, TME_FLOAT_FORMAT_IEEE754_${capprecision})))"
|
||||
+ echo " tme_ieee754_${precision}_value_builtin_set(dst, TME_FLOAT_FORMAT_IEEE754_${capprecision}_BUILTIN, 0.0);"
|
||||
+ echo " else"
|
||||
+ fi;
|
||||
echo " tme_ieee754_${precision}_value_builtin_set(dst, TME_FLOAT_FORMAT_IEEE754_${capprecision}_BUILTIN, ${op0} ${op_builtin} ${op1});"
|
||||
;;
|
||||
|
||||
--- ic/m68k/m6888x-auto.sh.orig 2006-10-01 08:22:49.000000000 -0400
|
||||
+++ ic/m68k/m6888x-auto.sh 2006-10-01 08:22:56.000000000 -0400
|
||||
@@ -136,7 +136,7 @@
|
||||
12) name=asin ; fpu_types=TME_M68K_FPU_M6888X ;; # fasin pp 315
|
||||
10) name=atan ; fpu_types=TME_M68K_FPU_M6888X ;; # fatan pp 318
|
||||
13) name=atanh ; fpu_types=TME_M68K_FPU_M6888X ;; # fatanh pp 321
|
||||
- 56) name=cmp ; name_ieee754=sub ; optype=DST_SRC ;; # fcmp pp 326
|
||||
+ 56) name=cmp ; optype=DST_SRC ;; # fcmp pp 326
|
||||
29) name=cos ; fpu_types=TME_M68K_FPU_M6888X ;; # fcos pp 329
|
||||
25) name=cosh ; fpu_types=TME_M68K_FPU_M6888X ;; # fcosh pp 332
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
$NetBSD: patch-bd,v 1.1 2007/03/17 13:44:20 tsutsui Exp $
|
||||
|
||||
--- generic/fb-xlat-auto.sh.orig 2005-05-15 04:02:20.000000000 +0900
|
||||
+++ generic/fb-xlat-auto.sh 2007-03-11 18:06:24.000000000 +0900
|
||||
@@ -458,11 +458,11 @@
|
||||
if (bits < 32) { \\
|
||||
if (order == TME_ENDIAN_BIG) { \\
|
||||
fifo |= (next >> bits); \\
|
||||
- next <<= (32 - bits); \\
|
||||
+ next = (bits == 0) ? 0 : (next << (32 - bits)); \\
|
||||
} \\
|
||||
else { \\
|
||||
fifo |= (next << bits); \\
|
||||
- next >>= (32 - bits); \\
|
||||
+ next = (bits == 0) ? 0 : (next >> (32 - bits)); \\
|
||||
} \\
|
||||
} \\
|
||||
\\
|
||||
@@ -506,11 +506,12 @@
|
||||
/* shift the FIFO: */ \\
|
||||
if (order == TME_ENDIAN_BIG) { \\
|
||||
next |= (fifo >> bits); \\
|
||||
- fifo <<= (32 - bits); \\
|
||||
+ fifo = (bits == 0) ? 0 : (fifo << (32 - bits)); \\
|
||||
} \\
|
||||
else { \\
|
||||
next |= (fifo << bits); \\
|
||||
fifo >>= (32 - bits); \\
|
||||
+ fifo = (bits == 0) ? 0 : (fifo >> (32 - bits)); \\
|
||||
} \\
|
||||
bits += (shift); \\
|
||||
\\
|
|
@ -1,17 +0,0 @@
|
|||
$NetBSD: patch-be,v 1.1 2007/03/17 13:44:20 tsutsui Exp $
|
||||
|
||||
--- ic/m68k/m68k-iset.txt.orig 2005-03-23 20:55:34.000000000 +0900
|
||||
+++ ic/m68k/m68k-iset.txt 2007-03-14 01:31:57.000000000 +0900
|
||||
@@ -59,8 +59,10 @@
|
||||
.if m68020 || m68030
|
||||
specop specop16 cmp2_chk2
|
||||
0000 0ss0 11xx xxxx cmp2_chk2 X, x0/control ! chk2 pp 174, cmp2 pp 185
|
||||
-specop specop16 cas
|
||||
-0000 1SS0 11xx xxxx cas.S X, x0/memalt/un ! cas pp 169
|
||||
+specop specop16 cas8 cas16 cas32
|
||||
+0000 1010 11xx xxxx cas8 X, x0/memalt/un ! cas pp 169
|
||||
+0000 1100 11xx xxxx cas16 X, x0/memalt/un ! cas pp 169
|
||||
+0000 1110 11xx xxxx cas32 X, x0/memalt/un ! cas pp 169
|
||||
specop specop16 cas2_16 cas2_32
|
||||
0000 1100 1111 1100 cas2_16 #16 ! cas2 pp 169
|
||||
0000 1110 1111 1100 cas2_32 #16 ! cas2 pp 169
|
Loading…
Reference in a new issue