Fixes for TCB arch_read on aarch64

This commit is contained in:
Jeremy Soller
2021-04-28 21:29:09 -06:00
parent 22b1cb957f
commit 602fd9fe08
+6 -11
View File
@@ -214,20 +214,15 @@ impl Tcb {
#[inline(always)]
#[cfg(target_arch = "aarch64")]
unsafe fn arch_read(offset: usize) -> usize {
let mut value = 0usize;
let mut tmp = 0usize;
llvm_asm!("
mrs $0, tpidr_el0
add $0, $0, $2
ldr $1, [$0]
"
: "=r"(tmp), "=r"(value)
: "r"(offset)
let tp: usize;
llvm_asm!("mrs $0, tpidr_el0"
: "=r"(tp)
:
:
: "volatile"
);
value
*((tp + offset) as *const usize)
}
/// Architecture specific code to read a usize from the TCB - x86_64