[PATCH] D61935: Fixes PPC64 Tbegin disassembling
Philippe Antoine via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue May 28 23:30:45 PDT 2019
catenacyber updated this revision to Diff 201831.
catenacyber added a comment.
Fixes more instructions
Adds 2 tests
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D61935/new/
https://reviews.llvm.org/D61935
Files:
lib/Target/PowerPC/PPCInstrHTM.td
test/MC/Disassembler/PowerPC/ppc64-encoding-p8htm.txt
Index: test/MC/Disassembler/PowerPC/ppc64-encoding-p8htm.txt
===================================================================
--- /dev/null
+++ test/MC/Disassembler/PowerPC/ppc64-encoding-p8htm.txt
@@ -0,0 +1,13 @@
+# RUN: llvm-mc --disassemble %s -triple powerpc64-unknown-unknown -mcpu=pwr8 | FileCheck %s
+
+# CHECK: tbegin. 1
+0x7c 0x20 0x05 0x1d
+
+# CHECK: tabortdc. 9, r0, r0
+0x7d 0x20 0x06 0x5d
+
+# CHECK: tabortdci. 1, r0, 3
+0x7c 0x20 0x1e 0xdd
+
+# CHECK: tsr. 1
+0x7c 0x20 0x05 0xdd
Index: lib/Target/PowerPC/PPCInstrHTM.td
===================================================================
--- lib/Target/PowerPC/PPCInstrHTM.td
+++ lib/Target/PowerPC/PPCInstrHTM.td
@@ -26,57 +26,67 @@
let Predicates = [HasHTM] in {
+let Defs = [CR0] in
def TBEGIN : XForm_htm0 <31, 654,
- (outs crrc0:$ret), (ins u1imm:$R), "tbegin. $R", IIC_SprMTSPR, []>;
+ (outs), (ins u1imm:$R), "tbegin. $R", IIC_SprMTSPR, []>;
+let Defs = [CR0] in
def TEND : XForm_htm1 <31, 686,
- (outs crrc0:$ret), (ins u1imm:$A), "tend. $A", IIC_SprMTSPR, []>;
+ (outs), (ins u1imm:$A), "tend. $A", IIC_SprMTSPR, []>;
+let Defs = [CR0] in
def TABORT : XForm_base_r3xo <31, 910,
- (outs crrc0:$ret), (ins gprc:$A), "tabort. $A", IIC_SprMTSPR,
+ (outs), (ins gprc:$A), "tabort. $A", IIC_SprMTSPR,
[]>, isDOT {
let RST = 0;
let B = 0;
}
+let Defs = [CR0] in
def TABORTWC : XForm_base_r3xo <31, 782,
- (outs crrc0:$ret), (ins u5imm:$RTS, gprc:$A, gprc:$B),
+ (outs), (ins u5imm:$RTS, gprc:$A, gprc:$B),
"tabortwc. $RTS, $A, $B", IIC_SprMTSPR, []>,
isDOT;
+let Defs = [CR0] in
def TABORTWCI : XForm_base_r3xo <31, 846,
- (outs crrc0:$ret), (ins u5imm:$RTS, gprc:$A, u5imm:$B),
+ (outs), (ins u5imm:$RTS, gprc:$A, u5imm:$B),
"tabortwci. $RTS, $A, $B", IIC_SprMTSPR, []>,
isDOT;
+let Defs = [CR0] in
def TABORTDC : XForm_base_r3xo <31, 814,
- (outs crrc0:$ret), (ins u5imm:$RTS, gprc:$A, gprc:$B),
+ (outs), (ins u5imm:$RTS, gprc:$A, gprc:$B),
"tabortdc. $RTS, $A, $B", IIC_SprMTSPR, []>,
isDOT;
+let Defs = [CR0] in
def TABORTDCI : XForm_base_r3xo <31, 878,
- (outs crrc0:$ret), (ins u5imm:$RTS, gprc:$A, u5imm:$B),
+ (outs), (ins u5imm:$RTS, gprc:$A, u5imm:$B),
"tabortdci. $RTS, $A, $B", IIC_SprMTSPR, []>,
isDOT;
+let Defs = [CR0] in
def TSR : XForm_htm2 <31, 750,
- (outs crrc0:$ret), (ins u1imm:$L), "tsr. $L", IIC_SprMTSPR, []>,
+ (outs), (ins u1imm:$L), "tsr. $L", IIC_SprMTSPR, []>,
isDOT;
def TCHECK : XForm_htm3 <31, 718,
(outs), (ins crrc:$BF), "tcheck $BF", IIC_SprMTSPR, []>;
+let Defs = [CRRC] in
def TRECLAIM : XForm_base_r3xo <31, 942,
- (outs crrc:$ret), (ins gprc:$A), "treclaim. $A",
+ (outs), (ins gprc:$A), "treclaim. $A",
IIC_SprMTSPR, []>,
isDOT {
let RST = 0;
let B = 0;
}
+let Defs = [CRRC] in
def TRECHKPT : XForm_base_r3xo <31, 1006,
- (outs crrc:$ret), (ins), "trechkpt.", IIC_SprMTSPR, []>,
+ (outs), (ins), "trechkpt.", IIC_SprMTSPR, []>,
isDOT {
let RST = 0;
let A = 0;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D61935.201831.patch
Type: text/x-patch
Size: 3947 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190529/c9e33c20/attachment.bin>
More information about the llvm-commits
mailing list