4
4
use std:: borrow:: Cow ;
5
5
6
6
use rustc_middle:: mir;
7
+ use rustc_target:: abi:: call:: PassMode ;
7
8
8
9
use cranelift_codegen:: entity:: EntityRef ;
9
10
10
- use crate :: abi:: pass_mode:: * ;
11
11
use crate :: prelude:: * ;
12
12
13
13
pub ( super ) fn add_args_header_comment ( fx : & mut FunctionCx < ' _ , ' _ , impl Module > ) {
@@ -21,9 +21,9 @@ pub(super) fn add_arg_comment<'tcx>(
21
21
kind : & str ,
22
22
local : Option < mir:: Local > ,
23
23
local_field : Option < usize > ,
24
- params : EmptySinglePair < Value > ,
25
- pass_mode : PassMode ,
26
- ty : Ty < ' tcx > ,
24
+ params : & [ Value ] ,
25
+ arg_abi_mode : PassMode ,
26
+ arg_layout : TyAndLayout < ' tcx > ,
27
27
) {
28
28
let local = if let Some ( local) = local {
29
29
Cow :: Owned ( format ! ( "{:?}" , local) )
@@ -37,20 +37,28 @@ pub(super) fn add_arg_comment<'tcx>(
37
37
} ;
38
38
39
39
let params = match params {
40
- Empty => Cow :: Borrowed ( "-" ) ,
41
- Single ( param) => Cow :: Owned ( format ! ( "= {:?}" , param) ) ,
42
- Pair ( param_a, param_b) => Cow :: Owned ( format ! ( "= {:?}, {:?}" , param_a, param_b) ) ,
40
+ [ ] => Cow :: Borrowed ( "-" ) ,
41
+ [ param] => Cow :: Owned ( format ! ( "= {:?}" , param) ) ,
42
+ [ param_a, param_b] => Cow :: Owned ( format ! ( "= {:?},{:?}" , param_a, param_b) ) ,
43
+ params => Cow :: Owned ( format ! (
44
+ "= {}" ,
45
+ params
46
+ . iter( )
47
+ . map( ToString :: to_string)
48
+ . collect:: <Vec <_>>( )
49
+ . join( "," )
50
+ ) ) ,
43
51
} ;
44
52
45
- let pass_mode = format ! ( "{:?}" , pass_mode ) ;
53
+ let pass_mode = format ! ( "{:?}" , arg_abi_mode ) ;
46
54
fx. add_global_comment ( format ! (
47
55
"{kind:5}{local:>3}{local_field:<5} {params:10} {pass_mode:36} {ty:?}" ,
48
56
kind = kind,
49
57
local = local,
50
58
local_field = local_field,
51
59
params = params,
52
60
pass_mode = pass_mode,
53
- ty = ty,
61
+ ty = arg_layout . ty,
54
62
) ) ;
55
63
}
56
64
0 commit comments