[prev in list] [next in list] [prev in thread] [next in thread] 

List:       bochs-cvs
Subject:    [Bochs-cvs] CVS: bochs .bochsrc, 1.173, 1.174 .conf.everything, 1.40,
From:       "Stanislav Shwartsman" <sshwarts () users ! sourceforge ! net>
Date:       2010-02-25 22:04:33
Message-ID: E1Nklov-0002I2-1G () sfp-cvsdas-2 ! v30 ! ch3 ! sourceforge ! com
[Download RAW message or body]

Update of /cvsroot/bochs/bochs
In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv8159

Modified Files:
	.bochsrc .conf.everything .conf.linux .conf.macos .conf.macosx 
	.conf.sparc .conf.win32-cygwin .conf.win32-vcpp config.cc 
	config.h.in configure configure.in main.cc 
Log Message:
allow to configure CPU features at runtime - implemened on example of \
SSE/AES/MOVBE/POPCNT


Index: .bochsrc
===================================================================
RCS file: /cvsroot/bochs/bochs/.bochsrc,v
retrieving revision 1.173
retrieving revision 1.174
diff -u -d -r1.173 -r1.174
--- .bochsrc	4 Dec 2009 13:04:30 -0000	1.173
+++ .bochsrc	25 Feb 2010 22:04:30 -0000	1.174
@@ -104,10 +104,6 @@
 #  PANIC. Remember that if you trying to continue after triple fault the 
 #  simulation will be completely bogus !
 #
-#  CPUID_LIMIT_WINNT:
-#  Determine whether to limit maximum CPUID function to 3. This mode is
-#  required to workaround WinNT installation and boot issues.
-#
 #  MSRS:
 #  Define path to user CPU Model Specific Registers (MSRs) specification.
 #  See example in msrs.def.
@@ -117,14 +113,6 @@
 #  message instead of generating #GP exception. This option is enabled
 #  by default but will not be avaiable if configurable MSRs are enabled.
 #
-#  VENDOR_STRING:
-#  Set the CPUID vendor string returned by CPUID(0x0). This should be a
-#  twelve-character ASCII string.  
-#
-#  BRAND_STRING:
-#  Set the CPUID vendor string returned by CPUID(0x80000002 .. 0x80000004).  
-#  This should be at most a forty-eight-character ASCII string.  
-#
 #  IPS:
 #  Emulated Instructions Per Second. This is the number of IPS that bochs
 #  is capable of running on your machine. You can recompile Bochs with
@@ -147,7 +135,38 @@
 #  2.2.6 2.1Ghz Athlon XP with Linux 2.6/g++ 3.4         12 to 15 Mips
 #  2.0.1 1.6Ghz Intel P4 with Win2000/g++ 3.3             5 to  7 Mips
 #=======================================================================
-cpu: count=1, ips=50000000, reset_on_triple_fault=1, cpuid_limit_winnt=0, \
ignore_bad_msrs=1, msrs="msrs.def" +cpu: count=1, ips=50000000, \
reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def" +
+#=======================================================================
+# CPUID:
+#
+# This defines features and functionality supported by Bochs emulated CPU:
+#
+#  SSE: Select SSE instruction set support.
+#  Any of SSE/SSE2/SSE3/SSSE3/SSE4_1/SSE4_2 could be selected.
+#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
+#
+#  AES:
+#  Select AES instruction set support.
+#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
+#
+#  MOVBE:
+#  Select MOVBE Intel(R) Atom instruction support.
+#  This option exists only if Bochs compiled with BX_CPU_LEVEL >= 6.
+#
+#  VENDOR_STRING:
+#  Set the CPUID vendor string returned by CPUID(0x0). This should be a
+#  twelve-character ASCII string.  
+#
+#  BRAND_STRING:
+#  Set the CPUID vendor string returned by CPUID(0x80000002 .. 0x80000004).  
+#  This should be at most a forty-eight-character ASCII string.  
+#
+#  CPUID_LIMIT_WINNT:
+#  Determine whether to limit maximum CPUID function to 3. This mode is
+#  required to workaround WinNT installation and boot issues.
+#=======================================================================
+cpuid: sse=sse4_2, aes=1, movbe=1, cpuid_limit_winnt=0
 
 #=======================================================================
 # MEMORY

Index: .conf.everything
===================================================================
RCS file: /cvsroot/bochs/bochs/.conf.everything,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -d -r1.40 -r1.41
--- .conf.everything	24 Feb 2010 20:59:48 -0000	1.40
+++ .conf.everything	25 Feb 2010 22:04:30 -0000	1.41
@@ -16,16 +16,12 @@
   --enable-vbe \
   --enable-mmx \
   --enable-fpu \
-  --enable-sse=sse4_2 \
   --enable-misaligned-sse \
   --enable-alignment-check \
-  --enable-popcnt \
-  --enable-movbe \
   --enable-sep \
   --enable-3dnow \
   --enable-monitor-mwait \
   --enable-xsave \
-  --enable-aes \
   --enable-vmx \
   --enable-x86-debugger \
   --enable-a20-pin \

Index: .conf.linux
===================================================================
RCS file: /cvsroot/bochs/bochs/.conf.linux,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- .conf.linux	29 Apr 2009 18:44:10 -0000	1.19
+++ .conf.linux	25 Feb 2010 22:04:30 -0000	1.20
@@ -31,7 +31,6 @@
                 --enable-all-optimizations \
                 --enable-cpu-level=6 \
                 --enable-x86-64 \
-                --enable-sse=2 \
                 --enable-pci \
                 --enable-acpi \
                 --enable-clgd54xx \
@@ -51,7 +50,6 @@
                 --enable-all-optimizations \
                 --enable-cpu-level=6 \
                 --enable-x86-64 \
-                --enable-sse=2 \
                 --enable-pci \
                 --enable-acpi \
                 --enable-clgd54xx \

Index: .conf.macos
===================================================================
RCS file: /cvsroot/bochs/bochs/.conf.macos,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- .conf.macos	10 Sep 2007 15:21:05 -0000	1.10
+++ .conf.macos	25 Feb 2010 22:04:30 -0000	1.11
@@ -23,7 +23,6 @@
             --enable-all-optimizations \
             --enable-cpu-level=6 \
             --enable-x86-64 \
