This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Assembler error with SRSDB SP!,#0x1F instruction



I am writing a reentrant interrupt handler for the OMAP35. By following the example from ARM, this generates a assembler error:

SRSDB       sp!,#31          ; Save LR_irq and SPSR_irq to System mode stack

"C:/Program Files (x86)/Texas Instruments/ccsv4/tools/compiler/TMS470 Code Generation Tools 4.6.4/bin/cl470" -mv7A8 -g --include_path="C:/Program Files (x86)/Texas Instruments/ccsv4/tools/compiler/TMS470 Code Generation Tools 4.6.4/include" --diag_warning=225 -me --enum_type=packed --code_state=32 --preproc_with_compile --preproc_dependency="IRQ_Processing.pp"  "../IRQ_Processing.asm"
"../IRQ_Processing.asm", ERROR! at line 18: [E0003] Unexpected trailing operand(s)
    SRSDB  SP!,#31

Ok, maybe TMS470 does not like the #31, let's write it in HEX-style:

SRSDB       sp!,#0x1F          ; Save LR_irq and SPSR_irq to System mode stack

"C:/Program Files (x86)/Texas Instruments/ccsv4/tools/compiler/TMS470 Code Generation Tools 4.6.4/bin/cl470" -mv7A8 -g --include_path="C:/Program Files (x86)/Texas Instruments/ccsv4/tools/compiler/TMS470 Code Generation Tools 4.6.4/include" --diag_warning=225 -me --enum_type=packed --code_state=32 --preproc_with_compile --preproc_dependency="IRQ_Processing.pp"  "../IRQ_Processing.asm"
"../IRQ_Processing.asm", ERROR! at line 18: [E0003] Unexpected trailing operand(s)
    SRSDB  SP!,#0x1F

What's wrong with the TI compiler?