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())) { |