Commit 2ac7a457 authored by mjs@apple.com's avatar mjs@apple.com

2008-10-16 Maciej Stachowiak <mjs@apple.com>

        Reviewed by Geoff Garen.

        - fixed <rdar://problem/5806316> JavaScriptCore should not force building with gcc 4.0
        - use gcc 4.2 when building with Xcode 3.1 or newer on Leopard, even though this is not the default

        This time there is no performance regression; we can avoid having
        to use the fastcall calling convention for CTI functions by using
        varargs to prevent the compiler from moving things around on the
        stack.
        
        * Configurations/DebugRelease.xcconfig:
        * JavaScriptCore.xcodeproj/project.pbxproj:
        * VM/CTI.cpp:
        * VM/Machine.h:
        * wtf/Platform.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@37647 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent e470558e
2008-10-16 Maciej Stachowiak <mjs@apple.com>
Reviewed by Geoff Garen.
- fixed <rdar://problem/5806316> JavaScriptCore should not force building with gcc 4.0
- use gcc 4.2 when building with Xcode 3.1 or newer on Leopard, even though this is not the default
This time there is no performance regression; we can avoid having
to use the fastcall calling convention for CTI functions by using
varargs to prevent the compiler from moving things around on the
stack.
* Configurations/DebugRelease.xcconfig:
* JavaScriptCore.xcodeproj/project.pbxproj:
* VM/CTI.cpp:
* VM/Machine.h:
* wtf/Platform.h:
2008-10-16 Maciej Stachowiak <mjs@apple.com> 2008-10-16 Maciej Stachowiak <mjs@apple.com>
Reviewed by Oliver Hunt. Reviewed by Oliver Hunt.
......
...@@ -6,3 +6,7 @@ MACOSX_DEPLOYMENT_TARGET_1050 = 10.5; ...@@ -6,3 +6,7 @@ MACOSX_DEPLOYMENT_TARGET_1050 = 10.5;
MACOSX_DEPLOYMENT_TARGET_1060 = 10.6; MACOSX_DEPLOYMENT_TARGET_1060 = 10.6;
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
GCC_VERSION = $(GCC_VERSION_$(XCODE_VERSION_ACTUAL));
GCC_VERSION_0310 = 4.2;
GCC_VERSION_0311 = 4.2;
...@@ -302,73 +302,6 @@ ...@@ -302,73 +302,6 @@
E1EF79AA0CE97BA60088D500 /* UTF8.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1EF79A80CE97BA60088D500 /* UTF8.cpp */; }; E1EF79AA0CE97BA60088D500 /* UTF8.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1EF79A80CE97BA60088D500 /* UTF8.cpp */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXBuildRule section */
1CFE4BEC0B0BA1EB00CC444D /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = com.apple.compilers.gcc.4_0;
fileType = sourcecode.c;
isEditable = 1;
outputFiles = (
);
};
1CFE4BF10B0BA22200CC444D /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = com.apple.compilers.gcc.4_0;
fileType = sourcecode.cpp;
isEditable = 1;
outputFiles = (
);
};
5DAD97A80B39B88E0014FEFF /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = com.apple.compilers.gcc.4_0;
fileType = sourcecode.c;
isEditable = 1;
outputFiles = (
);
};
5DAD97A80B39B88E0014FFFF /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = com.apple.compilers.gcc.4_0;
fileType = sourcecode.cpp;
isEditable = 1;
outputFiles = (
);
};
5DAD97A80B39B88F0014FEFF /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = com.apple.compilers.gcc.4_0;
fileType = sourcecode.c;
isEditable = 1;
outputFiles = (
);
};
5DAD97A80B39B88F0014FFFF /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = com.apple.compilers.gcc.4_0;
fileType = sourcecode.cpp;
isEditable = 1;
outputFiles = (
);
};
5DAD97A80B39B89F0014FEFF /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = com.apple.compilers.gcc.4_0;
fileType = sourcecode.c;
isEditable = 1;
outputFiles = (
);
};
5DAD97A80B39B89F0014FFFF /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = com.apple.compilers.gcc.4_0;
fileType = sourcecode.cpp;
isEditable = 1;
outputFiles = (
);
};
/* End PBXBuildRule section */
/* Begin PBXContainerItemProxy section */ /* Begin PBXContainerItemProxy section */
141211350A48796100480255 /* PBXContainerItemProxy */ = { 141211350A48796100480255 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy; isa = PBXContainerItemProxy;
...@@ -1620,8 +1553,6 @@ ...@@ -1620,8 +1553,6 @@
144005C70A5338C60005F061 /* Headers */, 144005C70A5338C60005F061 /* Headers */,
); );
buildRules = ( buildRules = (
5DAD97A80B39B88E0014FEFF /* PBXBuildRule */,
5DAD97A80B39B88E0014FFFF /* PBXBuildRule */,
); );
dependencies = ( dependencies = (
141211360A48796100480255 /* PBXTargetDependency */, 141211360A48796100480255 /* PBXTargetDependency */,
...@@ -1640,8 +1571,6 @@ ...@@ -1640,8 +1571,6 @@
14BD59BD0A3E8F9000BAF59C /* Frameworks */, 14BD59BD0A3E8F9000BAF59C /* Frameworks */,
); );
buildRules = ( buildRules = (
5DAD97A80B39B88F0014FEFF /* PBXBuildRule */,
5DAD97A80B39B88F0014FFFF /* PBXBuildRule */,
); );
dependencies = ( dependencies = (
14270B080A451DA10080EEEA /* PBXTargetDependency */, 14270B080A451DA10080EEEA /* PBXTargetDependency */,
...@@ -1664,8 +1593,6 @@ ...@@ -1664,8 +1593,6 @@
1C395CBC0C6BCC16000D1E52 /* Generate 64-bit Export File */, 1C395CBC0C6BCC16000D1E52 /* Generate 64-bit Export File */,
); );
buildRules = ( buildRules = (
1CFE4BF10B0BA22200CC444D /* PBXBuildRule */,
1CFE4BEC0B0BA1EB00CC444D /* PBXBuildRule */,
); );
dependencies = ( dependencies = (
65FB3F7E09D11EF300F49DEB /* PBXTargetDependency */, 65FB3F7E09D11EF300F49DEB /* PBXTargetDependency */,
...@@ -1686,8 +1613,6 @@ ...@@ -1686,8 +1613,6 @@
5D5D8ABF0E0D0B0300F9C692 /* Fix Framework Reference */, 5D5D8ABF0E0D0B0300F9C692 /* Fix Framework Reference */,
); );
buildRules = ( buildRules = (
5DAD97A80B39B89F0014FEFF /* PBXBuildRule */,
5DAD97A80B39B89F0014FFFF /* PBXBuildRule */,
); );
dependencies = ( dependencies = (
14270B0C0A451DA40080EEEA /* PBXTargetDependency */, 14270B0C0A451DA40080EEEA /* PBXTargetDependency */,
...@@ -2098,7 +2023,6 @@ ...@@ -2098,7 +2023,6 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 1C9051440BA9E8A70081E9D0 /* DebugRelease.xcconfig */; baseConfigurationReference = 1C9051440BA9E8A70081E9D0 /* DebugRelease.xcconfig */;
buildSettings = { buildSettings = {
GCC_VERSION = 4.0;
STRIP_INSTALLED_PRODUCT = NO; STRIP_INSTALLED_PRODUCT = NO;
}; };
name = Release; name = Release;
......
...@@ -116,7 +116,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" ...@@ -116,7 +116,7 @@ SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n"
#endif #endif
"call " SYMBOL_STRING(_ZN3JSC7Machine12cti_vm_throwEPPv) "\n" "call " SYMBOL_STRING(_ZN3JSC7Machine12cti_vm_throwEPPv) "\n"
#else #else
"call " SYMBOL_STRING(_ZN3JSC7Machine12cti_vm_throwEPv) "\n" "call " SYMBOL_STRING(_ZN3JSC7Machine12cti_vm_throwEPvz) "\n"
#endif #endif
"addl $0x24, %esp" "\n" "addl $0x24, %esp" "\n"
"popl %edi" "\n" "popl %edi" "\n"
......
...@@ -57,7 +57,7 @@ namespace JSC { ...@@ -57,7 +57,7 @@ namespace JSC {
#define CTI_ARGS void** args #define CTI_ARGS void** args
#define ARGS (args) #define ARGS (args)
#else #else
#define CTI_ARGS void* args #define CTI_ARGS void* args, ...
#define ARGS (&args) #define ARGS (&args)
#endif #endif
......
...@@ -368,12 +368,9 @@ ...@@ -368,12 +368,9 @@
#endif #endif
#endif #endif
// Use "fastcall" calling convention on MSVC and GCC > 4.0 // Use "fastcall" calling convention on MSVC
#if COMPILER(MSVC) || (COMPILER(GCC) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 0))) #if COMPILER(MSVC)
#define WTF_USE_FAST_CALL_CTI_ARGUMENT 1 #define WTF_USE_FAST_CALL_CTI_ARGUMENT 1
#endif
#if COMPILER(MSVC) || USE(FAST_CALL_CTI_ARGUMENT)
#define WTF_USE_CTI_ARGUMENT 1 #define WTF_USE_CTI_ARGUMENT 1
#endif #endif
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment