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

Unified Diff: unittest/IceParseInstsTest.cpp

Issue 1831043002: Fix Subzero binary instruction to allow optional flags argument. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Fix nits. Created 4 years, 9 months 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
« src/PNaClTranslator.cpp ('K') | « src/PNaClTranslator.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: unittest/IceParseInstsTest.cpp
diff --git a/unittest/IceParseInstsTest.cpp b/unittest/IceParseInstsTest.cpp
index 8b452d3e2b3480d60b31b7166cfb39e8cad86ad8..0c5d57ce001b3c5519858bb806c3b46279fc620a 100644
--- a/unittest/IceParseInstsTest.cpp
+++ b/unittest/IceParseInstsTest.cpp
@@ -401,4 +401,66 @@ TEST(NaClParseInstsTests, StoreAlignment) {
DumpMunger.getLinesWithSubstring("store"));
}
+// Test that we handle the optional FLAGs argument to binary instructions.
Jim Stichnoth 2016/03/24 17:46:32 Would it be possible to (in addition or instead) h
Karl 2016/03/24 19:28:36 Replacing with tbc test.
+TEST(IceParseInstsTest, IgnoredBinopFlags) {
+ const uint64_t BitcodeRecords[] = {
+ naclbitc::ENTER_SUBBLOCK, naclbitc::BLK_CODE_ENTER,
+ naclbitc::MODULE_BLOCK_ID, 2, Terminator,
+ naclbitc::ENTER_SUBBLOCK, naclbitc::BLK_CODE_ENTER,
+ naclbitc::TYPE_BLOCK_ID_NEW, 2, Terminator,
+ naclbitc::UNABBREV_RECORD, naclbitc::TYPE_CODE_NUMENTRY, 3, Terminator,
+ naclbitc::UNABBREV_RECORD, naclbitc::TYPE_CODE_INTEGER, 32, Terminator,
+ naclbitc::UNABBREV_RECORD, naclbitc::TYPE_CODE_FUNCTION,
+ 0, 0, 0, 0, Terminator,
+ naclbitc::UNABBREV_RECORD, naclbitc::TYPE_CODE_VOID, Terminator,
+ naclbitc::END_BLOCK, naclbitc::BLK_CODE_EXIT, Terminator,
+ naclbitc::UNABBREV_RECORD, naclbitc::MODULE_CODE_FUNCTION,
+ 1, 0, 0, 3, Terminator,
+ naclbitc::ENTER_SUBBLOCK, naclbitc::BLK_CODE_ENTER,
+ naclbitc::FUNCTION_BLOCK_ID, 2, Terminator,
+ naclbitc::UNABBREV_RECORD, naclbitc::FUNC_CODE_DECLAREBLOCKS, 1, Terminator,
+ naclbitc::UNABBREV_RECORD, naclbitc::FUNC_CODE_INST_BINOP,
+ 2, 1, 0, Terminator,
+ naclbitc::UNABBREV_RECORD, naclbitc::FUNC_CODE_INST_RET, 1, Terminator,
+ naclbitc::END_BLOCK, naclbitc::BLK_CODE_EXIT, Terminator,
+ naclbitc::END_BLOCK, naclbitc::BLK_CODE_EXIT, Terminator
+ };
+
+ // Show bitcode objdump for BitcodeRecorsd.
Jim Stichnoth 2016/03/24 17:46:32 BitcodeRecords
Karl 2016/03/24 19:28:36 Ignoring, replacing with tbc test
+ NaClObjDumpMunger DumpMunger(ARRAY_TERM(BitcodeRecords));
+ EXPECT_TRUE(DumpMunger.runTestForAssembly());
+ EXPECT_EQ(
+ "module { // BlockID = 8\n"
+ " types { // BlockID = 17\n"
+ " count 3;\n"
+ " @t0 = i32;\n"
+ " @t1 = i32 (i32, i32);\n"
+ " @t2 = void;\n"
+ " }\n"
+ " define internal i32 @f0(i32, i32);\n"
+ " function i32 @f0(i32 %p0, i32 %p1) { // BlockID = 12\n"
+ " blocks 1;\n"
+ " %b0:\n"
+ " %v0 = add i32 %p0, %p1;\n"
+ " ret i32 %v0;\n"
+ " }\n"
+ "}\n",
+ DumpMunger.getTestResults());
+
+ // Show that Subzero parses the input.
+ IceTest::SubzeroBitcodeMunger Munger(ARRAY_TERM(BitcodeRecords));
+ EXPECT_TRUE(Munger.runTest());
+
+ // Show that adding a 4th "flags" field to the BINOP instruction is
+ // accepted.
+ const uint64_t ReplaceIndex = 10;
Jim Stichnoth 2016/03/24 17:46:32 These could be constexpr instead of const... but t
Karl 2016/03/24 19:28:36 Ignoring, replacing with tbc test.
+ const uint64_t FLAGS = 5981; // Value ignored.
+ const uint64_t Edit[] = {
+ ReplaceIndex, NaClMungedBitcode::Replace,
+ naclbitc::UNABBREV_RECORD, naclbitc::FUNC_CODE_INST_BINOP,
+ 2, 1, 0, FLAGS, Terminator
+ };
+ EXPECT_TRUE(Munger.runTest(ARRAY(Edit)));
+}
+
} // end of anonymous namespace
« src/PNaClTranslator.cpp ('K') | « src/PNaClTranslator.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698