<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Tips for Porting software to a 64-bit platform in Software Tuning, Performance Optimization &amp; Platform Monitoring</title>
    <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803205#M731</link>
    <description>&lt;STRONG&gt;12&lt;/STRONG&gt;.Issues with a'&lt;STRONG&gt;fseek&lt;/STRONG&gt;' CRT-function detected:&lt;BR /&gt;&lt;P&gt;&lt;BR /&gt;For a &lt;STRONG&gt;32-bit&lt;/STRONG&gt; platform it is declared as follows:&lt;BR /&gt;  int &lt;STRONG&gt;fseek&lt;/STRONG&gt;( FILE *stream, long offset, int origin );&lt;BR /&gt;&lt;BR /&gt;For a &lt;STRONG&gt;64-bit&lt;/STRONG&gt; platform it is declared as follows:&lt;BR /&gt;  int &lt;STRONG&gt;_fseeki64&lt;/STRONG&gt;( FILE *stream, __int64 offset, int origin );&lt;BR /&gt;&lt;BR /&gt;A macro-wrapper is needed to make codes more portable.&lt;/P&gt;</description>
    <pubDate>Tue, 19 Jun 2012 01:38:51 GMT</pubDate>
    <dc:creator>SergeyKostrov</dc:creator>
    <dc:date>2012-06-19T01:38:51Z</dc:date>
    <item>
      <title>Tips for Porting software to a 64-bit platform</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803201#M727</link>
      <description>&lt;P&gt;I'd like to share some experience on porting a C/C++ project to a 64-bit platform. It was started last week and I already&lt;BR /&gt;have lots of different problems.&lt;BR /&gt;&lt;BR /&gt;Here is a list of Tips, Detected Problems and Issues:&lt;/P&gt;&lt;P&gt; &lt;STRONG&gt;1&lt;/STRONG&gt;. I recommend to take a look at the following topics on MSDN if you're about to start a 64-bit programming:&lt;/P&gt;&lt;P&gt; "Platform SDK: 64-bit Windows Programming"&lt;BR /&gt; "Migration Tips"&lt;BR /&gt; "64-Bit Programming with Visual C++"&lt;BR /&gt; "How to: Configure Projects to Target Platforms"&lt;/P&gt;&lt;P&gt; &lt;STRONG&gt;2&lt;/STRONG&gt;. Turn on a /Wp64 compiler option for Microsoft compatible C++ compilers. It detects 64-bit&lt;BR /&gt; portability problems on types that are marked with the __w64 keyword;&lt;/P&gt;&lt;P&gt; &lt;STRONG&gt;3&lt;/STRONG&gt;. Issue - LONGLONG data type:&lt;BR /&gt; ...&lt;BR /&gt; #if !defined( _M_IX86 )&lt;BR /&gt; typedef __int64 LONGLONG;&lt;BR /&gt; #else&lt;BR /&gt; typedef double LONGLONG;&lt;BR /&gt; #endif&lt;BR /&gt; ...&lt;/P&gt;&lt;P&gt; &lt;STRONG&gt;4&lt;/STRONG&gt;. Issue - Date &amp;amp; Time CRT-functions and data types&lt;/P&gt;&lt;P&gt; &lt;STRONG&gt;5&lt;/STRONG&gt;. Issue - A 'size_t' type is used in 'new' C++ operators to pass a size of a memory to allocate and&lt;BR /&gt;  it is 8-bytes long on a 64-bit platform&lt;/P&gt;&lt;P&gt; &lt;STRONG&gt;6&lt;/STRONG&gt;. Microsoft C++ compiler ( a test case ):&lt;BR /&gt; ...&lt;BR /&gt; int iInt32 = 0xffffeeeeddddcccc; // -&amp;gt; iInt32 = 0xddddcccc - This is simplya verification of truncation&lt;BR /&gt; ...&lt;/P&gt;&lt;P&gt; &lt;STRONG&gt;7&lt;/STRONG&gt;. Problem - MinGW C++ compiler ( a test case ):&lt;BR /&gt; ...&lt;BR /&gt; int iInt32 = 0xffffeeeeddddcccc; // -&amp;gt; Error: integer constant is too large for "long" type&lt;BR /&gt; ...&lt;/P&gt;&lt;P&gt; &lt;STRONG&gt;8&lt;/STRONG&gt;. Use explicit 'ifdef's for different platforms ( pseudo codes ):&lt;BR /&gt; ...&lt;BR /&gt; #ifdef _16BIT_PLATFORM_&lt;BR /&gt; //...&lt;BR /&gt; #endif&lt;BR /&gt; #ifdef _32BIT_PLATFORM_&lt;BR /&gt; //...&lt;BR /&gt; #endif&lt;BR /&gt; #ifdef _64BIT_PLATFORM_&lt;BR /&gt; //...&lt;BR /&gt; #endif&lt;BR /&gt; ...&lt;/P&gt;&lt;P&gt; &lt;STRONG&gt;9&lt;/STRONG&gt;. Default ( turn on ) the following warnigs for Microsoft compatible C++ compilers:&lt;/P&gt;&lt;P&gt; #pragma warning ( default : 4239 )// Nonstandard extension used : 'type cast' : conversion from 'type1' to 'type2'&lt;BR /&gt; #pragma warning ( default : 4242 )// Conversion from 'type1' to 'type2', possible loss of data&lt;BR /&gt; #pragma warning ( default : 4244 )// Conversion from 'type1' to 'type2', possible loss of data&lt;BR /&gt; #pragma warning ( default : 4305 )// 'Initializing' : truncation from 'type1' to 'type2'&lt;BR /&gt; #pragma warning ( default : 4309 )// 'Initializing' : truncation of constant value&lt;BR /&gt; #pragma warning ( default : 4311 )// 'Type cast' : pointer truncation from 'type1' to 'type2'&lt;/P&gt;&lt;P&gt; &lt;STRONG&gt;10&lt;/STRONG&gt;. Verify how the __w64 keyword works for Microsoft compatible C++ compilers:&lt;/P&gt;&lt;P&gt; // Test Case - Verification of __w64 keyword - based on MSDN example&lt;BR /&gt; // 'V64C' stands for 'Verify 64-bit Compatibility'&lt;/P&gt;&lt;P&gt; ...&lt;BR /&gt; #if ( defined ( _WIN32_MSC ) || defined ( _WIN32_ICC ) )&lt;BR /&gt; #define _RTV64C__w64&lt;BR /&gt; #endif&lt;BR /&gt; #if ( defined ( _WIN32CE_MSC ) || defined ( _WIN32_BCC ) || defined ( _WIN32_MGW ) ||\\&lt;BR /&gt;  defined ( _COS16_TCC ) )&lt;BR /&gt; #define _RTV64C&lt;BR /&gt; #endif&lt;BR /&gt; ...&lt;/P&gt;&lt;P&gt; #pragma warning ( default : 4244 )// Conversion from 'type1' to 'type2', possible loss of data&lt;/P&gt;&lt;P&gt; #define _WIN64&lt;BR /&gt; //#undef _WIN64&lt;/P&gt;&lt;P&gt; typedef int Int_32;&lt;/P&gt;&lt;P&gt; #ifdef _WIN64&lt;BR /&gt; typedef __int64 Int_Native;&lt;BR /&gt; #else&lt;BR /&gt; typedef int _RTV64C Int_Native;&lt;BR /&gt; #endif&lt;/P&gt;&lt;P&gt; Int_32 iInt_32 = 0xffeeddcc;&lt;BR /&gt; Int_Native iInt_Native = 0xffffeeeeddddcccc;&lt;BR /&gt; iInt_32 = iInt_Native; // MSDN - Warning C4244: 64-bit int assigned to 32-bit int&lt;BR /&gt; // Compiler - Warning C4244: '=' : conversion from 'Int_Native' to 'Int_32', possible loss of data&lt;BR /&gt; #undef _WIN64&lt;/P&gt;&lt;P&gt; #pragma warning ( disable : 4244 )&lt;BR /&gt; ...&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;11&lt;/STRONG&gt;. If a project has Test Cases ALL of them must be verified on a 64-bit platform&lt;/P&gt;</description>
      <pubDate>Sun, 17 Jun 2012 19:17:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803201#M727</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-06-17T19:17:06Z</dc:date>
    </item>
    <item>
      <title>Tips for Porting software to a 64-bit platform</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803202#M728</link>
      <description>Here are a couple of screenshots that demonstrate the truncation of a 64-bit value when&lt;BR /&gt;assigned to a 32-bit variable:&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="text-decoration: underline;"&gt;State 1&lt;/SPAN&gt; - Values are uninitialized&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.intel.com/skins/images/7B13F55A7CE623EF42E69096FA81A3A1/2021_redesign/images/image_not_found.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="text-decoration: underline;"&gt;State 2&lt;/SPAN&gt; - Values initialized&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.intel.com/skins/images/7B13F55A7CE623EF42E69096FA81A3A1/2021_redesign/images/image_not_found.png" /&gt;&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="text-decoration: underline;"&gt;State 3&lt;/SPAN&gt; - A 64-bit value was assigned to a 32-bit variable&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper"&gt;&lt;img src="https://community.intel.com/skins/images/7B13F55A7CE623EF42E69096FA81A3A1/2021_redesign/images/image_not_found.png" /&gt;&lt;/span&gt;</description>
      <pubDate>Sun, 17 Jun 2012 19:24:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803202#M728</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-06-17T19:24:00Z</dc:date>
    </item>
    <item>
      <title>Tips for Porting software to a 64-bit platform</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803203#M729</link>
      <description>&lt;DIV id="tiny_quote"&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Quoting &lt;A jquery1339961443093="58" rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=353541" href="https://community.intel.com/en-us/profile/353541/" class="basic"&gt;Sergey Kostrov&lt;/A&gt;&lt;/DIV&gt;&lt;DIV style="background-color: #e5e5e5; margin-left: 2px; margin-right: 2px; border: 1px inset; padding: 5px;"&gt;&lt;I&gt;I'd like to share some experience on porting a C/C++ project to a 64-bit platform. It was started last week and I already&lt;BR /&gt;have lots of different problems...&lt;BR /&gt;&lt;BR /&gt; ...&lt;BR /&gt; &lt;STRONG&gt;4&lt;/STRONG&gt;. Issue - Date &amp;amp; Time CRT-functions and data types&lt;BR /&gt; ...&lt;/I&gt;&lt;/DIV&gt;&lt;BR /&gt;Please take a look at a thread:&lt;BR /&gt;&lt;BR /&gt; &lt;STRONG&gt;Is a "Y2K38 disaster" looming? Issues with a 'time_t' type&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt; &lt;A href="http://software.intel.com/en-us/forums/showthread.php?t=105868&amp;amp;o=a&amp;amp;s=lr"&gt;http://software.intel.com/en-us/forums/showthread.php?t=105868&amp;amp;o=a&amp;amp;s=lr&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;for more technical details.&lt;/DIV&gt;</description>
      <pubDate>Sun, 17 Jun 2012 19:29:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803203#M729</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-06-17T19:29:55Z</dc:date>
    </item>
    <item>
      <title>Tips for Porting software to a 64-bit platform</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803204#M730</link>
      <description>&lt;STRONG&gt;Everybody is welcomed to sharea 64-bit programming experience!&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;Sergey&lt;BR /&gt;</description>
      <pubDate>Sun, 17 Jun 2012 19:33:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803204#M730</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-06-17T19:33:29Z</dc:date>
    </item>
    <item>
      <title>Tips for Porting software to a 64-bit platform</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803205#M731</link>
      <description>&lt;STRONG&gt;12&lt;/STRONG&gt;.Issues with a'&lt;STRONG&gt;fseek&lt;/STRONG&gt;' CRT-function detected:&lt;BR /&gt;&lt;P&gt;&lt;BR /&gt;For a &lt;STRONG&gt;32-bit&lt;/STRONG&gt; platform it is declared as follows:&lt;BR /&gt;  int &lt;STRONG&gt;fseek&lt;/STRONG&gt;( FILE *stream, long offset, int origin );&lt;BR /&gt;&lt;BR /&gt;For a &lt;STRONG&gt;64-bit&lt;/STRONG&gt; platform it is declared as follows:&lt;BR /&gt;  int &lt;STRONG&gt;_fseeki64&lt;/STRONG&gt;( FILE *stream, __int64 offset, int origin );&lt;BR /&gt;&lt;BR /&gt;A macro-wrapper is needed to make codes more portable.&lt;/P&gt;</description>
      <pubDate>Tue, 19 Jun 2012 01:38:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803205#M731</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-06-19T01:38:51Z</dc:date>
    </item>
    <item>
      <title>Tips for Porting software to a 64-bit platform</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803206#M732</link>
      <description>&lt;P&gt;&lt;STRONG&gt;13&lt;/STRONG&gt;. Issues with some intrinsic functions detected:&lt;BR /&gt;&lt;BR /&gt; &lt;SPAN style="text-decoration: underline;"&gt;Header&lt;/SPAN&gt;: '&lt;STRONG&gt;nmmintrin.h&lt;/STRONG&gt;'&lt;BR /&gt;  ...&lt;BR /&gt;  // Calculate a number of bits set to 1&lt;BR /&gt; ...&lt;BR /&gt;  #if defined( _M_X64 )&lt;BR /&gt;  extern __int64 &lt;STRONG&gt;_mm_popcnt_u64&lt;/STRONG&gt;( unsigned __int64 v );&lt;BR /&gt;  #endif&lt;BR /&gt;  ...&lt;BR /&gt;&lt;BR /&gt; &lt;SPAN style="text-decoration: underline;"&gt;Header&lt;/SPAN&gt;: '&lt;STRONG&gt;smmintrin.h&lt;/STRONG&gt;'&lt;BR /&gt;  ...&lt;BR /&gt;  // Insert integer into packed integer array element&lt;BR /&gt;  // selected by index&lt;BR /&gt;  ...&lt;BR /&gt;  #if defined( _M_X64 )&lt;BR /&gt;  extern __m128i &lt;STRONG&gt;_mm_insert_epi64&lt;/STRONG&gt;( __m128i dst, __int64 s, const int ndx );&lt;BR /&gt;  #endif&lt;/P&gt;&lt;P&gt;  // Extract integer from packed integer array element&lt;BR /&gt;  // selected by index&lt;BR /&gt;  ...&lt;BR /&gt;  #if defined( _M_X64 )&lt;BR /&gt;  extern __int64 &lt;STRONG&gt;_mm_extract_epi64&lt;/STRONG&gt;( __m128i src, const int ndx );&lt;BR /&gt;  #endif&lt;BR /&gt;  ...&lt;BR /&gt;&lt;BR /&gt;Even if &lt;STRONG&gt;__int64&lt;/STRONG&gt; and &lt;STRONG&gt;__m128i&lt;/STRONG&gt; data types could be used on a &lt;STRONG&gt;32-bit&lt;/STRONG&gt; platform these intrinsic functions are not available.&lt;/P&gt;</description>
      <pubDate>Tue, 19 Jun 2012 01:45:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803206#M732</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-06-19T01:45:22Z</dc:date>
    </item>
    <item>
      <title>Tips for Porting software to a 64-bit platform</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803207#M733</link>
      <description>&lt;P&gt;&lt;STRONG&gt;14&lt;/STRONG&gt;. Forced truncations of Single- or Double-precision values to integer type:&lt;BR /&gt;&lt;BR /&gt; In the following example:&lt;BR /&gt; ...&lt;BR /&gt; &lt;STRONG&gt;float&lt;/STRONG&gt; fPI = 3.141592653589793f;&lt;BR /&gt;&lt;BR /&gt; &lt;STRONG&gt;float&lt;/STRONG&gt; fPIint = ( &lt;STRONG&gt;int&lt;/STRONG&gt; )fPI;&lt;BR /&gt; ...&lt;BR /&gt;&lt;BR /&gt; there is nothing wrong, but ifMicrosoftor Intel C++ compilers are useda warning:&lt;BR /&gt;&lt;BR /&gt; &lt;STRONG&gt;C4244&lt;/STRONG&gt;: '=' : conversion from 'float' to 'int', possible loss of data&lt;BR /&gt;&lt;BR /&gt; will be displayed.&lt;/P&gt;</description>
      <pubDate>Tue, 19 Jun 2012 01:49:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803207#M733</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-06-19T01:49:46Z</dc:date>
    </item>
    <item>
      <title>Tips for Porting software to a 64-bit platform</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803208#M734</link>
      <description>&lt;DIV id="tiny_quote"&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Quoting &lt;A jquery1340473782937="58" rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=353541" href="https://community.intel.com/en-us/profile/353541/" class="basic"&gt;Sergey Kostrov&lt;/A&gt;&lt;/DIV&gt;&lt;DIV style="background-color: #e5e5e5; margin-left: 2px; margin-right: 2px; border: 1px inset; padding: 5px;"&gt;&lt;I&gt; &lt;STRONG&gt;9&lt;/STRONG&gt;. Default ( turn on ) the following warnigs for Microsoft compatible C++ compilers:&lt;P&gt; #pragma warning ( default : 4239 )// Nonstandard extension used : 'type cast' : conversion from 'type1' to 'type2'&lt;BR /&gt; #pragma warning ( default : 4242 )// Conversion from 'type1' to 'type2', possible loss of data&lt;BR /&gt; #pragma warning ( default : 4244 )// Conversion from 'type1' to 'type2', possible loss of data&lt;BR /&gt; #pragma warning ( default : 4305 )// 'Initializing' : truncation from 'type1' to 'type2'&lt;BR /&gt; #pragma warning ( default : 4309 )// 'Initializing' : truncation of constant value&lt;BR /&gt; #pragma warning ( default : 4311 )// 'Type cast' : pointer truncation from 'type1' to 'type2'&lt;/P&gt;&lt;/I&gt;&lt;/DIV&gt;&lt;BR /&gt;In case of Intel C++ compiler default ( turn on )a warning 2259:&lt;BR /&gt;&lt;BR /&gt; #pragma warning (default : 2259 ) // Non-pointer conversion from "type1" to "type2" may lose significant bits&lt;/DIV&gt;</description>
      <pubDate>Sat, 23 Jun 2012 17:48:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803208#M734</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-06-23T17:48:58Z</dc:date>
    </item>
    <item>
      <title>Tips for Porting software to a 64-bit platform</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803209#M735</link>
      <description>Thank you for the information! :-)</description>
      <pubDate>Sun, 24 Jun 2012 17:19:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803209#M735</guid>
      <dc:creator>Maycon_Oliveira</dc:creator>
      <dc:date>2012-06-24T17:19:26Z</dc:date>
    </item>
    <item>
      <title>Tips for Porting software to a 64-bit platform</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803210#M736</link>
      <description>&lt;STRONG&gt;15&lt;/STRONG&gt;. A version &lt;STRONG&gt;3&lt;/STRONG&gt; of the '&lt;STRONG&gt;MemTestApp&lt;/STRONG&gt;' that could be used to test allocation of large blocks of memory is attached.&lt;BR /&gt;&lt;BR /&gt;Please take a look at a post:&lt;BR /&gt;&lt;BR /&gt; &lt;A href="http://software.intel.com/en-us/forums/showpost.php?p=189214"&gt;http://software.intel.com/en-us/forums/showpost.php?p=189214&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;for more technical details.&lt;BR /&gt;</description>
      <pubDate>Fri, 06 Jul 2012 00:20:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803210#M736</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-07-06T00:20:35Z</dc:date>
    </item>
    <item>
      <title>Tips for Porting software to a 64-bit platform</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803211#M737</link>
      <description>&lt;B&gt;16. Integer literal constant:&lt;/B&gt;&lt;DIV&gt;&lt;B&gt;&lt;BR /&gt;&lt;/B&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;B&gt;&lt;BR /&gt;&lt;/B&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV style="padding-left: 20pt;" id="_mcePaste"&gt;	__int64 test = 1&amp;lt;&amp;lt;48;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;The result is 0! To have correct result it should look like following&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV style="padding-left: 20pt;"&gt;__int64 test = &lt;B&gt;1LL&lt;/B&gt;&amp;lt;&amp;lt;48;