-            --enable-sse=2 \
             --enable-pci \
             --enable-acpi \
             --enable-clgd54xx \

Index: .conf.macosx
===================================================================
RCS file: /cvsroot/bochs/bochs/.conf.macosx,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- .conf.macosx	10 Sep 2007 15:21:05 -0000	1.26
+++ .conf.macosx	25 Feb 2010 22:04:30 -0000	1.27
@@ -25,7 +25,6 @@
 	    --enable-all-optimizations \
             --enable-cpu-level=6 \
             --enable-x86-64 \
-            --enable-sse=2 \
             --enable-pci \
             --enable-acpi \
             --enable-clgd54xx \

Index: .conf.sparc
===================================================================
RCS file: /cvsroot/bochs/bochs/.conf.sparc,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- .conf.sparc	10 Sep 2007 15:21:05 -0000	1.8
+++ .conf.sparc	25 Feb 2010 22:04:30 -0000	1.9
@@ -23,7 +23,6 @@
 	    --enable-all-optimizations \
             --enable-cpu-level=6 \
             --enable-x86-64 \
-            --enable-sse=2 \
             --enable-pci \
             --enable-acpi \
 	    --enable-clgd54xx \

Index: .conf.win32-cygwin
===================================================================
RCS file: /cvsroot/bochs/bochs/.conf.win32-cygwin,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- .conf.win32-cygwin	29 Apr 2009 18:44:11 -0000	1.20
+++ .conf.win32-cygwin	25 Feb 2010 22:04:30 -0000	1.21
@@ -19,7 +19,6 @@
             --enable-all-optimizations \
             --enable-cpu-level=6 \
             --enable-x86-64 \
-            --enable-sse=2 \
             --enable-pci \
             --enable-acpi \
             --enable-clgd54xx \

Index: .conf.win32-vcpp
===================================================================
RCS file: /cvsroot/bochs/bochs/.conf.win32-vcpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- .conf.win32-vcpp	29 Apr 2009 18:44:11 -0000	1.27
+++ .conf.win32-vcpp	25 Feb 2010 22:04:30 -0000	1.28
@@ -8,7 +8,6 @@
             --enable-all-optimizations \
             --enable-cpu-level=6 \
             --enable-x86-64 \
-            --enable-sse=2 \
             --enable-pci \
             --enable-acpi \
             --enable-clgd54xx \

Index: config.cc
===================================================================
RCS file: /cvsroot/bochs/bochs/config.cc,v
retrieving revision 1.191
retrieving revision 1.192
diff -u -d -r1.191 -r1.192
--- config.cc	9 Feb 2010 22:14:54 -0000	1.191
+++ config.cc	25 Feb 2010 22:04:30 -0000	1.192
@@ -236,7 +236,7 @@
   bx_param_c *root_param = SIM->get_param(".");
 
   // general options subtree
-  menu = new bx_list_c(root_param, "general", "", 10);
+  menu = new bx_list_c(root_param, "general", "", 11);
 
  // config interface option, set in bochsrc or command line
   static const char *config_interface_list[] = {
@@ -259,6 +259,8 @@
     0);
   sel_config->set_by_name(BX_DEFAULT_CONFIG_INTERFACE);
 
