Author: Daniel Mehrmannn
Date: 13:22:51 12/14/03
Go up one level in this thread
You should also take a look, for Visual Studio 6, to this: http://msdn.microsoft.com/vstudio/downloads/tools/ppack/download.aspx: Microsoft Visual C++ Processor Pack Release Readme © 2000 Microsoft Corporation. All rights reserved. The Microsoft Visual C++ Processor Pack Release Readme contains the following sections: Setup Instructions Compiler-Specific Notes Debugger-Specific Notes Documentation Notes Intel Performance Libraries and Sample Files AMD Sample Files Using MASM to Assemble .asm Files Setup Instructions The Processor Pack requires that you have already installed Microsoft Visual C++ version 6.0 with Service Pack 4 or greater. To install Service Pack 4, go to http://msdn.microsoft.com/vstudio/sp/vs6sp4/dnldoverview.asp and download the appropriate version. To install the Processor Pack, run Vcpp.exe. The Setup program overwrites your compiler files, and the Processor Pack documentation (procpack.chm) is installed in the Vc98 folder. MASM version 6.15 is installed in the bin folder, located in the Vc98 folder. There is no uninstall; you must uninstall Microsoft Visual C++ 6.0 and manually remove the Processor Pack files. Compiler-Specific Notes No EMMS Instruction Warning You may get the message "Warning C4799: Function x has no EMMS instruction" from the compiler in locations that no EMMS instruction is needed. This warning will be more accurate by release time. To disable this warning, use #pragma warning. Rebuilding MFC with Processor Pack Compiler You cannot rebuild MFC with the Processor Pack compiler. Because of changes related to inlining, rebuilding MFC with the Processor Pack compiler results in link errors. The link errors are unresolved externals for CTime::operator members. If you need to rebuild MFC, you must uninstall Visual C++ 6.0, manually remove the files installed by Visual C++ Processor Pack and then reinstall Visual C++ 6.0 and any necessary service packs. Calling a Virtual Member Function in Constructor Invocation If you call a virtual member function in a constructor invocation, the compiler may generate an Internal Compiler Error message. To work around this, call the virtual member function and assign its return value to a temporary. Then pass this temporary in the construction invocation. Using -QIFist There is a known problem with -QIfist and its use is not recommended. The problem will be addressed in the next Service Pack. Passing __m64 and __m128 Argument Types Passing multibyte argument types by value may result in a run time performance penalty. For __m64 and __m128 types, this is of particular concern because of the additional requirement of memory alignment. While this compiler imposes no restrictions on passing __m64 and __m128 types, a future release of the compiler will prohibit the passing of more than three __m64 or three __m128 types by value. The first 3 parameters are passed in registers, thus avoiding alignment and performance issues; it is recommended that the fourth __m64 or __m128 parameters and beyond be passed by reference. To avoid compatibility problems with future compilers and to enhance performance, do not pass more then three __m64 or __m128 types by value. There are no restrictions to passing these argument types by reference (pointers). An additional construct to avoid is passing a structure by value, particularly a structure that contains a __m64 or __m128 data type. In many case, accessing a __m64 or __m128 value in a structure passed by value results in an alignment exception being thrown. Variable Argument List and Passing __m64 and __m128 Argument Types Because of alignment issues, passing these argument types in a variable argument list by value is not supported. Future compilers may support this feature. Compatibility with Intel Compiler Some compatibility issues have been identified with mixing source and object files between the Microsoft Visual C++ Processor Pack compiler and the Intel C/C++ compiler. These issues arise when using __m64 and __m128 types. These problems are exposed when sharing these data types across compilers either as global variables or as formal parameters. To minimize any problems, it is recommended that uses of __m64 and __m128 types remain within the scope of a single compiler. Both compilers are in the process of eliminating these inconsistencies in future releases. Debugger-Specific Notes The debugger requires that if you are running Windows NT version 4.0, you must have Service Pack 5 or greater installed. For remote debugging, you must have Visual C++ with Service Pack 4 installed on both machines. If you edit the value of a register from the Registers window or an EE window (such as QuickWatch or Watch), it may revert to the previous value once you step in the debugger. This affects STO-ST7, FPU status, MM0-MM7, XMM0-XMM7, XMM00-XMM73, and MM00-MM71 registers on Windows 95 and Windows 98. Documentation Notes Under the AMD 3DNow! Technology Overview and Intrinsics node, the Data Types topic lists the second integer data type graphic as (64 bits x 1) Quad word. It should read (16 bits x 4) Quad word. Also, the bit pattern in the last block on this graphic reads 43 to 63. It should read 48 to 63. Intel Performance Libraries and Sample Files Intel performance libraries are available at http://developer.intel.com/vtune/perflibst/. Intel SSE samples are available at http://developer.intel.com/vtune/cbts/strmsimd/appnotes.htm. Intel SSE2 samples are available at http://developer.intel.com/vtune/cbts/strmsimd/sse2_appnotes.htm. AMD Sample Files AMD sample files are available in your installation folder. You can find them by going to the Samples folder in the Vc98 folder. Click the AMD folder, and there are two sample folders, Isdk and Asdk, which contain the sample files. You do not need a project; compile each sample with cl /Ox /DWIN32 /Fesample.exe *.cpp. Using MASM to Assemble .asm Files Microsoft Visual C++ does not support assembler source files by default, that is, the Developer Studio does not associate any special significance to .asm files. However, there are two viable options. You can use the following two methods to add .asm files to a Visual C++ project. The methods are: Using custom build rules. Using an assembler to build the .obj file from the .asm file from the command line and add the .obj file to the project or add to the linker input files. The use of custom build is described below. By using a custom build rule, a project can invoke MASM on a per-file basis to assemble .asm files. The resulting object modules are then automatically linked into the desired target. For more information about MASM, see MASM Reference Documentation. Using Visual C++ Developer Studio, the following provides sample code and a step-by-step example of how to create a simple console application, CAPP, that requires MASM (ML.exe) to assemble one of its source files. daniel
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.