You copied the Doc URL to your clipboard.

Revisions for Assembler Reference

The following technical changes have been made to Assembler Reference.

Table 61. Differences between issue H and issue I

Change

Topics affected

Replaced or removed the term unpredictable.Various instructions
Where appropriate, changed the term local label to either numeric local label or named local label.

Mentioned that DMB, DSB and ISB cannot be conditional in ARM code.

Corrected the available immediate ranges for VQ{R}SHR{U}N and mentioned the I16, I32, and I64 datatypes.
Where appropriate, changed the terminology that implied that 16-bit Thumb and 32-bit Thumb are separate instruction sets.Various topics
Where appropriate, changed the term processor state to instruction set state.BXJ

Mentioned that VFP vector mode and mixed mode are deprecated, for the following VFP instructions: VABS, VADD, VDIV, VMLA, VMLS, VMUL, VNEG, VNMLA, VNMLS, VNMUL, VSQRT, and VSUB.

NEON and VFP Programming
Described the E suffix for the VCMP instruction.VCMP, VCMPE
Added the non flag-setting forms to the lists of 16-bit Thumb instructions, for the following instructions: ADC, ADD, AND, ASR, BIC, EOR, LSL, LSR, MOV, MUL, ORR, ROR, RSB, SBC, and SUB. Also mentioned that the corresponding flag-setting forms can only be used outside IT blocks.ARM and Thumb Instructions
Corrected the examples given for the DCQ and DCQU directives.DCQ and DCQU

Table 62. Differences between issue G and issue H

Change

Topics affected

Clarified the difference between the --predefine assembler option and the -Dname compiler option.--predefine "directive"
Mentioned unpredictable behaviour when using PC or SP with the MRS or MSR instructions.
Added a note about using the ISB instruction in an IT block on ARMv7-M.DMB
Separated the V{R}SHR, V{R}SHRN and V{R}SRA instruction descriptions and changed the descriptions of the valid immediate ranges.
Changed the terminology used for ARM architecture versions and added explanatory table footnotes.
Added the CPY and NEG pseudo-instructions.
Expanded the Usage and Example sections for the ENTRY directive.ENTRY

Table 63. Differences between issue F and issue G

Change

Topics affected

Updated the description of --untyped_local_labels.

--untyped_local_labels

Added the ERET instruction.ERET
Mentioned that the MVN instruction exists in a 16-bit Thumb encoding.MOV
Added a figure showing the operation of VSHL and updated the figures for VSLI and VSRI.
Added links to the NEON and VFP data types topic from the associated NEON and VFP instructions.Various NEON and VFP instructions
Mentioned that the FUNCTION directive can accept an empty reglist.FUNCTION or PROC

Table 64. Differences between issue E and issue F
ChangeTopics affected
Added a note that the --device option is deprecated.
Modified the description of --licretry.--licretry

Where appropriate:

  • changed Thumb-2 to 32-bit Thumb

  • changed Thumb-2EE to ThumbEE.

Various topics

Changed the minor version component of the integer reported by the --version_number option from one to two digits.

--version_number
Modified the description of --vsn.--vsn
Mentioned a restriction on using LSL in an IT block with a zero value for sh.

ASR

Clarified the range of addresses accessible to the ADRL pseudo-instruction in ARM state.

ADRL pseudo-instruction


Table 65. Differences between issue D and issue E

Change

Topics affected

Added SC300 and SC000 to table of --compatible options.

--compatible=name


Table 66. Differences between issue C and issue D

Change

Topics affected

In the summary table, changed instruction mnemonics from:

  • VQRSHR to VQRSHR{U}N

  • VQSHR to VQSHR{U}N

  • VRSUBH to VRSUBHN

  • VSUBH to VSUBHN.

  • VRADDH to VRADDHN.

Table 26

Added GBLA count to the example.

WHILE and WEND

Changed FPv4_SP to FPv4-SP.

--fpu=name

Added ARM Glossary to other information.

Conventions and feedback

Made changes to ALinknames for MRS, MSR, SEV, SYS, and NOP instructions.

Added links to Memory access instructions in the LDR instruction pages.

Memory access instructions


Table 67. Differences between issue B and issue C

Change

Topics affected

Changed the restrictions to say that Rt must be even-numbered only in LDREXD and STREXD instructions.

LDREX

Mentioned the additional cases where SP and PC are deprecated.

Mentioned that deprecation of SP and PC is only in ARMv6T2 and above.

Various instructions

Added example of inconsistent use of MAP and FIELD directives.

FIELD

Added note that the option is not required if you are using the ARM Compiler toolchain with DS-5.

