From 21cf9e31fc04805682caf5bda4162a45f41b2b83 Mon Sep 17 00:00:00 2001 From: Robin Randhawa Date: Wed, 27 Jan 2021 17:20:33 +0000 Subject: [PATCH 1/2] aarch64: Remove vestiges of old syscallX functions Now that they have been replaced by the more modern macro magic versions. --- src/arch/aarch64.rs | 63 --------------------------------------------- 1 file changed, 63 deletions(-) diff --git a/src/arch/aarch64.rs b/src/arch/aarch64.rs index 0a6c0db..4bb346e 100644 --- a/src/arch/aarch64.rs +++ b/src/arch/aarch64.rs @@ -43,69 +43,6 @@ syscall! { syscall5(a, b, c, d, e, f,); } -/* -pub unsafe fn syscall0(mut a: usize) -> Result { - llvm_asm!("svc 0" - : "={x0}"(a) - : "{x8}"(a) - : "x0", "x8" - : "volatile"); - - Error::demux(a) -} - -pub unsafe fn syscall1(mut a: usize, b: usize) -> Result { - llvm_asm!("svc 0" - : "={x0}"(a) - : "{x8}"(a), "{x0}"(b) - : "x0", "x8" - : "volatile"); - - Error::demux(a) -} - -pub unsafe fn syscall2(mut a: usize, b: usize, c: usize) -> Result { - llvm_asm!("svc 0" - : "={x0}"(a) - : "{x8}"(a), "{x0}"(b), "{x1}"(c) - : "x0", "x1", "x8" - : "volatile"); - - Error::demux(a) -} - -pub unsafe fn syscall3(mut a: usize, b: usize, c: usize, d: usize) -> Result { - llvm_asm!("svc 0" - : "={x0}"(a) - : "{x8}"(a), "{x0}"(b), "{x1}"(c), "{x2}"(d) - : "x0", "x1", "x2", "x8" - : "volatile"); - - Error::demux(a) -} - -pub unsafe fn syscall4(mut a: usize, b: usize, c: usize, d: usize, e: usize) -> Result { - llvm_asm!("svc 0" - : "={x0}"(a) - : "{x8}"(a), "{x0}"(b), "{x1}"(c), "{x2}"(d), "{x3}"(e) - : "x0", "x1", "x2", "x3", "x8" - : "volatile"); - - Error::demux(a) -} - -pub unsafe fn syscall5(mut a: usize, b: usize, c: usize, d: usize, e: usize, f: usize) - -> Result { - llvm_asm!("svc 0" - : "={x0}"(a) - : "{x8}"(a), "{x0}"(b), "{x1}"(c), "{x2}"(d), "{x3}"(e), "{x4}"(f) - : "x0", "x1", "x2", "x3", "x4", "x8" - : "volatile"); - - Error::demux(a) -} -*/ - #[derive(Copy, Clone, Debug, Default)] #[repr(C)] pub struct IntRegisters { From beb880b706c74ceb2d749ff9d0196079cfb7e53e Mon Sep 17 00:00:00 2001 From: Robin Randhawa Date: Wed, 27 Jan 2021 17:21:22 +0000 Subject: [PATCH 2/2] aarch64: Basic Floating point/SIMD definition --- src/arch/aarch64.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/arch/aarch64.rs b/src/arch/aarch64.rs index 4bb346e..60e2238 100644 --- a/src/arch/aarch64.rs +++ b/src/arch/aarch64.rs @@ -103,10 +103,13 @@ impl DerefMut for IntRegisters { } } -//TODO #[derive(Clone, Copy, Debug, Default)] #[repr(packed)] -pub struct FloatRegisters; +pub struct FloatRegisters { + pub fp_simd_regs: [u128; 32], + pub fpsr: u32, + pub fpcr: u32 +} impl Deref for FloatRegisters { type Target = [u8];