From ce854aa0c52252add7c2390efefbde1123166cec Mon Sep 17 00:00:00 2001 From: "palfia@homejinni.com" Date: Mon, 4 Mar 2013 14:41:39 +0000 Subject: [PATCH] MIPS: Minor cleanup of CompareIC state Port r13775 (1fd19d83) Original commit message: Allow transitioning from KNOWN_OBJECT to KNONW_OBJECT or OBJECT. Also, rename HEAP_NUMBER IC states to NUMBER, since they handle Smis, too. BUG= Review URL: https://codereview.chromium.org/12387076 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/mips/code-stubs-mips.cc | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/src/mips/code-stubs-mips.cc b/src/mips/code-stubs-mips.cc index 1dada8c..4eba0fa 100644 --- a/src/mips/code-stubs-mips.cc +++ b/src/mips/code-stubs-mips.cc @@ -1784,7 +1784,7 @@ static void ICCompareStub_CheckInputType(MacroAssembler* masm, Label ok; if (expected == CompareIC::SMI) { __ JumpIfNotSmi(input, fail); - } else if (expected == CompareIC::HEAP_NUMBER) { + } else if (expected == CompareIC::NUMBER) { __ JumpIfSmi(input, &ok); __ CheckMap(input, scratch, Heap::kHeapNumberMapRootIndex, fail, DONT_DO_SMI_CHECK); @@ -2143,8 +2143,8 @@ void UnaryOpStub::Generate(MacroAssembler* masm) { case UnaryOpIC::SMI: GenerateSmiStub(masm); break; - case UnaryOpIC::HEAP_NUMBER: - GenerateHeapNumberStub(masm); + case UnaryOpIC::NUMBER: + GenerateNumberStub(masm); break; case UnaryOpIC::GENERIC: GenerateGenericStub(masm); @@ -2224,13 +2224,13 @@ void UnaryOpStub::GenerateSmiCodeBitNot(MacroAssembler* masm, // TODO(svenpanne): Use virtual functions instead of switch. -void UnaryOpStub::GenerateHeapNumberStub(MacroAssembler* masm) { +void UnaryOpStub::GenerateNumberStub(MacroAssembler* masm) { switch (op_) { case Token::SUB: - GenerateHeapNumberStubSub(masm); + GenerateNumberStubSub(masm); break; case Token::BIT_NOT: - GenerateHeapNumberStubBitNot(masm); + GenerateNumberStubBitNot(masm); break; default: UNREACHABLE(); @@ -2238,7 +2238,7 @@ void UnaryOpStub::GenerateHeapNumberStub(MacroAssembler* masm) { } -void UnaryOpStub::GenerateHeapNumberStubSub(MacroAssembler* masm) { +void UnaryOpStub::GenerateNumberStubSub(MacroAssembler* masm) { Label non_smi, slow, call_builtin; GenerateSmiCodeSub(masm, &non_smi, &call_builtin); __ bind(&non_smi); @@ -2250,7 +2250,7 @@ void UnaryOpStub::GenerateHeapNumberStubSub(MacroAssembler* masm) { } -void UnaryOpStub::GenerateHeapNumberStubBitNot(MacroAssembler* masm) { +void UnaryOpStub::GenerateNumberStubBitNot(MacroAssembler* masm) { Label non_smi, slow; GenerateSmiCodeBitNot(masm, &non_smi); __ bind(&non_smi); @@ -2665,8 +2665,7 @@ void BinaryOpStub_GenerateFPOperation(MacroAssembler* masm, masm, right, destination, f14, f16, a2, a3, heap_number_map, scratch1, scratch2, f2, miss); } else { - Label* fail = (right_type == BinaryOpIC::HEAP_NUMBER) ? miss - : not_numbers; + Label* fail = (right_type == BinaryOpIC::NUMBER) ? miss : not_numbers; FloatingPointHelper::LoadNumber( masm, destination, right, f14, a2, a3, heap_number_map, scratch1, scratch2, fail); @@ -2678,8 +2677,7 @@ void BinaryOpStub_GenerateFPOperation(MacroAssembler* masm, masm, left, destination, f12, f16, a0, a1, heap_number_map, scratch1, scratch2, f2, miss); } else { - Label* fail = (left_type == BinaryOpIC::HEAP_NUMBER) ? miss - : not_numbers; + Label* fail = (left_type == BinaryOpIC::NUMBER) ? miss : not_numbers; FloatingPointHelper::LoadNumber( masm, destination, left, f12, a0, a1, heap_number_map, scratch1, scratch2, fail); @@ -3078,7 +3076,7 @@ void BinaryOpStub::GenerateInt32Stub(MacroAssembler* masm) { __ bind(&return_heap_number); // Return a heap number, or fall through to type transition or runtime // call if we can't. - if (result_type_ >= ((op_ == Token::DIV) ? BinaryOpIC::HEAP_NUMBER + if (result_type_ >= ((op_ == Token::DIV) ? BinaryOpIC::NUMBER : BinaryOpIC::INT32)) { // We are using FPU registers so s0 is available. heap_number_result = s0; @@ -3307,11 +3305,11 @@ void BinaryOpStub::GenerateOddballStub(MacroAssembler* masm) { } __ bind(&done); - GenerateHeapNumberStub(masm); + GenerateNumberStub(masm); } -void BinaryOpStub::GenerateHeapNumberStub(MacroAssembler* masm) { +void BinaryOpStub::GenerateNumberStub(MacroAssembler* masm) { Label call_runtime, transition; BinaryOpStub_GenerateFPOperation( masm, left_type_, right_type_, false, @@ -7008,8 +7006,8 @@ void ICCompareStub::GenerateSmis(MacroAssembler* masm) { } -void ICCompareStub::GenerateHeapNumbers(MacroAssembler* masm) { - ASSERT(state_ == CompareIC::HEAP_NUMBER); +void ICCompareStub::GenerateNumbers(MacroAssembler* masm) { + ASSERT(state_ == CompareIC::NUMBER); Label generic_stub; Label unordered, maybe_undefined1, maybe_undefined2; -- 2.7.4