| Index: src/x64/lithium-codegen-x64.cc
|
| ===================================================================
|
| --- src/x64/lithium-codegen-x64.cc (revision 7146)
|
| +++ src/x64/lithium-codegen-x64.cc (working copy)
|
| @@ -1210,7 +1210,7 @@
|
| Register reg = ToRegister(instr->InputAt(0));
|
| HType type = instr->hydrogen()->type();
|
| if (type.IsBoolean()) {
|
| - __ Cmp(reg, Factory::true_value());
|
| + __ CompareRoot(reg, Heap::kTrueValueRootIndex);
|
| EmitBranch(true_block, false_block, equal);
|
| } else if (type.IsSmi()) {
|
| __ SmiCompare(reg, Smi::FromInt(0));
|
| @@ -1477,14 +1477,14 @@
|
|
|
| int true_block = chunk_->LookupDestination(instr->true_block_id());
|
|
|
| - __ Cmp(reg, Factory::null_value());
|
| + __ CompareRoot(reg, Heap::kNullValueRootIndex);
|
| if (instr->is_strict()) {
|
| EmitBranch(true_block, false_block, equal);
|
| } else {
|
| Label* true_label = chunk_->GetAssemblyLabel(true_block);
|
| Label* false_label = chunk_->GetAssemblyLabel(false_block);
|
| __ j(equal, true_label);
|
| - __ Cmp(reg, Factory::undefined_value());
|
| + __ CompareRoot(reg, Heap::kUndefinedValueRootIndex);
|
| __ j(equal, true_label);
|
| __ JumpIfSmi(reg, false_label);
|
| // Check for undetectable objects by looking in the bit field in
|
| @@ -2092,14 +2092,14 @@
|
| __ movq(result, FieldOperand(input, JSObject::kElementsOffset));
|
| if (FLAG_debug_code) {
|
| NearLabel done;
|
| - __ Cmp(FieldOperand(result, HeapObject::kMapOffset),
|
| - Factory::fixed_array_map());
|
| + __ CompareRoot(FieldOperand(result, HeapObject::kMapOffset),
|
| + Heap::kFixedArrayMapRootIndex);
|
| __ j(equal, &done);
|
| - __ Cmp(FieldOperand(result, HeapObject::kMapOffset),
|
| - Factory::external_pixel_array_map());
|
| + __ CompareRoot(FieldOperand(result, HeapObject::kMapOffset),
|
| + Heap::kExternalPixelArrayMapRootIndex);
|
| __ j(equal, &done);
|
| - __ Cmp(FieldOperand(result, HeapObject::kMapOffset),
|
| - Factory::fixed_cow_array_map());
|
| + __ CompareRoot(FieldOperand(result, HeapObject::kMapOffset),
|
| + Heap::kFixedCOWArrayMapRootIndex);
|
| __ Check(equal, "Check for fast elements failed.");
|
| __ bind(&done);
|
| }
|
| @@ -2146,7 +2146,7 @@
|
| FixedArray::kHeaderSize));
|
|
|
| // Check for the hole value.
|
| - __ Cmp(result, Factory::the_hole_value());
|
| + __ CompareRoot(result, Heap::kTheHoleValueRootIndex);
|
| DeoptimizeIf(equal, instr->environment());
|
| }
|
|
|
| @@ -3434,7 +3434,9 @@
|
| } else {
|
| __ push(rsi);
|
| __ Push(shared_info);
|
| - __ Push(pretenure ? Factory::true_value() : Factory::false_value());
|
| + __ PushRoot(pretenure ?
|
| + Heap::kTrueValueRootIndex :
|
| + Heap::kFalseValueRootIndex);
|
| CallRuntime(Runtime::kNewClosure, 3, instr);
|
| }
|
| }
|
| @@ -3517,8 +3519,9 @@
|
| Condition final_branch_condition = no_condition;
|
| if (type_name->Equals(Heap::number_symbol())) {
|
| __ JumpIfSmi(input, true_label);
|
| - __ Cmp(FieldOperand(input, HeapObject::kMapOffset),
|
| - Factory::heap_number_map());
|
| + __ CompareRoot(FieldOperand(input, HeapObject::kMapOffset),
|
| + Heap::kHeapNumberMapRootIndex);
|
| +
|
| final_branch_condition = equal;
|
|
|
| } else if (type_name->Equals(Heap::string_symbol())) {
|
|
|