WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
149100
Implement indirect calls in WebAssembly
https://bugs.webkit.org/show_bug.cgi?id=149100
Summary
Implement indirect calls in WebAssembly
Sukolsak Sakshuwong
Reported
2015-09-12 21:48:21 PDT
Implement indirect calls in WebAssembly
Attachments
Patch
(14.75 KB, patch)
2015-09-12 21:50 PDT
,
Sukolsak Sakshuwong
no flags
Details
Formatted Diff
Diff
Patch
(15.40 KB, patch)
2015-09-12 23:12 PDT
,
Sukolsak Sakshuwong
no flags
Details
Formatted Diff
Diff
Update to ToT and use Math.imul for multiplication
(15.37 KB, patch)
2015-09-16 16:45 PDT
,
Sukolsak Sakshuwong
no flags
Details
Formatted Diff
Diff
Show Obsolete
(2)
View All
Add attachment
proposed patch, testcase, etc.
Sukolsak Sakshuwong
Comment 1
2015-09-12 21:50:38 PDT
Created
attachment 261073
[details]
Patch
Sukolsak Sakshuwong
Comment 2
2015-09-12 23:12:26 PDT
Created
attachment 261077
[details]
Patch
Geoffrey Garen
Comment 3
2015-09-16 11:18:38 PDT
Comment on
attachment 261077
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=261077&action=review
r=me
> Source/JavaScriptCore/wasm/WASMFunctionCompiler.h:610 > + > + const Vector<JSFunction*>& functions = m_module->functionPointerTables()[functionPointerTableIndex].functions; > + move(TrustedImmPtr(functions.data()), GPRInfo::regT0); > + load32(temporaryAddress(m_tempStackTop - 1), GPRInfo::regT1); > + m_tempStackTop--;
Can you guarantee that the vector will never resize (and thus never change its data pointer)?
Sukolsak Sakshuwong
Comment 4
2015-09-16 14:28:34 PDT
Thanks for the review. (In reply to
comment #3
)
> Comment on
attachment 261077
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=261077&action=review
> > r=me > > > Source/JavaScriptCore/wasm/WASMFunctionCompiler.h:610 > > + > > + const Vector<JSFunction*>& functions = m_module->functionPointerTables()[functionPointerTableIndex].functions; > > + move(TrustedImmPtr(functions.data()), GPRInfo::regT0); > > + load32(temporaryAddress(m_tempStackTop - 1), GPRInfo::regT1); > > + m_tempStackTop--; > > Can you guarantee that the vector will never resize (and thus never change > its data pointer)?
WASM source is parsed in two passes. The first pass is for syntax checking and initializing some data. The second pass is for code generation. The vector only resizes in the first pass. It will never resize after that. The vector only resizes when we load the WASM module and parse the function pointer tables. It will never resize after that.
Sukolsak Sakshuwong
Comment 5
2015-09-16 14:30:57 PDT
Oops, please ignore the second paragraph. I rephrased it and forgot to remove it.
Sukolsak Sakshuwong
Comment 6
2015-09-16 16:45:14 PDT
Created
attachment 261337
[details]
Update to ToT and use Math.imul for multiplication
Geoffrey Garen
Comment 7
2015-09-16 17:35:05 PDT
Comment on
attachment 261337
[details]
Update to ToT and use Math.imul for multiplication r=me
WebKit Commit Bot
Comment 8
2015-09-16 18:23:36 PDT
Comment on
attachment 261337
[details]
Update to ToT and use Math.imul for multiplication Clearing flags on attachment: 261337 Committed
r189892
: <
http://trac.webkit.org/changeset/189892
>
WebKit Commit Bot
Comment 9
2015-09-16 18:23:40 PDT
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug