Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JitArm64: Never check downcount on block entry #11191

Merged
merged 3 commits into from Aug 26, 2023

Commits on Jul 30, 2023

  1. JitArm64: Never check downcount on block entry

    Jumping between linked blocks currently works as follows: First, at the
    end of the first block, we check if the downcount is greater than zero.
    If it is, we jump to the `normalEntry` of the block. So far so good. But
    if the downcount wasn't greater than zero, we jump to the `checkedEntry`
    of the block, which checks the downcount *again* and then jumps to
    `do_timing` if it's less than zero (which seems like an off by one error
    - Jit64 doesn't do anything like this). This second check is rather
    redundant. Let's jump to `do_timing` where we previously jumped to
    `checkedEntry`.
    
    Jit64 doesn't check the downcount on block entry. See 5236dc3.
    JosJuice committed Jul 30, 2023
    Copy the full SHA
    f78ba9a View commit details
    Browse the repository at this point in the history
  2. Jit: Remove checkedEntry

    It's now always identical to normalEntry.
    JosJuice committed Jul 30, 2023
    Copy the full SHA
    1813f0f View commit details
    Browse the repository at this point in the history
  3. JitArm64: Use farcode in WriteLinkBlock

    Now block link nearcode is back to a length of three instructions.
    
    Unfortunately, the code I'm adding to Jit.cpp ends up being a bit messy
    because we need to handle the case of already being in farcode...
    JosJuice committed Jul 30, 2023
    Copy the full SHA
    d2c5d79 View commit details
    Browse the repository at this point in the history