Technical Support
On-Line Manuals
Compiler Reference Guide
Conventions and Feedback
Introduction
Compiler Command-line Options
-Aopt
--allow_fpreg_for_nonfpdata, --no_allow_fpreg_for_
--allow_null_this, --no_allow_null_this
--alternative_tokens, --no_alternative_tokens
--anachronisms, --no_anachronisms
--apcs=qualifer...qualifier
--arm
--arm_only
--asm
--asm_dir=directory_name
--autoinline, --no_autoinline
--bigend
--bitband
--brief_diagnostics, --no_brief_diagnostics
--bss_threshold=num
-c
-C
--c90
--c99
--code_gen, --no_code_gen
--compatible=name
--compile_all_input, --no_compile_all_input
--conditionalize, --no_conditionalize
--cpp
--cpu=list
--cpu=name
--create_pch=filename
-Dname[(parm-list)][=def]
--data_reorder, --no_data_reorder
--debug, --no_debug
--debug_macros, --no_debug_macros
--default_extension=ext
--dep_name, --no_dep_name
--depend=filename
--depend_dir=directory_name
--depend_format=string
--depend_single_line, --no_depend_single_line
--depend_system_headers, --no_depend_system_header
--depend_target=target
--diag_error=tag[,tag,...]
--diag_remark=tag[,tag,...]
--diag_style={arm|ide}
--diag_suppress=tag[,tag,...]
--diag_suppress=optimizations
--diag_warning=tag[,tag,...]
--diag_warning=optimizations
--dollar, --no_dollar
--dwarf2
--dwarf3
-E
--echo
--emit_frame_directives, --no_emit_frame_directive
--enum_is_int
--errors=filename
--exceptions, --no_exceptions
--exceptions_unwind, --no_exceptions_unwind
--extended_initializers, --no_extended_initializer
--feedback=filename
--force_new_nothrow, --no_force_new_nothrow
--forceinline
--fp16_format=format
--fpmode=model
--fpu=list
--fpu=name
--friend_injection, --no_friend_injection
-g
--global_reg=reg_name[,reg_name,...]
--guiding_decls, --no_guiding_decls
--help
-Idir[,dir,...]
--ignore_missing_headers
--implicit_include, --no_implicit_include
--implicit_include_searches, --no_implicit_include
--implicit_key_function, --no_implicit_key_functio
--implicit_typename, --no_implicit_typename
--info=totals
--inline, --no_inline
--interface_enums_are_32_bit
--interleave
-Jdir[,dir,...]
--kandr_include
-Lopt
--library_interface=lib
--library_type=lib
--licretry
--link_all_input, --no_link_all_input
--list
--list_dir=directory_name
--list_macros
--littleend
--locale=lang_country
--long_long
--loose_implicit_cast
--lower_ropi, --no_lower_ropi
--lower_rwpi, --no_lower_rwpi
--ltcg
-M
--md
--message_locale=lang_country[.codepage]
--min_array_alignment=opt
--mm
--multibyte_chars, --no_multibyte_chars
--multifile, --no_multifile
--multiply_latency=cycles
--nonstd_qualifier_deduction, --no_nonstd_qualifie
-o filename
-Onum
--old_specializations, --no_old_specializations
--old_style_preprocessing
--omf_browse
-Ospace
-Otime
--output_dir=directory_name
-P
--parse_templates, --no_parse_templates
--pch
--pch_dir=dir
--pch_messages, --no_pch_messages
--pch_verbose, --no_pch_verbose
--pending_instantiations=n
--phony_targets
--pointer_alignment=num
--preinclude=filename
--preprocess_assembly
--preprocessed
--protect_stack, --no_protect_stack
--reassociate_saturation, --no_reassociate_saturat
--reduce_paths, --no_reduce_paths
--remarks
--remove_unneeded_entities, --no_remove_unneeded_e
--restrict, --no_restrict
--retain=option
--rtti, --no_rtti
--rtti_data, --no_rtti_data
-S
--show_cmdline
--signed_bitfields, --unsigned_bitfields
--signed_chars, --unsigned_chars
--split_ldm
--split_sections
--strict, --no_strict
--strict_warnings
--sys_include
--thumb
--trigraphs, --no_trigraphs
--type_traits_helpers, --no_type_traits_helpers
-Uname
--unaligned_access, --no_unaligned_access
--use_frame_pointer
--use_pch=filename
--using_std, --no_using_std
--version_number
--vfe, --no_vfe
--via=filename
--vla, --no_vla
--vsn
-W
--wchar, --no_wchar
--wchar16
--wchar32
--whole_program
--wrap_diagnostics, --no_wrap_diagnostics
Language Extensions
Compiler-specific Features
C and C++ Implementation Details
Semihosting
ARMv6 SIMD Instruction Intrinsics
Via File Syntax
Standard C Implementation Definition
Standard C++ Implementation Definition
C and C++ Compiler Implementation Limits
|
Compiler Reference Guide
--unaligned_access, --no_unaligned_access
--unaligned_access, --no_unaligned_access
These options enable and disable unaligned accesses to data
on ARM architecture-based processors. Default
The default is --unaligned_access on ARM-architecture
based processors that support unaligned accesses to data. This includes: The default is --no_unaligned_access on ARM-architecture
based processors that do not support unaligned accesses to data.
This includes: Usage
--unaligned_accessUse --unaligned_access on processors
that support unaligned accesses to data, for example --cpu=ARM1136J-S,
to speed up accesses to packed structures. To enable unaligned support, you must: Clear the A bit, bit 1, of CP15 register
1 in your initialization code. Set the U bit, bit 22, of CP15
register 1 in your initialization code. The initial value of the U bit is determined
by the UBITINIT input to the core.
The MMU must be on, and the memory marked as normal memory.
The libraries include special versions of certain library
functions designed to exploit unaligned accesses. When unaligned
access support is enabled, the compilation tools use these library
functions to take advantage of unaligned accesses. --no_unaligned_accessUse --no_unaligned_access to disable
the generation of unaligned word and halfword accesses on ARMv6
processors. To enable modulo four-byte alignment checking on an ARMv6
target without unaligned accesses, you must: Set the A bit, bit 1, of CP15 register
1 in your initialization code. Set the U bit, bit 22, of CP15
register 1 in your initialization code. The initial value of the U bit is determined
by the UBITINIT input to the core.
NoteUnaligned doubleword accesses, for example unaligned accesses
to long long integers, are not supported
by ARM processor cores. Doubleword accesses must be either eight-byte
or four-byte aligned. The compiler does not provide support for modulo eight-byte
alignment checking. That is, the configuration U = 0, A
= 1 in CP15 register 1 is not supported by the compiler,
or more generally, by the ARM compiler toolset. The libraries include special versions of certain library
functions designed to exploit unaligned accesses. To prevent these
enhanced library functions being used when unaligned access support
is disabled, you have to specify --no_unaligned_access on
both the compiler command line and the assembler command line when
compiling a mixture of C and C++ source files and assembly language
source files.
Restrictions
Code compiled for processors supporting unaligned accesses
to data can run correctly only if the choice of alignment support
in software matches the choice of alignment support on the processor
core. See also
|