Skip to content

Commit

Permalink
Fix BL definition. BL does not read SP.
Browse files Browse the repository at this point in the history
  • Loading branch information
Rot127 committed Jan 25, 2024
1 parent e34a69a commit 02a7800
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions llvm/lib/Target/AArch64/AArch64InstrInfo.td
Original file line number Diff line number Diff line change
Expand Up @@ -2551,7 +2551,7 @@ def ERET : SpecialReturn<0b0100, "eret">;
// Default to the LR register.
def : InstAlias<"ret", (RET LR)>;

let isCall = 1, Defs = [LR], Uses = [SP] in {
let isCall = 1, Defs = [LR], isBranch = 1, isIndirectBranch = 1 in {
def BLR : BranchReg<0b0001, "blr", []>;
def BLRNoIP : Pseudo<(outs), (ins GPR64noip:$Rn), []>,
Sched<[WriteBrReg]>,
Expand Down Expand Up @@ -2648,7 +2648,7 @@ let isBranch = 1, isTerminator = 1, isBarrier = 1 in {
def B : BranchImm<0, "b", [(br bb:$addr)]>;
} // isBranch, isTerminator, isBarrier

let isCall = 1, Defs = [LR], Uses = [SP] in {
let isCall = 1, Defs = [LR], isBranch = 1 in {
def BL : CallImm<1, "bl", [(AArch64call tglobaladdr:$addr)]>;
} // isCall
def : Pat<(AArch64call texternalsym:$func), (BL texternalsym:$func)>;
Expand Down

0 comments on commit 02a7800

Please sign in to comment.