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

贡献者指南