P
Pallav singh
Hi
are these only the changes we need to do while porting application
from 32 bit
architecture to 64 bit architecture ??
In 64 bit architecture, Address is 64 bit but integer is still 32 bit
Architecture Dependencies (64 bit vs 32 bit)
• Data Types and Sizes
• Pointers
Type casts, setting to 0, comparison, pointer
arithmetic
• Data Alignment and Padding
Member Alignment, Structure Alignment
• Bit Shifts
Result Type
• Constants
Constant values may have differ(related to
size issue)
• Library Calls and Operators
printf, scanf, malloc, calloc, sizeof, memcpy
etc
Endianism (Little Endian vs Big Endian)
• Byte Ordering
• Initializing Multiword Entities
• Unused Bytes
Bit masks etc
• Hex Constants Used as Byte Arrays
• Data Transfer Between LE and BE Systems
Other OS Dependencies
• Interprocess Communication (Blocking vs Non Blocking calls)
• Timers
• Signals
Reliable and unreliable
• Communication Stacks, subsystems
• Language Extensions
Ex: Librairies like X11, ACE etc
• Memory mapped files, asynchronous I/O, performance
constraints etc
Tools and Utilities
• Build Environment
Compiler flags, #pragma definitions, default
options etc
• Object Formats (Most systems use ELF)
Thanks
Pallav Singh
are these only the changes we need to do while porting application
from 32 bit
architecture to 64 bit architecture ??
In 64 bit architecture, Address is 64 bit but integer is still 32 bit
Architecture Dependencies (64 bit vs 32 bit)
• Data Types and Sizes
• Pointers
Type casts, setting to 0, comparison, pointer
arithmetic
• Data Alignment and Padding
Member Alignment, Structure Alignment
• Bit Shifts
Result Type
• Constants
Constant values may have differ(related to
size issue)
• Library Calls and Operators
printf, scanf, malloc, calloc, sizeof, memcpy
etc
Endianism (Little Endian vs Big Endian)
• Byte Ordering
• Initializing Multiword Entities
• Unused Bytes
Bit masks etc
• Hex Constants Used as Byte Arrays
• Data Transfer Between LE and BE Systems
Other OS Dependencies
• Interprocess Communication (Blocking vs Non Blocking calls)
• Timers
• Signals
Reliable and unreliable
• Communication Stacks, subsystems
• Language Extensions
Ex: Librairies like X11, ACE etc
• Memory mapped files, asynchronous I/O, performance
constraints etc
Tools and Utilities
• Build Environment
Compiler flags, #pragma definitions, default
options etc
• Object Formats (Most systems use ELF)
Thanks
Pallav Singh