summaryrefslogtreecommitdiff
path: root/cpukit/score/cpu/arm/cpu.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/score/cpu/arm/cpu.c')
-rw-r--r--cpukit/score/cpu/arm/cpu.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/cpukit/score/cpu/arm/cpu.c b/cpukit/score/cpu/arm/cpu.c
index 01a43b3cfd..cc2a0bde24 100644
--- a/cpukit/score/cpu/arm/cpu.c
+++ b/cpukit/score/cpu/arm/cpu.c
@@ -119,8 +119,14 @@ 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], #" RTEMS_XSTRING( ARM_PSR_I ) "\n"
+#ifdef RTEMS_PARAVIRT_XTRATUM
+ "udf #5\n"
+#endif
"msr cpsr, %0\n"
ARM_SWITCH_BACK
: [arm_switch_reg] "=&r" (arm_switch_reg)
@@ -134,6 +140,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], #" RTEMS_XSTRING( ARM_PSR_I ) "\n"
ARM_SWITCH_BACK