| 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);
|
| }
|
|
|
|
|