-
Seth Brenith authored
We probably expect a binary-search switch to take log(n) time in all cases, but there is currently a possibility of that expectation being broken. I'm not aware of any place where this actually happens, but if the default handler immediately follows the switch dispatch block in assembly order, then unconditional jump instructions for that handler would be omitted. This omission could cause linear execution time, where every case is checked before falling through to the default handler. This change introduces a new function to emit an unconditional jump instruction regardless of whether the target is the following block, and uses that new function when generating a binary-search switch to ensure consistently log(n) behavior. Change-Id: I5cab86fd66386762519035410e3b532dc6fd764c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3335222Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/main@{#78370}
dd9d4c96