Commit Graph

10598 Commits

Author SHA1 Message Date
Volker Ruppert
8159a00b3e Added access() check before detecting image mode to get an accurate panic
message in case of failure.
2014-03-23 09:19:44 +00:00
Volker Ruppert
02905d9aaf Fixed RPM build (bximage_old should be removed after next release) 2014-03-22 10:39:06 +00:00
Stanislav Shwartsman
c079702a4d Finish softfloat implementation of float32/64_scalef. This checkin completes AVX-512 implementation. 2014-03-21 20:18:03 +00:00
Volker Ruppert
9052c65049 Added support to specify the IP address of the SMB server.
Handle special value "none" for the slirp.conf to avoid error message.
2014-03-21 18:47:14 +00:00
Volker Ruppert
e897becffd This is the right one. 2014-03-20 22:19:49 +00:00
Volker Ruppert
cc87e77d85 Fixed CHANGES link 2014-03-20 22:12:26 +00:00
Volker Ruppert
159228db5d Slirp: added SMB support for non-Windows platforms. The new slirp.conf option
'smb_export' can be used to set up shared folder. TODO: the location of 'smbd'
and IP address of the SMB server is currently hardcoded.
2014-03-20 18:02:44 +00:00
Stanislav Shwartsman
1e7b6ff2cd check if XMM reg is clear using dedicated function 2014-03-17 20:50:59 +00:00
Stanislav Shwartsman
ab6230a9a8 Implemented XSAVEC instruction emulation and XINUSE optimization in the XSAVEOPT instruction 2014-03-17 20:29:44 +00:00
Stanislav Shwartsman
d8fa7aa28a implemented INIT optimization for XSAVEOPT instruction 2014-03-16 21:56:30 +00:00
Stanislav Shwartsman
72b715e5f0 fixed XSAVE to match spec, implemented first look into XINUSE. TODO: use XINUSE to optimize XSAVEOPT as well 2014-03-16 21:03:13 +00:00
Stanislav Shwartsman
97d2965d58 continue xsave code rework 2014-03-16 20:37:47 +00:00
Volker Ruppert
798596c4c0 Slirp: added sanity check for correctly packed networking structures.
Cygwin shortcut script: option -mno-cygwin is obsolete and -mno-ms-bitfields is
required for Bochs as of GCC version 4.7.
2014-03-16 12:13:52 +00:00
Stanislav Shwartsman
9d8d895b52 cpuid fixes 2014-03-15 20:19:30 +00:00
Stanislav Shwartsman
378e7e16eb fixed major code duplication in CPUDB classes 2014-03-15 19:24:42 +00:00
Stanislav Shwartsman
d18cabc7a9 add new CPUDB files 2014-03-15 18:31:33 +00:00
Stanislav Shwartsman
c87605722b CPUDB: added AMD Trinity to the database 2014-03-15 18:30:13 +00:00
Stanislav Shwartsman
d10fa93d89 fixed to VSCALEF instruction + one more step in the implementation in the softfloat 2014-03-14 20:26:50 +00:00
Volker Ruppert
4a78dffb24 Cleaned up disk sector offset variables used for the seek latency feature. Now
using names similar to the cdrom ones.
2014-03-11 18:29:32 +00:00
Volker Ruppert
76a03aa1f0 Networking-related fixes
- bx_param_string_c method isempty() didn't work for raw byte strings. Now using
  it to check whether or not the current value matches the initial one. The
  parameter handling of the network adapters now use this method to check if
  the MAC address is already initialized to avoid incorrect BX_ERRORs.
