Skip to content

Commit dd44fe1

Browse files
committed
Change ExternAbi to FnAbi where necessary
1 parent 1bb9206 commit dd44fe1

File tree

14 files changed

+37
-17
lines changed

14 files changed

+37
-17
lines changed

src/tools/miri/src/shims/foreign_items.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,6 @@ trait EvalContextExtPriv<'tcx>: crate::MiriInterpCxExt<'tcx> {
221221
&mut self,
222222
link_name: Symbol,
223223
abi: &FnAbi<'tcx, Ty<'tcx>>,
224-
_fnabi: &FnAbi<'tcx, Ty<'tcx>>,
225224
args: &[OpTy<'tcx>],
226225
dest: &MPlaceTy<'tcx>,
227226
) -> InterpResult<'tcx, EmulateItemResult> {
@@ -238,7 +237,7 @@ trait EvalContextExtPriv<'tcx>: crate::MiriInterpCxExt<'tcx> {
238237
return interp_ok(EmulateItemResult::NeedsReturn);
239238
}
240239
}
241-
240+
// TODO: update the comment here
242241
// When adding a new shim, you should follow the following pattern:
243242
// ```
244243
// "shim_name" => {

src/tools/miri/src/shims/x86/aesni.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use rustc_abi::ExternAbi;
22
use rustc_middle::ty::Ty;
33
use rustc_middle::ty::layout::LayoutOf as _;
44
use rustc_span::Symbol;
5+
use rustc_target::callconv::FnAbi;
56

67
use crate::*;
78

