Skip to content
Snippets Groups Projects
Commit 5b9d591a authored by Ulrich Weigand's avatar Ulrich Weigand
Browse files

[PowerPC] Support bd(n)zl and bd(n)zlrl

This adds support for the bd(n)zl and bd(n)zlrl instructions.
The patterns are currently used for the asm parser only.

llvm-svn: 184720
parent d20e91ed
No related branches found
No related tags found
No related merge requests found
...@@ -938,6 +938,18 @@ let isCall = 1, PPC970_Unit = 7, Defs = [LR] in { ...@@ -938,6 +938,18 @@ let isCall = 1, PPC970_Unit = 7, Defs = [LR] in {
def BCLRL : XLForm_2_br<19, 16, 1, (outs), (ins pred:$cond), def BCLRL : XLForm_2_br<19, 16, 1, (outs), (ins pred:$cond),
"b${cond:cc}lrl ${cond:reg}", BrB, []>; "b${cond:cc}lrl ${cond:reg}", BrB, []>;
} }
let Defs = [CTR], Uses = [CTR, RM] in {
def BDZL : BForm_1<16, 18, 0, 1, (outs), (ins condbrtarget:$dst),
"bdzl $dst">;
def BDNZL : BForm_1<16, 16, 0, 1, (outs), (ins condbrtarget:$dst),
"bdnzl $dst">;
}
let Defs = [CTR], Uses = [CTR, LR, RM] in {
def BDZLRL : XLForm_2_ext<19, 16, 18, 0, 1, (outs), (ins),
"bdzlrl", BrB, []>;
def BDNZLRL : XLForm_2_ext<19, 16, 16, 0, 1, (outs), (ins),
"bdnzlrl", BrB, []>;
}
} }
let isCall = 1, isTerminator = 1, isReturn = 1, isBarrier = 1, Uses = [RM] in let isCall = 1, isTerminator = 1, isReturn = 1, isBarrier = 1, Uses = [RM] in
......
...@@ -54,9 +54,12 @@ ...@@ -54,9 +54,12 @@
# FIXME: bdnza target # FIXME: bdnza target
# CHECK: bdnzlr # encoding: [0x4e,0x00,0x00,0x20] # CHECK: bdnzlr # encoding: [0x4e,0x00,0x00,0x20]
bdnzlr bdnzlr
# FIXME: bdnzl target # CHECK: bdnzl target # encoding: [0x42,0x00,A,0bAAAAAA01]
# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
bdnzl target
# FIXME: bdnzla target # FIXME: bdnzla target
# FIXME: bdnzlrl # CHECK: bdnzlrl # encoding: [0x4e,0x00,0x00,0x21]
bdnzlrl
# FIXME: bdnzt 2, target # FIXME: bdnzt 2, target
# FIXME: bdnzt target # FIXME: bdnzt target
...@@ -89,9 +92,12 @@ ...@@ -89,9 +92,12 @@
# FIXME: bdza target # FIXME: bdza target
# CHECK: bdzlr # encoding: [0x4e,0x40,0x00,0x20] # CHECK: bdzlr # encoding: [0x4e,0x40,0x00,0x20]
bdzlr bdzlr
# FIXME: bdzl target # CHECK: bdzl target # encoding: [0x42,0x40,A,0bAAAAAA01]
# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
bdzl target
# FIXME: bdzla target # FIXME: bdzla target
# FIXME: bdzlrl # CHECK: bdzlrl # encoding: [0x4e,0x40,0x00,0x21]
bdzlrl
# FIXME: bdzt 2, target # FIXME: bdzt 2, target
# FIXME: bdzt target # FIXME: bdzt target
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment