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

Unified Diff: test/cctest/compiler/test-instruction-selector-arm.cc

Issue 447203002: Add Uint32AddWithOverflow and Uint32SubWithOverflow machine operators. Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 4 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
« no previous file with comments | « src/compiler/x64/instruction-selector-x64.cc ('k') | test/cctest/compiler/test-run-machops.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/cctest/compiler/test-instruction-selector-arm.cc
diff --git a/test/cctest/compiler/test-instruction-selector-arm.cc b/test/cctest/compiler/test-instruction-selector-arm.cc
index f62e09f978e9f4744669ca100a2c60cd397fc15d..ece37a882501f6a0f4ceeec55dea64c818f44ed0 100644
--- a/test/cctest/compiler/test-instruction-selector-arm.cc
+++ b/test/cctest/compiler/test-instruction-selector-arm.cc
@@ -45,6 +45,8 @@ struct ODPI {
Operator* op;
ArchOpcode arch_opcode;
ArchOpcode reverse_arch_opcode;
+ FlagsCondition condition;
+ FlagsCondition negated_condition;
};
@@ -53,10 +55,18 @@ class ODPIs V8_FINAL : public std::list<ODPI>, private HandleAndZoneScope {
public:
ODPIs() {
MachineOperatorBuilder machine(main_zone());
- ODPI add = {machine.Int32AddWithOverflow(), kArmAdd, kArmAdd};
- push_back(add);
- ODPI sub = {machine.Int32SubWithOverflow(), kArmSub, kArmRsb};
- push_back(sub);
+ ODPI sadd = {machine.Int32AddWithOverflow(), kArmAdd, kArmAdd, kOverflow,
+ kNotOverflow};
+ push_back(sadd);
+ ODPI ssub = {machine.Int32SubWithOverflow(), kArmSub, kArmRsb, kOverflow,
+ kNotOverflow};
+ push_back(ssub);
+ ODPI uadd = {machine.Uint32AddWithOverflow(), kArmAdd, kArmAdd,
+ kUnsignedGreaterThanOrEqual, kUnsignedLessThan};
+ push_back(uadd);
+ ODPI usub = {machine.Uint32SubWithOverflow(), kArmSub, kArmRsb,
+ kUnsignedLessThan, kUnsignedGreaterThanOrEqual};
+ push_back(usub);
}
};
@@ -287,7 +297,7 @@ TEST(InstructionSelectorODPIP) {
CHECK_EQ(odpi.arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(kMode_Operand2_R, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_set, m.code[0]->flags_mode());
- CHECK_EQ(kOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.condition, m.code[0]->flags_condition());
CHECK_EQ(2, m.code[0]->InputCount());
CHECK_LE(1, m.code[0]->OutputCount());
}
@@ -312,7 +322,7 @@ TEST(InstructionSelectorODPIP) {
CHECK_EQ(odpi.arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(kMode_Operand2_R, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_set, m.code[0]->flags_mode());
- CHECK_EQ(kOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.condition, m.code[0]->flags_condition());
CHECK_EQ(2, m.code[0]->InputCount());
CHECK_EQ(2, m.code[0]->OutputCount());
}
@@ -337,7 +347,7 @@ TEST(InstructionSelectorODPIImm) {
CHECK_EQ(odpi.arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(kMode_Operand2_I, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_set, m.code[0]->flags_mode());
- CHECK_EQ(kOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.condition, m.code[0]->flags_condition());
CHECK_EQ(2, m.code[0]->InputCount());
CHECK_EQ(imm, m.ToInt32(m.code[0]->InputAt(1)));
CHECK_LE(1, m.code[0]->OutputCount());
@@ -351,7 +361,7 @@ TEST(InstructionSelectorODPIImm) {
CHECK_EQ(odpi.reverse_arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(kMode_Operand2_I, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_set, m.code[0]->flags_mode());
- CHECK_EQ(kOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.condition, m.code[0]->flags_condition());
CHECK_EQ(2, m.code[0]->InputCount());
CHECK_EQ(imm, m.ToInt32(m.code[0]->InputAt(1)));
CHECK_LE(1, m.code[0]->OutputCount());
@@ -391,7 +401,7 @@ TEST(InstructionSelectorODPIImm) {
CHECK_EQ(odpi.arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(kMode_Operand2_I, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_set, m.code[0]->flags_mode());
- CHECK_EQ(kOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.condition, m.code[0]->flags_condition());
CHECK_EQ(2, m.code[0]->InputCount());
CHECK_EQ(imm, m.ToInt32(m.code[0]->InputAt(1)));
CHECK_EQ(2, m.code[0]->OutputCount());
@@ -405,7 +415,7 @@ TEST(InstructionSelectorODPIImm) {
CHECK_EQ(odpi.reverse_arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(kMode_Operand2_I, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_set, m.code[0]->flags_mode());
- CHECK_EQ(kOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.condition, m.code[0]->flags_condition());
CHECK_EQ(2, m.code[0]->InputCount());
CHECK_EQ(imm, m.ToInt32(m.code[0]->InputAt(1)));
CHECK_EQ(2, m.code[0]->OutputCount());
@@ -432,7 +442,7 @@ TEST(InstructionSelectorODPIAndShiftP) {
CHECK_EQ(odpi.arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(shift.r_mode, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_set, m.code[0]->flags_mode());
- CHECK_EQ(kOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.condition, m.code[0]->flags_condition());
CHECK_EQ(3, m.code[0]->InputCount());
CHECK_LE(1, m.code[0]->OutputCount());
}
@@ -447,7 +457,7 @@ TEST(InstructionSelectorODPIAndShiftP) {
CHECK_EQ(odpi.reverse_arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(shift.r_mode, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_set, m.code[0]->flags_mode());
- CHECK_EQ(kOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.condition, m.code[0]->flags_condition());
CHECK_EQ(3, m.code[0]->InputCount());
CHECK_LE(1, m.code[0]->OutputCount());
}
@@ -489,7 +499,7 @@ TEST(InstructionSelectorODPIAndShiftP) {
CHECK_EQ(odpi.arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(shift.r_mode, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_set, m.code[0]->flags_mode());
- CHECK_EQ(kOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.condition, m.code[0]->flags_condition());
CHECK_EQ(3, m.code[0]->InputCount());
CHECK_EQ(2, m.code[0]->OutputCount());
}
@@ -504,7 +514,7 @@ TEST(InstructionSelectorODPIAndShiftP) {
CHECK_EQ(odpi.reverse_arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(shift.r_mode, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_set, m.code[0]->flags_mode());
- CHECK_EQ(kOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.condition, m.code[0]->flags_condition());
CHECK_EQ(3, m.code[0]->InputCount());
CHECK_EQ(2, m.code[0]->OutputCount());
}
@@ -531,7 +541,7 @@ TEST(InstructionSelectorODPIAndShiftImm) {
CHECK_EQ(odpi.arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(shift.i_mode, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_set, m.code[0]->flags_mode());
- CHECK_EQ(kOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.condition, m.code[0]->flags_condition());
CHECK_EQ(3, m.code[0]->InputCount());
CHECK_EQ(imm, m.ToInt32(m.code[0]->InputAt(2)));
CHECK_LE(1, m.code[0]->OutputCount());
@@ -547,7 +557,7 @@ TEST(InstructionSelectorODPIAndShiftImm) {
CHECK_EQ(odpi.reverse_arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(shift.i_mode, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_set, m.code[0]->flags_mode());
- CHECK_EQ(kOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.condition, m.code[0]->flags_condition());
CHECK_EQ(3, m.code[0]->InputCount());
CHECK_EQ(imm, m.ToInt32(m.code[0]->InputAt(2)));
CHECK_LE(1, m.code[0]->OutputCount());
@@ -592,7 +602,7 @@ TEST(InstructionSelectorODPIAndShiftImm) {
CHECK_EQ(odpi.arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(shift.i_mode, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_set, m.code[0]->flags_mode());
- CHECK_EQ(kOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.condition, m.code[0]->flags_condition());
CHECK_EQ(3, m.code[0]->InputCount());
CHECK_EQ(imm, m.ToInt32(m.code[0]->InputAt(2)));
CHECK_EQ(2, m.code[0]->OutputCount());
@@ -608,7 +618,7 @@ TEST(InstructionSelectorODPIAndShiftImm) {
CHECK_EQ(odpi.reverse_arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(shift.i_mode, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_set, m.code[0]->flags_mode());
- CHECK_EQ(kOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.condition, m.code[0]->flags_condition());
CHECK_EQ(3, m.code[0]->InputCount());
CHECK_EQ(imm, m.ToInt32(m.code[0]->InputAt(2)));
CHECK_EQ(2, m.code[0]->OutputCount());
@@ -1736,7 +1746,7 @@ TEST(InstructionSelectorBranchWithODPIP) {
CHECK_EQ(odpi.arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(kMode_Operand2_R, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_branch, m.code[0]->flags_mode());
- CHECK_EQ(kOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.condition, m.code[0]->flags_condition());
}
{
InstructionSelectorTester m;
@@ -1753,7 +1763,7 @@ TEST(InstructionSelectorBranchWithODPIP) {
CHECK_EQ(odpi.arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(kMode_Operand2_R, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_branch, m.code[0]->flags_mode());
- CHECK_EQ(kNotOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.negated_condition, m.code[0]->flags_condition());
}
{
InstructionSelectorTester m;
@@ -1770,7 +1780,7 @@ TEST(InstructionSelectorBranchWithODPIP) {
CHECK_EQ(odpi.arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(kMode_Operand2_R, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_branch, m.code[0]->flags_mode());
- CHECK_EQ(kNotOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.negated_condition, m.code[0]->flags_condition());
}
}
}
@@ -1798,7 +1808,7 @@ TEST(InstructionSelectorBranchWithODPIImm) {
CHECK_EQ(odpi.arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(kMode_Operand2_I, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_branch, m.code[0]->flags_mode());
- CHECK_EQ(kOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.condition, m.code[0]->flags_condition());
CHECK_LE(2, m.code[0]->InputCount());
CHECK_EQ(imm, m.ToInt32(m.code[0]->InputAt(1)));
}
@@ -1816,7 +1826,7 @@ TEST(InstructionSelectorBranchWithODPIImm) {
CHECK_EQ(odpi.reverse_arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(kMode_Operand2_I, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_branch, m.code[0]->flags_mode());
- CHECK_EQ(kOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.condition, m.code[0]->flags_condition());
CHECK_LE(2, m.code[0]->InputCount());
CHECK_EQ(imm, m.ToInt32(m.code[0]->InputAt(1)));
}
@@ -1835,7 +1845,7 @@ TEST(InstructionSelectorBranchWithODPIImm) {
CHECK_EQ(odpi.arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(kMode_Operand2_I, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_branch, m.code[0]->flags_mode());
- CHECK_EQ(kNotOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.negated_condition, m.code[0]->flags_condition());
CHECK_LE(2, m.code[0]->InputCount());
CHECK_EQ(imm, m.ToInt32(m.code[0]->InputAt(1)));
}
@@ -1854,7 +1864,7 @@ TEST(InstructionSelectorBranchWithODPIImm) {
CHECK_EQ(odpi.reverse_arch_opcode, m.code[0]->arch_opcode());
CHECK_EQ(kMode_Operand2_I, m.code[0]->addressing_mode());
CHECK_EQ(kFlags_branch, m.code[0]->flags_mode());
- CHECK_EQ(kNotOverflow, m.code[0]->flags_condition());
+ CHECK_EQ(odpi.negated_condition, m.code[0]->flags_condition());
CHECK_LE(2, m.code[0]->InputCount());
CHECK_EQ(imm, m.ToInt32(m.code[0]->InputAt(1)));
}
« no previous file with comments | « src/compiler/x64/instruction-selector-x64.cc ('k') | test/cctest/compiler/test-run-machops.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698