Skip to content

Commit bf46a06

Browse files
committed
Replace asm with llvm_asm
See rust-lang/rust#68404
1 parent 0d9cbef commit bf46a06

File tree

12 files changed

+81
-80
lines changed

12 files changed

+81
-80
lines changed

src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
#![deny(warnings)]
1515
#![feature(asm)]
16+
#![feature(llvm_asm)]
1617
#![no_std]
1718

1819
#[cfg(test)]

src/platform/freebsd-x86_64/mod.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ pub mod nr;
1414
#[inline(always)]
1515
pub unsafe fn syscall0(n: usize) -> usize {
1616
let ret: usize;
17-
asm!("syscall" : "={rax}"(ret)
17+
llvm_asm!("syscall" : "={rax}"(ret)
1818
: "{rax}"(n)
1919
: "rcx", "r11", "memory"
2020
: "volatile");
@@ -24,7 +24,7 @@ pub unsafe fn syscall0(n: usize) -> usize {
2424
#[inline(always)]
2525
pub unsafe fn syscall1(n: usize, a1: usize) -> usize {
2626
let ret: usize;
27-
asm!("syscall" : "={rax}"(ret)
27+
llvm_asm!("syscall" : "={rax}"(ret)
2828
: "{rax}"(n), "{rdi}"(a1)
2929
: "rcx", "r11", "memory"
3030
: "volatile");
@@ -34,7 +34,7 @@ pub unsafe fn syscall1(n: usize, a1: usize) -> usize {
3434
#[inline(always)]
3535
pub unsafe fn syscall2(n: usize, a1: usize, a2: usize) -> usize {
3636
let ret: usize;
37-
asm!("syscall" : "={rax}"(ret)
37+
llvm_asm!("syscall" : "={rax}"(ret)
3838
: "{rax}"(n), "{rdi}"(a1), "{rsi}"(a2)
3939
: "rcx", "r11", "memory"
4040
: "volatile");
@@ -44,7 +44,7 @@ pub unsafe fn syscall2(n: usize, a1: usize, a2: usize) -> usize {
4444
#[inline(always)]
4545
pub unsafe fn syscall3(n: usize, a1: usize, a2: usize, a3: usize) -> usize {
4646
let ret: usize;
47-
asm!("syscall" : "={rax}"(ret)
47+
llvm_asm!("syscall" : "={rax}"(ret)
4848
: "{rax}"(n), "{rdi}"(a1), "{rsi}"(a2), "{rdx}"(a3)
4949
: "rcx", "r11", "memory"
5050
: "volatile");
@@ -59,7 +59,7 @@ pub unsafe fn syscall4(n: usize,
5959
a4: usize)
6060
-> usize {
6161
let ret: usize;
62-
asm!("syscall" : "={rax}"(ret)
62+
llvm_asm!("syscall" : "={rax}"(ret)
6363
: "{rax}"(n), "{rdi}"(a1), "{rsi}"(a2), "{rdx}"(a3),
6464
"{r10}"(a4)
6565
: "rcx", "r11", "memory"
@@ -76,7 +76,7 @@ pub unsafe fn syscall5(n: usize,
7676
a5: usize)
7777
-> usize {
7878
let ret: usize;
79-
asm!("syscall" : "={rax}"(ret)
79+
llvm_asm!("syscall" : "={rax}"(ret)
8080
: "{rax}"(n), "{rdi}"(a1), "{rsi}"(a2), "{rdx}"(a3),
8181
"{r10}"(a4), "{r8}"(a5)
8282
: "rcx", "r11", "memory"
@@ -94,7 +94,7 @@ pub unsafe fn syscall6(n: usize,
9494
a6: usize)
9595
-> usize {
9696
let ret: usize;
97-
asm!("syscall" : "={rax}"(ret)
97+
llvm_asm!("syscall" : "={rax}"(ret)
9898
: "{rax}"(n), "{rdi}"(a1), "{rsi}"(a2), "{rdx}"(a3),
9999
"{r10}"(a4), "{r8}"(a5), "{r9}"(a6)
100100
: "rcx", "r11", "memory"

src/platform/linux-aarch64/mod.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ pub mod nr;
1414
#[inline(always)]
1515
pub unsafe fn syscall0(n: usize) -> usize {
1616
let ret: usize;
17-
asm!("svc 0"
17+
llvm_asm!("svc 0"
1818
: "={x0}"(ret)
1919
: "{x8}"(n)
2020
: "memory" "cc"
@@ -25,7 +25,7 @@ pub unsafe fn syscall0(n: usize) -> usize {
2525
#[inline(always)]
2626
pub unsafe fn syscall1(n: usize, a1: usize) -> usize {
2727
let ret: usize;
28-
asm!("svc 0"
28+
llvm_asm!("svc 0"
2929
: "={x0}"(ret)
3030
: "{x8}"(n) "{x0}"(a1)
3131
: "memory" "cc"
@@ -36,7 +36,7 @@ pub unsafe fn syscall1(n: usize, a1: usize) -> usize {
3636
#[inline(always)]
3737
pub unsafe fn syscall2(n: usize, a1: usize, a2: usize) -> usize {
3838
let ret: usize;
39-
asm!("svc 0"
39+
llvm_asm!("svc 0"
4040
: "={x0}"(ret)
4141
: "{x8}"(n) "{x0}"(a1) "{x1}"(a2)
4242
: "memory" "cc"
@@ -47,7 +47,7 @@ pub unsafe fn syscall2(n: usize, a1: usize, a2: usize) -> usize {
4747
#[inline(always)]
4848
pub unsafe fn syscall3(n: usize, a1: usize, a2: usize, a3: usize) -> usize {
4949
let ret: usize;
50-
asm!("svc 0"
50+
llvm_asm!("svc 0"
5151
: "={x0}"(ret)
5252
: "{x8}"(n) "{x0}"(a1) "{x1}"(a2) "{x2}"(a3)
5353
: "memory" "cc"
@@ -63,7 +63,7 @@ pub unsafe fn syscall4(n: usize,
6363
a4: usize)
6464
-> usize {
6565
let ret: usize;
66-
asm!("svc 0"
66+
llvm_asm!("svc 0"
6767
: "={x0}"(ret)
6868
: "{x8}"(n) "{x0}"(a1) "{x1}"(a2) "{x2}"(a3) "{x3}"(a4)
6969
: "memory" "cc"
@@ -80,7 +80,7 @@ pub unsafe fn syscall5(n: usize,
8080
a5: usize)
8181
-> usize {
8282
let ret: usize;
83-
asm!("svc 0" : "={x0}"(ret)
83+
llvm_asm!("svc 0" : "={x0}"(ret)
8484
: "{x8}"(n) "{x0}"(a1) "{x1}"(a2) "{x2}"(a3) "{x3}"(a4) "{x4}"(a5)
8585
: "memory" "cc"
8686
: "volatile");
@@ -97,7 +97,7 @@ pub unsafe fn syscall6(n: usize,
9797
a6: usize)
9898
-> usize {
9999
let ret: usize;
100-
asm!("svc 0"
100+
llvm_asm!("svc 0"
101101
: "={x0}"(ret)
102102
: "{x8}"(n) "{x0}"(a1) "{x1}"(a2) "{x2}"(a3) "{x3}"(a4) "{x4}"(a5)
103103
"{x5}"(a6)

src/platform/linux-armeabi/mod.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ pub mod nr;
1414
#[inline(always)]
1515
pub unsafe fn syscall0(n: usize) -> usize {
1616
let ret: usize;
17-
asm!("swi $$0"
17+
llvm_asm!("swi $$0"
1818
: "={r0}"(ret)
1919
: "{r7}"(n)
2020
: "memory" "cc"
@@ -25,7 +25,7 @@ pub unsafe fn syscall0(n: usize) -> usize {
2525
#[inline(always)]
2626
pub unsafe fn syscall1(n: usize, a1: usize) -> usize {
2727
let ret: usize;
28-
asm!("swi $$0"
28+
llvm_asm!("swi $$0"
2929
: "={r0}"(ret)
3030
: "{r7}"(n) "{r0}"(a1)
3131
: "memory" "cc"
@@ -36,7 +36,7 @@ pub unsafe fn syscall1(n: usize, a1: usize) -> usize {
3636
#[inline(always)]
3737
pub unsafe fn syscall2(n: usize, a1: usize, a2: usize) -> usize {
3838
let ret: usize;
39-
asm!("swi $$0"
39+
llvm_asm!("swi $$0"
4040
: "={r0}"(ret)
4141
: "{r7}"(n) "{r0}"(a1) "{r1}"(a2)
4242
: "memory" "cc"
@@ -47,7 +47,7 @@ pub unsafe fn syscall2(n: usize, a1: usize, a2: usize) -> usize {
4747
#[inline(always)]
4848
pub unsafe fn syscall3(n: usize, a1: usize, a2: usize, a3: usize) -> usize {
4949
let ret: usize;
50-
asm!("swi $$0"
50+
llvm_asm!("swi $$0"
5151
: "={r0}"(ret)
5252
: "{r7}"(n) "{r0}"(a1) "{r1}"(a2) "{r2}"(a3)
5353
: "memory" "cc"
@@ -63,7 +63,7 @@ pub unsafe fn syscall4(n: usize,
6363
a4: usize)
6464
-> usize {
6565
let ret: usize;
66-
asm!("swi $$0"
66+
llvm_asm!("swi $$0"
6767
: "={r0}"(ret)
6868
: "{r7}"(n) "{r0}"(a1) "{r1}"(a2) "{r2}"(a3) "{r3}"(a4)
6969
: "memory" "cc"
@@ -80,7 +80,7 @@ pub unsafe fn syscall5(n: usize,
8080
a5: usize)
8181
-> usize {
8282
let ret: usize;
83-
asm!("swi $$0" : "={r0}"(ret)
83+
llvm_asm!("swi $$0" : "={r0}"(ret)
8484
: "{r7}"(n) "{r0}"(a1) "{r1}"(a2) "{r2}"(a3) "{r3}"(a4) "{r4}"(a5)
8585
: "memory" "cc"
8686
: "volatile");
@@ -97,7 +97,7 @@ pub unsafe fn syscall6(n: usize,
9797
a6: usize)
9898
-> usize {
9999
let ret: usize;
100-
asm!("swi $$0"
100+
llvm_asm!("swi $$0"
101101
: "={r0}"(ret)
102102
: "{r7}"(n) "{r0}"(a1) "{r1}"(a2) "{r2}"(a3) "{r3}"(a4) "{r4}"(a5)
103103
"{r5}"(a6)
@@ -117,7 +117,7 @@ pub unsafe fn syscall7(n: usize,
117117
a7: usize)
118118
-> usize {
119119
let ret: usize;
120-
asm!("swi $$0"
120+
llvm_asm!("swi $$0"
121121
: "={r0}"(ret)
122122
: "{r7}"(n) "{r0}"(a1) "{r1}"(a2) "{r2}"(a3) "{r3}"(a4) "{r4}"(a5)
123123
"{r5}"(a6) "{r6}"(a7)

src/platform/linux-mips/mod.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ pub mod nr;
2020
#[inline(always)]
2121
pub unsafe fn syscall0(mut nr: usize) -> usize {
2222
let success: usize;
23-
asm!("syscall"
23+
llvm_asm!("syscall"
2424
: "+{$2}"(nr) "={$7}"(success)
2525
:
2626
: "$8" "$9" "$10" "$11" "$12" "$13" "$14" "$15" "$24" "$25" "memory"
@@ -35,7 +35,7 @@ pub unsafe fn syscall0(mut nr: usize) -> usize {
3535
#[inline(always)]
3636
pub unsafe fn syscall1(mut nr: usize, a1: usize) -> usize {
3737
let success: usize;
38-
asm!("syscall"
38+
llvm_asm!("syscall"
3939
: "+{$2}"(nr) "={$7}"(success)
4040
: "{$4}"(a1)
4141
: "$8" "$9" "$10" "$11" "$12" "$13" "$14" "$15" "$24" "$25" "memory"
@@ -50,7 +50,7 @@ pub unsafe fn syscall1(mut nr: usize, a1: usize) -> usize {
5050
#[inline(always)]
5151
pub unsafe fn syscall2(mut nr: usize, a1: usize, a2: usize) -> usize {
5252
let success: usize;
53-
asm!("syscall"
53+
llvm_asm!("syscall"
5454
: "+{$2}"(nr) "={$7}"(success)
5555
: "{$4}"(a1) "{$5}"(a2)
5656
: "$8" "$9" "$10" "$11" "$12" "$13" "$14" "$15" "$24" "$25" "memory"
@@ -69,7 +69,7 @@ pub unsafe fn syscall3(mut nr: usize,
6969
a3: usize)
7070
-> usize {
7171
let success: usize;
72-
asm!("syscall"
72+
llvm_asm!("syscall"
7373
: "+{$2}"(nr) "={$7}"(success)
7474
: "{$4}"(a1) "{$5}"(a2) "{$6}"(a3)
7575
: "$8" "$9" "$10" "$11" "$12" "$13" "$14" "$15" "$24" "$25" "memory"
@@ -88,7 +88,7 @@ pub unsafe fn syscall4(mut nr: usize,
8888
a3: usize,
8989
mut a4: usize)
9090
-> usize {
91-
asm!("syscall"
91+
llvm_asm!("syscall"
9292
: "+{$2}"(nr) "+{$7}"(a4)
9393
: "{$4}"(a1) "{$5}"(a2) "{$6}"(a3)
9494
: "$8" "$9" "$10" "$11" "$12" "$13" "$14" "$15" "$24" "$25" "memory"
@@ -104,7 +104,7 @@ pub unsafe fn syscall5(mut nr: usize,
104104
mut a4: usize,
105105
a5: usize)
106106
-> usize {
107-
asm!(".set noat
107+
llvm_asm!(".set noat
108108
subu $$29,20
109109
sw $5, 16($$29)
110110
syscall
@@ -126,7 +126,7 @@ pub unsafe fn syscall6(mut nr: usize,
126126
a5: usize,
127127
a6: usize)
128128
-> usize {
129-
asm!(".set noat
129+
llvm_asm!(".set noat
130130
subu $$29,24
131131
sw $5, 16($$29)
132132
sw $6, 20($$29)

src/platform/linux-mips64/mod.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ pub mod nr;
1616
#[inline(always)]
1717
pub unsafe fn syscall0(mut nr: usize) -> usize {
1818
let success: usize;
19-
asm!("syscall"
19+
llvm_asm!("syscall"
2020
: "+{$2}"(nr) "={$7}"(success)
2121
:
2222
: "$8" "$9" "$10" "$11" "$12" "$13" "$14" "$15" "$24" "$25" "memory"
@@ -31,7 +31,7 @@ pub unsafe fn syscall0(mut nr: usize) -> usize {
3131
#[inline(always)]
3232
pub unsafe fn syscall1(mut nr: usize, a1: usize) -> usize {
3333
let success: usize;
34-
asm!("syscall"
34+
llvm_asm!("syscall"
3535
: "+{$2}"(nr) "={$7}"(success)
3636
: "{$4}"(a1)
3737
: "$8" "$9" "$10" "$11" "$12" "$13" "$14" "$15" "$24" "$25" "memory"
@@ -46,7 +46,7 @@ pub unsafe fn syscall1(mut nr: usize, a1: usize) -> usize {
4646
#[inline(always)]
4747
pub unsafe fn syscall2(mut nr: usize, a1: usize, a2: usize) -> usize {
4848
let success: usize;
49-
asm!("syscall"
49+
llvm_asm!("syscall"
5050
: "+{$2}"(nr) "={$7}"(success)
5151
: "{$4}"(a1) "{$5}"(a2)
5252
: "$8" "$9" "$10" "$11" "$12" "$13" "$14" "$15" "$24" "$25" "memory"
@@ -65,7 +65,7 @@ pub unsafe fn syscall3(mut nr: usize,
6565
a3: usize)
6666
-> usize {
6767
let success: usize;
68-
asm!("syscall"
68+
llvm_asm!("syscall"
6969
: "+{$2}"(nr) "={$7}"(success)
7070
: "{$4}"(a1) "{$5}"(a2) "{$6}"(a3)
7171
: "$8" "$9" "$10" "$11" "$12" "$13" "$14" "$15" "$24" "$25" "memory"
@@ -84,7 +84,7 @@ pub unsafe fn syscall4(mut nr: usize,
8484
a3: usize,
8585
mut a4: usize)
8686
-> usize {
87-
asm!("syscall"
87+
llvm_asm!("syscall"
8888
: "+{$2}"(nr) "+{$7}"(a4)
8989
: "{$4}"(a1) "{$5}"(a2) "{$6}"(a3)
9090
: "$8" "$9" "$10" "$11" "$12" "$13" "$14" "$15" "$24" "$25" "memory"
@@ -100,7 +100,7 @@ pub unsafe fn syscall5(mut nr: usize,
100100
mut a4: usize,
101101
a5: usize)
102102
-> usize {
103-
asm!("syscall"
103+
llvm_asm!("syscall"
104104
: "+{$2}"(nr) "+{$7}"(a4)
105105
: "{$4}"(a1) "{$5}"(a2) "{$6}"(a3) "{$8}"(a5)
106106
: "$9" "$10" "$11" "$12" "$13" "$14" "$15" "$24" "$25" "memory"
@@ -117,7 +117,7 @@ pub unsafe fn syscall6(mut nr: usize,
117117
a5: usize,
118118
a6: usize)
119119
-> usize {
120-
asm!("syscall"
120+
llvm_asm!("syscall"
121121
: "+{$2}"(nr) "+{$7}"(a4)
122122
: "{$4}"(a1) "{$5}"(a2) "{$6}"(a3) "{$8}"(a5) "{$9}"(a6)
123123
: "$10" "$11" "$12" "$13" "$14" "$15" "$24" "$25" "memory"

src/platform/linux-powerpc/mod.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ pub mod nr;
2222
#[inline(always)]
2323
pub unsafe fn syscall0(mut n: usize) -> usize {
2424
let ret: usize;
25-
asm!("sc
25+
llvm_asm!("sc
2626
bns+ 1f
2727
neg $1, $1
2828
1:"
@@ -35,7 +35,7 @@ pub unsafe fn syscall0(mut n: usize) -> usize {
3535

3636
#[inline(always)]
3737
pub unsafe fn syscall1(mut n: usize, mut a1: usize) -> usize {
38-
asm!("sc
38+
llvm_asm!("sc
3939
bns+ 1f
4040
neg $1, $1
4141
1:"
@@ -48,7 +48,7 @@ pub unsafe fn syscall1(mut n: usize, mut a1: usize) -> usize {
4848

4949
#[inline(always)]
5050
pub unsafe fn syscall2(mut n: usize, mut a1: usize, mut a2: usize) -> usize {
51-
asm!("sc
51+
llvm_asm!("sc
5252
bns+ 1f
5353
neg $1, $1
5454
1:"
@@ -65,7 +65,7 @@ pub unsafe fn syscall3(mut n: usize,
6565
mut a2: usize,
6666
mut a3: usize)
6767
-> usize {
68-
asm!("sc
68+
llvm_asm!("sc
6969
bns+ 1f
7070
neg $1, $1
7171
1:"
@@ -83,7 +83,7 @@ pub unsafe fn syscall4(mut n: usize,
8383
mut a3: usize,
8484
mut a4: usize)
8585
-> usize {
86-
asm!("sc
86+
llvm_asm!("sc
8787
bns+ 1f
8888
neg $1, $1
8989
1:"
@@ -102,7 +102,7 @@ pub unsafe fn syscall5(mut n: usize,
102102
mut a4: usize,
103103
mut a5: usize)
104104
-> usize {
105-
asm!("sc
105+
llvm_asm!("sc
106106
bns+ 1f
107107
neg $1, $1
108108
1:"
@@ -123,7 +123,7 @@ pub unsafe fn syscall6(mut n: usize,
123123
mut a5: usize,
124124
mut a6: usize)
125125
-> usize {
126-
asm!("sc
126+
llvm_asm!("sc
127127
bns+ 1f
128128
neg $1, $1
129129
1:"

0 commit comments

Comments
 (0)