From: Kevin P L. <kev...@us...> - 2002-09-16 20:23:44
|
Update of /cvsroot/bochs/bochs In directory usw-pr-cvs1:/tmp/cvs-serv22211 Modified Files: Makefile.in configure configure.in Log Message: Merged the final filed ("paging.cc") from Peter Tattam's x86-64 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. Index: Makefile.in =================================================================== RCS file: /cvsroot/bochs/bochs/Makefile.in,v retrieving revision 1.81 retrieving revision 1.82 diff -u -d -r1.81 -r1.82 --- Makefile.in 15 Sep 2002 15:10:18 -0000 1.81 +++ Makefile.in 16 Sep 2002 20:23:37 -0000 1.82 @@ -74,8 +74,6 @@ SHELL = /bin/sh -CPUDIR = @CPUDIR@ - @SET_MAKE@ CC = @CC@ @@ -167,15 +165,14 @@ @EXTERNAL_DEPENDENCY@ bochs@EXE@: @IODEV_LIB_VAR@ @DEBUGGER_VAR@ \ - $(CPUDIR)/libcpu.a @CPU32LIB@ memory/libmemory.a gui/libgui.a \ + cpu/libcpu.a @CPU32LIB@ memory/libmemory.a gui/libgui.a \ @DISASM_VAR@ @INSTRUMENT_VAR@ @DYNAMIC_VAR@ $(BX_OBJS) \ $(SIMX86_OBJS) \ $(FPU_LIB) @LINK@ $(BX_OBJS) \ $(SIMX86_OBJS) \ iodev/libiodev.a \ - $(CPUDIR)/libcpu.a @CPU32LIB@ \ - $(CPUDIR)/libcpu.a @CPU32LIB@ \ + cpu/libcpu.a @CPU32LIB@ \ memory/libmemory.a gui/libgui.a \ @DEBUGGER_VAR@ @DISASM_VAR@ @INSTRUMENT_VAR@ @DYNAMIC_VAR@ \ $(FPU_LIB) \ @@ -357,7 +354,7 @@ for i in $(MAN_PAGE_5_LIST); do $(RM) -f $(man5dir)/$$i.5.gz; done V6WORKSPACE_ZIP=build/win32/workspace.zip -V6WORKSPACE_FILES=bochs.dsw bochs.dsp bochs.opt $(CPUDIR)/cpu.dsp \ +V6WORKSPACE_FILES=bochs.dsw bochs.dsp bochs.opt cpu/cpu.dsp \ memory/memory.dsp iodev/iodev.dsp instrument/stubs/stubs.dsp \ gui/gui.dsp fpu/fpu.dsp disasm/disasm.dsp debug/debug.dsp \ misc/niclist.dsp bximage.dsp @@ -496,7 +493,7 @@ ########################################### # dependencies generated by -# gcc -MM -I. -Iinstrument/stubs *.cc | sed -e 's/\.cc/.@CPP_SUFFIX@/g' -e 's,cpu/,$(CPUDIR)/,g' +# gcc -MM -I. -Iinstrument/stubs *.cc | sed -e 's/\.cc/.@CPP_SUFFIX@/g' -e 's,cpu/,cpu/,g' ########################################### load32bitOShack.o: load32bitOShack.@CPP_SUFFIX@ bochs.h config.h osdep.h \ debug/debug.h bxversion.h gui/siminterface.h state_file.h cpu/cpu.h \ Index: configure =================================================================== RCS file: /cvsroot/bochs/bochs/configure,v retrieving revision 1.106 retrieving revision 1.107 diff -u -d -r1.106 -r1.107 --- configure 16 Sep 2002 19:17:48 -0000 1.106 +++ configure 16 Sep 2002 20:23:38 -0000 1.107 @@ -1,311 +1,128 @@ #! /bin/sh -# From configure.in Id: configure.in,v 1.107 2002/09/16 12:37:16 bdenney Exp . + # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.53. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. # -# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 -# Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation [...15622 lines suppressed...] -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - exec 5>/dev/null - $SHELL $CONFIG_STATUS || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 Index: configure.in =================================================================== RCS file: /cvsroot/bochs/bochs/configure.in,v retrieving revision 1.109 retrieving revision 1.110 diff -u -d -r1.109 -r1.110 --- configure.in 16 Sep 2002 19:17:51 -0000 1.109 +++ configure.in 16 Sep 2002 20:23:38 -0000 1.110 @@ -312,7 +312,6 @@ [ --enable-x86-64 compile in support for x86-64 instructions], [if test "$enableval" = yes; then AC_MSG_RESULT(yes) - CPUDIR=cpu64 OBJS32='' OBJS64='$(OBJS64)' CPU32LIB='cpu/libcpu.a' @@ -321,7 +320,6 @@ use_x86_64=1 else AC_MSG_RESULT(no) - CPUDIR=cpu OBJS32='$(OBJS32)' OBJS64='' CPU32LIB='' @@ -331,7 +329,6 @@ ], [ AC_MSG_RESULT(no) - CPUDIR=cpu OBJS32='$(OBJS32)' OBJS64='' CPU32LIB='' @@ -339,7 +336,6 @@ AC_DEFINE(BX_SUPPORT_X86_64, 0) ] ) -AC_SUBST(CPUDIR) AC_SUBST(OBJS32) AC_SUBST(OBJS64) AC_SUBST(CPU32LIB) @@ -590,22 +586,23 @@ AC_SUBST(PCI_OBJ) +support_big_pages=0 AC_MSG_CHECKING(for 4Meg pages support) AC_ARG_ENABLE(4meg-pages, [ --enable-4meg-pages support 4Megabyte pages extensions], [if test "$enableval" = yes; then AC_MSG_RESULT(yes) - AC_DEFINE(BX_SUPPORT_4MEG_PAGES, 1) + support_big_pages=1 else AC_MSG_RESULT(no) - AC_DEFINE(BX_SUPPORT_4MEG_PAGES, 0) + support_big_pages=0 fi], [ AC_MSG_RESULT(no) - AC_DEFINE(BX_SUPPORT_4MEG_PAGES, 0) + support_big_pages=0 ] ) -AC_SUBST(BX_SUPPORT_4MEG_PAGES) + AC_MSG_CHECKING(for guest to host TLB support) AC_ARG_ENABLE(guest2host-tlb, @@ -1673,8 +1670,10 @@ # and Page Global Extension (PGE. echo 'Because X86-64 is enabled, enabling Physical Address Extension (PAE).' echo 'Because X86-64 is enabled, enabling Page Global Extension (PGE).' + echo 'Because X86-64 is enabled, enabling Page Size Extension (PSE).' support_pae=1 support_global_pages=1 + support_big_pages=1 else support_pae=0 # Not an option yet for x86-32. fi @@ -1689,6 +1688,12 @@ AC_DEFINE(BX_SupportPAE, 1) else AC_DEFINE(BX_SupportPAE, 0) +fi + +if test "$support_big_pages" = 1; then + AC_DEFINE(BX_SUPPORT_4MEG_PAGES, 1) +else + AC_DEFINE(BX_SUPPORT_4MEG_PAGES, 0) fi AC_SUBST(INSTALL_TARGET) |