WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
ROLLOUT of r165205
bug-129813-20140306122656.patch (text/plain), 10.25 KB, created by
WebKit Commit Bot
on 2014-03-06 12:26:57 PST
(
hide
)
Description:
ROLLOUT of r165205
Filename:
MIME Type:
Creator:
WebKit Commit Bot
Created:
2014-03-06 12:26:57 PST
Size:
10.25 KB
patch
obsolete
>Subversion Revision: 165205 >diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog >index 09d6a2b8913a53dd7e35b84a03e9abe0bf520d8c..e6a95535de2bbe9d1ec53601344a86b919f96196 100644 >--- a/Source/JavaScriptCore/ChangeLog >+++ b/Source/JavaScriptCore/ChangeLog >@@ -1,3 +1,25 @@ >+2014-03-06 Commit Queue <commit-queue@webkit.org> >+ >+ Unreviewed, rolling out r165205. >+ http://trac.webkit.org/changeset/165205 >+ https://bugs.webkit.org/show_bug.cgi?id=129813 >+ >+ broke the CLOOP build (Requested by smfr on #webkit). >+ >+ * dfg/DFGJITCompiler.cpp: >+ (JSC::DFG::JITCompiler::compileFunction): >+ * ftl/FTLLink.cpp: >+ (JSC::FTL::link): >+ * jit/AssemblyHelpers.h: >+ (JSC::AssemblyHelpers::prologueStackPointerDelta): >+ * jit/JIT.cpp: >+ (JSC::JIT::privateCompile): >+ * jit/ThunkGenerators.cpp: >+ (JSC::arityFixup): >+ * llint/LowLevelInterpreter64.asm: >+ * offlineasm/arm64.rb: >+ * offlineasm/x86.rb: >+ > 2014-03-06 Filip Pizlo <fpizlo@apple.com> > > FTL arity fixup should work on ARM64 >diff --git a/Source/JavaScriptCore/dfg/DFGJITCompiler.cpp b/Source/JavaScriptCore/dfg/DFGJITCompiler.cpp >index 94a7d150ff7c5e6aef78466e5711ab84e1d6bd83..b988ebf41cf804383104d27d768dc84bf8e9e9a2 100644 >--- a/Source/JavaScriptCore/dfg/DFGJITCompiler.cpp >+++ b/Source/JavaScriptCore/dfg/DFGJITCompiler.cpp >@@ -381,14 +381,8 @@ void JITCompiler::compileFunction() > addPtr(TrustedImm32(maxFrameExtentForSlowPathCall), stackPointerRegister); > branchTest32(Zero, GPRInfo::regT0).linkTo(fromArityCheck, this); > emitStoreCodeOrigin(CodeOrigin(0)); >- GPRReg thunkReg; >-#if USE(JSVALUE64) >- thunkReg = GPRInfo::regT7; >-#else >- thunkReg = GPRInfo::regT5; >-#endif >- move(TrustedImmPtr(m_vm->arityCheckFailReturnThunks->returnPCsFor(*m_vm, m_codeBlock->numParameters())), thunkReg); >- loadPtr(BaseIndex(thunkReg, GPRInfo::regT0, timesPtr()), thunkReg); >+ move(TrustedImmPtr(m_vm->arityCheckFailReturnThunks->returnPCsFor(*m_vm, m_codeBlock->numParameters())), GPRInfo::regT5); >+ loadPtr(BaseIndex(GPRInfo::regT5, GPRInfo::regT0, timesPtr()), GPRInfo::regT5); > m_callArityFixup = call(); > jump(fromArityCheck); > >diff --git a/Source/JavaScriptCore/ftl/FTLLink.cpp b/Source/JavaScriptCore/ftl/FTLLink.cpp >index d4f0ca5fb291e87a4a30536da15f301023065b0f..c73c1189888f5539435fcc61abaf4efb6df58ec3 100644 >--- a/Source/JavaScriptCore/ftl/FTLLink.cpp >+++ b/Source/JavaScriptCore/ftl/FTLLink.cpp >@@ -71,7 +71,7 @@ void link(State& state) > CCallHelpers::Label arityCheck; > > CCallHelpers::Address frame = CCallHelpers::Address( >- CCallHelpers::stackPointerRegister, -static_cast<int32_t>(AssemblyHelpers::prologueStackPointerDelta())); >+ CCallHelpers::stackPointerRegister, -static_cast<int32_t>(sizeof(void*))); > > if (Profiler::Compilation* compilation = graph.compilation()) { > compilation->addDescription( >@@ -170,8 +170,8 @@ void link(State& state) > jit.emitFunctionEpilogue(); > mainPathJumps.append(jit.branchTest32(CCallHelpers::Zero, GPRInfo::regT0)); > jit.emitFunctionPrologue(); >- jit.move(CCallHelpers::TrustedImmPtr(vm.arityCheckFailReturnThunks->returnPCsFor(vm, codeBlock->numParameters())), GPRInfo::regT7); >- jit.loadPtr(CCallHelpers::BaseIndex(GPRInfo::regT7, GPRInfo::regT0, CCallHelpers::timesPtr()), GPRInfo::regT7); >+ jit.move(CCallHelpers::TrustedImmPtr(vm.arityCheckFailReturnThunks->returnPCsFor(vm, codeBlock->numParameters())), GPRInfo::regT5); >+ jit.loadPtr(CCallHelpers::BaseIndex(GPRInfo::regT5, GPRInfo::regT0, CCallHelpers::timesPtr()), GPRInfo::regT5); > CCallHelpers::Call callArityFixup = jit.call(); > jit.emitFunctionEpilogue(); > mainPathJumps.append(jit.jump()); >diff --git a/Source/JavaScriptCore/jit/AssemblyHelpers.h b/Source/JavaScriptCore/jit/AssemblyHelpers.h >index ed2bad25c7f3f552e59d75ad30d79c639786f738..a008842572b23b33bf6b508cfcc8283875e51611 100644 >--- a/Source/JavaScriptCore/jit/AssemblyHelpers.h >+++ b/Source/JavaScriptCore/jit/AssemblyHelpers.h >@@ -68,7 +68,7 @@ public: > } > > #if CPU(X86_64) || CPU(X86) >- static size_t prologueStackPointerDelta() >+ size_t prologueStackPointerDelta() > { > // Prologue only saves the framePointerRegister > return sizeof(void*); >@@ -103,7 +103,7 @@ public: > #endif // CPU(X86_64) || CPU(X86) > > #if CPU(ARM) || CPU(ARM64) >- static size_t prologueStackPointerDelta() >+ size_t prologueStackPointerDelta() > { > // Prologue saves the framePointerRegister and linkRegister > return 2 * sizeof(void*); >@@ -138,7 +138,7 @@ public: > #endif > > #if CPU(MIPS) >- static size_t prologueStackPointerDelta() >+ size_t prologueStackPointerDelta() > { > // Prologue saves the framePointerRegister and returnAddressRegister > return 2 * sizeof(void*); >@@ -161,7 +161,7 @@ public: > #endif > > #if CPU(SH4) >- static size_t prologueStackPointerDelta() >+ size_t prologueStackPointerDelta() > { > // Prologue saves the framePointerRegister and link register > return 2 * sizeof(void*); >diff --git a/Source/JavaScriptCore/jit/JIT.cpp b/Source/JavaScriptCore/jit/JIT.cpp >index 90c6b6a3b66729b172c6f02477c5dbf9981f8ed9..f9cde55b67b42a54599390593b3709cf0e37b41d 100644 >--- a/Source/JavaScriptCore/jit/JIT.cpp >+++ b/Source/JavaScriptCore/jit/JIT.cpp >@@ -558,14 +558,8 @@ CompilationResult JIT::privateCompile(JITCompilationEffort effort) > if (returnValueGPR != regT0) > move(returnValueGPR, regT0); > branchTest32(Zero, regT0).linkTo(beginLabel, this); >- GPRReg thunkReg; >-#if USE(JSVALUE64) >- thunkReg = GPRInfo::regT7; >-#else >- thunkReg = GPRInfo::regT5; >-#endif >- move(TrustedImmPtr(m_vm->arityCheckFailReturnThunks->returnPCsFor(*m_vm, m_codeBlock->numParameters())), thunkReg); >- loadPtr(BaseIndex(thunkReg, regT0, timesPtr()), thunkReg); >+ move(TrustedImmPtr(m_vm->arityCheckFailReturnThunks->returnPCsFor(*m_vm, m_codeBlock->numParameters())), regT5); >+ loadPtr(BaseIndex(regT5, regT0, timesPtr()), regT5); > emitNakedCall(m_vm->getCTIStub(arityFixup).code()); > > #if !ASSERT_DISABLED >diff --git a/Source/JavaScriptCore/jit/ThunkGenerators.cpp b/Source/JavaScriptCore/jit/ThunkGenerators.cpp >index edc6b34ac0a1c35c41b193899188dd51a934acd4..dd4e414a2ca90f08f27edcbaffb4e7fc309c8e16 100644 >--- a/Source/JavaScriptCore/jit/ThunkGenerators.cpp >+++ b/Source/JavaScriptCore/jit/ThunkGenerators.cpp >@@ -429,7 +429,7 @@ MacroAssemblerCodeRef arityFixup(VM* vm) > JSInterfaceJIT jit(vm); > > // We enter with fixup count, in aligned stack units, in regT0 and the return thunk in >- // regT5 on 32-bit and regT7 on 64-bit. >+ // regT5. > #if USE(JSVALUE64) > # if CPU(X86_64) > jit.pop(JSInterfaceJIT::regT4); >@@ -467,7 +467,7 @@ MacroAssemblerCodeRef arityFixup(VM* vm) > jit.storePtr(GPRInfo::regT1, MacroAssembler::BaseIndex(JSInterfaceJIT::regT6, JSInterfaceJIT::regT0, JSInterfaceJIT::TimesEight)); > > // Install the new return PC. >- jit.storePtr(GPRInfo::regT7, JSInterfaceJIT::Address(JSInterfaceJIT::callFrameRegister, CallFrame::returnPCOffset())); >+ jit.storePtr(GPRInfo::regT5, JSInterfaceJIT::Address(JSInterfaceJIT::callFrameRegister, CallFrame::returnPCOffset())); > > # if CPU(X86_64) > jit.push(JSInterfaceJIT::regT4); >diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm >index 5e928b6b8ed1b0614d8c6577be9624737d330602..5c3b6f41aa84813ab22eea30441a26fa6865835d 100644 >--- a/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm >+++ b/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm >@@ -483,7 +483,7 @@ macro functionArityCheck(doneLabel, slowPath) > loadp CommonSlowPaths::ArityCheckData::thunkToCall[t1], t2 > btpz t2, .proceedInline > >- loadp CommonSlowPaths::ArityCheckData::returnPC[t1], t7 >+ loadp CommonSlowPaths::ArityCheckData::returnPC[t1], t5 > loadp CommonSlowPaths::ArityCheckData::paddedStackSpace[t1], t0 > call t2 > if ASSERT_ENABLED >diff --git a/Source/JavaScriptCore/offlineasm/arm64.rb b/Source/JavaScriptCore/offlineasm/arm64.rb >index 1005713afd4196f0e36eea5762abc9c00584cda9..92b3e1477bb595e4057324c1bec6ea667709cf23 100644 >--- a/Source/JavaScriptCore/offlineasm/arm64.rb >+++ b/Source/JavaScriptCore/offlineasm/arm64.rb >@@ -1,4 +1,4 @@ >-# Copyright (C) 2011, 2012, 2014 Apple Inc. All rights reserved. >+# Copyright (C) 2011, 2012 Apple Inc. All rights reserved. > # > # Redistribution and use in source and binary forms, with or without > # modification, are permitted provided that the following conditions >@@ -118,8 +118,6 @@ class RegisterID > arm64GPRName('x24', kind) > when 't6' > arm64GPRName('x6', kind) >- when 't7' >- arm64GPRName('x7', kind) > when 'cfr' > arm64GPRName('x29', kind) > when 'csr1' >diff --git a/Source/JavaScriptCore/offlineasm/x86.rb b/Source/JavaScriptCore/offlineasm/x86.rb >index 5a75cd956521d41a10c8700c2cf6feeb15170320..07724b4c2a07cd2505e6f7024891c71be75a15b8 100644 >--- a/Source/JavaScriptCore/offlineasm/x86.rb >+++ b/Source/JavaScriptCore/offlineasm/x86.rb >@@ -1,4 +1,4 @@ >-# Copyright (C) 2012, 2014 Apple Inc. All rights reserved. >+# Copyright (C) 2012 Apple Inc. All rights reserved. > # Copyright (C) 2013 Digia Plc. and/or its subsidiary(-ies) > # > # Redistribution and use in source and binary forms, with or without >@@ -284,25 +284,13 @@ class RegisterID > raise "Cannot use #{name} in 32-bit X86 at #{codeOriginString}" unless isX64 > case kind > when :half >- "%r8w" >+ "%r10w" > when :int >- "%r8d" >+ "%r10d" > when :ptr >- "%r8" >+ "%r10" > when :quad >- "%r8" >- end >- when "t7" >- raise "Cannot use #{name} in 32-bit X86 at #{codeOriginString}" unless isX64 >- case kind >- when :half >- "%r9w" >- when :int >- "%r9d" >- when :ptr >- "%r9" >- when :quad >- "%r9" >+ "%r10" > end > when "csr1" > raise "Cannot use #{name} in 32-bit X86 at #{codeOriginString}" unless isX64
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
commit-queue
:
commit-queue-
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 129813
:
226027
|
226034