&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 06 Jul 2012 09:49:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803211#M737</guid>
      <dc:creator>Arthur_Moroz</dc:creator>
      <dc:date>2012-07-06T09:49:10Z</dc:date>
    </item>
    <item>
      <title>Tips for Porting software to a 64-bit platform</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803212#M738</link>
      <description>&lt;DIV id="tiny_quote"&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Quoting &lt;A jquery1341577183468="60" rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=425639" href="https://community.intel.com/en-us/profile/425639/" class="basic"&gt;Arthur Moroz&lt;/A&gt;&lt;/DIV&gt;&lt;DIV style="background-color: #e5e5e5; margin-left: 2px; margin-right: 2px; border: 1px inset; padding: 5px;"&gt;&lt;I&gt;&lt;B&gt;16. Integer literal constant:&lt;/B&gt; &lt;DIV&gt;&lt;B&gt;&lt;BR /&gt;&lt;/B&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV id="_mcePaste" style="padding-left: 20pt;"&gt;__int64 test = 1&amp;lt;&amp;lt;48;&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;The result is 0! To have correct result it should look like following&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV style="padding-left: 20pt;"&gt;__int64 test = &lt;B&gt;1LL&lt;/B&gt;&amp;lt;&amp;lt;48; &lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/I&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;Thank you and it is a really good note. I also had a similarissue and'&lt;STRONG&gt;LL&lt;/STRONG&gt;' or '&lt;STRONG&gt;ULL&lt;/STRONG&gt;' resolved it.&lt;/P&gt;</description>
      <pubDate>Fri, 06 Jul 2012 12:17:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803212#M738</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-07-06T12:17:53Z</dc:date>
    </item>
    <item>
      <title>Tips for Porting software to a 64-bit platform</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803213#M739</link>
      <description>&lt;DIV id="tiny_quote"&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Quoting &lt;A jquery1341616588000="61" rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=353541" href="https://community.intel.com/en-us/profile/353541/" class="basic"&gt;Sergey Kostrov&lt;/A&gt;&lt;/DIV&gt;&lt;DIV style="background-color: #e5e5e5; margin-left: 2px; margin-right: 2px; border: 1px inset; padding: 5px;"&gt;&lt;I&gt;&lt;DIV id="tiny_quote"&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Quoting &lt;A jquery1341616588000="62" jquery1340473782937="58" rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=353541" href="https://community.intel.com/en-us/profile/353541/" class="basic"&gt;Sergey Kostrov&lt;/A&gt;&lt;/DIV&gt;&lt;DIV style="background-color: #e5e5e5; margin-left: 2px; margin-right: 2px; border: 1px inset; padding: 5px;"&gt;&lt;I&gt; &lt;STRONG&gt;9&lt;/STRONG&gt;. Default ( turn on ) the following warnigs for Microsoft compatible C++ compilers: &lt;P&gt; #pragma warning ( default : 4239 )// Nonstandard extension used : 'type cast' : conversion from 'type1' to 'type2'&lt;BR /&gt; #pragma warning ( default : 4242 )// Conversion from 'type1' to 'type2', possible loss of data&lt;BR /&gt; #pragma warning ( default : 4244 )// Conversion from 'type1' to 'type2', possible loss of data&lt;BR /&gt; #pragma warning ( default : 4305 )// 'Initializing' : truncation from 'type1' to 'type2'&lt;BR /&gt; #pragma warning ( default : 4309 )// 'Initializing' : truncation of constant value&lt;BR /&gt; #pragma warning ( default : 4311 )// 'Type cast' : pointer truncation from 'type1' to 'type2'&lt;/P&gt;&lt;/I&gt;&lt;/DIV&gt;&lt;BR /&gt;In case of Intel C++ compiler default ( turn on )a warning 2259:&lt;BR /&gt;&lt;BR /&gt; #pragma warning (default : 2259 ) // Non-pointer conversion from "type1" to "type2" may lose significant bits&lt;/DIV&gt;&lt;/I&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;A couple of notes regarding warnings. Take into account that as soon as these warnings are 'default'ed&lt;BR /&gt;( turned on ) you could be overwhelmed by a number of warnings during compilation of source codes.&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;SPAN style="text-decoration: underline;"&gt;Here is example&lt;/SPAN&gt;&lt;/STRONG&gt;:&lt;BR /&gt;&lt;BR /&gt;- A software development environment has one Visual Studio solution and a number of different&lt;BR /&gt; C/C++ projects is &lt;STRONG&gt;36&lt;/STRONG&gt;. Since every project is configured for different platforms a total number of&lt;BR /&gt; projects to be compiled is &lt;STRONG&gt;130&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;- All warnings related to 64-bit conversions are 'default'ed&lt;BR /&gt;&lt;BR /&gt;- In case of rebuilding all projects &lt;STRONG&gt;a total number of warning messages is&lt;/STRONG&gt; &lt;STRONG&gt;1484&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;- A summary from a Visual Studio Output Window is as follows:&lt;/P&gt;[cpp]  ----- Build started: Project: &lt;SOMEPROJECT01&gt;, Configuration: Release &lt;SOMEPLATFORM&gt; ------
  ...
  &lt;SOMEPROJECT01&gt; - 0 error(s),   2 warning(s)
  &lt;SOMEPROJECT02&gt; - 0 error(s), 160 warning(s)
  &lt;SOMEPROJECT03&gt; - 0 error(s),   1 warning(s)
  &lt;SOMEPROJECT04&gt; - 0 error(s),   2 warning(s)
  &lt;SOMEPROJECT05&gt; - 0 error(s),   1 warning(s)
  &lt;SOMEPROJECT06&gt; - 0 error(s),   2 warning(s)
  &lt;SOMEPROJECT07&gt; - 0 error(s),  83 warning(s)
  &lt;SOMEPROJECT08&gt; - 0 error(s), 380 warning(s)
  &lt;SOMEPROJECT09&gt; - 0 error(s),  97 warning(s)
  &lt;SOMEPROJECT10&gt; - 0 error(s), 160 warning(s)
  &lt;SOMEPROJECT11&gt; - 0 error(s),  99 warning(s)
  &lt;SOMEPROJECT12&gt; - 0 error(s),  61 warning(s)
  &lt;SOMEPROJECT13&gt; - 0 error(s),   2 warning(s)
  &lt;SOMEPROJECT14&gt; - 0 error(s), 260 warning(s)
  &lt;SOMEPROJECT15&gt; - 0 error(s),   4 warning(s)
  &lt;SOMEPROJECT16&gt; - 0 error(s),   3 warning(s)
  &lt;SOMEPROJECT17&gt; - 0 error(s), 167 warning(s)
  ...
  ===== Build: 130 succeeded, 0 failed, 2 up-to-date, 0 skipped ==========
