Code Generation Command-Line Options. NXP CodeWarrior Development Studio
விளம்பரம்
விளம்பரம்
Code Generation Command-Line Options
file
Name of the library file to search.
Remarks
The linker searches access path for the specified lib<file>.<ext>
, where
<ext>
is
.a
or
.lib
.
If the file is not found then search for
<file>
. This command is case-sensitive.
11.6 Code Generation Command-Line Options
This chapter explains the following command-line options:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
11.6.1 -abi
Chooses which ABI to conform to.
Syntax
CodeWarrior Development Studio for Advanced Packet Processing Build Tools Reference Manual, Rev.
10.2, 01/2016
130 Freescale Semiconductor, Inc.
Chapter 11 Command-Line
-abi keyword
The choices for keyword are: eabi
Use the Embedded ABI. This choice is the default.
sda_pic_pid
Use position-independent addressing executable code and data.
Remarks
This option is global.
11.6.2 -align
Specifies structure and array alignment.
Syntax
-align keyword[,...]
The choices for keyword are: power[pc]
Use conventional alignment. This choice is the default.
array[members]
Align members of arrays, too.
11.6.3 -big
Generates object code and links an executable image to use big-endian data formats.
Syntax
-big
Remarks
This is the default setting for the compiler and linker.
CodeWarrior Development Studio for Advanced Packet Processing Build Tools Reference Manual, Rev.
10.2, 01/2016
Freescale Semiconductor, Inc.
131
Code Generation Command-Line Options
11.6.4 -common
Moves uninitialized data into a common section.
Syntax
-common on | off
Remarks
The default is off
.
11.6.5 -fp
Controls floating-point code generation.
Syntax
-fp keyword
The choices for keyword are: none | off
No floating point code generation.
soft[ware]
Use software libraries to perform floating-point operations. This is the default.
hard[ware]
Use the processor's built-in floating-point capabilities to perform floating-point operations. This is not applicable to AIOP as AIOP contains no hardware floating point support.
11.6.6 -func_align
Specifies alignment of functions in executable code.
Syntax
CodeWarrior Development Studio for Advanced Packet Processing Build Tools Reference Manual, Rev.
10.2, 01/2016
132 Freescale Semiconductor, Inc.
Chapter 11 Command-Line
-func_align 4 | 8 | 16 | 32 | 64 | 128
Remarks
The default alignment is
4
. However, at an optimization level
4
, the alignment changes to
16
. If you are using
-func_align 4
(or none
) and if you are compiling for VLE, then the linker will compress gaps between VLE functions:
• if those functions are not called by a Classic PPC function
• the function has an alignment greater than
4
.
11.6.7 -little
Generates object code and links an executable image to use little-endian data formats.
Syntax
-little
11.6.8 -pool
Controls the grouping of similar-sized data objects.
Syntax
-pool[data] on | off
Remarks
Use this option to reduce the size of executable object code in functions that refer to many object of the same size. These similar-sized objects do not need to be of the same type. The compiler only applies this option to a function if the function refers to at least 3 similar-sized objects. The objects must be global or static.
At the beginning of the function, the compiler generates instructions to load the address of the first similar-sized object. The compiler then uses this address to generate 1 instruction for each subsequent reference to other similar-sized objects instead of the usual 2 instructions for loading an object using absolute addressing.
This option is equivalent to the pool_data
pragma.
CodeWarrior Development Studio for Advanced Packet Processing Build Tools Reference Manual, Rev.
10.2, 01/2016
Freescale Semiconductor, Inc.
133
Code Generation Command-Line Options
The default is on
.
11.6.9 -processor
Generates and links object code for a specific processor.
Syntax
-proc[essor] keyword
The choices for keyword are:
Zen generic
Remarks
The keyword parameter specifies the processor core. The default for keyword is generic
.
11.6.10 -ppc_asm_to_vle
Converts regular assembler mnemonics to equivalent VLE (Variable Length Encoded) assembler mnemonics in the inline assembler and standalone assembler.
Syntax
-ppc_asm_to_vle
Remarks
C/C++ source is input to compiler inline assembler whereas assembly source is input to standalone assembler.
While translating assembly statements in C or C++ or assembly source code, the compiler inline assembler or standalone assembler will replace each regular assembler mnemonic with its matching VLE instruction if one exists. The mnemonics for VLE
(Variable Length Encoding) instructions begin with se_
or e_
. The compiler's inline assembler recognizes these mnemonics when the compiler is configured to generate VLE
CodeWarrior Development Studio for Advanced Packet Processing Build Tools Reference Manual, Rev.
10.2, 01/2016
134 Freescale Semiconductor, Inc.
Chapter 11 Command-Line
object code. The same is with assembler. If an equivalent VLE instruction does not exist for an UISA instruction then it might generate multiple VLE instructions for that operation.
Assembler changes the section
.text
to
.text_vle
. For user defined sections, LCF needs modification.
Example
Consider test.s
.section .mytext
tmp: do_loop00:
B exit0
Add r0,r0,r1
.text
exit0:
blr
Assemble with option
-ppc_asm_to_vle
In LCF
.text_vle (VLECODE) : {
*(.text)
*(.text_vle)
(.mytext)
}
NOTE
Assembler does not emit a 16-bit VLE instruction for branch instructions, if the label definition does not exist at that point.
11.6.11 -rambuffer
Specifies a runtime address in which to store the executable image in RAM so that it may be transferred to flash memory.
Syntax
-rambuffer
addr
Remarks
CodeWarrior Development Studio for Advanced Packet Processing Build Tools Reference Manual, Rev.
10.2, 01/2016
Freescale Semiconductor, Inc.
135
Code Generation Command-Line Options
This option specifies information for a legacy flashing tool. This tool required that the executable image must first be loaded to an area in RAM before being transferred to
ROM. Do not use this option if your flash memory tool does not follow this behavior.
The CodeWarrior tools ignore this option if it is not used with the
-romaddr
option.
11.6.12 -readonlystrings
Places string constants in a read-only section named .rodata.
Syntax
-readonlystrings
11.6.13 -relax_ieee
Controls the use of relaxed IEEE floating point operations.
Syntax
-relax_ieee
-norelax_ieee
Remarks
The default is
-relax_ieee
.
11.6.14 -romaddr
Generates a ROM image and specifies the image's starting address at runtime.
Syntax
CodeWarrior Development Studio for Advanced Packet Processing Build Tools Reference Manual, Rev.
10.2, 01/2016
136 Freescale Semiconductor, Inc.
Chapter 11 Command-Line
-romaddr
addr
11.6.15 -rostr
Equivalent to the
-readonlystrings
option.
Syntax
-rostr
11.6.16 -schedule
Controls the rearrangement of instructions to reduce the effects of instruction latency.
Syntax
-schedule on | off
Remarks
The default is off
.
11.6.17 -strict_ieee
Specifies the use of strict IEEE floating point operations.
Syntax
-strict_ieee
Remarks
This option is the same as the
-norelax_ieee
option.
CodeWarrior Development Studio for Advanced Packet Processing Build Tools Reference Manual, Rev.
10.2, 01/2016
Freescale Semiconductor, Inc.
137
Code Generation Command-Line Options
11.6.18 -use_lmw_stmw
Controls the use of multiple load and store instructions for function prologues and epilogues.
Syntax
-use_lmw_stmw on | off
Remarks
The default is off.
11.6.19 -use_isel
Controls the use of isel
instructions.
Syntax
-use_isel on | off
Remarks
The default is off
.
11.6.20 -vle
Controls the use of the Variable Length Encoded (VLE) instruction set.
Syntax
-vle
Remarks
CodeWarrior Development Studio for Advanced Packet Processing Build Tools Reference Manual, Rev.
10.2, 01/2016
138 Freescale Semiconductor, Inc.
பதிவிறக்கு
விளம்பரம்