Changed --cpu PXA270 to --device PXA270.

About Wireless MMX Technology instructions


Table 68. Differences between issue A and issue B

Change

Topics affected

Updated the description of --cpu=name.

--cpu=name

Added the option --execstack.

--execstack

Added the option --no_execstack.

--no_execstack

Added the option --fpmode=none.

--fpmode=model

Updated the description of --show_cmdline.

--show_cmdline

Updated the instruction summary table and footnotes with ARMv7E-M.

ARM and Thumb instruction summary

Replaced “profile” with “architecture” when referring to ARMv6-M, ARMv7-M, ARMv7-R, and ARMv7-A in the instruction summary table and in the architecture sections of the instruction descriptions.

ARM and Thumb instruction summary

Mentioned register-controlled shift in the description of Operand2.

Operand2 as a register with optional shift

Added register restrictions to ADR (PC-relative).

ADR (PC-relative)

Added register restrictions and deprecation information in LDR and STR (immediate offset).

LDR (immediate offset)

Identified the ARM only instruction syntaxes in LDR and STR (register offset).

STR (register offset)

Added register restrictions and deprecation information, use of SP, and use of PC in LDR and STR (register offset).

STR (register offset)

Noted that PC-relative STR is available but deprecated.

LDR (PC-relative)

Added information about deprecation and use of SP in LDR (PC-relative).

LDR (PC-relative)

In Restrictions of reglist in ARM instructions, added that reglist containing both PC and LR in ARM LDM is deprecated.

LDM

Added Restrictions of reglist in ARM instructions.

POP

Added register restriction for Rn and moved the statement “Rm must not be PC” to this section.

PLD, PLDW, and PLI

Added restrictions on reglist in LDM and STM.

LDM

Added the statement “must not be PC” for each of the registers in the syntax.

SWP and SWPB

Linked to SUBS pc, lr from Use of PC in ARM instructions.

ADD

Removed the caution against the use of the S suffix when using PC as Rd in User or System mode.

ADD

Mentioned the deprecated instructions that use PC.

ADD

Added more syntaxes that are only present in ARM code and described the additional items in the syntax.

SUBS pc, lr

Documented the valid forms of the SUBS instruction in ARM and Thumb, and added the caution to not use these instructions in User or System mode.

SUBS pc, lr

Linked to SUBS pc, lr from Use of PC in ARM instructions and from See also section.

AND

Removed the caution against the use of the S suffix when using PC as Rd in User or System mode.

AND

Added Register restrictions section to say Rn cannot be PC in instructions that write back to Rn.

LDC and LDC2

Mentioned that Rt cannot be PC.

MCR and MCR2

Mentioned that Rm cannot be PC.

MSR (general-purpose register to PSR)

Linked to SUBS pc, lr from Use of PC in ARM instructions.

MOV

Removed the caution against the use of the S suffix when using PC as Rd in User or System mode.

MOV

Mentioned the deprecated instructions that use PC.

MOV

Mentioned that SP is not permitted in Thumb TST and TEQ instructions, and is deprecated in ARM TST and TEQ instructions.

TST

Added that SEL is available in ARMv7E-M.

SEL

Added that Rn must be different from Rd in MUL and MLA before ARMv6.

MUL

Added that Rn must be different from RdLo and RdHi before ARMv6.

UMULL

Added that the Thumb instructions are available in ARMv7E-M.

DBG is available in ARMv6K and above in ARM, and in ARMv6T2 and above in Thumb. Also mentioned that DBG executes as NOP in ARMv6K and ARMv6T2.

DBG

Added figures 4-4 and 4-5 for the operation of VSLI and VSRI.

VSLI

Added tables showing the register state before and after operation of VUZP and VZIP.

VUZP

Added that n can be a defined relocation name and add a related example in the examples section.

RELOC

Added note for macro workaround when using |.

MACRO and MEND

Clarified the message to say that error generation is during assembly rather than second pass of the assembly.

ASSERT

Added ALIAS directive, and included it in the summary table.

ALIAS

Clarified that n is any integer, and described the examples in the examples sections.

ALIGN

Clarified the description of COMGROUP and GROUP.

AREA

Added note about R_ARM_TARGET1.

AREA

Added link to 8 Byte Stack Alignment in See also section.

REQUIRE8 and PRESERVE8

Added /hardfp and /softfp values to the --apcs option and added link to the --apcs option in the Compiler Reference.

--apcs=qualifier…qualifier

Changed Rn to Rm in “Rd, Rn, Rm and Ra must not be PC”.

USAD8