From 5cc40831efad30689ef008b448d80fc7243b341d Mon Sep 17 00:00:00 2001 From: "David L. Campbell" Date: Sun, 31 May 2020 20:48:19 -0400 Subject: [PATCH 1/2] Rename asm to llvm_asm. --- src/arch/aarch64.rs | 14 +++++++------- src/arch/arm.rs | 14 +++++++------- src/arch/x86.rs | 14 +++++++------- src/arch/x86_64.rs | 14 +++++++------- src/io/pio.rs | 12 ++++++------ src/lib.rs | 2 +- 6 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/arch/aarch64.rs b/src/arch/aarch64.rs index 662f428..33715a3 100644 --- a/src/arch/aarch64.rs +++ b/src/arch/aarch64.rs @@ -1,7 +1,7 @@ use super::error::{Error, Result}; pub unsafe fn syscall0(mut a: usize) -> Result { - asm!("svc 0" + llvm_asm!("svc 0" : "={x0}"(a) : "{x8}"(a) : "x0", "x8" @@ -11,7 +11,7 @@ pub unsafe fn syscall0(mut a: usize) -> Result { } pub unsafe fn syscall1(mut a: usize, b: usize) -> Result { - asm!("svc 0" + llvm_asm!("svc 0" : "={x0}"(a) : "{x8}"(a), "{x0}"(b) : "x0", "x8" @@ -22,7 +22,7 @@ pub unsafe fn syscall1(mut a: usize, b: usize) -> Result { // Clobbers all registers - special for clone pub unsafe fn syscall1_clobber(mut a: usize, b: usize) -> Result { - asm!("svc 0" + llvm_asm!("svc 0" : "={x0}"(a) : "{x8}"(a), "{x0}"(b) : "memory", @@ -36,7 +36,7 @@ pub unsafe fn syscall1_clobber(mut a: usize, b: usize) -> Result { } pub unsafe fn syscall2(mut a: usize, b: usize, c: usize) -> Result { - asm!("svc 0" + llvm_asm!("svc 0" : "={x0}"(a) : "{x8}"(a), "{x0}"(b), "{x1}"(c) : "x0", "x1", "x8" @@ -46,7 +46,7 @@ pub unsafe fn syscall2(mut a: usize, b: usize, c: usize) -> Result { } pub unsafe fn syscall3(mut a: usize, b: usize, c: usize, d: usize) -> Result { - asm!("svc 0" + llvm_asm!("svc 0" : "={x0}"(a) : "{x8}"(a), "{x0}"(b), "{x1}"(c), "{x2}"(d) : "x0", "x1", "x2", "x8" @@ -56,7 +56,7 @@ pub unsafe fn syscall3(mut a: usize, b: usize, c: usize, d: usize) -> Result Result { - asm!("svc 0" + llvm_asm!("svc 0" : "={x0}"(a) : "{x8}"(a), "{x0}"(b), "{x1}"(c), "{x2}"(d), "{x3}"(e) : "x0", "x1", "x2", "x3", "x8" @@ -67,7 +67,7 @@ pub unsafe fn syscall4(mut a: usize, b: usize, c: usize, d: usize, e: usize) -> pub unsafe fn syscall5(mut a: usize, b: usize, c: usize, d: usize, e: usize, f: usize) -> Result { - asm!("svc 0" + llvm_asm!("svc 0" : "={x0}"(a) : "{x8}"(a), "{x0}"(b), "{x1}"(c), "{x2}"(d), "{x3}"(e), "{x4}"(f) : "x0", "x1", "x2", "x3", "x4", "x8" diff --git a/src/arch/arm.rs b/src/arch/arm.rs index e640f7e..fb852d8 100644 --- a/src/arch/arm.rs +++ b/src/arch/arm.rs @@ -1,7 +1,7 @@ use super::error::{Error, Result}; pub unsafe fn syscall0(mut a: usize) -> Result { - asm!("swi $$0" + llvm_asm!("swi $$0" : "={r0}"(a) : "{r7}"(a) : "memory" @@ -11,7 +11,7 @@ pub unsafe fn syscall0(mut a: usize) -> Result { } pub unsafe fn syscall1(mut a: usize, b: usize) -> Result { - asm!("swi $$0" + llvm_asm!("swi $$0" : "={r0}"(a) : "{r7}"(a), "{r0}"(b) : "memory" @@ -22,7 +22,7 @@ pub unsafe fn syscall1(mut a: usize, b: usize) -> Result { // Clobbers all registers - special for clone pub unsafe fn syscall1_clobber(mut a: usize, b: usize) -> Result { - asm!("swi $$0" + llvm_asm!("swi $$0" : "={r0}"(a) : "{r7}"(a), "{r0}"(b) : "memory", "r0", "r1", "r2", "r3", "r4" @@ -32,7 +32,7 @@ pub unsafe fn syscall1_clobber(mut a: usize, b: usize) -> Result { } pub unsafe fn syscall2(mut a: usize, b: usize, c: usize) -> Result { - asm!("swi $$0" + llvm_asm!("swi $$0" : "={r0}"(a) : "{r7}"(a), "{r0}"(b), "{r1}"(c) : "memory" @@ -42,7 +42,7 @@ pub unsafe fn syscall2(mut a: usize, b: usize, c: usize) -> Result { } pub unsafe fn syscall3(mut a: usize, b: usize, c: usize, d: usize) -> Result { - asm!("swi $$0" + llvm_asm!("swi $$0" : "={r0}"(a) : "{r7}"(a), "{r0}"(b), "{r1}"(c), "{r2}"(d) : "memory" @@ -52,7 +52,7 @@ pub unsafe fn syscall3(mut a: usize, b: usize, c: usize, d: usize) -> Result Result { - asm!("swi $$0" + llvm_asm!("swi $$0" : "={r0}"(a) : "{r7}"(a), "{r0}"(b), "{r1}"(c), "{r2}"(d), "{r3}"(e) : "memory" @@ -63,7 +63,7 @@ pub unsafe fn syscall4(mut a: usize, b: usize, c: usize, d: usize, e: usize) -> pub unsafe fn syscall5(mut a: usize, b: usize, c: usize, d: usize, e: usize, f: usize) -> Result { - asm!("swi $$0" + llvm_asm!("swi $$0" : "={r0}"(a) : "{r7}"(a), "{r0}"(b), "{r1}"(c), "{r2}"(d), "{r3}"(e), "{r4}"(f) : "memory" diff --git a/src/arch/x86.rs b/src/arch/x86.rs index 0cd6409..93e3e58 100644 --- a/src/arch/x86.rs +++ b/src/arch/x86.rs @@ -1,7 +1,7 @@ use super::error::{Error, Result}; pub unsafe fn syscall0(mut a: usize) -> Result { - asm!("int 0x80" + llvm_asm!("int 0x80" : "={eax}"(a) : "{eax}"(a) : "memory" @@ -11,7 +11,7 @@ pub unsafe fn syscall0(mut a: usize) -> Result { } pub unsafe fn syscall1(mut a: usize, b: usize) -> Result { - asm!("int 0x80" + llvm_asm!("int 0x80" : "={eax}"(a) : "{eax}"(a), "{ebx}"(b) : "memory" @@ -22,7 +22,7 @@ pub unsafe fn syscall1(mut a: usize, b: usize) -> Result { // Clobbers all registers - special for clone pub unsafe fn syscall1_clobber(mut a: usize, b: usize) -> Result { - asm!("int 0x80" + llvm_asm!("int 0x80" : "={eax}"(a) : "{eax}"(a), "{ebx}"(b) : "memory", "ebx", "ecx", "edx", "esi", "edi" @@ -32,7 +32,7 @@ pub unsafe fn syscall1_clobber(mut a: usize, b: usize) -> Result { } pub unsafe fn syscall2(mut a: usize, b: usize, c: usize) -> Result { - asm!("int 0x80" + llvm_asm!("int 0x80" : "={eax}"(a) : "{eax}"(a), "{ebx}"(b), "{ecx}"(c) : "memory" @@ -42,7 +42,7 @@ pub unsafe fn syscall2(mut a: usize, b: usize, c: usize) -> Result { } pub unsafe fn syscall3(mut a: usize, b: usize, c: usize, d: usize) -> Result { - asm!("int 0x80" + llvm_asm!("int 0x80" : "={eax}"(a) : "{eax}"(a), "{ebx}"(b), "{ecx}"(c), "{edx}"(d) : "memory" @@ -52,7 +52,7 @@ pub unsafe fn syscall3(mut a: usize, b: usize, c: usize, d: usize) -> Result Result { - asm!("int 0x80" + llvm_asm!("int 0x80" : "={eax}"(a) : "{eax}"(a), "{ebx}"(b), "{ecx}"(c), "{edx}"(d), "{esi}"(e) : "memory" @@ -63,7 +63,7 @@ pub unsafe fn syscall4(mut a: usize, b: usize, c: usize, d: usize, e: usize) -> pub unsafe fn syscall5(mut a: usize, b: usize, c: usize, d: usize, e: usize, f: usize) -> Result { - asm!("int 0x80" + llvm_asm!("int 0x80" : "={eax}"(a) : "{eax}"(a), "{ebx}"(b), "{ecx}"(c), "{edx}"(d), "{esi}"(e), "{edi}"(f) : "memory" diff --git a/src/arch/x86_64.rs b/src/arch/x86_64.rs index 76c3da1..425c83c 100644 --- a/src/arch/x86_64.rs +++ b/src/arch/x86_64.rs @@ -1,7 +1,7 @@ use super::error::{Error, Result}; pub unsafe fn syscall0(mut a: usize) -> Result { - asm!("syscall" + llvm_asm!("syscall" : "={rax}"(a) : "{rax}"(a) : "rcx", "r11", "memory" @@ -11,7 +11,7 @@ pub unsafe fn syscall0(mut a: usize) -> Result { } pub unsafe fn syscall1(mut a: usize, b: usize) -> Result { - asm!("syscall" + llvm_asm!("syscall" : "={rax}"(a) : "{rax}"(a), "{rdi}"(b) : "rcx", "r11", "memory" @@ -22,7 +22,7 @@ pub unsafe fn syscall1(mut a: usize, b: usize) -> Result { // Clobbers all registers - special for clone pub unsafe fn syscall1_clobber(mut a: usize, b: usize) -> Result { - asm!("syscall" + llvm_asm!("syscall" : "={rax}"(a) : "{rax}"(a), "{rdi}"(b) : "memory", "rbx", "rcx", "rdx", "rsi", "rdi", "r8", @@ -33,7 +33,7 @@ pub unsafe fn syscall1_clobber(mut a: usize, b: usize) -> Result { } pub unsafe fn syscall2(mut a: usize, b: usize, c: usize) -> Result { - asm!("syscall" + llvm_asm!("syscall" : "={rax}"(a) : "{rax}"(a), "{rdi}"(b), "{rsi}"(c) : "rcx", "r11", "memory" @@ -43,7 +43,7 @@ pub unsafe fn syscall2(mut a: usize, b: usize, c: usize) -> Result { } pub unsafe fn syscall3(mut a: usize, b: usize, c: usize, d: usize) -> Result { - asm!("syscall" + llvm_asm!("syscall" : "={rax}"(a) : "{rax}"(a), "{rdi}"(b), "{rsi}"(c), "{rdx}"(d) : "rcx", "r11", "memory" @@ -53,7 +53,7 @@ pub unsafe fn syscall3(mut a: usize, b: usize, c: usize, d: usize) -> Result Result { - asm!("syscall" + llvm_asm!("syscall" : "={rax}"(a) : "{rax}"(a), "{rdi}"(b), "{rsi}"(c), "{rdx}"(d), "{r10}"(e) : "rcx", "r11", "memory" @@ -64,7 +64,7 @@ pub unsafe fn syscall4(mut a: usize, b: usize, c: usize, d: usize, e: usize) -> pub unsafe fn syscall5(mut a: usize, b: usize, c: usize, d: usize, e: usize, f: usize) -> Result { - asm!("syscall" + llvm_asm!("syscall" : "={rax}"(a) : "{rax}"(a), "{rdi}"(b), "{rsi}"(c), "{rdx}"(d), "{r10}"(e), "{r8}"(f) : "rcx", "r11", "memory" diff --git a/src/io/pio.rs b/src/io/pio.rs index 91ae310..3d4d696 100644 --- a/src/io/pio.rs +++ b/src/io/pio.rs @@ -28,7 +28,7 @@ impl Io for Pio { fn read(&self) -> u8 { let value: u8; unsafe { - asm!("in $0, $1" : "={al}"(value) : "{dx}"(self.port) : "memory" : "intel", "volatile"); + llvm_asm!("in $0, $1" : "={al}"(value) : "{dx}"(self.port) : "memory" : "intel", "volatile"); } value } @@ -37,7 +37,7 @@ impl Io for Pio { #[inline(always)] fn write(&mut self, value: u8) { unsafe { - asm!("out $1, $0" : : "{al}"(value), "{dx}"(self.port) : "memory" : "intel", "volatile"); + llvm_asm!("out $1, $0" : : "{al}"(value), "{dx}"(self.port) : "memory" : "intel", "volatile"); } } } @@ -51,7 +51,7 @@ impl Io for Pio { fn read(&self) -> u16 { let value: u16; unsafe { - asm!("in $0, $1" : "={ax}"(value) : "{dx}"(self.port) : "memory" : "intel", "volatile"); + llvm_asm!("in $0, $1" : "={ax}"(value) : "{dx}"(self.port) : "memory" : "intel", "volatile"); } value } @@ -60,7 +60,7 @@ impl Io for Pio { #[inline(always)] fn write(&mut self, value: u16) { unsafe { - asm!("out $1, $0" : : "{ax}"(value), "{dx}"(self.port) : "memory" : "intel", "volatile"); + llvm_asm!("out $1, $0" : : "{ax}"(value), "{dx}"(self.port) : "memory" : "intel", "volatile"); } } } @@ -74,7 +74,7 @@ impl Io for Pio { fn read(&self) -> u32 { let value: u32; unsafe { - asm!("in $0, $1" : "={eax}"(value) : "{dx}"(self.port) : "memory" : "intel", "volatile"); + llvm_asm!("in $0, $1" : "={eax}"(value) : "{dx}"(self.port) : "memory" : "intel", "volatile"); } value } @@ -83,7 +83,7 @@ impl Io for Pio { #[inline(always)] fn write(&mut self, value: u32) { unsafe { - asm!("out $1, $0" : : "{eax}"(value), "{dx}"(self.port) : "memory" : "intel", "volatile"); + llvm_asm!("out $1, $0" : : "{eax}"(value), "{dx}"(self.port) : "memory" : "intel", "volatile"); } } } diff --git a/src/lib.rs b/src/lib.rs index fa958b7..607ed5f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,4 @@ -#![feature(asm)] +#![feature(llvm_asm)] #![feature(const_fn)] // see https://github.com/rust-lang/rfcs/pull/2632 #![cfg_attr(not(test), no_std)] From af890302eb51b9d875829c490870e8ba5809ca1b Mon Sep 17 00:00:00 2001 From: Aaron Janse Date: Mon, 27 Jul 2020 17:11:41 -0700 Subject: [PATCH 2/2] bump version to 0.2.0 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index e935f86..e661f00 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "redox_syscall" -version = "0.1.56" +version = "0.2.0" description = "A Rust library to access raw Redox system calls" license = "MIT" authors = ["Jeremy Soller "]