@@ -5440,25 +5440,25 @@ def CDP2 : ABXI<0b1110, (outs), (ins p_imm:$cop, imm0_15:$opc1,
5440
5440
}
5441
5441
5442
5442
class ACI<dag oops, dag iops, string opc, string asm,
5443
- list<dag> pattern, IndexMode im = IndexModeNone,
5443
+ list<dag> pattern, string cstrs = "", IndexMode im = IndexModeNone,
5444
5444
AddrMode am = AddrModeNone>
5445
5445
: I<oops, iops, am, 4, im, BrFrm, NoItinerary,
5446
- opc, asm, "" , pattern> {
5446
+ opc, asm, cstrs , pattern> {
5447
5447
let Inst{27-25} = 0b110;
5448
5448
}
5449
5449
class ACInoP<dag oops, dag iops, string opc, string asm,
5450
- list<dag> pattern, IndexMode im = IndexModeNone,
5450
+ list<dag> pattern, string constraints = "", IndexMode im = IndexModeNone,
5451
5451
AddrMode am = AddrModeNone>
5452
5452
: InoP<oops, iops, am, 4, im, BrFrm, NoItinerary,
5453
- opc, asm, "" , pattern> {
5453
+ opc, asm, constraints , pattern> {
5454
5454
let Inst{31-28} = 0b1111;
5455
5455
let Inst{27-25} = 0b110;
5456
5456
}
5457
5457
5458
5458
let DecoderNamespace = "CoProc" in {
5459
5459
multiclass LdStCop<bit load, bit Dbit, string asm, list<dag> pattern> {
5460
5460
def _OFFSET : ACI<(outs), (ins p_imm:$cop, c_imm:$CRd, addrmode5:$addr),
5461
- asm, "\t$cop, $CRd, $addr", pattern, IndexModeNone,
5461
+ asm, "\t$cop, $CRd, $addr", pattern, "", IndexModeNone,
5462
5462
AddrMode5> {
5463
5463
bits<13> addr;
5464
5464
bits<4> cop;
@@ -5474,8 +5474,8 @@ multiclass LdStCop<bit load, bit Dbit, string asm, list<dag> pattern> {
5474
5474
let Inst{7-0} = addr{7-0};
5475
5475
let DecoderMethod = "DecodeCopMemInstruction";
5476
5476
}
5477
- def _PRE : ACI<(outs), (ins p_imm:$cop, c_imm:$CRd, addrmode5_pre:$addr),
5478
- asm, "\t$cop, $CRd, $addr!", [], IndexModePre> {
5477
+ def _PRE : ACI<(outs GPR:$Rn_wb ), (ins p_imm:$cop, c_imm:$CRd, addrmode5_pre:$addr),
5478
+ asm, "\t$cop, $CRd, $addr!", [], "$addr.base = $Rn_wb", IndexModePre> {
5479
5479
bits<13> addr;
5480
5480
bits<4> cop;
5481
5481
bits<4> CRd;
@@ -5492,7 +5492,7 @@ multiclass LdStCop<bit load, bit Dbit, string asm, list<dag> pattern> {
5492
5492
}
5493
5493
def _POST: ACI<(outs), (ins p_imm:$cop, c_imm:$CRd, addr_offset_none:$addr,
5494
5494
postidx_imm8s4:$offset),
5495
- asm, "\t$cop, $CRd, $addr, $offset", [], IndexModePost> {
5495
+ asm, "\t$cop, $CRd, $addr, $offset", [], "", IndexModePost> {
5496
5496
bits<9> offset;
5497
5497
bits<4> addr;
5498
5498
bits<4> cop;
@@ -5530,7 +5530,7 @@ multiclass LdStCop<bit load, bit Dbit, string asm, list<dag> pattern> {
5530
5530
}
5531
5531
multiclass LdSt2Cop<bit load, bit Dbit, string asm, list<dag> pattern> {
5532
5532
def _OFFSET : ACInoP<(outs), (ins p_imm:$cop, c_imm:$CRd, addrmode5:$addr),
5533
- asm, "\t$cop, $CRd, $addr", pattern, IndexModeNone,
5533
+ asm, "\t$cop, $CRd, $addr", pattern, "", IndexModeNone,
5534
5534
AddrMode5> {
5535
5535
bits<13> addr;
5536
5536
bits<4> cop;
@@ -5546,8 +5546,8 @@ multiclass LdSt2Cop<bit load, bit Dbit, string asm, list<dag> pattern> {
5546
5546
let Inst{7-0} = addr{7-0};
5547
5547
let DecoderMethod = "DecodeCopMemInstruction";
5548
5548
}
5549
- def _PRE : ACInoP<(outs), (ins p_imm:$cop, c_imm:$CRd, addrmode5_pre:$addr),
5550
- asm, "\t$cop, $CRd, $addr!", [], IndexModePre> {
5549
+ def _PRE : ACInoP<(outs GPR:$Rn_wb ), (ins p_imm:$cop, c_imm:$CRd, addrmode5_pre:$addr),
5550
+ asm, "\t$cop, $CRd, $addr!", [], "$addr.base = $Rn_wb", IndexModePre> {
5551
5551
bits<13> addr;
5552
5552
bits<4> cop;
5553
5553
bits<4> CRd;
@@ -5564,7 +5564,7 @@ multiclass LdSt2Cop<bit load, bit Dbit, string asm, list<dag> pattern> {
5564
5564
}
5565
5565
def _POST: ACInoP<(outs), (ins p_imm:$cop, c_imm:$CRd, addr_offset_none:$addr,
5566
5566
postidx_imm8s4:$offset),
5567
- asm, "\t$cop, $CRd, $addr, $offset", [], IndexModePost> {
5567
+ asm, "\t$cop, $CRd, $addr, $offset", [], "", IndexModePost> {
5568
5568
bits<9> offset;
5569
5569
bits<4> addr;
5570
5570
bits<4> cop;
0 commit comments