[/cpp]&lt;/SOMEPROJECT17&gt;&lt;/SOMEPROJECT16&gt;&lt;/SOMEPROJECT15&gt;&lt;/SOMEPROJECT14&gt;&lt;/SOMEPROJECT13&gt;&lt;/SOMEPROJECT12&gt;&lt;/SOMEPROJECT11&gt;&lt;/SOMEPROJECT10&gt;&lt;/SOMEPROJECT09&gt;&lt;/SOMEPROJECT08&gt;&lt;/SOMEPROJECT07&gt;&lt;/SOMEPROJECT06&gt;&lt;/SOMEPROJECT05&gt;&lt;/SOMEPROJECT04&gt;&lt;/SOMEPROJECT03&gt;&lt;/SOMEPROJECT02&gt;&lt;/SOMEPROJECT01&gt;&lt;/SOMEPLATFORM&gt;&lt;/SOMEPROJECT01&gt;</description>
      <pubDate>Fri, 06 Jul 2012 23:25:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803213#M739</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-07-06T23:25:22Z</dc:date>
    </item>
    <item>
      <title>Tips for Porting software to a 64-bit platform</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803214#M740</link>
      <description>&lt;DIV id="tiny_quote"&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Quoting &lt;A jquery1341698645765="60" rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=353541" href="https://community.intel.com/en-us/profile/353541/" class="basic"&gt;Sergey Kostrov&lt;/A&gt;&lt;/DIV&gt;&lt;DIV style="background-color: #e5e5e5; margin-left: 2px; margin-right: 2px; border: 1px inset; padding: 5px;"&gt;&lt;I&gt; &lt;STRONG&gt;7&lt;/STRONG&gt;. Problem - MinGW C++ compiler ( a test case ):&lt;BR /&gt; ...&lt;BR /&gt; int iInt32 = 0xffffeeeeddddcccc; // -&amp;gt; Error: integer constant is too large for "long" type&lt;BR /&gt; ...&lt;BR /&gt;&lt;/I&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;There isa workaround and avalue &lt;STRONG&gt;18446725308424768716&lt;/STRONG&gt;( with LL or ULL )has to be used instead of &lt;STRONG&gt;0xffffeeeeddddcccc&lt;/STRONG&gt;.&lt;/P&gt;</description>
      <pubDate>Sat, 07 Jul 2012 22:12:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803214#M740</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-07-07T22:12:33Z</dc:date>
    </item>
    <item>
      <title>Tips for Porting software to a 64-bit platform</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803215#M741</link>
      <description>&lt;DIV id="tiny_quote"&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Quoting &lt;A jquery1342983196609="60" rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=353541" href="https://community.intel.com/en-us/profile/353541/" class="basic"&gt;Sergey Kostrov&lt;/A&gt;&lt;/DIV&gt;&lt;DIV style="background-color: #e5e5e5; margin-left: 2px; margin-right: 2px; border: 1px inset; padding: 5px;"&gt;&lt;I&gt;&lt;STRONG&gt;15&lt;/STRONG&gt;. A version &lt;STRONG&gt;3&lt;/STRONG&gt; of the '&lt;STRONG&gt;MemTestApp&lt;/STRONG&gt;' that could be used to test allocation of large blocks of memory is attached.&lt;BR /&gt;&lt;BR /&gt;Please take a look at a post:&lt;BR /&gt;&lt;BR /&gt; &lt;A href="http://software.intel.com/en-us/forums/showpost.php?p=189214"&gt;http://software.intel.com/en-us/forums/showpost.php?p=189214&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;for more technical details.&lt;BR /&gt;&lt;/I&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;Test Results&lt;/STRONG&gt;:&lt;BR /&gt;&lt;BR /&gt; OS : Windows 7 64-bit Home Premium&lt;BR /&gt; CPU: AMD ( 4 cores )&lt;BR /&gt; RAM: 6GB&lt;BR /&gt; VM: 96GB initial size \ 128GB maximum size&lt;BR /&gt; APP: MemTestApp64.exe \ Release configuration&lt;/P&gt;&lt;P&gt; Attempts to allocate memory:&lt;/P&gt;&lt;P&gt; 0.25GB - Allocated&lt;BR /&gt; 0.50GB - Allocated&lt;BR /&gt; 1.GB - Allocated&lt;BR /&gt; 2.GB - Allocated&lt;BR /&gt; 4.GB - Allocated&lt;BR /&gt; 8.GB - Allocated&lt;BR /&gt; 14.GB - Allocated ( Target for a 61000x61000 Single-Precision matrix )&lt;BR /&gt; 16.GB - Allocated&lt;BR /&gt; 28.GB - Allocated ( Target for a 61000x61000 Double-Precision matrix )&lt;BR /&gt; 32.GB - Allocated&lt;BR /&gt; 64.GB - Allocated&lt;/P&gt;</description>
      <pubDate>Sun, 22 Jul 2012 19:26:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803215#M741</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-07-22T19:26:02Z</dc:date>
    </item>
    <item>
      <title>Tips for Porting software to a 64-bit platform</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803216#M742</link>
      <description>&lt;DIV id="tiny_quote"&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Quoting &lt;A jquery1343017122656="60" rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=353541" href="https://community.intel.com/en-us/profile/353541/" class="basic"&gt;Sergey Kostrov&lt;/A&gt;&lt;/DIV&gt;&lt;DIV style="background-color: #e5e5e5; margin-left: 2px; margin-right: 2px; border: 1px inset; padding: 5px;"&gt;&lt;I&gt; ...&lt;BR /&gt; &lt;STRONG&gt;2&lt;/STRONG&gt;. Turn on a /&lt;STRONG&gt;Wp64&lt;/STRONG&gt; compiler option for Microsoft compatible C++ compilers. It detects 64-bit&lt;BR /&gt; portability problems on types that are marked with the __w64 keyword;&lt;BR /&gt; ...&lt;/I&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;This is simply to note that '&lt;STRONG&gt;Wp64&lt;/STRONG&gt;' compiler option is deprecatedand Visual Studio 2008 ( Professional &amp;amp; Express Editions)displays&lt;BR /&gt;awarning message:&lt;BR /&gt; ...&lt;BR /&gt; cl : Command line warning D9035 : option 'Wp64' &lt;SPAN style="text-decoration: underline;"&gt;has been deprecated&lt;/SPAN&gt; and &lt;SPAN style="text-decoration: underline;"&gt;will be removed&lt;/SPAN&gt; in a future release&lt;BR /&gt; ...&lt;/P&gt;</description>
      <pubDate>Mon, 23 Jul 2012 04:20:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803216#M742</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-07-23T04:20:15Z</dc:date>
    </item>
    <item>
      <title>Tips for Porting software to a 64-bit platform</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803217#M743</link>
      <description>&lt;P&gt;&lt;STRONG&gt;18&lt;/STRONG&gt;. Intel 64-bit Mode Coding Guidelines&lt;/P&gt;&lt;P&gt;  &lt;STRONG&gt;Intel 64 and IA-32 Architectures Optimization Reference Manual&lt;/STRONG&gt;&lt;BR /&gt;  November 2007&lt;/P&gt;&lt;P&gt;  &lt;STRONG&gt;Chapter 9. 64-bit Mode Coding Guidelines&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;  &lt;SPAN style="text-decoration: underline;"&gt;Note&lt;/SPAN&gt;: 5 pages only&lt;/P&gt;</description>
      <pubDate>Wed, 22 Aug 2012 01:13:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803217#M743</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-08-22T01:13:35Z</dc:date>
    </item>
    <item>
      <title>Tips for Porting software to a 64-bit platform</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803218#M744</link>
      <description>&lt;STRONG&gt;17&lt;/STRONG&gt;. Issues - When porting a 32-bit project with IDL ( Interface Definition Language ) files for MIDL compiler.&lt;BR /&gt;&lt;BR /&gt; MIDL - Microsoft Interface Definition Language&lt;BR /&gt;</description>
      <pubDate>Thu, 04 Oct 2012 15:04:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803218#M744</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-10-04T15:04:08Z</dc:date>
    </item>
    <item>
      <title>19. Regarding</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803219#M745</link>
      <description>&lt;STRONG&gt;19.&lt;/STRONG&gt; Regarding /LARGEADDRESSAWARE linker option:
.
This is what MSDN says:
...
The /LARGEADDRESSAWARE option tells the linker that an application supports addresses larger than 2 gigabytes.
...
However, it doesn't mean that a 32-bit application that was built with enabled /LARGEADDRESSAWARE linker option could allocate greater than 2GB of memory. It is simply not possible on a 32-bit Windows platform without AWE and on 64-bit Windows platforms.
.
AWE - Address Windowing Extensions</description>
      <pubDate>Thu, 04 Oct 2012 15:10:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803219#M745</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-10-04T15:10:00Z</dc:date>
    </item>
    <item>
      <title>Ability to allocate beyond</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803220#M746</link>
      <description>Ability to allocate beyond the 2GB barrier in 32-bit Windows was introduced with the XP /3GB boot switch.  The space is fragmented.  After the 2GB is used up, additional non-contiguous allocations within the additional 1GB space are supported, with the additional linker switch.  
If it were not for mobile devices, one would think 32-bit Windows obsolete.</description>
      <pubDate>Thu, 04 Oct 2012 16:20:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Tips-for-Porting-software-to-a-64-bit-platform/m-p/803220#M746</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2012-10-04T16:20:00Z</dc:date>
    </item>
  </channel>
</rss>