+  static const char *bochs_start_names[] = { "quick", "load", "edit", "run" };
+
   // quick start option, set by command line arg
   new bx_param_enum_c(menu,
       "start_mode",
@@ -301,7 +303,7 @@
 #endif
 
   // cpu subtree
-  bx_list_c *cpu_param = new bx_list_c(root_param, "cpu", "CPU Options", 10 + \
BX_SUPPORT_SMP); +  bx_list_c *cpu_param = new bx_list_c(root_param, "cpu", "CPU \
Options", 8 + BX_SUPPORT_SMP);  
   // cpu options
   bx_param_num_c *nprocessors = new bx_param_num_c(cpu_param,
@@ -344,10 +346,6 @@
       "Ignore RDMSR/WRMSR to unknown MSR register",
       1);
 #endif
-  new bx_param_bool_c(cpu_param,
-      "cpuid_limit_winnt", "Limit max CPUID function to 3",
-      "Limit max CPUID function reported to 3 to workaround WinNT issue",
-      0);
 #if BX_CONFIGURE_MSRS
   new bx_param_string_c(cpu_param,
       "msrs",
@@ -355,7 +353,18 @@
       "Set path to the configurable MSR definition file",
       "", BX_PATHNAME_LEN);
 #endif
-  new bx_param_string_c(cpu_param,
+
+  cpu_param->set_options(menu->SHOW_PARENT);
+
+  // cpuid subtree
+  bx_list_c *cpuid_param = new bx_list_c(root_param, "cpuid", "CPUID Options", 7);
+
+  new bx_param_bool_c(cpuid_param,
+      "cpuid_limit_winnt", "Limit max CPUID function to 3",
+      "Limit max CPUID function reported to 3 to workaround WinNT issue",
+      0);
+
+  new bx_param_string_c(cpuid_param,
       "vendor_string",
       "CPUID vendor string",
       "Set the CPUID vendor string",
@@ -365,7 +374,7 @@
       "AuthenticAMD", 
 #endif
       BX_CPUID_VENDOR_LEN+1);
-  new bx_param_string_c(cpu_param,
+  new bx_param_string_c(cpuid_param,
       "brand_string",
       "CPUID brand string",
       "Set the CPUID brand string",
@@ -376,7 +385,26 @@
 #endif
       BX_CPUID_BRAND_LEN+1);
 
-  cpu_param->set_options(menu->SHOW_PARENT);
+#if BX_CPU_LEVEL >= 6
+  static const char *sse_names[] = { "none", "sse", "sse2", "sse3", "ssse3", \
"sse4_1", "sse4_2", NULL }; +
+  new bx_param_enum_c(cpuid_param,
+      "sse", "Support for SSE instruction set",
+      "Support for SSE/SSE2/SSE3/SSSE3/SSE4_1/SSE4_2 instruction set",
+      sse_names,
+      BX_CPUID_SUPPORT_NOSSE,
+      BX_CPUID_SUPPORT_NOSSE);
+  new bx_param_bool_c(cpuid_param,
+      "movbe", "Support for MOVBE instruction",
+      "Support for MOVBE instruction",
+      0);
+  new bx_param_bool_c(cpuid_param,
+      "aes", "Support for AES instruction set",
+      "Support for AES instruction set",
+      0);
+#endif
+
+  cpuid_param->set_options(menu->SHOW_PARENT);
 
   // memory subtree
   bx_list_c *memory = new bx_list_c(root_param, "memory", "Memory Options");
@@ -510,6 +538,8 @@
   bx_list_c *clock_cmos = new bx_list_c(root_param, "clock_cmos", "Clock & CMOS \
Options");  
   // clock & cmos options
+  static const char *clock_sync_names[] = { "none", "realtime", "slowdown", "both", \
NULL }; +
   bx_param_enum_c *clock_sync = new bx_param_enum_c(clock_cmos,
       "clock_sync", "Synchronisation method",
       "Host to guest time synchronization method",
@@ -1063,6 +1093,8 @@
         0);
       present->set_ask_format("Device is enabled: [%s] ");
 
+      static const char *atadevice_type_names[] = { "disk", "cdrom", NULL };
+
       type = new bx_param_enum_c(menu,
         "type",
         "Type of ATA device",
@@ -1137,6 +1169,8 @@
         "Generic 1234", 41);
       model->set_ask_format("Enter new model name: [%s]");
 
+      static const char *atadevice_biosdetect_names[] = { "none", "auto", "cmos", \
NULL }; +
       bx_param_enum_c *biosdetect = new bx_param_enum_c(menu,
         "biosdetect",
         "BIOS Detection",
@@ -1146,6 +1180,8 @@
         BX_ATA_BIOSDETECT_NONE);
       biosdetect->set_ask_format("Enter bios detection type: [%s]");
 
+      static const char *atadevice_translation_names[] = { "none", "lba", "large", \
"rechs", "auto", NULL }; +
       bx_param_enum_c *translation = new bx_param_enum_c(menu,
         "translation",
         "Translation type",
@@ -1706,6 +1742,9 @@
   // cpu
   SIM->get_param("cpu")->reset();
 
+  // cpuid
+  SIM->get_param("cpuid")->reset();
+
   // memory (ram & rom)
   SIM->get_param("memory")->reset();
 
@@ -2522,26 +2561,52 @@
           PARSE_ERR(("%s: cpu directive malformed.", context));
         }
 #endif
-      } else if (!strncmp(params[i], "cpuid_limit_winnt=", 18)) {
-        if (params[i][18] == '0' || params[i][18] == '1') {
-          SIM->get_param_bool(BXPN_CPUID_LIMIT_WINNT)->set(params[i][18] - '0');
-        } else {
-          PARSE_ERR(("%s: cpu directive malformed.", context));
-        }
       } else if (!strncmp(params[i], "msrs=", 5)) {
         SIM->get_param_string(BXPN_CONFIGURABLE_MSRS_PATH)->set(&params[i][5]);
-      } else if (!strncmp(params[i], "vendor_string=", 14)) {
+      } else {
+        PARSE_ERR(("%s: cpu directive malformed.", context));
+      }
+    }
+  } else if (!strcmp(params[0], "cpuid")) {
+    if (num_params < 2) {
+      PARSE_ERR(("%s: cpuid directive malformed.", context));
+    }
+    for (i=1; i<num_params; i++) {
+      if (!strncmp(params[i], "vendor_string=", 14)) {
         if (strlen(&params[i][14]) != BX_CPUID_VENDOR_LEN) {
-          PARSE_ERR(("%s: cpu directive malformed.", context));
+          PARSE_ERR(("%s: cpuid directive malformed.", context));
         }
         SIM->get_param_string(BXPN_VENDOR_STRING)->set(&params[i][14]);
       } else if (!strncmp(params[i], "brand_string=", 13)) {
         if (strlen(&params[i][13]) > BX_CPUID_BRAND_LEN) {
-          PARSE_ERR(("%s: cpu directive malformed.", context));
+          PARSE_ERR(("%s: cpuid directive malformed.", context));
         } 
         SIM->get_param_string(BXPN_BRAND_STRING)->set(&params[i][13]);
+      } else if (!strncmp(params[i], "cpuid_limit_winnt=", 18)) {
+        if (params[i][18] == '0' || params[i][18] == '1') {
+          SIM->get_param_bool(BXPN_CPUID_LIMIT_WINNT)->set(params[i][18] - '0');
+        } else {
+          PARSE_ERR(("%s: cpuid directive malformed.", context));
+        }
+#if BX_CPU_LEVEL >= 6
+      } else if (!strncmp(params[i], "sse=", 4)) {
+        if (! SIM->get_param_enum(BXPN_CPUID_SSE)->set_by_name(&params[i][4]))
+          PARSE_ERR(("%s: unsupported sse option.", context));
+      } else if (!strncmp(params[i], "aes=", 4)) {
+        if (params[i][4] == '0' || params[i][4] == '1') {
+          SIM->get_param_bool(BXPN_CPUID_MOVBE)->set(params[i][4] - '0');
+        } else {
+          PARSE_ERR(("%s: cpuid directive malformed.", context));
+        }
+      } else if (!strncmp(params[i], "movbe=", 6)) {
+        if (params[i][6] == '0' || params[i][6] == '1') {
+          SIM->get_param_bool(BXPN_CPUID_MOVBE)->set(params[i][6] - '0');
+        } else {
+          PARSE_ERR(("%s: cpuid directive malformed.", context));
+        }
+#endif
       } else {
-        PARSE_ERR(("%s: cpu directive malformed.", context));
+        PARSE_ERR(("%s: cpuid directive malformed.", context));
       }
     }
   } else if (!strcmp(params[0], "megs")) {
@@ -3688,9 +3753,8 @@
 #else
   fprintf(fp, "cpu: count=1, ips=%u, ", SIM->get_param_num(BXPN_IPS)->get());
 #endif
-  fprintf(fp, "reset_on_triple_fault=%d, cpuid_limit_winnt=%d",
-    SIM->get_param_bool(BXPN_RESET_ON_TRIPLE_FAULT)->get(),
-    SIM->get_param_bool(BXPN_CPUID_LIMIT_WINNT)->get());
+  fprintf(fp, "reset_on_triple_fault=%d",
+    SIM->get_param_bool(BXPN_RESET_ON_TRIPLE_FAULT)->get());
 #if BX_CPU_LEVEL >= 5
   fprintf(fp, ", ignore_bad_msrs=%d", \
SIM->get_param_bool(BXPN_IGNORE_BAD_MSRS)->get());  #endif
@@ -3700,6 +3764,14 @@
     fprintf(fp, ", msrs=\"%s\"", strptr);
 #endif
   fprintf(fp, "\n");
+  fprintf(fp, "cpuid: cpuid_limit_winnt=%d", \
SIM->get_param_bool(BXPN_CPUID_LIMIT_WINNT)->get()); +#if BX_CPU_LEVEL >= 6
+  fprintf(fp, ", sse=%s, aes=%d, movbe=%d",
+    SIM->get_param_enum(BXPN_CPUID_SSE)->get_selected(),
+    SIM->get_param_bool(BXPN_CPUID_AES)->get(),
+    SIM->get_param_bool(BXPN_CPUID_MOVBE)->get());
+#endif
+  fprintf(fp, "\n");
   fprintf(fp, "print_timestamps: enabled=%d\n", bx_dbg.print_timestamps);
   bx_write_debugger_options(fp);
   fprintf(fp, "port_e9_hack: enabled=%d\n", \
SIM->get_param_bool(BXPN_PORT_E9_HACK)->get());

Index: config.h.in
===================================================================
RCS file: /cvsroot/bochs/bochs/config.h.in,v
retrieving revision 1.270
retrieving revision 1.271
diff -u -d -r1.270 -r1.271
--- config.h.in	24 Feb 2010 20:59:48 -0000	1.270
+++ config.h.in	25 Feb 2010 22:04:30 -0000	1.271
@@ -685,15 +685,10 @@
 #define BX_SUPPORT_FPU 0
 #define BX_SUPPORT_MMX 0
 #define BX_SUPPORT_3DNOW 0
-#define BX_SUPPORT_SSE 0
-#define BX_SUPPORT_SSE_EXTENSION 0
 #define BX_SUPPORT_MISALIGNED_SSE 0
 #define BX_SUPPORT_SEP 0
-#define BX_SUPPORT_POPCNT 0
 #define BX_SUPPORT_MONITOR_MWAIT 0
 #define BX_SUPPORT_XSAVE 0
-#define BX_SUPPORT_AES 0
-#define BX_SUPPORT_MOVBE 0
 #define BX_SUPPORT_VMX 0
 #define BX_SUPPORT_1G_PAGES 0
 #define BX_SUPPORT_XAPIC 0
@@ -715,13 +710,6 @@
 
 #define BX_CONFIGURE_MSRS 0
 
-// CLFLUSH was introduced together with SSE2 instruction set
-#if BX_SUPPORT_SSE >= 2
-  #define BX_SUPPORT_CLFLUSH 1
-#else
-  #define BX_SUPPORT_CLFLUSH 0
-#endif
-
 #if (BX_SUPPORT_ALIGNMENT_CHECK && BX_CPU_LEVEL < 4)
   #error Alignment exception check is not supported in i386 !
 #endif
@@ -750,18 +738,6 @@
   #error "3DNow! cannot be compiled without MMX support !"
 #endif
 
-#if (BX_SUPPORT_XSAVE && !BX_SUPPORT_SSE)
-  #error "XSAVE cannot be compiled without SSE support !"
-#endif
-
-#if (BX_SUPPORT_SSE && !BX_SUPPORT_MMX)
-  #error "SSE cannot be compiled without FPU+MMX support !"
-#endif
-
-#if (BX_CPU_LEVEL<6 && BX_SUPPORT_SSE)
-  #error "SSE is only supported with CPU_LEVEL >= 6 !"
-#endif
-
 #if (BX_CPU_LEVEL<6 && BX_SUPPORT_SEP)
   #error "SYSENTER/SYSEXIT only supported with CPU_LEVEL >= 6 !"
 #endif
@@ -770,22 +746,11 @@
   #error "VMX only supported with CPU_LEVEL >= 6 !"
 #endif
 
-#if (BX_SUPPORT_VMX && !BX_SUPPORT_SEP)
+#if (BX_SUPPORT_VMX && BX_SUPPORT_SEP == 0)
   #error "SYSENTER/SYSEXIT is required for VMX support !"
 #endif
 
-#if (BX_SUPPORT_SSE < 3) || (BX_SUPPORT_SSE == 3 && BX_SUPPORT_SSE_EXTENSION == 0)
-
-#if BX_SUPPORT_MOVBE
-  #error "MOVBE only supported with SSSE3 or above !"
-#endif
-#if BX_SUPPORT_AES
-  #error "AES only supported with SSSE3 or above !"
-#endif
-
-#endif
-
-#if (!BX_SUPPORT_X86_64 && BX_SUPPORT_1G_PAGES)
+#if (BX_SUPPORT_X86_64 == 0 && BX_SUPPORT_1G_PAGES)
   #error "1G only supported with x86-64 !"
 #endif
 
@@ -795,9 +760,6 @@
 #if BX_CPU_LEVEL < 6
   #error "X86-64 requires cpu level 6 or greater !"
 #endif
-#if (BX_SUPPORT_SSE<2)
-  #error "X86-64 requires SSE2 !"
-#endif
 #if BX_SUPPORT_XAPIC == 0
   #error "X86-64 requires XAPIC enabled !"
 #endif

Index: configure
===================================================================
RCS file: /cvsroot/bochs/bochs/configure,v
retrieving revision 1.419
retrieving revision 1.420
diff -u -d -r1.419 -r1.420
--- configure	24 Feb 2010 20:59:48 -0000	1.419
+++ configure	25 Feb 2010 22:04:30 -0000	1.420
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.in Id: configure.in,v 1.423 2009/12/20 10:38:19 sshwarts Exp .
+# From configure.in Id: configure.in,v 1.424 2010/02/24 20:59:49 sshwarts Exp .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.65.
 #
@@ -974,15 +974,11 @@
 enable_vmx
 enable_mmx
 enable_3dnow
-enable_sse
 enable_xsave
-enable_aes
 enable_alignment_check
 enable_misaligned_sse
 enable_sep
-enable_popcnt
 enable_xapic
-enable_movbe
 enable_monitor_mwait
 enable_x86_debugger
 enable_cdrom
@@ -1005,7 +1001,11 @@
 with_wx
 with_all_libs
 enable_xpm
+enable_sse
 enable_sse_extension
+enable_popcnt
+enable_movbe
+enable_aes
 enable_apic
 enable_ignore_bad_msr
 enable_pae
@@ -1693,15 +1693,11 @@
   --enable-vmx                      virtualization extensions
   --enable-mmx                      MMX support
   --enable-3dnow                    3DNow! support (incomplete)
-  --enable-sse                      SSE support \
                (--enable-sse=no|1|sse1|2|sse2|3|sse3|ssse3|4|sse4_1|sse4_2)
   --enable-xsave                    support for XSAVE/XRSTOR extensions
-  --enable-aes                      support for AES instructions
   --enable-alignment-check          alignment check (#AC) support
   --enable-misaligned-sse           misaligned SSE support
   --enable-sep                      SYSENTER/SYSEXIT support
-  --enable-popcnt                   support for POPCNT instruction
   --enable-xapic                    support for XAPIC extensions
-  --enable-movbe                    support for MOVBE Intel Atom(R) instruction
   --enable-monitor-mwait            support for MONITOR/MWAIT instructions \
                (experimental)
   --enable-x86-debugger             x86 debugger support
   --enable-cdrom                    CDROM support
@@ -1711,7 +1707,11 @@
   --enable-iodebug                  enable I/O interface to debugger
   --enable-docbook                  build the Docbook documentation
   --enable-xpm                      enable the check for XPM support
+  --enable-sse                      support for SSE intruction set (deprecated)
   --enable-sse-extension            support for SSE extensions (deprecated)
+  --enable-popcnt                   support for POPCNT intruction (deprecated)
+  --enable-movbe                    support for MOVBE intruction (deprecated)
+  --enable-aes                      support for AES intruction set (deprecated)
   --enable-apic                     enable APIC support (deprecated)
   --enable-ignore-bad-msr           ignore bad MSR references (deprecated)
   --enable-pae                      enables PAE support (deprecated)
@@ -23088,104 +23088,6 @@
 fi
 
 
-support_sse=0
-support_sse_extensions=0
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSE support" >&5
-$as_echo_n "checking for SSE support... " >&6; }
-# Check whether --enable-sse was given.
-if test "${enable_sse+set}" = set; then :
-  enableval=$enable_sse; case "$enableval" in
-    no | 0)
-      support_sse=0
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-      ;;
-    yes | sse1 | 1)
-      support_sse=1
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: SSE1" >&5
-$as_echo "SSE1" >&6; }
-      ;;
-    sse2 | 2)
-      support_sse=2
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: SSE2" >&5
-$as_echo "SSE2" >&6; }
-      ;;
-    sse3 | 3)
-      support_sse=3
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: SSE3" >&5
-$as_echo "SSE3" >&6; }
-      ;;
-    sse3e | ssse3)
-      support_sse=3
-      support_sse_extensions=1
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: SSSE3" >&5
-$as_echo "SSSE3" >&6; }
-      ;;
-    sse4 | sse4_1 | 4)
-      support_sse=4
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: SSE4_1" >&5
-$as_echo "SSE4_1" >&6; }
-      ;;
-    sse4_2)
-      support_sse=4
-      support_sse_extensions=1
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: SSE4_2" >&5
-$as_echo "SSE4_2" >&6; }
-      ;;
-    *)
-      echo "ERROR: --enable-sse=$enableval not understood. Use \
                --enable-sse=no|1|sse1|2|sse2|3|sse3|ssse3|4|sse4_1|sse4_2"