@@ -10,7 +11,7 @@ pub(super) trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
1011
fn emulate_x86_aesni_intrinsic(
1112
&mut self,
1213
link_name: Symbol,
13-
abi: ExternAbi,
14+
abi: &FnAbi<'tcx, Ty<'tcx>>,
1415
args: &[OpTy<'tcx>],
1516
dest: &MPlaceTy<'tcx>,
1617
) -> InterpResult<'tcx, EmulateItemResult> {

src/tools/miri/src/shims/x86/avx.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use rustc_middle::mir;
44
use rustc_middle::ty::Ty;
55
use rustc_middle::ty::layout::LayoutOf as _;
66
use rustc_span::Symbol;
7+
use rustc_target::callconv::FnAbi;
78

89
use super::{
910
FloatBinOp, FloatUnaryOp, bin_op_simd_float_all, conditional_dot_product, convert_float_to_int,
@@ -17,7 +18,7 @@ pub(super) trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
1718
fn emulate_x86_avx_intrinsic(
1819
&mut self,
1920
link_name: Symbol,
20-
abi: ExternAbi,
21+
abi: &FnAbi<'tcx, Ty<'tcx>>,
2122
args: &[OpTy<'tcx>],
2223
dest: &MPlaceTy<'tcx>,
2324
) -> InterpResult<'tcx, EmulateItemResult> {

src/tools/miri/src/shims/x86/avx2.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use rustc_middle::mir;
33
use rustc_middle::ty::Ty;
44
use rustc_middle::ty::layout::LayoutOf as _;
55
use rustc_span::Symbol;
6+
use rustc_target::callconv::FnAbi;
67

78
use super::{
89
ShiftOp, horizontal_bin_op, int_abs, mask_load, mask_store, mpsadbw, packssdw, packsswb,
@@ -15,7 +16,7 @@ pub(super) trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
1516
fn emulate_x86_avx2_intrinsic(
1617
&mut self,
1718
link_name: Symbol,
18-
abi: ExternAbi,
19+
abi: &FnAbi<'tcx, Ty<'tcx>>,
1920
args: &[OpTy<'tcx>],
2021
dest: &MPlaceTy<'tcx>,
2122
) -> InterpResult<'tcx, EmulateItemResult> {

src/tools/miri/src/shims/x86/bmi.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
use rustc_abi::ExternAbi;
22
use rustc_span::Symbol;
3+
use rustc_target::callconv::FnAbi;
4+
use rustc_middle::ty::Ty;
35

46
use crate::*;
57

@@ -8,7 +10,7 @@ pub(super) trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
810
fn emulate_x86_bmi_intrinsic(
911
&mut self,
1012
link_name: Symbol,
11-
abi: ExternAbi,
13+
abi: &FnAbi<'tcx, Ty<'tcx>>,
1214
args: &[OpTy<'tcx>],
1315
dest: &MPlaceTy<'tcx>,
1416
) -> InterpResult<'tcx, EmulateItemResult> {

src/tools/miri/src/shims/x86/gfni.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
use rustc_abi::ExternAbi;
22
use rustc_span::Symbol;
3+
use rustc_target::callconv::FnAbi;
4+
use rustc_middle::ty::Ty;
35

46
use crate::*;
57

@@ -8,7 +10,7 @@ pub(super) trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
810
fn emulate_x86_gfni_intrinsic(
911
&mut self,
1012
link_name: Symbol,
11-
abi: ExternAbi,
13+
abi: &FnAbi<'tcx, Ty<'tcx>>,
1214
args: &[OpTy<'tcx>],
1315
dest: &MPlaceTy<'tcx>,
1416
) -> InterpResult<'tcx, EmulateItemResult> {

src/tools/miri/src/shims/x86/mod.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ use rustc_middle::ty::Ty;
66
use rustc_middle::ty::layout::LayoutOf as _;
77
use rustc_middle::{mir, ty};
88
use rustc_span::Symbol;
9+
use rustc_target::callconv::FnAbi;
910

1011
use self::helpers::bool_to_simd_element;
1112
use crate::*;
@@ -28,7 +29,7 @@ pub(super) trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
2829
fn emulate_x86_intrinsic(
2930
&mut self,
3031
link_name: Symbol,
31-
abi: ExternAbi,
32+
abi: &FnAbi<'tcx, Ty<'tcx>>,
3233
args: &[OpTy<'tcx>],
3334
dest: &MPlaceTy<'tcx>,
3435
) -> InterpResult<'tcx, EmulateItemResult> {
@@ -69,7 +70,7 @@ pub(super) trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
6970
if is_u64 && this.tcx.sess.target.arch != "x86_64" {
7071
return interp_ok(EmulateItemResult::NotSupported);
7172
}
72-
73+
// TODO: How do we handle ExternAbi::Unadjusted??
7374
let [c_in, a, b, out] =
7475
this.check_shim(abi, ExternAbi::Unadjusted, link_name, args)?;
7576
let out = this.deref_pointer_as(

src/tools/miri/src/shims/x86/sha.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
77
use rustc_abi::ExternAbi;
88
use rustc_span::Symbol;
9+
use rustc_target::callconv::FnAbi;
10+
use rustc_middle::ty::Ty;
911

1012
use crate::*;
1113

@@ -14,7 +16,7 @@ pub(super) trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
1416
fn emulate_x86_sha_intrinsic(
1517
&mut self,
1618
link_name: Symbol,
17-
abi: ExternAbi,
19+
abi: &FnAbi<'tcx, Ty<'tcx>>,
1820
args: &[OpTy<'tcx>],
1921
dest: &MPlaceTy<'tcx>,
2022
) -> InterpResult<'tcx, EmulateItemResult> {

src/tools/miri/src/shims/x86/sse.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
use rustc_abi::ExternAbi;
22
use rustc_apfloat::ieee::Single;
33
use rustc_span::Symbol;
4+
use rustc_target::callconv::FnAbi;
5+
use rustc_middle::ty::Ty;
46

57
use super::{
68
FloatBinOp, FloatUnaryOp, bin_op_simd_float_all, bin_op_simd_float_first, unary_op_ps,
@@ -13,7 +15,7 @@ pub(super) trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
1315
fn emulate_x86_sse_intrinsic(
1416
&mut self,
1517
link_name: Symbol,
16-
abi: ExternAbi,
18+
abi: &FnAbi<'tcx, Ty<'tcx>>,
1719
args: &[OpTy<'tcx>],
1820
dest: &MPlaceTy<'tcx>,
1921
) -> InterpResult<'tcx, EmulateItemResult> {

src/tools/miri/src/shims/x86/sse2.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
use rustc_abi::ExternAbi;
22
use rustc_apfloat::ieee::Double;
33
use rustc_span::Symbol;
4+
use rustc_target::callconv::FnAbi;
5+
use rustc_middle::ty::Ty;
46

57
use super::{
68
FloatBinOp, ShiftOp, bin_op_simd_float_all, bin_op_simd_float_first, convert_float_to_int,
@@ -13,7 +15,7 @@ pub(super) trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
1315
fn emulate_x86_sse2_intrinsic(
1416
&mut self,
1517
link_name: Symbol,
16-
abi: ExternAbi,
18+
abi: &FnAbi<'tcx, Ty<'tcx>>,
1719
args: &[OpTy<'tcx>],
1820
dest: &MPlaceTy<'tcx>,
1921
) -> InterpResult<'tcx, EmulateItemResult> {

src/tools/miri/src/shims/x86/sse3.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
use rustc_abi::ExternAbi;
22
use rustc_middle::mir;
33
use rustc_span::Symbol;
4+
use rustc_target::callconv::FnAbi;
5+
use rustc_middle::ty::Ty;
46

57
use super::horizontal_bin_op;
68
use crate::*;
@@ -10,7 +12,7 @@ pub(super) trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
1012
fn emulate_x86_sse3_intrinsic(
1113
&mut self,
1214
link_name: Symbol,
13-
abi: ExternAbi,
15+
abi: &FnAbi<'tcx, Ty<'tcx>>,
1416
args: &[OpTy<'tcx>],
1517
dest: &MPlaceTy<'tcx>,
1618
) -> InterpResult<'tcx, EmulateItemResult> {

src/tools/miri/src/shims/x86/sse41.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
use rustc_abi::ExternAbi;
22
use rustc_span::Symbol;
3+
use rustc_target::callconv::FnAbi;
4+
use rustc_middle::ty::Ty;
35

46
use super::{conditional_dot_product, mpsadbw, packusdw, round_all, round_first, test_bits_masked};
57
use crate::*;
@@ -9,7 +11,7 @@ pub(super) trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
911
fn emulate_x86_sse41_intrinsic(
1012
&mut self,
1113
link_name: Symbol,
12-
abi: ExternAbi,
14+
abi: &FnAbi<'tcx, Ty<'tcx>>,
1315
args: &[OpTy<'tcx>],
1416
dest: &MPlaceTy<'tcx>,
1517
) -> InterpResult<'tcx, EmulateItemResult> {

src/tools/miri/src/shims/x86/sse42.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use rustc_middle::mir;
33
use rustc_middle::ty::Ty;
44
use rustc_middle::ty::layout::LayoutOf as _;
55
use rustc_span::Symbol;
6+
use rustc_target::callconv::FnAbi;
67

78
use crate::*;
89

@@ -200,7 +201,7 @@ fn deconstruct_args<'tcx>(
200201
unprefixed_name: &str,
201202
this: &mut MiriInterpCx<'tcx>,
202203
link_name: Symbol,
203-
abi: ExternAbi,
204+
abi: &FnAbi<'tcx, Ty<'tcx>>,
204205
args: &[OpTy<'tcx>],
205206
) -> InterpResult<'tcx, (OpTy<'tcx>, OpTy<'tcx>, Option<(u64, u64)>, u8)> {
206207
let array_layout_fn = |this: &mut MiriInterpCx<'tcx>, imm: u8| {
@@ -279,7 +280,7 @@ pub(super) trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
279280
fn emulate_x86_sse42_intrinsic(
280281
&mut self,
281282
link_name: Symbol,
282-
abi: ExternAbi,
283+
abi: &FnAbi<'tcx, Ty<'tcx>>,
283284
args: &[OpTy<'tcx>],
284285
dest: &MPlaceTy<'tcx>,
285286
) -> InterpResult<'tcx, EmulateItemResult> {

src/tools/miri/src/shims/x86/ssse3.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
use rustc_abi::ExternAbi;
22
use rustc_middle::mir;
33
use rustc_span::Symbol;
4+
use rustc_target::callconv::FnAbi;
5+
use rustc_middle::ty::Ty;
46

57
use super::{horizontal_bin_op, int_abs, pmulhrsw, psign};
68
use crate::*;
@@ -10,7 +12,7 @@ pub(super) trait EvalContextExt<'tcx>: crate::MiriInterpCxExt<'tcx> {
1012
fn emulate_x86_ssse3_intrinsic(
1113
&mut self,
1214
link_name: Symbol,
13-
abi: ExternAbi,
15+
abi: &FnAbi<'tcx, Ty<'tcx>>,
1416
args: &[OpTy<'tcx>],
1517
dest: &MPlaceTy<'tcx>,
1618
) -> InterpResult<'tcx, EmulateItemResult> {

0 commit comments

Comments
 (0)