- small documentation update
2014-03-10 19:05:46 +00:00
Stanislav Shwartsman
08f5383831 fix for x87 2014-03-09 22:06:13 +00:00
Stanislav Shwartsman
02e19de346 Added shape of implementation for last missing VSCALEF* AVX-512 instructons.
The softfloat implementation is still missing (only corner cases are supported).
Extend softfloat floatNN_class methods to distinguish between SNaN and QNaN.
2014-03-09 21:42:11 +00:00
Volker Ruppert
aad090d03c Slirp dnssearch: added support for comma-separated list of DNS suffixes 2014-03-09 16:41:36 +00:00
Stanislav Shwartsman
211208dc30 zero masking is not allowed for all forms of vsib, including gather 2014-03-08 20:27:10 +00:00
Stanislav Shwartsman
48ab171b79 enumerate possible fetchdecode failures leading to #UD decoding. TODO: add this info to BX_IA_ERROR as immediate 2014-03-08 20:09:00 +00:00
Stanislav Shwartsman
069498eef6 zero masking is not allowed for mem destination instructions 2014-03-08 19:49:35 +00:00
Volker Ruppert
46037ee5f5 Slirp: added basic 'dnssearch' option (currently only 1 entry supported).
TODO: 'dnssearch' option should accept a comma-separated list of suffixes.
Other slirp TODOs: SMB support on Linux, reduce code duplication (ARP, DHCP, TFTP)
2014-03-08 08:54:33 +00:00
Stanislav Shwartsman
bfe6ecabb8 xsave sse state using same interface as all other advanced states 2014-03-04 21:06:29 +00:00
Volker Ruppert
0c4e5eb6c5 Renamed slirp option 'dhcp' to 'dhcpstart' (similar to Qemu)
Ignore case when checking for slirp options
Improved slirp documentation
2014-03-04 18:58:51 +00:00
Volker Ruppert
25f9b4346a Added support for the bootfile option in the slirp config file.
Moved slirp config parameters to the ethernet module object.
Added initial documentation for the built-in slirp support
2014-03-03 16:32:11 +00:00
Volker Ruppert
f62c8f158f Some work on the "Bochs side" of the new slirp module
- added support for a separate slirp config file specified with the "script"
  parameter. Added sample config in the "misc" subdirectory.
- now creating one logfunctions object per slirp instance and added new function
  slirp_warning() to send error messages to the Bochs log.
- regenerated dependencies for the iodev/network Makefile and updated command
  line example for generating them.
2014-03-02 20:24:26 +00:00
Stanislav Shwartsman
39bb48cd69 added missing includes 2014-03-02 19:18:05 +00:00
Stanislav Shwartsman
c544e82c43 fixed code duplication in BEXTR implementations 2014-03-02 19:16:13 +00:00
Stanislav Shwartsman
bc5af269b7 Fix some more code duplication with sclaar_arith.h
Do not clear IA32_FEATURE_CTRL MSR on soft reset (will clear the VMX lock bit)
On real HW XSAVE/XRSTOR which is not 4-byte aligned cause #AC(0) intead of #GP(0) when alignment check is enabled
2014-03-02 16:40:13 +00:00
Volker Ruppert
c1fa1a4b32 vVFAT: use path relative to the vVFAT root folder when saving file attributes.
This is required when sharing one folder between different guest installations.
2014-03-02 11:30:03 +00:00
Volker Ruppert
479d0477cf Slirp: added symbols required for win32 plugin DLLs.
Updated workspace files after adding slirp and avx sources
Updated slirp TODO list:
- reduce code duplication with 'vnet' module (DHCP, TFTP, ARP)
- add separate config file for slirp to make it more flexible (using the
  'script' parameter)
- add SMB support on Linux
- remove slirp backend module after next Bochs release
2014-03-02 09:53:42 +00:00
Volker Ruppert
6bfc3e4bd8 Slirp: added SVN Id on top of each source file 2014-03-02 07:42:24 +00:00
Volker Ruppert
2d4d3aaa56 Slirp: fixed MSVC warnings 2014-03-01 23:52:08 +00:00
Volker Ruppert
3f5d670384 Some work on the new slirp module
- applied remaining updates from Qemu slirp
- add #if blocks to all slirp .cc files for conditional compilation
- fixed some uninitialized variable warnings
2014-02-27 21:15:31 +00:00
Stanislav Shwartsman
402b2c01c9 Implemented AVX-512 conflict detection instructions (VPCONFLICT, VPLZCNT, VPBROADCASTMB2Q, VPBROADCASTMW2D)
Only missed AVX-512 opcodes are:

512.66.0F38.W0 2C VSCALEFPS
512.66.0F38.W1 2C VSCALEFPD
NDS.LIG.66.0F38.W0 2D VSCALESS
NDS.LIG.66.0F38.W1 2D VSCALESD
2014-02-27 21:12:02 +00:00
Volker Ruppert
5ea6e8c941 Some work on the new slirp module
- added dnssearch sources from latest Qemu slirp (currently unused feature)
- minor other updates from Qemu slirp
- add #if blocks around already up-to-date slirp sources for conditional compilation
- TODO: finish updating from Qemu and start fixing compiler warnings
2014-02-27 19:11:18 +00:00
Stanislav Shwartsman
695d245116 Implemented VRNDSCALE AVX-512 instructions.
Now only missed AVX-512 opcodes now are:

