G.3   Toolchain Information

Assembler Pseudo Operations

.arm

no arguments

Generate ARM (32-bit) code.

.thumb

no arguments

Generate Thumb (16-bit) code.

.code

16 or 32

Generate 16- or 32-bit code.

.thumb_func

no arguments

Flag this function as a Thumb function.

Additional ARM Compiler Options

In addition to the new ARM compiler options described in Compiling C and C++ Modules, the following compiler options are added to the GNU compiler with Tornado for ARM:

-mapcs-32
Specifies the use of the 32-bit ARM Procedure Call Standard. This is the default. Note that -mapcs-26 is not supported.

-marm
Generates plain ARM code. This is the default in all current configurations; the option is supplied for symmetry.

-mthumb
Required to generate Thumb code. Requires an ARM CPU with Thumb support.

-mthumb-interwork
Required to generate Thumb code.


*

CAUTION: The -mthumb-interwork option is required to compile code for Thumb state in this release. Although you must use this option in order to use Thumb state, ARM interworking (switching between ARM and Thumb modes in the same application, running ARM code under the Thumb kernel, or running Thumb code under the ARM kernel) is not supported for this release.

-mapcs-frame
-mapcs-leaf-frame
Creates a "stack backtrace" structure for non-leaf and leaf functions respectively. Applies when ARM code is generated. These are the default for ARM state and are automatically disabled when -mthumb is active.

-mtpcs-frame
-mtpcs-leaf-frame
Create a "stack backtrace" structure for non-leaf and leaf functions respectively. Analogous to -mapcs-frame and -mapcs-leaf-frame but apply when -mthumb is active.

CrossWind and GDB

CrossWind for Tornado for ARM is based on GDB 4.16. The following new debugger commands are implemented:

VxWorks-timeout args
All VxWorks-based targets now support the option vxworks-timeout. args represents the number of seconds the debugger waits for responses to RPCs.

complete arg
List possible completions for arg.

hbreak
Set a hardware-assisted breakpoint (if applicable).

set print static-members [ on,off ]
Print static members when displaying a C++ object. The default is on.

show input-radix
Display the current default base for numeric entry.

show output-radix
Display the current default base for numeric display.

set output-radix base
Set the default base for numeric display. Supported choices for base are decimal 8, 10, or 16. base must itself be specified either unambiguously or using the current default radix.

Commands whose functionality has changed in this release are as follows:

rwatch args
Set a watchpoint that breaks when watch args is read.

awatch args
Set watchpoint that breaks when watch args is read or written.

For more information on the watch command, see Debugging With GDB.

Additionally, step only enters a subroutine if line number information exists; otherwise, it acts like next.