-      exit 1
-      ;;
-   esac
-
-else
-
-    if test "$use_x86_64" = 1; then
-      support_sse=2
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: SSE2" >&5
-$as_echo "SSE2" >&6; }
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    fi
-
-
-fi
-
-
-if test "$support_sse" -gt 0 -a "$bx_cpu_level" -lt 6; then
-  as_fn_error "for SSE support the CPU level must be set to 6" "$LINENO" 5
-fi
-
-if test "$support_sse" -lt 2 -a "$use_x86_64" = 1; then
-  as_fn_error "x86-64 needs SSE2 support" "$LINENO" 5
-fi
-
-if test "$support_sse" = 4; then
-  $as_echo "#define BX_SUPPORT_SSE 4" >>confdefs.h
-
-elif test "$support_sse" = 3; then
-  $as_echo "#define BX_SUPPORT_SSE 3" >>confdefs.h
-
-elif test "$support_sse" = 2; then
-  $as_echo "#define BX_SUPPORT_SSE 2" >>confdefs.h
-
-elif test "$support_sse" = 1; then
-  $as_echo "#define BX_SUPPORT_SSE 1" >>confdefs.h
-
-else
-  $as_echo "#define BX_SUPPORT_SSE 0" >>confdefs.h
-
-fi
-
-if test "$support_sse_extensions" = 1; then
-  $as_echo "#define BX_SUPPORT_SSE_EXTENSION 1" >>confdefs.h
-
-else
-  $as_echo "#define BX_SUPPORT_SSE_EXTENSION 0" >>confdefs.h
-
-fi
-
 use_xsave=0
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XSAVE/XRSTOR support" >&5
 $as_echo_n "checking for XSAVE/XRSTOR support... " >&6; }
