44use std:: borrow:: Cow ;
55
66use rustc_middle:: mir;
7+ use rustc_target:: abi:: call:: PassMode ;
78
89use cranelift_codegen:: entity:: EntityRef ;
910
10- use crate :: abi:: pass_mode:: * ;
1111use crate :: prelude:: * ;
1212
1313pub ( super ) fn add_args_header_comment ( fx : & mut FunctionCx < ' _ , ' _ , impl Module > ) {
@@ -21,9 +21,9 @@ pub(super) fn add_arg_comment<'tcx>(
2121 kind : & str ,
2222 local : Option < mir:: Local > ,
2323 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 > ,
2727) {
2828 let local = if let Some ( local) = local {
2929 Cow :: Owned ( format ! ( "{:?}" , local) )
@@ -37,20 +37,28 @@ pub(super) fn add_arg_comment<'tcx>(
3737 } ;
3838
3939 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+ ) ) ,
4351 } ;
4452
45- let pass_mode = format ! ( "{:?}" , pass_mode ) ;
53+ let pass_mode = format ! ( "{:?}" , arg_abi_mode ) ;
4654 fx. add_global_comment ( format ! (
4755 "{kind:5}{local:>3}{local_field:<5} {params:10} {pass_mode:36} {ty:?}" ,
4856 kind = kind,
4957 local = local,
5058 local_field = local_field,
5159 params = params,
5260 pass_mode = pass_mode,
53- ty = ty,
61+ ty = arg_layout . ty,
5462 ) ) ;
5563}
5664
0 commit comments