Index: src/mips/lithium-codegen-mips.cc |
diff --git a/src/mips/lithium-codegen-mips.cc b/src/mips/lithium-codegen-mips.cc |
index 48620b2625caed1a19761e0508ea576f468477e4..48cc6a63188ac0eacd30a4d704bfb1518c0ede02 100644 |
--- a/src/mips/lithium-codegen-mips.cc |
+++ b/src/mips/lithium-codegen-mips.cc |
@@ -5458,8 +5458,8 @@ void LCodeGen::DoTypeofIsAndBranch(LTypeofIsAndBranch* instr) { |
instr->FalseLabel(chunk_), |
input, |
instr->type_literal(), |
- cmp1, |
- cmp2); |
+ &cmp1, |
+ &cmp2); |
ASSERT(cmp1.is_valid()); |
ASSERT(!cmp2.is_reg() || cmp2.rm().is_valid()); |
@@ -5474,8 +5474,8 @@ Condition LCodeGen::EmitTypeofIs(Label* true_label, |
Label* false_label, |
Register input, |
Handle<String> type_name, |
- Register& cmp1, |
- Operand& cmp2) { |
+ Register* cmp1, |
+ Operand* cmp2) { |
// This function utilizes the delay slot heavily. This is used to load |
// values that are always usable without depending on the type of the input |
// register. |
@@ -5486,8 +5486,8 @@ Condition LCodeGen::EmitTypeofIs(Label* true_label, |
__ JumpIfSmi(input, true_label); |
__ lw(input, FieldMemOperand(input, HeapObject::kMapOffset)); |
__ LoadRoot(at, Heap::kHeapNumberMapRootIndex); |
- cmp1 = input; |
- cmp2 = Operand(at); |
+ *cmp1 = input; |
+ *cmp2 = Operand(at); |
final_branch_condition = eq; |
} else if (String::Equals(type_name, factory->string_string())) { |
@@ -5499,30 +5499,30 @@ Condition LCodeGen::EmitTypeofIs(Label* true_label, |
// other branch. |
__ lbu(at, FieldMemOperand(input, Map::kBitFieldOffset)); |
__ And(at, at, 1 << Map::kIsUndetectable); |
- cmp1 = at; |
- cmp2 = Operand(zero_reg); |
+ *cmp1 = at; |
+ *cmp2 = Operand(zero_reg); |
final_branch_condition = eq; |
} else if (String::Equals(type_name, factory->symbol_string())) { |
__ JumpIfSmi(input, false_label); |
__ GetObjectType(input, input, scratch); |
- cmp1 = scratch; |
- cmp2 = Operand(SYMBOL_TYPE); |
+ *cmp1 = scratch; |
+ *cmp2 = Operand(SYMBOL_TYPE); |
final_branch_condition = eq; |
} else if (String::Equals(type_name, factory->boolean_string())) { |
__ LoadRoot(at, Heap::kTrueValueRootIndex); |
__ Branch(USE_DELAY_SLOT, true_label, eq, at, Operand(input)); |
__ LoadRoot(at, Heap::kFalseValueRootIndex); |
- cmp1 = at; |
- cmp2 = Operand(input); |
+ *cmp1 = at; |
+ *cmp2 = Operand(input); |
final_branch_condition = eq; |
} else if (FLAG_harmony_typeof && |
String::Equals(type_name, factory->null_string())) { |
__ LoadRoot(at, Heap::kNullValueRootIndex); |
- cmp1 = at; |
- cmp2 = Operand(input); |
+ *cmp1 = at; |
+ *cmp2 = Operand(input); |
final_branch_condition = eq; |
} else if (String::Equals(type_name, factory->undefined_string())) { |
@@ -5535,8 +5535,8 @@ Condition LCodeGen::EmitTypeofIs(Label* true_label, |
__ lw(input, FieldMemOperand(input, HeapObject::kMapOffset)); |
__ lbu(at, FieldMemOperand(input, Map::kBitFieldOffset)); |
__ And(at, at, 1 << Map::kIsUndetectable); |
- cmp1 = at; |
- cmp2 = Operand(zero_reg); |
+ *cmp1 = at; |
+ *cmp2 = Operand(zero_reg); |
final_branch_condition = ne; |
} else if (String::Equals(type_name, factory->function_string())) { |
@@ -5544,8 +5544,8 @@ Condition LCodeGen::EmitTypeofIs(Label* true_label, |
__ JumpIfSmi(input, false_label); |
__ GetObjectType(input, scratch, input); |
__ Branch(true_label, eq, input, Operand(JS_FUNCTION_TYPE)); |
- cmp1 = input; |
- cmp2 = Operand(JS_FUNCTION_PROXY_TYPE); |
+ *cmp1 = input; |
+ *cmp2 = Operand(JS_FUNCTION_PROXY_TYPE); |
final_branch_condition = eq; |
} else if (String::Equals(type_name, factory->object_string())) { |
@@ -5564,13 +5564,13 @@ Condition LCodeGen::EmitTypeofIs(Label* true_label, |
// Check for undetectable objects => false. |
__ lbu(at, FieldMemOperand(map, Map::kBitFieldOffset)); |
__ And(at, at, 1 << Map::kIsUndetectable); |
- cmp1 = at; |
- cmp2 = Operand(zero_reg); |
+ *cmp1 = at; |
+ *cmp2 = Operand(zero_reg); |
final_branch_condition = eq; |
} else { |
- cmp1 = at; |
- cmp2 = Operand(zero_reg); // Set to valid regs, to avoid caller assertion. |
+ *cmp1 = at; |
+ *cmp2 = Operand(zero_reg); // Set to valid regs, to avoid caller assertion. |
__ Branch(false_label); |
} |