Skip to content

Commit d3cb277

Browse files
committed
[AArch64] Rearrange Opcodes in getMemOpInfo. NFC
This just changes the order of the opcodes and fields in getMemOpInfo, none of the values are altered.
1 parent f6616e9 commit d3cb277

File tree

1 file changed

+88
-82
lines changed

1 file changed

+88
-82
lines changed

llvm/lib/Target/AArch64/AArch64InstrInfo.cpp

+88-82
Original file line numberDiff line numberDiff line change
@@ -3553,29 +3553,97 @@ bool AArch64InstrInfo::getMemOpInfo(unsigned Opcode, TypeSize &Scale,
35533553
Width = TypeSize::getFixed(0);
35543554
MinOffset = MaxOffset = 0;
35553555
return false;
3556+
// LDR / STR
3557+
case AArch64::LDRQui:
3558+
case AArch64::STRQui:
3559+
Scale = TypeSize::getFixed(16);
3560+
Width = TypeSize::getFixed(16);
3561+
MinOffset = 0;
3562+
MaxOffset = 4095;
3563+
break;
3564+
case AArch64::LDRXui:
3565+
case AArch64::LDRDui:
3566+
case AArch64::STRXui:
3567+
case AArch64::STRDui:
3568+
case AArch64::PRFMui:
3569+
Scale = TypeSize::getFixed(8);
3570+
Width = TypeSize::getFixed(8);
3571+
MinOffset = 0;
3572+
MaxOffset = 4095;
3573+
break;
3574+
case AArch64::LDRWui:
3575+
case AArch64::LDRSui:
3576+
case AArch64::LDRSWui:
3577+
case AArch64::STRWui:
3578+
case AArch64::STRSui:
3579+
Scale = TypeSize::getFixed(4);
3580+
Width = TypeSize::getFixed(4);
3581+
MinOffset = 0;
3582+
MaxOffset = 4095;
3583+
break;
3584+
case AArch64::LDRHui:
3585+
case AArch64::LDRHHui:
3586+
case AArch64::LDRSHWui:
3587+
case AArch64::LDRSHXui:
3588+
case AArch64::STRHui:
3589+
case AArch64::STRHHui:
3590+
Scale = TypeSize::getFixed(2);
3591+
Width = TypeSize::getFixed(2);
3592+
MinOffset = 0;
3593+
MaxOffset = 4095;
3594+
break;
3595+
case AArch64::LDRBui:
3596+
case AArch64::LDRBBui:
3597+
case AArch64::LDRSBWui:
3598+
case AArch64::LDRSBXui:
3599+
case AArch64::STRBui:
3600+
case AArch64::STRBBui:
3601+
Scale = TypeSize::getFixed(1);
3602+
Width = TypeSize::getFixed(1);
3603+
MinOffset = 0;
3604+
MaxOffset = 4095;
3605+
break;
3606+
// post/pre inc
3607+
case AArch64::STRQpre:
3608+
case AArch64::LDRQpost:
3609+
Scale = TypeSize::getFixed(1);
3610+
Width = TypeSize::getFixed(16);
3611+
MinOffset = -256;
3612+
MaxOffset = 255;
3613+
break;
3614+
case AArch64::STRXpre:
3615+
case AArch64::STRDpre:
3616+
case AArch64::LDRXpost:
3617+
case AArch64::LDRDpost:
3618+
Scale = TypeSize::getFixed(1);
3619+
Width = TypeSize::getFixed(8);
3620+
MinOffset = -256;
3621+
MaxOffset = 255;
3622+
break;
35563623
case AArch64::STRWpost:
35573624
case AArch64::LDRWpost:
3558-
Width = TypeSize::getFixed(32);
35593625
Scale = TypeSize::getFixed(4);
3626+
Width = TypeSize::getFixed(32);
35603627
MinOffset = -256;
35613628
MaxOffset = 255;
35623629
break;
3630+
// Unscaled
35633631
case AArch64::LDURQi:
35643632
case AArch64::STURQi:
3565-
Width = TypeSize::getFixed(16);
35663633
Scale = TypeSize::getFixed(1);
3634+
Width = TypeSize::getFixed(16);
35673635
MinOffset = -256;
35683636
MaxOffset = 255;
35693637
break;
3570-
case AArch64::PRFUMi:
35713638
case AArch64::LDURXi:
35723639
case AArch64::LDURDi:
35733640
case AArch64::LDAPURXi:
35743641
case AArch64::STURXi:
35753642
case AArch64::STURDi:
35763643
case AArch64::STLURXi:
3577-
Width = TypeSize::getFixed(8);
3644+
case AArch64::PRFUMi:
35783645
Scale = TypeSize::getFixed(1);
3646+
Width = TypeSize::getFixed(8);
35793647
MinOffset = -256;
35803648
MaxOffset = 255;
35813649
break;
@@ -3587,8 +3655,8 @@ bool AArch64InstrInfo::getMemOpInfo(unsigned Opcode, TypeSize &Scale,
35873655
case AArch64::STURWi:
35883656
case AArch64::STURSi:
35893657
case AArch64::STLURWi:
3590-
Width = TypeSize::getFixed(4);
35913658
Scale = TypeSize::getFixed(1);
3659+
Width = TypeSize::getFixed(4);
35923660
MinOffset = -256;
35933661
MaxOffset = 255;
35943662
break;
@@ -3602,8 +3670,8 @@ bool AArch64InstrInfo::getMemOpInfo(unsigned Opcode, TypeSize &Scale,
36023670
case AArch64::STURHi:
36033671
case AArch64::STURHHi:
36043672
case AArch64::STLURHi:
3605-
Width = TypeSize::getFixed(2);
36063673
Scale = TypeSize::getFixed(1);
3674+
Width = TypeSize::getFixed(2);
36073675
MinOffset = -256;
36083676
MaxOffset = 255;
36093677
break;
@@ -3617,11 +3685,12 @@ bool AArch64InstrInfo::getMemOpInfo(unsigned Opcode, TypeSize &Scale,
36173685
case AArch64::STURBi:
36183686
case AArch64::STURBBi:
36193687
case AArch64::STLURBi:
3620-
Width = TypeSize::getFixed(1);
36213688
Scale = TypeSize::getFixed(1);
3689+
Width = TypeSize::getFixed(1);
36223690
MinOffset = -256;
36233691
MaxOffset = 255;
36243692
break;
3693+
// LDP / STP
36253694
case AArch64::LDPQi:
36263695
case AArch64::LDNPQi:
36273696
case AArch64::STPQi:
@@ -3631,13 +3700,6 @@ bool AArch64InstrInfo::getMemOpInfo(unsigned Opcode, TypeSize &Scale,
36313700
MinOffset = -64;
36323701
MaxOffset = 63;
36333702
break;
3634-
case AArch64::LDRQui:
3635-
case AArch64::STRQui:
3636-
Scale = TypeSize::getFixed(16);
3637-
Width = TypeSize::getFixed(16);
3638-
MinOffset = 0;
3639-
MaxOffset = 4095;
3640-
break;
36413703
case AArch64::LDPXi:
36423704
case AArch64::LDPDi:
36433705
case AArch64::LDNPXi:
@@ -3651,23 +3713,6 @@ bool AArch64InstrInfo::getMemOpInfo(unsigned Opcode, TypeSize &Scale,
36513713
MinOffset = -64;
36523714
MaxOffset = 63;
36533715
break;
3654-
case AArch64::PRFMui:
3655-
case AArch64::LDRXui:
3656-
case AArch64::LDRDui:
3657-
case AArch64::STRXui:
3658-
case AArch64::STRDui:
3659-
Scale = TypeSize::getFixed(8);
3660-
Width = TypeSize::getFixed(8);
3661-
MinOffset = 0;
3662-
MaxOffset = 4095;
3663-
break;
3664-
case AArch64::StoreSwiftAsyncContext:
3665-
// Store is an STRXui, but there might be an ADDXri in the expansion too.
3666-
Scale = TypeSize::getFixed(1);
3667-
Width = TypeSize::getFixed(8);
3668-
MinOffset = 0;
3669-
MaxOffset = 4095;
3670-
break;
36713716
case AArch64::LDPWi:
36723717
case AArch64::LDPSi:
36733718
case AArch64::LDNPWi:
@@ -3681,37 +3726,13 @@ bool AArch64InstrInfo::getMemOpInfo(unsigned Opcode, TypeSize &Scale,
36813726
MinOffset = -64;
36823727
MaxOffset = 63;
36833728
break;
3684-
case AArch64::LDRWui:
3685-
case AArch64::LDRSui:
3686-
case AArch64::LDRSWui:
3687-
case AArch64::STRWui:
3688-
case AArch64::STRSui:
3689-
Scale = TypeSize::getFixed(4);
3690-
Width = TypeSize::getFixed(4);
3691-
MinOffset = 0;
3692-
MaxOffset = 4095;
3693-
break;
3694-
case AArch64::LDRHui:
3695-
case AArch64::LDRHHui:
3696-
case AArch64::LDRSHWui:
3697-
case AArch64::LDRSHXui:
3698-
case AArch64::STRHui:
3699-
case AArch64::STRHHui:
3700-
Scale = TypeSize::getFixed(2);
3701-
Width = TypeSize::getFixed(2);
3702-
MinOffset = 0;
3703-
MaxOffset = 4095;
3704-
break;
3705-
case AArch64::LDRBui:
3706-
case AArch64::LDRBBui:
3707-
case AArch64::LDRSBWui:
3708-
case AArch64::LDRSBXui:
3709-
case AArch64::STRBui:
3710-
case AArch64::STRBBui:
3711-
Scale = TypeSize::getFixed(1);
3712-
Width = TypeSize::getFixed(1);
3713-
MinOffset = 0;
3714-
MaxOffset = 4095;
3729+
// pre/post inc
3730+
case AArch64::STPQpre:
3731+
case AArch64::LDPQpost:
3732+
Scale = TypeSize::getFixed(16);
3733+
Width = TypeSize::getFixed(16);
3734+
MinOffset = -1024;
3735+
MaxOffset = 1008;
37153736
break;
37163737
case AArch64::STPXpre:
37173738
case AArch64::LDPXpost:
@@ -3722,28 +3743,12 @@ bool AArch64InstrInfo::getMemOpInfo(unsigned Opcode, TypeSize &Scale,
37223743
MinOffset = -512;
37233744
MaxOffset = 504;
37243745
break;
3725-
case AArch64::STPQpre:
3726-
case AArch64::LDPQpost:
3727-
Scale = TypeSize::getFixed(16);
3728-
Width = TypeSize::getFixed(16);
3729-
MinOffset = -1024;
3730-
MaxOffset = 1008;
3731-
break;
3732-
case AArch64::STRXpre:
3733-
case AArch64::STRDpre:
3734-
case AArch64::LDRXpost:
3735-
case AArch64::LDRDpost:
3746+
case AArch64::StoreSwiftAsyncContext:
3747+
// Store is an STRXui, but there might be an ADDXri in the expansion too.
37363748
Scale = TypeSize::getFixed(1);
37373749
Width = TypeSize::getFixed(8);
3738-
MinOffset = -256;
3739-
MaxOffset = 255;
3740-
break;
3741-
case AArch64::STRQpre:
3742-
case AArch64::LDRQpost:
3743-
Scale = TypeSize::getFixed(1);
3744-
Width = TypeSize::getFixed(16);
3745-
MinOffset = -256;
3746-
MaxOffset = 255;
3750+
MinOffset = 0;
3751+
MaxOffset = 4095;
37473752
break;
37483753
case AArch64::ADDG:
37493754
Scale = TypeSize::getFixed(16);
@@ -3767,6 +3772,7 @@ bool AArch64InstrInfo::getMemOpInfo(unsigned Opcode, TypeSize &Scale,
37673772
MinOffset = -256;
37683773
MaxOffset = 255;
37693774
break;
3775+
// SVE
37703776
case AArch64::STR_ZZZZXI:
37713777
case AArch64::LDR_ZZZZXI:
37723778
Scale = TypeSize::getScalable(16);

0 commit comments

Comments
 (0)