Skip to content

JIT: consider checking if IAT_PVALUE entry points can be reached by 32 bit disps #12935

@AndyAyersMS

Description

@AndyAyersMS

See notes in dotnet/coreclr#25251.

For IAT_PVALUE entry points, we are always loading up the full 64 bit address and using register indirect. In many cases we may be able to use a 32 bit RIP-relative indirection instead.

Should have some small code size benefit, perhaps especially for Tier0 code.

       48B8D04BB17925000000 mov      rax, 0x2579B14BD0
       FF10                 call     gword ptr [rax]JitTest.TestClass:Method2():ref:this
       ...
       48B8D04BB17925000000 mov      rax, 0x2579B14BD0
       FF20                 jmp      qword ptr [rax]JitTest.TestClass:Method2():ref:this

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIenhancementProduct code improvement that does NOT require public API changes/additions

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions