diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc index 12cc499a77..db50616b61 100644 --- a/src/ia32/code-stubs-ia32.cc +++ b/src/ia32/code-stubs-ia32.cc @@ -613,11 +613,6 @@ class FloatingPointHelper : public AllStatic { BinaryOpIC::TypeInfo right_type, Label* operand_conversion_failure); - // Assumes that operands are smis or heap numbers and loads them - // into xmm0 and xmm1. Operands are in edx and eax. - // Leaves operands unchanged. - static void LoadSSE2Operands(MacroAssembler* masm); - // Test if operands are numbers (smi or HeapNumber objects), and load // them into xmm0 and xmm1 if they are. Jump to label not_numbers if // either operand is not a number. Operands are in edx and eax. @@ -2461,33 +2456,6 @@ void FloatingPointHelper::LoadFloatOperand(MacroAssembler* masm, } -void FloatingPointHelper::LoadSSE2Operands(MacroAssembler* masm) { - Label load_smi_edx, load_eax, load_smi_eax, done; - // Load operand in edx into xmm0. - __ JumpIfSmi(edx, &load_smi_edx, Label::kNear); - __ movdbl(xmm0, FieldOperand(edx, HeapNumber::kValueOffset)); - - __ bind(&load_eax); - // Load operand in eax into xmm1. - __ JumpIfSmi(eax, &load_smi_eax, Label::kNear); - __ movdbl(xmm1, FieldOperand(eax, HeapNumber::kValueOffset)); - __ jmp(&done, Label::kNear); - - __ bind(&load_smi_edx); - __ SmiUntag(edx); // Untag smi before converting to float. - __ cvtsi2sd(xmm0, edx); - __ SmiTag(edx); // Retag smi for heap number overwriting test. - __ jmp(&load_eax); - - __ bind(&load_smi_eax); - __ SmiUntag(eax); // Untag smi before converting to float. - __ cvtsi2sd(xmm1, eax); - __ SmiTag(eax); // Retag smi for heap number overwriting test. - - __ bind(&done); -} - - void FloatingPointHelper::LoadSSE2Operands(MacroAssembler* masm, Label* not_numbers) { Label load_smi_edx, load_eax, load_smi_eax, load_float_eax, done; diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc index ad33a8c631..41507d158d 100644 --- a/src/x64/code-stubs-x64.cc +++ b/src/x64/code-stubs-x64.cc @@ -560,7 +560,6 @@ class FloatingPointHelper : public AllStatic { // Leaves rdx and rax unchanged. SmiOperands assumes both are smis. // NumberOperands assumes both are smis or heap numbers. static void LoadSSE2SmiOperands(MacroAssembler* masm); - static void LoadSSE2NumberOperands(MacroAssembler* masm); static void LoadSSE2UnknownOperands(MacroAssembler* masm, Label* not_numbers); @@ -569,9 +568,6 @@ class FloatingPointHelper : public AllStatic { static void LoadAsIntegers(MacroAssembler* masm, Label* operand_conversion_failure, Register heap_number_map); - // As above, but we know the operands to be numbers. In that case, - // conversion can't fail. - static void LoadNumbersAsIntegers(MacroAssembler* masm); // Tries to convert two values to smis losslessly. // This fails if either argument is not a Smi nor a HeapNumber, @@ -1546,40 +1542,6 @@ void TranscendentalCacheStub::GenerateOperation( } -// Input: rdx, rax are the left and right objects of a bit op. -// Output: rax, rcx are left and right integers for a bit op. -void FloatingPointHelper::LoadNumbersAsIntegers(MacroAssembler* masm) { - // Check float operands. - Label done; - Label rax_is_smi; - Label rax_is_object; - Label rdx_is_object; - - __ JumpIfNotSmi(rdx, &rdx_is_object); - __ SmiToInteger32(rdx, rdx); - __ JumpIfSmi(rax, &rax_is_smi); - - __ bind(&rax_is_object); - DoubleToIStub stub1(rax, rcx, HeapNumber::kValueOffset - kHeapObjectTag, - true); - __ call(stub1.GetCode(masm->isolate()), RelocInfo::CODE_TARGET); - - __ jmp(&done); - - __ bind(&rdx_is_object); - DoubleToIStub stub2(rdx, rdx, HeapNumber::kValueOffset - kHeapObjectTag, - true); - __ call(stub1.GetCode(masm->isolate()), RelocInfo::CODE_TARGET); - __ JumpIfNotSmi(rax, &rax_is_object); - - __ bind(&rax_is_smi); - __ SmiToInteger32(rcx, rax); - - __ bind(&done); - __ movl(rax, rdx); -} - - // Input: rdx, rax are the left and right objects of a bit op. // Output: rax, rcx are left and right integers for a bit op. // Jump to conversion_failure: rdx and rax are unchanged. @@ -1645,30 +1607,6 @@ void FloatingPointHelper::LoadSSE2SmiOperands(MacroAssembler* masm) { } -void FloatingPointHelper::LoadSSE2NumberOperands(MacroAssembler* masm) { - Label load_smi_rdx, load_nonsmi_rax, load_smi_rax, done; - // Load operand in rdx into xmm0. - __ JumpIfSmi(rdx, &load_smi_rdx); - __ movsd(xmm0, FieldOperand(rdx, HeapNumber::kValueOffset)); - // Load operand in rax into xmm1. - __ JumpIfSmi(rax, &load_smi_rax); - __ bind(&load_nonsmi_rax); - __ movsd(xmm1, FieldOperand(rax, HeapNumber::kValueOffset)); - __ jmp(&done); - - __ bind(&load_smi_rdx); - __ SmiToInteger32(kScratchRegister, rdx); - __ cvtlsi2sd(xmm0, kScratchRegister); - __ JumpIfNotSmi(rax, &load_nonsmi_rax); - - __ bind(&load_smi_rax); - __ SmiToInteger32(kScratchRegister, rax); - __ cvtlsi2sd(xmm1, kScratchRegister); - - __ bind(&done); -} - - void FloatingPointHelper::LoadSSE2UnknownOperands(MacroAssembler* masm, Label* not_numbers) { Label load_smi_rdx, load_nonsmi_rax, load_smi_rax, load_float_rax, done;