diff options
Diffstat (limited to 'cpukit/score/cpu/arm/cpu.c')
-rw-r--r-- | cpukit/score/cpu/arm/cpu.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/cpukit/score/cpu/arm/cpu.c b/cpukit/score/cpu/arm/cpu.c index ddfc37d243..42c9eacfff 100644 --- a/cpukit/score/cpu/arm/cpu.c +++ b/cpukit/score/cpu/arm/cpu.c @@ -127,9 +127,15 @@ void _CPU_ISR_Set_level( uint32_t level ) __asm__ volatile ( ARM_SWITCH_TO_ARM +#ifdef RTEMS_PARAVIRT_XTRATUM + "udf #4\n" +#endif "mrs %[arm_switch_reg], cpsr\n" "bic %[arm_switch_reg], #" _CPU_ISR_LEVEL_STRINGOF( ARM_PSR_I ) "\n" "orr %[arm_switch_reg], %[level]\n" +#ifdef RTEMS_PARAVIRT_XTRATUM + "udf #5\n" +#endif "msr cpsr, %0\n" ARM_SWITCH_BACK : [arm_switch_reg] "=&r" (arm_switch_reg) @@ -144,6 +150,9 @@ uint32_t _CPU_ISR_Get_level( void ) __asm__ volatile ( ARM_SWITCH_TO_ARM +#ifdef RTEMS_PARAVIRT_XTRATUM + "udf #4\n" +#endif "mrs %[level], cpsr\n" "and %[level], #" _CPU_ISR_LEVEL_STRINGOF( ARM_PSR_I ) "\n" ARM_SWITCH_BACK |