Index: src/x64/code-stubs-x64.cc |
diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc |
index 81fa29b911a0eea55090215bf75df2b6356cb7a6..64eac22a4d530b989221ba8721fe74bf241294a3 100644 |
--- a/src/x64/code-stubs-x64.cc |
+++ b/src/x64/code-stubs-x64.cc |
@@ -5628,52 +5628,6 @@ void TypedArrayJumpTableEpilogue(MacroAssembler* masm, Label* table, Label* i8, |
__ Abort(kNoReason); |
} |
-void ReturnInteger32(MacroAssembler* masm, XMMRegister dst, Register value, |
- Label* use_heap_number) { |
- Label not_smi; |
- if (!value.is(rax)) { |
- __ movp(rax, value); |
- } |
- __ JumpIfNotValidSmiValue(rax, ¬_smi, Label::kNear); |
- __ Integer32ToSmi(rax, rax); |
- __ Ret(); |
- |
- __ bind(¬_smi); |
- __ Cvtlsi2sd(dst, rax); |
- __ jmp(use_heap_number); |
-} |
- |
-void ReturnUnsignedInteger32(MacroAssembler* masm, XMMRegister dst, |
- Register value, Label* use_heap_number) { |
- Label not_smi; |
- if (!value.is(rax)) { |
- __ movp(rax, value); |
- } |
- __ JumpIfUIntNotValidSmiValue(rax, ¬_smi, Label::kNear); |
- __ Integer32ToSmi(rax, rax); |
- __ Ret(); |
- |
- __ bind(¬_smi); |
- __ Cvtqsi2sd(dst, rax); |
- __ jmp(use_heap_number); |
-} |
- |
-void ReturnAllocatedHeapNumber(MacroAssembler* masm, XMMRegister value, |
- Register scratch) { |
- Label call_runtime; |
- __ AllocateHeapNumber(rax, scratch, &call_runtime); |
- __ Movsd(FieldOperand(rax, HeapNumber::kValueOffset), value); |
- __ Ret(); |
- |
- __ bind(&call_runtime); |
- { |
- FrameScope scope(masm, StackFrame::INTERNAL); |
- __ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber); |
- __ Movsd(FieldOperand(rax, HeapNumber::kValueOffset), value); |
- } |
- __ Ret(); |
-} |
- |
} // anonymous namespace |
void AtomicsLoadStub::Generate(MacroAssembler* masm) { |
@@ -5690,39 +5644,30 @@ void AtomicsLoadStub::Generate(MacroAssembler* masm) { |
__ bind(&i8); |
__ movb(rax, Operand(backing_store, index, times_1, 0)); |
__ movsxbl(rax, rax); |
- __ Integer32ToSmi(rax, rax); |
__ Ret(); |
__ bind(&u8); |
__ movb(rax, Operand(backing_store, index, times_1, 0)); |
__ movzxbl(rax, rax); |
- __ Integer32ToSmi(rax, rax); |
__ Ret(); |
__ bind(&i16); |
__ movw(rax, Operand(backing_store, index, times_2, 0)); |
__ movsxwl(rax, rax); |
- __ Integer32ToSmi(rax, rax); |
__ Ret(); |
__ bind(&u16); |
__ movw(rax, Operand(backing_store, index, times_2, 0)); |
__ movzxwl(rax, rax); |
- __ Integer32ToSmi(rax, rax); |
__ Ret(); |
- Label use_heap_number; |
- |
__ bind(&i32); |
__ movl(rax, Operand(backing_store, index, times_4, 0)); |
- ReturnInteger32(masm, xmm0, rax, &use_heap_number); |
+ __ Ret(); |
__ bind(&u32); |
__ movl(rax, Operand(backing_store, index, times_4, 0)); |
- ReturnUnsignedInteger32(masm, xmm0, rax, &use_heap_number); |
- |
- __ bind(&use_heap_number); |
- ReturnAllocatedHeapNumber(masm, xmm0, rcx); |
+ __ Ret(); |
TypedArrayJumpTableEpilogue(masm, &table, &i8, &u8, &i16, &u16, &i32, &u32, |
&u8); |