RESOLVED FIXED217362
[JSC] More consistent PtrTagging for code types
https://bugs.webkit.org/show_bug.cgi?id=217362
Summary [JSC] More consistent PtrTagging for code types
Yusuke Suzuki
Reported 2020-10-05 21:13:21 PDT
[JSC] More consistent PtrTagging for code types
Attachments
Patch (49.95 KB, patch)
2020-10-05 21:14 PDT, Yusuke Suzuki
no flags
Patch (50.05 KB, patch)
2020-10-05 22:22 PDT, Yusuke Suzuki
mark.lam: review+
Yusuke Suzuki
Comment 1 2020-10-05 21:14:50 PDT
Yusuke Suzuki
Comment 2 2020-10-05 22:22:45 PDT
Mark Lam
Comment 3 2020-10-06 13:51:06 PDT
Comment on attachment 410612 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=410612&action=review r=me with fixes. > Source/JavaScriptCore/llint/LLIntExceptions.cpp:76 > +MacroAssemblerCodeRef<ExceptionHandlerPtrTag> catcher(OpcodeSize size) Can we call this handleCatch (verb) instead of catcher (noun)? > Source/JavaScriptCore/llint/LLIntExceptions.cpp:80 > + return catcherThunk(size); Ditto: handleCatchThunk? > Source/JavaScriptCore/llint/LLIntThunks.cpp:152 > + codeRef.construct(generateThunkWithJumpTo<JITThunkPtrTag>(wasm_function_prologue, "function for call")); Is there any reason this shouldn't also be using JSEntryPtrTag (and obsoleting JITThunkPtrTag)? Looks like this is the last use of it. We used to use JITThunkPtrTag for certain pointers based on where they point to. Now, you've changed this to based on where the pointers will be used. Based on where the pointer is used, it sounds like wasm_function_prologue should be using JSEntryPtrTag too. You don't have to do this in this patch, but maybe it warrants a look later.
Yusuke Suzuki
Comment 4 2020-10-06 14:55:30 PDT
Comment on attachment 410612 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=410612&action=review Thanks! >> Source/JavaScriptCore/llint/LLIntExceptions.cpp:76 >> +MacroAssemblerCodeRef<ExceptionHandlerPtrTag> catcher(OpcodeSize size) > > Can we call this handleCatch (verb) instead of catcher (noun)? Changed. >> Source/JavaScriptCore/llint/LLIntExceptions.cpp:80 >> + return catcherThunk(size); > > Ditto: handleCatchThunk? Changed. >> Source/JavaScriptCore/llint/LLIntThunks.cpp:152 >> + codeRef.construct(generateThunkWithJumpTo<JITThunkPtrTag>(wasm_function_prologue, "function for call")); > > Is there any reason this shouldn't also be using JSEntryPtrTag (and obsoleting JITThunkPtrTag)? Looks like this is the last use of it. We used to use JITThunkPtrTag for certain pointers based on where they point to. Now, you've changed this to based on where the pointers will be used. Based on where the pointer is used, it sounds like wasm_function_prologue should be using JSEntryPtrTag too. > > You don't have to do this in this patch, but maybe it warrants a look later. wasmFunctionEntryThunk's code is used for jump target. So this I not JSEntry. I think JITThunkPtrTag is the right tag for this thunk.
Yusuke Suzuki
Comment 5 2020-10-06 15:04:46 PDT
Radar WebKit Bug Importer
Comment 6 2020-10-06 15:05:21 PDT
Note You need to log in before you can comment on or make changes to this bug.