Hi everybody. I'm working on merging the nitro-extreme branch to trunk. I hope to finish and check in the results today. We now have 3 #ifdefs for different value representations: USE(JSVALUE32), USE(JSVALUE64), USE(JSVALUE32_64). JSVALUE32 encodes values as 32-bit pointers. Small integers fit into this encoding with some tagging. This encoding works on 32-bit and 64- bit platforms. JSVALUE64 encodes values as 64-bit pointers. All numbers fit into this encoding with some tagging. This encoding works on 64-bit platforms. JSVALUE32_64 encodes values as pairs of 32-bit quantities. All numbers fit into this encoding with some tagging. This encoding works on 32- bit platforms, but can be extended to work on 64-bit platforms with some modification. Best, Geoff
Hi again. The merge is now complete. All 32-bit builds except for Qt now use JSVALUE32_64. I'd appreciate it if a Qt expert could look into enabling JSVALUE32_64 on Qt. When I tried it, all layout tests crashed. I couldn't tell from the buildbot output exactly why they were crashing. Best, Geoff On Jul 30, 2009, at 3:34 PM, Geoffrey Garen wrote:
Hi everybody.
I'm working on merging the nitro-extreme branch to trunk. I hope to finish and check in the results today.
We now have 3 #ifdefs for different value representations: USE(JSVALUE32), USE(JSVALUE64), USE(JSVALUE32_64).
JSVALUE32 encodes values as 32-bit pointers. Small integers fit into this encoding with some tagging. This encoding works on 32-bit and 64-bit platforms.
JSVALUE64 encodes values as 64-bit pointers. All numbers fit into this encoding with some tagging. This encoding works on 64-bit platforms.
JSVALUE32_64 encodes values as pairs of 32-bit quantities. All numbers fit into this encoding with some tagging. This encoding works on 32-bit platforms, but can be extended to work on 64-bit platforms with some modification.
Best, Geoff
On Monday 03 August 2009 ext Geoffrey Garen, wrote:
Hi again.
The merge is now complete.
All 32-bit builds except for Qt now use JSVALUE32_64.
I'd appreciate it if a Qt expert could look into enabling JSVALUE32_64 on Qt. When I tried it, all layout tests crashed. I couldn't tell from the buildbot output exactly why they were crashing.
I've tried it locally and it seems to work for me (no crashes). It may have been a dependency problem on the bot ;( Can you confirm that the below patch would be the correct way of removing the workaround? diff --git a/JavaScriptCore/wtf/Platform.h b/JavaScriptCore/wtf/Platform.h index 5d8e88b..9309fad 100644 --- a/JavaScriptCore/wtf/Platform.h +++ b/JavaScriptCore/wtf/Platform.h @@ -583,9 +583,9 @@ #endif #if !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32) && !defined(WTF_USE_JSVALUE32_64) -#if PLATFORM(X86_64) && (PLATFORM(MAC) || (PLATFORM(LINUX) && !PLATFORM(QT))) +#if PLATFORM(X86_64) && (PLATFORM(MAC) || PLATFORM(LINUX)) #define WTF_USE_JSVALUE64 1 -#elif PLATFORM(IPHONE) || PLATFORM(PPC64) || PLATFORM(QT) /* All Qt layout tests crash in JSVALUE32_64 mode. */ +#elif PLATFORM(IPHONE) || PLATFORM(PPC64) #define WTF_USE_JSVALUE32 1 #else #define WTF_USE_JSVALUE32_64 1 Gabor, could you try this patch in a separate build on the bot? :) Simon
On Jul 30, 2009, at 3:34 PM, Geoffrey Garen wrote:
Hi everybody.
I'm working on merging the nitro-extreme branch to trunk. I hope to finish and check in the results today.
We now have 3 #ifdefs for different value representations: USE(JSVALUE32), USE(JSVALUE64), USE(JSVALUE32_64).
JSVALUE32 encodes values as 32-bit pointers. Small integers fit into this encoding with some tagging. This encoding works on 32-bit and 64-bit platforms.
JSVALUE64 encodes values as 64-bit pointers. All numbers fit into this encoding with some tagging. This encoding works on 64-bit platforms.
JSVALUE32_64 encodes values as pairs of 32-bit quantities. All numbers fit into this encoding with some tagging. This encoding works on 32-bit platforms, but can be extended to work on 64-bit platforms with some modification.
Best, Geoff
_______________________________________________ squirrelfish-dev mailing list squirrelfish-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/squirrelfish-dev
Hi Simon. Thanks for looking into this. The patch below looks correct. Geoff On Aug 13, 2009, at 4:28 AM, Simon Hausmann wrote:
On Monday 03 August 2009 ext Geoffrey Garen, wrote:
Hi again.
The merge is now complete.
All 32-bit builds except for Qt now use JSVALUE32_64.
I'd appreciate it if a Qt expert could look into enabling JSVALUE32_64 on Qt. When I tried it, all layout tests crashed. I couldn't tell from the buildbot output exactly why they were crashing.
I've tried it locally and it seems to work for me (no crashes). It may have been a dependency problem on the bot ;(
Can you confirm that the below patch would be the correct way of removing the workaround?
diff --git a/JavaScriptCore/wtf/Platform.h b/JavaScriptCore/wtf/ Platform.h index 5d8e88b..9309fad 100644 --- a/JavaScriptCore/wtf/Platform.h +++ b/JavaScriptCore/wtf/Platform.h @@ -583,9 +583,9 @@ #endif
#if !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32) && ! defined(WTF_USE_JSVALUE32_64) -#if PLATFORM(X86_64) && (PLATFORM(MAC) || (PLATFORM(LINUX) && ! PLATFORM(QT))) +#if PLATFORM(X86_64) && (PLATFORM(MAC) || PLATFORM(LINUX)) #define WTF_USE_JSVALUE64 1 -#elif PLATFORM(IPHONE) || PLATFORM(PPC64) || PLATFORM(QT) /* All Qt layout tests crash in JSVALUE32_64 mode. */ +#elif PLATFORM(IPHONE) || PLATFORM(PPC64) #define WTF_USE_JSVALUE32 1 #else #define WTF_USE_JSVALUE32_64 1
Gabor, could you try this patch in a separate build on the bot? :)
Simon
On Jul 30, 2009, at 3:34 PM, Geoffrey Garen wrote:
Hi everybody.
I'm working on merging the nitro-extreme branch to trunk. I hope to finish and check in the results today.
We now have 3 #ifdefs for different value representations: USE(JSVALUE32), USE(JSVALUE64), USE(JSVALUE32_64).
JSVALUE32 encodes values as 32-bit pointers. Small integers fit into this encoding with some tagging. This encoding works on 32-bit and 64-bit platforms.
JSVALUE64 encodes values as 64-bit pointers. All numbers fit into this encoding with some tagging. This encoding works on 64-bit platforms.
JSVALUE32_64 encodes values as pairs of 32-bit quantities. All numbers fit into this encoding with some tagging. This encoding works on 32-bit platforms, but can be extended to work on 64-bit platforms with some modification.
Best, Geoff
_______________________________________________ squirrelfish-dev mailing list squirrelfish-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/squirrelfish-dev
squirrelfish-dev mailing list squirrelfish-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/squirrelfish-dev
participants (2)
-
Geoffrey Garen
-
Simon Hausmann