From c0a6b981de8efd2c68125edb94bf9ffb933df727 Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Mon, 1 Jul 2013 17:06:26 +0000 Subject: [PATCH] [PowerPC] Support "eieio" instruction This adds support for the "eieio" instruction to the asm parser. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185349 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/PowerPC/PPCInstrFormats.td | 6 ++++++ lib/Target/PowerPC/PPCInstrInfo.td | 3 +++ test/MC/PowerPC/ppc64-encoding-bookII.s | 3 ++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/Target/PowerPC/PPCInstrFormats.td b/lib/Target/PowerPC/PPCInstrFormats.td index 9f5435e17a3..42adc02595c 100644 --- a/lib/Target/PowerPC/PPCInstrFormats.td +++ b/lib/Target/PowerPC/PPCInstrFormats.td @@ -484,6 +484,12 @@ class XForm_24_sync opcode, bits<10> xo, dag OOL, dag IOL, let Inst{31} = 0; } +class XForm_24_eieio opcode, bits<10> xo, dag OOL, dag IOL, + string asmstr, InstrItinClass itin, list pattern> + : XForm_24_sync { + let L = 0; +} + class XForm_25 opcode, bits<10> xo, dag OOL, dag IOL, string asmstr, InstrItinClass itin, list pattern> : XForm_base_r3xo { diff --git a/lib/Target/PowerPC/PPCInstrInfo.td b/lib/Target/PowerPC/PPCInstrInfo.td index d05bd0d5b9e..fc925e11e81 100644 --- a/lib/Target/PowerPC/PPCInstrInfo.td +++ b/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/test/MC/PowerPC/ppc64-encoding-bookII.s b/test/MC/PowerPC/ppc64-encoding-bookII.s index 999505b49a3..d066003cfb2 100644 --- a/test/MC/PowerPC/ppc64-encoding-bookII.s +++ b/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