Please note: We are aware of an issue affecting replies on the Arm Community forums, which may not be loading as expected.

We apologize for any inconvenience and appreciate your patience while we investigate and work to resolve the issue.

Thank you for your understanding.


This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Is a MOV using high registers (R8-R15) possible with the ARMv6-M architecture?

The ARMv6-M Architecture Reference Manual section "A6.7.40 MOV (register)" on page A6-140 states that the T1 encoding of the MOV instruction is only available on the ARMv6-M architecture if both the source and destination register are from R0-R7. However arm-none-eabi-as assembles the instruction "MOV r15, r14" without any problems:

$ echo 'mov r15,r14' | arm-none-eabi-as -march=armv6-m
$ arm-none-eabi-objdump -d a.out
...
0: 46f7 mov pc, lr

Also, this answer on stackoverflow states that it is possible to acces the high registers on the ARMv6-M architecture.

Could this be a mistake in the reference manual? Or am I reading it wrong?

Parents Reply Children