From e7a4a1bec80ac01f5f78d239774744b7bb3494e0 Mon Sep 17 00:00:00 2001 From: Stanislav Shwartsman Date: Mon, 26 Mar 2012 19:33:38 +0000 Subject: [PATCH] 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 ! --- bochs/CHANGES | 10 +++++----- bochs/configure | 15 +++++++++++---- bochs/configure.in | 9 +++++++-- bochs/cpu/proc_ctrl.cc | 2 +- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/bochs/CHANGES b/bochs/CHANGES index b428d6d99..2071e6cb9 100644 --- a/bochs/CHANGES +++ b/bochs/CHANGES @@ -17,11 +17,10 @@ Changes after 2.5.1 release: state of the device specified in 'string' - Improved debug dump for pci, pic and vga/cirrus 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 - - 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 MWAIT_IS_NOP .bochsrc option from CPUID to CPU so it can be set 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 - Added PCI network boot ROM support to all network adapters - VGA - - major rewrite of the vga / cirrus code: + - Major rewrite of the vga / cirrus code: - vgacore (shared standard VGA emulation code) - vga (Bochs VBE and PCI VGA) - 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 - improved PCI boot ROM support (for VGA and other devices) diff --git a/bochs/configure b/bochs/configure index 1841b7995..35fb90315 100755 --- a/bochs/configure +++ b/bochs/configure @@ -1,5 +1,5 @@ #! /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. # Generated by GNU Autoconf 2.68. # @@ -23299,10 +23299,17 @@ $as_echo "no" >&6; } 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 + if test "$bx_cpu_level" -gt 3; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$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 diff --git a/bochs/configure.in b/bochs/configure.in index 788ebf535..54740fccd 100644 --- a/bochs/configure.in +++ b/bochs/configure.in @@ -1564,8 +1564,13 @@ AC_ARG_ENABLE(alignment-check, fi ], [ - AC_MSG_RESULT(no) - AC_DEFINE(BX_SUPPORT_ALIGNMENT_CHECK, 0) + if test "$bx_cpu_level" -gt 3; then + AC_MSG_RESULT(yes) + AC_DEFINE(BX_SUPPORT_ALIGNMENT_CHECK, 1) + else + AC_MSG_RESULT(no) + AC_DEFINE(BX_SUPPORT_ALIGNMENT_CHECK, 0) + fi ] ) diff --git a/bochs/cpu/proc_ctrl.cc b/bochs/cpu/proc_ctrl.cc index d22d0fb5c..8783fd307 100644 --- a/bochs/cpu/proc_ctrl.cc +++ b/bochs/cpu/proc_ctrl.cc @@ -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 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 BX_CPU_THIS_PTR alignment_check_mask = 0xF; #endif