Commit b0791401 authored by danno@chromium.org's avatar danno@chromium.org

MIPS: Fixed a minor inconsistency in lithium-codegen-mips.cc

EmitIsObject is only called from one function, DoIsObjectAndBranch.
DoIsObjectAndBranch now passes the temp2 register to EmitIsObject
instead of simply relying on the two functions using the same
lithium scratch register.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8588004
Patch from Gergely Kis <gergely@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10017 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent bef75b34
...@@ -1681,9 +1681,9 @@ void LCodeGen::DoIsNilAndBranch(LIsNilAndBranch* instr) { ...@@ -1681,9 +1681,9 @@ void LCodeGen::DoIsNilAndBranch(LIsNilAndBranch* instr) {
Condition LCodeGen::EmitIsObject(Register input, Condition LCodeGen::EmitIsObject(Register input,
Register temp1, Register temp1,
Register temp2,
Label* is_not_object, Label* is_not_object,
Label* is_object) { Label* is_object) {
Register temp2 = scratch0();
__ JumpIfSmi(input, is_not_object); __ JumpIfSmi(input, is_not_object);
__ LoadRoot(temp2, Heap::kNullValueRootIndex); __ LoadRoot(temp2, Heap::kNullValueRootIndex);
...@@ -1716,7 +1716,7 @@ void LCodeGen::DoIsObjectAndBranch(LIsObjectAndBranch* instr) { ...@@ -1716,7 +1716,7 @@ void LCodeGen::DoIsObjectAndBranch(LIsObjectAndBranch* instr) {
Label* false_label = chunk_->GetAssemblyLabel(false_block); Label* false_label = chunk_->GetAssemblyLabel(false_block);
Condition true_cond = Condition true_cond =
EmitIsObject(reg, temp1, false_label, true_label); EmitIsObject(reg, temp1, temp2, false_label, true_label);
EmitBranch(true_block, false_block, true_cond, temp2, EmitBranch(true_block, false_block, true_cond, temp2,
Operand(LAST_NONCALLABLE_SPEC_OBJECT_TYPE)); Operand(LAST_NONCALLABLE_SPEC_OBJECT_TYPE));
......
...@@ -300,6 +300,7 @@ class LCodeGen BASE_EMBEDDED { ...@@ -300,6 +300,7 @@ class LCodeGen BASE_EMBEDDED {
// true and false label should be made, to optimize fallthrough. // true and false label should be made, to optimize fallthrough.
Condition EmitIsObject(Register input, Condition EmitIsObject(Register input,
Register temp1, Register temp1,
Register temp2,
Label* is_not_object, Label* is_not_object,
Label* is_object); Label* is_object);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment