Timo Sintonen <t.sinto...@luukku.com> writes: > Thumb2 is an extension to thumb. It has everything that thumb has and > more. There is nothing in thumb that is not in thumb2. There is no > thumb1. Thumb is sometimes called thumb1 because thumb is often > understood to be both thumb and thumb2. > > Thumb2 was introduced to some armv6 devices and it is in all v7 and > later devices, including all Cortex ones. I do not remember dates but > I think it has been nearly 10 years that all new designs have been > thumb2. There may not be many old thumb processors out there any more. > > I do not know if there is need to support old thumb any more. However, > if it is wanted, plain thumb or thumb1 is just what is not thumb2 and > can be handled in else branch of thumb2 test.
It just made my code uglier with version ARM_Thumb2 only because you can't do !version like ifndef or !defined. This is on an armv6 with thumb1. I know Walter is not for extra versions if they can be derived from others though. version (ARM) { version (ARM_Thumb) // could be thumb1 or thumb2 { version (ARM_Thumb2) {} else version = ARM_Thumb1; } version (ARM_Thumb1) { // orginal thumb inline asm } else { // arm and thumb-2 inline unified asm } }