--untyped_local_labels

This option causes the assembler not to set the Thumb bit for the address of a local label referenced in an LDR pseudo instruction.

When this option is not used, if you reference a local label in an LDR pseudo-instruction, and the label is in Thumb code, then the assembler sets the Thumb bit (bit 0) of the address. You can then use the address as the target for a BX or BLX instruction.

If you require the actual address of the local label, without the Thumb bit set, then use the --untyped_local_labels option. Note that if you then use the address in a branch (register) instruction, the assembler treats it as an ARM code address, causing the branch to arrive in ARM state, meaning it would interpret this code as ARM instructions.

Show/hideExample

    THUMB
    ...
1
    ...
    LDR r0,=%B1 ; r0 contains the address of local label "1", 
                ; Thumb bit is not set if --untyped_local_labels was used
    ...

Show/hideSee also

Copyright © 2010-2012 ARM. All rights reserved.ARM DUI 0489H
Non-ConfidentialID070912