KEIL MDK-ARM 3.04: toupper()

Compilando em modo Thumb2 a função toupper apresenta um funcionamento estranho. Fiz a minha e agora meu programa funciona corretamente. Para quem desejar :
toupper
cmp r0,#'a'
bxlo lr
cmp r0,#'z'
subls r0,#0x20
bx lr
[/b]
toupper
cmp r0,#'a'
bxlo lr
cmp r0,#'z'
subls r0,#0x20
bx lr
[/b]