by Andrew Binstock, principal analyst, Pacific Data Works LLC. Intel Corp.
Due to the strategic importance of the 64-bit Intel® Itanium architecture and Intel Extended Memory 64 Technology (Intel EM64T) to Intel's growth, the company has put numerous resources in place to assist developers in porting software. As discussed elsewhere on this site, 64-bit computing places different demands upon the developer than 32-bit computing.
Porting Application Source Code
The most significant issues that software developers should face in porting source code to the 64-bit world concern the changes in pointer size and fundamental integer types. As such, these differences should appear most prominently in C and C++ programs. Code written in Fortran, COBOL, Visual Basic, and most other languages (except assembly language, which must be completely rewritten), will need no modification. A simple recompilation is often all that is needed. Java code should not even need recompilation; Java classes should execute the same on a 64-bit JVM as on any 32-bit virtual machine.
C (from here on, C++ is included in all discussions of C) code, however, by allowing casting across types and direct access to machine-specific integral types will need some attention.
The first aspect is the size of pointers; 64-bit operating systems use 64-bit pointers. This means that the following will equal eight (and no longer four):
sizeof (ptrdiff_t) |
As a result, structures that contain pointers will have different sizes as well. As such, if data laid out for these structures is stored on disk, reading it in or writing it out will cause errors. Likewise, unions with pointer fields will have different sizes and can cause unpredictable results.
The greatest effect, though, is felt wherever pointers are cast to integral types. This practice, which has been condemned for years as inimical to portability, will come back to haunt programmers who did not abandon it. The problems caused by it are traceable to the different widths used by pointers, integers and longs on the various platforms. Let's examine these.
Read the read of this article: click link below.
© 2004 Intel Corp.
![]()
If you're interested in this topic, these articles may be helpful:
![]() | Boosting Cryptography Performance with Intel® Libraries by Muneesh Nagpal, server applications engineer, Core Software Divisio... |
![]() | Intel Itanium microarchitecture support for .NET and Java by Matt Gillespie, technical author and editor. Intel Corp. The Int... |
![]() | Threading Games for High Performance on Intel® Processors The evolution of the multi-threaded processor design is the trend for ... |
![]() | Intel Itanium Processor Family reference guide: IA-32 Execution Layer The Intel Itanium processor family has been architected to provide ind... |
![]() | Intel® Fortran Compiler 8.1 for Linux Deliver outstanding performance on single and multiprocessor computers... |
![]()
Related Jobs:
![]() | Product Manager 4-ProdDev #IRC280823 - VA - Reston - Oracle The Database Tools team's mission is to create easy to use tools for t... |
![]() | Senior Engineer #2948 - NV - Reno - Bally Gaming Senior Engineer -Reno, NV Job Skills & Experience Requirements ... |
![]() | Applications Developer 3 #IRC290950 - MN - Minneapolis - Oracle Oracle Retail delivers solutions for todays demanding retail environ... |
![]() | Systems Engineer #149178 - WA - Redmond - Microsoft Corporation MSN Core Platform Engineering team is looking for a standout performer... |
![]() | System Administrator 4-IT #IRC272726 - CA - Redwood Shores - Oracle Responsible for creating and implementing system enhancements that wil... |
![]() | BREW Developer #551 - WA - Bellevue - Teleca USA Job Location WA - Bellevue/Redmond Job Type Perm. Thi... |
![]() | Sr. Software Engineer #05-1114 - CA - San Diego - LG Electronics Sr. Software Engineer -San Diego 05-1114 Oct 27, 2005 San Diego,Cali... |
![]() | Applications Developer 3 #IRC296973 - MN - Minneapolis - Oracle This Software Engineering group designs, codes and tests new developme... |
![]() | QA Manager-ProdDev #IRC292547 - CA - Redwood Shores - Oracle Oracle Application Server is an integrated product that enables enterp... |
![]() | Sr. Software Engineer #05-1112 - CA - San Diego - LG Electronics Sr. Software Engineer -San Diego 05-1112 Oct 27, 2005 San Diego,Cali... |

