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

Unified Diff: runtime/vm/assembler_mips_test.cc

Issue 802023002: Fix SLTIU instruction in MIPS assembler, disassembler, and simulator. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 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: runtime/vm/assembler_mips_test.cc
===================================================================
--- runtime/vm/assembler_mips_test.cc (revision 42354)
+++ runtime/vm/assembler_mips_test.cc (working copy)
@@ -622,7 +622,7 @@
ASSEMBLER_TEST_GENERATE(Sltu, assembler) {
__ LoadImmediate(T1, -1);
__ LoadImmediate(T2, 0);
- __ sltu(V0, T1, T2);
+ __ sltu(V0, T1, T2); // 0xffffffffUL < 0 -> 0.
__ jr(RA);
}
@@ -633,6 +633,40 @@
}
+ASSEMBLER_TEST_GENERATE(Slti, assembler) {
+ __ LoadImmediate(T1, -2);
+ __ slti(A0, T1, Immediate(-1)); // -2 < -1 -> 1.
+ __ slti(A1, T1, Immediate(0)); // -2 < 0 -> 1.
+ __ and_(V0, A0, A1);
+ __ jr(RA);
+}
+
+
+ASSEMBLER_TEST_RUN(Slti, test) {
+ typedef int (*SimpleCode)() DART_UNUSED;
+ EXPECT_EQ(1, EXECUTE_TEST_CODE_INT32(SimpleCode, test->entry()));
+}
+
+
+ASSEMBLER_TEST_GENERATE(Sltiu, assembler) {
+ __ LoadImmediate(T1, -1);
+ __ LoadImmediate(T2, 0x10000);
+ __ sltiu(A0, T1, Immediate(-2)); // 0xffffffffUL < 0xfffffffeUL -> 0.
+ __ sltiu(A1, T1, Immediate(0)); // 0xffffffffUL < 0 -> 0.
+ __ sltiu(A2, T2, Immediate(-2)); // 0x10000UL < 0xfffffffeUL -> 1.
+ __ addiu(A2, A2, Immediate(-1));
+ __ or_(V0, A0, A1);
+ __ or_(V0, V0, A2);
+ __ jr(RA);
+}
+
+
+ASSEMBLER_TEST_RUN(Sltiu, test) {
+ typedef int (*SimpleCode)() DART_UNUSED;
+ EXPECT_EQ(0, EXECUTE_TEST_CODE_INT32(SimpleCode, test->entry()));
+}
+
+
ASSEMBLER_TEST_GENERATE(Movz, assembler) {
__ LoadImmediate(T1, 42);
__ LoadImmediate(T2, 23);

Powered by Google App Engine
This is Rietveld 408576698