512.66.0F38.W0 2C VSCALEFPS
512.66.0F38.W1 2C VSCALEFPD
NDS.LIG.66.0F38.W0 2D VSCALESS
NDS.LIG.66.0F38.W1 2D VSCALESD
2014-02-27 18:27:57 +00:00
Stanislav Shwartsman
f282fc4e75 use names instead of magic numbers 2014-02-26 20:49:23 +00:00
Stanislav Shwartsman
2f906d844c fix vmexit reason descriptions 2014-02-25 19:56:10 +00:00
Volker Ruppert
87bf69dcd1 regenerated after adding MSVC slirp support 2014-02-25 19:46:15 +00:00
Volker Ruppert
e62076e53d Somw work to make the new slirp module compile and work with MSVC
- added container_of() macro replacement
- fixed unresolved symbol in netmod.cc
- added MSVC-style structure packing pragmas
- check for the presence of min / max macros
- enabled slirp_new for MSVC in configure script
TODO list:
- check for more updates from Qemu
- fix lots of compiler warnings
- reduce code duplication with 'vnet' module (DHCP, TFTP, ARP)
- add separate config file for slirp to make it more flexible (using the
  'script' parameter)
- update MSVC workspace files
- add SMB support on Linux
- remove slirp backend module after next Bochs release
2014-02-25 19:44:14 +00:00
Stanislav Shwartsman
01af7f5346 Implemented VRSQRT14 AVX-512 instructions & optimized legacy SSE RSQRTSS/PS instructions handling
//
// The table lookup was reverse-engineered from VRSQRT14SS instruction implementation available
// in the Intel Software Development Emulator rev6.20 (released February 13, 2014)
// http://software.intel.com/en-us/articles/intel-software-development-emulator/
//

// TODO: find better way to emulate these instructions, I am sure the HW doesn't have 64K entry lookup tables

Now only missed AVX-512 opcodes now are:

512.66.0F38.W0 2C VSCALEFPS
512.66.0F38.W1 2C VSCALEFPD
NDS.LIG.66.0F38.W0 2D VSCALESS
NDS.LIG.66.0F38.W1 2D VSCALESD

512.66.0F3A.W0 08 VRNDSCALEPS
512.66.0F3A.W1 09 VRNDSCALEPD
NDS.LIG.66.0F3A.W1 0A VRNDSCALESS
NDS.LIG.66.0F3A.W1 0B VRNDSCALESD
2014-02-25 18:57:49 +00:00
Stanislav Shwartsman
47b56a2174 regen dependencies in Makefile 2014-02-24 21:36:11 +00:00
Stanislav Shwartsman
38bcc164a7 Implemented VRCP14 AVX-512 instructions.
//
// The table lookup was reverse-engineered from VRCP14SS instruction implementation available
// in the Intel Software Development Emulator rev6.20 (released February 13, 2014)
// http://software.intel.com/en-us/articles/intel-software-development-emulator/
//

// TODO: find better way to emulate these instructions, I am sure the HW doesn't have 64K entry lookup table

Now only missed AVX-512 opcodes now are:

512.66.0F38.W0 2C VSCALEFPS
512.66.0F38.W1 2C VSCALEFPD
NDS.LIG.66.0F38.W0 2D VSCALESS
NDS.LIG.66.0F38.W1 2D VSCALESD

512.66.0F38.W0 4E VRSQRT14PS
512.66.0F38.W1 4E VRSQRT14PD
NDS.LIG.66.0F38.W0 4F VRSQRT14SS
NDS.LIG.66.0F38.W1 4F VRSQRT14SD

512.66.0F3A.W0 08 VRNDSCALEPS
512.66.0F3A.W1 09 VRNDSCALEPD
NDS.LIG.66.0F3A.W1 0A VRNDSCALESS
NDS.LIG.66.0F3A.W1 0B VRNDSCALESD
2014-02-24 21:31:52 +00:00
Volker Ruppert
c4f722cd28 Improved CD-ROM save/restore support
Set current LBA value after seek completion (faked)
2014-02-24 18:16:21 +00:00