*
*Home|Chinese|Japanese*About ARM|Forums|Events|News|Employment|Contact Us|Investors*
dotted rule
*ARM - the architecture for the digital worldARM - the architecture for the digital world
search
*
*
***
*MARKETS:PRODUCTS & SOLUTIONS:CONNECTED COMMUNITY:TECHNICAL SUPPORT:DOCUMENTATION*
*
technical support
*
*
****
*.Technical Support
*
*
*>>Home Page*
*
*.Obtaining Support*
*
*.FAQs*
*
**Development Tool FAQs*
**IP FAQs*
**Embedded Software FAQs*
**Artisan Physical IP FAQs (Login Required)*
*
*.Downloads*
*
*.Documentation*
*
*.Training*
*
*.Where To Buy*
*
*.Keil MCU Tools*
*
*.What's New*
*
*.ARM Newsgroups*
*
*.Active Assist On-site Services*
*
*
*
technical support FAQsask ARM*
*

Technical Support Search
*     (Advanced Search)
  FAQs   Documentation   Downloads   Forums

*

 
downarrowMSR SPSR_cxsf,Rm gives Undefined Instruction with ARMulator
Applies to: ARMulator/RVISS, Software Development Toolkit (SDT)

Description
Instructions of the form MSR SPSR_cxsf,Rm are used to restore the PSR from the SPSR in, for example, re-entrant interrupt handlers and process context switch code. Strictly speaking, the '_cxsf' form should be instead of '_cf' in these cases to ensure compatibility with future ARM cores which may make use of the x and s fields (unused by all current ARM processors).

Be aware, however, that there is unfortunately a bug in the SDT 2.50 ARMulator - it fails to execute instructions with 'x' & 's' (you may see 'Undefined Instruction'). This is fixed in SDT 2.51 .

Solution
To execute your code under the SDT 2.50 ARMulator, we suggest you apply the following workaround to your assembler sources:

IF :DEF: ARMULATOR_WORKAROUND
MSR SPSR_cf, R0
ELSE
MSR SPSR_cxsf, R0
ENDIF

For a more detailed explanation of this instruction, see armasm: Use of MRS and MSR instructions.






back to top

*
**
*4 dots*Other ARM Websites
*
shadow *LEGAL STATEMENTshadow