@@ -23215,43 +23117,6 @@
 fi
 
 
-if test "$support_sse" -lt 1 -a "$use_xsave" = 1; then
-  as_fn_error "XSAVE requires SSE support!" "$LINENO" 5
-fi
-
-use_aes=0
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AES instructions support" >&5
-$as_echo_n "checking for AES instructions support... " >&6; }
-# Check whether --enable-aes was given.
-if test "${enable_aes+set}" = set; then :
-  enableval=$enable_aes; if test "$enableval" = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-    $as_echo "#define BX_SUPPORT_AES 1" >>confdefs.h
-
-    use_aes=1
-   elif test "$enableval" = no; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    $as_echo "#define BX_SUPPORT_AES 0" >>confdefs.h
-
-   fi
-
-else
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    $as_echo "#define BX_SUPPORT_AES 0" >>confdefs.h
-
-
-
-fi
-
-
-if test "$support_sse" -lt 3 -a "$use_aes" = 1; then
-  as_fn_error "AES requires SSE3E support with 3-byte opcodes!" "$LINENO" 5
-fi
-
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alignment check support" >&5
 $as_echo_n "checking for alignment check support... " >&6; }
 # Check whether --enable-alignment-check was given.
@@ -23347,40 +23212,6 @@
 fi
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for POPCNT instruction support" \
                >&5
