]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Demo/RISC-V_RV32_SiFive_HiFive1_FreedomStudio/freedom-metal/src/privilege.c
Update RISCC-V-RV32-SiFive_HiFive1_FreedomStudio project to latest tools and metal...
[freertos] / FreeRTOS / Demo / RISC-V_RV32_SiFive_HiFive1_FreedomStudio / freedom-metal / src / privilege.c
index 42bdf6e0dcd8a9aa7af51e72212c152c1d6915e2..54bfcfc2c237a6f878e32bf386aee30bf44949da 100644 (file)
@@ -20,7 +20,7 @@ void metal_privilege_drop_to_mode(enum metal_privilege_mode mode,
                                  metal_privilege_entry_point_t entry_point)
 {
        uintptr_t mstatus;
-       asm volatile("csrr %0, mstatus" : "=r" (mstatus));
+       __asm__ volatile("csrr %0, mstatus" : "=r" (mstatus));
 
        /* Set xPIE bits based on current xIE bits */
        if(mstatus && (1 << METAL_MSTATUS_MIE_OFFSET)) {
@@ -43,15 +43,15 @@ void metal_privilege_drop_to_mode(enum metal_privilege_mode mode,
        mstatus &= ~(METAL_MSTATUS_MPP_MASK << METAL_MSTATUS_MPP_OFFSET);
        mstatus |= (mode << METAL_MSTATUS_MPP_OFFSET);
 
-       asm volatile("csrw mstatus, %0" :: "r" (mstatus));
+       __asm__ volatile("csrw mstatus, %0" :: "r" (mstatus));
 
        /* Set the entry point in MEPC */
-       asm volatile("csrw mepc, %0" :: "r" (entry_point));
+       __asm__ volatile("csrw mepc, %0" :: "r" (entry_point));
 
        /* Set the register file */
-       asm volatile("mv ra, %0" :: "r" (regfile.ra));
-       asm volatile("mv sp, %0" :: "r" (regfile.sp));
+       __asm__ volatile("mv ra, %0" :: "r" (regfile.ra));
+       __asm__ volatile("mv sp, %0" :: "r" (regfile.sp));
 
-       asm volatile("mret");
+       __asm__ volatile("mret");
 }