Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (158993 => 158994)
--- trunk/Source/_javascript_Core/ChangeLog 2013-11-09 06:53:38 UTC (rev 158993)
+++ trunk/Source/_javascript_Core/ChangeLog 2013-11-09 06:55:07 UTC (rev 158994)
@@ -1,5 +1,18 @@
2013-11-08 Filip Pizlo <[email protected]>
+ Remove dead FTL C ABI support
+ https://bugs.webkit.org/show_bug.cgi?id=124100
+
+ Reviewed by Jer Noble.
+
+ * _javascript_Core.xcodeproj/project.pbxproj:
+ * ftl/FTLCArgumentGetter.cpp: Removed.
+ * ftl/FTLCArgumentGetter.h: Removed.
+ * ftl/FTLOSRExitCompiler.cpp:
+ * jit/FPRInfo.h:
+
+2013-11-08 Filip Pizlo <[email protected]>
+
FTL should support Phantom(FinalObject:)
https://bugs.webkit.org/show_bug.cgi?id=124092
Modified: trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj (158993 => 158994)
--- trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj 2013-11-09 06:53:38 UTC (rev 158993)
+++ trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj 2013-11-09 06:55:07 UTC (rev 158994)
@@ -86,8 +86,6 @@
0F1E3A67153A21E2000F9456 /* DFGSilentRegisterSavePlan.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F1E3A65153A21DF000F9456 /* DFGSilentRegisterSavePlan.h */; settings = {ATTRIBUTES = (Private, ); }; };
0F21C27D14BE727A00ADC64B /* CodeSpecializationKind.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F21C27914BE727300ADC64B /* CodeSpecializationKind.h */; settings = {ATTRIBUTES = (Private, ); }; };
0F21C27F14BEAA8200ADC64B /* BytecodeConventions.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F21C27E14BEAA8000ADC64B /* BytecodeConventions.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 0F235BD117178E1C00690C7F /* FTLCArgumentGetter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F235BBB17178E1C00690C7F /* FTLCArgumentGetter.cpp */; };
- 0F235BD217178E1C00690C7F /* FTLCArgumentGetter.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F235BBC17178E1C00690C7F /* FTLCArgumentGetter.h */; settings = {ATTRIBUTES = (Private, ); }; };
0F235BD317178E1C00690C7F /* FTLExitArgument.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F235BBD17178E1C00690C7F /* FTLExitArgument.cpp */; };
0F235BD417178E1C00690C7F /* FTLExitArgument.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F235BBE17178E1C00690C7F /* FTLExitArgument.h */; settings = {ATTRIBUTES = (Private, ); }; };
0F235BD517178E1C00690C7F /* FTLExitArgumentForOperand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F235BBF17178E1C00690C7F /* FTLExitArgumentForOperand.cpp */; };
@@ -1360,8 +1358,6 @@
0F1E3A65153A21DF000F9456 /* DFGSilentRegisterSavePlan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DFGSilentRegisterSavePlan.h; path = dfg/DFGSilentRegisterSavePlan.h; sourceTree = "<group>"; };
0F21C27914BE727300ADC64B /* CodeSpecializationKind.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CodeSpecializationKind.h; sourceTree = "<group>"; };
0F21C27E14BEAA8000ADC64B /* BytecodeConventions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BytecodeConventions.h; sourceTree = "<group>"; };
- 0F235BBB17178E1C00690C7F /* FTLCArgumentGetter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FTLCArgumentGetter.cpp; path = ftl/FTLCArgumentGetter.cpp; sourceTree = "<group>"; };
- 0F235BBC17178E1C00690C7F /* FTLCArgumentGetter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FTLCArgumentGetter.h; path = ftl/FTLCArgumentGetter.h; sourceTree = "<group>"; };
0F235BBD17178E1C00690C7F /* FTLExitArgument.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FTLExitArgument.cpp; path = ftl/FTLExitArgument.cpp; sourceTree = "<group>"; };
0F235BBE17178E1C00690C7F /* FTLExitArgument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FTLExitArgument.h; path = ftl/FTLExitArgument.h; sourceTree = "<group>"; };
0F235BBF17178E1C00690C7F /* FTLExitArgumentForOperand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FTLExitArgumentForOperand.cpp; path = ftl/FTLExitArgumentForOperand.cpp; sourceTree = "<group>"; };
@@ -2751,8 +2747,6 @@
0FEA0A1A1708B00700BB722C /* FTLAbstractHeapRepository.h */,
0FEA09FE170513DB00BB722C /* FTLCapabilities.cpp */,
0FEA09FF170513DB00BB722C /* FTLCapabilities.h */,
- 0F235BBB17178E1C00690C7F /* FTLCArgumentGetter.cpp */,
- 0F235BBC17178E1C00690C7F /* FTLCArgumentGetter.h */,
0FEA0A251709623B00BB722C /* FTLCommonValues.cpp */,
0FEA0A211709606900BB722C /* FTLCommonValues.h */,
0FEA0A00170513DB00BB722C /* FTLCompile.cpp */,
@@ -4347,7 +4341,6 @@
0FEA0A1D1708B00700BB722C /* FTLAbstractHeap.h in Headers */,
0FEA0A1F1708B00700BB722C /* FTLAbstractHeapRepository.h in Headers */,
0FEA0A0A170513DB00BB722C /* FTLCapabilities.h in Headers */,
- 0F235BD217178E1C00690C7F /* FTLCArgumentGetter.h in Headers */,
0FEA0A231709606900BB722C /* FTLCommonValues.h in Headers */,
0FEA0A0C170513DB00BB722C /* FTLCompile.h in Headers */,
0F235BD417178E1C00690C7F /* FTLExitArgument.h in Headers */,
@@ -5364,7 +5357,6 @@
0FEA0A1C1708B00700BB722C /* FTLAbstractHeap.cpp in Sources */,
0FEA0A1E1708B00700BB722C /* FTLAbstractHeapRepository.cpp in Sources */,
0FEA0A09170513DB00BB722C /* FTLCapabilities.cpp in Sources */,
- 0F235BD117178E1C00690C7F /* FTLCArgumentGetter.cpp in Sources */,
0FEA0A271709623B00BB722C /* FTLCommonValues.cpp in Sources */,
0FEA0A0B170513DB00BB722C /* FTLCompile.cpp in Sources */,
0F235BD317178E1C00690C7F /* FTLExitArgument.cpp in Sources */,
Deleted: trunk/Source/_javascript_Core/ftl/FTLCArgumentGetter.cpp (158993 => 158994)
--- trunk/Source/_javascript_Core/ftl/FTLCArgumentGetter.cpp 2013-11-09 06:53:38 UTC (rev 158993)
+++ trunk/Source/_javascript_Core/ftl/FTLCArgumentGetter.cpp 2013-11-09 06:55:07 UTC (rev 158994)
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2013 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "FTLCArgumentGetter.h"
-
-#if ENABLE(FTL_JIT)
-
-namespace JSC { namespace FTL {
-
-using namespace DFG;
-
-void CArgumentGetter::loadNextAndBox(
- ValueFormat format, GPRReg destination, GPRReg scratch1, GPRReg scratch2)
-{
- if (scratch1 == InvalidGPRReg) {
- ASSERT(scratch2 == InvalidGPRReg);
- if (destination == GPRInfo::nonArgGPR0)
- scratch1 = GPRInfo::nonArgGPR1;
- else
- scratch1 = GPRInfo::nonArgGPR0;
- }
- if (scratch2 == InvalidGPRReg) {
- if (destination != GPRInfo::nonArgGPR0 && scratch1 != GPRInfo::nonArgGPR0)
- scratch2 = GPRInfo::nonArgGPR0;
- else if (destination != GPRInfo::nonArgGPR1 && scratch1 != GPRInfo::nonArgGPR1)
- scratch2 = GPRInfo::nonArgGPR1;
- else
- scratch2 = GPRInfo::nonArgGPR2;
- }
-
- switch (format) {
- case ValueFormatInt32:
- case ValueFormatUInt32:
- loadNext32(destination);
- break;
-
- case ValueFormatInt52:
- case ValueFormatStrictInt52:
- case ValueFormatJSValue:
- loadNext64(destination);
- break;
-
- case ValueFormatBoolean:
- loadNext8(destination);
- break;
-
- case ValueFormatDouble:
- loadNextDoubleIntoGPR(destination);
- break;
-
- default:
- RELEASE_ASSERT_NOT_REACHED();
- break;
- }
-
- reboxAccordingToFormat(format, m_jit, destination, scratch1, scratch2);
-}
-
-} } // namespace JSC::FTL
-
-#endif // ENABLE(FTL_JIT)
-
Deleted: trunk/Source/_javascript_Core/ftl/FTLCArgumentGetter.h (158993 => 158994)
--- trunk/Source/_javascript_Core/ftl/FTLCArgumentGetter.h 2013-11-09 06:53:38 UTC (rev 158993)
+++ trunk/Source/_javascript_Core/ftl/FTLCArgumentGetter.h 2013-11-09 06:55:07 UTC (rev 158994)
@@ -1,151 +0,0 @@
-/*
- * Copyright (C) 2013 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef FTLCArgumentGetter_h
-#define FTLCArgumentGetter_h
-
-#include <wtf/Platform.h>
-
-#if ENABLE(FTL_JIT)
-
-#include "AssemblyHelpers.h"
-#include "FTLValueFormat.h"
-
-namespace JSC { namespace FTL {
-
-// This currently only understands how to get arguments on X86-64 cdecl. This is also
-// not particularly efficient. It will generate some redundant moves.
-
-template<typename RegisterKind>
-bool isArgumentRegister(typename RegisterKind::RegisterType reg)
-{
- for (unsigned i = 0; i < RegisterKind::numberOfArgumentRegisters; ++i) {
- if (RegisterKind::toArgumentRegister(i) == reg)
- return true;
- }
- return false;
-}
-
-class CArgumentGetter {
-public:
- // Peek offset is the number of things on the stack below the first argument.
- // It will be 1 if you haven't pushed or popped after the call; i.e. the only
- // thing is the return address.
- CArgumentGetter(AssemblyHelpers& jit, int peekOffset = 1)
- : m_jit(jit)
- , m_peekOffset(peekOffset)
- , m_gprArgumentIndex(0)
- , m_fprArgumentIndex(0)
- , m_stackArgumentIndex(0)
- {
- }
-
- void loadNext8(GPRReg destination)
- {
- ASSERT(!isArgumentRegister<GPRInfo>(destination));
- if (m_gprArgumentIndex < GPRInfo::numberOfArgumentRegisters) {
- m_jit.move(GPRInfo::toArgumentRegister(m_gprArgumentIndex++), destination);
- return;
- }
-
- m_jit.load8(nextAddress(), destination);
- }
-
- void loadNext32(GPRReg destination)
- {
- ASSERT(!isArgumentRegister<GPRInfo>(destination));
- if (m_gprArgumentIndex < GPRInfo::numberOfArgumentRegisters) {
- m_jit.move(GPRInfo::toArgumentRegister(m_gprArgumentIndex++), destination);
- return;
- }
-
- m_jit.load32(nextAddress(), destination);
- }
-
- void loadNext64(GPRReg destination)
- {
- ASSERT(!isArgumentRegister<GPRInfo>(destination));
- if (m_gprArgumentIndex < GPRInfo::numberOfArgumentRegisters) {
- m_jit.move(GPRInfo::toArgumentRegister(m_gprArgumentIndex++), destination);
- return;
- }
-
- m_jit.load64(nextAddress(), destination);
- }
-
- void loadNextPtr(GPRReg destination)
- {
- loadNext64(destination);
- }
-
- void loadNextDoubleIntoGPR(GPRReg destination)
- {
- if (m_fprArgumentIndex < FPRInfo::numberOfArgumentRegisters) {
- m_jit.moveDoubleTo64(FPRInfo::toArgumentRegister(m_fprArgumentIndex++), destination);
- return;
- }
-
- m_jit.load64(nextAddress(), destination);
- }
-
- void loadNextDouble(FPRReg destination)
- {
- ASSERT(
- !isArgumentRegister<FPRInfo>(destination)
- || destination == FPRInfo::argumentFPR0);
-
- if (m_fprArgumentIndex < FPRInfo::numberOfArgumentRegisters) {
- m_jit.moveDouble(FPRInfo::toArgumentRegister(m_fprArgumentIndex++), destination);
- return;
- }
-
- m_jit.loadDouble(nextAddress(), destination);
- }
-
- void loadNextAndBox(
- ValueFormat, GPRReg destination,
- GPRReg scratch1 = InvalidGPRReg, GPRReg scratch2 = InvalidGPRReg);
-
-private:
- MacroAssembler::Address nextAddress()
- {
- return MacroAssembler::Address(
- MacroAssembler::stackPointerRegister,
- (m_peekOffset + m_stackArgumentIndex++) * sizeof(void*));
- }
-
- AssemblyHelpers& m_jit;
- unsigned m_peekOffset;
- unsigned m_gprArgumentIndex;
- unsigned m_fprArgumentIndex;
- unsigned m_stackArgumentIndex;
-};
-
-} } // namespace JSC::FTL
-
-#endif // ENABLE(FTL_JIT)
-
-#endif // FTLCArgumentGetter_h
-
Modified: trunk/Source/_javascript_Core/ftl/FTLOSRExitCompiler.cpp (158993 => 158994)
--- trunk/Source/_javascript_Core/ftl/FTLOSRExitCompiler.cpp 2013-11-09 06:53:38 UTC (rev 158993)
+++ trunk/Source/_javascript_Core/ftl/FTLOSRExitCompiler.cpp 2013-11-09 06:55:07 UTC (rev 158994)
@@ -30,7 +30,6 @@
#include "DFGOSRExitCompilerCommon.h"
#include "DFGOSRExitPreparation.h"
-#include "FTLCArgumentGetter.h"
#include "FTLExitArgumentForOperand.h"
#include "FTLJITCode.h"
#include "FTLOSRExit.h"
Modified: trunk/Source/_javascript_Core/jit/FPRInfo.h (158993 => 158994)
--- trunk/Source/_javascript_Core/jit/FPRInfo.h 2013-11-09 06:53:38 UTC (rev 158993)
+++ trunk/Source/_javascript_Core/jit/FPRInfo.h 2013-11-09 06:55:07 UTC (rev 158994)
@@ -40,7 +40,6 @@
public:
typedef FPRReg RegisterType;
static const unsigned numberOfRegisters = 6;
- static const unsigned numberOfArgumentRegisters = 8;
// Temporary registers.
static const FPRReg fpRegT0 = X86Registers::xmm0;