-$as_echo_n "checking for POPCNT instruction support... " >&6; }
-# Check whether --enable-popcnt was given.
-if test "${enable_popcnt+set}" = set; then :
-  enableval=$enable_popcnt; if test "$enableval" = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-    $as_echo "#define BX_SUPPORT_POPCNT 1" >>confdefs.h
-
-   elif test "$enableval" = no; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    $as_echo "#define BX_SUPPORT_POPCNT 0" >>confdefs.h
-
-   fi
-
-else
-
-    if test "$support_sse" -ge 4 -a "$support_sse_extensions" = 1; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-      $as_echo "#define BX_SUPPORT_POPCNT 1" >>confdefs.h
-
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-      $as_echo "#define BX_SUPPORT_POPCNT 0" >>confdefs.h
-
-    fi
-
-
-fi
-
-
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XAPIC support" >&5
 $as_echo_n "checking for XAPIC support... " >&6; }
 # Check whether --enable-xapic was given.
@@ -23399,7 +23230,8 @@
 
 else
 
-    if test "$support_sse" -ge 2; then
+    # for x86-64 enable XAPIC by default
+    if test "$use_x86_64" = 1; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
       $as_echo "#define BX_SUPPORT_XAPIC 1" >>confdefs.h
@@ -23415,33 +23247,6 @@
 fi
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MOVBE instruction support" >&5
-$as_echo_n "checking for MOVBE instruction support... " >&6; }
-# Check whether --enable-movbe was given.
-if test "${enable_movbe+set}" = set; then :
-  enableval=$enable_movbe; if test "$enableval" = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-    $as_echo "#define BX_SUPPORT_MOVBE 1" >>confdefs.h
-
-   elif test "$enableval" = no; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    $as_echo "#define BX_SUPPORT_MOVBE 0" >>confdefs.h
-
-   fi
-
-else
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    $as_echo "#define BX_SUPPORT_MOVBE 0" >>confdefs.h
-
-
-
-fi
-
-
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MONITOR/MWAIT instructions \
support (experimental)" >&5  $as_echo_n "checking for MONITOR/MWAIT instructions \
support (experimental)... " >&6; }  # Check whether --enable-monitor_mwait was given.
@@ -25276,13 +25081,77 @@
 fi
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSE support (deprecated)" >&5
+$as_echo_n "checking for SSE support (deprecated)... " >&6; }
+# Check whether --enable-sse was given.
+if test "${enable_sse+set}" = set; then :
+  enableval=$enable_sse; { $as_echo "$as_me:${as_lineno-$LINENO}: result: \
$enableval" >&5 +$as_echo "$enableval" >&6; }
+   as_fn_error "DEPRECATED - moved to .bochsrc options" "$LINENO" 5
+
+else
+
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+fi
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSE extensions support \
(deprecated)" >&5  $as_echo_n "checking for SSE extensions support (deprecated)... " \
>&6; }  # Check whether --enable-sse-extension was given.
 if test "${enable_sse_extension+set}" = set; then :
   enableval=$enable_sse_extension; { $as_echo "$as_me:${as_lineno-$LINENO}: result: \
$enableval" >&5  $as_echo "$enableval" >&6; }
-   as_fn_error "DEPRECATED - use new extended --enable-sse configure option" \
"$LINENO" 5 +   as_fn_error "DEPRECATED - moved to .bochsrc options" "$LINENO" 5
+
+else
+
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for POPCNT support (deprecated)" \
>&5 +$as_echo_n "checking for POPCNT support (deprecated)... " >&6; }
+# Check whether --enable-popcnt was given.
+if test "${enable_popcnt+set}" = set; then :
+  enableval=$enable_popcnt; { $as_echo "$as_me:${as_lineno-$LINENO}: result: \
$enableval" >&5 +$as_echo "$enableval" >&6; }
+   as_fn_error "DEPRECATED - enabled automatically if SSE4_2 is enabled" "$LINENO" 5
+
+else
+
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MOVBE support (deprecated)" \
>&5 +$as_echo_n "checking for MOVBE support (deprecated)... " >&6; }
+# Check whether --enable-movbe was given.
+if test "${enable_movbe+set}" = set; then :
+  enableval=$enable_movbe; { $as_echo "$as_me:${as_lineno-$LINENO}: result: \
$enableval" >&5 +$as_echo "$enableval" >&6; }
+   as_fn_error "DEPRECATED - moved to .bochsrc options" "$LINENO" 5
+
+else
+
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AES support (deprecated)" >&5
+$as_echo_n "checking for AES support (deprecated)... " >&6; }
+# Check whether --enable-aes was given.
+if test "${enable_aes+set}" = set; then :
+  enableval=$enable_aes; { $as_echo "$as_me:${as_lineno-$LINENO}: result: \
$enableval" >&5 +$as_echo "$enableval" >&6; }
+   as_fn_error "DEPRECATED - moved to .bochsrc options" "$LINENO" 5
 
 else
 

Index: configure.in
===================================================================
RCS file: /cvsroot/bochs/bochs/configure.in,v
retrieving revision 1.424
retrieving revision 1.425
diff -u -d -r1.424 -r1.425
--- configure.in	24 Feb 2010 20:59:49 -0000	1.424
+++ configure.in	25 Feb 2010 22:04:30 -0000	1.425
@@ -1449,84 +1449,6 @@
   ]
   )
 
