Skip to content

Commit

Permalink
Merge r242299 - [JSC] Fix FTL build on ARM32_64 by adding stubs for J…
Browse files Browse the repository at this point in the history
…SRopeString::offsetOfXXX

https://bugs.webkit.org/show_bug.cgi?id=195235

Reviewed by Saam Barati.

This is a workaround until https://bugs.webkit.org/show_bug.cgi?id=195234 is done.

* runtime/JSString.h:
  • Loading branch information
Constellation authored and carlosgcampos committed Mar 5, 2019
1 parent 018fa9b commit 6d24db4
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 1 deletion.
11 changes: 11 additions & 0 deletions Source/JavaScriptCore/ChangeLog
@@ -1,3 +1,14 @@
2019-03-01 Yusuke Suzuki <ysuzuki@apple.com>

[JSC] Fix FTL build on ARM32_64 by adding stubs for JSRopeString::offsetOfXXX
https://bugs.webkit.org/show_bug.cgi?id=195235

Reviewed by Saam Barati.

This is a workaround until https://bugs.webkit.org/show_bug.cgi?id=195234 is done.

* runtime/JSString.h:

2019-03-01 Yusuke Suzuki <ysuzuki@apple.com>

[JSC] Use runtime calls for DFG MakeRope if !CPU(ADDRESS64)
Expand Down
11 changes: 10 additions & 1 deletion Source/JavaScriptCore/runtime/JSString.h
Expand Up @@ -549,13 +549,22 @@ class JSRopeString final : public JSString {

public:
static ptrdiff_t offsetOfLength() { return OBJECT_OFFSETOF(JSRopeString, m_compactFibers) + CompactFibers::offsetOfLength(); } // 32byte width.
static ptrdiff_t offsetOfFiber0() { return offsetOfValue(); }
#if CPU(ADDRESS64)
static ptrdiff_t offsetOfFlags() { return offsetOfValue() + sizeof(uint16_t) * 3; } // 16byte width.
static ptrdiff_t offsetOfFiber0() { return offsetOfValue(); }
static ptrdiff_t offsetOfFiber1Lower() { return OBJECT_OFFSETOF(JSRopeString, m_compactFibers) + CompactFibers::offsetOfFiber1Lower(); } // 32byte width.
static ptrdiff_t offsetOfFiber1Upper() { return OBJECT_OFFSETOF(JSRopeString, m_compactFibers) + CompactFibers::offsetOfFiber1Upper(); } // 16byte width.
static ptrdiff_t offsetOfFiber2Lower() { return OBJECT_OFFSETOF(JSRopeString, m_compactFibers) + CompactFibers::offsetOfFiber2Lower(); } // 32byte width.
static ptrdiff_t offsetOfFiber2Upper() { return OBJECT_OFFSETOF(JSRopeString, m_compactFibers) + CompactFibers::offsetOfFiber2Upper(); } // 16byte width.
#elif USE(JSVALUE64)
// FIXME: This is an temporary workaround to make JSC built on ARM64_32. Once we start calculating bits before storing them to JSRopeString,
// we do not need to have such a detailed information as an offset. After that, what we only need is offsetOfFiber0, offsetOfFiber1, and offsetOfFiber2.
// https://bugs.webkit.org/show_bug.cgi?id=195234
static ptrdiff_t offsetOfFlags() { ASSERT_NOT_REACHED(); return 0; }
static ptrdiff_t offsetOfFiber1Lower() { ASSERT_NOT_REACHED(); return 0; }
static ptrdiff_t offsetOfFiber1Upper() { ASSERT_NOT_REACHED(); return 0; }
static ptrdiff_t offsetOfFiber2Lower() { ASSERT_NOT_REACHED(); return 0; }
static ptrdiff_t offsetOfFiber2Upper() { ASSERT_NOT_REACHED(); return 0; }
#endif

static constexpr unsigned s_maxInternalRopeLength = 3;
Expand Down

0 comments on commit 6d24db4

Please sign in to comment.