Index: src/code-stubs.cc |
diff --git a/src/code-stubs.cc b/src/code-stubs.cc |
index b56beb8d524bf449d67bc9bf34705e586f97727a..08ca32ed0d5fe76c65afe71f4b9e3b66a821c14c 100644 |
--- a/src/code-stubs.cc |
+++ b/src/code-stubs.cc |
@@ -472,6 +472,32 @@ void StringLengthStub::GenerateAssembly( |
assembler->Return(result); |
} |
+void AllocateHeapNumberStub::GenerateAssembly( |
+ compiler::CodeStubAssembler* assembler) const { |
+ compiler::Node* result = assembler->Allocate( |
+ HeapNumber::kSize, compiler::AllocationFlags::kTagObject); |
+ |
+ assembler->StoreNoWriteBarrier( |
+ MachineRepresentation::kTagged, |
+ assembler->IntPtrAdd( |
Benedikt Meurer
2016/02/25 13:00:40
Please don't nest these computations, add separate
epertoso
2016/02/25 13:26:53
Done.
|
+ result, |
+ assembler->IntPtrConstant(HeapObject::kMapOffset - kHeapObjectTag)), |
+ assembler->HeapConstant(isolate()->factory()->heap_number_map())); |
+ assembler->Return(result); |
+} |
+ |
+void AllocateMutableHeapNumberStub::GenerateAssembly( |
+ compiler::CodeStubAssembler* assembler) const { |
+ compiler::Node* result = assembler->Allocate( |
+ HeapNumber::kSize, compiler::AllocationFlags::kTagObject); |
+ assembler->StoreNoWriteBarrier( |
Benedikt Meurer
2016/02/25 13:00:40
Same here.
epertoso
2016/02/25 13:26:53
Done.
|
+ MachineRepresentation::kTagged, |
+ assembler->IntPtrAdd( |
+ result, |
+ assembler->IntPtrConstant(HeapObject::kMapOffset - kHeapObjectTag)), |
+ assembler->HeapConstant(isolate()->factory()->mutable_heap_number_map())); |
+ assembler->Return(result); |
+} |
template<class StateType> |
void HydrogenCodeStub::TraceTransition(StateType from, StateType to) { |