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

Unify set-reg-to-imm functions and optimize with LEA at runtime on x64 #60228

Merged
merged 3 commits into from
Oct 15, 2021

Commits on Oct 10, 2021

  1. Unify set-reg-to-imm functions and optimize with LEA at runtime on x64

    This change
    * Unifies the genSetRegToImm and instGen_Set_Reg_To_Imm functions,
      removing the former. genSetRegToImm seems to be a variant that did not
      support relocations/handles, while the latter supported both. We now
      exclusively use the emitAttr to determine this. This was only a change
      in xarch since on ARM architectures the former function just forwarded
      to the latter.
    * Generates lea more often for handle GT_CNS_INT nodes on x64.
      Previously the logic generated only lea when a relocation was
      *required*, which is only the case for prejit. In particular, all VSD
      calls load an indirection cell that can use lea instead of the longer
      mov encoding during runtime JIT, which results in a nice code size
      decrease.
    * Changes ARM64 and ARM to handle byref-typed GT_CNS_INT nodes. This was
      fixed for xarch a few years back in
      52a8890 but that change was not made
      to ARM architectures.
    jakobbotsch committed Oct 10, 2021
    Configuration menu
    Copy the full SHA
    4d45c2b View commit details
    Browse the repository at this point in the history
  2. Use EA_PTRSIZE instead of EA_8BYTE

    While this is x64 only, EA_PTRSIZE seems more correct.
    jakobbotsch committed Oct 10, 2021
    Configuration menu
    Copy the full SHA
    a1598b0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a54a276 View commit details
    Browse the repository at this point in the history