@@ -356,15 +356,14 @@ fn store_trap<T: FnMut(&str) -> bool>(arch: RiscvArch, mut filter: T) -> String
356
356
RiscvArch :: Rv32 => ( 4 , "sw" ) ,
357
357
RiscvArch :: Rv64 => ( 8 , "sd" ) ,
358
358
} ;
359
- let mut stores = Vec :: new ( ) ;
360
- for ( i , reg ) in TRAP_FRAME
359
+
360
+ TRAP_FRAME
361
361
. iter ( )
362
362
. enumerate ( )
363
363
. filter ( |( _, & reg) | filter ( reg) )
364
- {
365
- stores. push ( format ! ( "{store} {reg}, {i}*{width}(sp)" ) ) ;
366
- }
367
- stores. join ( "\n " )
364
+ . map ( |( i, reg) | format ! ( "{store} {reg}, {i}*{width}(sp)" ) )
365
+ . collect :: < Vec < _ > > ( )
366
+ . join ( "\n " )
368
367
}
369
368
370
369
/// Generate the assembly instructions to load the trap frame.
@@ -374,11 +373,12 @@ fn load_trap(arch: RiscvArch) -> String {
374
373
RiscvArch :: Rv32 => ( 4 , "lw" ) ,
375
374
RiscvArch :: Rv64 => ( 8 , "ld" ) ,
376
375
} ;
377
- let mut loads = Vec :: new ( ) ;
378
- for ( i, reg) in TRAP_FRAME . iter ( ) . enumerate ( ) {
379
- loads. push ( format ! ( "{load} {reg}, {i}*{width}(sp)" ) ) ;
380
- }
381
- loads. join ( "\n " )
376
+ TRAP_FRAME
377
+ . iter ( )
378
+ . enumerate ( )
379
+ . map ( |( i, reg) | format ! ( "{load} {reg}, {i}*{width}(sp)" ) )
380
+ . collect :: < Vec < _ > > ( )
381
+ . join ( "\n " )
382
382
}
383
383
384
384
/// Generates weak `_start_trap` function in assembly for RISCV-32 targets.
@@ -428,7 +428,7 @@ fn weak_start_trap(arch: RiscvArch) -> TokenStream {
428
428
format ! (
429
429
r#"
430
430
core::arch::global_asm!(
431
- ".section .trap, \\ "ax\ \"
431
+ ".section .trap, \"ax\"
432
432
.align {width}
433
433
.weak _start_trap
434
434
_start_trap:
@@ -481,7 +481,7 @@ fn vectored_interrupt_trap(arch: RiscvArch) -> TokenStream {
481
481
let instructions = format ! (
482
482
r#"
483
483
core::arch::global_asm!(
484
- ".section .trap, \\ "ax\ \"
484
+ ".section .trap, \"ax\"
485
485
486
486
.global _start_DefaultHandler_trap
487
487
_start_DefaultHandler_trap:
@@ -586,7 +586,7 @@ fn start_interrupt_trap(ident: &syn::Ident, arch: RiscvArch) -> proc_macro2::Tok
586
586
let instructions = format ! (
587
587
r#"
588
588
core::arch::global_asm!(
589
- ".section .trap, \\ "ax\ \"
589
+ ".section .trap, \"ax\"
590
590
.align 2
591
591
.global _start_{interrupt}_trap
592
592
_start_{interrupt}_trap:
0 commit comments