From 8a43a3d7619fde59f0d1f2fad05d8ae7d1732b02 Mon Sep 17 00:00:00 2001 From: Ali Ijaz Sheikh Date: Mon, 30 Nov 2015 21:22:40 -0800 Subject: deps: upgrade V8 to 4.7.80.24 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pick up the latest branch head for V8 4.7: https://github.com/v8/v8/commit/be169f8df059040e6a53ec1dd4579d8bca2167b5 Full change history for the 4.7 branch: https://chromium.googlesource.com/v8/v8.git/+log/branch-heads/4.7 V8 blog post about what is new on V8 4.7: http://v8project.blogspot.de/2015/10/v8-release-47.html PR-URL: https://github.com/nodejs/node/pull/4106 Reviewed-By: bnoordhuis - Ben Noordhuis Reviewed-By: targos - Michaƫl Zasso Reviewed-By: rvagg - Rod Vagg --- deps/v8/src/compiler/ppc/code-generator-ppc.cc | 55 ++++++++++++++++++++------ 1 file changed, 42 insertions(+), 13 deletions(-) (limited to 'deps/v8/src/compiler/ppc/code-generator-ppc.cc') diff --git a/deps/v8/src/compiler/ppc/code-generator-ppc.cc b/deps/v8/src/compiler/ppc/code-generator-ppc.cc index 2acea2f1d5..df776fac68 100644 --- a/deps/v8/src/compiler/ppc/code-generator-ppc.cc +++ b/deps/v8/src/compiler/ppc/code-generator-ppc.cc @@ -187,8 +187,7 @@ Condition FlagsConditionToCondition(FlagsCondition condition) { #else return ge; #endif - case kUnorderedEqual: - case kUnorderedNotEqual: + default: break; } UNREACHABLE(); @@ -1076,6 +1075,20 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) { #endif DCHECK_EQ(LeaveRC, i.OutputRCBit()); break; + case kPPC_BitcastFloat32ToInt32: + __ MovFloatToInt(i.OutputRegister(), i.InputDoubleRegister(0)); + break; + case kPPC_BitcastInt32ToFloat32: + __ MovIntToFloat(i.OutputDoubleRegister(), i.InputRegister(0)); + break; +#if V8_TARGET_ARCH_PPC64 + case kPPC_BitcastDoubleToInt64: + __ MovDoubleToInt64(i.OutputRegister(), i.InputDoubleRegister(0)); + break; + case kPPC_BitcastInt64ToDouble: + __ MovInt64ToDouble(i.OutputDoubleRegister(), i.InputRegister(0)); + break; +#endif case kPPC_LoadWordU8: ASSEMBLE_LOAD_INTEGER(lbz, lbzx); break; @@ -1142,6 +1155,13 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) { case kCheckedLoadWord32: ASSEMBLE_CHECKED_LOAD_INTEGER(lwa, lwax); break; + case kCheckedLoadWord64: +#if V8_TARGET_ARCH_PPC64 + ASSEMBLE_CHECKED_LOAD_INTEGER(ld, ldx); +#else + UNREACHABLE(); +#endif + break; case kCheckedLoadFloat32: ASSEMBLE_CHECKED_LOAD_FLOAT(lfs, lfsx, 32); break; @@ -1157,6 +1177,13 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) { case kCheckedStoreWord32: ASSEMBLE_CHECKED_STORE_INTEGER(stw, stwx); break; + case kCheckedStoreWord64: +#if V8_TARGET_ARCH_PPC64 + ASSEMBLE_CHECKED_STORE_INTEGER(std, stdx); +#else + UNREACHABLE(); +#endif + break; case kCheckedStoreFloat32: ASSEMBLE_CHECKED_STORE_FLOAT32(); break; @@ -1596,18 +1623,20 @@ void CodeGenerator::AddNopForSmiCodeInlining() { void CodeGenerator::EnsureSpaceForLazyDeopt() { + if (!info()->ShouldEnsureSpaceForLazyDeopt()) { + return; + } + int space_needed = Deoptimizer::patch_size(); - if (!info()->IsStub()) { - // Ensure that we have enough space after the previous lazy-bailout - // instruction for patching the code here. - int current_pc = masm()->pc_offset(); - if (current_pc < last_lazy_deopt_pc_ + space_needed) { - int padding_size = last_lazy_deopt_pc_ + space_needed - current_pc; - DCHECK_EQ(0, padding_size % v8::internal::Assembler::kInstrSize); - while (padding_size > 0) { - __ nop(); - padding_size -= v8::internal::Assembler::kInstrSize; - } + // Ensure that we have enough space after the previous lazy-bailout + // instruction for patching the code here. + int current_pc = masm()->pc_offset(); + if (current_pc < last_lazy_deopt_pc_ + space_needed) { + int padding_size = last_lazy_deopt_pc_ + space_needed - current_pc; + DCHECK_EQ(0, padding_size % v8::internal::Assembler::kInstrSize); + while (padding_size > 0) { + __ nop(); + padding_size -= v8::internal::Assembler::kInstrSize; } } } -- cgit v1.2.1