dotnet/runtime

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

Open

#11,631 建立於 2018年12月7日

在 GitHub 查看
 (4 留言) (1 反應) (0 負責人)C# (5,445 fork)batch import
area-CodeGen-coreclrhelp wanted

倉庫指標

Star
 (17,886 star)
PR 合併指標
 (平均合併 12天 11小時) (30 天內合併 661 個 PR)

描述

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

貢獻者指南