CrossWorks for ARM
Preface
Introduction
What is CrossWorks?
What we don?t tell you
Release notes
Activating your product
Text conventions
Standard syntactic metalanguage
Requesting support and reporting problems
CrossStudio Reference
CrossStudio Tutorial
Activating CrossWorks
Managing support packages
Creating a project
Managing files in a project
Setting project options
Building projects
Exploring projects
Using the debugger
Low-level debugging
Debugging externally built applications
Overview
The title bar
The menu bar
The status bar
The editing workspace
Docking windows
Project management
Overview
Creating a project
Adding existing files to a project
Adding new files to a project
Removing a file, folder, project, or project link
Project properties
Project configurations
Project dependencies and build order
Project macros
Building projects
Source control
Breakpoint expressions
Debug expressions
Basic editing
Navigation
Bookmarks
Changing text
Using the clipboard
Drag and drop editing
Undo and redo
Indentation
File management
Find and replace
Regular expressions
Advanced editor features
Code templates
Memory map editor
Package management
Linking and section placement
CrossStudio Windows
Breakpoints window
Clipboard ring window
Call stack window
Downloads window
Execution counts window
Find and replace window
Globals window
CrossStudio Help and Assistance
Latest news window
Locals window
Memory window
Memory usage window
Output window
Package manager window
Project explorer
Properties window
Register windows
Source navigator window
Symbol browser
Targets window
Terminal emulator window
Threads window
Trace window
Watch window
Target interfaces
Macraigor Wiggler (20 and 14 pin) Target Interface
Generic FT2232 Target Interface
Amontec JTAGkey Target Interface
Olimex ARM-USB-OCD Target Interface
CrossConnect Target Interface
Segger J-Link Target Interface
ARM Simulator Target interface
ARM Target Support
Target startup code
Startup code
Memory map files
Project configurations
Target script file
TargetInterface Object
TargetInterface.beginDebugAccess
TargetInterface.delay
TargetInterface.downloadDebugHandler
TargetInterface.endDebugAccess
TargetInterface.eraseBytes
TargetInterface.error
TargetInterface.executeFunction
TargetInterface.getICEBreakerRegister
TargetInterface.getRegister
TargetInterface.idcode
TargetInterface.message
TargetInterface.peekByte
TargetInterface.peekBytes
TargetInterface.peekMultUint16
TargetInterface.peekMultUint32
TargetInterface.peekUint16
TargetInterface.peekUint32
TargetInterface.peekWord
TargetInterface.pokeByte
TargetInterface.pokeBytes
TargetInterface.pokeMultUint16
TargetInterface.pokeMultUint32
TargetInterface.pokeUint16
TargetInterface.pokeUint32
TargetInterface.pokeWord
TargetInterface.resetAndStop
TargetInterface.resetAndStopAtZero
TargetInterface.setDebugInterfaceProperty
TargetInterface.setDeviceType
TargetInterface.setICEBreakerBreakpoint
TargetInterface.setICEBreakerRegister
TargetInterface.setMaximumJTAGFrequency
TargetInterface.setNSRST
TargetInterface.setRegister
TargetInterface.stop
TargetInterface.stopAndReset
TargetInterface.trst
TargetInterface.waitForDebugState
Program loading
Dialogs
Debug file search editor
Environment Options Dialog
Building Environment Options
Debugging Environment Options
IDE Environment Options
Programming Language Environment Options
Source Control Environment Options
Text Editor Environment Options
Windows Environment Options
CrossStudio menu summary
File menu
New menu
Edit menu
Clipboard menu
Clipboard Ring menu
Macros menu
Edit Selection menu
Bookmarks menu
Advanced menu
View menu
Other Windows menu
Browser menu
Toolbars menu
Search menu
Project menu
Build menu
Debug menu
Debug Control menu
Breakpoint menu
Debug Windows menu
Tools menu
Window menu
Help menu
Tasking Library User Guide
Overview
Tasks
Event sets
Semaphores
Mutexes
Message queues
Byte queues
Global interrupts control
Timer support
Interrupt service routines
Memory areas
Task scheduling example
ARM implementation
Cortex-M3 implementation
CTL revisions
CTL sources
Library Reference
ARM Library Reference
<ctl.h> - Tasking definitions
ctl_byte_queue_init
ctl_byte_queue_num_free
ctl_byte_queue_num_used
ctl_byte_queue_post
ctl_byte_queue_post_nb
ctl_byte_queue_receive
ctl_byte_queue_receive_nb
ctl_byte_queue_post_multi
ctl_byte_queue_post_multi_nb
ctl_byte_queue_receive_multi
ctl_byte_queue_receive_multi_nb
ctl_byte_queue_setup_events
ctl_current_time
ctl_events_init
ctl_events_pulse
ctl_events_set_clear
ctl_events_wait
ctl_get_current_time
ctl_global_interrupts_disable
ctl_global_interrupts_enable
ctl_global_interrupts_set
ctl_handle_error
ctl_increment_tick_from_isr
ctl_interrupt_count
ctl_memory_area_allocate
ctl_memory_area_free
ctl_memory_area_init
ctl_memory_area_setup_events
ctl_message_queue_init
ctl_message_queue_num_free
ctl_message_queue_num_used
ctl_message_queue_post
ctl_message_queue_post_nb
ctl_message_queue_receive
ctl_message_queue_receive_nb
ctl_message_queue_post_multi
ctl_message_queue_post_multi_nb
ctl_message_queue_receive_multi
ctl_message_queue_receive_multi_nb
ctl_message_queue_setup_events
ctl_mutex_init
ctl_mutex_lock
ctl_mutex_unlock
ctl_reschedule_on_last_isr_exit
ctl_semaphore_init
ctl_semaphore_signal
ctl_semaphore_wait
ctl_task_die
ctl_task_executing
ctl_task_init
ctl_task_list
ctl_task_remove
ctl_task_replace
ctl_task_reschedule
ctl_task_run
ctl_task_set_priority
ctl_task_switch_callout
ctl_time_increment
ctl_timeout_wait
ctl_timeslice_period
<cross_studio_io.h>
debug_fopen
debug_fflush
debug_fclose
debug_fprintf
debug_printf
debug_fscanf
debug_scanf
debug_getchar
debug_gets
debug_geti
debug_getu
debug_getl
debug_getul
debug_getf
debug_getd
debug_getll
debug_getull
debug_fgetc
debug_fgets
debug_fputc
debug_fputs
debug_putchar
debug_puts
debug_fread
debug_fwrite
debug_fseek
debug_ftell
debug_rewind
debug_filesize
debug_clearerr
debug_feof
debug_ferror
debug_kbhit
debug_getch
debug_runtime_error
debug_break
debug_exit
debug_time
debug_fprintf_c
debug_printf_c
debug_fscanf_c
debug_scanf_c
debug_vfprintf
debug_vprintf
debug_vfscanf
debug_vscanf
debug_ungetc
debug_fgetpos
debug_fsetpos
debug_freopen
debug_perror
debug_remove
debug_rename
debug_tmpfile
debug_tmpnam
debug_getenv
debug_system
debug_getargs
debug_loadsymbols
debug_unloadsymbols
debug_enabled
<libarm.h> - ARM specific library
libarm.h File Reference
libarm_dcc_read
libarm_dcc_write
libarm_disable_irq
libarm_disable_irq_fiq
libarm_disable_fiq
libarm_enable_irq
libarm_enable_irq_fiq
libarm_enable_fiq
libarm_get_cpsr
libarm_isr_disable_irq
libarm_isr_enable_irq
libarm_mmu_flat_initialise_level_1_table
libarm_mmu_flat_initialise_level_2_small_page_table
libarm_mmu_flat_set_level_1_cacheable_region
libarm_mmu_flat_set_level_2_small_page_cacheable_region
libarm_restore_irq_fiq
libarm_run_dcc_port_server
libarm_set_cpsr
libarm_set_fiq
libarm_set_irq
<libmem.h> - Memory Programming library
libmem.h File Reference
Using LIBMEM
Light version of LIBMEM
Writing LIBMEM drivers
Data Structures
LIBMEM_ADDRESS_IN_RANGE
LIBMEM_ADDRESS_IS_ALIGNED
LIBMEM_ALIGNED_ADDRESS
LIBMEM_CFI_CMDSET_AMD_EXTENDED
LIBMEM_CFI_CMDSET_AMD_STANDARD
LIBMEM_CFI_CMDSET_INTEL_EXTENDED
LIBMEM_CFI_CMDSET_INTEL_STANDARD
LIBMEM_CFI_CMDSET_MITSUBISHI_EXTENDED
LIBMEM_CFI_CMDSET_MITSUBISHI_STANDARD
LIBMEM_CFI_CMDSET_NONE
LIBMEM_CFI_CMDSET_RESERVED
LIBMEM_CFI_CMDSET_SST_PAGE_WRITE
LIBMEM_CFI_CMDSET_WINBOND_STANDARD
LIBMEM_INLINE
LIBMEM_KB
LIBMEM_MB
LIBMEM_RANGE_OCCLUDES_RANGE
LIBMEM_RANGE_OVERLAPS_RANGE
LIBMEM_RANGE_WITHIN_RANGE
LIBMEM_STATUS_CFI_ERROR
LIBMEM_STATUS_ERROR
LIBMEM_STATUS_GEOMETRY_REGION_OVERFLOW
LIBMEM_STATUS_INVALID_DEVICE
LIBMEM_STATUS_INVALID_PARAMETER
LIBMEM_STATUS_INVALID_RANGE
LIBMEM_STATUS_INVALID_WIDTH
LIBMEM_STATUS_LOCKED
LIBMEM_STATUS_NOT_IMPLEMENTED
LIBMEM_STATUS_NO_DRIVER
LIBMEM_STATUS_SUCCESS
LIBMEM_STATUS_TIMEOUT
LIBMEM_VERSION_NUMBER
_libmem_driver_functions_t Struct Reference
_libmem_driver_functions_t::erase
_libmem_driver_functions_t::fill
_libmem_driver_functions_t::flush
_libmem_driver_functions_t::lock
_libmem_driver_functions_t::unlock
_libmem_driver_functions_t::write
_libmem_driver_handle_t Struct Reference
_libmem_driver_handle_t::driver_data
_libmem_driver_handle_t::driver_functions
_libmem_driver_handle_t::ext_driver_functions
_libmem_driver_handle_t::flash_info
_libmem_driver_handle_t::geometry
_libmem_driver_handle_t::next
_libmem_driver_handle_t::size
_libmem_driver_handle_t::start
_libmem_driver_handle_t::user_data
_libmem_ext_driver_functions_t Struct Reference
_libmem_ext_driver_functions_t::crc32
_libmem_ext_driver_functions_t::inrange
_libmem_ext_driver_functions_t::read
_libmem_flash_info_t Struct Reference
_libmem_flash_info_t::erase_chip_timeout_ticks
_libmem_flash_info_t::erase_sector_timeout_ticks
_libmem_flash_info_t::max_multi_program_bytes
_libmem_flash_info_t::multi_write_timeout_ticks
_libmem_flash_info_t::pairing
_libmem_flash_info_t::primary_cmdset
_libmem_flash_info_t::width
_libmem_flash_info_t::write_timeout_ticks
_libmem_geometry_t Struct Reference
_libmem_geometry_t::count
_libmem_geometry_t::size
_libmem_sector_info_t Struct Reference
_libmem_sector_info_t::number
_libmem_sector_info_t::size
_libmem_sector_info_t::start
libmem_busy_handler_fn
libmem_busy_handler_fn_t
libmem_cfi_get_info
libmem_crc32
libmem_crc32_direct
libmem_driver_crc32_fn_t
libmem_driver_erase_fn_t
libmem_driver_fill_fn_t
libmem_driver_flush_fn_t
libmem_driver_functions_t
libmem_driver_handle_t
libmem_driver_inrange_fn_t
libmem_driver_lock_fn_t
libmem_driver_read_fn_t
libmem_driver_unlock_fn_t
libmem_driver_write_fn_t
libmem_drivers
libmem_enable_timeouts
libmem_erase
libmem_erase_all
libmem_ext_driver_functions_t
libmem_fill
libmem_flash_info_t
libmem_flush
libmem_foreach_driver
libmem_foreach_driver_fn_t
libmem_foreach_sector
libmem_foreach_sector_fn_t
libmem_foreach_sector_in_range
libmem_geometry_t
libmem_get_driver
libmem_get_driver_sector_size
libmem_get_geometry_size
libmem_get_number_of_regions
libmem_get_number_of_sectors
libmem_get_sector_info
libmem_get_sector_number
libmem_get_sector_size
libmem_get_ticks
libmem_get_ticks_fn
libmem_get_ticks_fn_t
libmem_lock
libmem_lock_all
libmem_read
libmem_register_am29f200b_driver
libmem_register_am29f200t_driver
libmem_register_am29f400bb_driver
libmem_register_am29f400bt_driver
libmem_register_am29fxxx_driver
libmem_register_am29lv010b_driver
libmem_register_cfi_0001_16_driver
libmem_register_cfi_0001_8_driver
libmem_register_cfi_0002_16_driver
libmem_register_cfi_0002_8_driver
libmem_register_cfi_0003_16_driver
libmem_register_cfi_0003_8_driver
libmem_register_cfi_amd_driver
libmem_register_cfi_driver
libmem_register_cfi_intel_driver
libmem_register_driver
libmem_register_ram_driver
libmem_register_sst39xFx00A_16_driver
libmem_register_st_m28w320cb_driver
libmem_register_st_m28w320ct_driver
libmem_sector_info_t
libmem_set_busy_handler
libmem_ticks_per_second
libmem_unlock
libmem_unlock_all
libmem_write
<libmem_loader.h> - Loader functions
libmem_loader.h File Reference
libmem_rpc_loader_start
libmem_rpc_loader_exit
libmem_dcc_rpc_loader_start
libmem_dcc_rpc_loader_exit
libmem_dcc_loader_start
libmem_dcc_loader_set_param_fn_t
LIBMEM_RPC_LOADER_MAGIC_NUMBER
LIBMEM_RPC_LOADER_FLAG_PARAM
LIBMEM_RPC_LOADER_FLAG_PRESERVE_STATE
Standard C Library Reference
<assert.h> - Diagnostics
assert
<ctype.h> - Character handling
isalnum
isalpha
isblank
iscntrl
isdigit
isgraph
isupper
isprint
ispunct
isspace
isupper
isxdigit
tolower
toupper
<errno.h> - Errors
errno
<float.h> - Float numerical limits
<limits.h> - Integer numerical limits
CHAR_BIT
CHAR_MIN
CHAR_MAX
INT_MIN
INT_MAX
LLONG_MIN
LLONG_MAX
LONG_MIN
LONG_MAX
SCHAR_MIN
SCHAR_MAX
SHRT_MIN
SHRT_MAX
UCHAR_MAX
UINT_MAX
ULLONG_MAX
ULONG_MAX
USHRT_MAX
<locale.h> - C localization
<math.h> - Mathematics
acos
acosf
acosh
acoshf
asin
asinf
asinh
asinhf
atan
atan2
atan2f
atanf
atanh
atanhf
cbrt
cbrtf
ceil
ceilf
cos
cosf
cosh
coshf
exp
expf
fabs
fabsf
floor
floorf
fmax
fmaxf
fmin
fminf
fmod
fmodf
frexp
frexpf
hypot
hypotf
isfinite
isinf
isnan
ldexp
ldexpf
log
log10
log10f
logf
modf
modff
pow
powf
scalbn
scalbnf
sin
sinf
sinh
sinhf
sqrt
sqrtf
tan
tanf
tanh
tanhf
<setjmp.h> - Non-local jumps
jmp_buf
longjmp
setjmp
<stdarg.h> - Variable arguments
va_arg
va_copy
va_end
va_start
<stdio.h> - Input/output functions
Formatted output control strings
Formatted input control strings
getchar
gets
printf
putchar
puts
scanf
snprintf
sprintf
sscanf
vprintf
vscanf
vsnprintf
vsprintf
vsscanf
<stdlib.h> - General utilities
atexit
atof
atoi
atol
atoll
bsearch
calloc
div
div_t
exit
free
itoa
ldiv
ldiv_t
lldiv
lldiv_t
lltoa
ltoa
malloc
qsort
rand
RAND_MAX
realloc
srand
strtol
strtof
strtol
strtoll
strtoul
strtoull
ultoa
ultoa
utoa
<string.h> - String handling
memchr
memcmp
memcpy
memmove
memset
strcat
strchr
strcmp
strcoll
strcpy
strcspn
strerror
strlen
strncat
strncmp
strncpy
strpbrk
strrchr
strspn
strstr
strtok
<time.h> - C Time
asctime and asctime_r
ctime and ctime_r
difftime
gmtime and gmtime_r
localtime and localtime_r
mktime
strftime
struct tm
time_t
Standard C++ Library Reference
<new> - memory allocation
operator delete
operator new
set_new_handler
Command Line Tools
CrossBuild
CrossLoad
Command Line Debugging
mkhdr - C/C++ header file generator
mkpkg - package creator
GNU C/C++ Compiler
Introduction
1 Programming Languages Supported by GCC
2 Language Standards Supported by GCC
2.1 C language
2.2 C++ language
2.3 Objective-C and Objective-C++ languages
3 GCC Command Options
3.1 Option Summary
3.2 Options Controlling the Kind of Output
3.3 Compiling C++ Programs
3.4 Options Controlling C Dialect
3.5 Options Controlling C++ Dialect
3.6 Options Controlling Objective-C and Objective-C++ Dialects
3.7 Options to Control Diagnostic Messages Formatting
3.8 Options to Request or Suppress Warnings
3.9 Options for Debugging Your Program or GCC
3.10 Options That Control Optimization
3.11 Options Controlling the Preprocessor
3.12 Passing Options to the Assembler
3.13 Options for Linking
3.14 Options for Directory Search
3.15 Specifying subprocesses and the switches to pass to them
3.16 Specifying Target Machine and Compiler Version
3.17 Hardware Models and Configurations
3.17.1 ARC Options
3.17.2 ARM Options
3.17.3 AVR Options
3.17.4 Blackfin Options
3.17.5 CRIS Options
3.17.6 CRX Options
3.17.7 Darwin Options
3.17.8 DEC Alpha Options
3.17.9 DEC Alpha/VMS Options
3.17.10 FR30 Options
3.17.11 FRV Options
3.17.12 GNU/Linux Options
3.17.13 H8/300 Options
3.17.14 HPPA Options
3.17.15 Intel 386 and AMD x86-64 Options
3.17.16 IA-64 Options
3.17.17 M32C Options
3.17.18 M32R/D Options
3.17.19 M680x0 Options
3.17.20 M68hc1x Options
3.17.21 MCore Options
3.17.22 MIPS Options
3.17.23 MMIX Options
3.17.24 MN10300 Options
3.17.25 PDP-11 Options
3.17.26 picoChip Options
3.17.27 PowerPC Options
3.17.28 IBM RS/6000 and PowerPC Options
3.17.29 S/390 and zSeries Options
3.17.30 Score Options
3.17.31 SH Options
3.17.32 SPARC Options
3.17.33 SPU Options
3.17.34 Options for System V
3.17.35 V850 Options
3.17.36 VAX Options
3.17.37 VxWorks Options
3.17.38 x86-64 Options
3.17.39 i386 and x86-64 Windows Options
3.17.40 Xstormy16 Options
3.17.41 Xtensa Options
3.17.42 zSeries Options
3.18 Options for Code Generation Conventions
3.19 Environment Variables Affecting GCC
3.20 Using Precompiled Headers
3.21 Running Protoize
4 C Implementation-defined behavior
4.1 Translation
4.2 Environment
4.3 Identifiers
4.4 Characters
4.5 Integers
4.6 Floating point
4.7 Arrays and pointers
4.8 Hints
4.9 Structures, unions, enumerations, and bit-fields
4.10 Qualifiers
4.11 Declarators
4.12 Statements
4.13 Preprocessing directives
4.14 Library functions
4.15 Architecture
4.16 Locale-specific behavior
5 Extensions to the C Language Family
5.1 Statements and Declarations in Expressions
5.2 Locally Declared Labels
5.3 Labels as Values
5.4 Nested Functions
5.5 Constructing Function Calls
5.6 Referring to a Type with typeof
5.7 Conditionals with Omitted Operands
5.8 Double-Word Integers
5.9 Complex Numbers
5.10 Additional Floating Types
5.11 Decimal Floating Types
5.12 Hex Floats
5.13 Fixed-Point Types
5.14 Arrays of Length Zero
5.15 Structures With No Members
5.16 Arrays of Variable Length
5.17 Macros with a Variable Number of Arguments.
5.18 Slightly Looser Rules for Escaped Newlines
5.19 Non-Lvalue Arrays May Have Subscripts
5.20 Arithmetic on void- and Function-Pointers
5.21 Non-Constant Initializers
5.22 Compound Literals
5.23 Designated Initializers
5.24 Case Ranges
5.25 Cast to a Union Type
5.26 Mixed Declarations and Code
5.27 Declaring Attributes of Functions
5.28 Attribute Syntax
5.29 Prototypes and Old-Style Function Definitions
5.30 C++ Style Comments
5.31 Dollar Signs in Identifier Names
5.32 The Character <ESC> in Constants
5.33 Inquiring on Alignment of Types or Variables
5.34 Specifying Attributes of Variables
5.34.1 Blackfin Variable Attributes
5.34.2 M32R/D Variable Attributes
5.34.3 i386 Variable Attributes
5.34.4 PowerPC Variable Attributes
5.34.5 SPU Variable Attributes
5.34.6 Xstormy16 Variable Attributes
5.34.7 AVR Variable Attributes
5.35 Specifying Attributes of Types
5.35.1 ARM Type Attributes
5.35.2 i386 Type Attributes
5.35.3 PowerPC Type Attributes
5.35.4 SPU Type Attributes
5.36 An Inline Function is As Fast As a Macro
5.37 Assembler Instructions with C Expression Operands
5.37.1 Size of an asm
5.37.2 i386 floating point asm operands
5.38 Constraints for asm Operands
5.38.1 Simple Constraints
5.38.2 Multiple Alternative Constraints
5.38.3 Constraint Modifier Characters
5.38.4 Constraints for Particular Machines
5.39 Controlling Names Used in Assembler Code
5.40 Variables in Specified Registers
5.40.1 Defining Global Register Variables
5.40.2 Specifying Registers for Local Variables
5.41 Alternate Keywords
5.42 Incomplete enum Types
5.43 Function Names as Strings
5.44 Getting the Return or Frame Address of a Function
5.45 Using vector instructions through built-in functions
5.46 Offsetof
5.47 Built-in functions for atomic memory access
5.48 Object Size Checking Builtins
5.49 Other built-in functions provided by GCC
5.50 Built-in Functions Specific to Particular Target Machines
5.50.1 Alpha Built-in Functions
5.50.2 ARM iWMMXt Built-in Functions
5.50.3 ARM NEON Intrinsics
5.50.3.1 Addition
5.50.3.2 Multiplication
5.50.3.3 Multiply-accumulate
5.50.3.4 Multiply-subtract
5.50.3.5 Subtraction
5.50.3.6 Comparison (equal-to)
5.50.3.7 Comparison (greater-than-or-equal-to)
5.50.3.8 Comparison (less-than-or-equal-to)
5.50.3.9 Comparison (greater-than)
5.50.3.10 Comparison (less-than)
5.50.3.11 Comparison (absolute greater-than-or-equal-to)
5.50.3.12 Comparison (absolute less-than-or-equal-to)
5.50.3.13 Comparison (absolute greater-than)
5.50.3.14 Comparison (absolute less-than)
5.50.3.15 Test bits
5.50.3.16 Absolute difference
5.50.3.17 Absolute difference and accumulate
5.50.3.18 Maximum
5.50.3.19 Minimum
5.50.3.20 Pairwise add
5.50.3.21 Pairwise add, single_opcode widen and accumulate
5.50.3.22 Folding maximum
5.50.3.23 Folding minimum
5.50.3.24 Reciprocal step
5.50.3.25 Vector shift left
5.50.3.26 Vector shift left by constant
5.50.3.27 Vector shift right by constant
5.50.3.28 Vector shift right by constant and accumulate
5.50.3.29 Vector shift right and insert
5.50.3.30 Vector shift left and insert
5.50.3.31 Absolute value
5.50.3.32 Negation
5.50.3.33 Bitwise not
5.50.3.34 Count leading sign bits
5.50.3.35 Count leading zeros
5.50.3.36 Count number of set bits
5.50.3.37 Reciprocal estimate
5.50.3.38 Reciprocal square-root estimate
5.50.3.39 Get lanes from a vector
5.50.3.40 Set lanes in a vector
5.50.3.41 Create vector from literal bit pattern
5.50.3.42 Set all lanes to the same value
5.50.3.43 Combining vectors
5.50.3.44 Splitting vectors
5.50.3.45 Conversions
5.50.3.46 Move, single_opcode narrowing
5.50.3.47 Move, single_opcode long
5.50.3.48 Table lookup
5.50.3.49 Extended table lookup
5.50.3.50 Multiply, lane
5.50.3.51 Long multiply, lane
5.50.3.52 Saturating doubling long multiply, lane
5.50.3.53 Saturating doubling multiply high, lane
5.50.3.54 Multiply-accumulate, lane
5.50.3.55 Multiply-subtract, lane
5.50.3.56 Vector multiply by scalar
5.50.3.57 Vector long multiply by scalar
5.50.3.58 Vector saturating doubling long multiply by scalar
5.50.3.59 Vector saturating doubling multiply high by scalar
5.50.3.60 Vector multiply-accumulate by scalar
5.50.3.61 Vector multiply-subtract by scalar
5.50.3.62 Vector extract
5.50.3.63 Reverse elements
5.50.3.64 Bit selection
5.50.3.65 Transpose elements
5.50.3.66 Zip elements
5.50.3.67 Unzip elements
5.50.3.68 Element/structure loads, VLD1 variants
5.50.3.69 Element/structure stores, VST1 variants
5.50.3.70 Element/structure loads, VLD2 variants
5.50.3.71 Element/structure stores, VST2 variants
5.50.3.72 Element/structure loads, VLD3 variants
5.50.3.73 Element/structure stores, VST3 variants
5.50.3.74 Element/structure loads, VLD4 variants
5.50.3.75 Element/structure stores, VST4 variants
5.50.3.76 Logical operations (AND)
5.50.3.77 Logical operations (OR)
5.50.3.78 Logical operations (exclusive OR)
5.50.3.79 Logical operations (AND-NOT)
5.50.3.80 Logical operations (OR-NOT)
5.50.3.81 Reinterpret casts
5.50.4 Blackfin Built-in Functions
5.50.5 FR-V Built-in Functions
5.50.5.1 Argument Types
5.50.5.2 Directly-mapped Integer Functions
5.50.5.3 Directly-mapped Media Functions
5.50.5.4 Raw read/write Functions
5.50.5.5 Other Built-in Functions
5.50.6 X86 Built-in Functions
5.50.7 MIPS DSP Built-in Functions
5.50.8 MIPS Paired-Single Support
5.50.9 MIPS Loongson Built-in Functions
5.50.9.1 Paired-Single Arithmetic
5.50.9.2 Paired-Single Built-in Functions
5.50.9.3 MIPS-3D Built-in Functions
5.50.10 picoChip Built-in Functions
5.50.11 Other MIPS Built-in Functions
5.50.12 PowerPC AltiVec Built-in Functions
5.50.13 SPARC VIS Built-in Functions
5.50.14 SPU Built-in Functions
5.51 Format Checks Specific to Particular Target Machines
5.51.1 Solaris Format Checks
5.52 Pragmas Accepted by GCC
5.52.1 ARM Pragmas
5.52.2 M32C Pragmas
5.52.3 RS/6000 and PowerPC Pragmas
5.52.4 Darwin Pragmas
5.52.5 Solaris Pragmas
5.52.6 Symbol-Renaming Pragmas
5.52.7 Structure-Packing Pragmas
5.52.8 Weak Pragmas
5.52.9 Diagnostic Pragmas
5.52.10 Visibility Pragmas
5.52.11 Push/Pop Macro Pragmas
5.52.12 Function Specific Option Pragmas
5.53 Unnamed struct/union fields within structs/unions
5.54 Thread-Local Storage
5.54.1 ISO/IEC 9899:1999 Edits for Thread-Local Storage
5.54.2 ISO/IEC 14882:1998 Edits for Thread-Local Storage
5.55 Binary constants using the `0b' prefix
6 Extensions to the C++ Language
6.1 When is a Volatile Object Accessed?
6.2 Restricting Pointer Aliasing
6.3 Vague Linkage
6.4 #pragma interface and implementation
6.5 Where's the Template?
6.6 Extracting the function pointer from a bound pointer to member function
6.7 C++-Specific Variable, Function, and Type Attributes
6.8 Namespace Association
6.9 Type Traits
6.10 Java Exceptions
6.11 Deprecated Features
6.12 Backwards Compatibility
7 GNU Objective-C runtime features
7.1 +load: Executing code before main
7.1.1 What you can and what you cannot do in +load
7.2 Type encoding
7.3 Garbage Collection
7.4 Constant string objects
7.5 compatibility_alias
8 Binary Compatibility
9 gcova Test Coverage Program
9.1 Introduction to gcov
9.2 Invoking gcov
9.3 Using gcov with GCC Optimization
9.4 Brief description of gcov data files
9.5 Data file relocation to support cross-profiling
10 Known Causes of Trouble with GCC
10.1 Actual Bugs We Haven't Fixed Yet
10.2 Cross-Compiler Problems
10.3 Interoperation
10.4 Incompatibilities of GCC
10.5 Fixed Header Files
10.6 Standard Libraries
10.7 Disappointments and Misunderstandings
10.8 Common Misunderstandings with GNU C++
10.8.1 Declare and Define Static Members
10.8.2 Name lookup, templates, and accessing members of base classes
10.8.3 Temporaries May Vanish Before You Expect
10.8.4 Implicit Copy-Assignment for Virtual Bases
10.9 Caveats of using protoize
10.10 Certain Changes We Don't Want to Make
10.11 Warning Messages and Error Messages
11 Reporting Bugs
11.1 Have You Found a Bug?
11.2 How and where to Report Bugs
12 How To Get Help with GCC
13 Contributing to GCC Development
Funding Free Software
The GNU Project and GNU/Linux
GNU General Public License
GNU Free Documentation License
ADDENDUM: How to use this License for your documents
Contributors to GCC
Option Index
Keyword Index
GNU C Preprocessor
The C Preprocessor
1 Overview
1.1 Character sets
1.2 Initial processing
1.3 Tokenization
1.4 The preprocessing language
2 Header Files
2.1 Include Syntax
2.2 Include Operation
2.3 Search Path
2.4 Once-Only Headers
2.5 Alternatives to Wrapper #ifndef
2.6 Computed Includes
2.7 Wrapper Headers
2.8 System Headers
3 Macros
3.1 Object-like Macros
3.2 Function-like Macros
3.3 Macro Arguments
3.4 Stringification
3.5 Concatenation
3.6 Variadic Macros
3.7 Predefined Macros
3.7.1 Standard Predefined Macros
3.7.2 Common Predefined Macros
3.7.3 System-specific Predefined Macros
3.7.4 C++ Named Operators
3.8 Undefining and Redefining Macros
3.9 Directives Within Macro Arguments
3.10 Macro Pitfalls
3.10.1 Misnesting
3.10.2 Operator Precedence Problems
3.10.3 Swallowing the Semicolon
3.10.4 Duplication of Side Effects
3.10.5 Self-Referential Macros
3.10.6 Argument Prescan
3.10.7 Newlines in Arguments
4 Conditionals
4.1 Conditional Uses
4.2 Conditional Syntax
4.2.1 Ifdef
4.2.2 If
4.2.3 Defined
4.2.4 Else
4.2.5 Elif
4.3 Deleted Code
5 Diagnostics
6 Line Control
7 Pragmas
8 Other Directives
9 Preprocessor Output
10 Traditional Mode
10.1 Traditional lexical analysis
10.2 Traditional macros
10.3 Traditional miscellany
10.4 Traditional warnings
11 Implementation Details
11.1 Implementation-defined behavior
11.2 Implementation limits
11.3 Obsolete Features
11.3.1 Assertions
11.4 Differences from previous versions
12 Invocation
13 Environment Variables
GNU Free Documentation License
ADDENDUM: How to use this License for your documents
Index of Directives
Option Index
Concept Index
GNU Assember
Using as
1 Overview
1.1 Structure of this Manual
1.2 The GNU Assembler
1.3 Object File Formats
1.4 Command Line
1.5 Input Files
1.6 Output (Object) File
1.7 Error and Warning Messages
2 Command-Line Options
2.1 Enable Listings: -a[cdghlns]
2.2 --alternate
2.3 -D
2.4 Work Faster: -f
2.5 .include Search Path: -I path
2.6 Difference Tables: -K
2.7 Include Local Symbols: -L
2.8 Configuring listing output: --listing
2.9 Assemble in MRI Compatibility Mode: -M
2.10 Dependency Tracking: --MD
2.11 Name the Object File: -o
2.12 Join Data and Text Sections: -R
2.13 Display Assembly Statistics: --statistics
2.14 Compatible Output: --traditional-format
2.15 Announce Version: -v
2.16 Control Warnings: -W, --warn, --no-warn, --fatal-warnings
2.17 Generate Object File in Spite of Errors: -Z
3 Syntax
3.1 Preprocessing
3.2 Whitespace
3.3 Comments
3.4 Symbols
3.5 Statements
3.6 Constants
3.6.1 Character Constants
3.6.1.1 Strings
3.6.1.2 Characters
3.6.2 Number Constants
3.6.2.1 Integers
3.6.2.2 Bignums
3.6.2.3 Flonums
4 Sections and Relocation
4.1 Background
4.2 Linker Sections
4.3 Assembler Internal Sections
4.4 Sub-Sections
4.5 bss Section
5 Symbols
5.1 Labels
5.2 Giving Symbols Other Values
5.3 Symbol Names
5.4 The Special Dot Symbol
5.5 Symbol Attributes
5.5.1 Value
5.5.2 Type
5.5.3 Symbol Attributes: a.out
5.5.3.1 Descriptor
5.5.3.2 Other
5.5.4 Symbol Attributes for COFF
5.5.4.1 Primary Attributes
5.5.4.2 Auxiliary Attributes
5.5.5 Symbol Attributes for SOM
6 Expressions
6.1 Empty Expressions
6.2 Integer Expressions
6.2.1 Arguments
6.2.2 Operators
6.2.3 Prefix Operator
6.2.4 Infix Operators
7 Assembler Directives
7.1 .abort
7.2 .ABORT (COFF)
7.3 .align abs-expr, abs-expr, abs-expr
7.4 .altmacro
7.5 .ascii "string"...
7.6 .asciz "string"...
7.7 .balign[wl] abs-expr, abs-expr, abs-expr
7.8 .byte expressions
7.9 .cfi_startproc [simple]
7.10 .cfi_sections section_list
7.11 .cfi_endproc
7.12 .cfi_personality encoding [, exp]
7.13 .cfi_lsda encoding [, exp]
7.14 .cfi_def_cfa register, offset
7.15 .cfi_def_cfa_register register
7.16 .cfi_def_cfa_offset offset
7.17 .cfi_adjust_cfa_offset offset
7.18 .cfi_offset register, offset
7.19 .cfi_rel_offset register, offset
7.20 .cfi_register register1, register2
7.21 .cfi_restore register
7.22 .cfi_undefined register
7.23 .cfi_same_value register
7.24 .cfi_remember_state,
7.25 .cfi_return_column register
7.26 .cfi_signal_frame
7.27 .cfi_window_save
7.28 .cfi_escape expression[, ...]
7.29 .cfi_val_encoded_addr register, encoding, label
7.30 .comm symbol , length
7.31 .data subsection
7.32 .def name
7.33 .desc symbol, abs-expression
7.34 .dim
7.35 .double flonums
7.36 .eject
7.37 .else
7.38 .elseif
7.39 .end
7.40 .endef
7.41 .endfunc
7.42 .endif
7.43 .equ symbol, expression
7.44 .equiv symbol, expression
7.45 .eqv symbol, expression
7.46 .err
7.47 .error "string"
7.48 .exitm
7.49 .extern
7.50 .fail expression
7.51 .file
7.52 .fill repeat , size , value
7.53 .float flonums
7.54 .func name[,label]
7.55 .global symbol, .globl symbol
7.56 .gnu_attribute tag,value
7.57 .hidden names
7.58 .hword expressions
7.59 .ident
7.60 .if absolute expression
7.61 .incbin "file"[,skip[,count]]
7.62 .include "file"
7.63 .int expressions
7.64 .internal names
7.65 .irp symbol,values...
7.66 .irpc symbol,values...
7.67 .lcomm symbol , length
7.68 .lflags
7.69 .line line-number
7.70 .linkonce [type]
7.71 .list
7.72 .ln line-number
7.73 .loc fileno lineno [column] [options]
7.74 .loc_mark_labels enable
7.75 .local names
7.76 .long expressions
7.77 .macro
7.78 .mri val
7.79 .noaltmacro
7.80 .nolist
7.81 .octa bignums
7.82 .org new-lc , fill
7.83 .p2align[wl] abs-expr, abs-expr, abs-expr
7.84 .popsection
7.85 .previous
7.86 .print string
7.87 .protected names
7.88 .psize lines , columns
7.89 .purgem name
7.90 .pushsection name [, subsection] [, "flags"[, @type[,arguments]]]
7.91 .quad bignums
7.92 .reloc offset, reloc_name[, expression]
7.93 .rept count
7.94 .sbttl "subheading"
7.95 .scl class
7.96 .section name
7.97 .set symbol, expression
7.98 .short expressions
7.99 .single flonums
7.100 .size
7.101 .skip size , fill
7.102 .sleb128 expressions
7.103 .space size , fill
7.104 .stabd, .stabn, .stabs
7.105 .string "str", .string8 "str", .string16
7.106 .struct expression
7.107 .subsection name
7.108 .symver
7.109 .tag structname
7.110 .text subsection
7.111 .title "heading"
7.112 .type
7.113 .uleb128 expressions
7.114 .val addr
7.115 .version "string"
7.116 .vtable_entry table, offset
7.117 .vtable_inherit child, parent
7.118 .warning "string"
7.119 .weak names
7.120 .weakref alias, target
7.121 .word expressions
7.122 Deprecated Directives
8 Object Attributes
8.1 gnu Object Attributes
8.1.1 Common gnu attributes
8.1.2 MIPS Attributes
8.1.3 PowerPC Attributes
8.2 Defining New Object Attributes
9 Machine Dependent Features
9.1 Alpha Dependent Features
9.1.1 Notes
9.1.2 Options
9.1.3 Syntax
9.1.3.1 Special Characters
9.1.3.2 Register Names
9.1.3.3 Relocations
9.1.4 Floating Point
9.1.5 Alpha Assembler Directives
9.1.6 Opcodes
9.2 ARC Dependent Features
9.2.1 Options
9.2.2 Syntax
9.2.2.1 Special Characters
9.2.2.2 Register Names
9.2.3 Floating Point
9.2.4 ARC Machine Directives
9.2.5 Opcodes
9.3 ARM Dependent Features
9.3.1 Options
9.3.2 Syntax
9.3.2.1 Instruction Set Syntax
9.3.2.2 Special Characters
9.3.2.3 Register Names
9.3.3 Floating Point
9.3.3.1 ARM relocation generation
9.3.4 ARM Machine Directives
9.3.5 Opcodes
9.3.6 Mapping Symbols
9.3.7 Unwinding
9.4 AVR Dependent Features
9.4.1 Options
9.4.2 Syntax
9.4.2.1 Special Characters
9.4.2.2 Register Names
9.4.2.3 Relocatable Expression Modifiers
9.4.3 Opcodes
9.5 Blackfin Dependent Features
9.5.1 Options
9.5.2 Syntax
9.5.3 Directives
9.6 CR16 Dependent Features
9.6.1 CR16 Operand Qualifiers
9.7 CRIS Dependent Features
9.7.1 Command-line Options
9.7.2 Instruction expansion
9.7.3 Symbols
9.7.4 Syntax
9.7.4.1 Special Characters
9.7.4.2 Symbols in position-independent code
9.7.4.3 Register names
9.7.4.4 Assembler Directives
9.8 D10V Dependent Features
9.8.1 D10V Options
9.8.2 Syntax
9.8.2.1 Size Modifiers
9.8.2.2 Sub-Instructions
9.8.2.3 Special Characters
9.8.2.4 Register Names
9.8.2.5 Addressing Modes
9.8.2.6 @WORD Modifier
9.8.3 Floating Point
9.8.4 Opcodes
9.9 D30V Dependent Features
9.9.1 D30V Options
9.9.2 Syntax
9.9.2.1 Size Modifiers
9.9.2.2 Sub-Instructions
9.9.2.3 Special Characters
9.9.2.4 Guarded Execution
9.9.2.5 Register Names
9.9.2.6 Addressing Modes
9.9.3 Floating Point
9.9.4 Opcodes
9.10 H8/300 Dependent Features
9.10.1 Options
9.10.2 Syntax
9.10.2.1 Special Characters
9.10.2.2 Register Names
9.10.2.3 Addressing Modes
9.10.3 Floating Point
9.10.4 H8/300 Machine Directives
9.10.5 Opcodes
9.11 HPPA Dependent Features
9.11.1 Notes
9.11.2 Options
9.11.3 Syntax
9.11.4 Floating Point
9.11.5 HPPA Assembler Directives
9.11.6 Opcodes
9.12 ESA/390 Dependent Features
9.12.1 Notes
9.12.2 Options
9.12.3 Syntax
9.12.4 Floating Point
9.12.5 ESA/390 Assembler Directives
9.12.6 Opcodes
9.13 80386 Dependent Features
9.13.1 Options
9.13.2 x86 specific Directives
9.13.3 AT&T Syntax versus Intel Syntax
9.13.4 Instruction Naming
9.13.5 AT&T Mnemonic versus Intel Mnemonic
9.13.6 Register Naming
9.13.7 Instruction Prefixes
9.13.8 Memory References
9.13.9 Handling of Jump Instructions
9.13.10 Floating Point
9.13.11 Intel's MMX and AMD's 3DNow! SIMD Operations
9.13.12 Writing 16-bit Code
9.13.13 AT&T Syntax bugs
9.13.14 Specifying CPU Architecture
9.13.15 Notes
9.14 Intel i860 Dependent Features
9.14.1 i860 Notes
9.14.2 i860 Command-line Options
9.14.2.1 SVR4 compatibility options
9.14.2.2 Other options
9.14.3 i860 Machine Directives
9.14.4 i860 Opcodes
9.14.4.1 Other instruction support (pseudo-instructions)
9.15 Intel 80960 Dependent Features
9.15.1 i960 Command-line Options
9.15.2 Floating Point
9.15.3 i960 Machine Directives
9.15.4 i960 Opcodes
9.15.4.1 callj
9.15.4.2 Compare-and-Branch
9.16 IA-64 Dependent Features
9.16.1 Options
9.16.2 Syntax
9.16.2.1 Special Characters
9.16.2.2 Register Names
9.16.2.3 IA-64 Processor-Status-Register (PSR) Bit Names
9.16.3 Opcodes
9.17 IP2K Dependent Features
9.17.1 IP2K Options
9.18 LM32 Dependent Features
9.18.1 Options
9.18.2 Syntax
9.18.2.1 Register Names
9.18.2.2 Relocatable Expression Modifiers
9.18.3 Opcodes
9.19 M32C Dependent Features
9.19.1 M32C Options
9.19.2 Symbolic Operand Modifiers
9.20 M32R Dependent Features
9.20.1 M32R Options
9.20.2 M32R Directives
9.20.3 M32R Warnings
9.21 M680x0 Dependent Features
9.21.1 M680x0 Options
9.21.2 Syntax
9.21.3 Motorola Syntax
9.21.4 Floating Point
9.21.5 680x0 Machine Directives
9.21.6 Opcodes
9.21.6.1 Branch Improvement
9.21.6.2 Special Characters
9.22 M68HC11 and M68HC12 Dependent Features
9.22.1 M68HC11 and M68HC12 Options
9.22.2 Syntax
9.22.3 Symbolic Operand Modifiers
9.22.4 Assembler Directives
9.22.5 Floating Point
9.22.6 Opcodes
9.22.6.1 Branch Improvement
9.23 MicroBlaze Dependent Features
9.23.1 Directives
9.24 MIPS Dependent Features
9.24.1 Assembler options
9.24.2 MIPS ECOFF object code
9.24.3 Directives for debugging information
9.24.4 Directives to override the size of symbols
9.24.5 Directives to override the ISA level
9.24.6 Directives for extending MIPS 16 bit instructions
9.24.7 Directive to mark data as an instruction
9.24.8 Directives to save and restore options
9.24.9 Directives to control generation of MIPS ASE instructions
9.24.10 Directives to override floating-point options
9.25 MMIX Dependent Features
9.25.1 Command-line Options
9.25.2 Instruction expansion
9.25.3 Syntax
9.25.3.1 Special Characters
9.25.3.2 Symbols
9.25.3.3 Register names
9.25.3.4 Assembler Directives
9.25.4 Differences to mmixal
9.26 MSP 430 Dependent Features
9.26.1 Options
9.26.2 Syntax
9.26.2.1 Macros
9.26.2.2 Special Characters
9.26.2.3 Register Names
9.26.2.4 Assembler Extensions
9.26.3 Floating Point
9.26.4 MSP 430 Machine Directives
9.26.5 Opcodes
9.26.6 Profiling Capability
9.27 PDP-11 Dependent Features
9.27.1 Options
9.27.1.1 Code Generation Options
9.27.1.2 Instruction Set Extension Options
9.27.1.3 CPU Model Options
9.27.1.4 Machine Model Options
9.27.2 Assembler Directives
9.27.3 PDP-11 Assembly Language Syntax
9.27.4 Instruction Naming
9.27.5 Synthetic Instructions
9.28 picoJava Dependent Features
9.28.1 Options
9.29 PowerPC Dependent Features
9.29.1 Options
9.29.2 PowerPC Assembler Directives
9.30 IBM S/390 Dependent Features
9.30.1 Options
9.30.2 Special Characters
9.30.3 Instruction syntax
9.30.3.1 Register naming
9.30.3.2 Instruction Mnemonics
9.30.3.3 Instruction Operands
9.30.3.4 Instruction Formats
9.30.3.5 Instruction Aliases
9.30.3.6 Instruction Operand Modifier
9.30.3.7 Instruction Marker
9.30.3.8 Literal Pool Entries
9.30.4 Assembler Directives
9.30.5 Floating Point
9.31 SCORE Dependent Features
9.31.1 Options
9.31.2 SCORE Assembler Directives
9.32 Renesas / SuperH SH Dependent Features
9.32.1 Options
9.32.2 Syntax
9.32.2.1 Special Characters
9.32.2.2 Register Names
9.32.2.3 Addressing Modes
9.32.3 Floating Point
9.32.4 SH Machine Directives
9.32.5 Opcodes
9.33 SuperH SH64 Dependent Features
9.33.1 Options
9.33.2 Syntax
9.33.2.1 Special Characters
9.33.2.2 Register Names
9.33.2.3 Addressing Modes
9.33.3 SH64 Machine Directives
9.33.4 Opcodes
9.34 SPARC Dependent Features
9.34.1 Options
9.34.2 Enforcing aligned data
9.34.3 Sparc Syntax
9.34.3.1 Special Characters
9.34.3.2 Register Names
9.34.3.3 Constants
9.34.3.4 Relocations
9.34.3.5 Size Translations
9.34.4 Floating Point
9.34.5 Sparc Machine Directives
9.35 TIC54X Dependent Features
9.35.1 Options
9.35.2 Blocking
9.35.3 Environment Settings
9.35.4 Constants Syntax
9.35.5 String Substitution
9.35.6 Local Labels
9.35.7 Math Builtins
9.35.8 Extended Addressing
9.35.9 Directives
9.35.10 Macros
9.35.11 Memory-mapped Registers
9.36 Z80 Dependent Features
9.36.1 Options
9.36.2 Syntax
9.36.2.1 Special Characters
9.36.2.2 Register Names
9.36.2.3 Case Sensitivity
9.36.3 Floating Point
9.36.4 Z80 Assembler Directives
9.36.5 Opcodes
9.37 Z8000 Dependent Features
9.37.1 Options
9.37.2 Syntax
9.37.2.1 Special Characters
9.37.2.2 Register Names
9.37.2.3 Addressing Modes
9.37.3 Assembler Directives for the Z8000
9.37.4 Opcodes
9.38 VAX Dependent Features
9.38.1 VAX Command-Line Options
9.38.2 VAX Floating Point
9.38.3 Vax Machine Directives
9.38.4 VAX Opcodes
9.38.5 VAX Branch Improvement
9.38.6 VAX Operands
9.38.7 Not Supported on VAX
9.39 v850 Dependent Features
9.39.1 Options
9.39.2 Syntax
9.39.2.1 Special Characters
9.39.2.2 Register Names
9.39.3 Floating Point
9.39.4 V850 Machine Directives
9.39.5 Opcodes
9.40 Xtensa Dependent Features
9.40.1 Command Line Options
9.40.2 Assembler Syntax
9.40.2.1 Opcode Names
9.40.2.2 Register Names
9.40.3 Xtensa Optimizations
9.40.3.1 Using Density Instructions
9.40.3.2 Automatic Instruction Alignment
9.40.4 Xtensa Relaxation
9.40.4.1 Conditional Branch Relaxation
9.40.4.2 Function Call Relaxation
9.40.4.3 Other Immediate Field Relaxation
9.40.5 Directives
9.40.5.1 schedule
9.40.5.2 longcalls
9.40.5.3 transform
9.40.5.4 literal
9.40.5.5 literal_position
9.40.5.6 literal_prefix
9.40.5.7 absolute-literals
10 Reporting Bugs
10.1 Have You Found a Bug?
10.2 How to Report Bugs
11 Acknowledgements
Appendix A GNU Free Documentation License
AS Index
GNU Linker
LD
1 Overview
2 Invocation
2.1 Command Line Options
2.1.1 Options Specific to i386 PE Targets
2.1.2 Options specific to Motorola 68HC11 and 68HC12 targets
2.1.3 Options specific to Motorola 68K target
2.2 Environment Variables
3 Linker Scripts
3.1 Basic Linker Script Concepts
3.2 Linker Script Format
3.3 Simple Linker Script Example
3.4 Simple Linker Script Commands
3.4.1 Setting the Entry Point
3.4.2 Commands Dealing with Files
3.4.3 Commands Dealing with Object File Formats
3.4.4 Assign alias names to memory regions
3.4.5 Other Linker Script Commands
3.5 Assigning Values to Symbols
3.5.1 Simple Assignments
3.5.2 PROVIDE
3.5.3 PROVIDE_HIDDEN
3.5.4 Source Code Reference
3.6 SECTIONS Command
3.6.1 Output Section Description
3.6.2 Output Section Name
3.6.3 Output Section Address
3.6.4 Input Section Description
3.6.4.1 Input Section Basics
3.6.4.2 Input Section Wildcard Patterns
3.6.4.3 Input Section for Common Symbols
3.6.4.4 Input Section and Garbage Collection
3.6.4.5 Input Section Example
3.6.5 Output Section Data
3.6.6 Output Section Keywords
3.6.7 Output Section Discarding
3.6.8 Output Section Attributes
3.6.8.1 Output Section Type
3.6.8.2 Output Section LMA
3.6.8.3 Forced Output Alignment
3.6.8.4 Forced Input Alignment
3.6.8.5 Output Section Constraint
3.6.8.6 Output Section Region
3.6.8.7 Output Section Phdr
3.6.8.8 Output Section Fill
3.6.9 Overlay Description
3.7 MEMORY Command
3.8 PHDRS Command
3.9 VERSION Command
3.10 Expressions in Linker Scripts
3.10.1 Constants
3.10.2 Symbolic Constants
3.10.3 Symbol Names
3.10.4 Orphan Sections
3.10.5 The Location Counter
3.10.6 Operators
3.10.7 Evaluation
3.10.8 The Section of an Expression
3.10.9 Builtin Functions
3.11 Implicit Linker Scripts
4 Machine Dependent Features
4.1 ld and the H8/300
4.2 ld and the Intel 960 Family
4.3 ld and the Motorola 68HC11 and 68HC12 families
4.3.1 Linker Relaxation
4.3.2 Trampoline Generation
4.4 ld and the ARM family
4.5 ld and HPPA 32-bit ELF Support
4.6 ld and the Motorola 68K family
4.7 ld and MMIX
4.8 ld and MSP430
4.9 ld and PowerPC 32-bit ELF Support
4.10 ld and PowerPC64 64-bit ELF Support
4.11 ld and SPU ELF Support
4.12 ld's Support for Various TI COFF Versions
4.13 ld and WIN32 (cygwin/mingw)
4.14 ld and Xtensa Processors
5 BFD
5.1 How It Works: An Outline of BFD
5.1.1 Information Loss
5.1.2 The BFD canonical object-file format
6 Reporting Bugs
6.1 Have You Found a Bug?
6.2 How to Report Bugs
Appendix A MRI Compatible Script Files
Appendix B GNU Free Documentation License
ADDENDUM: How to use this License for your documents
LD Index
GNU BINUTILS
Introduction
1 ar
1.1 Controlling ar on the Command Line
1.2 Controlling ar with a Script
2 nm
3 objcopy
4 objdump
5 ranlib
6 size
7 strings
8 strip
9 c++filt
10 addr2line
11 nlmconv
12 windmc
13 windres
14 dlltool
14.1 The format of the dlltool .def file
15 readelf
16 Common Options
17 Selecting the Target System
17.1 Target Selection
17.2 Architecture Selection
18 Reporting Bugs
18.1 Have You Found a Bug?
18.2 How to Report Bugs
Appendix A GNU Free Documentation License
Binutils Index
Appendices
Legal
Copyright, disclaimer, and trademarks
Rowley Associates license statement
Activating your product
Technical
File formats
Memory Map file format
Section Placement file format
Project file format
Project Templates file format
Property Groups file format
Package Description file format
Project Property Reference
General Build Properties
Combining Project Properties
Compilation Properties
Debugging Properties
Externally Built Executable Project Properties
File and Folder Properties
Library Project Properties
Executable Project Properties
Staging Project Properties
Code editor command summary
Binary editor command summary
Frequently Asked Questions
Linux Frequently Asked Questions
Glossary