@@ -2509,7 +2509,7 @@ impl Inst {
2509
2509
ScalarSize :: Size64 => F64 ,
2510
2510
_ => unimplemented ! ( ) ,
2511
2511
} ;
2512
- let rd = show_freg_sized ( rd. to_reg ( ) , mb_rru, size) ;
2512
+ let rd = show_vreg_scalar ( rd. to_reg ( ) , mb_rru, size) ;
2513
2513
let rn = show_vreg_element ( rn, mb_rru, idx, vector_type) ;
2514
2514
format ! ( "mov {}, {}" , rd, rn)
2515
2515
}
@@ -2524,8 +2524,8 @@ impl Inst {
2524
2524
FPUOp1 :: Cvt32To64 => ( "fcvt" , ScalarSize :: Size32 , ScalarSize :: Size64 ) ,
2525
2525
FPUOp1 :: Cvt64To32 => ( "fcvt" , ScalarSize :: Size64 , ScalarSize :: Size32 ) ,
2526
2526
} ;
2527
- let rd = show_freg_sized ( rd. to_reg ( ) , mb_rru, sizedest) ;
2528
- let rn = show_freg_sized ( rn, mb_rru, sizesrc) ;
2527
+ let rd = show_vreg_scalar ( rd. to_reg ( ) , mb_rru, sizedest) ;
2528
+ let rn = show_vreg_scalar ( rn, mb_rru, sizesrc) ;
2529
2529
format ! ( "{} {}, {}" , op, rd, rn)
2530
2530
}
2531
2531
& Inst :: FpuRRR { fpu_op, rd, rn, rm } => {
@@ -2543,9 +2543,9 @@ impl Inst {
2543
2543
FPUOp2 :: Min32 => ( "fmin" , ScalarSize :: Size32 ) ,
2544
2544
FPUOp2 :: Min64 => ( "fmin" , ScalarSize :: Size64 ) ,
2545
2545
} ;
2546
- let rd = show_freg_sized ( rd. to_reg ( ) , mb_rru, size) ;
2547
- let rn = show_freg_sized ( rn, mb_rru, size) ;
2548
- let rm = show_freg_sized ( rm, mb_rru, size) ;
2546
+ let rd = show_vreg_scalar ( rd. to_reg ( ) , mb_rru, size) ;
2547
+ let rn = show_vreg_scalar ( rn, mb_rru, size) ;
2548
+ let rm = show_vreg_scalar ( rm, mb_rru, size) ;
2549
2549
format ! ( "{} {}, {}, {}" , op, rd, rn, rm)
2550
2550
}
2551
2551
& Inst :: FpuRRI { fpu_op, rd, rn } => {
@@ -2559,7 +2559,7 @@ impl Inst {
2559
2559
let show_vreg_fn: fn ( Reg , Option < & RealRegUniverse > ) -> String = if vector {
2560
2560
|reg, mb_rru| show_vreg_vector ( reg, mb_rru, F32X2 )
2561
2561
} else {
2562
- |reg, mb_rru| show_vreg_scalar ( reg, mb_rru, F64 )
2562
+ |reg, mb_rru| show_vreg_scalar ( reg, mb_rru, ScalarSize :: Size64 )
2563
2563
} ;
2564
2564
let rd = show_vreg_fn ( rd. to_reg ( ) , mb_rru) ;
2565
2565
let rn = show_vreg_fn ( rn, mb_rru) ;
@@ -2576,30 +2576,30 @@ impl Inst {
2576
2576
FPUOp3 :: MAdd32 => ( "fmadd" , ScalarSize :: Size32 ) ,
2577
2577
FPUOp3 :: MAdd64 => ( "fmadd" , ScalarSize :: Size64 ) ,
2578
2578
} ;
2579
- let rd = show_freg_sized ( rd. to_reg ( ) , mb_rru, size) ;
2580
- let rn = show_freg_sized ( rn, mb_rru, size) ;
2581
- let rm = show_freg_sized ( rm, mb_rru, size) ;
2582
- let ra = show_freg_sized ( ra, mb_rru, size) ;
2579
+ let rd = show_vreg_scalar ( rd. to_reg ( ) , mb_rru, size) ;
2580
+ let rn = show_vreg_scalar ( rn, mb_rru, size) ;
2581
+ let rm = show_vreg_scalar ( rm, mb_rru, size) ;
2582
+ let ra = show_vreg_scalar ( ra, mb_rru, size) ;
2583
2583
format ! ( "{} {}, {}, {}, {}" , op, rd, rn, rm, ra)
2584
2584
}
2585
2585
& Inst :: FpuCmp32 { rn, rm } => {
2586
- let rn = show_freg_sized ( rn, mb_rru, ScalarSize :: Size32 ) ;
2587
- let rm = show_freg_sized ( rm, mb_rru, ScalarSize :: Size32 ) ;
2586
+ let rn = show_vreg_scalar ( rn, mb_rru, ScalarSize :: Size32 ) ;
2587
+ let rm = show_vreg_scalar ( rm, mb_rru, ScalarSize :: Size32 ) ;
2588
2588
format ! ( "fcmp {}, {}" , rn, rm)
2589
2589
}
2590
2590
& Inst :: FpuCmp64 { rn, rm } => {
2591
- let rn = show_freg_sized ( rn, mb_rru, ScalarSize :: Size64 ) ;
2592
- let rm = show_freg_sized ( rm, mb_rru, ScalarSize :: Size64 ) ;
2591
+ let rn = show_vreg_scalar ( rn, mb_rru, ScalarSize :: Size64 ) ;
2592
+ let rm = show_vreg_scalar ( rm, mb_rru, ScalarSize :: Size64 ) ;
2593
2593
format ! ( "fcmp {}, {}" , rn, rm)
2594
2594
}
2595
2595
& Inst :: FpuLoad32 { rd, ref mem, .. } => {
2596
- let rd = show_freg_sized ( rd. to_reg ( ) , mb_rru, ScalarSize :: Size32 ) ;
2596
+ let rd = show_vreg_scalar ( rd. to_reg ( ) , mb_rru, ScalarSize :: Size32 ) ;
2597
2597
let ( mem_str, mem) = mem_finalize_for_show ( mem, mb_rru, state) ;
2598
2598
let mem = mem. show_rru ( mb_rru) ;
2599
2599
format ! ( "{}ldr {}, {}" , mem_str, rd, mem)
2600
2600
}
2601
2601
& Inst :: FpuLoad64 { rd, ref mem, .. } => {
2602
- let rd = show_freg_sized ( rd. to_reg ( ) , mb_rru, ScalarSize :: Size64 ) ;
2602
+ let rd = show_vreg_scalar ( rd. to_reg ( ) , mb_rru, ScalarSize :: Size64 ) ;
2603
2603
let ( mem_str, mem) = mem_finalize_for_show ( mem, mb_rru, state) ;
2604
2604
let mem = mem. show_rru ( mb_rru) ;
2605
2605
format ! ( "{}ldr {}, {}" , mem_str, rd, mem)
@@ -2612,13 +2612,13 @@ impl Inst {
2612
2612
format ! ( "{}ldr {}, {}" , mem_str, rd, mem)
2613
2613
}
2614
2614
& Inst :: FpuStore32 { rd, ref mem, .. } => {
2615
- let rd = show_freg_sized ( rd, mb_rru, ScalarSize :: Size32 ) ;
2615
+ let rd = show_vreg_scalar ( rd, mb_rru, ScalarSize :: Size32 ) ;
2616
2616
let ( mem_str, mem) = mem_finalize_for_show ( mem, mb_rru, state) ;
2617
2617
let mem = mem. show_rru ( mb_rru) ;
2618
2618
format ! ( "{}str {}, {}" , mem_str, rd, mem)
2619
2619
}
2620
2620
& Inst :: FpuStore64 { rd, ref mem, .. } => {
2621
- let rd = show_freg_sized ( rd, mb_rru, ScalarSize :: Size64 ) ;
2621
+ let rd = show_vreg_scalar ( rd, mb_rru, ScalarSize :: Size64 ) ;
2622
2622
let ( mem_str, mem) = mem_finalize_for_show ( mem, mb_rru, state) ;
2623
2623
let mem = mem. show_rru ( mb_rru) ;
2624
2624
format ! ( "{}str {}, {}" , mem_str, rd, mem)
@@ -2631,15 +2631,15 @@ impl Inst {
2631
2631
format ! ( "{}str {}, {}" , mem_str, rd, mem)
2632
2632
}
2633
2633
& Inst :: LoadFpuConst32 { rd, const_data } => {
2634
- let rd = show_freg_sized ( rd. to_reg ( ) , mb_rru, ScalarSize :: Size32 ) ;
2634
+ let rd = show_vreg_scalar ( rd. to_reg ( ) , mb_rru, ScalarSize :: Size32 ) ;
2635
2635
format ! ( "ldr {}, pc+8 ; b 8 ; data.f32 {}" , rd, const_data)
2636
2636
}
2637
2637
& Inst :: LoadFpuConst64 { rd, const_data } => {
2638
- let rd = show_freg_sized ( rd. to_reg ( ) , mb_rru, ScalarSize :: Size64 ) ;
2638
+ let rd = show_vreg_scalar ( rd. to_reg ( ) , mb_rru, ScalarSize :: Size64 ) ;
2639
2639
format ! ( "ldr {}, pc+8 ; b 12 ; data.f64 {}" , rd, const_data)
2640
2640
}
2641
2641
& Inst :: LoadFpuConst128 { rd, const_data } => {
2642
- let rd = show_freg_sized ( rd. to_reg ( ) , mb_rru, ScalarSize :: Size128 ) ;
2642
+ let rd = show_vreg_scalar ( rd. to_reg ( ) , mb_rru, ScalarSize :: Size128 ) ;
2643
2643
format ! ( "ldr {}, pc+8 ; b 20 ; data.f128 0x{:032x}" , rd, const_data)
2644
2644
}
2645
2645
& Inst :: FpuToInt { op, rd, rn } => {
@@ -2654,7 +2654,7 @@ impl Inst {
2654
2654
FpuToIntOp :: F64ToU64 => ( "fcvtzu" , ScalarSize :: Size64 , OperandSize :: Size64 ) ,
2655
2655
} ;
2656
2656
let rd = show_ireg_sized ( rd. to_reg ( ) , mb_rru, sizedest) ;
2657
- let rn = show_freg_sized ( rn, mb_rru, sizesrc) ;
2657
+ let rn = show_vreg_scalar ( rn, mb_rru, sizesrc) ;
2658
2658
format ! ( "{} {}, {}" , op, rd, rn)
2659
2659
}
2660
2660
& Inst :: IntToFpu { op, rd, rn } => {
@@ -2668,21 +2668,21 @@ impl Inst {
2668
2668
IntToFpuOp :: I64ToF64 => ( "scvtf" , OperandSize :: Size64 , ScalarSize :: Size64 ) ,
2669
2669
IntToFpuOp :: U64ToF64 => ( "ucvtf" , OperandSize :: Size64 , ScalarSize :: Size64 ) ,
2670
2670
} ;
2671
- let rd = show_freg_sized ( rd. to_reg ( ) , mb_rru, sizedest) ;
2671
+ let rd = show_vreg_scalar ( rd. to_reg ( ) , mb_rru, sizedest) ;
2672
2672
let rn = show_ireg_sized ( rn, mb_rru, sizesrc) ;
2673
2673
format ! ( "{} {}, {}" , op, rd, rn)
2674
2674
}
2675
2675
& Inst :: FpuCSel32 { rd, rn, rm, cond } => {
2676
- let rd = show_freg_sized ( rd. to_reg ( ) , mb_rru, ScalarSize :: Size32 ) ;
2677
- let rn = show_freg_sized ( rn, mb_rru, ScalarSize :: Size32 ) ;
2678
- let rm = show_freg_sized ( rm, mb_rru, ScalarSize :: Size32 ) ;
2676
+ let rd = show_vreg_scalar ( rd. to_reg ( ) , mb_rru, ScalarSize :: Size32 ) ;
2677
+ let rn = show_vreg_scalar ( rn, mb_rru, ScalarSize :: Size32 ) ;
2678
+ let rm = show_vreg_scalar ( rm, mb_rru, ScalarSize :: Size32 ) ;
2679
2679
let cond = cond. show_rru ( mb_rru) ;
2680
2680
format ! ( "fcsel {}, {}, {}, {}" , rd, rn, rm, cond)
2681
2681
}
2682
2682
& Inst :: FpuCSel64 { rd, rn, rm, cond } => {
2683
- let rd = show_freg_sized ( rd. to_reg ( ) , mb_rru, ScalarSize :: Size64 ) ;
2684
- let rn = show_freg_sized ( rn, mb_rru, ScalarSize :: Size64 ) ;
2685
- let rm = show_freg_sized ( rm, mb_rru, ScalarSize :: Size64 ) ;
2683
+ let rd = show_vreg_scalar ( rd. to_reg ( ) , mb_rru, ScalarSize :: Size64 ) ;
2684
+ let rn = show_vreg_scalar ( rn, mb_rru, ScalarSize :: Size64 ) ;
2685
+ let rm = show_vreg_scalar ( rm, mb_rru, ScalarSize :: Size64 ) ;
2686
2686
let cond = cond. show_rru ( mb_rru) ;
2687
2687
format ! ( "fcsel {}, {}, {}, {}" , rd, rn, rm, cond)
2688
2688
}
@@ -2697,8 +2697,8 @@ impl Inst {
2697
2697
FpuRoundMode :: Nearest32 => ( "frintn" , ScalarSize :: Size32 ) ,
2698
2698
FpuRoundMode :: Nearest64 => ( "frintn" , ScalarSize :: Size64 ) ,
2699
2699
} ;
2700
- let rd = show_freg_sized ( rd. to_reg ( ) , mb_rru, size) ;
2701
- let rn = show_freg_sized ( rn, mb_rru, size) ;
2700
+ let rd = show_vreg_scalar ( rd. to_reg ( ) , mb_rru, size) ;
2701
+ let rn = show_vreg_scalar ( rn, mb_rru, size) ;
2702
2702
format ! ( "{} {}, {}" , inst, rd, rn)
2703
2703
}
2704
2704
& Inst :: MovToVec64 { rd, rn } => {
@@ -2790,7 +2790,7 @@ impl Inst {
2790
2790
let show_vreg_fn: fn ( Reg , Option < & RealRegUniverse > , Type ) -> String = if vector {
2791
2791
|reg, mb_rru, ty| show_vreg_vector ( reg, mb_rru, ty)
2792
2792
} else {
2793
- |reg, mb_rru, _ty| show_vreg_scalar ( reg, mb_rru, I64 )
2793
+ |reg, mb_rru, _ty| show_vreg_scalar ( reg, mb_rru, ScalarSize :: Size64 )
2794
2794
} ;
2795
2795
2796
2796
let rd = show_vreg_fn ( rd. to_reg ( ) , mb_rru, ty) ;
@@ -2812,8 +2812,14 @@ impl Inst {
2812
2812
let op = match op {
2813
2813
VecLanesOp :: Uminv => "uminv" ,
2814
2814
} ;
2815
+ let size = match ty {
2816
+ I8X16 => ScalarSize :: Size8 ,
2817
+ I16X8 => ScalarSize :: Size16 ,
2818
+ I32X4 => ScalarSize :: Size32 ,
2819
+ _ => unimplemented ! ( ) ,
2820
+ } ;
2815
2821
2816
- let rd = show_vreg_scalar ( rd. to_reg ( ) , mb_rru, ty ) ;
2822
+ let rd = show_vreg_scalar ( rd. to_reg ( ) , mb_rru, size ) ;
2817
2823
let rn = show_vreg_vector ( rn, mb_rru, ty) ;
2818
2824
format ! ( "{} {}, {}" , op, rd, rn)
2819
2825
}
0 commit comments