WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
251421
Remove unnecessary add when loading a JSCConfig field.
https://bugs.webkit.org/show_bug.cgi?id=251421
Summary
Remove unnecessary add when loading a JSCConfig field.
Mark Lam
Reported
2023-01-30 23:31:06 PST
Currently, to load a JSCConfig field, our LLInt asm does something like this: ``` leap JSCConfig + constexpr JSC::offsetOfJSCConfigGateMap + (constexpr Gate::%opcodeName%) * PtrSize, ws1 jmp [ws1], NativeToJITGatePtrTag # JSEntrySlowPathPtrTag ``` ... and generates this: ``` #if OS(DARWIN) ".loc 1 1\n" "Ljsc_llint_loh_adrp_1508: \n" // LowLevelInterpreter.asm:1 "adrp x10, " LOCAL_REFERENCE(g_config) "@GOTPAGE \n" "Ljsc_llint_loh_ldr_1508: \n" "ldr x10, [x10, " LOCAL_REFERENCE(g_config) "@GOTPAGEOFF] \n" #elif OS(LINUX) ... #endif ".loc 1 1\n" "add x10, x10, #3592 \n" // <---- this add can be applied as an offset to the ldr below. ".loc 6 1034\n" "movz x13, #57366 \n" // WebAssembly.asm:1034 "ldr x17, [x10] \n" "brab x17, x13 \n" ``` This patch re-arranges the LLInt assembly to look like this instead: ``` leap _g_config, ws1 jmp JSCConfigGateMapOffset + (constexpr Gate::%opcodeName%) * PtrSize[ws1], NativeToJITGatePtrTag # JSEntrySlowPathPtrTag ``` ... resulting in the removal of the unnecessary add instruction: ``` #if OS(DARWIN) ".loc 1 1\n" "Ljsc_llint_loh_adrp_1508: \n" // LowLevelInterpreter.asm:1 "adrp x10, " LOCAL_REFERENCE(g_config) "@GOTPAGE \n" "Ljsc_llint_loh_ldr_1508: \n" "ldr x10, [x10, " LOCAL_REFERENCE(g_config) "@GOTPAGEOFF] \n" #elif OS(LINUX) ... #endif ".loc 6 1034\n" "movz x13, #57366 \n" // WebAssembly.asm:1034 "ldr x17, [x10, #3592] \n" "brab x17, x13 \n" ```
Attachments
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2023-01-30 23:31:32 PST
<
rdar://problem/104854843
>
Mark Lam
Comment 2
2023-01-30 23:35:24 PST
Pull request:
https://github.com/WebKit/WebKit/pull/9368
EWS
Comment 3
2023-01-31 08:05:21 PST
Committed
259629@main
(95dcffb800f8): <
https://commits.webkit.org/259629@main
> Reviewed commits have been landed. Closing PR #9368 and removing active labels.
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