In ARM/Thumb architecture, there are 16(r0-r15) registers in a single cpu. Furthermore, Thumb-Instruction-Set can only use the first 8(r0-r7) registers and the r13,r14 and r15 register.But the last 5(r8-r12) register are still in the cpu. How can we use these Hi(r8-r12) registers?
Recently, I am designing a protecting scheme in ARM Cortex-M0 CPU. In my project, I want to use r9 and r10 to store some information. Because other instructions would not use these registers, so I don`t need to push and pop these registers.
Can anyone help me with these? Should I use BX or BLX instruction to switch instruction set?
Cortex-M0 only supports Thumb instruction set (and some instructions from Thumb2). So, there is no possibility of instructionset switching from Thumb to ARM.
Reference: https://en.wikipedia.org/wiki/ARM_Cortex-M#Instruction_sets
ARM documentation from http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0040d/Bgbbfcgc.html gives little hint about possible usages high-registers.
[If time permits, I will tryout somethings and will update this post soon]