RESOLVED FIXED Bug 220500
[JSC] JITCage's Gate mechanism is used in ARM64E even if JITCage is disable
https://bugs.webkit.org/show_bug.cgi?id=220500
Summary [JSC] JITCage's Gate mechanism is used in ARM64E even if JITCage is disable
Yusuke Suzuki
Reported 2021-01-10 00:37:16 PST
[JSC] JITCage's Gate mechanism is used in ARM64E even if JITCage is used for simplicity
Attachments
Patch (4.21 KB, patch)
2021-01-10 00:39 PST, Yusuke Suzuki
no flags
Patch (8.26 KB, patch)
2021-01-10 00:54 PST, Yusuke Suzuki
mark.lam: review+
Yusuke Suzuki
Comment 1 2021-01-10 00:39:53 PST
Yusuke Suzuki
Comment 2 2021-01-10 00:54:22 PST
Mark Lam
Comment 3 2021-01-10 01:02:43 PST
Mark Lam
Comment 4 2021-01-10 10:13:10 PST
Comment on attachment 417347 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=417347&action=review r=me > Source/JavaScriptCore/ChangeLog:3 > + [JSC] JITCage's Gate mechanism is used in ARM64E even if JITCage is used for simplicity I think you meant "JITCage is disabled" not "JITCage is used" here. The "for simplicity" part could be mistaken to mean that the JITCage is disabled for simplicity when we meant that the gate mechanism is used for simplicity sake. I suggest rephrasing this is as "JITCage's Gate mechanism is used in ARM64E even if JITCage is disable." Just drop the "simplicity" part: it's not an essential detail about this bug and it is more clearly explained in the comment below. > Source/JavaScriptCore/ChangeLog:9 > + in LLInt we are always using Gate even if ENABLE(JIT_CAGE) is OFF because it makes LLInt code I suggest breaking this sentence up as follows: "ENABLE(JIT_CAGE) is OFF because it makes LLInt" ==> "ENABLE(JIT_CAGE) is OFF. It makes LLInt" > Source/JavaScriptCore/llint/LLIntThunks.cpp:348 > MacroAssemblerCodeRef<NativeToJITGatePtrTag> createJSGateThunk(void* pointer, PtrTag tag, const char* name) nit: the .h file does not #if out the prototype for these functions. Would be nice to make it consistent. > Source/JavaScriptCore/llint/LLIntThunks.cpp:494 > MacroAssemblerCodeRef<NativeToJITGatePtrTag> jitCagePtrThunk() Ditto nit.
Yusuke Suzuki
Comment 5 2021-01-10 21:39:15 PST
Comment on attachment 417347 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=417347&action=review Thanks! >> Source/JavaScriptCore/ChangeLog:3 >> + [JSC] JITCage's Gate mechanism is used in ARM64E even if JITCage is used for simplicity > > I think you meant "JITCage is disabled" not "JITCage is used" here. The "for simplicity" part could be mistaken to mean that the JITCage is disabled for simplicity when we meant that the gate mechanism is used for simplicity sake. I suggest rephrasing this is as "JITCage's Gate mechanism is used in ARM64E even if JITCage is disable." Just drop the "simplicity" part: it's not an essential detail about this bug and it is more clearly explained in the comment below. Changed. >> Source/JavaScriptCore/ChangeLog:9 >> + in LLInt we are always using Gate even if ENABLE(JIT_CAGE) is OFF because it makes LLInt code > > I suggest breaking this sentence up as follows: "ENABLE(JIT_CAGE) is OFF because it makes LLInt" ==> "ENABLE(JIT_CAGE) is OFF. It makes LLInt" Changed. >> Source/JavaScriptCore/llint/LLIntThunks.cpp:348 >> MacroAssemblerCodeRef<NativeToJITGatePtrTag> createJSGateThunk(void* pointer, PtrTag tag, const char* name) > > nit: the .h file does not #if out the prototype for these functions. Would be nice to make it consistent. Changed. >> Source/JavaScriptCore/llint/LLIntThunks.cpp:494 >> MacroAssemblerCodeRef<NativeToJITGatePtrTag> jitCagePtrThunk() > > Ditto nit. Changed.
Yusuke Suzuki
Comment 6 2021-01-10 21:40:15 PST
Note You need to log in before you can comment on or make changes to this bug.