diff --git a/v8-powerpc-support-SConstruct.patch b/v8-powerpc-support-SConstruct.patch index 44d7efe..b17a222 100644 --- a/v8-powerpc-support-SConstruct.patch +++ b/v8-powerpc-support-SConstruct.patch @@ -1,6 +1,6 @@ diff -up v8-3.14.5.10/SConstruct.ppc-harder v8-3.14.5.10/SConstruct --- v8-3.14.5.10/SConstruct.ppc-harder 2012-10-22 09:09:53.000000000 -0400 -+++ v8-3.14.5.10/SConstruct 2017-03-01 11:58:05.551021263 -0500 ++++ v8-3.14.5.10/SConstruct 2017-03-01 12:47:36.529605806 -0500 @@ -143,6 +143,12 @@ LIBRARY_FLAGS = { 'CCFLAGS': ['-m32'], 'LINKFLAGS': ['-m32'] @@ -24,8 +24,8 @@ diff -up v8-3.14.5.10/SConstruct.ppc-harder v8-3.14.5.10/SConstruct 'help': 'the architecture to build for' }, diff -up v8-3.14.5.10/src/ppc/assembler-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/assembler-ppc.cc ---- v8-3.14.5.10/src/ppc/assembler-ppc.cc.ppc-harder 2017-03-01 11:58:23.933564627 -0500 -+++ v8-3.14.5.10/src/ppc/assembler-ppc.cc 2017-03-01 12:01:24.879069810 -0500 +--- v8-3.14.5.10/src/ppc/assembler-ppc.cc.ppc-harder 2017-03-01 12:47:36.471607257 -0500 ++++ v8-3.14.5.10/src/ppc/assembler-ppc.cc 2017-03-01 12:47:36.516606131 -0500 @@ -72,7 +72,7 @@ static bool is_processor(const char* p) read_tried = true; @@ -143,9 +143,10 @@ diff -up v8-3.14.5.10/src/ppc/assembler-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/a // Relocate runtime entries. for (RelocIterator it(desc); !it.done(); it.next()) { RelocInfo::Mode rmode = it.rinfo()->rmode(); +diff -up v8-3.14.5.10/src/ppc/assembler-ppc-inl.h.ppc-harder v8-3.14.5.10/src/ppc/assembler-ppc-inl.h diff -up v8-3.14.5.10/src/ppc/builtins-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/builtins-ppc.cc ---- v8-3.14.5.10/src/ppc/builtins-ppc.cc.ppc-harder 2017-03-01 12:06:34.545377476 -0500 -+++ v8-3.14.5.10/src/ppc/builtins-ppc.cc 2017-03-01 12:06:58.015794454 -0500 +--- v8-3.14.5.10/src/ppc/builtins-ppc.cc.ppc-harder 2017-03-01 12:47:36.473607207 -0500 ++++ v8-3.14.5.10/src/ppc/builtins-ppc.cc 2017-03-01 12:47:36.516606131 -0500 @@ -1412,7 +1412,7 @@ void Builtins::Generate_FunctionCall(Mac __ LoadP(r5, FieldMemOperand(r4, JSFunction::kSharedFunctionInfoOffset)); __ lwz(r6, FieldMemOperand(r5, SharedFunctionInfo::kCompilerHintsOffset)); @@ -183,8 +184,8 @@ diff -up v8-3.14.5.10/src/ppc/builtins-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/bu #else SharedFunctionInfo::kNative + kSmiTagSize, diff -up v8-3.14.5.10/src/ppc/codegen-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/codegen-ppc.cc ---- v8-3.14.5.10/src/ppc/codegen-ppc.cc.ppc-harder 2017-03-01 12:08:48.257055982 -0500 -+++ v8-3.14.5.10/src/ppc/codegen-ppc.cc 2017-03-01 12:09:11.057489602 -0500 +--- v8-3.14.5.10/src/ppc/codegen-ppc.cc.ppc-harder 2017-03-01 12:47:36.474607182 -0500 ++++ v8-3.14.5.10/src/ppc/codegen-ppc.cc 2017-03-01 12:47:36.516606131 -0500 @@ -181,7 +181,7 @@ void ElementsTransitionGenerator::Genera __ addi(r10, r9, Operand(FixedDoubleArray::kHeaderSize)); __ SmiToDoubleArrayOffset(r9, r8); @@ -213,8 +214,8 @@ diff -up v8-3.14.5.10/src/ppc/codegen-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/cod __ addi(r4, r5, Operand(-1)); // subtract tag for std __ std(r3, MemOperand(r4, HeapNumber::kValueOffset)); diff -up v8-3.14.5.10/src/ppc/code-stubs-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/code-stubs-ppc.cc ---- v8-3.14.5.10/src/ppc/code-stubs-ppc.cc.ppc-harder 2017-03-01 12:12:51.917012137 -0500 -+++ v8-3.14.5.10/src/ppc/code-stubs-ppc.cc 2017-03-01 12:17:11.678616994 -0500 +--- v8-3.14.5.10/src/ppc/code-stubs-ppc.cc.ppc-harder 2017-03-01 12:47:36.477607107 -0500 ++++ v8-3.14.5.10/src/ppc/code-stubs-ppc.cc 2017-03-01 12:47:36.517606106 -0500 @@ -660,7 +660,7 @@ void FloatingPointHelper::ConvertIntToDo __ subi(sp, sp, Operand(8)); // reserve one temporary double on the stack @@ -457,10 +458,9 @@ diff -up v8-3.14.5.10/src/ppc/code-stubs-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/ // ip already set. #endif -diff -up v8-3.14.5.10/src/ppc/constants-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/constants-ppc.cc diff -up v8-3.14.5.10/src/ppc/deoptimizer-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/deoptimizer-ppc.cc ---- v8-3.14.5.10/src/ppc/deoptimizer-ppc.cc.ppc-harder 2017-03-01 12:19:25.674315527 -0500 -+++ v8-3.14.5.10/src/ppc/deoptimizer-ppc.cc 2017-03-01 12:19:56.315560569 -0500 +--- v8-3.14.5.10/src/ppc/deoptimizer-ppc.cc.ppc-harder 2017-03-01 12:47:36.480607032 -0500 ++++ v8-3.14.5.10/src/ppc/deoptimizer-ppc.cc 2017-03-01 12:47:36.518606081 -0500 @@ -42,7 +42,7 @@ const int Deoptimizer::table_entry_size_ @@ -543,8 +543,8 @@ diff -up v8-3.14.5.10/src/ppc/deoptimizer-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc unoptimized_code, pc_after - 7 * kInstrSize, check_code); #else diff -up v8-3.14.5.10/src/ppc/disasm-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/disasm-ppc.cc ---- v8-3.14.5.10/src/ppc/disasm-ppc.cc.ppc-harder 2017-03-01 12:20:08.337264371 -0500 -+++ v8-3.14.5.10/src/ppc/disasm-ppc.cc 2017-03-01 12:20:34.358623241 -0500 +--- v8-3.14.5.10/src/ppc/disasm-ppc.cc.ppc-harder 2017-03-01 12:47:36.480607032 -0500 ++++ v8-3.14.5.10/src/ppc/disasm-ppc.cc 2017-03-01 12:47:36.518606081 -0500 @@ -346,7 +346,7 @@ int Decoder::FormatOption(Instruction* i return 2; } @@ -636,8 +636,8 @@ diff -up v8-3.14.5.10/src/ppc/disasm-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/disa switch (instr->Bits(1, 0)) { case 0: diff -up v8-3.14.5.10/src/ppc/full-codegen-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/full-codegen-ppc.cc ---- v8-3.14.5.10/src/ppc/full-codegen-ppc.cc.ppc-harder 2017-03-01 12:20:52.374179363 -0500 -+++ v8-3.14.5.10/src/ppc/full-codegen-ppc.cc 2017-03-01 12:21:08.748775916 -0500 +--- v8-3.14.5.10/src/ppc/full-codegen-ppc.cc.ppc-harder 2017-03-01 12:47:36.482606982 -0500 ++++ v8-3.14.5.10/src/ppc/full-codegen-ppc.cc 2017-03-01 12:47:36.518606081 -0500 @@ -451,7 +451,7 @@ void FullCodeGenerator::EmitReturnSequen masm_->mtlr(r0); masm_->Add(sp, sp, (uint32_t)(sp_delta + (2 * kPointerSize)), r0); @@ -684,8 +684,8 @@ diff -up v8-3.14.5.10/src/ppc/full-codegen-ppc.cc.ppc-harder v8-3.14.5.10/src/pp __ Mul(scratch2, array_length, scratch1); // Check for smi overflow. No overflow if higher 33 bits of 64-bit result are diff -up v8-3.14.5.10/src/ppc/ic-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/ic-ppc.cc ---- v8-3.14.5.10/src/ppc/ic-ppc.cc.ppc-harder 2017-03-01 12:21:20.851477722 -0500 -+++ v8-3.14.5.10/src/ppc/ic-ppc.cc 2017-03-01 12:21:27.873304714 -0500 +--- v8-3.14.5.10/src/ppc/ic-ppc.cc.ppc-harder 2017-03-01 12:47:36.483606957 -0500 ++++ v8-3.14.5.10/src/ppc/ic-ppc.cc 2017-03-01 12:47:36.519606056 -0500 @@ -1807,7 +1807,7 @@ void PatchInlinedSmiCode(Address address patcher.masm()->TestIfSmi(reg, r0); } else { @@ -696,8 +696,8 @@ diff -up v8-3.14.5.10/src/ppc/ic-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/ic-ppc.c #else ASSERT(Assembler::IsRlwinm(instr_at_patch)); diff -up v8-3.14.5.10/src/ppc/lithium-codegen-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/lithium-codegen-ppc.cc ---- v8-3.14.5.10/src/ppc/lithium-codegen-ppc.cc.ppc-harder 2017-03-01 12:22:57.429098184 -0500 -+++ v8-3.14.5.10/src/ppc/lithium-codegen-ppc.cc 2017-03-01 12:23:03.063959349 -0500 +--- v8-3.14.5.10/src/ppc/lithium-codegen-ppc.cc.ppc-harder 2017-03-01 12:47:36.486606882 -0500 ++++ v8-3.14.5.10/src/ppc/lithium-codegen-ppc.cc 2017-03-01 12:47:36.519606056 -0500 @@ -922,7 +922,7 @@ void LCodeGen::DoModI(LModI* instr) { DeoptimizeIf(eq, instr->environment()); } @@ -851,8 +851,8 @@ diff -up v8-3.14.5.10/src/ppc/lithium-codegen-ppc.cc.ppc-harder v8-3.14.5.10/src #else __ SmiTagCheckOverflow(dst, src, r0); diff -up v8-3.14.5.10/src/ppc/lithium-gap-resolver-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/lithium-gap-resolver-ppc.cc ---- v8-3.14.5.10/src/ppc/lithium-gap-resolver-ppc.cc.ppc-harder 2017-03-01 12:23:14.963666156 -0500 -+++ v8-3.14.5.10/src/ppc/lithium-gap-resolver-ppc.cc 2017-03-01 12:23:25.829398440 -0500 +--- v8-3.14.5.10/src/ppc/lithium-gap-resolver-ppc.cc.ppc-harder 2017-03-01 12:47:36.487606857 -0500 ++++ v8-3.14.5.10/src/ppc/lithium-gap-resolver-ppc.cc 2017-03-01 12:47:36.519606056 -0500 @@ -280,7 +280,7 @@ void LGapResolver::EmitMove(int index) { if (in_cycle_) { // kSavedDoubleValueRegister was used to break the cycle, @@ -863,8 +863,8 @@ diff -up v8-3.14.5.10/src/ppc/lithium-gap-resolver-ppc.cc.ppc-harder v8-3.14.5.1 __ std(kSavedValueRegister, destination_operand); #else diff -up v8-3.14.5.10/src/ppc/macro-assembler-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/macro-assembler-ppc.cc ---- v8-3.14.5.10/src/ppc/macro-assembler-ppc.cc.ppc-harder 2017-03-01 12:23:45.196921251 -0500 -+++ v8-3.14.5.10/src/ppc/macro-assembler-ppc.cc 2017-03-01 12:26:51.356334543 -0500 +--- v8-3.14.5.10/src/ppc/macro-assembler-ppc.cc.ppc-harder 2017-03-01 12:47:36.491606757 -0500 ++++ v8-3.14.5.10/src/ppc/macro-assembler-ppc.cc 2017-03-01 12:47:36.520606031 -0500 @@ -132,7 +132,7 @@ int MacroAssembler::CallSize( } #else @@ -1285,8 +1285,8 @@ diff -up v8-3.14.5.10/src/ppc/macro-assembler-ppc.cc.ppc-harder v8-3.14.5.10/src if (misaligned) { // adjust base to conform to offset alignment requirements diff -up v8-3.14.5.10/src/ppc/regexp-macro-assembler-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/regexp-macro-assembler-ppc.cc ---- v8-3.14.5.10/src/ppc/regexp-macro-assembler-ppc.cc.ppc-harder 2017-03-01 12:27:04.984998751 -0500 -+++ v8-3.14.5.10/src/ppc/regexp-macro-assembler-ppc.cc 2017-03-01 12:27:23.447543860 -0500 +--- v8-3.14.5.10/src/ppc/regexp-macro-assembler-ppc.cc.ppc-harder 2017-03-01 12:47:36.493606707 -0500 ++++ v8-3.14.5.10/src/ppc/regexp-macro-assembler-ppc.cc 2017-03-01 12:47:36.521606006 -0500 @@ -139,7 +139,7 @@ RegExpMacroAssemblerPPC::RegExpMacroAsse ASSERT_EQ(0, registers_to_save % 2); @@ -1306,8 +1306,8 @@ diff -up v8-3.14.5.10/src/ppc/regexp-macro-assembler-ppc.cc.ppc-harder v8-3.14.5 __ LoadP(ToRegister(2), MemOperand(r26, kPointerSize)); // TOC __ LoadP(ip, MemOperand(r26, 0)); // Instruction address diff -up v8-3.14.5.10/src/ppc/simulator-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/simulator-ppc.cc ---- v8-3.14.5.10/src/ppc/simulator-ppc.cc.ppc-harder 2017-03-01 12:27:39.538147410 -0500 -+++ v8-3.14.5.10/src/ppc/simulator-ppc.cc 2017-03-01 12:28:27.544964589 -0500 +--- v8-3.14.5.10/src/ppc/simulator-ppc.cc.ppc-harder 2017-03-01 12:47:36.495606657 -0500 ++++ v8-3.14.5.10/src/ppc/simulator-ppc.cc 2017-03-01 12:47:36.521606006 -0500 @@ -1332,7 +1332,7 @@ void Simulator::SoftwareInterrupt(Instru PrintF("\n"); } @@ -1460,8 +1460,8 @@ diff -up v8-3.14.5.10/src/ppc/simulator-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/s set_pc(*(reinterpret_cast(entry))); #else diff -up v8-3.14.5.10/src/ppc/stub-cache-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/stub-cache-ppc.cc ---- v8-3.14.5.10/src/ppc/stub-cache-ppc.cc.ppc-harder 2017-03-01 12:28:38.561693152 -0500 -+++ v8-3.14.5.10/src/ppc/stub-cache-ppc.cc 2017-03-01 12:29:34.305319706 -0500 +--- v8-3.14.5.10/src/ppc/stub-cache-ppc.cc.ppc-harder 2017-03-01 12:47:36.497606607 -0500 ++++ v8-3.14.5.10/src/ppc/stub-cache-ppc.cc 2017-03-01 12:47:36.521606006 -0500 @@ -198,7 +198,7 @@ void StubCache::GenerateProbe(MacroAssem Isolate* isolate = masm->isolate(); Label miss; @@ -1581,8 +1581,8 @@ diff -up v8-3.14.5.10/src/ppc/stub-cache-ppc.cc.ppc-harder v8-3.14.5.10/src/ppc/ // conversion. Don't touch r3 or r4 as they are needed if allocation diff -up v8-3.14.5.10/src/SConscript.ppc-harder v8-3.14.5.10/src/SConscript --- v8-3.14.5.10/src/SConscript.ppc-harder 2012-07-24 03:59:48.000000000 -0400 -+++ v8-3.14.5.10/src/SConscript 2017-03-01 11:58:05.543021461 -0500 -@@ -204,6 +204,44 @@ SOURCES = { ++++ v8-3.14.5.10/src/SConscript 2017-03-01 14:13:21.244294435 -0500 +@@ -204,6 +204,46 @@ SOURCES = { ia32/regexp-macro-assembler-ia32.cc ia32/stub-cache-ia32.cc """), @@ -1591,6 +1591,7 @@ diff -up v8-3.14.5.10/src/SConscript.ppc-harder v8-3.14.5.10/src/SConscript + ppc/builtins-ppc.cc + ppc/code-stubs-ppc.cc + ppc/codegen-ppc.cc ++ ppc/constants-ppc.cc + ppc/cpu-ppc.cc + ppc/debug-ppc.cc + ppc/deoptimizer-ppc.cc @@ -1610,6 +1611,7 @@ diff -up v8-3.14.5.10/src/SConscript.ppc-harder v8-3.14.5.10/src/SConscript + ppc/builtins-ppc.cc + ppc/code-stubs-ppc.cc + ppc/codegen-ppc.cc ++ ppc/constants-ppc.cc + ppc/cpu-ppc.cc + ppc/debug-ppc.cc + ppc/deoptimizer-ppc.cc @@ -1627,7 +1629,7 @@ diff -up v8-3.14.5.10/src/SConscript.ppc-harder v8-3.14.5.10/src/SConscript 'arch:x64': Split(""" x64/assembler-x64.cc x64/builtins-x64.cc -@@ -225,6 +263,8 @@ SOURCES = { +@@ -225,6 +265,8 @@ SOURCES = { """), 'simulator:arm': ['arm/simulator-arm.cc'], 'simulator:mips': ['mips/simulator-mips.cc'],