aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/AArch64/InstPrinter
diff options
context:
space:
mode:
authorKevin Qin <Kevin.Qin@arm.com>2013-09-17 02:21:02 +0000
committerKevin Qin <Kevin.Qin@arm.com>2013-09-17 02:21:02 +0000
commite54360be01d1eaccd5ef27f510634927aaa887a4 (patch)
treede8361fd5b80233388e09af2757d380623f52f59 /lib/Target/AArch64/InstPrinter
parent24e1b39a24ca7b8866a636498173f3959b561058 (diff)
downloadexternal_llvm-e54360be01d1eaccd5ef27f510634927aaa887a4.zip
external_llvm-e54360be01d1eaccd5ef27f510634927aaa887a4.tar.gz
external_llvm-e54360be01d1eaccd5ef27f510634927aaa887a4.tar.bz2
Implement 3 AArch64 neon instructions : umov smov ins.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190839 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/AArch64/InstPrinter')
-rw-r--r--lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp12
-rw-r--r--lib/Target/AArch64/InstPrinter/AArch64InstPrinter.h2
2 files changed, 14 insertions, 0 deletions
diff --git a/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp b/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp
index d2b6f6d..26bd797 100644
--- a/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp
+++ b/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp
@@ -475,6 +475,18 @@ void AArch64InstPrinter::printNeonUImm8Operand(const MCInst *MI, unsigned OpNum,
O.write_hex(Imm);
}
+void AArch64InstPrinter::printNeonUImm8OperandBare(const MCInst *MI,
+ unsigned OpNum,
+ raw_ostream &O) {
+ const MCOperand &MOUImm = MI->getOperand(OpNum);
+
+ assert(MOUImm.isImm()
+ && "Immediate operand required for Neon vector immediate inst.");
+
+ unsigned Imm = MOUImm.getImm();
+ O << Imm;
+}
+
void AArch64InstPrinter::printNeonUImm64MaskOperand(const MCInst *MI,
unsigned OpNum,
raw_ostream &O) {
diff --git a/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.h b/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.h
index b608908..71c9f4a 100644
--- a/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.h
+++ b/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.h
@@ -170,6 +170,8 @@ public:
raw_ostream &O);
void printNeonUImm0Operand(const MCInst *MI, unsigned OpNum, raw_ostream &O);
void printNeonUImm8Operand(const MCInst *MI, unsigned OpNum, raw_ostream &O);
+ void printNeonUImm8OperandBare(const MCInst *MI, unsigned OpNum,
+ raw_ostream &O);
void printNeonUImm64MaskOperand(const MCInst *MI, unsigned OpNum,
raw_ostream &O);
};