diff options
author | Michaël Zasso <targos@protonmail.com> | 2017-05-02 10:50:00 +0200 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2017-05-06 20:02:35 +0200 |
commit | 60d1aac8d225e844e68ae48e8f3d58802e635fbe (patch) | |
tree | 922f347dd054db18d88666fad7181e5a777f4022 /deps/v8/src/mips64/macro-assembler-mips64.cc | |
parent | 73d9c0f903ae371cd5011af64c3a6f69a1bda978 (diff) | |
download | node-new-60d1aac8d225e844e68ae48e8f3d58802e635fbe.tar.gz |
deps: update V8 to 5.8.283.38
PR-URL: https://github.com/nodejs/node/pull/12784
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Diffstat (limited to 'deps/v8/src/mips64/macro-assembler-mips64.cc')
-rw-r--r-- | deps/v8/src/mips64/macro-assembler-mips64.cc | 69 |
1 files changed, 13 insertions, 56 deletions
diff --git a/deps/v8/src/mips64/macro-assembler-mips64.cc b/deps/v8/src/mips64/macro-assembler-mips64.cc index f022e87796..849327e60b 100644 --- a/deps/v8/src/mips64/macro-assembler-mips64.cc +++ b/deps/v8/src/mips64/macro-assembler-mips64.cc @@ -4040,17 +4040,16 @@ void MacroAssembler::PopRegisterAsTwoSmis(Register dst, Register scratch) { or_(dst, dst, scratch); } - -void MacroAssembler::DebugBreak() { - PrepareCEntryArgs(0); - PrepareCEntryFunction( - ExternalReference(Runtime::kHandleDebuggerStatement, isolate())); - CEntryStub ces(isolate(), 1); - DCHECK(AllowThisStubCall(&ces)); - Call(ces.GetCode(), RelocInfo::DEBUGGER_STATEMENT); +void MacroAssembler::MaybeDropFrames() { + // Check whether we need to drop frames to restart a function on the stack. + ExternalReference restart_fp = + ExternalReference::debug_restart_fp_address(isolate()); + li(a1, Operand(restart_fp)); + ld(a1, MemOperand(a1)); + Jump(isolate()->builtins()->FrameDropperTrampoline(), RelocInfo::CODE_TARGET, + ne, a1, Operand(zero_reg)); } - // --------------------------------------------------------------------------- // Exception handling. @@ -4928,32 +4927,6 @@ void MacroAssembler::GetMapConstructor(Register result, Register map, bind(&done); } - -void MacroAssembler::TryGetFunctionPrototype(Register function, Register result, - Register scratch, Label* miss) { - // Get the prototype or initial map from the function. - ld(result, - FieldMemOperand(function, JSFunction::kPrototypeOrInitialMapOffset)); - - // If the prototype or initial map is the hole, don't return it and - // simply miss the cache instead. This will allow us to allocate a - // prototype object on-demand in the runtime system. - LoadRoot(t8, Heap::kTheHoleValueRootIndex); - Branch(miss, eq, result, Operand(t8)); - - // If the function does not have an initial map, we're done. - Label done; - GetObjectType(result, scratch, scratch); - Branch(&done, ne, scratch, Operand(MAP_TYPE)); - - // Get the prototype from the initial map. - ld(result, FieldMemOperand(result, Map::kPrototypeOffset)); - - // All done. - bind(&done); -} - - void MacroAssembler::GetObjectType(Register object, Register map, Register type_reg) { @@ -5653,7 +5626,7 @@ void MacroAssembler::LoadGlobalFunctionInitialMap(Register function, } void MacroAssembler::StubPrologue(StackFrame::Type type) { - li(at, Operand(Smi::FromInt(type))); + li(at, Operand(StackFrame::TypeToMarker(type))); PushCommonFrame(at); } @@ -5686,8 +5659,8 @@ void MacroAssembler::Prologue(bool code_pre_aging) { void MacroAssembler::EmitLoadFeedbackVector(Register vector) { ld(vector, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); - ld(vector, FieldMemOperand(vector, JSFunction::kLiteralsOffset)); - ld(vector, FieldMemOperand(vector, LiteralsArray::kFeedbackVectorOffset)); + ld(vector, FieldMemOperand(vector, JSFunction::kFeedbackVectorOffset)); + ld(vector, FieldMemOperand(vector, Cell::kValueOffset)); } @@ -5713,7 +5686,7 @@ void MacroAssembler::EnterFrame(StackFrame::Type type) { stack_offset -= kPointerSize; sd(fp, MemOperand(sp, stack_offset)); stack_offset -= kPointerSize; - li(t9, Operand(Smi::FromInt(type))); + li(t9, Operand(StackFrame::TypeToMarker(type))); sd(t9, MemOperand(sp, stack_offset)); if (type == StackFrame::INTERNAL) { DCHECK_EQ(stack_offset, kPointerSize); @@ -5770,7 +5743,7 @@ void MacroAssembler::EnterExitFrame(bool save_doubles, int stack_space, daddiu(sp, sp, -2 * kPointerSize - ExitFrameConstants::kFixedFrameSizeFromFp); sd(ra, MemOperand(sp, 4 * kPointerSize)); sd(fp, MemOperand(sp, 3 * kPointerSize)); - li(at, Operand(Smi::FromInt(frame_type))); + li(at, Operand(StackFrame::TypeToMarker(frame_type))); sd(at, MemOperand(sp, 2 * kPointerSize)); // Set up new frame pointer. daddiu(fp, sp, ExitFrameConstants::kFixedFrameSizeFromFp); @@ -5868,22 +5841,6 @@ void MacroAssembler::LeaveExitFrame(bool save_doubles, Register argument_count, daddiu(sp, sp, 2 * kPointerSize); } - -void MacroAssembler::InitializeNewString(Register string, - Register length, - Heap::RootListIndex map_index, - Register scratch1, - Register scratch2) { - // dsll(scratch1, length, kSmiTagSize); - dsll32(scratch1, length, 0); - LoadRoot(scratch2, map_index); - sd(scratch1, FieldMemOperand(string, String::kLengthOffset)); - li(scratch1, Operand(String::kEmptyHashField)); - sd(scratch2, FieldMemOperand(string, HeapObject::kMapOffset)); - sw(scratch1, FieldMemOperand(string, String::kHashFieldOffset)); -} - - int MacroAssembler::ActivationFrameAlignment() { #if V8_HOST_ARCH_MIPS || V8_HOST_ARCH_MIPS64 // Running on the real platform. Use the alignment as mandated by the local |