WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
299166
Missing llint op_instanceof handler in LowLevelInterpreter32_64.asm breaks 32-bit C-loop builds
https://bugs.webkit.org/show_bug.cgi?id=299166
Summary
Missing llint op_instanceof handler in LowLevelInterpreter32_64.asm breaks 32...
amaxcz
Reported
2025-09-19 02:33:43 PDT
Created
attachment 476797
[details]
original compiler bug Product: JavaScriptCore Component: LLInt / OfflineASM Version: 2.50.0 Platform: ARMv7 (32-bit, e.g. -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard) no NEON Summary: Building WebKitGTK 2.50.0 with ENABLE(C_LOOP)=ON on 32-bit ARM targets fails because the C loop interpreter now references the labels op_instanceof_return_location op_instanceof_return_location_wide16 op_instanceof_return_location_wide32 but the 32-bit offlineasm file (LowLevelInterpreter32_64.asm) never defines them. Steps to Reproduce: 1. Configure WebKitGTK 2.50.0 for armv7 with ENABLE(C_LOOP)=ON (Gentoo, gcc 13.2, -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard). 2. Run the build so that JavaScriptCore/llint/LowLevelInterpreter.cpp is compiled. Expected Results: Compilation succeeds; the LLInt C loop backend provides all required opcode return labels. Actual Results: Compilation stops with errors similar to: Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:286: error: label 'op_instanceof_return_location' used but not defined ... The new opcode return helper was added to BytecodeList.rb and LLIntOpcode.h, so LowLevelInterpreter.cpp assumes the labels exist, but LowLevelInterpreter32_64.asm still only has llintSlowPathOp(instanceof) and therefore never emits the labels for the C loop build. Additional Notes: * LowLevelInterpreter64.asm in 2.50.0 already contains a full llintOpWithMetadata(op_instanceof, ...) implementation that generates the return labels. * Copying/porting that block into LowLevelInterpreter32_64.asm restores the missing labels and fixes the build on armv7. * The issue affects any 32-bit ARM build that enables the LLInt C loop (confirmed on Gentoo cross-distcc armv7 setup). Suggested Fix: Port the op_instanceof handler from LowLevelInterpreter64.asm into LowLevelInterpreter32_64.asm so that offlineasm emits _return_location labels for all operand widths in 32-bit builds.
Attachments
original compiler bug
(4.45 MB, text/plain)
2025-09-19 02:33 PDT
,
amaxcz
no flags
Details
Bugfix for 32bit builds
(3.87 KB, patch)
2025-09-19 02:35 PDT
,
amaxcz
no flags
Details
Formatted Diff
Diff
Bugfix for 32bit builds v2
(3.88 KB, patch)
2025-09-19 03:36 PDT
,
amaxcz
no flags
Details
Formatted Diff
Diff
Bugfix for 32bit builds v3
(4.23 KB, patch)
2025-09-19 04:57 PDT
,
amaxcz
no flags
Details
Formatted Diff
Diff
Show Obsolete
(2)
View All
Add attachment
proposed patch, testcase, etc.
amaxcz
Comment 1
2025-09-19 02:35:53 PDT
Created
attachment 476798
[details]
Bugfix for 32bit builds
amaxcz
Comment 2
2025-09-19 03:36:56 PDT
Created
attachment 476799
[details]
Bugfix for 32bit builds v2
amaxcz
Comment 3
2025-09-19 04:57:31 PDT
Created
attachment 476800
[details]
Bugfix for 32bit builds v3
Radar WebKit Bug Importer
Comment 4
2025-09-26 02:34:19 PDT
<
rdar://problem/161395111
>
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