Chromium Code Reviews| Index: src/x64/codegen-x64.cc |
| =================================================================== |
| --- src/x64/codegen-x64.cc (revision 7153) |
| +++ src/x64/codegen-x64.cc (working copy) |
| @@ -766,7 +766,7 @@ |
| __ AbortIfNotNumber(value.reg()); |
| } |
| // Smi => false iff zero. |
| - __ SmiCompare(value.reg(), Smi::FromInt(0)); |
| + __ SmiCompareWithObject(value.reg(), Smi::FromInt(0)); |
| if (value.is_smi()) { |
| value.Unuse(); |
| dest->Split(not_zero); |
| @@ -794,7 +794,7 @@ |
| dest->false_target()->Branch(equal); |
| // Smi => false iff zero. |
| - __ SmiCompare(value.reg(), Smi::FromInt(0)); |
| + __ SmiCompareWithObject(value.reg(), Smi::FromInt(0)); |
| dest->false_target()->Branch(equal); |
| Condition is_smi = masm_->CheckSmi(value.reg()); |
| dest->true_target()->Branch(is_smi); |
| @@ -2108,7 +2108,7 @@ |
| if (cc == equal) { |
| Label comparison_done; |
| __ SmiCompare(FieldOperand(left_side.reg(), String::kLengthOffset), |
| - Smi::FromInt(1)); |
| + Smi::FromInt(1)); |
| __ j(not_equal, &comparison_done); |
| uint8_t char_value = |
| static_cast<uint8_t>(String::cast(*right_val)->Get(0)); |
| @@ -2246,7 +2246,7 @@ |
| is_smi.Bind(); |
| left_side = Result(left_reg); |
| right_side = Result(right_reg); |
| - __ SmiCompare(left_side.reg(), right_side.reg()); |
| + __ cmpq(left_side.reg(), right_side.reg()); |
|
Lasse Reichstein
2011/03/14 08:51:01
Why not SmiCompare? You are assuming the layout of
Erik Corry
2011/03/14 16:26:45
Done.
|
| right_side.Unuse(); |
| left_side.Unuse(); |
| dest->Split(cc); |
| @@ -2304,7 +2304,6 @@ |
| __ AbortIfNotSmi(left_reg); |
| } |
| // Test smi equality and comparison by signed int comparison. |
| - // Both sides are smis, so we can use an Immediate. |
| __ SmiCompare(left_reg, constant_smi); |
| left_side->Unuse(); |
| right_side->Unuse(); |
| @@ -2314,7 +2313,7 @@ |
| JumpTarget is_smi; |
| if (cc == equal) { |
| // We can do the equality comparison before the smi check. |
| - __ SmiCompare(left_reg, constant_smi); |
| + __ SmiCompareWithObject(left_reg, constant_smi); |
| dest->true_target()->Branch(equal); |
| Condition left_is_smi = masm_->CheckSmi(left_reg); |
| dest->false_target()->Branch(left_is_smi); |
| @@ -2575,8 +2574,9 @@ |
| // adaptor frame below it. |
| Label invoke, adapted; |
| __ movq(rdx, Operand(rbp, StandardFrameConstants::kCallerFPOffset)); |
| - __ SmiCompare(Operand(rdx, StandardFrameConstants::kContextOffset), |
| - Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); |
| + __ SmiCompareWithObject( |
| + Operand(rdx, StandardFrameConstants::kContextOffset), |
| + Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); |
| __ j(equal, &adapted); |
| // No arguments adaptor frame. Copy fixed number of arguments. |
| @@ -3857,7 +3857,7 @@ |
| __ movq(rbx, rax); |
| // If the property has been removed while iterating, we just skip it. |
| - __ SmiCompare(rbx, Smi::FromInt(0)); |
| + __ SmiCompareWithObject(rbx, Smi::FromInt(0)); |
| node->continue_target()->Branch(equal); |
| end_del_check.Bind(); |
| @@ -6198,15 +6198,17 @@ |
| // Skip the arguments adaptor frame if it exists. |
| Label check_frame_marker; |
| - __ SmiCompare(Operand(fp.reg(), StandardFrameConstants::kContextOffset), |
| - Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); |
| + __ SmiCompareWithObject( |
| + Operand(fp.reg(), StandardFrameConstants::kContextOffset), |
| + Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); |
| __ j(not_equal, &check_frame_marker); |
| __ movq(fp.reg(), Operand(fp.reg(), StandardFrameConstants::kCallerFPOffset)); |
| // Check the marker in the calling frame. |
| __ bind(&check_frame_marker); |
| - __ SmiCompare(Operand(fp.reg(), StandardFrameConstants::kMarkerOffset), |
| - Smi::FromInt(StackFrame::CONSTRUCT)); |
| + __ SmiCompareWithObject( |
| + Operand(fp.reg(), StandardFrameConstants::kMarkerOffset), |
| + Smi::FromInt(StackFrame::CONSTRUCT)); |
| fp.Unuse(); |
| destination()->Split(equal); |
| } |
| @@ -6226,8 +6228,9 @@ |
| // Check if the calling frame is an arguments adaptor frame. |
| __ movq(fp.reg(), Operand(rbp, StandardFrameConstants::kCallerFPOffset)); |
| - __ SmiCompare(Operand(fp.reg(), StandardFrameConstants::kContextOffset), |
| - Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); |
| + __ SmiCompareWithObject( |
| + Operand(fp.reg(), StandardFrameConstants::kContextOffset), |
| + Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)); |
| __ j(not_equal, &exit); |
| // Arguments adaptor case: Read the arguments length from the |
| @@ -6801,9 +6804,9 @@ |
| // Check that both indices are valid. |
| __ movq(tmp2.reg(), FieldOperand(object.reg(), JSArray::kLengthOffset)); |
| - __ SmiCompare(tmp2.reg(), index1.reg()); |
| + __ cmpq(tmp2.reg(), index1.reg()); |
| deferred->Branch(below_equal); |
| - __ SmiCompare(tmp2.reg(), index2.reg()); |
| + __ cmpq(tmp2.reg(), index2.reg()); |
| deferred->Branch(below_equal); |
|
Lasse Reichstein
2011/03/14 08:51:01
Do use SmiCompare!
Erik Corry
2011/03/14 16:26:45
Done.
|
| // Bring addresses into index1 and index2. |