summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorUlrich Weigand <ulrich.weigand@de.ibm.com>2013-07-01 17:06:26 +0000
committerUlrich Weigand <ulrich.weigand@de.ibm.com>2013-07-01 17:06:26 +0000
commit98fcc7b6bcbd7f27492003cdb8225fc9c196f63c (patch)
tree102a9ea53eb8e6209a724cc9b4a049c4607dce52 /llvm
parentfd62bb9d3e440d781620b6eedd7c41d3a164be29 (diff)
downloadbcm5719-llvm-98fcc7b6bcbd7f27492003cdb8225fc9c196f63c.tar.gz
bcm5719-llvm-98fcc7b6bcbd7f27492003cdb8225fc9c196f63c.zip
[PowerPC] Support "eieio" instruction
This adds support for the "eieio" instruction to the asm parser. llvm-svn: 185349
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/PowerPC/PPCInstrFormats.td6
-rw-r--r--llvm/lib/Target/PowerPC/PPCInstrInfo.td3
-rw-r--r--llvm/test/MC/PowerPC/ppc64-encoding-bookII.s3
3 files changed, 11 insertions, 1 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCInstrFormats.td b/llvm/lib/Target/PowerPC/PPCInstrFormats.td
index 9f5435e17a3..42adc02595c 100644
--- a/llvm/lib/Target/PowerPC/PPCInstrFormats.td
+++ b/llvm/lib/Target/PowerPC/PPCInstrFormats.td
@@ -484,6 +484,12 @@ class XForm_24_sync<bits<6> opcode, bits<10> xo, dag OOL, dag IOL,
let Inst{31} = 0;
}
+class XForm_24_eieio<bits<6> opcode, bits<10> xo, dag OOL, dag IOL,
+ string asmstr, InstrItinClass itin, list<dag> pattern>
+ : XForm_24_sync<opcode, xo, OOL, IOL, asmstr, itin, pattern> {
+ let L = 0;
+}
+
class XForm_25<bits<6> opcode, bits<10> xo, dag OOL, dag IOL, string asmstr,
InstrItinClass itin, list<dag> pattern>
: XForm_base_r3xo<opcode, xo, OOL, IOL, asmstr, itin, pattern> {
diff --git a/llvm/lib/Target/PowerPC/PPCInstrInfo.td b/llvm/lib/Target/PowerPC/PPCInstrInfo.td
index d05bd0d5b9e..fc925e11e81 100644
--- a/llvm/lib/Target/PowerPC/PPCInstrInfo.td
+++ b/llvm/lib/Target/PowerPC/PPCInstrInfo.td
@@ -2257,6 +2257,9 @@ def ISYNC : XLForm_2_ext<19, 150, 0, 0, 0, (outs), (ins),
def ICBI : XForm_1a<31, 982, (outs), (ins memrr:$src),
"icbi $src", LdStICBI, []>;
+def EIEIO : XForm_24_eieio<31, 854, (outs), (ins),
+ "eieio", LdStLoad, []>;
+
//===----------------------------------------------------------------------===//
// PowerPC Assembler Instruction Aliases
//
diff --git a/llvm/test/MC/PowerPC/ppc64-encoding-bookII.s b/llvm/test/MC/PowerPC/ppc64-encoding-bookII.s
index 999505b49a3..d066003cfb2 100644
--- a/llvm/test/MC/PowerPC/ppc64-encoding-bookII.s
+++ b/llvm/test/MC/PowerPC/ppc64-encoding-bookII.s
@@ -37,7 +37,8 @@
# CHECK: sync 2 # encoding: [0x7c,0x40,0x04,0xac]
sync 2
-# FIXME: eieio
+# CHECK: eieio # encoding: [0x7c,0x00,0x06,0xac]
+ eieio
# FIXME: wait 2
# Extended mnemonics
OpenPOWER on IntegriCloud