surprisingly, opensuse 12.1 requre alignment check support in hardware so I can't disable it by default for all configurations.

but in case you want a few %% of extra emulation performance - it is still possible to disable it with configure option.
most guests I saw do not use it !
This commit is contained in:
Stanislav Shwartsman 2012-03-26 19:33:38 +00:00
parent 8b78f6ca2c
commit e7a4a1bec8
4 changed files with 24 additions and 12 deletions

View File

@ -17,11 +17,10 @@ Changes after 2.5.1 release:
state of the device specified in 'string' state of the device specified in 'string'
- Improved debug dump for pci, pic and vga/cirrus devices - Improved debug dump for pci, pic and vga/cirrus devices
- Added debug dump for pci2isa, floppy and DMA controller devices - Added debug dump for pci2isa, floppy and DMA controller devices
- Added TLB to CPU param tree - now it can be browsed from Bochs internal
debugger and Bochs debugger GUI through param tree interfaces
- Configure and compile - Configure and compile
- Do not compile support for alignment check (#AC exception) by default
for CPU emulation performance reasons, the alignment check compilation
still can be enabled using configure option --enable-alignment-check.
- Moved networking, sound and USB devices to subdirectories in iodev. - Moved networking, sound and USB devices to subdirectories in iodev.
- Moved MWAIT_IS_NOP .bochsrc option from CPUID to CPU so it can be set - Moved MWAIT_IS_NOP .bochsrc option from CPUID to CPU so it can be set
even if cpu was configured using pre-defined CPUDB profile. even if cpu was configured using pre-defined CPUDB profile.
@ -32,11 +31,12 @@ Changes after 2.5.1 release:
to enable configure with option --enable-e1000 to enable configure with option --enable-e1000
- Added PCI network boot ROM support to all network adapters - Added PCI network boot ROM support to all network adapters
- VGA - VGA
- major rewrite of the vga / cirrus code: - Major rewrite of the vga / cirrus code:
- vgacore (shared standard VGA emulation code) - vgacore (shared standard VGA emulation code)
- vga (Bochs VBE and PCI VGA) - vga (Bochs VBE and PCI VGA)
- cirrus (CL-GD 5430 ISA / CL-GD 5446 PCI) - cirrus (CL-GD 5430 ISA / CL-GD 5446 PCI)
- added VGA graphics blinking support - Added VGA graphics blinking support
- More accurate vertical retrace emulation (based on the DOSBox implementation)
- ROM BIOS - ROM BIOS
- improved PCI boot ROM support (for VGA and other devices) - improved PCI boot ROM support (for VGA and other devices)

15
bochs/configure vendored
View File

@ -1,5 +1,5 @@
#! /bin/sh #! /bin/sh
# From configure.in Id: configure.in 11052 2012-02-20 14:27:45Z vruppert . # From configure.in Id: configure.in 11107 2012-03-25 19:07:17Z sshwarts .
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.68. # Generated by GNU Autoconf 2.68.
# #
@ -23299,10 +23299,17 @@ $as_echo "no" >&6; }
else else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 if test "$bx_cpu_level" -gt 3; then
$as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "#define BX_SUPPORT_ALIGNMENT_CHECK 0" >>confdefs.h $as_echo "yes" >&6; }
$as_echo "#define BX_SUPPORT_ALIGNMENT_CHECK 1" >>confdefs.h
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
$as_echo "#define BX_SUPPORT_ALIGNMENT_CHECK 0" >>confdefs.h
fi
fi fi

View File

@ -1564,8 +1564,13 @@ AC_ARG_ENABLE(alignment-check,
fi fi
], ],
[ [
AC_MSG_RESULT(no) if test "$bx_cpu_level" -gt 3; then
AC_DEFINE(BX_SUPPORT_ALIGNMENT_CHECK, 0) AC_MSG_RESULT(yes)
AC_DEFINE(BX_SUPPORT_ALIGNMENT_CHECK, 1)
else
AC_MSG_RESULT(no)
AC_DEFINE(BX_SUPPORT_ALIGNMENT_CHECK, 0)
fi
] ]
) )

View File

@ -365,7 +365,7 @@ void BX_CPU_C::handleAlignmentCheck(void)
{ {
if (CPL == 3 && BX_CPU_THIS_PTR cr0.get_AM() && BX_CPU_THIS_PTR get_AC()) { if (CPL == 3 && BX_CPU_THIS_PTR cr0.get_AM() && BX_CPU_THIS_PTR get_AC()) {
#if BX_SUPPORT_ALIGNMENT_CHECK == 0 #if BX_SUPPORT_ALIGNMENT_CHECK == 0
BX_PANIC(("Alignment check (#AC exception) was not compiled in !")); BX_PANIC(("WARNING: Alignment check (#AC exception) was not compiled in !"));
#else #else
BX_CPU_THIS_PTR alignment_check_mask = 0xF; BX_CPU_THIS_PTR alignment_check_mask = 0xF;
#endif #endif