diff --git a/sys/arm64/include/metalp.h b/sys/arm64/include/metalp.h index 882781e..c28abad 100644 --- a/sys/arm64/include/metalp.h +++ b/sys/arm64/include/metalp.h @@ -103,7 +103,7 @@ extern "C" { __asm__ volatile ( \ METAL_RMR_GAS(reg, AARCH_REG_X0) \ "mov %x0, x0;"\ - : "=r" (var) \ + : "+r" (var) \ : \ : "x0" \ ); } while(0) @@ -163,7 +163,7 @@ extern "C" { \ METAL_WMR_GAS(METAL_REG_MR0, AARCH_REG_X1) \ METAL_WMR_GAS(METAL_REG_MR1, AARCH_REG_X2) \ - : "=r" (var) \ + : "+r" (var) \ : "r" (idxvar)\ : "x0", "x1", "x2" \ ); } while(0) @@ -262,7 +262,7 @@ extern "C" { "mov x2, #0;" \ cmd \ "mov %x0, x0;" \ - : "=r" (var) \ + : "+r" (var) \ : "r" (paddr) \ : "x0", "x1", "x2" \ ); } while (0) diff --git a/sys/arm64/include/paging.h b/sys/arm64/include/paging.h index 3712d96..eba9363 100644 --- a/sys/arm64/include/paging.h +++ b/sys/arm64/include/paging.h @@ -74,7 +74,7 @@ _Static_assert(sizeof(struct vmpt) == VM_PTBUCKETS * sizeof(struct vmpte)); // #define VMPD_ATTR_CA_NORMAL (VMPD_ATTR_CA_MAKE(0ull)) // #define VMPD_ATTR_CA_DEVICE (VMPD_ATTR_CA_MAKE(1ull)) -#define MTP_KERNEL (0b0011 | (0b0001 << 4) | (0b0001 << 8) | (0b0001 << 12)) +#define MTP_KERNEL (0b0010 | (0b0000 << 4) | (0b0010 << 8) | (0b0000 << 12)) #define MTP_USER (0b0010 | (0b0000 << 4) | (0b0011 << 8) | (0b0010 << 12)) struct vmpd {