summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/Target/PowerPC/PPCInstrInfo.td13
-rw-r--r--llvm/test/MC/Disassembler/PowerPC/ppc64-encoding-bookIII.txt7
-rw-r--r--llvm/test/MC/PowerPC/ppc64-encoding-bookIII.s12
3 files changed, 32 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCInstrInfo.td b/llvm/lib/Target/PowerPC/PPCInstrInfo.td
index b30fd247952..e9b0061c3bc 100644
--- a/llvm/lib/Target/PowerPC/PPCInstrInfo.td
+++ b/llvm/lib/Target/PowerPC/PPCInstrInfo.td
@@ -3064,6 +3064,19 @@ def MFSRIN: XForm_srin<31, 659, (outs gprc:$RS), (ins gprc:$RB),
def MTMSR: XForm_mtmsr<31, 146, (outs), (ins gprc:$RS, i32imm:$L),
"mtmsr $RS, $L", IIC_SprMTMSR>;
+def WRTEE: XForm_mtmsr<31, 131, (outs), (ins gprc:$RS),
+ "wrtee $RS", IIC_SprMTMSR>, Requires<[IsBookE]> {
+ let L = 0;
+}
+
+def WRTEEI: I<31, (outs), (ins i1imm:$E), "wrteei $E", IIC_SprMTMSR>,
+ Requires<[IsBookE]> {
+ bits<1> E;
+
+ let Inst{16} = E;
+ let Inst{21-30} = 163;
+}
+
def MFMSR : XForm_rs<31, 83, (outs gprc:$RT), (ins),
"mfmsr $RT", IIC_SprMFMSR, []>;
diff --git a/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding-bookIII.txt b/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding-bookIII.txt
index 32fb7befebc..844a0ac46cc 100644
--- a/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding-bookIII.txt
+++ b/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding-bookIII.txt
@@ -109,3 +109,10 @@
0x4c 0x00 0x00 0x64
# CHECK: rfci
0x4c 0x00 0x00 0x66
+
+# CHECK: wrtee 12
+0x7d 0x80 0x01 0x06
+# CHECK: wrteei 0
+0x7c 0x00 0x01 0x46
+# CHECK: wrteei 1
+0x7c 0x00 0x81 0x46
diff --git a/llvm/test/MC/PowerPC/ppc64-encoding-bookIII.s b/llvm/test/MC/PowerPC/ppc64-encoding-bookIII.s
index 029b7be79b5..65a7350ea87 100644
--- a/llvm/test/MC/PowerPC/ppc64-encoding-bookIII.s
+++ b/llvm/test/MC/PowerPC/ppc64-encoding-bookIII.s
@@ -160,3 +160,15 @@
# CHECK-BE: rfci # encoding: [0x4c,0x00,0x00,0x66]
# CHECK-LE: rfci # encoding: [0x66,0x00,0x00,0x4c]
rfci
+
+# CHECK-BE: wrtee 12 # encoding: [0x7d,0x80,0x01,0x06]
+# CHECK-LE: wrtee 12 # encoding: [0x06,0x01,0x80,0x7d]
+ wrtee %r12
+
+# CHECK-BE: wrteei 0 # encoding: [0x7c,0x00,0x01,0x46]
+# CHECK-LE: wrteei 0 # encoding: [0x46,0x01,0x00,0x7c]
+ wrteei 0
+
+# CHECK-BE: wrteei 1 # encoding: [0x7c,0x00,0x81,0x46]
+# CHECK-LE: wrteei 1 # encoding: [0x46,0x81,0x00,0x7c]
+ wrteei 1
OpenPOWER on IntegriCloud