Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(58)

Unified Diff: src/IceAssemblerARM32.cpp

Issue 1513543002: Add CMN instruction to ARM integrated assembler. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/IceAssemblerARM32.cpp
diff --git a/src/IceAssemblerARM32.cpp b/src/IceAssemblerARM32.cpp
index 13b82cdd261d9120701337c9dd17cf6be24e214d..9077325a0acbf05838bc11da4c789a4bb74803f5 100644
--- a/src/IceAssemblerARM32.cpp
+++ b/src/IceAssemblerARM32.cpp
@@ -1041,6 +1041,24 @@ void AssemblerARM32::bx(RegARM32::GPRRegister Rm, CondARM32::Cond Cond) {
emitInst(Encoding);
}
+void AssemblerARM32::cmn(const Operand *OpRn, const Operand *OpSrc1,
+ CondARM32::Cond Cond) {
+ // CMN (immediate) - ARM section A8.8.34, encoding A1:
+ // cmn<c> <Rn>, #<RotatedImm8>
+ //
+ // cccc00110111nnnn0000iiiiiiiiiiii where cccc=Cond, dddd=Rd, nnnn=Rn,
+ // s=SetFlags and iiiiiiiiiiii=Src1Value defining RotatedImm8.
+ //
+ // CMN (register) - ARM section A8.8.35, encodeing A1:
+ // cmn<c> <Rn>, <Rm>{, <shift>}
+ //
+ // cccc00010111nnnn0000iiiiitt0mmmm where cccc=Cond, nnnn=Rn, mmmm=Rm,
+ // iiiii=Shift, and tt=ShiftKind.
+ constexpr const char *CmnName = "cmn";
+ constexpr IValueT CmnOpcode = B3 | B1 | B0; // ie. 1011
+ emitCompareOp(Cond, CmnOpcode, OpRn, OpSrc1, CmnName);
+}
+
void AssemblerARM32::cmp(const Operand *OpRn, const Operand *OpSrc1,
CondARM32::Cond Cond) {
// CMP (register) - ARM section A8.8.38, encoding A1:
« no previous file with comments | « src/IceAssemblerARM32.h ('k') | src/IceInstARM32.cpp » ('j') | tests_lit/assembler/arm32/cmn.ll » ('J')

Powered by Google App Engine
This is Rietveld 408576698