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?