SSE/SSE2 for Stanislav. Also, some method prototypes and
skeletal functions in access.cc for read/write double quadword
features.
Also cleaned up one warning in protect_ctrl.cc for non-64 bit compiles.
There was an unused variable, only used for 64-bit.
override default. This is useful if you have more than one wx installation,
for example debug and release libraries.
- modified: Makefile.in configure.in configure
instead of winmm being a part of GUI_LINK_OPTS_WIN32 only, it is
placed in @DEVICE_LINE_OPTS@ so that it will be used for sdl, rfb, wx,
etc.
- solve compile problems when building bximage, niclist, and any other
console based program. The compile flags returned by wx-config and
sdl-config did strange things to these console programs, for example
redefining main to SDL_main. Because I wanted to use the
configure-generated CFLAGS to compile the programs, but I wanted to
avoid including GUI specific compile options, I split up the configure's
@CFLAGS@ variable into @CFLAGS@ and @GUI_CFLAGS@, and split
@CXXFLAGS@ into @CXXFLAGS@ and @GUI_CXXFLAGS@. All programs in the
Bochs binary will use both, but the console programs will just use
@CFLAGS@ or @CXXFLAGS@.
- gui/Makefile.in, I no longer use the gui specific CFLAGS variables,
SDL_CFLAGS and WX_CXXFLAGS. These values are included in CFLAGS and
CXXFLAGS now.
- modified: configure.in, configure, all Makefile.in's
"-pthread" flag to the link line, but as of wxWindows 2.3.3 their
wx-config script adds it for us. Given the keyboard mapping improvements
in wx 2.3.3, I don't expect to support any previous version.
To: bochs-developers@lists.sourceforge.net
Subject: [Bochs-developers] Fix for configure.in bug
This patches fixes a bug in configure.in which prevents configure from setting
default values for CFLAGS and CXXFLAGS. Normally, the way autoconf builds
configure, it will set default values for CFLAGS and CXXFLAGS of `-g -O2'.
But, if the user specified them (via the environment), it won't touch them.
The clause in configure.in that tries to set platform-specific flags breaks
this because it always assigns a value (usually blank for most platforms),
which fools the defaulting mechanism later on.
all available optimizations in one shot.
Finished one last case of an instruction which could but didn't use
the Read-Modify-Write variants of access.cc functions.
Started going through the integer instructions, merging obvious cases
where there are two "if (modrm==11b) {" clauses and very little
action in between, and cleaning up the aweful indentation leftover
from many years ago when those instructions were implemented using
cut-and-paste. We may get a little extra performance out of these
mods, but they'll also be easier after I'm finished to enhance
with asm() statements to knock out the lazy flags processing on x86.
just the wxwindows ones. This is required on cygwin, for example, because
the CFLAGS and CXXFLAGS include gcc flags that change code generation:
-fno-pcc-struct-return and -fvtable-thunks. It is not safe to mix code
compiled with these flags with code compiled without. I learned this the
hard way when I found that sometimes code that called a virtual member
function was jumping to the WRONG member function.
wxWindows guis.
- if cross configuring, don't insist on finding curses library.
- on normal configures, when the target platform is win32 (windows, cygwin,
mingw), don't insist on finding pthread either.
(I'm starting to wonder if when cross_configure=1 we shouldn't just skip over
ALL of the library and header checks. When you're going to configure on one
platform and build on another, all that information is useless anyway.)
smarter. If you use --enable-x86-64, it has the following side
effects on other options:
- cpu level defaults to 6 instead of 5
- ignore bad msr defaults to on (Peter T. requested this)
- if cpu level is 6 or greater, these options are enabled by default.
- 4meg pages (PSE)
- physical address extensions (PAE)
- global pages (PGE)
- apic support
configuring for a different machine. This is used to short-circuit
certain sanity checks, such as existence of certain required libraries.
- in --with-wx configuration, when $cross_configure=1, do not abort
configure if library is not found.
- if wxWindows version not found, print "not_found" instead of nothing
From his patch file text:
> This patch adds Promise DC2300 VLB IDE Support.
> You may find msdos and win95 drivers on the net. Look for
> P2300W95.ZIP and DC2300VLBIDEver260b.ZIP.
>
> The good news is that now win95 natively sees my cdrom,
> and that the disks are not in msdos compatibility mode any more.
>
> The bad news is that it works only for the first ata interface.
>
> I tested that patch on msdos and win95 only.
>
> Some info on VLB IDE can be found at http://ryston.cz/petr/vlb/
I got Win95 running with 32-bit paging/filesystem using the
recommended driver and these patches. Since the patches did
such a good job bracketing code modifications with a #define,
they might as well become part of the current CVS code.
user can turn on/off use of native host specific inline asm
statements. By default, this option is enabled, so you only
need it to disable inline asms in your compile for now.
Currently only on x86+GCC environments, will inline asm()
statements be used. Eventually, other platforms could specify
some asm()s; probably for endian issues such as byte-swapping
and unaligned memory accesses. On x86, there are some inline
asm()s which do the arithmetic EFLAGS processing so that the
lazy flags handling is somewhat bypassed. Eventually, I'll
add more, at least for the more common instructions. This
adds a little extra performance.
- hardcode BX_HAVE_GETTIMEOFDAY=0 if cross compiling for VC++
(this part hasn't been tested)
- modified files: configure configure.in config.h.in iodev/pit_wrap.cc
but if you hand edit cpu/cpu.h, and change BxICacheEntries,
you can try different sizes. I'll make this more flexible
with configure. For now, use "--enable-icache" with no parameters.
- Modified fetchdecode.cc/fetchdecode64.cc just enough so that
instructions which encode a direct address now use a memory
resolution function which just sticks the immediate address
into rm_addr. With cached instructions we need this.
enhancement to bochs. You can now configure with
--enable-guest2host-tlb.
Force the support of big pages (PSE) when x86-64 is configured.
Reverted back to only one kind of TLB entry style, since everything
is ported.
Fixed one bug in io.cc with as_64 and the index registers.
There are others, as noticed by Peter.
you have AC_DEFINE(var, value) executed more than once, autoconf is
supposed to use the last AC_DEFINE value, but sometimes it doesn't.
I haven't been able to figure out why, so I've just worked around it
instead.
- for BX_SupportGlobalPages, which could call AC_DEFINE twice, I kept the
value in a shell variable $support_global_pages until the end and then
did one AC_DEFINE after it had reached its final value. Same thing
with BX_USE_CONFIG_INTERFACE.
- also I realized that we are using AC_SUBST() in many cases where it is
not needed. AC_SUBST(name) substitutes the string @name@ with a
value from the configure script. For preprocessor symbols like
BX_SupportPAE, we only need the AC_DEFINE; the AC_SUBST has no effect.
be used at all, and Peter didn't want it. "extdb.o" is compiled
into libcpu.a, if configured for it.
Removed a few #warnings for x86-64 compile, based on Peter's
line-item comments regarding the warnings I inserted during
the port/merge.