Skip to content

Commit cfc1a2c

Browse files
committed
Remove decl_macro usage
This reduces the amount of unstable features used by cg_clif
1 parent e937265 commit cfc1a2c

File tree

3 files changed

+38
-36
lines changed

3 files changed

+38
-36
lines changed

src/compiler_builtins.rs

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
1-
macro builtin_functions($register:ident; $(fn $name:ident($($arg_name:ident: $arg_ty:ty),*) -> $ret_ty:ty;)*) {
2-
#[cfg(feature = "jit")]
3-
#[allow(improper_ctypes)]
4-
extern "C" {
5-
$(fn $name($($arg_name: $arg_ty),*) -> $ret_ty;)*
6-
}
1+
macro_rules! builtin_functions {
2+
($register:ident; $(fn $name:ident($($arg_name:ident: $arg_ty:ty),*) -> $ret_ty:ty;)*) => {
3+
#[cfg(feature = "jit")]
4+
#[allow(improper_ctypes)]
5+
extern "C" {
6+
$(fn $name($($arg_name: $arg_ty),*) -> $ret_ty;)*
7+
}
78

8-
#[cfg(feature = "jit")]
9-
pub(crate) fn $register(builder: &mut cranelift_jit::JITBuilder) {
10-
for (name, val) in [$((stringify!($name), $name as *const u8)),*] {
11-
builder.symbol(name, val);
9+
#[cfg(feature = "jit")]
10+
pub(crate) fn $register(builder: &mut cranelift_jit::JITBuilder) {
11+
for (name, val) in [$((stringify!($name), $name as *const u8)),*] {
12+
builder.symbol(name, val);
13+
}
1214
}
13-
}
15+
};
1416
}
1517

1618
builtin_functions! {

src/intrinsics/mod.rs

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,32 @@
11
//! Codegen of intrinsics. This includes `extern "rust-intrinsic"`, `extern "platform-intrinsic"`
22
//! and LLVM intrinsics that have symbol names starting with `llvm.`.
33
4-
mod cpuid;
5-
mod llvm;
6-
mod simd;
7-
8-
pub(crate) use cpuid::codegen_cpuid_call;
9-
pub(crate) use llvm::codegen_llvm_intrinsic_call;
10-
11-
use rustc_middle::ty::print::with_no_trimmed_paths;
12-
use rustc_middle::ty::subst::SubstsRef;
13-
use rustc_span::symbol::{kw, sym, Symbol};
14-
15-
use crate::prelude::*;
16-
use cranelift_codegen::ir::AtomicRmwOp;
17-
18-
macro intrinsic_pat {
4+
macro_rules! intrinsic_pat {
195
(_) => {
206
_
21-
},
7+
};
228
($name:ident) => {
239
sym::$name
24-
},
10+
};
2511
(kw.$name:ident) => {
2612
kw::$name
27-
},
13+
};
2814
($name:literal) => {
2915
$name
30-
},
16+
};
3117
}
3218

33-
macro intrinsic_arg {
34-
(o $fx:expr, $arg:ident) => {},
19+
macro_rules! intrinsic_arg {
20+
(o $fx:expr, $arg:ident) => {};
3521
(c $fx:expr, $arg:ident) => {
3622
let $arg = codegen_operand($fx, $arg);
37-
},
23+
};
3824
(v $fx:expr, $arg:ident) => {
3925
let $arg = codegen_operand($fx, $arg).load_scalar($fx);
40-
}
26+
};
4127
}
4228

43-
macro intrinsic_match {
29+
macro_rules! intrinsic_match {
4430
($fx:expr, $intrinsic:expr, $args:expr,
4531
_ => $unknown:block;
4632
$(
@@ -62,6 +48,20 @@ macro intrinsic_match {
6248
}
6349
}
6450

51+
mod cpuid;
52+
mod llvm;
53+
mod simd;
54+
55+
pub(crate) use cpuid::codegen_cpuid_call;
56+
pub(crate) use llvm::codegen_llvm_intrinsic_call;
57+
58+
use rustc_middle::ty::print::with_no_trimmed_paths;
59+
use rustc_middle::ty::subst::SubstsRef;
60+
use rustc_span::symbol::{kw, sym, Symbol};
61+
62+
use crate::prelude::*;
63+
use cranelift_codegen::ir::AtomicRmwOp;
64+
6565
fn report_atomic_type_validation_error<'tcx>(
6666
fx: &mut FunctionCx<'_, '_, 'tcx>,
6767
intrinsic: Symbol,

src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(rustc_private, decl_macro)]
1+
#![feature(rustc_private)]
22
#![cfg_attr(feature = "jit", feature(never_type, vec_into_raw_parts, once_cell))]
33
#![warn(rust_2018_idioms)]
44
#![warn(unused_lifetimes)]

0 commit comments

Comments
 (0)