dotnet/runtime

The `emitDispIns` logic in `emitxarch.h` could use some cleanup

Open

#11,631 opened on 2018年12月7日

GitHub で見る
 (4 comments) (1 reaction) (0 assignees)C# (5,445 forks)batch import
area-CodeGen-coreclrhelp wanted

Repository metrics

Stars
 (17,886 stars)
PR merge metrics
 (平均マージ 12d 11h) (30d で 661 merged PRs)

説明

As discussed in https://github.com/dotnet/coreclr/pull/21432 (and mentioned in various other issues), there are several cases where emitDispIns prints the wrong information.

Some examples of this are:

  • It prints movd instead of movq when the integer operand is an EA_8BYTE
  • It prints xrax instead of rax or eax for certain instructions that take both a floating-point and integer-register
  • It prints exclusively ymm or xmm for certain instructions that take both TYP_SIMD16 and TYP_SIMD32 (or a mix of both)

There are also some other issues scattered about given that the handling is often done on a "per instruction format" case.

We should investigate cleaning up this function to improve the logic and to ensure that it accurately prints the disassembly

category:implementation theme:debug-dumps skill-level:beginner cost:small impact:small

コントリビューターガイド