Index: llvm/trunk/lib/Target/AArch64/AArch64InstrFormats.td =================================================================== --- llvm/trunk/lib/Target/AArch64/AArch64InstrFormats.td +++ llvm/trunk/lib/Target/AArch64/AArch64InstrFormats.td @@ -1169,7 +1169,7 @@ let mayLoad = 1 in class BaseAuthLoad - : I, Sched<[]> { + : I, Sched<[]> { bits<10> offset; bits<5> Rn; bits<5> Rt; @@ -1185,14 +1185,13 @@ } multiclass AuthLoad { - def indexed : BaseAuthLoad; def writeback : BaseAuthLoad { - let DecoderMethod = "DecodeAuthLoadWriteback"; - } + "$Rn = $wback,@earlyclobber $wback", opr>; def : InstAlias(NAME # "indexed") GPR64:$Rt, GPR64sp:$Rn, 0)>; Index: llvm/trunk/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp =================================================================== --- llvm/trunk/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp +++ llvm/trunk/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp @@ -1609,24 +1609,3 @@ return Success; } -static DecodeStatus DecodeAuthLoadWriteback(llvm::MCInst &Inst, uint32_t insn, - uint64_t Address, - const void *Decoder) { - unsigned Rt = fieldFromInstruction(insn, 0, 5); - unsigned Rn = fieldFromInstruction(insn, 5, 5); - unsigned Imm9 = fieldFromInstruction(insn, 12, 9); - unsigned S = fieldFromInstruction(insn, 22, 1); - - unsigned Imm = Imm9 | (S << 9); - - // Address writeback - DecodeGPR64spRegisterClass(Inst, Rn, Address, Decoder); - // Destination - DecodeGPR64RegisterClass(Inst, Rt, Address, Decoder); - // Address - DecodeGPR64spRegisterClass(Inst, Rn, Address, Decoder); - // Offset - DecodeSImm<10>(Inst, Imm, Address, Decoder); - - return Success; -}