-support_sse=0
-support_sse_extensions=0
-AC_MSG_CHECKING(for SSE support)
-AC_ARG_ENABLE(sse,
-  [  --enable-sse                      SSE support \
                (--enable-sse=[no|1|sse1|2|sse2|3|sse3|ssse3|4|sse4_1|sse4_2])],
-  [case "$enableval" in
-    no | 0)
-      support_sse=0
-      AC_MSG_RESULT(no)
-      ;;
-    yes | sse1 | 1)
-      support_sse=1
-      AC_MSG_RESULT(SSE1)
-      ;;
-    sse2 | 2)
-      support_sse=2
-      AC_MSG_RESULT(SSE2)
-      ;;
-    sse3 | 3)
-      support_sse=3
-      AC_MSG_RESULT(SSE3)
-      ;;
-    sse3e | ssse3)
-      support_sse=3
-      support_sse_extensions=1
-      AC_MSG_RESULT(SSSE3)
-      ;;
-    sse4 | sse4_1 | 4)
-      support_sse=4
-      AC_MSG_RESULT(SSE4_1)
-      ;;
-    sse4_2)
-      support_sse=4
-      support_sse_extensions=1
-      AC_MSG_RESULT(SSE4_2)
-      ;;
-    *)
-      echo "ERROR: --enable-sse=$enableval not understood. Use \
                --enable-sse=[no|1|sse1|2|sse2|3|sse3|ssse3|4|sse4_1|sse4_2]"
-      exit 1
-      ;;
-   esac
-   ],
-  [
-    if test "$use_x86_64" = 1; then
-      support_sse=2
-      AC_MSG_RESULT(SSE2)
-    else
-      AC_MSG_RESULT(no)
-    fi
-  ]
-  )
-
-if test "$support_sse" -gt 0 -a "$bx_cpu_level" -lt 6; then
-  AC_MSG_ERROR([for SSE support the CPU level must be set to 6])
-fi
-
-if test "$support_sse" -lt 2 -a "$use_x86_64" = 1; then
-  AC_MSG_ERROR([x86-64 needs SSE2 support])
-fi
-
-if test "$support_sse" = 4; then
-  AC_DEFINE(BX_SUPPORT_SSE,  4)
-elif test "$support_sse" = 3; then
-  AC_DEFINE(BX_SUPPORT_SSE,  3)
-elif test "$support_sse" = 2; then
-  AC_DEFINE(BX_SUPPORT_SSE,  2)
-elif test "$support_sse" = 1; then
-  AC_DEFINE(BX_SUPPORT_SSE,  1)
-else
-  AC_DEFINE(BX_SUPPORT_SSE,  0)
-fi
-
-if test "$support_sse_extensions" = 1; then
-  AC_DEFINE(BX_SUPPORT_SSE_EXTENSION, 1)
-else
-  AC_DEFINE(BX_SUPPORT_SSE_EXTENSION, 0)
-fi
-
 use_xsave=0
 AC_MSG_CHECKING(for XSAVE/XRSTOR support)
 AC_ARG_ENABLE(xsave,
@@ -1546,33 +1468,6 @@
   ]
   )
 
-if test "$support_sse" -lt 1 -a "$use_xsave" = 1; then
-  AC_MSG_ERROR([XSAVE requires SSE support!])
-fi
-
-use_aes=0
-AC_MSG_CHECKING(for AES instructions support)
-AC_ARG_ENABLE(aes,
-  [  --enable-aes                      support for AES instructions],
-  [if test "$enableval" = yes; then
-    AC_MSG_RESULT(yes)
-    AC_DEFINE(BX_SUPPORT_AES, 1)
-    use_aes=1
-   elif test "$enableval" = no; then
-    AC_MSG_RESULT(no)
-    AC_DEFINE(BX_SUPPORT_AES, 0)
-   fi
-   ],
-  [
-    AC_MSG_RESULT(no)
-    AC_DEFINE(BX_SUPPORT_AES, 0)
-  ]
-  )
-
-if test "$support_sse" -lt 3 -a "$use_aes" = 1; then
-  AC_MSG_ERROR([AES requires SSE3E support with 3-byte opcodes!])
-fi
-
 AC_MSG_CHECKING(for alignment check support)
 AC_ARG_ENABLE(alignment-check,
   [  --enable-alignment-check          alignment check (#AC) support],
@@ -1634,28 +1529,6 @@
     ]
   )
 
-AC_MSG_CHECKING(for POPCNT instruction support)
-AC_ARG_ENABLE(popcnt,
-  [  --enable-popcnt                   support for POPCNT instruction],
-  [if test "$enableval" = yes; then
-    AC_MSG_RESULT(yes)
-    AC_DEFINE(BX_SUPPORT_POPCNT, 1)
-   elif test "$enableval" = no; then
-    AC_MSG_RESULT(no)
-    AC_DEFINE(BX_SUPPORT_POPCNT, 0)
-   fi
-   ],
-  [
-    if test "$support_sse" -ge 4 -a "$support_sse_extensions" = 1; then
-      AC_MSG_RESULT(yes)
-      AC_DEFINE(BX_SUPPORT_POPCNT, 1)
-    else
-      AC_MSG_RESULT(no)
-      AC_DEFINE(BX_SUPPORT_POPCNT, 0)
-    fi
-    ]
-  )
-
 AC_MSG_CHECKING(for XAPIC support)
 AC_ARG_ENABLE(xapic,
   [  --enable-xapic                    support for XAPIC extensions],
@@ -1668,30 +1541,14 @@
    fi
    ],
   [
-    if test "$support_sse" -ge 2; then
+    # for x86-64 enable XAPIC by default
+    if test "$use_x86_64" = 1; then
       AC_MSG_RESULT(yes)
       AC_DEFINE(BX_SUPPORT_XAPIC, 1)
     else
       AC_MSG_RESULT(no)
       AC_DEFINE(BX_SUPPORT_XAPIC, 0)
     fi
-    ]
-  )
-
-AC_MSG_CHECKING(for MOVBE instruction support)
-AC_ARG_ENABLE(movbe,
-  [  --enable-movbe                    support for MOVBE Intel Atom(R) instruction],
-  [if test "$enableval" = yes; then
-    AC_MSG_RESULT(yes)
-    AC_DEFINE(BX_SUPPORT_MOVBE, 1)
-   elif test "$enableval" = no; then
-    AC_MSG_RESULT(no)
-    AC_DEFINE(BX_SUPPORT_MOVBE, 0)
-   fi
-   ],
-  [
-    AC_MSG_RESULT(no)
-    AC_DEFINE(BX_SUPPORT_MOVBE, 0)
   ]
   )
 
