![]() PVS-Studio Static Code Analyzer for 64-bit and parallel C/C++ code
|
|
![]() ![]() ![]() ![]() ![]()
11.03.2010
Parallel notes N4 - continuing to study OpenMP constructs In this post we will continue to introduce you into OpenMP technology and tell you about some functions and new directives.»
02.03.2010
Parallel notes N3 - base OpenMP constructs Now we would like to start introducing you into OpenMP technology and show you the ways of using it.»
28.02.2010
In what way can C++0x standard help you eliminate 64-bit errors Programmers see in C++0x standard an opportunity to use lambda-functions and other entities I do not quite understand :).» ![]()
10.12.2009
PVS-Studio FAQ This paper contains some questions and answers about PVS-Studio code analyzer by OOO "Program Verification Systems".»
09.12.2009
VivaCore FAQ This paper contains some questions and answers about VivaCore C/C++ code analysis library by OOO "Program Verification Systems"»
23.11.2009
PVS-Studio: using the function "Mark as False Alarm"
The article describes and demonstrates by an example the use of PVS-Studio 3.40 new function "Mark as False Alarm". » ![]() |
64-bit Development![]() Matt Pietrek shares his experience of working with Win64 and x64 architecture and provides developers with useful information about 64-bit programming. The article is divided into three main sections. In the first one the author considers details of x64-based Windows implementation, including such issues as memory limits, address space, exception handling and so on. The second part concerns a set of instructions of the x64 architecture itself. The third section is devoted to developing for x64 with Visual C++ environment and includes instructions on how to set the environment, how to deal with some issues of making code Win64-compliant and how to debug the application. The article contains many code samples and illustrative tables and screenshots. Lively language is another plus of the paper.
Porting applications to the 64-bit mode of the PowerPC 970FX processor is a specific task and Matt Tyrlik is going to encourage developers and help them eliminate main issues relating to porting existing 32-bit code to the new computing model. The article consists of three parts. The first one describes main issues you may encounter when porting C language software to the 64-bit computation mode of the PowerPC 970FX. This section covers data type changes, pointer arithmetic, function pointers and compiler options. The second part discusses issues of porting 32-bit assembly language software to the 64-bit computation mode and deals with TOC programming, assembly language data objects and function calls etc. The third part covers changes needed for supervisor-level software. The text is supplied with many code samples.
Computer game industry can benefit a lot from moving to 64-bit processors, and Microsoft Game Technology Group decided to provide game-developers with crucial information about porting 32-bit code to 64-bit platforms. The article covers basic issues relating to such aspects as pointer truncation, data types and binary files, older Win32 APIs and data alignment, assembly code and deprecated APIs and some more, and also gives some tips on how to avoid many problems relating to these aspects and increase performance of games.
Although this paper is not of prescriptive character, it will be useful for many developers facing the task of porting 32-bit managed code to 64-bits. Beginning with a brief explanation of managed code's working principles in a 32-bit environment, the article describes issues of porting this code to a 64-bit environment from the viewpoint of several aspects: using platform invoke, COM interoperability, unsafe code, marshalling and serialization. When describing each aspect, some recommendations and code samples are given.
Sometimes you might face a situation when you cannot port DLL to a 64-bit system together with the main module but still must have an access to it. This article explains how you can do it using a COM object and describes some things to be considered involved in this task, among them being some issues concerning alignment, data types, COM initialize function, security, performance, redirection process in WOW, kernel modules and setup procedure.
This paper is a presentation covering most aspects of porting 32-bit code to Windows running on AMD64 platform and includes several sections: AMD64 technology concerning some features of this architecture, 64-bit Windows for AMD64, porting issues, maximizing multiprocessor performance and recommendations on tools and additional resources. Each section includes schemes illustrating this or that feature and theses to be considered. The main plus of this paper is a concise character of description allowing coverage of many really important things.
Mike Wall concentrates upon the aspect of optimizing and boosting performance of code during porting. Starting with an explanation of AMD64 architecture's advantages, the author discusses several methods of increasing code's performance including use of compiler switches, intrinsic functions, assembly and many more. In addition he also describes advantages of using CodeAnalyst tool when optimizing the code. In the article you will find some useful examples of code.
A very brief note on porting 32-bit code to 64-bit that concerns some issues developers should pay attention to (use of data types different in 32-bit and 64-bit modes) and gives a couple of tips on using printf modifier.
This paper touches upon the task of portion an application to 64-bit Linux installed on HP Integrity servers. It includes many sections describing the basic issues the programmer might face during the port. For example, such issues are discussed as endianism, standard type definitions, pointer assignments, bit shifting and many others. The paper also includes a brief list of tools to aid the programmer in the process of porting (Intel C++ Compiler, GCC, GDB, DDD, Splint). The text is supplied with many tables and code samples for a better understanding.
|
|
© 2008 - 2010, OOO "Program Verification Systems"
300027, Russia, Tula, P.O. Box 1800. Office: Russia, Tula, Kutuzova 100-73 |
|