@@ -2814,11 +2671,51 @@
 
 dnl // DEPRECATED configure options - force users to remove them
 
+AC_MSG_CHECKING(for SSE support (deprecated))
+AC_ARG_ENABLE(sse,
+  [  --enable-sse                      support for SSE intruction set (deprecated)],
+  [AC_MSG_RESULT($enableval)
+   AC_MSG_ERROR([DEPRECATED - moved to .bochsrc options])
+  ],
+  [
+   AC_MSG_RESULT(no)
+  ])
+
 AC_MSG_CHECKING(for SSE extensions support (deprecated))
 AC_ARG_ENABLE(sse-extension,
   [  --enable-sse-extension            support for SSE extensions (deprecated)],
   [AC_MSG_RESULT($enableval)
-   AC_MSG_ERROR([DEPRECATED - use new extended --enable-sse configure option])
+   AC_MSG_ERROR([DEPRECATED - moved to .bochsrc options])
+  ],
+  [
+   AC_MSG_RESULT(no)
+  ])
+
+AC_MSG_CHECKING(for POPCNT support (deprecated))
+AC_ARG_ENABLE(popcnt,
+  [  --enable-popcnt                   support for POPCNT intruction (deprecated)],
+  [AC_MSG_RESULT($enableval)
+   AC_MSG_ERROR([DEPRECATED - enabled automatically if SSE4_2 is enabled])
+  ],
+  [
+   AC_MSG_RESULT(no)
+  ])
+
+AC_MSG_CHECKING(for MOVBE support (deprecated))
+AC_ARG_ENABLE(movbe,
+  [  --enable-movbe                    support for MOVBE intruction (deprecated)],
+  [AC_MSG_RESULT($enableval)
+   AC_MSG_ERROR([DEPRECATED - moved to .bochsrc options])
+  ],
+  [
+   AC_MSG_RESULT(no)
+  ])
+
+AC_MSG_CHECKING(for AES support (deprecated))
+AC_ARG_ENABLE(aes,
+  [  --enable-aes                      support for AES intruction set (deprecated)],
+  [AC_MSG_RESULT($enableval)
+   AC_MSG_ERROR([DEPRECATED - moved to .bochsrc options])
   ],
   [
    AC_MSG_RESULT(no)

Index: main.cc
===================================================================
RCS file: /cvsroot/bochs/bochs/main.cc,v
retrieving revision 1.410
retrieving revision 1.411
diff -u -d -r1.410 -r1.411
--- main.cc	4 Dec 2009 20:02:12 -0000	1.410
+++ main.cc	25 Feb 2010 22:04:30 -0000	1.411
@@ -78,6 +78,8 @@
 bx_startup_flags_t bx_startup_flags;
 bx_bool bx_user_quit;
 Bit8u bx_cpu_count;
+// for GUI debugger
+bx_bool bx_cpu_support_sse;
 
 /* typedefs */
 
@@ -866,6 +868,9 @@
   BX_ASSERT(bx_cpu_count <= BX_MAX_SMP_THREADS_SUPPORTED);
   BX_ASSERT(bx_cpu_count >  0);
 
+  // for GUI debugger
+  bx_cpu_support_sse = SIM->get_param_enum(BXPN_CPUID_SSE)->get();
+
   bx_init_hardware();
 
   if (SIM->get_param_enum(BXPN_LOAD32BITOS_WHICH)->get()) {
@@ -978,6 +983,9 @@
 
   io->set_log_prefix(SIM->get_param_string(BXPN_LOG_PREFIX)->getptr());
 
+  bx_bool aes_enabled = SIM->get_param_bool(BXPN_CPUID_AES)->get();
+  bx_bool movbe_enabled = SIM->get_param_bool(BXPN_CPUID_MOVBE)->get();
+
   // Output to the log file the cpu and device settings
   // This will by handy for bug reports
   BX_INFO(("Bochs x86 Emulator %s", VER_STRING));
@@ -1001,11 +1009,7 @@
   BX_INFO(("  APIC support: %s",BX_SUPPORT_APIC?"yes":"no"));
   BX_INFO(("  FPU support: %s",BX_SUPPORT_FPU?"yes":"no"));
   BX_INFO(("  MMX support: %s",BX_SUPPORT_MMX?"yes":"no"));
-  if (BX_SUPPORT_SSE == 0)
-    BX_INFO(("  SSE support: no"));
-  else
-    BX_INFO(("  SSE support: %d%s",BX_SUPPORT_SSE,BX_SUPPORT_SSE_EXTENSION?"E":""));
-  BX_INFO(("  CLFLUSH support: %s",BX_SUPPORT_CLFLUSH?"yes":"no"));
+  BX_INFO(("  SSE support: %s", \
SIM->get_param_enum(BXPN_CPUID_SSE)->get_selected()));  BX_INFO(("  3dnow! support: \
%s",BX_SUPPORT_3DNOW?"yes":"no"));  #if BX_SUPPORT_X86_64
   BX_INFO(("  1G paging support: %s",BX_SUPPORT_1G_PAGES?"yes":"no"));
@@ -1014,7 +1018,8 @@
   BX_INFO(("  SEP support: %s",BX_SUPPORT_SEP?"yes":"no"));
   BX_INFO(("  MWAIT support: %s",BX_SUPPORT_MONITOR_MWAIT?"yes":"no"));
   BX_INFO(("  XSAVE support: %s",BX_SUPPORT_XSAVE?"yes":"no"));
-  BX_INFO(("  AES support: %s",BX_SUPPORT_AES?"yes":"no"));
+  BX_INFO(("  AES support: %s",aes_enabled?"yes":"no"));
+  BX_INFO(("  MOVBE support: %s",movbe_enabled?"yes":"no"));
   BX_INFO(("  VMX support: %s",BX_SUPPORT_VMX?"yes":"no"));
   BX_INFO(("Optimization configuration"));
   BX_INFO(("  RepeatSpeedups support: %s",BX_SupportRepeatSpeedups?"yes":"no"));


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Bochs-cvs mailing list
Bochs-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bochs-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic